KR0157926B1 - 집적 회로의 클럭 주기 최소화 방법 - Google Patents

집적 회로의 클럭 주기 최소화 방법 Download PDF

Info

Publication number
KR0157926B1
KR0157926B1 KR1019950055625A KR19950055625A KR0157926B1 KR 0157926 B1 KR0157926 B1 KR 0157926B1 KR 1019950055625 A KR1019950055625 A KR 1019950055625A KR 19950055625 A KR19950055625 A KR 19950055625A KR 0157926 B1 KR0157926 B1 KR 0157926B1
Authority
KR
South Korea
Prior art keywords
bus
path
communication
load
paths
Prior art date
Application number
KR1019950055625A
Other languages
English (en)
Other versions
KR970049269A (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 KR1019950055625A priority Critical patent/KR0157926B1/ko
Publication of KR970049269A publication Critical patent/KR970049269A/ko
Application granted granted Critical
Publication of KR0157926B1 publication Critical patent/KR0157926B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 집적 회로의 클럭 주기 최소화 방법에 관한 것으로, 종래의 부하 분배 방식은 실제적으로 클럭 주기와 관계가 있는 부하는 임계 경로상에 존재하는 인자들의 부하이므로 전체 인자들에 대해 분배된 부하는 클럭 주기와는 무관할 수 있거나 오히려 클럭 주기를 증가시킬 수 있는 문제점이 있다. 이러한 종래의 문제점을 개선하기 위하여 본 발명은 연산기 및 레지스터의 할당이 완료된 후 임계 경로를 형성할 가능성이 있는 통신 선로에 대해서만 부하 분배를 수행하여 버스 연결을 최소화함에 의해 클럭 주기를 최소화하도록 창안한 것으로, 본 발명은 고주파수의 클럭에 의한 동작이 요구되는 제품이 증가되고 있음을 감안할 때 각 하드웨어 요소들간의 연결을 효율적으로 수행하여 클럭 주기를 감소시킴으로써 처리 속도를 향상시킬 수 있다.

Description

집적 회로의 클럭 주기 최소화 방법
제1도는 일반적인 레지스터 전송 구조를 보인 구성도.
제2도는 종래의 부하 분배에 따른 버스 할당을 보인 구성도.
제3도는 본 발명에서 통신 경로에 따른 버스 연결을 보인 구성도.
제4도는 본 발명에 따른 리드 위상에서의 통신 경로들을 보인 예.
제5도는 본 발명에서 충돌 그래프에 대한 상태도.
* 도면의 주요부분에 대한 부호의 설명
FU1∼FU6 : 연산자 rg1∼rg6 : 레지스터
본 발명은 클럭 주기의 최소화에 관한 것으로 특히, 집적 회로에 있어서 임계 경로를 형성할 가능성이 있는 통신 경로에 대해서만 부하를 분할함에 의해 클럭 주기에 영향을 미치는 부하량을 최소화하도록 한 집적 회로의 클럭 주기 최소화 방법에 관한 것이다.
근래 반도체 공정 기술의 발달로 회로의 복잡도가 증가하고 실시간 처리가 요구되는 회로가 증가함에 따라 고속 동작이 요구된다.
따라서, 클럭 주기를 최소화하여야 하는데 데이타 경로의 기능 블럭이나 저장 소자등의 지연 시간이 고정된 경우 이들간을 연결하는 버스나 멀티플렉서등의 연결 구조의 설계에 있어서 부하에 의한 지연 시간을 최소화하여야 한다.
일반적인 레지스터 전송 수준의 데이타 경로는 제1도에 도시된 바와 같다.
여기서, 근원 레지스터(101 또는 102)에서 목적 레지스터(107)까지 데이타 전송을 위한 소요 시간은 근원 레지스터의 지연 시간, 연결 구조와 연산기의 지연 시간 그리고 목적 레지스터의 셋업 시간의 합에 의해 결정된다.
상기에서 tp()는 전달 지연 시간, tsetup()는 셋업 시간, tr은 데이타 경로에서 리드 위상(read phase)에서의 연결 구조에 의한 지연 시간, tw는 연산의 결과가 레지스터에 전달될 때까지의 시간, 그리고 tclock는 클럭 주기이다.
이때, 레지스터의 지연 시간(tp(rg))과 연산자의 지연 시간(tp(FU))은 연산기 할당과 레지스터 할당이 수행된 후 설계된 인자 라이브러리에 의해 그 값이 정해진다.
그리고, 레지스터 전송 수준의 데이타 경로에서 클럭 주기는 임계 경로상의 레지스터간 데이타 전송에 필요한 시간에 의해 결정되며, 데이타 경로내에서 인자들의 팬아웃 부하량에 따른 지연 시간의 증가는 선형적인 특성을 나타내며, 인자당 그 부하량에 따른 지연 시간의 증가량은 목적 테크놀리지 라이브러리에 상당히 의존한다.
이때, 레지스터로부터 연산기로 데이타를 읽어내기 위한 리드(read) 위상과 연산기의 연산 결과가 레지스터로 적재되는 라이트(write) 위상에서의 통신 경로들의 수를 각기 NR, NW라 하면 리드, 라이트 위상의 통신 경로들의 집합은로 표시할 수 있다.
이에 따라, 리드 위상의 통신 경로(CR i)의 레지스터가 구동하는 버퍼의 수를 Nrt i, 레지스터로부터 연산기로 데이타를 전달하는 버스가 구동하는 레지스터의 수와 연산기의 수를 각각 Nbr i, Nbf i로 표기하고, 라이트 위상의 통신 경로(CW j)의 연산기가 구동하는 버퍼의 수를 Nft i, 연산의 결과를 레지스터로 전달하는 버스가 구동하는 레지스터의 수와 연산기의 수를 각기 Nbr j, Nbf j로 표기하면 각 위상에서의 부하에 의한 지연 시간은 아래의 식과 같이 정의된다.
여기서, Δrt, Δft은 각 레지스터와 연산기의 출력단에 연결된 버퍼의 수에 대한 지연 시간의 증가분이고, Δbr, Δbf, Δbm은 버스가 구동하여야 할 인자 즉, 레지스터, 연산기, 멀티플렉서의 입력단의 수에 대한 지연 시간의 증가분이다.
만일, 레지스터나 연산기를 구동함에 따른 버스의 부하가 비슷한 경우 Δbr와 Δbf는 Δbl로 표기하고 각 위상에서의 버스의 부하를 Nbl i, Nbl j로 표기하면 상기의 식(1)(2)은 아래의 식과 같이 표시되어진다.
즉, 연결 구조 할당에 따른 클럭 주기의 증가는 데이타 근원 요소(레지스터와 연산기)와 데이타 전송자인 버스가 구동하는 부하량에 비례하므로 최소의 클럭 주기를 얻기 위해서는 연결구조 할당 과정에서 가능한한 각 인자가 구동하여야 할 부하를 최소화해야 하며, 이는 Nft i, Nbl i, Nft j, Nbl j등을 최소화하므로써 가능해진다.
예로서, 조합 논리 블럭인 연산기의 수행 시간이 모두 같은 경우의 데이타 경로에서 리드위상에서의 버스 부하 분배가 클럭 주기에 미치는 영향을 제2도에서 설명하면 다음과 같다.
제2도(a)는 통신 경로의 예로서 데이타의 근원지와 목적지를 가지고 있으며, ()안은 그 경로가 사용되는 제어 구간들을 나타내며, 제2도(b)는 제2도(a)의 통신 경로에 대하여 각 제어 구간별로 수행되는 통신 경로들을 보인 것이다.
이때, 제2도(c)는 버스의 부하 분배를 고려함이 없이 버스를 할당한 경우로서 Nbl 1와 Nbl 2는 1이고 Nbl 3, Nbl 4, Nbl 5, Nbl 6은 모두 4이므로 max(Nbl i)는 4가 되며, 제2도(d)는 각 버스의 부하가 균등히 분배되도록 할당한 경우로서 모든 경로에 대해서 버스의 부하가 2이므로 max(Nbl i)는 2가 된다.
따라서, 제2도(d)와 같이 부하 분배를 고려하는 경우에 버스가 구동하여야 할 부하가 감소하므로 클럭 주기가 감소됨을 알 수 있다.
그러나, 이러한 종래의 부하 분배 방식은 실제적으로 클럭 주기와 관계가 있는 부하는 임계 경로상에 존재하는 인자들의 부하이므로 전체 인자들에 대해 분배된 부하는 클럭 주기와는 무관할 수 있거나 오히려 클럭 주기를 증가시킬 수 있는 문제점이 있다.
즉, 종래의 부하 분배 방식은 구동하여야 하는 대상 인자가 실제 임계 경로의 형성에 관여하는지의 여부를 고려하지 않은 한계점이 있다.
예를 들어, 연산기의 수행 시간이 동일하지 않은 경우 클럭 주기의 결정 동작을 설명하면 다음과 같다.
만일, 제2도에서 FU1, FU2가 40㎱의 수행 지연 시간을 갖는 곱셈기이고, FU3∼FU6가 10㎱의 수행 지연 시간을 갖는 덧셈기라고 하면 임계 경로는 FU1, FU2의 수행 시간이 우세하므로 이들을 경유하는 통신 경로 CR 1, CR 2중에서 결정되므로 버스 3의 부하는 클럭 주기와는 무관하게 된다.
이때, 부하 분배 대상 버스를 CR 1, CR 2들이 할당된 버스 1과 버스 2로 제한하면 그 할당 결과는 제2도(c)와 같이 되고 이 경우의 max(Nbl i)는 4이지만 실제 클럭 주기에 관계되는 버스의 부하는 max(Nbl 1,Nbl 2)으로 그 값은 1이 되므로 제2도(d)와 같이 전체 버스에 대하여 부하를 분배함으로 인해 max(Nbl 1,Nbl 2)가 2가 되는 경우보다 최소화된 클럭 주기를 얻을 수 있음을 알 수 있다.
결국, 성능을 최대화하기 위해 연결 구조 할당은 임계 경로를 형성하는 리드 위상과 라이트 위상의 통신 경로 CR i, CW j에 대해서 Nft i, Nbl i, Nft j, Nbl j등의 값을 최소화하여야 함을 알 수 있다.
본 발명은 종래의 문제점을 개선하기 위하여 연산기 및 레지스터의 할당이 완료된 후 임계 경로를 형성할 가능성이 있는 통신 선로에 대해서만 부하 분배를 수행하여 버스 연결을 최소화함으로써 클럭 주기를 최소화하도록 창안한 집적 회로의 클럭 주기 최소화 방법을 제공함에 목적이 있다.
본 발명은 상기의 목적을 달성하기 위하여 연산기 할당 및 레지스터 할당이 완료된 후 서로 다른 제어 구간에서 동일한 레지스터에 의해 전달되는 통신 경로를 병합하여 통신 경로의 수를 감소시키는 단계와, 상기에서 감소된 통신 경로중 임계 경로를 형성할 가능성이 있는 통신 경로에 대해서만 부하 분배를 수행하는 단계와, 상기에서 부하 분배를 고려하여 같은 데이타 근원지를 갖는 통신 경로는 인접하도록 그룹핑하고 목적지가 많은 통신 경로일수록 우선 순위를 주도록 정렬하는 단계와, 상기 단계가 완료된 후 가장 많은 통신 경로가 존재하는 제어 구간(cstepmax)에서의 통신 경로의 수로 최소의 버스 수를 결정하는 단계와, 상기에서 최소의 버스 수가 결정되면 버퍼의 수가 최소가 되도록 버스의 재연결을 수행하는 단계와, 상기에서 최소가 되는 버퍼의 수로 버스의 재연결을 수행한 후 최대 지연 시간을 고려하여 버스의 재연결을 수행하는 단계로 이루어진다.
즉, 본 발명은 전처리 및 초기 할당, 리드 위상의 연결, 라이트 위상의 연결 과정으로 이루어진다.
이하, 본 발명을 도면에 의거 상세히 설명하면 다음과 같다.
먼저, CR과 CW의 통신 경로들중 임계 경로를 형성할 가능성이 있는 경로들의 부분 집합을 각각 CR c, CW c라 하고, 임계 경로 형성 가능성이 없는 경로들의 부분 집합을 CR nc, CW nc라 하며, 통신 경로 CR i, CW j에 대해서 src()를 그 경로의 데이타 근원지, dest()를 데이타의 목적지하하면 클럭 주기의 결정과 관계되는 부하량 Nrt max, Nft max, Nbl max는 아래의 식과 같이 정의된다.
이에 따라, 집합(CR c,CW c)내의 통신 경로들에 대해서만 부하를 분배하고 집합(CR nc,CW nc)에 대해서는 면적 비용만을 최소화하게 된다.
이러한 연산기의 할당과 레지스터 할당이 종료된 후 추출되는 통신 경로들을 입력으로 하여 연결 구조 할당을 수행하게 된다.
이때, 한 연산의 수행에 있어서 리드 위상에서는 레지스터로부터 연산기의 각 입력 포트로 데이타를 전달하는 2개의 통신 경로가 존재하고 라이트 위상에서는 연산기의 출력 포트로부터 레지스터로 연산이 결과를 적재하는 최소한 1개의 통신 경로가 존재하게 된다.
먼저, 전처리 및 초기 할당 과정을 설명하면, 교환 법칙이 가능한 연산기에 있어서 연산기의 각 입력 포트에 데이타를 전달하는 통신 경로들중 서로 다른 제어 구간에서 동일한 레지스터로부터 양 포트에 모두 데이타가 전달되는 통신 경로들은 교환 법칙을 적용하여 연산기의 한 포트로 병합하므로써 통신 경로의 수를 줄일 수 있다.
이는 2-color 그래프 채색 알고리즘을 사용하여 최적의 결과를 얻을 수 있으며, 해당 연산기에 대해서 멀티플렉서의 입력 갯수를 최소화하게 된다.
따라서, 이 과정의 결과로 각 레지스터가 데이타를 전달하는 목적지의 수를 줄이게 되므로 이 후의 부하 분배를 고려한 버스의 할당에 있어서 레지스터가 구동하여야 할 버퍼의 수(Nrt i)를 감소시키게 된다.
여기서, 임계 경로를 형성할 가능성이 있는 통신 경로들에 대해서만 부하 분배를 수행한다.
이에 따라, 버스 할당에 앞서 각 위상의 통신 경로들의 집합 CR, CW에 대해서 이중 분할을 수행하여 각각 CR c와, CR nc, CW c와 CW nc으로 된 부분 집합을 구성한다.
이때, 기억 소자들이 동일한 지연 시간을 갖는 레지스터일 경우 통신 경로들을 분할하는 기준은 그 통신 경로가 경유하는 연산기의 수행 지연 시간이 된다.
예를 들어, 40㎱의 지연 시간을 갖는 곱셈기와 10㎱의 지연 시간을 갖는 덧셈기가 사용되는 데이타 패스의 경우 덧셈기를 경유하는 많은 부하가 존재하더라도 임계 경로를 형성할 가능성은 매우 적고 곱셈기를 경유하는 경로중에서 임계 경로가 형성되어진다.
이를 설명하면, 가장 지연 시간이 긴 연산기(fumax)를 선정하고 각 연산기에 대해 그 수행 지연 시간과 그 연산기를 경유하는 경로가 최악의 경우 갖게 되는 부하에 의한 지연 시간의 합이 tp(fumax)보다 큰 값인지의 여부에 따라 그 연산기를 경유하는 경로가 임계 경로를 형성할 가능성이 있는지를 판별하는 연산기의 특성 함수(Ψ[fui])를 정의한다.
이와 같이 정의된 함수값에 따라 임계 경로를 형성할 가능성이 있는 연산기는 FUc집합에 포함시키고 그렇지 않은 경우의 연산기는 FUnc집합에 포함시키며, 이를 근거로 FUc내의 연산기를 경유하는 통신 경로들은 그 경로에 따라 CR c, CW c에, FUnc내의 연산기를 경유하는 통신 경로들은 CR nc, CW nc에 포함시킨다.
이때, 임의의 연산기를 경유하는 경로가 최악의 경우 갖게 되는 최대 부하량은 그 연산기에 데이타를 전달하는 리드 위상의 경로들과 그 연산기의 결과를 적재하는 라이트 위상의 경로들에 의해 가능한 최대의 부하량들의 합으로 결정된다.
그리고, 리드 위상의 경로들에 의해 가능한 최대의 부하량은 그 연산기에 데이타를 전달하는 레지스터중 데이타를 전달하는 목적지의 수가 가장 많은 레지스터가 그 목적지의 수만큼의 서로 다른 버스에 연결되는 경우에 그 레지스터가 갖는 부하량으로서, 이 경우 연산기에 데이타를 전달하기 위하여 해당 레지스터가 그 출력단에 연결된 버스의 수만큼의 버퍼를 구동하여야 한다.
또한, 라이트 위상의 경로들에 의해 가능한 최대의 부하량은 그 연산기가 데이타를 적재하는 모든 경로들이 서로 다른 버스로 연결되는 경우에 연산기가 갖는 팬-아웃 부하량으로서, 이 경우 연산의 결과가 적재되기 위해서는 해당 연산기가 데이타를 적재하는 목적지의 수만큼의 버스를 구동하여야 한다.
따라서, 연산기의 특성 함수는 임의의 연산기를 경유하는 경로들이 최악의 경우 갖게 되는 부하에 의한 지연 시간과 그 연산기의 수행 지연 시간의 합이 tp(FUmax)를 초과할 수 있는지를 판별할 수 있도록 정의한다.
이때, 그 함수값이 양수일 경우 그 연산기는 임계 경로를 형성할 가능성이 없는 특성을 갖게 되고, 그렇지 않은 경우에는 임계 경로를 형성할 가능성이 있게 되므로 그 연산기를 경유하는 경로들에 대해서는 부하 분배의 고려가 필요하다.
이에 따라, 레지스터나 연산기에 대하여 Num-dest()를 데이타를 전달하는 목적지의 수로 정의하고, scr-set()를 레지스터나 연산기의 데이타 근원지의 집합으로 정의하면 연산기의 특성 함수(Ψ[fuk])는 아래 식과 같이 정의된다.
여기서, α는 경험적인 동조 파라메터이다.
상기와 같이 이중 분할이 완료되면 통신 경로에 대하여 그룹핑과 정렬을 수행하는데, CR c와 CW c에 있어서 한 데이타의 근원지로부터 여러개의 목적지로 데이타가 전달되는 통신 경로들에 대해서는 여러 버스 할당 방법이 가능하다.
예를 들어, 제4도는 서로 다른 제어 구간에서 한 레지스터로부터 여러개의 연산기로 데이타가 전달되는 통신 경로들에 대해 가능한 버스 할당을 보인 것이다.
제4도(a)는 3개의 통신 경로에 대해서 제4도(b)는 3개의 통신 경로가 하나의 버스로 할당된 경우이고 제4도(c)는 각기 다른 버스에 할당된 경우로 Nrt max와 Nbl max는 각각 1, 3과 3, 1이 된다.
제4도(d)는 곱셈기인 fu1을 경유하는 경로의 버스의 부하와 레지스터(rg1)의 부하를 최소화한 할당으로 Nrt max는 2이고 Nbl max는 1이 된다.
따라서, 동일한 데이타 근원지를 갖는 통신 경로들은 함께 처리할 필요가 있고 또한, 목적지의 수가 많을수록 임계 경로를 형성할 가능성이 높으므로 부하 분배의 과정에서 우선적으로 처리되기 위해서는 CR c, CW c의 통신 경로들은 같은 근원지를 갖는 경로들끼리 인접하도록 그룹핑하고 그 목적지의 수가 많은 순으로 정렬한다.
제5도는 엘립틱 웨이브 필터의 동작 기술에 대해 제어구간 18로 스케줄링되고 모듈 할당이 수행된 후 전처리 과정의 결과로 얻어진 CR c의 통신 경로들의 예를 도시한 것으로, 초기 연결된 버스와 각 통신 경로가 존재하는 제어 구간이 나타나 있다.
이후, 버스 할당과 초기 바인딩 과정을 통해 연결 구조 구성에 필요한 최소의 버스의 수는 가장 많은 통신 경로가 존재하는 제어 구간(cstepmax)에서 그 통신 경로의 수로써 결정된다.
예를 들어, 40㎱의 수행 지연 시간을 갖는 2단의 파이프 라인 곱셈기(fu3)와 10㎱의 덧셈기(fu1,fu2)가 사용된 경우 연산기의 특성 함수(Ψ[fuk])에 의해 FUc={fu3}이고 FUnc={fu1,fu2}가 된다.
따라서, 클럭 주기의 최소화를 위해 FUc의 입력단에 가능한한 멀티플렉서가 구성되지 않도록 하기 위하여 제5도의 경로들 중 FUc내의 연산기인 fu3을 경유하는 경로들은 같은 연산기가 출력단에 연결된 버스로 연결된 초기 연결 결과를 유지하여야 한다.
이후, 상기와 같은 전처리 및 초기 할당 과정이 완료되면 리드 위상의 연결 과정을 수행하는데, 리드 위상 연결의 목표는 모든 통신 경로(CR i)에 대해서 버퍼의 수(Nrt i)(Nbl i)를 최소화하는 것으로, 통신 경로(CR i)내의 같은 근원지를 가지는 통신 경로 그룹에 대해서 초기 연결 결과를 근거로 버퍼의 수(Nrt max)(Nbl max)가 최소가 되도록 버스의 재연결을 수행하고 통신 경로(CR nc)에 대해서는 면적 비용 즉, 멀티플렉서 입력의 수를 최소화한다.
이때, FUc에 속하는 연산기를 경유하는 통신 경로들은 재연결의 대상에서 제외하고 한 스텝(cstepmax)에 존재하는 통신 경로들은 초기에 연결된 버스 이외에는 다른 버스로의 연결은 불가능하므로 역시 재연결의 대상에서 제외한다.
예를 들어, 제4도에서 최소의 버퍼 수(Nrt i)를 위해서는 FUnc에 속하는 연산기를 경유하는 경로들에 대해서는 가능한한 적은 수의 버스로 병합되도록 재연결을 수행하여야 한다.
또한, 제5도에서 레지스터(rg6)를 데이타의 근원지로 하는 통신 경로들의 그룹(CR 1, CR c,2, CR c,3, CR c,4, CR c,5)를 살펴보면 레지스터(rg6)가 데이타가 전달하는 버스의 수는 레지스터(rg6)의 목적지의 수(Num-dest(rg6)=5)와 같으므로 초기 연결 결과의 버퍼수(Nrt 1)는 5가 된다.
이때, 곱셈기(fu3)를 경유하는 CR c,5는 그 입력단에 멀티플렉서가 필요하지 않도록 초기 할당 결과가 유지되어야 하므로 이를 제외한 나머지 4개의 통신 경로들의 초기 할당 버스에 대해서 4개의 통신 경로가 한 버스로 연결될 때 감소되는 버퍼의 수(Nrt 1)의 값을 목적 함수로 하여 그 함수값이 최대가 되는 버스를 선정, 이 버스로서 그룹내 경로들의 재연결을 수행한다.
예를 들어, CR 1의 초기 할당 버스(bus3)로 CR c,2, CR c,3, CR c,4를 재연결하는 경우를 살펴보면, CR c,2의 제어 구간(cstep3, cstep6)과 CR c,4의 제어 구간(cstep8, cstep16)에 대해 초기 할당 결과 버스(bus3)가 사용된 제어 구간(cstep2, cstep7, cstep11, cstep12, cstep13)이 겹치지 않으므로 CR c,2와 CR c,4는 버스(bus3)으로 연결될 확률이 1이라고 할 수 있고, CR c,3에 대해서는 제어 구간(cstep7)에서 버스(bus3)이 CR c,8에 초기 연결되어 있으므로 연결될 확률은 1이 될 수 없으나 CR c,8이 FUc의 연산자를 경유하거나 cstepmax에 존재하는 통신 경로가 아니기 때문에 CR c,8도 다른 버스로 재연결될 수 있으므로 그 확률은 0.5가 된다.
이 확률들을 모두 합한 값을 목적 함수로 할때 목적 함수의 값은 2.5가 되며 이는 감소될 수 있는 버퍼의 수(Nrt 1)의 값으로 볼 수 있다.
이와 같은 방식으로 CR c,2, CR c,3, CR c,4의 초기 할당 버스에 대해서도 목적 함수를 구하고 그들중 최대값을 갖는 버스로 그룹내 경로들의 재연결을 수행한다.
이때, 그 확률이 1인 경로에 대해서만 재연결하고 확률이 0.5인 경로는 CR c전체에 대해 위와 같은 과정을 수행한 후 0.5의 재연결 확률을 갖는 모든 경로들에 대해 버퍼의 수(Nrt max)의 감소 여부에 따라 재연결을 수행한다.
만일, 통신 경로(CR c,j)와 동일한 레지스터를 데이타의 근원지로 갖는 통신 경로(CR c)내의 부분 집합을 same-src(CR c,i)라 하고 그 집합 (same-src(CR c,i))내의 각 경로의 초기 할당 버스를 busm으로 표기할 때 상기 부분 집합 (same-src(CR c,i))의 모든 경로들이 그들중의 한 초기 할당 버스(busm)으로 병합 할당되는 경우의 목적 함수는 아래의 식(10)과 같이 정의된다.
여기서, 부분 집합(same-src(CR c,i))내 한 경로가 버스(busm)로 재연결될 수 있는지의 여부를 나타내는 정규화된 확률 함수(prob(CR c,i, busm))는 통신 경로(CR c,i)의 제어 구간이 버스(busm)와 겹치지 않을 경우 1의 함수값을 갖고 제어 구간이 겹치지만 그 제어 구간들이 스텝(cstepmax)를 포함하지 않거나, 그 겹치는 제어 구간에 버스(busm)를 통해 초기 연결된 경로가 FUc내의 연산기를 경유하지 않는 경우 0.5의 함수값을 가지며 그 외의 경우에는 0의 함수값을 갖도록 정의한다.
상기와 같이 제5도의 통신 경로(CR c) 전체에 대해 재연결을 수행한 후 재연결 확률이 0.5인 경로들로 구성된 충돌 그래프는 제6도에 도시한 바와 같다.
이때, 각 경로에 대해 좌측에 존재하는 노드는 초기 할당된 버스를 나타내고 우측의 노드는 버퍼의 수(Nrt i)가 감소될 수 있는 재연결 가능한 버스를 나타내며, 이 두 노드는 상호 배제 관계에 있으므로 충돌 에지가 연결된다.
여기서, 좌측의 노드들은 각 경로에 대해 초기 연결된 버스 노드이므로 좌측 노드들간에는 충돌 에지가 존재할 수 없고, 각 경로에 대한 재연결 가능 버스를 나타내는 우측의 노드들간이나 서로 다른 경로에 대한 좌·우측의 노드들간에는 동일한 버스이고 그 경로의 제어 구간이 겹치는 경우에 충돌 에지가 존재한다.
이에 따라, 후처리 과정은 상기와 같은 충돌 그래프에서 각 경로당 존재하는 두 버스 노드중 한 버스 노드를 선택하여 재연결하는 과정으로 이 과정이 수행되고 나면 리드 위상 연결이 완료된다.
여기서, 제6도에서 각 노드에 표기된 ()의 좌·우의 숫자는 주어진 경로가 그 버스로 연결되었을 경우 그 결과에 의한 버퍼의 수(Nrt i)와 멀티플렉서 입력의 수를 나타내는데, 각 경로에 대한 좌·우의 두 노드는 버퍼의 수(Nrt i)와 멀티플렉서의 입력의 수에 대해서 트래이드-오프(trade-off)의 관계가 있다.
이때, 각 경로에 대해 연결할 한 버스 노드를 선택함에 있어서 우측 노드의 선택이 좌측의 노드보다 버퍼의 수(Nrt i)의 값이 작으므로 유리하다.
여기서, 제5도의 예와 같이 각 경로에 대해서 버퍼의 수(Nrt i) 측면에서 유리한 우측의 재연결 가능한 노드들간에 에지가 존재하는 경우에는 한 경로에 대한 우측 버스 노드로의 재연결로 인해 그 노드와 충돌 에지로 연결된 나머지 경로는 우측의 재연결 가능 버스 노드를 선택할 수 없으므로 초기 할당 버스가 그대로 유지되어야 한다.
따라서, 일부의 경로에 대해서는 버퍼의 수(Nrt i)가 감소하나 전체적으로 Nrt max는 감소되지 않으므로 이러한 경우는 그래프의 모든 경로에 대해 좌측의 노드를 선택하므로써 멀티플렉서의 입력의 수를 최소화하는 것이 면적 비용 측면에서 유리하게 된다.
이때, 통신 경로(CR nc)의 연결에 있어서는 통신 경로(CR c)의 재연결의 영향을 받아서 초기 할당된 버스를 상실한 통신 경로들에 대해서만 수행된다.
이러한 경로들은 같은 연산자를 출력단에 가진 버스로의 연결은 불가능하므로 부가적인 멀티플렉서의 입력의 수가 최소화되도록 연결을 수행하며 다만, 버퍼의 수(Nrt max)가 증가하지 않도록 출력단에 FUc의 연산자를 가지는 버스들은 그 대상에서 제외한다.
그리고, 통신 경로(CR c,i)의 전 제어 구간에 대해서 그 제어 구간이 겹치지 않는 버스가 있는 경우 부가적인 멀티플렉서의 입력의 수는 1이 되므로 우선적으로 연결하고 그러한 버스가 존재하지 않는 경우에는 최소의 버스들로 그 통신 경로가 바인딩되도록 하며 이 경우에는 바인딩에 필요한 버스의 수만큼 멀티플렉서의 입력의 수가 필요하게 된다.
이와같은 리드 위상에서의 버스 연결 과정이 완료되면 라이트 위상에 대한 버스 연결 과정을 수행하는데, 리드 위상의 통신 경로들에 대한 바인딩이 수행된 후 각 버스의 입력단과 출력단에는 각각 레지스터와 연산기가 연결되어 있으므로 라이트 위상의 연결 구조 할당에서는 리드 위상에서의 연결 결과를 근거로 임계 경로의 지연 시간이 최소화하도록 CW의 각 경로들을 버스에 연결한다.
이때, 통신 경로(CR c)의 경로들은 FUc내의 연산기의 연산 결과를 레지스터에 저장하는 경로들이므로 연산기 출력 포트의 부하와 연결할 버스의 부하가 최소가 되는 버스로 연결이 이루어져야 한다.
만일, 연결할 버스의 출력단에 연결된 인자가 임계 경로 형성의 가능성이 있는 경우 부가적인 레지스터의 연결에 의해 그 버스가 리드 위상에서 사용될 때 부하가 증가하게 된다. 이로 인해 임계 경로의 지연 시간이 증가될 수 있으므로 버스의 출력단에 연결된 인자의 수행 시간도 고려되어야 한다.
따라서, 통신 경로(CW c,j)의 연결 버스를 결정하는 목적 함수에 통신 경로(CW c,j)의 데이타 근원지인 연산기의 부하량(Nft j)과 연결하고자 하는 버스의 팬-아웃 부하량의 합 그리고 그 버스의 출력단에 연결된 인자들의 최대 지연 시간을 반영한다.
이에 따라, 목적 함수를 사용하여 최소의 함수값을 갖는 버스로 연결하므로써 가능한한 임계 경로의 지연 시간이 증가않도록 연결을 수행하게 된다.
예를 들어, 주어진 통신 경로의 연결 대상이 되는 m번째 버스(busm)에 연결될 경우에 그 버스가 갖게 되는 팬-아웃 부하를 Load(busm)이라 하고 버스(busm)의 출력단에 연결된 인자 집합을 fanout(busm)이라 표기하면 통신 경로(Cw c)내의 통신 경로(CW c,j)를 버스(busm)에 할당하는 경우의 목적 함수는 아래의 식(11)과 같이 정의된다.
이러한 연결 과정에서 후보가 되는 모든 버스에 대하여 최소의 목적 함수값을 갖는 버스에 의해 연결을 수행한다.
여기서, β123은 경험적인 동조 파라메터이다.
이때, 임계 경로를 형성할 가능성이 없는 통신 경로(CW nc)의 경로들에 대해서는 그 경로의 근원지인 연산기가 FUnc내의 연산기이므로 연산기의 팬-아웃 부하(Nft j)는 고려할 필요가 없고 멀티플렉서 입력의 수의 증가가 최소가 되도록 연결을 수행한다.
그리고, 연결하고자 하는 버스 FUc내의 연산기가 연결되어 있는 경우 임계 경로의 지연 시간이 증가될 수 있으므로 통신 경로(CW c)의 경우와 같이 가능한한 임계 경로의 지연 시간이 증가되지 않도록 연결하고자 하는 버스의 출력단에 연결된 인자들의 수행 시간을 고려하여 연결하여야 한다.
따라서, 통신 경로(CW nc)의 목적 함수에는 최소의 멀티플렉서 입력의 수를 위해 주어진 통신 경로(CW nc,j)와 연결하고자 하는 버스가 같은 레지스터를 목적지로 가지는 경우에 큰 가중치를 부여하는 인자와 해당 버스의 부하 그리고 그 버스의 팬-아웃 인자들의 최대 지연 시간 등이 반영되어야 한다.
이에 따라, 부분 집합(same-dest(CW nc,j, busm)을 CW nc,j와 busm이 같은 레지스터를 목적지를 갖는 경우 1의 함수값을 갖고 그외의 경우에 0의 함수값을 갖는 함수로 정의할 때 통신 경로(CW nc) 연결의 목적 함수는 아래의 식(12)와 같이 정의된다.
여기서, γ123은 경험적인 동조 파라메터이다.
즉, 상기와 같은 전처리 및 초기 할당, 리드 위상에서의 버스 연결 그리고 라이트 위상에서의 버스 연결 과정을 순차적으로 수행함에 의해 임계 경로를 형성할 통신 선로에 대해서만 부하 분배를 수행하고 그외의 통신 선로에 대해서는 면적 비용만을 최소화함으로서 클럭 주기를 최소화하여 동작 속도를 개선하게 된다.
상기에서 상세히 설명한 바와 같이 본 발명은 고주파수의 클럭에 의한 동작이 요구되는 제품이 증가되고 있음을 감안할 때 각 하드웨어 요소들간의 연결을 효율적으로 수행하여 클럭 주기를 감소시킴으로써 처리 속도를 향상시킬 수 있는 효과가 있다.
이러한 본 발명은 칩의 설계뿐만 아니라 캐드 합성 기기의 연결 구조 합성기 개발에도 이용될 수 있다.

Claims (7)

  1. 연산기 및 레지스터 할당이 종료된 후 통신 경로의 수를 최소화한 후 임계 경로를 형성할 가능성이 있는 통신 선로에 대하여 부하 분배를 수행하고 그 통신 선로의 그룹핑 및 정렬을 수행하여 버스 할당에 따른 연결을 수행하는 전처리 및 초기 할당 단계와, 상기 단계가 종료되어 최소의 버스 수가 결정되면 버퍼의 수가 최소가 되도록 버스의 재연결을 수행하는 리드 위상의 버스 연결 단계와, 상기에서 최소가 되는 버퍼의 수로 버스의 재연결을 수행한 후 최대 지연 시간을 고려하여 버스의 재연결을 수행하는 라이트 위상의 버스 연결 단계로 이루어진 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
  2. 제1항에 있어서, 전처리 및 초기 할당 단계는 연산기 할당 및 레지스터 할당이 완료된 후 서로 다른 제어 구간에서 동일한 레지스터에 의해 전달되는 통신 경로를 병합하여 통신 경로의 수를 감소시키는 제1과정과, 상기에서 감소된 통신 경로중 임계 경로를 형성할 가능성이 있는 통신 경로에 대해서만 부하 분배를 수행하는 제2과정과, 상기에서 부하 분배를 고려하여 같은 데이타 근원지를 갖는 통신 경로는 인접하도록 그룹핑하고 목적지가 많은 통신 경로일수록 우선 순위를 주도록 정렬하는 제3과정과, 상기 과정이 완료된 후 가장 많은 통신 경로가 존재하는 제어 구간(cstepmax)에서의 통신 경로의 수로 최소의 버스 수를 결정하는 제4과정으로 이루어진 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
  3. 제2항에 있어서, 제2과정은 임계 경로를 형성할 가능성이 있는지의 여부를 판별하기 위하여 아래와 같은 특성 함수를 이용하는 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
    여기서, α는 경험적인 동조 파라메터이다.
  4. 제2항에 있어서, 제3과정과 같은 근원지를 갖는 통신 경로들은 인접하도록 그룹핑하고 목적지의 수가 많은 순으로 정렬하는 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
  5. 제1항에 있어서, 리드 위상에서의 버스 연결 과정은 통신 경로(CR c,i)와 동일한 레지스터를 데이타의 근원지로 갖는 통신 경로(CR c)내의 부분 집합을 same-src(CR c,i)라 하고 그 집합(same-src(CR c,i))내의 각 경로의 초기 할당 버스를 busm으로 표기할 때 상기 부분 집합(same-src(CR c,i))의 모든 경로들이 그들중의 한 초기 할당 버스(busm)으로 병합 할당되는 경우의 목적 함수는 아래의 식으로 정의하는 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
  6. 제1항에 있어서, 라이트 위상의 버스 연결 단계는 주어진 통신 경로의 연결 대상이 되는 m번째 버스(busm)에 연결될 경우에 그 버스가 갖게 되는 팬-아웃 부하를 Load(busm)이라 하고 버스(busm)의 출력단에 연결된 인자 집합을 fanout(busm)이라 표기하면 통신 경로(CW c)내의 통신 경로(CW c,i)를 버스(busm)에 할당하는 경우의 목적 합수는 아래의 식(11)으로 정의하는 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
    여기서, β123은 경험적인 동조 파라메터이다.
  7. 제1항에 있어서, 라이트 위상의 버스 연결 단계는 부분 집합(same-dest(CW nc,i, busm))을 CW nc,i와 busm이 같은 레지스터를 목적지를 갖는 경우 1의 함수값을 갖고 그외의 경우에 0의 함수값을 갖는 함수로 정의할 때 통신 경로(CW nc) 연결의 목적 함수는 아래의 식으로 정의하는 것을 특징으로 하는 집적 회로의 클럭 주기 최소화 방법.
    여기서, γ123은 경험적인 동조 파라메터이다.
KR1019950055625A 1995-12-23 1995-12-23 집적 회로의 클럭 주기 최소화 방법 KR0157926B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950055625A KR0157926B1 (ko) 1995-12-23 1995-12-23 집적 회로의 클럭 주기 최소화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950055625A KR0157926B1 (ko) 1995-12-23 1995-12-23 집적 회로의 클럭 주기 최소화 방법

Publications (2)

Publication Number Publication Date
KR970049269A KR970049269A (ko) 1997-07-29
KR0157926B1 true KR0157926B1 (ko) 1998-12-15

Family

ID=19443855

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950055625A KR0157926B1 (ko) 1995-12-23 1995-12-23 집적 회로의 클럭 주기 최소화 방법

Country Status (1)

Country Link
KR (1) KR0157926B1 (ko)

Also Published As

Publication number Publication date
KR970049269A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
US10783310B2 (en) Method and apparatus for performing parallel routing using a multi-threaded routing procedure
US7047179B2 (en) Clustered processors in an emulation engine
US6092174A (en) Dynamically reconfigurable distributed integrated circuit processor and method
Balakrishnan et al. Allocation of multiport memories in data path synthesis
US5701482A (en) Modular array processor architecture having a plurality of interconnected load-balanced parallel processing nodes
US6336209B1 (en) Information processing system that processes portions of an application program using programmable logic circuits
US4542455A (en) Signal-processing multiprocessor system
Liu et al. Network flow based circuit partitioning for time-multiplexed FPGAs
US7013449B2 (en) Method of designing custom circuit device using scheduling clock cycles
US20070136560A1 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
KR0157926B1 (ko) 집적 회로의 클럭 주기 최소화 방법
US6982570B1 (en) Reconfigurable device
US6886088B2 (en) Memory that allows simultaneous read requests
EP1192570B1 (en) Circuit logic event simulation
US6085316A (en) Layered counterflow pipeline processor with anticipatory control
Avakian et al. Optimizing register binding in FPGAs using simulated annealing
JPH1196203A (ja) 論理回路設計方法
Jiang et al. Performance-driven interconnection optimization for microarchitecture synthesis
Ravikumar et al. A graph-theoretic approach for register file based synthesis
JPH1115865A (ja) 論理回路の合成装置、論理回路の合成方法及び論理回路の合成プログラムを記録したコンピュータ読み取り可能な記録媒体
Kim et al. An interconnect allocation algorithm for performance-driven datapath synthesis
Ali et al. Register-file allocation via graph coloring
Baruch Datapath allocation
Kim Automated Synthesis of Time Stationary Controllers for Pipelined Data Path of Application Specific Integrated Circuits
Seo et al. Efficient allocation method of multiport memories in ASIC data path synthesis

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20060720

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee