일반적인 동기식(Synchronous) 디지털 시스템을 아래에서 도 1을 참조하여 설명하고자 한다. 도 1은 종래 기술에 따른 동기식 디지털 시스템의 구성을 도시한 도면이다. 상기 도 1을 참조하면 일반적인 동기식(Synchronous) 디지털 시스템은 입력과 출력포트를 가지고 있으며 그 사이에 정해진 목적의 데이터 처리를 위한 조합 논리 회로(Combination Logic)(110)와 클럭에 의해 동기되는 플립플롭(Flip-Flop) 또는 래치(Latch)로 이루어진 입력 레지스터(102)와 출력 레지스터(104)로 구성된다.
대부분의 프로세서 또는 디지털 블록들은 그 성능을 높이기 위해 상기 도 1의 디지털 시스템의 조합 논리 회로(110)를 분할하여 아래 도 2의 '파이프라인'구조를 사용하고 있다. 도 2는 종래 기술에 따른 파이프라인 구조를 가지는 동기식 디지털 시스템인 동기식 파이프라인 시스템의 구성을 도시한 도면이다. 상기 도 2를 참조하면 동기식 디지털 시스템의 조합 논리회로는 4개의 분할된 조합 논리회로(222, 224, 226, 228)로 구성하며 각 조합 논리회로는 플립플롭(Flip-Flop)으로 이루진 입력 레지스터와 출력 레지스터를 가진다. 조합 논리회로와 조합 논리회로 사이의 레지스터(204, 206, 208)는 앞의 조합 논리회로의 출력 레지스터이자 뒤의 조합 논리회로의 입력 레지스터 역할을 수행한다.
상기 도 2와 같이 파이프라인 구조를 사용하는 동기식 디지털 시스템은 동시에 여러 개의 데이터 처리를 수행할 뿐 아니라, 그 동작 속도(클럭 속도)도 높이는 효과를 가져온다. 이는 도 2와 같이 4개로 분할된 파이프라인 구조에서는 최대 4개의 연속된 프로세싱이 동시에 수행될 수 있기 때문이다.
상기 도 2와 같이 종래의 일반적인 동기식 파이프라인 구조에서는 각 파이프라인 레지스터에 입력되는 클럭이 서로 동일한 주파수와 동일한 위상을 갖도록 설계된다. 따라서 이 클럭의 주파수는 조합 논리회로와 입력과 출력 레지스터로 구성하는 각 파이프라인 스테이지 중 가장 연산 시간이 오래 걸리는 스테이지에 의해 결정된다. 예를 들어, 상기 도 2에서 스테이지 1에서 스테이지 4에 속하는 각 조합 논리회로로(222, 224, 226, 228)의 각각의 연산시간이 순서대로 각각 11nsec, 13nsec, 16nsec, 9nsec 라고 한다면, 연산시간이 가장 긴 스테이지 3에 의해 이 시 스템의 클럭 속도가 결정된다. (1/16nsec = 62.5MHz)
이처럼 각 스테이지의 연산 시간이 서로 다르게 되는 것은 기능적으로 각 스테이지에서 수행되어야 하는 연산의 종류가 서로 다르기 때문이다. 이러한 연산시간상의 차이를 최대한 줄이기 위한 방법에는 여러 가지 방법이 존재하는데 그중 가장 대표적인 방법을 아래 도 3을 참조하여 설명하고자한다.
도 3은 종래 기술에 따른 클럭의 지연을 통해 스테이지간의 연산시간 차이를 줄이는 동기식 파이프라인 시스템의 구성을 도시한 도면이다. 상기 도 3을 참조하면 종래의 동기식 파이프라인 시스템의 클럭 발생부(200)의 발생 클럭을 지연부(302)를 통해 필요시간 만큼 지연하여 레지스터에 제공함으로 스테이지간의 연산시간 차이를 줄였다. 예를 들어 상기 도 3의 동기식 파이프라인 시스템의 목표 운영 주파수가 100MHz (10nsec 주기)인데, 추정된 각 스테이지의 연산 수행시간이 8nsec, 9nsec, 11nsec, 7nsec인 경우에
세 번째 스테이지와 네 번째 스테이지 사이에 있는 레지스터(208)에 입력되는 클럭 신호를 의도적으로 1 ~ 3nsec 지연시키는 것이다. (여기서는 그 중간 값인 0.2nsec를 예로 들겠다.) 이렇게 의도적으로 해당 스테이지의 출력 레지스터에 입력되는 클럭을 Td(0.2nsec) 만큼 지연시킴으로써, 스테이지 3에 주어지는 연산 시간은 Tclk + Td로 증가 하게 된다. 이와 같이 스테이지 4에서 사용할 시간을 스테이지 3로 빌려 와서 사용(차용)하는 방법을 시간 차용 기술(Time Borrowing Technique)이라고 한다. 이 방식은 고성능 디지털 마이크로프로세서나 디지털 시스템 블록에서 널리 사용되어지는 기술이다.
하지만, 시간 차용 기술은 기술들을 효과적으로 적용하기 위해서는 각 스테이지들의 연산 시간을 정확히 알아내는 것이 무엇보다 중요하다. 이는 다만 시간 차용 기술뿐 아니라 스테이지 간의 시간차이를 줄이는 다른 여러방법들도 동일하다. 스테이지 간의 시간차이를 줄이 방법들은 칩 설계 단계에서 적용되는 기술이기 때문에, 칩이 제작된 이후의 특성에 대해서는 정확한 추정(Estimation)이 어려운 것이 사실이다. 더욱이 칩 제작 공정이 점차적으로 미세화됨에 따라, 공정상에서의 불확정성(Uncertainty, Process-Voltage-Temperature Variation)이 급격히 증가하고, 집적도가 증가함에 따라 인접 회로에 의한 전기적 간섭(Electrical Coupling)이 더욱 심각해 지고 있다. 따라서 칩 설계 단계에서는 칩의 물리적 특성을 정확히 파악한다는 것은 점점 어려워지고 있다. 또한, 성능/전력에 대한 제작 후 수정 (Post-Fabrication Revision)을 지원하지 못하고 있다.
따라서, 칩 설계 단계에서의 불확실한 추정치인 스테이지들의 연산시간을 이용하여 방법이 아닌, 칩 제작 이후의 실측 결과를 바탕으로 한 스테이지들의 연산시간을 이용하는 기술이 요구된다.
이하 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명하면 하기와 같다. 그리고 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 발명은 복수개의 파이프라인을 사용하는 디지털 시스템에서, 각 파이프라인의 각 스테이지에 입력되는 클럭 신호를 동적으로 지연시켜(또는 앞당겨), 해당 시스템이 동일한 전원전압을 유지하면서도 더 높은 클럭 주파수에서 동작이 가능토록 하거나, 동일한 클럭 주파수를 유지하면서도 더 낮은 전원 전압에서 동작이 가능토록 하는 장치 및 제어 방법에 관한 것으로 아래에서 도 4를 참조하여 본 발명의 장치를 설명하고자 한다.
도 4는 본 발명의 바람직한 일 실시 예에 따른 실측을 통해 구한 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하여 동기식 파이프라인 시스템의 구성을 도시한 도면이다. 상기 도 4를 참조하면 본 발명의 동기식 파이프라인 시스템은 클럭 발생부(400), 다수의 레지스터(402, 404, 406, 408, 410) 및, 다수의 조합 논리회로(412, 414, 416, 418)에 더하여 본 발명에 의해 각 스테이지마다 추가된 경로 지연 복사회로(PDR : Path Delay Replica)(422, 424, 426, 428)와 클럭 제어 유닛(CCU, Clock Control Unit)(432, 434, 436)을 포함하여 구성한다.
본 발명의 스테이지는 입력 레지스터, 조합 논리회로, 경로 지연 복사회로 및, 출력 레지스터를 포함하여 구성한다. 예를 들어 스테이지 1의 경우 입력 레지스터(402), 조합 논리회로(412), 경로 지연 복사회로(422) 및, 출력 레지스터(404)를 포함한다.
상기 경로 지연 복사회로(422, 424, 426, 428)는 각 스테이지에 속한 조합 논리회로 각각의 연산속도를 출력하는 장치로서 가장 빠른 연산속도인 빠른 경로 지연과 가장 느린 연산 속도인 느린 경로 지연을 출력한다. 상기 경로 지연 복사회 로(422, 424, 426, 428)의 상세한 설명은 이후 도 5를 참조하여 후술한다.
상기 클럭 제어 유닛(432, 434, 436)은 조합 논리회로 사이에 존재하는 레지스터로 입력되는 클럭의 지연 정도를 조정하는 장치로서 레지스터의 앞과 뒤의 스테이지의 경로 지연 복사회로로부터 각 스테이지의 경로지연 신호를 수신하고 이를 이용하여 레지스터로 입력되는 클럭의 지연 정도를 조정한다. 상기 클럭 제어 유닛(432, 434, 436)의 상세한 설명은 이후 도 6을 참조하여 후술한다.
상기 도 4는 4개의 스테이지를 가지는 경우를 예로 설명하나 본 발명은 두개 이상의 스테이지를 가지는 모든 동기식 파이프라인 시스템에 적용가능하다.
도 5는 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에서 경로 지연 복사회로의 구성을 도시한 도면이다. 상기 도 5를 참조하면, 경로 지연 복사회로(PDR : Path Delay Replica)(500)는 해당 스테이지의 조합 논리회로(510)에서 다수의 논리 게이트들을 거치는 경로 중에서 가장 빠른 경로와 가장 느린 경로를 설계 단계에서 미리 선정하고 이와 동일한 회로를 그대로 복사(Replication)한다. 이렇게 복사된 두 개의 다수의 논리 게이트로 이루어진 빠른 경로 복사회로와 느린 경로 복사회로의 최초 입력 각각에 토글 플립플랍(Toggle-Flip/Flop)(502, 504)을 추가하고, 경로의 중간 입력에는 적절한 '1' 또는 '0'의 상수(Constant)을 입력해 주어서, 매 클럭 마다 두 경로의 최종 출력이 0과 1을 반복하도록 하며, 같은 클럭에 대한 두 패스의 출력 값이 서로 반대의 값을 갖도록 한다.
도 6은 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에 서 클럭 제어 유닛의 구성을 도시한 도면이다. 상기 도 6을 참조하면 본 발명의 클럭 제어 유닛(600)은 클럭 지연 제어부(Clock Delay Controller)(610)와 지연 논리회로(Programmable Delay Login)(620)를 포함하여 구성한다.
상기 클럭 지연 제어부(610)는 앞단의 스테이지로부터 빠른 경로 지연과 느린 경로 지연 신호를 수신하여 클럭신호에 대해 유효한가 여부를 확인하여 유효하지 않으면 클럭의 지연 정도를 증가하도록 조정하고, 뒷단의 스테이지로부터 빠른 경로 지연와 느린 경로 지연 신호를 수신하여 클럭신호에 대해 유효한가 여부를 확인하여 유효하지 않으면 클럭을 앞당겨 지연을 감소시키도록 조정한다. 상기 클럭 지연 제어부(610)의 상세한 설명은 실질적인 일 예인 도 7을 참조하여 후술한다.
상기 지연 논리회로(620)는 상기 클럭 지연 제어부(610)의 제어를 받아 조정한 기연시간만큼 수신하는 클럭을 지연하여 출력한다. 상기 지연 논리회로(620)의 상세한 설명은 실질적인 일 예인 도 8을 참조하여 후술한다.
도 7은 본 발명의 바람직한 일 실시 예에 따른 클럭 제어 유닛에서 클럭 지연 제어부의 구성을 도시한 도면이다. 상기 도 7을 참조하면 상기 클럭 지연 제어부(610)는 배타적 논리합(exclusive OR)(712, 716), 데이터 플립플랍(D-Flip/Flop)(714, 718) 및, 지연 카운터(720)를 포함하여 구성한다.
상기 배타적 논리합(712)는 앞단의 스테이지로부터 빠른 경로 신호와 느린 지연경로 신호를 수신하여 이를 배타적 논리합하여 결과를 상기 데이터 플립플랍(714)에 입력한다. 상기 논리합한 결과는 상기 앞단의 스테이지가 주어지는 클럭주기에 유효한지 여부를 나태내는 결과라 '1'이면 유효한 상태이고 '0'이면 유효하 지 않은 상태를 의미한다. 상기 데이터 플립플랍(714)은 클럭 발생시 입력받은 유효여부 정보를 상기 지연 카운터(720)로 제공한다.
또한, 상기 배타적 논리합(716)는 뒷단의 스테이지로부터 빠른 경로 신호와 느린 지연경로 신호를 수신하여 이를 배타적 논리합하여 결과를 상기 데이터 플립플랍(718)에 입력하고, 상기 데이터 플립플랍(718)은 클럭 발생시 입력받은 유효여부 정보를 상기 지연 카운터(720)로 제공한다.
상기 지연 카운터(720)는 상기 데이터 플립플랍(716, 718)으로부터 수신하는 유효 여부 정보를 수신하여 앞단의 스테이지가 유효하지 않을 때 지연하는 횟수를 증가시키고, 뒷단의 스테이지가 유효하지 않을 때 지연하는 횟수를 감소시켜 레지스터로 제공하는 클럭의 지연 정도를 조정한다.
도 8은 본 발명의 바람직한 일 실시 예에 따른 클럭 제어 유닛에서 지연 논리 회로의 구성을 도시한 도면이다. 상기 도 8을 참조하면 상기 지연 논리회로(620)는 다수의 지연기(801~810)과 다수의 다중화기(811~820)를 포함하여 구성하며, 상기 클럭 지연 제어부(610)로부터의 지연을 요구하는 제어신호를 수신하면, 각 다중화기는 요구하는 만큼의 지연을 위해 상응하는 만큼의 지연기를 거친 신호를 출력하여 클럭신호를 지연한다.
이하, 상기와 같이 구성된 본 발명에 따른 파이프라인 시스템의 동적 클럭 제어 방법을 아래에서 도면을 참조하여 설명한다.
도 9는 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에서 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하는 과정을 도시한 흐 름도이다. 상기 도 9를 참조하면 본 발명의 동기식 파이프라인 시스템은 900단계에서 클럭 주파수와 전압을 설정하면, 902단계로 진행하여 각 스테이지에 포함된 PDR을 이용하여 각 스테이지의 경로 지연을 측정하고, 904단계로 진행하여 클러 타이밍 오류가 발생한 스테이지가 존재하는지 확인하고, 확인결과 존재하지 않으면 908단계로 진행하여 현상태를 유지한다.
하지만 904단계의 확인결과 클럭 타이밍 오류가 발생한 스테이지가 존재하면 906단계로 진행하여 오류가 발생한 스테이지의 클럭을 기설정 시간만큼 지연하여 거나 앞당겨 조정하고, 상기 902단계로 돌아간다. 상기 904단계에서 스테이지의 클럭을 조정하는 상세한 과정은 이후 도 10을 참조하여 설명하고자 한다.
도 10은 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템의 클럭 제어 유닛에서 실측을 통해 구한 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하는 과정을 도시한 흐름도이다.
상기 도 10을 참조하면 본 발명의 클럭 제어 유닛은 1000단계로 진행하여 실측을 통해 수신하는 앞단의 스테이지와 뒷단의 스테이지 각각의 빠른 경로 지연 신호와 느린 경로 지연신호를 수신하고, 각 스테이지별 빠른 경로 지연 신호와 느린 경로 지연신호를 배타적 논리합하여 각 스테이지가 유효한지 판단하고, 1002단계로 진행하여 클럭 수신시 앞단의 스테이지가 유효한지 확인하고, 확인결과 유효하지 않으면 1004단계로 진행하여 기설정시간만큼 클럭의 지연을 증가시키고, 상기 1000단계로 돌아간다.
상기 1002단계의 확인결과 앞단의 스테이지가 유효하면 상기 클럭 제어 유닛 은 1006단계로 진행하여 클럭 수신시 뒷단의 스테이지가 유효한지 확인하고, 확인결과 유효하지 않으면 1008단계로 진행하여 기설정시간만큼 클럭의 지연을 감소시키고, 상기 1000단계로 돌아간다.
상기 1006단계의 확인결과 앞단의 스테이지가 유효하면 상기 클럭 제어 유닛은 1010단계로 진행하여 클럭주기를 현상태로 유지한다. 상기 1000단계에서 상기 1010단계는 동기식 파이프라인 시스템에 포함된 모든 클럭 제어 유닛이 더이상 클럭 조정이 필요 없을 때까지 반복한다.
그러면 상기 도 4와 같이 4개의 스테이지를 가지는 파이프라인 시스템에서의 클럭을 조정하는 실질적인 예를 설명하고자 한다. 본 발명의 파이프라인 시스템이 최악의 경우(Worst-Case) 4개의 스테이지에서 연산이 수행되는 시간이 각각 7nsec, 8nsec, 9nsec, 6nsec가 될 것으로 추정하고 설계를 완료하여 칩이 제작되었으나 실직적인 칩 제작결과 각 스테이지의 연산 시간이 각각 8nsec, 9nsec, 11nsec, 7nsec로 수행이 된다고 가정한 경우, 목표 동작 주파수인 100MHz를 만족하기 위해서는 세 번째 스테이지의 연산 수행 시간이 문제가 된다. 그러면 문제가 없는 첫번째 스테이지의 출력 레지스터의 조정을 아래에서 도 11을 참조하여 설명하고, 문제가 있는 세번째 스테이지의 출력 레지시터의 조정을 아래에서 도 12를 참조하여 설명하고자 한다.
도 11은 본 발명의 바람직한 일 실시 예에 따른 스테이지의 경로지연이 클럭 주기보다 짧은 경우에 동기식 파이프라인 시스템의 클럭 제어 유닛의 동작의 예를 도시한 도면이다.
상기 도 11을 살펴보면, 상기 도면은 도 4를 참조하여 첫번째 스테이지의 빠른 경로 지연 신호와 느린 경로 지연신호를 시간 다이어그램(Timing Diagram)으로 표시하고있다. 첫번째 스테이지의 느린 경로 지연은 8ns로서, 클럭의 주기인 10ns를 넘지 않으므로 지연을 클럭주기로 인한 시간 오류가 발생하지 않는 경우이다.
이 경우, 빠른 경로 지연 신호와 느린 경로 지연 신호를 배타적 논리합한 결과가 유효 검출(Valid Detection) 신호인데, Clock2가 발생할 때(Positive Edge) 이 유효 검출 신호가 항상 유효함을 뜻하는 높은(High) 값을 갖는다. 따라서 별도의 클럭 지연을 하지 않아도 되므로, 현 상태의 클럭주기를 유지한다.
도 12는 본 발명의 바람직한 일 실시 예에 따른 스테이지의 경로지연이 클럭 주기보다 긴 경우에 동기식 파이프라인 시스템의 클럭 제어 유닛의 동작의 예를 도시한 도면이다. 상기 도 12를 살펴보면, 문제가 발생한 세번째 스테이지의 빠른 경로 지연 신호와 느린 경로 지연신호를 시간 다이어그램(Timing Diagram)으로 표시하고있다. 예로서 설명하고 있는 세번째 스테이지는 느린 경로 지연이 11ns로서, 클럭 주기인 10ns보다 크므로 문제가 발생한다.
도면에서 보는 봐와 같이 세번째 스테이지의 유효 검출 구간이 clock4의 클럭 발생(positive edge)과 어긋나 있는 것을 확인할 수 있다. 이 경우, Clock4의 Positive Edge에서 유효 검출 신호가 유효하지 않음을 뜻하는 낮은(LOW) 값을 가지게 된다. 이 경우 상기 도 7에서 지연 카운터(720)를 하나 증가한 것으로 볼 수 있으며 이는 Clock4의 기설정시간만큼 지연하여 제공함을 뜻한다. 이러한 지연은 유효 검출 신호가 유효함을 뜻하는 높은(High) 값을 가질 때까지 반복한다.
분명히, 청구항들의 범위내에 있으면서 이러한 실시 예들을 변형할 수 있는 많은 방식들이 있다. 다시 말하면, 이하 청구항들의 범위를 벗어남 없이 본 발명을 실시할 수 있는 많은 다른 방식들이 있을 수 있는 것이다.
도 1은 종래 기술에 따른 동기식 디지털 시스템의 구성을 도시한 도면,
도 2는 종래 기술에 따른 파이프라인 구조를 가지는 동기식 디지털 시스템인 동기식 파이프라인 시스템의 구성을 도시한 도면,
도 3은 종래 기술에 따른 클럭의 지연을 통해 스테이지간의 연산시간 차이를 줄이는 동기식 파이프라인 시스템의 구성을 도시한 도면,
도 4는 본 발명의 바람직한 일 실시 예에 따른 실측을 통해 구한 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하여 동기식 파이프라인 시스템의 구성을 도시한 도면,
도 5는 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에서 경로 지연 복사회로의 구성을 도시한 도면,
도 6은 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에서 클럭 제어 유닛의 구성을 도시한 도면,
도 7은 본 발명의 바람직한 일 실시 예에 따른 클럭 제어 유닛에서 클럭 지연 제어부의 구성을 도시한 도면,
도 8은 본 발명의 바람직한 일 실시 예에 따른 클럭 제어 유닛에서 지연 논리 회로의 구성을 도시한 도면,
도 9는 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템에서 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하는 과정을 도시한 흐름도,
도 10은 본 발명의 바람직한 일 실시 예에 따른 동기식 파이프라인 시스템의 클럭 제어 유닛에서 실측을 통해 구한 각 스테이지들의 연산시간을 이용하여 클럭 신호를 조정하는 과정을 도시한 흐름도,
도 11은 본 발명의 바람직한 일 실시 예에 따른 스테이지의 경로지연이 클럭 주기보다 짧은 경우에 동기식 파이프라인 시스템의 클럭 제어 유닛의 동작의 예를 도시한 도면 및,
도 12는 본 발명의 바람직한 일 실시 예에 따른 스테이지의 경로지연이 클럭 주기보다 긴 경우에 동기식 파이프라인 시스템의 클럭 제어 유닛의 동작의 예를 도시한 도면이다.