KR102111766B1 - 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법 - Google Patents

적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법 Download PDF

Info

Publication number
KR102111766B1
KR102111766B1 KR1020180101987A KR20180101987A KR102111766B1 KR 102111766 B1 KR102111766 B1 KR 102111766B1 KR 1020180101987 A KR1020180101987 A KR 1020180101987A KR 20180101987 A KR20180101987 A KR 20180101987A KR 102111766 B1 KR102111766 B1 KR 102111766B1
Authority
KR
South Korea
Prior art keywords
processing unit
signal
central processing
reference signal
internal memory
Prior art date
Application number
KR1020180101987A
Other languages
English (en)
Other versions
KR20200025117A (ko
Inventor
박영진
김영석
Original Assignee
한국과학기술원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국과학기술원 filed Critical 한국과학기술원
Priority to KR1020180101987A priority Critical patent/KR102111766B1/ko
Priority to PCT/KR2018/011756 priority patent/WO2020045730A1/ko
Publication of KR20200025117A publication Critical patent/KR20200025117A/ko
Application granted granted Critical
Publication of KR102111766B1 publication Critical patent/KR102111766B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus

Abstract

본 발명에 의한 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법이 개시된다. 본 발명의 일 실시예에 따른 데이터 처리 장치는 기준 신호와 오차 신호를 입력 받고, 입력 받은 상기 기준 신호와 적응 처리를 위한 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성하는 중앙처리장치; 및 상기 중앙처리장치로부터 상기 기준 신호와 상기 오차 신호를 제공 받으면, 제공 받은 상기 기준 신호와 상기 오차 신호를 기반으로 상기 가중치 필터의 계수를 업데이트하고, 상기 업데이트된 가중치 필터의 계수를 상기 중앙처리장치에 제공하는 병렬처리장치를 포함할 수 있다. 상기 중앙처리장치는, 입력 받은 상기 기준 신호와, 상기 제어 신호와 원하는 응답 신호 사이의 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고, 상기 내부 메모리의 제1 영역에 저장된 상기 기준 신호와 상기 오차 신호를 상기 내부 메모리의 제2 영역에 복사한 후 상기 병렬처리장치에 제공할 수 있다.

Description

적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법{DATA PROCESSING APPARATUS BASED ON CENTRAL PROCESSING UNIT-PARALLEL PROCESSING UNIT ARCHITECTURE FOR ADAPTIVE ALGORITHM AND METHOD THEREOF}
본 발명은 적응 제어 알고리즘에 관한 것으로, 보다 상세하게는 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법에 관한 것이다.
기존의 문헌 및 특허들은 그래픽 카드의 병렬 처리 기술의 높은 계산 성능을 활용하여 기존의 높은 계산 요구량으로 인하여 구현하기 어려웠던 기술 또는 알고리즘들을 개선하는 것에 그 의의를 두고 있다. 기존 문헌에서는 중앙 처리 장치의 계산을 활용하지 않고 그래픽 카드에서 모든 연산을 담당하도록 알고리즘을 구현하고 있음을 관찰 할 수 있다. 이때 적응 제어 알고리즘을 필요로 하는 기술들을 다루는 기존의 문헌들은 그래픽 카드의 병렬 계산을 활용하기 위하여 필수로 동반되는 중앙 처리 장치와의 블록 데이터 전송(block data transfer)으로 인하여 발생하는 기술 또는 알고리즘 내부 제어 신호 생성에서의 블록 지연(block delay) 문제를 해결하지 못하고 있다. 적응 제어 알고리즘의 적용 대상 중 하나인 능동 소음 제어의 경우 제어 신호의 발생 혹은 알고리즘 자체의 지연이 특정 블록 지연(block delay)을 내포하고 있다면 실시간 제어 조건을 만족시키기 못하거나 비주기적인 소음에 대하여서는 효과적인 소음 제어 성능을 얻을 수 없다.
공개특허공보 제10-2012-0009919호, 공개일자 2012년02월02일 공개특허공보 제10-2014-0011671호, 공개일자 2014년01월29일 공개특허공보 제10-2011-0037051호, 공개일자 2011년04월13일
Schneider, Martin, Florian Schuh, and Walter Kellermann. "The generalized frequency-domain adaptive filtering algorithm implemented on a GPU for large-scale multichannel acoustic echo cancellation." Speech Communication; 10. ITG Symposium; Proceedings of. VDE, 2012. Lorente, Jorge, et al. "GPU implementation of multichannel adaptive algorithms for local active noise control." IEEE/ACM Transactions on Audio, Speech and Language Processing (TASLP) 22.11 (2014): 1624-1635. Lorente, Jorge, et al. "The frequency partitioned block modified filtered-x NLMS with orthogonal correction factors for multichannel active noise control." Digital Signal Processing 43 (2015): 47-58.
이러한 종래 기술의 문제점을 해결하기 위한 것으로, 본 발명의 목적은 적응 제어 알고리즘을 대상으로 하는 기술에서 병렬처리장치의 높은 계산 성능을 활용하는 것과 동시에 중앙처리장치의 계산 또한 활용하여 기존의 문헌들이 가지고 있던 제어 신호에서의 블록 지연 문제를 해결할 수 있는 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법을 제공하는데 있다.
다만, 본 발명의 목적은 상기 목적들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
상기 본 발명의 목적을 달성하기 위하여, 본 발명의 한 관점에 따른 데이터 처리 장치는 기준 신호와 오차 신호를 입력 받고, 입력 받은 상기 기준 신호와 적응 처리를 위한 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성하는 중앙처리장치; 및 상기 중앙처리장치로부터 상기 기준 신호와 상기 오차 신호를 제공 받으면, 제공 받은 상기 기준 신호와 상기 오차 신호를 기반으로 상기 가중치 필터의 계수를 업데이트하고, 상기 업데이트된 가중치 필터의 계수를 상기 중앙처리장치에 제공하는 병렬처리장치를 포함할 수 있다.
또한, 상기 중앙처리장치는 입력 받은 상기 기준 신호와, 상기 제어 신호와 원하는 응답 신호 사이의 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고, 상기 내부 메모리의 제1 영역에 저장된 상기 기준 신호와 상기 오차 신호를 상기 내부 메모리의 제2 영역에 복사한 후 상기 병렬처리장치에 제공할 수 있다.
또한, 상기 중앙처리장치는 상기 병렬처리장치로부터 상기 업데이트된 가중치 필터의 계수를 제공 받아 상기 내부 메모리의 제2 영역에 저장되고, 상기 병렬처리장치로부터의 전송이 완료되었음을 나타내는 플래그의 값이 상기 내부 메모리의 제3 영역에 설정되고, 상기 내부 메모리의 제2 영역에 저장된 상기 업데이트된 가중치 필터의 계수를 상기 내부 메모리의 제1 영역으로 복사하여 저장할 수 있다.
또한, 상기 중앙처리장치는 상기 기준 신호, 상기 오차 신호 외에 적어도 하나의 추가 신호를 더 입력 받고, 상기 병렬처리장치는 상기 중앙처리장치로부터 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 제공 받고, 제공 받은 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 기반으로 상기 가중치 필터의 계수를 업데이트할 수 있다.
또한, 상기 병렬처리장치의 연산은 상기 중앙처리장치의 연산에 대해 비동기 특성을 가질 수 있다.
본 발명의 다른 한 관점에 따른 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반 데이터 처리 장치의 데이터 처리 방법은 상기 중앙처리장치가 기준 신호와 오차 신호를 입력 받는 입력 단계; 상기 병렬처리장치가 상기 중앙처리장치로부터 상기 기준 신호와 상기 오차 신호를 제공 받으면, 제공 받은 상기 기준 신호와 상기 오차 신호를 기반으로 적응 처리를 위한 가중치 필터의 계수를 업데이트하고, 상기 업데이트된 가중치 필터의 계수를 상기 중앙처리장치에 제공하는 업데이트 단계; 및 상기 중앙처리장치가 상기 입력받은 기준 신호와 상기 업데이트된 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성하는 생성 단계를 포함할 수 있다.
또한, 상기 입력 단계에서는 상기 중앙처리장치가 입력 받은 상기 기준 신호와, 상기 제어 신호와 원하는 응답 신호 사이의 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고, 상기 내부 메모리의 제1 영역에 저장된 상기 기준 신호와 상기 오차 신호를 상기 내부 메모리의 제2 영역에 복사한 후 상기 병렬처리장치에 제공할 수 있다.
또한, 상기 생성 단계에서는 상기 중앙처리장치가 상기 병렬처리장치로부터 상기 업데이트된 가중치 필터의 계수를 제공 받아 상기 내부 메모리의 제2 영역에 저장되고, 상기 병렬처리장치로부터의 전송이 완료되었음을 나타내는 플래그의 값이 상기 내부 메모리의 제3 영역에 설정되고, 상기 내부 메모리의 제2 영역에 저장된 상기 업데이트된 가중치 필터의 계수를 상기 내부 메모리의 제1 영역으로 복사하여 저장할 수 있다.
또한, 상기 입력 단계에서는 상기 중앙처리장치가 상기 기준 신호, 상기 오차 신호 외에 적어도 하나의 추가 신호를 더 입력 받고, 상기 업데이트 단계에서는 상기 병렬처리장치가 상기 중앙처리장치로부터 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 제공 받고, 제공 받은 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 기반으로 상기 가중치 필터의 계수를 업데이트할 수 있다.
이처럼 본 발명은 적응 제어 알고리즘을 위한 데이터 처리 장치를 중앙처리장치와 병렬처리장치로 구현하고, 중앙처리장치에서는 기준 신호와 가중치 필터 적응 과정에서 얻은 가중치 필터들 사이의 컨벌루션을 통해 제어 신호를 생성하도록 하고, 병렬처리장치에서는 가중치 필터 적응 과정에 관련된 모든 연산 과정을 수행하도록 함으로써, 중앙처리장치와 병렬처리장치 간의 블록 데이터 전송에 따른 블록 지연을 방지할 수 있고, 채널의 증가에 따른 계산량의 한계를 극복할 수 있다.
또한, 본 발명은 제안된 적응 제어 알고리즘을 능동 잡음 제어 기술에 적용할 경우에, 원하는 주파수 범위의 소음을 효과적으로 제거할 수 있다.
다만, 본 발명의 효과는 상기 효과들로 한정되는 것이 아니며, 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위에서 다양하게 확장될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치를 나타내는 도면이다.
도 2a 내지 도 2b는 병렬처리장치의 동기식 동작과 비동기식 동작을 설명하기 위한 도면이다.
도 3a 내지 도 3c는 경쟁 조건 문제를 회피하기 위한 원리를 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 다채널 능동 소음 제어 장치를 나타내는 도면이다.
도 5는 도 1에 도시된 능동 제어기에 적용된 알고리즘을 설명하기 위한 도면이다.
도 6a 내지 도 6b는 도 4에 도시된 소음 제어기의 동작을 설명하기 위한 도면이다.
도 7은 도 4에 도시된 CPU와 GPU에서의 데이터 처리 원리를 설명하기 위한 도면이다.
도 8a 내지 도 8c는 제안된 능동 소음 제어 알고리즘의 성능을 보여주는 도면이다.
도 9a 내지 도 9f는 제안된 능동 소음 제어 알고리즘의 적응 처리 단계별 비교 결과를 보여주는 도면이다.
도 10은 본 발명의 일 실시예에 따른 데이터 처리 방법을 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하, 첨부되는 도면을 참조하여 본 발명의 예시적인 실시형태에 따른 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법을 설명한다. 특히, 본 발명에서는 적응 제어 알고리즘을 위한 데이터 처리 장치를 중앙처리장치와 병렬처리장치로 구현하고, 중앙처리장치에서는 기준 신호와 가중치 필터 적응 과정에서 얻은 가중치 필터들 사이의 컨벌루션을 통해 제어 신호를 생성하도록 하고, 병렬처리장치에서는 가중치 필터 적응 과정에 관련된 모든 연산 과정을 수행하도록 한, 새로운 방안을 제안한다.
도 1은 본 발명의 일 실시예에 따른 데이터 처리 장치를 나타내는 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 데이터 처리 장치는 중앙처리장치(10), 병렬처리장치(20)를 포함할 수 있다. 이러한 중앙처리장치는 예컨대, CPU(Central Processing Unit), 병렬처리장치는 예컨대, GPU(Graphics Processing Unit)로 구현될 수 있는데, CPU와 GPU는 연산 방식에서 차이가 있는데, CPU의 경우 구조적으로 소스의 코어(core) 즉, ALU(Arithmetic Logic Unit)만을 가지고 있지만, GPU의 경우 수천 개의 코어 즉, ALU를 가지고 있기 때문이다. 데이터의 개수가 적을 경우 CPU의 연산 속도는 GPU의 연산 속도보다 빠르고, 데이터의 개수가 늘어남과 동시에 병렬 계산 가능 부분이 늘어날수록 GPU의 연산 속도가 CPU의 연산 속도보다 월등히 높아진다. 따라서, CPU는 계산의 순서가 중요한 과정에 많이 사용되고, GPU는 계산의 순서가 중요하지 않고 병렬적으로 진행되는 과정에 많이 사용된다.
중앙처리장치(10)는 기준 신호(reference signal)와 가중치 필터 적응 과정에서 얻은 가중치 필터들의 계수들 사이의 컨벌루션(convolution)을 통해 제어 신호를 생성할 수 있다. 중앙처리장치(10)는 기준 신호와, 제어 신호와 원하는 응답 신호(desired signal) 사이의 차이인 오차 신호(error signal)를 입력 받을 수 있다.
병렬처리장치(20)는 중앙처리장치(10)로부터 기준 신호와 오차 신호를 제공 받고, 제공받은 기준 신호와 오차 신호를 기반으로 가중치 필터 적응 과정에 관련된 모든 연산 과정 즉, 가중치 필터의 계수를 업데이트하는 과정을 수행할 수 있다.
이때, 중앙처리장치(10)는 기준 신호와 오차 신호 외에 가중치 필터의 계수를 업데이트하는데 필요한 적어도 하나의 추가 신호(additional signal)를 더 입력 받을 수 있고, 병렬처리장치(20)는 중앙처리장치(10)로부터 기준 신호, 오차 신호, 적어도 하나의 추가 신호를 제공 받아 그 제공 받은 기준 신호, 오차 신호, 적어도 하나의 추가 신호를 기반으로 가중치 필터의 계수를 업데이트할 수 있다.
이러한 병렬처리장치(20)는 높은 계산 성능을 제공하지만, 병렬처리장치(10) 없이 독립적으로 사용될 수 없고 구조적으로 PCI-Express bus를 통해 연결될 수 있다.
중앙처리장치(10)의 내부 메모리(10a)에서 병렬처리장치(20)의 내부 메모리(20a)로 데이터 즉, 가중치 필터 적응 과정에 필요한 모든 데이터를 이동시키는 과정과, 병렬처리장치(20)에서의 연산이 완료된 후 다시 중앙처리장치(10)로 데이터 즉, 가중치 필터 적응 과정에서 얻은 가중치 필터들의 계수를 이동시키는 과정이 필요한데, 이러한 데이터 이동은 연산의 효율성을 위해 특정 데이터 블록의 크기 단위로 이루어질 수 있다.
이때, 다음 적응 과정이 시작되기 전에 하나의 가중치 적응 과정이 완료되어야 하기 때문에, 제안된 알고리즘이 실시간으로 실행되는 조건은 다음의 [수학식 1]과 같다.
[수학식 1]
TGPU + Tdata transfer ≤ Tadaptation
여기서, TGPU는 전체 가중치 적응 처리를 담당하는 병렬처리장치의 계산 시간이고, Tdata transfer는 양방향으로 중앙처리장치와 병렬처리장치 간 데이터 전송을 위한 시간이고, Tadaptation는 각 적응 처리 간의 시간 간격이다.
이러한 중앙처리장치와 병렬처리장치 간 블록 데이터 전송 때문에, 가중치 필터 적응 과정의 속도는 기준 신호와 가중치 필터 사이의 컨번루션 처리 속도보다 낮아야 한다.
본 발명의 일 실시예에 따른 중앙처리장치-병렬처리장치 구조를 기반으로 시간 영역에서 실시간 적응 제어 알고리즘을 개발할 때 구성되어야 하는 두 가지 이슈를 제안한다.
1. 병렬처리장치 계산의 비동기 동작
CUDA 커널과 API 동작은 동기식 또는 비동기식의 두 가지 범주로 나뉠 수 있다.
도 2a 내지 도 2b는 병렬처리장치의 동기식 동작과 비동기식 동작을 설명하기 위한 도면이다.
도 2a 내지 도 2b를 참조하면, 호출된 커널 또는 CUDA API가 동기식이라면, 중앙처리장치 어플리케이션은 병렬처리장치에서 호출된 연산이 완료될 때까지 차단된다. 반면, 호출된 커널 또는 CUDA API가 비동기식이라면, 중앙처리장치 어플리케이션은 병렬처리장치의 어플리케이션에 의해 차단되지 않기 때문에, 병렬처리장치에 의해 수행된 연산은 중앙처리장치의 연산과 오버랩될 수 있다.
제안된 적응 제어 알고리즘은 2개의 연산 파트 즉, 중앙처리장치에 의해 수행된 제어 신호 생성과 중앙처리장치에 의해 수행된 가중치 적응 과정으로 나뉜다. 중앙처리장치에서 제어 신호를 생성하는 것은 가중치 적응 과정이 수행되는 동안 병렬처리장치 연산에 의해 차단되지 않는다. 모든 커널 또는 CUDA API는 비동기 방식을 보여야 한다.
모든 CUDA API 연산은 명시적 또는 암시적으로 선언된 스트림에서 수행될 수 있다. 소정의 스트림이 명시적으로 선언되지 않으면, CUDA 연산은 디폴트 널 스트림(default null stream)으로 할당된다. 널 스트림에서, 모든 커널 실행은 중앙처리장치 연산에 대해 비동기이다. 반면, 중앙처리장치와 병렬처리장치 간의 암시적으로 선언된 메모리 전송 연산은 동기식이기 때문에, 중앙처리장치 연산은 데이터가 전송되는 동안 차단된다. 추가로, FFT(Fast Fourier Transform)을 위한 NVIDIA 라이브러리인 cufft는 널 스트림(null stream)으로 선언될 때 또한 비동기식이다. 따라서, 중앙처리장치에서 제어 신호 생성을 차단하지 않기 위해 모든 CUDA 연산들의 비동기식 동작을 유지하는 동안 본 알고리즘에서 모든 메모리 전송 연산과 cufft 라이브러리는 명시적 스트림으로 선언되어야 한다.
2. 중앙처리장치와 병렬처리장치 계산 간의 경쟁 조건
관련된 다른 중요한 이슈는 경쟁 조건(race condition)이다. 경쟁 조건은 쓰기와 읽기 연산 모두 동일한 메모리 위치에서 수행될 때 발생한다. 예컨대, 쓰기 후에 읽기와 읽기 후에 쓰기 연산은 읽기와 쓰기 연산의 순서가 지정되지 않을 때 데이터 위험을 초래한다. 본 알고리즘에서 경쟁 조건 문제를 직면할 두 가지 확률이 있다. 하나는 기준 데이터 어레이가 PCIe 버스를 통해 병렬처리장치로 전송 될 때 동시에 기준 데이터 어레이를 발생할 수 있으며 동시에 측정된 데이터로 업데이트됩니다. 다른 하나는 기준 신호 어레이에 대한 컨벌루션을 위해 어레이의 엘리먼트, 전체 대역 가중치 필터의 계수가 중앙처리장치에 의해 읽혀지고, 동시에 제어 신호를 생성하고, 업데이트된 전체 대역 가중치 필터 계수를 갖는 병렬처리장치에 의해 쓰여질 때 전체 대역 가중치 필터 어레이들을 발생할 수 있다.
도 3a 내지 도 3c는 경쟁 조건 문제를 회피하기 위한 원리를 설명하기 위한 도면이다.
도 3a를 참조하면, 중앙처리장치(10)의 내부 메모리(10a)에는 서로 다른 제1 영역(10a1), 제2 영역(10a2), 제3 영역(10a3)이 설정될 수 있다. 제1 영역(10a)에는 제어 신호를 생성하기 위한 데이터와 가중치 필터를 업데이트하기 위한 데이터가 저장되고, 제3 영역(10a3)에는 병렬처리장치 간에 전송되는 데이터가 임시 저장될 수 있다. 그리고 제2 영역(10a2)에는 병렬처리장치로부터 업데이트된 가중치 필터의 계수가 중앙처리장치로 전송되는 경우, 전송이 완료되었는지를 나타내는 플래그(flag)의 값이 설정될 수 있다.
도 3b를 참조하면, 기준 신호 데이터 어레이들에 대한 가능한 경쟁 조건 문제를 회피하기 위해, 병렬처리장치 메모리로 전송되어야 하는 기준 데이터는 먼저 중앙처리장치의 다른 메모리 위치로 복사된다. 도 5a에 도시된 바와 같이 복사된 기준 데이터는 소정의 경쟁 조건 문제없이 병렬처리장치 메모리로 전송되는데 자유롭다.
도 3c를 참조하면, 중앙처리장치에서 전체 대역 가중치 필터 어레이들이 갖는 가능한 경쟁 조건 문제를 방지하기 위한 한 방식으로, 병렬처리장치에서 업데이트된 전체 대역 가중치 필터 계수는 먼저 중앙처리장치의 다른 물리적 메모리 위치로 전송된다. 메모리 전송이 완료된 후, 전송된 전체 대역 가중치 필터 계수들은 물리적 메모리 위치로 복사되고, 저장된 데이터는 제어 신호 생성을 위한 기준 신호에 대한 컨벌루션을 위해 사용된다. 기준 신호 어레이의 경우와 달리, 메모리 전송이 완료되면 알려주고, 경쟁 조건으로 인해 데이터 위험이 초래되지 않도록 원래 메모리 공간으로 복사하기 위해 데이터를 읽기 위해, 제로-카피 메모리(zero-copy memory)가 업데이트된 전체 대역 가중치 필터 계수의 메모리 전송이 중앙처리장치 메모리로 완료되었는지를 모니터링하기 위한 플래그(flag)로 사용된다. 제로-카피 메모리는 중앙처리장치와 병렬처리장치 간의 명시적 데이터 전송없이 중앙처리장치와 병렬처리장치 모두 접속할 수 있도록 병렬처리장치 메모리 어드레스 공간에 매핑된 pinned memory이다. 특히, 전체 대역 가중치 계수의 메모리 전송이 완료되면, 제로-카피 메모리에서 플래그 값을 변경하는 병렬처리장치 동작이 실행된다. 그리고 중앙처리장치가 플래그 모니터링을 통해 메모리 전송의 완료를 인식하면, 전송된 전체 밴드 가중치 필터 계수의 복사 작업을 제어 신호 생성을 위해 사용된 물리적 메모리 위치로 불러온다. 이러한 경쟁 조건 문제를 방지하기 위한 과정이다.
중앙처리장치-병렬처리장치 구조 기반 적응 제어 알고리즘을 검증하기 위하여 적응 제어 알고리즘의 대표적인 기술인 능동 소음 제어 알고리즘을 이용하여 CPU-GPU 구조 기반 능동 소음 제어 알고리즘을 구현하였다. 이때 사용된 능동 소음 제어 알고리즘은 delayless subband 능동 소음 제어 알고리즘이다.
도 4는 본 발명의 일 실시예에 따른 다채널 능동 소음 제어 장치를 나타내는 도면이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 다채널 능동 소음 제어 장치는 기준 마이크로폰(reference microphone)(100), 이차 스피커(secondary speaker)(200), 에러 마이크로폰(error microphone)(300), 능동 소음 제어기(400)를 포함할 수 있다.
기준 마이크로폰(100)은 줄이고자 하는 소음의 신호를 소음원의 위치주변에서 감지할 수 있다. 기준 마이크로폰(100)은 복수 개가 구비되어 서로 다른 위치에 배치되고, 해당 위치에서 줄이고자 하는 기준 소음을 감지하여 기준 소음 신호를 생성하여 능동 소음 제어기(400)로 출력할 수 있다.
이차 스피커(200)는 복수 개가 구비되어 서로 다른 위치에 배치될 수 있고, 능동 소음 제어기(400)로부터 기준 소음신호와 반대되는 위상을 갖는 제어 소음 신호를 입력 받아 제어 소음을 출력할 수 있다.
에러 마이크로폰(300)은 소음의 크기를 줄이고자 하는 위치에 배치하여 소음 제어에 사용할 수 있다. 에러 마이크로폰(300)은 복수 개가 구비되어 서로 다른 위치에 배치될 수 있고, 기준 소음 신호와 그 기준 소음 신호와 반대 위상을 갖는 제어 소음 신호 간의 오차 소음 신호를 생성하여 출력할 수 있다.
능동 소음 제어기(400)는 기준 마이크로폰(100)으로부터 입력 받은 기준 소음 신호와 에러 마이크로폰(300)으로부터 입력 받은 오차 소음 신호 각각의 주파수 대역을 복수의 서브 밴드로 분할하여 병렬로 적응 처리하고 그 적응 처리한 결과를 기초로 기준 소음을 상쇄시키기 위한 제어 소음 신호를 생성하여 생성된 제어 소음 신호를 이차 스피커(200)로 전달할 수 있다.
이러한 서브 밴드 제어 기법은 신호의 주파수 대역을 몇 개의 서브 밴드로 분할하고 각각의 주파수 대역에 대하여 적응 처리하는 것으로 능동 소음 제어에 이용할 경우, 계산량의 감소와 함께 더 우수한 성능을 얻을 수 있다.
본 발명에서는 이러한 GPU-CPU 구조의 연산 특징을 이용하여 다채널 능동 소음 제어의 높은 계산량을 극복하고자 한다. 이때 고려해야 하는 부분은 GPU는 병렬 계산 가능 부분에 적용해야 하고, CPU와 GPU 사이의 데이터 이동은 sample-by-sample이 아니라 block-by-block으로 이루어져야 한다는 점이다.
CPU(410)는 기준 소음 신호와 오차 소음 신호 각각의 디지털 변환된 데이터를 내부 메모리 예컨대, DRAM에 버퍼링하고, 기준 소음 신호와 오차 소음 신호 각각의 디지털 변환된 데이터를 미리 정해진 크기의 데이터 블록(data block) 단위로 GPU에 송신하고, GPU로부터 미리 정해진 크기의 데이터 블록 단위로 데이터를 수신할 수 있다.
CPU(410)는 복수의 기준 마이크로폰과 복수의 이차 스피커에 의해 형성되는 복수의 채널 각각에 대하여 GPU(420)로부터 적응 처리 결과를 미리 정해진 크기의 데이터 블록 단위로 전달 받아 제어 소음 신호를 생성하고, 그 생성된 제어 소음 신호를 복수의 이차 스피커로 각각 전달할 수 있다.
여기서, 적응 처리를 위한 채널의 개수는 마이크로폰, 이차 스피커, 서브 밴드의 개수에 의해 결정될 수 있는데, 다음의 수식, 채널의 개수 = (마이크로폰의 개수)×(이차 스피커의 개수) ×(서브 밴드의 개수)에 의해 구할 수 있다.
GPU(420)는 전달된 데이터를 기초로 기준 소음 신호와 상기 오차 소음 신호 각각의 주파수 영역을 복수의 서브 밴드로 분할하여 병렬로 적응 처리하고 그 적응 처리한 결과를 미리 정해진 크기의 데이터 블록 단위로 CPU에 전달할 수 있다.
이러한 GPU(420)는 CPU(410) 없이 독립적으로 사용될 수 없고 구조적으로 PCI-Express bus를 통해 연결될 수 있다.
이처럼, 본 발명의 소음 제어기에서는 CPU의 내부 메모리에서 GPU의 내부 메모리로 데이터를 이동시키는 과정과, GPU에서의 연산이 완료된 후 다시 GPU에서 CPU로 데이터를 이동시키는 과정이 필요한데, 이러한 데이터 이동은 연산의 효율성을 위해 특정 데이터 블록의 크기 단위로 이루어질 수 있다.
도 5는 도 1에 도시된 능동 제어기에 적용된 알고리즘을 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명의 소음 제어기에서는 능동 소음 제어 알고리즘으로, 예컨대, CPU-GPU 구조 기반 다채널 지연없는 서브밴드 적응형 능동 소음 제어(multi-channel delayless subband adaptive active noise control) 알고리즘을 사용할 수 있다.
다채널 지연없는 서브밴드 적응형 능동 소음 제어 알고리즘을 선택하는 이유는 다음과 같다.
첫째, GPU 계산이 병렬 계산이 효율적이라는 것은 잘 알려져 있고, 서브밴드 ANC 알고리즘은 병렬적으로 업데이트될 수 있는 많은 서브밴드 가중치 필터를 가지고 있기 때문이다.
둘째, 지연없는 서브밴드 ANC 알고리즘은 서브밴드 가중치 필터의 계수를 원래의 샘플링 주파수의 데시메이트된 레이트로 업데이트하기 때문이다. 즉, ANC 알고리즘을 위한 CPU-GPU 아키텍처에서 가중치 필터의 계수를 업데이트하는 GPU 계산은 CPU로부터의 블록 데이터 전송을 필요로 하기 때문에, 서브밴드 가중치 필터의 원래 샘플링 주파수의 데이메이트 레이트는 알고리즘이 각 적응 과정 사이에서 데이터 블록을 수집하고 GPU로 전송할 수 있게 한다.
기준 소음 신호 u[n]은 추정된 2차 경로의 길이가 L인 필터 S[z]로 필터링되어 필터링된 기준 소음 신호 u'[n]이 얻어진다.
필터링된 기준 소음 신호 u'[n]과 오차 소음 신호 e[n]은 길이가 Ls인 N개의 분석 필터(analysis filter) H[z]로 필터링되어 N개의 서브 밴드들로 분할된다. 각 서브 밴드 신호의 주파수 대역폭은 원래 신호의 대역폭의 1/N이기 때문에, 각 서브 밴드 신호는 원래의 샘플링 레이트(sampling rate)의 1/N의 비율까지 데시메이트될 수 있다. N 또는 N/2과 같은 데시메이션 인자(decimation factor) D를 갖는 서브 밴드 신호들은 각각 임계 샘플링되거나 2x 오버 샘플링된 신호로 불린다.
N개의 분석 필터 H(z)는 다음의 [수학식 2]와 같이 프로토타입 필터(prototype filter) P(z)의 복소 변조에 의해 얻어진 N 채널 DFT 필터 뱅크로 설계된다.
[수학식 2]
Figure 112018085789909-pat00001
여기서, P(z)는 차단 주파수(cutoff frequency)가 π/N이 되도록 설정되는 실수 값의 프로토타입 로우 패스 필터이다.
데시메이션 과정은 신호의 스펙트럼 동적 범위를 평탄하게 하고 그 결과 기존의 FxLMS 알고리즘보다 빠른 컨버전스 속도(convergence speed)를 야기한다. 한편, 임계 샘플링 알고리즘은 각 서브 밴드 신호 내에서 에일리어싱을 겪고 최적의 솔루션을 도출하지 못한다. 심각한 에일리어싱 문제를 피하기 위해, 서브 밴드 스펙트럼의 밴드 에지로부터의 작은 고유값으로 인해 임계 샘플링 알고리즘보다 느린 컨버전스 속도의 2x 오버샘플링 방식이 고려될 수 있다. 따라서, 본 발명에서는 2x 오버샘플링 알고리즘이 사용된다.
기준 소음 신호와 에러 소음 신호의 서브 밴드 신호 ui,D와 ei,D는 각길이 Ms가 M/N인 해당 서브 밴드 가중치 필터 Wi[z]의 적응 처리를 위해 사용된다. 각 서브 밴드 가중치 필터의 적응은 LMS(Least Mean Square) 방법을 기반으로 한다.
업데이트된 서브 밴드 가중치 필터 Wi[z]는 길이가 M인 전체 대역 가중치 필터 W[z]로 변환된다. 서브 밴드 가중치 필터 계수를 전체 밴드 가중치 필터 계수로 변환하기 위한 많은 기술들이 있다. 본 발명에서는 간단한 주파수 샘플링 방법이 서브 배드 가중치 필터로부터 전체 밴드 가중치 필터로의 가중치 변환 처리(weight transform process)를 위해 채택된다.
제어에 사용되는 가중치 필터(weighting filter)의 주파수 영역을 원하는 개수만큼으로 나누어 각 주파수 영역에 해당하는 디지털 필터를 개별적으로 업데이트한 후에 이를 다시 전체 주파수 영역의 값으로 합치는 과정으로 진행된다.
도 6a 내지 도 6b는 도 4에 도시된 소음 제어기의 동작을 설명하기 위한 도면이다.
도 6a를 참조하면, CPU와 GPU 사이의 데이터 전송으로 인한 제어 소음 신호의 블록 지연을 피하기 위해, 가중치 필터와 기준 소음 신호 간의 컨벌루션 과정(convolution process)이 CPU에 할당된다. CPU에 의해 수행된 계산은 동일한 샘플링 주기로 제어 소음 신호를 제공한다.
CPU(410)는 입력된 기준 소음 신호 u[n]를 2차 경로의 필터
Figure 112018085789909-pat00002
[z]를 통과시켜 필터링한 후 필터링된 기준 소음 신호 u'[n]을 출력할 수 있다.
CPU(410)는 입력된 기준 소음 신호 u[n]와 GPU로부터 입력된 신호를 1차 경로의 전체 대역 가중치 필터 W[z]를 통과시켜 필터링한 후 필터링된 소음신호 y[n]을 전달 함수 S[z]를 통과시킬 수 있다.
CPU(410)는 원하는 응답 소음 신호 d[n]와 전달 함수 S[z]를 통과시켜 구한 y'[n]을 가산하여 그 가산한 결과로 오차 소음 신호 e[n]을 출력할 수 있다.
도 6b를 참조하면, 가중치 필터 계수를 업데이트하기 위해 필요한 모든 계산이 GPU에 할당된다. 적응 처리(adaptation process)를 위해 요구되는 단계는 이차 경로 필터링, 기준 소음 신호와 오차 소음 신호의 서브 밴드 필터링, 서브 밴드 가중치 필터 적응, 서브 밴드를 전체 대역 밴드로 가중치 변환이다.
GPU(420)는 필터링된 기준 소음 신호 u'[n]과 오차 소음 신호 e[n]을 복수의 서브 밴드로 분할하여 적응 처리할 수 있다. 즉, GPU(420)는 필터링된 기준 소음 신호 u'[n]과 오차 소음 신호 e[n]을 각 주파수 대역마다 서브 밴드 필터링하여 서브 밴드로 분할하고 각 주파수 대역에 해당하는 디지털 필터 W0[z], W1[z], ..., WN -1[z]를 개별적으로 업데이트한 후 가중치 변환(weight transform) 과정을 통해 전체 주파수 대역의 값으로 결합시킬 수 있다.
GPU(420)는 전체 주파수 대역으로 결합된 값을 적응 필터 W[z]에 제공할 수 있다.
모든 샘플링 시간 간격에서 제어 소음 신호를 출력하는 CPU의 계산과 달리, 데시메이션으로 인해 GPU의 가중치 필터 적응은 데시메이션 인자 D가 곱해진 모든 샘플링 시간 간격에서 발생된다.
이차 경로 필터링의 계산이 모든 샘플링 시간 간격으로 처리되어야 한다는 것을 고려할 때, [수학식 3]의 기준 소음 신호의 버퍼 길이는 데시메이션 시간 간격에서 샘플들의 개수에 의해 [수학식 4]의 이전 알고리즘 구조 중 하나보다 길다.
[수학식 3]
Umodified[n] = [u[n] u[n - 1] ? u[n - Ls + 1] u[n - Ls] ? u[n - Ls - D + 1]]T
[수학식 4]
Uoriginal[n] = [u[n] u[n - 1] ? u[n - Ls + 1]]T
다음 적응 처리가 시작되기 전에 하나의 가중치 적응 처리가 완료되어야 하기 때문에, 제안된 알고리즘이 실시간으로 실행되는 조건은 다음의 [수학식 5]와 같다.
[수학식 5]
TGPU + Tdata transfer ≤ Ts × D
여기서, TGPU는 전체 가중치 적응 처리를 담당하는 GPU의 계산 시간이고, Tdata transfer는 양방향으로 CPU와 GPU 간 데이터 전송을 위한 시간이고, Ts는 샘플 시간 간격이다. 주어진 알고리즘에서, 기준 소음 데이터들과 오차 소음 데이터 블록들은 CPU로부터 GPU로 전송되고, 업데이트된 전체 대역 가중치 필터 계수는 GPU로부터 CPU로 전송된다.
도 7은 도 4에 도시된 CPU와 GPU에서의 데이터 처리 원리를 설명하기 위한 도면이다.
도 7을 참조하면, GPU-CPU의 연산 방식을 사용하기 위해서 데이터 블록의 이동이 필수적임을 고려할 때 시간 지연 없는 서브밴드 적응형 능동 소음 제어(delayless subband adaptive active noise control) 알고리즘의 데시메이션(decimation)으로 인하여 디지털 필터의 업데이트는 특정 주기로 일어난다.
이 구간은 최대 허용 GPU 연산 시간으로 D/fs로 나타낼 수 있다. 여기서, D는 데이메이션 인자(decimation factor)이고, fs는 서브 밴드의 주파수이다.
이러한 본 발명의 일 실시예에 따른 CPU-GPU 아키텍처에 기반한 다채널 지연없는 서브밴드 ANC 알고리즘의 시뮬레이션 결과를 설명하기로 한다.
도 8a 내지 도 8c는 제안된 능동 소음 제어 알고리즘의 시뮬레이션 결과를 보여주는 도면이다.
도 8a를 참조하면, 제안된 능동 소음 제어 알고리즘에서 CPU 연산이 이루어지는 부분을 호스트 코드라고 명명하고, GPU 연산이 이루어지는 부분을 디바이스 코드라고 명명하기로 한다.
호스트 부분과 디바이스 부분의 측정값은 pdf 히스트그램 그래프로 표시한다.
도 8b를 참조하면, 제안된 능동 소음 제어 알고리즘의 성능을 시뮬레이션한 결과를 보여주고 있다. 즉, CPU-GPU를 사용한 알고리즘의 경우 CPU만을 사용한 알고리즘과 비교하였을 때, CPU로 연산하는 호스트 코드(host code) 부분에서는 계산 성능의 차이가 크게 나지 않는다.
그러나 GPU로 연산하는 디바이스 코드(device code) 부분에서는 서브밴드 필터링(subband filtering) 부분의 경우 약 30배, 가중치 적응(weight adaptation) 부분의 경우 약 90배, 가중치 변환(weight transform) 부분의 경우 약 7배 정도의 계산 성능 향상이 이루어진 것을 볼 수 있다.
도 8c를 참조하면, GPU-CPU를 사용한 알고리즘의 경우 데시메이션 인터벌 시간(decimation interval time)보다 훨씬 짧은 시간 안에 모든 적응 처리(adaptation process)가 이루어지고 있어, 실시간으로 이루어지고 있음을 볼 수 있다.
도 9a 내지 도 9f는 제안된 능동 소음 제어 알고리즘의 적응 처리 단계별 비교 결과를 보여주는 도면이다.
도 9a를 참조하면, 제안된 능동 소음 제어 알고리즘에서 적응 처리 단계 즉, 2차 경로 필터링, 기준 신호 서브 밴드 필터링, 오차 신호 서브 밴드 필터링, 서브 밴드 가중치 필터 적응, 전체 대역 가중 필터 계수로의 변환, CPU로부터 GPU로의 메모리 전송, GPU로부터 CPU로의 메모리 전송, 전체 적응 처리를 구분하여 비교하였고, 그 적응 처리 단계는 다음의 [표 1]과 같다.
[1] Secondary path filtering
[2] Reference subband filtering
[3] Error subband filtering
[4] Subband weight adaptation
[5] Weight transform
[6] Memory transfer from CPU to GPU, refence and error signal
[7] Memory transfer from GPU to CPU, fullband weighting filter
[8] Total adaptation process
도 9b를 참조하면, 각 적응 처리 단계에서 측정된 계산 시간을 CPU만을 이용한 기존의 알고리즘과 CPU-GPU를 이용한 제안된 알고리즘 간에 비교한 결과를 보여주고 있다. 주어진 비율(ratio)는 각 적응 과정에서 평균값의 비율이다.전체적으로, 하나의 적응 처리에 필요한 총 계산 시간은 대략 20183.8 초에서 245.9 초까지 단축된다. CPU-GPU 구조에 기반한 제안된 알고리즘이 주어진 결과를 갖는 알고리즘보다 더 많은 병렬성을 갖도록 수정된다면 하나의 적응 처리에 필요한 총 계산 시간이 표에서 주어진 결과보다 클 것이다.
도 9c 내지 도 9d를 참조하면, 제안된 능동 소음 제어 알고리즘의 실시간 실행 조건을 만족하는지를 비교하였다. 측정된 계산 시간이 가중치 적용 시간 간격인 D=fs를 초과하는 경우 알고리즘은 실시간 실행 조건을 만족하지 못한다.
도 9c에서는 제안된 알고리즘과 기존의 알고리즘 간의 적응 처리 시간을 비교한 결과이고, 도 6d에서는 제안된 알고리즘과 기존의 알고리점 간의 적응 처리 시간의 추정된 누적 확률 밀도 함수(estimated cumulative probability density function)를 비교한 결과이다.
기존의 알고리즘은 실시간 실행 조건을 만족할만큼 빠르지 않은 것으로 나타났지만, 제안된 알고리즘은 측정된 값이 모두 실행 조건을 만족하고 있다.
도 9e를 참조하면, 제안된 알고리즘의 GPU 연산이 CPU 연산과 비동기 적으로 동작하여 제어 신호 생성의 실시간 처리가 GPU 계산에 의해 차단되지 않는지를 확인하였다. 타임 라인 그래프는 CUDA 함수 호출, CPU 작동, CPU에서 GPU로의 메모리 전송, GPU에서 CPU로의 메모리 전송 및 GPU 동작을 위한 시간을 의미한다.
여기서 CPU 동작에 대한 GPU 동작의 비동기 동작이 관찰되므로, 제안된 알고리즘은 ANC의 실시간 동작 조건을 만족하도록 잘 설계되었음을 알 수 있다.
도 9f를 참조하면, 제안 된 알고리즘이 졍재 조건 문제를 해결할 수 있도록 잘 설계되었는지 여부를 결정하기 위해 제안 된 알고리즘의 ANC 노이즈 감소 결과를 CPU만을 기반으로하는 이전 알고리즘의 결과와 비교하였다.
다음의 [표 2]에서 6개의 에러 마이크로폰에서의 노이즈 감소 결과를 보여준다.
Microphone index Previous algorithm Proposed algorithm
[1] 2.9 dB 2.9 dB
[2] 4.0 dB 4.0 dB
[3] 4.2 dB 4.2 dB
[4] 4.6 dB 4.6 dB
[5] 4.7 dB 4.7 dB
[6] 4.7 dB 4.7 dB
표 2에서 볼 수 있듯이 두 알고리즘 모두 동일한 잔차 오차가 발생하며, 이는 제안된 알고리즘이 경쟁 조건 문제를 피하기 위해 잘 설계되었음을 의미한다.
도 10은 본 발명의 일 실시예에 따른 데이터 처리 방법을 나타내는 도면이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 데이터 처리 방법은 기준 신호 입력 단계(S100), 업데이트 단계(S200), 제어 신호 생성 단계(S300)을 포함할 수 있다.
기준 신호 입력 단계(S100)에서, 중앙처리장치는 측정된 기준 신호와 오차 신호를 입력 받고, 그 입력 받은 기준 신호와 오차 신호를 내부 메모리에 저장할 수 있다. 그리고 중앙처리장치는 저장된 기준 신호와 오차 신호를 병렬처리장치로 전송할 수 있다.
이때, 중앙처리장치는 기준 신호와, 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고, 내부 메모리의 제1 영역에 저장된 기준 신호와 오차 신호를 내부 메모리의 제2 영역에 복사한 후 병렬처리장치에 제공할 수 있다.
업데이트 단계(S200)에서, 병렬처리장치가 중앙처리장치로부터 기준 신호와 오차 신호를 제공 받으면, 제공 받은 기준 신호와 오차 신호를 기반으로 가중치 필터의 계수를 업데이트하고, 그 업데이트된 가중치 필터의 계수를 중앙처리장치에 제공할 수 있다.
이때, 중앙처리장치가 기준 신호와 오차 신호와 함께 가중치 필터의 계수를 업데이트하는데 필요한 적어도 하나의 추가 신호(additional signal)를 입력 받는 경우, 병렬처리장치는 중앙처리장치로부터 기준 신호, 오차 신호, 적어도 하나의 추가 신호를 제공 받고, 제공 받은 기준 신호, 오차 신호, 적어도 하나의 추가 신호를 기반으로 가중치 필터의 계수를 업데이트할 수 있다.
제어 신호 생성 단계(S300)에서, 중앙처리장치가 기준 신호와 업데이트된 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성할 수 있다.
이때, 중앙처리장치는 병렬처리장치로부터 업데이트된 가중치 필터의 계수를 제공 받아 내부 메모리의 제2 영역에 저장되고, 병렬처리장치로부터의 전송이 완료되었음을 나타내는 플래그의 값이 내부 메모리의 제3 영역에 설정되고, 병렬처리장치로부터의 전송이 완료되었을 경우, 내부 메모리의 제2 영역에 저장된 상기 업데이트된 가중치 필터의 계수를 내부 메모리의 제1 영역으로 복사하여 저장할 수 있다.
이상에서 실시예들에 설명된 특징, 구조, 효과 등은 본 발명의 하나의 실시예에 포함되며, 반드시 하나의 실시예에만 한정되는 것은 아니다. 나아가, 각 실시예에서 예시된 특징, 구조, 효과 등은 실시예들이 속하는 분야의 통상의 지식을 가지는 자에 의해 다른 실시예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
또한, 이상에서 실시예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 중앙처리장치
10a: 중앙처리장치 내부 메모리
20: 병렬처리장치
20a: 병렬처리장치 내부 메모리
100: 기준 마이크로폰
200: 이차 스피커
300: 에러 마이크로폰
400: 능동 소음 제어기

Claims (9)

  1. 기준 신호와 오차 신호를 입력 받고, 입력 받은 상기 기준 신호와 적응 처리를 위한 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성하는 중앙처리장치; 및
    상기 중앙처리장치로부터 상기 기준 신호와 상기 오차 신호를 제공 받으면, 제공 받은 상기 기준 신호와 상기 오차 신호를 기반으로 상기 가중치 필터의 계수를 업데이트하고, 상기 업데이트된 가중치 필터의 계수를 상기 중앙처리장치에 제공하는 병렬처리장치;를 포함하고,
    상기 중앙처리장치는,
    입력 받은 상기 기준 신호와, 상기 제어 신호와 원하는 응답 신호 사이의 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고,
    상기 내부 메모리의 제1 영역에 저장된 상기 기준 신호와 상기 오차 신호를 상기 내부 메모리의 제2 영역에 복사한 후 상기 병렬처리장치에 제공하는, 데이터 처리 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 중앙처리장치는,
    상기 병렬처리장치로부터 상기 업데이트된 가중치 필터의 계수를 제공 받아 상기 내부 메모리의 제2 영역에 저장되고,
    상기 병렬처리장치로부터의 전송이 완료되었음을 나타내는 플래그의 값이 상기 내부 메모리의 제3 영역에 설정되고,
    상기 내부 메모리의 제2 영역에 저장된 상기 업데이트된 가중치 필터의 계수를 상기 내부 메모리의 제1 영역으로 복사하여 저장하는, 데이터 처리 장치.
  4. 제1항에 있어서,
    상기 중앙처리장치는 상기 기준 신호, 상기 오차 신호 외에 적어도 하나의 추가 신호를 더 입력 받고,
    상기 병렬처리장치는 상기 중앙처리장치로부터 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 제공 받고, 제공 받은 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 기반으로 상기 가중치 필터의 계수를 업데이트하는, 데이터 처리 장치.
  5. 제1항에 있어서,
    상기 병렬처리장치의 연산은 상기 중앙처리장치의 연산에 대해 비동기 특성을 갖는, 데이터 처리 장치.
  6. 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반 데이터 처리 장치의 데이터 처리 방법에 있어서,
    상기 중앙처리장치가 기준 신호와 오차 신호를 입력 받는 입력 단계;
    상기 병렬처리장치가 상기 중앙처리장치로부터 상기 기준 신호와 상기 오차 신호를 제공 받으면, 제공 받은 상기 기준 신호와 상기 오차 신호를 기반으로 적응 처리를 위한 가중치 필터의 계수를 업데이트하고, 상기 업데이트된 가중치 필터의 계수를 상기 중앙처리장치에 제공하는 업데이트 단계; 및
    상기 중앙처리장치가 상기 입력받은 기준 신호와 상기 업데이트된 가중치 필터의 계수 사이의 컨벌루션을 수행하여 그 수행한 결과로 제어 신호를 생성하는 생성 단계; 를 포함하고,
    상기 입력 단계에서는,
    상기 중앙처리장치가 입력 받은 상기 기준 신호와, 상기 제어 신호와 원하는 응답 신호 사이의 오차 신호를 입력 받아 내부 메모리의 제1 영역에 저장하고,
    상기 내부 메모리의 제1 영역에 저장된 상기 기준 신호와 상기 오차 신호를 상기 내부 메모리의 제2 영역에 복사한 후 상기 병렬처리장치에 제공하는, 데이터 처리 방법.
  7. 삭제
  8. 제 6 항에 있어서,
    상기 생성 단계에서는,
    상기 중앙처리장치가 상기 병렬처리장치로부터 상기 업데이트된 가중치 필터의 계수를 제공 받아 상기 내부 메모리의 제2 영역에 저장되고,
    상기 병렬처리장치로부터의 전송이 완료되었음을 나타내는 플래그의 값이 상기 내부 메모리의 제3 영역에 설정되고,
    상기 내부 메모리의 제2 영역에 저장된 상기 업데이트된 가중치 필터의 계수를 상기 내부 메모리의 제1 영역으로 복사하여 저장하는, 데이터 처리 방법.
  9. 제6항에 있어서,
    상기 입력 단계에서는 상기 중앙처리장치가 상기 기준 신호, 상기 오차 신호 외에 적어도 하나의 추가 신호를 더 입력 받고,
    상기 업데이트 단계에서는 상기 병렬처리장치가 상기 중앙처리장치로부터 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 제공 받고, 제공 받은 상기 기준 신호, 상기 오차 신호, 상기 적어도 하나의 추가 신호를 기반으로 상기 가중치 필터의 계수를 업데이트하는, 데이터 처리 방법.
KR1020180101987A 2018-08-29 2018-08-29 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법 KR102111766B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020180101987A KR102111766B1 (ko) 2018-08-29 2018-08-29 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법
PCT/KR2018/011756 WO2020045730A1 (ko) 2018-08-29 2018-10-05 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180101987A KR102111766B1 (ko) 2018-08-29 2018-08-29 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법

Publications (2)

Publication Number Publication Date
KR20200025117A KR20200025117A (ko) 2020-03-10
KR102111766B1 true KR102111766B1 (ko) 2020-05-15

Family

ID=69644407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180101987A KR102111766B1 (ko) 2018-08-29 2018-08-29 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법

Country Status (2)

Country Link
KR (1) KR102111766B1 (ko)
WO (1) WO2020045730A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111881081B (zh) * 2020-08-04 2023-11-03 合肥工业大学 基于序列机的fxlms算法的fpga实现模块及方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006084532A (ja) 2004-09-14 2006-03-30 Honda Motor Co Ltd 能動型振動騒音制御装置

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0545581B1 (en) * 1991-12-06 1999-04-21 National Semiconductor Corporation Integrated data processing system including CPU core and parallel, independently operating DSP module
KR0141579B1 (ko) * 1991-12-11 1998-06-15 강진구 고스트제거장치 및 방법
KR100340042B1 (ko) * 1999-09-21 2002-06-12 오길록 다중톤 변복조 시스템의 주파수 영역 적응 등화 장치
EP1887514B1 (en) * 2002-02-21 2009-07-01 Sony Corporation Signal processing device
KR101079697B1 (ko) 2009-10-05 2011-11-03 주식회사 글로벌미디어테크 범용 그래픽 처리장치의 병렬 프로세서를 이용한 고속 영상 처리 방법
KR101136850B1 (ko) 2010-07-22 2012-04-20 연세대학교 산학협력단 중앙 처리 장치, 그것의 gpu 시뮬레이션 방법 그리고 그것을 포함하는 컴퓨팅 시스템
KR20120078129A (ko) * 2010-12-31 2012-07-10 이정렬 Rf 무선중계기의 간섭제거장치 및 간섭제거방법
KR101956197B1 (ko) 2012-07-18 2019-03-08 삼성전자 주식회사 그래픽 처리 유닛을 이용한 데이터 처리 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006084532A (ja) 2004-09-14 2006-03-30 Honda Motor Co Ltd 能動型振動騒音制御装置

Also Published As

Publication number Publication date
WO2020045730A1 (ko) 2020-03-05
KR20200025117A (ko) 2020-03-10

Similar Documents

Publication Publication Date Title
JP7175441B2 (ja) 雑音のある時変環境のための重み付け予測誤差に基づくオンライン残響除去アルゴリズム
DK1638079T3 (en) Method and system for active noise cancellation
JP5122879B2 (ja) 時間および周波数領域内のパーティションされた高速畳み込み
US7274794B1 (en) Sound processing system including forward filter that exhibits arbitrary directivity and gradient response in single wave sound environment
CN110402540B (zh) 主动降噪方法、装置、芯片、主动控制系统和存储介质
US20160232918A1 (en) Reduced-delay subband signal processing system and method
JP5091948B2 (ja) ブラインド信号抽出
US8626810B2 (en) Method and system for finite impulse response (FIR) digital filtering
KR102111766B1 (ko) 적응 제어 알고리즘을 위한 중앙처리장치-병렬처리장치 구조 기반의 데이터 처리 장치 및 그 방법
Kim et al. CPU-GPU architecture for active noise control
CN102623016A (zh) 宽带语音处理方法及装置
EP3240276B1 (en) Device and method for canceling noise in a received signal
Klemd et al. A flexible multi-channel feedback FXLMS architecture for FPGA platforms
Zhou et al. Efficient adaptive nonlinear echo cancellation, using sub-band implementation of the adaptive volterra filter
CN116095553A (zh) 一种用于耳机的anc系统、降噪方法及存储介质
Abutalebi et al. Affine projection algorithm for oversampled subband adaptive filters
CN114121030A (zh) 生成语音增强模型的方法和设备以及语音增强方法和设备
Ma et al. An improved subband adaptive filter for acoustic echo cancellation application
CN112309362A (zh) Mr系统的主动声学降噪方法、装置和计算机设备
Ohno et al. Convergence behavior of the LMS algorithm in subband adaptive filtering
CA2519868C (en) Method and system for active noise cancellation
WO2021126670A1 (en) Filter adaptation step size control for echo cancellation
Martínez et al. Implementation of an adaptive noise canceller on the TMS320C31-50 for non-stationary environments
CN103004086B (zh) 基于误差子带的自适应滤波方法及系统
CN117854468A (zh) 一种主动噪声控制方法及装置

Legal Events

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