KR100243114B1 - 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조 - Google Patents

상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조 Download PDF

Info

Publication number
KR100243114B1
KR100243114B1 KR1019970043553A KR19970043553A KR100243114B1 KR 100243114 B1 KR100243114 B1 KR 100243114B1 KR 1019970043553 A KR1019970043553 A KR 1019970043553A KR 19970043553 A KR19970043553 A KR 19970043553A KR 100243114 B1 KR100243114 B1 KR 100243114B1
Authority
KR
South Korea
Prior art keywords
bus
level
twin
latches
latch
Prior art date
Application number
KR1019970043553A
Other languages
English (en)
Other versions
KR19990020108A (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 KR1019970043553A priority Critical patent/KR100243114B1/ko
Publication of KR19990020108A publication Critical patent/KR19990020108A/ko
Application granted granted Critical
Publication of KR100243114B1 publication Critical patent/KR100243114B1/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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

초 대규모 집적(VLSI) 기술의 발달에 힘입어 하나의 칩에 집적될 수 있는 회로의 규모와 복잡도가 갈수록 커지는 반면 회로의 개발요구 기간은 점차 짧아지고 있다. 이에 따라 이들 회로의 설계에 사용되는 설계자동화 기술도 종전의 도면수준과 논리수준에서 상위수준과 시스템수준으로 그 추상화 수준이 점점 높아지고 있다. 상위수준합성은 회로의 동작에 대한 알고리즘이나 행위 수준의 입력 사양으로 부터 기능 유닛, 레지스터, 멀티플렉서, 버스 등과 같은 레지스터 전송 수준의 요소들과 이들의 동작을 제어하는 제어부가 연결된 회로를 생성하는 과정이다. 일반적으로 상위수준합성을 자동화하기 위해 특정한 목표구조를 가정하는데 레지스터 전송수준의 요소들의 상호연결 형태에 따라 멀티플렉서 지향 구조와 버스 지향 구조가 있다. 분할 버스 구조는 버스 지향 구조의 한 형태로 버스 면적을 줄이기 위해 고안된 구조이다.
본 발명은 상위수준합성을 위한 버스 지향 구조의 하나인 분할 버스 구조에서 요구되는 버스의 갯수를 줄이기 위해 트윈 래치를 사용하여 그 구조를 개선한 것이다. 즉, 트윈 래치를 추가함으로써 버스를 통해 연산자 데이터를 읽어 들이는 데이터 전송요구를 시간축상에서 분산시켜 결과적으로 요구되는 버스의 수를 줄임으로써 전체적인 회로의 면적을 줄일 수 있다.

Description

상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조
본 발명은 분할 버스 구조에 관한 것으로, 특히 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조에 관한 것이다.
본 발명은 초 대규모 집적(VLSI) 회로의 설계 및 설계 자동화에 속한다. 초 대규모 집적(이하, VLSI이라 함) 회로의 설계 및 설계 자동화에서는 VLSI 회로의 구현과 관련된 제반 사항들(면적, 속도, 전력 등)을 최적화하는 것을 그 목표로 하고 있다. 근래 공정 기술, 응용 또는 시스템 기술의 발전에 힘입어 VLSI 회로가 대형화되고 초미세화(deep-submicron) 됨에 따라 상호 연결이 차지하는 면적, 전달 지연 시간 및 소비 전력의 비중이 기능 블럭 자체의 비중보다 더 커지고 있다. 이에 따라 버스의 갯수, 길이 또는 버스를 통한 데이터 전송 길이를 줄이고자 하는 시도가 있어 왔으며, 시스톨릭 어레이나 분할 버스 구조 등이 제안된바 있다. 이중에서도 분할 버스 구조는 상위수준 합성의 자동화에 적합한 하나의 목표구조로 제안된 바 있다.
도 1은 일반적인 분할 버스 구조도로서, 두 개의 버스와 두 개의 세그먼트를 갖는 경우를 예시하였다. 각 버스는 세그먼트(B11, B12, B21, B22, ...)별로 분할되어 있고 기능 유닛(FU1, FU2, ... )들과 레지스터(RA1, RB1, RA2, RB2, ...) 혹은 레지스터 파일 등과 같은 저장 유닛들은 일렬로 배치되며, 버스 세그먼트가 이들 유닛의 양쪽 옆이나 유닛 상에 위치한다. 그리고 각각의 기능 유닛(FU1, FU2, ... )들의 입력과 출력에는 입력 래치(IA1, IB1, IA2, IB2, ...)와 출력래치(O1, O2, ...)가 각각 연결되어 있어서, 입력 데이터와 출력 데이터를 임시적으로 저장한다. 입출력 래치로 인해 전체적인 동작은 2단계 비중첩 클럭신호에 의해 동기되며 이로 인해 비교적 높은 하드웨어 활용도를 얻을 수 있다. 대개의 경우, 하나의 세그먼트는 버스 갯수 만큼의 버스 세그먼트, 한 개의 기능 유닛, 레지스터 그룹 혹은 레지스터 파일로 구성된다.
각 기능 유닛(FU1, FU2, ... )의 실행에 필요한 피연산자 데이터를 레지스터(RA1, RB1, RA2, RB2, ...)에서 입력 래치(IA1, IB1, IA2, IB2, ...)로 읽어 들인 후 기능 유닛(FU1, FU2, ... )을 통해 필요한 연산을 실행하고, 그 결과를 출력 래치(O1, O2, ...)에 일시 저장해 두었다가 레지스터(RA1, RB1, RA2, RB2, ...)로 기록하게 된다. 데이터의 읽기 및 기록시에 일어나는 세그먼트들 간의 데이터 전송은 버스 세그먼트(B11, B12, B21, B22, ...)들 간에 있는 세그먼트 스위치(S11, S12, S21, S22, ...)에 의해 제어된다.
이러한 종래의 분할 버스 구조의 세부적인 동작을 도 2에 도시된 바와 같이 각 단계별 마이크로 오퍼레이션(이하, MO라 함)으로 설명하면 다음과 같다.
레지스터 읽기(register read) MO: 현재 사이클 I(cycle i)의 제 2 단계(φ2)에서 기능 유닛의 실행에 필요한 입력 데이터를 레지스터에서 입력 래치로 읽어 들인다. 입력 데이터는 바로 다음 사이클(cycle i+1)에서 기능 유닛에 의해 실행될 연산의 피연산자이다. 입력 데이터를 읽기 직전 해당되는 레지스터와 입력 래치 사이에는 데이터를 전달할 통로가 마련되어야 하는데 이를 위해 통로상의 버스 세그먼트들은 세그먼트 스위치를 켜서 연결시켜주고, 통로상에 있지 않으면서 통로상의 버스 세그먼트들과 인접한 버스 세그먼트들은 통로상의 세그먼트들과의 연결을 끊어주기 위해 세그먼트 스위치를 꺼주어야 한다. 예를 들면 도 1에서 레지스터 RA1의 값을 입력 래치 IB2로 읽어들이기 위해서는 레지스터 RA1과 입력 래치 IB2 사이의 경로에 있는 모든 연결 스위치와 세그먼트 스위치 S11은 켜주고, 나머지 연결 스위치와 세그먼트 스위치(S21, S12, S22)들은 꺼주어야 한다.
레지스터 기록(register write) MO는 현재 사이클(cycle i)의 제 1 단계(φ1)에서 기능 유닛의 출력 데이터를 레지스터에 기록한다. 출력 데이터는 바로 전 사이클(cycle i-1)에서 실행된 연산의 결과로서 출력 래치에 임시로 저장되어 있던 값이다. 데이터 전달 통로의 형성은 레지스터 읽기 MO에서와 동일한 방법으로 이루어진다.
실행(execute) MO는 현재 사이클(cycle i)의 제 1 단계(φ1)와 제 2 단계(φ2)에 걸쳐 해당되는 세그먼트의 기능 유닛을 이용하여 원하는 연산을 실행한다. 단 이때 기능 유닛의 전달 지연은 클럭 사이클 주기보다 짧아야 한다. 이 MO에서는 버스 세그먼트가 개입되는 전달 통로가 불필요하다.
출력 래치(output latch) MO는 현재 사이클(cycle i)의 기능 유닛의 실행 결과를 출력 래치에 저장한다. 출력래치의 저장은 실행이 끝난 후 다음 클럭 사이클(cycle i+1)이 시작되기 전까지 남은 시간에 기능 유닛의 출력 신호를 출력 래치로 전달함으로써 이루어진다. 이 MO에서도 버스 세그먼트들로 구성된 데이터 전달 통로가 필요하지 않다.
바이패스(bypass) MO는 현재 사이클(cycle i)의 연산의 실행 결과를 입력 래치로 곧바로 전달한다. 이 마이크로 연산은 연속되는 사이클에 실행되어야 할 연산 노드들간에 데이터 의존성(data dependency)이 존재할 때 필요하다. 즉 현재 사이클(cycle i)에서의 실행된 결과를 바로 그 다음 사이클(cycle i+1)에서 피연산자로 사용할 경우에 필요한 마이크로 연산이다. 예를 들면, C = A + B; D = C + E; 계산이 연속적인 사이클에서 동일한 기능 유닛으로 실행될 경우 첫번째 덧셈의 결과인 C는 입력 래치로 바이패스되어야 한다. 이 MO를 위해서는 출력 데이터를 입력 래치로 바이패스하기 위해 버스 세그먼트들로 구성된 데이터 전달 통로를 형성해야할 뿐만 아니라 출력 측의 멀티플렉서를 제어하여 출력을 바이패스시켜야 한다는 점이 추가로 요구 된다.
본 발명에서는 상위수준 합성의 자동화에 적합한 분할 버스 구조를 변경하여 입력 래치에 트윈 래치를 추가 함으로써, 입력 래치와 입력 래치의 제어를 위한 약간의 추가적인 면적의 댓가로 결과적으로는 버스의 갯수를 줄여 전체적인 면적을 줄일 수 있는 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조를 제공하는 데 그 목적이 있다.
상술한 목적을 달성하기 위한 본 발명은 각각의 스위치에 의해 버스가 분할된 제 1 및 제 2 세그먼트와, 상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 및 제 2 입력 래치와, 상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 및 제 2 트윈 래치와, 상기 제 1 입력 래치 및 상기 제 1 트윈 래치와 상기 제 2 입력 래치 및 상기 제 2 트윈 래치를 각각의 멀티플렉스를 통해 각각 입력으로 하는 기능 유닛과, 상기 기능 유닛의 출력에 접속되며 멀티플렉스 및 연결 스위치를 통해 상기 제 1 세그먼트에 접속되는 출력 래치와, 상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 레지스터와, 상기 제 2 세그먼트에 연결 스위치를 통해 접속되는 제 2 레지스터를 포함하여 구성되되, 상기 기능 유닛의 실행에 필요한 피연산자 데이터를 각 클럭 주기 각각의 단계에서 레지스터로 부터 읽어들일 수 있도록 구성된 것을 특징으로 한다.
본 발명은 트윈 래치를 사용하여 버스를 통한 데이터 전송을 시간 축 상에서 고르게 분산 시킴으로써 버스 요구를 분산시켜 결과적으로는 버스의 갯수를 줄이고자 한다.
도 1은 일반적인 분할 버스 구조도.
도 2는 일반적인 분할 버스 구조의 세부적인 동작을 나타내는 타이밍 다이어그램.
도 3은 본 발명에 따른 트윈 래치를 갖는 분할 버스 구조도.
도 4는 본 발명에 따른 분할 버스 구조의 세부적인 동작을 나타내는 타이밍 다이어그램.
도 5는 미분방정식 y" + 3xy' + 3y = 0의 해를 구하는 과정의 데이터 플로우 그래프.
도 6은 데이터 플로우 그래프를 일반적인 분할 버스 구조에 매핑한 결과를 나타낸 개념도.
도 7은 데이터 플로우 그래프를 일반적인 분할 버스 구조에 매핑한 결과 각 세그먼트 별로 요구되는 버스의 갯수를 나타낸 개념도.
도 8은 데이터 플로우 그래프를 본 발명에 따른 분할 버스 구조에 매핑한 결과를 나타낸 개념도.
도 9는 데이터 플로우 그래프를 본 발명에 따른 분할 버스 구조에 매핑한 결과 각 세그먼트별로 요구되는 버스의 갯수를 나타낸 개념도.
〈도면의 주요 부분에 대한 부호의 설명〉
B11, B12, B21, B22: 세그먼트 FU1, FU2: 기능 유닛
RA1, RB1, RA2, RB2: 레지스터 IA1, IB1, IA2, IB2: 입력 래치
O1, O2: 출력래치 TA1, TB1: 트윈 래치
BP1, BP2: 바이패스 S11, S12, S21, S22: 세그먼트 스위치
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 3은 본 발명에 따른 트윈 래치를 갖는 분할 버스 구조도로서, 설명의 편의를 위해 한 개의 세그먼트와 두 개의 버스를 갖는 경우를 예시하였다. 도 1의 일반적인 분할 버스 구조에서 제 1 및 제 2 입력 래치(IA1 및 IB1) 부분에 제 1 및 제 2 트윈 래치(TA1 및 TB1)를 추가함으로써 목표 구조를 변경한 것이다. 이러한 본 발명에 따른 트윈 래치를 갖는 분할 버스 구조를 도 3과 도 4를 통해 설명하면 다음과 같다.
제 1 및 제 2 트윈 래치(TA1 및 TB1)는 원래의 분할 버스 아키텍처의 제 1 및 제 2 입력 래치(IA1 및 IB1)를 보조하는 역할을 한다. 제 1 및 제 2 트윈 래치(TA1 및 TB1)는 클럭 사이클 내의 제 1 단계(φ1)에서만 피연산자를 읽어 들일 수 있다는 점에서 제 2 단계(φ2)에서만 피연산자를 읽어 들이는 정상적인 제 1 및 제 2 입력 래치(IA1 및 IB1)와 구별된다. 제 1 및 제 2 트윈 래치(TA1 및 TB1)의 사용은 대다수의 경우에, 클럭 사이클 내의 제 2 단계(φ2)에서 제 1 및 제 2 레지스터(RA1 및 RB1)로 부터 피연산자를 읽거나 실행 결과의 바이패스를 위한 데이터 전송 횟수가 제 1 단계(φ1)에서 출력 결과를 제 1 및 제 2 레지스터(RA1 및 RB1)에 기록하기 위한 데이터 전송 횟수보다 훨씬 많다는 관찰에 기초한다. 이러한 각 단계에서의 데이터 전송 횟수의 불균형은 비효율적인 버스 활용의 원인이 되어 결과적으로는 요구되는 버스의 수를 증가시킨다. 그러나, 제 1 및 제 2 트윈 래치(TA1 및 TB1)를 사용하여 변경한 분할 버스 구조에서의 MO들은 일반적인 분할 버스 구조에서의 MO와 거의 동일하며 단지 클럭 사이클의 제 1 단계(φ1)에 제 1 및 제 2 트윈 래치(TA1 및 TB1)를 이용한 레지스터 읽기(register read twin) MO가 추가된다는 점이 다르다.
제 1 및 제 2 트윈 래치(TA1 및 TB1)를 사용하면 원래 피연산자 데이터를 읽어야 할 사이클, 그 이전 사이클(cycle i-1, i-2, ...)의 제 1 단계(φ1)에서도 미리 피연산자를 읽어 들일 수 있다. 실제 연산이 실행되기 위해서는 기능 유닛(FU1)의 입력 측에 있는 멀티플렉서를 사용하여 정상적인 제 1 및 제 2 입력 래치(IA1 및 IB1)에 들어 있는 피연산자 데이터와 제 1 및 제 2 트윈 래치(TA1 및 TB1)에 들어 있는 피연산자 데이터 사이에서 해당되는 피연산자 데이터를 선택해야 한다.
단, 동일한 단계에서 동일한 레지스터에 동시에 데이터를 쓰거나 제 1 및 제 2 트윈 래치(TA1 및 TB1)로 데이터를 가져오는 것으로 인해 데이터 해저드(data hazard)가 발생할 경우에는 트윈 래치를 사용할 수 없다. 이렇게 트윈 래치를 이용하면 모든 사이클의 단계에 대해 데이터 전송이 고르게 분포되게 함으로써 버스의 활용도를 높이고 결과적으로 요구되는 버스의 수를 줄일 수 있게 된다. 레지스터 읽기, 레지스터 기록, 바이패스와 같은 마이크로 연산과 마찬가지로 트윈 래치를 이용한 레지스터 읽기(register read twin) MO에도 버스 세그먼트들의 연결을 통한 데이터 전송 통로의 형성이 선행되어야 한다. 변경된 구조의 대략적인 클럭 주기는 최대 크기max(te, (tr+ max(tt, tw))으로 원래 아키텍처의 주기인 최대 크기 max((te, tr+ tw))에 근접하는 크기인데, 이는 tt가 tw와 거의 비슷한 크기를 가지기 때문이다.
여기서, te, tr, tw및 tt는 4가지 MO로서 실행, 정상적인 레지스터 읽기, 레지스터 기록 및 트윈 래치를 이용한 레지스터 읽기에 걸리는 시간을 각각 나타낸다.
도 5는 미분방정식 y" + 3xy' + 3y = 0의 해를 구하는 과정의 데이터 플로우 그래프이다. 이 그래프에서 노드(K11)는 연산을 나타내고, 엣지(K12, K13)는 연산에 필요한 입력 데이터(변수 또는 상수), 출력 데이터(변수), 그리고 이들의 전송을 나타낸다. 즉 연산 노드(K11)로 들어 가는 엣지는 입력 데이터(K12)를, 연산 노드(K11)에서 나오는 엣지는 출력 데이터(K13)를 각각 나타낸다.
상위수준 합성은 스케쥴링, 할당, 바인딩 과정을 거쳐 데이터 플로우 그래프를 목표 구조에 매핑하는 과정이다. 매핑 결과, 연산 노드(K11)는 기능 유닛으로 매핑되고 엣지는 변수나 상수를 저장하는 레지스터(혹은 레지스터 파일)와 레지스터 및 기능 유닛간 혹은 레지스터 및 지스터간의 데이터 전송을 담당하는 상호연결(버스 또는 멀티플렉서)로 매핑된다. 이와 아울러 이들 동작을 제어하는 제어부의 합성도 포함한다.
도 5의 데이터 플로우 그래프를 상위수준 합성을 통해 일반적인 분할 버스 구조에 매핑한 결과는 도 6의 시공간상의 매핑 테이블과 같다. 여기에서 사용한 분할 버스 구조는 4개의 세그먼트로 되어 있으며 각 세그먼트의 기능 유닛은 맨 왼쪽부터 가산기(+), 곱셈기(*), 곱셈기(*), 덧셈과 비교 기능이 있는 ALU(+, 〈)들이다. 도 6에서 수평축(SEG)은 세그먼트를 나타내고, 수직 축(CS)은 클럭 단계(φ1, φ2)와 주기(0, 1, 2, 3, 4, 5)로 표시되는 제어 단계(control step) 즉, 시간축을 표시한다. 각 세그먼트 상의 빗금 친 상자는 데이터 플로우 그래프에서 연산 노드를 해당되는 기능 유닛에서 실행하는 것을 나타낸다. 예를 들면 10번 노드는 4번째 세그먼트의 ALU에 의해 2번째 클럭 주기에서 실행한다. 각 세그먼트에 표시되어 있는 굵은 수직선(u, 3, dx, x, y, a)은 변수와 상수가 저장된 레지스터를 나타낸다. 그리고 레지스터와 기능 유닛 사이, 기능 유닛과 기능 유닛 사이에 표시된 화살표는 데이터 전송을 나타내는 것으로 데이터 플로우 그래프에서 엣지를 매핑한 것이다. 데이터 플로우 그래프에서 하나의 엣지는 한 개 이상의 데이터 전송으로 매핑될 수 있으며 각 데이터 전송은 적어도 1개 이상의 버스 세그먼트가 개입되는 데이터 전송 경로 상에서 이루어진다. 도 6에서 데이터 전송 화살표는 데이터 전송 자체를 나타내는 동시에 데이터 전송 경로도 나타내어 데이터 전송의 출발지(기능 유닛의 출력 랫치 혹은 레지스터), 데이터가 경유하는 1개 이상의 버스 세그먼트, 데이터 전송의 목적지(기능 유닛의 입력 랫치 혹은 레지스터)를 알 수 있다. 따라서 특정 시간 즉 특정한 클럭 주기의 특정한 클럭 단계(φ1 혹은 φ2)에 대해 특정한 세그먼트에서의 데이터 전송 화살표의 갯수는 그 시점 그 위치(세그먼트)에서의 버스를 통한 데이터 전송 요구의 크기 즉 요구되는 버스 갯수를 나타낸다. 따라서 주어진 하드웨어 자원(세그먼트의 갯수, 제공되는 기능 유닛의 종류와 갯수)에 대해 데이터 플로우 그래프를 매핑한 결과 요구되는 데이터 전송을 지원하기 위해 필요한 버스의 갯수는 세그먼트별 버스 요구중 최대값이다. 도 6에 나타난 데이터 전송은 데이터 전송의 출발지, 목적지에 따라 레지스터 읽기, 레지스터 기록, 바이패스 데이터 전송으로 구분될 수 있다. 10번 노드의 실행을 예로 들어 보자. 도 5에서 노드 10의 실행에는 변수 x, dx가 피연산자 데이터로 필요하고 실행의 출력은 변수 x에 저장해야 한다. 이의 매핑을 도 6에서 보면 CS=1의 φ2에서 3번째 세그먼트(*)의 레지스터 dx의 값을 레지스터 읽기 데이터 전송을 통해 4번째 세그먼트(+,〈)의 입력 래치로 읽어 오고, 4번째 세그먼트(+,〈)의 레지스터 x의 값을 4번째 세그먼트(+,〈)의 나머지 입력 래치로 읽어 온 다음 CS=2의 φ1과 φ2에 걸쳐 4번째 세그먼트의 기능 유닛을 통해 덧셈을 실행한다. 4번째 세그먼트의 출력 래치에 들어 있는 실행 결과는 CS=3의 φ1에서 레지스터 기록 데이터 전송을 통해 레지스터 x로 기록한다. 또한 계산 결과 x는 바로 다음 제어 단계(CS=3)에서 노드 11의 실행을 위한 하나의 입력으로도 필요하기 때문에 바이패스 데이터 전송을 통해 4번째 세그먼트의 입력 래치로 곧장 전달되어야 한다.
도 6의 시공간상의 매핑 결과에 대해 각 세그먼트별로 요구되는 버스의 갯수는 도 7과 같고 세그먼트별 요구 버스 중에서 최대값은 4이므로 전체 버스 갯수는 4가 된다. 동일한 데이터 플로우 그래프를 트윈 래치를 사용하여 본 발명에 따른 분할 버스 구조에 대해 적용해본 결과 매핑 테이블은 도 8과 같다. 도 8에서 달라진 것은 CS=1의 φ2의 레지스터(dx) 읽기 데이터 전송과 CS=2의 φ2의 레지스터(u) 읽기 데이터 전송을 트윈 래치를 사용하여 CS=1의 φ1과 CS=2의 φ1으로 각각 이동한 것(점선으로 된 화살표)이다. 이렇게 함으로써 주로 2에 편중되어 있는 데이터 전송 요구를 φ1로 일부 분산시킴으로써 데이터 전송 요구가 집중되어 버스의 갯수가 늘어나는 것을 피할 수 있다.
도 9는 도 7과 비교할 때 세그먼트별 버스 요구가 분산되는 것을 볼 수 있다(빗금친 부분). 도 9에서 세그먼트별 요구 버스 중에서 최대값은 3이 되어 전체 버스 수는 3이 된다. 이는 도 7에서 전체 버스 수가 4인데 비해 버스 수가 1개 줄어든 것이다. 이와 같이 본 발명에 따른 트윈 래치를 갖는 분할 버스 구조를 사용하여 매핑할 경우 버스의 갯수를 줄일 수 있다. 이러한 버스 갯수 감소로 인한 상호 연결 면적은 세그먼트의 갯수가 많을 수록 그 효과가 더욱 거진다.
상술한 바와 같이 본 발명은 회로의 크기가 커지고 회로의 구현을 위한 공정 기술이 초미세화 되고있는 현 추세에서 버스로 인한 상호연결의 면적 비중을 줄이는데 기여할 수 있다.

Claims (2)

  1. 각각의 스위치에 의해 버스가 분할된 제 1 및 제 2 세그먼트와,
    상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 및 제 2 입력 래치와,
    상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 및 제 2 트윈 래치와,
    상기 제 1 입력 래치 및 상기 제 1 트윈 래치와 상기 제 2 입력 래치 및 상기 제 2 트윈 래치를 각각의 멀티플렉스를 통해 입력으로 하는 기능 유닛과,
    상기 기능 유닛의 출력에 접속되며 멀티플렉스 및 연결 스위치를 통해 상기 제 1 세그먼트에 접속되는 출력 래치와,
    상기 제 1 및 제 2 세그먼트 간에 각각의 연결 스위치를 통해 접속되는 제 1 레지스터와,
    상기 제 2 세그먼트에 연결 스위치를 통해 접속되는 제 2 레지스터를 포함하여 구성되되, 상기 기능 유닛의 실행에 필요한 피연산자 데이터를 각 클럭 주기 각각의 단계에서 레지스터로 부터 읽어들일 수 있도록 구성된 것을 특징으로 하는 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조.
  2. 제 1 항에 있어서, 상기 기능 유닛의 실행에 필요한 피연산자 데이터는 상기 트윈 래치를 제어하여 각 클럭 주기의 모든 단계에서 읽어들이는 것을 특징으로 하는 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조.
KR1019970043553A 1997-08-30 1997-08-30 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조 KR100243114B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970043553A KR100243114B1 (ko) 1997-08-30 1997-08-30 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970043553A KR100243114B1 (ko) 1997-08-30 1997-08-30 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조

Publications (2)

Publication Number Publication Date
KR19990020108A KR19990020108A (ko) 1999-03-25
KR100243114B1 true KR100243114B1 (ko) 2000-02-01

Family

ID=19519757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970043553A KR100243114B1 (ko) 1997-08-30 1997-08-30 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조

Country Status (1)

Country Link
KR (1) KR100243114B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392383B1 (ko) * 2000-12-27 2003-07-23 한국전자통신연구원 분할 버스를 가진 반도체 칩

Also Published As

Publication number Publication date
KR19990020108A (ko) 1999-03-25

Similar Documents

Publication Publication Date Title
US7895416B2 (en) Reconfigurable integrated circuit
AU740243B2 (en) Method of self-synchronization of configurable elements of a programmable component
US6496918B1 (en) Intermediate-grain reconfigurable processing device
US20190005161A1 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
US6598148B1 (en) High performance microprocessor having variable speed system clock
US6653859B2 (en) Heterogeneous integrated circuit with reconfigurable logic cores
US20130111188A9 (en) Low latency massive parallel data processing device
JP4527571B2 (ja) 再構成可能演算処理装置
US20040103265A1 (en) Reconfigurable integrated circuit
US20040083399A1 (en) Method of self-synchronization of configurable elements of a programmable module
US6330657B1 (en) Pairing of micro instructions in the instruction queue
JPH05233281A (ja) 電子計算機
JPH02285426A (ja) マイクロプロセツサおよびフオーマット変換方法
US7409529B2 (en) Method and apparatus for a shift register based interconnection for a massively parallel processor array
US5481736A (en) Computer processing element having first and second functional units accessing shared memory output port on prioritized basis
Ozawa et al. A Cascade ALU Architecture for Asynchronous Super-Scalar Processors
EP2132645A1 (en) A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled
Leijten et al. Prophid: a heterogeneous multi-processor architecture for multimedia
KR100243114B1 (ko) 상위수준 합성을 위한 트윈 래치를 갖는 분할 버스 구조
US7287151B2 (en) Communication path to each part of distributed register file from functional units in addition to partial communication network
US20220261251A1 (en) Processing device with vector transformation execution
JPS5916071A (ja) 並列処理システム
US20030014474A1 (en) Alternate zero overhead task change circuit
JP2861560B2 (ja) データ処理装置

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: 20071024

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee