KR20030084553A - 멀티프로세서 장치 - Google Patents

멀티프로세서 장치 Download PDF

Info

Publication number
KR20030084553A
KR20030084553A KR1020020066465A KR20020066465A KR20030084553A KR 20030084553 A KR20030084553 A KR 20030084553A KR 1020020066465 A KR1020020066465 A KR 1020020066465A KR 20020066465 A KR20020066465 A KR 20020066465A KR 20030084553 A KR20030084553 A KR 20030084553A
Authority
KR
South Korea
Prior art keywords
memory
processor
data
bus
unit
Prior art date
Application number
KR1020020066465A
Other languages
English (en)
Other versions
KR100496116B1 (ko
Inventor
우에노도모유끼
Original Assignee
후지쯔 가부시끼가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 후지쯔 가부시끼가이샤 filed Critical 후지쯔 가부시끼가이샤
Publication of KR20030084553A publication Critical patent/KR20030084553A/ko
Application granted granted Critical
Publication of KR100496116B1 publication Critical patent/KR100496116B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/251Local memory within processor subsystem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/253Centralized memory

Abstract

예를 들면 실시간계의 멀티프로세서 처리에서 이용하기에 적합한 멀티프로세서 장치에서, 필요로 하는 데이터에의 액세스의 대기 시간을 감소시켜, 처리 속도를 고속화시킨다. 각 프로세서 유닛(101, 201, 301)이, 프로세서(110, 210, 310)와, 상기한 프로세서와 버스 사이에 설치되며 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 로컬 메모리부(140, 240, 340)와, 프로세서에 의해 공통 메모리의 내용이 갱신된 경우에 로컬 메모리부의 갱신 처리를 제어하는 복사 회로(150, 250, 350)를 구비하며, 로컬 메모리부에서 공통 메모리에 기억된 데이터의 판독 명령을 프로세서로부터 받으면 그 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성한다.

Description

멀티프로세서 장치{MULTIPROCESSOR APPARATUS}
본 발명은, 예를 들면 실시간계의 멀티프로세서 처리에서 이용하기에 적합한 멀티프로세서 장치에 관한 것이다.
멀티프로세서 장치는, 복수의 프로세서를 구비함과 함께 메모리 자원 등에 대해서는 공유 버스를 개재함으로써 각 프로세서간에서 공유하는 구성을 가진 것으로, 일을 복수의 프로세서에서 분담하여 처리함으로써 처리 성능을 향상시킬 수 있을 뿐만 아니라, 시스템을 복수대 준비하는 것에 비해, 프로세서 이외의 부분을 공용할 수 있기 때문에 장치 제조 비용을 저감시킬 수 있는 것이다.
도 13은 멀티프로세서 장치를 도시하는 블록도이며, 이 멀티프로세서 장치(700)는, 3개의 프로세서 유닛(100, 200, 300)과 함께, 버스 조정 회로(500) 및 공통 메모리(600)가, 공통 메모리 버스(400)를 통해 서로 버스 접속되어 구성되어 있다.
또한, 프로세서 유닛(100)은, 프로세서(110), 캐쉬 메모리(120) 및 스누프 회로(130)를 구비하여 구성되며, 프로세서 유닛(200)은, 프로세서(210), 캐쉬 메모리(220) 및 스누프 회로(230)를 구비하여 구성되고, 프로세서 유닛(300)은, 프로세서(310), 캐쉬 메모리(320) 및 스누프 회로(330)를 구비하여 구성되어 있다.
또한, 각 프로세서 유닛(100, 200, 300)의 캐쉬 메모리(120, 220, 320)는, 공통 메모리(600) 상의 일부의 데이터의 복사본을 저장하는 것이다. 또한, 스누프 회로(130, 230, 330)는, 공통 메모리 버스(400) 상의 트랜잭션을 감시하여 캐쉬 메모리(120, 220, 320) 상의 데이터가 갱신된 경우에는 동일 데이터를 무효화하는 제어를 행하는 것이다.
또한, 버스 조정 회로(500)는, 각 프로세서(110, 210, 310)가 요구하는 공통 메모리 버스의 사용권을 조정하는 것이고, 공통 메모리(600)는, 각 프로세서 유닛(100, 200, 300)에서의 처리를 행할 때에 공통으로 이용되는 메모리이다.
이러한 구성의 멀티프로세서 장치(700)에서는, 각 프로세서(110, 210, 310)와 공통 메모리 버스(400) 사이에, 공통 메모리(600)에 저장되어 있는 데이터의 일부의 복사본을 갖는 고속의 캐쉬 메모리(120, 220, 320)를 배치하고 있기 때문에, 공통 메모리(600)에의 액세스의 대부분을 캐쉬 메모리에의 액세스로 대체하여, 액세스 속도가 매우 느린 공통 메모리(600)에 대한 직접 액세스의 빈도를 삭감하고 있다. 이에 의해, 캐쉬 메모리(120, 220, 320)를 구비하고 있지 않은 경우에 비해, 프로세서 처리 속도의 저하를 억제할 수 있도록 되어 있다.
또한, 스누프 회로(130, 230, 330)는, 공통 메모리(600) 상의 데이터와 캐쉬 메모리(120, 220, 320) 상의 데이터의 정합성을 확보하기 위해, 캐쉬 메모리(120, 220, 320)의 무효화 처리를 행하는 것이다.
구체적으로는, 각 프로세서 유닛(100, 200, 300)의 스누프 회로(130, 230, 330)는, 공통 메모리 버스(400)를 항상 감시하며, 다른 프로세서 유닛의 프로세서에 의해 공통 메모리(600)의 데이터가 재기입된 경우에, 자신의 프로세서 유닛에서의 캐쉬 메모리 상에 재기입 전의 데이터가 존재하고 있는지의 여부를 체크하고, 존재하고 있는 경우에는 해당 데이터를 무효화한다. 계속해서, 해당 데이터가 필요한 경우에는 캐쉬 메모리 상에 데이터는 존재하지 않는다고 판단함과 함께 공통 메모리(600)로부터 직접 재기입 후 데이터를 액세스함으로써, 공통 메모리(600) 상의 데이터와 캐쉬 메모리(120, 220, 320) 상의 데이터의 정합성을 유지하도록 하고 있다.
또한, 특개평8-30510호 공보에서는, 스누프를 외부 회로에서 통합하여 행하여, 해당하는 데이터를 저장하고 있는 캐쉬 메모리에 대해서만 무효화 처리를 행하게 함으로써, 무효화 처리를 필요로 하지 않는 프로세서에는 통상대로 캐쉬 메모리에의 액세스를 가능하게 함으로써, 프로세서 처리 정지 기간을 삭감하는 기술이 개시되어 있다.
그런데, 상술한 도 13에 도시한 멀티프로세서 장치(700)의 캐쉬 메모리(120, 220, 320)는, 공통 메모리(600)의 일부의 복사본이기 때문에, 모든 액세스를 캐쉬 메모리(120, 220, 320)에의 액세스로 대체할 수 없으므로, 프로세서(110, 210, 310)가 요구한 데이터가 대응하는 캐쉬 메모리(120, 220, 320) 상에 없는 경우, 해당하는 데이터를 공통 메모리 버스(400)를 경유하여 공통 메모리(600)로부터 판독하게 된다. 이것은, 상술한 액세스 속도가 느린 공통 메모리(600)에 대한 직접 액세스의 빈도를 증대시키는 요인이 된다.
그 때문에, 프로세서 처리를 예측하여 연속한 수 바이트의 데이터를 사전에 캐쉬 메모리(120, 220, 320)에 복사해 두는 것 등의 방법에 의해, 공통 메모리 상의 데이터 액세스를 캐쉬 메모리 상의 액세스로 대체하는 비율(이후, 캐시 히트율로 칭함)을 향상시킴으로써, 프로세서 처리 속도의 저하를 억제하는 방법이 고려되고 있다.
예를 들면, 특개소60-183652호 공보에는, 통상의 캐쉬 메모리(다이내믹 캐시) 외에, 높은 빈도의 액세스가 예상되는 데이터를 특별한 명령을 사용하여, 캐쉬 메모리 상에 고정적으로 할당하는 고정 캐쉬 메모리(스태틱 캐시)를 준비하고, 데이터의 사용 빈도에 따른 캐쉬 메모리 관리를 행함으로써, 캐시 히트율을 확보하여, 프로세서 처리 속도의 저하를 방지한다고 하는 기술이 기재되어 있다.
그러나, 이러한 도 13에 도시한 멀티프로세서 장치에서, 특히 실시간계의 프로세서 처리를 행하는 경우, 작은 태스크를 다수 동시에 또한 병렬로 동작시킬 필요가 있으며, 발생하는 사상에 따른 처리를 행할 필요가 있기 때문에, 다음에 기동되는 태스크를 예측할 수 없다. 이러한 경우, 프로세서(110, 210, 310)에서는, 다종이며 불연속적인 데이터에 대하여 액세스하는 경우가 많아져, 캐쉬 메모리(120, 220, 320) 상에 데이터가 존재할 가능성이 낮아진다. 이에 의해, 공통 메모리(600)에 액세스할 가능성이 높아진다.
각 프로세서(110)가 공통 메모리(600)에 대하여 액세스하는 횟수가 증가하면, 상술한 바와 같이, 공통 메모리 버스(400)에서의 버스 경합이 다발하고, 경합에 의한 오버헤드 시간에 의해 공통 메모리(600)에의 액세스 대기 시간이 증대하여, 프로세서 처리 속도를 저하시킬 때의 지장이 되는 과제가 있다.
또한, 특개소60-183652호 공보에 기재된 기술에서는, 캐쉬 메모리 상에 고정적으로 할당된 데이터가, 다른 프로세서에 의해 빈번하게 데이터 갱신되는 경우에는, 해당 데이터에 대한 무효화 처리가 다발하기 때문에, 캐시 히트율이 저하되고, 갱신 후의 데이터를 판독하기 위해 공통 메모리 버스의 트랜잭션을 증가시키게 된다. 이 공통 메모리 버스의 트랜잭션 증가는, 공통 메모리에의 액세스 대기 시간 증대를 조장시키게 된다.
또한, 특개평8-30510호 공보에 기재된 기술에서는, 스누프를 필요로 하지 않는 프로세서는 통상과 같이 캐쉬 메모리를 액세스할 수 있지만, 캐시 히트율의 저하에는 대응할 수 없어, 데이터 판독을 위한 공통 메모리 버스의 트랜잭션을 증가시키게 된다.
본 발명은, 이러한 과제를 감안하여 창안된 것으로, 공통 메모리 버스에서의 경합 제어 시간을 단축하여, 필요로 하는 데이터에의 액세스의 대기 시간을 감소시켜, 처리 속도를 고속화시킬 수 있도록 한 멀티프로세서 장치를 제공하는 것을 목적으로 한다.
도 1은 본 발명의 제1 실시예에 따른 멀티프로세서 장치를 도시하는 블록도.
도 2는 제1 실시예에서의 로컬 메모리부의 구성에 주목한 블록도.
도 3은 제1 실시예에서의 복사 회로의 구성에 주목한 블록도.
도 4의 (a)는 자신의 프로세서 유닛으로부터의 기입 요구 시의 신호 경로를 도시하는 도면, 도 4의 (b)는 다른 프로세서 유닛으로부터의 기입 요구 시의 신호 경로를 도시하는 도면, 도 4의 (c)는 자신의 프로세서 유닛으로부터의 판독 요구 시의 신호 경로를 도시하는 도면.
도 5는 본 발명의 제2 실시예에 따른 멀티프로세서 장치를 도시하는 블록도.
도 6은 본 발명의 제2 실시예에 따른 스테이터스 메모리의 구성을 도시하는 도면.
도 7은 본 발명의 제3 실시예에 따른 멀티프로세서 장치를 도시하는 블록도.
도 8은 본 발명의 제3 실시예에 따른 멀티프로세서 장치를 상세히 도시하는 블록도.
도 9는 제3 실시예에 따른 폴링 제어 회로의 구성에 주목한 블록도.
도 10은 제3 실시예에서의 폴링 제어 동작을 설명하기 위한 타임차트.
도 11은 본 발명의 제4 실시예에 따른 멀티프로세서 장치를 도시하는 블록도.
도 12는 제4 실시예에서의 복사 회로의 구성에 주목한 블록도.
도 13은 멀티프로세서 장치를 도시하는 블록도.
<도면의 주요 부분에 대한 부호의 설명>
10∼40 : 멀티프로세서 장치
100, 101, 100A∼100C : 프로세서 유닛
110, 210, 310 : 프로세서
120, 220, 320 : 캐쉬 메모리
130, 230, 330 : 스누프 회로
140, 160, 240, 260, 340, 360 : 로컬 메모리부
141, 146 : 제1 버퍼
142 : 제2 버퍼
143 : 메모리 액세스 아비트레이션 회로(메모리 액세스 조정 회로)
144 : 복사 메모리
145 : 스테이터스 메모리
146-1 : 스테이터스 판정부
146-2 : 판독 처리부
150, 250, 350, 150A, 250A, 350A : 복사 회로
151 : 트랜잭션 감시부
152 : 복사 처리 제어부(갱신 제어부)
153 : 트랜잭션 응답부
200, 201, 200A∼200C : 프로세서 유닛
300, 301, 300A∼300C : 프로세서 유닛
400 : 공통 메모리 버스
410 : 경합용 공통 메모리 버스
420 : 개별용 공통 메모리 버스
401 : 어드레스 버스
402 : 데이터 버스
403 : 제어 버스
500 : 버스 조정 회로
510 : 폴링 제어 회로
511 : 버스 사용 중 응답 감시부
512 : 버스 사용 허가 통지부
600 : 공통 메모리
610 : 경합용 공통 메모리
620 : 개별용 공통 메모리
700 : 멀티프로세서 장치
이를 위해, 본 발명의 멀티프로세서 장치는, 어플리케이션 처리를 독립적으로 행할 수 있는 복수의 프로세서 유닛과, 각 프로세서 유닛에서의 어플리케이션 처리에 공통으로 이용되는 데이터를 기억해 두는 공통 메모리와, 상기한 복수의 프로세서 유닛과 공통 메모리를 서로 접속하는 버스를 구비함과 함께, 상기한 각 프로세서 유닛이, 상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와, 상기한 프로세서와 버스 사이에 설치되며, 상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 로컬 메모리부와, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 공통 메모리의 내용이 갱신된 경우에 상기 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하고, 상기 로컬 메모리부에서, 상기 공통 메모리에 기억된 데이터의 판독 명령을 상기 프로세서로부터 받으면, 상기 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성된 것을 특징으로 한다(청구항 1).
상술한 멀티프로세서 장치에서는, 바람직하게는, 상기한 각 프로세서 유닛의 로컬 메모리부를, 상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 영역을 구비하여 이루어지는 복사 메모리와, 상기 프로세서로부터의 상기 판독 명령을 위한 어드레스 정보 및 판독된 데이터를 일단 보존하는 제1 버퍼와, 상기 프로세서로부터의 상기 공통 메모리에의 갱신 요구의 대상이 되는 어드레스 및 데이터와 함께, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 갱신된 상기 공통 메모리의 내용을 상기 버스를 통해 일단 보존할 수 있는 제2 버퍼와, 상기 프로세서로부터의 상기 판독 명령에 기초한 상기 복사 메모리에 대한 판독 액세스와, 상기 제2 버퍼에 보존되어 있는 내용에 따라 상기 복사 메모리를 갱신하기 위한 갱신 액세스를, 상기 복사 회로로부터의 제어에 기초하여 조정하는 메모리 액세스 조정 회로를 구비하여 구성할 수 있다(청구항 2).
또한, 상기 로컬 메모리부가, 상기한 복사 메모리 상에서의 어드레스 영역에 대응하여, 갱신된 데이터가 저장되어 있는지의 여부가 기록되는 스테이터스 메모리를 구비함과 함께, 상기 제1 버퍼가, 상기 프로세서로부터의 판독 명령의 어드레스에 대응한 데이터를 복사 메모리로부터 판독할 때에, 상기 스테이터스 메모리의 기록을 판정하는 스테이터스 판정부와, 상기 스테이터스 판정부에서의 판정 결과에 기초하여, 상기 판독 명령의 어드레스에 대응한 갱신 데이터가 보존되어 있다고 판정된 경우에는 상기 보존된 데이터를 상기 프로세서에 출력하는 한편, 상기 갱신 데이터가 보존되어 있다고 판정되지 않은 경우에는, 상기 공통 메모리에 대한 판독을 위한 처리를 행하는 판독 처리부를 구비하여 구성하는 것으로 해도 된다(청구항 3).
또한, 상기 프로세서로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 상기 복수의 프로세서 유닛에서의 어플리케이션 처리에 의해 실시간으로 사용하는 빈도의 고저를 분류하는 분류부를 구비하고, 상기 공통 메모리가, 상기 분류부에 의해 상기 빈도가 높다고 분류된 데이터를 기억하는 제1 공통 메모리와, 상기 분류부에 의해 상기 빈도가 낮다고 분류된 데이터를 기억하는 제2 공통 메모리를 구비함과 함께, 상기 버스가, 상기한 복수의 프로세서 유닛과 제1 공통 메모리를 서로 접속하는 제1 버스와, 상기한 복수의 프로세서 유닛과 제2 공통 메모리를 서로 접속하는 제2 버스를 구비하고, 상기한 프로세서 유닛에 의한 제1 버스의 사용을 조정하는 제1 버스 조정 회로와, 상기한 프로세서 유닛에 의한 제2 버스의 사용을 조정하는 제2 버스 조정 회로를 구비하며, 상기한 각 프로세서 유닛의 로컬 메모리부가, 상기 제1 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제1 로컬 메모리부와, 상기 제2 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제2 로컬 메모리부를 구비하고, 또한, 상기 복사 회로가, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 제1 공통 메모리의 내용이 갱신된 경우에 상기 제1 로컬 메모리부의 갱신 처리를 제어하기 위해 구성됨과 함께, 상기한 제1 로컬 메모리부에서, 상기 제1 공통 메모리에 기억된 데이터의 판독명령을 상기한 프로세서로부터 받으면, 상기 제1 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성하는 것으로 해도 된다(청구항 4).
또한, 본 발명의 멀티프로세서 장치는, 어플리케이션 처리를 독립적으로 행하기 위한 복수의 프로세서 유닛과, 상기한 복수의 프로세서 유닛을 서로 접속하는 버스를 구비함과 함께, 상기한 각 프로세서 유닛이, 데이터의 판독 및 기입을 행하여, 상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와, 상기 프로세서에서의 상기 어플리케이션 처리를 위한 데이터를 기억하기 위한 로컬 메모리부와, 상기 복수의 프로세서 유닛의 어느 하나의 로컬 메모리부의 내용이 갱신된 경우에, 자신의 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하여 구성된 것을 특징으로 한다(청구항 5).
이하, 도면을 참조하면서, 본 발명의 실시예를 설명한다.
[A] 제1 실시예의 설명
도 1은 본 발명의 제1 실시예에 따른 멀티프로세서 장치를 도시하는 블록도로서, 이 멀티프로세서 장치(10)는, 특히 실시간 처리(리얼타임 처리)를 어플리케이션으로서 실행하는 경우에서도, 공통 메모리(600) 상의 데이터에의 액세스의 대기 시간을 감소시키는 것으로, 예를 들면 3개의 프로세서 유닛(101, 201, 301)과, 버스 조정 회로(500)와, 공통 메모리(600)가 공통 메모리 버스(400)를 통해 서로 버스 접속되어 구성되어 있다.
여기서, 도 1에 도시한 멀티프로세서 장치(10)에서, 공통 메모리(600)는, 상술한 도 13의 경우와 마찬가지로, 각 프로세서 유닛(101, 201, 301)에서의 어플리케이션 처리에 공통으로 이용되는 데이터를 기억해 두는 것이다.
또한, 공통 메모리 버스(400)는, 3개의 프로세서 유닛(101, 201, 301), 버스 조정 회로(500) 및 공통 메모리(600) 사이에서 필요한 정보의 교환을 행하는 것으로, 후술하는 도 3에 도시한 바와 같이, 어드레스 수수를 위한 어드레스 버스(401), 데이터 수수를 위한 데이터 버스(402) 및 제어 정보의 수수를 위한 제어 버스(403)를 구비하여 구성되어 있다.
또한, 버스 조정 회로(500)는, 공통 메모리 버스(400)에 접속되어 프로세서 유닛(101, 201, 301)에 의한 버스의 사용을 조정하는 것이다. 즉, 버스 조정 회로(500)는, 공통 메모리(600)에 대한 액세스가 경합한 경우의 조정을 행하는 것이다.
또한, 프로세서 유닛(101, 201, 301)은, 각각 별개의 어플리케이션 처리를 독립적으로 행하는 것으로, 프로세서 유닛(101)은, 프로세서(110)와 함께, 본원 발명의 특징적인 구성 요소인 로컬 메모리부(140) 및 복사 회로(150)를 구비하여 구성되어 있다. 마찬가지로, 프로세서 유닛(201)은, 프로세서(210), 로컬 메모리부(240) 및 복사 회로(250)를 구비하여 구성되며, 프로세서 유닛(301)은, 프로세서(310), 로컬 메모리부(340) 및 복사 회로(350)를 구비하여 구성되어 있다.
여기서, 상기한 각 프로세서 유닛(101, 201, 301)에서의 프로세서(110, 210, 310)는, 각각의 어플리케이션 처리를 위한 명령 실행 처리를 행하는 것이며, 이 어플리케이션 처리로서는 예를 들면 실시간 처리가 요구되는 것으로 할 수 있다.
또한, 로컬 메모리부(140, 240, 340)는, 프로세서(110, 210, 310)와 공통 메모리 버스(400) 사이에 설치되며, 공통 메모리(600)의 모든 내용 데이터의 복사본을 기억하기 위한 것으로, 상세하게는 후술하는 도 2에 도시한 바와 같은 구성을 갖고 있다.
또한, 복사 회로(150, 250, 350)는, 복수의 프로세서 유닛(101, 201, 301) 의 어느 하나의 프로세서(110, 210, 310)에 의해 공통 메모리(600)의 내용이 갱신된 경우에, 자신의 프로세서 유닛(101, 201, 301)에서의 로컬 메모리부(140, 240, 340)의 갱신 처리를 제어하는 것이다.
이에 의해, 어느 하나의 프로세서(110, 210, 310)에서 공통 메모리(600)의 기입이 있었다고 해도, 복사 회로(150, 250, 350)에서 이것에 추종하여 로컬 메모리부(140, 240, 340)의 내용을 갱신할 수 있다. 즉, 로컬 메모리부(140, 240, 340)에서는, 프로세서(110, 210, 310)로부터, 공통 메모리(600)에 기억된 데이터의 판독 명령을 받으면, 해당 로컬 메모리부(140, 240, 340)에 복사된 대응 데이터를 판독하여 출력할 수 있도록 되어 있다.
또한, 로컬 메모리부(140)는, 상세하게는 도 2에 도시한 바와 같이, 제1 버퍼(141), 제2 버퍼(142), 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 구비하여 구성되어 있다. 또한, 다른 로컬 메모리(240, 340)에 대해서도, 로컬 메모리부(140)와 마찬가지의 구성을 갖고 있기 때문에, 이하에서는 로컬 메모리부(140)의 구성에 주목하여 상술해 가기로 한다.
여기서, 복사 메모리(144)는, 공통 메모리(600)의 모든 내용 데이터의 복사본을 기억하기 위한 영역을 구비한 것이다. 제1 버퍼(141)는, 프로세서(110)와 버스에 의해 양방향으로 접속되며, 프로세서(110)로부터의 상기 판독 명령을 위한 어드레스 정보 및 판독된 데이터(판독 데이터)와, 후술하는 제2 버퍼(142)에 출력되는 프로세서(110)로부터 공통 메모리(600)에 대한 갱신 요구의 대상이 되는 어드레스 및 데이터(기입 데이터)에 대하여, 일단 보존하는 것이다.
또한, 제2 버퍼(142)는, 제1 버퍼(141)로부터의 프로세서(110)로부터의 공통 메모리(600)에의 갱신 요구의 대상이 되는 어드레스 및 데이터(기입 데이터)와 함께, 프로세서 유닛(201, 301)의 어느 하나의 프로세서(210, 310)에 의해 갱신된 공통 메모리(600)의 내용(기입 데이터 및 어드레스)을 공통 메모리 버스(400)를 통해 입력받아 일단 보존할 수 있는 것이다. 또한, 이 제2 버퍼(142)에 저장된 어드레스 및 데이터는, 후술하는 바와 같이 복사 회로(150)의 제어에 기초하여 복사 메모리(144)에 기입되도록 되어 있다.
다시 말하면, 제2 버퍼(142)는, 제1 버퍼(141)와, 제1 버퍼(141)로부터 제2 버퍼(142)를 향하는 방향으로 어드레스 및 데이터가 건네어지도록 1방향으로 버스 접속되며, 제1 버퍼(141)를 통해 프로세서(110)로부터의 기입 대상이 되는 어드레스 및 데이터를 입력받아 일단 보존하도록 되어 있다. 또한, 제2 버퍼(142)는, 공통 메모리 버스(400)에 접속되고, 이 공통 메모리 버스(400)를 통해 프로세서(210) 또는 프로세서(310)에 의해 갱신된 공통 메모리(600)의 내용을 입력받아 일단 보존하도록 되어 있다.
또한, 이 제2 버퍼(142)는, 프로세서(110)로부터 공통 메모리(600)에 대한 갱신 요구의 대상이 되는 어드레스 및 데이터를 보존한 경우에, 버스 조정회로(500)에 대한 공통 메모리 버스(400)의 사용 요구를, 제어 버스(403)(도 3 참조)를 통해 출력하는 기능을 갖고 있다.
또한, 메모리 액세스 아비트레이션 회로(메모리 액세스 조정 회로)(143)는, 프로세서(110)로부터의 판독 명령에 기초한 복사 메모리(144)에 대한 판독 액세스와, 제2 버퍼(142)에 보존되어 있는 내용에 따라 복사 메모리(144)를 갱신하기 위한 갱신 액세스를, 복사 회로(150)로부터의 제어에 기초하여 조정하는 것이다. 다시 말하면, 제1 버퍼(141)측의 판독 액세스와 제2 버퍼(142)측의 기입 액세스가, 복사 메모리(144)에 대하여 정상적으로 행해지도록 버스 조정을 행하는 것이다.
즉, 메모리 액세스 아비트레이션 회로(143)는, 복사 메모리(144)와 양방향으로 버스 접속되는 한편, 제1 버퍼(141)와의 사이에서는 제1 버퍼(141)를 향해 판독 대상의 어드레스 및 데이터가 출력되도록 버스 접속됨과 함께, 제2 버퍼(142)와의 사이에서는 제2 버퍼(142)로부터의 갱신 대상의 어드레스 및 데이터가 입력되도록 버스 접속되어, 이들 제1 버퍼(141) 및 제2 버퍼(142)와 복사 메모리(144) 사이의 데이터 교환을 조정하도록 되어 있다.
또한, 복사 회로(150)는, 상세하게는 도 3에 도시한 바와 같이, 트랜잭션 감시부(151) 및 복사 처리 제어부(152)를 구비하여 구성되어 있다. 또한, 다른 복사 회로(250, 350)에 대해서도, 복사 회로(150)와 마찬가지의 구성을 갖고 있기 때문에, 이하에서는 복사 회로(150)의 구성에 주목하여 상술해 가기로 한다.
여기서, 트랜잭션 감시부(151)는, 공통 메모리 버스(400)의 트랜잭션을 감시하는 것이다. 구체적으로는, 어느 하나의 프로세스 유닛(101, 201, 301)으로부터공통 메모리(600)에의 데이터의 갱신 명령에 대한 공통 메모리(600)로부터의 갱신 완료 응답이 있는지의 여부를 감시하는 것이다.
즉, 트랜잭션 감시부(151)에서는, 상술한 공통 메모리(600)로부터 제어 버스(403)를 통해 갱신 완료 응답이 있었을 때에, 이 갱신 어드레스 및 데이터를 취득하기 위한 취득 타이밍을 제2 버퍼(142)에 공급하도록 되어 있다.
다시 말하면, 제2 버퍼(142)에서는, 트랜잭션 감시부(151)로부터의 취득 타이밍에 기초하여, 액세스 중에 어드레스 버스(401) 및 데이터 버스(402) 상에서 참조 가능한 갱신 어드레스 및 갱신 데이터를 취득하도록 되어 있다.
또한, 갱신 제어부로서의 복사 처리 제어부(152)는, 트랜잭션 감시부(151)로부터의 감시 결과에 기초하여, 로컬 메모리부(140)에서의 갱신 처리를 제어하는 것이다.
구체적으로는, 복사 처리 제어부(152)는, 트랜잭션 감시부(151)에서의 공통 메모리 버스(400)의 트랜잭션의 감시 결과, 프로세서(110, 210, 310)로부터 공통 메모리(600)에의 데이터의 갱신 명령에 대한 공통 메모리(600)로부터의 갱신 완료 응답을 받으면, 그 공통 메모리(600)에의 갱신 내용에 따라 로컬 메모리부(140)의 갱신 처리를 제어하도록 되어 있다.
상술한 복사 처리 제어부(152)에서는, 로컬 메모리(140)의 갱신 처리의 제어로서, 메모리 액세스 아비트레이션 회로(143)에 대하여, 제2 버퍼(142)에 취득된 데이터의 기입에 의한 갱신 액세스의 요구를 출력함과 함께, 이 메모리 액세스 아비트레이션 회로(143)로부터의 액세스 허가의 응답을 받으면, 복사 메모리(144)에대하여 갱신 지시를 출력한다.
이에 의해, 복사 회로(150, 250, 350)가, 어느 하나의 프로세서(110, 210, 310)로부터 공통 메모리(600)에의 데이터의 갱신 명령에 대한 공통 메모리(600)로부터의 갱신 완료 응답을 받으면, 그 공통 메모리(600)에의 갱신 내용에 따라 로컬 메모리부(140, 240, 340)의 갱신 처리를 제어하도록 되어 있다.
상술한 구성에 의해, 본 발명의 제1 실시예에 따른 멀티프로세서 장치(10)의 프로세서 유닛(101, 201, 301)에서의 어플리케이션 처리를 실행할 때는, 운용 개시 시에, 로컬 메모리부(140, 240, 340) 내의 복사 메모리 및 공통 메모리(600)의 모든 데이터를 일치시키기 위해, 초기화 처리로서 복사 메모리의 모든 영역에 대하여 공통 메모리(600)의 내용의 기입을 행한다(모든 영역 기입 처리).
상술한 초기화 처리가 행해지면, 각각의 프로세서 유닛(101, 201, 301)의 프로세서(110, 210, 310)에서는, 각각, 이하에 상술하는 바와 같이, 로컬 메모리부(140, 240, 340)로부터 데이터를 판독함과 함께, 공통 메모리(600)에 기억된 데이터를 갱신한다. 또한, 이하에서는, 프로세서 유닛(101)의 동작에 주목하여 설명하겠지만, 다른 프로세서(210, 310)의 동작에 대해서도, 프로세서(110)로부터의 요구와 기본적으로 마찬가지이다.
우선, 자신의 프로세서(110)로부터 공통 메모리(600)에 대하여 기입 요구(기입 액세스 요구 또는 갱신 요구)를 발행한 경우의 동작에 대하여 상술한다.
즉, 프로세서(110)가 공통 메모리(600)에 대하여 기입 요구로서의 기입 액세스를 행하면, 프로세서(110)가 출력한 어드레스 및 데이터는 제1 버퍼(141)를 경유하여 제2 버퍼(142)에 일시적으로 저장된다(도 4의 (a)의 A1, A2 참조).
제2 버퍼(142)에서는, 공통 메모리 버스(400)를 통해 버스 조정 회로(500)에 버스 사용권을 요구한다. 버스 조정 회로(500)에서는, 다른 프로세서 유닛(201, 301)에서의 공통 메모리 버스(400)의 사용 상황에 기초하여, 공통 메모리 버스(400)의 사용을 허가하는 취지의 응답을, 제어 버스(403)(도 3 참조)를 통해 출력한다.
또한, 제2 버퍼(142)에서는, 버스 조정 회로(500)로부터의 응답을 받아 버스 사용권을 확보하면, 공통 메모리 버스(400)의 어드레스 버스(401) 및 데이터 버스(402)에 대하여, 일시적으로 저장되어 있던 어드레스 및 데이터를 각각 송출한다(도 4의 (a)의 A3 참조).
공통 메모리(600)에서는, 제2 버퍼(142)로부터의 어드레스의 해당 데이터를, 제2 버퍼(142)로부터의 데이터로 재기입하고, 이 재기입 처리가 완료되면, 제어 버스(403)를 통해 공통 메모리 갱신 응답으로서의 정상 응답 신호를 출력한다.
도 3에 도시한 바와 같이, 복사 회로(150)의 트랜잭션 감시부(151)에서는, 공통 메모리 버스(400)의 트랜잭션의 감시를 행하여, 상술한 공통 메모리(600)로부터의 정상 응답 신호를 검출하면(도 4의 (a)의 A4 참조), 그 취지를 복사 처리 제어부(152)에 출력한다.
복사 처리 제어부(152)에서는, 제2 버퍼(142)에 저장된 어드레스 및 데이터를, 복사 메모리(144)에 복사하기 위해, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어한다(도 4의 (a)의 A5 참조). 그 후, 제2 버퍼(142)의 내용이 복사 메모리(144)에 기입되고(도 4의 (a)의 A6 참조), 공통 메모리(600) 상의 데이터와 복사 메모리(144)의 상태를 일치시킬 수 있다.
계속해서, 프로세서(110) 이외의 다른 프로세서(210, 310)로부터 공통 메모리(600)에 대하여 라이트 액세스를 행한 경우의, 로컬 메모리부(140)의 갱신 동작에 대하여 상술한다.
즉, 제2 버퍼(142)에서는, 다른 프로세서(210, 310)가 공통 메모리(600)에 대하여 기입 액세스를 행한 경우에, 복사 회로(150)로부터 취득 타이밍을 받아, 공통 메모리 버스(400) 상의 어드레스 및 데이터를 일시적으로 저장한다.
구체적으로는, 제2 버퍼(142)의 트랜잭션 감시부(151)에서는, 공통 메모리 버스(400)의 트랜잭션의 감시를 행하여, 상술한 공통 메모리(600)로부터의 정상 응답 신호를 검출하면(도 4의 (b)의 B1 참조), 제2 버퍼(142)에 대하여 공통 메모리 버스(400) 상(즉, 공통 메모리(600) 상)의 갱신된 어드레스 및 데이터를 취득하기 위한 타이밍을 부여함과 함께(도 4의 (b)의 B2 참조), 갱신이 행해진 취지를 복사 처리 제어부(152)에 출력한다.
상기한 취득 타이밍을 수취한 제2 버퍼(142)에서는, 공통 메모리(600) 상에서 갱신이 있었던 어드레스 및 데이터를 공통 메모리 버스(400)를 통해 취득한다(도 4의 (b)의 B3 참조).
그 후, 갱신이 행해진 취지를 수취한 복사 처리 제어부(152)에서는, 공통 메모리 버스(400) 상으로부터 제2 버퍼(142)에 취득된 어드레스 및 데이터를, 복사 메모리(144)에 복사하기 위해, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어한다(도 4의 (b)의 B4 참조). 그 후, 제2 버퍼(142)의 내용이 복사 메모리(144)에 기입되고(도 4의 (b)의 B5 참조), 공통 메모리(600) 상의 데이터와 복사 메모리(144)의 상태를 일치시킬 수 있다.
상술한 바와 같이, 공통 메모리(600)의 내용이 갱신되면, 복사 회로(150, 250, 350)의 제어에 의해, 로컬 메모리부(140, 240, 340)의 복사 메모리의 내용을 공통 메모리(600)의 내용에 부합하도록 갱신하고 있기 때문에, 프로세서(110, 210, 310)로부터의 리드 액세스 시에는, 공통 메모리(600)에 액세스하지 않고, 각각의 로컬 메모리부(140, 240, 340)의 내용으로부터 데이터를 판독할 수 있다.
예를 들면, 자신의 프로세서(110)가 판독 요구(리드 액세스 요구)를 발행한 경우에는, 프로세서(110)가 공통 메모리(600)에 대하여 리드 액세스를 행하면, 제1 버퍼(141)에서는, 프로세서(110)가 출력한 어드레스를 일시적으로 저장한다(도 4의 (c)의 C1 참조).
제1 버퍼(141)는, 복사 메모리(144) 상에 있는 공통 메모리(600)의 복사본을 판독하기 위해, 메모리 액세스 아비트레이션 회로(143)에 복사 메모리(144)에의 리드 액세스를 요구한다(도 4의 (c)의 C2 참조). 리드 가능한 상태이면, 메모리 액세스 아비트레이션 회로(143)에서는, 제1 버퍼(141)가 일시 저장하고 있는 어드레스에 대응하는 데이터를 복사 메모리(144)로부터 판독하고, 제1 버퍼(141)를 경유하여 프로세서(110)에 반송한다.
이에 의해, 로컬 메모리부(140, 240, 340)에서, 공통 메모리(600)에 기억된 데이터의 판독 명령을 프로세서(110, 210, 310)로부터 받으면, 해당 로컬메모리부(140, 240, 340)에 복사된 대응 데이터를 판독하여 출력한다.
이와 같이, 제1 실시예에 따른 멀티프로세서 장치(10)에 따르면, 프로세서 유닛(101, 201, 301)이, 프로세서(110, 210, 310)와 로컬 메모리부(140, 240, 340)와 복사 회로(150, 250, 350)를 구비함으로써, 공통 메모리(600)의 모든 데이터의 복사본을, 각각의 프로세서(110, 210, 310)가 관리하고 있는 복사 메모리 내에 가짐으로써, 공통 메모리 버스(400) 상에서 리드 액세스에 의한 트랜잭션이 발생하지 않기 때문에, 공통 메모리 버스(400)(경합 제어)에서의 경합을 최소한으로 억제할 수 있다. 이에 의해, 버스 경합에 의한 액세스의 대기를 짧게 하는 것이 가능해진다. 특히, 실시간 처리를 행하는 경우라도, 캐쉬 메모리 방식과 같이 캐쉬 메모리 상의 데이터의 무효화 처리나 재판독 처리 등이 증가하지도 않고, 필요로 하는 공통 메모리(600) 상의 데이터에의 액세스를 최소의 대기로 행할 수 있다.
[B] 제2 실시예의 설명
도 5는 본 발명의 제2 실시예에 따른 멀티프로세서 장치의 주요부를 도시하는 블록도로서, 이 멀티프로세서 장치(20)는, 상술한 제1 실시예에서의 것(부호 10 참조)에 비해, 기능이 부가된 로컬 메모리부를 구비하여 이루어지는 프로세서 유닛(100A, 200A, 300A)을 구비하고 있는 점이 다르며, 그 이외의 구성에 대해서는 기본적으로 마찬가지이다.
또한, 도 5에서는, 프로세서 유닛(100A)에 주목하여 도시하고 있지만, 프로세서 유닛(200A, 300A)에 대해서도, 프로세서 유닛(100A)과 마찬가지의 구성을 갖고 있다.
여기서, 로컬 메모리부(140A)는, 제1 버퍼(141) 대신에 스테이터스 판정 기능을 갖는 제1 버퍼(146)를 구비하는 점과 함께, 스테이터스 메모리(145)가 추가되어 있는 점이, 상술한 제1 실시예에서의 로컬 메모리부(140)와 다르다. 또한, 제2 버퍼(142), 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)는, 상술한 제1 실시예의 경우와 마찬가지이다.
여기서, 스테이터스 메모리(145)는, 복사 메모리(144) 상에서의 어드레스 영역에 대응하여, 갱신된 데이터가 저장되어 있는지의 여부를 기록하는 것으로, 상세하게는 도 6에 도시한 바와 같은 구성을 갖고 있다.
즉, 이 스테이터스 메모리(145)는, 복사 메모리(144)의 최소 액세스 단위(예를 들면 어드레스 'A'∼'Z')에 대응한 스테이터스 비트('a'∼'z')를 구비하여 구성되어 있다. 또한, 도 6은, 복사 메모리(144) 및 스테이터스 메모리(145)가, 메모리 액세스 아비트레이션 회로(143)로부터의 어드레스 정보, 데이터 정보 및 리드 신호와, 복사 회로(150)로부터의 라이트 신호를 병렬적으로 수수할 수 있는 것을 나타내고 있다.
또한, 스테이터스 메모리(145)에서의 최소 액세스 단위에 대응한 스테이터스 비트는, 복사 회로(150)에 의한 제어에 기초하여, 각각의 프로세서 유닛(100A, 200A, 300A)이 기동한 당초는, 「데이터 없음」을 나타내는 비트 값이 기억되고, 각 어드레스('A'∼'Z')에 대하여 최초의 공통 메모리(600)에의 액세스가 행해졌을 때에, 「데이터 있음」을 나타내는 비트 값을 기억하도록 되어 있다.
즉, 복사 회로(150)의 복사 처리 회로(152)에서는, 상술한 제1 실시예의 경우와 마찬가지로, 트랜잭션 감시부(151)로부터 공통 메모리(600)의 갱신 완료 응답을 수신한 취지를 받으면, 제2 버퍼(142)에 취득되어 저장된 어드레스 및 데이터를, 복사 메모리(144)에 복사하기 위해, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어하지만, 동시에 스테이터스 메모리(145)에서의 갱신 어드레스에 대응하는 스테이터스 비트에 대하여 「데이터 있음」을 나타내는 비트 값을 기억한다.
또한, 상술한 스테이터스 메모리(145)에 대하여 「데이터 있음」을 기입할 때, 예를 들면 트랜잭션 감시부(151)에서 정상 응답 신호를 검출할 수 없었던 경우 등, 제2 버퍼(142)에 보존되어 있는 내용을 복사 메모리(144)에 갱신하기 위한 갱신 액세스를 정상적으로 완료할 수 없었던 경우에는, 스테이터스 메모리(145)의 대응 어드레스 영역에는, 「데이터 없음」 상태를 기록하도록 되어 있으며, 이에 의해, 복사 메모리(144) 내의 데이터의 신뢰도를 향상시키고 있다.
또한, 제1 버퍼(146)는, 상술한 제1 실시예의 경우와 마찬가지로, 프로세서(110)와 버스에 의해 양방향 접속되며, 리드 데이터와 라이트 데이터에 대하여, 일단 보존하는 것이지만, 스테이터스 판정부(146-1) 및 판독 처리부(146-2)를 구비하고 있다.
제1 버퍼(146)의 스테이터스 판정부(146-1)는, 프로세서(110)로부터의 판독 명령의 어드레스에 대응한 데이터를 복사 메모리(144)로부터 판독할 때에, 스테이터스 메모리(145)의 기록을 판정하는 것이다. 즉, 스테이터스 판정부(146-1)에서는, 판독 명령의 어드레스에 대응한 스테이터스 비트를 스테이터스 메모리(145)로부터 판독하고, 판독한 스테이터스 비트의 내용이, 「데이터 있음」 및 「데이터 없음」 중 어느 비트인지를 판정하도록 되어 있다.
또한, 판독 처리부(146-2)는, 스테이터스 판정부(146-1)에서의 판정 결과에 기초하여, 판독 명령의 어드레스에 대응한 갱신 데이터가 보존되어 있다고 판정된 경우에는 보존된 데이터를 프로세서(110)에 출력하는 한편, 갱신 데이터가 보존되어 있다고 판정되지 않은 경우에는, 공통 메모리(600)에 대한 판독을 위한 처리를 행하는 것이다.
구체적으로는, 스테이터스 판정부(146-1)의 판정 결과, 스테이터스 메모리(145)의 스테이터스 비트의 정보가 「데이터 있음」이면, 최신의 데이터가 저장되어 있는 복사 메모리(144)로부터, 「데이터 없음」이면, 제2 버퍼(142)를 경유하여 공통 메모리(600)로부터, 각각 기억되어 있는 데이터를 리드하기 위한 처리를 행하는 것이다.
또한, 제2 버퍼(142)에서는, 공통 메모리(600)에 대하여 기입 액세스를 행하는 경우와 마찬가지로, 버스 조정 회로(500)에 버스 사용 요구를 출력하여, 버스 사용권을 취득한 후에, 공통 메모리(600) 상의 판독 대상이 되는 어드레스 및 데이터를 공통 메모리 버스(400)를 통해 취득한다.
또한, 상술한 제1 실시예에서는, 로컬 메모리부(140)에서의 제1, 제2 버퍼간의 데이터 버스 및 어드레스 버스는 제1 버퍼로부터 제2 버퍼를 향한 전송 방향뿐이었지만, 제2 실시예에서는, 제1, 제2 버퍼간은 양방향의 전송 방향으로 어드레스 및 데이터를 전송할 수 있는 버스로 구성한다.
상술한 구성에 의해, 본 발명의 제2 실시예에 따른 멀티프로세서 장치(20)에서는, 각 프로세서 유닛(100A, 200A, 300A)에서는, 스테이터스 메모리(프로세서 유닛(100A)에서는 부호 145)를 구비함과 함께, 제1 버퍼(146)에서, 복사 메모리(144)에 기억된 데이터가 갱신된 최신 데이터인지의 여부에 따라 리드 액세스를 행하고 있기 때문에, 상술한 제1 실시예의 경우와 같이, 운용 개시 시에 있어서의 복사 메모리(144)의 모든 영역 라이트 처리를 행할 필요가 없다.
여기서, 프로세서 유닛(100A)에 주목하여, 프로세서(110)로부터 공통 메모리(600)에 대하여 기입 요구가 발행된 경우의 처리에 대하여 상술한다.
즉, 프로세서(110)가 공통 메모리(600)에 대하여 라이트 액세스를 행하면, 프로세서(110)가 출력한 라이트 액세스의 대상이 되는 어드레스 및 데이터는 제1 버퍼(146)를 경유하여 제2 버퍼(142)에 일시적으로 저장된다.
제2 버퍼(142)에서는, 공통 메모리 버스(400)의 버스 조정 회로(500)에 버스 사용권을 요구하여, 버스 사용권을 확보하면, 공통 메모리 버스(400)에 대하여 일시적으로 저장하고 있던 어드레스 및 데이터를 송출한다.
또한, 복사 회로(150)의 트랜잭션 감시부(151)에서 공통 메모리(600)로부터의 정상 응답 신호를 검출하면, 복사 처리 제어부(152)에서는, 제2 버퍼(142)에 저장된 어드레스 및 데이터를 복사 메모리(144)에 복사하기 위해, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어하고, 공통 메모리(600) 상의 데이터와 복사 메모리의 상태를 일치시킨다. 이 때, 스테이터스 메모리(145)의 해당 어드레스의 스테이터스 비트에 「데이터 있음」을 기입한다.
계속해서, 프로세서(110)가 판독 요구를 발행한 경우에는, 이하에 도시한 바와 같이 동작한다.
우선, 프로세서(110)로부터의 판독 요구는 제1 버퍼(146)에 일시적으로 저장된다. 이 제1 버퍼(146)에서는, 판독 요구의 대상 어드레스에 해당한, 복사 메모리(144) 상에 있는 공통 메모리(600)의 복사 데이터, 및 스테이터스 메모리(145) 상에 있는 스테이터스 비트를 리드하기 위해, 메모리 액세스 아비트레이션 회로(143)에 복사 메모리(144)로부터의 리드 액세스를 요구한다.
리드 가능한 상태이면, 메모리 액세스 아비트레이션 회로(143)에서는, 제1 버퍼(146)가 일시 저장하고 있는 어드레스에 대응하는 복사 데이터를 복사 메모리(144)로부터, 스테이터스 비트를 스테이터스 메모리(145)로부터 각각 판독하여, 제1 버퍼(146)에 반송한다.
제1 버퍼(146)의 스테이터스 판정부(146-1)에서는, 스테이터스 메모리(145)로부터 판독한 스테이터스 비트가, 「데이터 있음」 및 「데이터 없음」 중 어느 것으로 되어 있는지를 판정하며, 이 스테이터스 비트가 「데이터 있음」인 경우에는, 판독 처리부(146-2)에서, 복사 메모리(144)로부터 판독한 데이터를 프로세서(110)에 반송한다.
또한, 스테이터스 판정부(146-1)에서, 「데이터 없음」의 스테이터스 비트를 판독한 경우에는, 판독 처리부(146-2)에서는, 제2 버퍼(142)를 경유하여 공통 메모리(600)로부터 해당하는 어드레스의 데이터를 판독하여, 프로세서(110)에 반송한다.
또한, 복사 회로(150)에서는, 공통 메모리(600)로부터의 정상 응답 신호(판독이 정상적으로 종료된 취지의 응답)를 검출하면, 제2 버퍼(142)에 저장된 어드레스 및 데이터를 복사 메모리(144)에 복사하기 위해, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어하여, 공통 메모리(600) 상의 데이터와 복사 메모리(144)의 상태를 일치시킨다. 이 때, 스테이터스 메모리(145)의 해당 어드레스의 스테이터스 비트에 「데이터 있음」을 기입한다.
계속해서, 프로세서(110) 이외의 다른 프로세서(210, 310)로부터 공통 메모리(600)에 대하여 기입 액세스를 행한 경우의, 로컬 메모리부(140)의 갱신 동작에 대하여 상술한다.
즉, 제2 버퍼(142)에서는, 상술한 제1 실시예의 경우와 마찬가지로, 다른 프로세서 유닛(200A, 300A)의 프로세서가 공통 메모리(600)에 대하여 라이트 액세스를 행한 경우에, 복사 회로(150)로부터 취득 타이밍을 받아, 공통 메모리 버스(400) 상의 어드레스 및 데이터를 일시적으로 저장한다.
또한, 복사 회로(150)의 복사 처리 제어부(152)에서는, 공통 메모리(600)로부터의 정상 응답 신호를 수신한 취지를 트랜잭션 감시부(151)로부터 받은 후, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어함으로써, 제2 버퍼(142)에 저장된 어드레스 및 데이터를 복사 메모리(144)에 복사시킨다. 이 때, 스테이터스 메모리(145)의 해당 어드레스의 스테이터스 비트에 「데이터 있음」을 기입한다.
그런데, 제2 실시예에서의 멀티프로세서 장치에서는, 뒤에 기동된 프로세서유닛이 있는 경우에는, 해당 프로세서 유닛의 복사 메모리 내에 공통 메모리(600)의 데이터가 복사되어 있지 않은 경우라도, 공통 메모리(600)로부터 직접 판독 데이터를 판독할 수 있기 때문에, 제1 실시예의 경우에 비해, 뒤에 기동되는 프로세서 유닛의 초기화 처리(복사 메모리의 모든 영역 라이트 처리)를 행할 필요가 없어져, 신속하게 운용을 개시할 수 있다.
이 때, 프로세서 기동 당초는 공통 메모리(600)로의 판독 액세스가 발생하기 때문에 공통 메모리 버스(400)에서의 경합이 일시적으로 증가되지만, 공통 메모리(600)의 모든 어드레스에의 1회 이상의 액세스가 행해진 시점으로부터, 모든 리드 액세스는 복사 메모리에 대하여 행해지게 되기 때문에, 그 후에는, 공통 메모리 버스(400)(경합 제어)에서의 경합을 최소한으로 억제할 수 있어, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해진다.
이와 같이, 본 발명의 제2 실시예에 따른 멀티프로세서 장치(20)에 따르면, 각 프로세서 유닛(100A, 200A, 300A)의 로컬 메모리부(프로세서 유닛(100A)의 경우에는 부호 140A)가, 스테이터스 메모리(프로세서 유닛(100A)의 경우에는 부호 145) 및 제1 버퍼(프로세서 유닛(100A)의 경우에는 부호 146)를 구비함으로써, 공통 메모리(600)의 데이터가 복사 메모리(프로세서 유닛(100A)의 경우에는 부호 144)에 복사되어 있는지의 여부에 따라, 각각의 프로세서(110, 210, 310)에 대하여 모순이 없는 판독 데이터를 출력할 수 있기 때문에, 상술한 제1 실시예의 경우와 마찬가지로, 공통 메모리 버스(400)(경합 제어)에서의 경합을 최소한으로 억제하여, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해지는 이점이 있을 뿐만 아니라,3개의 복사 메모리의 모든 데이터를 일치시키기 위한 초기화 처리를 생략할 수 있다.
또한, 상술한 스테이터스 메모리(프로세서 유닛(100A)의 경우에는 부호 145)에 대하여 「데이터 있음」을 기입할 때에, 예를 들면 트랜잭션 감시부(프로세서 유닛(100A)의 경우에는 부호 151, 도 3 참조)에서 정상 응답 신호를 검출할 수 없었던 경우 등, 제2 버퍼(프로세서 유닛(100A)의 경우에는 부호 142)에 보존되어 있는 내용을 복사 메모리(프로세서 유닛(100A)의 경우에는 부호 144)에 갱신하기 위한 갱신 액세스를 정상적으로 완료할 수 없었던 경우에는, 스테이터스 메모리(프로세서 유닛(100A)의 경우에는 부호 145)의 대응 어드레스 영역에는, 「데이터 없음」 상태를 기록할 수도 있고, 이와 같이 하면, 복사 메모리(프로세서 유닛(100A)의 경우에는 부호 144) 내의 데이터의 신뢰도를 보다 향상시킬 수 있는 이점도 있다.
[C] 제3 실시예의 설명
도 7은 본 발명의 제3 실시예에 따른 멀티프로세서 장치를 도시하는 블록도로서, 이 멀티프로세서 장치(30)는, 상술한 제1 실시예에서의 것(부호 10 참조)에 비해, 공통 메모리 버스로서 경합용 공통 메모리 버스(410)와 개별용 공통 메모리 버스(420)로 기능을 분리하여 구성함과 함께, 공통 메모리(600)로서 경합용 공통 메모리(610)와 개별용 공통 메모리(620)로 기능을 분리하여 구성하고 있는 점이 주로 다르다.
즉, 경합용 공통 메모리 버스(410)는 프로세서 유닛(100B, 200B, 300B), 경합용 공통 메모리(610) 및 버스 조정 회로(500)에 접속되고, 개별용 공통 메모리버스(420)에 대해서는, 프로세서 유닛(100B, 200B, 300B), 개별용 공통 메모리(620) 및 폴링 제어 회로(510)에 접속되어 있다. 또한, 이들 버스(410, 420)는 각각, 상술한 제1, 제2 실시예의 경우와 마찬가지로, 도시하지 않은 어드레스 버스, 데이터 버스 및 제어 버스를 구비하여 구성할 수 있다.
또한, 프로세서 유닛(100B, 200B, 300B)은, 상술한 제1 실시예의 경우에 비해, 2웨이의 로컬 메모리부(160, 260, 360)를 구비하고 있는 점이 다르며, 이 로컬 메모리부(160, 260, 360) 이외의 프로세서 및 복사 회로의 구성에 대해서는, 기본적으로 마찬가지이다. 또한, 도 7에서, 도 1과 동일한 부호는 거의 동일한 부분을 나타낸다.
또한, 각 프로세서 유닛(100B, 200B, 300B)에서 동작하는 소프트웨어는, 실시간으로 공통 사용하는 빈도가 높은 데이터와, 실시간으로 공통 사용하는 빈도가 낮은 데이터를 식별하여 동작한다. 후단의 로컬 메모리부(160, 260, 360) 등의 하드웨어에 대한 식별 통지는, 예를 들면 어드레스 영역을 분리하는 것이나, 종별 인식을 위한 특정 비트의 부가 비트를 설정함으로써 행한다.
여기서, 경합용 공통 메모리(제1 공통 메모리)(610)는, 프로세서 유닛(100B, 200B, 300B)에서의 어플리케이션 처리 시에, 실시간으로 액세스(사용)하는 빈도가 높은 데이터를 기억하는 것이다. 또한, 개별용 공통 메모리(제2 공통 메모리)(620)는, 예를 들면 장해 발생 시 프로세서(110, 210, 310)간에서 처리의 인계를 행하는 데이터와 같이, 데이터 수수의 실시간성이 낮은, 즉, 실시간으로 사용하는 빈도가 낮은 데이터를 기억하는 것이다.
또한, 로컬 메모리부(160)는, 도 8에 도시한 바와 같이, 공통/개별 판정부(170), 제1 로컬 메모리부(180) 및 제2 로컬 메모리부(190)를 구비하여 구성되어 있다. 마찬가지로, 로컬 메모리부(260)는, 도시하지 않은 공통/개별 판정부, 제1 로컬 메모리부 및 제2 로컬 메모리부를 구비하여 구성되며, 로컬 메모리부(360)에 대해서도 도시하지 않은 공통/개별 판정부, 제1 로컬 메모리부 및 제2 로컬 메모리부를 구비하여 구성되어 있다.
또한, 로컬 메모리부(260, 360)는, 로컬 메모리부(160)에 준한 거의 마찬가지의 구성을 갖고 있기 때문에, 이하에서는, 로컬 메모리부(160)의 구성에 주목하여 설명해 가기로 한다.
여기서, 로컬 메모리부(160)의 공통/개별 판정부(170)는, 프로세서(110)로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 상술한 어드레스 영역이나 특정 비트가 부가되어 있는지의 여부 등에 기초하여, 프로세서 유닛(100B∼300B)간에서 실시간으로 공통 사용하는 빈도의 고저를 분류하는 것으로, 분류부로서 기능한다.
다시 말하면, 공통/개별 판정부(170)는, 프로세서(110)로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 경합용 공통 메모리(610) 상에 기억해야 할 실시간으로 공통 사용하는 빈도가 높은 데이터인지, 또는, 개별용 공통 메모리(620) 상에 기억해야 할, 장해 발생 시에 프로세서 유닛(100B∼300B)간에서 처리의 인계를 행하기 위한 데이터와 같이 데이터 수수의 실시간성이 낮은 데이터인지를 판정하는 것이다.
또한, 공통/개별 판정부(170)는, 상술한 판정 결과, 실시간으로 공통 사용하는 빈도가 높은 데이터인 경우에는 상술한 판독 또는 갱신의 명령을 제1 로컬 메모리부(180)에, 실시간으로 공통 사용하는 빈도가 낮은 데이터인 경우에는 상술한 판독 또는 갱신의 명령을 제2 로컬 메모리부(190)에, 각각 분류하여 출력하도록 되어 있다.
또한, 제1 로컬 메모리부(180)는, 경합용 공통 메모리(610)의 모든 내용 데이터의 복사본을 기억하기 위한 것으로, 도 8에 도시한 바와 같이, 상술한 제1 실시예에서의 로컬 메모리부(140)와 마찬가지로(도 2 참조), 제1 버퍼(141), 제2 버퍼(142), 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 구비하여 구성되어 있다.
즉, 복사 메모리(144)에서, 경합용 공통 메모리(610)의 모든 내용 데이터의 복사본을 기억하도록 되어 있다. 또한, 도 8에서, 도 2와 동일한 부호는 거의 동일한 부분을 나타내고 있다.
또한, 제2 로컬 메모리부(190)는, 개별용 공통 메모리(620)의 모든 내용 데이터의 복사본을 기억하기 위한 것으로, 제3 버퍼(147) 및 개별용 복사 메모리(148)를 구비하여 구성되어 있다.
여기서, 개별용 복사 메모리(148)는, 공통/개별 판정부(170)와 제3 버퍼(147) 사이에 개재되어, 개별용 공통 메모리(620) 내의 모든 내용 데이터의 복사본을 저장하는 것이다. 또한, 제3 버퍼(147)는, 개별용 복사 메모리(148) 및 개별용 공통 메모리 버스(420) 사이에 개재되어, 개별용 복사 메모리(148) 내에서,후술하는 폴링 제어 회로(510)의 제어에 기초하는 폴링 간격 내에서 변경된 어드레스 및 데이터를 저장해 두는 것이다.
또한, 복사 회로(150)는, 프로세서 유닛(100B, 200B, 300B)의 어느 하나의 프로세서에 의해 경합용 공통 메모리(610)의 내용이 갱신된 경우에 제1 로컬 메모리부(180)에서의 복사 메모리(144)의 갱신 처리를 제어하도록 되어 있다.
이에 의해, 복사 메모리(144)에서는, 경합용 공통 메모리(610)의 내용이 프로세서 유닛(100B, 200B, 300B)의 어느 것에서 갱신된 경우에 있어서도, 복사 메모리(144)의 내용도 해당 경합용 공통 메모리(610)에 부합하도록 추종하여 갱신하고 있기 때문에, 제1 로컬 메모리부(180)에서, 경합용 공통 메모리(610)에 기억된 데이터의 판독 명령을 프로세서(110)로부터 받은 경우에도, 해당 제1 로컬 메모리부(180)에 복사된 대응 데이터를 판독하여 출력할 수 있다.
또한, 버스 조정 회로(500)는, 경합용 공통 메모리 버스(410)에 접속되어, 프로세서 유닛(100B, 200B, 300B)에 의한 경합용 공통 메모리(610)에 대한 액세스가 경합한 경우의 버스의 사용을 조정하는 것이다.
또한, 폴링 제어 회로(510)는, 프로세서 유닛(100B, 200B, 300B)에 의한 개별용 공통 메모리 버스(420)의 사용을 관리하는 제2 버스 사용 관리 회로로서 기능하는 것으로, 제3 버퍼(147)와 개별용 공통 메모리(620) 사이의 개별용 공통 메모리 버스(420)를 폴링 방식으로 데이터 액세스의 제어를 행하도록 되어 있다.
여기서, 폴링 제어 회로(510)는, 예를 들면 도 9에 도시한 바와 같이, 버스 사용 중 응답 감시부(511) 및 버스 사용 허가 통지부(512)를 구비하여 구성되어 있다.
또한, 버스 사용 중 응답 감시부(511)는, 각 프로세서 유닛(100B, 200B, 300B)으로부터 개별용 공통 메모리 버스(420)를 통해 입력되는 버스 사용 중 신호 응답을 감시하고, 사용 중 응답 신호가 무효로 되었을 때, 또는 프로세서 유닛(100B, 200B, 300B)으로부터 버스 사용 중 응답이 일정 시간 없었을 때에, 버스 사용 허가 통지부(512)에 대하여 버스 미사용 통지를 행하는 것이다.
또한, 버스 사용 허가 통지부(512)는, 버스 사용 중 응답 감시부(511)로부터의 버스 미사용 통지를 받아, 다음에 개별용 공통 메모리 버스(420)의 사용권을 부여하는 프로세서 유닛에 대하여, 버스 사용 허가를 통지하는 것이다.
예를 들면, 버스 사용 허가 통지부(512)에서, 프로세서 유닛(100B)용으로 버스 사용 허가를 통지한 후〔도 10의 (a)의 시점 t1〕, 버스 사용 중 응답 감시부(511)에서는, 프로세서 유닛(100B)으로부터의 버스 사용 중 응답 신호를 받는다〔도 10의 (b)의 시점 t2〕. 이에 의해, 프로세서 유닛(100B)에서는, 개별용 공통 메모리 버스(420)를 사용할 수 있다〔도 10의 (g)의 시점 t2∼t3〕.
계속해서, 버스 사용 중 응답 감시부(511)에서, 프로세서 유닛(100B)으로부터의 버스 사용 중 응답 신호가 무효로 되면〔도 10의 (b)의 시점 t3〕, 버스 사용 허가 통지부(512)에 대하여 버스 미사용 통지를 행한다. 이 버스 미사용 통지를 받은 버스 사용 허가 통지부(512)에서는, 다음에 개별용 공통 메모리 버스(420)의 사용권을 부여하는 프로세서 유닛(200B)에 대하여, 버스 사용 허가를 통지한다〔도 10의 (c)의 시점 t4〕.
또한, 이 경우에는, 프로세서 유닛(200B)으로부터 버스 사용 중 응답이 일정 시간 없다〔도 10의 (d)의 시점 t4∼t5〕. 이 때문에, 버스 사용 중 응답 감시부(511)에서는 버스 사용 허가 통지부(512)에 대하여 버스 미사용 통지를 행하고, 버스 사용 허가 통지부(512)에서는, 다음에 개별용 공통 메모리 버스(420)의 사용권을 부여하는 프로세서 유닛(300B)에 대하여, 버스 사용 허가를 통지한다〔도 10의 (e)의 시점 t5〕.
이에 의해, 프로세서 유닛(300B)에서는, 버스 사용 중 응답 신호를 출력하여〔도 10의 (f)의 시점 t6∼t7〕, 개별용 공통 메모리 버스(420)를 사용할 수 있다〔도 10의 (g)의 시점 t6∼t7〕.
상술한 구성에 의해, 본 발명의 제3 실시예에 따른 멀티프로세서 장치(30)에서는, 예를 들면 프로세서 유닛(100B)의 프로세서(110)에서는, 액세스 대상의 데이터에 관하여 실시간으로 공통 사용하는 빈도가 높은 데이터인지 또는 빈도가 낮은 데이터인지를 식별하여, 하드웨어에서 식별할 수 있는 정보 형식으로, 데이터의 판독 또는 기입의 액세스 요구를 행한다. 또한, 이하에서는, 프로세서 유닛(100B)에 주목하여 상술하겠지만, 다른 프로세서 유닛(200B, 300B)에서도 기본적으로 마찬가지이다.
프로세서(110)로부터의 액세스 요구를 받은 로컬 메모리부(160)의 공통/개별 판정부(170)에서는, 예를 들면 어드레스 영역이나 플래그의 부가 상태 등에 기초하여, 프로세서 유닛(100B, 200B, 300B)간에서의 데이터 수수의 실시간성의 고저를 판정한다.
공통/개별 판정부(170)에서는, 실시간으로 공통 사용하는 빈도가 낮은 데이터가, 기입 액세스 대상이다라고 판정된 경우에는, 개별용 복사 메모리(148)에 기입을 행함과 함께, 제3 버퍼(147) 및 개별용 공통 메모리 버스(420)를 통해 개별용 공통 메모리(620)에 액세스한다.
또한, 개별용 공통 메모리(620)에 기억된 데이터의 판독 요구에 대해서는, 개별용 복사 메모리(148)에 기입된 데이터를 판독하여 출력함으로써, 개별용 공통 메모리(620)에 액세스할 필요가 없어진다.
이에 의해, 실시간으로 공통 사용하는 빈도가 낮은 데이터에 대한 액세스를, 실시간으로 공통 사용하는 빈도가 높은 데이터의 액세스에 대하여 분리할 수 있기 때문에, 공통 메모리에의 느린 액세스 시간에 의해 프로세서 처리 시간이 증가되지는 않는다.
또한, 공통/개별 판정부(170)에서는, 실시간으로 공통 사용하는 빈도가 높은 데이터가, 기입 액세스 대상이다라고 판정된 경우에는, 상술한 제1 실시예의 경우와 마찬가지로, 경합용 공통 메모리 버스(410)를 통해 경합용 공통 메모리(620)에 기입이 행해지는 한편, 복사 회로(150)의 제어에 의해, 복사 메모리(144)의 내용을 갱신할 수 있다. 따라서, 실시간으로 공통 사용하는 빈도가 높은 데이터가, 판독 액세스 대상인 경우에는, 복사 메모리(144)에의 액세스만으로 완료되므로, 경합용 공통 메모리 버스(410)에 액세스할 필요가 없어진다.
이와 같이, 본 발명의 제3 실시예에 따른 멀티프로세서 장치(30)에 따르면, 상술한 제1 실시예의 경우와 마찬가지로, 경합용 공통 메모리(610)의 모든 데이터의 복사본을, 각각의 프로세서(110, 210, 310)가 관리하고 있는 복사 메모리 내에 가짐으로써, 경합용 공통 메모리 버스(410) 상에서 리드 액세스에 의한 트랜잭션이 발생하지 않기 때문에, 공통 메모리 버스(400)(경합 제어)에서의 경합을 최소한으로 억제하여, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해지는 이점이 있을 뿐만 아니라, 공통 메모리 버스로서, 경합용 공통 메모리 버스(410) 및 개별용 공통 메모리 버스(420)를 구비하고, 공통 메모리로서, 경합용 공통 메모리(610) 및 개별용 공통 메모리(620)를 구비하여 구성되어 있기 때문에, 실시간으로 공통 사용하는 빈도가 낮은 데이터에 대한 액세스를 다른 버스를 경유하여 액세스할 수 있고, 특히, 실시간 처리를 행하는 경우, 버스 경합에 의한 액세스의 대기를 보다 단축할 수 있다.
또한, 상술한 제3 실시예에서는, 개별용 공통 메모리 버스(420)를 폴링 제어 회로(510)에 의한 폴링 제어에 의해 버스 전송 제어를 행하고 있지만, 본 발명에 따르면 이에 한정되지 않고, 다른 공지의 방법을 이용하여 버스 전송 제어를 행하는 것도 가능하다.
또한, 상술한 제2 실시예에서의 스테이터스 메모리 및 제1 버퍼와 동등한 기능을, 본 실시예에 따른 멀티프로세서 장치에 적용하여 구성하는 것도 가능하다.
[D] 제4 실시예의 설명
도 11은 본 발명의 제4 실시예에 따른 멀티프로세서 장치를 도시하는 블록도로서, 이 멀티프로세서 장치(40)는, 상술한 제1 실시예의 멀티프로세서 장치(10)에 비해, 프로세서 유닛(100C, 200C, 300C)에서의 복사 회로(150A, 250A, 350A)의 구성이 다르고, 또한, 공통 메모리(600)를 구비하지 않고 구성되어 있는 점이 다르다.
즉, 도 11에 도시한 멀티프로세서 장치(40)에서도, 어플리케이션 처리를 독립적으로 행하기 위한 3개의 프로세서 유닛(100C, 200C, 300C)과, 프로세서 유닛(100C, 200C, 300C)과 함께, 버스 조정 회로(500)를 서로 접속하는 공통 메모리 버스(400)를 구비하여 구성되어 있다.
또한, 각 프로세서 유닛(100C, 200C, 300C)은, 상술한 제1 실시예의 경우와 마찬가지로, 데이터의 판독 및 기입을 행하여, 상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서(110, 210, 310)와, 각 프로세서에서의 어플리케이션 처리를 위한 데이터를 기억하기 위한 로컬 메모리부(140, 240, 340)를 구비함과 함께, 상술한 제1 실시예의 경우와 구성이 다른 복사 회로(150A, 250A, 350A)를 구비하여 구성되어 있다.
또한, 로컬 메모리부(140, 240, 340)에 대해서는, 상술한 제1 실시예의 경우와 기본적으로 마찬가지인, 제1 버퍼, 메모리 액세스 아비트레이션 회로 및 복사 메모리와 함께, 제2 버퍼를 구비하여 구성되어 있다(도 2의 부호 141∼144 참조).
여기서, 도 12에 도시한 로컬 메모리부(140)의 제2 버퍼(142)에 주목하면, 제1 실시예의 경우와 마찬가지로, 프로세서(110)로부터 복사 메모리(144)에의 갱신 요구의 대상이 되는 어드레스 및 데이터(라이트 데이터)와 함께, 다른 프로세서 유닛(200C, 300C)의 로컬 메모리부(240, 340)에서 갱신된 복사 메모리의 내용(라이트 데이터 및 어드레스)을 공통 메모리 버스(400)를 통해 입력받아 일단 보존할 수 있는 것이다. 또한, 이 제2 버퍼(142)에 저장된 어드레스 및 데이터에 대해서도, 후술하는 복사 회로(150A)의 제어에 기초하여 복사 메모리(144)에 기입되도록 되어 있다.
또한, 이 제2 버퍼(142)는, 프로세서(110)로부터 복사 메모리(144)에 대한 갱신 요구의 대상이 되는 어드레스 및 데이터를 보존한 경우에, 버스 조정 회로(500)에 대한 공통 메모리 버스(400)의 사용 요구를, 제어 버스(403)를 통해 출력하는 기능을 갖고 있다.
또한, 버스 조정 회로(500)는, 공통 메모리 버스(400)의 사용을 조정하는 것이다. 예를 들면, 상술한 바와 같은, 각 로컬 메모리부의 제2 버퍼로부터의 공통 메모리 버스(400)의 사용 요구를 받아, 해당 프로세서 유닛에 대하여 버스 사용 허가를 제어 버스(403)를 통해 통지하는 한편, 후술하는 복사 회로(150A, 250A, 350A)로부터의 트랜잭션 종료 통지를 받으면, 다음의 버스 사용 요구에 대하여 공통 메모리 버스(400)에의 트랜잭션 개시 지시를 행하는 것이다.
여기서, 복사 회로(150A, 250A, 350A)는, 3개의 프로세서 유닛(100C, 200C, 300C) 중의 어느 하나의 로컬 메모리부(140, 240, 340)의 내용이 갱신된 경우에, 자신의 로컬 메모리부의 갱신 처리를 제어하는 것으로, 트랜잭션 감시부, 갱신 제어부로서의 복사 처리 제어부 및 트랜잭션 응답부를 구비하고 있다.
또한, 프로세서 유닛(200C, 300C)은, 프로세서 유닛(100C)에 준하여 기본적으로 마찬가지의 구성을 갖고 있기 때문에, 이하에서는, 프로세서 유닛(100C)의 구성에 주목하여 설명하기로 한다.
여기서, 복사 회로(150A)는, 도 12에 도시한 바와 같이, 트랜잭션 감시부(151), 복사 처리 제어부(152) 및 트랜잭션 응답부(153)를 구비하여 구성되어 있다.
트랜잭션 감시부(151)는, 공통 메모리 버스(400)의 트랜잭션을 감시하는 것이며, 구체적으로는, 후술하는 어느 하나의 로컬 메모리부(140, 240, 340)의 제2 버퍼로부터의 트랜잭션 개시 통지를 검출하도록 되어 있다.
또한, 트랜잭션 감시부(151)에서는, 상술한 트랜잭션 개시 통지를 받고 나서, 자신의 제2 버퍼(142)가 공통 메모리 버스(400) 상의 어드레스 및 데이터를 취득할 수 있는 타이밍으로 되면, 제2 버퍼(142)에 대하여 공통 메모리 버스 취득 타이밍을 통지함과 함께, 복사 처리 제어부(152)에 대하여 복사 처리 개시 타이밍을 통지하도록 되어 있다.
이에 의해, 자신의 제2 버퍼(142)에서는, 공통 메모리 버스(400) 상의 갱신 대상이 되는 어드레스 및 데이터를 취득할 수 있도록 되어 있다.
또한, 복사 처리 제어부(152)는, 트랜잭션 감시부(151)로부터의 감시 결과에 기초하여, 로컬 메모리부(140)에서의 갱신 액세스를 제어하는 것이다. 구체적으로는, 트랜잭션 감시부(151)로부터의 복사 처리 개시 타이밍을 받으면, 메모리 액세스 아비트레이션 회로(143)에 메모리 액세스를 요구한다. 이 메모리 액세스 아비트레이션 회로(143)로부터 액세스 가능 응답을 받으면, 복사 메모리(144)에 대하여, 제2 버퍼(142)에 보존된 어드레스 및 데이터에 의해 메모리 갱신을 행하도록 지시한다.
또한, 복사 처리 제어부(152)에서는, 상술한 복사 메모리(144)에서의 복사 처리가 완료되면, 정상 복사 응답을 트랜잭션 응답부(153)에 출력하도록 되어 있다.
트랜잭션 응답부(트랜잭션 종료 통지부)(153)는, 복사 처리 제어부(152)에 의한 기입 액세스, 즉 제2 버퍼(142)의 데이터의 복사 처리가 종료된 경우에, 트랜잭션 종료를, 공통 메모리 버스(400)를 통해 버스 조정 회로(500)에 통지하는 것이다.
상술한 구성에 의해, 본 발명의 제4 실시예에 따른 멀티프로세서 장치(40)에서는, 각각, 이하에 나타내는 복사 회로(150A, 250A, 350A)의 제어에 의해, 로컬 메모리부(140, 240, 340)의 복사 메모리를 갱신하여, 데이터의 동기화를 도모하고 있기 때문에, 제1 실시예에서의 공통 메모리(600)를 구비하지 않아도 동작시킬 수 있다. 다시 말하면, 각 로컬 메모리부(140, 240, 340)의 복사 메모리를, 가상의 공통 메모리로서 동작시킬 수 있는 것이다.
우선, 장치 운용 개시 시에는, 각 로컬 메모리부(140, 240, 340)의 복사 메모리에 기억되어 있는 데이터를 동기화시키기 위해, 버스 조정 회로(500)에 의한 버스 조정을 기초로 가상 공통 메모리로서의 각 복사 메모리의 모든 영역 라이트 동작을 행한다.
계속해서, 예를 들면 프로세서 유닛(100C)의 프로세서(110)가 로컬 메모리부(140)에 라이트 액세스한 경우에는, 이하에 설명하는 바와 같이 동작한다.
즉, 프로세서(110)가 로컬 메모리부(140)에 대하여 라이트 액세스를 행하면,로컬 메모리부(140)의 제2 버퍼(142)에서는 프로세서(110)가 출력한 어드레스 및 데이터를 일시적으로 저장한 상태에서, 버스 조정 회로(500)에 버스 사용권을 요구한다. 버스 조정 회로(500)가 프로세서 유닛(100C)에 버스 사용권을 부여하면, 제2 버퍼(142)는 공통 메모리 버스(400)에 대하여 라이트 액세스의 대상이 된 어드레스 및 데이터를 송출한다.
프로세서 유닛(100C)의 복사 회로(150A)에서는, 트랜잭션 감시부(151)에서, 상술한 제2 버퍼(142)가 공통 메모리 버스(400)에 대하여 어드레스 및 데이터를 송출한 취지의 통지(제2 버퍼(142)로부터의 트랜잭션 개시 통지)가 있었는지의 여부를 감시한다. 트랜잭션 감시부(151)에서는, 이 트랜잭션 개시 통지에 기초하여, 복사 메모리(144)에서 정상적으로 취득할 수 있는 타이밍을 검출하여, 복사 타이밍으로서 복사 처리 제어부(152)에 통지한다.
복사 처리 제어부(152)에서는, 상술한 제1 실시예의 경우와 마찬가지로, 이 복사 타이밍에 기초하여, 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어함으로써, 상술한 바와 같이 제2 버퍼(142)에 저장된 어드레스 및 데이터를 복사 메모리(144)에 기입 제어한다.
또한, 복사 처리 제어부(152)에서는, 공통 메모리 버스(400) 상에서 지정된 어드레스에의 데이터의 기입이 완료되면, 정상 복사 응답으로서 트랜잭션 응답부(153)에 통지한다. 정상 트랜잭션 응답부(153)에서는, 정상 복사 응답을 받으면, 트랜잭션 종료 응답으로서, 제어 버스(403)를 통해 버스 조정 회로(500)에 통지한다.
또한, 트랜잭션 종료 응답을 받은 버스 조정 회로(500)에서는, 다음의 버스 사용 요구에 대하여 버스 사용권을 부여할 수 있다.
계속해서, 예를 들면 프로세서 유닛(100C) 이외의, 예를 들면 프로세서 유닛(200C)의 프로세서(210)가, 로컬 메모리부(240)에 라이트 액세스한 경우에, 프로세서 유닛(100C)에서의 로컬 메모리부(140)의 동기화는 이하에 설명하는 바와 같이 행해진다.
즉, 프로세서(210)가 로컬 메모리부(240)에 대하여 라이트 액세스를 행하면, 로컬 메모리부(240)의 제2 버퍼에서는 프로세서(210)가 출력한 어드레스 및 데이터를 일시적으로 저장한 상태에서, 버스 조정 회로(500)에 버스 사용권을 요구한다. 버스 조정 회로(500)가 프로세서 유닛(200C)에 버스 사용권을 부여하면, 로컬 메모리부(240)의 제2 버퍼에서는, 공통 메모리 버스(400)에 대하여 라이트 액세스의 대상이 되는 어드레스 및 데이터를 송출한다.
프로세서 유닛(100C)의 복사 회로(150A)에서는, 트랜잭션 감시부(151)에서, 로컬 메모리부(240)의 제2 버퍼가 공통 메모리 버스(400)에 대하여 어드레스 및 데이터를 송출한 취지의 통지(제2 버퍼로부터의 트랜잭션 개시 통지)가 있었는지의 여부를 감시한다.
트랜잭션 감시부(151)에서는, 이 트랜잭션 개시 통지에 기초하여, 공통 메모리 버스(400)를 통해 제2 버퍼(142)에서 정상적으로 취득할 수 있는 타이밍을 검출하여, 공통 메모리 버스 취득 타이밍으로서 복사 처리 제어부(152)에 통지한다. 이에 의해, 제2 버퍼(142)에서는, 다른 프로세서 유닛(200C)에서 갱신된 어드레스및 데이터를 자신의 제2 버퍼(142)에 취득할 수 있다.
또한, 트랜잭션 감시부(151)에서는, 상술한 공통 메모리 버스 취득 타이밍과 함께, 제2 버퍼(142)에서 취득할 수 있었던 어드레스 및 데이터를 복사 메모리(144)에 복사하기 위한 타이밍을 검출하여, 복사 타이밍으로서 복사 처리 제어부(152)에 통지한다.
복사 처리 제어부(152)에서는, 상술한 제1 실시예의 경우와 마찬가지로, 이 복사 타이밍에 기초하여 메모리 액세스 아비트레이션 회로(143) 및 복사 메모리(144)를 제어함으로써, 상술한 바와 같이 제2 버퍼(142)에 저장된 어드레스 및 데이터를 복사 메모리(144)에 기입 제어한다.
또한, 복사 처리 제어부(152)에서는, 공통 메모리 버스(400) 상에서 지정된 어드레스에의 데이터의 기입이 완료되면, 정상 복사 응답으로서 트랜잭션 응답부(153)에 통지한다. 정상 트랜잭션 응답부(153)에서는, 정상 복사 응답을 받으면, 트랜잭션 종료 응답으로서, 제어 버스(403)를 통해 버스 조정 회로(500)에 통지한다.
또한, 트랜잭션 종료 응답을 받은 버스 조정 회로(500)에서는, 다음의 버스 사용 요구에 대하여 버스 사용권을 부여할 수 있다.
다시 말하면, 로컬 메모리부(140, 240, 340)가, 어느 하나의 프로세서(110, 210, 310)로부터의 데이터 갱신 요구를 받으면, 버스 조정 회로(500)에 대하여 버스 사용 요구를 출력하도록 구성된다. 또한, 각각의 복사 회로(150A, 250A, 350A)에서는, 트랜잭션 감시부에서의 공통 메모리 버스(400)의 트랜잭션의 감시 결과 버스 조정 회로(500)로부터의 버스 사용 허가를 받으면, 복사 처리 제어부에서 상기 데이터 갱신 요구의 내용에 따라 로컬 메모리부(140, 240, 340)의 갱신 처리를 제어한다.
이에 의해, 로컬 메모리부(140, 240, 340)에서는, 각각의 프로세서(110, 210, 310)로부터의 데이터 갱신 요구를 받으면, 버스 조정 회로(500)에 대하여 버스 사용 요구를 출력하고, 또한, 복사 회로(150A, 250A, 350A)가, 버스 조정 회로(500)로부터의 버스 사용 허가를 받으면, 상기 데이터 갱신 요구의 내용에 따라 로컬 메모리부(140, 240, 340)의 갱신 처리를 각각 제어한다.
또한, 예를 들면 프로세서(110)로부터 가상 공통 메모리로서의 로컬 메모리부(140)에 대하여 리드 액세스한 경우에 대해 상술한다.
즉, 프로세서(110)가 가상 공통 메모리로서의 로컬 메모리부(140)에 대하여 리드 액세스를 행하면, 로컬 메모리부(140)에서는, 해당하는 어드레스의 데이터를 프로세서(110)에 응답한다.
이와 같이, 본 발명의 제4 실시예에 따른 멀티프로세서 장치(40)에 따르면, 상술한 제1 실시예의 경우와 마찬가지로, 공통 메모리로서 기억해야 할 데이터를, 각각의 프로세서(110, 210, 310)가 관리하고 있는 로컬 메모리부 내에 가질 수 있기 때문에, 공통 메모리 버스(400) 상에서 리드 액세스에 의한 트랜잭션이 발생하지 않으므로, 공통 메모리 버스(400)(경합 제어)에서의 경합을 최소한으로 억제하여, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해지는 이점이 있다.
또한, 복사 회로(150A, 250A, 350A)를 구비함으로써, 각 로컬 메모리부(140,240, 340)를 가상 공통 메모리로서 동작시켜, 제1 실시예에서의 공통 메모리(600)를 구비하지 않아도 멀티프로세서 장치로서 동작시킬 수 있는 이점도 있다.
또한, 상술한 제4 실시예에서, 상술한 제2 실시예에서의 스테이터스 메모리 및 제1 버퍼와 동등한 기능이나, 제3 실시예의 특징적인 구성인 경합용 및 개별용으로 분리된 공통 메모리 버스 및 2웨이의 로컬 메모리부의 구성을 적절하게 조합하여 적용하여 실시하는 것도 물론 가능하다.
[E] 기타
상술한 각 실시예에서의 멀티프로세서 장치에서는, 3개의 프로세서 유닛을 공통 메모리 버스를 통해 접속하여 구성되어 있지만, 본 발명에 따르면 이에 한정되지 않고, 적어도 복수이면 된다.
또한, 각 실시예에서의 멀티프로세서 장치에서는, 버스 조정 회로(500)를 구비하고 있지만, 본 발명에 따르면, 이것을 생략하고 구성해도 된다.
[F] 부기
(부기 1)
어플리케이션 처리를 독립적으로 행할 수 있는 복수의 프로세서 유닛과, 각 프로세서 유닛에서의 어플리케이션 처리에 공통으로 이용되는 데이터를 기억해 두는 공통 메모리와, 상기한 복수의 프로세서 유닛과 공통 메모리를 서로 접속하는 버스를 구비함과 함께,
상기한 각 프로세서 유닛이,
상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와,
상기한 프로세서와 버스 사이에 설치되며, 상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 로컬 메모리부와,
상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 공통 메모리의 내용이 갱신된 경우에 상기 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하며,
상기 로컬 메모리부에서, 상기 공통 메모리에 기억된 데이터의 판독 명령을 상기 프로세서로부터 받으면, 상기 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성된 것을 특징으로 하는 멀티프로세서 장치.
(부기 2)
상기 복사 회로가, 상기한 프로세서로부터 공통 메모리에의 데이터 갱신 명령에 대한 상기 공통 메모리로부터의 갱신 완료 응답을 받으면, 상기 공통 메모리에의 갱신 내용에 따라 상기 로컬 메모리부의 갱신 처리를 제어하도록 구성된 것을 특징으로 하는 부기 1에 기재된 멀티프로세서 장치.
(부기 3)
상기한 각 프로세서 유닛의 로컬 메모리부가,
상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 영역을 구비하여 이루어지는 복사 메모리와,
상기 프로세서로부터의 상기 판독 명령을 위한 어드레스 정보 및 판독된 데이터를 일단 보존하는 제1 버퍼와,
상기 프로세서로부터의 상기 공통 메모리에의 갱신 요구의 대상이 되는 어드레스 및 데이터와 함께, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 갱신된 상기 공통 메모리의 내용을 상기 버스를 통해 일단 보존할 수 있는 제2 버퍼와,
상기 프로세서로부터의 상기 판독 명령에 기초한 상기 복사 메모리에 대한 판독 액세스와, 상기 제2 버퍼에 보존되어 있는 내용에 따라 상기 복사 메모리를 갱신하기 위한 갱신 액세스를, 상기 복사 회로로부터의 제어에 기초하여 조정하는 메모리 액세스 조정 회로를 구비하여 구성된 것을 특징으로 하는 부기 1에 기재된 멀티프로세서 장치.
(부기 4)
상기 복사 회로가, 상기 버스의 트랜잭션을 감시하는 트랜잭션 감시부와, 상기 트랜잭션 감시부로부터의 감시 결과에 기초하여, 상기 로컬 메모리부에서의 갱신 처리를 제어하는 갱신 제어부를 구비하여 구성된 것을 특징으로 하는 부기 1에 기재된 멀티프로세서 장치.
(부기 5)
상기 트랜잭션 감시부에서의 상기 버스의 트랜잭션의 감시 결과, 상기한 프로세서로부터 공통 메모리에의 데이터의 갱신 명령에 대한 상기 공통 메모리로부터의 갱신 완료 응답을 받으면, 상기 갱신 제어부가, 상기 공통 메모리에의 갱신 내용에 따라 상기 로컬 메모리부의 갱신 처리를 제어하도록 구성된 것을 특징으로 하는 부기 4에 기재된 멀티프로세서 장치.
(부기 6)
상기 로컬 메모리부가, 상기한 복사 메모리 상에서의 어드레스 영역에 대응하여, 갱신된 데이터가 저장되어 있는지의 여부가 기록되는 스테이터스 메모리를 구비함과 함께,
상기 제1 버퍼가, 상기 프로세서로부터의 판독 명령의 어드레스에 대응한 데이터를 복사 메모리로부터 판독할 때에, 상기 스테이터스 메모리의 기록을 판정하는 스테이터스 판정부와, 상기 스테이터스 판정부에서의 판정 결과에 기초하여, 상기 판독 명령의 어드레스에 대응한 갱신 데이터가 보존되어 있다고 판정된 경우에는 상기 보존된 데이터를 상기 프로세서에 출력하는 한편, 상기 갱신 데이터가 보존되어 있다고 판정되지 않은 경우에는, 상기 공통 메모리에 대한 판독을 위한 처리를 행하는 판독 처리부를 구비하여 구성된 것을 특징으로 하는 부기 3에 기재된 멀티프로세서 장치.
(부기 7)
상기 제2 버퍼에 보존되어 있는 내용을 상기 메모리에 갱신하기 위한 갱신 액세스를 정상적으로 완료할 수 없었던 경우에는, 상기 스테이터스 메모리의 대응 어드레스 영역에는 데이터 없음 상태가 기록되도록 구성된 것을 특징으로 하는 부기 6에 기재된 멀티프로세서 장치.
(부기 8)
상기 공통 메모리가, 상기 복수의 프로세서 유닛에서의 어플리케이션 처리에 의해 실시간으로 사용하는 빈도가 높은 데이터를 기억하는 제1 공통 메모리와, 상기 빈도가 낮은 데이터를 기억하는 제2 공통 메모리를 구비함과 함께,
상기 버스가, 상기한 복수의 프로세서 유닛과 제1 공통 메모리를 서로 접속하는 제1 버스와, 상기한 복수의 프로세서 유닛과 제2 공통 메모리를 서로 접속하는 제2 버스를 구비하며,
상기한 프로세서 유닛에 의한 제1 버스의 사용을 조정하는 제1 버스 조정 회로와, 상기한 프로세서 유닛에 의한 제2 버스의 사용을 관리하는 제2 버스 사용 관리 회로를 구비하며,
상기한 각 프로세서 유닛의 로컬 메모리부가,
상기 프로세서로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 상기 빈도의 고저를 분류하는 분류부와,
상기 제1 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제1 로컬 메모리부와,
상기 제2 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제2 로컬 메모리부를 구비하고,
또한, 상기 복사 회로가, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 제1 공통 메모리의 내용이 갱신된 경우에 상기 제1 로컬 메모리부의 갱신 처리를 제어하도록 구성됨과 함께,
상기한 제1 로컬 메모리부에서, 상기 제1 공통 메모리에 기억된 데이터의 판독 명령을 상기한 프로세서로부터 받으면, 상기 제1 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성된 것을 특징으로 하는 부기 1에 기재된 멀티프로세서 장치.
(부기 9)
어플리케이션 처리를 독립적으로 행하기 위한 복수의 프로세서 유닛과, 상기한 복수의 프로세서 유닛을 서로 접속하는 버스를 구비함과 함께,
상기한 각 프로세서 유닛이,
데이터의 판독 및 기입을 행하여, 상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와,
상기 프로세서에서의 상기 어플리케이션 처리를 위한 데이터를 기억하기 위한 로컬 메모리부와,
상기 복수의 프로세서 유닛의 어느 하나의 로컬 메모리부의 내용이 갱신된 경우에, 자신의 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하여 구성된 것을 특징으로 하는 멀티프로세서 장치.
(부기 10)
상기한 프로세서 유닛에 의한 버스의 사용을 조정하는 버스 조정 회로를 구비하고,
상기 로컬 메모리부가, 상기 프로세서로부터의 데이터 갱신 요구를 받으면, 상기 버스 조정 회로에 대하여 버스 사용 요구를 출력하도록 구성되며, 또한, 상기 복사 회로가, 상기 버스 조정 회로로부터의 버스 사용 허가를 받으면, 상기 데이터 갱신 요구의 내용에 따라 상기 로컬 메모리부의 갱신 처리를 제어하도록 구성된 것을 특징으로 하는 부기 9에 기재된 멀티프로세서 장치.
(부기 11)
상기한 각 프로세서 유닛의 로컬 메모리부가,
상기 어플리케이션 처리를 위한 데이터를 기억하는 메모리와,
상기 프로세서로부터의 상기 데이터의 판독 명령을 위한 어드레스 정보 및 판독된 데이터를 일단 보존하는 제1 버퍼와,
상기 프로세서로부터의 상기 데이터의 기입 요구의 대상이 되는 어드레스 및 데이터와 함께, 상기 복수의 프로세서 유닛에서의 어느 하나의 로컬 메모리부의 메모리에서 갱신된 내용을, 일단 보존하는 제2 버퍼와,
상기 프로세서로부터의 상기 판독 명령에 기초한 상기 메모리에 대한 판독 액세스와, 상기 제2 버퍼에 보존되어 있는 내용을 상기 메모리에 기입하기 위한 기입 액세스를, 상기 복사 회로로부터의 제어에 기초하여 조정하는 메모리 액세스 조정 회로를 구비하여 구성된 것을 특징으로 하는 부기 9에 기재된 멀티프로세서 장치.
(부기 12)
상기한 프로세서 유닛에 의한 버스의 사용을 조정하는 버스 조정 회로를 구비하며,
상기 복사 회로가, 상기 버스의 트랜잭션을 감시하는 트랜잭션 감시부와, 상기 트랜잭션 감시부로부터의 감시 결과에 기초하여 상기 로컬 메모리부에서의 갱신 액세스를 제어하는 갱신 제어부와, 상기 갱신 제어부에 의한 상기 기입 액세스가 종료된 경우에, 트랜잭션 종료를 상기 버스를 통해 상기 버스 조정 회로에 통지하는 트랜잭션 종료 통지부를 구비하여 구성된 것을 특징으로 하는 부기 9에 기재된멀티프로세서 장치.
(부기 13)
상기 로컬 메모리부가, 상기 프로세서로부터의 데이터 갱신 요구를 받으면, 상기 버스 조정 회로에 대하여 버스 사용 요구를 출력하도록 구성되며, 또한, 상기한 복사 회로의 트랜잭션 감시부에서의 상기 버스의 트랜잭션의 감시 결과, 상기 버스 조정 회로로부터의 버스 사용 허가를 받으면, 상기 갱신 제어부에서는, 상기 데이터 갱신 요구의 내용에 따라 상기 로컬 메모리부의 갱신 처리를 제어하도록 구성된 것을 특징으로 하는 부기 12에 기재된 멀티프로세서 장치.
(부기 14)
상기 로컬 메모리부가, 상기한 메모리 상에서 갱신 제어부에 의한 갱신 제어가 이루어진 어드레스 영역에 대응하여, 갱신된 데이터가 저장되어 있는지의 여부가 기록되는 스테이터스 메모리를 구비함과 함께,
상기 제1 버퍼가, 상기 프로세서로부터의 판독 명령의 어드레스에 대응한 데이터를 메모리로부터 판독하여 일단 보존함과 함께, 상기 스테이터스 메모리의 기록을 판정하는 스테이터스 판정부와, 상기 스테이터스 판정부에서의 판정 결과에 기초하여, 상기 판독 명령의 어드레스에 대응한 갱신 데이터가 보존되어 있다고 판정된 경우에는 상기 보존된 데이터를 상기 프로세서에 출력하는 한편, 상기 갱신 데이터가 보존되어 있다고 판정되지 않은 경우에는, 다른 프로세서 유닛에서의 로컬 메모리부에 대한 데이터 판독을 위한 처리를 행하는 판독 명령 출력부를 구비하여 구성된 것을 특징으로 하는 부기 11에 기재된 멀티프로세서 장치.
(부기 15)
상기 제2 버퍼에 보존되어 있는 내용을 상기 메모리에 기입하기 위한 기입 액세스를 정상적으로 완료할 수 없었던 경우에는, 상기 스테이터스 메모리의 상기 어드레스 영역에는 데이터 없음 상태가 기록되도록 구성된 것을 특징으로 하는 부기 14에 기재된 멀티프로세서 장치.
(부기 16)
상기 버스가, 상기 어플리케이션 처리에 의해 실시간으로 공통 사용하는 빈도가 높은 데이터를 수수하기 위한 제1 버스와, 상기 빈도가 낮은 데이터를 수수하기 위한 제2 버스를 구비함과 함께,
상기 버스 조정 회로가, 상기한 프로세서 유닛에 의한 제1 버스의 사용을 조정하는 제1 버스 조정 회로와, 상기한 프로세서 유닛에 의한 제2 버스의 사용을 조정하는 제2 버스 사용 관리 회로를 구비하며,
상기한 각 프로세서 유닛에서의 로컬 메모리부가, 상기 프로세서로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 상기 빈도의 고저를 분류하는 분류부와,
상기 제1 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제1 로컬 메모리부와,
상기 제2 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제2 로컬 메모리부를 구비하며,
또한, 상기 복사 회로가, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 제1 공통 메모리의 내용이 갱신된 경우에 상기 제1 로컬 메모리부의 갱신 처리를 제어하도록 구성된 것을 특징으로 하는 부기 9에 기재된 멀티프로세서 장치.
이상 상술한 바와 같이, 청구항 1, 2에 기재된 본 발명의 멀티프로세서 장치에 따르면, 각 프로세서 유닛이, 프로세서와 로컬 메모리부와 복사 회로를 구비함으로써, 공통 메모리의 모든 데이터의 복사본을, 각각의 프로세서가 관리하고 있는 복사 메모리 내에 가짐으로써, 버스 상에서 리드 액세스에 의한 트랜잭션이 발생하지 않기 때문에, 버스에서의 경합을 최소한으로 억제할 수 있다. 이에 의해, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해진다. 특히, 실시간 처리를 행하는 경우라도, 캐쉬 메모리 방식과 같이 캐쉬 메모리 상의 데이터의 무효화 처리나 재판독 처리 등이 증가하지도 않고, 필요로 하는 공통 메모리 상의 데이터에의 액세스를 최소의 대기로 행할 수 있다.
또한, 청구항 3에 기재된 본 발명에 따르면, 각 프로세서 유닛의 로컬 메모리부에서의 스테이터스 메모리 및 제1 버퍼에 의해, 공통 메모리의 데이터가 복사 메모리에 복사되어 있는지의 여부에 따라, 각각의 프로세서에 대하여 모순이 없는 판독 데이터를 출력할 수 있기 때문에, 상술한 제1 실시예의 경우와 마찬가지로, 공통 메모리 버스에서의 경합을 최소한으로 억제하여, 버스 경합에 의한 액세스의 대기를 단축하는 것이 가능해지는 이점이 있을 뿐만 아니라, 복수의 복사 메모리에서의 모든 데이터를 일치시키기 위한 초기화 처리를 생략할 수 있다.
또한, 청구항 4에 기재된 본 발명에 따르면, 해당 공통 메모리가 제1 공통 메모리와 제2 공통 메모리를 구비하고, 상기 버스가 제1 버스와 제2 버스를 구비함과 함께, 각 프로세서 유닛에서의 로컬 메모리부의 분류부를 구비함으로써, 실시간으로 공통 사용하는 빈도가 낮은 데이터에 대한 액세스를 다른 버스 경유로 액세스할 수가 있고, 특히, 실시간 처리를 행하는 경우, 버스 경합에 의한 액세스의 대기를 더욱 단축할 수 있다.
또한, 청구항 5에 기재된 본 발명의 멀티프로세서 장치에 따르면, 복수의 프로세서 유닛과 버스를 구비함과 함께, 각 프로세서 유닛이, 프로세서와 로컬 메모리부와 복사 회로를 구비하여 구성되어 있기 때문에, 공통 메모리로서 기억해야 할 데이터를, 각각의 프로세서가 관리하고 있는 로컬 메모리부 내에 가질 수 있기 때문에, 버스 상에서 리드 액세스에 의한 트랜잭션이 발생하지 않으므로, 버스에서의 경합을 최소한으로 억제하여, 액세스의 대기를 단축하는 것이 가능해지는 이점이 있을 뿐만 아니라, 각 로컬 메모리부를 가상 공통 메모리로서 동작시켜, 종래의 공통 메모리를 구비하지 않아도 멀티프로세서 장치로서 동작시킬 수 있는 이점도 있다.

Claims (5)

  1. 어플리케이션 처리를 독립적으로 행할 수 있는 복수의 프로세서 유닛과, 각 프로세서 유닛에서의 어플리케이션 처리에 공통으로 이용되는 데이터를 기억해 두는 공통 메모리와, 상기한 복수의 프로세서 유닛과 공통 메모리를 서로 접속하는 버스를 구비함과 함께,
    상기한 각 프로세서 유닛은,
    상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와,
    상기한 프로세서와 버스 사이에 설치되며, 상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 로컬 메모리부와,
    상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 공통 메모리의 내용이 갱신된 경우에 상기 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하며,
    상기 로컬 메모리부에서, 상기 공통 메모리에 기억된 데이터의 판독 명령을 상기 프로세서로부터 받으면, 상기 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성된 것을 특징으로 하는 멀티프로세서 장치.
  2. 제1항에 있어서,
    상기한 각 프로세서 유닛의 로컬 메모리부는,
    상기 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 영역을 구비하여 이루어지는 복사 메모리와,
    상기 프로세서로부터의 상기 판독 명령을 위한 어드레스 정보 및 판독된 데이터를 일단 보존하는 제1 버퍼와,
    상기 프로세서로부터의 상기 공통 메모리에의 갱신 요구의 대상이 되는 어드레스 및 데이터와 함께, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 갱신된 상기 공통 메모리의 내용을 상기 버스를 통해 일단 보존할 수 있는 제2 버퍼와,
    상기 프로세서로부터의 상기 판독 명령에 기초한 상기 복사 메모리에 의한 판독 액세스와, 상기 제2 버퍼에 보존되어 있는 내용에 따라 상기 복사 메모리를 갱신하기 위한 갱신 액세스를, 상기 복사 회로로부터의 제어에 기초하여 조정하는 메모리 액세스 조정 회로
    를 구비하여 구성된 것을 특징으로 하는 멀티프로세서 장치.
  3. 제2항에 있어서,
    상기 로컬 메모리부가, 상기한 복사 메모리 상에서의 어드레스 영역에 대응하여, 갱신된 데이터가 저장되어 있는지의 여부가 기록되는 스테이터스 메모리를 구비함과 함께,
    상기 제1 버퍼가, 상기 프로세서로부터의 판독 명령의 어드레스에 대응한 데이터를 복사 메모리로부터 판독할 때에, 상기 스테이터스 메모리의 기록을 판정하는 스테이터스 판정부와, 상기 스테이터스 판정부에서의 판정 결과에 기초하여, 상기 판독 명령의 어드레스에 대응한 갱신 데이터가 보존되어 있다고 판정된 경우에는 상기 보존된 데이터를 상기 프로세서에 출력하는 한편, 상기 갱신 데이터가 보존되어 있다고 판정되지 않은 경우에는, 상기 공통 메모리에 대한 판독을 위한 처리를 행하는 판독 처리부를 구비하여 구성된 것을 특징으로 하는 멀티프로세서 장치.
  4. 제1항에 있어서,
    상기 공통 메모리가, 상기 복수의 프로세서 유닛에서의 어플리케이션 처리에 의해 실시간으로 사용하는 빈도가 높은 데이터를 기억하는 제1 공통 메모리와, 상기 빈도가 낮은 데이터를 기억하는 제2 공통 메모리를 구비함과 함께,
    상기 버스가, 상기한 복수의 프로세서 유닛과 제1 공통 메모리를 서로 접속하는 제1 버스와, 상기한 복수의 프로세서 유닛과 제2 공통 메모리를 서로 접속하는 제2 버스를 구비하며,
    상기한 프로세서 유닛에 의한 제1 버스의 사용을 조정하는 제1 버스 조정 회로와, 상기한 프로세서 유닛에 의한 제2 버스의 사용을 관리하는 제2 버스 사용 관리 회로를 구비하며,
    상기한 각 프로세서 유닛의 로컬 메모리부는,
    상기 프로세서로부터의 판독 명령 또는 갱신 명령의 대상이 되는 데이터에 대하여, 상기 빈도의 고저를 분류하는 분류부와,
    상기 제1 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제1 로컬 메모리부와,
    상기 제2 공통 메모리의 모든 내용 데이터의 복사본을 기억하기 위한 제2 로컬 메모리부를 구비하고,
    또한, 상기 복사 회로가, 상기 복수의 프로세서 유닛의 어느 하나의 프로세서에 의해 상기 제1 공통 메모리의 내용이 갱신된 경우에 상기 제1 로컬 메모리부의 갱신 처리를 제어하도록 구성됨과 함께,
    상기한 제1 로컬 메모리부에서, 상기 제1 공통 메모리에 기억된 데이터의 판독 명령을 상기한 프로세서로부터 받으면, 상기 제1 로컬 메모리부에 복사된 대응 데이터를 판독하여 출력하도록 구성된 것을 특징으로 하는 멀티프로세서 장치.
  5. 어플리케이션 처리를 독립적으로 행하기 위한 복수의 프로세서 유닛과, 상기한 복수의 프로세서 유닛을 서로 접속하는 버스를 구비함과 함께,
    상기한 각 프로세서 유닛은,
    데이터의 판독 및 기입을 행하여, 상기 어플리케이션 처리를 위한 명령 실행 처리를 행하는 프로세서와,
    상기 프로세서에서의 상기 어플리케이션 처리를 위한 데이터를 기억하기 위한 로컬 메모리부와,
    상기 복수의 프로세서 유닛의 어느 하나의 로컬 메모리부의 내용이 갱신된 경우에, 자신의 로컬 메모리부의 갱신 처리를 제어하는 복사 회로를 구비하여 구성된 것을 특징으로 하는 멀티프로세서 장치.
KR10-2002-0066465A 2002-04-26 2002-10-30 멀티프로세서 장치 KR100496116B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002126212A JP3884990B2 (ja) 2002-04-26 2002-04-26 マルチプロセッサ装置
JPJP-P-2002-00126212 2002-04-26

Publications (2)

Publication Number Publication Date
KR20030084553A true KR20030084553A (ko) 2003-11-01
KR100496116B1 KR100496116B1 (ko) 2005-06-20

Family

ID=29243795

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0066465A KR100496116B1 (ko) 2002-04-26 2002-10-30 멀티프로세서 장치

Country Status (3)

Country Link
US (1) US7080215B2 (ko)
JP (1) JP3884990B2 (ko)
KR (1) KR100496116B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
KR100841864B1 (ko) * 2003-12-01 2008-06-27 가부시키가이샤 소니 컴퓨터 엔터테인먼트 효율적인 멀티태스킹을 위한 방법 및 장치
US7565653B2 (en) 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US8028292B2 (en) 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
US8661440B2 (en) 2007-06-26 2014-02-25 Samsung Electronics Co., Ltd. Method and apparatus for performing related tasks on multi-core processor

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7054966B2 (en) * 2004-06-14 2006-05-30 General Electric Company Data processing system
US8640194B2 (en) * 2004-08-25 2014-01-28 Nec Corporation Information communication device and program execution environment control method
JP4546943B2 (ja) * 2006-09-01 2010-09-22 株式会社日立製作所 転写メモリシステムに用いられるノードおよびメモリ領域管理方法
US8095750B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory system with fast processing of common conflicts
US8095741B2 (en) * 2007-05-14 2012-01-10 International Business Machines Corporation Transactional memory computing system with support for chained transactions
US8321637B2 (en) * 2007-05-14 2012-11-27 International Business Machines Corporation Computing system with optimized support for transactional memory
US8117403B2 (en) * 2007-05-14 2012-02-14 International Business Machines Corporation Transactional memory system which employs thread assists using address history tables
US9009452B2 (en) 2007-05-14 2015-04-14 International Business Machines Corporation Computing system with transactional memory using millicode assists
US8688920B2 (en) 2007-05-14 2014-04-01 International Business Machines Corporation Computing system with guest code support of transactional memory
JP5270924B2 (ja) * 2008-01-30 2013-08-21 株式会社東芝 固定長メモリブロック管理装置及び固定長メモリブロック管理装置の制御方法
JP5307796B2 (ja) * 2008-03-19 2013-10-02 パナソニック株式会社 処理装置、処理システム、データ共有処理方法、及びデータ共有処理用集積回路
US8667254B1 (en) * 2008-05-15 2014-03-04 Xilinx, Inc. Method and apparatus for processing data in an embedded system
US8244987B2 (en) 2008-12-04 2012-08-14 Electronics And Telecommunications Research Institute Memory access device including multiple processors
US8527710B2 (en) * 2009-02-17 2013-09-03 Hitachi, Ltd. Storage controller and method of controlling storage controller
US8566524B2 (en) * 2009-08-31 2013-10-22 International Business Machines Corporation Transactional memory system with efficient cache support
KR101664108B1 (ko) 2010-04-13 2016-10-11 삼성전자주식회사 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
WO2012147203A1 (ja) * 2011-04-28 2012-11-01 三菱電機株式会社 システムコントローラ及びプログラム
US9454482B2 (en) * 2013-06-27 2016-09-27 Apple Inc. Duplicate tag structure employing single-port tag RAM and dual-port state RAM
CN103559079A (zh) * 2013-11-15 2014-02-05 深圳市道通科技有限公司 一种基于共享内存的数据存取方法及装置
DE102013224702A1 (de) 2013-12-03 2015-06-03 Robert Bosch Gmbh Steuergerät für ein Kraftfahrzeug
JP6515579B2 (ja) * 2015-02-23 2019-05-22 コニカミノルタ株式会社 画像処理装置、画像処理方法、画像処理装置の制御プログラム、および画像形成システム
KR102407917B1 (ko) 2015-11-12 2022-06-10 삼성전자주식회사 멀티 프로세서에 의해 공유되는 메모리를 포함하는 멀티 프로세서 시스템 및 상기 시스템의 동작 방법
CN106933512B (zh) * 2017-02-27 2020-03-27 深圳怡化电脑股份有限公司 一种数据读写的方法及其设备
CN114217744A (zh) * 2021-12-14 2022-03-22 山东产研鲲云人工智能研究院有限公司 使用影子寄存器的efuse储存内容分发方法及设备

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60183652A (ja) 1984-03-02 1985-09-19 Hitachi Ltd キヤツシユメモリ制御方法
JP2656543B2 (ja) 1988-05-26 1997-09-24 東京電力株式会社 ブロードキャストメモリ方式分散コンピュータシステム
JPH0340046A (ja) * 1989-07-06 1991-02-20 Hitachi Ltd キャッシュメモリ制御方式および情報処理装置
JPH06208547A (ja) 1993-01-08 1994-07-26 Sony Corp 通信制御装置
JPH0830510A (ja) 1994-07-12 1996-02-02 Nec Eng Ltd キャッシュ制御システム
US5615334A (en) * 1994-10-07 1997-03-25 Industrial Technology Research Institute Memory reflection system and method for reducing bus utilization and device idle time in the event of faults
JPH0944399A (ja) 1995-08-01 1997-02-14 Matsushita Electric Ind Co Ltd 演算装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100841864B1 (ko) * 2003-12-01 2008-06-27 가부시키가이샤 소니 컴퓨터 엔터테인먼트 효율적인 멀티태스킹을 위한 방법 및 장치
US7565653B2 (en) 2004-02-20 2009-07-21 Sony Computer Entertainment Inc. Methods and apparatus for processor task migration in a multi-processor system
US7614053B2 (en) 2004-02-20 2009-11-03 Sony Computer Entertainment Inc. Methods and apparatus for task management in a multi-processor system
US8028292B2 (en) 2004-02-20 2011-09-27 Sony Computer Entertainment Inc. Processor task migration over a network in a multi-processor system
KR100725100B1 (ko) * 2005-12-22 2007-06-04 삼성전자주식회사 포트간 데이터 전송기능을 갖는 멀티패쓰 억세스블 반도체메모리 장치
US8661440B2 (en) 2007-06-26 2014-02-25 Samsung Electronics Co., Ltd. Method and apparatus for performing related tasks on multi-core processor
KR101375836B1 (ko) * 2007-06-26 2014-04-01 삼성전자주식회사 멀티코어 프로세서 상에서 연관된 작업들을 수행하는 방법및 장치

Also Published As

Publication number Publication date
KR100496116B1 (ko) 2005-06-20
JP3884990B2 (ja) 2007-02-21
JP2003316753A (ja) 2003-11-07
US20030204682A1 (en) 2003-10-30
US7080215B2 (en) 2006-07-18

Similar Documents

Publication Publication Date Title
KR100496116B1 (ko) 멀티프로세서 장치
US5761731A (en) Method and apparatus for performing atomic transactions in a shared memory multi processor system
EP0349123B1 (en) Multi-processor computer systems having shared memory and private cache memories
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US6487643B1 (en) Method and apparatus for preventing starvation in a multi-node architecture
US6625698B2 (en) Method and apparatus for controlling memory storage locks based on cache line ownership
US5765196A (en) System and method for servicing copyback requests in a multiprocessor system with a shared memory
US6138217A (en) Method and apparatus for cache coherency in an interconnecting network
US20080244189A1 (en) Method, Apparatus, System and Program Product Supporting Directory-Assisted Speculative Snoop Probe With Concurrent Memory Access
JPH08185359A (ja) メモリサブシステム
GB2287161A (en) Computer system that maintains system wide cache coherency during deferred communication transactions
US7054985B2 (en) Multiple hardware partitions under one input/output hub
EP0777183A1 (en) Computer cache system
US20080047005A1 (en) Access monitoring method and device for shared memory
JP2746530B2 (ja) 共有メモリマルチプロセッサ
US6952761B2 (en) Bus interface selection by page table attributes
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
US6021466A (en) Transferring data between caches in a multiple processor environment
US11604730B2 (en) Redundant cache-coherent memory fabric
US8239652B2 (en) Data processing system
EP0396940B1 (en) Cache memory and related consistency protocol
US7519778B2 (en) System and method for cache coherence
US5546560A (en) Device and method for reducing bus activity in a computer system having multiple bus-masters
JPH04305746A (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: 20130524

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150515

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee