KR20080016422A - 멀티프로세서 시스템 - Google Patents

멀티프로세서 시스템 Download PDF

Info

Publication number
KR20080016422A
KR20080016422A KR1020070020134A KR20070020134A KR20080016422A KR 20080016422 A KR20080016422 A KR 20080016422A KR 1020070020134 A KR1020070020134 A KR 1020070020134A KR 20070020134 A KR20070020134 A KR 20070020134A KR 20080016422 A KR20080016422 A KR 20080016422A
Authority
KR
South Korea
Prior art keywords
memory
read
data
cpu
read command
Prior art date
Application number
KR1020070020134A
Other languages
English (en)
Other versions
KR100884011B1 (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 KR20080016422A publication Critical patent/KR20080016422A/ko
Application granted granted Critical
Publication of KR100884011B1 publication Critical patent/KR100884011B1/ko

Links

Images

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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • 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
    • G06F12/10Address translation
    • G06F12/1072Decentralised address translation, e.g. in distributed shared memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Multi Processors (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은, SMP 구성의 멀티프로세서 시스템에 있어서, 로컬 노드에 있어서의 메모리 리드의 레이턴시 단축을 실현하는 새로운 기술을 제공하는 것을 목적으로 한다.
글로벌 어드레스 크로스바에 투입하는 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인지 여부를 판단하는 수단과, 자신의 시스템 보드 상의 메모리에의 리드 명령임을 판단하는 경우에, 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에 리드 명령을 투기 실행하는 수단과, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하지 않고서 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하는 수단과, 글로벌 어드레스 크로스바로부터의 통지에 기초하여, CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하는 수단을 구비하도록 구성한다.

Description

멀티프로세서 시스템{MULTIPROCESSOR SYSTEM}
도 1은 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 설명도이다.
도 2는 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 설명도이다.
도 3은 본 발명의 멀티프로세서 시스템의 일 실시형태이다.
도 4는 종래 기술에서 실행되는 메모리 리드 처리의 시퀀스도이다.
도 5는 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 시퀀스도이다.
도 6은 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 신호 흐름의 설명도이다.
도 7은 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 신호 흐름의 설명도이다.
도 8은 본 발명의 일 실시형태에 의해 실행되는 메모리 리드 처리의 신호 흐름의 설명도이다.
도 9는 대칭형 멀티프로세서의 설명도이다.
도 10은 대칭형 멀티프로세서에서 실행되는 메모리 리드 처리의 설명도이다.
<도면의 주요 부분에 대한 부호의 설명>
10 : CPU 11 : 메모리
12 : 노스 브릿지 13 : 메모리 컨트롤러
20 : 마스터 어드레스 큐 21 : 셀렉터
22 : 셀렉터 제어 회로 23 : 메모리 액세스 제어 회로
24 : 검사 회로 25 : LCST 생성 회로
26 : 슬레이브 리퀘스트 제어 회로 27 : 마스터 리드 데이터 큐
28 : 버스 비지 감시 회로 29 : 리트라이수 감시 회로
30 : 명령 디코더
40 : 슬레이브 메모리 리드 어드레스 큐
41 : 슬레이브 메모리 리드 데이터 큐
42 : 외부 리드 데이터 큐 43 : 데이터 전송 회로
100 : 시스템 보드 200 : 글로벌 어드레스 크로스바
210 : 글로벌 어드레스 우선순위 제어 회로
220 : GCST 생성 회로 300 : 글로벌 데이터 크로스바
400 : 시스템 컨트롤 장치 500 : 단말
본 발명은, CPU와 메모리를 실장하는 복수의 시스템 보드가 글로벌 어드레스 크로스바를 통해 접속됨으로써 구성되어, 그 글로벌 어드레스 크로스바에 어드레스를 투입함으로써 모든 CPU에 대하여 대칭적으로 처리를 할당한다고 하는 구성을 채용하는 멀티프로세서 시스템에 관한 것으로, 특히, 메모리로부터의 리드의 레이턴시 단축을 실현하는 멀티프로세서 시스템에 관한 것이다.
대칭형 멀티프로세서(SMP : Symmetric Multiple Processor)란, 도 9에 도시한 바와 같이, CPU 및 메모리를 실장하는 복수의 시스템 보드(SB)와 복수의 IO 유닛(IOU)이 글로벌 어드레스 크로스바 및 글로벌 데이터 크로스바를 통해 접속됨으로써 구성되는 것으로, 모든 CPU에 대하여 대칭적으로 균일하게 처리가 할당된다고 하는 특징을 갖는 병렬 처리 방식이다.
이 대칭형 멀티프로세서에서는, CPU가 데이터를 요구하는 경우에, 글로벌 어드레스 크로스바를 사용하여, 그 데이터가 어떤 메모리에 있는 것인지, 그 데이터가 어떤 CPU의 캐쉬에 있는 것인지, CPU의 캐쉬 상에 있는 그 데이터가 CPU에 의해 다시 기록되고 있는 것인지, 그 데이터를 요구원의 CPU에 송신하는 데에 있어서 필요하게 되는 자원(큐 등)이 고갈되어 있는 것인지, 그 데이터가 선행하는 명령에 의해 다시 기록되고 있는 것인지, 그 데이터의 액세스가 경합하게 되는 것인지와 같은 정보를 수집(후술하는 로컬 캐스트의 대상이 되는 정보)하고, 그것에 기초하여, 각 시스템 보드에 대하여 어떠한 처리를 행할 것인지를 지시함으로써, 데이터 요구원의 CPU가 요구 데이터를 취득할 수 있도록 한다고 하는 처리를 행하게 된다.
이와 같이 하여, SMP로 구성되는 멀티프로세서 시스템에서는, 각 CPU가 요구하는 데이터의 어드레스를 글로벌 어드레스 크로스바에 투입하고, 글로벌 어드레스 크로스바를 사용하여 이들 어드레스를 조정함으로써, 이들 어드레스의 데이터를 처리하는 시스템 보드를 결정하고, 그 결정 결과를 각 시스템 보드에 통지함으로써, 모든 CPU에 대하여 대칭적으로 균일하게 처리가 할당되게 되는 것을 실현하고 있다.
이어서, 도 10에 따라서, SMP를 구성하는 각 시스템 보드에서 실행되는 메모리 리드 처리에 관해서 설명한다.
CPU(1)가 메모리(2)에 있는 데이터의 어드레스를 지정하여 리드 요구를 발행하면, 그 어드레스는 마스터 어드레스 큐(4)를 통해 글로벌 어드레스 크로스바(8)에 투입되어, 글로벌 어드레스 크로스바(8)로부터 스누프 어드레스로서 각 시스템 보드가 구비하는 파이프라인(3)에 통지되게 된다. 따라서, 리드 요구원의 CPU(1)를 탑재하는 시스템 보드가 구비하는 파이프라인(3)에는 그 CPU(1)가 발행한 어드레스가 되돌려지게 된다.
이 통지를 받아, 리드 요구원의 CPU(1)를 탑재하는 시스템 보드가 구비하는 파이프라인(3)은, 글로벌 어드레스 크로스바(8)로부터 통지된 스누프 어드레스를 메모리 리드 어드레스로서 지정하여, 리드 명령을 투기 실행한다.
이 리드 명령의 투기 실행을 받아, 메모리 리드 어드레스는 슬레이브 메모리 리드 어드레스 큐(5)에 큐잉되고, 이에 따라서 메모리(2)로부터 데이터가 리드되고, 그 데이터는 슬레이브 메모리 리드 데이터 큐(6)에 큐잉되어, 거기서, 파이프라인(3)으로부터의 지시를 기다리게 된다.
한편, 리드 요구원의 CPU(1)를 탑재하는 시스템 보드가 구비하는 파이프라 인(3)은, 리드 명령의 투기 실행에 이어서, 로컬 캐스트의 대상이 되는 상기와 같은 정보를 수집하여 글로벌 어드레스 크로스바(8)에 로컬 캐스트한다.
이 로컬 캐스트를 받아, 글로벌 어드레스 크로스바(8)는, 각 시스템 보드로부터 상기와 같은 정보를 수집하면, 시스템 전체로서의 CPU 캐쉬 검사나 어드레스 비지 검사나 자원 고갈 검사 등의 검사를 행함으로써, 데이터 요구원의 CPU(1)를 탑재하는 시스템 보드가 구비하는 파이프라인(3)이 행한 리드 명령의 투기 실행의 채용·불채용 및 리드 명령의 리트라이 필요성의 유무를 결정하여, 그 결정 결과를 모든 시스템 보드가 구비하는 파이프라인(3)에 글로벌 캐스트한다.
이 글로벌 캐스트를 받아, 데이터 요구원의 CPU(1)를 탑재하는 시스템 보드가 구비하는 파이프라인(3)은, 글로벌 어드레스 크로스바(8)로부터의 통지에 기초하여, 슬레이브 메모리 리드 데이터 큐(6)에 대하여, 큐잉하고 있는 데이터를 CPU(1)에 송신할 것을 지시함으로써 그 데이터를 마스터 리드 데이터 큐(7)에 큐잉시키거나, 큐잉하고 있는 데이터의 파기를 지시하고, 또한, 이 데이터 파기를 지시하는 경우에는, 마스터 어드레스 큐(4)에 대하여 리트라이를 지시한다.
이와 같이 하여, SMP로 구성되는 멀티프로세서 시스템에서는, 각 CPU가 요구하는 데이터의 어드레스를 글로벌 어드레스 크로스바에 투입하여, 글로벌 어드레스 크로스바를 사용하여 이들 어드레스를 조정함으로써, 이들 어드레스의 데이터를 처리하는 시스템 보드를 결정하고, 그 결정 결과를 각 시스템 보드에 통지함으로써, 모든 CPU에 대하여 대칭적으로 균일하게 처리가 할당되게 되는 것을 실현하고 있는 것이다.
본 발명에서는 이하에 설명하는 것과 같이, SMP로 구성되는 멀티프로세서 시스템에 있어서, 메모리로부터의 리드의 레이턴시 단축을 실현함으로써 시스템의 처리 성능의 향상을 실현하고 있으며, 이 본 발명에 관련되는 종래 기술로서, 하기에 기재하는 인용문헌 1에 기재된 발명 등이 있다.
<특허문헌 1>
일본 특허 공개 2001-184321호 공보
대규모의 캐쉬를 갖는 CPU를 구비하는 시스템에서는, 메모리로부터의 리드의 레이턴시는 시스템의 처리 성능에 큰 영향을 미치게 하여, 레이턴시가 짧으면 시스템의 처리 성능은 향상된다.
SMP로 구성되는 멀티프로세서 시스템에서는, 각 노드로부터 균등한 레이턴시로 메모리로부터 데이터를 리드할 수 있다고 하는 특징이 있지만, 물리적으로 근방에 있는 메모리로부터의 리드시의 레이턴시에 있어서는, 소규모의 비 SMP 구성의 멀티프로세서 시스템보다도 나빠진다.
프로그램의 최적화에 의해, 각 노드의 CPU는 자신의 노드의 메모리를 우선하여 사용하는 것이 가능하지만, 대규모의 SMP 구성의 멀티프로세서 시스템에서는 이 메리트를 얻을 수 없다.
그 때문에, SMP로 구성되는 멀티프로세서 시스템에서는, 자신의 노드의 메모리로부터의 리드의 레이턴시를 단축하는 것만으로도, 시스템의 처리 성능을 향상시키는 것을 기대할 수 있다.
메모리로부터의 리드의 레이턴시의 단축을 실현하기 위해서는, 개개의 모듈자체의 레이턴시를 단축하는 것이 중요하지만, 그밖에, 처리의 대기 시간을 단축함에 의해서도 실현 가능하다. 처리의 대기가 있으면, 레이턴시가 긴 쪽에서 시스템 전체의 레이턴시가 결정되게 되기 때문이다.
이어서, 도 10에 따라서, SMP를 구성하는 각 시스템 보드에서 실행되는 메모리 리드 처리에서 발생하는 대기 시간에 관해서 설명한다.
이 메모리 리드 처리에서는, 도 10에 도시한 바와 같이, 슬레이브 메모리 리드 데이터 큐(6)에서, 메모리(2)로부터의 데이터의 독출과, 파이프라인(3)으로부터의 리드 명령의 투기 실행의 채용·불채용 통지(데이터 송신이나 데이터 파기를 지시하는 통지)를 기다리는 처리를 한다.
이 경우, 글로벌 어드레스 크로스바(8)의 처리에 기초한 글로벌 어드레스의 레이턴시에 의한 지연이 크면, 메모리 데이터 쪽이 빠르게 슬레이브 메모리 리드 데이터 큐(6)에 도착하고, 이것보다 늦게 리드 명령의 투기 실행의 채용·불채용 통지가 슬레이브 메모리 리드 데이터 큐(6)에 도착하게 된다. 반대로, 메모리(2)의 데이터 리드 레이턴시에 의한 지연이 크면, 리드 명령의 투기 실행의 채용·불채용 통지 쪽이 빠르게 슬레이브 메모리 리드 데이터 큐(6)에 도착하고, 이것보다 늦게 메모리 데이터가 슬레이브 메모리 리드 데이터 큐(6)에 도착하게 된다.
이로부터 알 수 있는 것과 같이, 종래 기술에서는, SMP를 구성하는 각 시스템 보드에서 실행되는 메모리 리드 처리에 있어서, 슬레이브 메모리 리드 데이터 큐(6)에서 대기 시간이 발생하는 것을 피할 수 없어, 이 때문에, 시스템의 처리 성 능의 향상을 도모할 수 없다고 하는 문제가 있었다.
본 발명은 이러한 사정에 감안하여 이루어진 것으로, SMP를 구성하는 각 시스템 보드에서 실행되는 메모리 리드 처리에서 발생하는 데이터와 어드레스와의 대기 시간을 단축함으로써, 로컬 노드에 있어서의 메모리 리드의 레이턴시의 단축을 실현하는 새로운 멀티프로세서 시스템의 제공을 목적으로 한다.
이 목적을 달성하기 위해서, 본 발명의 멀티프로세서 시스템은, CPU와 메모리를 실장하는 복수의 시스템 보드가 글로벌 어드레스 크로스바를 통해 접속됨으로써 구성되어, 글로벌 어드레스 크로스바에 어드레스를 투입함으로써 모든 CPU에 대하여 대칭적으로 처리를 할당한다고 하는 구성을 채용함에 있어서, (1) 글로벌 어드레스 크로스바에 투입하는 CPU로부터 발행된 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인지 여부를 판단하는 판단 수단과, (2) 판단 수단이 자신의 시스템 보드 상의 메모리에의 리드 명령임을 판단하는 경우에, 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 그 리드 명령을 투기 실행하는 실행 수단과, (3) 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하지 않고서 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하는 설정 수단과, (4) 글로벌 어드레스 크로스바로부터의 통지에 기초하여, CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하는 지시 수단을 구비하도록 구성한다.
이 구성을 채용할 때에, 또한, (5) 메모리 측에 형성되는 데이터 큐와 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 경우에, 실행 수단이 실행하는 리드 명령의 투기 실행을 일시적으로 정지시키는 제1 일시 정지 수단과, (6) 메모리 측에 형성되는 데이터 큐와 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 경우에, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하도록 설정 수단에 의한 설정을 일시적으로 해제하는 해제 수단과, (7) 리드 명령의 투기 실행에 대한 리트라이가 다발 상태가 되는 경우에, 그 투기 실행을 일시적으로 정지시키는 제2 일시 정지 수단과, (8) 리드 명령의 투기 실행에 대한 리트라이가 규정 횟수를 넘는 리드 명령에 대해서, 그 리드 명령의 투기 실행을 정지시키는 정지 수단을 구비하는 경우가 있다.
이와 같이 구성되는 본 발명의 멀티프로세서 시스템에서는, CPU가 리드 명령을 발행하면, 판단 수단은, 그 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인지 여부를 판단하여, 자신의 시스템 보드 상의 메모리에의 리드 명령임을 판단할 때에는, 실행 수단은, 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 그 리드 명령을 투기 실행한다.
여기서, 판단 수단은, 메모리의 데이터가 CPU에 의해 다시 기록되고 있는 경우에는 투기 실행이 실패로 끝나는 것을 고려하여, 투기 실행의 성공 확률을 높이기 위해서, 메모리에 요구 데이터가 존재할 확률이 높은 리드 명령(예컨대, CPU에 의해 다시 기록되는 일이 없는 명령의 리드 명령)과 같이, 특정한 리드 명령을 판단 대상으로 하여, CPU로부터 발행된 리드 명령이 자신의 시스템 보드 상의 메모리 에의 리드 명령인지 여부를 판단하는 경우가 있다.
이와 같이 하여, 본 발명의 멀티프로세서 시스템에서는, CPU가 발행한 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인 경우에는, 도 1에 도시한 바와 같이, 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 그 리드 명령을 투기 실행하는 것이다.
이 구성을 채용할 때에, 다른 시스템 보드는 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초하여 리드 명령의 투기 실행을 행하게 되기 때문에, 본 발명의 멀티프로세서 시스템에서는 SMP의 기본적인 구성을 무너뜨리는 일은 없다.
또한, 본 발명의 멀티프로세서 시스템에서는, 설정 수단은, 예컨대 실행 수단이 본 발명에 특징적인 리드 명령의 투기 실행을 하는 경우에는, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하지 않고서 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하기 때문에, 이 설정에 기초하여, 지시 수단은, 글로벌 어드레스 크로스바로부터의 통지에 기초하여, CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시한다.
이와 같이 하여, 본 발명의 멀티프로세서 시스템에서는, 도 2에 도시한 바와 같이, 글로벌 어드레스 크로스바로부터의 통지에 기초하여, CPU 측에 형성되는 데이터 큐(도 2에 도시하는 마스터 리드 데이터 큐(7))에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하는 것이다.
본 발명의 멀티프로세서 시스템에서는, 도 1에 도시한 바와 같이, CPU가 발 행한 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인 경우에는, 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 그 리드 명령을 투기 실행하기 때문에, 메모리로부터 데이터를 고속으로 리드할 수 있게 된다.
그러나, 이 때, 글로벌 어드레스 크로스바로부터의 지시(데이터 파기의 지시나 CPU에의 데이터 송신의 지시)가 지연되면, 메모리로부터 리드한 데이터의 대기 시간이 길어져 버린다.
그래서, 본 발명의 멀티프로세서 시스템에서는, 그와 같은 리드 명령의 투기 실행을 행하는 경우에는, 도 2에 도시한 바와 같이, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐(도 2에 도시하는 슬레이브 메모리 리드 데이터 큐(6))에서 기다리게 하는 것이 아니라, CPU 측에 형성되는 데이터 큐(도 2에 도시하는 마스터 리드 데이터 큐(7))에서 기다리게 하도록 하여, 그 CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하도록 하는 것이다.
이 구성에 따라서, 본 발명의 멀티프로세서 시스템에서는, 메모리로부터 데이터를 고속으로 리드하여, 그것을 즉시 CPU에 송신할 수 있게 된다.
한편, 도 2에서는 도시되어 있지 않지만, 슬레이브 메모리 리드 데이터 큐(6)와 마스터 리드 데이터 큐(7)와의 사이를 접속하는 버스에는 다른 시스템 보드로부터 데이터가 전송되어 오게 된다.
이로부터, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 서 기다리게 하는 것이 아니라, CPU 측에 형성되는 데이터 큐에서 기다리게 하도록 하면, 메모리 측에 형성되는 데이터 큐와 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 일이 발생한다.
그래서, 본 발명의 멀티프로세서 시스템에서는, 제1 일시 정지 수단을 갖추도록 하여, 메모리로부터 리드한 데이터를 CPU 측에 형성되는 데이터 큐에서 기다리게 하도록 한다고 하는 구성을 채용하는 경우에는, 메모리 측에 형성되는 데이터 큐와 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 것인지 여부를 감시하여, 그 비지 상태를 검출하면, 제1 일시 정지 수단을 사용하여, 실행 수단이 실행하는 리드 명령의 투기 실행을 일시적으로 정지시키도록 한다.
또한, 본 발명의 멀티프로세서 시스템에서는, 해제 수단을 갖추도록 하여, 메모리로부터 리드한 데이터를 CPU 측에 형성되는 데이터 큐에서 기다리게 하도록 한다고 하는 구성을 채용하는 경우에는, 메모리 측에 형성되는 데이터 큐와 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 것인지 여부를 감시하여, 그 비지 상태를 검출하면, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하도록, 해제 수단을 사용하여, 설정 수단에 의한 설정을 일시적으로 해제하도록 한다.
그리고, 실행 수단이 실행하는 리드 명령의 투기 실행에 대한 리트라이가 다발 상태가 되는 경우에는, CPU에 의해 데이터가 빈번하게 다시 기록되고 있는 등, 그와 같은 상태가 발생하는 이유가 있다.
그래서, 본 발명의 멀티프로세서 시스템에서는, 제2 일시 정지 수단을 갖추도록 하여, 실행 수단이 실행하는 리드 명령의 투기 실행에 대한 리트라이가 다발 상태가 되는 경우에는, 제2 일시 정지 수단을 사용하여, 실행 수단이 실행하는 리드 명령의 투기 실행을 일시적으로 정지시키도록 한다.
그리고, 실행 수단이 실행하는 리드 명령의 투기 실행에 대한 리트라이가 규정 횟수를 넘는 리드 명령에 대해서는, CPU에 의해 데이터가 빈번하게 다시 기록되고 있는 등, 그와 같은 상태가 발생하는 이유가 있다.
그래서, 본 발명의 멀티프로세서 시스템에서는, 정지 수단을 갖추도록 하여, 실행 수단이 실행하는 리드 명령의 투기 실행에 대한 리트라이가 규정 횟수를 넘는 리드 명령에 관해서는, 정지 수단을 사용하여, 그 리드 명령의 투기 실행을 정지시키도록 한다.
이하, 실시형태에 따라서 본 발명을 상세히 설명한다.
도 3에 SMP로 구성되는 본 발명의 멀티프로세서 시스템의 일 실시형태를 도시한다.
이 도면에 도시한 바와 같이, 본 실시형태의 멀티프로세서 시스템은, CPU(10) 및 메모리(11)를 탑재하는 복수의 시스템 보드(100)가 글로벌 어드레스 크로스바(200) 및 글로벌 데이터 크로스바(300)를 통해 접속됨으로써 구성된다.
본 실시형태의 멀티프로세서 시스템에는, 시스템 관리자와 대화하는 단말(500)에 접속되어, 파티션의 구성 설정이나 동작 모드의 설정과 같은 시스템 전체의 관리를 행하는 시스템 컨트롤 장치(400)가 접속되어 있다.
본 실시형태의 멀티프로세서 시스템을 구성하는 각 시스템 보드(100)는, 자신의 보드에 탑재되는 CPU(10)가 발행하는 어드레스에 응답하여, 로컬 리퀘스트 어드레스 패킷(이하, LRA 패킷이라 부름)을 생성하여 글로벌 어드레스 크로스바(200)에 투입하고, 이 LRA 패킷의 투입을 받아, 글로벌 어드레스 크로스바(200)는, 글로벌 어드레스 우선순위 제어 회로(210)에 의해 조정을 행함으로써, 이들 LRA 패킷 중에서 글로벌 셀렉트 어드레스 패킷(이하, GSA 패킷이라 부름)을 선택하여, 그것을 모든 시스템 보드(100)(동일한 파티션 내의 시스템 보드(100)인 경우도 있음)에 브로드캐스트한다.
그리고, 글로벌 어드레스 크로스바(200)는, 이 GSA 패킷의 브로드캐스트에 응답하여, 각 시스템 보드(100)로부터, 리트라이가 필요하다는 것이나 데이터가 어디에 있는 것인지와 같은 것 등에 관해서 기술하는 로컬 캐스트 신호(이하, LCST 신호라 부름)가 송신되어 오면, GCST 생성 회로(220)를 사용하여, 리트라이 지시나 투기 실행된 리드 명령에 대한 채용·불채용 등에 관해서 기술하는 글로벌 캐스트 신호(이하, GCST 신호라 부름)를 생성하여, 그것을 모든 시스템 보드(100)(동일한 파티션 내의 시스템 보드(100)인 경우도 있음)에 브로드캐스트한다.
이 SMP 구성에 따라서, 본 실시형태의 멀티프로세서 시스템은, 모든 CPU(10)에 대하여 대칭적으로 균일하게 처리가 할당하는 것을 실현하고 있다.
본 실시형태의 멀티프로세서 시스템을 구성하는 각 시스템 보드(100)는, CPU(10) 및 메모리(11)를 갖추는 것에 더하여, CPU(10)와 메모리(11)를 서로 접속하여 데이터의 중계를 행하는 노스 브릿지(12)와, 메모리(11)의 제어를 행하는 메 모리 컨트롤러(13)를 구비한다.
이 노스 브릿지(12)는, 도 3에 도시한 바와 같이, 마스터 어드레스 큐(20)와, 셀렉터(21)와, 셀렉터 제어 회로(22)와, 메모리 액세스 제어 회로(23)와, 검사 회로(24)와, LCST 생성 회로(25)와, 슬레이브 리퀘스트 제어 회로(26)와, 마스터 리드 데이터 큐(27)와, 버스 비지 감시 회로(28)와, 리트라이수 감시 회로(29)와, 명령 디코더(30)를 구비한다.
한편, 메모리 컨트롤러(13)는, 도 3에 도시한 바와 같이, 슬레이브 메모리 리드 어드레스 큐(40)와, 슬레이브 메모리 리드 데이터 큐(41)와, 외부 리드 데이터 큐(42)와, 데이터 전송 회로(43)를 구비한다.
메모리 컨트롤러(13)가 구비하는 슬레이브 메모리 리드 어드레스 큐(40)는, 노스 브릿지(12)로부터 보내져오는 투기 실행한 리드 명령의 어드레스를 큐잉하는 동시에, 노스 브릿지(12)로부터 보내져오는 투기 실행한 리드 명령의 채용·불채용 통지를 수취한다. 또한, 메모리 컨트롤러(13)가 구비하는 슬레이브 메모리 리드 데이터 큐(41)는, 슬레이브 메모리 리드 어드레스 큐(40)에 큐잉되는 어드레스에 응답하여 메모리(11)로부터 리드된 데이터를 큐잉한다.
또한, 메모리 컨트롤러(13)가 구비하는 외부 리드 데이터 큐(42)는, 다른 시스템 보드(100)로부터 보내져오는 데이터를 큐잉한다. 또한, 메모리 컨트롤러(13)가 구비하는 데이터 전송 회로(43)는, 슬레이브 메모리 리드 데이터 큐(41) 및 외부 리드 데이터 큐(42)에 큐잉되는 데이터를 독출하여, 노스 브릿지(12)의 마스터 리드 데이터 큐(27)에 전송한다.
이어서, 노스 브릿지(12)가 구비하는 각 회로의 기능에 관해서 설명한다.
(1) 마스터 어드레스 큐(20)의 기능
마스터 어드레스 큐(20)는, CPU(10)로부터의 명령을 칩 세트의 LRA 패킷으로 변환하여 유지하고, 그것을 글로벌 어드레스 크로스바(200)에 투입한다.
마스터 어드레스 큐(20)에 유지되는 LRA 패킷은, 리드 명령인 경우에는, 데이터가 CPU(10)에 도착한 후에 해방되며, 데이터가 CPU(10)에 도착하지 않은 동안은 유지되고, 도중에 리트라이가 발생한 경우에는 재투입된다.
이 LRA 패킷은 오프 코드, 어드레스, ID, 보드 번호, 리트라이 횟수 정보, 파티션 정보 등의 정보로 구성된다.
(2) 셀렉터(21)의 기능
셀렉터(21)는, 셀렉터 제어 회로(22)의 선택 지시에 따라, 글로벌 어드레스 크로스바(200)에 투입되는 LRA 패킷이나, 글로벌 어드레스 크로스바(200)로부터 브로드캐스트되는 GSA 패킷 중 어느 한 쪽을 선택하여, 출력한다.
(3) 셀렉터 제어 회로(22)의 기능
셀렉터 제어 회로(22)는, 글로벌 어드레스 크로스바(200)로부터 GSA 패킷이 브로드캐스트되어 오는 경우와, GSA 패킷을 강제적으로 선택한다고 하는 동작 모드로 설정되어 있는 경우에는, 셀렉터(21)에 대하여, GSA 패킷을 선택할 것을 지시하고, 그 이외의 경우에는, 셀렉터(21)에 대하여, LRA 패킷을 선택할 것을 지시한다.
GSA 패킷을 강제적으로 선택한다고 하는 동작 모드는, 시스템 컨트롤 장치(400)에 의해 설정되어 명령 디코더(30)를 통해 통지되는 경우와, 메모리 액세스 제어 회로(23)에 의해 리트라이 다발 상태의 발생이 검출될 때에 설정되어 통지되는 경우와, 버스 비지 감시 회로(28)에 의해 마스터 리드 데이터 큐(27)와 데이터 전송 회로(43)와의 사이의 버스의 비지 상태의 발생이 검출될 때에 설정되어 통지되는 경우와, 리트라이수 감시 회로(29)에 의해 리트라이 횟수가 많은 LRA 패킷의 발생이 검출될 때에 설정되어 통지되는 경우가 있다.
(4) 메모리 액세스 제어 회로(23)의 기능
메모리 액세스 제어 회로(23)는, 자신의 시스템 보드(100)에 탑재되는 메모리(11)의 액세스를 제어하는 것으로, 셀렉터(21)가 LRA 패킷을 선택하고, 그것이 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 대한 리드 액세스인 경우에는, 그 LRA 패킷에 대응한 GSA 패킷이 도착할 때까지, 그 LRA 패킷이 갖는 어드레스 정보 및 ID 정보를 유지하는 동시에, 그 유지 정보가 유효하다는 것을 나타내는 밸리드(Valid) 정보를 유지한다. 여기서, ID 정보에 대해서는, GSA 패킷의 도착시에 LRA 패킷을 해방하기 위해서 유지하게 된다.
또한, 메모리 액세스 제어 회로(23)는, GSA 패킷이 라이트 패킷으로, 유지하고 있는 LRA 패킷과 어드레스가 일치하는 경우에는, 라이트 어드레스의 추월을 판단하여, 리트라이할 필요가 있음을 나타내는 리트라이 플래그를 셋트한다.
이 리트라이 플래그가 셋트되어 있는 경우에는, GSA 패킷에 대한 응답으로서, LCST 신호로 글로벌 어드레스 크로스바(200)에 대하여 리트라이를 회신하여, 글로벌 어드레스 크로스바(200)로부터 브로드캐스트되어 오는 GCST 신호의 지시에 따라, 슬레이브 리퀘스트 제어 회로(26)에 대하여 데이터 파기의 행동을 취하게 된 다.
또한, 메모리 액세스 제어 회로(23)는, 셀렉터(21)가 LRA 패킷을 선택하는 경우에 있어서, 검사 회로(24)의 검사 처리에 따라서, 그 LRA 패킷이 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 대한 리드 명령임을 검출하는 경우에는, 슬레이브 리퀘스트 제어 회로(26)에 대하여, 그 리드 명령의 투기 실행을 지시하여, 리드 명령 발행 종료 플래그를 셋트한다.
이 때 발행하는 리드 명령은, 통상의 GSA 패킷에 기초한 리드 명령과는 판별할 수 있도록 하기 위해서 상이한 명령으로 행한다. 그리고, GSA 패킷의 도착시에, 이 리드 명령 발행 종료 플래그가 셋트되어 있는 경우에는, 리드 명령 발행이 끝났기 때문에, 슬레이브 리퀘스트 제어 회로(26)에 대하여, 리드 명령을 재차 발행하지 않도록 지시를 행한다.
또한, 메모리 액세스 제어 회로(23)는, 상술한 리트라이 플래그의 셋트율을 감시하여, 라이트 어드레스의 추월이나 글로벌 어드레스 크로스바(200)로부터의 리트라이 지시의 다발에 의해 리트라이 다발 상태의 발생을 검출하면, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택한다고 하는 동작 모드로 설정하고, 그 동작 모드로 설정했음을 셀렉터 제어 회로(22)에 통지하는 기능을 갖는다.
예컨대, 리트라이가 셋트되면, 셋트 누적치를 1 인크리멘트하고, 리트라이가 셋트되지 않는 경우에는 셋트 누적치를 1 디크리멘트하고, 셋트 누적치가 규정의 임계치를 넘는 경우에는, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택한다고 하는 동작 모드로 설정함으로써, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷 을 선택하도록 한다고 하는 기능을 갖는 것이다.
(5) 검사 회로(24)의 기능
검사 회로(24)는, 어드레스 맵 검사나 DTAG 검사나 자원 고갈 검사나 어드레스 비지 검사를 행함으로써, 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 데이터가 있는 것인지, 자신의 시스템 보드(100)에 탑재되는 CPU(10)의 캐쉬에 데이터가 있는 것인지, 액세스 처리에 필요하게 되는 자원이 고갈되어 있거나, 다른 패킷이 어드레스를 사용 중이기 때문에 리드 명령의 리트라이를 지시할 필요가 있는 것인지 등을 검사한다.
즉, 어드레스 맵 검사를 행함으로써, LRA 패킷이 가리키는 데이터가 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 있는 것인지를 검사한다.
그리고, CPU(10)의 캐쉬에 기록되는 스테이터스 정보를 카피하여 관리하는 DTAG를 참조하여 검사를 행함으로써, 자신의 시스템 보드(100)에 탑재되는 CPU(10)의 캐쉬가 데이터를 가지고 있는 것인지, 그 CPU(10)의 캐쉬가 메모리(11)에 저장되는 데이터와 일치하는 형태로 데이터를 가지고 있는 것인지, 그 CPU(10)의 캐쉬가 메모리(11)에 저장되는 데이터를 다시 기록하는 형태로 데이터를 가지고 있는 것인지 등을 검사함으로써, 어디로부터 데이터를 리드해야 하는 것인지를 검사한다.
그리고, 리드 액세스에 필요하게 지는 자원이 고갈되어 있는 것인지를 검사하는 자원 고갈 검사를 행함으로써, 투기 실행한 리드 명령을 캔슬시킬 필요가 있는 것인지를 검사한다.
그리고, 동일 어드레스에 대한 액세스 경합이 발생하고 있는 것인지를 검사하는 어드레스 비지 검사를 행함으로써, 투기 실행한 리드 명령을 캔슬시킬 필요가 있는 것인지를 검사한다.
여기서, 셀렉터(21)가 LRA 패킷을 선택한 경우에는, 검사 회로(24)는, 어드레스 맵 검사만을 행하여, 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 데이터가 존재하는 것인지 여부를 검사하고, 그 검사 결과를 메모리 액세스 제어 회로(23)에 통지함으로써, 리드 명령의 투기 실행을 행하는 것인지 여부를 제어하게 된다.
(6) LCST 생성 회로(25)의 기능
LCST 생성 회로(25)는, 검사 회로(24)의 검사 결과에 기초하여, 리트라이가 필요하다는 것이나 데이터가 어디에 있는 것인지와 같은 것 등에 관해서 기술하는 LCST 신호를 생성하여, 그것을 글로벌 어드레스 크로스바(200)에 투입한다.
(7) 슬레이브 리퀘스트 제어 회로(26)의 기능
슬레이브 리퀘스트 제어 회로(26)는, 자신의 시스템 보드(100)에 탑재되는 메모리(11)에의 리퀘스트를 제어하는 것이다.
슬레이브 리퀘스트 제어 회로(26)는, 통상의 경우에는, 글로벌 어드레스 크로스바(200)로부터 브로드캐스트되는 GSA 패킷을 받아, 그 GSA 패킷에 대한 검사 회로(24)의 검사 결과에 기초하여, 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 대하여 리드 명령을 투기 실행함으로써, 슬레이브 메모리 리드 어드레스 큐(40)에 리드 명령을 큐잉한다. 그리고, 글로벌 어드레스 크로스바(200)로부터 브 로드캐스트되는 GCST 신호를 받아, 슬레이브 메모리 리드 어드레스 큐(40)를 경유하여 슬레이브 메모리 리드 데이터 큐(41)에 대하여, 투기 실행한 리드 명령의 채용·불채용을 통지한다. 그리고, 투기 실행한 리드 명령을 불채용으로 하는 경우에는, 마스터 어드레스 큐(20)에 대하여 리트라이를 통지한다.
이에 대하여, 본 실시형태에서는, (a) 리드한 데이터를 슬레이브 메모리 리드 데이터 큐(41)에서 기다리게 하여, 슬레이브 메모리 리드 데이터 큐(41)에 대하여, 투기 실행한 리드 명령의 채용·불채용을 통지한다고 하는 동작 모드와, (b) 리드한 데이터를 슬레이브 메모리 리드 데이터 큐(41)에서 기다리게 하지 않고서 마스터 리드 데이터 큐(27)에 전송함으로써, 마스터 리드 데이터 큐(27)에서 기다리게 하도록 하여, 마스터 리드 데이터 큐(27)에 대하여, 투기 실행한 리드 명령의 채용·불채용을 통지한다고 하는 동작 모드와, (c) LRA 패킷에 기초한 리드 명령에 관하여는 후자의 방법을 이용하고, GSA 패킷에 기초한 리드 명령에 관하여는 전자의 방법을 이용한다고 하는 동작 모드라는 3가지의 동작 모드를 준비하여, 시스템 컨트롤 장치(400)에서 어떤 동작 모드를 이용할 것인지를 설정하도록 하고 있다.
(8) 마스터 리드 데이터 큐(27)의 기능
마스터 리드 데이터 큐(27)는 데이터 전송 회로(43)로부터 전송되어 오는 데이터(데이터 패킷의 형태로 되어 있음)를 큐잉한다. 데이터 전송 회로(43)로부터 전송되어 오는 데이터에는, 슬레이브 메모리 리드 데이터 큐(41)로부터 독출된 데이터와, 외부 리드 데이터 큐(42)로부터 독출된 데이터가 있기 때문에, 이들 데이터를 큐잉하는 것이다.
(9) 버스 비지 감시 회로(28)의 기능
버스 비지 감시 회로(28)는, 데이터 전송 회로(43)와 마스터 리드 데이터 큐(27)와의 사이를 접속하는 버스를 감시 대상으로 하여, 일정 기간에, 그 버스에 전송된 데이터 패킷의 수를 세어 규정의 임계치와 비교함으로써, 그 버스가 비지 상태로 된 것인지 여부를 판단하여, 버스 비지 상태의 발생을 검출하면, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택한다고 하는 동작 모드로 설정하고, 그 동작 모드로 설정했음을 셀렉터 제어 회로(22)에 통지한다.
(10) 리트라이수 감시 회로(29)의 기능
리트라이수 감시 회로(29)는, 통상의 경우에는, 각 LRA 패킷의 리트라이수를 감시하여, 규정 이상의 리트라이를 반복하는 LRA 패킷을 검출하면, 다른 LRA 패킷의 투입을 억제하여, 리트라이를 성공시키도록 한다.
이에 대하여, 본 실시형태의 경우, 리트라이 다발의 요인이 본 실시형태의 동작에 기인할 가능성이 있음을 고려하여, 리트라이수 감시 회로(29)는, 규정 이상의 리트라이를 반복하는 LRA 패킷에 대해서는, 셀렉터(21)가 강제적으로 GSA 패킷을 선택한다고 하는 동작 모드로 설정하고, 그 동작 모드로 설정했음을 셀렉터 제어 회로(22)에 통지한다고 하는 처리를 행한다.
(11) 명령 디코더(30)의 기능
명령 디코더(30)는, 시스템 컨트롤 장치(400)의 명령을 디코드함으로써, 각 시스템 보드(100)의 보드 번호나 소속 파티션을 설정하는 동시에, 각종 동작 모드의 설정을 행한다.
버스 비지 감시 회로(28)가 동작할 때에 필요하게 되는 버스 비지 상태의 발생의 판단에 이용하는 데이터 패킷수의 임계치나, 셀렉터(21)가 강제적으로 GSA 패킷을 선택하는 기간의 길이 등에 관해서도, 명령 디코더(30)가 시스템 컨트롤 장치(400)의 명령을 디코드함으로써 설정하게 된다.
이어서, 이와 같이 구성되는 본 실시형태의 멀티프로세서 시스템의 동작에 관해서 설명한다.
본 실시형태의 멀티프로세서 시스템에서는, CPU(10)가 리드 명령을 발행하면, 마스터 어드레스 큐(20)는, CPU(10)로부터의 리드 명령을 칩 세트의 LRA 패킷으로 변환하여 유지하여, 그것을 글로벌 어드레스 크로스바(200)에 투입한다.
이 때, 셀렉터(21)는, 글로벌 어드레스 크로스바(200)에 투입되는 LRA 패킷을 선택하여 출력하고, 이것을 받아, 검사 회로(24)는, 어드레스 맵 검사를 행하여, 리드 요구의 데이터가 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 존재하는 것인지를 검사하여, 그 검사 결과를 메모리 액세스 제어 회로(23)에 통지한다.
이 통지를 받아, 메모리 액세스 제어 회로(23)는, 글로벌 어드레스 크로스바(200)에 투입되는 LRA 패킷이 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 대한 리드 명령임의 검사 결과를 수취하는 경우에는, 슬레이브 리퀘스트 제어 회로(26)를 통해, 메모리 컨트롤러(13)에 대하여 리드 명령을 투기 실행한다.
이와 같이 하여, 본 실시형태의 멀티프로세서 시스템에서는, 글로벌 어드레스 크로스바(200)에 투입되는 LRA 패킷이 자신의 시스템 보드(100)에 탑재되는 메 모리(11)에 대한 리드 명령임을 검출하는 경우에는, 도 1에 도시한 바와 같은 타이밍에, 리드 명령을 투기 실행하도록 처리하는 것이다.
본 실시형태의 멀티프로세서 시스템에서는, 통상의 SMP로 구성되는 멀티프로세서 시스템과 마찬가지로, 글로벌 어드레스 크로스바(200)에 대하여 LRA 패킷을 투입하고, 이것에 응답하여 글로벌 어드레스 크로스바(200)로부터 GSA 패킷이 브로드캐스트되어 오면, 그것을 수취하여, 어드레스 맵 검사나 DTAG 검사나 자원 고갈 검사나 어드레스 비지 검사를 행한다.
이 때, 다른 시스템 보드(100)에 탑재되는 CPU(10)가 요구하는 리드 요구 데이터가 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 존재하는 경우에는, GSA 패킷에 기초한 리드 명령의 투기 실행을 행한다. 그리고, 그 검사 결과에 기초하여 LCST 신호를 생성하여 글로벌 어드레스 크로스바(200)에 투입하고, 이것에 응답하여, 글로벌 어드레스 크로스바(200)로부터 GCST 신호가 브로드캐스트되어 오면, 그것을 수취하여, 그것에 기초하여 투기 실행한 리드 명령의 채용·불채용을 판단하도록 하고 있다.
한편, 본 실시형태의 멀티프로세서 시스템에서는, LRA 패킷에 기초하여 리드 명령을 투기 실행하는 경우에는, 리드한 데이터를 슬레이브 메모리 리드 데이터 큐(41)에서 기다리게 하지 않고서 마스터 리드 데이터 큐(27)에 전송하고, 마스터 리드 데이터 큐(27)에서 기다리게 하도록 하여, 마스터 리드 데이터 큐(27)에 대하여, 투기 실행한 리드 명령의 채용·불채용을 통지하도록 하고 있다.
이 구성에 따라서, 본 실시형태의 멀티프로세서 시스템에서는, 투기 실행의 리드 명령에 따라서 메모리(11)로부터 리드된 데이터는 마스터 리드 데이터 큐(27)에 전송되어, 거기서 기다리게 되어 있다.
이로부터, 본 실시형태의 멀티프로세서 시스템에서는, 글로벌 어드레스 크로스바(200)로부터 브로드캐스트되어 온 GCST 신호에 기초하여, 투기 실행한 리드 명령의 채용을 판단하면, 마스터 리드 데이터 큐(27)에 대하여, 그 투기 실행한 리드 명령에 의해 리드된 데이터를 CPU(10)에 송신할 것을 지시한다. 한편, 투기 실행한 리드 명령의 불채용을 판단하면, 마스터 리드 데이터 큐(27)에 대하여, 그 투기 실행한 리드 명령에 의해 리드된 데이터의 파기를 지시하는 동시에, 마스터 어드레스 큐(20)에 대하여, 투기 실행에 실패한 LRA 패킷의 리트라이를 지시한다.
이와 같이 하여, 본 실시형태의 멀티프로세서 시스템에서는, 글로벌 어드레스 크로스바(200)에 투입되는 LRA 패킷이 자신의 시스템 보드(100)에 탑재되는 메모리(11)에 대한 리드 명령임을 검출하는 경우에는, 도 2에 도시한 바와 같은 형태로 메모리(11)로부터 리드한 데이터를 기다리게 하여, 데이터의 채용·불채용을 통지하도록 처리하는 것이다.
이 구성에 따라서, 본 실시형태의 멀티프로세서 시스템에서는, 메모리(11)로부터 데이터를 고속으로 리드하여, 그것을 즉시 CPU(10)에 송신할 수 있게 된다.
즉, 종래의 SMP로 구성되는 멀티프로세서 시스템에서는, 도 4에 도시한 바와 같이, 글로벌 어드레스 크로스바(200)로부터 브로드캐스트되는 GSA 패킷에 기초하여 리드 명령을 투기 실행하는 동시에, 슬레이브 메모리 리드 데이터 큐(41)에서 데이터를 기다리게 한다고 하는 구성을 채용하는 데 대하여, 본 실시형태의 멀티프 로세서 시스템에서는, 도 5에 도시한 바와 같이, 글로벌 어드레스 크로스바(200)에 투입하는 LRA 패킷에 기초하여 리드 명령을 투기 실행하는 동시에, 마스터 리드 데이터 큐(27)에서 데이터를 기다리게 한다고 하는 구성을 채용하기 때문에, 메모리(11)로부터 데이터를 고속으로 리드하여, 그것을 즉시 CPU(10)에 송신할 수 있게 되는 것이다.
도 6에 자신의 시스템 보드(100)에 탑재되는 메모리(11)를 리드할 때의 신호의 흐름을 도시한다.
이 도면에 도시한 바와 같이, 본 실시형태에서는, 자신의 시스템 보드(100)에 탑재되는 메모리(11)를 리드할 때에는, 도면 중의 α(파선)로 나타내는 바와 같이, 종래보다도 빠른 단계에서 리드 명령을 투기 실행하여, 메모리(11)로부터 리드한 데이터를 마스터 리드 데이터 큐(27)에 큐잉하고, 도면 중의 β(일점 쇄선)로 나타내는 바와 같이, SMP로서의 동작에 기초하여, 그 투기 실행한 리드 명령에 대한 채용·불채용을 결정하여, 마스터 리드 데이터 큐(27)에서 그 결정 결과를 반영하도록 처리한다.
도 7에 다른 시스템 보드(100)에 탑재되는 메모리(11)를 리드할 때의 신호의 흐름을 도시한다.
이 경우에는, 자신의 시스템 보드(100)에 탑재되는 메모리(11)를 리드하는 것은 아니기 때문에, 도면 중의 α(파선)로 나타내는 바와 같이, 본 실시형태에 특징적인 빠른 단계에서의 리드 명령의 투기 실행은 행하지 않고, 도면 중의 β(일점 쇄선)로 나타내는 바와 같이, SMP로서의 동작에 기초하여, 다른 시스템 보드(100) 로부터 데이터가 전송되어 오기 때문에, 그것을 수신하도록 처리한다.
도 8에 다른 시스템 보드(100)에 탑재되는 CPU(10)가 자신의 시스템 보드(100)에 탑재되는 메모리(11)를 리드할 때의 신호의 흐름을 도시한다.
이 경우에는, 자신의 시스템 보드(100)에 탑재되는 CPU(10)가 리드 명령을 발행하는 것은 아니기 때문에, 도면 중의 α, β(α : 파선, β : 일점 쇄선)로 나타내는 바와 같이, SMP로서의 동작에 기초하여, GSA 패킷에 의해 리드 명령의 투기 실행을 행하고, 도면 중의 α에 나타내는 바와 같이, SMP로서의 동작에 기초하여, 그 투기 실행한 리드 명령에 대한 채용·불채용을 결정하여, 채용을 결정하는 경우에는, 메모리(11)로부터 리드한 데이터를 리드 명령 발행원의 시스템 보드(100)에 탑재되는 CPU(10)에 데이터 전송하도록 처리한다.
이상에서 설명한 바와 같이, 본 실시형태의 멀티프로세서 시스템에서는, 종래보다도 빠른 단계에서 리드 명령을 투기 실행하고 있어, 이로부터, 리드 명령의 리트라이 횟수가 증가하는 것도 생각할 수 있다.
그래서, 본 실시형태의 멀티프로세서 시스템에서는, 메모리 액세스 제어 회로(23)가 리트라이의 발생 빈도를 검출하도록 하여, 글로벌 어드레스 크로스바(200)로부터의 리트라이 지시의 다발에 의해 리트라이 다발 상태의 발생을 검출하면, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택하도록 제어함으로써, 본 실시형태에 특징적인 처리인 LRA 패킷에 기초한 리드 명령의 투기 실행을 억제하도록 하고 있다.
또한, 본 실시형태의 멀티프로세서 시스템에서는, 메모리(11)로부터 리드한 데이터를 슬레이브 메모리 리드 데이터 큐(41)에서 기다리게 하는 것이 아니라, 마스터 리드 데이터 큐(27)에 전송하여, 거기서 기다리게 하도록 한다고 하는 구성을 채용하고 있다.
이 구성을 채용하면, 슬레이브 메모리 리드데이터 큐(41)와 마스터 리드 데이터 큐(27)와의 사이를 접속하는 버스가 비지 상태가 되는 일이 일어난다.
그래서, 본 실시형태의 멀티프로세서 시스템에서는, 버스 비지 감시 회로(28)를 갖추도록 하여, 일정 기간에 그 버스에 전송된 데이터 패킷의 수를 셈으로써, 그 버스가 비지 상태로 되었는지 여부를 판단하여, 버스 비지 상태의 발생을 검출하면, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택하도록 제어함으로써, 본 실시형태에 특징적인 처리인 LRA 패킷에 기초한 리드 명령의 투기 실행을 억제하도록 하고 있다.
또한, 본 실시형태의 멀티프로세서 시스템에서는, 종래보다도 빠른 단계에서 리드 명령을 투기 실행하고 있어, 이로부터, 특정한 리드 명령에 관한 리트라이 횟수가 증가하는 것도 생각할 수 있다.
그래서, 본 실시형태의 멀티프로세서 시스템에서는, 리트라이수 감시 회로(29)를 갖추도록 하여, 규정 이상의 리트라이를 반복하는 LRA 패킷에 대해서는, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택하도록 제어함으로써, 본 실시형태에 특징적인 처리인 LRA 패킷에 기초한 리드 명령의 투기 실행을 억제하도록 하고 있다.
도시한 실시형태의 예에 따라서 본 발명을 설명했지만, 본 발명은 이것에 한 정되는 것은 아니다.
예컨대, 실시형태의 예에서는, 리드 명령의 종류를 고려하지 않고, LRA 패킷에 기초한 리드 명령의 투기 실행을 행한다고 하는 구성을 개시했지만, 메모리(11)에 리드 요구의 데이터가 존재할 확률이 높은 리드 명령을 처리 대상으로 하여, LRA 패킷에 기초한 리드 명령의 투기 실행을 행하도록 한다고 하는 구성을 채용하더라도 좋다.
메모리(11)에 있는 데이터는 CPU(10)의 캐쉬에 가지고 들어가 다시 기록되고 있는 경우가 있으며, 이러한 데이터를 리드 요구 데이터로 하는 리드 명령의 투기 실행은 결국 실패로 끝나게 된다.
그래서, 배타권의 획득을 요구하는 리드 명령에 대해서는, 데이터가 다시 기록되고 있을 가능성이 높기 때문에, 그와 같은 리드 명령(오프 코드로 알 수 있음)에 대하여는 본 발명의 처리 대상으로 하지 않도록 한다고 하는 구성을 채용하더라도 좋은 것이다.
또한, 실시형태의 예에서는, 버스 비지 감시 회로(28)가 슬레이브 메모리 리드 데이터 큐(41)와 마스터 리드 데이터 큐(27)와의 사이를 접속하는 버스의 비지 상태의 발생을 검출하면, 셀렉터(21)가 일정 기간 강제적으로 GSA 패킷을 선택하도록 제어한다고 하는 구성을 채용했지만, 이 버스 비지 상태의 발생을 검출하면, 투기 실행의 채용·불채용의 통지처를 마스터 리드 데이터 큐(27)로부터 슬레이브 메모리 리드데이터 큐(41)로 변경함으로써, 메모리(11)로부터 리드한 데이터를 마스터 리드 데이터 큐(27)에서 데이터를 기다리게 하는 것이 아니라, 슬레이브 메모리 리드 데이터 큐(41)에서 데이터를 기다리게 하도록 한다고 하는 구성을 채용하더라도 좋다.
본 발명에 따르면, SMP의 기본적인 처리를 무너뜨리는 일없이, SMP를 구성하는 각 시스템 보드에서 실행되는 메모리 리드 처리에서 발생하는 데이터와 어드레스와의 대기 시간을 단축할 수 있게 된다.
이로부터, 본 발명에 따르면, SMP로 구성되는 멀티프로세서 시스템에 있어서, SMP의 기본적인 처리를 무너뜨리는 일없이, 로컬 노드에 있어서의 메모리 리드의 레이턴시 단축을 실현할 수 있게 된다.

Claims (10)

  1. CPU와 메모리를 실장하는 복수의 시스템 보드가 글로벌 어드레스 크로스바를 통해 접속됨으로써 구성되고, 상기 글로벌 어드레스 크로스바에 어드레스를 투입함으로써 모든 CPU에 대하여 대칭적으로 처리를 할당한다고 하는 구성을 채용하는 멀티프로세서 시스템에 있어서,
    상기 글로벌 어드레스 크로스바에 투입하는 CPU로부터 발행된 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인 것인지 여부를 판단하는 판단 수단과,
    상기 판단 수단이 자신의 시스템 보드 상의 메모리에의 리드 명령임을 판단하는 경우에, 상기 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 상기 리드 명령을 투기 실행하는 실행 수단
    을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  2. CPU와 메모리를 실장하는 복수의 시스템 보드가 글로벌 어드레스 크로스바를 통해 접속됨으로써 구성되고, 상기 글로벌 어드레스 크로스바에 어드레스를 투입함으로써 모든 CPU에 대하여 대칭적으로 처리를 할당한다고 하는 구성을 채용하는 멀티프로세서 시스템에 있어서,
    메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하지 않고서 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하는 설정 수단과,
    상기 글로벌 어드레스 크로스바로부터의 통지에 기초하여, 상기 CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하는 지시 수단
    을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  3. CPU와 메모리를 실장하는 복수의 시스템 보드가 글로벌 어드레스 크로스바를 통해 접속됨으로써 구성되고, 상기 글로벌 어드레스 크로스바에 어드레스를 투입함으로써 모든 CPU에 대하여 대칭적으로 처리를 할당한다고 하는 구성을 채용하는 멀티프로세서 시스템에 있어서,
    상기 글로벌 어드레스 크로스바에 투입하는 CPU로부터 발행된 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인 것인지 여부를 판단하는 판단 수단과,
    상기 판단 수단이 자신의 시스템 보드 상의 메모리에의 리드 명령임을 판단하는 경우에, 상기 글로벌 어드레스 크로스바로부터 통지되는 어드레스에 기초한 글로벌 액세스 전에, 상기 리드 명령을 투기 실행하는 실행 수단과,
    메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하지 않고서 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하는 설정 수단과,
    상기 글로벌 어드레스 크로스바로부터의 통지에 기초하여, 상기 CPU 측에 형성되는 데이터 큐에 대하여, 데이터의 파기 또는 CPU에의 데이터 송신을 지시하는 지시 수단
    을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  4. 제3항에 있어서, 상기 설정 수단은, 상기 실행 수단이 상기 리드 명령의 투기 실행을 행하는 경우에는, 메모리로부터 리드한 데이터를 CPU 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하는 것을 특징으로 하는 멀티프로세서 시스템.
  5. 제3항 또는 제4항에 있어서, 상기 메모리 측에 형성되는 데이터 큐와 상기 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 경우에, 상기 실행 수단이 실행하는 리드 명령의 투기 실행을 일시적으로 정지시키는 일시 정지 수단을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  6. 제3항 또는 제4항에 있어서, 상기 메모리 측에 형성되는 데이터 큐와 상기 CPU 측에 형성되는 데이터 큐와의 사이를 접속하는 버스가 비지 상태가 되는 경우에, 메모리로부터 리드한 데이터를 메모리 측에 형성되는 데이터 큐에 큐잉하는 것을 설정하도록, 상기 설정 수단에 의한 설정을 일시적으로 해제하는 해제 수단을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  7. 제1항, 제3항 또는 제4항 중 어느 한 항에 있어서, 상기 리드 명령의 투기 실행에 대한 리트라이가 다발 상태가 되는 경우에, 상기 투기 실행을 일시적으로 정지시키는 일시 정지 수단을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  8. 제1항, 제3항 또는 제4항 중 어느 한 항에 있어서, 상기 리드 명령의 투기 실행에 대한 리트라이가 규정 횟수를 넘는 리드 명령에 대해서, 상기 리드 명령의 투기 실행을 정지시키는 정지 수단을 구비하는 것을 특징으로 하는 멀티프로세서 시스템.
  9. 제1항, 제3항 또는 제4항 중 어느 한 항에 있어서, 상기 판단 수단은, 특정한 리드 명령을 판단 대상으로 하여, CPU로부터 발행된 리드 명령이 자신의 시스템 보드 상의 메모리에의 리드 명령인지 여부를 판단하는 것을 특징으로 하는 멀티프로세서 시스템.
  10. 제9항에 있어서, 상기 판단 수단은, 상기 특정한 리드 명령으로서, 메모리에 요구 데이터가 존재할 확률이 높은 리드 명령을 이용하는 것을 특징으로 하는 멀티프로세서 시스템.
KR1020070020134A 2006-08-17 2007-02-28 멀티프로세서 시스템 KR100884011B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006222286A JP4829038B2 (ja) 2006-08-17 2006-08-17 マルチプロセッサシステム
JPJP-P-2006-00222286 2006-08-17

Publications (2)

Publication Number Publication Date
KR20080016422A true KR20080016422A (ko) 2008-02-21
KR100884011B1 KR100884011B1 (ko) 2009-02-17

Family

ID=38686808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070020134A KR100884011B1 (ko) 2006-08-17 2007-02-28 멀티프로세서 시스템

Country Status (6)

Country Link
US (1) US7694106B2 (ko)
EP (1) EP1895432B1 (ko)
JP (1) JP4829038B2 (ko)
KR (1) KR100884011B1 (ko)
CN (1) CN100535885C (ko)
DE (1) DE602007007552D1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103443774A (zh) * 2007-09-25 2013-12-11 富士通株式会社 信息处理装置和控制方法
JP4465405B2 (ja) 2008-02-27 2010-05-19 Hoya株式会社 フォトマスクブランクおよびフォトマスク並びにこれらの製造方法
CN101908036B (zh) * 2010-07-22 2011-08-31 中国科学院计算技术研究所 一种高密度多处理器系统及其节点控制器
CN101907986B (zh) * 2010-08-30 2013-11-06 威盛电子股份有限公司 访问多个存储器的数据处理设备和数据处理方法
US9430369B2 (en) 2013-05-24 2016-08-30 Coherent Logix, Incorporated Memory-network processor with programmable optimizations
RU2611337C1 (ru) * 2016-01-13 2017-02-21 Федеральное государственное учреждение "Федеральный научный центр Научно-исследовательский институт системных исследований Российской академии наук" (ФГУ ФНЦ НИИСИ РАН) Способ передачи сообщений между вычислительными устройствами
CN106776457B (zh) * 2016-12-29 2020-04-03 郑州云海信息技术有限公司 一种服务器跨板共享信号的控制系统及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07122864B2 (ja) * 1991-07-22 1995-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理システム、データ処理システムに使用するインターフエース回路及びデータ・プロセツサ間の通信方法
JPH08185359A (ja) * 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5657472A (en) * 1995-03-31 1997-08-12 Sun Microsystems, Inc. Memory transaction execution system and method for multiprocessor system having independent parallel transaction queues associated with each processor
US5887138A (en) 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
US6092155A (en) * 1997-07-10 2000-07-18 International Business Machines Corporation Cache coherent network adapter for scalable shared memory processing systems
JP3864509B2 (ja) * 1997-08-19 2007-01-10 株式会社日立製作所 マルチプロセッサシステム
US6081874A (en) * 1998-09-29 2000-06-27 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
GB2352144A (en) 1999-07-16 2001-01-17 Texas Instruments Ltd Data transfer between memory nodes
JP2001167077A (ja) * 1999-12-09 2001-06-22 Nec Kofu Ltd ネットワークシステムにおけるデータアクセス方法、ネットワークシステムおよび記録媒体
JP3959914B2 (ja) 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
US6938128B1 (en) * 2000-07-20 2005-08-30 Silicon Graphics, Inc. System and method for reducing memory latency during read requests
JP3404386B2 (ja) * 2001-03-14 2003-05-06 エヌイーシーコンピュータテクノ株式会社 メモリアクセスレイテンシ増加回避方式
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US6912612B2 (en) * 2002-02-25 2005-06-28 Intel Corporation Shared bypass bus structure
US7962696B2 (en) * 2004-01-15 2011-06-14 Hewlett-Packard Development Company, L.P. System and method for updating owner predictors
US7257683B2 (en) * 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
JP4504134B2 (ja) * 2004-08-16 2010-07-14 富士通株式会社 システム制御装置、投機フェッチ方法および情報処理装置
JP4695367B2 (ja) * 2004-08-31 2011-06-08 富士通株式会社 情報処理装置,制御装置及び情報処理装置の制御方法
JP4848771B2 (ja) * 2006-01-04 2011-12-28 株式会社日立製作所 キャッシュ一貫性制御方法およびチップセットおよびマルチプロセッサシステム

Also Published As

Publication number Publication date
EP1895432A1 (en) 2008-03-05
JP2008046890A (ja) 2008-02-28
CN100535885C (zh) 2009-09-02
CN101127028A (zh) 2008-02-20
JP4829038B2 (ja) 2011-11-30
EP1895432B1 (en) 2010-07-07
DE602007007552D1 (de) 2010-08-19
KR100884011B1 (ko) 2009-02-17
US20080046694A1 (en) 2008-02-21
US7694106B2 (en) 2010-04-06

Similar Documents

Publication Publication Date Title
KR100884011B1 (ko) 멀티프로세서 시스템
JP4723260B2 (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
US9727497B2 (en) Resolving contention between data bursts
JP5186382B2 (ja) メモリ・システム内で不確定な読み取りデータ待ち時間を可能にする方法及びシステム
KR101915198B1 (ko) 프로세서간 메시지처리장치 및 방법
JP4801725B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP5653431B2 (ja) マルチプロセッサシステム
JP2011059777A (ja) タスクスケジューリング方法及びマルチコアシステム
US6810457B2 (en) Parallel processing system in which use efficiency of CPU is improved and parallel processing method for the same
US7730264B1 (en) Adaptively reducing memory latency in a system
JP2011128989A (ja) データ処理装置、データ処理方法、及びプログラム
JP2021524092A (ja) 割込みコントローラ
JP4504134B2 (ja) システム制御装置、投機フェッチ方法および情報処理装置
US20100131719A1 (en) Early Response Indication for data retrieval in a multi-processor computing system
JP2007323256A (ja) 割込制御方法および情報処理装置
WO2007049543A1 (ja) 演算装置
US20170017549A1 (en) Node, arithmetic processing device, and arithmetic processing method
JP6849949B2 (ja) メモリアクセス装置、命令制御方法、プログラム、情報処理装置
US20240241755A1 (en) Apparatus and method for controlling access to a shared resource
CN115412515A (zh) 一种基于fpga的存储空间分配方法
CN118377538A (zh) 一种指令处理方法、微处理器及存储介质
JP3983926B2 (ja) マルチプロセッサコンピューティング環境におけるメッセージ受渡しのオーバランを防止する方法及びコンピュータシステム
JP2012079275A (ja) 外部デバイスアクセス装置およびコンピュータプログラム
JP2004362313A (ja) 並列計算機システムにおけるメモリアクセス制御方式およびその方式を実現するための演算処理装置内ネットワークユニット

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140117

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 12