KR100978083B1 - 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 - Google Patents
공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR100978083B1 KR100978083B1 KR1020087018943A KR20087018943A KR100978083B1 KR 100978083 B1 KR100978083 B1 KR 100978083B1 KR 1020087018943 A KR1020087018943 A KR 1020087018943A KR 20087018943 A KR20087018943 A KR 20087018943A KR 100978083 B1 KR100978083 B1 KR 100978083B1
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- procedure
- call
- address
- memory
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
Abstract
복수의 프로세서(22, 23)가 동일한 공유 메모리(24)를 공유하고, 또한 그 공유 메모리(24)에 각 프로세서(22, 23)가 각각 독립된 어드레스 공간(25, 26)을 가지고, 또한 각 프로세서(22, 23)가 상호 버스를 이용한 프로세서 간 통신(27)을 통해 통신 가능하게 구성된 공유 메모리형 멀티 프로세서에 있어서, 제1 프로세서(22)가, 제2 프로세서(23)의 어드레스 공간(26)에 존재하는 어드레스를 지정하여, 제2 프로세서(23)에 대하여 절차의 호출을 행한다. 그 절차의 호출에 응답하여, 제2 프로세서(23)는 제1 프로세서(22)에 의해 지정된 어드레스에 있는 절차를 기동하여 실행함으로써, 고속으로 절차를 기동한다.
Description
본 발명은 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법, 절차 호출 프로그램 및 기록 매체에 관한 것이다.
일반적으로, 컴퓨터 시스템에 있어서, 복수의 프로세서를 이용하여 절차 호출에 의해 병렬 처리를 행하는 방법으로서, 근거리에서의 절차 호출법과, 원격 절차 호출법이 있다. 도 10 및 도 11은 각각 근거리에서의 절차 호출법 및 원격 절차 호출법의 개념을 나타내는 모식도이다. 도 10에 있어서, 근거리에서의 절차 호출법은, 동일한 머신(컴퓨터)(1) 내에 설치된 제1 프로세서(2)와 제2 프로세서(3)가 동일한 공유 메모리(4)를 공유하고 있는 구성에 있어서, 제1 프로세서(2)와 제2 프로세서(3) 사이에서 절차 호출을 행하는 방법이다.
이 근거리에서의 절차 호출법에는, 프로세서(2, 3) 간의 통신을 고속으로 행할 수 있다고 하는 이점이 있다. 그러나, 복수의 프로세서(2, 3)가 동일한 메모리 영역을 이용하기 때문에, 프로세서의 수가 증가하면, 메모리 액세스의 경합에 의해 메모리 액세스 레이턴시가 증대하여, 컴퓨터의 처리 성능이 향상되기 어려워진다는 문제점이 있다. 또, 캐시(cash)의 일관성 제어를 행하는 구성이 필요하지만, 프로세서의 수가 증가하면, 이 일관성 제어 기구가 복잡해진다는 문제점도 있다.
한편, 도 11에 있어서, 원격 절차 호출법은 독립된 머신(5, 6) 간에서 이더넷(등록 상표) 등의 네트워크(7)를 통해 절차 호출을 행하는 방법이다(예컨대, 비특허문헌 1 참조). 이 경우, 클라이언트 머신(5) 내의 프로세서(8)는 동 머신(5) 내의 메모리(9)를 사용한다. 또한, 서버 머신(6) 내의 프로세서(10)는 동 머신(6) 내의 메모리(11)를 사용한다. 따라서, 원격 절차 호출법에서는 근거리에서의 절차 호출법과 같은, 메모리 액세스의 경합에 의한 메모리 액세스 레이턴시의 증대나, 캐시의 일관성 제어 기구의 복잡화 등의 문제가 발생하지 않는다.
[비특허문헌 1: 앤드류·D.·비렐(ANDREW D. BIRRELL), 외 1명, 「임플라멘팅·리모트·프로시져·콜즈(Implementing Remote Procedure Calls)」, 에이씨엠·트란잭션즈·온·컴퓨터·시스템즈(ACM Transactions on Computer Systems), (미국), 1984년 2월, 제2권, 제1호, p.39-59]
그러나, 원격 절차 호출법에 있어서, 클라이언트 머신(5) 내의 프로세서(8)가 서버 머신(6) 내의 프로세서(10)에 대하여 절차 호출을 행하기 위해서는, 클라이언트 머신(5) 내의 프로세서(8)는 서버 머신(6) 내의 메모리(11)의 해당하는 절차의 어드레스를 지정할 필요가 있다. 그러나, 클라이언트 머신(5)과 서버 머신(6)이 독립되어 있기 때문에, 클라이언트 머신(5) 내의 프로세서(8)가 서버 머신(6) 내의 메모리(11)의 해당하는 어드레스를 알 수는 없다.
그래서, 종래의 원격 절차 호출법에서는 메모리와 같은 하드웨어에 관한 기술(記述)을 추상화하여, 호출하는 절차를 ID 번호 등의 식별자로 지정하도록 하고 있다. 이 경우, 도 12에 모식적으로 나타내는 서버 머신(6) 내의 메모리(11)의 어드레스 공간과 같이, 서버 프로그램용 데이터 영역(12)에, 서버 프로그램용 프로그램 영역(13)에 전개되어 있는 절차(14, 15, 16, 17)의 어드레스와 ID 번호 등의 식별자의 대응 관계를 정하는 테이블(18)을 준비해야 한다. 그만큼, 서버 머신(6) 내의 메모리(11)의 사용량이 증가한다고 하는 문제점이 있다.
또, 원격 절차 호출법에서는 네트워크(7)를 이용하여 머신(5, 6) 간의 통신을 행하기 때문에, 프로세서(8, 10) 간의 통신 속도가 근거리에서의 절차 호출법에 비해서 현저히 느리다. 또한, 서버 머신(6)측에서는 ID 번호 등의 식별자에 대응하는 어드레스를 테이블(18)로부터 검색할 필요가 있기 때문에, 절차 기동 처리에 시간이 걸린다. 그 때문에, 도 13에 나타낸 바와 같이, 클라이언트 머신(5)이 절차 호출을 발하고 나서, 서버 머신(6)에서 해당하는 절차가 실행되기까지의 기동 오버헤드가 길다고 하는 문제점이 있다.
본 발명은 상기에 감안하여 이루어진 것으로, 메모리를 공유한 복수의 프로세서 간의 통신에 원격 절차 호출법을 적용하고, 또한 서버 머신 내의 메모리의 사용량의 삭감과 절차 기동 처리의 고속화를 도모할 수 있는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법을 제공하는 것을 목적으로 한다. 또, 본 발명은 그와 같은 절차 호출 방법을 컴퓨터에 실행시키기 위한 절차 호출 프로그램 및 그 프로그램을 기록한, 컴퓨터가 판독 가능한 기록 매체를 제공하는 것을 목적으로 한다.
상술한 과제를 해결하고, 목적을 달성하기 위해, 본 발명의 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법, 절차 호출 프로그램 및 기록 매체는, 복수의 프로세서가 동일한 메모리를 공유하고, 또한 그 메모리에 각 프로세서가 각각 독립된 어드레스 공간을 가지고, 또한 각 프로세서가 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능하게 구성된 공유 메모리형 멀티 프로세서에 적용 가능한 절차 호출 방법, 절차 호출 프로그램 및 기록 매체로서, 제1 프로세서가, 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 지정하여, 제2 프로세서에 대하여 절차의 호출을 행한다. 그 절차의 호출에 응답하여, 제2 프로세서는 제1 프로세서에 의해 지정된 어드레스에 있는 절차를 기동하여 실행한다.
본 발명에 따르면, 절차 호출에 의해 호출된 측의 프로세서가, 호출한 측의 프로세서에 의해 지정된 어드레스로부터 직접, 절차를 기동할 수 있다. 따라서, 종래의 원격 절차 호출법의 절차 기동 처리에서 필요했던, 식별자에 대응하는 어드레스를 검색하는 처리를 행하지 않고 끝나기 때문에, 절차의 기동 처리에 요하는 시간이 단축되어 고속으로 절차를 기동할 수 있다. 또, 절차의 어드레스와 식별자의 대응 관계를 정하는 테이블이 불필요하기 때문에 메모리의 사용량을 삭감할 수 있다.
도 1은 본 발명에 따른 공유 메모리형 멀티 프로세서에 있어서의 원격 절차 호출법의 개념을 나타내는 모식도이다.
도 2는 실시예 1의 하드웨어 구성의 주요부를 나타내는 블록도이다.
도 3은 소프트웨어의 구성을 설명하기 위한 모식도이다.
도 4는 실시예 1의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다.
도 5는 실시예 2의 하드웨어 구성의 주요부를 나타내는 블록도이다.
도 6은 실시예 2의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다.
도 7은 실시예 3의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다.
도 8은 실시예 4의 하드웨어 구성의 주요부를 나타내는 블록도이다.
도 9는 실시예 4의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다.
도 10은 종래의 근거리에서의 절차 호출법의 개념을 나타내는 모식도이다.
도 11은 종래의 원격 절차 호출법의 개념을 나타내는 모식도이다.
도 12는 종래의 원격 절차 호출법에 있어서의 서버 머신 내의 메모리의 어드레스 공간을 나타내는 모식도이다.
도 13은 종래의 원격 절차 호출법에 있어서의 절차 기동 시의 타이밍을 나타내는 모식도이다.
<도면의 주요 부분에 대한 부호의 설명>
22, 23, 31, 32: 프로세서
24, 34: 공유 메모리
25, 26: 어드레스 공간
27, 37, 39: 프로세서 간 통신
35, 36: 레지스터
51: 데이터 통신용 영역
이하에, 본 발명에 따른 메모리형 멀티 프로세서에 있어서의 절차 호출 방법, 절차 호출 프로그램 및 기록 매체의 실시예를 도면에 기초하여 상세히 설명한다. 또한, 이 실시예에 의해 본 발명이 한정되는 것은 아니다. 또, 본 발명에 있어서는, 멀티 프로세서란, 1개의 IC 칩에 복수의 프로세서가 설치되어 있는 경우와, 복수의 IC 칩의 각각에 1개 또는 2개 이상의 프로세서가 설치되어 있는 경우의 양방을 포함하는 것이다.
도 1은 본 발명에 따른 공유 메모리형 멀티 프로세서에 있어서의 절차 호출법의 개념을 나타내는 모식도이다. 도 1에 나타낸 바와 같이, 동일한 머신(컴퓨터)(21) 내에 설치된 제1 프로세서(22)와 제2 프로세서(23)는 동일한 공유 메모리(24)를 물리적으로 공유하고 있다. 그리고, 공유 메모리(24)의, 제1 프로세서(22)가 관리하는 어드레스 공간(25)과, 제2 프로세서(23)가 관리하는 어드레스 공간(26)은 독립되어 있다.
이 구성에서는 제1 프로세서(22)와 제2 프로세서(23) 사이에서 원격 절차 호출법을 적용하여 절차 호출을 행할 수 있다. 그때, 종래의 원격 절차 호출법과 같이 메모리의 어드레스를 식별자로 추상화할 필요는 없다. 그 때문에, 제1 프로세서(22)는 제2 프로세서(23)가 관리하는 어드레스 공간(26)의 어드레스를 지정하여, 프로세서 간 통신(27)을 통해 원격 절차 호출을 행한다. 프로세서 간 통신(27)으로서 버스를 이용함으로써, 프로세서 간의 통신 속도는 근거리에서의 절차 호출과 마 찬가지로 고속화된다.
또, 절차 호출에 의해 호출된 제2 프로세서(23)가 절차 기동 처리에 있어서 식별자에 대응하는 어드레스를 검색할 필요가 없기 때문에, 절차 기동 처리에 요하는 시간이 단축된다. 이들 통신 속도의 고속화와 절차 기동 처리 시간의 단축화에 의해, 제1 프로세서(22)가 제2 프로세서(23)에 절차 호출을 통지하고 나서, 제2 프로세서(23)가 해당하는 절차의 실행을 시작하기까지의 기동 오버헤드가 단축되기 때문에, 고속으로 원격 절차를 기동할 수 있다.
또, 식별자와 어드레스의 대응 관계를 정하는 테이블이 불필요해지기 때문에, 공유 메모리(24)의 사용량을 줄일 수 있다. 또한, 어드레스 공간(25, 26)이 독립되어 있음으로써, 캐시의 일관성의 제어나 메모리 액세스의 경합의 제어가 간단해지기 때문에, 동일 메모리를 공유하는 프로세서의 수가 3개 이상으로 증가하여도 컴퓨터의 처리 성능이 향상한다.
[실시예 1]
도 2는 실시예 1의 하드웨어 구성의 주요부를 나타내는 블록도이다. 도 2에 나타낸 바와 같이, 제1 프로세서(31)와 제2 프로세서(32)는 버스(33)를 통해 공유 메모리(34)에 접속되어 있으며, 이 공유 메모리(34)를 물리적으로 공유하고 있다. 제1 프로세서(31)에는 호출하는 절차의 어드레스가 기록되는 레지스터(이하, 송신 통신용 레지스터라고 한다)(35)가 설치되어 있다. 제2 프로세서(32)에는 호출되는 절차의 어드레스가 기록되는 레지스터(이하, 수신 통신용 레지스터라고 한다)(36)가 설치되어 있다.
송신 통신용 레지스터(35)와 수신 통신용 레지스터(36)는 버스를 이용한 데이터 통신용 프로세서 간 통신(37)에 접속되어 있다. 이 데이터 통신용 프로세서 간 통신(37)에는 복수의 큐(queue) 형상의 데이터 버퍼(38)가 설치되어 있으며, 송신 통신용 레지스터(35)와 수신 통신용 레지스터(36) 사이에서 복수 데이터의 통신을 할 수 있게 되어 있다. 또, 제1 프로세서(31)와 제2 프로세서(32)는 버스를 이용한 기동 통지용 프로세서 간 통신(39)에 접속되어 있다.
도 3은 소프트웨어의 구성을 설명하기 위한 모식도이다. 도 3에 나타낸 바와 같이, 절차 요구측 프로세서, 즉, 상기 예의 제1 프로세서(31)에는 클라이언트 프로그램(41)과 원격 절차 호출용의 라이브러리[원격 절차 호출 라이브러리(42)]가 실려 있다. 한편, 절차 실행측 프로세서인 제2 프로세서(32)에는 서버 프로그램(43)과 원격 절차 호출용의 라이브러리[원격 절차 호출 라이브러리(44)]가 실려 있다. 제1 프로세서(31)에 있어서, 클라이언트 프로그램(41)이 원격 절차 호출 라이브러리(42)에 대하여 원격 절차 호출을 요구하면, 제2 프로세서(32)에서 라이브러리에 의해 요구된 절차가 실행된다.
도 4는 실시예 1의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다. 도 4에 나타낸 바와 같이, 우선, 제1 프로세서(31)에서는 클라이언트 프로그램(41)이 원격 절차 호출 라이브러리(42)에 대하여 원격 절차 호출을 요구한다(단계 S1). 그에 따라, 제1 프로세서(31)에서는 원격 절차 호출 라이브러리(42)가 요구된 절차의 어드레스를 송신 통신용 레지스터(35)에 기록한다(단계 S2). 계속해서, 제1 프로세서(31)에서는, 원격 절차 호출 라이브러리(42)가 클라이언트 프로그램(41)으로부터 받은 절차의 인수 데이터를 송신 통신용 레지스터(35)에 기록한다(단계 S3).
송신 통신용 레지스터(35)에 기록된 내용은 데이터 통신용 프로세서 간 통신(37)에 설치된 데이터 버퍼(38)에 순차 저장된다. 데이터 버퍼(38)에 최초로 저장된 어드레스는 제2 프로세서(32)의 수신 통신용 레지스터(36)에 전송되어, 기록된다. 그리고, 제1 프로세서(31)에서는 원격 절차 호출 라이브러리(42)가 제2 프로세서(32)에 대하여 절차의 호출을 통지한다(단계 S4).
제2 프로세서(32)는 제1 프로세서(31)로부터 절차의 호출 통지를 수취하면, 실행 중인 처리를 중단한다(단계 S5). 그리고, 제2 프로세서(32)는 수신 통신용 레지스터(36)로부터 절차의 어드레스를 독입한다(단계 S6). 그에 따라, 데이터 버퍼(38)에 어드레스의 다음에 저장된 인수 데이터가 제2 프로세서(32)의 수신 통신용 레지스터(36)에 전송되어 기록된다. 제2 프로세서(32)는 수신 통신용 레지스터(36)로부터 절차의 인수 데이터를 독입한다(단계 S7). 이것을 반복하여, 제2 프로세서(32)는 모든 인수 데이터를 독입한다. 제2 프로세서(32)는 독입한 인수 데이터를 절차의 인수에 설정하고(단계 S8), 절차의 기동 처리를 행하여(단계 S9), 절차를 실행한다(단계 S10).
[실시예 2]
도 5는 실시예 2의 하드웨어 구성의 주요부를 나타내는 블록도이다. 도 5에 나타낸 바와 같이, 실시예 2에서는 데이터 통신용 프로세서 간 통신(37)에 데이터 버퍼(38)가 설치되어 있지 않다. 따라서, 실시예 2에서는 제2 프로세서(32)가 수신 통신용 레지스터(36)로부터 데이터를 독출하고 나서, 제1 프로세서(31)의 송신 통 신용 레지스터(35)에 다음 데이터가 기록된다. 그 밖의 하드웨어 구성과 소프트웨어의 구성은, 실시예 1과 동일하기 때문에, 중복되는 설명을 생략한다.
도 6은 실시예 2의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다. 도 6에 나타낸 바와 같이, 우선, 제1 프로세서(31)에서는 클라이언트 프로그램(41)이 원격 절차 호출 라이브러리(42)에 대하여 원격 절차 호출을 요구한다(단계 S11). 그에 따라, 제1 프로세서(31)에서는 원격 절차 호출 라이브러리(42)가 요구된 절차의 어드레스를 송신 통신용 레지스터(35)에 기록한다(단계 S12). 송신 통신용 레지스터(35)에 기록된 어드레스는 제2 프로세서(32)의 수신 통신용 레지스터(36)에 전송되어 기록된다.
제1 프로세서(31)의 원격 절차 호출 라이브러리(42)는 제2 프로세서(32)에 대하여 절차의 호출을 통지한다(단계 S13). 제2 프로세서(32)는 제1 프로세서(31)로부터 절차의 호출 통지를 수취하면, 실행 중인 처리를 중단한다(단계 S14). 그리고, 제2 프로세서(32)는 수신 통신용 레지스터(36)로부터 절차의 어드레스를 독입한다(단계 S15). 제2 프로세서(32)는 독입한 어드레스의 절차의 기동 처리를 행하여(단계 S16), 절차를 실행한다(단계 S17).
[실시예 3]
실시예 3의 하드웨어 구성과 소프트웨어의 구성은, 실시예 2와 동일하기 때문에, 중복되는 설명을 생략한다. 도 7은 실시예 3의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다. 도 7에 나타낸 바와 같이, 제2 프로세서(32)는, 상시, 제1 프로세서(31)로부터의 절차의 기동 통지를 대기하고 있다(단계 S21). 그 상태에 서, 우선, 제1 프로세서(31)에서는 클라이언트 프로그램(41)이 원격 절차 호출 라이브러리(42)에 대하여 원격 절차 호출을 요구한다(단계 S22). 그에 따라, 제1 프로세서(31)에서는 원격 절차 호출 라이브러리(42)가 요구된 절차의 어드레스를 송신 통신용 레지스터(35)에 기록한다(단계 S23). 송신 통신용 레지스터(35)에 기록된 어드레스는 제2 프로세서(32)의 수신 통신용 레지스터(36)에 전송되어 기록된다.
제1 프로세서(31)의 원격 절차 호출 라이브러리(42)는 제2 프로세서(32)에 대하여 절차의 호출을 통지한다(단계 S24). 제2 프로세서(32)는 제1 프로세서(31)로부터 절차의 호출 통지를 수취하면, 절차의 기동 통지 대기 상태를 해제하고, 수신 통신용 레지스터(36)로부터 절차의 어드레스를 독입한다(단계 S25). 제2 프로세서(32)는 독입한 어드레스의 절차의 기동 처리를 행하여(단계 S26), 절차를 실행한다(단계 S27).
[실시예 4]
도 8은 실시예 4의 하드웨어 구성의 주요부를 나타내는 블록도이다. 도 8에 나타낸 바와 같이, 실시예 4에서는 데이터 통신용 프로세서 간 통신(37)이 설치되어 있지 않다. 그 대신, 제1 프로세서(31)와 제2 프로세서(32)가 공유하는 공유 메모리(34) 상에, 프로세서 간의 데이터 통신에 사용되는 데이터 통신용 영역(51)이 설치되어 있다. 따라서, 실시예 4에서는, 제1 프로세서(31)는 이 데이터 통신용 영역(51)에 호출하는 절차의 어드레스를 기록하고, 제2 프로세서(32)는 이 데이터 통신용 영역(51)으로부터 그 어드레스를 독출한다. 그 밖의 하드웨어 구성과 소프트 웨어의 구성은 실시예 2와 동일하기 때문에, 중복되는 설명을 생략한다.
도 9는 실시예 4의 절차 호출 방법의 순서를 나타내는 플로우 챠트이다. 도 9에 나타낸 바와 같이, 우선, 제1 프로세서(31)에서는 클라이언트 프로그램(41)이 원격 절차 호출 라이브러리(42)에 대하여 원격 절차 호출을 요구한다(단계 S31). 그에 따라, 제1 프로세서(31)에서는 원격 절차 호출 라이브러리(42)가 요구된 절차의 어드레스를 공유 메모리(34)의 데이터 통신용 영역(51)에 기록한다(단계 S32).
제1 프로세서(31)의 원격 절차 호출 라이브러리(42)는 제2 프로세서(32)에 대하여 절차의 호출을 통지한다(단계 S33). 제2 프로세서(32)는 제1 프로세서(31)로부터 절차의 호출 통지를 수취하면, 실행 중인 처리를 중단하고(단계 S34), 공유 메모리(34)의 데이터 통신용 영역(51)으로부터 절차의 어드레스를 독입한다(단계 S35). 제2 프로세서(32)는 독입한 어드레스의 절차의 기동 처리를 행하여(단계 S36), 절차를 실행한다(단계 S37).
이상과 같이, 본 발명에 따른 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법, 절차 호출 프로그램 및 기록 매체는, 복수의 프로세서가 동일한 메모리를 물리적으로 공유하는 구성의 멀티 프로세서에 유용하며, 특히, 멀티 프로세서에 의해 병렬 처리를 행하는 컴퓨터 시스템에 적합하다.
Claims (10)
- 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능한 복수의 프로세서가 동일한 메모리를 공유하고, 또한 상기 메모리에 상기 프로세서가 각각 독립된 어드레스 공간을 갖는 공유 메모리형 멀티 프로세서의 제1 프로세서가 제2 프로세서에 대하여 절차 호출을 행하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법으로서,상기 제1 프로세서가 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 지정하여, 동 제2 프로세서에 대하여 절차의 호출을 행하는 공정과,상기 제2 프로세서가 상기 제1 프로세서에 의해 지정된 어드레스에 있는 절차를 기동하여 실행하는 공정을 포함하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능한 복수의 프로세서가 동일한 메모리를 공유하고, 또한 상기 메모리에 상기 프로세서가 각각 독립된 어드레스 공간을 갖는 공유 메모리형 멀티 프로세서의 제1 프로세서가 제2 프로세서에 대하여 절차 호출을 행하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법으로서,상기 제1 프로세서가 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레 스를 지정하는 공정과,상기 제1 프로세서가 상기 제2 프로세서에 대하여 절차의 호출을 통지하는 공정을 포함하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능한 복수의 프로세서가 동일한 메모리를 공유하고, 또한 상기 메모리에 상기 프로세서가 각각 독립된 어드레스 공간을 갖는 공유 메모리형 멀티 프로세서의 제1 프로세서가 제2 프로세서에 대하여 절차 호출을 행하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법으로서,상기 제2 프로세서가 상기 제1 프로세서에 의해 지정된, 동 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 독입하는 공정과,상기 제2 프로세서가 상기 제1 프로세서에 의해 지정된 어드레스에 있는 절차를 기동하는 공정과,상기 제2 프로세서가 기동한 절차를 실행하는 공정을 포함하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 제1항 또는 제3항에 있어서, 상기 제2 프로세서는 상기 제1 프로세서로부터 절차의 호출 통지를 수취하면, 실행 중인 처리를 중단하고, 상기 제1 프로세서에 의해 호출된 절차를 실행하기 위한 처리를 개시하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 제1항 또는 제3항에 있어서, 상기 제2 프로세서는 절차의 호출 통지가 전송되어 오는 것을 대기하여, 상기 제1 프로세서로부터 절차의 호출 통지를 수취하면, 상기 제1 프로세서에 의해 호출된 절차를 실행하기 위한 처리를 개시하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 제1항에 있어서, 상기 제1 프로세서는 동 제1 프로세서가 내장하는 레지스터에, 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 기록하고,상기 제2 프로세서는 상기 프로세서 간 통신을 통해 상기 레지스터로부터 전송되어, 동 제2 프로세서가 내장하는 레지스터에 기록된 어드레스를 독입하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법.
- 제1항에 있어서, 상기 제1 프로세서는 상기 제2 프로세서와 공유하는 상기 메모리의 데이터 통신용 영역에, 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 기록하고,상기 제2 프로세서는 상기 데이터 통신용 영역으로부터, 상기 제1 프로세서에 의해 기록된 어드레스를 독입하는 것을 특징으로 하는 공유 메모리형 멀티 프로 세서에 있어서의 절차 호출 방법.
- 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능한 복수의 프로세서가 동일한 메모리를 공유하고, 또한 상기 메모리에 상기 프로세서가 각각 독립된 어드레스 공간을 갖는 공유 메모리형 멀티 프로세서의 제1 프로세서가 제2 프로세서에 대하여 절차 호출을 실행시키는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체로서, 상기 절차 호출 프로그램은,상기 제1 프로세서에 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 지정시켜, 동 제2 프로세서에 대하여 절차의 호출을 실행시키는 공정과,상기 제2 프로세서에 상기 제1 프로세서에 의해 지정된 어드레스에 있는 절차를 기동하여 실행시키는 공정을 포함하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
- 상호 버스를 이용한 프로세서 간 통신을 통해 통신 가능한 복수의 프로세서가 동일한 메모리를 공유하고, 또한 상기 메모리에 상기 프로세서가 각각 독립된 어드레스 공간을 갖는 공유 메모리형 멀티 프로세서의 제1 프로세서가 제2 프로세서에 대하여 절차 호출을 실행시키는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체로서, 상기 절차 호출 프로그램은,상기 제1 프로세서에 상기 제2 프로세서의 어드레스 공간에 존재하는 어드레스를 지정시키는 공정과,상기 제1 프로세서에 상기 제2 프로세서에 대하여 절차의 호출을 통지시키는 공정을 포함하는 것을 특징으로 하는 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체.
- 삭제
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2006/301532 WO2007088581A1 (ja) | 2006-01-31 | 2006-01-31 | 共有メモリ型マルチプロセッサにおける手続き呼び出し方法、手続き呼び出しプログラムおよび記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080089621A KR20080089621A (ko) | 2008-10-07 |
KR100978083B1 true KR100978083B1 (ko) | 2010-08-26 |
Family
ID=38327168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087018943A KR100978083B1 (ko) | 2006-01-31 | 2006-01-31 | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20080288967A1 (ko) |
JP (1) | JP5163128B2 (ko) |
KR (1) | KR100978083B1 (ko) |
WO (1) | WO2007088581A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102667714B (zh) * | 2009-11-25 | 2015-08-05 | 飞思卡尔半导体公司 | 支持访问由操作系统环境外的资源提供的功能的方法和系统 |
US8832217B2 (en) * | 2011-09-29 | 2014-09-09 | Oracle International Corporation | System and method for supporting different message queues in a transactional middleware machine environment |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816540A (ja) * | 1994-06-29 | 1996-01-19 | Fujitsu Ltd | 並列計算機におけるメッセージ通信方式 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6228865A (ja) * | 1985-07-30 | 1987-02-06 | Nec Corp | マルチプロセツサ・システム |
JPS6389962A (ja) * | 1986-10-03 | 1988-04-20 | Hitachi Ltd | プロセツサ割り当て方法および装置 |
JPH03257655A (ja) * | 1990-03-08 | 1991-11-18 | Nec Corp | 識別番号付与方式 |
JPH03269758A (ja) * | 1990-03-20 | 1991-12-02 | Fujitsu Ltd | マルチプロセッサ上における並列実行方式 |
JPH04102158A (ja) * | 1990-08-21 | 1992-04-03 | Fujitsu Ltd | 密結合マルチプロセッサ |
JPH0581210A (ja) * | 1991-09-20 | 1993-04-02 | Hitachi Ltd | クラスタ・マルチプロセツサ協調処理方法 |
JPH07302235A (ja) * | 1994-04-30 | 1995-11-14 | Nec Corp | クライアント・サーバシステム |
JP3322754B2 (ja) * | 1994-05-17 | 2002-09-09 | 富士通株式会社 | 並列計算機 |
US5774479A (en) * | 1995-03-30 | 1998-06-30 | Motorola, Inc. | Method and system for remote procedure call via an unreliable communication channel using multiple retransmission timers |
US5887172A (en) * | 1996-01-10 | 1999-03-23 | Sun Microsystems, Inc. | Remote procedure call system and method for RPC mechanism independent client and server interfaces interoperable with any of a plurality of remote procedure call backends |
US6487607B1 (en) * | 1998-02-26 | 2002-11-26 | Sun Microsystems, Inc. | Methods and apparatus for remote method invocation |
JP3849951B2 (ja) * | 1997-02-27 | 2006-11-22 | 株式会社日立製作所 | 主記憶共有型マルチプロセッサ |
JPH11120156A (ja) * | 1997-10-17 | 1999-04-30 | Nec Corp | マルチプロセッサシステムにおけるデータ通信方式 |
US6302318B1 (en) * | 1999-06-29 | 2001-10-16 | General Electric Company | Method of providing wear-resistant coatings, and related articles |
US6904601B1 (en) * | 2000-04-07 | 2005-06-07 | International Business Machines Corporation | Method and system for providing remote procedure calls in a multiprocessing system |
US6829769B2 (en) * | 2000-10-04 | 2004-12-07 | Microsoft Corporation | High performance interprocess communication |
-
2006
- 2006-01-31 KR KR1020087018943A patent/KR100978083B1/ko not_active IP Right Cessation
- 2006-01-31 JP JP2007556721A patent/JP5163128B2/ja not_active Expired - Fee Related
- 2006-01-31 WO PCT/JP2006/301532 patent/WO2007088581A1/ja active Application Filing
-
2008
- 2008-07-31 US US12/184,000 patent/US20080288967A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0816540A (ja) * | 1994-06-29 | 1996-01-19 | Fujitsu Ltd | 並列計算機におけるメッセージ通信方式 |
Also Published As
Publication number | Publication date |
---|---|
US20080288967A1 (en) | 2008-11-20 |
WO2007088581A1 (ja) | 2007-08-09 |
JP5163128B2 (ja) | 2013-03-13 |
JPWO2007088581A1 (ja) | 2009-06-25 |
KR20080089621A (ko) | 2008-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11500689B2 (en) | Communication method and apparatus | |
US5867704A (en) | Multiprocessor system shaving processor based idle state detection and method of executing tasks in such a multiprocessor system | |
US7484043B2 (en) | Multiprocessor system with dynamic cache coherency regions | |
US20050021913A1 (en) | Multiprocessor computer system having multiple coherency regions and software process migration between coherency regions without cache purges | |
US6345352B1 (en) | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions | |
KR101080845B1 (ko) | 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 | |
JP6514329B2 (ja) | メモリアクセス方法、スイッチ、およびマルチプロセッサシステム | |
US7962926B2 (en) | Method, system, and program storage device for generating a retry message when a thread in a real-time application is unavailable to process a request to utilize the real-time application | |
US9183150B2 (en) | Memory sharing by processors | |
CN115174673A (zh) | 具备低延迟处理器的数据处理装置、数据处理方法及设备 | |
JP5213485B2 (ja) | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム | |
JPH0748197B2 (ja) | データ・バスを確保する方法 | |
KR100978082B1 (ko) | 공유 메모리형 멀티 프로세서에 있어서의 비동기 원격 절차 호출 방법 및 비동기 원격 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
KR100978083B1 (ko) | 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
JP4414447B2 (ja) | 情報処理装置、情報処理システムおよび情報処理方法 | |
JPH04291660A (ja) | プロセッサ間通信方法およびそのための並列プロセッサ | |
KR100921504B1 (ko) | 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법 | |
CN117539802B (zh) | 一种缓存操作方法、系统以及相关装置 | |
JP4833911B2 (ja) | プロセッサユニットおよび情報処理方法 | |
CN118633075A (zh) | 一种处理请求的方法、装置及系统 | |
CN112306698A (zh) | 一种numa系统中的临界区执行方法及装置 | |
JP2012256087A (ja) | データ処理装置及びデータ処理方法 | |
JPH03252856A (ja) | プログラムの処理方式 | |
JPS6037933B2 (ja) | 電子計算機のメモリ・アクセス方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130801 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |