KR100190674B1 - 소팅회로 - Google Patents

소팅회로 Download PDF

Info

Publication number
KR100190674B1
KR100190674B1 KR1019890016616A KR890016616A KR100190674B1 KR 100190674 B1 KR100190674 B1 KR 100190674B1 KR 1019890016616 A KR1019890016616 A KR 1019890016616A KR 890016616 A KR890016616 A KR 890016616A KR 100190674 B1 KR100190674 B1 KR 100190674B1
Authority
KR
South Korea
Prior art keywords
data
data number
reference axis
storage area
chain
Prior art date
Application number
KR1019890016616A
Other languages
English (en)
Other versions
KR900008377A (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 KR900008377A publication Critical patent/KR900008377A/ko
Application granted granted Critical
Publication of KR100190674B1 publication Critical patent/KR100190674B1/ko

Links

Images

Classifications

    • 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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99937Sorting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

내용없음

Description

소팅 회로
제1도는 본 발명에 따른 소팅회로의 기본적인 구성을 나타내는 설명도.
제2도는 기본축 데이터 메모리로 부터 각 버퍼 메모리로의 데이터 전송동작을 나타낸 설명도.
제3도, 제4도는 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리에서 체인 버퍼 메모리로의 데이터 전송작업을 나타내는 설명도.
제5도는 본 발명의 소팅회로가 적용된 3차원 화상합성장치의 한예를 나타낸 블록회로도.
제6도 및 제7도는 제5도에 나타낸 폴리곤(polygon)정보발생회로에서 연산되는 폴리곤 정보의 설명도.
제8도는 제5에 나타낸 3차원 화상합성장치에 사용되는 본 발명의 소팅회로의 블록회로도.
제9도는 제5도에 나타낸 회로를 사용하여 표시되는 화상의 3차원 개념도.
제10도는 제5도에 나타낸 폴리곤 정보발생회로의 구체적인 구성을 나타낸 블록회로도.
제11도는 본 발명의 소팅회로의 회로 구성의 한예를 나타내는 블록회로도.
제12도는 제11도에 나타낸 회로의 동작을 나타낸 플로우챠트도.
제13도는 본 발명의 소팅회로의 구체적인 회로구성의 한 예를 나타낸 블록 회로도.
제14도는 제13도에 나타낸 회로의 동작을 나타낸 플로우챠트도.
제15도는 제13도에 나타낸 회로의 시프트 레지스터내에 등록된 플래그의 설명도.
제16도는 제13도에 나타낸 회로에 사용되는 플래그 메모리의 구성을 퍼스트 데이터 번호기억 에리어와 대응시켜서 나타낸 설명도.
제17도는 본 발명의 소팅회로의 구체적인 회로구성의 한예를 나타낸 블록 회로도.
제18도는 제17도에 나타낸 회로의 동작을 나타낸 플로우챠트도.
제19도는 본 발명의 적합한 제3실시예의 설명도.
제20도는 데이터를 오름차순으로 소팅하는 경우 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리에서 체인 버퍼 메모리로 데이터를 전송하는 동작을 나타내는 설명도.
제21도는 본 발명의 적합한 제2실시예의 설명도.
제22도는 본 발명의 적합한 제4실시예의 설명도.
제23도는 본 발명의 적합한 제5실시예의 설명도.
제24도(a), (b)는 제23도에 나타낸 소팅회로의 소팅 동작 한예를 나타낸 설명도.
제25도는 본 발명의 적합한 제6실시예의 설명도이다.
* 도면의 주요부분에 대한 부호의 설명
10 : 기준축 데이터 메모리 12 : 데이터번호 포인터
13 : 데이터번호 카운터 20 : 퍼스트버퍼 메모리
24 : 퍼스트 데이터 번호 기억 에리어
30 : 라스트 버퍼 메모리 34 : 라스트 데이터 번호 기억 에리어
40 : 체인 버퍼 메모리 44 : 체인 데이터 번호기억 에리어
58 : 정보 메모리 80 : 소팅 제어회로
80a : 제1의 제어회로 80b : 제2의 제어회로
80c : 제3의 제어회로 80d : 제4의 제어회로
본 발명은 소팅회로에 관한 것으로, 특히 복수의 기준축 데이터를 소팅하는 회로에 관한 것이다.
화상 합성회로는 위로부터 공급된 화상정보를 기초로 하여 CRT표시용의 각종 화상신호를 합성출력하는 것으로서, 단순히 2차원적인 평면화상 뿐만 아니라 입체적인 3차원 화상도 합성출력할 수 있으므로 예를들어 3차원 화상용 비데오 게임, 비행기 및 각종 차량의 조종 시뮬레이터, 콤퓨터 그래픽스, CAD가 부착된 디스플레이 및 기타의 용도에 널리 사용되고 있다.
그런데 화상 합성회로를 이용하여 입체감이 있는 3차원화상을 리얼타임으로 합성하는 경우에는, 각 표체(標체 : 표시하려는 허상의 물체)의 3차원 데이터를 화상 깊이 방향의 좌표치 즉 Z축 데이터에 의거하여 각 프레임마다 그 속도로 소팅할 필요가 있다.
그래서 복수의 3차원 데이터를 소정의 기준 데이터 즉, Z축 데이터에 의거하여 고속 소팅할 수 있는 회로의 개발이 요망되어지고 있다.
그러나 종래 이러한 소팅은, 각 데이터에 포함된 Z축 데이터중의 서로 인접된 데이터 끼리를 일일이 비교하여 그 때마다 순서 변경작업을 모든 데이터에 대해 행했다.
그렇게 하기 위해서는 메모리간에 있어서 모든 Z축 데이터의 데이터 전송을 여러 회수에 걸쳐 반복해야 한다.
따라서 데이터 소팅작업을 고속도로 행할 수 없다는 문제가 있다.
특히 이러한 종래 기술에 따라서는 비교 대상으로 되는 Z축 데이터의 개수가 많아지면 소팅작업을 하려는 데에 시간과 손질이 너무 많이 필요하다.
따라서 이를 고속도로 소팅하려면 비교적 대형의 콤퓨터를 사용해야 하며, 장치 전체가 복잡해지고 비싸게 된다는 문제가 있다.
본 발명의 목적은 복수의 데이터 소팅을 간단한 구성으로 고속도로 행할 수 있고, 특히 소팅 대상으로 되는 기준축 데이터의 개수가 많은 경우에도 소팅을 고속도로 행할 수 있는 소팅회로를 제공하는데 있다.
전술한 목적을 달성하기 위하여 본 발명은, 입력되는 복수의 기준축 데이터를 소팅하는 회로로서, 입력되는 각 기준축 데이터와 대응한 데이터 번호를 발생하는 데이터 번호 발생 장치와,
상기 기준축 데이터에 의거하여 어드레스가 지정되는 퍼스트 데이터 번호 기억 에리어를 가지고, 각 기억 에리어와 대응하는 기준축 데이터가 처음 입력되었을 때, 이 기억 에리어에 데이터 번호 발생 장치가 발생하는 데이터 번호를 기억하는 퍼스트 버퍼 메모리와,
상기 기준축 데이터에 의거하여 어드레스가 지정되는 라스트 데이터 번호 기억 에리어를 가지고, 각 기억 에리어와 대응하는 기준축 데이터가 입력될때마다 이 기억 에리어에 데이터 번호 발생 장치가 발생하는 데이터번호를 갱신하여 기억하는 라스트 버퍼 메모리와,
데이터번호에 의거하여 어드레스가 지정되는 체인 데이터번호 기억에리어를 가진 체인 버퍼 메모리와,
상기 라스트 버퍼 메모리의 데이터번호가 갱신될때마다, 갱신전 데이터번호에 의해 지정된 체인 데이터번호 기억에리어에 갱신될 새로운 데이터번호를 기입하는 제1제어장치와,
상기 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리에의 데이터 번호 기입 종료후, 라스트 데이터번호 기억에리어에 기억된 데이터번호에 의해 지정되는 체인 데이터번호 기억에리어에, 이 라스트 데이터번호 기억에리어와 소정의 대응관계가 있는 상기 퍼스트 데이터번호 기억에리어에 기억된 데이터번호를 기입함으로써, 체인 데이터번호 기억에리어 안에 기준축 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호를 기입하는 제2제어장치와,
체인 데이터번호 기억에리어 안에 기입된 데이터번호를 소정의 독출 규칙에 따라 독출하고, 입력된 각 기준축 데이터를, 독출된 데이터번호순으로 소팅출력하는 제3제어장치를 포함한 것을 특징으로 하는 것이다.
또한 본 발명은 입력되는 복수의 데이터를 소정의 기준축 데이터에 의거하여 소팅하는 회로로서,
상기 각 데이터의 필요한 부분을 그 데이터 번호순으로 기억하는 정보 메모리와,
상기 각 데이터에 포함되어 있는 기준축 데이터가 입력되는 소팅장치를 포함하여,
상기 소팅장치는,
입력되는 각 기준축 데이터와 대응한 데이터번호를 발생하는 데이터번호 발생장치와,
상기 기준축 데이터에 의거하여 어드레스가 지정되는 퍼스트 데이터번호 기억에리어를 가지고, 각 기억에리어와 대응하는 기준축 데이터가 처음에 입력되었을 때, 이 기억 에리어에 데이터번호 발생장치가 발생하는 데이터번호를 기억하는 퍼스트 버퍼 메모리와,
상기 기준축 데이터에 의거하여 어드레스가 지정되는 라스트 데이터번호 기억에리어를 가지고, 각 기억에리어와 대응하는 기준축 데이터가 입력될때마다 이 기억에리어에 데이터 번호 발생장치가 발생하는 데이터번호를 갱신 기억하는 라스트 버퍼 메모리와,
데이터번호에 의거하여 어드레스가 지정되는 체인 데이터번호 기억에리어를 가진 체인 버퍼 메모리와,
상기 라스트 버퍼 메모리의 데이터번호가 갱신될때 마다, 갱신되기 전에의 데이터번호에 의해 지정되는 체인 데이터번호 기억에리어에, 갱신될 새로운 데이터번호를 기입하는 제1제어장치와,
상기 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리에의 데이터번호 기입 종료후 라스트 데이터번호 기억에리어에 기억된 데이터번호에 의해 지정되는 체인 데이터번호 기억에리어에, 이 라스트 데이터번호 기억에리어와 소정의 대응관계가 있는 상기 퍼스트 데이터번호 기억에리어에 기억된 데이터번호를 기입함으로써, 체인 데이터번호 기억에리어 안에 기준축 데이터가 오름차순으로 또는 내림차순으로 되도록 데이터 번호를 기입하는 제2제어장치와,
체인 데이터번호 기억에리어 안에 기입된 데이터번호를 소정의 독출 규칙에 따라 독출하고, 입력된 각 기준축 데이터번호순으로 소팅출력하는 제3제어장치를 포함하고, 복수의 데이터를 기준측 데이터에 의거하여 소팅출력하는 것을 특징으로 한다.
이와같이 본 발명에 따르면, 소팅 대상으로 되는 기준축 데이터를 그 데이터번호순으로 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리에 입력한다.
그리고 퍼스트 버퍼 메모리는 그 퍼스트 데이터번호 기억에리어에, 대응하는 기준축 데이터가 처음에 입력되었을 때의 데이터번호를 기억한다.
마찬가지로 라스트 버퍼 메모리는 그 라스트 데이터번호 기억에리어에, 대응하는 기준축 데이터가 독출될때 마다, 그 데이터번호를 갱신 기억한다.
따라서 각 라스트 데이터번호 기억에리어에는, 대응하는 기준축 데이터가 최후에 독출되었을 때의 데이터번호가 기억되게 된다.
또한 라스트 데이터번호 기억에리어에 기억되어 있는 데이터번호가 갱신 기억되면, 그 기억에리어에 기억되어 있었던 데이터번호와 새로 기억되는 데이터번호가 체인 버퍼 메모리에 입력된다.
그리고 체인 버퍼 메모리는 라스트 데이터번호 기억에리어의 데이터가 갱신될 때마다 갱신전의 데이터번호에 의해 지정되는 체인 데이터번호 기억에리어에 갱신후의 새로운 데이터번호를 기입한다.
따라서 값이 동일하고 데이터번호만 다른 기준축 데이터가 반복해서 입력된 경우에는, 그 기준축 데이터의 이력(履歷), 즉 그 기준 데이터가 어떤 데이터번호순으로 입력되었는지가 체인 데이터번호 기억에리어에 기입되는 것이다.
이러한 일련의 퍼스트 버퍼 메모리, 라스트 버퍼 메모리 및 체인 버퍼 메모리에의 데이터 기입 종료후, 라스트 데이터번호 기억에리어에 기억되어 있는 데이터번호에 의해 지정되는 체인 데이터번호 기억에리어에, 이 라스트 데이터 번호와, 기억에리어와 소정의대응관계가 있는 퍼스트 데이터번호 기억에리어에 기억된 데이터번호가 순차 기입된다. 이렇게 해서 체인 데이터번호 기억에리어의 각 기억 에리어에는 기준축 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기입되게 된다.
그리고 본 발명에 따른 소팅회로에서는, 체인 데이터번호 기억에리어 안에 기입된 데이터번호를 소정의 독출 규칙에 따라 독출한다.
그리고 입력된 기준축 데이터를, 이렇게 해서 독출된 데이터 번호순으로 출력하도록 독출 제어한다.
이와같이 함으로써 입력된 기준축 데이터가 오름차순 또는 내림차순으로 소팅 출력되게 된다.
또한 청구항(4) 기재의 소팅회로에서는, 이렇게 독출된 데이터 번호순으로 정보 메모리로 부터 데이터가 출력되도록 독출제어한다.
이와같이 함으로써 정보 메모리로 부터는 복수의 데이터가 기준축 데이터에 의거하여 오름차순 또는 내림차순으로 소팅 출력되게 된다.
이상 설명한 바와같이 본 발명에 따르면, 크게 나누어서, 입력되는 기준축 데이터의 퍼스트 버퍼 메모리, 라스트 버퍼 메모리 및 체인 버퍼 메모리에의 데이터 전송과, 퍼스트 버퍼 메모리, 라스트 버퍼 메모리로부터 체인 버퍼 메모리에의 데이터 전송의 2번의 전송 작업만으로 기준축 데이터의 소팅을 행할 수 있다.
그러므로 종래와 같이 서로 인접하는 기준축 데이터를 비교함으로써 기준축 데이터 자체를 차례로 배열 변경한다는 소팅 기술에 비해, 데이터 전송 회수가 대폭 감소될 수 있으므로 고속도로 소팅할 수 있다.
또한 본 발명에 따르면, 기준축 데이터 자체를 사용하여 소팅하는 것이 아니고 기준축 데이터의 데이터번호를 이용하여 기준축 데이터를 간접적으로 소팅하기 때문에 만약 기준축의 자릿수 및 데이터 갯수가 많은 경우에도 간단하게 고속도로 소팅할 수 있다.
다음에 본 발명의 적절한 실시예를 도면을 통해 설명한다.
(제1실시예)
제1도에는 본 발명에 따른 소팅회로의 적절한 실시예를 나타내었다.
실시예의 회로는 데이터 발생회로(8)에서 부터 발생된 기준축 데이터를 소팅출력하는 것으로서, 기준축 데이터 메모리(10)와, 데이터번호 포인터(12), 퍼스트 버퍼 메모리(20)와, 라스트 버퍼 메모리(30)와, 체인 버퍼 메모리(40)와, 이들 각 메모리에 대한 데이터의 기입독출을 제어하는 소팅 제어회로(80)를 포함하고 있다.
(a)기준축 데이터 메모리(10)에의 기입/독출
상기 기준축 데이터 메모리(10)는 데이터번호 포인터(12)로 지정되는 1-N까지의 총N개의 기준축 데이터 기억에리어(14)를 가진다.
여기서 기준축 데이터가 M비트 데이터로 구성되어 있는 경우 각 기준축 데이터 기억에리어(14)는 각각 M비트의 기억용량을 가지게 하도록 형성하면 된다.
그리고 외부로 부터 소팅 대상으로 되는 복수의 기준축 데이터가 입력되면 그 기준축 데이터에는 입력된 순서대로 1-N의 데이터 번호가 붙이게 되며, 데이터번호 포인터(12)로 어드레스가 지정되는 1-N의 기준축 데이터번호 기억에리어(14)에 차례로 기입된다.
이와같이 해서 기준축 데이터 메모리(10)안에 소팅대상으로 되는 기준축 데이터의 기입이 종료되면, 이어서 이 기준축 데이터 메모리(10)에서 부터 기준축 데이터가 1-N의 데이터번호 순으로 차례로 독출되어지고 퍼스트 버퍼메모리(20) 및 라스트 버퍼 메모리(30)로 출력된다.
실시예에 있어서 이 기준축 데이터의 독출은, 데이터번호 포인터(12)에서부터 독출 어드레서로서 데이터 번호가 1-N의 번호순으로 차례로 출력되어 짐에 의해 행해진다.
그리고 데이터번호에 의해 어드레스가 지정되면 지정된 기준축 데이터 기억에리어(14)에서 부터 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)로 기준축 데이터가 독출된다.
(b) 버퍼 메모리(20), (30)에의 기입.
또한 상기 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)는, 기준축 데이터로 될 수 있는 모든 값각 1대1로 대응하는 퍼스트 데이터번호 기억에리어(24), 라스트 데이터번호 기억에리어(34)를 가지고 있다.
실시예와 같이 기준축 데이터가 M비트로 구성되어 있는 경우에는, 0, 1, 2…(2M-1)의 총 2M개의 값으로 될 가능성이 있다.
따라서 상기 퍼스트 버퍼 메모리(20)에는 적어도 0, 1, 2…(2M-1)의 각 어드레스로 지정되는 2M개의 퍼스트 데이터번호 기억에리어(24)가 설치되어 있다.
마찬가지로 상기 라스트 버퍼 메모리(30)에도 적어도 0, 1, 2…(2M-1)의 각 어드레스로 지정되는 2M개의 라스트 데이터번호 기억에리어(34)가 설치되어 있다.
또한 이들 퍼스트 데이터번호 기억에리어(24) 및 라스트 데이터번호 기억에리어(34)에는, 기준축 데이터 메모리(10)에서 부터 출력되는 기준축 데이터의 데이터번호가 기입된다.
본 실시예에 있어서는 데이터 번호는 1-N으로 표시되고, 그 최대치는 N이다.
따라서 상기 각 데이터번호 기억에리어(24)(34)는 각각 {log2N} 비트(단, { }는 소수점 이하를 올림한 정수를 의미하는 기호로 함)의 용량을 갖추도록 형성하면 된다.
그리고 기준축 데이터 메모리(10)로 부터 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)로 기준축 데이터가 입력되면, 이들 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)는 대응하는 어드레스 포인터(22)(32)에 의해 지정되는 데이터번호 기억에리어(24)(34)에 그 기준축 데이터의 데이터번호를 기입한다.
본 실시예에 있어서 이러한 데이터 기입은 소팅 제어회로(80)의 제1제어화로(80a)를 사용해 다음과 같이 행해진다.
즉, 기준축 데이터 메모리(10)에서 부터, 데이터번호포인터(12)에 의해 지정되는 데이터 번호의 기준축 데이터가 출력되면, 그 기준축 데이터는 어드레스 포인터(22)(32)에 세트되고, 이들 어드레스 포인터(22)(32)에서 부터는 세트된 기준축 데이터가 가입 어드레스로서 출력되게 된다.
그리고 기입 어드레스에 의해 지정되는 각 데이터번호 기억에리어(24)(34)에, 데이터번호 포인터(12)에 의해 지정되는 데이터번호(기준축 데이터와 대응하는 데이터번호)가 가입되게 된다.
여기서 퍼스트 데이터번호 기억에리어(24)는 일단 데이터번호가 기억되면, 기준축 데이터 메모리(10)로부터 같은 값으로서 새로운 기준축 데이터가 차례로 출력되더라도 새로운 데이터번호는 재기입(중복기입되므로 먼저 기입되었던 것은 사라짐)되지 않도록 형성되어 있다.
이에 반해서 라스트 데이터번호 기억에리어(34)는 일단 데이터번호가 기억되더라도 그후에 기준축 데이터 메모리(10)에서 부터 값은 값의 기준축 데이터가 출력되면, 그 기준축 데이터의 데이터번호가 새로 갱신 기억되도록 형성되어 있다.
이와같이 퍼스트 데이터번호 기억에리어(24)에는, 이 기준축 데이터의 값이 처음 출현했을 때의 데이터번호가 기억된다.
이에 반해서 라스트 데이터번호 기억에리어(34)에는, 각 기준축 데이터의 값이 최후에 출현했을 때의 데이터 번호가 기억되도록 한 것이다.
이에 따라 퍼스트 데이터번호 기억에리어(24) 및 라스트 데이터번호 기억에리어(34)의 같은 어드레스에는, 기준축 데이터 메모리(10)에서부터 같은 값의 기준치 데이터가 한번만 출력된 경우에는 같은 데이터번호가 기입되지만, 같은 값의 기준축 데이터가 복수회에 걸쳐 출력된 경우에는 최종적으로는 다른 데이터번호가 기억되게 된다.
따라서 라스트 버퍼 메모리(30)의 라스트 데이터번호 기억에리어(34)의 값이 복수회에 걸쳐 갱신 기억된 경우에, 이러한 갱신이 어떻게 행해졌는지를 알 수 있으며, 기준축 데이터를 오름차순 또는 내림차순으로 소팅했을 때의 각 기준축 데이터의 데이터 번호의 나열을 알 수 있다.
그러므로 체인 버퍼 메모리(40)안에는 어드레스 포인터(42)가 출력하는 데이터번호에 의거하여 0-N의 순서로 어드레스가 지정되는 체인 데이터번호 기억에리어(44)가 설치되어 있다.
이들 각 체인 데이터번호 기억에리어(44)도 상기 퍼스트 데이터번호 기억에리어(24) 및 라스트 데이터번호 기억에리어(34)와 마찬가지로, 적어도 {log2N}비트의 기억 용량을 가지도록 형성하면 된다.
그리고 라스트 데이터번호 기억에리어(34)의 내용이 갱신 기억되면, 갱신전의 데이터번호가 어드레스 포인터(42)에 설정되고 체인 데이터번호 기억에리어(44)의 어드레스 지정이 행해진다.
그리고 지정된 체인 데이터번호 기억에리어(44)에는 갱신후의 새로운 데이터번호가 기입된다.
이와같이 해서 라스트 데이터번호 기억에리어(34)가 갱신 기억되면, 그 갱신되었다는 이역은 체인 버퍼 메모리(40)안에 차례로 기입되게 된다.
이상 설명한 바와같이 본 실시예에 따르면, 기준축 데이터 메모리(10)로 부터 데이터번호 순으로 기준축 데이터가 출력되면, 출력된 기준축 데이터를 기입 어드레스로서, 그 데이터번호가 퍼스트 버퍼 메모리(20), 라스트 버퍼 메모리(30)에 기입되고, 이와함께 라스트 버퍼 메모리(30)에서 부터 치인 버퍼 메모리(40)로의 데이터의 전송기입이 행해진다.
이와같은 데이터전송기입이 종료되면, 이어서 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)에서 부터 체인 버퍼 메모리(40)로의 데이터 전송이 개시된다.
(c)버퍼 메모리(40)로의 데이터의 전송기입.
이러한 데이터 전송이 개시되면, 소팅 제어회로(80)의 제2제어회로(80b)는 다음과 같은 전송제어를 행한다.
먼저 라스트 데이터번호 기억에리어(34)에 기억된 데이터번호가 어드레스 포인터(42)에 세트된다.
다음에 이 어드레스 포인터(42)에 의해 어드레스 지정되는 체인 데이터번호 기억에리어(44)에, 그 지정 어드레스와 소정의 대응관계가 있는 퍼스트 데이터번호 기억에리어(24)의 데이터번호를 기입한다.
이러한 데이터번호 기입은 데이터를 오름차순으로 소팅할 경우와 내림차순으로 소팅할 경우와는 약간 틀리지만, 여기서는 데이터를 오름차순으로 소팅할 경우를 예로서 설명한다.
예를들면 어드레스 0로 지정되는 라스트 데이터번호 기억에리어(34)에 데이터번호가 기억되어있을 때에는 우선 어드레스0번지에 기억되어있는 데이터번호가 어드레스포인터(42)에 세트된다.
그리고 다음에 어드레스 1로 지정되는 퍼스트 데이터번호 기억에리어(24)에서 데이터번호가 독출되며, 이 데이터번호가 어드레스포인터(42)로 지정되는 체인 데이터번호 기억에리어(44)에 기입된다.
또 이때 어드레스 1로 지정되는 퍼스트 데이터번호 기억에리어(24)에 데이터번호가 기억되어있지 않은 경우에는 어드레스2로 지정되는 기억에리어(24)로 부터 데이터번호를 독출해 체인데이터번호 기억에리어(44)에 기입된다.
또 어드레스 2로 지정되는 퍼스트 데이터번호 기억에리어(24)에도 데이터번호가 기억되어있지 않은 경우에는 데이터가 발견될때까지 똑같이 어드레스 3, 어드레스 4…등 순차적으로 어드레스 K를 증가시킨다.
그리고 어드레스 K로 지정되는 기억에리어(24)에서 데이터번호가 독출되면 이 데이터번호가 어드레스포인터(42)로 지정되는 체인 데이터번호 기억에리어(44)에 기입된다.
이같은 독출기입이 완료되면 다음에 어드레스 K로 지정되는 라스트 데이터번호 기억에리어(34)에서 데이터번호가 독출되어 이것을 기입 어드레스로써 전회와 똑같이 해서 체인 데이터번호 기억에리어(44)에 데이터의 기입이 이루어진다.
실시예의 장치는 이같은 체인 데이터번호 기억에리어(44)로 데이터의 기입을 반복해서 한다.
그리고 이같은 일련의 기입동작이 종료되면 체인 버퍼 메모리(40)의 체인 데이터번호 기억에리어(44)에는 기준축 데이터가 오름차순으로 되도록 데이터번호가 기억되어진다.
그리고 소팅제어회로(80)의 제3의 제어회로(80c)는 체인 데이터번호 기억에리어(44)내에 기입된 데이터번호를 소정의 독출규칙에 따라 독출한다.
그리고 이렇게 해서 독출된 데이터번호순으로 기준축 데이터메모리(10)에서 기준축 데이터가 출력되도록 독출제어하고 있다.
이렇게 함으로써 기준축 데이터메모리(10)에서는 기준축데이터가 오름차순으로 소팅출력된다.
(구체적인 소팅동작)
다음에 이같은 소팅 회로를 사용해 데이터 발생회로(8)에서 출력되는 7개의 기준축데이터를 오름차순으로 소팅하는 경우와 내림차순으로 소팅하는 경우를 예로들어 설명한다.
(1) 오름차순으로 소팅하는 경우
제2도에는 이같은 소팅회로의 일례가 나타나있다.
본 실시예에서는 7개의 기준축데이터를 소팅대상으로 하므로 기준축데이터메모리(10)는 1-7의 데이터번호로 지정되는 합계 7개의 기준축데이터기억에리어(14)를 갖도록 형성하면 된다.
또 전술한 기준축데이터는 0-3중 어느 하나의 값을 취하도록 2비트 데이터로 구성되게 한다.
이렇게 하면 퍼스트 버퍼메모리(20) 및 라스트 버퍼메모리(30)는 각각 0-3의 기준축 데이터를 어드레스로 하는 4개의 데이터번호 기억에리어(24)(34)를 갖도록 형성하면 된다
(a) 기준축 데이터메모리(10)로의 기입/독출
여기에서 우선 외부의 데이터발생회로98)에서 기준축 데이터 메모리(10)로 기준축 데이터가
2 → 1 → 3 → 3 → 0 → 2 → 3
의 순으로 입력되면 입력된 기준축데이터는 차례로 1, 2, 3…의 데이터 번호를 어드레스로 하는 기억어드레스(14)에 기입된다.
본 발명의 한 특징은 이같이 해서 데이터메모리(10) 내에 기준축 데이터가 기입되면 이 기준축 데이터의 소팅을 기준축데이터 그 자체가 아니고 데이터번호를 사용해 행하는 데에 있다.
이같이함으로써 소팅 대상이 되는 기준축데이터의 자릿수가 많은 경우에도 이 기준축데이터의 소팅을 간단한 회로로 고속으로 행할 수 있다.
본 실시예에서는 이처럼 기준축 데이터 메모리(10)내에 기준축 데이터가 기입되면 이 기준축 데이터메모리(10)에서 그 데이터번호순으로 기준축데이터가 차례로 독출된다.
(b) 버퍼메모리(20)(30)로의 기입
이렇게 해서 기준축데이터가 독출되면 독출된 기준축데이터를 어드레스로 해서 대응하는 데이터번호가 퍼스트 데이터번호 기억에리어(24) 및 라스트 데이터번호 기억에리어(34)에 차례로 기입된다.
따라서 데이터메모리(10)에서 우선 데이터번호「1」로 특정되는 기준축 데이터「2」가 출력되면 이 기준축 데이터「2」를 어드레스로 해서 각 데이터번호 기억에리어(24)(34)에는 데이터번호「1」가 기입된다.
똑같이 해서 기준축데이터메모리(10)에서 데이터번호「2」로 특정되는 기준축 데이터「1」가 출력되면 이 기준축 데이터「1」를 어드레스로 해서 데이터번호 (24)(34)에는 그 데이터번호「2」가 기입된다.
다음에 기준축 데이터메모리(10)에서 똑같이 해서 데이터번호「3」로 특정되는 기준축 데이터「3」가 출력되면 이 기준축 데이터「3」를 어드레스로 해서 데이터번호 기억에리어(24)(34)에는 그 데이터번호「3」가 기입된다.
다음에 데이터번호「4」로 특정되는 기준축 데이터「3」가 출력되면 이 기준축 데이터「3」를 어드레스로 해서 데이터번호 기억에리어「24」「34」에는 데이터번호「4」가 입력된다.
이때 퍼스트 데이터번호 기억에리어(24)에는 이미 데이터번호가 기입되어 있으므로 새로운 데이터번호의 기입은 이루어지지 않는다.
이에 대해 라스트 데이터번호 기억에리어(34)는 앞의 데이터번호「3」를 새로운 데이터번호「4」로 갱신기억한다.
이 때문에 체인 데이터번호 기억에리어(44)에는 갱신전의 데이터번호「3」를 어드레스로 해서 갱신후의 데이터번호「4」가 기입된다.
다음에 기준축 데이터메모리(10)에서 데이터번호「5」로 특정되는 기준축 데이터「0」가 독출되면 이 기준축 데이터「0」를 어드레스로 해서 각 데이터번호 기억에리어(24)(34)에는 데이터번호「5」가 기입된다.
다음에 기준축 데이터메모리(10)에서 데이터번호「6」로 특정되는 기준축 데이터「2」가 출력되면 이 기준축 데이터「2」를 어드레스로 해서 데이터번호 기억에리어(24)(34)에는 데이터번호「6」가 입력된다.
이때 어드레스「2」로 지정되는 퍼스트 데이터번호 기억에리어(24)에는 이미 데이터번호「1」가 기입되어있다.
이때문에 새로이 입력된 데이터번호「6」의 기입은 이루어지지 않는다.
이에대해 어드레스「2」로 지정되는 라스트 데이터번호 기억에리어(34)의 내용은 새로이 입력되는 데이터번호「6」로 갱신기억된다.
이처럼 라스트 데이터번호 기억에리어(34)의 내용이 「1」→「6」으로 갱신되면 갱신전의 데이터번호「1」를 어드레스로 해서 체인 데이터번호 기억에리어(44)에는 갱신뒤의 새로운 데이터번호「6」가 기입된다.
다음에 기준축 데이터메모리(10)에서 데이터번호「7」로 특정되는 최후의 기준축 데이터「3」가 독출되면 이 기준축 데이터「3」를 어드레스로 해서 데이터번호 기억에리어(24)(34)에 데이터번호「7」가 입력된다.
이때 퍼스트 데이터번호 기억에리어(24)에는 이미 데이터번호「3」가 기입되어 있으므로 새로이 입력되는 데이터번호가 기입되는 일은 없다.
이에 대해 라스트 데이터번호 기억에리어(34)의 내용은 새로이 입력되는 데이터번호「7」에 갱신기억된다.
이처럼 라스트 데이터번호 기억에리어(34)의 내용이 「4」→「7」로 갱신되면 갱신전의 데이터번호「4」를 어드레스로 해서 체인 데이터번호 기억에리어(44)에는 갱신후의 새로운 데이터번호「7」가 기억된다.
이같은 일련의 기입작업에 의해 기준축데이터를 어드레스로 하는 퍼스트 데이터번호 기억에리어(24)에는 각 기준축 데이터가 최초로 출현할 때의 데이터번호가 기입되어진다.
또 기준축 데이터를 어드레스로 하는 라스트 데이터번호 기억에리어(34)에는 각 기준축 데이터의 값이 최후로 출현할 때의 데이터번호가 기억되어진다.
그리고 데이터번호를 어드레스로하는 체인 데이터번호 기억에리어(44)에는 라스트 데이터번호 기억에리어(34)의 데이터가 갱신기억될때마다 갱신전의 데이터번호를 어드레스로 해서 갱신후의 데이터번호가 차례로 기입된다.
따라서 기준축 데이터메모리(14)에서 같은 기준축 데이터가 여러회에 걸쳐 출력되면 이 기억에리어(44)에는 그 기준축 데이터가 어떠한 데이터번호 순으로 출력되었는가의 이력이 기억되어진다.
(c) 버퍼메모리(40)로의 데이터 전송가입
이같은 일련의 기입동작이 종료되면 다음에 제3도에서 처럼 퍼스트 버퍼메모리(20) 및 라스트 버퍼메모리(30)에서 체인버퍼메모리(40)로 데이터전송이 개시된다.
이같은 데이터전송이 개시되면 우선 어드레스가 작은쪽에서 순서대로 데이터가 기억되어있는 데이터번호 기억에리어(24)를 찾아낸다.
그리고 그 기억에리어(24)에 기억되어있는 데이터번호를 스타트어드레스로써 독출해서 체인 데이터번호 기억에리어(44)의 어드레스 0번지에 기입한다.
그리고 기억에리어(44)의 어드레스 0번지를 다른용도로 사용하는 경우에는 제3도에서 점선으로 나타내듯이 전술한 스타트어드레스를 예를들면 스타트어드레스 포인터(310)에 세트하도록 형성하면 된다.
본 실시예에 있어서, 어드레스가 작은쪽에서 차례로 데이터가 기억되어있는 데이터번호 기억에리어(24)를 찾아가면 어드레스(0)의 기억에리어(24)내에 데이터번호가 기입되어져 있는 것이 검출된다.
그리고 이 데이터번호 「5」가 제3도에 나타내듯이 어드레스 0으로 지정되는 체인 데이터번호 기억에리어(44)에 기입된다.
그리고 어드레스 「0」의 기억에리어(44)를 다른 용도로 사용하는 경우에는 스타트어드레스포인터(310)에 세트하도록 한다.
다음에 기준축 데이터「0」가 최후로 출현할 때의 데이터번호를 어드레스로 해서 이보다 큰 기준축 데이터「1」가 최초로 출현할 때의 데이터번호를 체인 데이터번호 기억에리어(44)에 기입한다.
이같이 하기위해서는 어드레스「0」로 지정되는 라스트 데이터번호 기억에리어(34)내의 데이터번호「5」를 기입어드레스로 독출한다.
그리고 이 어드레스「5」로 지정되는 체인 데이터번호 기억에리어(44)에 어드레스「1」로 지정되는 퍼스트 데이터번호 기억에리어(24)내의 데이터를 기입하면 된다.
다음에 똑같이 해서 기준축데이터「1」가 최후로 세트하도록 한다.
다음에 기준축 데이터「0」가 최후로 출현할 때의 데이터번호를 어드레스로 해서 이보다 큰 기준축 데이터「1」가 최초로 출현할 때의 데이터번호를 체인 데이터번호 기억에리어(44)에 기입한다.
이같이 하기위해서는 어드레스「0」로 지정되는 라스트 데이터번호 기억에리어(34)내의 데이터번호「5」를 기입어드레스로 독출한다.
그리고 이 어드레스「5」로 지정되는 체인 데이터번호 기억에리어(44)에 어드레스「1」로 지정되는 퍼스트 데이터번호 기억에리어(24)내의 데이터를 기입하면 된다.
다음에 똑같이 해서 기준축데이터「1」가 최후로 출현할때의 데이터번호를 기입어드레스로 해서 이보다 위의 기준축데이터「2」가 처음으로 출현할 때의 데이터번호를 체인 데이터번호 기억에리어(44)에 기입한다.
이같은 기입을 행하기 위해서는「1」로 지정되는 라스트 데이터번호 기억에리어(34)내의 데이터번호「2」를 기입어드레스로 독출한다.
그리고 이 어드레스「2」로 지정되는 체인데이터번호 기억에리어(44)에 어드레스「2」로 지정되는 퍼스트 데이터번호 기억에리어(24)내의 데이터「1」를 기입하면 된다.
똑같이 해서 기준축 데이터「2」가 최후로 출현할 때의 데이터번호「6」를 기입어드레스로 해서 기준축 데이터「3」가 최초로 출현할 때의 데이터번호「3」를 체인 데이터번호 기억에리어(44)에 기입한다.
이같은 일련의 데이터전송작업이 종료되면 체인 데이터번호 기억에리어(44)내에는 기준축 데이터가 오름차순으로 연쇄하도록 데이터번호가 기입되어진다.
(d) 기준축데이터의 소팅출력
이같은 데이터의 전송기입이 종료되면 다음에 체인버퍼메모리(40)에서 소정의 독출규칙에 따라 데이터번호가 기준축 데이터 메모리(10)에 대한 독출어드레스로써 차례로 출력된다.
본 실시예에서는 어드레스 0에 의해 지정되는 체인 데이터번호 기억에리어(44)에 독출개시어드레스가 기억되어 있다.
이때문에 우선 어드레스「0」이 어드레스포인터(42)에 세트된다.
이로써 데이터번호 기억에리어(44)의 어드레스「0」내에 기억되어있는 데이터번호「5」가 독출개시어드레스로써 독출된다.
이같이해서 데이터번호가 데이터번호 기억에리어(44)에서 독출되면 독출된 데이터번호가 다음에 어드레스 포인터(42)에 세트된다.
따라서 어드레서「5」로 지정되는 데이터번호 기억에리어(44)에서 다음의 데이터번호 「2」가 독출되며 독출된 데이터번호가 새로이 어드레스포인터(42)에 세트된다.
이같은 독출규칙에 따라 데이터번호를 차례로 독출하면 체인 데이터번호 기억에리어(44)에서는
5 → 2 → 1 → 6 → 3 → 4 → 7
의 순으로 데이터번호가 차례로 출력된다.
따라서 이렇게 해서 독출된 데이터번호를 기준축데이터메모리(10)에 대한 데이터독출어드레스로 사용하면 기준축 데이터메모리(10)에서는
0 → 1 → 2 → 2 → 3 → 3 → 3
의 순으로 기준축데이터가 차례로 오름차순으로 소팅 출력되어진다.
(II) 내림차순으로 소팅하는 경우
다음에 본 발명의 소팅회로를 사용해 기준축데이터를 내림차순으로 소팅하는 경우를 제2도에서처럼 7개의 기준축 데이터를 내림차순으로 소팅하는 경우를 예로들어 설명한다.
(a) 기준축 데이터메모리(10)로의 기입/독출
이 동작은 기준축 데이터를 오름차순으로 소팅하는 경우와 같은므로 그 설명은 생략한다.
(b) 버퍼메모리(20)(30)로의 기입
이 동작도 데이터를 오름차순으로 소팅하는 경우와 같으므로 여기에서는 그 설명은 생략한다.
(c) 버퍼메모리(40)로의 데이터의 전송기입
기준축 데이터를 오름차순으로 소팅하는 경우와 내림차순으로 소팅하는 경우에서는 버퍼메모리(40)로의 데이터의 전송기입작업의 방법이 약간 다르다.
제20도에는 데이터를 내림차순으로 소팅하는 경우에 있어서, 퍼스트 버퍼메모리(20) 및 라스트 버퍼메모리(30)에서 체인버퍼메모리(40)로의 데이터전송의 일례가 나타나있다.
내림차순으로 소팅을 하는 경우에는 데이터전송 개시와 아울러 우선 어드레스가 큰 쪽에서 순서대로 데이터가 기억되어있는 데이터번호 기억에리어(24)를 찾기시작한다.
그리고 그 기억에리어(24)에 기억되어있는 데이터번호를 스타트어드레스로써 독출해서 체인 데이터번호 기억에리어(44)의 어드레스 0번지에 기입한다.
그리고 기억에리어(44)의 어드레스 0번지를 다른 용도로 사용하는 경우에는 제20도에서 점선으로 나타내듯이 전술한 스타트 어드레스를 예를들면 스타트 어드레스 포인터(310)에 세트하도록 형성하면 된다.
본 실시예에 있어서 어드레스(기준축 데이터)가 큰 쪽에서 차례로 데이터가 기억되어있는 데이터번호 기억에리어(24)를 찾아 나가면 어드레스「3」의 기억에리어(24)내에 데이터번호가 기입되어있는 것이 검출된다.
그리고 이 데이터번호 「3」가 제20도에서처럼 어드레스「0」로 지정되는 체인 데이터번호 기억에리어「44」에 기입된다.
또 어드레스 「0」의 기억에리어(44)를 다른 용도로 사용하는 경우에는 스타트어드레스포인터(310)에 세트되도록 한다.
다음에 기준축 데이터「3」가 최후로 출현할 때의 데이터번호를 어드레스로 해서 이보다 작은 기준축 데이터「2」가 최초로 출현할 때의 데이터번호를 체인 데이터번호 기억에리어(44)에 기입한다.
이같이 하기위해서는 어드레스「3」로 지정되는 라스트 데이터번호 기억에리어(34)내의 데이터번호「7」를 기입어드레스로 독출한다.
그리고 이 어드레스「7」로 지정되는 체인 데이터번호 기억에리어(44)에 어드레스「2」로 지정되는 퍼스트 데이터번호 기억에리어(24)내의 데이터「1」를 기입하면 된다.
다음에 똑같이 해서 기준축데이터「2」가 최후로 출현할 때의 데이터번호를 기입 어드레스로 해서 이보다 아래의 기준축 데이터「1」가 처음으로 출현했을 때의 데이터번호를 체인 데이터번호 기억에리어(44)에 기입한다.
이같은 기입을 하기위해서는 어드레스「2」로 지정되는 라스트 데이터번호 기억에리어(34)내의 데이터번호「6」를 기입어드레스로써 독출한다.
그리고 이 어드레스「6」로 지정되는 체인 데이터번호 기억에리어(44)에 어드레스「1」로 지정되는 퍼스트 데이터번호 기억에리어(24)내의 데이터「2」를 기입하면 된다.
똑같이 해서 기준축데이터「1」가 최후로 출현했을 때의 데이터번호「2」를 기입어드레스로 해서 기준축데이터「0」가 최초로 출현할 때의 데이터번호「5」를 체인 데이터번호 기억에리어(44)에 기입한다.
이같은 일련의 데이터 전송작업이 종료되면 체인데이터번호 기억에리어(44)내에는 기준축데이터가 내림차순으로 연쇄하도록 데이터번호가 기입된다.
(d) 기준축 데이터의 소팅출력
이같은 데이터의 전송기입이 끝나면 다음에 체인버퍼메모리(40)에서 소정의 독출규칙에 따라 데이터번호가 기준축데이터메모리(10)에 대한 독출어드레스로써 차례로 출력된다.
본 실시예에서는 어드레스 「0」에 의해 지정되는 체인 데이터번호 기억에리어(44)에 독출개시어드레스가 기억되어 있다.
이때문에 우선 어드레스「0」가 어드레스포인터(42)에 세트된다.
이에 의해 데이터번호 기억에리어(44)의 어드레스「0」내에 기억되어있는 데이터번호「3」가 독출개시어드레스로써 독출된다.
이같이해서 데이터번호가 데이터번호 기억에리어(44)에서 독출되면 독출된 데이터번호가 다음에 어드레스 포인터(42)에 세트된다.
따라서 어드레서「3」로 지정되는 데이터번호 기억에리어(44)에서 다음의 데이터번호 「4」가 독출되며, 독출된 데이터번호가 새롭게 어드레스포인터(42)에 세트된다.
이같은 독출규칙에 따라 데이터번호를 차례로 독출하면 체인 데이터번호 기억에리어(44)에서는
3 → 4 → 7 → 1 → 6 → 2 → 5
의 순으로 데이터번호가 차례로 출력된다.
따라서 이렇게 해서 독출된 데이터번호를 기준축데이터메모리(10)에 대한 데이터독출어드레스로 사용하면 기준축 데이터메모리(10)에서는
3 → 3 → 3 → 2 → 2 → 1 → 0
의 순으로 기준축데이터가 차례로 오름차순으로 소팅 출력된다.
(Ⅲ)오름차순 및 내림차순의 소팅작업에 대한 정리.
이렇게 해서 본 발명에 따르면 기준축 데이터를 오름차순으로 소팅하는 경우에도 내림차순으로 소팅하는 경우에도 기준축 데이터 그 자체를 사용하는 것이 아니고 기준축 데이터에 대응해서 할당된 데이터번호를 사용해 행함으로써 기준축데이터의 비트수가 많은 경우에도 이에 그다지 영향을 받지않고 소팅작업을 고속으로 간단하게 할 수 있다.
특히 본 발명에 따르면 기준축데이터의 소팅을 종래와 같이 하나의 기준축 데이터를 남은 모든 기준축 데이터와 비교하면서 배열을 바꾸는 작업을 각 기준축 데이터마다 반복해서 행하는 것에 비해 데이터의 전송회수가 대폭적으로 적어지므로 그리고 전송대상이 되는 데이터수량도 대폭적으로 적어지므로 기준축 데이터의 전송작업을 간단한 회로로 매우 간단하게 고속으로 할 수 있다.
그리고 전술한 실시예에서는 0-3의 4개의 기준축 데이터가 전부 존재하는 경우를 예로들어 설명했지만 본 발명은 이에 한정되지 않고 그 중의 하나의 기준축 데이터 예를들면 기준축데이터「1」가 존재하지 않는 경우에도 똑같이 해서 소팅작업을 할 수도 있다.
이경우에는 제4도에서처럼 기준축 데이터메모리(10)에서 퍼스트버퍼메모리(20) 및 라스트버퍼메모리(30)로의 데이터전송이 종료되어도 이들 각 버퍼메모리(20)(30)의 어드레스「1」로 지정되는 데이터번호 기억에리어(24)(34)에는 절대로 데이터번호는 기입되지 않는다.
따라서 예를들면 데이터를 오름차순으로 소팅하는 경우에는 각 버퍼메모리(20)(30)에서 체인버퍼메모리(40)로의 데이터전송작업을 할때에 기준축데이터「0」가 최후로 출력될 때의 데이터번호「5」를 어드레스로써 다음에 그 이상의 기준축데이터 즉 기준축 데이터(2)가 최초로 출현할때의 데이터번호(1)를 체인 데이터번호 기억에리어(44)에 기입하면 된다.
그리고 다음의 데이터기입은 제3도에 나타내는 실시예와 같이 해서 행한다.
(제2실시예)
제21도에는 본 발명에 적절한 제2의 실시예가 도시되어 있다.
전술한 제1실시예에서는 기준축 데이터메모리(10)의 데이터번호포인터(12)가 데이터번호발생장치로 기능하는 경우를 예로들어 설명했다.
본 실시예에서는 그 대신에 데이터번호 발생카운터(13)를 사용해 이 카운터(13)를 데이터번호 발생장치로써 기능시키는 것을 특징으로하는 것이다.
즉 외부의 데이터발생회로(8)에서 소팅대상이 되는 기준축데이터가 차례로 출력되면이 기준축 데이터는 전술한 제1의 실시예와 똑같이 해서 기준축데이터메모리(10)내로 차례로 기입해 기억됨 동시에 데이터번호 카운터(13), 퍼스트 버퍼메모리(20), 라스트 버퍼메모리(30)로 입력된다.
이때 데이터번호 카운터(13)는 기준축데이터가 입력될때마다 대응되는 데이터번호를 발생한다.
실시예에서는 기준축데이터의 입력과 동기해서 0, 1, 2…(2M-1)의 순으로 데이터번호를 출력한다.
그리고 퍼스트 버퍼메모리(20), 라스트 버퍼메모리(30)의 각 기억에리어(24)(34)에는 데이터발생회로(3)에서 출력되는 기준축 데이터를 기입어드레스로 해서 데이터번호 카운터(13)에서 출력되는 데이터번호가 전술한 제1실시예와 똑같이 해서 기입된다.
이때 체인버퍼메모리(40)에도 전술한 제1실시예와 똑같이 해서 데이터의 기입이 이루어진다.
이같은 각 버퍼메모리(20)(30)(40)로의 데이터전송기입이 종료된 시점에서 기준축데이터메모리(10)로의 기준축 데이터의 기입도 종료되고 있다.
그리고 이같은 데이터의 전송기입의 종료후 다음에 전술한 제1의 실시예와 똑같이 해서 퍼스트 버퍼메모리(20) 및 라스트버퍼메모리(30)에서 체인버퍼메모리(40)로의 데이터전송이 이루어진다.
그리고 체인버퍼메모리(40)로의 데이터의 전송기입이 끝나면 이 체인버퍼메모리(40)에는 기준축 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기억되어진다.
따라서 제3의 제어회로(80c)는 체인데이터번호 기억에리어(44)에 기입된 데이터번호를 소정의 독출규칙에 따라 독출한다.
그리고 독출된 데이터번호순으로 기준축데이터메모리(10)에서 기준축 데이터가 출력되도록 독출제어한다.
이에 의해 기준축데이터메모리(10)에서 기준축 데이터가 오름차순 또는 내림차순으로 소팅출력되어진다.
이와같이 본 실시예의 따르면 기준축데이터메모리(10)로의 기준축데이터의 기입과 이 기준축데이터의 소팅작업을 동시에 병행해서 할 수 가 있으므로 전술한 제1의 실시예에 비해 기준축 데이터의 소팅을 보다 고속으로 할 수 있다.
이로써 전술한 제1의 실시예와 똑같이 기준축데이터를 오름차순 또는 내림차순으로 소팅출력할 수 있다.
(제3실시예)
그리고 전술한 제1 및 제2의 실시예에서는 입력된 기준축 데이터를 소팅하는 경우를 예로들어 설명했지만 본 발명은 여기에 한정되지 않고 기준축데이터 및 그 조합정보(기준축데이터 및 쌍을 이루는 정보)로 이루어지는 소팅데이터에 대해서도 똑같이 해서 소팅할 수 있다.
제19도에서는 이같은 조합정보를 포함하는 소팅데이터를 그 기준축데이터를 기초로해서 소팅하는 경우의 적절한 실시예가 나타나 있다.
그리고 본 실시예의 회로는 전술한 제1의 실시예 또는 제2의 실시예의 모든 회로를 사용해도 형성할 수 있지만 여기에서는 전술한 제1의 실시예의 회로를 사용해 형성한 경우를 예로들어 설명한다.
실시예의 소팅회로는 기준축 데이터메모리(10)와 정보메모리(58)를 포함한다.
그리고 이 회로는 데이터발생회로(8)에서 출력되는 소팅데이터에 포함되는 기준축데이터를 기준축데이터메모리(10)에 격납하여 각 기준축데이터와 쌍을 이루는 조합정보를 정보메모리(58)내에 격납하도록 형성되어있다.
여기에서 전술한 기준축데이터메모리(10)는 데이터번호포인터(12)에 의해 지정되는 적어도 1-N까지의 합계인 N개의 기준축데이터기억에리어(14)를 갖는다.
또 전술한 정보메모리(58)도 데이터번호 포인터(12)에 의해 지정되는 적어도 1-N까지의 합계인 N개의 조합정보 기억에리어(58a)를 갖는다.
그리고 외부의 데이터발생회로(8)에서 소팅대상이 되는 복수개의 기준축데이터가 입력되면 그 기준축 데이터에는 그 입력순으로 1-N의 데이터번호가 할당된다.
그리고 소팅데이터에 포함되는 기준축데이터 및 그 조합정보는 데이터번호포인터(12)에 의해 지정되는 1-N의 기준축 데이터기억에리어(14) 및 조합정보 기억에리어(58a)에 차례로 기입된다.
이같이 해서 본 실시예의 소팅회로에 외부에서 소팅데이터가 입력되면 그 소팅데이터에 포함되는 기준축 데이터와 그 조합정보는 데이터번호포인터(12)에 의해 지정되는 각 기억에리어(14)(58a)에 소정의 대응관계로 차례로 기입된다.
이 때문에 기준축 데이터메모리(10)내에 기억되어있는 기준축데이터를 전술한 제1의 실시예와 똑같이 해서 소팅처리하면 체인버퍼메모리(40)의 체인데이터기억에리어(44)에는 이 기준축 데이터가 오름차순 또는 내림차순으로 연쇄하도록 데이터번호가 기억되어진다.
따라서 이같이 체인 데이터번호 기억에리어(44)내에 기억된 데이터번호를 전술한 제1의 실시예와 똑같이 해서 독출하여 독출된 데이터번호순으로 정보메모리(58)에서 조합정보를 독출하면 정보메모리(58)에서는 일련의 조합정보가 기준축 데이터를 기초로 오름차순 또는 내림차순으로 소팅출력되어진다.
이상 설명했듯이 본 실시예에 따르면 소팅 데이터자체의 정보량이 많은 경우에도 기준축데이터메모리(10), 각 버퍼메모리(20)(30)(40)를 사용한 소팅처리가 단 시간에 끝난다.
이때문에 소팅데이터 1단위당의 정보량이 많은 경우라도 이 소팅처리를 단시간에 효율적으로 행할 수 있게된다.
(제4실시예)
제22도에는 본 발명에 적절한 제4의 실시예가 나타나있다.
전술한 제3의 실시예에서는 조합정보를 포함하는 소팅 데이터를 기준축데이터를 기초로 소팅하는 회로를 전술한 제1의 실시예의 회로를 사용해 형성한 경우를 예로들어 설명했다.
본 실시예에서는 이같은 소팅회로를 전술한 제2의 실시예의 회로를 사용해 형성한 것을 특징으로 한다.
그리고 전술한 각 실시예와 대응하는 부재에는 동일 부호를 붙이고, 그 설명은 생략한다.
본 실시예의 소팅회로는 정보메모리(58)와 전술한 제2의 실시예에 나타내는 회로로 구성되어있다.
그리고 기준축데이터메모리(10)는 설치되어 있지 않다.
그리고 외부의 데이터발생회로(8)에서 출력되는 소팅데이터에 포함되는 기준축데이터는 데이터번호 카운터(13), 각 버퍼메모리(20)(30)로 입력되며 각 기준축데이터와 쌍을 이루는 조합정보는 전술한 제3의 실시예와 똑같이 해서 정보 메모리(58)내에 차례로 기억된다.
물론 정보 메모리(58)내에 차례로 기억되는 조합정보 중에는 기준축 데이터가 포함되어 있어도 상관없다.
그리고 기준축데이터가 입력되면 각 버퍼메모리(20)(30)(40), 데이터번호 카운터(13) 및 소팅제어회로(80)는 전술한 제2의 실시예와 똑같이 동작한다.
따라서 체인버퍼메모리(40)의 체인 데이터기억에리어(44)에는 기준축데이터가 오름차순 또는 내림차순으로 연쇄하도록 데이터번호가 기억되어진다.
그리고 제3의 제어회로(80c)는 체인데이터번호기억에리어(44)에 기억된 데이터번호를 전술한 제1의 실시예와 똑같이 해서 독출하며 독출된 데이터번호순으로 정보 메모리(58)에서 조합정보를 독출제어한다.
이로써 정보메모리(58)에서 일련의 조합정보가 기준축 데이터를 기초로 오름차순 또는 내림차순으로 소팅출력되어진다.
(제5의 실시예)
제23도에는 전술한 제1의 실시예의 변형예가 제5의 실시예로써 나타나 있다.
본 실시예의 특징은 기준축 데이터 메모리(10)에 격납되는 기준축데이터의 행수가 많은 경우라도 각 버퍼메모리(20)(30)(40)의 메모리용량을 늘이지 않고 기준축데이터의 고속소팅을 가능하게 하는데 있다.
본 실시예에서 전술한 기준축데이터메모리(100는 데이터번호에 의해 어드레스가 지정되는 기준축데이터기억에리어(14)를 갖는다.
또 체인버퍼메모리(40)가 2조 설치되어 한쪽 메모리(40)에 데이터가 기입되고 있을 때 다른쪽 메모리(40)에서 데이터가 독출되도록 구성되어있다.
그리고 데이터발생회로(8)에서 출력되는 기준축데이터를 그 데이터번호순으로 대응하는 기억에리어(14)로 차례로 기입하여 기억한다.
실시예에서는 3M비트로 구성되는 기준축데이터를 대응하는 기억에리어(14)로 기입하도록 구성되어있다.
이와같이 해서 기준축 데이터메모리(10)내로 기준축데이터의 기입이 완료되면 다음에 이 기준축데이터메모리(10)에서 기준축데이터의 독출이 개시된다.
본 실시예의 특징은 기준축데이터를 구성하는 3M비트데이터를 소정비트마다 여러개의 서치자리로 분할하여 기준축 데이터 메모리(10)로 부터의 기준축 데이터 메모리의 독출을 서치자리 단위로 행하는 데 있다.
본 실시예에서는 기준축 데이터메모리(10)내로 기준축데이터의 기입이 종료되면 기입이 종료되면 우선 이 기준축 데이터 메모리(10)에서 하위 M 비트데이터가 1-N의 데이터번호순으로 차례로 독출되어 퍼스트버퍼메모리(20) 및 라스트버퍼메모리(30)를 향해 출력된다.
이같이 해서 독출된 각 기준축 데이터의 하위 M비트데이터는 전술한 제1의 실시예와 똑같이 소팅처리된다.
이때 2조로 설치된 체인버퍼메모리(40)내의 어느 한쪽의 데이터의 기입이 이루어진다.
따라서 이 체인버퍼메모리(40)의 체인데이터번호 기억에리어(44)에는 기준축 데이터의 하위 M비트 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기입된다.
본 실시예에서 제4의 제어회로(80d)는 한쪽의 체인 버퍼메모리(40)의 체인데이터번호 기억에리어(44)에 기입된 데이터번호를 전술한 제1의 실시예와 같이 소정의 독출규칙에 따라 독출한다.
그리고 독출된 데이터번호순으로 기준축데이터메모리(10)에서 기준축데이터의 중위 M비트 데이터를 각 버퍼메모리(20)(30)를 향해 독출제어한다.
이같이 해서 독출된 기준축 데이터의 중위 M비트 데이트는 똑같이 해서 소팅처리된다.
이때 2조가 설치된 체인버퍼메모리(40)내의 다른쪽에는 데이터의 기입이 이루어진다.
이로써 이 다른쪽의 체인버퍼메모리(40)의 체인 데이터번호 기억에리어(44)에는 기준축 데이터의 중위 M비트데이터가 오름차순 또는 내림차순으로 연쇄하도록 데이터번호가 기입되어진다.
실시예의 제4의 제어회로(80d)는 이같이 해서 다른쪽의 체인데이터번호기억에리어(44)에 기입된 데이터번호를 소정의 독출규칙에 따라 독출한다.
그리고 독출된 데이터번호의 순으로 기준축데이터메모리(10)에서 기준축데이터의 상위 M비트데이터를 차례로 독출해 각 버퍼메모리(20)(30)로 출력한다.
그리고 이렇게 해서 버퍼메모리(20)(30)를 향해 출력된 기준축데이터의 상위 M비트를 똑같이 해서 소팅처리한다.
이때 2조가 설치된 체인버퍼메모리(40)내의 한쪽에 데이터의 기입이 이루어진다.
따라서 이 한쪽의 체인버퍼메모리(40)의 체인 데이터번호 기억에리어(44)에는 기준축데이터의 상위 M비트 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기입되어진다.
이같이 기준축데이터의 소정의 자리를 서치자리(실시예에서는 M비트데이터로 형성되는 자리)로 해서 설정하며 각 서치자리를 기초로 하는 기준축데이터의 소팅처리를 기준축 데이터의 최하위의 서치자리에서 최상위의 서치자리를 향해 서치자리를 시프트하면서 반복해 행한다.
이로써 최상위의 서치자리를 기초로 하는 기준축데이터의 소팅처리를 종료한 단계에서 체인데이터번호 기억에리어(44)에는 기준축데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기입되어진다.
따라서 실시예의 제3의 제어회로(80c)는 최상위의 서치자리를 기초로 하는 기준축 데이터의 소팅처리후, 체인데이터번호 기억에리어(44)내에 기입된 데이터번호를 소정의 독출규칙에 따라 독출한다.
그리고 독출된 데이터번호순으로 기준축데이터메모리(10)에서 기준축데이터를 출력하도록 독출제어한다.
이로써 기준축데이터메모리(10)가 여러 자릿수로 구성되는 경우에도 각 버퍼메모리(20)(30)(40)의 메모리 용량을 증가시키는 일없이 간단한 구성으로 고속의 소팅이 가능해진다.
다음에 기준축데이터를 올림차순으로 소팅하는 경우의 구체적인 동작을 제24도를 기초로 설명한다.
여기에서는 설명을 간단히 하기 위해 3진수로 구성된 기준축데이터를 최하위의 자리에서 한자리씩 소팅하는 경우를 예로들어 설명한다.
우선 기준축 데이터메모리(10)에 제24도 (a)에서 처럼 기준축데이터가 격납된 경우를 상정한다.
이렇게 해서 격납된 기준축데이터에 대해 첫번째의 소팅동작이 개시되면서치자리를 나타내는 변수(m)가 영으로 세트된다.
그리고 기준축데이터메모리(10)에서 m=0인 서치자리의 값이 그 데이터번호순으로 독출되며 독출된 m=0인 서치자리의 기준축데이터가 전술과 같이 소팅처리된다.
이로써 체인 데이터번호 기억에리어(44)에는 기준축데이터의 m=0인 서치자리의 값이 오름차순으로 되도록 그 데이터번호가 기억되어진다.
다음에 이 체인데이터번호 기억에리어(44)내에 기입된 데이터번호를 소정의 독출규칙에 따라 독출하며 독출된 데이터번호순으로 기준축데이터메모리(10)에서 기준축데이터의 m=1인 서치자리를 독출한다.
이때 기준축 데이터메모리(10)에서 독출되는 기준축데이터의 독출순서는 제24도(b)와 같아진다.
동 도면에서 명백해지듯이 기준축 데이터의 m=1인 자리의 값은 m=0의 서치자리의 값에 따라 오름차순으로 소팅되어 돌출되는 것이 이해된다. 그래서 독출된 m=1의 서치자리의 값을 같은 방법으로 소팅처리하면 체인데이터번호 기억에리어(44)에는 기준축 데이터의 m=1의 서치자리의 값이 오름차순으로 연쇄하도록 그 데이터번호가 기억되게 된다.
따라서 체인데이터번호 기억에리어(44)내에 기입된 데이터번호에 입각해서 기준축 데이터 메모리(10)에서 기준축 데이터의 m=2의 서치자리를 독출함에 의해 이 기준축 데이터 메모리(10)에서는 제24도(c)에 나타낸 순서로 기준축 데이터의 m=2의 서치자리의 값이 독출되게된다.
이와같이 소팅 처리를 기준축 데이터의 최하위의 자리로 부터 최상위의 자리를 향해 서치자리를 1행씩 시프트하면서 반복해서 행함으로서 최상위의 서치자리 m=2의 소팅처리를 종료한 시점에서 체인데이터번호 기억에리어(44)에서는 기준축 데이터가 제24도(d)에서 나타낸 것처럼 오름차순으로 되도록 데이터번호가 기입되도록 된다.
따라서 제3의 제어회로(80c)는 최상위의 서치자리 m=2의 소팅처리 종료후 체인데이터번호 기억에리어(44)에 기입된 데이터번호를 소정의 독출순서로 독출하고, 기준축 데이터 메모리(10)에서 기준축 데이터를 독출한다.
따라서 기준축 데이터메모리(10)에서는 기준축 데이터가 제24도 (d)에 나타낸 것처럼 오름차순으로 소팅출력되게 된다.
또 여기서는 기준축 데이터를 오름차순으로 소팅하는 경우를 예를 들어 설명했으나, 각 서치자리의 값을 내림차순으로 소팅처리하는 동작을 반복함으로서 기준축 데이터를 내림차순으로 소팅 출력할 수도 있다.
(제6실시예)
제25도에서는 본 발명의 제6실시예가 나타나 있다.
전술한 제3실시예에서는 조합정보를 포함한 소팅 데이터를 기준축 데이터에 입각해서 소팅하는 회로를 전술한 제1의 실시예의 회로를 이용해서 형성한 경우를 예로들어 설명했다.
본 실시예에서는 이와 같은 소팅회로를 전술한 제5실시예의 회로를 이용해서 형성한 것을 특징으로 한다.
본 실시예의 소팅회로는 정보 메모리(58)와, 전술한 제2실시예에 나타낸 회로로 구성되어있다.
그리고 외부의 데이터발생회로98)에서 출력되는 소팅 데이터에 포함되는 기준축 데이터는 기준축 데이터메모리(10)로 입력되고, 전술한 제5실시예와 같은 방법으로 소팅처리된다.
따라서 체인버퍼메모리(40)의 체인 데이터번호 기억에리어(44)에서는 기준축 데이터가 오름차순 또는 내림차순으로 되도록 데이터번호가 기억되게 된다.
그리고 제3의 제어회로(80e)는 체인 데이터번호 기억에리어(44)에 기억된 데이터번호를 전술한 제5실시예와 같이 해서 독출하고, 독출한 데이터 번호순으로 정보 메모리(58)로 부터 조합정보를 독출제어한다.
이에따라 정보 메모리(58)에서 일련의 조합정보가 기준축 데이터에 입각해서 오름차순 또는 내림차순으로 소팅 출력되게된다.
또한 본 실시예에서는 체인버퍼메모리(40)를 2조 설치한 경우를 예로들어 설명했다.
그러나 이것에 한정되지 않고 예를들면 체인 버퍼메모리(40)에 기입된 데이터번호를 일단 다른 메모리로 전송한 후 해당 메모리에서 데이터번호를 소정의 독출규칙에 따라 독출하고, 독출된 데이터번호순으로 기준축 데이터메모리(10)에서 소정 서치행의 M비트 데이터를 각 버퍼메모리(20)(30)으로 독출하여 제어하도록 구성해도 좋다. 이와같이 함으로서 데이터의 소팅 속도는 저하하나 체인 버퍼메모리(40)는 1조 설치하는 것만으로 좋다.
또 본 출원인은 소화 62년 8월 31일자에서 본원 소팅 회로와는 별도로 새로운 소팅 회로의 출원을 행하고 있다(일본 특원소 62-217044호).
이 선출원에 관한 소팅 회로와 본원 제1실시예의 소팅회로와의 소팅 시간을 단순히 비교하면 다음과 같이 된다.
먼저 소팅 대상으로 되는 기준축 데이터 수가 N개로 각 기준축 데이터의 비트수를 M으로 하면 그 소팅처리시간(RAM의 억세스)은 단순비교로 다음과 같이 된다.
먼저 선출원에 관한 소팅 회로에서는 그 소팅 처리시간은
(4N+2)xM+N+4 싸이클…(1)
로 표시된다.
또 이식의 상세는 선출원에 관한 명세서에 이미 상술되어 있으므로 여기서는 생략한다.
여기서 N=1023개, M=15비트, RAM 억세스를 6.144㎒의 싸이클 스틸로 하면 전 처리시간은
62437싸이클 6.144 ㎒ =10.2 m.sec
로 되어 1필드시간(약 16.5 ㎜ sec)내에 충분하다.
그런데 데이터수가 늘어서 N=2047개, M=15비트로 된 경우에는 이 처리시간은 1249이 싸이클/
6.144 ㎒ = 20.3 m sec
로 되어 버려서 1필드 시간으로는 부족하게 되었다.
이와같이 선출원에 관한 소팅회로에서는 소팅대상으로 되는 데이터의 비트수에 대해서 그 데이터 갯수가 많으면 1필드분의 시간으로는 그 소팅 처리를 행할 수 없다는 불합리가 생긴다.
특히 후술하는 3차원 화상 합성장치에서는 소팅의 대상으로 되는 데이터의 갯수(시스템적으로 말하면 표시 폴리곤수)가 증가의 경향에 있으므로, 보다 고속의 소팅 회로가 필요로 된다.
본 발명의 소팅회로는 이와같은 요청으로 된 것으로 동일 조건에서 단순 계산하면 그 소팅 처리시간은 다음과 같이된다.
먼저 기준축 데이터 메모리(10)는 1회 모든 기준축데이터를 독출하는데 N싸이클을 필요로 한다.
또한 퍼스트 버퍼 메모리(20)는 데이터의 기입에 N싸이클, 체인버퍼 메모리(50)로의 데이터 전송시의 독출에 2N싸이클을 필요로 한다.
라스트 버퍼 메모리(30)는 데이터의 체크를 위해서 독출에 N 싸이클, 데이터의 기입에 같은 N싸이클, 체인버퍼메모리(40)에의 데이터 전송을 위해 2M싸이클을 필요로 한다.
또한 체인 버퍼메모리(40)는 데이터의 기입을 위해 N싸이클을 필요로 한다.
이것이외에 각 버퍼메모리로의 데이터의 기입에 앞서 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)의 내용을 0클리어하기위해서 퍼스트 버퍼메모리(20)의 0클리어에 N싸이클, 라스트 버퍼 메모리(30)의 0클리어에 N 싸이클을 필요로 한다.
따라서 이상을 정리하면 소팅 처리작업 전체에서는
7×N+2×2M싸이클…(2)
의 처리 시간이 필요로 된다.
따라서 소팅의 대상으로 되는 기준축 데이터의 비트구를 M=15라고 가정하고 기준축 데이터의 갯수 N을 변환해서, 그 소팅 처리시간을 전술한 제1식, 제2식에 입각해서 연산하면 선출원에 관한 소팅 처리 시간 및 본 발명에 관한 소팅 회로의 처리시간은 표 1 나타난다.
[표 1]
M=15비트일 때의 싸이클 수
Figure kpo00002
표 1에서 밝혀진 것처럼 소팅의 대상으로 되는 기준축데이터의 갯수가 적은 경우에는 선출원의 소팅회로의 처리시간이 짧으나, 소팅 대상으로 되는 기준축 데이터의 갯수가 증가함에 따라 본 발명의 소팅회로의 처리시간이 대록 짧아짐을 알 수 있다.
따라서 본 발명에 따르면 기준축 데이터의 갯수가 증가함에 따라 그 소팅시간을 대폭 단축한 고속 소팅이 가능하게 된다.
이상 설명한 것처럼 본 발명에 관한 소팅 회로는 대량의 기준축 데이터를 고속으로 소팅할 수 있다.
때문에 기준축 데이터가 각종 정보와 조합되어 데이터량이 많은 소팅 데이터로된 경우에도, 이와같은 데이터량이 많은 각종 소팅 데이터를 그 기준축 데이터에 입각해서 고속으로 소팅 처리가 가능하게되고, 예를들면 데이터베이스의 정보를 날짜등의 기준축 데이터에 입각해서 소팅하는 경우 및 그 밖의 용도에 광범위하게 이용할 수 있다.
제5도에서는 본 발명이 적용된 3차원 화상 합성장치의 적절한 구체예가 나타나 있고, 실시예의 장치는 폴리곤 정보 발생회로(50), 폴리곤정보전송회로(52), 소팅회로(S) 폴리곤표시회로(60)를 포함해서, 입체의 2차원 화상, 즉 유사 3차원 화상을 폴리곤 표시회로(60)의 CAT상에 합성표시하도록 형성되어있다.
본 실시예에서 전술한 폴리곤 정보 발생회로(50)는 3차원의 입체정보를 다루고 이것에 회전, 평행이동, 투시, 투영등의 각종 변환을 행해서 표시해야할 3차원 정보를 2차원 다각형의 조합정보로 변환하고, 각 다각형의 정점의 (X,Y)좌표를 폴리곤 정보로서 연산하고 있다.
또 폴리곤 정보 발생회로(50)는 각 다각형의 안쪽행 방향의 표시지점, 즉 각 다각형 중심의 Z좌표도 폴리곤 정보로서 연산하고, 또 필요에 따라 다각형의 색정보, 휘도정보등을 부수 정보로서 연산한다.
또 본 실시예에 있어서는 설명을 간단히 하기 위해 부수정보로서 색정보가 연산되는 것으로서 뒤에 설명한다.
제6도에서는 이와같이 해서 연산된 다각형의 폴리곤 정보의 한예가 나타나있다.
폴리곤 정보 발생회로(50)가 이와같이 해서 각 다각형의 폴리곤 정보(다각형의 정접위치에 있어서 X,Y좌표, 중심점에 있어서 Z좌표 및 색정보)를 연산하면, 폴리곤 정보 전송회로(52)는 제7도에 나타낸 것처럼 각 다각형의 폴리곤 정보를 Z좌표데이터와, 그것 이와의 데이터로 분리하고, Z좌표 데이터를 기준축 데이터 메모리(10)에 기입하고, 그것 이외의 데이터(조합정보)를 XY RAM(58)에 기입한다
이와같이 해서 폴리곤 정보 발생회로(50)에서 각 다각형의 폴리곤 정보가 연산출력되는 때에 이 폴리곤 정보의 Z좌표는 기준축 데이터 메모리(10)내로 차례로 입력되고 또 Z좌표 이외의 폴리곤 정보는 XY RAM(58)으로 차례로 입력된다.
이때 데이터수 레지스터(54)는 폴리곤 정보 발생회로(50)에서 연산출력되는 다각형의 수를 카운터하여, 각 라스터 주사마다 표시 다각형의 수를 검출한다.
제8도에서는 실시예의 3차원 화상 합성장치에 이용되는 소팅회로(S)가 나타나 있고, 실시예의 소팅회로(S)는 CRT의 한 화면마다 연산되는 복수의 폴리곤 정보를 그 Z좌표값이 작은것부터 차례로 오름차순으로 소팅하여 폴리곤 표시회로(60)로 출력한다.
따라서 제9도에 나타낸 것처럼 CRT의 화면상을 기준점으로 하여 그 안쪽행방향으로 향해 Z좌표가 크게 되도록 XYZ의 3차원 좌표를 설정하면 소팅회로(S)에서는 화면의 앞에 표시되는 다각형, 즉 우선도가 높은 다각형의 폴리곤 정보부터 차례로 소팅 출력되게 된다.
그리고 폴리곤 표시회로(60)는 이와같이 출력되는 각 다각형의 폴리곤 정보를 그 우선도에 따라 화상 합성하여 예를들면 복수의 다각형이 중합표시되는 듯한 경우는 그 우선도가 높은 다각형이 우선적으로 표시되도록 3차원 화상의 합성을 행한다.
제10도에서는 비행기용 조정 시밀레이터 장치에 적용된 폴리곤 정보 발생회로(50)의 구체적인 구성이 나타나 있고, 실시예의 폴리곤 정보 발생회로(50)는 비행중에 있어서의 각종 비행조건의 시뮬레이션 화상을 연산출력한다.
먼저 3차원 연산회로 (50-4)는 비행기를 원점으로 한 이동 좌표계를 상정한다.
그리고 메인 CPU회로(50-2)에서 비행기의 현재위치를 나타내는 이동좌표가 출력되면, 3차원 연산회로(50-4)는 3차원 정보 메모리(50-3)에서 소정의 다면체 데이터의 독출을 행한다.
실시예에 있어서 3차원 정보 메모리(50-3)에 기입된 정보는 고정 좌표계를 이용해서 표시되기 때문에 3차원 연산 회로(50-4)는 3차원 정보 메모리(50-3)에서 독출한 정보를 이동 좌표계의 좌표 데이터로 변환할 필요가 있다.
이 변환에서는 좌표의 회전과 평행 이동이라는 2개의 연산요소의 조합으로 실현할 수 있고, 이 연산과정에서 파일럿트의 시야에 들어오지 않는 것이 판명된 정보(Z0 등)가 제거된다.
변환에 의해 구해진 상황 데이터는 메인 CPU회로(50-2)로 출력된다.
그리고 좌표 변환된 각 다면체 정보는 다음에 표시화면이 Z=0의 평면상에 있는 것으로 해서, Z0의 시점으로 향해 투시투영 변환된다.
이와같은 투시투영 변환에 의해 전술한 각 다면체 데이터는 다면체의 각 정점 좌표를 X, Y의 2차원으로 변환한 점정보의 집약으로 표시된다.
또한 이와같은 투시투영 변환을 행하는데 있어서 시점과 다면체의 각 정점 좌표와의 거리를 구해둔다.
그리고 전술한 투시투영 변환으로 구해진 2차원의 점좌표(다면체의 정점 좌표)를 다면체 표면을 나타내는 각 다각형끼리 분류하여, 분류한 다각형이 파일럿트의 시야 즉 화면의 시야에 들어오는가 어떤가를 체크하여 시야에 전혀 들어오지 않는 다각형은 제거한다.
그후 3차원 연산회로(50-4)는 접수 좌표범위에 들어오는 다각형에 대해 해당 다각형의 중심점에 있어서의 Z좌표의 값을 대표값으로서 결정한다.
이와동시에 3차원 연산회로(50-4)는 접수좌표범위에 들어가는 각다각형 부수 데이터, 실시예에 있어서는 색정보를 연산한다.
그리고 3차원 연산회로(50-4)는 이와같이 해서 구한 각 다각형의 정점의 XY좌표, 그 중심위치의 Z좌표 및 색정보를 폴리곤 정보로서 각 다각형 마다 출력한다.
실시예의 폴리곤 정보발생회로(50)에서 출력되는 각 다각형의 폴리곤 정보는 17워드로 구성되고, 그 중의 1워드가 중심점의 Z좌표, 나머지 16워드가 다각형의 정점의 XY좌표, 색정보등을 나타내기 위해서 이용된다.
또한 전술한 1워드는 16비트로 구성되어있다.
이와같이 해서 실시예의 폴리곤 정보 발생회로(50)는 파일럿트의 시야에 들어오는 상황을 복수의 다각형의 조합 정보로 변환하고, 각 다각형의 폴리곤 정보를 소팅회로(S)로 차례로 출력하게 된다.
여기에 있어서 각 다각형은 그 폴리곤 정보에 포함되는 Z좌표 값이 작은 만큼 화면의 앞에 표시되기 때문에 폴리곤 정보에 포함되는 Z좌표값의 값이 작은 만큼 해당다각형의 우선도가 높게된다.
따라서 이와같이 랜덤하게 출력되는 각 다각형의 폴리곤 정보를 그 Z좌표값이 작은 순으로 소팅하면 폴리곤 표시회로(22)에 의한 3차원 화상의 합성을 간단하고 신속하게 행할 수 있다.
본 발명의 소팅회로는 소정의 기준축 데이터를 포함한 복수의 데이터를, 기준축 데이터에 의거하여 소팅하는 것을 특징으로 하는 것이다.
제8도에서는 본 실시예에 관한 소팅회로(S)의 구체적인 구성이 나타나 있다.
이 소팅회로(S)는 기준축 데이터 메모리(10)와, 정보메모리로서 사용되는 XYRAM(58)을 포함하며, 또한 폴리곤 정보 발생회로(50)에서 출력되는 한화면분의 다각형 폴리곤 정보 중 기준축 데이터로서의 Z축 정보가 XYRAM(58)에 기입된다.
여기에서, 기준축 데이터 메모리(10)는, 퍼스트 버퍼 메모리(20), 라스트 버퍼 메모리(30) 및 체인 버퍼 메모리(40)과 함께 일군의 소팅 RAM(70)으로서 형성되어 있다.
그리고, 소팅제어회로(80)는, 이소팅RAM(70)의 데이터의 기입, 독출을 제어하고, 기준축 데이터가 오름차순으로 되도록 그 데이터번호를 체인 버퍼(40)에 기입한다.
그리고, 이 체인 버퍼(40)에 기입된 데이터를 전술한 소정의 독출 측정에 따라 독출한다.
그후, 독출된 데이터번호 순으로 전술한 XYRAM(58)에서 한화면분의 다각형 폴리곤 정보를 독출한다.
이와같이 하여, 본 실시예의 장치는, 폴리곤 정보 발생회로(50)에서 출력되는 한화면분의 폴리곤 정보를, 그 Z좌표에 의거하여 오름차순으로 소팅하고, 폴리곤 표시회로(60)를 향하여 출력할 수 있다.
이하, 전술한 제3실시예의 소팅회로(제19도에 나타낸 소팅회로)를 예로들어 그 구체적인 회로구성을 상세히 설명한다.
(a) 제1의 제어회로(80a)
제11도에는 제19도에 나타낸 제1의 제어회로(80a)의 구체적인 회로구성이 나타나 있으며, 제12도에는 그 동작을 나타내는 플로우챠트가 나타나 있다.
이 제1의 제어회로(80a)는 기준축 데이터 메모리(10)에 기입된 Z축 데이터를 그 데이터번호순으 로 순차독출한다.
그리고, 독출된 Z축 데이터를 어드레스하여 대응하는 데이터번호를 퍼스트 어드레스 메모리(20), 라스트 버퍼메모리(30)로 기입한다.
이와 동시에 라스트 버퍼 메모리(30)의 데이터번호가 갱신기억되었을때, 갱신전의 데이터번호를 어드레스하여 갱신후의 데이터번호를체인 버퍼 메모리(40)로 기입한다.
본 실시예에서 이 제1의 제어회로(80a)는 데이터번호포인터(12)와, 데이터수 레지스터(54)와, 비교 판정회로(110)와, 스텝(1)제어회로(112)를 포함한다.
여기에서, 데이터번호 포인터(12)는 전술한 것처럼 기준축 데이터 메모리(10)의 기입/독출 어드레스로서 1-N의 데이터번호를 출력하도록 형성되어 있다.
따라서, 기준축 데이터 메모리(10)에서 Z축 데이터를 각 버퍼 메모리(20), (30) 및 (40)로 출력하는 경우에 이 데이터 번호 포인터(12)는 제3도에 나타낸 것처럼 데이터번호를 1, 2, 3…의 순으로 순차적으로 인크리멘트 출력한다.
이에 따라 기준축 데이터 멤모리(10)에서는, 데이터번호순으로 Z축 데이터가 수차 각 버퍼 메모리(20), (30)의 어드레스 입력단자를 향해 출력되는 동시에, 스텝 1제어회로(112)로 출력하게 된다.
이때, 데이터번호 포인터(12)에서 출력되는 데이터번호는 퍼스트 버퍼 메모리(20), 라스트 버퍼 메모리(30) 및 체인 버퍼메모리(40)의 데이터 입력단자(I)로 향해 출력되는 동시에, 비교 판정회로(110)를 향해서도 출력되고 있다.
따라서, 퍼스트 버퍼 메모리(20) 및 라스트 버퍼 메모리(30)내의 각 데이터 번호 기억에리어(24), (34)에는 예를들어 제12도의 플로우 1000으로 나타낸 것처럼, 어드레스 입력단자(A)에 입력되는 기준축 데이터를 기입 어드레스로서 데이터 입력단자(I)에 입력되는 데이터번호가 기입 기억되어지게 된다.
이때 라스트 데인터번호 기억에리어(34)내의 데이터번호가 갱신 기억되면, 갱신전의 데이터는 출력단자 0에서 체인 버퍼 메모리(40)의 어드레스 입력단자(A)로 향해 출력된다.
따라서, 제12도의 플로우 1100에서 나타낸 것처럼 체인 버퍼 메모리(40)의 체인 데이터번호 기억에리어(44)에는 라스트 버퍼 메모리(30)에서 출력되는 갱신전의 데이터번호를 어드레스로서 데이터번호 포인터(12)에서 출력되는 새로운 번호가 기입 기억되어지게 된다.
이와같은 데이터의 전송기입 작업은 데이터번호 포인터(12)에서 새로운 데이터번호가 인크리멘트 출력될때마다 반복하여 실행된다.
그리고, 비교 판정회로(110)는 데이터번호 포인터(12)에서 인크리멘트 출력되는 데이터번호가 데이터수 레지스터(54)에서 출력되는 CRT 1화면부의 폴리곤 정보수와 일치한 싯점에서 스텝 1 제어회로(112)로 전송 제어 종료 신호를 출력한다.
이에 따라, 스텝 1제어회로(112)는 버퍼 메모리(20)(30)및 (40)에 대한 일련의 데이터 기입 작업을 종료한다.
이어서, 소팅회로는 스텝2의 동작으로 전환된다.
그리고, 라스트 버퍼 메모리(30)의 각 데이터번호 기억에리어(34)에 기억된 데이터번호를 기입 어드레스로 하여 소정의 대응관계에 있는 퍼스트 버퍼(20)내의 데이터번호 기억에리어(24) 내의 데이터번호를 체인 버퍼 메모리(40)내의 데이터번호 기억에리어(44)로 기입하는 일련의 동작을 개시한다.
(b) 제2의 제어회로(80a)
제13도에는 이와같은 스텝2의 전송 제어를 하는 제2의 제어회로(80b)의 구체적인 회로 구성이 나타나 있으며, 제14도에는 그 동작을 나타내는 플로우챠트가 나타나 있다.
이 제2의 제어회로(80b)는 스텝2제어회로(210)와 스타트 어드레스 셀렉터(212)와 스타트 어드레스 포인터(214)와, 어드레스 포인터(22) 및 (32)를 포함한다.
그리고 스텝2제어회로(210)는 스텝2의 동작이 개시되면, 제14도에 나타낸 플로우 2000에 따라 각 어드레스 포인트(22)(32)를 「0」리셋트한다.
그리고, 어드레스 포인터(22)가 출력하는 「0」어드레스로 지정되는 퍼스트 데이터 기억에리어(24)에 데이터번호가 기입되는 지의 여부의 판단을 한다.
이때, 이 어드레스 0번지에 데이터번호가 기억되어 있지 않은 경우에는, 어드레스 포인터(22)를 인크리멘트하고, 인크리멘트된 새로운 어드레스로 지정되는 퍼스트 데이터번호 기억에리어(24)에, 데이터신호가 기억되어 있는지의 여부를 판별한다.
이와같은 판별 조작을 데이터번호가 기억된 퍼스트 데이터번호 기억에리어(24)가 검출될때까지 제14도에 나타낸 플로우 2100에 따라 반복하여 실행한다.
그리고, 데이터신호가 기억된 퍼스트 데이터번호 기억에리어(24)가 검출되면 그 때의 데이터번호를 스타트 어드레스로서 스타트 어드레스 포인터(310)로 셋트한다.
따라서, 예를들면 제3도에 나타낸 경우를 예로들면 최소의 기준축 데이터가 기억된 퍼스트 데이터번호 기억에리어(24)(이 경우에는 어드레스 0으로 지정되는 기억에리어(24))에서, 그 기준축 데이터에 대응하는 데이터번호「5」가 독출되고, 스타트 어드레스로서 스타트 어드레스 포인터(310)에 셋트되어지게 된다.
이와같이 하여 스타트 어드레스가 셋트되면 이어서 제14도의 플로우 2200에 따라 라스트 데이터번호 기억에리어(34)에 기억된 데이터번호를 기입 어드레스로하고, 이것과 소정의 대응관계에 있는 퍼스트 데이터번호 기억에리어(24)에 기억된 데이터번호를 체인 데이터번호 기억에리어(44)로 기입된다는 일련의 조작을 반복하여 실행한다.
이에 따라, 예를들면, 제3도에 나타낸 것처럼 체인 데이터번호 기억에리어(44)에는 기준축 데이터(이 경우에는 Z축 데이터)가 오름차순으로 되도록 데이터번호가 기입된다.
이때, 예를 들면 제4도에 나타낸 것처럼 데이터번호 기억에리어(24), (34)내에 데이터번호가 기입되어 있지 않은 기억에리어가 존재하는 경우에는, 제14도에 나타낸 플로우 2300에 따라 퍼스트 데이터번호 기억에리어(24)내에 데이터번호가 기입되어 있는지의 여부를 판별하면서 데이터번호가 기입되어 있는 퍼스트 데이터번호 기억에리어(24)가 검출될 때까지 어드레스 포인터(24)를 인크리멘트한다.
그리고, 데이터번호가 기억된 퍼스트 데이터번호 기억에리어(24)가 검출되는 동시에, 플로우2200에 따라 체인 데이터번호 기억에리어(44)로의 데이터번호 기입을 동일하게 하여 실행한다.
(c) 플래그 메모리(214)
그런데, 수백개 또는 수천개의 단위로 기준축 데이터를 소팅하는 경우에는, 기준축 데이터가 기입되어 있는 퍼스트 데이터번호 기억에리어(24)를 검출하기 위해 어느 정도 정리된 시간을 필요로 한다.
그러나, 3차원 화상장치에서는 일련의 소팅 동작을 1필드시간(1/60초)이내로 종료해야만 하는 것을 생각하면, 전술한 검출시간은 무시할 수 없는 값이 된다.
따라서, 본 실시예에서는 이와 같은 검출시간을 대폭 단축하여 소팅을 보다 고속으로 할 수 있도록 플래그 메모리(214)를 설치하고 있다.
제16도에는 이 플래그 메모리(214)의 구성이 퍼스트 데이터번호 기억에리어(24)와 대응시켜서 나타나 있다.
이 플래그 메모리(214)는 각 퍼스트 데이터번호 기억에리어(24)에 1 : 1로 대응된 복수의 1비트의 플래그 기억에리어(214a)를 가지며, 퍼스트 데이터번호 기억에리어(24)에 데이터가 격납되었을 때에는 대응하는 1비트 플래그 에리어(214a)에 플래그가 셋트되도록 형성되어 있다.
실시예에서 이 플래그 메모리(214)는 8개의 1비트 플래그에리어를 1그룹단위로 하여 플래그 어드레스에 의해 지정되고, 플래그 어드레스에 의해 지정되는 일군의 플래그 에리어에서 플래그 정보를 그룹단위(8비트 데이터)로 출력하도록 형성되어 있다.
따라서, 예를들면 플래그 어드레스 000H를 지정하면, 이 플래그 메모리(214)에서 출력되는 8비트분의 플래그 정보에서 어드레스 000H-0007H로 지정되는 8어드레스분의 퍼스트 데이터번호 기억에리어(24) 내에 데이터번호가 기입되어 있는 기억에리어가 존재하는지의 여부를 한번 판별할 수 있다.
그리고, 이와같은 플래그 메모리(214)를 사용하여 데이터번호가 기입되어 있는 데이터번호 기억에리어(24)를 검출하는 도중에서 데이터번호의 기입을 나타내는 플래그가 검출되면 이때 플래그 어드레스에 따라 지정되는 8비트분의 플래그 정보가 제15도에 나타낸 것처럼 시프트 레지스터(210a)로 기입된다.
그리고, 스텝 2제어회로(21)는 시프트 레지스터(210a)의 내용을 1비트씩 우측으로 시프트해가서, 데이터번호가 기입되어 있는 퍼스트 데이터번호 기억에리어(24)를 검출한다.
이와같이 하여 본 실시예의 스텝2제어회로(210)는 플래그메모리(214)의 플래그 어드레스를 000H에서 순서대로 인크리멘트 하면서 그 플래그 메모리(214)의 내용을 8비트씩 순서대로 독출하여 데이터번호가 기입되어 있는 퍼스트 데이터번호 기억에리어(24)를 고속으로 검출한다.
또한, 이 플래그 메모리(214)로의 플래그의 기입은 제11도에 나타낸 스텝1제어회로(112)에서 실행된다.
즉, 이 스텝1제어회로(112)는, 퍼스트 버퍼 메모리(20)의 퍼스트 데이터번호 기억에리어에 데이터번호를 기입하는 동시에, 플래그 메모리(214)의 대응하는 플래그를 순차셋트해간다.
이와같이 하므로서, 제14도에 나타낸 스텝2의 동작, 즉 각 버퍼 메모리(20) 및 (30)에서 체인 버퍼 메모리(40)로의 데이터 기입 작업을 보다 고속으로 실행할 수 있게 된다.
또한, 이와같은 플래그 메모리(214)를 사용하면 이 플래그 메모리(214)를 영 클리어하므로서 이들 버퍼 메모리(20), (30)를 영 클리어 할 필요는 없어진다.
또한, 본 실시예에서 플래그 어드레스에 따라 지정되는 플래그 메모리(214)의 1그룹 단위를 8비트로 했던것은 메모리의 물리적인 데이터서비스와 확률론적인 견지에서 가장 적합하다고 생각했기 때문이다.
예를들면, 215개의 어드레스에 211개의 데이터가 랜덤에 기입되어 있을때 몇비트 단위로 독출하면 독출시간이 최소가 될까라는 문제를 생각한다.
이때, 각 플래그 어드레스에 의해 지정되는 비트 단위를 16비트, 8비트, 4비트, 2비트로서 계산하면 4비트 단위가 최소로 된다.
그러나, 데이터가 동일한 어드레스에 중복되는 경우도 있으므로, 플래그 어드레스에 의해 지정되는 비트 단위를 4비트와 8비트로 한 경우에 최소치가 오는 것으로 생각되지만, 물리적인 메모리구성에 의해 8비트 단위를 선택한다.
(d) 제3의 제어회로(80c)
또한, 이상 설명한 것처럼, 체인 버퍼 메모리(40)내의 각 데이터번호 기억에리어(44)내에 기준축 데이터가 오름차순이 되도록 데이터번호가 기입되면, 다음에 기입된 데이터번호를 소정의 독출 규정에 따라 독출하고, 독출된 데이터번호 순으로 XYRAM(58)에서 폴리곤 정보를 소팅 출력하는 스텝3의 동작이 개신된다.
제17도에는 이와같은 스텝 3의 동작을 하는 제3의 제어회로(80c)의 구체적인 회로 구성이 설명되어 있으며, 제18도에는 그 동작을 나타내는 플로우챠트가 나타나 있다.
본 실시예에서 전술한 제3의 제어회로(80c)는 스텝3 제어회로(312), 데이터수 카운터(314), 비교 판정회로(316), 어드레스 포인터(42), 스타트 어드레스 포인터(310), 셀렉터(318) 리치(320)를 포함한다.
그리고, 스텝3제어회로(312)는, 스텝3의 동작이 개시되면, 우선 어드레스 포인터(42) 및 데이터수 카운터(314)를 리셋트한다.
이어서, 셀렉터(318)를 스타트 어드레스 포인터(310) 측으로 전환하고, 스타트 어드레스 포인터(310)내에 사전에 셋트되어 있는 데이터번호를 스타트 어드레스로서 셀렉트(318), 래치(320)를 통하여 XYRAM(58)을 향해 출력한다.
이에따라 예를들면 제3도에 나타낸 것처럼 스타트 어드레스로서 데이터번호「5」가 설정되어 있는 경우에는 XYRAM(58)에서는 이 데이터번호「5」에 의해 지정되는 폴리곤정보가 출력되어지게 된다.
또한, 이와같은 독출 동작과 동기하여 데이터수 카운터(314)의 값은 한 인크리멘탈되고, 이것과 동시에 래치(320)에서 출력되는 데이터번호는 다음의 독출 어드레스로서 어드레스 포인터(42)에 셋트된다.
이와같이 하여 최초의 폴리곤 정보가 독출되면 이어서 스텝3제어회로(312)는 셀렉터(318)를 스타트 어드레스 포인터(310)쪽에서 체인 버퍼 메모리(40)쪽으로 전환한다.
그리고, 스텝3제어회로(312)는 제18도에 나타낸 플로우 3000에 따라 XYRAM(58)에서 폴리곤 정보를 Z축 데이터에 의거하여 소팅 출력된다.
즉, 전술한 어드레스 포인터(42)에서 독출 어드레스로서 데이터번호가 출력되면 이 독출 어드레스에 의해 지정되는 체인 데이터 기억에리어(44)에서 셀렉터(318), 래치(320)를 통하여 데이터번호가 독출된다.
그리고, 독출된 데이터번호를 독출 어드레스로서 XYRAM(58)에서 폴리곤 정보가 출력되는 동시에, 데이터번호는 새로운 독출 어드레스로서 어드레스 포인터(42)에 셋트된다.
실시예의 소팅회로는 이와같은 폴리곤 정보의 독출 작업을 반복해서 실행한다.
이때 데이터수 카운터(314)는 XYRAM(58)을 억세스한 횟수 즉 XYRAM(58)에서 소팅 출력되는 폴리곤 정보의 수를 카운트하여 그 카운트치를 비교 판정회로(318)로 출력하고 있다.
그리고, 비교 판정회로(316)는, 이 데이터수 카운터(314)의 값이 데이터수 레지스터(54)에서 사전에 카운트되는 폴리곤 정보수와 일치 되었을때 스텝3제어회로(312)로 종료신호를 출력한다.
이와같이 하여 본 실시예의 소팅회로는 일련의 소팅 작업을 종료한다.
또한, 본 발명은 전술한 실시예에 한정되는 것이 아니라, 본 발명의 요지 범위내에서 각종 변형 실시예가 가능한 것은 두 말할 나위없다.
이상 설명한 것처럼 본 발명에 따르면 다수의 기준축 데이터를 간단한 회로로써, 또한, 고속으로 소팅 출력할 수가 있다.
특히 본 발명에 따르면 기준축 데이터의 비트수에 대하여 기준축 데이터의 갯수가 많은 경우에 그 소팅 작용을 고속으로 할 수 있어서 다수의 데이터를 소팅 대상으로 하는 경우에 매우 유효한 것이 된다.
또한, 본 발명에 따르면 기준축 데이터가 각종의 정보와 결합되어 데이터량이 큰 소팅 데이터를 그 기준측 데이터에 의거하여 고속 소팅할 수 있으므로, 각종 용도에 폭넓게 사용할 수 있다.

Claims (11)

  1. 복수의 데이터와 이것에 1대1로 대응하는 소정의 기준축 데이터가 입력되고, 상기 복수의 데이터를 상기 기준축 데이터에 기초하여 소팅하는 회로에 있어서,
    상기 복수의 데이터를 이 복수의 데이터를 이 복수의 데이터와 상기 기준축 데이터에 공통된 데이터번호에 대응시켜 기억하는 정보 메모리 ; 및
    상기 기준축 데이터가 입력되는 소팅 장치를 포함하며, 상기 소팅 장치는,
    입력되는 각 기준축 데이터에 대응하는 데이터 번호를 발생하는 데이터 번호 발생 장치 ;
    상기 기준축 데이터에 기초하여 어드레스가 지정되는 퍼스트 데이터 번호 기억 영역을 갖고, 각 기억 영역에 대응하는 기준축 데이터가 최초로 입력되었을 때, 이 기억 영역에 데이터 번호 발생 장치가 발생하는 데이터 번호를 기억하는 퍼스트 버퍼 메모리 ;
    상기 기준축 데이터에 기초하여 어드레스가 지정되는 라스트 데이터 번호 기억 영역을 갖고, 각 기억 영역에 대응하는 기준축 데이터가 입력될때마다 이 기억 영역에 데이터 번호 발생 장치가 발생하는 데이터 번호를 갱신 기억하는 라스트 버퍼 메모리 ;
    데이터 번호에 기초하여 어드레스가 지정되는 체인 데이터 번호 기억 영역을 가지는 체인 버퍼 메모리 ;
    상기 라스트 버퍼 메모리의 데이터 번호가 갱신될 때마다 갱신전의 데이터 번호로 지정되는 체인 데이터 번호 기억 영역에 갱신되는 새로운 데이터 번호를 입력하는 제1제어수단 ;
    상기 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리로의 데이터 번호 입력 종료후, 라스트 데이터 번호 기억 영역에 기억된 데이터 번호에 의해 지정되는 체인 데이터 번호 기억 영역에 상기 라스트 데이터 번호 기억 영역과 소정의 대응관계가 있는 상기 퍼스트 데이터 번호 기억 영역에 기억된 데이터 번호를 입력하는 것에 의해, 체인 데이터 번호 기억영역내에 기준축 데이터가 오름차순 또는 내림차순으로 연쇄되도록 데이터 번호를 입력하는 제2제어 수단 ;
    체인 데이터 번호 기억 영역내에 입력된 데이터 번호를 소정의 판독 규칙에 따라 판독하고, 판독된 데이터 번호순으로 상기 정보 메모리로부터 데이터를 판독하는 제3제어수단을 포함하며, 복수의 데이터를 기준축 데이터에 기초하여 소팅 출력하는 것을 특징으로 하는 소팅회로.
  2. 제1항에 있어서,
    상기 데이터 번호 발생 장치는 데이터 번호 포인터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  3. 제1항에 있어서,
    상기 데이터 번호 발생장치는 카운터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  4. 복수행으로 이루어진 복수의 기준축 데이터를 소팅하는 회로에 있어서, 입력되는 각 기준축 데이터에 대응하는 데이터 번호를 발생하는 데이터 번호 발생장치 ;
    상기 각 기준축 데이터를 그 데이터 번호에 대응시켜 기억하는 기준축 데이터 메모리 ;
    상기 기준축 데이터 메모리로부터 출력되는 복수행의 기준축 데이터를 1 내지 복수행으로 이루어진 복수의 서치군으로 분할한 경우에 각 서치군의 값에 기초하여 어드레스가 지정되는 퍼스트 데이터 번호 기억영역을 갖고, 각 기억 영역에 대응하는 각 서치군이 최초로 입력되었을 때, 이 기억 영역에 데이터 번호 발생장치가 발생하는 데이터 번호를 기억하는 퍼스트 버퍼 메모리 ;
    상기 기준축 데이터 메모리로부터 출력되는 상기 각 서치군의 값에 기초하여 어드레스가 지정되는 라스트 데이터번호 기억영역을 갖고, 각 기억 영역에 대응하는 각 서치군이 입력될 때마다 이 기억영역에 데이터 번호 발생장치가 발생하는 데이터 번호로 갱신하는 라스트 버퍼 메모리 ;
    데이터번호에 기초하여 어드레스가 지정되는 체인 데이터 번호 기억 영역을 각각 가지는 2개의 체인 버퍼 메모리 ;
    상기 라스트 버퍼 메모리의 데이터 번호가 갱신될 때마다 갱신전의 데이터 번호로 지정되는 상기 적어도 2개의 체인 버퍼 메모리 중 어느 하나의 상기 체인 데이터 번호 기억 영역에 갱신되는 새로운 데이터 번호를 입력하는 제1제어수단 ;
    상기 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리로의 데이터 번호 입력 종료후, 라스트 데이터 번호 기억 영역에 기억된 데이터 번호로 지정되는 상기 어느 하나의 체인 데이터번호 기억 영역에 상기 라스트 데이터 번호 기억 영역과 소정의 대응관계에 있는 상기 퍼스트 데이터 번호 기억 영역에 기억된 데이터 번호를 입력하는 것에 의해, 상기 어느 하나의 체인 데이터 번호 기억 영역내에 상기 각 서치군의 값이 오름차순 또는 내림차순으로 연쇄되도록 데이터 번호를 입력하는 제2제어 수단 ;
    상기 기준축 데이터의 서치의 대상이 되는 서치군을 하위행에서 상위행을 향해서 변경하고, 새롭게 서치 대상이 된 상기 서치군을 상기 제2제어수단에 의해 체인 데이터 번호 기억 영역에 입력된 순으로 상기 기준축 데이터 메모리로부터 판독하고, 상기 제1제어수단 및 상기 제2제어수단에 의한 처리를 상기 체인 버퍼 메모리를 전환하면서 상기 기준축 데이터의 최상위측에 위치하는 서치군에 도달하기까지 반복하여 실시하는 제4제어수단 ; 및
    최상위측의 데이터군의 소팅처리가 종료된 후, 대응하는 상기 체인 데이터 번호 기억 영역내에 입력된 데이터 번호를 소정의 판독 규칙에 따라 판독하고, 판독한 데이터 번호순으로 기준축 데이터 메모리로부터 각 기준축 데이터를 소팅출력하는 제3제어수단을 포함하는 것을 특징으로 하는 소팅회로.
  5. 복수의 데이터와 이것에 1대1로 대응하는 복수행으로 이루어진 소정의 기준축 데이터를 소팅하는 회로에 있어서,
    상기 복수의 데이터를 이 복수의 데이터와 상기 기준축 데이터에 공통된 데이터번호에 대응시켜 기억하는 정보 메모리 ; 및
    상기 기준축 데이터가 입력되는 소팅 장치를 포함하며, 상기 소팅 장치는, 각 기준축 데이터에 대응하는 데이터 번호를 발생하는 데이터 번호 발생장치 ;
    상기 각 기준축 데이터를 그 데이터 번호에 대응시켜 기억하는 기준축 데이터 메모리 ;
    상기 기준축 데이터 메모리로부터 출력되는 복수행의 기준축 데이터를 1 내지 복수행으로 이루어진 복수의 서치군으로 분할한 경우에 각 서치군의 값에 기초하여 어드레스가 지정되는 퍼스트 데이터 번호 기억영역을 갖고, 각 기억 영역에 대응하는 각 서치군이 최초로 입력되었을 때, 이 기억 영역에 데이터 번호 발생장치가 발생하는 데이터 번호를 기억하는 퍼스트 버퍼 메모리 ;
    상기 기준축 데이터 메모리로부터 출력되는 상기 각 서치군의 값에 기초하여 어드레스가 지정되는 라스트 데이터번호 기억영역을 갖고, 각 기억 영역에 대응하는 각 서치군이 입력될 때마다 이 기억영역에 데이터 번호 발생장치가 발생하는 데이터 번호를 갱신 기억하는 라스트 버퍼 메모리 ;
    데이터번호에 기초하여 어드레스가 지정되는 체인 데이터 번호 기억 영역을 각각 가지는 2개의 체인 버퍼 메모리 ;
    상기 라스트 버퍼 메모리의 데이터 번호가 갱신될 때마다 갱신전의 데이터 번호로 지정되는 상기 적어도 2개의 체인 버퍼 메모리중 어느 하나의 상기 체인 데이터 번호 기억 영역에 갱신되는 새로운 데이터 번호를 입력하는 제1제어수단 ;
    상기 퍼스트 버퍼 메모리 및 라스트 버퍼 메모리로의 데이터 번호 입력 종료후, 라스트 데이터 번호 기억 영역에 기억된 데이터 번호로 지정되는 상기 어느 하나의 체인 데이터번호 기억 영역에 상기 라스트 데이터 번호 기억 영역과 소정의 대응관계에 있는 상기 퍼스트 데이터 번호 기억 영역에 기억된 데이터 번호를 입력하는 것에 의해, 상기 어느 하나의 체인 데이터 번호 기억 영역내에 상기 각 서치군의 값이 오름차순 또는 내림차순으로 연쇄되도록 데이터 번호를 입력하는 제2제어 수단 ;
    상기 기준축 데이터의 서치의 대상이 되는 서치군을 하위행에서 상위행을 향해서 변경하고, 새롭게 서치 대상이 된 상기 서치군을 상기 제2제어수단에 의해 체인 데이터 번호 기억 영역에 입력된 순으로 상기 기준축 데이터 메모리로부터 판독하고, 상기 제1제어수단 및 상기 제2제어수단에 의한 처리를 상기 체인 버퍼 메모리를 전환하면서 상기 기준축 데이터의 최상위측에 위치하는 서치군에 도달하기까지 반복하여 실시하는 제4제어수단 ; 및
    최상위측의 데이터군의 소팅처리가 종료된 후, 대응하는 상기 체인 데이터 번호 기억 영역내에 입력된 데이터 번호를 소정의 판독 규칙에 따라 판독하고, 판독한 데이터 번호순으로 상기 정보 메모리로부터 데이터를 판독하는 제3제어 수단을 포함하며, 복수의 데이터를 기준축 데이터에 기초하여 소팅 출력하는 것을 특징으로 하는 소팅회로.
  6. 제1항에 있어서,
    상기 정보 메모리에는(X, Y, Z)로 이루어진 복수의 삼차원 정보중, 적어도 그 (X, Y, Z)의 이차원 정보가 데이터 번호순으로 기억되고,
    상기 소팅 장치에는 상기 3차원 정보에 포함되는 Z축 데이터가 기준축 데이터로서 입력되며,
    상기 정보 메모리에 포함되는 3차원 정보를 그 Z축 데이터에 기초하여 오름차순 또는 내림차순으로 소팅출력하는 것을 특징으로 하는 소팅회로.
  7. 제4항에 있어서,
    상기 데이터 번호 발생장치는 데이터 번호 포인터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  8. 제4항에 있어서,
    상기 데이터 번호 발생장치는 카운터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  9. 제5항에 있어서,
    상기 데이터 번호 발생장치는 데이터 번호 포인터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  10. 제5항에 있어서,
    상기 데이터 번호 발생장치는 카운터를 이용하여 형성되어 있는 것을 특징으로 하는 소팅회로.
  11. 제5항에 있어서,
    상기 정보 메모리에는(X, Y, Z)로 이루어진 복수의 삼차원 정보중, 적어도 그 (X, Y, Z)의 이차원 정보가 데이터 번호순으로 기억되고,
    상기 소팅 장치에는 상기 3차원 정보에 포함되는 Z축 데이터가 기준축 데이터로서 입력되며,
    상기 정보 메모리에 포함되는 3차원 정보를 그 Z축 데이터에 기초하여 오름차순 또는 내림차순으로 소팅출력하는 것을 특징으로 하는 소팅회로.
KR1019890016616A 1988-11-16 1989-11-16 소팅회로 KR100190674B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP88-289672 1988-11-16
JP28967288 1988-11-16

Publications (2)

Publication Number Publication Date
KR900008377A KR900008377A (ko) 1990-06-04
KR100190674B1 true KR100190674B1 (ko) 1999-06-01

Family

ID=17746254

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890016616A KR100190674B1 (ko) 1988-11-16 1989-11-16 소팅회로

Country Status (3)

Country Link
US (1) US5179717A (ko)
EP (1) EP0369415A3 (ko)
KR (1) KR100190674B1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5465371A (en) * 1991-01-29 1995-11-07 Ricoh Company Ltd. Sorter for sorting data based on a plurality of reference value data
JP3152466B2 (ja) * 1991-04-04 2001-04-03 三菱電機株式会社 ソーティング装置およびソーティング方法
US5355478A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for avoiding cache misses during external tournament tree replacement sorting procedures
GB9207184D0 (en) * 1992-04-01 1992-05-13 Questech Ltd Improvements in high speed sorting
US5704057A (en) * 1992-10-01 1997-12-30 The United States Of America As Represented By The Secretary Of The Navy Real-time data sorter
JP3448816B2 (ja) * 1992-12-25 2003-09-22 株式会社リコー ソーティング装置
JP2807608B2 (ja) * 1992-12-29 1998-10-08 株式会社ナムコ ソーティング処理装置、これを用いた画像合成装置及びソーティング処理方法
TW207013B (en) * 1993-02-19 1993-06-01 Nat Science Committee Architecture of optimal high-speed sorter
US5878410A (en) * 1996-09-13 1999-03-02 Microsoft Corporation File system sort order indexes
CN110703982B (zh) * 2018-07-10 2023-02-10 合一智芯科技(北京)有限公司 一种结构体排序方法、排序装置及排序器
US10901692B2 (en) 2018-07-12 2021-01-26 Texas Instruments Incorporated Bitonic sorting accelerator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2459512A1 (fr) * 1979-06-19 1981-01-09 Vidalin Jacques Procede pour la commande de rapprochement a effectuer entre des entites logiques de reference et des entites logiques issues d'un fichier
NL8006163A (nl) * 1980-11-12 1982-06-01 Philips Nv Inrichting voor het sorteren van datawoorden volgens de waarden van telkens daarbij behorende attribuutgetallen.
NL8203844A (nl) * 1982-10-04 1984-05-01 Philips Nv Geintegreerde, als bouwsteen uitgevoerde sorteerinrichting voor datawoorden en geintegreerde, dataverwerkende, processor voorzien van zo een meegeintegreerde sorteerinrichting.
US4679139A (en) * 1984-05-01 1987-07-07 Canevari Timber Co., Inc. Method and system for determination of data record order based on keyfield values
US4991134A (en) * 1988-03-30 1991-02-05 International Business Machines Corporation Concurrent sorting apparatus and method using FIFO stacks

Also Published As

Publication number Publication date
EP0369415A2 (en) 1990-05-23
KR900008377A (ko) 1990-06-04
EP0369415A3 (en) 1991-12-27
US5179717A (en) 1993-01-12

Similar Documents

Publication Publication Date Title
US5461712A (en) Quadrant-based two-dimensional memory manager
EP0356103B1 (en) Scan-conversion process and processor
US4829295A (en) Image synthesizer
EP0152741B1 (en) High-speed image generation of complex solid objects using octree encoding
US6333747B1 (en) Image synthesizing system with texture mapping
US5448690A (en) Image processing system enabling real-time output of image signal based on polygon image information
KR100190674B1 (ko) 소팅회로
JP3344666B2 (ja) 画像処理装置
US5739826A (en) Polygon display based on x coordinates of edges on scan line
JP3448816B2 (ja) ソーティング装置
US5465371A (en) Sorter for sorting data based on a plurality of reference value data
JPH1091801A (ja) テクスチャーマップパッキング
EP0590933B1 (en) Sorting processor
JPH0546592B2 (ko)
US6271850B1 (en) Image generation apparatus, image generation method, image generation program recording medium, image composition apparatus, image composition method, and image composition program recording medium
WO1999022519A2 (en) Compressing and decompressing an image
EP0324307B1 (en) Method for enhancing three-dimensional interference checking
EP0327001A2 (en) Pattern data generating system
KR920003702B1 (ko) 3차원 2치 화상의 체적 및 중심을 구하는데 적합한 화상 처리 장치 및 방법
CN113313805B (zh) 一种三维场景数据存储方法、装置、设备及存储介质
US5315540A (en) Method and hardware for dividing binary signal by non-binary integer number
JPH0782425B2 (ja) ソーティング回路
JP2667944B2 (ja) 疑似3次元画像合成装置及び画像合成方法
JP3210053B2 (ja) ソーティング装置
JPH09259299A (ja) ポリゴンデータのソート方法及び、これを用いたポリゴンデータのソートシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20041216

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee