KR20060008889A - 정보처리시스템 및 정보처리방법 - Google Patents

정보처리시스템 및 정보처리방법 Download PDF

Info

Publication number
KR20060008889A
KR20060008889A KR1020057019493A KR20057019493A KR20060008889A KR 20060008889 A KR20060008889 A KR 20060008889A KR 1020057019493 A KR1020057019493 A KR 1020057019493A KR 20057019493 A KR20057019493 A KR 20057019493A KR 20060008889 A KR20060008889 A KR 20060008889A
Authority
KR
South Korea
Prior art keywords
value
array
item
global
values
Prior art date
Application number
KR1020057019493A
Other languages
English (en)
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 KR20060008889A publication Critical patent/KR20060008889A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/24569Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2237Vectors, bitmaps or matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/22Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
    • G06F7/24Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

분산 메모리형에 있어서, 단일 명령에 의해 각종 메모리에 기억된 배열 중의 요소를 입출력하고, 처리와 통신을 통합한다. 인접하는 PMM(12)의 사이에는, 한쪽에서 다른쪽으로 패킷을 전달하는 제 1 패킷 전송로(14), 및, 다른쪽에서 한쪽으로 패킷을 전달하는 제 2 패킷 전송로(16)를 구비한다. 각 PMM은, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성된다.

Description

정보처리시스템 및 정보처리방법{INFORMATION PROCESSING SYSTEM AND INFORMATION PROCESSING METHOD}
본 발명은, SIMD(Single Instruction Stream, Multiple Data Stream)를 실현할 수 있는 병렬 컴퓨터의 아키텍처를 채용한 정보처리시스템에 관한 것이다.
사회 전체의 여러가지의 장소에 컴퓨터가 도입되어, 인터넷을 비롯한 네트워크가 침투된 오늘날에는, 여기저기에서, 대규모의 데이터가 축적되게 되었다. 이러한 대규모 데이터를 처리하기 위해서는, 방대한 계산이 필요하므로, 이를 위한 병렬처리를 도입하고자 시도하는 것은 자연스럽다.
병렬처리 아키텍처는 「공유 메모리형」과 「분산 메모리형」으로 크게 나누어진다. 전자(「공유 메모리형」)는, 복수의 프로세서가 1개의 거대한 메모리 공간을 공유하는 방식이다. 이 방식에서는, 프로세서 군과 공유메모리 간의 트래픽이 병목으로 되므로, 100을 초과하는 프로세서를 이용하여 현실적인 시스템을 구축하는 것은 용이하지 않다. 따라서, 예컨대 10억개의 부동 소수점 변수의 평방근을 계산할 때, 단일 CPU에 대한 가속비는, 기껏해야 100배로 된다. 경험적으로는, 30배 정도가 상한이다.
후자(「분산 메모리형」)는, 각 프로세서가 각각 로컬 메모리를 가지고, 이 들을 결합해서 시스템을 구축한다. 이 방식에서는, 수백~수만의 프로세서를 짜 넣은 하드웨어 시스템의 설계가 가능하다. 따라서, 상기 10억개의 부동 소수점 변수의 평방근을 계산할 때의 단일 CPU에 대한 가속비를, 수백~수만배로 할 수 있다. 그러나, 후자에 있어서도, 후술하는 몇 개의 과제가 존재한다.
[제 1 과제: 거대 배열의 분장 관리(assignment management)]
「분산 메모리형」의 제 1 과제는, 데이터의 분장 관리의 문제이다.
거대한 데이터(일반적으로는 배열이므로, 이후, 배열로 설명한다)는, 1개의 프로세서의 소유하는 로컬 메모리에 수용할 수 있는 것은 아니고, 필연적으로 복수의 로컬 메모리에 분장 관리된다. 효율적 또한 유연한 분장 관리 메커니즘을 도입하지 않으면, 프로그램의 개발 및 실행에 있어서 여러가지의 장해를 껴안게 되는 것은 명확하다.
[제 2 과제: 프로세서 간 통신의 효율의 낮음]
분산 메모리형 시스템의 각 프로세서가, 거대 배열에 액세스하고자 하면, 자기가 소유하는 로컬 메모리 상의 배열 요소에 대해서는 신속하게 액세스할 수 있지만, 다른 프로세서가 소유하는 배열 요소에의 액세스는 프로세서 간 통신을 필수로 한다. 이 프로세서 간 통신은 로컬 메모리와의 통신에 비해, 극단적으로 성능이 낮아, 최저에서도 100클럭이 걸리는 것으로 말해지고 있다. 이 때문에, 소트 실시시에는, 거대 배열 전역에 걸치는 참조가 실시되며, 프로세서 간 통신이 다발하기 때문에, 성능이 극단적으로 저하한다.
이 문제점에 대해서, 보다 구체적으로 설명을 더한다. 1999년 현재, 퍼스컴 은, 1~수개의 CPU을 이용하여, 「공유 메모리형」으로서 구성되어 있다. 이 퍼스컴에 사용되는 표준적인 CPU는, 메모리 버스의 5~6배 정도의 내부 클럭으로 동작하고, 그 내부에 자동적인 병렬 실행 기능이나 파이프라인 처리기능이 장착되고 있어, 대략 1 데이터를 1 클럭(메모리 버스)으로 처리할 수 있다.
이 때문에, 「분산 메모리형」의 멀티 프로세서 시스템에서는, 프로세서 수는 많은데도, 싱글 프로세서(공유 메모리형)보다 100배 늦어지게 될지 모른다.
[제 3 과제: 프로그램의 공급]
「분산 메모리형」의 제 3 과제는, 다수의 프로세서에 어떻게 프로그램을 공급할지라는 문제이다.
대단히 다수의 프로세서에, 각각의 프로그램을 로드하고, 전체를 협조 동작시키는 방식(MIMD: Multiple Instruction Stream, Multiple Data Stream)에서는, 프로그램의 작성, 편집, 배신 때문에 엄청난 부하를 요한다.
한편, 다수의 프로세서를 동일한 프로그램으로 동작시키는 방식(SIMD : Single Instruction Stream, Multiple Data Stream)에서는, 프로그램의 자유도가 감소하고, 원하는 결과를 초래하는 프로그램을 개발할 수 없는 사태도 상정된다.
본 발명은, 「분산 메모리형」의 상기 제 1 ~ 제 3 과제를 해결하는 방법 및 컴퓨터 아키텍처를 제공한다.
그런데, 본 발명자는, 표형식 데이터를 기억하기 위해서, 항목마다의 정보블록을 형성하고, 상기 정보블록에, 항목값을 기억한 값 리스트, 및, 그 값 리스트를 지정하기 위한 값(포인터값)을, 레코드마다 기억한 포인터 배열을 설정하고, 레코 드 번호로부터, 포인터 배열 및 값 리스트를 순차적으로 특정해 감으로써, 표형식의 뷰를 취득할 수 있는 구조 및 처리방법을 고안하고 있다(국제공개 WO00/10103호 팜플렛, 특히, 제3도 및 제4도 참조). 이 구조에 있어서, 레코드 수가 증대함에 따라서, 상기 값 리스트나 포인터 배열, 특히, 포인터 배열은 대단히 커지기 때문에, 이것을, 복수의 메모리에서 분장한 뒤에, 단일 명령에 의해, 검색, 집계, 소트 등의 처리를 실행할 수 있는 것이 바람직하다.
그래서, 본 발명은, 분산 메모리형에 있어서, 단일 명령에 의해 각종 메모리에 기억된 배열 중의 요소를 입출력하고, 처리와 통신을 통합함으로써 현저하게 고속인 병렬처리를 실현할 수 있는 컴퓨터 아키텍처를 제공하는 것을 목적으로 한다.
본 발명의 목적은, 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각 유지하는 복수의 정보처리유닛과,
상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고,
상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템으로서,
상기 정보처리유닛 각각은,
상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하는 수단과,
상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 수단과,
상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 수단과,
상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처리유닛의 전체에서 글로벌 순위를 부여하는 수단을 포함하는 것을 특징으로 하는 정보처리시스템에 의해 달성된다(청구항1).
본 발명에 의하면, 패킷 전송로에, 병렬적으로, 패킷을 송출하고, 각각의 PMM에 있어서, 다른 PMM의 값 리스트의 순위를 고려한 후에, 자기 자신이 장악하는 로컬 값 리스트의 항목값의 순위를 결정할 수 있다. 따라서, 각각의 PMM에 있어서, 글로벌(global)한 표형식 데이터로서, 자기가 장악하는 부분집합의 위치 또는 순위를 적절하게 파악할 수 있게 된다. 이와 같이 위치 또는 순위를 파악해 둠으로써, 후술하는 검색, 크로스 집계 및 소트의 처리를 원활하게 실현할 수 있다.
또한, 본 발명의 목적은, 각각, 메모리, 인터페이스, 및 제어장치를 갖는, 복수의 메모리 모듈과, 인접하는 메모리 모듈의 인터페이스 간을 접속하는 패킷 전송로를 구비하고,
상기 메모리 모듈의 각각의 메모리가,
각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성되도록 구성된 정보처리시스템으로서,
각 메모리 모듈의 제어장치가, 상기 포인터 배열 중, 글로벌 정보블록의 부분집합으로서, 자기가 장악하는 정보블록이, 어느 위치를 점유할지를 나타내는 오프셋 값을 유지하는 오프셋 값 기억수단과,
상기 오프셋 값에 기초하여, 글로벌 정보블록에 있어서의 글로벌 순서 집합 배열을 생성하는 글로벌 순서 집합 배열 생성수단과,
인접하는 메모리 모듈의 사이에서, 상기 전송로를 이용하여, 자기의, 소정 항목의 값 리스트를 패킷화하여 송신하는 패킷 송신수단과,
상기 패킷 송신수단에 의한 패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 값 리스트를 수신하는 패킷 수신수단과,
수신한 각각의 값 리스트를 참조하여 자기의 상기 항목의 값 리스트 중의 항목값의 글로벌 정보블록에 있어서의 순위를 결정하고, 상기 항목값의 글로벌 정보블록에 있어서의 순위를, 상기 항목에 관한 글로벌 값 번호 배열에 수용하는 순서판정수단을 포함하는 것을 특징으로 하는 정보처리시스템에 의해 달성된다(청구항2).
바람직한 실시형태에 있어서는, 상기 순서판정수단이, 판정된 각각의 상기 상대적인 순위와 본래의 순위의 차이의 총 합계를 본래의 순위에 더함으로써, 상기 글로벌 정보블록에 있어서의 순위를 산출하도록 구성되어 있다(청구항3).
보다 바람직한 실시형태에 있어서는, 상기 순서판정수단이, 송신한 패킷 및 수리한 패킷을 비교하여 중복되는 값을 삭제한다(청구항4).
다른 바람직한 실시형태에 있어서는, 각 메모리 모듈의 제어장치가,
검색해야 할 항목에 관해서, 상기 항목의 값 리스트와 동일한 사이즈의 플래그 배열을 생성하고, 검색조건에 합치되는 항목값에 대응하는 플래그 배열 중에 특정의 값을 부여하는 플래그 배열 셋업수단과,
상기 검색해야 할 항목에 관해서, 순서 집합 배열이 나타내는 위치에 대응하는 포인터 배열 중의 값을 특정하고, 그 후, 포인터 배열 중의 값이 나타내는 위치에 대응하는 플래그 배열 중의 값을 특정함으로써, 상기 순서 집합 배열 중의 값에 대응하는 레코드가, 검색조건에 합치되는지의 여부를 판정하는 검색조건 판정수단과,
검색조건에 합치되는 순서집합의 값, 및, 대응하는 글로벌 순서 집합의 값을, 각각, 제 2 순서 집합 배열 및 제 2 글로벌 순서 집합 배열에 수용하는 로컬 검색수단을 포함하고,
상기 패킷 송신수단이, 상기 전송로를 이용하여, 상기 제 2 글로벌 순서 집합 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수신수단이, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 순서 집합 배열을 수신하고, 또한,
수신한 각각의 제 2 글로벌 순서 집합 배열을 참조하여 자기의 글로벌 순서 집합 배열 중의 값의, 글로벌 정보블록에 있어서의 순위를 결정하고, 그 글로벌 정보블록에 있어서의 순위를 제 3 글로벌 순서 집합 배열에 수용하는 제 2 순서판정수단을 포함하고,
상기 제 3 글로벌 순서 집합 배열의 값에 의해서, 검색조건에 합치되는 레코드의 순위가 규정된다(청구항5).
또한, 다른 바람직한 실시형태에 있어서는, 각 메모리 모듈의 제어장치가,
집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 사이즈의 논리 좌표 배열을 생성하고, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 논리 좌표 배열의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하는 카운트 업 수단을 구비하고,
상기 패킷 송신수단이, 상기 카운트 업수단에 의한 카운트 업이 된 논리 좌표 배열을, 상기 전송로를 이용하여, 패킷화하여 송신하고, 각 메모리 모듈에 있어서, 동일한 논리 좌표 배열의 카운트 업 및 상기 전송로를 이용한 송신을, 순차적으로 실행함으로써, 상기 논리 좌표 배열에, 글로벌한 각 항목의 항목값의 세트마다의 레코드 수가 수용되고, 또한,
각 메모리 모듈에 있어서, 상기 패킷 수신수단 및 패킷 송신수단이, 카운트 업이 종료한 논리 좌표 배열의 수리(reception) 및 기억, 및, 상기 전송로를 이용한 송신을 순차적으로 실행한다(청구항6).
보다 바람직한 실시형태에 있어서는, 상기 카운트 업수단이, 집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 다차원의 카운트 업 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 카운트 업 배열 중의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하고, 또한, 카운트 업 배열 중의 위치와의 매핑이 된 논리 좌표 배열 중, 상기 카운트 업 배열 중의 값을, 상기 매핑에 따라 배치하도록 구성되어 있다(청구항7).
또한, 다른 바람직한 실시형태에 있어서는, 각 메모리 모듈의 제어장치가,
소트해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 존재수 배열을 생성하여, 값 리스트 중의 항목값 각각을 지정한다, 상기 순서 집합 배열의 값의 수를 배치하는 존재수 배열 생성수단과,
상기 존재수 배열 중의 값을 누계하여, 메모리 모듈 내에서 소트되었을 때의 대응하는 항목값을 가지는 레코드의 선두위치를 나타내는 누계수를 산출하고, 그 누계수를 누계수 배열 중에 배치하는 누계수 배열 생성수단과,
제 2 글로벌 값 번호 배열, 제 4 글로벌 순서 집합 배열 및 제 3 순서 집합 배열을 생성하고, 순서 집합 배열의 값이 나타내는 항목값에 대응하는 누계수 배열 중의 누계수에 기초하여, 상기 제 2 글로벌 값 번호 배열 중 상기 누계수가 나타내는 위치에, 상기 항목값에 대응하는 글로벌 값 번호를 배치하고, 또한, 상기 제 3 순서 집합 배열, 및, 상기 제 4 글로벌 순서 집합 배열 중 상기 누계수가 나타내는 위치에, 상기 순서 집합 배열의 값, 및, 대응하는 글로벌 순서 집합 배열의 값을, 각각 배치하는, 로컬 소트수단을 포함하고,
상기 패킷 송신수단이, 상기 전송로를 이용하여 적어도 제 2 글로벌 값 번호 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수신수단이, 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 값 번호 배열을 수신하고, 또한,
수신한 각각의 제 2 글로벌 값 번호 배열을 참조하여 자기의 제 2 글로벌 값 번호 배열 중의 값의 상기 글로벌 정보블록에 있어서의 순위를, 제 5 글로벌 순서 집합 배열에 수용하는 제 3 순서판정수단을 포함하고,
상기 제 5 글로벌 순서 집합 배열의 값에 의해서 소트된 레코드의 순위가 규정된다(청구항8).
보다 바람직한 실시형태에 있어서는, 상기 패킷 송신수단이, 제 2 글로벌 값 번호 배열의 값 및 제 4 글로벌 순서 집합 배열의 값을 세트로 함으로써, 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수리수단은, 다른 메모리 모듈의 패킷화된 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 수리하고,
상기 제 3 순서판정수단이, 자기의, 제 2 글로벌 값 번호 배열의 값과, 다른 메모리 모듈의 제 2 글로벌 번호 배열의 값이 동일할 때에, 각각의 값의 세트를 이루는, 제 4 글로벌 순서 집합 배열의 값을 비교함으로써, 순위를 판정한다(청구항9).
또 다른 바람직한 실시형태에 있어서는, 상기 메모리 모듈의 제어장치가, 상기 배열로서 이용하기 위한 레지스터 군을 갖고, 상기 배열을 이용한 연산은, 메모리를 액세스하는 일없이 실행된다(청구항10).
상술한 구성에 있어서의 각 수단, 예컨대, 순서 집합 배열 생성수단, 순서판정수단, 플래그 배열 셋업수단, 검사조건 판정수단, 로컬 검색수단 등은, 메모리 모듈 중의 제어장치에 의해 실현된다.
또한, 본 발명의 목적은, 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각에 유지하는 복수의 정보처리유닛과, 상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고,
상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템에 있어서,
상기 정보처리유닛 각각이, 상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하는 스텝과,
상기 정보처리유닛 각각이, 상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 스텝과,
상기 정보처리유닛 각각이, 상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 스텝과,
상기 정보처리유닛 각각이, 상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처리유닛의 전체에서 글로벌 순위를 부여하는 스텝을 포함하는 것을 특징으로 하는 정보처리방법에 의해서도 달성된다(청구항11).
또한, 본 발명의 목적은, 각각, 메모리, 인터페이스, 및 제어장치를 갖는 복수의 메모리 모듈과, 인접하는 메모리 모듈의 인터페이스 간을 접속하는 패킷 전송로를 구비하고,
상기 메모리 모듈의 각각의 메모리가, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성되도록 구성된 정보처리시스템에 있어서,
각 메모리 모듈에 있어서, 상기 포인터 배열 중, 글로벌 정보블록의 부분집합으로서, 자기가 장악하는 정보블록이, 어느 위치를 점유할지를 나타내는 오프셋 값을 유지하는 오프셋 값 기억스텝과,
상기 오프셋 값에 기초하여, 글로벌 정보블록에 있어서의 글로벌 순서 집합 배열을 생성하는 글로벌 순서 집합 배열 생성스텝과,
인접하는 메모리 모듈의 사이에서, 상기 전송로를 이용하여, 자기의, 소정 항목의 값 리스트를 패킷화하여 송신하는 패킷 송신스텝과,
상기 패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 값 리스트를 수신하는 패킷 수신스텝과,
수신한 각각의 값 리스트를 참조하여 자기의 상기 항목의 값 리스트 중의 항목값의, 상기 항목값의 글로벌 정보블록에 붙이는 순위를, 상기 항목에 관한 글로벌 값 번호 배열에 수용하는 순서 판정스텝을 포함하는 것을 특징으로 하는 정보처리방법에 의해서도 달성된다(청구항12).
바람직한 실시형태에 있어서는, 상기 순서 판정스텝이, 판정된 각각의, 상기 상대적인 순위와 본래의 순위의 차이의 총 합계를 본래의 순위에 더함으로써, 상기 글로벌 정보블록에 있어서의 순위를 산출하는 스텝을 포함한다(청구항12).
바람직한 실시형태에 있어서는, 상기 순서 판정스텝이, 판정된 각각의, 상기 상대적인 순위와 본래의 순위의 차이의 총 합계를 본래의 순위에 더함으로써, 상기 글로벌 정보블록에 있어서의 순위를 산출하는 스텝을 포함한다(청구항13).
보다 바람직한 실시형태에 있어서는, 상기 순서 판정스텝에 있어서, 송신한 패킷 및 수리한 패킷을 비교하여 중복되는 값을 삭제한다(청구항14).
또한, 다른 바람직한 실시형태에 있어서는, 각 메모리 모듈에 있어서,
검색해야 할 항목에 관해서, 상기 항목의 값 리스트와 동일한 사이즈의 플래그 배열을 생성하고, 검색조건에 합치되는 항목값에 대응하는 플래그 배열 중에 특정의 값을 부여하는 플래그 배열 셋업 스텝과,
상기 검색해야 할 항목에 관해서, 순서 집합 배열이 나타내는 위치에 대응하는 포인터 배열 중의 값을 특정하고, 그 후, 포인터 배열 중의 값이 나타내는 위치에 대응하는 플래그 배열 중의 값을 특정함으로써, 상기 순서 집합 배열 중의 값에 대응하는 레코드가, 검색조건에 합치되는지의 여부를 판정하는 검색조건 판정스텝과,
검색조건에 합치되는 순서집합의 값, 및, 대응하는 글로벌 순서 집합의 값을, 각각, 제 2 순서 집합 배열 및 제 2 글로벌 순서 집합 배열에 수용하는 로컬 검색스텝과,
상기 전송로를 이용하여, 상기 제 2 글로벌 순서 집합 배열을 패킷화하여 송신하는 제 2 패킷 송신스텝과,
상기 패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 순서 집합 배열을 수신하는 제 2 패킷 수신스텝과,
수신한 각각의 제 2 글로벌 순서 집합 배열을 참조하여 자기의 글로벌 순서 집합 배열 중의 값의, 글로벌 정보블록에 있어서의 순위를 결정하고, 그 글로벌 정보블록에 있어서의 순위를 제 3 글로벌 순서 집합 배열에 수용하는 제 2 순서 판정스텝을 포함하고,
상기 제 3 글로벌 순서 집합 배열의 값에 의해서, 검색조건에 합치되는 레코드의 순위가 규정된다(청구항15).
또한, 다른 바람직한 실시형태에 있어서는, 각 메모리 모듈에 있어서,
집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 사이즈의 논리 좌표 배열을 생성하고, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 논리 좌표 배열의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하는 카운트 업 스텝과,
카운트 업이 된 논리 좌표 배열을, 상기 전송로를 이용하여, 패킷화해서 송신하는 제 3 패킷 송신스텝을 포함하고,
각 메모리 모듈에 있어서, 동일한 논리 좌표 배열에 대한 카운트 업 스텝, 및, 한쪽의 전송로를 이용한 송신 스텝을, 순차적으로 실행함으로써, 상기 논리 좌표 배열에, 글로벌한 각 항목의 항목값의 세트마다의 레코드 수가 수용되고, 또한,
각 메모리 모듈에 있어서, 카운트 업이 종료된 논리 좌표 배열을 수리 및 기억하는 제 3 패킷 수리 스텝과,
수리한 논리 좌표 배열을, 상기 전송로를 이용해서 송신하는 제 4 패킷 송신스텝을 포함한다(청구항16).
보다 바람직한 실시형태에 있어서는, 상기 카운트 업 스텝에 있어서,
집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 다차원의 카운트 업 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 카운트 업 배열 중의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하고, 또한, 카운트 업 배열 중의 위치와의 매핑이 된 논리 좌표 배열 중, 상기 카운트 업 배열 중의 값을, 상기 매핑에 따라서 배치한다(청구항17).
또한, 다른 바람직한 실시형태에 있어서는, 각 메모리 모듈에 있어서,
소트해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 존재수 배열을 생성하여, 값 리스트 중의 항목값 각각을 지정한다, 상기 순서 집합 배열의 값의 수를 배치하는 존재수 배열 생성스텝과,
상기 존재수 배열 중의 값을 누계하여, 메모리 모듈 내에서 소트되었을 때의 대응하는 항목값을 가지는 레코드의 선두위치를 나타내는 누계수를 산출하고, 그 누계수를 누계수 배열 중에 배치하는 누계수 배열 생성스텝과,
제 2 글로벌 값 번호 배열, 제 4 글로벌 순서 집합 배열 및 제 3 순서 집합 배열을 생성하고, 순서 집합 배열의 값이 나타내는 항목값에 대응하는 누계수 배열 중의 누계수에 기초하여, 상기 제 2 글로벌 값 번호 배열 중 상기 누계수가 나타내는 위치에, 상기 항목값에 대응하는 글로벌 값 번호를 배치하고, 또한, 상기 제 3 순서 집합 배열, 및, 상기 제 4 글로벌 순서 집합 배열 중 상기 누계수가 나타내는 위치에, 상기 순서 집합 배열의 값, 및, 대응하는 글로벌 순서 집합 배열의 값을, 각각 배치하는, 로컬 소트 스텝과,
상기 전송로를 이용하여 적어도 제 2 글로벌 값 번호 배열을 패킷화하여 송신하는 제 5 패킷 송신스텝과,
패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 값 번호 배열을 수신하는 제 4 패킷 수신스텝과,
수신한 제 2 글로벌 값 번호 배열을 참조하여 자기의 제 2 글로벌 값 번호 배열 중의 값의 상기 글로벌 정보블록에 있어서의 순위를, 제 5 글로벌 순서 집합 배열에 수용하는 제 3 순서 판정스텝을 포함하고,
상기 제 5 글로벌 순서 집합 배열의 값에 의해서 소트된 레코드의 순위가 규정된다(청구항18).
보다 바람직한 실시형태에 있어서는, 상기 제 5 패킷 송신스텝에 있어서, 제 2 글로벌 값 번호 배열의 값 및 제 4 글로벌 순서 집합 배열의 값을 세트로 함으로써, 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 패킷화하여 송신하고,
상기 제 4 패킷 수리 스텝에 있어서, 다른 메모리 모듈의 패킷화된 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 수리하고,
상기 제 3 순서 판정스텝에 있어서, 자기의 제 2 글로벌 값 번호 배열의 값과, 다른 메모리 모듈의 제 2 글로벌 번호 배열의 값이 동일할 때에, 각각의 값의 세트를 이루는, 제 4 글로벌 순서 집합 배열의 값을 비교함으로써, 순위를 판정한다(청구항19).
또한, 본 발명의 목적은, 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각 유지하는 복수의 정보처리유닛과, 상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고,
상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템에 있어서,
상기 정보처리유닛의 각각에,
상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하는 기능과,
상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 기능과,
상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 기능과,
상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처리유닛의 전체에서 글로벌 순위를 부여하는 기능을 실현시키기 위한 프로그램에 의해서도 달성된다(청구항20).
또한, 본 발명의 목적은, 각각, 메모리 및 제어장치를 갖는 복수의 정보처리유닛을 구비하고,
상기 정보처리유닛의 각각의 메모리가, 각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 유지하고, 각 메모리 모듈이 유지하는 표형식 데이터의 집합체에 의해, 글로벌 표형식 데이터가 형성되는 정보처리시스템으로서,
상기 각 정보처리유닛이,
상기 글로벌 표형식 데이터에 있어서의 각 레코드의 순위를 나타내는 값을 수용하는 글로벌 순서 집합 배열과,
제어장치에 의해 수리된 순위를 지정하는 명령에 따라서, 상기 글로벌 순서 집합 배열 중의 값을 특정하고, 그 값이 나타내는 레코드를 취출하는 레코드 취출수단을 포함하는 것을 구비한 것을 특징으로 하는 정보처리시스템에 의해서도 달성된다(청구항21).
본 발명에 의하면, PMM, 퍼스널 컴퓨터, 서버 등을 포함하는 정보처리유닛에 로컬 표형식 데이터를 분장 파악시켜, 로컬 검색이나 집계를 정보처리유닛 단독으로 실행시킬 수도 있고, 또한, 글로벌 순서 집합 배열을 구비함으로써, 글로벌 표형식 데이터의 검색 등을 실현하는 것도 가능하게 된다. 또한, 단일의 퍼스널 컴퓨터나 서버가 단일의 정보처리유닛에 대응해도 되고, 단일의 퍼스널 컴퓨터나 서버에, 복수의 정보처리유닛이 포함되는 구성을 채용해도 된다.
바람직한 실시형태에 있어서는, 상기 정보처리유닛이, 그 정보처리유닛 내에서의 소트 순서를 반영하기 위해서, 레코드를 특정하는 값이 교체된 다른 순서 집합 배열을 갖고,
상기 글로벌 순서 집합 배열에 있어서, 다른 순서 집합 배열 중의 값이 나타내는 레코드의, 상기 글로벌 표형식 데이터에 있어서의 소트 순서를 나타내도록, 그 순위를 나타내는 값을 재배치한다(청구항22). 이 글로벌 순서 집합 배열에 재배치된 값은 오름 차순으로 된다.
또한, 다른 바람직한 실시형태에 있어서는, 상기 정보처리유닛이, 상기 글로벌 순서 집합 배열에 있어서, 상기 정보처리유닛 내에서 소트된 레코드의 상기 글로벌 표형식 데이터에 있어서의 소트 순서를 나타내도록, 그 순위를 나타내는 값을 재배치한다(청구항23).
이 형태에 있어서도, 글로벌 순서 집합 배열에 재배치된 값은 오름 차순으로 된다. 이와 같이, 본 발명은, 레코드를 특정하는 값을 소트하여, 이것을 다른 순서 집합 배열에 수용하는 형태에도 적용할 수 있고, 또한, 레코드 자체를 소트에 의해 재배열하는 형태에도 적용할 수 있다.
또한 다른 바람직한 실시형태에 있어서는, 상기 정보처리유닛의 각각의 메모리가,
각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성된다(청구항24).
또한, 본 발명의 목적은, 각각, 메모리 및 제어장치를 갖는 복수의 정보처리유닛을 구비하고,
상기 정보처리유닛의 각각의 메모리가,
각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성되는 정보처리시스템으로서,
상기 정보처리유닛이,
글로벌 정보블록에 있어서의 항목값의 순위를 나타내는 값을 수용하는 글로벌 값 번호 배열과,
제어장치에 의해 수리된 순위를 지정하는 명령에 따라서, 상기 글로벌 값 번호 배열 중의 값을 특정하고, 그 값이 나타내는, 값 리스트 중의 항목값을 취출하는 항목값 취출수단을 포함하는 것을 특징으로 하는 정보처리시스템에 의해서도 달성된다(청구항25).
또한, 본 명세서에 있어서, 각종 배열 중에 수용되는 수치를, 「요소」나 「값」이라고 칭하지만, 이들은 표현상의 차이에 지나지 않고, 본질적인 차이는 없다. 예컨대, 「값 리스트」에 수용되는 것은, 「항목값」이라고도 표현하지만, 이것도 값 리스트 중의 「요소」인 것은 명확하다.
본 발명의 목적 및 다른 목적은, 첨부도면과 함께 실시예를 참조함으로써, 더욱 명확하게 될 것이다.
도 1은, 본 발명의 실시형태에 따른 정보처리시스템의 개략을 나타내는 블록 다이어그램이다.
도 2는, 본 발명의 실시형태에 따른 PMM의 구조의 일례를 나타내는 도면이 다.
도 3은, 표형식 데이터의 일례를 나타내는 도면이다.
도 4는, 본 실시형태에 있어서, 표형식 데이터를 유지하는 구조의 원리를 설명하기 위한 도면이다.
도 5는, 본 실시형태에 있어서, 각 PMM에 의해 분장 파악되는 배열 및 그 값을 설명하는 도면이다.
도 6은, 초기적으로 PMM-0~4 각각에 의해 각각 분장되는 표형식 데이터의 예를 나타내는 도면이다.
도 7은, 초기적으로 PMM-0~4 각각에 의해 각각 분장되는 표형식 데이터의 예를 나타내는 도면이다.
도 8은, 본 실시형태에 따른 편집처리를 개략적으로 나타내는 플로우차트이다.
도 9는, 도 6~도 7에 나타내는 예에서의 글로벌 순서 집합 배열(GOrd)에의 값의 배치를 나타내는 도면이다.
도 10은, 본 실시형태에 따른 편집처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 11은, 본 실시형태에 따른 편집처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 12는, 본 실시형태에 따른 편집처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 13은, 본 실시형태에 따른 편집처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 14A 및 도 14B는, 각각, 본 실시형태에 따른 편집처리에 있어서의, 패킷 송출 및 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 15A 및 도 15B는, 각각, 본 실시형태에 따른 편집처리에 있어서의, 패킷 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 16은, 본 실시형태에 따른 검색처리의 부분을 개략적으로 나타내는 플로우차트이다.
도 17은, 각 PMM에 있어서, 값이 셋업된 플래그 배열 및 영역으로서 새로운 글로벌 순서 집합 배열 및 순서 집합 배열이 생성된 상태의 일례를 나타내는 도면이다.
도 18은, 각 PMM에 있어서, 도 16의 처리가 실행되고, 로컬로 또한 병렬적으로, 새로운 글로벌 순서 집합 배열(GOrd') 및 순서 집합 배열(OrdSet')에 값이 배치되는 상태의 예를 나타내는 도면이다.
도 19는, 배열 중, 불필요한 영역을 삭제한 상태를 나타내는 도면이다.
도 20은, 본 실시형태에 따른 검색처리에 있어서, 패킷 전송에 앞서 실행되는 처리를 나타내는 플로우차트이다.
도 21은, 본 실시형태에 따른 검색처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 22A 및 도 22B는, 각각, 본 실시형태에 따른 검색처리에 있어서의, 패킷 송출 및 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 23은, 본 실시형태에 따른 검색처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 24는, 본 실시형태에 따른 검색처리에 있어서의, 패킷 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 25는, 본 실시형태에 따른 검색처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 26은, 본 실시형태에 따른 검색처리의 결과 얻어진 새로운 배열이다.
도 27은, 본 실시형태에 따른 크로스 집계 처리의 부분을 개략적으로 나타내는 플로우차트이다.
도 28은, 크로스 집계해야 할 항목에 관해서, 각 PMM에 있어서, 항목의 값 리스트(VL)의 사이즈를 곱한 사이즈의 영역이 만들어지고, 각각에 초기값「0」이 주어진 상태를 나타내는 도면이다.
도 29는, 크로스 집계 처리에 있어서의, 각 PMM의 카운트 업의 일례를 나타내는 도면이다.
도 30은, 각각의 PMM에 있어서, 글로벌 영역의 값을 특정하기 위해서, 글로벌 값 번호 배열(GVNo)의 값을 이용한 상태를 나타내는 도면이다.
도 31A 및 도 31B는, 각각, 본 실시형태에 따른 크로스 집계 처리에 있어서의, 패킷 송출 및 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 32는, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예 를 나타내는 도면이다.
도 33은, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 34는, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 35는, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 36은, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 37은, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 38은, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 39는, 본 실시형태에 따른 크로스 집계 처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 40은, 본 실시형태에 따른 크로스 집계 처리에 의한 집계 결과를 나타내는 도면이다.
도 41은, 본 실시형태에 따른 소트처리의 부분을 개략적으로 나타내는 플로우차트이다.
도 42는, 소트해야 할 항목에 대해서, 각 PMM에 있어서, 항목의 값 리스트 (VL)와 동일한 사이즈를 갖는 영역이 만들어지고, 각각에 초기값「0」이 주어진 상태를 나타내는 도면이다.
도 43은, 각 PMM에 있어서의 카운트 업의 일례를 나타내는 도면이다.
도 44는, 본 실시형태에 따른 소트처리의 부분(누계수 배열의 생성)을 개략적으로 나타내는 플로우차트이다.
도 45는, 본 실시형태에 따른 누계수 배열의 예를 나타내는 도면이다.
도 46은, 본 실시형태에 다른, 각 PMM에 의해 실행되는 로컬 소트처리를 나타내는 플로우차트이다.
도 47은, 각 PMM에 있어서 로컬 소트처리가 실행되어 있는 상태의 예를 나타내는 도면이다.
도 48은, 각 PMM에 있어서 로컬 소트처리가 실행되어 있는 상태의 예를 나타내는 도면이다.
도 49는, 본 실시형태에 따른 소트처리에 있어서의, 패킷 송출시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 50은, 본 실시형태에 있어서, 각 PMM에 있어서, 초기값이 배치된 배열(GOrd")이 만들어진 상태를 나타내는 도면이다.
도 51은, 본 실시형태에 따른 소트처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 52A 및 도 52B는, 각각, 본 실시형태에 따른 소트처리에 있어서의, 패킷 송출 및 패킷 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 53은, 본 실시형태에 따른 소트처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 54는, 본 실시형태에 따른 소트처리에 있어서의 패킷 전송의 예를 나타내는 도면이다.
도 55는, 본 실시형태에 따른 소트처리에 있어서의, 패킷 수리시에 PMM에 의해 실행되는 처리를 나타내는 플로우차트이다.
도 56은, 본 실시형태에 따른 소트처리에 의한 소트 결과를 나타내는 도면이다.
도 57은, 본 실시형태에 따른 소트처리에 의해 얻어진, 항목「연령」으로 소트된 표형식 데이터의 예를 나타내는 도면이다.
도 58A 및 도 58B는, 표형식 데이터의 소트를, 어드레스 정보의 재배치에 의해 표현한 예를 나타내는 도면이다.
도 59는, 도 58A, B에 나타내는 표형식 데이터를, 글로벌 순서 집합 배열 없이, 각 PMM에 의해 분장 파악한 예를 나타내는 도면이다.
도 60은, 도 58A, B에 나타내는 표형식 데이터를, 글로벌 순서 집합 배열을 이용하여, 각 PMM에 의해 분장 파악한 예를 나타내는 도면이다.
도 61은, 각 PMM에 의해 집계 결과를 취득한 상태를 나타내는 도면이다.
[하드웨어 구성]
이하, 첨부도면을 참조하여, 본 발명의 실시형태에 대해서 설명을 더한다. 도 1은, 본 발명의 실시형태에 따른 정보처리시스템의 개략을 나타내는 블록 다이어그램이다. 도 1에 나타내는 바와 같이, 이 실시형태에 있어서는, 복수의 프로세서를 가진 메모리 모듈(이하, 「PMM」이라고 칭한다)(12-0,12-1,12-2,…)이 링형상으로 배치되고, 인접하는 메모리 모듈 간을, 시계방향으로 데이터를 전달하는 제 1 버스(예컨대, 부호 14-O, 14-1 참조), 및, 반시계방향으로 데이터를 전달하는 제 2 버스(예컨대, 부호 16-0, 16-1 참조)가 접속하고 있다. 제 1 버스 및 제 2 버스에서는, PMM 간의 패킷통신이 실행된다. 본 실시형태에 있어서, 이 패킷통신이 실행되는 전송로(패킷 전송로)를, 제 1 버스 및 제 2 버스라고 칭한다.
도 2는, PMM(12)의 구조의 일례를 나타내는 도면이다. 도 2에 나타내는 바와 같이, PMM(12)은, 명령에 따른 메모리의 액세스, 연산의 실행 등을 제어하는 제어회로(20)와, 버스 인터페이스(I/F)(22)와, 메모리(24)를 구비하고 있다.
메모리(24)는, 복수의 뱅크(BANK0,1,…,n)(부호 26-O,…,n)를 갖고, 각각에, 후술하는 소정의 배열을 기억할 수 있도록 되어 있다.
또한, 제어회로(20)는, 외부의 다른 컴퓨터 등과의 데이터 주고받기가 가능하다. 또한, 다른 컴퓨터가, 버스 중재에 의해, 메모리의 원하는 뱅크에 액세스할 수 있게 해도 된다.
[데이터의 기억구조]
도 3은, 표형식 데이터의 일례를 나타내는 도면이다. 이와 같이, 표형식의 데이터에서는, 레코드마다 각종 항목(이 예에서는, 「성별」, 「연령」, 「신장」 및 「체중」)에 값이 주어져 있다. 본 실시형태에 따른 정보처리장치에서는, 이들 표형식 데이터를, 원리적으로는, 도 4에 나타내는 데이터형식에 기초하여 유지한다.
도 4에 나타내는 바와 같이, 순서집합의 배열(OrdSet)에는, 순서번호마다 레코드 번호가 값으로서 배치된다. 이 예에서는, 모든 레코드가 표시되기 때문에, 순서번호와 레코드 번호는 일치한다.
예컨대, 성별에 관해서는, 실제의 항목값인 「남자」 또는 「여자」라는 값이, 소정의 순서로 소트된 값 리스트(VL)와, 순서집합의 배열(OrdSet) 중의 요소(레코드 번호) 각각에 대응하여, 상기 레코드 번호가 지시하는 값 리스트 중의 번호가 저장된, 값 리스트에의 포인터 배열(VNo)에 의해, 표형식 데이터를 표시한다. 이 값 리스트(VL) 및 포인터 배열(VNo)의 조합을 「정보블록」이라고도 칭한다(성별에 관한 정보블록은 부호 401에 대응한다).
순서집합의 배열(OrdSet) 중의 요소(레코드 번호)가 지시하는 위치에 있는, 포인터 배열(VNo) 중의 값을 특정하고, 또한, 그 값이 지시하는 위치에 있는 값 리스트(VL) 중의 항목값을 취출함으로써, 레코드 번호에 대응하는 항목값을 취득할 수 있다. 다른 항목의 정보블록에 대해서도 마찬가지의 구조이다.
단일의 컴퓨터가, 단일의 메모리(물리적으로는 복수이어도 되지만, 단일의 어드레스 공간에 배치되어 액세스된다라는 의미에서 단일의 메모리)이면, 그 메모리에, 순서집합의 배열(OrdSet), 각 정보블록을 구성하는 값 리스트(VL) 및 포인터 배열(VNo)을 기억해 두면 된다. 그러나, 대량의 레코드를 유지하기 위해서는, 그 크기에 따라 메모리 용량도 커지기 때문에, 이들을 분산 배치할 수 있는 것이 바람 직하다. 또한, 처리의 병렬화의 관점에서도, 분산 배치된 정보를 분장 파악할 수 있는 것이 바람직하다.
그래서, 본 실시형태에 있어서는, 복수의 PMM이, 겹치는 일없이 레코드의 데이터를 분장 파악하고, PMM끼리의 패킷통신에 의해, 고속의 검색, 크로스 집계, 검색을 실현하고 있다.
[편집 처리]
우선, 복수의 PMM에 데이터를 분산 배치하고, 또한, 이들을 이용가능하게 하기 위한 처리(편집처리)에 대해서 설명한다. 예컨대, 도 5에 나타내는 바와 같이, 4개의 PMM(PMM-0 ~ PMM-3)에, 소정의 레코드수의 데이터를 수용하는 것을 고려한다. 이 예에서는, 레코드 번호 0~2에 관한 일련의 데이터, 레코드 번호 3, 4에 관한 일련의 데이터. 레코드 번호 5~7에 관한 일련의 데이터, 및, 레코드 번호 8, 9에 관한 일련의 데이터를, 각각 기억하는 것으로 하였다. 각 PMM에 있어서도, 상기 표형식 데이터의 부분은, 정보블록의 형식으로 기억된다.
도 6 및 도 7은, 초기적으로 PMM-0~4 각각에 의해 각각 분장되는 표형식 데이터의 예를 나타내는 도면이다. 이들 도면으로부터, 각 PMM에는, 항목마다의 정보블록의 부분집합 등이 수용된다. 예컨대, 도 6에 있어서, 항목「성별」의 정보블록 601에서는, 본래의 포인터 배열(VNo)(도 4 참조)의 부분집합(VNo)(이것도 「포인터 배열」이라고 칭한다.)과, 본래의 값 리스트(VL)(도 4 참조)의 부분집합(VL)(이것도 「값 리스트」라고 칭한다.)이 포함된다.
포인터 배열(VNo)의 요소의 수는, PMM이 분장하는 레코드의 수에 일치한다. 이것에 대해서, 값 리스트(VL)는, 포인터 배열(VNo)이 나타내는 값만이 추출된다. 항목「성별」에 대해서는, 포인터 배열(VNo)의 값이, 값 리스트(VL) 전체의 요소(항목값)를 지시하고 있기 때문에, 값 리스트(VL)와, 본래의 값 리스트(VL)는 일치한다. 한편, 항목「연령」,「신장」및「체중」에 대해서는, 본래의 값 리스트(VL)로부터, 포인터 배열 중의 요소가 지시하는 값만이, 본래의 값 리스트(VL)의 부분집합으로서 취출되는 것을 이해할 수 있을 것이다.
또한, 분장되는 정보 블록에 있어서는, 각 PMM에 있어서, 포인터 배열(VNo)의 요소에 의해 적절하게 값 리스트(VL)의 요소(항목값)가 지시되도록, 즉, PMM 내의 로컬 처리(포인터값의 지정이나 항목값의 지정)에 있어서도 정합성이 유지되도록, 그 요소는, 대응하는 본래의 포인터 배열(VNo)의 요소로부터 변환되어 있다.
전술한 바와 같이, 분장되는 정보블록에 있어서는, 값 리스트(VL)에 있어서, 상기 분장된 정보블록에 있어서 필요한 요소(항목값)만을 유지하고 있다. 따라서, 포인터 배열(VNo) 및 값 리스트(VL)에 의해서, 로컬 처리의 정합성은 유지된다. 그러나, PMM 사이에서의 처리의 정합성을 유지하기 위해서, 각 PMM에 의해 분장되는 값 리스트(VL)의 요소(항목값)의, 값 리스트 전체에 있어서의 위치 부여, 즉, 각 항목값이, 값 리스트 전체에 있어서, 소정의 순서의 본래 몇 번째인지를 파악할 필요가 있다. 그래서, 본 실시형태에서는, 분장되는 각 정보 블록에 있어서, 글로벌 값 번호 배열(GVNo)을 배치하고, 항목값에 대응하는 값의 위치를 나타내는 번호를 수용할 수 있게 하고 있다.
각 PMM에는, 상기 정보블록의 부분집합을 분장하기 위한 오프셋 값(OFFSET) 을 할당된다. 이 오프셋 값(OFFSET)은, PMM이 분장하는 레코드에 관한 본래의 순서집합(OrdSet)에 있어서의 선두의 값에 대응한다.
또한, 각 PMM에 있어서는, 로컬 처리에 있어서의 정합성을 유지하기 위해서, 새로운 순서집합(OrdSet)이 만들어진다. 순서집합(OrdSet)의 요소의 수는, PMM이 분장하는 레코드 수와 일치한다. 한편, PMM 사이에서의 처리의 정합성을 유지하기 위해서, 각 PMM이 분장하는 레코드가, 전체 중에서는 어떤 번호(순서집합의 요소)를 가지고 있는지를 파악해 놓을 필요가 있다. 이 때문에, 전체에 있어서의 각 레코드의 번호를 수용한 글로벌 순서 집합 배열(GOrd)을 설정하고 있다.
도 8은, 본 실시형태에 따른 편집처리를 개략적으로 나타내는 플로우차트이다. 도 8에 나타내는 바와 같이, 우선, 각 PMM에, 도 6~도 7에 나타내는 초기적인 정보블록이 생성된다(스텝801). 이것은, 예컨대, 외부의 다른 컴퓨터로부터, PMM에, 각각이 분장해야 할, 순서집합(OrdSet), 각 정보블록을 구성하는 포인터 배열(VNo), 값 리스트(VL), 및, 오프셋 값(OFFSET)이 주어지는 것에 의해 실현된다. 이들 배열은, 각 PMM 내의 메모리(24)에 기억된다.
스텝802 이후에는, 각 PMM에 있어서의 로컬 처리 및 PMM 간의 패킷통신에 관한 처리로 이행한다. 각 PMM의 제어회로(20)는, 오프셋 값을 참조하여, 글로벌 순서 집합 배열(GOrd) 중에 배치하는 각각의 값을 산출하고, 배열 중에 값을 배치한다(스텝802). 도 9는, 도 6~도 7에 나타내는 예에서의 글로벌 순서 집합 배열(GOrd)에의 값의 배치를 나타내는 도면이다. 여기서는, 순서집합의 값에 오프셋 값(OFFSET)을 더한 것을, 글로벌 순서 집합 배열(GOrd)이 대응하는 위치에 배치하면 된다. 스텝802는, 각 PMM에 있어서의 로컬 처리로 실현가능하다.
다음으로, 글로벌 값 리스트 번호 배열(GVNo)의 값이 결정된다(스텝803). 보다 상세하게는, 우선, 각 PMM에 있어서, 글로벌 값 번호 배열의 각각의 요소로서, 오름 차순으로 초기값이 주어진다(스텝811). 도 10, 도 11에 나타내는 바와 같이, 예컨대, 3개의 요소를 갖는 PMM-0에서는, 선두에서부터 오름 차순으로, 0, 1 및 2의 값이 초기값으로 된다(부호 1001 참조). 다른 PMM(PMM-1~3)에 대해서도, 병렬적으로 글로벌 값 리스트 번호 배열(GVNo)의 초기값이 설정된다(부호 1011,1101,1111 참조).
다음으로, 인접하는 PMM 사이에서 쌍을 형성하고, 쌍을 형성하는 한쪽의 PMM이, 상기 쌍이 된 PMM 사이를 접속하는 한쪽의 버스[예컨대, 제 1 버스(14)]를 이용하여, 자기의 값 리스트(VL)에 포함되는 일련의 요소(항목값)를 패킷화하여 송출하고, 한편, 다른쪽의 PMM이, 다른쪽의 버스[예컨대, 제 2 버스(16)]를 이용하여, 자기의 값 리스트(VL)에 포함되는 일련의 요소(항목값)를 패킷화해서 송출한다(스텝812). 도 10의 예에서는, PMM-0 에서 PMM-1 로, 패킷 [18,21,24]이 송출되고, PMM-1 에서 PMM-0 으로, 패킷 [16,28]이 송출된다. 또한, 도 11의 예에서는, PMM-2, PMM-3 으로부터, 패킷 [16,20,33], [18,24]이 각각 송출된다.
각 PMM은, 수리한 패킷을 참조하여, 패킷 중의 값(다른 PMM의 항목값)과 자기의 값 리스트(VL) 중의 항목값을 비교하고, 상기 다른 PMM의 항목값을 고려한 상대적인 값의 위치(순위)를 특정한다(스텝813). 이 위치(순위)에 따라서, 글로벌 값 번호 배열(GVNo)의 값이 갱신된다(스텝814). 또한, PMM은, 갱신과 아울러, 자기의 PMM, 및, 쌍을 이루는 다른 PMM의 값 리스트 중의 항목값의 총수를, 일시적으로 기억해 둔다(스텝815).
도 10의 예에 있어서, PMM-0은, 패킷 [16,28]을 수리하고, 자기의 VL [18,21,24]과 비교한다. 여기서, 「16<18<<21<24<28」이기 때문에, 글로벌 값 번호 배열(GVNo)의 값이, 각각, 「1」, 「2」 및 「3」으로 갱신된다(부호 1021 참조). 한편, PMM-1은, 패킷 [18,21,24]을 수리하고, 자기의 VL [16,28]과 비교한다. 그 결과, 글로벌 값 번호 배열(GVNo)의 값이, 각각, 「0」 및 「4」로 갱신된다(부호 1031 참조). 도 11에 나타내는 바와 같이, PMM-2 및 PMM-3의 사이에서도 마찬가지의 처리가 실행된다. 또한, PMM은, 수리한 패킷을 다음 타이밍에서 패킷이 보내진 방향으로 송출하면 된다. 이 패킷은 수취지가 없으므로 폐기된다.
다음으로, 앞에 형성된 쌍의 PMM을 PMM 군으로 하여, 인접하는 PMM 군의 쌍이 형성된다. 또한, PMM 수가 2의 제곱이면, PMM 군의 쌍을 형성할 수 있지만, 그렇지 않을 경우에는, PMM 군의 쌍을 형성할 수 없는 부분에 대해서는, 그대로 해 두면 된다. 예컨대, PMM의 수가 3이면, PMM-0 및 PMM-1로 되는 PMM 군과, PMM-2와의 쌍을 형성하면 된다.
그 후, 한쪽의 PMM 군에 있어서의 시계회전방향의 상류측의 PMM으로부터, 시계방향으로 버스(제 1 버스) 상에 패킷이 송출되는 한편, 다른쪽의 PMM 군에 있어서의 시계회전방향의 하류측의 PMM으로부터, 반시계방향으로 버스(제 2 버스) 상에 패킷이 송출된다. 도 10, 도 11에 나타낸 예에 관해서는, PMM-0 으로부터 시계방향으로 제 1 버스 상에 패킷이 송출됨과 아울러, PMM-3으로부터 반시계방향으로 제 2 버스 상에 패킷이 송출된다(도 12 참조).
보다 상세하게, 도 14A에 나타내는 바와 같이, 당초 패킷을 송출하는 PMM은, 스텝815에서 기억한 항목값의 수에 기초하여, 값의 개수가 항목값의 수에 일치하고, 또한, PMM 자신의 값 리스트(VL)의 요소(항목값)를, 대응하는 글로벌 값 번호 배열(GVNo)의 값이 나타내는 위치에 배치하고, 한편, 다른 위치에는 NULL값을 배치한 패킷을 생성해서(스텝1401~1403), 소정의 방향으로, 다음의 PMM에 송출한다(스텝1404).
도 12에 나타내는 바와 같이, 예컨대, PMM-0에 있어서는, PMM-0 및 PMM-1의 쌍에서, 5개의 항목값이 있는 것을 알고 있다. 따라서, 5개의 값을 가지는 패킷 [-,18,21,24,-](여기에, 「-」은 NULL값을 표시한다)이, 시계방향으로 제 1 버스를 통해 PMM-1에 송출된다. 한편, PMM-3에 있어서는, PMM-2 및 PMM-3의 쌍에서, 5개의 항목값이 있는 것을 알고 있다. 따라서, 5개의 값을 가지는 패킷 [-,18,-,24,-]이, 반시계방향으로 제 2 버스를 통해 PMM-2에 송출된다.
패킷의 목적지로서, 그 패킷을 수리한 PMM은, 자기의 글로벌 값 번호 배열(GVNo)을 참조하여, 패킷 중의 NULL값의 소정의 위치, 즉, 글로벌 값 번호 배열(GVNo)의 요소가 나타내는 위치에, 대응하는 항목값을 배치한다(스텝1411, 1412). 그 후, PMM은, 패킷이 흘러 온 방향을 따라, 다음의 PMM에 패킷을 송출한다(스텝1413).
도 12에 있어서, PMM-0 으로부터의 패킷을 수리한 PMM-1은, 패킷 중, NULL값이 배치된 위치 중, 자기의 글로벌 값 번호 배열(GVNo)의 요소 「0」 및 「4」가 나타내는 위치에, 대응하는 값 「16」 및 「28」을 각각 배치한다. 이것에 의해, 패킷 [16,18,21,24,28]이, 제 1 버스를 통해 시계방향으로 송출된다. 또한, PMM-3 으로부터의 패킷을 수리한 PMM-2도, 마찬가지로, 패킷 [16,18,20,24,33]을, 제 2 버스를 통해 반시계방향으로 송출한다.
상기 예에 있어서는, 1군의 PMM이, 2개의 PMM으로 구성되어 있지만, 1군의 PMM이, 3개 이상의 PMM으로 구성되어 있는 경우에는, 추가로, 패킷을 수리한 PMM에 있어서, 도 14B에 나타내는 처리가 실행된다.
다음에, 1군의 PMM과 쌍을 이루는 다른 PMM의 1군을 구성하는 PMM에 의해 패킷이 수리되었을 때에 실행되는 처리에 대해서 설명한다.
도 15A에 나타내는 바와 같이, 다른 PMM의 1군을 구성하는 PMM이, 패킷을 수리하면(스텝1501), 상기 PMM은, 자기가 송출한 패킷과, 수리한 패킷을 비교해서(스텝1502), 수리한 패킷 중, 자기가 송출한 패킷과 동일한 항목값, 즉, 중복되는 항목값이 있으면, 이것을 소거한다(스텝1503). 다음으로, PMM은, 중복되는 항목값이 소거된 패킷을 참조하여, 패킷 중의 값(다른 PMM의 1군의 항목값)과 자기의 값 리스트 중의 항목값을 비교하고, 다른 PMM의 1군의 항목값을 고려한 상대적인 값의 위치(순위)를 특정한다(스텝1504). 이 위치(순위)에 따라서, 글로벌 값 번호 배열(GVNo)의 값이 갱신된다(스텝1505).
중복되는 항목값이 소거된 후의 패킷은, 수리한 방향과 동일한 방향으로, 각각, 버스를 통해서, 동일한 PMM의 1군을 구성하는 인접하는 PMM에 송출된다(스텝1506).
도 13에 있어서, PMM-1은, 반시계방향으로, 이웃의 PMM 군을 구성하는 PMM인 PMM-2 로부터, 패킷 [16,18,20,24,33]을 수리한다. 한편, PMM-1은, 시계방향으로, PMM-2에 대해서, 패킷 [16,28,21,24,28]을 송출하고 있다. 그래서, PMM-1은, 양자를 비교하여, 수리한 패킷 중, 「16」, 「18」 및 「24」가 중복되어 있기 때문에, 이들을 삭제하여, 패킷 [20,33]으로 갱신한다(부호 1300 참조). 게다가, 그 패킷 중의 항목값 「20」,「33」을 고려하여, 「16<20<28<33」인 것 때문에, 자기의 글로벌 값 번호 배열(GVNo) 중, 항목값 「16」에 대응하는 값 「0」은 변경되지 않고, 항목값 「28」에 대응하는 값 「4」는 「5」로 갱신된다(부호 1301 참조). 또한, 패킷 [20,33]이, 반시계방향으로 PMM-0 에 송출된다.
이것에 대해서, PMM-2는, 시계방향으로, 이웃의 PMM 군을 구성하는 PMM 인 PMM-1 로부터, 패킷 [16,18,21,24,28]을 수리하고 있다. PMM-2에 있어서도, 수리한 패킷과, 송출한 패킷을 비교하여, 수리한 패킷 중의 값 중, 중복되는 값을 삭제하여, 패킷 [21,28]로 갱신한다(부호 1300 참조). 다음으로, PMM-2는, 패킷 중의 항목값을 고려하여, 「16<20<21<28<33」인 것 때문에, 자기의 글로벌 값 번호 배열(GVNo) 중, 항목값 「16」 및 「20」에 각각 대응하는 값 「0」,「2」를 갱신하지 않고, 한편, 항목값 「33」에 대응하는 값 「4」를 「6」으로 갱신한다(부호 1302 참조). 또한, 패킷 [21,28]이, 시계방향으로 PMM-3 에 송출된다.
도 15B에 나타내는 바와 같이, 동일한 PMM 군을 구성하는 PMM으로부터 패킷을 수리한 PMM은(스텝1511 참조), 수리한 패킷 중의 값과 자기의 값 리스트(VL) 중의 항목값의 비교, 및, 자기의 항목값의 상대적인 값의 위치(순위)의 특정(스텝 1512), 및, 특정된 위치(순위)에 기초하는 글로벌 값 번호 배열(GVNo)의 갱신(스텝1513)을 실행한다. 또한, 패킷은, 보내져 온 방향과 동일한 방향으로 다음의 PMM을 향해서 송출된다(스텝1514). 또한, 다음의 PMM이 존재하지 않으면, 그 패킷은 폐기된다. 한편, 다음의 PMM이 존재하면, 그 PMM에 있어서, 스텝1511~1513의 처리가 실행된다.
도 13에 있어서, 부호 131O에는, 보내져 온 패킷 [20,33]을 고려한 글로벌 값 번호 배열(GVNo)의 갱신이 나타내어지고, 부호 1313에는, 보내져 온 패킷 [21,28]을 고려한 글로벌 값 번호 배열(GVNo)의 갱신이 나타내어져 있다.
이와 같이 하여, PMM 간의 처리의 정합을 확립하기 위한 글로벌 순서 집합 배열(GOrd)이나 글로벌 값 번호 배열(GVNo)이 생성됨으로써, 편집처리가 완료된다. 또한, 글로벌 값 번호 배열에 대해서는, 항목마다 처리가 실행되어, 항목마다의 글로벌 값 번호 배열이 얻어진다.
편집처리가 종료하면, 검색, 크로스 집계, 소트 등의 처리를 원활하게 또한 신속하게 실행할 수 있다.
[검색처리]
다음에, 검색처리에 대해서 설명한다. 도 16에 나타내는 바와 같이, 우선, 각 PMM은, 검색 대상이 된 항목에 대해서, 값 리스트(VL)와 동일한 사이즈의 플래그 배열을 작성하고(스텝1601), 다음으로, 플래그 배열의 값을 합격여부의 조건 하에서 셋 업한다(스텝1602). 이 셋업에 있어서, 검색조건에 합치되는 항목값에 대응하는 플래그 배열의 값으로서 「1」을 설정하고, 그 이외의 플래그 배열의 값으로 서 「0」을 설정한다.
다음으로, 각 PMM은, 검색결과 저장처 영역인 새로운 글로벌 순서 집합 배열(GOrd' 및 OrdSet')을 생성한다(스텝1603). 도 17은, 각 PMM에 있어서, 값이 셋업된 플래그 배열 및 영역으로서 새로운 글로벌 순서 집합 배열 및 순서 집합 배열이 생성된 상태의 일례를 나타내는 도면이다. 이 예에서는, 「연령」이라는 항목에 대해서, 「20세 이상 24세 이하」의 레코드를 검색하는 것으로 하고 있다. 따라서, 각 PMM에 있어서, 항목값이 20이상 24이하인 것에 대응하는 플러그 배열의 값이 「1」로 되어 있다.
다음에, 합격여부 판정이 실행된다(스텝1604). 이 처리에 있어서는, 순서 집합 배열(OrdSet)의 값마다, 값 리스트에의 포인터(VNo)의 값(포인터 값)이 견출되고, 그 포인터 값이 나타내는 플래그 배열의 값을 취득한다(스텝1611). 이 값이 「0」이면[스텝1612에서 아니오(No)], 아무런 처리도 실행하지 않는다. 한편, 플래그 배열의 값이 「1」이면[스텝1612에서 예(Yes)], 새로운 글로벌 순서 집합 배열(GOrd') 및 순서 집합 배열(OrdSet')에, 순차적으로, 처리에 관련되는 글로벌 순서 집합 배열(GOrd) 및 순서 집합 배열(OrdSet)의 값이, 각각 수용된다(스텝1613).
순서 집합 배열의 말미의 요소까지, 스텝1611~1613의 처리가 반복된다(스텝1614, 1615 참조). 상기 도 16의 처리는, 각 PMM에 있어서 로컬로, 또한, 병렬적으로 실행된다. 도 18은, 각 PMM에 있어서, 도 16의 처리가 실행되고, 로컬로 또한 병렬적으로, 새로운 글로벌 순서 집합 배열(GOrd') 및 순서 집합 배열(OrdSet')에 값이 배치되는 상태의 예를 나타낸다. 또한, 도 19는, 배열 중, 불필요한 영역을 삭제한 상태를 나타낸다(부호 1901~1904 참조).
상기 처리 후에, PMM 간의 패킷통신에 관한 처리로 이행한다. 우선, 각 PMM은, 검색조건에 합치되는 레코드의 PMM 전체에 있어서의 위치(순위)를 저장하기 위한 새로운 글로벌 순서 집합 배열(GOrd")을 생성하고(스텝2001), 배열에 오름 차순으로 초기값을 저장해 둔다(스텝2002). 이 새로운 글로벌 순서 배열 집합(GOrd")의 사이즈는, 배열(GOrd'나 GOrd)의 사이즈와 일치한다.
다음으로, 인접하는 PMM 사이에서 쌍을 형성하고, 쌍을 형성하는 한쪽의 PMM이, 상기 쌍이 된 PMM 사이를 접속하는 한쪽의 버스[예컨대, 제 1 버스(14)]를 이용하여, 앞에 도 16에 나타내는 처리에서 생성된 배열(GOrd')의 요소를 패킷화하여, 쌍을 이루는 다른 PMM에 송출한다(스텝2003). 한편, 다른 PMM도, 마찬가지로, 쌍으로 된 PMM을 접속하는 다른쪽의 버스[예컨대, 제 2 버스(16)]를 이용하여, 배열(GOrd')의 요소를 패킷화하여, 쌍을 이루는 PMM에 송출한다.
도 21의 예에 있어서, PMM-0 으로부터는, GOrd'에 대응하는 패킷 [1,2]가 PMM-1 에 송출되고, PMM-1 로부터는, GOrd'에 대응하는 패킷 [Φ](공집합)이 송출된다. PMM-2와 PMM-3 사이에서도, 마찬가지로 패킷의 주고받기가 행하여진다.
패킷을 수리하면, PMM은, 수리한 패킷을 참조하여, 패킷 중의 값과, 자기의 배열(GOrd') 중의 값을 비교하고, 다른 PMM의 배열(GOrd')을 고려한 값의 위치(순위)를 특정한다.(스텝2004). 이 위치에 따라서, 새로운 글로벌 순서 집합 배열(GOrd")의 값이 갱신된다(스텝2005). 이것에 의해, 쌍의 PMM에 있어서의 항목값의 순위가 확정한다. 패킷은, 각각, 수리한 방향과 동일한 방향으로 송출되지만, 여기 서는 수취지가 없으므로 폐기된다. 또한, PMM은, 자기의 PMM 및 쌍을 이루는 다른 PMM에 있어서의 배열(GOrd')의 요소의 총 수를, 일시적으로 기억해 둔다(스텝2006).
도 21의 예에서는, PMM-0은, PMM-1 로부터 주어진 패킷(요소는 공집합)을 참조한다. 패킷의 요소가 공집합이기 때문에, 배열(GOrd")의 값은 변화하지 않는다. PMM-1에 있어서도, 애당초 배열의 요소가 비어 있기 때문에, 어떠한 처리는 실행되지 않는다.
한편, PMM-2는, PMM-3 으로부터 주어진 패킷 [8]을 참조하여, 자기의 배열(GOrd')과 비교한다. 여기에, 「8>5」이기 때문에, GOrd"의 값은 변화하지 않는다. 한편, PMM-3에 있어서는, 수리한 패킷 [5]와 자기의 Gord'의 값이 비교된다. 여기서는, 「5<8」이기 때문에, GOrd"의 값이, 「0」에서 「1」로 갱신된다.
다음으로, 앞에 형성된 쌍의 PMM을 PMM 군으로 하여, 인접하는 PMM 군의 쌍이 형성된다. 이것에 대해서는, 편집처리의 경우와 마찬가지이다. 그 후, 한쪽의 PMM 군에 있어서의 시계회전방향의 상류측의 PMM으로부터, 시계방향으로 버스(제 1 버스) 상에 패킷이 송출되는 한편, 다른쪽의 PMM 군에 있어서의 시계회전방향의 하류측의 PMM으로부터, 반시계방향으로 버스(제 2 버스) 상에 패킷이 송출된다. 도 21에 있어서는, PMM-0 으로부터 시계방향으로 제 1 버스 상에 패킷이 송출됨과 아울러, PMM-3 으로부터 반시계방향으로 제 2 버스 상에 패킷이 송출된다.
보다 상세하게, 도 22A에 나타내는 바와 같이, 당초 패킷을 송출하는 PMM은, 스텝2005에서 기억한 배열(GOrd')의 총 수에 기초하여, 값의 개수가 상기 총 수에 일치하고, 또한, PMM 자신의 배열(GOrd')의 값을, 대응하는 배열(GOrd")의 값이 나타내는 위치에 배치하고, 한편, 다른 위치에는 NULL값을 배치한 패킷을 생성하여(스텝2201~2203), 소정의 방향으로, 다음의 PMM 에 송출한다(스텝2204).
도 23에 나타내는 바와 같이, 예컨대, PMM-0에 있어서는, PMM-0 및 PMM-1의 다음으로, 2개의 항목값이 있는 것을 알고 있다. 따라서, 2개의 값을 가지는 패킷 [1,2]가, 시계방향으로 제 1 버스를 통해 PMM-1에 송출된다. 그 한편, PMM-3에 있어서는, PMM-2 및 PMM-3의 다음으로, 2개의 항목값이 있는 것을 알고 있다. 따라서, 2개의 값을 가지는 패킷 [-,8](여기에, 「-」은 NULL값을 나타낸다)이, 반시계방향으로 제 2 버스를 통해 PMM-2에 송출된다.
패킷의 목적지로서, 그 패킷을 수리한 PMM은, 도 22B에 나타내는 바와 같이, 자기의 배열(GOrd")을 참조하여, 패킷 중의 NULL값의 소정의 위치, 즉, 배열(GOrd')의 값이 나타내는 위치에, 대응하는 배열(GOrd)의 값을 배치한다(스텝2211, 2212). 그 후, PMM은, 패킷이 흘러 온 방향을 따라, 다음의 PMM에 패킷을 송출한다(스텝2213).
도 23에 있어서, PMM-0 으로부터의 패킷을 수리한 PMM-1은, GOrd"에 요소가 존재하지 않기(즉, 「비어 있음」인) 때문에, 패킷을 그대로, 제 1 버스를 통해서 시계방향으로 송출한다. 또한, PMM-3 으로부터의 패킷을 수리한 PMM-2는, 패킷의 소정의 위치에, 자기의 GOrd'의 요소를 배치하고, 패킷 [5,8]을, 제 2 버스를 통해서 반시계방향으로 송출한다.
상기 예에 있어서는, 1군의 PMM이, 2개의 PMM으로 구성되어 있지만, 1군의 PMM이, 3개 이상의 PMM으로 구성되어 있는 경우에는, 또한, 패킷을 수리한 PMM에 있어서, 도 22B에 나타내는 처리가 실행된다.
다음에, 1군의 PMM과 쌍을 이루는 다른 PMM의 1군을 구성하는 PMM에 의해 패킷이 수리되었을 때에 실행되는 처리에 대해서 설명한다.
도 23에 나타내는 바와 같이, 자기에게 향해진 패킷을 수리한 PMM은(스텝2401 참조), 수리한 패킷 중의 값과, 자기의 배열(GOrd') 중의 값을 비교하여, 배열(GOrd') 중의 값의 상대적인 위치(순위)를 특정한다(스텝2402). 다음으로, PMM은, 특정된 순위에 기초하여, 배열(GOrd")을 갱신한다(스텝2403). 그 후, PMM은, 패킷을, 보내져 온 방향과 동일한 방향을 따라, 다음의 PMM을 향해서 송출한다(스텝2404). 또한, 다음의 PMM이 존재하지 않으면, 그 패킷은 폐기된다. 한편, 다음의 PMM이 존재하면, 상기 PMM에 있어서, 스텝2401~2404의 처리가 실행된다.
도 25의 예에 있어서, PMM-2 로부터의 패킷 [5,8]을 수리한 PMM-1은, 자기의 배열(GOrd')에 요소를 가지고 있지 않기 때문에, 패킷을 그대로 동일한 방향을 따라, PMM의 0에 송출한다. 또한, PMM-1 로부터의 패킷 [1,2]를 수리한 PMM-2는, 상기 패킷의 값과, 배열(GOrd')의 값을 비교한다. 여기서는, 「1<2<5」이기 때문에, GOrd"의 값이, 「0」에서 「2」로 갱신된다. 또한, 패킷은 PMM-3에 송출된다.
PMM-1 로부터 패킷을 수리한 PMM-0에서도, 수리한 패킷과, 자기의 GOrd '의 값을 비교한다. 여기서는, 「1<2<5<8」이기 때문에, GOrd"의 값은 변화되지 않는다. 한편, PMM-2 로부터의 패킷을 수리한 PMM-3에 있어서의 수리한 패킷과, 자기의 GOrd'의 비교에 있어서는, 「1<2<8」이기 때문에, GOrd"의 값은, 「1」에서 「3」 으로 갱신된다.
이러한 처리가 병렬적으로 실행됨으로써, PMM의 배열(GOrd")의 값이 확정된다. 배열(GOrd")의 값은, 검색에 의해 추출된 레코드의, 전체에 있어서의 순위, 즉, 글로벌 순위를 나타낸다. GOrd"을 새로운 GOrd로 하면, 상기 배열(GOrd) 중의 값에 따라서, 순차적으로 레코드를 취출하면, 소정의 순서에 따른 검색 결과를 취득하는 것이 가능하게 된다.
도 26에 있어서의 각 PMM의 배열(GOrd)이, 각각, 검색처리의 결과 얻어진 새로운 배열이다. 이 배열(GOrd)의 값의 작은 순서로, 대응하는 배열(OrdSet)의 값, 이 값이 나타내는 값 리스트(VL)의 값을 취출하면, 「연령」이라는 항목에 대해서 「20세 이상 24세 이하」의 레코드가, 레코드 번호(순서집합)의 순서로 리스트될 수 있다.
[크로스 집계 처리]
다음에, 크로스 집계 처리에 대해서 설명한다. 여기서도, 편집처리가 종료한 상태로부터 처리가 개시된다. 도 27에 나타내는 바와 같이, 각 PMM은, 크로스 집계를 하는 항목에 관한 복수의 값 리스트(VL)의 사이즈를 곱한 사이즈의 카운트 업 영역을 생성한다(스텝2701). 다음으로, 이 영역 중의 각 값이 「0」으로 초기화된다(스텝2702). 도 28은, 「성별」 및 「연령」이라는 항목에 대해서, 각 PMM에 있어서, [「성별」에 관한 값 리스트(VL)의 사이즈]×[「연령」에 관한 값 리스트(VL)의 사이즈]라는 사이즈를 갖는 영역이 만들어지고, 각각 초기값 「O」이 주어진 상태를 나타낸다.
다음으로, 각 PMM은, 카운트 업 배열의 각각 대한 카운트 업 처리를 실행한다(스텝2703). 보다 상세하게는, 각 PMM은, 순서 집합 배열(OrdSet)의 값을 참조하여, 크로스 집계해야 할 항목의 각각의 포인터 배열(VNo)의 값을 특정한다(스텝2711). 다음으로, 크로스 집계해야 할 복수의 포인터 배열(VNo)의 값에 의해 특정된다. 상기 영역 중의 위치의 값이 카운트 업된다(스텝2712). 이러한 처리가, 순서 집합 배열(OrdSet)의 말미까지 반복된다(스텝2713, 2714 참조).
도 29는, 각 PMM에 있어서의 카운트 업의 일례를 나타내는 도면이다. 예컨대, PMM-0에 있어서, 순서 집합 배열(OrdSet)의 요소 「0」이 나타내는 위치의, 항목「성별」의 포인터 배열(VNo)의 값은 「1」, 항목「연령」의 포인터 배열(VNo)의 값은 「0」이다. 따라서, 카운트 업 영역 중의 (성별,연령)=(1,0)으로 특정되는 영역의 값이, 「0」에서 「1」로 카운트 업된다. 다른 PMM에 있어서도, 마찬가지의 처리가 실행되어 있는 것을 이해할 수 있을 것이다.
카운트 업이 종료되면, 이하의 처리에서는, 카운트 업 영역에 있어서, 축으로서 실제의 항목값 대신에, 각 항목의 글로벌 값 번호 배열(GVNo)의 값이 키에 설정된다. 즉, 글로벌 값 번호 배열(GVNo)의 값을 지정함으로써, 카운트 업 영역의 값이 특정되게 된다.
도 30은, 각각의 PMM에 있어서, 글로벌 영역의 값을 특정하기 위해서, 글로벌 값 번호 배열(GVNo)의 값을 이용한 상태를 나타내는 도면이다. 실제로는, 이러한 글로벌 영역의 항목으로서 값을 주는 처리를 실행하는 것은 아니고, 이하의 처리에서, 이들 배열(GVNo)이 이용되는 것에 지나지 않는다.
PMM에 있어서는, 공통의 논리 좌표 배열을 이용하여, 카운트 업 영역의 각각의 값을 합산한다. 보다 상세하게는, 도 31A에 나타내는 바와 같이, 소정 PMM이, 논리 좌표 배열의 패킷을 수리하면(스텝3101), 집계에 따른 복수의 항목의 배열(GVNo)에 의해 특정되는 카운트 업 영역의 값을, 논리 좌표 배열 중, 상기 복수의 항목의 배열(GVNo)에 할당된 위치의 값에 더한다(스텝3102). 또한, 최초에 논리 좌표 배열을 생성하고, 상기 값을 설정하는 처리를 실행하는 PMM에 있어서는, 논리 좌표 배열의 수리 대신에, 논리 좌표 배열의 생성 및 초기값의 배치가 실행된다(스텝3100 참조).
논리 좌표 배열에 대해서 설명한다. 논리 좌표 배열은, 논리좌표의 값과 이것에 대응하는 카운트 값으로 구성된다. 논리좌표의 값은, 크로스 집계의 대상이 된 항목의 다차원의 좌표와 일의적으로 대응되어 있다. 예컨대, 항목「성별 」과 항목「연령 」으로 크로스 집계를 할 경우에는, [항목「성별」에 관한 배열(GVNo)의 값, 항목「연령」에 관한 배열(GVNo)의 값]과, 논리좌표의 값이 일의적으로 대응되어 있다.
이 대응은, 미리 각 PMM에 통지되고, 각 PMM에 기억되어 있다. 도 32는, 초기적으로 논리 좌표 배열을 생성한 PMM-0에 있어서의 논리 좌표 배열에 있어서의 카운트 업의 예를 나타내는 도면이다. 이 예에서는, 논리좌표와, 다차원의 좌표가 이하와 같이 대응되어 있다.
O=(항목「성별」의 GVNo의 값 「0」, 항목「연령」의 GVNo의 값 「O」)
1=(항목「성별」의 GVNo의 값 「0」, 항목「연령」의 GVNo의 값 「1」)
2=(항목「성별」의 GVNo의 값 「O」, 항목「연령」의 GVNo의 값 「2」)
3=(항목「성별」의 GVNo의 값 「0」, 항목「연령」의 GVNo의 값 「3」)
4=(항목「성별」의 GVNo의 값 「0」, 항목「연령」의 GVNo의 값 「4」)
12=(항목「성별」의 GVNo의 값 「1」, 항목「연령」의 GVNo의 값 「5」)
13=(항목「성별」의 GVNo의 값 「1」, 항목「연령」의 GVNo의 값 「6」)
PMM-0은, 좌표 (0,3), (1,1) 및 (4,1)의 값이 「1」로 세트되어 있기 때문에, 논리좌표가 「3」, 「8」 및 「11」에 대응하는 카운트 업 영역의 값을, 각각, 세트된 값만큼 카운트 업한다.
이러한 처리 후에, PMM은, 상기 논리 좌표 배열을 패킷화하고(스텝3103), 인접하는 소정의 PMM에 송출한다(스텝3104). 도 32의 예에서는, 패킷이, PMM-1에 송출된다.
수리한 PMM은, 마찬가지로, 도 30의 처리를 실행하고, 앞에 패킷이 보내진 방향을 따라, 인접하는 PMM 에, 패킷을 송출한다. 도 32~도 35는, 각각, PMM-1 내지 PMM-3에서, 순차적으로 실행되는 논리 좌표 배열의 카운트 업처리를 나타내는 도면이다.
이와 같이 하여, 각 PMM에 논리 좌표 배열이 주어지고, 각각의 카운트 업 영역의 값에 따라, 논리 좌표 배열의 값이 확정된다. 최종의 PMM(예에서는, PMM-3)으로부터는, 다시, 초기적으로 논리 좌표 배열을 생성한 PMM에, 값이 확정된 논리 좌표 배열의 패킷이 주어진다. 도 31B에 나타내는 바와 같이, PMM이, 다시, 논리 좌 표 배열의 패킷을 수리하면(스텝3111), 카운트 업 영역의 값을, 각각, 대응하는 논리 좌표 배열 중의 값으로 갱신한다(스텝3112). 즉, 도 31A의 처리에서는, 카운트 업 영역의 값을 논리 좌표 배열 중에 기록하는 형태이었지만, 도 31B의 처리에서는, 논리 좌표 배열의 값을, 카운트 업 배열 중에 기록한다. 여기서는, 도 31A의 처리와 마찬가지로, 카운트 업 영역의 각 값을 특정하는 좌표와, 논리 좌표 배열과의 대응관계가 이용된다.
값의 갱신이 종료되면, PMM은, 패킷이 보내져 온 방향을 따라, 인접하는 소정의 PMM에, 상기 패킷을 송출한다(스텝3113). 도 36~도 37은, PMM-0 ~ PMM-3에 있어서, 각각 순차적으로 실행되는 논리 좌표 배열의 값의 캡쳐 처리(도 35의 처리)를 나타내는 도면이다.
이와 같이 하여, 도 40에 나타내는 바와 같이, 각 PMM에 있어서, 크로스 집계의 대상이 된 항목의 다차원의 좌표마다, 상기 항목의 항목값의 조합에 관한 집계값을 얻을 수 있다. 도 4O에 있어서, 부호 4001~4004는, 각각, PMM-0 ~ PMM-3에 관한 집계 결과를 나타내는 것이다. 이들 집계 결과의 배열(카운트 업 영역)은, PMM의 메모리에 기억된다.
[소트처리]
다음에, 소트처리에 대해서 설명한다. 여기서도, 편집처리가 종료한 상태로부터 처리가 개시된다. 도 41에 나타내는 바와 같이, 각 PMM은, 소트해야 할 항목에 관한 값 리스트(VL)와 동일한 사이즈의, 존재수 배열의 영역을 생성하고(스텝4101), 영역 중의 각 값에 초기값 「0」을 준다(스텝4102). 도 42는, 「연령」이라 는 항목에 대해서, 각각의 PMM에 있어서, 값 리스트(VL)와 동일한 사이즈를 갖는 영역이 만들어지고, 각각 초기값「0」이 주어진 상태를 나타낸다.
다음으로, 각 PMM은, 존재수 배열 각각 대한 카운트 업 처리를 실행한다(스텝4103). 더 상세하게는, 각 PMM은, 순서 집합 배열(OrdSet)의 값을 참조하여, 소트해야 할 항목의 포인터 배열(VNo)의 값을 특정한다(스텝4111). 다음으로, 각 PMM은, 존재수 배열 중, 상기 포인터 배열(VNo)의 값에 나타내어지는 위치의 값을 카운트 업한다(스텝4112). 이러한 처리가, 순서 집합 배열(OrdSet)의 말미까지 반복된다(스텝4113,4114 참조).
도 43은, 각 PMM에 있어서의 카운트 업의 일례를 나타내는 도면이다. 예컨대, PMM-0에 있어서, 순서 집합 배열(OrdSet)의 요소 「0」이 나타내는 위치의, 연령의 포인터 배열(VNo)의 값은 「0」이다. 따라서, 존재수 배열의 「제0번째」의 위치, 즉, 선두의 위치에 있는 값을, 「0」에서 「1」로 카운트 업한다. 다른 PMM에 있어서도, 마찬가지의 처리가 실행되어 있는 것을 이해할 수 있을 것이다.
카운트 업 처리가 종료되면, 도 44에 나타내는 바와 같이, 각 PMM은, 존재수 배열의 요소를 누계하여, 상기 존재수 배열을 누계수 배열로 변환한다(스텝4401). 누계수 배열의 요소인 누계수는, 항목값을 지시하는 레코드의 수를 나타내는 존재수를 고려하여, 그 누계수가 배치되어 있는 위치의 항목값을 지시하는 레코드의 선두의 위치를 나타내게 되어 있다. 구체적으로는, 각 PMM이, 배열의 위치를 나타내는 파라미터 「i」를 초기화하여(스텝4411), 파라미터가 나타내는 존재수 배열 중의 값을 취출하고(스텝4412), 파라미터「i」가 나타내는 위치보다, 뒤의 위치, 즉, 「i+1」,「i+2」,…의 위치의 존재수 배열의 값에, 스텝4412에서 취출된 값을, 각각 가산한다(스텝4413). 스텝4412, 4413에 나타내는 처리를, 값 리스트(VL)의 요소(항목값)의 개수만큼 반복하면 된다(스텝4414, 4415 참조).
이와 같이 하여, 예컨대, 도 45에 나타나 있는 바와 같은 누계수 배열을 얻을 수 있다. 또한, 각 PMM은, 뒤에 PMM 전체에 있어서의 순위를 저장하기 위한 배열(GVNo, GOrd' 및 OrdSet')을 위한 영역도 만들어진다(스텝4402). 이들 배열의 사이즈는, 각각, 값 리스트(VL)의 사이즈와 일치한다.
다음에, 각 PMM에 있어서의 로컬 소트처리가 실행된다. 도 46에 나타내는 바와 같이, 각 PMM은, 순서 집합 배열(OrdSet)의 값을 취출하고(스텝4601), 다음으로, 포인터 배열(VNo) 중, 배열(OrdSet)의 값이 지시하는 위치의 값(포인터 값)을 특정한다(스텝4602). 그 후, 각 PMM은, 소트해야 할 항목의 글로벌 값 번호 배열(GVNo) 중, 포인터 배열(VNo)의 값이 나타내는 위치의 값을 취득한다(스텝4603). 이 값은, 후술하는 값의 저장처리에 이용된다. 한편, 상기 누계수 배열에 있어서도, 포인터 배열(VNo)이 나타내는 위치의 값이 취득된다(스텝4604). 이 값은, 후술하는 값의 저장처리에 있어서, 배열 중의 위치를 지정하기 위해서 이용된다.
다음에 값의 저장처리가 실행된다. 각 PMM은, 앞에 생성한 배열(GVNo) 중, 스텝4604에서 취득된 누계수 배열의 값이 나타내는 위치에, 스텝4602에서 취득된, 소트해야 할 항목에 관한 GVNo의 값을 배치한다(스텝4605). 또한, 각 PMM은, 배열(GOrd',OrdSet') 중, 스텝4604에서 취득된 누계수 배열의 값이 나타내는 위치에, 글로벌 순서 집합 배열(GOrd) 및 순서 집합 배열(OrdSet)의 값을, 각각 배치한다( 스텝4606). 다음으로, 처리에 이용된 누계수 배열의 값이 증가된다(스텝4607).
상기 스텝4601~4607의 처리가, 배열(OrdSet) 중의 모든 값에 대해서, 순차적으로 실행된다(스텝4608,4690 참조).
도 47 및 도 48은, 각 PMM에 있어서 로컬 소트처리가 실행되어 있는 상태의 예를 나타내는 도면이다. 예컨대, PMM-0에 관해서, 도 47에 있어서는, 배열(OrdSet)의 값 「0」의 취출(스텝4601 참조), 상기 OrdSet의 값「0」이 나타내는 위치의, 배열(VNo)의 값 「0」의 특정(스텝4602 참조), 상기 배열(VNo)의 값 「0」이 나타내는 위치의, 배열(GVNo)의 값 「1」의 취득(스텝4603), 및, 배열(VNo)의 값 「0」이 나타내는 위치의, 누계수 배열의 값 「0」의 취득(스텝4603)이 실행되어 있는 것을 이해할 수 있을 것이다. 또한, 누계수 배열의 취득 후, 상기 누계수 배열의 값이, 「0」에서 「1」로 되어 있는 것을 알았다(스텝4607 참조).
또한, PMM-0에 관해서, 도 48에 있어서, 스텝4603에서 취득된 누계수 배열의 값이 나타내는 위치에 있어서의, 배열(GVNo,GOrd' 및 OrdSet')에의, 항목「연령」에 관한 배열(GVNo)의 값 「1」, 및, 배열(GOrd)의 값 「0」 및 배열(OrdSet)의 값 「0」의 배치(스텝4605, 4606)가 나타내져 있는 것을 이해할 수 있을 것이다. 다른 PMM에 대해서도, 도 47, 48에 있어서, 마찬가지로 스텝4601~4605에 나타내는 처리가 실행되어 있는 것을 알았다.
이러한 각 PMM에 있어서의 로컬 소트처리가 종료하면, PMM 간의 패킷통신에 의해, PMM 전체의 소트처리가 실행된다. 도 49에 나타내는 바와 같이, 각 PMM에 있어서, PMM 전체에 있어서의 소트 순서를 저장하기 위한 배열(GOrd")의 영역이 생성 되고(스텝4901), 각 배열에 있어서 오름 차순으로 초기값이 주어진다(스텝4902). 이들 처리에 의해, 도 50에 나타내는 바와 같이, 각 PMM에 있어서, 초기값이 배치된 배열(GOrd")이 만들어진다.
다음으로, 인접하는 PMM 사이에서 쌍을 형성하고, 쌍을 형성하는 한편의 PMM이, 상기 쌍으로 된 PMM 사이를 접속하는 한쪽의 버스[예컨대, 제 1 버스(14)]를 이용하여, 자기가 갖는 배열(GVNo 및 GOrd')의 값의 세트를 패킷화하여 송출한다(스텝4903). 마찬가지로, 다른쪽의 PMM도, 다른쪽의 버스[예컨대, 제 2 버스(16)]를 이용하고, 자기가 갖는 배열(GVNo 및 GOrd')의 세트를 패킷화하여 송출한다(스텝4903).
도 51의 예에서는, PMM-0 으로부터 PMM-1 로, 패킷 [(1,0),(3,1),(4,2)]가 송출되고, PMM-1 로부터 PMM-0 으로, 패킷 [(0,3),(5,4)]가 송출된다. 마찬가지로, PMM-2 로부터 PMM-3 으로, 패킷 [(0,6),(2,5),(6,7)]이 송출되고, PMM-3 으로부터 PMM-2 로, 패킷 [(1,9),(4,8)]이 송출된다.
패킷을 수리한 PMM은, 수리한 패킷 중, 쌍을 이루는 다른 PMM의 배열(GVNo)의 값과, 자기의 배열(GVNo)의 값을 비교하여, 상기 다른 PMM의 배열(GVNo)을 고려한, 상대적인 값의 위치(순위)를 특정한다(스텝4904). 이 위치(순위)에 따라서, 배열(GOrd")의 값이 갱신된다(스텝4905). 또한, PMM은, 갱신과 함께, 자기의 PMM, 및, 쌍을 이루는 다른 PMM의 배열(GVNo) 중의 값의 총 수를, 일시적으로 기억해 둔다(스텝4906).
도 51의 예에 있어서, PMM-0은, 패킷 [(0,3),(5,4)]를 수리한다. 이 패킷 중 , 배열(GVNo)의 값에 상당하는 「0」,「5」와, 자기의 배열(GVNo) 의 값 「1」,「3」,「4」가 비교된다. 여기서, 「0<1<3<4<5」이기 때문에, 배열(GOrd")의 값은, 각각, 「1」,「2」 및 「3」으로 갱신된다. 한편, PMM-1은, 패킷 [(1,0),(3,1),(4,2)]를 수리한다. 이 패킷 중, 배열(GVNo)의 값에 상당하는 「1」,「3」,「4」와, 자기의 배열(GVNo) 의 값 「0」,「5」가 비교된다. 여기서도, 「0<1<3<4<5」이기 때문에, 배열(GOrd")의 값이, 각각, 「0」,「4」로 변경된다. PMM-2 및 PMM-3에 있어서도, 마찬가지의 처리에 의해, 각각 GOrd"의 값이 갱신된다. 또한, PMM은, 수리한 패킷을 다음의 타이밍에서 패킷이 보내진 방향으로 송출하면 된다. 이 패킷은 수취지가 없으므로 폐기된다.
다음으로, 앞에 형성된 쌍의 PMM을 PMM 군으로 하여, 인접하는 PMM 군의 쌍이 형성된다. 또한, PMM 수가 2의 제곱이면, PMM 군의 쌍을 형성할 수 있지만, 그렇지 않을 경우에는, PMM 군의 쌍을 형성할 수 없는 부분에 대해서는, 그대로 해 두면 된다. 예컨대, PMM의 수가 3이면, PMM-0 및 PMM-1 로 이루어지는 PMM 군과, PMM-2의 상을 형성하면 된다.
그 후, 한쪽의 PMM 군에 있어서의 시계회전방향의 상류측의 PMM으로부터, 시계방향으로 버스(제 1 버스) 상에 패킷이 송출되는 한편, 다른쪽의 PMM 군에 있어서의 시계회전방향의 하류측의 PMM으로부터, 반시계방향으로 버스(제 2 버스) 상에 패킷이 송출된다. 도 50, 도 51에 나타낸 예에 관해서는, PMM-0 으로부터 시계방향으로 제 1 버스 상에 패킷이 송출됨과 아울러, PMM-3 으로부터 반시계방향으로 제 2 버스 상에 패킷이 송출된다(도 53 참조).
보다 상세하게는, 도 52A에 나타내는 바와 같이, 당초 패킷을 송출하는 PMM은, 스텝4906에서 기억한 PMM 군 전체의 배열(GVNo)의 값의 총 수에 기초하여, 값의 세트의 개수가, 상기 배열(GVNo)의 총 수에 일치하고, 또한, PMM 자신의 배열(GVNo)의 값 및 배열(GOrd')의 값의 세트를, 배열(GOrd") 중의 대응하는 값이 나타내는 위치에 배치하고, 한편, 다른 위치에는, NULL값을 배치한 패킷을 생성한다(스텝5201~5203). 생성된 패킷은, 소정의 방향으로, 다음의 PMM에 송출된다(스텝5204).
도 53에 나타내는 바와 같이, 예컨대, PMM-0에 있어서는, PMM-0 및 PMM-1의 쌍에서, 배열(GVNo)에 5개의 값이 있는 것을 알고 있다. 따라서, 5개의 값의 세트를 가지는 패킷 [-,(1,0),(3,1),(4,2),-](여기에, 「-」은 NULL값을 나타낸다)이, 시계방향으로 제 1 버스를 통해서 PMM-1에 송출된다. 한편, PMM-3에 있어서는, PMM-2 및 PMM-3의 쌍에서, 배열(GVNo)에 5개의 값이 있는 것을 알고 있다. 따라서, 5개의 값을 가지는 패킷 [-,(1,9),-,(4,8),-]이, 반시계방향으로 제 2 버스를 통해서 PMM-2에 송출된다.
도 52B에 나타내는 바와 같이, 패킷의 목적지로서, 그 패킷을 수리한 PMM은, 자기의 배열(GOrd")을 참조하여, 패킷 중의 NULL값의 소정의 위치, 즉, 배열(GOrd")의 값이 나타내는 위치에, 대응하는 배열(GVNo)의 값 및 GOrd'의 값의 세트를 배치한다(스텝5211, 5212). 그 후, PMM은, 패킷이 흘러 온 방향을 따라, 다음의 PMM에 패킷을 송출한다(스텝5213).
도 53에 있어서, PMM-0 으로부터의 패킷을 수리한 PMM-1은, 수리한 패킷 중, NULL값이 배치된 위치 중, 자기의 배열(GOrd")의 요소 「0」 및 「4」가 나타내는 위치에, 대응하는 값의 세트 (0,3) 및 (5,4)를 각각 배치한다. 이것에 의해, 패킷 [(0,3),(1,0),(3,1),(4,2),(5,4)]가, 제 1 버스를 통해서 시계방향으로 송출된다. 또한, PMM-3 으로부터의 패킷을 수리한 PMM-2도, 마찬가지로, 패킷 [(0,6),(1,9),(2,5),(4,8),(6,7)]을, 제 2 버스를 통해서 반시계방향으로 송출한다.
다음에, 1군의 PMM과 쌍을 이루는 다른 PMM의 1군을 구성하는 PMM에 의해 패킷이 수리되었을 때에 실행되는 처리에 대해서 설명한다.
도 55에 나타내는 바와 같이, 다른 PMM의 1군을 구성하는 PMM이, 패킷을 수리하면(스텝5501), 수리한 패킷 중, GVNo에 상당하는 값과, 자기의 GVNo의 값을 비교하여, 상기 다른 PMM의 배열(GVNo)을 고려한, 상대적인 값의 위치(순위)를 특정한다(스텝5502). 이 위치(순위)에 따라서, 배열(GOrd'')의 값이 갱신된다(스텝5503). 다음으로, PMM은, 패킷을, 그 패킷이 보내진 방향을 따라, 다음의 인접하는 PMM에 송출한다(스텝5504). 또한, 스텝5502에 있어서, GVNo의 값이 동일했을 경우에는, 세트로 되어 있는 배열(GOrd')의 값이 참조되고, 그 값이 작은 것이 상위에 배치된다.
패킷을 수리한 PMM에 있어서는, 순차적으로, 도 55에 나타내는 처리가 반복되고, 소트 순서를 나타내는 글로벌 순서 집합(GOrd")이 완성된다. 처리가 종료하는 것에 있어서, 생성된 GOrd"을 GOrd로 읽고, 또한, OrdSet'을 OrdSet로 읽으면 된다.
도 54의 예에 있어서, PMM-1은, PMM-2 로부터, 패킷 [(0,6),(1,9),(2,5),(4,8),(6,7)]을 수리한다. 이 패킷 중, 배열(GVNo)에 상당하는 값과, 자기의 배열(GVNo)의 값을 비교하면, 「0=0<1<2<4<5」가 되기 위해서, 배열(GOrd")의 값은, 「0」,「4」에서, 각각, 「0」,「8」로 갱신된다. 또한, 배열(GVNo)의 값이 동일할 때에는, 각각의 대응하는 GOrd'의 값이 참조된다.
다음 타이밍에서, PMM-0은, PMM-1 로부터, 동일한 패킷 [(0,6),(1,9),(2,5),(4,8),(6,7)]을 수리한다. 이 패킷 중, 배열(GVNo)에 상당하는 값과, 자기의 배열(GVNo)의 값을 비교하면, 「0<1=1<2<3<4=4<6」으로 된다. 따라서, 배열(GOrd")의 값은, 「1」,「2」,「3」에서, 각각, 「2」,「5」,「6」으로 갱신된다. PMM-2나 PMM-3에 있어서도 마찬가지의 처리가 실행되고, 각각에 있어서, GOrd"의 값이 갱신된다.
상술한 바와 같이, 생성된 GOrd"을 GOrd로 읽고, 또한, OrdSet'를 OrdSet로 읽음으로써, 예컨대, 각 PMM에 있어서, 도 56에 나타내는 바와 같은 배열이 취득된다. 여기서, 배열(GOrd)의 순서로, 레코드를 순차적으로 취출함으로써, 소트된 표형식 데이터를 얻을 수 있는(도 57 참조).
[시스템 구성, 본 발명의 의의]
본 발명에 따른 정보처리시스템은, 예컨대, 프론트 앤드가 되는 단말장치와, 링형상의 채널을 통해 접속되고, 단말장치로부터의 명령을, 각각의 PMM이 수리함으로써, PMM에 있어서, 상술한 편집, 검색, 크로스 집계 소트의 처리를 실행할 수 있다. 또한, 각 PMM은 패킷을 어느 하나의 버스를 이용해서 송출하면 되고, PMM 간의 동기 등을 외부로부터 제어할 필요도 없다.
또한, 제어장치에는, 상기 편집, 검색 등의 반복 연산을 위한 하드웨어 구성을 구비한 가속기 칩(Accelerator Chip) 외에, 이것에다가, 범용 CPU를 포함해서도 된다. 범용 CPU는, 단말장치로부터 채널을 통해서 전달된 명령을 해석하고, 가속기 칩에 필요한 지시를 줄 수 있다.
또한, 제어장치, 특히, 그 중의 가속기 칩에는, 순서 집합 배열, 글로벌 순서 집합 배열 등 작업에 필요한 각종 배열을 수용하기 위한 레지스터 군이 설치되어 있는 것이 바람직하다. 이것에 의해, 일단, 메모리로부터 레지스터 상에 처리에 필요한 값을 로드해 버리면, 편집, 검색, 크로스 집계 및 소트에 걸리는 상술한 처리 연산 중에는, 제어장치는 메모리에 액세스하는 일없이, 레지스터로부터 읽거나, 또는, 레지스터에 값을 기록하면 된다. 이것에 의해, 메모리 액세스의 회수를 현저하게 줄일 수 있고(연산처리 전의 로드, 및, 처리 결과의 기록), 처리시간을 현저하게 단축시킬 수 있게 된다.
다음에, 본 발명에서 도입한 배열(GOrd) 및 배열(GVNo)의 의의에 대해서 설명한다. 본 발명에 있어서, 글로벌 순서 집합 배열(GOrd)은, 각 PMM이 장악하는 로컬 표형식 데이터를 집합시킨 글로벌 표형식 데이터 중, 각 PMM의 장악하는 표형식 데이터의 각 레코드의 위치(순위)를 나타내고 있다. 즉, 본 발명에 있어서는, 글로벌 순서 집합 배열(GOrd) 및 순서 집합 배열(OrdSet)에 의해, 레코드의 위치 정보를, 글로벌 성분과 로컬 성분으로 분리하고, 이것에 의해, 글로벌 표형식 데이터를 취급할 수 있음과 아울러, 각 PMM이 단독으로 처리를 실행하는 것도 가능하게 된 다.
본 실시형태에 있어서는, PMM이 각 항목의 정보블록을 유지하도록 구성되어 있었지만, PMM이 표형식 데이터를 그대로 유지하는 경우에도, 상기 GOrd는, 후술하는 바와 같이 마찬가지로 기능한다.
예컨대, 본 실시형태에 있어서 편집이 종료된 상태(예컨대, 도 17 참조)에서, 글로벌 순서 집합 배열(GOrd)의 값의 순서로, 각 항목의 항목값을 취출함으로써, 표형식 데이터 전체의 뷰를 작성할 수 있다. 검색이 종료된 상태(예컨대, 도 26 참조)나 소트가 종료된 상태(예컨대, 도 56 참조)에 있어서도, 마찬가지이다.
보다 상세하게는, 예컨대, 도 17에 있어서, PMM-2의 제어회로(20)가, 순위를 나타내는 값 「5」를 수리하면, 글로벌 순서 집합 배열(GOrd) 중의 값 「5」에 관련되는 (로컬)순서 집합 배열(OrdSet) 중의 값 「0」이 특정된다. 또한, 항목「연령」에 관해서, 포인터 배열(PV) 중의 값 「1」이 특정되고, 다음으로, 값 리스트(VL) 중의 항목값 「20」을 특정할 수 있다. 물론, 다른 항목에 대해서도, 포인터 배열(PV) 중의 값, 및, 그 배열(PV) 중의 값에 의해 특정되는 값 리스트(VL) 중의 항목값이 특정된다. 이것에 의해, 순위를 나타내는 값에 대응하는 레코드를 취출하는 것이 가능하게 된다.
또한, 정보블록을 유지하지 않는 구성이여도, 전술한 바와 같은, 순위를 나타내는 값의 수리에 응답하여, 대응하는 레코드의 취출을 실현된다. 이것에 대해서는, 도 60을 참조하면서, 후술한다.
다음에, 정보블록을 유지하지 않는 구성을 참조하여, 배열(GOrd)의 의의에 대해서, 또한 설명한다. 예컨대, 도 58A에 나타내는 바와 같이, 표형식 데이터를, 값(항목값) 그 자체를 소트하는 것은 아니고, 항목을 특정하는 어드레스 정보가 되는 순서 집합 배열의 값을 소트하고, 배열 중의 값을 재배치함으로써 실현하는 경우를 고려한다. 도 58B에 있어서의 순서 집합 배열(OrdSet)이, 소트 후의 레코드의 순서를 나타내고 있다.
다음에, 상기 순서 집합 배열(OrdSet) 및 표형식 데이터의 본체(도 58B의 부호 5800 참조)를, 복수의 PMM에 의해 분장 파악하는 것을 고려한다. 순서 집합 배열(OrdSet)을 분할하고, 또한, 표형식 데이터 본체를 분할하여, 분할된 배열(OrdSet) 및 표형식 데이터 본체의 세트를, PMM에 분장시킨 예를 도 59에 나타낸다. 이 경우, 소정 PMM 배열(OrdSet) 중의 값이, 다른 PMM이 유지하는 레코드를 지시할 경우도 있다(예컨대, 화살표 5901, 5902 참조). 따라서, 각 PMM에서 단독으로 실행할 수 있는 처리가 실질상 존재하지 않는다. 또한, 도 59의 예에서, 또한, 항목「성별」을 「여성」이라는 항목값으로 좁히는(검색하는) 경우에, 좁혀진 레코드를 나타내는 값을 수용하는 배열을, 어떻게 분장하면 좋은지, 명확한 기준을 만들 수 없다. 즉, 상술한 상태에서의 검색은 실질적으로 불가능하게 된다.
이것에 대해서, 도 60에 나타내는 바와 같이, 순서 집합 배열(OrdSet)에 의해서, 각 PMM이 파악하는 표형식 데이터의 부분집합에 있어서의, 로컬 소트된 레코드의 순위를 장악하고, 또한, 글로벌 순서 집합 배열(GOrd)이, 소트된 레코드 각각의, 전체에 있어서의 순위를 장악하고 있다. (로컬)순서 집합 배열(OrdSet)은, 자기의 장악하는 표형식 데이터의 부분집합의 레코드를 지시하기 위해서, PMM 단독으 로의 처리가 가능하게 된다.
도 60에 나타내는 예에 있어서의, 순위를 나타내는 값의 수리에 응답한 레코드의 취출에 대해서도, 이하에 설명한다. 예컨대, PMM-0의 제어회로가, 순위를 나타내는 값 「5」를 수리하면, 글로벌 순서 집합 배열(GOrd) 중의 값 「5」에 관련되는 (로컬)순서 집합 배열(OrdSet) 중의 값 「1」이 특정된다. 이것에 의해, PMM-0 내의, 「성별:남자」, 「연령:21」, 「신장:172」 및 「체중:64」라는 레코드가 취출된다.
또한, 특히, 여기서 주목해야 할 것은, (로컬)순서 집합 배열(OrdSet)의 값은, 로컬 소트가 반영되기 위해서, 값의 순위의 역회전이 생길 수 있는 것에 대해서, 글로벌 순서 집합 배열(GOrd)의 값이 오름 차순으로 되어 있는 것이다. 이것에 의해, 고속의 PMM 간의 처리 및 PMM 내의 처리가 가능하게 된다. 물론, 검색처리나 크로스 집계 처리 후에 있어서도, 글로벌 순서 집합 배열(GOrd)의 값은 오름 차순으로 되어 있다.
이렇게 배열(GOrd)이 오름 차순인 것은, 이하와 같은 이점이 생긴다. 예컨대, 앞에 설명한 검색처리에 있어서, 배열(GOrd)[처리에 사용되는 것은 배열(GOrd')]이 오름 차순이기 때문에, 값의 비교를 고속으로 실현할 수 있다(도 23~도 25 참조). 마찬가지로, 앞에 설명한 소트처리에 있어서도, 배열(GOrd)[처리에 사용되는 것은 배열(GOrd')]이 오름 차순이기 때문에[이것에다가, 후술하는 배열(GVNo)도 오름 차순이기 때문에], 값의 비교 처리를 고속으로 실현할 수 있다(도 52A~도 54 참조).
또한, 소트된 레코드를 취출하여, 소트된 뷰를 작성할 경우에도, 각 PMM은, 글로벌 값 번호 배열(GVNo)이 오름 차순이기 때문에, 선두의 레코드로부터 순서대로, 데이터를 출력해 가면 좋기 때문에, 처리를 고속화할 수 있다.
다음에, 글로벌 값 번호 배열(GVNo)의 의의에 대해서 설명한다. 글로벌 값 번호 배열은, 집계시에 특히 유용하다. 예컨대, 각 PMM에 있어서, 도 61에 나타내는 표형식 데이터의 부분집합의 레코드가 장악되어 있는 것으로 생각한다(부호 6100~6103 참조). 이러한 예에 있어서, 각 PMM에서의 집계 결과를 통합하여, 표형식 데이터 전체의 집계 결과를 취득하는 것을 고려한다.
예컨대, 항목「연령」의 출현수를 집계할 경우, 각 PMM에서는, 항목「연령」의 항목값마다, 그 출현수를 나타내는 배열을 만들 수 있다(부호 6110~6113 참조). 그러나, 각 PMM에 있어서의 각 항목값의 출현수를 그대로 통합하는 것은 매우 곤란하다.
이것에 대해서, 글로벌 값 번호 배열을 도입함으로써, 각 PMM에 있어서 유지되는 항목값의, 일정한 순서 하에서의, 항목값 전체에 있어서의 위치를 특정할 수 있다. 따라서, 이 글로벌 값 번호 배열의 값을 키로 하여, 전체의 집계, 즉, 출현 값의 통합을 실현하는 것이 가능하게 된다.
또한, 크로스 집계에 있어서는, 본 실시형태에 따른, 항목마다의 정보블록에 제공된 글로벌 값 번호 배열(GVNo)을 이용하고, 크로스 집계에 따른 항목의 글로벌 값 번호 배열(GVNo)의 값의 세트에 의해 일의적으로 특정되는 논리 좌표 배열 중의 위치에, 각 PMM에 있어서의 집계 결과를 누산해 감으로써, 출현 값의 통합을 원활 하게 실현하는 것이 가능하게 된다.
또한, 글로벌 값 번호 배열(GVNo)을 이용하여, 항목값을 특정해서 취출하는 것, 즉, 글로벌 표형식 데이터에 있어서의 값(항목값)의 순위를 나타내는 정보를, PMM이 수리하고, 그 순위에 대응하는 항목값을 취출하는 것도 유용하다. 예컨대, 도 17에 있어서, 항목「연령」에 관해서, 선두, 즉, 제0번의 항목값을 알기 위해서, 값의 순위 「0」을 나타내는 명령을 수리한 PMM-1이, 글로벌 값 번호 배열(GVNo) 중의 값 「0」에 관련되는 값 리스트(VL) 중의 값 「16」을 특정할 수 있다. 물론, 명령을 수리한 PMM-2가 마찬가지로 동작해도 된다.
또한, 글로벌 값 번호 배열(GVNo)도 오름 차순으로 된다. 이것은, 각 PMM에 의해 장악된 (로컬)값 리스트의 항목값이 오름 차순이면, 그 순서는 보존되기 때문이다. 따라서, 상기 소트처리에 있어서, 값의 비교처리를 고속으로 실현할 수 있다(도 52A~도 54 참조).
본 발명은, 이상의 실시형태에 한정되는 일없이, 특허청구의 범위에 기재된 발명의 범위 내에서, 각종 변경이 가능하고, 그들도 본 발명의 범위 내에 포함되는 것은 말할 필요도 없다.
상기 실시형태에 있어서는, PMM을, 한쪽이 시계방향으로 패킷을 전송하는 제 1 버스(제 1 전송로), 다른쪽이 반시계방향으로 패킷을 전송하는 제 2 버스(제 2 전송로)에 의해, 링형상으로 접속하고 있다. 이와 같은 구성에 의해, 패킷 전송의 지연시간 등을 균일화할 수 있기 때문에 유리하다. 그러나, 이것에 한정되지 않고, 버스형 등 다른 형태의 전송로를 채용해도 된다.
또한, 본 실시형태에 있어서는, 메모리, 인터페이스 및 제어회로를 갖는 PMM을 이용하고 있지만, 이것에 한정되는 것은 아니고, 퍼스널 컴퓨터, 서버 등을, 로컬 표형식 데이터를 분장하는 정보처리유닛으로서, PMM 대신에 이용해도 된다. 또는, 단일의 퍼스널 컴퓨터나 서버가, 복수의 정보처리유닛을 유지하는 구성을 채용해도 된다. 이들의 경우에도, 정보처리유닛이, 레코드의 순위를 나타내는 값을 수리하고, 글로벌 순서 집합 배열(GOrd)을 참조함으로써, 레코드를 특정할 수 있다. 또한, 글로벌 값 번호 배열을 참조함으로써, 항목값을 특정하는 것도 가능하다.
또한, 정보처리유닛 간의 전송로도, 소위 네트워크형이나 버스형을 채용해도 된다.
단일의 퍼스널 컴퓨터에 복수의 정보처리유닛을 설치하는 구성을 채용함으로써, 이하와 같이, 본 발명을 이용할 수 있다. 예컨대, 삿포로지사, 도쿄지사, 후쿠오카지사의 3개의 표형식 데이터를 준비하고, 통상은, 각 지사의 단위로, 검색, 집계, 소트 등을 실행한다. 또한, 3개의 지사를 통합한 글로벌 표형식 데이터를 고려하여, 각 지사의 표형식 데이터가, 전체표 중 부분표인 것으로 간주하고, 글로벌 표형식 데이터에 관한 검색, 소트 및 집계를 실현할 수 있다.
물론, 복수의 퍼스널 컴퓨터를 네트워크에 의해 접속했을 경우에도, 마찬가지로, 퍼스널 컴퓨터에 의해 분장되는 로컬 표형식 데이터에 관한 처리, 및, 글로벌 표형식 데이터에 관한 처리를 실현할 수도 있다.
본 발명에 의하면, 분산 메모리형에 있어서, 처리와 통신을 통합함으로써 현저하게 고속인 병렬처리를 실현할 수 있는 정보처리장치를 제공하는 것이 가능하게 된다.
본 발명은, 특히, 대량의 데이터를 관리하는 시스템, 예컨대, 데이터베이스, 데이터 웨어하우스에 이용할 수 있다. 보다 구체적으로는, 대규모의 과학기술계산, 수발주 관리나 증권거래 등의 기간업무관리, 사무관리에 이용가능하다.

Claims (25)

  1. 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각에 유지하는 복수의 정보처리유닛, 및
    상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고;
    상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템으로서:
    상기 정보처리유닛 각각은,
    상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하는 수단;
    상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 수단;
    상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 수단; 및
    상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처 리유닛의 전체에서 글로벌 순위를 부여하는 수단을 포함하는 것을 특징으로 하는 정보처리시스템.
  2. 각각, 메모리, 인터페이스, 및 제어장치를 갖는 복수의 메모리 모듈과,
    인접하는 메모리 모듈의 인터페이스 간을 접속하는 패킷 전송로를 구비하고;
    상기 메모리 모듈의 각각의 메모리가,
    각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보 블록의 집합체에 의해, 글로벌 정보블록이 형성되도록 구성된 정보처리시스템으로서:
    각 메모리 모듈의 제어장치가, 상기 포인터 배열 중, 글로벌 정보블록의 부분집합으로서, 자기가 장악하는 정보블록이, 어느 위치를 점유할지를 나타내는 오프셋 값을 유지하는 오프셋 값 기억수단;
    상기 오프셋 값에 기초하여, 글로벌 정보블록에 있어서의 글로벌 순서 집합 배열을 생성하는 글로벌 순서 집합 배열 생성수단;
    인접하는 메모리 모듈의 사이에서, 상기 전송로를 이용하여, 자기의, 소정 항목의 값 리스트를 패킷화해서 송신하는 패킷 송신수단;
    상기 패킷 송신수단에 의한 패킷 송신과 병렬적으로, 상기 전송로를 이용하 여 다른 메모리 모듈의 패킷화된 값 리스트를 수신하는 패킷 수신수단; 및
    수신한 각각의 값 리스트를 참조하여 자기의 상기 항목의 값 리스트 중의 항목값의 글로벌 정보블록에 있어서의 순위를 결정하고, 상기 항목값의 글로벌 정보블록에 있어서의 순위를, 상기 항목에 관한 글로벌 값 번호 배열에 수용하는 순서판정수단을 포함하는 것을 특징으로 하는 정보처리시스템.
  3. 제2항에 있어서, 상기 순서판정수단이, 판정된 각각의 상기 상대적인 순위와 본래의 순위의 차이의 총 합계를 본래의 순위에 더함으로써, 상기 글로벌 정보블록에 있어서의 순위를 산출하도록 구성된 것을 특징으로 하는 정보처리시스템.
  4. 제2항 또는 제3항에 있어서, 상기 순서판정수단은, 송신한 패킷 및 수리한 패킷을 비교하여 중복되는 값을 삭제하는 것을 특징으로 하는 정보처리시스템.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서, 각 메모리 모듈의 제어장치가,
    검색해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 플래그 배열을 생성하여, 검색조건에 합치되는 항목값에 대응하는 플러그 배열 중에 특정의 값을 부여하는 플래그 배열 셋업수단;
    상기 검색해야 할 항목에 관해서 순서 집합 배열이 나타내는 위치에 대응하는 포인터 배열 중의 값을 특정하고, 그 후, 포인터 배열 중의 값이 나타내는 위치에 대응하는 플래그 배열 중의 값을 특정함으로써, 상기 순서 집합 배열 중의 값에 대응하는 레코드가 검색조건에 합치되는지의 여부를 판정하는 검색조건 판정수단; 및
    검색조건에 합치되는 순서집합의 값, 및, 대응하는 글로벌 순서 집합의 값을, 각각 제 2 순서 집합 배열 및 제 2 글로벌 순서 집합 배열에 수용하는 로컬 검색수단을 포함하고,
    상기 패킷 송신수단은 상기 전송로를 이용하여 상기 제 2 글로벌 순서 집합 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수신수단은 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 순서 집합 배열을 수신하며, 또한,
    수신한 각각의 제 2 글로벌 순서 집합 배열을 참조하여 자기의 글로벌 순서 집합 배열 중의 값의, 글로벌 정보블록에 있어서의 순위를 결정하고, 그 글로벌 정보블록에 있어서의 순위를 제 3 글로벌 순서 집합 배열에 수용하는 제 2 순서판정수단을 포함하고,
    상기 제 3 글로벌 순서 집합 배열의 값에 의해서 검색조건에 합치되는 레코드의 순위가 규정되는 것을 특징으로 하는 정보처리시스템.
  6. 제2항 내지 제5항 중 어느 한 항에 있어서, 각 메모리 모듈의 제어장치가,
    집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 사이즈의 논리 좌표 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 논리 좌표 배열의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하는 카운트 업 수단을 구비하고,
    상기 패킷 송신수단은, 상기 카운트 업수단에 의한 카운트 업이 된 논리 좌표 배열을, 상기 전송로를 이용하여 패킷화해서 송신하고, 각 메모리 모듈에 있어서 동일한 논리 좌표 배열의 카운트 업 및 상기 전송로를 이용한 송신을 순차적으로 실행함으로써, 상기 논리 좌표 배열에 글로벌한 각 항목의 항목값의 세트마다의 레코드 수가 수용되고, 또한,
    각 메모리 모듈에 있어서, 상기 패킷 수신수단 및 패킷 송신수단은 카운트 업이 종료된 논리 좌표 배열의 수리 및 기억, 및, 상기 전송로를 이용한 송신을 순차적으로 실행하는 것을 특징으로 하는 정보처리시스템.
  7. 제6항에 있어서, 상기 카운트 업 수단은, 집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 다차원의 카운트 업 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 카운트 업 배열 중의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하고, 또한, 카운트 업 배열 중의 위치와의 매핑이 된 논리 좌표 배열 중, 상기 카운트 업 배열 중의 값을 상기 매핑에 따라 배치하도록 구성된 것을 특징으로 하는 정보처리시스템.
  8. 제2항 내지 제7항 중 어느 한 항에 있어서, 각 메모리 모듈의 제어장치가,
    소트해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 존재수 배열을 생성하여, 값 리스트 중의 항목값 각각을 지정하는, 상기 순서 집합 배열의 값의 수를 배치하는 존재수 배열 생성수단;
    상기 존재수 배열 중의 값을 누계하여, 메모리 모듈 내에서 소트되었을 때의 대응하는 항목값을 가지는 레코드의 선두위치를 나타내는 누계수를 산출하고, 그 누계수를 누계수 배열 중에 배치하는 누계수 배열 생성수단; 및
    제 2 글로벌 값 번호 배열, 제 4 글로벌 순서 집합 배열 및 제 3 순서 집합 배열을 생성하여, 순서 집합 배열의 값이 나타내는 항목값에 대응하는 누계수 배열 중의 누계수에 기초하여, 상기 제 2 글로벌 값 번호 배열 중 상기 누계수가 나타내는 위치에 상기 항목값에 대응하는 글로벌 값 번호를 배치하고, 또한, 상기 제 3 순서 집합 배열, 및, 상기 제 4 글로벌 순서 집합 배열 중 상기 누계수가 나타내는 위치에 상기 순서 집합 배열의 값, 및 대응하는 글로벌 순서 집합 배열의 값을 각각 배치하는, 로컬 소트수단을 포함하고,
    상기 패킷 송신수단은, 상기 전송로를 이용하여 적어도 제 2 글로벌 값 번호 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수신수단은, 병렬적으로 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 값 번호 배열을 수신하고, 또한,
    수신한 각각의 제 2 글로벌 값 번호 배열을 참조하여 자기의 제 2 글로벌 값 번호 배열 중의 값의 상기 글로벌 정보블록에 있어서의 순위를, 제 5 글로벌 순서 집합 배열에 수용하는 제 3 순서판정수단을 포함하고,
    상기 제 5 글로벌 순서 집합 배열의 값에 의해서 소트된 레코드의 순위가 규 정되는 것을 특징으로 하는 정보처리시스템.
  9. 제8항에 있어서, 상기 패킷 송신수단은, 제 2 글로벌 값 번호 배열의 값 및 제 4 글로벌 순서 집합 배열의 값을 세트로 함으로써 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 패킷화하여 송신하고, 또한, 상기 패킷 수리수단은, 다른 메모리 모듈의 패킷화된 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 수리하고,
    상기 제 3 순서판정수단은, 자기의 제 2 글로벌 값 번호 배열의 값과 다른 메모리 모듈의 제 2 글로벌 번호 배열의 값이 동일할 때에, 각각의 값의 세트를 이루는 제 4 글로벌 순서 집합 배열의 값을 비교함으로써, 순위를 판정하는 것을 특징으로 하는 정보처리시스템.
  10. 제2항 내지 제9항 중 어느 한 항에 있어서, 상기 메모리 모듈의 제어장치가 상기 배열로서 이용하기 위한 레지스터 군을 갖고, 상기 배열을 이용한 연산은 메모리를 액세스하는 일없이 실행되는 것을 특징으로 하는 정보처리시스템.
  11. 항목과 상기 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각 유지하는 복수의 정보처리유닛, 및
    상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고;
    상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템에 있어서:
    상기 정보처리유닛의 각각에 있어서,
    상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하는 스텝;
    상기 정보처리유닛 각각이, 상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 스텝;
    상기 정보처리유닛 각각이, 상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 스텝; 및
    상기 정보처리유닛 각각이, 상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처리유닛의 전체에서 글로벌 순위를 부여하는 스텝을 포함하는 것을 특징으로 하는 정보처리방법.
  12. 각각, 메모리, 인터페이스, 및 제어장치를 갖는 복수의 메모리 모듈과,
    인접하는 메모리 모듈의 인터페이스 간을 접속하는 패킷 전송로를 구비하고;
    상기 메모리 모듈의 각각의 메모리가,
    각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해, 글로벌 정보 블록이 형성되도록 구성된 정보처리시스템에 있어서:
    각 메모리 모듈에 있어서, 상기 포인터 배열 중 글로벌 정보블록의 부분집합으로서 자기가 장악하는 정보블록이 어느 위치를 점유할지를 나타내는 오프셋 값을 유지하는 오프셋 값 기억스텝;
    상기 오프셋 값에 기초하여, 글로벌 정보블록에 있어서의 글로벌 순서 집합 배열을 생성하는 글로벌 순서 집합 배열 생성스텝;
    인접하는 메모리 모듈의 사이에서, 상기 전송로를 이용하여 자기의 소정 항목의 값 리스트를 패킷화하여 송신하는 패킷 송신스텝;
    상기 패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 값 리스트를 수신하는 패킷 수신스텝; 및
    수신한 각각의 값 리스트를 참조하여 자기의 상기 항목의 값 리스트 중의 항목값의 상기 항목값의 글로벌 정보블록에 있어서의 순위를, 상기 항목에 관한 글로벌 값 번호 배열에 수용하는 순서 판정스텝을 포함하는 것을 특징으로 하는 정보처리방법.
  13. 제12항에 있어서, 상기 순서 판정스텝이, 판정된 각각의 상기 상대적인 순위와 본래의 순위의 차이의 총 합계를 본래의 순위에 더함으로써, 상기 글로벌 정보블록에 있어서의 순위를 산출하는 스텝을 포함하는 것을 특징으로 하는 정보처리방법.
  14. 제12항 또는 제13항에 있어서, 상기 순서 판정스텝에 있어서, 송신한 패킷 및 수리한 패킷을 비교하여 중복되는 값을 삭제하는 것을 특징으로 하는 정보처리방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 각 메모리 모듈에 있어서,
    검색해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 플래그 배열을 생성하고, 검색조건에 합치되는 항목값에 대응하는 플래그 배열 중에 특정의 값을 부여하는 플래그 배열 셋업 스텝;
    상기 검색해야 할 항목에 관해서 순서 집합 배열이 나타내는 위치에 대응하는 포인터 배열 중의 값을 특정하고, 그 후, 포인터 배열 중의 값이 나타내는 위치에 대응하는 플러그 배열 중의 값을 특정함으로써, 상기 순서 집합 배열 중의 값에 대응하는 레코드가 검색조건에 합치되는지의 여부를 판정하는 검색조건 판정스텝;
    검색조건에 합치되는 순서집합의 값, 및, 대응하는 글로벌 순서 집합의 값을, 각각 제 2 순서 집합 배열 및 제 2 글로벌 순서 집합 배열에 수용하는 로컬 검색스텝;
    상기 전송로를 이용하여 상기 제 2 글로벌 순서 집합 배열을 패킷화하여 송신하는 제 2 패킷 송신스텝;
    상기 패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 순서 집합 배열을 수신하는 제 2 패킷 수신스텝; 및
    수신한 각각의 제 2 글로벌 순서 집합 배열을 참조하여 자기의 글로벌 순서 집합 배열 중의 값의 글로벌 정보블록에 있어서의 순위를 결정하고, 그 글로벌 정보블록에 있어서의 순위를 제 3 글로벌 순서 집합 배열에 수용하는 제 2 순서 판정스텝을 포함하고,
    상기 제 3 글로벌 순서 집합 배열의 값에 의해서 검색조건에 합치되는 레코드의 순위가 규정되는 것을 특징으로 하는 정보처리방법.
  16. 제12항 내지 제15항 중 어느 한 항에 있어서, 각 메모리 모듈에 있어서,
    집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 사이즈의 논리 좌표 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 논리 좌표 배열의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하는 카운트 업 스텝; 및
    카운트 업이 된 논리 좌표 배열을, 상기 전송로를 이용하여 패킷화하여 송신하는 제 3 패킷 송신스텝을 포함하고:
    각 메모리 모듈에 있어서, 동일한 논리 좌표 배열에 대한 카운트 업 스텝, 및, 한쪽의 전송로를 이용한 송신 스텝을 순차적으로 실행함으로써, 상기 논리 좌표 배열에 글로벌한 각 항목의 항목값의 세트마다의 레코드 수가 수용되고, 또한,
    각 메모리 모듈에 있어서 카운트 업이 종료된 논리 좌표 배열을 수리 및 기억하는 제 3 패킷 수리 스텝; 및
    수리한 논리 좌표 배열을, 상기 전송로를 이용해서 송신하는 제 4 패킷 송신스텝을 포함하는 것을 특징으로 하는 정보처리방법.
  17. 제16항에 있어서, 상기 카운트 업 스텝에 있어서,
    집계해야 할 항목에 관해서 그 항목의 값 리스트의 사이즈를 곱한 다차원의 카운트 업 배열을 생성하여, 순서 집합 배열 중의 값이 나타내는, 상기 집계해야 할 항목의 포인터 배열 중의 값의 세트에 대응하는, 상기 카운트 업 배열 중의 값을 카운트 업함으로써, 각 항목의 항목값의 세트마다의 레코드 수를 취득하고, 또한, 카운트 업 배열 중의 위치와의 매핑이 된 논리 좌표 배열 중, 상기 카운트 업 배열 중의 값을 상기 매핑에 따라 배치하도록 구성된 것을 특징으로 하는 정보처리방법.
  18. 제12항 내지 제17항 중 어느 한 항에 있어서, 각 메모리 모듈에 있어서,
    소트해야 할 항목에 관해서 그 항목의 값 리스트와 동일한 사이즈의 존재수 배열을 생성하여, 값 리스트 중의 항목값 각각을 지정하는, 상기 순서 집합 배열의 값의 수를 배치하는 존재수 배열 생성스텝;
    상기 존재수 배열 중의 값을 누계하여, 메모리 모듈 내에서 소트되었을 때의 대응하는 항목값을 가지는 레코드의 선두위치를 나타내는 누계수를 산출하고, 그 누계수를 누계수 배열 중에 배치하는 누계수 배열 생성스텝;
    제 2 글로벌 값 번호 배열, 제 4 글로벌 순서 집합 배열 및 제 3 순서 집합 배열을 생성하고, 순서 집합 배열의 값이 나타내는 항목값에 대응하는 누계수 배열 중의 누계수에 기초하여, 상기 제 2 글로벌 값 번호 배열 중 상기 누계수가 나타내는 위치에 상기 항목값에 대응하는 글로벌 값 번호를 배치하고, 또한, 상기 제 3 순서 집합 배열, 및, 상기 제 4 글로벌 순서 집합 배열 중 상기 누계수가 나타내는 위치에, 상기 순서 집합 배열의 값, 및, 대응하는 글로벌 순서 집합 배열의 값을 각각 배치하는, 로컬 소트 스텝;
    상기 전송로를 이용하여 적어도 제 2 글로벌 값 번호 배열을 패킷화하여 송신하는 제 5 패킷 송신스텝;
    패킷 송신과 병렬적으로, 상기 전송로를 이용하여 다른 메모리 모듈의 패킷화된 제 2 글로벌 값 번호 배열을 수신하는 제 4 패킷 수신스텝; 및
    수신한 제 2 글로벌 값 번호 배열을 참조하여 자기의 제 2 글로벌 값 번호 배열 중의 값의 상기 글로벌 정보블록에 있어서의 순위를, 제 5 글로벌 순서 집합 배열에 수용하는 제 3 순서 판정스텝을 포함하고,
    상기 제 5 글로벌 순서 집합 배열의 값에 의해서 소트된 레코드의 순위가 규정되는 것을 특징으로 하는 정보처리방법.
  19. 제18항에 있어서, 상기 제 5 패킷 송신스텝에 있어서, 제 2 글로벌 값 번호 배열의 값 및 제 4 글로벌 순서 집합 배열의 값을 세트로 함으로써, 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 패킷화하여 송신하고,
    상기 제 4 패킷 수리 스텝에 있어서, 다른 메모리 모듈의 패킷화된 상기 제 2 글로벌 값 번호 배열 및 제 4 글로벌 순서 집합 배열을 수리하고,
    상기 제 3 순서 판정스텝에 있어서, 자기의 제 2 글로벌 값 번호 배열의 값과 다른 메모리 모듈의 제 2 글로벌 번호 배열의 값이 동일할 때에, 각각의 값의 세트를 이루는 제 4 글로벌 순서 집합 배열의 값을 비교함으로써, 순위를 판정하는 것을 특징으로 하는 정보처리방법.
  20. 항목과 상기 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하는 로컬 정보블록을 각각 유지하는 복수의 정보처리유닛과,
    상기 복수의 정보처리유닛 간을 접속하는 패킷 전송로를 구비하고,
    상기 로컬 정보블록은, 상기 항목값이 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 저장되어 있는 값 리스트, 및, 상기 항목값 번호를 지시하기 위한 포인터 값이, 상기 레코드에 대응한 일의적인 로컬 순서를 표시하는 번호의 순서로 저장된 포인터 배열로 이루어지는 정보처리시스템에 있어서,
    상기 정보처리유닛의 각각에,
    상기 로컬 정보블록 내의 상기 로컬 순서를 표시하는 번호에 기초하여, 상기 복수의 정보처리유닛의 전체에서 일의적인 글로벌 순서를 표시하는 번호를 생성하 는 기능;
    상기 패킷 전송로를 통해서 상기 값 리스트를 다른 정보처리유닛에 송신하는 기능;
    상기 패킷 전송로를 통해서 상기 다른 정보처리유닛으로부터의 값 리스트를 수신하는 기능; 및
    상기 다른 정보처리유닛으로부터의 상기 값 리스트 중의 항목값을 참조하여, 상기 로컬 정보블록 내의 상기 값 리스트 중의 상기 항목값에, 상기 복수의 정보처리유닛의 전체에서 글로벌 순위를 부여하는 기능을 실현시키기 위한 프로그램.
  21. 각각, 메모리 및 제어장치를 갖는 복수의 정보처리유닛을 구비하고,
    상기 정보처리유닛의 각각의 메모리가,
    각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 유지하고,
    각 메모리 모듈이 유지하는 표형식 데이터의 집합체에 의해, 글로벌 표형식 데이터가 형성되는 정보처리시스템으로서;
    상기 각 정보처리유닛이,
    상기 글로벌 표형식 데이터에 있어서의 각 레코드의 순위를 나타내는 값을 수용하는 글로벌 순서 집합 배열; 및
    제어장치에 의해 수리된 순위를 지정하는 명령에 따라서, 상기 글로벌 순서 집합 배열 중의 값을 특정하고, 그 값이 나타내는 레코드를 취출하는 레코드 취출 수단을 포함하는 것을 구비한 것을 특징으로 하는 정보처리시스템.
  22. 제21항에 있어서, 상기 정보처리유닛이,
    상기 정보처리유닛 내에서의 소트 순서를 반영하기 위해서, 레코드를 특정하는 값이 교체된 다른 순서 집합 배열을 갖고,
    상기 글로벌 순서 집합 배열에 있어서, 다른 순서 집합 배열 중의 값이 나타내는 레코드의, 상기 글로벌 표형식 데이터에 있어서의 소트 순서를 나타내도록, 그 순위를 나타내는 값을 재배치하는 것을 특징으로 하는 정보처리시스템.
  23. 제21항에 있어서, 상기 정보처리유닛이,
    상기 글로벌 순서 집합 배열에 있어서, 상기 정보처리유닛 내에서 소트된 레코드의 상기 글로벌 표형식 데이터에 있어서의 소트 순서를 나타내도록, 그 순위를 나타내는 값을 재배치하는 것을 특징으로 하는 정보처리시스템.
  24. 제21항에 있어서, 상기 정보처리유닛의 각각의 메모리가,
    각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고,
    각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보블록이 형성된 것을 특징으로 하는 정보처리시스템.
  25. 각각, 메모리 및 제어장치를 갖는 복수의 정보처리유닛을 구비하고,
    상기 정보처리유닛의 각각의 메모리가,
    각각이 항목과 그 항목에 속하는 항목값을 포함하는 레코드의 배열로서 표시되는 표형식 데이터를 표현하기 위한, 특정의 항목에 속하는 항목값에 대응한 항목값 번호의 순서로 그 항목값이 저장되어 있는 값 리스트, 및, 일의적인 순서 집합 배열의 순서로 상기 항목값 번호를 지시하기 위한 포인터 값이 저장된 포인터 배열로 이루어지는 정보블록을 유지하고, 각 메모리에 유지된 정보블록의 집합체에 의해 글로벌 정보 블록이 형성되는 정보처리시스템으로서;
    상기 정보처리유닛이,
    글로벌 정보블록에 있어서의 항목값의 순위를 나타내는 값을 수용하는 글로벌 값 번호 배열; 및
    제어장치에 의해 수리된 순위를 지정하는 명령에 따라서, 상기 글로벌 값 번호 배열 중의 값을 특정하고, 그 값이 나타내는, 값 리스트 중의 항목값을 취출하는 항목값 취출수단을 포함하는 것을 특징으로 하는 정보처리시스템.
KR1020057019493A 2003-04-16 2004-04-14 정보처리시스템 및 정보처리방법 KR20060008889A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003111978 2003-04-16
JPJP-P-2003-00111978 2003-04-16

Publications (1)

Publication Number Publication Date
KR20060008889A true KR20060008889A (ko) 2006-01-27

Family

ID=33296013

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057019493A KR20060008889A (ko) 2003-04-16 2004-04-14 정보처리시스템 및 정보처리방법

Country Status (7)

Country Link
US (1) US20060265379A1 (ko)
EP (1) EP1615121A4 (ko)
JP (1) JP4511464B2 (ko)
KR (1) KR20060008889A (ko)
CN (1) CN1791854B (ko)
CA (1) CA2521363A1 (ko)
WO (1) WO2004092948A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8024531B2 (en) 2005-04-18 2011-09-20 Turbo Data Laboratories, Inc. Information processing system and information processing method
US7801903B2 (en) * 2005-05-24 2010-09-21 Turbo Data Laboratories, Inc. Shared-memory multiprocessor system and method for processing information
US8495105B2 (en) * 2009-12-22 2013-07-23 International Business Machines Corporation Consolidating input messages for social activity summarization
GB2500863A (en) * 2012-01-20 2013-10-09 Data Re Ltd A method of indexing a database
CN114166123B (zh) * 2021-12-03 2024-04-30 蚌埠凯盛工程技术有限公司 一种随动式镀膜生产线玻璃基板位置自动追踪方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04113444A (ja) * 1990-09-04 1992-04-14 Oki Electric Ind Co Ltd 双方向リングバス装置
CA2340008C (en) * 1998-08-11 2008-09-23 Shinji Furusho Method and apparatus for retrieving, accumulating, and sorting table-formatted data
JP4425377B2 (ja) * 1999-07-29 2010-03-03 株式会社ターボデータラボラトリー データ処理装置、および、データ処理方法
JP4317296B2 (ja) * 1999-09-17 2009-08-19 株式会社ターボデータラボラトリー 並列コンピュータのアーキテクチャおよびこのアーキテクチャを利用した情報処理ユニット
JP2001147800A (ja) * 1999-11-22 2001-05-29 Taabo Data Laboratory Kk 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法
JP2001291048A (ja) * 2000-04-04 2001-10-19 Taabo Data Laboratory Kk データ集計方法、および、当該データ集計方法にかかるプログラムを記憶した記憶媒体
JP4563558B2 (ja) * 2000-07-31 2010-10-13 株式会社ターボデータラボラトリー データのコンパイル方法、および、コンパイル方法を記憶した記憶媒体
AUPQ982400A0 (en) * 2000-09-01 2000-09-28 Canon Kabushiki Kaisha Entropy encoding and decoding

Also Published As

Publication number Publication date
EP1615121A1 (en) 2006-01-11
CA2521363A1 (en) 2004-10-28
WO2004092948A1 (ja) 2004-10-28
JP4511464B2 (ja) 2010-07-28
CN1791854B (zh) 2010-05-26
US20060265379A1 (en) 2006-11-23
JPWO2004092948A1 (ja) 2006-07-06
CN1791854A (zh) 2006-06-21
EP1615121A4 (en) 2008-10-08

Similar Documents

Publication Publication Date Title
KR100719872B1 (ko) 병렬 컴퓨터 및 이를 이용한 정보처리유닛
US5297255A (en) Parallel computer comprised of processor elements having a local memory and an enhanced data transfer mechanism
JP4511469B2 (ja) 情報処理方法及び情報処理システム
JP2001147800A (ja) 情報処理システム、並びに、この情報処理システムを利用したソート方法、コンパイル方法およびジョイン方法
JP4673299B2 (ja) 情報処理方法及び情報処理システム
JPWO2007020849A1 (ja) 共有メモリ型マルチプロセッサシステム及びその情報処理方法
KR20060008889A (ko) 정보처리시스템 및 정보처리방법
JP4620593B2 (ja) 情報処理システムおよび情報処理方法
JP4559971B2 (ja) 分散メモリ型情報処理システム
JP4772506B2 (ja) 情報処理方法、情報処理システムおよびプログラム
KR101188761B1 (ko) 정보 처리 시스템 및 정보 처리 방법
WO2010013320A1 (ja) 表形式データを操作する方法、分散メモリ型マルチプロセッサ、及び、プログラム
Parhami Architectural tradeoffs in the design of VLSI-based associative memories
JP5208117B2 (ja) 表形式データを操作するマルチコア対応データ処理方法、マルチコア型処理装置、及び、プログラム
CN102194002B (zh) 哈希表的表项添加、删除、查找方法及哈希表存储装置
JPH03217975A (ja) セレクタ割付装置

Legal Events

Date Code Title Description
N231 Notification of change of applicant
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid