KR101454802B1 - 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법 - Google Patents

비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법 Download PDF

Info

Publication number
KR101454802B1
KR101454802B1 KR1020100103472A KR20100103472A KR101454802B1 KR 101454802 B1 KR101454802 B1 KR 101454802B1 KR 1020100103472 A KR1020100103472 A KR 1020100103472A KR 20100103472 A KR20100103472 A KR 20100103472A KR 101454802 B1 KR101454802 B1 KR 101454802B1
Authority
KR
South Korea
Prior art keywords
data
stage
demand
control
channel
Prior art date
Application number
KR1020100103472A
Other languages
English (en)
Other versions
KR20120042015A (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 KR1020100103472A priority Critical patent/KR101454802B1/ko
Priority to US13/278,385 priority patent/US9317295B2/en
Publication of KR20120042015A publication Critical patent/KR20120042015A/ko
Application granted granted Critical
Publication of KR101454802B1 publication Critical patent/KR101454802B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3871Asynchronous instruction pipeline, e.g. using handshake signals between stages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

Landscapes

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

Abstract

본 발명은 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법에 대하여 개시한다. 본 발명의 일면에 따른 비동기식 파이프라인 시스템은, 4위상 프로토콜에 기반하는 복수의 스테이지(Stage)를 포함하며, 상기 복수의 스테이지 각각은 묶음(Always bundle) 데이터 채널 및 온디맨드 데이터 채널로 데이터를 송수신하는 것을 특징으로 한다.

Description

비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법{Asynchronous Pipeline System, Stage and the Data Transfer Mechanism}
본 발명은 비동기식 파이프라인에 관한 것으로서, 더 구체적으로는 데이터 전송에 소비되는 소비전력을 절감할 수 있는 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법에 관한 것이다.
일반적으로, 프로세서를 사용하는 시스템은 동기식 방식과 비동기식 방식으로 구분된다. 전자의 동기식 방식은 전역 클록에 의해 전체 시스템을 구동시키며, 후자의 비동기식 방식은 데이터에 의존하여 데이터의 흐름에 따라 동작에 필요한 모듈만을 구동시킨다.
특히, 후자의 비동기식 방식은 전역 클록을 사용하지 않아, 전역 클록의 스큐(Skew), 지터(Jitter), 클록 트리의 전력 소모나, 시간 종결(Timing Closure) 등과 같은 동기식 방식의 문제점을 해결할 수 있는 대안인 것으로 평가받고 있다.
한편, 프로세서 구조에 있어서는 프로세서 성능을 위한 최소한의 고려 대상이라 할 만큼, 파이프라인 구조가 많이 사용되고 있어, 최근에는 비동기식 방식과 파이프라인 구조를 혼합한 프로세서 구조가 개발되고 있다.
종래의 일례로서, 미국특허 등록번호 6925549에서 한 단(Stage)의 데이터 흐름을 제어하는 비동기식 파이프라인이 개시된 바 있다.
일례에 따른 비동기식 파이프라인의 개별 단은 데이터패스와 제어패스로 구분되며, 제어패스 내부의 제어 프로세서(Control Processor)는 미리 각 단의 태그(Tag) 값(즉, 제어태그)을 할당한다.
이전 단은 제어패스를 통해 데이터 태그를, 데이터패스를 통해 데이터를 송신하는데, 이전 단의 제어태그와 데이터태그를 비교하여 일치하면 데이터 패스의 래치를 구동하여 송신과정을 수행한다. 그리고, 현재 단은 프로세싱을 완료하고, 현재 단의 제어태그와 프로세싱 결과 데이터를 다음 단으로 전송하는데, 현재 단의 제어태그와 데이터태그를 비교하여 일치하는 경우에 핸드세이크 프로토콜 요구신호를 다음 단으로 전달한다. 이때, 제어태그와 데이터태그가 일치하지 않는 경우에는 핸드세이크 프로토콜 요구신호가 발생되지 않아, 다음 단으로 제어태그와 프로세싱 결과 데이터가 전달되지 않는 스톨(Stall) 현상이 발생한다. 종래의 일례는 이러한 스톨 상황을 감지하여 재동작시킬 수 있었다.
그런데, 일례에 따른 비동기식 파이프라인은 하드웨어적으로 모든 단의 인터페이스 개수가 동일할 뿐만 아니라, 현재 단에서만 사용되는 명령어를 이후 단까지 계속 전송되어야 해, 불필요한 전력 소모가 많았다.
종래의 다른 예로서, 한국특허 등록번호 10-0861073에서 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조가 개시된바 있다.
다른 예에 따른 비동기식 파이프라인은 실행중인 명령어에 따라 파이프라인 단의 위치를 적응적으로 변화시키고, 개별 단의 수를 가변하거나, 실행 명령어에 따라 단 간에 전달되는 데이터의 종류가 달라질 수 있다. 또한, 명령어 종류에 따라 전체 시스템의 데이터 패스를 분할하여 하드웨어 증가없이 서로 다른 명령어를 병렬 처리할 수 있는 장점이 있었다.
그러나, 다른 예에 따른 비동기식 파이프라인도 스톨 방지를 위해 이전 단에서만 필요한 명령어가 이후 단까지 전송되어야 해, 가변 단에 의해 소비전력 문제가 크게 개선되지는 않았다.
이하, 도 1 내지 4를 참조하여 본 발명의 토대(Base)가 되는, 종래의 4위상 묶음 데이터 프로토콜, 비동기식 파이프라인 구조 및 각 단의 인터페이스에 대하여 살펴본다.
도 1은 종래의 4위상 묶음 데이터(Bundled data) 프로토콜 제어신호의 타이밍도이다.
도 1에 도시된 바와 같이, 4위상 묶음 데이터 프로토콜을 이용하는 종래의 비동기식 시스템의 각 단은 데이터 심볼 'B'를 송신하기 위해, 핸드세이크 프로토콜 요구신호 상승(Req Rising)(1), 핸드세이크 프로토콜 응답신호 상승(Ack Rising)(2), 핸드세이크 프로토콜 요구신호 하강(Req falling)(3) 및 핸드세이크 프로토콜 응답신호 하강(Ack falling)(4)이라는 4번의 순차 이벤트에 의한 4위상 상태천이(Transition)를 필요로 한다.
각 단은 4위상 상태천이가 완료되면, 데이터 심볼 'C'를 전송하기 전에, 핸드세이크 프로토콜 요구신호와 하강신호를 모두 '0'으로 즉, 휴지상태(Space State)로 유지하여 다음 단에서 데이터 심볼 'B'와 'C'를 구분할 수 있도록 한다.
여기서, 수신 단(Receiver Stage)이 핸드세이크 프로토콜 요구신호(Req)에 의해 유효 데이터(A, B, C)를 감지하여 저장하는 시점과, 송신 단(Transfer Stage)이 핸드세이크 프로토콜 응답신호에 의해 다음 데이터를 준비하는 시점은 비동기 시스템의 사용 환경이나, 설계자의 의도에 따라 달라질 수 있다.
4위상 묶음 데이터 프로토콜을 이용하는 비동기식 시스템은 핸드세이크 프로토콜 요구신호(Req)의 상승 시점에 전송 데이터가 이미 안정화됨(Stable함)을 가정하므로, 구현시 이에 주의할 필요가 있다. 다른 한편으로는, 이러한 가정으로 인해 특화된 셀 라이브러리를 필요로 하지않으며, 표준 셀의 래치나, 플립플롭의 클록 포트에 바로 연결할 수 있으므로, 구현이 용이하다고도 볼 수 있다.
이하에서 참고되는, 도 2는 4위상 묶음 데이터 프로토콜을 이용하는 종래의 비동기식 파이프라인의 구조를 도시한 구성도이다. 도 2에서는 제0단과 제1단 간의 묶음 데이터는 x+1개가 존재하고, 제1단과 제2 단 간의 묶음 데이터는 y+1개가 존재하고, 제2 단과 제3 단 간의 묶음 데이터는 z+1개가 존재하는 경우를 예로 들어 도시하였다.
도 2에 도시된 바와 같이, 개별 단은 각 단의 기능을 제어하는 제어 데이터(Control_s0, Control_s1, Control_s2)와, 연산에 사용되는 입력데이터(Data0_s0 ~ Dataz_s2)를 다음 단으로 전송한다. 이때, 개별 단은 핸드세이크 프로토콜에 의존하여 핸드세이크 프로토콜 응답신호의 쌍((Req_s0, Ack_s0), (Req_s1, Ack_s1), (Req_s2, Ack_s2))을 동반한다. 여기서, 입력데이터는 한 쌍의 핸드세이크 프로토콜 제어신호와 마치 묶음 단위처럼 전송되므로, 묶음 데이터라고 부른다.
이하에서 참고되는, 도 3은 종래의 비동기식 파이프라인 각 단의 구조를 도시한 도면이며, 도 4는 도 3의 제0단에서 제1단 간의 송수신되는 신호의 타이밍도이다.
도 3에 도시된 바와 같이, 개별 단은 각 단의 고유기능을 수행하는 로직 블록, 입출력 데이터를 저장하는 래치(또는 플리플롭), 입력 래치를 인에이블하는 제어 블록을 포함한다.
그 동작 순서를 살펴보면, 제어 블록은 핸드세이크 프로토콜 요구신호(Req)의 상승을 인지하면(S310), 래치 인에이블 신호를 활성화한다(S320).
그러면, 제어 데이터와 묶음 데이터가 스테이지 로직에 입력되고(S330), 스테이지 로직은 제어 데이터를 디코딩하여 묶음 데이터 중에서, 현재 단에서 필요한 데이터를 선택하여 그에 대응하는 연산을 수행한 후, 연산종료를 의미하는 완료신호를 출력한다(S340).
제어 블록은 제2 단 간의 핸드세이크 프로토콜 제어신호(Req_s1, Ack_s1)를 생성하고(S350), 연산결과 발생한 데이터를 출력하기 위한 인에이블 신호를 활성화한다(S360). 이때, 스테이지 로직은 다음 단에서 필요한 데이터가 아니더라도 현재 단의 모든 결과 데이터와, 다음 단에 사용되는 제어 데이터(Control_S1)의 인코딩 결과도 출력한다.
도 4와 같이, 제0단에서 제1단으로 전달되는 모든 데이터(Data0_s0~Datax_s0)는 묶음(Bundle) 되어있기 때문에, 핸드세이크 프로토콜 요구신호(Req_s0)와 핸드세이크 프로토콜 응답신호(Ack_s0)에 따라 제어신호와 x+1개의 데이터가 모두 래치된다. 여기서, 래치 시점은 핸드세이크 프로토콜 요구신호가 상승하는 시점(t1)이며, 이후 핸드세이크 프로토콜 요구신호와 응답신호는 4위상 상태 천이한다. 이때, 앞서 언급된 바와 같이 핸드세이크 프로토콜 요구신호(Req_s0)가 상승하기 전, 모든 입력 데이터(Data0_s0~Datax_s0)는 안정화된 상태라고 가정한다.
전술한 바와 같이, 종래의 비동기식 파이프라인 시스템에서, 개별 단은 다음 단으로 입력된 모든 데이터를 전송하였다. 대부분, 각 단에 필요한 입력 데이터의 개수는 명령어마다 달라, 모든 입력 데이터가 다음 단으로 래치될 필요는 없는데, 종래의 비동기식 파이프라인은 모든 데이터를 일괄 래치하기 때문에, 전력 소모 측면에서 매우 비효율적이었다. 이러한 비효율은 개별 데이터의 개수가 늘어날수록 더욱 많은 소비전력의 낭비로 이어진다.
본 발명은 전술한 바와 같은 기술적 배경에서 안출된 것으로서, 스테이지 간의 전송되는 데이터를 항상 전송되는 묶음 데이터와, 온디맨드 데이터로 구분하여 전송할 수 있는 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법을 제공하는 것을 그 목적으로 한다.
본 발명은 현재 스테이지에서 다음 스테이지로 모든 데이터를 한꺼번에 전송하지 않아도 스톨이 발생 되지 않을 수 있는 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법을 제공하는 것을 다른 목적으로 한다.
본 발명의 일면에 따른 비동기식 파이프라인 시스템은, 4위상 프로토콜에 기반하는 복수의 스테이지(Stage)를 포함하며, 상기 복수의 스테이지 각각은 묶음(Always bundle) 데이터 채널 및 온디맨드 데이터 채널로 데이터를 송수신하는 것을 특징으로 한다.
본 발명의 다른 면에 따른 비동기식 파이프라인 시스템은, 이전 데이터로부터의 묶음 데이터 및 제어 데이터의 전달 경로인 상시입력 블록; 상기 이전 스테이지로부터의 복수의 온디맨드 데이터 중 적어도 하나를 전달받는 경로인 복수의 온디맨드입력 블록; 상기 이전 스테이지로부터 핸드세이크 프로토콜 요구신호가 전달되면, 상기 상시 입력 블록을 인에이블하는 제어 블록; 및 상기 제어 블록의 인에이블에 따라 상기 상시입력 블록을 통하여 상기 제어 데이터를 입력받아, 현재 스테이지에서 이용할 상기 온디맨드 데이터를 확인하고, 상기 제어 블록에 보고하여 상기 제어 블록의 제어에 따라 상기 복수의 온디맨드입력 블록 중 적어도 하나로부터 확인된 상기 온디맨드 데이터를 입력받는 스테이지 로직을 포함하는 것을 특징으로 한다.
본 발명의 또 다른 면에 따른 비동기식 파이프라인 시스템의 데이터 전송 방법은, 이전 스테이지로부터 핸드세이크 프로토콜 요구신호가 전달되면, 묶음 데이터 채널을 인에이블하는 단계; 상기 묶음 데이터 채널을 통해 상기 이전 스테이지로부터 묶음 데이터와 제어 데이터를 전달받는 단계; 상기 제어 데이터로부터 전달된 상기 묶음 데이터에서 현재 스테이지의 데이터를 확인하고, 상기 현재 스테이지의 데이터를 이용한 연산을 수행하는 단계; 상기 제어 데이터로부터 상기 현재 스테이지에 필요한 온디맨드 데이터를 확인하는 단계; 온디맨드 데이터 채널에서, 상기 필요한 온디맨드 데이터의 입력 채널을 선택적으로 활성화하는 단계; 및 활성화된 상기 입력 채널을 통해 상기 온디맨드 데이터를 입력받아, 상기 온디맨드 데이터에 대한 연산을 수행하는 단계를 포함하는 것을 특징으로 한다.
본 발명에 따르면, 제어 데이터를 통해 각 단에서 필요한 온디맨드 데이터를 확인하고, 필요한 온디맨드 데이터만을 선택적으로 입력받을 수 있어, 데이터 전송에 필요한 소모 전력을 크게 개선할 수 있는 효과가 있다.
뿐만 아니라, 본 발명은 항상 묶음 전송되는 묶음 전송 채널과, 필요에 따라 묶음 전송되는 온디맨드 데이터 채널을 구분하여 각 단에서 필요하지않은 데이터가 전송되는 경우를 줄일 수 있어, 스톨 발생 확률을 크게 줄일 수 있다.
도 1은 종래의 4위상 묶음 데이터(Bundled data) 프로토콜 제어신호의 타이밍도.
도 2는 4위상 묶음 데이터 프로토콜을 이용하는 종래의 비동기식 파이프라인의 구조를 도시한 구성도.
도 3은 종래의 비동기식 파이프라인 각 단의 구조를 도시한 도면.
도 4는 도 3의 제0단에서 제1단 간의 송수신되는 신호의 타이밍도.
도 5는 본 발명의 실시예에 따른 비동기식 파이프라인 시스템을 도시한 구성도.
도 6은 도 5의 각 단을 세부적으로 도시한 도면.
도 7은 본 발명의 실시예에 따라 제0단에서 제1단으로의 데이터 전송 타이밍도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이제 본 발명의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 상세히 설명하기로 한다. 도 5는 본 발명의 실시예에 따른 비동기식 파이프라인 시스템을 도시한 구성도이며, 도 6은 도 5의 각 단을 세부적으로 도시한 도면이다. 이때, 설계에 따라 개별 단의 묶음 데이터 개수와 온디맨드 데이터 개수는 각기 달리 구성가능하다.
도 5에 도시된 바와 같이, 본 발명의 실시예에 따른 비동기식 파이프라인 시스템의 개별 단은 묶음 데이터를 전송하는 묶음 데이터 채널(Always bundled data channel)과 온디맨드 데이터를 전송하는 온디맨드 데이터 채널(On-demand bundled data channel)를 포함한다. 이하, 제0단과 제1단 간의 인터페이스를 예를 들어 설명한다.
제0단은 종래 모두 묶음되어 전송되던 x+1개의 데이터를, 항상 전송하는 i+1개의 묶음 데이터와, 제1단의 필요에 따라 x-i개의 온디맨드 데이터를 전송 또는 미전송한다.
제0단은 묶음 데이터 채널로 제어 데이터(Control_s0), i+1개의 묶음 데이터(Data0_s0~Datai_s0) 및 핸드세이크 프로토콜 제어신호(Req_s0, Ack_s0)를 송수신한다. 여기서, 묶음 데이터(Data0_s0~Datai_s0)는 매 사이클(Cycle)마다 핸드세이크 프로토콜 제어신호(Req_s0, Ack_s0)에 의하여 제1단으로 전송된다.
제0단은 온디맨드 데이터 채널로 제i+1 내지 제x 온디맨드 데이터(DataDi+1_s0~DataDx_s0) 및 제i+1 내지 제x 핸드세이크 프로토콜 제어신호(ReqDi+1_s0~ReqDx_s0, AckDi+1_s0~AckDx_s0)를 송수신한다. 제i+1 내지 제x 온디맨드 데이터(DataDi+1_s0~DataDx_s0)는 그와 짝을 이루는 제i+1 내지 제x 핸드세이크 프로토콜 제어신호(ReqDi+1_s0~ReqDx_s0, AckDi+1_s0~AckDx_s0)가 래치되면, 제1단으로 전달되고, 래치되지 않으면 전송되지 않는다.
이하, 도 6의 제1단의 세부 구조를 참조하여 온디맨드 데이터를 송수신하는 과정에 대하여 설명한다.
제어 블록(110)은 핸드세이크 프로토콜 요구신호(Req_s0)가 입력되면, 묶음 데이터용 래치에 인에이블 신호(A)를 공급하여 제어 데이터(Control_s0)와 묶음 데이터(Data0_s0~Datai_s0)를 입력받는다.
이어서, 현재 단 디코더(120 내)는 제어 데이터(Control_s0)를 해석하여 현재 단에서 실행할 동작 즉, 선택입력 데이터 정보(B)를 파악하여 제어 블록(110)으로 전달한다.
그러면, 제어 블록(110)은 선택입력 데이터 정보에 대응하는 온디맨드 데이터 인에이블 신호(C, D)를 공급하여 선택입력 데이터 정보에 대응하는 온디맨드 데이터를 입력받는다.
이때, 각 온디맨드 입력 블록(140)은 C-엘리먼트(Element)(140, ⓒ), 제어 로직(Ctrl_i+1...Ctrl_x) 및 래치(140, Latch)를 포함한다.
C-엘리먼트(ⓒ)는 제0단으로부터 전달받은 제1단에 필요한 온디맨드-핸드세이크 프로토콜 요구신호(ReqDi+1_s0, Reqx_s0)와 제어 블록(110)으로부터 전달된 온디맨드 데이터 인에이블 신호(C, D)가 입력되면, 래치 인에이블 신호(E)를 출력한다.
제어 로직(Ctrl_i+1...Ctrl_x)은 C-엘리먼트(140, ⓒ)로부터 전달받은 래치 인에이블 신호(E)를 래치(140, Latch)에 공급하며, 온디맨드-핸드세이크 프로토콜 응답신호(AckDi+1_s0, AckDx_s0)를 제0단으로 제공한다.
래치(140, Latch)는 래치 인에이블 신호를 전달받으면, 제0단으로부터의 온디맨드 데이터를 입력받아 스테이지 로직(120)에 전달한다.
스테이지 로직(120)은 묶음 데이터 및 온디맨드 데이터에 대한 연산을 모두 완료하면, 연산 종료를 의미하는 완료신호를 제어 블록(110)에 전달한다.
제어 블록(110)은 제2 단에 전달될 묶음 데이터 채널용 핸드세이크-프로토콜 요구신호(Req_s1)를 생성하며, 제2 단으로 전달될 묶음 데이터(Data0_s1~Dataj_s1)와 제어 데이터(Control_S1)의 출력을 지시하는 인에이블 신호(F)를 출력한다. 여기서, 제어 데이터(Control_S1)는 다음 단에서 필요한 연산에 대한 기능코드와, 다음 단에서 필요한 입력 데이터 구분정보를 포함한다.
또한, 다음 단 인코더(120 내)는 출력 데이터 구별 정보를 제어 블록(110)으로 전달하며, 제어 블록(110)은 다음 단으로 전송될 온디맨드 데이터를 출력하는 각 온디맨드 출력 블록(160) 내 래치(160 내 Latch)에 인에이블 신호(G, H)를 공급한다. 이후, 제1 단은 제2 단과 전술한 데이터 전송 과정을 수행하여 제2 단으로 데이터를 전송한다.
이하, 도 7을 참조하여 제0단에서 제1단으로 묶음 데이터와 온디맨드 데이터의 전송 과정에 대하여 살펴본다. 도 7은 본 발명의 실시예에 따라 제0단에서 제1단으로 전송되는 묶음 데이터 및 온디맨드 데이터의 전송 타이밍도이다.
도 7에 도시된 바와 같이, 제0단계 제어 데이터(Control_s0)와 i+1 개의 묶음 데이터는 항상 전달되는 상시 데이터(Always Data)로 분류되어, 핸드세이크 프로토콜 요구신호와 응답신호에 따라 묶음 전송된다.
또한, 총 x-i개의 온디맨드 데이터(DataDi+1~DataDx) 중에서 선택된 온디맨드 데이터(DataDi+1, DataDx)는 온디맨드-핸드세이크 프로토콜 제어신호에 따라 송신된다. 도 7은 DataDi+1_s0와 DataDx_s0가 각각 앞, 뒤 사이클에서 액티브되어 전달되는 경우를 예로 들어 도시하였다.
도 7에서, 묶음 데이터보다 온디맨드 데이터가 약간 지연되어 래치됨을 알 수 있는데, 이는 제어 블록(110)이 래치 인에이블 신호를 발생한 후, C-엘리먼트로 전달되기까지의 잠재기간(Latency)을 포함한다. 여기서, 입력되는 온디맨드 데이터(DataDi+1_s0, DataDx_s0)는 온디맨드-핸드세이크 프로토콜 요구신호(ReqDi+1_s0, ReqDx_s0)가 상승 되기 전에, 안정된 상태에 있다고 가정한다.
이와 같이, 본 발명은 제어 데이터를 통해 각 단에서 필요한 온디맨드 데이터를 확인하고, 필요한 온디맨드 데이터만을 선택적으로 입력받을 수 있어, 데이터 전송에 필요한 소모 전력을 크게 개선할 수 있는 효과가 있다.
뿐만 아니라, 본 발명은 항상 묶음 전송되는 묶음 전송 채널과, 필요에 따라 묶음 전송되는 온디맨드 데이터 채널을 구분하여 각 단에서 필요하지않은 데이터가 전송되는 경우를 줄일 수 있어, 스톨 발생 확률을 크게 줄일 수 있다.
이상, 본 발명의 구성에 대하여 첨부 도면을 참조하여 상세히 설명하였으나, 이는 예시에 불과한 것으로서, 본 발명이 속하는 기술분야에 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 변형과 변경이 가능함은 물론이다. 따라서 본 발명의 보호 범위는 전술한 실시예에 국한되어서는 아니되며 이하의 특허청구범위의 기재에 의하여 정해져야 할 것이다.

Claims (18)

  1. 4위상 프로토콜에 기반하는 복수의 스테이지(Stage)를 포함하며,
    상기 복수의 스테이지 각각은 묶음 데이터와 제어 데이터를 전송하는 묶음(Always bundle) 데이터 채널 및 온디맨드 데이터를 전송하는 온디맨드 데이터 채널로 데이터를 송수신하고,
    상기 복수의 스테이지 각각은,
    상기 제어 데이터를 이용하여, 상기 묶음 데이터 중에서 해당 스테이지에서 사용할 데이터와 상기 온디맨드 데이터를 확인하는 것인 비동기식 파이프라인 시스템.
  2. 제1항에 있어서, 상기 묶음 데이터는,
    상기 복수의 스테이지 중에서 후단에 위치한 스테이지로 전달되는 데이터이거나, 각 스테이지에서 사용되는 데이터인 비동기식 파이프라인 시스템.
  3. 제1항에 있어서, 상기 온디맨드 데이터는,
    상기 복수의 스테이지 중에서 전단에 위치한 스테이지로 전달되는 데이터이거나, 일부의 스테이지에서 사용되는 데이터인 비동기식 파이프라인 시스템.
  4. 삭제
  5. 제1항에 있어서, 상기 복수의 스테이지 각각은,
    상기 묶음 데이터 채널을 통해, 한 쌍의 핸드세이크 프로토콜 요구신호와 응답신호의 상태천이에 동기하여 상기 묶음 데이터를 송수신하는 것인 비동기식 파이프라인 시스템.
  6. 제1항에 있어서, 상기 복수의 스테이지 각각은,
    상기 온디맨드 데이터 채널을 통해, 개별 상기 온디맨드 핸드세이크 프로토콜 요구신호와 응답신호에 동기하여 개별 상기 온디맨드 데이터를 송수신하는 것인 비동기식 파이프라인 시스템.
  7. 이전 스테이지로부터의 묶음 데이터 및 제어 데이터의 전달 경로인 상시입력 블록;
    상기 이전 스테이지로부터의 복수의 온디맨드 데이터 중 적어도 하나를 전달받는 경로인 복수의 온디맨드입력 블록;
    상기 이전 스테이지로부터 핸드세이크 프로토콜 요구신호가 전달되면, 상기 상시 입력 블록을 인에이블하는 제어 블록; 및
    상기 제어 블록의 인에이블에 따라 상기 상시입력 블록을 통하여 상기 제어 데이터를 입력받아, 현재 스테이지에서 이용할 상기 온디맨드 데이터를 확인하고, 상기 제어 블록에 보고하여 상기 제어 블록의 제어에 따라 상기 복수의 온디맨드입력 블록 중 적어도 하나로부터 확인된 상기 온디맨드 데이터를 입력받는 스테이지 로직을 포함하고,
    상기 제어 블록은,
    상기 스테이지 로직으로부터 상기 온디맨드 데이터의 정보를 전달받으면, 상기 복수의 온디맨드입력 블록 중에서 상기 온디맨드 데이터의 정보에 대응하는 상기 온디맨드입력 블록을 활성화하는 것인 비동기식 파이프라인 시스템.
  8. 삭제
  9. 제7항에 있어서, 상기 복수의 온디맨드입력 블록 각각은,
    상기 이전 스테이지로부터 온디맨드 핸드세이크 프로토콜 요구신호를 전달받고, 상기 스테이지 로직에 의해 활성화 되면, 래치 인에이블 신호를 출력하는 C-엘리먼트;
    상기 래치 인에이블 신호를 전달받으면, 상기 이전 스테이지로 온디맨드 핸드세이크 프로토콜 응답신호를 전달하는 제어 로직; 및
    상기 래치 인에이블 신호에 따라 래치되어, 상기 온디맨드 데이터를 입력받아 상기 스테이지 로직에 전달하는 래치
    를 포함하는 것인 비동기식 파이프라인 시스템.
  10. 제7항에 있어서,
    상기 제어 블록의 제어에 따라, 상기 스테이지 로직의 연산결과에 따른 묶음 데이터와 제어 데이터를 다음 스테이지로 전달하는 상시출력 블록;
    상기 제어 블록의 제어에 따라, 상기 스테이지 로직의 연산결과에 따른 온디맨드 데이터를 상기 다음 스테이지로 전달하는 복수의 온디맨드출력 블록
    을 더 포함하는 비동기식 파이프라인 시스템.
  11. 제10항에 있어서,
    상기 스테이지 로직은, 입력된 상기 온디맨드 데이터에 대한 연산을 수행하여 상기 연산결과에 따른 묶음 데이터와 상기 연산결과에 따른 온디맨드 데이터를 생성한 다음, 연산 종료를 의미하는 완료신호를 상기 제어 블록에 전달하며,
    상기 제어 블록은, 상기 완료신호에 포함된 상기 연산결과에 따른 온디맨드 데이터를 확인하여 그에 대응하는 상기 온디맨드출력 블록을 활성화하여 상기 연산결과에 따른 온디맨드 데이터를 상기 다음 스테이지로 전달하는 것인 비동기식 파이프라인 시스템.
  12. 제10항에 있어서, 상기 스테이지 로직은,
    상기 다음 스테이지에서 수행할 연산에 대한 기능 코드를 생성하여 상기 연산결과에 따른 제어 데이터에 포함시키는 것인 비동기식 파이프라인 시스템.
  13. 이전 스테이지로부터 핸드세이크 프로토콜 요구신호가 전달되면, 묶음 데이터 채널을 인에이블하는 단계;
    상기 묶음 데이터 채널을 통해 상기 이전 스테이지로부터 묶음 데이터와 제어 데이터를 전달받는 단계;
    상기 제어 데이터로부터 전달된 상기 묶음 데이터에서 현재 스테이지의 데이터를 확인하고, 상기 현재 스테이지의 데이터를 이용한 연산을 수행하는 단계;
    상기 제어 데이터로부터 상기 현재 스테이지에 필요한 온디맨드 데이터를 확인하는 단계;
    온디맨드 데이터 채널에서, 상기 필요한 온디맨드 데이터의 입력 채널을 선택적으로 활성화하는 단계; 및
    활성화된 상기 입력 채널을 통해 상기 온디맨드 데이터를 입력받아, 상기 온디맨드 데이터에 대한 연산을 수행하는 단계를 포함하고,
    상기 전달받는 단계는,
    한 쌍의 핸드세이크 프로토콜 신호에 동기하여 상기 묶음 데이터를 전달받는 단계를 포함하는 것인 비동기식 파이프라인 시스템의 데이터 전송 방법.
  14. 삭제
  15. 제13항에 있어서,
    상기 현재 스테이지의 데이터를 이용한 연산결과에 따른 묶음 데이터를 다음 스테이지에 대한 묶음 데이터 채널로 전송하는 단계; 및
    상기 온디맨드 데이터를 이용한 연산결과에 따른 온디맨드 데이터를 상기 다음 스테이지에 대한 온디맨드 데이터 채널로 전송하는 단계
    를 포함하는 비동기식 파이프라인 시스템의 데이터 전송 방법.
  16. 제15항에 있어서,
    상기 다음 스테이지에서 실행될 연산에 대한 기능 코드를 포함하는 제어 데이터를 생성하는 단계를 더 포함하고,
    상기 제어 데이터는, 상기 다음 스테이지에 대한 묶음 데이터 채널로 전송되는 것인 비동기식 파이프라인 시스템의 데이터 전송 방법.
  17. 제13항에 있어서,
    상기 온디맨드 데이터 채널은, 복수의 온디맨드-핸드세이크 프로토콜 신호와, 상기 온디맨드-핸드세이크 프로토콜 신호에 동기하여 전송되는 복수의 온디맨드 데이터를 포함하는 것인 비동기식 파이프라인 시스템의 데이터 전송 방법.
  18. 제16항에 있어서, 상기 온디맨드 데이터에 대한 연산을 수행하는 단계는,
    상기 활성화된 입력 채널을 통해 상기 이전 스테이지로부터 전달된 온디맨드-핸드세이크 요구신호를 전달받는 단계;
    이어서, 상기 이전 스테이지로부터 온디맨드 데이터를 전달받는 단계; 및
    상기 이전 스테이지로 온디맨드-핸드세이크 응답신호를 전달하는 단계
    를 포함하는 것인 비동기식 파이프라인 시스템의 데이터 전송 방법.
KR1020100103472A 2010-10-22 2010-10-22 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법 KR101454802B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100103472A KR101454802B1 (ko) 2010-10-22 2010-10-22 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법
US13/278,385 US9317295B2 (en) 2010-10-22 2011-10-21 Asynchronous pipeline system, stage, and data transfer mechanism

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100103472A KR101454802B1 (ko) 2010-10-22 2010-10-22 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법

Publications (2)

Publication Number Publication Date
KR20120042015A KR20120042015A (ko) 2012-05-03
KR101454802B1 true KR101454802B1 (ko) 2014-11-03

Family

ID=45973974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100103472A KR101454802B1 (ko) 2010-10-22 2010-10-22 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법

Country Status (2)

Country Link
US (1) US9317295B2 (ko)
KR (1) KR101454802B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9928202B2 (en) * 2015-04-21 2018-03-27 Fermi Research Alliance, Llc Time-division multiplexing data bus

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051779A (ko) * 2000-11-03 2003-06-25 콸콤 인코포레이티드 캐리어 신호의 진폭 및 위상 에러에 대한 저 민감도를가진 변조기
KR20030056012A (ko) * 2001-12-27 2003-07-04 주식회사 하이닉스반도체 비동기식 덧셈 곱셈 부동 소수점 연산기
KR100861073B1 (ko) * 2007-01-23 2008-10-01 충북대학교 산학협력단 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조
KR100874498B1 (ko) 2007-03-16 2008-12-18 전자부품연구원 양자화 에러 최소화를 위한 고속 광대역 모뎀의 송신 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6211704B1 (en) * 1996-07-24 2001-04-03 Hyundai Electronics Industries Co., Ltd. Asynchronous sensing differential logic (ASDL) circuit
AU8495098A (en) * 1997-07-16 1999-02-10 California Institute Of Technology Improved devices and methods for asynchronous processing
US6502180B1 (en) * 1997-09-12 2002-12-31 California Institute Of Technology Asynchronous circuits with pipelined completion process
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
US6925549B2 (en) * 2000-12-21 2005-08-02 International Business Machines Corporation Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages
US7157934B2 (en) * 2003-08-19 2007-01-02 Cornell Research Foundation, Inc. Programmable asynchronous pipeline arrays
US20050097306A1 (en) * 2003-09-29 2005-05-05 Gajski Daniel D. No-instruction-set-computer processor
WO2009155370A1 (en) * 2008-06-18 2009-12-23 University Of Southern California Multi-level domino, bundled data, and mixed templates

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051779A (ko) * 2000-11-03 2003-06-25 콸콤 인코포레이티드 캐리어 신호의 진폭 및 위상 에러에 대한 저 민감도를가진 변조기
KR20030056012A (ko) * 2001-12-27 2003-07-04 주식회사 하이닉스반도체 비동기식 덧셈 곱셈 부동 소수점 연산기
KR100861073B1 (ko) * 2007-01-23 2008-10-01 충북대학교 산학협력단 적응형 파이프라인을 적용한 병렬 처리 프로세서 구조
KR100874498B1 (ko) 2007-03-16 2008-12-18 전자부품연구원 양자화 에러 최소화를 위한 고속 광대역 모뎀의 송신 장치

Also Published As

Publication number Publication date
KR20120042015A (ko) 2012-05-03
US20120102300A1 (en) 2012-04-26
US9317295B2 (en) 2016-04-19

Similar Documents

Publication Publication Date Title
US8862925B2 (en) Pseudo synchronous serial interface synchronization method
KR101012744B1 (ko) 향상된 컴퓨팅 아키텍쳐를 위한 파이프라인 가속기 및 관련시스템 및 방법
US6925549B2 (en) Asynchronous pipeline control interface using tag values to control passing data through successive pipeline stages
US7739538B2 (en) Double data rate chaining for synchronous DDR interfaces
US7653805B2 (en) Processing in pipelined computing units with data line and circuit configuration rule signal line
EP1745384B1 (en) Circuit with asynchronous/synchronous interface
KR20150132270A (ko) 데이터 심볼 트랜지션 기반 클록킹에 의한 멀티-와이어 싱글 엔드 푸시-풀 링크
US9710012B2 (en) Timing optimized implementation of algorithm to reduce switching rate on high throughput wide buses
US11386025B2 (en) Daisy chain complex commands
US8510485B2 (en) Low power digital interface
CN108694146B (zh) 一种异步/同步接口电路
US8171259B2 (en) Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal
KR101454802B1 (ko) 비동기식 파이프라인 시스템, 스테이지 및 데이터 전송 방법
CN1926799B (zh) 包括相互异步电路模块的电路
US10338921B2 (en) Asynchronous instruction execution apparatus with execution modules invoking external calculation resources
CN116318601A (zh) 用于高速信令互连的帧对齐恢复
EP2367315B1 (en) System for synchronizing operation of a circuit with a control signal, and corresponding integrated circuit
US7752475B2 (en) Late data launch for a double data rate elastic interface
US7644226B1 (en) System and method for maintaining RAM command timing across phase-shifted time domains
KR20160100363A (ko) 오직 수신기 클록에 의한 CCIe 수신기 로직 레지스터 기입
CN117971753A (zh) 一种通信方法及装置
US20070106877A1 (en) Single-chip multiple-microcontroller architecture and timing control method for the same
CN101692216A (zh) 动态数据流结构中存储-匹配-转发单元电路
JP2004126647A (ja) 情報転送方法及び情報処理システム
US20070073933A1 (en) Asynchronous interface with vectored interface controls

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 6