KR20100006821A - Method and apparatus for searching object in multi-core processing environment - Google Patents

Method and apparatus for searching object in multi-core processing environment Download PDF

Info

Publication number
KR20100006821A
KR20100006821A KR1020080066954A KR20080066954A KR20100006821A KR 20100006821 A KR20100006821 A KR 20100006821A KR 1020080066954 A KR1020080066954 A KR 1020080066954A KR 20080066954 A KR20080066954 A KR 20080066954A KR 20100006821 A KR20100006821 A KR 20100006821A
Authority
KR
South Korea
Prior art keywords
search
core processors
execution
processor
block
Prior art date
Application number
KR1020080066954A
Other languages
Korean (ko)
Other versions
KR100949746B1 (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 삼성중공업 주식회사
Priority to KR1020080066954A priority Critical patent/KR100949746B1/en
Publication of KR20100006821A publication Critical patent/KR20100006821A/en
Application granted granted Critical
Publication of KR100949746B1 publication Critical patent/KR100949746B1/en

Links

Images

Classifications

    • 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/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)

Abstract

PURPOSE: A method and an apparatus for searching an object in a multi-core processing environment are provided to improve the performance of a 2D graphic programming which requires lots of calculation in a multi-processing environment. CONSTITUTION: A processor management block(106) selects at least two core processors among core processors as execution core processor. The processor management block transfers a partition search execution command signal to the selected execution core processors, and a processor block(108) performs a division search processing operation for a search-target object in the execution core processors. A mergence block(112) merges the partition search execution results transferred from the execution core processors.

Description

멀티코어 프로세싱 환경에서의 객체 검색 방법 및 장치{METHOD AND APPARATUS FOR SEARCHING OBJECT IN MULTI-CORE PROCESSING ENVIRONMENT}Object search method and apparatus in multi-core processing environment {METHOD AND APPARATUS FOR SEARCHING OBJECT IN MULTI-CORE PROCESSING ENVIRONMENT}

본 발명은 멀티코어 프로세싱(multi-core processing) 환경에서의 데이터 처리 기술에 관한 것으로, 특히 2D 프로그래밍 환경에서 다양한 객체들을 검색하는데 적합한 멀티코어 프로세싱 환경에서의 객체 검색 방법 및 장치에 관한 것이다.The present invention relates to a data processing technique in a multi-core processing environment, and more particularly, to a method and apparatus for searching for an object in a multi-core processing environment suitable for searching for various objects in a 2D programming environment.

최근 들어, 첨단 컴퓨터 애플리케이션(application)들이 더욱 복잡해지고, 프로세싱 시스템들에 대한 요구들이 증가함에 따라, 더 빠른 컴퓨터 프로세싱 데이터 처리율(computer processing data throughput)에 대한 요구도 커지고 있다.Recently, as advanced computer applications become more complex and the demands on processing systems increase, the demand for faster computer processing data throughput also increases.

특히, 그래픽 애플리케이션들은, 바람직한 시각 효과들을 성취하기 위해 상대적으로 짧은 기간동안 막대한 횟수들의 데이터 접근들, 데이터 연산들, 및 데이터 조작들을 필요로 하기 때문에, 프로세싱 시스템에 대한 요구량이 가장 많은 애플리케이션들에 속한다. 실시간 멀티미디어 애플리케이션들은 프로세싱 시스템들에 대한 요구량이 높고, 실제로 초당 수천 메가비트(megabit)의 빠른 처리 속도를 필요로 한다.In particular, graphics applications are among the most demanding applications for the processing system because they require a huge number of data accesses, data operations, and data manipulations over a relatively short period of time to achieve desirable visual effects. . Real-time multimedia applications have high demands on processing systems and in fact require fast processing speeds of thousands of megabits per second.

멀티코어 프로세서(multi-core processor)는 이와 같은 빠른 처리 속도에 최대한 부응하기 위해 개발된 것으로, 2개 이상의 코어를 집적하여 단일 코어의 동작 주파수 한계를 극복하고 있다.Multi-core processors have been developed to meet these high processing speeds to the fullest and overcome the operating frequency limitations of a single core by integrating two or more cores.

현재의 컴퓨팅 환경이 멀티코어 프로세싱 환경으로 보편화되었기에, 멀티코어 프로세싱이 가능한 환경을 활용하여 계산량이 많은 프로그래밍 환경, 예컨대 2D 그래픽 프로그래밍 환경에서 성능 향상을 꾀할 수 있다.Since today's computing environment has become a common multicore processing environment, the multicore processing environment can be utilized to improve performance in computational programming environments such as 2D graphics programming environments.

2D 다이어그램(diagram)을 다루는 프로그램, 예컨대 파워포인트(power-point), 비지오(visio) 등은 다양한 그래픽 객체, 예를 들면 원, 다각형, 자유곡선 등을 관리 및 변형한다. 사용자가 이러한 객체를 조작할 때 가장 많이 사용하는 동작이, 특정 객체를 선택하거나 변형했을 때 검색하는 기능이다. 이를 위해 공간분할(octree 등) 기법, 충돌체크(bounding box) 기법 등의 다양한 알고리즘이 개발되어 왔다.Programs that handle 2D diagrams, such as powerpoints and vios, manage and transform various graphical objects, such as circles, polygons, splines, and the like. The most commonly used behavior when a user manipulates such an object is to search when a specific object is selected or modified. To this end, various algorithms have been developed, such as spatial partitioning (octree, etc.), collision checking (bounding box).

이때, 멀티코어 프로세서의 동작 단위는 쓰레드(thread)이며, 멀티코어 프로세서는 자동으로 연산량이 적은 코어에 매 쓰레드를 배치하여 실행한다. 이처럼 멀티코어 프로세서를 이용하여 데이터를 처리하게 되면, 멀티코어 프로세서 내의 각 코어 중에서 연산량이 가장 적은 코어에 쓰레드를 배치하게 된다.At this time, the operation unit of the multicore processor is a thread, and the multicore processor automatically executes each thread in a core having a small amount of computation. When data is processed using a multicore processor, threads are placed in the core with the least amount of computation among the cores in the multicore processor.

2개의 코어를 사용한 듀얼코어(dual-core) 프로세서나 4개의 코어를 사용한 쿼드코어(quad-core) 프로세서에서 기존의 데이터 처리 기법을 사용하여 그래픽 객체를 검색하게 되면, 1개의 코어에 집중적으로 연산량이 가중(1개의 코어에서 다수의 객체들을 순차 검색) 될 수 있으며 나머지 1개 또는 3개의 코어는 상대적으로 낮은 연산량이 부과되어 각 코어의 연산량이 불균일하게 유지될 수 있다.When searching for graphic objects using conventional data processing techniques on a dual-core processor using two cores or a quad-core processor using four cores, the amount of computation is concentrated on one core. This weighting (sequential search of multiple objects on one core) can be done and the remaining one or three cores can be charged with relatively low computations, resulting in uneven computation of each core.

종래의 2D 그래픽 객체 검색 기법으로는, 멀티코어 프로세스 환경을 효율적으로 활용하지 못한다는 문제점이 제기되었다.The conventional 2D graphical object retrieval technique raises a problem that it does not utilize the multicore process environment efficiently.

이에 본 발명은, 다양한 그래픽 객체를 관리 및 변형하는 그래픽 프로그래밍 환경에서 각 객체별 검색 프로세싱을 단일의 코어 프로세서에 각각 할당하여 멀티코어 프로세싱 성능을 향상시킬 수 있는 방안을 제안하고자 한다.Accordingly, the present invention intends to propose a method of improving multicore processing performance by allocating search processing for each object to a single core processor in a graphic programming environment for managing and transforming various graphic objects.

본 발명의 과제를 해결하기 위한 일 관점에 따르면, 멀티코어 프로세싱 환경에서 객체를 검색하는 방법으로서, 특정 객체의 검색 지령이 입력될 때 분할 검색 가능한 객체인지를 체크하는 과정과, 상기 체크 결과, 분할 검색 가능한 객체일 때 다수의 코어 프로세서들 중 사용 가능한 유효 코어 프로세서들을 검색하는 과정과, 검색된 상기 유효 코어 프로세서들 중 적어도 2개의 실행 코어 프로세서를 선택하여 분할 검색 실행을 지령하는 과정과, 선택된 적어도 2개의 실행 코어 프로세서가 상기 특정 객체에 대한 분할 검색을 각각 실행하는 과정과, 상기 분할 검색의 각 실행 결과를 병합하여 상기 특정 객체에 대한 최종 검색 결과를 생성하는 과정을 포함하는 멀티코어 프로세싱 환경에서의 객체 검색 방법을 제공한다.According to an aspect of the present invention, there is provided a method for searching an object in a multicore processing environment, comprising: checking whether a search object is a segmentable search object when a search command of a specific object is input, and as a result of the check, Searching for available core processors among a plurality of core processors when the object is a searchable object, selecting at least two execution core processors among the found valid core processors, and instructing a split search execution; Performing multiple partition search for the specific object by each of the plurality of execution core processors, and generating final search results for the specific object by merging each execution result of the partition search. Provides a way to search for objects.

본 발명의 과제를 해결하기 위한 다른 관점에 따르면, 다수의 코어 프로세서들을 갖는 멀티코어 프로세싱 환경에서의 객체 검색 장치로서, 외부로부터 입력되는 검색 대상 객체에 대한 분할 검색 프로세싱 가능 여부를 체크하여 그 결과에 따른 검색 지령신호를 발생하는 분할 검색 판단 블록과, 상기 분할 검색 판단 블록으로부터 분할 검색 지령신호가 수신되면 상기 다수의 코어 프로세서들 중 적어도 2개의 코어 프로세서를 실행 코어 프로세서로 선택하며, 선택된 적어도 2개의 실행 코어 프로세서 각각에 분할 검색 실행 지령신호를 전달하는 프로세서 관리 블록과, 상기 프로세서 관리 블록의 분할 검색 실행 지령신호에 대응하여 적어도 2개의 실행 코어 프로세서에서 상기 검색 대상 객체에 대한 분할 검색 프로세싱을 각각 수행하는 프로세서 블록과, 상기 프로세서 관리 블록으로부터의 병합 지령신호에 대응하여 적어도 2개의 실행 코어 프로세서로부터 각각 전달되는 분할 검색의 실행 결과를 병합하는 병합 블록을 포함하는 멀티코어 프로세싱 환경에서의 객체 검색 장치를 제공한다.According to another aspect of the present invention, an object retrieval apparatus in a multicore processing environment having a plurality of core processors, checks whether or not split search processing for a search target object input from the outside is possible and And a split search determination block for generating a search command signal, and when a split search command signal is received from the split search determination block, at least two core processors among the plurality of core processors are selected as execution core processors, and at least two selected A processor management block which transmits a divided search execution command signal to each of the execution core processors, and at least two execution core processors perform divisional search processing on the search target object in response to the divisional search execution command signal of the processor management block; Processor label And, providing an object search device in said processor management block in response to the merge command signals from at least two running multi-core processing containing the merge block for merging the result of execution of the divided search delivered from each core processors.

본 발명에 의하면, 그래픽 프로그래밍 환경에서 각 객체에 대해 코어 프로세스별로 별개로 검색 처리한 후 그 결과를 병합함으로써, 멀티 프로세싱 환경에서 계산량이 많은 2D 그래픽 프로그래밍의 성능을 향상시킬 수 있다. 특히, 수백, 수천 개의 객체를 다루는 그래픽 프로그래밍 환경에서 작업 효율을 증대시킬 수 있을 것으로 기대된다.According to the present invention, by performing a separate search process for each object for each core process in a graphic programming environment and merging the results, it is possible to improve the performance of 2D graphic programming with a large amount of computation in a multi-processing environment. In particular, it is expected to increase work efficiency in a graphical programming environment that handles hundreds or thousands of objects.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대해 구체적으로 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 객체 검색 방법을 구현하기 위한 멀티코어 프로세싱 환경의 구성도로서, 메모리 블록(102), 분할 검색 판단 블록(104), 프로세서 관리 블록(106), 프로세서 블록(108), 객체 정보 DB(110), 병합 블록(112)을 포함한다.1 is a block diagram of a multicore processing environment for implementing an object search method according to the present invention, which includes a memory block 102, a partition search determination block 104, a processor management block 106, a processor block 108, The object information DB 110 and the merge block 112 are included.

메모리 블록(102)은 도시 생략된 사용자 인터페이스(User Interface)를 통해 입력되는 검색하고자 하는 객체 정보를 임시 저장하는 저장 수단으로서, 후술하는 프로세서 관리 블록(106)의 검색 대상 객체 인출 지령신호에 대응하여 해당 검색 대상 객체 데이터를 프로세서 블록(108)으로 전달하는 역할을 한다. 이때의 검색 대상 객체는, 예컨대 2D 그래픽을 다루는 프로그램들에 적용되는 그래픽 객체일 수 있다.The memory block 102 is a storage means for temporarily storing object information to be searched through a user interface (not shown). The memory block 102 corresponds to a search object extraction command signal of the processor management block 106 described later. The search object data is transferred to the processor block 108. In this case, the search target object may be, for example, a graphic object applied to programs that handle 2D graphics.

분할 검색 판단 블록(104)은 외부로부터 입력되는 검색 대상 객체가 단일 검색 프로세싱을 통해 검색 가능한 객체인지, 혹은 분할 검색 프로세싱을 통해 검색 가능한 객체인지의 여부를 체크하며, 체크 결과로서 단일 검색 지령신호 또는 분할 검색 지령신호를 발생하여 프로세서 관리 블록(106)으로 전달한다. 여기에서, 분 할 검색 지령 신호는 해당 객체에 대한 x축 검색과 y축 검색을 포함하는 지령신호이거나, 혹은 해당 객체에 대한 x축 검색, y축 검색 및 z축 검색을 포함하는 지령신호일 수 있다.The divisional search determination block 104 checks whether an object to be searched from the outside is a searchable object through a single search processing or a searchable object through the divisional search processing, and as a result of the check, a single search command signal or The divided search command signal is generated and transmitted to the processor management block 106. Here, the divided search command signal may be a command signal including an x-axis search and a y-axis search for a corresponding object, or a command signal including an x-axis search, a y-axis search, and a z-axis search for the corresponding object. .

프로세서 관리 블록(106)은 분할 검색 판단 블록(104)으로부터 단일 검색 지령신호가 수신될 때, 프로세서 블록(108)의 다수의 코어 프로세서들 중 현재 프로세싱에 사용되지 않고 있는 사용 가능한 유효 코어 프로세서들을 검색하고, 검색된 유효 코어 프로세서들 중 어느 하나를 실행 코어 프로세서로 선택하며, 선택된 실행 코어 프로세서(예컨대, 코어 프로세서 1(108/1))에 단일 검색 실행 지령신호를 전달한다. 여기에서, 유효 코어 프로세서의 검색은, 예컨대 프로세싱 작업 중인 코어 프로세서들에 실행 태그를 표시해 두고, 프로세싱 작업이 종료될 때 표시된 태그를 삭제하는 방식으로 수행할 수 있다.The processor management block 106 searches for available valid core processors that are not currently being used for processing among the plurality of core processors of the processor block 108 when a single search command signal is received from the partition search determination block 104. And selects one of the found valid core processors as an execution core processor, and transmits a single search execution command signal to the selected execution core processor (for example, core processor 1 108/1). Here, the searching of the effective core processor may be performed by, for example, marking the execution tag on the core processors in the processing operation and deleting the displayed tag when the processing operation is finished.

또한, 프로세서 관리 블록(106)은 단일 검색 실행 지령신호의 전달과 동시에 검색 대상 객체의 단일 인출 지령신호를 발생하여 메모리 블록(102)으로 전달하며, 이에 응답하여 메모리 블록(102)으로부터 인출되는 검색 대상 객체는 선택된 실행 코어 프로세서(예컨대, 코어 프로세서 1(108/1))로 전달된다. 따라서, 코어 프로세서 1(108/1)은 후술하는 객체 정보 DB(110)와의 인터페이스를 통해 검색 지령된 객체에 대한 단일 검색 프로세싱을 실행하게 될 것이다.In addition, the processor management block 106 generates a single retrieval command signal of the object to be retrieved and transmits the single retrieve command signal to the memory block 102 at the same time as the single search execution command signal is transmitted, and in response thereto, the retrieved from the memory block 102 is retrieved. The target object is passed to the selected executing core processor (eg, core processor 1 108/1). Therefore, the core processor 1 108/1 will execute a single search processing for the search commanded object through the interface with the object information DB 110 described later.

한편, 프로세서 관리 블록(106)은 분할 검색 판단 블록(104)으로부터 분할 검색 지령신호가 수신될 때, 다수의 코어 프로세서들 중 현재 프로세싱에 사용되지 않고 있는 사용 가능한 유효 코어 프로세서들을 검색하고, 검색된 유효 코어 프로 세서들 중 적어도 2개를 실행 코어 프로세서로 선택하며, 선택된 실행 코어 프로세서(예컨대, 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)) 각각에 분할 검색 실행 지령신호를 전달한다.On the other hand, the processor management block 106 searches for available valid core processors that are not currently being used for processing among the plurality of core processors when the divisional search command signal is received from the divisional search determination block 104, and the retrieved validity is found. At least two of the core processors are selected as execution core processors, and a split search execution command signal is transmitted to each of the selected execution core processors (eg, core processor 1 (108/1) and core processor 2 (108/2)). do.

또한, 프로세서 관리 블록(106)은 분할 검색 실행 지령신호의 전달과 동시에 검색 대상 객체 데이터의 복수 인출 지령신호를 발생하여 메모리 블록(102)으로 전달하며, 이에 응답하여 메모리 블록(102)으로부터 인출되는 검색 대상 객체는 선택된 실행 코어 프로세서(예컨대, 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)) 각각으로 동시에 전달된다. 따라서, 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2) 각각은 객체 정보 DB(110)와의 인터페이스를 통해 검색 지령된 객체에 대한 분할 검색 프로세싱을 각각 실행하게 될 것이다. 예컨대, 코어 프로세서 1(108/1)에서는 검색 대상 객체에 대한 x축 검색을 실행하고, 코어 프로세서 2(108/2)에서는 검색 대상 객체에 대한 y축 검색을 실행하며, 이와 같은 분할 검색 실행 결과는 후술하는 병합 블록(112)으로 전달된다.In addition, the processor management block 106 generates a plurality of drawing command signals of the searched object data and transmits them to the memory block 102 at the same time as the division search execution command signal is transmitted, and in response thereto, is extracted from the memory block 102. The object to be searched is simultaneously delivered to each of the selected executing core processors (eg, core processor 1 108/1 and core processor 2 108/2). Therefore, each of the core processors 1 108/1 and the core processors 2 108/2 will perform the split search processing for the search commanded objects through the interface with the object information DB 110, respectively. For example, the core processor 1 108/1 executes an x-axis search for the searched object, and the core processor 2 108/2 executes a y-axis search for the searched object. Is passed to the merge block 112 described below.

더욱이, 프로세서 관리 블록(106)은 분할 검색 실행 지령신호의 전달과 동시에 분할 검색 결과를 병합하도록 지령하는 병합 지령신호를 발생하여 병합 블록(112)으로 전달한다. 따라서, 병합 블록(112)에서는, 예컨대 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)로부터 각각 전달되는 분할 검색의 실행 결과를 병합하여 검색 대상 객체에 대한 최종 검색 결과를 생성하게 될 것이다.Further, the processor management block 106 generates a merge command signal for instructing to merge the split search result at the same time as the transfer of the split search execution command signal, and delivers the merge command signal to the merge block 112. Thus, the merge block 112 merges the execution results of the split search, for example, delivered from the core processor 1 108/1 and the core processor 2 108/2, respectively, to generate a final search result for the object to be searched. Will be.

프로세서 블록(108)은 쓰레드(thread) 단위로 동작하는 복수 개의 코어 프로세서 군(108/1∼108/N)을 구비하는데, 이러한 각 코어 프로세서(102/1∼102/N)는 물리적으로 분리되어 있으므로 서로 독립적으로 동작할 수 있다.The processor block 108 includes a plurality of core processor groups 108/1 to 108 / N that operate on a thread basis, and each of these core processors 102/1 to 102 / N are physically separated. Therefore, they can operate independently of each other.

이러한 프로세서 블록(108)은 상술한 프로세서 관리 블록(106)으로부터의 단일 검색 실행 지령신호에 대응하여 선택되는 임의의 코어 프로세서, 예를 들면 코어 프로세서 1(108/1)에 대한 단일 검색 프로세싱을 실행한다. 보다 구체적으로 설명하면, 프로세서 관리 블록(106)으로부터 코어 프로세서 1(108/1)로 단일 검색 실행 지령신호가 입력되면, 단일 검색 실행 지령신호에 대응하여 발생되는 단일 인출 지령신호에 따라 메모리 블록(102)으로부터 제공되는 검색 대상 객체가 코어 프로세서 1(108/1)로 전달되고, 검색 대상 객체를 전달받은 코어 프로세서 1(108/1)은 객체 정보 DB(110)와의 인터페이스를 통해 검색 지령된 객체에 대한 단일 검색 프로세싱을 실행한다.This processor block 108 executes single search processing for any core processor, for example core processor 1 108/1, selected in response to a single search execution command signal from the processor management block 106 described above. do. More specifically, when a single search execution command signal is input from the processor management block 106 to the core processor 1 108/1, the memory block may be stored according to a single drawing command signal generated in response to the single search execution command signal. The object to be searched provided from 102 is delivered to core processor 1 108/1, and the core processor 1 108/1 receiving the searched object is commanded to be searched through an interface with the object information DB 110. Run a single search processing on.

또한, 프로세서 블록(108)은 상술한 프로세서 관리 블록(106)으로부터의 분할 검색 실행 지령신호에 대응하여 선택되는 임의의 코어 프로세서, 예를 들면 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)에 대한 분할 검색 프로세싱을 실행한다. 보다 구체적으로 설명하면, 프로세서 관리 블록(106)으로부터 코어 프로세서 1(108/1)과 코어 프로세서 2(1082)로 분할 검색 실행 지령신호가 입력되면, 분할 검색 실행 지령신호에 대응하여 발생되는 분할 인출 지령신호에 따라 메모리 블록(102)으로부터 제공되는 검색 대상 객체가 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2) 각각으로 전달되고, 검색 대상 객체를 전달받은 각각의 코어 프로세서 1(108/1) 및 코어 프로세서 2(108/2)는 객체 정보 DB(110)와의 인터페이스를 통해 검색 지령된 객체에 대한 분할 검색 프로세싱을 각각 실행한다. 이러한 분할 검색 프로세싱은, 예컨대 2D 그래픽을 다루는 프로그램들에 적용되는 그래픽 객체의 경우, x축에 대한 검색 및 y축에 대한 검색 처리를 포함할 수 있다. 예를 들어, 코어 프로세서 군(108/1∼108/N)내의 프로세서 1(108/1)에서는 검색 대상 객체에 대한 x축 검색을 실행하고, 코어 프로세서 2(108/2)에서는 검색 대상 객체에 대한 y축 검색을 실행할 수 있을 것이다.Further, the processor block 108 may be any core processor selected in response to the divisional search execution command signal from the processor management block 106 described above, for example, the core processor 1 (108/1) and the core processor 2 (108). / 2) perform split search processing. More specifically, when the division search execution command signal is input from the processor management block 106 to the core processor 1 (108/1) and the core processor 2 (1082), the division drawing out generated in response to the division search execution command signal is performed. According to the command signal, the search target object provided from the memory block 102 is transferred to each of the core processor 1 108/1 and the core processor 2 108/2, and each core processor 1 (received the search target object) ( 108/1 and Core Processor 2 108/2 execute split retrieval processing for the retrieval commanded objects through the interface with the object information DB 110, respectively. Such split retrieval processing may include retrieval for the x-axis and retrieval for the y-axis, for example in the case of a graphic object applied to programs that handle 2D graphics. For example, the processor 1 (108/1) in the core processor group (108/1 to 108 / N) executes an x-axis search for the searched object, and the core processor 2 (108/2) performs a search on the searched object. You can run a search on the y-axis.

이때, 검색 대상 객체에 대한 x축 검색 및 y축 검색은, 검색 대상 객체에 대한 선택, 이동, 변형 등의 과정들을 포함할 수 있다.In this case, the x-axis search and the y-axis search for the search object may include processes of selecting, moving, and modifying the search object.

병합 블록(112)은 프로세서 관리 블록(106)으로부터의 병합 지령신호에 대응하여 각각의 코어 프로세서, 예컨대 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)로부터 각각 전달되는 분할 검색의 실행 결과를 병합하는 역할을 한다. 이러한 병합 블록(112)의 실행 결과 병합 과정을 통해 검색 대상 객체에 대한 최종 검색 결과를 생성하게 될 것이다.The merge block 112 is configured to perform the segmentation search delivered from each of the core processors, for example, the core processor 1 108/1 and the core processor 2 108/2, in response to the merge command signal from the processor management block 106. FIG. It is responsible for merging execution results. The merge result of the merge block 112 may generate a final search result for the search target object.

이하, 상술한 구성과 함께, 본 발명의 바람직한 실시예에 따른 멀티코어 프로세싱 환경에서의 객체 검색 과정에 대해 첨부한 도 2의 흐름도를 참조로 상세히 설명하기로 한다.Hereinafter, the object searching process in the multicore processing environment according to the preferred embodiment of the present invention together with the above-described configuration will be described in detail with reference to the flowchart of FIG. 2.

먼저, 본 실시예는, 멀티코어 프로세스 환경에서 특정 프로그램, 예컨대 2D 그래픽 프로그램이 구동될 때의 객체 검색 과정을 기술한 것으로, 이는 본 발명의 실시예를 설명하기 위해 예시적으로 한정한 것일 뿐, 본 발명을 특징짓는 것은 아니다.First, the present embodiment describes an object retrieval process when a specific program, such as a 2D graphics program, is run in a multicore process environment, which is only illustratively limited to describe an embodiment of the present invention. It does not characterize the invention.

도 2에 도시한 바와 같이, 단계(S200)에서 프로세서 관리 블록(106)은 도시 생략된 사용자 인터페이스를 통해 특정 객체의 검색 지령이 입력될 경우에, 해당 객체 정보를 메모리 블록(102)에 임시 저장하고 단계(S202)로 진행한다.As shown in FIG. 2, in operation S200, the processor management block 106 temporarily stores the object information in the memory block 102 when a search command of a specific object is input through a user interface (not shown). And the flow proceeds to step S202.

단계(S202)에서 프로세서 관리 블록(106)은 특정 객체가 분할 검색 가능한 객체인지를 분할 검색 판단 블록(104)을 통해 체크한다.In step S202, the processor management block 106 checks through the partition search determination block 104 whether the specific object is a partition searchable object.

단계(S202)의 체크 결과, 분할 검색 가능한 객체인 경우, 프로세서 관리 블록(106)은 단계(S204) 및 단계(S206)로 진행하여 프로세서 블록(108)의 다수의 코어 프로세서들 중 사용 가능한 유효 코어 프로세서들을 검색한다.If the result of the check in step S202 is a partition searchable object, the processor management block 106 proceeds to step S204 and step S206 where the available cores available among the plurality of core processors of the processor block 108 are available. Search for processors.

이후, 단계(S208)에서 프로세서 관리 블록(106)은 검색된 유효 코어 프로세서들 중 2D 그래픽 프로그램에서의 검색, 예컨대 x축 및 y축 검색을 위한 실행 코어 프로세서, 예컨대 코어 프로세서 1(108/1)과 코어 프로세서 2(108/2)를 선택하여 분할 검색 실행을 지령한다.Subsequently, in step S208, the processor management block 106 is executed by the execution core processor, for example, core processor 1 108/1, for searching in the 2D graphics program, for example, the x-axis and the y-axis search, among the found valid core processors. Core processor 2 (108/2) is selected to command split search execution.

이에 따라 프로세서 블록(108)의 코어 프로세서 1(108/1) 및 코어 프로세서 2(108/2)는 특정 객체에 대한 분할 검색, 예컨대 코어 프로세서 1(108/1)은 x축 검색을 실행하고, 코어 프로세서 2(108/2)는 y축 검색을 각각 실행한다(S210).Accordingly, Core Processor 1 (108/1) and Core Processor 2 (108/2) of the processor block 108 perform a partitioned search for a particular object, such as Core Processor 1 (108/1) performs an x-axis search, Core processor 2 108/2 executes y-axis searching, respectively (S210).

이후, 단계(S212)에서 프로세서 관리 블록(106)은, 병합 블록(112)을 통해 상술한 분할 검색의 각 실행 결과, 예컨대 x축 검색 실행 결과 및 y축 검색 실행 결과를 병합하도록 지령한다.Thereafter, in step S212, the processor management block 106 instructs the merge block 112 to merge each execution result of the above-described divisional search, for example, the x-axis search execution result and the y-axis search execution result.

이에 따라 병합 블록(112)에서는, 분할 검색의 각 실행 결과를 병합하여 특정 객체에 대한 최종 검색 결과(즉, x축 검색 실행 결과와 y축 검색 실행 결과가 병합된 검색 결과)를 생성 및 출력하게 된다(S214).Accordingly, the merge block 112 merges each execution result of the split search to generate and output a final search result for the specific object (that is, a search result obtained by merging the x-axis search execution result and the y-axis search execution result). (S214).

한편, 단계(S202)에서 프로세서 관리 블록(106)은, 사용자 인터페이스를 통해 입력된 특정 객체가 분할 검색 가능한 객체가 아닌 것으로 분할 검색 판단 블록(104)을 통해 체크된 경우, 즉 분할 검색 판단 블록(104)을 통해 특정 객체가 단일 검색 객체인 것으로 체크된 경우에는 단계(S216)로 진행한다.On the other hand, in step S202, the processor management block 106, if the specific object input through the user interface is checked through the partition search determination block 104 that is not a partition searchable object, that is, the partition search decision block ( If it is checked through 104 that the specific object is a single search object, the flow proceeds to step S216.

단계(S216)에서 프로세서 관리 블록(106)은 단계(S216) 및 단계(S218)로 진행하여 프로세서 블록(108)의 다수의 코어 프로세서들 중 사용 가능한 유효 코어 프로세서들을 검색한다.In step S216, the processor management block 106 proceeds to steps S216 and S218 to search for available core processors among the plurality of core processors of the processor block 108.

이후, 단계(S220)에서 프로세서 관리 블록(106)은 검색된 유효 코어 프로세서들 중 2D 그래픽 프로그램에서의 검색, 예컨대 x축 검색을 위한 실행 코어 프로세서, 예컨대 코어 프로세서 1(108/1)을 선택하여 단일 검색 실행을 지령한다.Thereafter, in step S220, the processor management block 106 selects an execution core processor, for example, core processor 1 (108/1), for searching in a 2D graphic program, for example, an x-axis search, among the found valid core processors. Commands search execution.

이에 따라 프로세서 블록(108)의 코어 프로세서 1(108/1)은 특정 객체에 대한 단일 검색, 예컨대 x축 검색을 실행한다(S222).Accordingly, the core processor 1 108/1 of the processor block 108 executes a single search for a specific object, for example, an x-axis search (S222).

이후, 단계(S224)에서는, 특정 객체에 대한 최종 검색 결과, 예컨대, x축 검색 실행 결과를 생성 및 출력하게 된다.Thereafter, in step S224, a final search result for a specific object, for example, an x-axis search execution result is generated and output.

이상 설명한 바와 같이, 본 발명은, 2D 그래픽 프로그래밍과 같은 많은 수의 객체를 다루는 멀티코어 프로세싱 환경에서, 각 객체별 검색 프로세싱을 단일의 코어 프로세서에 각각 할당하여 멀티코어 프로세싱 성능을 향상시키도록 구현한 것이다.As described above, the present invention is implemented to improve multicore processing performance by allocating search processing for each object to a single core processor in a multicore processing environment that handles a large number of objects such as 2D graphic programming. will be.

한편, 본 발명의 실시예에 대해 상세히 기술하였으나 본 발명은 이러한 실시예에 국한되는 것은 아니며, 후술하는 청구범위에 기재된 본 발명의 기술적 사상과 범주 내에서 당업자로부터 여러 가지 변형이 가능함은 물론이다.Meanwhile, the embodiments of the present invention have been described in detail, but the present invention is not limited to these embodiments, and various modifications may be made by those skilled in the art within the spirit and scope of the present invention described in the claims below.

도 1은 본 발명에 따른 객체 검색 방법을 구현하기 위한 멀티코어 프로세싱 환경을 예시한 구성 블록도,1 is a block diagram illustrating a multicore processing environment for implementing an object search method according to the present invention;

도 2는 본 발명의 바람직한 실시예에 따른 멀티코어 프로세싱 환경에서의 객체 검색 방법을 설명하는 흐름도.2 is a flow chart illustrating a method for object searching in a multicore processing environment in accordance with a preferred embodiment of the present invention.

Claims (7)

멀티코어 프로세싱 환경에서 객체를 검색하는 방법으로서,A method of retrieving objects in a multicore processing environment. 특정 객체의 검색 지령이 입력될 때 분할 검색 가능한 객체인지를 체크하는 과정과,Checking whether a search object is divided when a search command of a specific object is input; 상기 체크 결과, 분할 검색 가능한 객체일 때 다수의 코어 프로세서들 중 사용 가능한 유효 코어 프로세서들을 검색하는 과정과,As a result of the check, searching for available core processors among a plurality of core processors when the partition searchable object is present; 검색된 상기 유효 코어 프로세서들 중 적어도 2개의 실행 코어 프로세서를 선택하여 분할 검색 실행을 지령하는 과정과,Selecting at least two execution core processors among the found valid core processors to instruct a split search execution; 선택된 적어도 2개의 실행 코어 프로세서가 상기 특정 객체에 대한 분할 검색을 각각 실행하는 과정과,Executing a segmented search for the specific object by at least two selected execution core processors; 상기 분할 검색의 각 실행 결과를 병합하여 상기 특정 객체에 대한 최종 검색 결과를 생성하는 과정Merging each execution result of the split search to generate a final search result for the specific object; 을 포함하는 멀티코어 프로세싱 환경에서의 객체 검색 방법.Object search method in a multicore processing environment comprising a. 제 1 항에 있어서,The method of claim 1, 상기 특정 객체는, 그래픽 프로그램에 적용되는 각각의 그래픽 객체인 것을 특징으로 하는 멀티코어 프로세싱 환경에서의 객체 검색 방법.And the specific object is each graphic object applied to the graphic program. 제 2 항에 있어서,The method of claim 2, 상기 특정 객체에 대한 분할 검색을 각각 실행하는 과정은,The process of performing the divided search for the specific object, respectively, 상기 각각의 그래픽 객체에 대한 x축 검색과 y축 검색을, 상기 선택된 적어도 2개의 실행 코어 프로세서에서 각각 별개로 수행하는 과정인 것을 특징으로 하는 멀티코어 프로세싱 환경에서의 객체 검색 방법.And x-axis search and y-axis search for each of the graphic objects are performed separately in the selected at least two execution core processors. 제 3 항에 있어서,The method of claim 3, wherein 상기 각각의 그래픽 객체에 대한 x축 검색과 y축 검색은, 상기 각각의 그래픽 객체에 대한 선택, 이동, 변형 중 적어도 하나 이상을 포함하는 멀티코어 프로세싱 환경에서의 객체 검색 방법.The x-axis search and the y-axis search for each graphical object, at least one or more of the selection, movement, and transformation for the respective graphical object. 다수의 코어 프로세서들을 갖는 멀티코어 프로세싱 환경에서의 객체 검색 장치로서,An object retrieval apparatus in a multicore processing environment having a plurality of core processors, 외부로부터 입력되는 검색 대상 객체에 대한 분할 검색 프로세싱 가능 여부를 체크하여 그 결과에 따른 검색 지령신호를 발생하는 분할 검색 판단 블록과,A divisional search determination block which checks whether the divisional search processing for the search target object input from the outside is possible and generates a search command signal according to the result; 상기 분할 검색 판단 블록으로부터 분할 검색 지령신호가 수신되면 상기 다수의 코어 프로세서들 중 적어도 2개의 코어 프로세서를 실행 코어 프로세서로 선 택하며, 선택된 적어도 2개의 실행 코어 프로세서 각각에 분할 검색 실행 지령신호를 전달하는 프로세서 관리 블록과,When the divisional search command signal is received from the divisional search determination block, at least two core processors of the plurality of core processors are selected as execution core processors, and the divisional search execution command signals are transmitted to each of the at least two selected execution core processors. Processor management block, 상기 프로세서 관리 블록의 분할 검색 실행 지령신호에 대응하여 적어도 2개의 실행 코어 프로세서에서 상기 검색 대상 객체에 대한 분할 검색 프로세싱을 각각 수행하는 프로세서 블록과,A processor block for performing divisional search processing for the searched object in at least two execution core processors in response to the divisional search execution command signal of the processor management block; 상기 프로세서 관리 블록으로부터의 병합 지령신호에 대응하여 적어도 2개의 실행 코어 프로세서로부터 각각 전달되는 분할 검색의 실행 결과를 병합하는 병합 블록Merging block for merging the execution results of the split search respectively delivered from at least two execution core processors in response to the merge command signal from the processor management block. 을 포함하는 멀티코어 프로세싱 환경에서의 객체 검색 장치.Object searching apparatus in a multicore processing environment comprising a. 제 5 항에 있어서,The method of claim 5, wherein 상기 프로세서 관리 블록은, 상기 분할 검색 지령신호에 대응하여 상기 다수의 코어 프로세서들 중 유효 코어 프로세서들을 검색하는 것을 특징으로 하는 멀티코어 프로세싱 환경에서의 객체 검색 장치.And the processor management block searches for valid core processors among the plurality of core processors in response to the divisional search command signal. 제 5 항에 있어서,The method of claim 5, wherein 상기 프로세서 블록은, 상기 분할 검색 지령신호에 대응하여 객체 정보 데이터베이스와의 인터페이스를 통해 상기 검색 대상 객체에 대한 분할 검색 프로세싱 을 실행하는 것을 특징으로 하는 멀티코어 프로세싱 환경에서의 객체 검색 장치.And the processor block executes divisional search processing for the searched object through an interface with an object information database in response to the divisional search command signal.
KR1020080066954A 2008-07-10 2008-07-10 Method and apparatus for searching object in multi-core processing environment KR100949746B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080066954A KR100949746B1 (en) 2008-07-10 2008-07-10 Method and apparatus for searching object in multi-core processing environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080066954A KR100949746B1 (en) 2008-07-10 2008-07-10 Method and apparatus for searching object in multi-core processing environment

Publications (2)

Publication Number Publication Date
KR20100006821A true KR20100006821A (en) 2010-01-22
KR100949746B1 KR100949746B1 (en) 2010-03-25

Family

ID=41815901

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080066954A KR100949746B1 (en) 2008-07-10 2008-07-10 Method and apparatus for searching object in multi-core processing environment

Country Status (1)

Country Link
KR (1) KR100949746B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378533B2 (en) 2010-07-22 2016-06-28 Industry-Academic Cooperation Foundation, Yonsei University Central processing unit, GPU simulation method thereof, and computing system including the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3090605B2 (en) * 1995-12-26 2000-09-25 インターナショナル・ビジネス・マシーンズ・コーポレ−ション Multiprocessor device
KR100279740B1 (en) * 1997-12-09 2001-02-01 정선종 Code distribution method and apparatus for parallel processing
US6437796B2 (en) 1998-02-17 2002-08-20 Sun Microsystems, Inc. Multiple processor visibility search system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378533B2 (en) 2010-07-22 2016-06-28 Industry-Academic Cooperation Foundation, Yonsei University Central processing unit, GPU simulation method thereof, and computing system including the same

Also Published As

Publication number Publication date
KR100949746B1 (en) 2010-03-25

Similar Documents

Publication Publication Date Title
US8400458B2 (en) Method and system for blocking data on a GPU
US8990827B2 (en) Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels
US8209697B2 (en) Resource allocation method for a physical computer used by a back end server including calculating database resource cost based on SQL process type
EP3443458B1 (en) A computer-implemented method, a computer-readable medium and a heterogeneous computing system
US8959138B2 (en) Distributed data scalable adaptive map-reduce framework
CN111488205B (en) Scheduling method and scheduling system for heterogeneous hardware architecture
CN111488177A (en) Data processing method, data processing device, computer equipment and storage medium
EP3396542B1 (en) Database operating method and device
KR20090065100A (en) Method and system for rendering of parallel global illumination
US20160147571A1 (en) Method for optimizing the parallel processing of data on a hardware platform
Karnagel et al. Local vs. Global Optimization: Operator Placement Strategies in Heterogeneous Environments.
CN105637482A (en) Method and device for processing data stream based on gpu
CN113741961B (en) Method and device for submitting big data calculation operation based on Kubernetes container arrangement software
Liu Yolov2 acceleration using embedded gpu and fpgas: pros, cons, and a hybrid method
US9298769B1 (en) Method and apparatus to facilitate discrete-device accelertaion of queries on structured data
KR100949746B1 (en) Method and apparatus for searching object in multi-core processing environment
CN108334532A (en) A kind of Eclat parallel methods, system and device based on Spark
Malik et al. Task scheduling for GPU accelerated hybrid OLAP systems with multi-core support and text-to-integer translation
CN115686784A (en) Geographic grid pyramid parallel construction method based on multiple machines and multiple processes
Han et al. Distributed deep learning platform for pedestrian detection on IT convergence environment
CN113535349A (en) Data batch processing method and device and storage medium
KR20210080749A (en) Apparatus and method for performing spatial join
Topaloglu et al. GPU programming for EDA with OpenCL
Dudnik et al. Cuda architecture analysis as the driving force Of parallel calculation organization
US20240176664A1 (en) Artificial intelligence application provision method and apparatus for supporting edge computing for cyber-physical systems

Legal Events

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

Payment date: 20130304

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140303

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee