KR102226120B1 - 다중 코어 사운드 트레이싱 장치 및 방법 - Google Patents

다중 코어 사운드 트레이싱 장치 및 방법 Download PDF

Info

Publication number
KR102226120B1
KR102226120B1 KR1020190139501A KR20190139501A KR102226120B1 KR 102226120 B1 KR102226120 B1 KR 102226120B1 KR 1020190139501 A KR1020190139501 A KR 1020190139501A KR 20190139501 A KR20190139501 A KR 20190139501A KR 102226120 B1 KR102226120 B1 KR 102226120B1
Authority
KR
South Korea
Prior art keywords
sound
sound source
cores
sound propagation
core
Prior art date
Application number
KR1020190139501A
Other languages
English (en)
Inventor
박우찬
이태형
Original Assignee
주식회사 세종피아
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 세종피아 filed Critical 주식회사 세종피아
Priority to KR1020190139501A priority Critical patent/KR102226120B1/ko
Application granted granted Critical
Publication of KR102226120B1 publication Critical patent/KR102226120B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S7/00Indicating arrangements; Control arrangements, e.g. balance control
    • H04S7/30Control circuits for electronic adaptation of the sound field
    • H04S7/302Electronic adaptation of stereophonic sound system to listener position or orientation
    • H04S7/303Tracking of listener position or orientation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S7/00Indicating arrangements; Control arrangements, e.g. balance control
    • H04S7/40Visual indication of stereophonic sound image
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04SSTEREOPHONIC SYSTEMS 
    • H04S2420/00Techniques used stereophonic systems covered by H04S but not provided for in its groups
    • H04S2420/03Application of parametric coding in stereophonic audio systems

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Circuit For Audible Band Transducer (AREA)

Abstract

본 발명은 다중 코어 사운드 트레이싱 장치 및 방법에 관한 것으로, 상기 장치는 시스템 버스와의 데이터 교환을 제공하는 버스 인터페이스(Bus Interface), 각각이 상기 시스템 버스에 연결되고 사운드 소스 리스트에 관한 사운드 처리를 수행하는 복수의 사운드 전파 코어(Sound Propagation Core)들, 상기 복수의 사운드 전파 코어들 각각에 연결되어 상기 사운드 소스 리스트에 포함된 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 스케줄러(Scheduler) 및 상기 사운드 처리의 과정에서 사용되는 정보(Information)를 저장하는 정보저장 메모리들, 상기 복수의 사운드 전파 코어들의 동작을 제어하는 제어 레지스터부 및 상기 복수의 사운드 전파 코어들 간의 읽기 요청을 중재하는 읽기 요청 중재기(Read Request Arbiter)를 포함하는 내부 메모리 유닛(Internal Memory Unit, IMU)을 포함한다.

Description

다중 코어 사운드 트레이싱 장치 및 방법{MULTI-CORE SOUND TRACING APPARATUS AND METHOD}
본 발명은 다중 코어 사운드 트레이싱 기술에 관한 것으로, 더욱 상세하게는 사운드 전파 코어를 다중으로 확장하여 사운드 트레이싱의 실시간 처리를 제공할 수 있는 다중 코어 사운드 트레이싱 장치 및 방법에 관한 것이다.
사운드 트레이싱(sound tracing) 파이프 라인은 사운드 합성(sound synthesis), 사운드 전파(sound propagation), 사운드 생성(sound generation, auralization) 단계로 구성된다. 사운드 트레이싱 처리 단계 중에 사운드 전파 단계는 가상현실에 몰입감을 부여하는 가장 중요한 단계이며, 계산 복잡도가 높고 계산 시간이 가장 오래 걸리는 단계이다. 또한 이 단계의 가속여부가 사운드 트레이싱의 실시간 처리를 좌우한다. 사운드 합성은 사용자의 상호작용에 따른 사운드 효과를 생성하는 단계이다. 즉, 사용자가 문을 두드리거나, 물건을 떨어뜨려 발생하는 소리의 처리를 하며, 기존 게임, UI(user interface)등에서 일반적으로 사용되는 기술과 다르지 않다.
사운드 전파 단계는 합성된 사운드가 가상현실을 통해 청취자에게 전달되는 과정을 시뮬레이션 하는 단계로 가상현실의 음향적 특성(반사계수, 흡수계수 등)과 소리의 특성(반사, 흡수, 투과 등)을 가상현실의 기하적 특성(scene geometry)에 기반하여 처리하는 단계이다. 사운드 생성 단계는 전파 단계에서 계산된 소리의 특성값 (반사/투과/흡수 계수, 거리 감쇠 특성 등)을 이용하여 청취자 스피커의 구성을 바탕으로 입력 음향을 재생성하는 단계이다.
사운드 트레이싱은 먼저 다수개의 사운드 소스(sound source)들의 위치에서 레이(ray)를 슈팅(shooting)하고, 청취자 위치에서 레이를 슈팅한다. 슈팅된 각각의 레이는 자신과 충돌(hit)된 기하구조(geometry) 물체를 찾고, 충돌이 발생한 물체에 대하여 반사, 투과, 회절에 해당하는 레이를 생성한다. 이러한 과정은 컴퓨터 그래픽스의 레이트레이싱(ray tracing)과 유사하게 재귀적(recursive)으로 수행한다. 이렇게 사운드 소스들에서 슈팅된 레이와 청취자에서 슈팅된 레이들은 서로 만나게 될 수 있으며, 만나게 되는 경로(path)를 사운드 전파경로(sound propagation path)라고 한다. 사운드 전파 경로는 결국 사운드 소스 위치에서 출발한 사운드가 반사, 투과, 흡수, 회절 등을 거쳐서 청취자에게 도착하는 유효한 경로를 의미한다. 최종 사운드는 이러한 사운드 전파 경로들을 가지고 계산된다.
한국공개특허 제10-2015-0045817(2015.04.29)호
본 발명의 일 실시예는 사운드 전파 코어를 다중으로 확장하여 사운드 트레이싱의 실시간 처리를 제공할 수 있는 다중 코어 사운드 트레이싱 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 사운드 트레이싱에서 요구되는 초당 처리 프레임 수를 얻기 위해 사운드 전파 코어를 다중으로 확장하고, 사운드 소스들을 각각의 사운드 전파 코어에 할당하여 병렬로 처리함으로써 전체 처리 시간을 단축할 수 있는 다중 코어 사운드 트레이싱 장치 및 방법을 제공하고자 한다.
본 발명의 일 실시예는 사운드 전파 코어들 간의 동작을 제어하는 스케줄러 및 메모리 접근을 제어하는 중재기를 포함함으로써 사운드 전파 단계의 병렬 처리를 제공할 수 있는 다중 코어 사운드 트레이싱 장치 및 방법을 제공하고자 한다.
실시예들 중에서, 다중 코어 사운드 트레이싱(Tracing) 장치는 시스템 버스와의 데이터 교환을 제공하는 버스 인터페이스(Bus Interface), 각각이 상기 시스템 버스에 연결되고 사운드 소스 리스트에 관한 사운드 처리를 수행하는 복수의 사운드 전파 코어(Sound Propagation Core)들, 상기 복수의 사운드 전파 코어들 각각에 연결되어 상기 사운드 소스 리스트에 포함된 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 스케줄러(Scheduler) 및 상기 사운드 처리의 과정에서 사용되는 정보(Information)를 저장하는 정보저장 메모리들, 상기 복수의 사운드 전파 코어들의 동작을 제어하는 제어 레지스터부 및 상기 복수의 사운드 전파 코어들 간의 읽기 요청을 중재하는 읽기 요청 중재기(Read Request Arbiter)를 포함하는 내부 메모리 유닛(Internal Memory Unit, IMU)을 포함한다.
상기 버스 인터페이스는 상기 시스템 버스와 상기 내부 메모리 유닛(IMU) 간의 데이터 교환을 처리할 수 있다.
상기 복수의 사운드 전파 코어들 각각은 상기 시스템 버스와 마스터(master)로 연결되고, 상기 정보저장 메모리들과 상기 제어 레지스터부는 상기 시스템 버스와 슬레이브(slave)로 연결될 수 있다.
상기 스케줄러는 상기 복수의 사운드 전파 코어들 각각에 상기 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하는 제1 단계 및 상기 복수의 사운드 전파 코어들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 할당하는 제2 단계를 수행할 수 있다.
상기 정보저장 메모리들은 사운드 소스의 방향, 위치, 속도 및 강도에 관한 사운드 소스 정보(Sound Source Information)를 저장하는 사운드 소스 메모리와 사운드 공간을 구성하는 객체의 재질 정보(Material Information)를 저장하는 재질 메모리를 포함할 수 있다.
상기 읽기 요청 중재기는 상기 재질 메모리에 대한 상기 복수의 사운드 전파 코어들의 읽기 요청이 충돌하는 경우 우선순위에 따라 각 읽기 요청들을 순차적으로 허용할 수 있다.
상기 복수의 사운드 전파 코어들은 상기 사운드 소스 메모리의 사운드 소스 정보와 상기 재질 메모리의 재질 정보를 이용하여 상기 스케줄러에 의해 할당된 사운드 소스를 처리할 수 있다.
상기 제어 레지스터부는 상기 사운드 소스 리스트에 대해 각 사운드 전파 코어들에 할당되는 사운드 소스의 개수를 카운팅(counting)하여 사운드 소스 식별자(ID)를 결정하고, 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 상기 사운드 소스 메모리와 상기 복수의 사운드 전파 코어들에 전달할 수 있다.
상기 스케줄러는 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 이용하여 상기 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당할 수 있다.
실시예들 중에서, 다중 코어 사운드 트레이싱(Tracing) 방법은 (a)제어 레지스터부를 통해, 사운드 소스 리스트를 생성하는 단계, (b) 스케줄러를 통해, 복수의 사운드 전파 코어들 각각에 상기 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하는 단계, (c) 상기 제어 레지스터부를 통해, 상기 복수의 사운드 전파 코어들 각각에서 상기 사운드 소스들을 병렬적으로 처리하는 단계, (d) 상기 스케줄러를 통해, 상기 복수의 사운드 전파 코어들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 반복 할당하는 단계 및 (e) 상기 제어 레지스터부를 통해, 상기 복수의 사운드 전파 코어들 각각에서 상기 나머지 사운드 소스들을 병렬적으로 반복 처리하는 단계를 포함한다.
상기 (c) 단계 및 상기 (e) 단계는 상기 사운드 소스 리스트에 대해 각 사운드 전파 코어들에 할당되는 사운드 소스의 개수를 카운팅(counting)하여 사운드 소스 식별자(ID)를 결정하는 단계 및 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 사운드 소스 메모리와 상기 복수의 사운드 전파 코어들에 전달하는 단계를 포함한다.
상기 (c) 단계 및 상기 (e) 단계는 읽기 요청 중재기를 통해, 재질 메모리에 대한 상기 복수의 사운드 전파 코어들의 읽기 요청이 충돌하는 경우 우선순위에 따라 각 읽기 요청들을 순차적으로 허용하는 단계를 포함한다.
상기 (b) 단계 및 상기 (d) 단계는 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 이용하여 상기 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 단계를 포함한다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 다중 코어 사운드 트레이싱 장치 및 방법은 사운드 트레이싱에서 요구되는 초당 처리 프레임 수를 얻기 위해 사운드 전파 코어를 다중으로 확장하고, 사운드 소스들을 각각의 사운드 전파 코어에 할당하여 병렬로 처리함으로써 전체 처리 시간을 단축할 수 있다.
본 발명의 일 실시예에 따른 다중 코어 사운드 트레이싱 장치 및 방법은 사운드 전파 코어들 간의 동작을 제어하는 스케줄러 및 메모리 접근을 제어하는 중재기를 포함함으로써 사운드 전파 단계의 병렬 처리를 제공할 수 있다.
도 1은 본 발명에 따른 다중 코어 사운드 트레이싱 시스템의 흐름도를 설명하는 도면이다.
도 2는 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 구조를 설명하는 도면이다.
도 3은 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 동작 흐름을 설명하는 도면이다.
도 4는 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 처리 시간을 설명하는 도면이다.
도 5는 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 기능적 구성을 설명하는 도면이다.
도 6은 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 구조를 설명하는 도면이다.
도 7은 도 5의 스케줄러에서 수행되는 동작 스케줄링을 설명하는 도면이다.
도 8은 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 동작 소요 시간을 설명하는 도면이다.
도 9는 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 스케줄러 제어 흐름도이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치, HDD, SSD 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명에 따른 다중 코어 사운드 트레이싱 시스템의 흐름도를 설명하는 도면이다.
도 1을 참조하면, 다중 코어 사운드 트레이싱 시스템은 사운드 전파 단계를 수행할 수 있다. 이 때, 사운드 전파 단계는 SetupProcessing(셋업 처리 단계), RayGeneration(음향 레이 생성 단계), Travesal & Intersection Test(TnI)(횡단 교차 테스트 단계), HitPointCalc(충돌 지점 산출 단계), Propagation Path Validator & Reverb Geometry Collector (PPVnRGC)(음향 레이 처리 단계), PathReverbIRCalc(사운드 렌더링 단계)로 구성된다.
먼저, SetupProcessing 단계는 모드를 제어하면서, 가시성 테스트 레이(visibility test ray) 생성 정보를 준비하고, 준비된 가시성 테스트 레이 생성 정보와 PPV&RGC에서 생성된 사운드 전파 레이(sound propagation ray) 생성 정보를 선택한다. 가시성 테스트 레이는 청취자 레이(listener ray) 생성정보와 사운드 소스 레이(sound source ray) 생성정보의 2가지 타입으로 구성된다. 사운드 전파 레이는 사운드 전파 레이 타입, 생성될 레이의 원점정보, 생성될 레이의 방향(direction) 정보 등을 포함하고, 레이타입에 따라 부가정보를 더 포함할 수 있다. 사운드 전파 레이 타입은 가시성 테스트 반사 레이(visibility test reflection ray), 경로 테스트 레이(path test ray), 널(null) 레이를 포함한다. 생성된 레이 정보는 RayGeneration로 전달된다.
RayGeneration 단계는 가시성 테스트 레이 생성 정보 또는 사운드 전파 레이 생성 정보를 이용하여 해당 레이를 생성한다. RayGeneration은 전달받은 정보를 이용하여 생성될 레이의 원점과 방향을 계산한다. 계산된 레이의 방향은 정규화(normalization)을 하고, 레이의 길이를 계산한다. 생성된 레이는 Traversal & Intersection Test의 입력으로 전달된다.
Traversal & Intersection Test(TnI) 단계는 RayGeneration 단계로부터 생성된 레이(가시성 테스트 레이, 가시성 테스트 반사 레이, 경로 테스트 레이)를 TnI 입력 버퍼로부터 읽어오고 가속구조(acceleration structure)에서 레이와 충돌하는 삼각형(triangle)이 있는지 검사한다. 충돌검사를 위해서, TnI는 가속구조에 대한 횡단(traversal) 테스트와 레이-삼각형 교차(ray-triangle intersection) 테스트를 반복 수행한다. TnI의 판별결과는 TnI 출력 버퍼에 저장한다.
HitPointCalc 단계는 TnI 출력 버퍼로부터 전달된 결과를 이용하여 레이와 기하구조(geometry) 사이의 교차점(intersection point)를 계산하는 단계이다. 만약 충돌 발생이 확인되지 않은 레이 미스(ray miss)의 경우에는 어떠한 연산도 하지 않고 바이패스(bypass) 한다. 충돌 발생이 확인된 경우에는 해당 충돌 삼각형 식별자(hit triangle ID)에 대한 삼각형 정보 데이터(triangle info. data)를 요청한다. 계산된 결과와 충돌 삼각형 정보 데이터는 PPV&RGC로 전달된다
교차점(intersection point) 계산이 끝나고 삼각형 정보 데이터가 도착했다면, PPV&RGC로 해당 데이터들을 전달한다. PPVnRGC는 사운드 전파 시뮬레이션을 수행하는 핵심 기능블록으로써, 전달받은 데이터의 레이특성에 따라 반사 사운드 경로 테스트(reflection sound path test)를 진행할지 잔향 기하구조 수집(reverb geometry collection)을 진행할지 결정한다. PPVnRGC는 전파경로 유효성 검사기(Propagation Path Validator, PPV)와 잔향 기하구조 수집기(Reverb Geometry Collector, RGC)로 구성된다. PPV와 RGC의 임펄스 응답(impulse response)계산 관련 출력은 사운드 전파 모드에 따라 PathReverbIRCalc로 전달된다. 사운드 전파 모드가 경로모드(path mode)인 경우는 PPV의 출력이 전달되고, 잔향모드(reverb mode)인 경우는 RGC의 출력이 전달된다.
PPV는 직접 사운드 경로(direct sound path), 투과 사운드 경로(transmission sound path), 그리고 반사 사운드 경로(reflection sound path)를 찾는다. PPV는 회절 사운드 경로(diffraction sound path)를 찾기 위해서는 uniform theory diffraction(UTD)를 사용하고, 반사 사운드 경로를 찾기 위해 이미지 소스 기법(image source method)를 사용한다. SetupProcessing으로 전달되는 레이 생성정보는 경로 테스트 레이(path test ray), 청취자 가시성 테스트 반사 레이(listener visibility test reflection ray), 널(null) 레이이다. 만약 직접 사운드 경로 또는 투과 사운드 경로 또는 회절 사운드 경로 또는 반사 사운드 경로를 찾았다면, PPV는 임펄스 응답 계산에 필요한 정보를 생성하여 IR Calculator로 전달한다.
RGC는 잔향 시간(reverb time) 계산에 필요한 잔향 기하구조(reverb geometry) 정보를 계산한다. 잔향 시간은 자연스러운 잔향 사운드 생성을 위한 중요한 요소 중 하나로써, Eyring이 제안한 잔향 시간 계산방법을 사용한다. 이를 위해, 청취자 레이로 찾은 충돌 삼각형 정보(이하 path triangle)와 사운드 소스 레이로 찾은 충돌 삼각형 정보(이하 reverb triangle)를 이용한다. 유효한 잔향(reverberation) 정보를 계산하기 위해서는 경로 삼각형(path triangle)과 잔향 삼각형(reverb triangle)의 ID를 비교하여 동일한 ID에 대한 삼각형 정보만 사용해야 한다. 잔향시간 계산에 필요한 정보는 유효한 영역의 넓이와 부피이다. SetupProcessing으로 전달되는 레이 생성정보는 경로 테스트 레이(path test ray), 소스 가시성 테스트 반사 레이(source visibility test reflection ray), 널(null) 레이이다.
PathReverbIRCalc은 PPV&RGC로부터 전달받은 임펄스 응답 생성정보를 이용하여 경로/잔향 사운드 렌더링 정보 데이터(path/reverb sound rendering information data)를 생성한다. 경로 사운드 렌더링 정보(path sound rendering information)는 사운드 경로의 지연시간, 소리의 감쇠율 등을 포함한다. 잔향 사운드 렌더링 정보(reverb sound rendering information)는 소리의 감쇠율, 피드백 이득(feedback gain)등을 포함한다. 계산된 렌더링 정보는 SPOutBuffer(스피커 출력 버퍼)로 전달되어 외부 메모리에 저장된다.
도 2는 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 구조를 설명하는 도면이다.
도 2를 참조하면, 사운드 전파 코어(Sound Propagation Core)는 도 1의 사운드 전파 단계에서 수행되는 각각의 동작을 처리하는 하드웨어로 구성되어 있고, 이를 동작시키기 위해 필요한 제어신호를 발생시키는 제어 레지스터부(Control Registers), 사운드 소스 정보 데이터(방향, 위치, 속도, 강도)를 저장하고 있는 사운드 소스 정보 메모리(Sound Source Information), 그리고 물체의 재질 정보를 저장하고 있는 메모리(Material Information)로 구성된다. 사운드 전파 코어는 시스템 버스에 마스터(master)로서 연결되어 있고, 정보저장 메모리와 제어 레지스터부는 시스템 버스에 슬레이브(slave)로서 연결되어 있다. 정보저장 메모리와 제어 레지스터부에 대한 데이터 저장은 버스를 통해 이루어진다.
도 3은 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 동작 흐름을 설명하는 도면이다.
도 3을 참조하면, 사운드 전파 코어 1개만을 사용한 단일 코어 사운드 트레이싱 장치의 동작 흐름은 사운드 전파 코어 1개에 처리하고자 하는 사운드 소스 16개를 모두 할당하여 처리하는 동작 흐름을 나타낸다. 도 3에서, 각 사운드 소스들의 처리가 1개씩 순차적으로 진행됨에 따라 하나의 프레임에 해당하는 데이터 전부를 얻기 위해서는 전체 사운드 소스들이 순차적으로 모두 처리되어 마지막 사운드 소스(Src15)에 대한 처리까지 완료되어야 한다.
도 4는 단일 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 처리 시간을 설명하는 도면이다.
도 4를 참조하면, 사운드 전파 코어 1개만을 사용한 단일 코어 사운드 트레이싱 장치에서 모든 음원들을 처리하기 위해 필요한 시간을 나타낸다. 각 음원 Src00 ~ Src15에 대해 소요되는 시간을 각각 t00 ~ t15로 표시하였고, 각 음원에 대해서 순차적으로 처리해야하기 때문에 모든 음원을 처리하기 위해 필요한 시간은 각 음원을 처리하는 각 소요시간을 모두 더한 시간이 된다.
도 5는 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 다중 코어 사운드 트레이싱 장치의 기능적 구성을 설명하는 도면이다.
도 5를 참조하면, 다중 코어 사운드 트레이싱 장치(500)는 버스 인터페이스(510), 사운드 전파 코어(530), 스케줄러(550), 내부 메모리 유닛(570) 및 제어부(590)를 포함할 수 있다.
버스 인터페이스(510)는 시스템 버스와의 데이터 교환을 처리할 수 있다. 일 실시예에서, 버스 인터페이스(510)는 시스템 버스와 내부 메모리 유닛(570) 사이에 위치하여 내부 메모리 유닛(570)과 시스템 버스 간의 데이터 교환을 처리하는 동작을 수행할 수 있다. 즉, 내부 메모리 유닛(570)에 포함된 메모리들과 제어 레지스터부에 대한 데이터 저장은 시스템 버스를 통해 전송되고 버스 인터페이스(510)를 통해 처리될 수 있다.
사운드 전파 코어(530)는 시스템 버스와 연결되고 사운드 트레이싱 과정에서 사운드 전파 단계를 처리할 수 있다. 사운드 전파 코어(530)는 내부 메모리 유닛(570)에 저장된 정보를 기초로 사운드 소스를 처리하여 프레임별 사운드 재생을 위한 사운드 처리 동작을 수행할 수 있다. 한편, 사운드 전파 코어(530)는 내부 메모리 유닛(570)에 포함된 제어 레지스터부의 제어에 따라 사운드 소스를 처리할 수 있다.
일 실시예에서, 사운드 전파 코어(530)는 시스템 버스와 마스터(master)로 연결될 수 있다. 시스템 버스에 마스터로 연결되는 경우 사운드 전파 코어(530)는 시스템 버스의 사용 주체로서의 역할을 담당할 수 있다. 즉, 사운드 전파 코어(530)는 시스템 버스의 사용을 개시하거나 또는 종료할 수 있다. 한편, 복수의 사운드 전파 코어(530)들은 동시에 시스템 버스를 사용할 수 없고, 일정한 순서에 따라 사용할 수 있다.
일 실시예에서, 사운드 전파 코어(530)는 사운드 소스 메모리의 사운드 소스 정보와 재질 메모리의 재질 정보를 이용하여 스케줄러(550)에 의해 할당된 사운드 소스를 처리할 수 있다. 여기에서, 사운드 소스 메모리는 사운드 소스 정보(sound source information)를 저장하는 내부 메모리에 해당할 수 있고, 재질 메모리는 재질 정보(material information)를 저장하는 내부 메모리에 해당할 수 있으며, 사운드 소스 메모리와 재질 메모리는 내부 메모리 유닛(570)에 포함될 수 있다.
스케줄러(550)는 복수의 사운드 전파 코어(530)들 각각에 연결되어 상기 사운드 소스 리스트에 포함된 복수의 사운드 소스들을 복수의 사운드 전파 코어(530)들에 할당할 수 있다. 즉, 스케줄러(550)는 복수의 사운드 전파 코어(530)들 간의 동작을 스케줄링하여 사운드 전파의 동작 소요 시간이 최적화되도록 할 수 있다.
일 실시예에서, 스케줄러(550)는 복수의 사운드 전파 코어(530)들 각각에 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하는 제1 단계 및 복수의 사운드 전파 코어(530)들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 할당하는 제2 단계를 수행할 수 있다. 즉, 스케줄러(550)는 복수의 사운드 전파 코어(530)들 간의 사운드 처리 과정을 2단계로 구분하여 처리할 수 있다. 제1 단계에서, 스케줄러(550)는 복수의 사운드 전파 코어(530)들 각각에 사운드 소스들을 순차적으로 할당할 수 있다. 제2 단계에서, 스케줄러(550)는 각 사운드 전파 코어(530)들에서의 처리가 종료된 순서대로 사운드 소스 리스트 상의 사운드 소스들을 순차적으로 할당할 수 있다.
일 실시예에서, 스케줄러(550)는 사운드 소스의 개수와 사운드 소스 식별자를 이용하여 복수의 사운드 소스들을 복수의 사운드 전파 코어(530)들에 할당할 수 있다. 보다 구체적으로, 스케줄러(550)는 사운드 소스의 개수에 따라 갱신되는 사운드 소스 식별자를 통해 현재 처리 대상이 되는 사운드 소스를 식별할 수 있고, 해당 사운드 소스를 할당 대기 중인 사운드 전파 코어(530)에 할당할 수 있다. 이 때, 사운드 소스의 할당에 따른 사운드 소스 식별자의 갱신은 제어 레지스터부에 의해 수행될 수 있다.
일 실시예에서, 스케줄러(550)는 적어도 두개의 사운드 전파 코어(530)들이 동시에 처리 완료된 경우 이미 처리한 사운드 소스들의 누적 개수, 직전 사운드 소스의 처리 소요 시간 및 직전 할당된 사운드 전파 코어(530)와의 거리를 기초로 결정되는 순서에 따라 사운드 소스들을 할당할 수 있다. 즉, 동시에 처리 완료한 사운드 전파 코어(530)들 중에서 이미 처리한 사운드 소스들의 누적 개수가 적을수록, 직전 사운드 소스의 처리 소요 시간이 짧을수록, 직전 할당된 사운드 전파 코어(530)와의 거리가 멀수록 사운드 소스를 다른 사운드 전파 코어(530)들보다 상대적으로 더 빨리 할당 받을 수 있다.
내부 메모리 유닛(570)은 사운드 처리의 과정에서 사용되는 정보(Information)를 저장하는 정보저장 메모리들, 복수의 사운드 전파 코어(530)들의 동작을 제어하는 제어 레지스터부 및 복수의 사운드 전파 코어(530)들 간의 읽기 요청을 중재하는 읽기 요청 중재기(Read Request Arbiter)를 포함하는 내부 메모리 유닛(Internal Memory Unit, IMU)을 포함할 수 있다. 각 구성들의 역할과 동작에 대해서는 도 6에서 보다 자세히 설명한다.
일 실시예에서, 정보저장 메모리들과 제어 레지스터부는 시스템 버스와 슬레이브(slave)로 연결될 수 있다. 시스템 버스에 슬레이브로 연결되는 경우 각 구성들은 시스템 버스에 대한 사용 과정에서 수동적인 역할을 담당할 수 있다. 즉, 정보저장 메모리들과 제어 레지스터부는 마스터로 연결된 사운드 전파 코어(530)들의 시스템 버스 사용 과정에서 데이터를 수신하거나 저장하는 동작을 수행할 수 있다.
일 실시예에서, 정보저장 메모리들은 사운드 소스의 방향, 위치, 속도 및 강도에 관한 사운드 소스 정보(Sound Source Information)를 저장하는 사운드 소스 메모리와 사운드 공간을 구성하는 객체의 재질 정보(Material Information)를 저장하는 재질 메모리를 포함할 수 있다.
일 실시예에서, 읽기 요청 중재기는 재질 메모리에 대한 복수의 사운드 전파 코어(530)들의 읽기 요청이 충돌하는 경우 우선순위에 따라 각 읽기 요청들을 순차적으로 허용할 수 있다.
일 실시예에서, 제어 레지스터부는 사운드 소스 리스트에 대해 각 사운드 전파 코어들에 할당되는 사운드 소스의 개수를 카운팅(counting)하여 사운드 소스 식별자(ID)를 결정하고, 사운드 소스의 개수와 사운드 소스 식별자를 사운드 소스 메모리와 복수의 사운드 전파 코어(530)들에 전달할 수 있다.
제어부(590) 다중 코어 사운드 트레이싱 장치(500)의 전체적인 동작을 제어하고, 사운드 전파 코어(530), 스케줄러(550) 및 내부 메모리 유닛(570) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.
도 6은 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 구조를 설명하는 도면이다.
도 6을 참조하면, 다중 코어 사운드 트레이싱 장치(500)는 버스 인터페이스(510), 복수의 사운드 전파 코어(530)들, 스케줄러(550), 내부 메모리 유닛(570)을 포함하여 구현될 수 있다. 또한, 내부 메모리 유닛(570)은 제어 레지스터부(571), 사운드 소스 메모리(573), 재질 메모리(575) 및 읽기 요청 중재기(577)를 포함하여 구현될 수 있다.
제어 레지스터부(571)는 각 사운드 전파 코어(530)들의 동작을 제어하는 역할을 수행할 수 있고, 사운드 소스 메모리(573)는 사운드 전파 코어(530)들에서 필요로 하는 사운드 소스 정보(방향, 위치, 속도, 강도)를 저장할 수 있으며, 재질 메모리(575)는 물체의 재질 정보를 저장할 수 있다.
읽기 요청 중재기(577)는 사운드 전파 코어(530)에서 각 사운드 소스에 해당하는 처리 동작 중, 물체의 재질 정보를 저장하고 있는 재질 메모리(Material information)(575) 내의 데이터를 각 사운드 전파 코어(530)가 동시에 읽어갈 수 있으므로 이러한 동시 읽기 요청(request)에 대한 중재(Arbitration)를 담당하는 역할을 수행할 수 있다.
즉, 서로 다른 사운드 전파 코어(530)에서 읽기 요청이 동시에 발생하였을 경우에 읽기 요청 중재기(577)는 정해진 우선순위에 의해 하나의 사운드 전파 코어(530)에 대해서 읽기 동작을 먼저 허용하고, 나머지 다른 사운드 전파 코어(530)의 읽기 요청에 대해서 순차적으로 읽기 동작을 허용할 수 있다.
도 7은 도 5의 스케줄러에서 수행되는 동작 스케줄링을 설명하는 도면이다.
도 7을 참조하면, 다중 코어 사운드 트레이싱 장치(500)는 스케줄러(550)를 통해 사운드 소스 리스트에 포함된 복수의 사운드 소스들을 복수의 사운드 전파 코어(530)들에 할당할 수 있다.
도 7에서, 사운드 전파 코어 4개, 사운드 소스 16개를 적용한 경우, 한 프레임 내에서 각 사운드 소스에 대한 처리 순서 스케줄링을 확인할 수 있다. 먼저 스케줄러(550)는 제1 단계로서 각 사운드 전파 코어(Core0, Core1, Core2, Core3)에 SrcID(Src00, Src01, Src02, Src03)에 해당하는 사운드 소스 정보(방향, 위치, 속도, 강도)를 인가하고 동작을 시작하도록 할 수 있다. 이 때, SrcID는 Src04로 지정된다. 소요시간이 가장 짧은 Src00에 해당하는 처리가 완료되면 해당 Core0는 현재 SrcID인 Src04에 대한 정보를 받아들여 동작을 시작하고, SrcID는 '1' 증가하여 Src05를 지정할 수 있다.
또한, 스케줄러(550)는 다음으로 처리가 완료되면 해당 Core2는 현재 SrcID인 Src05에 대한 정보를 받아들여 동작을 시작하고, SrcID는 '1' 증가하여 Src06를 지정할 수 있다. 스케줄러(550)는 이와 같은 방식으로 SrcID가 Src16이 될 때까지 반복 동작할 수 있고, SrcID가 Src16인 상태에서 동작을 마무리하는 각 Core는 한 프레임 내에서의 동작을 종료하도록 할 수 있다.
따라서, 도 7의 경우 Core3는 Src09에 대한 동작, Core0는 Src14에 대한 동작, Core1는 Src15에 대한 동작 그리고 Core2는 Src13에 동작이 차례로 마무리될 때에 SrcID가 Src16인 상태이므로 마지막으로 동작을 종료하고, 다음 프레임에 대한 동작을 시작할 때까지 대기할 수 있다.
도 8은 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 동작 소요 시간을 설명하는 도면이다.
도 8을 참조하면, 다중 코어 사운드 트레이싱 장치(500)는 복수의 사운드 전파 코어(530)들을 이용하여 프레임별 사운드 전파에 관한 동작 소요 시간을 최적화할 수 있다. 도 8에서, 다중 코어 사운드 트레이싱 장치(500)에 대해 사운드 전파 코어 4개, 사운드 소스 16개를 적용한 경우의 동작 스케줄링에 따른 소요시간을 확인할 수 있다. 즉, 각 사운드 소스 별로 소요되는 시간은 도 4에 나타나 있는 것과 동일하고, 각 사운드 전파 코어(530)에 할당된 사운드 소스 별 처리 소요시간을 확인할 수 있다.
도 8은 사운드 소스 리스트 상의 사운드 소스를 4개의 사운드 전파 코어를 최대한 사용했을 때의 스케줄링 과정의 일 실시예에 해당할 수 있고, 이 경우 사운드 전파 코어 2번(Core 2)에서 사용한 시간이 완료 시간에 해당할 수 있다. 따라서, 4개의 사운드 전파 코어(530)를 최적 스케줄링으로 처리한 시간이 도 4에 나타난 단일 사운드 전파 코어(530)를 사용한 시간보다 월등히 작음을 확인할 수 있다.
도 9는 본 발명의 일 실시예에 따른 다중 사운드 전파 코어로 구성된 사운드 트레이싱 장치의 스케줄러 제어 흐름도이다.
도 9를 참조하면, 다중 코어 사운드 트레이싱 장치(500)는 복수의 사운드 전파 코어(530)들의 동작을 제어하는 스케줄러(550)를 포함하여 구현될 수 있다. 도 9의 경우, 임의 개수의 사운드 소스 리스트에 대해 사운드 전파 단계를 사운드 트레이싱 기법으로 수행함에 있어서 단위 프레임을 처리하는 제어 흐름도로서 4개의 사운드 전파 코어(530)들로서 동작하는 것으로 가정한다.
다중 코어 사운드 트레이싱 장치(500)는 처리해야 하는 SrcMaxNum개의 사운드 소스 정보 세트를 포함하는 사운드 소스 리스트를 생성할 수 있고(S910), 이 때 생성된 사운드 소스 리스트는 SrcID를 주소로 하는 메모리 저장소에 해당 정보(위치, 방향, 속도, 강도)를 갖게 된다.
다중 코어 사운드 트레이싱 장치(500)는 각 사운드 전파 코어(Core0, Core1, Core2, Core3)에 SrcID(00, 01, 02, 03)에 해당하는 사운드 소스 정보(방향, 위치, 속도, 강도)를 인가하고 동시에 동작을 시작하도록 하며, 그 직후에 SrcID는 04로 지정하여 가장 먼저 동작을 완료하는 사운드 전파 코어(530)에 사운드 소스를 할당할 수 있다(S930).
다중 코어 사운드 트레이싱 장치(500)는 4개의 사운드 전파 코어(530)들 중 가장 먼저 그 동작을 완료하는 사운드 전파 코어(CoreX, X=0, 1, 2, or 3)에 대해서 다음 SrcID (< SrcMaxNum)에 해당하는 사운드 소스 정보(위치, 방향, 속도, 강도)를 읽어와 가동시킬 수 있다. 다중 코어 사운드 트레이싱 장치(500)는 그 직후에 SrcID를 '1' 증가시켜 다음 동작에서 사용할 사운드 소스를 지정하도록 할 수 있다(S950).
다중 코어 사운드 트레이싱 장치(500)는 S950 단계의 과정을 SrcID 값이 SrcMaxNum 값과 같은 값이 될 때까지 반복할 수 있다. 즉, 동작을 완료하는 사운드 전파 코어(CoreX, X=0, 1, 2, or 3)에 대해서 동작을 완료하는 시점에 SrcID와 SrcMaxNum의 값이 같으면 해당 사운드 전파 코어(530)를 추가로 가동시키지 않고 동작을 마무리할 수 있다. 결과적으로, 모든 사운드 전파 코어(530)의 동작이 마무리되면 한 프레임에 대한 사운드 트레이싱의 동작이 완료될 수 있다(S970).
결과적으로, 다중 코어 사운드 트레이싱 장치(500)는 제어 레지스터부(571)를 통해 사운드 소스 리스트를 생성하고, 스케줄러(550)를 통해 복수의 사운드 전파 코어(530)들 각각에 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하며, 제어 레지스터부(571)를 통해 복수의 사운드 전파 코어(530)들 각각에서 사운드 소스들을 병렬적으로 처리하고, 스케줄러(550)를 통해 복수의 사운드 전파 코어(530)들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 반복 할당하며, 제어 레지스터부(571)를 통해 복수의 사운드 전파 코어(530)들 각각에서 나머지 사운드 소스들을 병렬적으로 반복 처리할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
500: 다중 코어 사운드 트레이싱 장치
510: 버스 인터페이스 530: 사운드 전파 코어
550: 스케줄러 570: 내부 메모리 유닛
571: 제어 레지스터부 573: 사운드 소스 메모리
575: 재질 메모리 577: 읽기 요청 중재기
590: 제어부

Claims (13)

  1. 시스템 버스와의 데이터 교환을 제공하는 버스 인터페이스(Bus Interface);
    각각이 상기 시스템 버스에 연결되고 사운드 소스 리스트에 관한 사운드 처리를 수행하는 복수의 사운드 전파 코어(Sound Propagation Core)들;
    상기 복수의 사운드 전파 코어들 각각에 연결되어 상기 사운드 소스 리스트에 포함된 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 스케줄러(Scheduler); 및
    상기 사운드 처리의 과정에서 사용되는 정보(Information)를 저장하는 정보저장 메모리들, 상기 복수의 사운드 전파 코어들의 동작을 제어하는 제어 레지스터부 및 상기 복수의 사운드 전파 코어들 간의 읽기 요청을 중재하는 읽기 요청 중재기(Read Request Arbiter)를 포함하는 내부 메모리 유닛(Internal Memory Unit, IMU)을 포함하되,
    상기 정보저장 메모리들은 저장하는 정보에 따라 독립적으로 구분되어 정의된 사운드 소스 메모리와 재질 메모리를 포함하고,
    상기 읽기 요청 중재기는 상기 재질 메모리에 대한 상기 복수의 사운드 전파 코어들의 읽기 요청이 충돌하는 경우 우선순위에 따라 각 읽기 요청들을 순차적으로 허용하는 것을 특징으로 하는 다중 코어 사운드 트레이싱(Tracing) 장치.
  2. 제1항에 있어서, 상기 버스 인터페이스는
    상기 시스템 버스와 상기 내부 메모리 유닛(IMU) 간의 데이터 교환을 처리하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  3. 제1항에 있어서,
    상기 복수의 사운드 전파 코어들 각각은 상기 시스템 버스와 마스터(master)로 연결되고,
    상기 정보저장 메모리들과 상기 제어 레지스터부는 상기 시스템 버스와 슬레이브(slave)로 연결되는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  4. 제1항에 있어서, 상기 스케줄러는
    상기 복수의 사운드 전파 코어들 각각에 상기 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하는 제1 단계 및 상기 복수의 사운드 전파 코어들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 할당하는 제2 단계를 수행하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  5. 제1항에 있어서, 상기 정보저장 메모리들은
    사운드 소스의 방향, 위치, 속도 및 강도에 관한 사운드 소스 정보(Sound Source Information)를 저장하는 사운드 소스 메모리와 사운드 공간을 구성하는 객체의 재질 정보(Material Information)를 저장하는 재질 메모리를 포함하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  6. 삭제
  7. 제5항에 있어서, 상기 복수의 사운드 전파 코어들은
    상기 사운드 소스 메모리의 사운드 소스 정보와 상기 재질 메모리의 재질 정보를 이용하여 상기 스케줄러에 의해 할당된 사운드 소스를 처리하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  8. 제5항에 있어서, 상기 제어 레지스터부는
    상기 사운드 소스 리스트에 대해 각 사운드 전파 코어들에 할당되는 사운드 소스의 개수를 카운팅(counting)하여 사운드 소스 식별자(ID)를 결정하고, 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 상기 사운드 소스 메모리와 상기 복수의 사운드 전파 코어들에 전달하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  9. 제8항에 있어서, 상기 스케줄러는
    상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 이용하여 상기 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 장치.
  10. (a)제어 레지스터부를 통해, 사운드 소스 리스트를 생성하는 단계;
    (b) 스케줄러를 통해, 복수의 사운드 전파 코어들 각각에 상기 사운드 소스 리스트의 순서에 따라 사운드 소스들을 순차적으로 할당하는 단계;
    (c) 상기 제어 레지스터부를 통해, 상기 복수의 사운드 전파 코어들 각각에서 상기 사운드 소스들을 병렬적으로 처리하는 단계;
    (d) 상기 스케줄러를 통해, 상기 복수의 사운드 전파 코어들의 처리 순서에 따라 나머지 사운드 소스들을 순차적으로 반복 할당하는 단계; 및
    (e) 상기 제어 레지스터부를 통해, 상기 복수의 사운드 전파 코어들 각각에서 상기 나머지 사운드 소스들을 병렬적으로 반복 처리하는 단계를 포함하되,
    상기 (c) 및 (e) 단계는, 읽기 요청 중재기를 통해, 저장하는 정보에 따라 독립적으로 구분되어 정의된 사운드 소스 메모리와 재질 메모리 중 상기 재질 메모리에 대한 상기 복수의 사운드 전파 코어들의 읽기 요청이 충돌하는 경우 우선순위에 따라 각 읽기 요청들을 순차적으로 허용하는 단계를 포함하는 것을 특징으로 하는 다중 코어 사운드 트레이싱(Tracing) 방법.
  11. 제10항에 있어서, 상기 (c) 단계 및 상기 (e) 단계는
    상기 사운드 소스 리스트에 대해 각 사운드 전파 코어들에 할당되는 사운드 소스의 개수를 카운팅(counting)하여 사운드 소스 식별자(ID)를 결정하는 단계 및 상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 사운드 소스 메모리와 상기 복수의 사운드 전파 코어들에 전달하는 단계를 포함하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 방법.
  12. 삭제
  13. 제11항에 있어서, 상기 (b) 단계 및 상기 (d) 단계는
    상기 사운드 소스의 개수와 상기 사운드 소스 식별자를 이용하여 상기 복수의 사운드 소스들을 상기 복수의 사운드 전파 코어들에 할당하는 단계를 포함하는 것을 특징으로 하는 다중 코어 사운드 트레이싱 방법.
KR1020190139501A 2019-11-04 2019-11-04 다중 코어 사운드 트레이싱 장치 및 방법 KR102226120B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190139501A KR102226120B1 (ko) 2019-11-04 2019-11-04 다중 코어 사운드 트레이싱 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190139501A KR102226120B1 (ko) 2019-11-04 2019-11-04 다중 코어 사운드 트레이싱 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102226120B1 true KR102226120B1 (ko) 2021-03-11

Family

ID=75142871

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190139501A KR102226120B1 (ko) 2019-11-04 2019-11-04 다중 코어 사운드 트레이싱 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102226120B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687948A (zh) * 2021-08-25 2021-11-23 中国人民解放军国防科技大学 面向多核cpu集群系统的水声传播模型混合并行方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150045817A (ko) 2013-10-21 2015-04-29 삼성전자주식회사 화상의 렌더링을 위하여 광선 추적을 수행하는 방법 및 장치.
US20160034248A1 (en) * 2014-07-29 2016-02-04 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for conducting interactive sound propagation and rendering for a plurality of sound sources in a virtual environment scene
KR20190057558A (ko) * 2017-11-20 2019-05-29 삼성전자주식회사 멀티 코어 제어 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150045817A (ko) 2013-10-21 2015-04-29 삼성전자주식회사 화상의 렌더링을 위하여 광선 추적을 수행하는 방법 및 장치.
US20160034248A1 (en) * 2014-07-29 2016-02-04 The University Of North Carolina At Chapel Hill Methods, systems, and computer readable media for conducting interactive sound propagation and rendering for a plurality of sound sources in a virtual environment scene
KR20190057558A (ko) * 2017-11-20 2019-05-29 삼성전자주식회사 멀티 코어 제어 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113687948A (zh) * 2021-08-25 2021-11-23 中国人民解放军国防科技大学 面向多核cpu集群系统的水声传播模型混合并行方法
CN113687948B (zh) * 2021-08-25 2023-08-08 中国人民解放军国防科技大学 面向多核cpu集群系统的水声传播模型混合并行方法

Similar Documents

Publication Publication Date Title
US11294599B1 (en) Registers for restricted memory
US20090119456A1 (en) Processor and memory control method
JP2021520566A (ja) オンチップコードのブレークポイントによるデバッグ方法、オンチッププロセッサ及びブレークポイントによるチップデバッグシステム
US6507809B1 (en) Method and system for simulating performance of a computer system
JPH10232788A (ja) 信号処理装置及びソフトウェア
US10635843B2 (en) Simulation modeling frameworks for controller designs
US7117277B2 (en) Flexibility of design of a bus interconnect block for a data processing apparatus
KR102226120B1 (ko) 다중 코어 사운드 트레이싱 장치 및 방법
US10755175B2 (en) Early generation of individuals to accelerate genetic algorithms
US11941528B2 (en) Neural network training in a distributed system
CN110222410B (zh) 一种基于Hadoop MapReduce的电磁环境仿真方法
US20220086583A1 (en) Sound tracing apparatus and method
US8543992B2 (en) Method and apparatus for partitioning programs to balance memory latency
CN113033785B (zh) 芯片、神经网络训练系统、内存管理方法及装置、设备
US20080235707A1 (en) Data processing apparatus and method for performing multi-cycle arbitration
US20210149985A1 (en) Method and apparatus for processing large-scale distributed matrix product
US20130238818A1 (en) Input/output port rotation in a storage area network device
CN103578130A (zh) 用于光线跟踪的方法和设备
KR20070122089A (ko) 버스 중재 장치 및 방법
US8688428B2 (en) Performance evaluation device, performance evaluation method and simulation program
RU2643622C1 (ru) Вычислительный модуль
KR101955552B1 (ko) 사운드 트레이싱 코어 및 이를 포함하는 사운드 트레이싱 시스템
US7761280B2 (en) Data processing apparatus simulation by generating anticipated timing information for bus data transfers
KR102019179B1 (ko) 사운드 트레이싱 장치 및 방법
JP2003015968A (ja) バスシミュレータ

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant