KR101918393B1 - Cell-based plasma simulation apparatus utilizing gpu - Google Patents

Cell-based plasma simulation apparatus utilizing gpu Download PDF

Info

Publication number
KR101918393B1
KR101918393B1 KR1020170033687A KR20170033687A KR101918393B1 KR 101918393 B1 KR101918393 B1 KR 101918393B1 KR 1020170033687 A KR1020170033687 A KR 1020170033687A KR 20170033687 A KR20170033687 A KR 20170033687A KR 101918393 B1 KR101918393 B1 KR 101918393B1
Authority
KR
South Korea
Prior art keywords
data
plasma
unit
storage space
cell
Prior art date
Application number
KR1020170033687A
Other languages
Korean (ko)
Other versions
KR20180106083A (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 KR1020170033687A priority Critical patent/KR101918393B1/en
Publication of KR20180106083A publication Critical patent/KR20180106083A/en
Application granted granted Critical
Publication of KR101918393B1 publication Critical patent/KR101918393B1/en

Links

Images

Classifications

    • G06F17/5009
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 GPU를 이용한 셀 기반 플라즈마 시뮬레이션 장치에 관한 것으로서, 데이터를 저장하는 메모리부, 상기 메모리부의 데이터 저장 공간을 플라즈마가 분포하는 시뮬레이션 대상 공간을 구획하여 얻은 단위 공간인 셀의 개수를 기반으로 분할하는 메모리 분할부, 각각의 셀에 대응하는 데이터 저장 공간에 해당 셀 내의 플라즈마 입자에 관한 데이터를 할당하는 데이터 할당부 및 상기 프라즈마 입자에 관한 데이터를 상기 메모리부에 저장하거나 상기 메모리부로부터 불러오는 메모리 액세스부를 포함하는 플라즈마 시뮬레이션 장치이다.The present invention relates to a cell-based plasma simulation apparatus using a GPU, and more particularly, to a cell-based plasma simulation apparatus using a GPU, which includes a memory unit for storing data, a data storage unit for dividing a data storage space of the memory unit, A data allocation unit for allocating data related to plasma particles in the cell to a data storage space corresponding to each cell, and a memory access unit for storing data relating to the plasma particles in the memory unit or retrieving from the memory unit And a plasma simulation unit.

Description

GPU를 이용한 셀 기반 플라즈마 시뮬레이션 장치{CELL-BASED PLASMA SIMULATION APPARATUS UTILIZING GPU}Description CELL-BASED PLASMA SIMULATION APPARATUS UTILIZING GPU

본 발명은 GPU를 이용한 셀 기반 플라즈마 시뮬레이션 장치에 관한 것이다.The present invention relates to a cell-based plasma simulation apparatus using a GPU.

반도체 공정용 장비의 특성을 해석하기 위해 시뮬레이션을 이용하여 내부 상태를 계산하고 물리적 현상을 설명하는 것은 시간과 비용을 절감하는데 있어 매우 중요한 작업이다. 이러한 작업을 위해 수행되고 있는 기존의 방법은 유체 시뮬레이션 방식으로서 실제 플라즈마 입자의 거동을 모두 계산하는 큰 오차를 가지는 방법이다. 유체 시뮬레이션에 비해서 플라즈마를 구성하는 입자의 거동을 분석하는 시뮬레이션 기법은 개개 입자의 분포함수를 고려해야 하는 kinetic 문제와 비선형 및 transient 효과에 대한 정확도가 높은 방식이지만 계산 시간이 오래 걸리는 문제로 인해 널리 사용되지 못하고 있다.Computing the internal state and describing the physical phenomenon using simulation to analyze the characteristics of semiconductor process equipment is a very important task in reducing time and cost. The conventional method for this work is a fluid simulation method which has a large error in calculating all the behaviors of the actual plasma particles. Simulation techniques for analyzing the behavior of particles constituting plasma compared to fluid simulation are widely used because of the high accuracy of kinetic and nonlinear and transient effects that must consider the distribution function of individual particles, but the computation time is long. I can not.

최근 들어 병렬화 계산 기법의 발전에 따라 시뮬레이션의 계산시간을 단축하는 방법이 연구되고 있다. 그러나, 이러한 시뮬레이션 방법은 모든 입자들의 정보를 연속된 메모리 주소에 할당하여 계산하였으며 입자의 거동을 계산할 시 입자 수에 비례하는 횟수로 데이터를 읽어옴으로써 계산 시간이 증가한다는 단점이 있다.Recently, a method of shortening the calculation time of the simulation according to the development of the parallelization calculation technique has been studied. However, this simulation method has a disadvantage in that the calculation time is increased because the information of all the particles is allocated to the consecutive memory addresses and the data is read in proportion to the number of particles when calculating the behavior of the particles.

본 발명의 실시예는 플라즈마 시뮬레이션에서 플라즈마 입자의 거동을 정확하고 빠르게 계산하는 것을 목적으로 한다.Embodiments of the present invention aim to accurately and quickly calculate the behavior of plasma particles in plasma simulation.

본 발명의 실시예는 플라즈마 시뮬레이션을 위한 데이터 정보전달을 효율적으로 할 수 있는 메모리 구조 및 최적화 된 알고리즘의 제공을 목적으로 한다.An embodiment of the present invention aims to provide a memory structure and an optimized algorithm that can effectively transfer data information for plasma simulation.

본 발명의 일 실시예에 따른 플라즈마 시뮬레이션 장치는 데이터를 저장하는 메모리부; 상기 메모리부의 데이터 저장 공간을 플라즈마가 분포하는 시뮬레이션 대상 공간을 구획하여 얻은 단위 공간인 셀의 개수를 기반으로 분할하는 메모리 분할부; 각각의 셀에 대응하는 데이터 저장 공간에 해당 셀 내의 플라즈마 입자에 관한 데이터를 할당하는 데이터 할당부; 및 상기 플라즈마 입자에 관한 데이터를 상기 메모리부에 저장하거나 상기 메모리부로부터 불러오는 메모리 액세스부를 포함할 수 있다.A plasma simulation apparatus according to an embodiment of the present invention includes a memory unit for storing data; A memory partitioning unit for dividing a data storage space of the memory unit based on the number of cells which are unit spaces obtained by dividing a simulation object space in which plasma is distributed; A data allocation unit that allocates data related to plasma particles in the cell to a data storage space corresponding to each cell; And a memory access unit that stores data relating to the plasma particles in the memory unit or loads the data from the memory unit.

본 발명의 일 실시예에 따른 플라즈마 시뮬레이션 장치는 상기 각각의 셀에 대응하는 데이터 저장 공간과 플라즈마 입자에 관한 데이터를 처리하는 계산노드를 매칭시키는 계산 노드 매칭부를 포함할 수 있다.The plasma simulation apparatus according to an embodiment of the present invention may include a calculation node matching unit for matching a data storage space corresponding to each cell and a calculation node processing data on plasma particles.

상기 데이터 할당부는, 셀 내 각각의 플라즈마 입자에 관한 데이터가 해당 셀에 대응하는 데이터 저장 공간에서 시뮬레이션 대상 공간을 구성하는 셀의 전체 개수만큼 차이가 나는 주소에 저장되도록 플라즈마 입자에 관한 데이터를 할당할 수 있다.The data allocation unit allocates data related to plasma particles so that data on each plasma particle in the cell is stored in an address corresponding to the total number of cells constituting the simulation object space in a data storage space corresponding to the cell .

상기 데이터 할당부는, 플라즈마 시뮬레이션에 의해 소멸하는 플라즈마 입자 및 다른 셀로 이동하는 플라즈마 입자의 수를 계산하고, 상기 소멸하는 플라즈마 입자의 데이터와 다른 셀로 이동하는 플라즈마 입자의 데이터를 해당 데이터 저장 공간에서 마지막 주소의 저장 공간으로 이동시키는 데이터 전처리부; 및 각각의 셀에 대응하는 데이터 저장 공간에서 마지막 주소의 저장 공간으로 이동한 플라즈마 입자의 데이터에 대해 플라즈마 입자의 거동에 관한 연산을 수행하여 해당 플라즈마 입자의 데이터를 삭제하거나 다른 셀에 대응하는 데이터 저장 공간으로 이동시키는 데이터 이동부;를 포함할 수 있다.The data allocation unit calculates the number of plasma particles disappearing by plasma simulation and the number of plasma particles moving to other cells, and stores data of plasma particles moving to other cells from the data of the disappearing plasma particles, A data preprocessing unit for transferring the data to a storage space of the storage unit; And computing the behavior of the plasma particles with respect to the data of the plasma particles moved to the storage space of the last address in the data storage space corresponding to each cell to delete the data of the corresponding plasma particles or to store data corresponding to the other cells And a data moving unit for moving the data to a space.

본 발명의 일 실시예에 따른 플라즈마 시뮬레이션 장치는 셀 내 각각의 플라즈마 입자에 대해서 0 내지 1의 랜덤값을 생성하고, 상기 각각의 플라즈마 입자마다 기 설정된 최대 충돌 확률과 상기 랜덤값을 비교하고, 상기 랜덤값이 상기 최대 충돌 확률보다 작으면 해당 플라즈마 입자를 다른 플라즈마 입자와 충돌하는 충돌 입자로 결정하는 충돌 입자 결정부를 포함할 수 있다.A plasma simulation apparatus according to an embodiment of the present invention generates a random value of 0 to 1 for each plasma particle in a cell, compares the random value with a predetermined maximum collision probability for each plasma particle, And a collision particle determiner for determining the plasma particle as the collision particle colliding with another plasma particle if the random value is smaller than the maximum collision probability.

본 발명의 실시예에 따르면, 플라즈마 시뮬레이션에서 플라즈마 입자의 거동을 정확하고 빠르게 계산 할 수 있다.According to the embodiment of the present invention, the behavior of plasma particles can be accurately and quickly calculated in the plasma simulation.

본 발명의 실시예에 따르면, 플라즈마 시뮬레이션을 위한 데이터 정보전달을 효율적으로 할 수 있는 메모리 구조 및 최적화된 알고리즘의 제공을 할 수 있다.According to the embodiment of the present invention, it is possible to provide a memory structure and an optimized algorithm that can effectively transfer data information for plasma simulation.

도 1은 본 발명의 일 실시예에 따라 셀 기반 플라즈마 시뮬레이션 장치를 나타내는 예시적인 도면이다.
도 2는 본 발명의 일 실시예에 따라 데이터 할당부에서 프로세서 코어의 효율성을 높이기 위해 메모리의 데이터 저장공간을 재할당하는 과정을 보여주는 예시적인 도면이다.
도 3은 본 발명의 일 실시예에 따라 플라즈마 입자의 이동 또는 제거에 의해 셀 기반으로 할당된 데이터 저장 공간에서 플라즈마 입자 정보가 처리되는 과정을 나타낸 예시적인 도면이다.
도 4는 본 발명의 일 실시예에 따라 셀 내의 충돌 입자를 결정하는 방법에 대한 예시적인 도면이다.
1 is an exemplary diagram illustrating a cell-based plasma simulation apparatus in accordance with an embodiment of the present invention.
2 is an exemplary diagram illustrating a process of reallocating a data storage space of a memory in order to increase the efficiency of a processor core in a data allocation unit according to an embodiment of the present invention.
3 is an exemplary diagram illustrating a process of processing plasma particle information in a data storage space allocated on a cell basis by moving or removing plasma particles according to an embodiment of the present invention.
4 is an exemplary diagram of a method for determining impact particles in a cell in accordance with an embodiment of the present invention.

본 발명의 다른 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술 되는 실시 예를 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예는 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Other advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the concept of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

만일 정의되지 않더라도, 여기서 사용되는 모든 용어들(기술 혹은 과학 용어들을 포함)은 이 발명이 속한 종래 기술에서 보편적 기술에 의해 일반적으로 수용되는 것과 동일한 의미를 가진다. 일반적인 사전들에 의해 정의된 용어들은 관련된 기술 그리고/혹은 본 출원의 본문에 의미하는 것과 동일한 의미를 갖는 것으로 해석될 수 있고, 그리고 여기서 명확하게 정의된 표현이 아니더라도 개념화되거나 혹은 과도하게 형식적으로 해석되지 않을 것이다.Unless defined otherwise, all terms (including technical or scientific terms) used herein have the same meaning as commonly accepted by the generic art in the prior art to which this invention belongs. Terms defined by generic dictionaries may be interpreted to have the same meaning as in the related art and / or in the text of this application, and may be conceptualized or overly formalized, even if not expressly defined herein I will not.

본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다' 및/또는 이 동사의 다양한 활용형들 예를 들어, '포함', '포함하는', '포함하고', '포함하며' 등은 언급된 조성, 성분, 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 조성, 성분, 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다. 본 명세서에서 '및/또는' 이라는 용어는 나열된 구성들 각각 또는 이들의 다양한 조합을 가리킨다.The terminology used herein is for the purpose of illustrating embodiments and is not intended to be limiting of the present invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. As used herein, the terms' comprise 'and / or various forms of use of the verb include, for example,' including, '' including, '' including, '' including, Steps, operations, and / or elements do not preclude the presence or addition of one or more other compositions, components, components, steps, operations, and / or components. The term 'and / or' as used herein refers to each of the listed configurations or various combinations thereof.

한편, 본 명세서 전체에서 사용되는 '~부', '~기', '~블록', '~모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미할 수 있다. 예를 들어 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미할 수 있다. 그렇지만 '~부', '~기', '~블록', '~모듈' 등이 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부', '~기', '~블록', '~모듈'은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다.It should be noted that the terms such as '~', '~ period', '~ block', 'module', etc. used in the entire specification may mean a unit for processing at least one function or operation. For example, a hardware component, such as a software, FPGA, or ASIC. However, '~ part', '~ period', '~ block', '~ module' are not meant to be limited to software or hardware. Modules may be configured to be addressable storage media and may be configured to play one or more processors. ≪ RTI ID = 0.0 >

따라서, 일 예로서 '~부', '~기', '~블록', '~모듈'은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부', '~기', '~블록', '~모듈'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부', '~기', '~블록', '~모듈'들로 결합되거나 추가적인 구성요소들과 '~부', '~기', '~블록', '~모듈'들로 더 분리될 수 있다.Thus, by way of example, the terms 'to', 'to', 'to block', 'to module' refer to components such as software components, object oriented software components, class components and task components Microcode, circuitry, data, databases, data structures, tables, arrays, and the like, as well as components, Variables. The functions provided in the components and in the sections ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ' , '~', '~', '~', '~', And '~' modules with additional components.

이하, 본 명세서에 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.

도 1은 본 발명의 일 실시예에 따라 셀 기반 플라즈마 시뮬레이션 장치(10)를 나타내는 도면이다.1 is a diagram showing a cell-based plasma simulation apparatus 10 according to an embodiment of the present invention.

도 1을 참조하면, 상기 플라즈마 시뮬레이션 장치(10)는 메모리 분할부(100), 데이터 할당부(200), 메모리 액세스부(300), 메모리부(400), 계산 노드 매칭부(500), 데이터 전처리부(600), 데이터 이동부(700) 및 충돌 입자 결정부(800)를 포함한다.1, the plasma simulation apparatus 10 includes a memory division unit 100, a data allocation unit 200, a memory access unit 300, a memory unit 400, a calculation node matching unit 500, A preprocessor 600, a data movement unit 700, and an impingement particle determiner 800.

상기 플라즈마 시뮬레이션 장치(10)는 플라즈마를 이용한 반도체 공정 장비의 특성을 해석하기 위한 장치로서 이를 이용하여 장비의 내부 상태를 예측하고 플라즈마에 관한 물리적 현상을 분석할 수 있다.The plasma simulation apparatus 10 is an apparatus for analyzing characteristics of a semiconductor process equipment using plasma, and can predict the internal state of the equipment and analyze physical phenomena related to the plasma.

상기 메모리 분할부(100)는 상기 메모리부(400)의 데이터 저장 공간을 셀의 개수를 기반으로 분할한다. 본 명세서에서 셀은 플라즈마가 분포하는 시뮬레이션 대상 영역을 구획하여 얻은 단위 영역을 의미한다.The memory division unit 100 divides the data storage space of the memory unit 400 based on the number of cells. In the present specification, a cell means a unit area obtained by dividing a simulation target area where plasma is distributed.

여기서, 플라즈마가 분포하는 시뮬레이션 대상 영역을 구획하여 얻은 단위 영역은 2차원일 경우 단위 면적으로 나누어진 사각형의 모양이 될 수 있고, 영역이 3차원 공간일 경우에는 단위 부피로 나누어진 육면체의 모양이 될 수도 있다. 그러나 이러한 모양으로 단위 영역의 형태가 제한되지는 않는다.Here, the unit area obtained by dividing the simulation target area in which the plasma is distributed may be a square shape divided by a unit area in the case of two dimensions, and a shape of a hexahedron divided into unit volumes in the case where the area is a three- . However, the shape of the unit region is not limited to this shape.

상기 데이터 할당부(200)는 상기 메모리 분할부(100)에 의해 분할된 메모리부(400)의 데이터 저장공간에서 각각의 셀에 대응하는 데이터 저장 공간에 해당 셀 내의 플라즈마 입자에 관한 데이터를 할당한다.The data allocating unit 200 allocates data related to plasma particles in the cell to the data storage space corresponding to each cell in the data storage space of the memory unit 400 divided by the memory partitioning unit 100 .

본 발명에 따르면, 플라즈마 입자들의 정보를 셀 기반으로 분할된 데이터 저장공간에 정렬시키고 이로 인해 플라즈마 입자 수보다 상대적으로 적은 셀 수에 기반한 정보교환 과정을 통해 플라즈마 입자에 기반한 정보교환 과정보다 정보 교환의 횟수를 줄일 수 있다.According to the present invention, the information of the plasma particles is arranged in a cell-based divided data storage space, and thereby the information exchange based on the number of cells is relatively smaller than the number of plasma particles, The number of times can be reduced.

예를 들면, 시뮬레이션이 수행되는 전체 플라즈마 입자 수가 1,000,000개이고 셀 당 10개의 입자가 포함되어 셀 수가 100,000개라고 한다면 기존의 플라즈마 시뮬레이션 장치에서는 입자의 거동을 분석하기 위해 플라즈마 입자와 셀 간의 정보교환을 1,000,000번을 수행하게 된다. 그러나, 플라즈마 입자들의 정보를 메모리에 셀 기반으로 정렬한 본 발명의 경우는 셀 수에 해당하는 100,000번의 정보교환으로 시뮬레이션을 수행하게 된다. 이러한 구성으로 인해 10배 정도 속도가 향상 될 수 있다.For example, if the total number of plasma particles to be simulated is 1,000,000, and the number of cells is 10,000, and the number of cells is 100,000, then the conventional plasma simulation apparatus can exchange information between the plasma particles and the cell for 1,000,000 . However, in the case of the present invention in which the information of the plasma particles is arranged in a cell-based manner in the memory, the simulation is performed with 100,000 information exchanges corresponding to the number of cells. This configuration can improve speed by a factor of ten.

상기 메모리 액세스부(300)는 상기 플라즈마 입자에 관한 데이터를 상기 메모리부(400)에 저장하거나 상기 메모리부(400)로부터 불러온다. 여기서 플라즈마 입자에 관한 데이터는 입자의 위치정보, 셀 내에 미치는 필드 값에 대한 정보 등을 포함할 수 있다.The memory access unit 300 stores data relating to the plasma particles in the memory unit 400 or loads the data from the memory unit 400. The data on the plasma particle may include position information of the particle, information on the field value within the cell, and the like.

상기 메모리부(400)은 데이터를 저장한다. 일 예로, 상기 메모리부(400)는 RAM과 같은 기억장치일 수 있으나 이에 제한되지는 않는다.The memory unit 400 stores data. For example, the memory unit 400 may be a storage device such as a RAM, but is not limited thereto.

상기 계산노드 매칭부(500)는 상기 메모리 분할부(100)에 의해 분할된 각각의 셀에 대응하는 데이터 저장공간과 플라즈마 입자에 관한 데이터를 처리하는 계산노드, 예컨대 코어를 매칭시킨다.The computation node matching unit 500 matches a computation node, for example, a core, that processes data related to plasma particles and a data storage space corresponding to each cell partitioned by the memory partition unit 100.

다시 말해, 상기 메모리 분할부(100)에 의해 분할되고, 상기 데이터 할당부(200)에서 플라즈마 입자에 관한 데이터를 각각의 셀에 대응하는 저장 공간에 할당한다. 그 다음, 계산노드 할당부(500)에서 다수의 계산노드를 각각에 셀에 매칭한다.In other words, the data is divided by the memory divider 100, and the data allocating unit 200 allocates the data on the plasma particles to the storage space corresponding to each cell. Then, the calculation node assigning unit 500 matches the plurality of calculation nodes to each cell.

도 2는 본 발명의 일 실시예에 따라 데이터 할당부에서 프로세서 코어의 효율성을 높이기 위해 메모리의 데이터 저장공간을 재할당하는 과정을 보여주는 예시적인 도면이다.2 is an exemplary diagram illustrating a process of reallocating a data storage space of a memory in order to increase the efficiency of a processor core in a data allocation unit according to an embodiment of the present invention.

본 발명에서 프로세서 코어를 이용한 처리속도 향상을 위해 근접한 계산 노드는 근접한 메모리 저장공간에서 주소를 읽을 수 있도록 구성된다. 그러나, 셀에 존재하는 입자들의 정보가 연속적인 메모리 저장공간에 할당되는 경우 프로세서 코어의 효율이 저하될 수 있다.In order to improve the processing speed using the processor core in the present invention, adjacent calculation nodes are configured to be able to read addresses in the adjacent memory storage space. However, if the information of the particles present in the cell is allocated to the continuous memory storage space, the efficiency of the processor core may deteriorate.

따라서, 도 2를 참조하면 상기 데이터 할당부(200)는 셀 내 각각의 플라즈마 입자에 관한 데이터가 해당 셀에 대응하는 데이터 저장 공간에서 시뮬레이션 대상 공간을 구성하는 셀의 전체 개수(예컨대, 도 2에서는 n)만큼 차이가 나는 주소에 저장되도록 플라즈마 입자에 관한 데이터를 상기 메모리부(400)에 할당한다. 이렇게 할당된 플라즈마 입자에 관한 데이터는 프로세서 코어의 병렬화 처리 효율을 증가시킬 수 있다.Referring to FIG. 2, the data allocating unit 200 allocates the total number of cells constituting the simulation object space in the data storage space corresponding to each cell of the respective plasma particles in the cell (for example, n) to the memory unit 400 so as to be stored at an address that is different from the address of the plasma particle. The data on the thus assigned plasma particles can increase the parallelization efficiency of the processor core.

본 발명의 일 실시예에 따르면, 상기 메모리부(400)가 제 1 내지 제 n 데이터 저장 공간으로 분할된 플라즈마 시뮬레이션 장치는 각각의 데이터 저장 공간이 제 1 내지 제 m 메모리 뱅크를 가질 수 있다. 도 2에서 메모리 뱅크에 기재된 0 내지 (n-1)+n(m-1)은 셀 내 플라즈마 입자에 관한 데이터가 저장되는 메모리 뱅크의 주소를 나타낸 것이다.According to an embodiment of the present invention, the plasma simulation apparatus in which the memory unit 400 is divided into first to n-th data storage spaces may have first to m-th memory banks. In FIG. 2, 0 to (n-1) + n (m-1) described in the memory bank represents the address of the memory bank in which data concerning the plasma particles in the cell is stored.

먼저, 제 1 데이터 저장공간의 제 1 메모리 뱅크는 0, 제 2 데이터 저장공간의 제 1 메모리 뱅크는 1, 제 3 데이터 저장공간의 제 1 메모리 뱅크는 2, 그리고 제 n 데이터 저장공간의 제 1 메모리 뱅크는 n-1의 값을 가진다. 이는 병렬적으로 구성된 프로세서 코어의 데이터 처리 효율을 높이기 위한 과정이다.First, the first memory bank of the first data storage space is set to 0, the first memory bank of the second data storage space is set to 1, the first memory bank of the third data storage space is set to 2, The memory bank has a value of n-1. This is a process for improving the data processing efficiency of the parallelly configured processor cores.

더해서, 제 1 데이터 저장공간의 제 2 메모리 뱅크는 9, 제 2 데이터 저장공간의 제 2 메모리 뱅크는 10, 그리고 제 n 데이터 저장공간의 제 m 메모리 뱅크는 (n-1)+n(m-1)의 값을 가진다.In addition, the second memory bank of the first data storage space is 9, the second memory bank of the second data storage space is 10, and the mth memory bank of the nth data storage space is (n-1) + n (m- 1).

예를 들면, 메모리가 9개의 데이터 저장 공간으로 분할된 플라즈마 시뮬레이션 장치에서 각각의 데이터 저장 공간에 6개의 메모리 뱅크를 가진다고 가정하면, 제 1 계산 노드의 제 1 데이터 저장 공간의 제 1 메모리 뱅크는 0을, 제 2 계산 노드의 제 2 데이터 저장 공간의 제 1 메모리 뱅크는 1을, 제 3 계산 노드의 제 3 데이터 저장 공간의 제 1 메모리 뱅크는 2를 가지고, 제 9 계산 노드의 제 9 데이터 저장 공간의 제 1 메모리 뱅크는 8을 가진다.For example, assuming that the memory has six memory banks in each data storage space in a plasma simulation apparatus divided into nine data storage spaces, the first memory bank of the first data storage space of the first calculation node is 0 The first memory bank of the second data storage space of the second compute node has 1, the first memory bank of the third data storage space of the third compute node has 2, the ninth data store of the ninth computation node The first memory bank of space has eight.

이어서, 제 1 계산 노드의 제 1 데이터 저장 공간의 제 2 메모리 뱅크는 9를, 제 2 계산 노드의 제 2 데이터 저장 공간의 제 2 메모리 뱅크는 10을, 제 3 계산 노드의 제 3 데이터 저장공간의 제 2 메모리 뱅크는 11을 가지고, 제 9 계산 노드의 제 9 데이터 저장 공간의 제 2 메모리 뱅크는 17을 가진다.Then, the second memory bank of the first data storage space of the first calculation node is 9, the second memory bank of the second data storage space of the second calculation node is 10, the third data storage space of the third calculation node And the second memory bank of the ninth data storage space of the ninth computing node has 17. [

이러한 규칙으로, 제 1 계산 노드의 제 1 데이터 저장공간의 제 6 메모리 뱅크는 45를, 제 2 계산 노드의 제 2 데이터 저장 공간의 제 6 메모리 뱅크는 46을, 제 3 계산 노드의 제 3 데이터 저장공간의 제 6 메모리 뱅크는 47을 가지고, 제 9 계산 노드의 제 9 데이터 저장 공간의 제 6 메모리 뱅크는 53을 가진다.With this rule, the sixth memory bank of the first data storage space of the first calculation node is 45, the sixth memory bank of the second data storage space of the second calculation node is 46, the third data of the third calculation node The sixth memory bank of the storage space has 47 and the sixth memory bank of the ninth data storage space of the ninth calculation node has 53. [

이렇게 각 계산 노드에 매칭된 데이터 저장 공간에서 플라즈마 입자에 관한 데이터를 메모리 뱅크에 할당하면, 근접한 계산 노드가 근접한 주소의 메모리 뱅크에 접근해 데이터를 처리할 수 있어 데이터 처리 속도가 향상될 수 있다.If the data related to the plasma particles are allocated to the memory banks in the data storage space matched to the respective calculation nodes, the adjacent calculation nodes can access the memory bank of the adjacent address to process the data, thereby improving the data processing speed.

도 3은 플라즈마 입자의 이동 또는 제거에 의해 셀 기반으로 할당된 데이터 저장 공간에서 플라즈마 입자 정보가 처리되는 과정을 나타낸 예시적인 도면이다.3 is an exemplary diagram illustrating a process in which plasma particle information is processed in a cell-based data storage space by moving or removing plasma particles.

도 3을 참조하면, 본 발명의 실시예에 따라 플라즈마 입자 데이터가 할당된 데이터 저장 공간에서 플라즈마 입자에 관한 데이터의 이동 또는 소멸과정을 이해할 수 있다.Referring to FIG. 3, the process of moving or destroying data related to plasma particles in a data storage space in which plasma particle data is allocated according to an embodiment of the present invention can be understood.

상기 데이터 전처리부(600)는 플라즈마 시뮬레이션에 의해 소멸하는 플라즈마 입자 및 다른 셀로 이동하는 플라즈마 입자의 수를 계산하고(S100), 상기 소멸하는 플라즈마 입자의 데이터와 다른 셀로 이동하는 플라즈마 입자의 데이터를 해당 데이터 저장 공간에서 마지막 주소의 저장 공간으로 이동시킨다(S200).The data preprocessing unit 600 calculates the number of plasma particles disappearing by plasma simulation and the number of plasma particles moving to other cells (S100), and transmits the data of the plasma particles moving to other cells to the corresponding data of the disappearing plasma particles And moves to the storage space of the last address in the data storage space (S200).

본 발명의 일 실시예에 따르면, 데이터 전처리부(600)에서는 이동 또는 소멸하는 플라즈마 입자를 선별하고 그 정보를 저장한다. 그 다음 이동 또는 소멸하는 입자들의 정보를 해당 셀의 데이터 저장 공간에서 마지막 주소의 메모리 뱅크로 보낸다.According to an embodiment of the present invention, the data preprocessing unit 600 selects and stores plasma particles that move or disappear. And then sends information of the moving or extinct particles to the memory bank of the last address in the data storage space of the corresponding cell.

나아가, 상기 데이터 이동부(700)에서는 상기 각각의 셀에 대응하는 데이터 저장 공간에서 마지막 주소의 메모리 뱅크로 이동한 플라즈마 입자의 데이터에 대해 플라즈마 입자의 거동에 관한 연산을 수행하여(S300), 해당 플라즈마 입자의 데이터를 삭제하거나 다른 셀에 대응하는 데이터 저장 공간으로 이동시킨다(S400).In addition, the data movement unit 700 performs an operation on the plasma particle motion on the data of the plasma particles moved to the memory bank of the last address in the data storage space corresponding to each cell (S300) The data of the plasma particles are deleted or moved to a data storage space corresponding to another cell (S400).

그 결과, 본 발명의 일 실시예에 따르면 계산 노드에 할당된 셀 내 모든 입자의 데이터에 대해 계산을 할 필요없이, 각 셀의 데이터 저장 공간에서 마지막 주소의 메모리 뱅크로 데이터가 이동한 입자에 대해서만 선별적으로 계산을 하게 되어서 플라즈마 시뮬레이션의 처리 속도를 향상 시킬 수 있다.As a result, according to the embodiment of the present invention, it is possible to calculate only the data of the cells which have moved to the memory bank of the last address in the data storage space of each cell without calculating the data of all the particles in the cells allocated to the calculation node So that the processing speed of the plasma simulation can be improved.

도 4는 본 발명의 일 실시예에 따라 셀 내의 충돌 입자를 결정하는 방법에 대한 예시적인 도면이다.4 is an exemplary diagram of a method for determining impact particles in a cell in accordance with an embodiment of the present invention.

도 4를 참조하면, 충돌 입자 결정부(800) 셀 내 각각의 플라즈마 입자에 대해서 0 내지 1 사이의 랜덤값을 생성하고, 상기 각각의 플라즈마 입자마다 기설정된 최대 충돌 확률과 상기 랜덤값을 비교하고, 상기 랜덤값이 상기 최대 충돌 확률보다 작으면 해당 플라즈마 입자를 다른 플라즈마 입자와 출동하는 충돌 입자로 결정한다.Referring to FIG. 4, a random value between 0 and 1 is generated for each plasma particle in the collision particle determiner 800, and the predetermined maximum collision probability for each plasma particle is compared with the random value If the random value is smaller than the maximum collision probability, the plasma particle is determined as a collision particle which moves to another plasma particle.

다시 말하면, 셀 내의 모든 플라즈마 입자들에 대해서 0 내지 1 사이의 랜덤값을 발생시키고, 기 설정된 최대 충돌 확률 Pmax값과 상기 랜덤값을 비교한 후, 상기 Pmax값 보다 상기 랜덤값이 낮으면 충돌 플라즈마 입자로 선정한다.In other words, a random value between 0 and 1 is generated for all the plasma particles in the cell. After comparing the random value with a predetermined maximum collision probability Pmax, if the random value is lower than the Pmax value, Particles.

본 발명의 일 실시예에 따르면, 셀 내의 유효한 플라즈마 입자에 대한 데이터를 가지는 유효한 셀을 선정한다. 그 뒤, 셀 내의 유효한 플라즈마 입자들에 대해서 0 내지 1 사이에 랜덤값(R0, R1, R2 등)을 발생시킨다. 그러고 나서 기설정한 최대 충돌 확률 Pmax값과 비교한다. 그 결과, R0 > Pmax 인 경우에는 그대로 두고, R0 < Pmax 인 경우에만 해당 입자를 충돌 입자로 선정한다.According to one embodiment of the present invention, a valid cell having data for valid plasma particles in the cell is selected. Then, a random value (R0, R1, R2, etc.) is generated between 0 and 1 for the effective plasma particles in the cell. Then, it is compared with the preset maximum collision probability Pmax. As a result, when R0 > Pmax, the particles remain as they are, and only when R0 < Pmax, the particles are selected as collision particles.

예를 들어, 기설정한 최대 충돌 확률 Pmax값이 0.01이고, 셀 내의 유효한 플라즈마 입자에 대해서 0 내지 1 사이의 랜덤값을 발생시켰을 때 R0는 0.005, R1은 0.2, R2는 0.5의 랜덤값이 생성되었다면, R0 < Pmax, R1 > Pmax, R2 > Pmax의 결과를 보여준다.For example, when a predetermined maximum collision probability Pmax value is 0.01 and a random value between 0 and 1 is generated for effective plasma particles in a cell, a random value of 0.005, R1 is 0.2, and R2 is 0.5 R0 < Pmax, R1 > Pmax, and R2 > Pmax.

그 결과, R0에 해당하는 플라즈마 입자는 충돌 입자로 결정되고, R1 및 R2에 해당하는 플라즈마 입자는 충돌 입자로 선정되지 않는다.As a result, plasma particles corresponding to R0 are determined as collision particles, and plasma particles corresponding to R1 and R2 are not selected as collision particles.

이상에서 실시예를 통해 본 발명을 설명하였으나, 위 실시예는 단지 본 발명의 사상을 설명하기 위한 것으로 이에 한정되지 않는다. 통상의 기술자는 전술한 실시예에 다양한 변형이 가해질 수 있음을 이해할 것이다. 본 발명의 범위는 첨부된 특허청구범위의 해석을 통해서만 정해진다.While the present invention has been described with reference to the exemplary embodiments, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. Those skilled in the art will appreciate that various modifications may be made to the embodiments described above. The scope of the present invention is defined only by the interpretation of the appended claims.

10: 플라즈마 시뮬레이션 장치
100: 메모리 분할부
200: 데이터 할당부
300: 메모리 액세스부
400: 메모리부
500: 계산노드 매칭부
600: 데이터 전처리부
700: 데이터 이동부
800: 충돌 입자 결정부
10: Plasma simulation device
100: memory partition
200: Data allocation unit
300: memory access unit
400:
500: calculation node matching unit
600: Data preprocessing section
700:
800: collision particle determining unit

Claims (5)

플라즈마 시뮬레이션 장치에 있어서,
데이터를 저장하는 메모리부;
상기 메모리부의 데이터 저장 공간을, 플라즈마가 분포하는 시뮬레이션 대상 공간을 구획하여 얻은 단위 공간인 셀의 개수를 기반으로 분할하는 메모리 분할부;
각각의 셀에 대응하는 데이터 저장 공간에 해당 셀 내의 플라즈마 입자에 관한 데이터를 할당하는 데이터 할당부; 및
상기 플라즈마 입자에 관한 데이터를 상기 메모리부에 저장하거나 상기 메모리부로부터 불러오는 메모리 액세스부;를 포함하고,
상기 데이터 할당부는,
플라즈마 시뮬레이션에 의해 소멸하는 플라즈마 입자 및 다른 셀로 이동하는 플라즈마 입자의 수를 계산하고, 상기 소멸하는 플라즈마 입자의 데이터와 다른 셀로 이동하는 플라즈마 입자의 데이터를 해당 데이터 저장 공간에서 마지막 주소의 저장 공간으로 이동시키는 데이터 전처리부;를 포함하는 플라즈마 시뮬레이션 장치.
In a plasma simulation apparatus,
A memory unit for storing data;
A memory partitioning unit for dividing the data storage space of the memory unit based on the number of cells which are unit spaces obtained by dividing a simulation object space in which plasma is distributed;
A data allocation unit that allocates data related to plasma particles in the cell to a data storage space corresponding to each cell; And
And a memory access unit which stores data relating to the plasma particles in the memory unit or loads the data from the memory unit,
Wherein the data allocator comprises:
Calculates the number of plasma particles disappearing by plasma simulation and the number of plasma particles moving to other cells, and transfers the data of the plasma particles moving to the cells other than the data of the disappearing plasma particles from the data storage space to the storage space of the last address And a data preprocessing unit for generating a plasma simulation result.
제1항에 있어서,
상기 각각의 셀에 대응하는 데이터 저장 공간과 플라즈마 입자에 관한 데이터를 처리하는 계산 노드를 매칭시키는 계산 노드 매칭부를 포함하는 플라즈마 시뮬레이션 장치.
The method according to claim 1,
And a calculation node matching unit for matching a data storage space corresponding to each of the cells and a calculation node processing data on plasma particles.
제1항에 있어서,
상기 데이터 할당부는,
셀 내 각각의 플라즈마 입자에 관한 데이터가 해당 셀에 대응하는 데이터 저장 공간에서 시뮬레이션 대상 공간을 구성하는 셀의 전체 개수만큼 차이가 나는 주소에 저장되도록 플라즈마 입자에 관한 데이터를 할당하는 플라즈마 시뮬레이션 장치.
The method according to claim 1,
Wherein the data allocator comprises:
Wherein data relating to plasma particles are allocated so that data on each plasma particle in the cell is stored in an address that is different from the total number of cells constituting the simulation object space in a data storage space corresponding to the cell.
제1항에 있어서,
상기 데이터 할당부는,
각각의 셀에 대응하는 데이터 저장 공간에서 마지막 주소의 저장 공간으로 이동한 플라즈마 입자의 데이터에 대해 플라즈마 입자의 거동에 관한 연산을 수행하여 해당 플라즈마 입자의 데이터를 삭제하거나 다른 셀에 대응하는 데이터 저장 공간으로 이동시키는 데이터 이동부;를 포함하는 플라즈마 시뮬레이션 장치.
The method according to claim 1,
Wherein the data allocator comprises:
The data of the plasma particles moved to the storage space of the last address in the data storage space corresponding to each cell is calculated to delete the data of the plasma particles, And a data transfer unit for transferring the data to the plasma processing unit.
제1항에 있어서,
셀 내 각각의 플라즈마 입자에 대해서 0 내지 1 사이의 랜덤값을 생성하고, 상기 각각의 플라즈마 입자마다 기 설정된 최대 충돌 확률과 상기 랜덤값을 비교하고, 상기 랜덤값이 상기 최대 충돌 확률보다 작으면 해당 플라즈마 입자를 다른 플라즈마 입자와 충돌하는 충돌 입자로 결정하는 충돌 입자 결정부를 포함하는 플라즈마 시뮬레이션 장치.
The method according to claim 1,
Generating a random value between 0 and 1 for each plasma particle in the cell, comparing the random value with a preset maximum collision probability for each plasma particle, and if the random value is smaller than the maximum collision probability And a collision particle determiner for determining plasma particles as collision particles that collide with other plasma particles.
KR1020170033687A 2017-03-17 2017-03-17 Cell-based plasma simulation apparatus utilizing gpu KR101918393B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170033687A KR101918393B1 (en) 2017-03-17 2017-03-17 Cell-based plasma simulation apparatus utilizing gpu

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170033687A KR101918393B1 (en) 2017-03-17 2017-03-17 Cell-based plasma simulation apparatus utilizing gpu

Publications (2)

Publication Number Publication Date
KR20180106083A KR20180106083A (en) 2018-10-01
KR101918393B1 true KR101918393B1 (en) 2018-11-13

Family

ID=63877681

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170033687A KR101918393B1 (en) 2017-03-17 2017-03-17 Cell-based plasma simulation apparatus utilizing gpu

Country Status (1)

Country Link
KR (1) KR101918393B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102503269B1 (en) 2018-09-05 2023-02-22 주식회사 엘지에너지솔루션 Hexagonal prism-shaped battery cell and Method for manufacturing the same, and Battery module comprising the same

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172169A (en) 2005-12-20 2007-07-05 Japan Agengy For Marine-Earth Science & Technology Particle data calculation program, and particle data calculation unit and method
JP2009069930A (en) 2007-09-11 2009-04-02 Prometech Software Inc Sliced data structure for particle-based simulation and method for loading particle-based simulation using sliced data structure into gpu
JP2015001769A (en) * 2013-06-13 2015-01-05 住友重機械工業株式会社 Plasma simulation method and plasma simulation program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007172169A (en) 2005-12-20 2007-07-05 Japan Agengy For Marine-Earth Science & Technology Particle data calculation program, and particle data calculation unit and method
JP2009069930A (en) 2007-09-11 2009-04-02 Prometech Software Inc Sliced data structure for particle-based simulation and method for loading particle-based simulation using sliced data structure into gpu
JP2015001769A (en) * 2013-06-13 2015-01-05 住友重機械工業株式会社 Plasma simulation method and plasma simulation program

Also Published As

Publication number Publication date
KR20180106083A (en) 2018-10-01

Similar Documents

Publication Publication Date Title
US5432718A (en) Particle interaction processing system
Chutinan et al. Computing polyhedral approximations to flow pipes for dynamic systems
Schäfer et al. A smooth particle hydrodynamics code to model collisions between solid, self-gravitating objects
KR101918393B1 (en) Cell-based plasma simulation apparatus utilizing gpu
Giles et al. GPU implementation of finite difference solvers
Kaveh et al. Plastic analysis of planar frames using CBO and ECBO algorithms
Eibl et al. A systematic comparison of runtime load balancing algorithms for massively parallel rigid particle dynamics
CN104572588B (en) Matrix inversion process method and apparatus
CN106021188A (en) Parallel hardware architecture and parallel computing method for floating point matrix inversion
US8717382B2 (en) Method of detecting collisions in graphics processing unit
Diekmann et al. Using space filling curves for efficient contact searching
Muholzoev et al. Probabilistic calculation of tolerances of the dimension chain based on the Floyd-Warshall algorithm
KR101690315B1 (en) Parallel neighbor search system and method thereof
Zagaris et al. A toolkit for parallel overset grid assembly targeting large-scale moving body aerodynamic simulations
CN113392570B (en) Method for evaluating homogeneity degree of pore structure of cement-based material particle stacking system
Filippone et al. CUDA dynamic active thread list strategy to accelerate debris flow simulations
EP3203400A1 (en) A computer implemented method of generation of statistically uncorrelated molecule&#39;s conformations and computer programs
Kopper et al. A framework for high-fidelity particle tracking on massively parallel systems
Özçetin et al. A Parallel Iterated Local Search Algorithm on GPUs for Quadratic Assignment Problem
Sawant et al. Study of shock-shock interactions using an unstructured amr octree dsmc code
CN116107640B (en) Systematic optimization system for DSMC algorithm cache and SIMD vectorization
Puri et al. Load balancing strategies for SPH
US7623994B2 (en) Object oriented acoustic modeling tools and methods
Emans et al. Steps towards GPU accelerated aggregation AMG
JP6905207B2 (en) Allocation device, allocation method, and allocation program

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