KR20230082352A - Apparatus and method for sharing data among multiple processors - Google Patents
Apparatus and method for sharing data among multiple processors Download PDFInfo
- Publication number
- KR20230082352A KR20230082352A KR1020210170187A KR20210170187A KR20230082352A KR 20230082352 A KR20230082352 A KR 20230082352A KR 1020210170187 A KR1020210170187 A KR 1020210170187A KR 20210170187 A KR20210170187 A KR 20210170187A KR 20230082352 A KR20230082352 A KR 20230082352A
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- processor
- data
- selection mode
- present disclosure
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1657—Access to multiple memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Multi Processors (AREA)
Abstract
본 개시에 따르면, 멀티 프로세서 장치는 복수의 메모리들, 상기 복수의 메모리들에 저장된 데이터 기반하여 프로세스를 수행하는 복수의 프로세서들, 상기 복수의 메모리들에 대응되는 제1 포트들과 상기 복수의 프로세서들에 대응되는 제2 포트들을 포함하고, 메모리 선택 모드에 기반하여 상기 제1 포트들 중 하나의 포트와 상기 제2 포트들 중 하나의 포트를 연결하는 메모리 선택부를 포함한다.According to the present disclosure, a multi-processor device includes a plurality of memories, a plurality of processors that perform a process based on data stored in the plurality of memories, first ports corresponding to the plurality of memories, and the plurality of processors. and a memory selector configured to connect one of the first ports and one of the second ports based on a memory selection mode.
Description
본 개시(disclosure)는 일반적으로 복수의 프로세서들 사이에서 데이터를 공유하는 방법에 관한 것으로, 보다 구체적으로 복수의 프로세서들과 복수의 메모리들 사이의 연결 구조에 관한 연결 선택 모드를 조정하여, 복수의 프로세서들 사이에서 데이터를 공유하기 위한 장치 및 방법에 관한 것이다.The present disclosure generally relates to a method for sharing data between a plurality of processors, and more specifically, by adjusting a connection selection mode related to a connection structure between a plurality of processors and a plurality of memories, It relates to an apparatus and method for sharing data between processors.
멀티 프로세서 장치는 복수의 프로세서들을 이용하여 복수의 메모리들에 저장된 데이터를 처리하는 장치를 지시한다. 이를 위하여, 멀티 프로세서 장치에서 프로세서는 제어 라인이나 버스를 통해 메모리와 통신을 수행하고, 메모리에 저장된 데이터를 독출(read)하여 프로세스를 수행하거나, 메모리에 새로운 데이터를 기입(write)할 수 있다. 또한, 프로세서는 메모리 명령, 데이터 또는 명령의 판독 위치, 데이터나 명령들이 기록되어야 할 위치를 지정하는 어드레스에 관한 메모리 요청을 발행할 수 있다. 데이터는 명령이나 어드레스에 응답하여, 메모리와 프로세서 사이에서 전달될 수 있다. A multi-processor device refers to a device that processes data stored in a plurality of memories by using a plurality of processors. To this end, in a multi-processor device, a processor may communicate with a memory through a control line or a bus, read data stored in the memory to perform a process, or write new data to the memory. Additionally, the processor may issue a memory request for an address specifying a memory command, a location to read data or instructions, or a location to which data or instructions are to be written. Data may be transferred between the memory and the processor in response to commands or addresses.
멀티 프로세서 장치에 포함된 프로세서들은 상호 간에 데이터를 공유할 수 있다. 데이터 공유를 위하여, 종래에 따르면, 하나의 프로세서는 통신 칩을 이용하여 메모리에 저장된 데이터를 다른 프로세서에 송신함으로써 데이터를 공유하였다. 통신 칩을 이용한 공유 방식은 통신 칩 구성 추가에 따라 회로 구현이 복잡하였으며, 통신 칩의 데이터 송신에 지연에 따라 데이터 공유 효율이 낮은 문제가 있었다. 이에 대응하여, 최근 멀티 프로세서 장치에서 프로세서들 사이에서 데이터 공유의 효율을 증가시키기 위한 기술 개발이 요구되고 있다.Processors included in the multi-processor device may share data with each other. For data sharing, according to the related art, one processor shares data by transmitting data stored in a memory to another processor using a communication chip. In the sharing method using a communication chip, circuit implementation was complicated according to the addition of a communication chip configuration, and data sharing efficiency was low due to delay in data transmission of the communication chip. Correspondingly, in a multi-processor device, there is a demand for technology development for increasing the efficiency of data sharing between processors.
전술한 기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지 기술을 지시하지 않는다.The foregoing technology is technical information that the inventor possessed for derivation of the present invention or acquired during the derivation process of the present invention, and does not necessarily indicate a known technology disclosed to the general public prior to filing the present invention.
상술한 바와 같은 논의를 바탕으로, 본 개시(disclosure)는 복수의 프로세서들 사이에서 데이터를 공유하기 위한 장치 및 방법을 제공한다.Based on the above discussion, the present disclosure provides an apparatus and method for sharing data among a plurality of processors.
또한, 본 개시는 복수의 프로세서들과 복수의 메모리들 사이의 연결 구조에 관한 연결 선택 모드를 이용하여, 복수의 프로세서들 사이에서 데이터를 공유하기 위한 장치 및 방법을 제공한다.In addition, the present disclosure provides an apparatus and method for sharing data between a plurality of processors by using a connection selection mode related to a connection structure between a plurality of processors and a plurality of memories.
또한, 본 개시는 복수의 프로세서들 각각이 복수의 메모리들에 동시에 액세스하여, 프로세스들을 독립적으로 수행하기 위한 장치 및 방법을 제공한다.In addition, the present disclosure provides an apparatus and method for independently performing processes by simultaneously accessing a plurality of memories by each of a plurality of processors.
본 개시의 다양한 실시 예들에 따르면, 멀티 프로세서 장치는 복수의 메모리들, 상기 복수의 메모리들에 저장된 데이터 기반하여 프로세스를 수행하는 복수의 프로세서들, 상기 복수의 메모리들에 대응되는 제1 포트들과 상기 복수의 프로세서들에 대응되는 제2 포트들을 포함하고, 메모리 선택 모드에 기반하여 상기 제1 포트들 중 하나의 포트와 상기 제2 포트들 중 하나의 포트를 연결하는 메모리 선택부를 포함할 수 있다.According to various embodiments of the present disclosure, a multi-processor device includes a plurality of memories, a plurality of processors that perform a process based on data stored in the plurality of memories, first ports corresponding to the plurality of memories, and It may include second ports corresponding to the plurality of processors, and a memory selection unit configured to connect one of the first ports and one of the second ports based on a memory selection mode. .
다른 일 실시 예에 따르면, 상기 복수의 프로세서들은 제1 프로세서와 제2 프로세서를 포함하고, 상기 복수의 메모리들은 제1 메모리와 제2 메모리를 포함하고, 상기 메모리 선택 모드는 제1 프로세서와 제1 메모리가 연결되고 제2 프로세서와 제2 메모리가 연결되는 제1 선택 모드, 제1 프로세서와 제2 메모리가 연결되고 제2 프로세서와 제1 메모리가 연결되는 제2 선택 모드 중 하나를 포함할 수 있다.According to another embodiment, the plurality of processors include a first processor and a second processor, the plurality of memories include a first memory and a second memory, and the memory selection mode includes the first processor and the first memory. It may include one of a first selection mode in which a memory is connected and the second processor and the second memory are connected, and a second selection mode in which the first processor and the second memory are connected and the second processor and the first memory are connected. .
다른 일 실시 예에 따르면, 상기 제1 프로세서는 상기 제1 선택 모드에서, 상기 제1 메모리에 저장된 제1 데이터를 독출하여 제1 프로세스를 수행하고, 상기 제1 메모리에 제2 데이터를 기입하고, 상기 메모리 선택 모드를 변경하기 위한 제어 신호를 상기 메모리 선택부로 전달하고, 상기 제2 선택 모드에서, 상기 제2 메모리에 저장된 제3 데이터를 독출하여 제2 프로세스를 수행할 수 있다.According to another embodiment, the first processor performs a first process by reading first data stored in the first memory in the first selection mode, writes second data in the first memory, A control signal for changing the memory selection mode may be transferred to the memory selection unit, and third data stored in the second memory may be read in the second selection mode to perform a second process.
다른 일 실시 예에 따르면, 상기 제2 프로세서는 상기 제2 선택 모드에서, 상기 제1 메모리에 저장된 제2 데이터를 독출하여 제3 프로세스를 수행하고, 상기 제1 메모리에 제3 데이터를 기입하고, 상기 메모리 선택 모드의 변경 여부를 식별하고, 상기 제1 선택 모드에서, 상기 제2 메모리에 저장된 상기 제2 데이터를 독출하여 상기 제3 프로세스를 수행하고, 상기 제2 메모리에 제3 데이터를 기입할 수 있다.According to another embodiment, the second processor performs a third process by reading the second data stored in the first memory in the second selection mode, and writes the third data in the first memory; It is to identify whether the memory selection mode is changed, to perform the third process by reading the second data stored in the second memory in the first selection mode, and to write the third data to the second memory. can
다른 일 실시 예에 따르면, 상기 제1 프로세서가 상기 제1 메모리를 이용하여 프로세스를 수행하는 중에, 상기 제2 프로세서는 상기 제2 메모리를 이용하여 프로세스를 수행할 수 있다.According to another embodiment, while the first processor performs a process using the first memory, the second processor may perform a process using the second memory.
다른 일 실시 예에 따르면, 상기 제1 프로세서와 상기 제2 프로세서 사이를 연결하는 추가 컨트롤 라인을 더 포함하고, 상기 제1 프로세서는 상기 추가 컨트롤 라인을 통해 상기 제2 프로세서의 프로세스 처리 상태를 확인하고, 상기 프로세스 처리 상태에 기반하여 상기 제1 프로세서의 처리 속도를 변경할 수 있다.According to another embodiment, an additional control line connecting between the first processor and the second processor is further included, wherein the first processor checks a process processing state of the second processor through the additional control line, and , The processing speed of the first processor may be changed based on the process processing state.
본 발명의 다양한 각각의 측면들 및 특징들은 첨부된 청구항들에서 정의된다. 종속 청구항들의 특징들의 조합들(combinations)은, 단지 청구항들에서 명시적으로 제시되는 것뿐만 아니라, 적절하게 독립항들의 특징들과 조합될 수 있다.Each of the various aspects and features of the invention are defined in the appended claims. Combinations of features of the dependent claims may be combined with features of the independent claims as appropriate, not just those explicitly set forth in the claims.
또한, 본 개시에 기술된 임의의 하나의 실시 예(any one embodiment) 중 선택된 하나 이상의 특징들은 본 개시에 기술된 임의의 다른 실시 예 중 선택된 하나 이상의 특징들과 조합될 수 있으며, 이러한 특징들의 대안적인 조합이 본 개시에 논의된 하나 이상의 기술적 문제를 적어도 부분적으로 경감시키거나, 본 개시로부터 통상의 기술자에 의해 식별될 수 있는(discernable) 기술적 문제를 적어도 부분적으로 경감시키고, 나아가 실시 예의 특징들(embodiment features)의 이렇게 형성된 특정한 조합(combination) 또는 순열(permutation)이 통상의 기술자에 의해 양립 불가능한(incompatible) 것으로 이해되지만 않는다면, 그 조합은 가능하다.In addition, one or more selected features of any one embodiment described in this disclosure may be combined with one or more selected features of any other embodiment described in this disclosure, and alternatives of such features The combination of the present disclosure at least partially alleviates one or more technical problems discussed in the present disclosure, or at least partially alleviates the technical problems discernable by a person skilled in the art from the present disclosure, and further features of the embodiments ( A particular combination or permutation so formed of embodiment features is possible, provided that it is not understood by a person skilled in the art to be incompatible.
본 개시에 기술된 임의의 예시 구현(any described example implementation)에 있어서 둘 이상의 물리적으로 별개의 구성 요소들은 대안적으로, 그 통합이 가능하다면 단일 구성 요소로 통합될 수도 있으며, 그렇게 형성된 단일한 구성 요소에 의해 동일한 기능이 수행된다면, 그 통합은 가능하다. 반대로, 본 개시에 기술된 임의의 실시 예(any embodiment)의 단일한 구성 요소는 대안적으로, 적절한 경우, 동일한 기능을 달성하는 둘 이상의 별개의 구성 요소들로 구현될 수도 있다.In any described example implementation, two or more physically separate components may alternatively be integrated into a single component, where such integration is possible, and a single component so formed If the same function is performed by , the integration is possible. Conversely, a single component in any embodiment described in this disclosure may alternatively be implemented as two or more separate components that achieve the same function, where appropriate.
본 발명의 특정 실시 예들(certain embodiments)의 목적은 종래 기술과 관련된 문제점 및/또는 단점들 중 적어도 하나를, 적어도 부분적으로, 해결, 완화 또는 제거하는 것에 있다. 특정 실시 예들(certain embodiments)은 후술하는 장점들 중 적어도 하나를 제공하는 것을 목적으로 한다.It is an object of certain embodiments of the present invention to address, mitigate, or eliminate, at least in part, at least one of the problems and/or disadvantages associated with the prior art. Certain embodiments aim to provide at least one of the advantages described below.
본 개시의 다양한 실시 예들에 따른 장치 및 방법은 복수의 프로세서들과 복수의 메모리들 사이의 연결 구조에 관한 연결 선택 모드를 이용함으로써, 복수의 프로세서들 사이에서 데이터를 공유할 수 있게 한다.An apparatus and method according to various embodiments of the present disclosure enable data to be shared between a plurality of processors by using a connection selection mode related to a connection structure between a plurality of processors and a plurality of memories.
또한, 본 개시의 다양한 실시 예들에 따른 장치 및 방법은 복수의 프로세서들 각각이 복수의 메모리들에 동시에 액세스함으로써, 복수의 프로세스들을 독립적으로 수행할 수 있게 한다.Also, the apparatus and method according to various embodiments of the present disclosure enable each of a plurality of processors to independently perform a plurality of processes by simultaneously accessing a plurality of memories.
또한, 본 개시의 다양한 실시 예들에 따른 장치 및 방법은 복수의 프로세서들과 복수의 메모리들 사이의 연결 구조에 관한 연결 선택 모드를 이용함으로써, 프로세서에 가해지는 부하를 감소시킬 수 있게 한다.Also, an apparatus and method according to various embodiments of the present disclosure may reduce a load applied to a processor by using a connection selection mode related to a connection structure between a plurality of processors and a plurality of memories.
또한, 본 개시의 다양한 실시 예들에 따른 장치 및 방법은 복수의 프로세서들이 독립적으로 프로세스를 수행함으로써, 멀티 프로세서 장치의 데이터 공유 속도 및 공유 효율을 증가시킬 수 있게 한다.In addition, the apparatus and method according to various embodiments of the present disclosure enable a plurality of processors to independently perform a process, thereby increasing data sharing speed and sharing efficiency of a multi-processor device.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.Effects obtainable in the present disclosure are not limited to the effects mentioned above, and other effects not mentioned may be clearly understood by those skilled in the art from the description below. will be.
도 1은 종래에 따른 멀티 프로세서 장치의 일 예를 도시한다.
도 2는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치의 구성을 도시한다.
도 3은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치의 구성을 도시한다.
도 4는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치의 동작 방법에 관한 모식도를 도시한다.
도 5는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치의 다른 일 예를 도시한다.
도 6은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치에서, 제1 프로세서의 동작 방법에 관한 흐름도를 도시한다.
도 7은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치에서, 제2 프로세서의 동작 방법에 관한 흐름도를 도시한다.1 shows an example of a conventional multi-processor device.
2 illustrates a configuration of a multi-processor device according to various embodiments of the present disclosure.
3 illustrates a configuration of a multi-processor device according to various embodiments of the present disclosure.
4 illustrates a schematic diagram of a method of operating a multi-processor device according to various embodiments of the present disclosure.
5 illustrates another example of a multi-processor device according to various embodiments of the present disclosure.
6 is a flowchart illustrating a method of operating a first processor in a multi-processor device according to various embodiments of the present disclosure.
7 is a flowchart illustrating a method of operating a second processor in a multi-processor device according to various embodiments of the present disclosure.
본 개시에서 사용되는 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 개시에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 개시에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 개시에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 개시에서 정의된 용어일지라도 본 개시의 실시 예들을 배제하도록 해석될 수 없다.Terms used in the present disclosure are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by one of ordinary skill in the art described in this disclosure. Among the terms used in the present disclosure, terms defined in a general dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in the present disclosure, an ideal or excessively formal meaning. not be interpreted as In some cases, even terms defined in the present disclosure cannot be interpreted to exclude embodiments of the present disclosure.
이하에서 설명되는 본 개시의 다양한 실시 예들에서는 하드웨어적인 접근 방법을 예시로서 설명한다. 하지만, 본 개시의 다양한 실시 예들에서는 하드웨어와 소프트웨어를 모두 사용하는 기술을 포함하고 있으므로, 본 개시의 다양한 실시 예들이 소프트웨어 기반의 접근 방법을 제외하는 것은 아니다.In various embodiments of the present disclosure described below, a hardware access method is described as an example. However, since various embodiments of the present disclosure include technology using both hardware and software, various embodiments of the present disclosure do not exclude software-based access methods.
이하 본 개시는 복수의 프로세서(processor)들 사이에서 데이터를 공유하기 위한 장치 및 방법에 관한 것이다. 구체적으로, 본 개시는 복수의 프로세서들과 복수의 메모리들 사이의 연결 구조에 관한 연결 선택 모드를 이용하여, 복수의 프로세서들 사이에서 데이터를 공유하기 위한 기술을 설명한다.Hereinafter, the present disclosure relates to an apparatus and method for sharing data between a plurality of processors. Specifically, the present disclosure describes a technique for sharing data between a plurality of processors using a connection selection mode related to a connection structure between a plurality of processors and a plurality of memories.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 다양한 실시예들을 상세히 설명한다. 그러나 본 개시의 기술적 사상은 다양한 형태로 변형되어 구현될 수 있으므로 본 명세서에서 설명하는 실시예들로 제한되지 않는다. 본 명세서에 개시된 실시예들을 설명함에 있어서 관련된 공지 기술을 구체적으로 설명하는 것이 본 개시의 기술적 사상의 요지를 흐릴 수 있다고 판단되는 경우 그 공지 기술에 대한 구체적인 설명을 생략한다. 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, various embodiments will be described in detail so that those skilled in the art can easily implement the present disclosure with reference to the accompanying drawings. However, since the technical spirit of the present disclosure may be implemented in various forms, it is not limited to the embodiments described herein. In describing the embodiments disclosed in this specification, if it is determined that a detailed description of a related known technology may obscure the gist of the technical idea of the present disclosure, a detailed description of the known technology will be omitted. The same or similar components are assigned the same reference numerals, and duplicate descriptions thereof will be omitted.
본 명세서에서 어떤 요소가 다른 요소와 "연결"되어 있다고 기술될 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라 그 중간에 다른 요소를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 어떤 요소가 다른 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 요소 외에 또 다른 요소를 배제하는 것이 아니라 또 다른 요소를 더 포함할 수 있는 것을 의미한다.In this specification, when an element is described as being “connected” to another element, this includes not only the case of being “directly connected” but also the case of being “indirectly connected” with another element intervening therebetween. When an element "includes" another element, this means that it may further include another element without excluding another element in addition to the other element unless otherwise stated.
일부 실시예들은 기능적인 블록 구성들 및 다양한 처리 단계들로 설명될 수 있다. 이러한 기능 블록들의 일부 또는 전부는 특정 기능을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 본 개시의 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 본 개시의 기능 블록이 수행하는 기능은 복수의 기능 블록에 의해 수행되거나, 본 개시에서 복수의 기능 블록이 수행하는 기능들은 하나의 기능 블록에 의해 수행될 수도 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.Some embodiments may be described as functional block structures and various processing steps. Some or all of these functional blocks may be implemented with any number of hardware and/or software components that perform a particular function. For example, functional blocks of the present disclosure may be implemented by one or more microprocessors or circuit configurations for a predetermined function. The functional blocks of this disclosure may be implemented in a variety of programming or scripting languages. The functional blocks of this disclosure may be implemented as an algorithm running on one or more processors. The functions performed by the function blocks of the present disclosure may be performed by a plurality of function blocks, or the functions performed by the plurality of function blocks in the present disclosure may be performed by one function block. In addition, the present disclosure may employ prior art for electronic environment setting, signal processing, and/or data processing.
또한, 본 개시에서, 특정 조건의 만족(satisfied), 충족(fulfilled) 여부를 판단하기 위해, 초과 또는 미만의 표현이 사용되었으나, 이는 일 예를 표현하기 위한 기재일 뿐 이상 또는 이하의 기재를 배제하는 것이 아니다. '이상'으로 기재된 조건은 '초과', '이하'로 기재된 조건은 '미만', '이상 및 미만'으로 기재된 조건은 '초과 및 이하'로 대체될 수 있다. 이하 사용되는 '…부', '…기' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어, 또는, 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. In addition, in the present disclosure, the expression of more than or less than is used to determine whether a specific condition is satisfied or fulfilled, but this is only a description to express an example and excludes more or less description. It's not about doing it. Conditions described as 'above' may be replaced with 'exceeds', conditions described as 'below' may be replaced with 'below', and conditions described as 'above and below' may be replaced with 'above and below'. '...' is used below. wealth', '… A term such as 'group' refers to a unit that processes at least one function or operation, and may be implemented as hardware, software, or a combination of hardware and software.
도 1은 종래에 따른 멀티 프로세서 장치(100)의 일 예를 도시한다. 1 shows an example of a
컴퓨팅 장치 내에 기판(board)은 프로세서, 메모리, 및 프로세서와 메모리를 연결시키는 접속 라인을 포함하는 프로세싱부로 구현될 수 있다. 프로세싱부 내의 프로세서는 접속 라인을 통하여 메모리에 저장된 데이터를 독출(read)하여 프로세스(process)를 수행하거나, 메모리에 새로운 데이터를 기입(write)할 수 있다. 또한, 프로세서는 통신 칩을 이용하여 데이터를 외부로 송신하거나 외부로부터 데이터를 수신할 수 있다.A board in a computing device may be implemented as a processing unit including a processor, a memory, and a connection line connecting the processor and the memory. A processor in the processing unit may read data stored in the memory through a connection line to perform a process or write new data to the memory. Also, the processor may transmit data to the outside or receive data from the outside using the communication chip.
멀티 프로세서 장치(100)는 기판에 복수의 프로세서들이 구비되는 컴퓨팅 장치를 지시한다. 멀티 프로세서 장치(100)는 복수의 프로세싱부들을 포함할 수 있고, 복수의 프로세싱부들은 서로 다른 프로세스를 수행할 수 있다. 도 1을 참고하면, 멀티 프로세서 장치(100)의 제1 프로세싱부는 제1 프로세서(111), 제1 메모리(113), 및 제1 통신 칩(115)을 포함할 수 있고, 제2 프로세싱부는 제2 프로세서(161), 제2 메모리(163), 및 제2 통신 칩(165)을 포함할 수 있다. 제1 프로세서(111)는 데이터나 명령들이 기록되어야 할 위치를 지정하는 어드레스에 정보를 공유하는 어드레스 버스, 데이터들이 공유되는 데이터 버스, 및 프로세싱부의 전반적인 동작을 제어하기 위한 컨트롤 라인을 통해 제1 메모리(113)와 제1 통신 칩(115)과 연결될 수 있다. 마찬가지로, 제2 프로세서(161)는 어드레스 버스, 데이터 버스, 및 컨트롤 라인을 통해 제2 메모리(163)와 제2 통신 칩(165)과 연결될 수 있다.The
복수의 프로세서들이 대용량 데이터의 실시간으로 병렬 처리를 수행함에 있어, 멀티 프로세서 장치(100)는 복수의 프로세서들 사이에서 대용량 데이터를 공유할 수 있다. 이를 위하여, 멀티 프로세서 장치(100) 내의 프로세서 각각은 복수의 메모리들에 액세스하고, 메모리에 저장된 데이터를 이용하여 프로세스를 수행할 수 있다. When a plurality of processors perform parallel processing of large amounts of data in real time, the
도 1을 참고하면, 제1 프로세서(111)는 어드레스 버스, 데이터 버스 및 컨트롤 라인을 이용하여 제1 메모리(113)에 액세스할 수 있다. 그러나, 제1 프로세서(111)는 제2 메모리(163)와 버스나 라인을 통하여 연결되어 있지 않기 때문에, 제1 프로세서(111)가 제2 메모리(163)에 액세스 하기 위하여는 제1 통신 칩(115)을 이용하여 데이터를 수신하여야 한다. 즉, 제1 프로세서(111)와 제2 프로세서(161)가 데이터를 공유하기 위하여, 제2 메모리(163)에 저장된 데이터는 제2 프로세서(161)의 제어에 따라 제2 통신 칩(165)으로 전달되고, 이더넷, 시리얼, CAN(controller area network)와 같은 데이터 통신에 따라 제1 통신 칩(115)으로 수신된다. 제1 통신 칩(115)으로 전달된 데이터는 제1 프로세서(111)의 제어에 따라 제1 메모리(113)로 전달될 수 있다. Referring to FIG. 1 , the
종래와 같이 프로세서들 사이에 서 데이터를 공유하는 과정에서 프로세서 각각에 대응되는 통신 칩을 이용하는 경우, 데이터 전송을 위해 통신 효율이 감소하는 문제가 있었다. 즉, 통신 칩이 데이터를 처리하는 과정에서 통신 시간이 길어지고, 데이터 통신에 프로세서가 관여함에 따라 프로세서에 가해지는 부하가 높아 데이터를 처리할 프로세서의 연산 속도가 감소하여, 데이터 공유 효율이 낮았다.In the case of using a communication chip corresponding to each processor in the process of sharing data between processors as in the prior art, there is a problem in that communication efficiency decreases for data transmission. That is, while the communication chip processes data, the communication time increases, and as the processor participates in data communication, the load applied to the processor increases, reducing the calculation speed of the processor to process the data, resulting in low data sharing efficiency.
이 외의 데이터 공유 방법으로, 접속 라인에 DMA(direct memory access)가 추가로 연결되고, 프로세서 대신 DMA가 데이터를 공유하도록 제어하는 방법이 있다. 이 경우, 프로세서에 가해지는 부하가 감소되지만, 여전히 통신 칩을 이용하는 점에서 데이터 처리 지연이 발생하는 문제가 있었다. As another data sharing method, there is a method in which a direct memory access (DMA) is additionally connected to a connection line and the DMA is controlled to share data instead of a processor. In this case, although the load applied to the processor is reduced, there is a problem in that data processing delay occurs in that the communication chip is still used.
또한, 복수의 접속 라인들에 공통으로 연결되는 듀얼 포트 SRAM(static random access memory)을 추가하는 방법이 있었으나, 듀얼 포트 SRAM 소자가 소용량으로 대용량을 구현되면 다수의 메모리들이 필요하고, 그에 따라 회로가 복잡하여 비용이 증가하는 문제가 있었다.In addition, there has been a method of adding a dual-port SRAM (static random access memory) commonly connected to a plurality of connection lines, but when a dual-port SRAM device is implemented with a small capacity and a large capacity, a plurality of memories are required, and accordingly, the circuit There was a problem of complexity and increased cost.
또한, 프로세싱부들의 접속 라인을 통합하는 방법으로서, 하나의 공통 접속 라인에 복수의 프로세서들과 복수의 메모리들이 연결되는 방법의 경우, 제1 프로세서가 공통 접속 라인을 점유하는 경우 제2 프로세서가 공통 접속 라인에 접속할 수 없어, 복수의 프로세서들의 연산 처리 효율이 감소되는 문제가 있었다.In addition, as a method of integrating connection lines of processing units, in the case of a method in which a plurality of processors and a plurality of memories are connected to one common connection line, when the first processor occupies the common connection line, the second processor Since the connection line cannot be connected, there is a problem in that arithmetic processing efficiency of a plurality of processors is reduced.
도 2는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)의 구성(200)을 도시한다. 구체적으로, 도 2는 본 개시에 따른 멀티 프로세서 장치(290)의 메모리 선택 모드의 일 예를 도시한다.2 illustrates a
도 2를 참고하면, 멀티 프로세서 장치(290)는 복수의 프로세서들이 복수의 메모리들에 액세스하여 프로세스를 수행하는 장치를 지시한다. 도 2를 참고하면, 멀티 프로세서 장치(290)에서 복수의 프로세서들과 복수의 메모리들은 접속 라인에 연결될 수 있다. 본 개시의 일 실시 예에 따르면, 접속 라인은 어드레스 버스, 데이터 버스, 컨트롤 라인 중 적어도 하나를 포함할 수 있다. 복수의 프로세서들 중 하나의 프로세서는 접속 라인을 통하여, 복수의 메모리들 중 하나의 메모리와 연결될 수 있고, 메모리에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 여기서, 멀티 프로세서 장치(290)는 메모리 선택 핀을 이용하여 복수의 프로세서들과 메모리들의 연결 관계를 조정할 수 있다. 도 2를 참고하면, 멀티 프로세서 장치(290)는 제1 프로세서 내지 제2 프로세서(211 내지 212), 제1 메모리 내지 제2 메모리(231 내지 232), 메모리 선택부(251)를 포함할 수 있다. 도 2는 프로세서의 개수와 메모리의 개수가 각각 두 개인 경우를 예시하지만, 프로세서의 개수와 메모리의 개수는 사용자의 설계에 따라 변경될 수 있다.Referring to FIG. 2 , a
제1 프로세서(211)와 제2 프로세서(212)는 데이터를 공유하는 주체를 지시한다. 제1 프로세서(211)와 제2 프로세서(212) 각각은 멀티 프로세서 장치(290)에 배치된 메모리에 액세스 하여 프로세스를 수행하는 기능을 수행할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)와 제2 프로세서(212) 각각은 접속 라인을 통해 제1 메모리(231) 또는 제2 메모리(232)에 연결되어 데이터를 처리할 수 있다. 또한, 제1 프로세서(211)와 제2 프로세서(212)는 제1 메모리(231) 또는 제2 메모리(232)를 이용하여 데이터를 서로 공유할 수 있다.The
제1 메모리(231)와 제2 메모리(232)는 데이터를 저장하는 기능을 수행한다. 제1 메모리(231)와 제2 메모리(232)는 접속 라인을 통해 제1 프로세서(211)나 제2 프로세서(212)에 연결되어 데이터를 제공할 수 있다. The
메모리 선택부(251)는 프로세서들과 메모리들 사이의 연결 관계를 조정하는 기능을 수행한다. 메모리 선택부(251)는 FPGA(field programmable gate array), 멀티플렉서(multiplexer)로 구현될 수 있고, 복수의 프로세서들과 메모리들 사이의 연결 관계를 조정할 수 있다. 또한, 메모리 선택부(251)는 메모리 선택 신호를 송수신하기 위한 메모리 선택 라인을 통해 프로세서들과 연결될 수 있다. 프로세서들은 메모리 선택 라인을 통해 메모리 선택부(251)에 메모리 선택 신호를 송수신 하고, 메모리 선택부(251)는 수신 신호에 대응하여 메모리 선택 모드를 결정할 수 있다. 이후, 메모리 선택부(251)는 메모리 선택 핀을 이용하여 프로세서와 메모리 사이의 연결 관계를 조정할 수 있다.The
본 개시의 일 실시 예에 따르면, 메모리 선택부(251)는 복수의 메모리들 각각에 연결되는 제1 포트들(262, 264)과 복수의 프로세서들 각각에 연결되는 제2 포트들(261, 263), 및 메모리 선택 핀(미도시)을 포함할 수 있다. 메모리 선택부(251)는 메모리 선택 라인을 통해 수신한 제어 신호에 기반하여, 메모리 선택 모드를 결정할 수 있다. According to an embodiment of the present disclosure, the
본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제2 프로세서(212)에 데이터를 공유할 수 있다. 이에 따라, 제1 프로세서(211)는 메모리 선택 모드를 변경하기 위한 제어 신호를 생성할 수 있고, 제2 프로세서(212)는 메모리 선택 모드의 변경 여부를 검출할 수 있다. 여기서, 메모리 선택 모드는 제1 프로세서(211)와 제1 메모리(231)가 연결되고 제2 프로세서(212)와 제2 메모리(232)가 연결되는 제1 선택 모드, 제1 프로세서(211)와 제2 메모리(232)가 연결되고 제2 프로세서(212)와 제1 메모리(231)가 연결되는 제2 선택 모드를 포함할 수 있다. 도 2는 메모리 선택 모드가 제1 선택 모드인 경우를 예시한다. According to an embodiment of the present disclosure, the
본 개시의 일 실시 예에 따르면, 메모리 선택부(251)는 메모리 선택 핀의 상태가 로우(low)인 경우, 메모리 선택 모드를 제1 선택 모드로 결정할 수 있다. 이 때 로우 신호는 보다 구체적으로 0[V](논리적 0)일 수 있다. 메모리 선택부(251)는 포트 A(262)와 포트 C(261)를 연결하고, 포트 B(264)와 포트 D(263)을 연결할 수 있다. 이에 따라, 제1 프로세서(211)는 제1 메모리(231)에 연결되어, 제1 메모리(231)에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 제2 프로세서(212)는 제2 메모리(232)에 연결되어, 제2 메모리(232)에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 여기서, 제1 프로세서(211)의 제1 메모리(231)에 관한 액세스와 제2 프로세서(212)의 제2 메모리(232)에 관한 액세스는 독립적으로 수행될 수 있고, 동시에 수행될 수 있다.According to an embodiment of the present disclosure, the
도 3은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)의 구성(300)을 도시한다. 구체적으로, 도 3은 본 개시에 따른 멀티 프로세서 장치(290)의 메모리 선택 모드의 다른 일 예를 도시한다.3 illustrates a
도 3을 참고하면, 멀티 프로세서 장치(290)에서 복수의 프로세서들과 복수의 메모리들은 접속 라인에 연결될 수 있다. 복수의 프로세서들 중 하나의 프로세서는 접속 라인을 통하여 복수의 메모리들 중 하나의 메모리와 연결될 수 있고, 메모리에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다.Referring to FIG. 3 , in the
제1 프로세서(211)와 제2 프로세서(212)는 데이터를 공유하는 주체로서, 멀티 프로세서 장치(290)에 배치된 메모리에 액세스 하여 프로세스를 수행하는 기능을 수행할 수 있다. 제1 메모리(231)와 제2 메모리(232)는 접속 라인을 통해 제1 프로세서(211)나 제2 프로세서(212)에 연결되어 데이터를 제공할 수 있다. The
메모리 선택부(251)는 복수의 프로세서들과 메모리들 사이의 연결 관계를 조정할 수 있다. 메모리 선택부(251)는 메모리 선택 라인을 통해 프로세서들과 연결될 수 있고, 메모리 선택 신호에 대응하여 메모리 선택 모드를 결정할 수 있다. 이후, 메모리 선택부(251)는 메모리 선택 핀을 이용하여 프로세서와 메모리 사이의 연결 관계를 조정할 수 있다.The
본 개시의 일 실시 예에 따르면, 메모리 선택 모드는 제1 프로세서(211)와 제1 메모리(231)가 연결되고 제2 프로세서(212)와 제2 메모리(232)가 연결되는 제1 선택 모드, 제1 프로세서(211)와 제2 메모리(232)가 연결되고 제2 프로세서(212)와 제1 메모리(231)가 연결되는 제2 선택 모드를 포함할 수 있다. 도 3은 메모리 선택 모드가 제2 선택 모드인 경우를 예시한다. According to an embodiment of the present disclosure, the memory selection mode is a first selection mode in which the
본 개시의 일 실시 예에 따르면, 메모리 선택부(251)는 메모리 선택 핀의 상태가 하이(high)인 경우, 메모리 선택 모드를 제2 선택 모드로 결정할 수 있다. 이 때 하이 신호는 보다 구체적으로 5[V](논리적 1)일 수 있다. 메모리 선택부(251)는 포트 A(262)와 포트 D(263)를 연결하고, 포트 B(264)와 포트 C(261)를 연결할 수 있다. 이에 따라, 제1 프로세서(211)는 제2 메모리(232)에 연결되어, 제2 메모리(232)에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 제2 프로세서(212)는 제1 메모리(231)에 연결되어, 제1 메모리(231)에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 여기서, 제1 프로세서(211)의 제2 메모리(232)에 관한 액세스와 제2 프로세서(212)의 제1 메모리(231)에 관한 액세스는 독립적으로 수행될 수 있고, 동시에 수행될 수 있다.According to an embodiment of the present disclosure, the
도 4는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)의 동작 방법에 관한 모식도(400)를 도시한다.4 illustrates a schematic diagram 400 of a method of operating a
도 4를 참고하면, 멀티 프로세서 장치(290)는 미리 설정된 주기로 프로세스를 수행한다. 즉, 멀티 프로세서 장치(290)는 미리 설정된 주기마다 인터럽트를 발생시키고, 인터럽트에 맞추어 데이터를 처리할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제1 주기(411)와 제2 주기(413)에서 제1 데이터를 수신하고, 제1 프로세스를 수행할 수 있다. 본 개시의 일 실시 예에 따르면, 인터럽트 신호는 100ms의 주기로 발생할 수 있다.Referring to FIG. 4 , the
또한, 메모리 선택 핀의 상태에 기반하여 프로세서들과 메모리들 사이의 연결이 변경될 수 있다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제1 시각(421)에서, 메모리 선택 모드를 제1 선택 모드로 변경하기 위한 제어 신호를 메모리 선택부(251)로 송신할 수 있다. 그에 따라, 제1 시각(421)에서 메모리 선택 핀의 상태가 0으로 전환되고, 제2 시각(422)에서 제2 프로세서(212)는 메모리 선택 모드의 변경을 검출할 수 있다. 동일한 방법으로, 제1 프로세서(211)는 제3 시각(423)에서, 메모리 선택 모드를 제2 선택 모드로 변경하기 위한 제어 신호를 메모리 선택부(251)로 송신할 수 있다. 그에 따라, 제3 시각(423)에서 메모리 선택 핀의 상태가 1로 전환되고, 제4 시각(424)에서 제2 프로세서(212)는 메모리 선택 모드의 변경을 검출할 수 있다. 동일한 방법으로, 제1 프로세서(211)는 제5 시각(425)에서, 메모리 선택 모드를 제1 선택 모드로 변경하기 위한 제어 신호를 메모리 선택부(251)로 송신할 수 있다. 그에 따라, 제5 시각(425)에서 메모리 선택 핀의 상태가 0으로 전환되고, 제6 시각(426)에서 제2 프로세서(212)는 메모리 선택 모드의 변경을 검출할 수 있다. 결과적으로, 메모리 선택 모드는 제1 시각부터 제3 시각 사이 간격(430)에서 제1 선택 모드로 결정되고, 제3 시각부터 제5 시각 사이 간격(450)에서 제2 선택 모드로 결정될 수 있다.Also, a connection between processors and memories may be changed based on a state of a memory select pin. According to an embodiment of the present disclosure, the
제1 프로세서(211)는 인터럽트에 기반하여 프로세스를 수행할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 주기(411)에서 제1 프로세서(211)는 제1 메모리에 연결되어 데이터 처리를 시작할 수 있다. 제1 프로세서(211)는 제1 데이터를 수신하거나, 제1 메모리에 저장된 제1 데이터를 독출하여 제1 프로세스를 수행할 수 있다. 이후, 제1 프로세서(211)는 제1 메모리에 제2 데이터를 기입할 수 있다. 제3 시각에서, 제1 프로세서(211)는 메모리 선택 모드를 변경하기 위한 제어 신호를 메모리 선택부(251)로 송신한다. 그에 따라, 제1 프로세서(211)는 제2 메모리와 연결되어 데이터 처리를 시작할 수 있다. 제1 프로세서(211)는 제2 메모리에 저장된 제3 데이터를 독출하여 제2 프로세스를 수행할 수 있다. 이후 제1 프로세서(211)는 생성된 제4 데이터를 송신하거나 제2 메모리에 제4 데이터를 기입할 수 있다.The
제2 프로세서(212)는 메모리 선택 모드의 변경을 검출하여 프로세스를 수행할 수 있다. 본 개시의 일 실시 예에 따르면, 제4 시각(424)에서 제2 프로세서(212)는 제1 메모리(231)에 연결된다. 이때, 제1 메모리(231)는 제1 프로세서(211)가 기입한 제2 데이터를 저장하고 있으며, 제2 프로세서(212)는 제1 프로세서(211)가 저장한 제2 데이터를 독출하여 제3 프로세스를 수행할 수 있다. 이후, 제2 프로세서(212)는 제1 메모리에 제3 데이터를 기입할 수 있다. The
이에 대응하여, 제1 프로세서(211)는 제5 시각(425)에서 제1 메모리(231)에 연결되어 제2 프로세서(212)가 저장한 제3 데이터를 독출함으로써, 데이터를 공유할 수 있다.Correspondingly, the
도 4를 참고하면, 제1 프로세서(211)가 제1 메모리(231)의 데이터를 처리하는 중에 제2 프로세서(212)는 제2 메모리(232)의 데이터를 처리한다. 이후, 제1 프로세서(211)는 제2 프로세서(212)에 공유하기 위한 데이터를 제1 메모리(231)에 저장하고, 제2 프로세서(212)는 제1 프로세서(211)에 공유하기 위한 데이터를 제2 메모리(232)에 저장한다. 제1 프로세서(211)와 제2 프로세서(212)는 연결된 메모리들에 공유 데이터를 저장한 이후, 메모리 선택부(251)는 선택 모드 변경 신호에 따라 상호 간의 연결을 변경시킴으로써, 제1 프로세서(211)와 제2 프로세서(212)의 데이터가 공유되도록 제어할 수 있다. 멀티 프로세서 장치(290)는 메모리 선택 모드의 변환 과정을 반복함으로써, 제1 프로세서(211)와 제2 프로세서(212) 사이에서 데이터가 공유되도록 제어할 수 있다.Referring to FIG. 4 , while the
도 5는 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)의 다른 일 예(500)를 도시한다. 5 illustrates another example 500 of a
도 5를 참고하면, 멀티 프로세서 장치(290)에서 복수의 프로세서들과 복수의 메모리들은 접속 라인에 연결될 수 있다. 복수의 프로세서들 중 하나의 프로세서는 접속 라인을 통하여 복수의 메모리들 중 하나의 메모리와 연결될 수 있고, 메모리에 저장된 데이터에 기반하여 프로세스를 수행할 수 있다. 여기서, 멀티 프로세서 장치(290)는 복수의 프로세서들 사이에서 추가로 연결되는 추가 컨트롤 라인(510)을 더 포함할 수 있다. 복수의 프로세서들은 추가 컨트롤 라인(510)을 이용하여 각각의 데이터 처리 상태에 관한 정보 송수신할 수 있다.Referring to FIG. 5 , in the
본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제2 프로세서(212)의 데이터 처리 상황을 확인하기 위하여, 추가 컨트롤 라인(510)을 통해 처리 상태 확인 요청 신호를 송신할 수 있다. 제2 프로세서(212)는 처리 상태 요청 신호에 응답하여, 처리 상태 신호를 추가 컨트롤 라인(510)을 통해 송신할 수 있다. 제1 프로세서(211)는 제2 프로세서(212)의 데이터 처리 속도가 균일하지 않아 처리 지연이 발생하는 경우, 처리 지연에 따른 실시간 데이터 처리 실패를 방지할 수 있다.According to an embodiment of the present disclosure, the
또한, 멀티 프로세서 장치(290)의 메모리 선택부(251)는 복수의 프로세서들 또는 복수의 메모리들 각각에 연결되는 포트의 수를 증가시킬 수 있다. 그에 대응하여, 멀티 프로세서 장치(290)는 메모리의 개수를 늘려서 복수의 메모리들이 순서대로 돌아가며 링 버퍼(ring buffer)처럼 사용할 수 있다. Also, the
도 6은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)에서, 제1 프로세서(211)의 동작 방법에 관한 흐름도(600)를 도시한다.6 is a
도 6을 참고하면 단계(601)에서, 제1 프로세서(211)는 제1 선택 모드에서, 제1 메모리에 저장된 제1 데이터를 독출하여 제1 프로세스를 수행한다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제1 메모리(231)와 연결되어 있으며, 제1 메모리에 저장된 데이터를 독출하여 프로세스를 수행할 수 있다.Referring to FIG. 6 , in
단계(603)에서, 제1 프로세서(211)는 제1 선택 모드에서, 제1 메모리에 제2 데이터를 기입한다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제1 메모리(231)와 연결되어 있으며, 제1 프로세스를 수행 완료한 이후에 제2 프로세서(212)에 공유하기 위한 제2 데이터를 제1 메모리(231)에 기입할 수 있다.In
단계(605)에서, 제1 프로세서(211)는 메모리 선택 모드를 변경하기 위한 제어 신호를 메모리 선택부로 전달한다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제2 데이터를 제1 메모리(231)에 저장한 이후에, 메모리 선택 핀의 상태를 변경하기 위한 제어 신호를 생성할 수 있다. 이후, 제1 프로세서(211)는 생성된 제어 신호를 추가 컨트롤 라인을 통해 메모리 선택부(251)로 송신할 수 있다. 이에 대응하여, 메모리 선택부(251)는 메모리 선택 모드를 변경할 수 있다.In
단계(607)에서, 제1 프로세서(211)는 제2 선택 모드에서, 제2 메모리에 저장된 제3 데이터를 독출하여 제2 프로세스를 수행한다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 제2 메모리(232)와 연결되어 있으며, 제2 메모리에 저장된 데이터를 독출하여 프로세스를 수행할 수 있다. 이후, 제1 프로세서(211)는 데이터 처리에 따라 생성된 제4 데이터를 송신할 수 있다.In
단계(609)에서, 제1 프로세서(211)는 인터럽트 발생 여부를 식별한다. 제1 프로세서(211)는 인터럽트가 발생하지 않은 것으로 식별한 경우, 인터럽트 발생을 대기할 수 있다. 제1 프로세서(211)는 인터럽트가 발생한 것으로 식별한 경우, 이후 프로세스 절차를 수행할 수 있다. 본 개시의 일 실시 예에 따르면, 제1 프로세서(211)는 인터럽트가 발생한 것으로 식별한 경우, 제2 메모리(232)에 연결되어 제1 데이터를 수신하고 제1 프로세스를 수행할 수 있다. 이후, 제1 프로세서(211)는 제2 프로세서(212)에 공유하기 위한 제2 데이터를 제2 메모리(232)에 기입할 수 있다.In
도 7은 본 개시의 다양한 실시 예들에 따른 멀티 프로세서 장치(290)에서, 제2 프로세서(212)의 동작 방법에 관한 흐름도(700)를 도시한다. 도 7은 도 6의 단계(605)에서 제1 프로세서(211)가 메모리 선택 모드 변경을 위한 제어 신호를 메모리 선택부(251)로 송신한 이후 제2 프로세서(212)의 동작 과정을 예시한다.7 is a
도 7을 참고하면 단계(701)에서, 제2 프로세서(212)는 제2 선택 모드에서, 제1 메모리에 저장된 제2 데이터를 독출하여 제3 프로세스를 수행한다. 본 개시의 일 실시 예에 따르면, 제2 프로세서(212)는 제1 메모리(231)와 연결되어 있으며, 제1 메모리에 저장된 데이터를 독출하여 프로세스를 수행할 수 있다.Referring to FIG. 7 , in
단계(703)에서, 제2 프로세서(212)는 제2 선택 모드에서, 제1 메모리에 제3 데이터를 기입한다. 본 개시의 일 실시 예에 따르면, 제2 프로세서(212)는 제1 메모리(231)와 연결되어 있으며, 제3 프로세스를 수행 완료한 이후에 제1 프로세서(211)에 공유하기 위한 제3 데이터를 제1 메모리(231)에 기입할 수 있다.In
단계(705)에서, 제2 프로세서(212)는 메모리 선택 모드의 변경을 식별한다. 제2 프로세서(212)는 추가 컨트롤 라인을 통해 메모리 선택 모드가 변경되었는지 여부를 식별할 수 있다. 본 개시의 일 실시 예에 따르면, 제2 프로세서(212)는 메모리 선택부(251)로부터 메모리 선택 모드의 변경을 지시하는 신호를 수신할 수 있다. 제2 프로세서(212)는 메모리 선택 모드가 변경되지 않은 것으로 식별된 경우, 메모리 선택 모드의 변경이 검출될 때까지 대기할 수 있다. 제2 프로세서(212)는 메모리 선택 모드가 변경된 것으로 식별된 경우, 단계(707)로 진행한다.At
단계(707)에서, 제2 프로세서(212)는 제1 선택 모드에서, 제2 메모리에 저장된 제2 데이터를 독출하여 제3 프로세스를 수행한다. 본 개시의 일 실시 예에 따르면, 제2 프로세서(212)는 제2 메모리(232)와 연결되어 있으며, 제2 메모리에 저장된 데이터를 독출하여 프로세스를 수행할 수 있다.In
단계(709)에서, 제2 프로세서(212)는 제1 선택 모드에서, 제2 메모리에 제3 데이터를 기입한다. 본 개시의 일 실시 예에 따르면, 제2 프로세서(212)는 제2 메모리(232)와 연결되어 있으며, 제3 프로세스를 수행 완료한 이후에 제1 프로세서(211)에 공유하기 위한 제3 데이터를 제2 메모리(232)에 기입할 수 있다.In
본 개시에 따르면, 멀티 프로세서 장치(290)는 통신 칩을 이용하지 않고 데이터를 공유함으로써, 데이터 공유시 발생하는 데이터 전송 시간을 감소시킬 수 있다. 또한, 메모리 핀의 상태만 변경하면 데이터가 공유되므로, 복수의 프로세서들에 가해지는 부하가 증가하지 않으며, 다양한 방식의 메모리를 사용할 수 있음에 따라 비용이 절감될 수 있다. 또한, 제1 프로세서(211)와 제2 프로세서(212)는 메모리 액세스를 독립적으로 동시에 수행 할 수 있으므로, 메모리 액세스에 관한 소모 시간을 감소시킬 수 있다. 따라서, 본 개시에 따른 멀티 프로세서 장치(290)는 대용량 데이터를 효율적이고 고속으로 공유할 수 있어 대용량 데이터를 실시간 병렬 처리해야 하는 멀티 프로세서 간 대용량 데이터 공유에 적합하다.According to the present disclosure, the
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다. Methods according to the embodiments described in the claims or specification of the present disclosure may be implemented in the form of hardware, software, or a combination of hardware and software.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다. When implemented in software, a computer readable storage medium storing one or more programs (software modules) may be provided. One or more programs stored in a computer-readable storage medium are configured for execution by one or more processors in an electronic device. The one or more programs include instructions that cause the electronic device to execute methods according to embodiments described in the claims or specification of the present disclosure.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(read only memory, ROM), 전기적 삭제가능 프로그램가능 롬(electrically erasable programmable read only memory, EEPROM), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(compact disc-ROM, CD-ROM), 디지털 다목적 디스크(digital versatile discs, DVDs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다. Such programs (software modules, software) may include random access memory, non-volatile memory including flash memory, read only memory (ROM), and electrically erasable programmable ROM. (electrically erasable programmable read only memory (EEPROM), magnetic disc storage device, compact disc-ROM (CD-ROM), digital versatile discs (DVDs), or other It can be stored on optical storage devices, magnetic cassettes. Alternatively, it may be stored in a memory composed of a combination of some or all of these. In addition, each configuration memory may be included in multiple numbers.
또한, 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WAN(wide area network), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.In addition, the program is provided through a communication network such as the Internet, an intranet, a local area network (LAN), a wide area network (WAN), or a storage area network (SAN), or a communication network consisting of a combination thereof. It can be stored on an attachable storage device that can be accessed. Such a storage device may be connected to a device performing an embodiment of the present disclosure through an external port. In addition, a separate storage device on a communication network may be connected to a device performing an embodiment of the present disclosure.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.In the specific embodiments of the present disclosure described above, components included in the disclosure are expressed in singular or plural numbers according to the specific embodiments presented. However, the singular or plural expressions are selected appropriately for the presented situation for convenience of explanation, and the present disclosure is not limited to singular or plural components, and even components expressed in plural are composed of the singular number or singular. Even the expressed components may be composed of a plurality.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present disclosure, specific embodiments have been described, but various modifications are possible without departing from the scope of the present disclosure. Therefore, the scope of the present disclosure should not be limited to the described embodiments and should not be defined by the scope of the claims described below as well as those equivalent to the scope of these claims.
111,211
제1 프로세서
113, 231
제1 메모리
161, 212
제2 프로세서
163, 232
제2 메모리
115
제1 통신 칩
165
제2 통신 칩
251
메모리 선택부
262
포트 A
264
포트 B
261
포트 C
263
포트 D
411, 413
제1 주기, 제2 주기
421 내지 426
제1 시각 내지 제6 시각
510
추가 컨트롤 라인111,211
161, 212
115
251
264
263
421 to 426 1st time to
Claims (6)
복수의 메모리들;
상기 복수의 메모리들에 저장된 데이터 기반하여 프로세스를 수행하는 복수의 프로세서들;
상기 복수의 메모리들에 대응되는 제1 포트들과 상기 복수의 프로세서들에 대응되는 제2 포트들을 포함하고, 메모리 선택 모드에 기반하여 상기 제1 포트들 중 하나의 포트와 상기 제2 포트들 중 하나의 포트를 연결하는 메모리 선택부를 포함하는 멀티 프로세서 장치.
In a multiprocessor device,
a plurality of memories;
a plurality of processors performing processes based on data stored in the plurality of memories;
It includes first ports corresponding to the plurality of memories and second ports corresponding to the plurality of processors, wherein one of the first ports and one of the second ports are selected based on a memory selection mode. A multi-processor device including a memory selector connecting one port.
상기 복수의 프로세서들은 제1 프로세서와 제2 프로세서를 포함하고,
상기 복수의 메모리들은 제1 메모리와 제2 메모리를 포함하고,
상기 메모리 선택 모드는,
제1 프로세서와 제1 메모리가 연결되고 제2 프로세서와 제2 메모리가 연결되는 제1 선택 모드, 제1 프로세서와 제2 메모리가 연결되고 제2 프로세서와 제1 메모리가 연결되는 제2 선택 모드 중 하나를 포함하는 멀티 프로세서 장치.
The method of claim 1,
The plurality of processors include a first processor and a second processor,
The plurality of memories include a first memory and a second memory,
The memory selection mode,
A first selection mode in which the first processor and the first memory are connected and the second processor and the second memory are connected, and the second selection mode in which the first processor and the second memory are connected and the second processor and the first memory are connected A multi-processor device containing one.
상기 제1 프로세서는,
상기 제1 선택 모드에서, 상기 제1 메모리에 저장된 제1 데이터를 독출하여 제1 프로세스를 수행하고, 상기 제1 메모리에 제2 데이터를 기입하고,
상기 메모리 선택 모드를 변경하기 위한 제어 신호를 상기 메모리 선택부로 전달하고,
상기 제2 선택 모드에서, 상기 제2 메모리에 저장된 제3 데이터를 독출하여 제2 프로세스를 수행하는 멀티 프로세서 장치.
The method of claim 2,
The first processor,
In the first selection mode, first data stored in the first memory is read to perform a first process, and second data is written to the first memory;
Transferring a control signal for changing the memory selection mode to the memory selection unit;
In the second selection mode, the multi-processor device performs a second process by reading third data stored in the second memory.
상기 제2 프로세서는
상기 제2 선택 모드에서, 상기 제1 메모리에 저장된 제2 데이터를 독출하여 제3 프로세스를 수행하고, 상기 제1 메모리에 제3 데이터를 기입하고,
상기 메모리 선택 모드의 변경 여부를 식별하고,
상기 제1 선택 모드에서, 상기 제2 메모리에 저장된 상기 제2 데이터를 독출하여 상기 제3 프로세스를 수행하고, 상기 제2 메모리에 제3 데이터를 기입하는 멀티 프로세서 장치.
The method of claim 2,
The second processor
In the second selection mode, second data stored in the first memory is read to perform a third process, and third data is written to the first memory;
Identify whether the memory selection mode is changed;
In the first selection mode, the multi-processor device reads the second data stored in the second memory, performs the third process, and writes third data to the second memory.
상기 제1 프로세서가 상기 제1 메모리를 이용하여 프로세스를 수행하는 중에, 상기 제2 프로세서는 상기 제2 메모리를 이용하여 프로세스를 수행하는 멀티 프로세서 장치.
The method of claim 2,
While the first processor performs a process using the first memory, the second processor performs a process using the second memory.
상기 제1 프로세서와 상기 제2 프로세서 사이를 연결하는 추가 컨트롤 라인을 더 포함하고,
상기 제1 프로세서는,
상기 추가 컨트롤 라인을 통해 상기 제2 프로세서의 프로세스 처리 상태를 확인하고,
상기 프로세스 처리 상태에 기반하여 상기 제1 프로세서의 처리 속도를 변경하는 멀티 프로세서 장치.The method of claim 2,
Further comprising an additional control line connecting between the first processor and the second processor,
The first processor,
Checking the process processing state of the second processor through the additional control line;
A multi-processor device for changing a processing speed of the first processor based on the processing state of the process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210170187A KR20230082352A (en) | 2021-12-01 | 2021-12-01 | Apparatus and method for sharing data among multiple processors |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210170187A KR20230082352A (en) | 2021-12-01 | 2021-12-01 | Apparatus and method for sharing data among multiple processors |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230082352A true KR20230082352A (en) | 2023-06-08 |
Family
ID=86765912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210170187A KR20230082352A (en) | 2021-12-01 | 2021-12-01 | Apparatus and method for sharing data among multiple processors |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230082352A (en) |
-
2021
- 2021-12-01 KR KR1020210170187A patent/KR20230082352A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4677630B2 (en) | Memory hub with internal cache and / or memory access prediction | |
US9052835B1 (en) | Abort function for storage devices by using a poison bit flag wherein a command for indicating which command should be aborted | |
JP2021530813A (en) | Integrated address space for multiple hardware accelerators with dedicated low latency links | |
US11681553B2 (en) | Storage devices including heterogeneous processors which share memory and methods of operating the same | |
KR20180010131A (en) | Dual-ported pci express-based storage cartridge including single-ported storage controllers | |
US11741034B2 (en) | Memory device including direct memory access engine, system including the memory device, and method of operating the memory device | |
KR20160087224A (en) | Memory controller and memory system including the same | |
US10540303B2 (en) | Module based data transfer | |
CN115495389B (en) | Memory controller, calculation memory device, and operation method of calculation memory device | |
US10585822B2 (en) | Operation method of host system including storage device and operation method of storage device controller | |
KR102442682B1 (en) | System and method for avoiding serialized key value access in machine learning system | |
US20170177496A1 (en) | Apparatus and method to support a storage mode over a cache-line memory interface to a non-volatile memory dual in line memory module | |
CN105408875A (en) | Distributed procedure execution and file systems on a memory interface | |
CN111679783A (en) | Memory controller | |
US9442658B2 (en) | Apparatuses and methods including selectively providing a single or separate chip select signals | |
KR20200081045A (en) | A three-dimensional stacked memory device and operating method for the same | |
KR20220054633A (en) | operation mode register | |
KR20230082352A (en) | Apparatus and method for sharing data among multiple processors | |
US20220342835A1 (en) | Method and apparatus for disaggregation of computing resources | |
US11610624B2 (en) | Memory device skipping refresh operation and operation method thereof | |
US20220156146A1 (en) | Memory controller performing selective and parallel error correction, system including the same and operating method of memory device | |
US8131893B2 (en) | Memory device that mediates mutual communication among a pluraliity of CPUs | |
US10860520B2 (en) | Integration of a virtualized input/output device in a computer system | |
KR20210134048A (en) | extended memory operation | |
EP4086774A1 (en) | Coherent memory system |