내부 트리거 발생회로를 이용한 고속의 디지털 MaximumSelector 회로의 설계
<h1>요 약</h1> <p>그동안 신경망칩의 설계에는 주로 아날로그 Maximum Selector (MS) 회로를 사용하였다. 그러나 집적도가 높아질수록 아날로그 MS회로는 신호의 해상도(Resolution)을 높이는데 어려움이 있다. 반면 디지털 MS 회로는 높은 해상도를 얻기는 쉬우나 속도가 느린 단점이 있었다. 본 논문에서는 신경망칩의 디지털화에 사용하기 위한 MSIT(Maximum Selector with InternalTrigger-Signal) 라는 고속의 디지털 MS회로를 개발하였다. MSIT는 제어신호 발생기를 내장하여 안정적인 동작을 확보하고,불필요한 대기시간을 없애도록 이를 최적화 함으로써 높은 속도를 얻을 수 있다. 1.2 \( \mathrm { V } \)-0.13 \( \mathrm {\mu } \mathrm { m } \) 프로세스의 모델파라메터를 사용하여 32 개의 10 비트 데이터에 대하여 시뮬레이션을 수행한 결과 3.4 \( \mathrm { ns } \)의 응답시간을 얻을 수 있었다. 이는 동급의 해상도를 갖는 아날로그 MS회로 보다 훨씬 빠른 속도로써, MSIT와 같은 디지털 MS 회로가 아날로그 MS회로에 비하여 높은 해상도와 빠른 속도를 구현할 수 있음을 보여준다.</p> <h1>I. 서 론</h1> <p>Maximum/Minimum Selector (MS) 회로는 여러 개의 데이터 중에서 가장 큰/작은 값을 갖는 데이터를 찾아내는 회로이다. MS회로는 신경망회로 (Neural Network)나 퍼지(Fuzzy) 시스템을 구성하는 매우 중요한 회로이며, 비선형 필터 등의 설계에도 많이 사용되어왔다.</p> <p>MS회로는 거의 대부분 아날로그회로를 사용하는데 Lazzaro et al.에 의하여 MOS로 구현된 MS회로가최초로 소개된 이후, 이 구조를 기초로 변형, 수정, 보완및 새로운 기능을 추가하는 방법 등으로 보다 빠르고 해상도가 높은 MS회로를 구현하기 위한 많은 연구가 수행되어 왔다. 아날로그 MS회로에 대해 많은 연구가 진행되어온 반면 디지털방식에 의한 MS회로는 상대적으로 큰 관심을 받지 못해왔다. 아날로그방식은 디지털방식에 비해 정확도와 해상도(resolution)가 떨어지는 단점이 있으나, 신경망회로에서는 약간의 오류는 러닝 (learning)과정을 통하여 보정이 가능한 특성 때문에 그동안 신경망칩에서는 크기가 작고 속도가 빠른 아날로그방식을주로 선택하였다. 그러나 칩의 집적도가 높아지고 신경망칩 내의 퍼셉트론(perceptron)의 수가 증가할수록 높은 정확도와 해상도를 갖는 MS회로가 요구된다. 또한 칩들의 전원 전압이 작아지고 있는 추세이고, 이에 따라 신호의 크기도 점점 작아지게 되어 해상도 향상 문제는 아날로그 MS회로가 갖는 가장 큰 문제점으로 작용하고 있다.</p> <p>해상도를 높이는 방법의 하나는 디지털 MS회로를 사용하는 것이다. 디지털 회로의 해상도는 데이터의 비트 수에 결정되므로, 아날로그 신호를 증폭하여 원하는비트수로 디지털 변환한 후, 디지털 MS회로를 사용하면 필요한 해상도를 얻기가 용이하다. 또한, 디지털 회로는 아날로그 회로에 비해 반도체 공정변화에 따른 영향에 민감하지 않으므로 설계가 쉽고 신뢰성이 높다.디지털 MS회로의 또 다른 장점은 FPGA로 구현할 수있다는 것이다. FPGA를 사용하여 새로운 시스템 또는칩을 구현함으로써 초기 신제품의 개발기간 및 비용을단축하는 방법이 요즘 SoC 개발의 추세이다. 신경망칩의 주요부분들을 디지털설계 한다면 앞으로 신경망칩의개발 및 제작도 FPGA를 이용함으로써 그 제작기간과비용을 대폭 절감할 수 있다.본 논문에서는 아날로그 MS회로가 갖는 문제점을극복하고, 신경망칩의 디지털화를 위한 연구의 일환으로 고속의 디지털 MS회로를 연구·설계하였다.</p>
<h2>2. 내부 제어신호를 이용한 디지털 Maximum Selector 회로의 설계</h2> <p>본 연구에서는 Parallel Bit Selection 방식을 사용하여 디지털 MS회로를 설계하였다. 회로의 이해를 돕기위해 \(n\) 개의 m-bit 데이터에서 최대값을 갖는 데이터를 찾는 Parallel Bit Selection 동작을 요약하면 다음과 같다.</p> <ol type=1 start=1><li>탐색과정은 m 번의 평가 단계로 구성되며, 한 단계에서는 모든 데이터의 동일한 위치에 있는 하나의 비트만이 평가된다.</li> <li>평가 단계는 최상위 비트 (MSB, Most SignificantBit)부터 시작하여 최하위비트 (LSB, LeastSignificant Bit)까지 순차적으로 진행된다</li> <li>시작 전에는 모든 데이터가 평가대상이 된다. 첫 (MSB) 단계 부터 각 단계별 평가결과에 따라 평가대상에 잔류하는 데이터와 제외되는 데이터를 결정하여 평가대상을 갱신한다. 한번 탈락된 데이터는 영구히 평가대상에서 제외된다</li> <li>각 단계별로 비트의 값에 따라 잔류하는 데이터와탈락되는 데이터를 결정한다. 이 때 평가 비트 값이 1인 데이터는 잔류하고, 0 인 데이터는 탈락된다. 단 모든 평가대상의 평가비트 값이 0일 경우에는 탈락자 없이 모두 잔류한다.</li> <li>마지막(LSB) 단계를 통과한 후 생존한 데이터가 최대 값을 갖는 데이터가 된다. 만일 복수의 데이터가 마지막까지 생존할 경우 최대 값을 갖는 데이터가 복수가 되며 이들 중 어느 것을 선택할 것인가는 사용자 규칙에 따른다</li></ol> <p>위의 알고리즘을 바탕으로하여 새로이 개발된 최대값 선택회로(MSIT: Maximum Selector with InternalTriggers)의 구조는 그림 1과 같다. 그림 1-(a)에는 간단하게 4 개의 4-비트 데이터 (A, B, C, D )에서 최대값을 갖는 데이터를 찾는 경우를 실례로 MSIT 회로의 구조를 도시하였다. 평가셀 (Evaluation Cell, EC)은 비트 값을 평가하여평가대상에서의 탈락여부를 결정하는 기본 단위회로로써 그림 1-(b) 와 같으며 그 입출력 신호의 역할과 동작은 다음과 같다. (첨자 i 는 LSB를 0으로, MSB m-1로 하였다)</p> <p>\( D_{i} \) : 데이더의 \( i \) 번째 위치의 비트 값 \( T_{i}: i \) (단계) 열의 동작을 제어하는 Trigger 신호 \( W_{i}: i \) 열에서의 펑가대상 잔류여부 평가 결과, (1: 잔류, 0: 탈락) \( Z_{i}: i \) 열 중, \( W_{i}=1 \) 인 모든 \( \mathrm{EC} \) 의 \( D_{i} \) 가 0 일 때 1</p> <p>\( T \) 는 \( i \) 단계의 \( \mathrm{EC} \) 들의 시작을 알리는 신호로써 각 데이터의 \( i \) 번째 비트에 해당하는 \( \mathrm{EC} \) 들을 제어한다. \( \mathrm{EC} \) 의 출력, \( W_{i} \) 는 평가대상에의 포함여부를 나타낸다. \( \left(W_{l}-0\right. \) 이면 이 데이터는 평가결과 탈락한 것을 의미하며, \( W_{i}=1 \) 이면. 다음 단계의 펑가대상에 포함되는 것을 의미한다) 만일 \( W_{i} \) 가 0이 회면 이미 탈락한 데이터 이므로 \( W_{i} \) 에 의해 이 행의 모든 \( W_{j}(j<i) \) 는 자동적으로 0 이 되고, 따라서 이 행의 \( i \) 열 우측의 모든 \( \mathrm{EC} \) 는 비활성화 (disable) 된다. \( Z_{i} \) 는 \( i \) 열에시 평가대상에 포함된 EC들의 입릭 비트 값이 모두 0 일 때 1 이 된다. \( n \) 개의 \( m \)-bit 데이터에서 가장 큰 값을 골라내는 일반적인 MS회로는 \( \mathrm{EC} \) 들이 \( (n \times m) \) 형태의 배열로 배치된 구조를 갖는다. 각 행에는 하나의 데이터를 ( \( \mathrm{MSB} \) 가 맨 왼쪽에 오도록) 각 \( \mathrm{EC} \) 에 한 비트씩 순서대로 입력한다. 크기의 비교평가는 열 단위로 이루어지며, \( k \) 열의 동작은 Trigger 신호 \( T_{k} \) 에 의해 시작된다. \( T_{k} \) 는 \( \mathrm{MS} \) 회로내부에서 자체 생성되는 내부 제어 신호로써 이 회로의 시작을 알리는 클럭에 의해 맨 좌측열의 Trigger 신호 \( T_{n-1} \) 이 활성화 되고, 그림 \( 1-(\mathrm{a}) \) 와 같이 지연 (delay) 회로에 의해 \( T_{n-2}, T_{n-3} \ldots T_{0} \) 가 \( \Delta \) 만큼의 일정한 시간 차이를 갖고 순차적으로 활성화된다. 순차적으로 활성화되는 \( T_{k} \) 신호들에 의해 MSB 부터 LSB까시 차례차례 평가가 진행된다. \( \mathrm{EC} \) 의 평가 결과, \( W_{i}=1 \) 이 되는 경우는 \( D_{i}=1 \) 이거나 혹은 \( Z_{i}=1 \) 일 때이다. 각 열마다 경쟁에서 탈락한 \( \left(W_{1}=0\right) \) 데이터들은 제외시키고 생존한 \( \left(W_{i}=1\right) \) 데이터들만 다음역의 평가 대상이 되므로 \( \mathrm{LSB} \) 의 평가가 끝나면 \( W_{0} \) 신호가 1 으로 남아있는 행의 데이터가 최대값을 갖는 데이터가 된다. 만일 하나 이상의 \( W_{0} \) 가 1 로 남아있는 경우에는 최대값을 갖는 데이터가 복수인 경우이며, 이때는 사용자가 정한 자체 규칙에 따라 이들 중의 하나를 선택할 수 있다.</p> <p>EC 회로는 입력신호의 모든 조합에 불필요한 글리치가 생성되지 않도록 설계하였으며, 인접한 \(T\) 신호간의 지연시간, \(\Delta\) 은 EC 회로의 전달지연시간 (\(T_{EC}\) ) 이상으로 설정하여 앞의 열에 있는 EC들의 평가가 모두 끝나기 전에 다음열의 EC가 시작되는 일이 없도록 설정 한다. 이것은 레이스나 기타 잡음에 의하여 생긴 글리치가 다음 EC로 전파되는 것을 차단하는 역할을 하므로회로의 안정적인 동작을 보장한다.클럭이 입력되고 탐색완료(Fin) 신호가 발생하기까지의 시간 \(t_{MS}\) 는 다음과 같이 표시된다.</p> <p>\( t_{M S}=t_{c t}+m \Delta \)<caption>(1)</caption></p> <p>여기서 \(t_{ct}\) 는 클럭으로부터 \(T_{m-1}\) 가 발생하는데 까지의 지연시간으로 데이터의 수 및 비트수와는 무관하다. 식(1)과 같이 MS 회로의 지연시간은 데이터의 비트 수에비례하며\(\Delta\)에 좌우된다.데이터 수가 증가할수록 글로벌 신호인 \(T_{i}\) 와 \(Z_{i}\) 신호의 지연시간이 증가하여 이들의 영향에 의해 \(\Delta\) 가 증가하게 된다. 이 중 \(T_{i}\) 신호는 EC 회로의 수정 없이 \(T_{i}\) 드라이버의 크기 조절과 분기(partitioning) 기법을 사용하여 데이터 수의 증가에 따른 영향을 최소화 할 수 있다. 그러므로 데이터 수의 증가에 따라 \(\Delta\) 의 크기에 가장 큰 영향을 주는 것은 \(Z_{i}\) 의 지연시간이다. \(\Delta\) 의 크기가 MS회로 전체속도를 좌우하므로 고속의 MS회로를 얻기 위해서는 시뮬레이션 및 실험을 통하여 최악조건(worst condition)에서도 오동작이 일어나지 않는 범위 내에서 \(\Delta\) 가 최소의 값을 갖도록 설계하는 것이 중요하다. MSIT의 기본적인 동작은 각 열이 파이프라인형식으로 동작하는 것과 유사하다. 파이프라인과 다른 점은 첫째, 중간에 레지스터를 사용하지 않으므로 레지스터에 의한 지연시간이 없어 응답시간을 줄일 수 있고, 둘째, 외부클럭을 사용하지 않고 클럭역할을 담당하는 내부 트리거신호를 발생하여 사용하므로써 트리거신호의 간격을 최적화 하여 파이프라인이 갖는 불필요한 대기시간을 없앨 수 있다. 위와 같은 두 가지의 작용에 의해 파이프라인 방식에 비해 회로의 응답시간을 대폭 단축할 수 있다</p> <p>또한 트리거신호(\(T_{i}\))의 사용은 잡음이나 레이스 등의원인에 의해 EC내부에 발생한 글리치가 다음단계의 EC로 전파하는 것을 차단하는 역할을 함으로써 전체회로가 잡음이나 글리치에 강한 안정된 동작을 보장하여준다.</p>
<h1>II. 내부 제어신호를 이용한 디지털 Maximum Selector 회로</h1> <h2>1. 관련 연구</h2> <p>디지털 데이터에서 최대 값을 찾아내는 알고리즘은 Successive Elimination 알고리즘과 Parallel BitSelection 알고리즘이 많이 사용된다. SuccessiveElimination 알고리즘은 두 개의 데이터를 비교하여 작은 데이터를 버리고 큰 쪽을 택하는 동작을 반복하는것으로써 순차적으로 비교하는 경우는 \( O(n) \)의, 복수의비교기를 사용하여 병렬식으로 비교할 경우에는\( O(\log n) \)의 복잡도 (complexity)를 갖는다. 이 방법은</p> <p>데이터의 수가 증가할수록 지연시간 (delay)이 길어지며, 마이크로프로세서를 이용하여 소프트웨어 방식으로구현하거나 비교 하는 데이터의 수가 많지 않을 때 주로 사용된다.Parallel Bit Selection 알고리즘은 모든 데이터를 최상위 비트(MSB) 부터 비트 단위로 차례로 비교하여 최하위 비트(LSB)까지 비교하는 방식으로 m-bit 데이터의 경우 \( O(m) \)의 복잡도를 갖는다. 이 알고리즘은 아날로그 방식과 같이 다수의 데이터를 동시에 비교할 수있으므로 비교하는 데이터의 수가 많고 고속의 데이터처리가 요구되는 설계에 적합하다.</p> <p>Adam Kapralski는 하나의 비트를 병렬로 비교하는 Parallel Bit-Selector (PBS) 블록을 설계하고, 이 PBS를 비트 수 만큼 여러 클럭에 걸쳐 순차적으로 반복시켜 동작하는 TMAX 회로와, TMAX 회로를 비트수 만큼 반복 배치하여 파이프라인으로 동작시키는 구조를 제안하였으며, 또한 여러 개의 PBS를 레지스터없이 직렬로 연결하여 단일 사이클에 구현하는 SMAX회로를 제시하였다.Parallel Bit Selection 알고리즘을 채택한 응용시스템들은 파이프라인 기법을 적용하여 사용하는 경우가 대부분이었다. 그러나 파이프라인 설계는 처리율(throughput)은 높일 수 있지만 개별 데이터에 대한 응답시간(response time)은 오히려 늘어난다. 그러므로,파이프라인을 적용한 설계는 비디오 프로세싱과 같이연속적으로 입력되는 많은 데이터를 고속으로 처리할경우에는 유용할 수 있으나 데이터가 간헐적으로 입력되는 경우에는 부적당하다. 또한 PBS 블럭의 속도가상당히 빠르기 때문에 \(\mathrm{GHz}\) 이상의 고속 클럭을 사용하는 설계가 아니면 파이프라인에 의하여 응답시간의 증가는 매우 심각해진다.</p> <p>위와 같이 파이프라인이 유용한 경우도 있으나 응용분야에 따라, 클럭이나 시작 (start) 신호로부터 시작하여 최대값을 찾아내는 모든 동작이 한 사이클 내에 완료되도록 설계된 회로가 유용하다. Kapralski가 제안한SMAX 회로는 단일 사이클 구현(Single-cycleimplementation)의 MS 회로이지만 이 회로는 레이스에 취약한 문제점을 지니고 있다. 이들이 제안한 PBS회로는 레지스터를 이용한 다중 사이클 (또는 파이프라인)구현에 최적화된 구조로 설계되어 있어, PBS 들이 단순히 직렬 연결되어 있는 SMAX 회로는 TMAX회로와달리 레이스에 매우 취약한 구조를 갖고 있다. 따라서오동작의 위험이 많고, 특히 다이나믹 로직같이 글리치 (Glitch)에 취약한 로직회로에는 사용이 불가능하다. 본 논문에서는 이와 같은 단점을 제거하고, 단일 사이클에 동작하는 안정적이고 신뢰성이 높은 고속의 디지털 MS회로를 개발하였다.</p>