효율적인 Big Data 처리 솔루션
AVAL GLOBAL
개요
지속적인 하드웨어 기술의 발전으로 큰 용량의 데이터를 빠르게 전달하는 것이 중요해지고 있으며, 일상에서 쉽게 볼 수 있는 TV, 태블릿, 모니터, 휴대폰 등의 디스플레이 시장 또한 지속적으로 성장하고 있다. 해상도를 기준으로 몇 년 전까지만 해도 Full HD TV를 사용하는 것이 일반적이었지만 현재는 4K, 8K TV까지도 사용하고 있고, 휴대폰의 경우에는 6인치 크기에 3K(3088*1440)의 해상도를 사용하기도 한다.
이런 기기들을 검사할 때는 디스플레이의 픽셀과 카메라의 픽셀을 매칭해서 검사하는 방식이 일반적이며, 해상도 및 디스플레이 크기가 커지면 카메라의 해상도를 높이거나, 촬영횟수를 늘려야 한다. 이는 같은 시간에 더 많은(고속) 또는 더 큰 데이터(고해상도)가 필요함을 의미한다.
최근 머신비전 시장에서는 CXP-12(CoaXPress) 인터페이스가 채택된 제품들이 시장에 나오고 있으며, 이 제품들은 최대 50Gbps의 데이터를 처리할 수 있다. 이를 GByte로 환산 시 최대 6.25GByte/s의 고속, 대용량 인터페이스이다.
이미지 데이터를 연산할 때 사용하는 PC 자원은 주로 CPU를 이용하거나, GPU를 이용해 병렬처리를 하는 경우이다.
고해상도, 고속의 데이터 전송으로 인하여 CPU 또는 GPU의 처리량이 정해진 택타임(요구하는 생산 목표를 달성하기 위해 제품 하나를 생산하는 시간을 의미)을 넘어가게 되는 경우 여러 대의 PC를 이용한 분산처리로 원하는 택타임을 달성할 수 있게 된다. 본문에서는 Avaldata의 GiGA Series(분산처리)를 이용한 택타임을 줄일 수 있는 방법에 대해 알아본다.
1. 분산처리 관련 정보
Avaldata의 GiGA Series는 최대 80Gbps의 데이터 전송이 가능한 광통신 기반의 고속 시리얼 통신 보드로 대용량 데이터 전송과 분산 시스템 구축시에 사용할 수 있는 제품이며, 메모리에 작성 가능한 모든 데이터(이미지, 파일, 숫자, 문자, 등)를 전송할 수 있다.
Frame grabber(자체적으로 이미지를 입력 받고 출력하는 제품), 영상을 분배해주는 Splitter와 다르게 이미지뿐만 아니라 모든 데이터를 통신하는 제품이므로, 활용도가 높고 여러 제조사의 하드웨어와 함께 사용이 가능하다.
위 그림 2은 GiGA CONNECTION의 APX-7402 보드, 그림 3은 광케이블이며, 아래는 일반적인 이더넷과 당사의 GiGA CHANNEL을 비교한 자료이다.
GiGA CHANNEL 사용 시 Protocol Stack이 불필요한 이유는 Avaldata의 독자적인 하드웨어 프로토콜을 사용하기 때문이며, 자체적으로 데이터 신뢰성(CRC check, 송수신시 에러 체크 등)을 확인하고 있다.
GiGA Series는 데이터 전송 방식에 따라 GiGA CHANNEL과 GiGA CONNECTION의 2가지 라인업으로 구성되어 있다.
GiGA CONNECTION은 데이터 전송을 Point to Point로 MPO 커넥터 타입의 광 케이블로 연결하여 사용하며, MPO케이블은 RX, TX가 포함되어 있기 때문에 하나의 라인만 연결해도 된다.
또한 각 GiGA보드의 메모리를 별도로 사용할 수 있다. 예를 들어 APX-7402의 메모리 크기는 4GByte 이며, 노드 2개 사용시 8GByte, 4개 사용시 16GByte의 메모리를 사용할 수 있다. 데이터 동기는 Mailbox를 통해서 하며, FIFO 모드로 사용시 별도의 동기 과정을 생략할 수 있다.
다른 방식인 GiGA CHANNEL은 각 노드에 탑재한 GiGA 보드의 공유메모리를 LC 커넥터 타입의 광케이블을 Ring 방식으로 연결하여 사용하며, Ring구성의 특성상 보드의 Tx, Rx는 모두 연결되어야 한다.
또한 각각의 GiGA 보드에 동시에 전송하는 방식으로 사용되며, 소프트웨어 관점으로 본다면 여러 노드의 버퍼메모리를 한 개의 메모리로 취급하는 것과 같다. 예를 들어 APX-781 모델의 메모리는 512MByte이며, 노드를 2개를 사용해도, 10개를 사용해도 사용할 수 있는 최대 버퍼 메모리는 512MByte이다. 데이터의 동기는 Doorbell과 공유 레지스터를 사용한다.
3. 데이터 전송 속도 및 공유메모리 정보
우선, 대역폭, 공유 메모리, 연결 가능 노드 수, 쓰기와 읽기 속도를 참고하여 사용하고자 하는 어플리케이션에 적합한 제품을 선택하면 된다.
참고로 아래의 표는 500MB 데이터를 각 제품별 메모리에 쓰기 및 읽기 시간을 나타낸 것이며, 시간 단위는 ms이다.
4. 적용 예시
1대의 PC에 카메라와 그래버를 1대씩 사용하는 일반적인 환경에서는 1번째 이미지 획득→1번째 이미지처리→2번째 이미지 획득→2번째 이미지 처리와 같이 이전의 처리가 완료되면 다음 순서로 넘어가게 된다. 가장 일반적인 구성인 그림 8의 설비가 있다고 가정하고, 고해상도의 고속촬영 카메라로 설비를 개조한 경우엔, 데이터의 처리시간 증가에 따른 검사 시간의 지연으로 생산량이 감소되는 결과가 발생할 수 있다.
그림 10은 1대의 카메라를 3대의 PC로 분산처리 하는 예시이며, 그림 11과 같이 데이터를 취득하는 카메라에서 입력되는 이미지를 PC1, PC2, PC3에서 순차적으로 처리를 함으로써 전체적인 택타임이 단축된다.
그림 12는 1대의 PC를 사용하였을 때와 비교하여 3대의 PC를 사용한 경우에는 약 2.5배 빠르게 처리됨을 보여준다. Big data나 고속전송일 경우에 분산처리의 장점이 명확해짐을 알 수 있으며, 사용자의 의도에 따라 분산 또는 집중으로 처리가 가능하다.
분산처리의 경우 아래의 그림 13과 같이 카메라와 연결된 PC에서 촬영된 이미지를 3대의 Node로 전송하여, 각각의 처리를 하는 방법이다. 집중처리의 경우 아래의 그림 14와 같이 3대의 카메라에서 촬영된 내용을 한 대의 Node에 전달하여 통합으로 처리하는 방식이다.
결론
GiGA Series는 데이터를 광으로 통신하는 보드로써, 이미지 분산처리 뿐만 아니라 대용량 데이터의 전송도 가능하여 다양한 어플리케이션에서 활용이 가능 할 것이라 생각된다.
실제로 머신 비전에서의 이미지 분산처리, 대형 디스플레이의 고속 패턴 프린팅, 물류 시스템의 통합화, 데이터 센터에서의 Big data 처리 등 다양하게 응용하여 사용되고 있으며, 앞으로도 Big data를 효율적으로 처리함으로써 산업 자동화에 기여할 수 있는 하나의 솔루션으로 자리잡기를 기대해 본다.
작성자: 손윤석(Jade Son, Product Support Engineer in AVAL GLOBAL)



















