KR100963706B1 - 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치 - Google Patents

데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치 Download PDF

Info

Publication number
KR100963706B1
KR100963706B1 KR1020047012965A KR20047012965A KR100963706B1 KR 100963706 B1 KR100963706 B1 KR 100963706B1 KR 1020047012965 A KR1020047012965 A KR 1020047012965A KR 20047012965 A KR20047012965 A KR 20047012965A KR 100963706 B1 KR100963706 B1 KR 100963706B1
Authority
KR
South Korea
Prior art keywords
data
bus
intermediate register
clock frequency
predetermined
Prior art date
Application number
KR1020047012965A
Other languages
English (en)
Other versions
KR20040085209A (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 엔엑스피 비 브이
Publication of KR20040085209A publication Critical patent/KR20040085209A/ko
Application granted granted Critical
Publication of KR100963706B1 publication Critical patent/KR100963706B1/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/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • 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/12Synchronisation of different clock signals provided by a plurality of clock generators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

본 발명에 따른 저속 버스로부터 고속 버스로 데이터를 비동기적으로 전송하는 방법은, 고속 버스의 클록 주파수의 사이클로 제 1의 사전 결정된 순간에 데이터를 래칭하는 단계와, 상기 고속 버스의 클록 주파수와 동일한 사이클로 제 2의 사전결정된 순간에 데이터를 래칭하는 단계를 포함하고, 상기 제 1 및 제 2의 사전 결정된 순간 사이의 기간은 데이터의 주기보다 작고, 제 1 및 제 2 사전 결정된 순간에 래칭된 데이터의 값이 동일한 경우, 상기 래칭된 데이터는 제 3의 사전 결정된 순간에 고속 버스로 전송되고, 상기 제 1 및 제 2의 사전 결정된 순간에 샘플링된 값이 상이한 경우, 제 3의 사전 결정된 순간에 현재의 데이터의 값이 고속 버스로 전송된다.

Description

데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터 전송 장치{TRANSFERRING DATA BETWEEN DIFFERENTLY CLOCKED BUSSES}
본 발명은 상이한 클록 레이트로 동작하는 버스들 사이에서 데이터를 전송하는 것에 관한 것이다. 특히 본 발명은, 상이한 클록 레이트로 동작하는 버스들을 갖는 버스 네트워크 아키텍처를 가지며, 이들 버스 사이에서 효과적으로 데이터를 전송할 수 있는 집적 회로에 응용되며, 이 집적 회로는 셀룰러 전화기와 같은 애플리케이션에 이용된다.
미국특허 제 6,064,626(양수인 : ARM limited)호는 집적 회로용 주변 버스 구성을 개시하고 있다. 이 명세서의 서두에는 시스템 버스가 고성능 시스템 모듈에 사용되고 주변 버스가 저전력 디바이스에 사용되는 공지된 버스 아키텍처가 개시되어 있다. 시스템 버스 및 주변 버스는 동일한 속도로 동작하며, 주변 장치의 특정 동작 속도로 인해 요구된 어떠한 클록 재동기화(resynchronisation)도 그 주변 장치에서 수행된다. 주변 버스를 통해 주변 장치의 동작을 제어하기 위해, 시스템 버스로부터 처리 요청 신호를 수신하고 처리 요청 신호를 필요한 클록 신호와 함께 적절한 주변 장치에게 공급하는 브리지가 제공된다. 집적 회로 내에 이 아키텍처를 구현하는 것의 단점은 전류 소비가 시스템 및 주변 버스의 동작 속도와 관련된다는 것으로, 즉 동작 속도가 빠를수록 전류 소비가 많아지며, 또한 주변 버스의 용량과 관련된다는 것으로, 즉 주변 버스에 접속된 주변 장치들의 수가 많아질수록 전류 소비가 많아진다는 것이다.
전류 소비를 줄이기 위해, 특허 제 6,064,626 호에는 시스템 버스, 하나의 고속의 주변 버스, 적어도 하나의 저속의 주변 버스 및 시스템 버스와 주변 버스 사이의 브리지 회로를 포함하는 아키텍처가 개시되어 있다. 주변 장치들은 동작 요구에 따라서 고속 및 저속 버스에 결합되며, 가능하다면 저속 버스에 우선적으로 결합된다. 따라서, 고속 주변 버스에 결합된 주변 디바이스들의 수를 감소시킴으로써 전류 소비가 기존의 버스 아키텍처에 비해 감소한다.
Phillps Semiconductors에 의해 설계된 다른 버스 아키텍처에서는, 78MHz의 보다 높은 클록 속도(HCLK)로 동작하는 AHB(Advanced High-performance Bus)라고 하는 시스템 버스와, 13MHz의 보다 낮은 클록 속도(PCLK)로 동작하는 VPB 버스라고 하는 주변 버스가 있다. 이러한 아키텍처는 상기 종래기술에 의해 교시된 바와 같이 적어도 두 개의 버스를 갖는 것이 아니라 하나의 주변 버스를 가지고 전류 소비 절감을 달성한다. HDLi(Hardware Descriptive Language Integrator)를 사용하면, AHB와 VPB의 브리지, 즉 AHB에 결합된 프로세서 내의 레지스터에 의해 AHB로부터 VPB 버스에 결합된 주변 장치로의 액세스는 5 PCLK 사이클까지 걸릴 수 있다. 이것은, 전송(transfer)에 있어서 최악의 경우에 (매 PCLK 사이클마다 6 사이클의 HCLK)×(5 사이클 액세스)=30 HCLK 사이클로 해석된다. 이것은 AHB를 구동하고 있는 마이크로컴퓨터에 대해서는 긴 지연으로서, 이 지연은 바람직하지 않다.
본 발명의 목적은 버스 네트워크 아키텍처에서 주변 장치에 액세스하는 레지스터 내에서의 지연을 감소시키는 것이다.
본 발명의 제 1 측면에 따르면, 제 1 클록 주파수를 갖는 제 1 장치로부터 상기 제 1 클록 주파수보다 더 높은 제 2 클록 주파수를 갖는 제 2 장치로 데이터를 전송하는 방법에 있어서, 상기 제 2 클록 주파수의 사이클로 제 1의 사전 결정된 순간에 데이터를 래칭하는 단계와, 상기 제 2 클록 주파수의 사이클로 제 2의 사전 결정된 순간에 데이터를 래칭하는 단계 -상기 제 2 및 제 1의 사전 결정된 순간 사이의 기간이 상기 제 1 클록 주파수의 주기보다 더 작음- 와, 상기 제 1 및 제 2의 사전 결정된 순간에서의 상기 래칭된 데이터의 값이 동일한 경우에, 제 3 사전 결정된 순간에 상기 래칭된 데이터를 상기 제 2 장치가 결합되는 버스로 전송하거나 또는 상기 제 1 및 제 2의 사전 결정된 순간에 샘플링된 값이 상이한 경우에, 상기 제 3 사전 결정된 순간에 현재의 데이터를 상기 버스로 전송하는 단계를 포함하는 데이터 전송 방법이 제공된다.
본 발명의 제 2 측면에 따르면, 제 2 클록 주파수로 동작하는 제 2 장치로부터 상기 제 2 클록 주파수보다 더 낮은 제 1 클록 주파수로 동작하는 제 1 장치로 데이터를 전송하는 방법에 있어서, 상기 제 2 장치로부터의 데이터를 상기 제 2 클 록 주파수로 중간 레지스터 내에 저장하는 단계와, 상기 중간 레지스터로부터의 데이터를 상기 제 1 클록 주파수로 상기 제 1 장치로 전송하는 단계를 포함하는 데이터 전송 방법이 제공된다.
본 발명의 제 3 측면에 따르면, 고속 버스를 저속 버스에 결합시키는 데이터 전송 브리지에 있어서, 제 1의 사전 결정된 순간에 상기 저속 버스 상에 제 1의 저속 데이터 샘플을 래칭하는 제 1 래칭 수단과, 제 2의 사전 결정된 순간에 상기 저속 버스 상에 제 2의 저속 데이터 샘플을 래칭하는 제 2 래칭 수단 -상기 제 1 및 제 2의 사전 결정된 순간 사이의 간격은 상기 저속 데이터의 주기보다 더 작음- 과, 상기 저속 데이터의 상기 제 1 및 제 2 샘플을 비교하는 비교 수단을 포함하고, 상기 비교 수단은 상기 제 1 및 제 2 샘플이 동일한 값인 것에 응답하여 제 3의 사전 결정된 순간에 상기 래칭된 데이터를 상기 고속 버스로 전송하는 제 1 수단과 상기 제 1 및 제 2 샘플이 상이한 것에 응답하여 제 3의 사전 결정된 순간에 현재의 상기 저속 데이터 샘플을 상기 고속 버스로 전송하는 제 2 수단을 포함하는 데이터 전송 브리지가 제공된다.
본 발명의 제 4 측면에 따르면, 고속 데이터를 상기 고속 데이터의 클록 스피드보다 더 낮은 클록 속도로 클로킹된 저장 장치로 전송하는 장치에 있어서, 고 레이트(high rate)의 데이터가 클로킹되는 중간 레지스터와, 상기 중간 레지스터에 저장된 데이터가 상기 낮은 클록 속도로 전송되도록 하는 수단을 포함하는 고속 데이터 전송 장치가 제공된다.
본 발명의 제 1 측면에 따른 방법은 AHB 버스와 LPFAB(Low Power Fast Access Bus) 사이에 완전한 투명성을 달성하며, 따라서 단일 HCLK 사이클을 이용하여 LPFAB 버스에 대한 레지스터 액세스를 허용한다. 또한, LPFAB 버스 상에 클로킹 이벤트를 제한함으로써 전력 소비를 줄이고, 두 클록 영역 사이에 데이터의 정확한 전달을 보장한다.
도 1은 AHB와 LPFAB의 버스 브리지를 갖는 시스템의 개략적인 블록도.
도 2는 AHB와 LPFAB의 버스 브리지의 개략적인 블록도.
도 3은 주변 장치의 데이터 출력 회로의 개략적인 블록도.
도 4는 주변 장치의 데이터 입력 회로의 개략적인 블록도.
도 5(a) 내지 5(c)는 본 발명의 제 1 특징에 따른 방법을 구현하는 것과 관련되는 제 1 세트의 타이밍도.
도 6(a) 내지 6(c)는 본 발명의 제 1 특징에 따른 방법을 구현하는 것과 관련되는 제 2 세트의 타이밍도.
도 7은 본 발명의 제 1 특징에 따른 방법과 관련된 흐름도.
도 8은 도 4에 도시된 섀도우 레지스터 제어기의 개략적인 블록도.
도면에서 동일한 참조번호는 대응하는 특징부를 나타내는데 사용되었다.
도 1에서, 도시된 시스템은 각각의 송수신 양용(two-way) 링크에 의해, 예를 들어 78 MHz(사용된 프로세서에 따라서 다른 속도일 수도 있음)의 최대 시스템 속도(HCLK)로 동작하는 AHB(Advanced High-performance Bus)(20)에 결합된 복수의 장치를 포함한다. 이들 장치는 프로세서(10), 버스에 결합된 다양한 장치들에 의해 AHB(20)에 대한 액세스를 제어하는 중재기(12), 어드레스 디코더(14) 및 집합적으로 16으로 표시된 온칩(on-chip) 내부 및 외부 메모리 제어기를 포함한다. 프로세서(10)가 HCLK보다 더 높은 주파수로 동작하면, 버스 브리지(18)가 프로세서(10)와 AHB(20)에 대한 링크 사이에 결합된다.
UART(universal Asynchronous Receive and Transmit)(22) 및 GPIO(General Purpose Input Output)(24)와 같은 저 대역폭의 비 버스 마스터링(non bus-mastering) 장치들과 타이머(26)는 그들의 버스 인터페이스를 단순화하고 AHB 인터페이스(20)의 부담을 덜기 위해, 송수신 양용 링크에 의해 LPFAB(Low Power Fast Access Bus) 인터페이스(28)에 결합된다. LPFAB 인터페이스(28)는 AHB(20) 인터페이스 속도 또는 예를 들어 13 MHz의 보다 낮은 속도로 실행될 수 있다. AHB-LPFAB 버스 브리지(30)는 장치(22, 24, 26)를 AHB(20)에 접속시킨다. 버스 브리지(30)는 LPFAB 인터페이스에 대해 슬레이브 장치이다. 버스 브리지(30)는 LPFAB 인터페이스에 대한 슬레이브 장치이다.
도 2를 참조하면, 버스 브리지(30)는 다수의 동작 특징부를 포함하는데, 도시의 편의를 위해 사용된 다양한 약어는 다음과 같다.

클록:
PCLK 예컨대 13 MHz의 주변 클록. 그러나 일부 주변 클록은 훨씬 더 느린 PCLK를 사용하며, 각각의 주변 클록은 HCLK보다 더 느린 한 자신의 PCLK 속도를 가질 수 있다.
WRITE_CLK 기록용의 단일 펄스(HCLK의 게이트형 펄스).
READ_CLK 판독용의 단일 펄스(HCLK의 게이트형 펄스)로서 판독 소거 레지스터(read-clear registers)용으로만 사용됨.
어드레스 버스 및 주변 선택 라인:
HADDR 어드레스 버스(이 버스는 READ 데이터 확인용으로만 사용됨).
PA 어드레스 버스.
PSEL PA를 이용하여 주변 선택.
EARLY-PSEL HADDR 버스를 이용하여 주변 선택(이 신호는 READ 데이터 확인용으로만 사용됨).
데이터 버스:
PDI 주변 데이터 입력 버스.
PDO 주변 데이터 출력 버스(PA 어드레스에 기초).
EARLY-PDO 주변 데이터 출력(HADDR 어드레스에 기초하며 판독 확인용으로만 사용됨).
대기 라인(Ready line):
SHADOW_READY 선택된 어드레스의 섀도우 레지스터가 보다 많은 데이터 수신을 대기한다(어드레스에 섀도우 레지스터가 사용되지 않으면 디폴트는 "1"이다).
버스 브리지(30) 내의 다양한 함수 블록은 데이터 버스(PDO, EARLY-PDO)가 접속되는 데이터 확인 블록(32)을 포함한다. PDO 버스 상의 유효 데이터는 블록(32)에 의해 데이터 조종 블록(34)에 공급되고, 이 데이터 조종 블록(34)은 출력(HRDATA)을 제공한다. AHB 어드레스 및 제어 라인(36)은 HADDR 출력부(38), 어드레스 디코드 블록(40) 및 제어 신호가 1 HCLK 사이클 지연되는 블록(42)에 결합된다. 블록(42)은 PA에 결합된 출력부(44), 블록(34)에 결합된 출력부(46) 및 지연된 제어 신호를 판독(R)/기록(W) 클록 인에이블 및 HREADY 발생기를 나타내는 블록(50)의 입력부에 제공하는 출력부(48)의 세 개의 출력부를 갖는다.
어드레스 디코드 블록(40)은 출력(PSEL)을 제공하는 1 HCLK 사이클 지연 블록(52), 블록(50) 및 EARLY_PSEL 출력(54)에 결합된다. 블록(50)은 SHADOW_READY 입력부(56) 및 두 개의 출력부(58, 60)를 갖는다. 출력부(58)는 HREADY 및 HRESP 신호를 AHB(20)에 제공하고 출력부(60)는 클록 인에이블을 클록 발생기 블록(도시되어 있지 않음)에 제공한다.
본 발명의 제 1 측면에 따른 방법은 동기화에 대한 요구를 회피하는 레지스터 액세스와 관련되며, 특히 AHB 버스를 통과하는 어떠한 데이터도 적어도 HCLK 사 이클의 절반 동안 안정되며 따라서 유효 데이터가 된다는 것을 신뢰할 수 있도록 보장하는 것과 관련된다.
AHB 및 LPFAB 클록이 관련되지 않을 때 일종의 판독 확인이 필요하며, 그 결과 데이터는 AHB(20)(도 1 참조)에 의해 판독되는 경우에 LPFAB 레지스터 내에서 변경될 수 있다. 데이터가 신뢰할 수 있도록 안정될 것을 요구하는 것은, HCLK 사이클의 적어도 반 동안 안정되지 않은 데이터가 잠재적으로 전이(transition) 중에 있을 수 있기 때문이다.
도 3에서는, AHB 어드레스 라인과 LPFAB 어드레스 라인 모두를 LPFAB 버스(28)(도 1 참조)를 통해 전파함으로써 판독 확인이 수행된다. 각각의 LPFAB 주변 장치(PDEV)는 5개의 레지스터(REG1 내지 REG5)를 포함한다. 각각의 레지스터는 현재의 HADDR 어드레스 및 PA 어드레스로부터의 동시 판독을 가능하게 하여 판독 확인을 가능하게 하기 위하여 멀티플렉서(MUX1, MUX2)의 입력부에 각각 결합된 두 개의 출력부를 갖는다. 보다 구체적으로는 MUX1은 HADDR 어드레스를 사용하여 클로킹되고, MUX2는 PA 어드레스를 사용하여 클로킹되며, HADDR 어드레스는 PA 어드레스보다 적어도 하나의 HCLK 사이클이 앞선다. 이 예에서, HADDR 어드레스는 AHB 버스 상에 실제 판독의 거의 두 사이클 전에 주어진다. 보다 구체적으로는, 어드레스는 HCLK의 상승 에지 후에, 즉 도 5(a) 및 6(a)의 시간 T1에 주어지며, 다음 에지, 즉 도 5(a) 및 6(a)의 시간 T2에 AHB 주변 장치에 의해 래칭되고, HCLK의 다음 상승 에지, 즉 도 5(a) 및 6(a)의 시간 T3에 데이터 전송이 실제로 일어난다.
도 2, 도 5(a) 내지 5(c) 및 도 6(a) 내지 6(c)를 참조하면, 판독 확인 구조 는 (1) 시간 T1, 즉 HCLK의 상승 에지에서 EARLY-PDO(HADDR에 기초한 데이터 출력)의 값 내에서 래칭하는 데이터 확인 블록(32)과, (2) 시간 T2, 즉, 시간 T1 직후의 HCLK의 하강 에지에서 PDO(PA에 기초한 데이터 출력)의 값 내에서 래칭하는 데이터 확인 블록(32)과, (3) 시간 T1 및 T2에서 취해진 판독을 비교하는 데이터 확인 블록(32)을 포함한다. 도 5(b)에 도시된 바와 같이 만약 이들이 동일하면, 시간 T3에 PDO 값이 무엇인지에 관계없이, 이 데이터 "A"는 시간 T3, 즉 시간 T1 다음의 후속 상승 에지에서 AHB 버스(20)(도 1 참조)로 전달된다. 이것은 데이터가 시간 T2와 T3 사이에서 변경되지 않을 것이라는 보장이 없기 때문이다. 그러나, 도 6(b)에 도시된 바와 같이 시간 T1 및 T2에서의 판독이 상이하면, PCLK가 HCLK보다 분명히 더 느리기 때문에 이것은 PLCK 상승 에지가 시간 T1과 T2 사이에서 발생했다는 것을 의미하며, 도 6(b)에 도시된 바와 같이 다른 에지가 시간 T2와 T3 사이에 오지 않을 것이라는 것을 보장할 수 있다. 이것은 데이터가 시간 T3에서 안정되며 따라서 데이터 확인 블록(32)이 PDO 값 "B"를 AHB 버스 상에 직접 제공한다는 것을 의미한다.
이 데이터 확인 구조는 데이터 전송에 지연을 발생시키지 않으면서 안정된 데이터를 보장한다. 시간 T1과 T2에서의 래칭된 판독 사이의 비교를 하는 로직은 그 비교를 하기 위해 HCLK 사이클의 반을 갖는다.
판독 확인 프로세스는 도 7에 도시된 플로차트에 요약되어 있다. 블록(62)은 시간 T1에서 PDO_EARLY의 값을 래칭하는 것을 나타낸다. 블록(64)은 시간 T2에서 PDO의 값을 래칭하는 것을 나타낸다. 블록(66)은 시간 T1 및 T2에서 래칭된 값 을 비교하는 것을 나타낸다. 블록(68)은 래칭된 값이 동일한 지를 검사하는 것을 나타내며, 동일한 경우(Y) 블록(70)은 시간 T3에서 AHB 버스로 데이터를 전송하는 것을 나타낸다. 동일하지 않을 경우(N), 블록(72)은 시간 T3에서 데이터를 AHB 버스로 전송하는 것을 나타낸다.
PA 버스가 LPFAB 상의 유효 레지스터인 어드레스를 포함할 때마다 레지스터 판독이 수행된다. 판독 시간을 나타내는 데에는 아무런 클록도 사용되지 않는다. 데이터는 항상 PDO 버스를 통해 각각의 주변 장치로부터 멀티플렉싱되고 와이어드 오알(wired-OR) PDO_MUX 블록 내에서 결합된다. 지시된 어드레스를 포함하지 않는 주변 장치는 0을 출력한다.
판독-소거 액세스(Read-clear access)의 경우(레지스터의 내용이 판독 내용 변경을 요구한다), READ_CLK는 레지스터가 판독되고 있는 블록을 나타내는데 사용된다.
기록을 수행할 때, 레지스터의 성질은 사용된 절차에 영향을 미친다. 도 4를 참조하면, 제어 레지스터(74)(프로세서에 의해서만 기록될 수 있으며 주변 장치에 의해서는 기록될 수 없는 레지스터)는 PA 어드레스, PSEL을 설정함으로써 데이터 라인(76)을 통해 PDI로부터 기록되고, WRITE_CLK의 상승 에지 시에 기록이 발생한다.
프로세서 및 주변 장치 모두가 기록을 할 수 있는 레지스터(78)는 프로세서로부터 데이터를 수신할 때 섀도우 레지스터(80)를 이용한다. 그러한 경우에, 프로세서는 섀도우 레지스터(80)에 기록하고, 이어서 데이터는 MUX(84)에 의해 실제 레지스터(78)로 전송된다. 섀도우 레지스터 제어기(82)는 섀도우 레지스터와 실제 레지스터(78) 사이의 데이터 전송을 제어하며, 실제 레지스터(78)는 PCLK에서 클로킹된다. PCLK에서 클로킹되는 주변 장치로부터 기록될 때, PDO로부터의 데이터는 실제 레지스터(78)로의 기록을 위해 MUX(84)에 직접 인가된다.
보다 구체적으로는 HCLK 영역, 즉 AHB로부터 PCLK 영역으로의 데이터의 올바른 이동을 보장하기 위해, 데이터를 PCLK에 동기시킬 필요가 있다. 동기는 비교적 긴 시간인 대략 PCLK 사이클의 시간이 걸릴 수 있기 때문에 프로세서를 지연시키는 것은 이상적이지 않다. 대신에 제어 레지스터라고 하더라도 프로세서는 WRITE-CLK를 이용하여 섀도우 레지스터(80)에 기록하고, 이어서 데이터를 실제 레지스터(78)로 전달한다.
이 기록 방법은 프로세서가 하나의 HCLK 사이클 내에서 섀도우 레지스터에 기록하고 이동하는 것을 허용한다. 그러나, SHADOW_READY가 로우인 한, 프로세서는 섀도우 레지스터(80)에 추가적인 기록을 하는 것 또는 이로부터 판독하는 것이 금지된다. 섀도우 레지스터(80)에 대해 기록/판독하는 것을 금지하면, 기존의 데이터(old data)가 실제 레지스터(78)에 전송되기 전에 새로운 데이터를 섀도우 레지스터(80)에 기록하는 것과 프로세서가 섀도우 레지스터(80)로부터 기존의 데이터를 판독하는 것을 회피한다. 섀도우 레지스터 제어기(82)가 바쁜 와중에, 프로세서가 그 어드레스에 대한 레지스터 액세스를 수행하려고 시도하는 경우, 브리지(30)는 HREADY 로우 및 HRESP=RETRY를 어서트하고, 프로세서는 판독/기록을 재시도하도록 호출되며, 이것은 SHADOW_READY 라인이 하이로 돌아갈 때까지 계속된다.
도 8은 섀도우 레지스터 제어기(82)(도 4 참조)의 실시예를 도시한다. 제어기(82)는 출력이 제 1 D형 플립 플롭(86)의 D 입력에 결합되는 T형 플립플롭(84)을 포함하며, 상기 제 1 D형 플립 플롭(86)의 출력은 제 2 D형 플립플롭(88)의 입력에 결합된다. 플립플롭(84, 88)의 출력은 제 1 Ex-OR 게이트(90)의 각 입력에 결합된다. D형 플립플롭(86, 88)의 출력은 제 2 Ex-OR 게이트(92)의 각 입력에 결합된다. Ex-OR 게이트(90)의 출력은 인버터(94)를 통해 플립플롭(84)의 T 입력에 결합된다. WRITE_CLOCK 신호는 플립플롭(84)의 클록 입력에 인가되고, PCLK 신호는 플립플롭(86, 88)의 클록 입력에 인가된다. Ex-OR 게이트(90)는 Not SHADOW_READY 출력이고 Ex-OR 게이트(92)는 MUX_CTRL 출력을 제공한다.
동작에 있어서, 기록이 발생하면, WRITE_CLK는 T 형 플립플롭(84)의 출력을 토글(toggle)하고 SHADOW_READY 라인을 즉각 낮추도록 상태를 변경한다. 이것이 발생하는 것과 동시에, 섀도우 레지스터(80)가 또한 기록된다. SHADOW_READY 라인을 T형 플립플롭(84)에 공급함으로써 추가의 기록은 SHADOW_READY 라인을 토글하지는 않는다. PCLK의 다음 상승 에지 시에, MUX_CTRL은 "1"이 되고, 다음 상승 에지 시에 데이터는 섀도우 레지스터(80)(도 4)로부터 MUX(84)(도 4)를 통해 실제 레지스터(78)(도 4)로 전송된다. 전송이 이루어지는 동시에, MUX_CTRL이 "0"으로 떨어지고 SHADOW_READY는 다시 "1"로 상승한다.
WRITE_CLK에 의해 기록된 섀도우 레지스터(80)의 출력이 PCLK에 의해 클로킹된 레지스터의 값을 결정하는데 사용될 때 동기화 문제가 발생할 수도 있다. 이 문제는 두 방식 중 하나로 해결될 수 있다. 첫 번째 방식에서, PCLK가 WRITE_CLK 와 동기되어, PCLK가 WRITE_CLK보다 훨씬 더 느린 경우에도, PCLK는 HCLK의 상승 에지와 동일한 시간에만 상승한다. 두 번째 방식에서, PCLK를 생성하는 클록 생성기 블록 사이에 플립플롭이 배치되고 LPFAB에 도달하는 PCLK 신호가 PCLK 상승 에지 도달의 초기 경보를 제공한다. 그러면 이것은 AHB 버스(20)(도 1 참조)에 대해 준비되지 않은 라인(a not ready line)으로서 사용될 수 있다. 이것은 프로세서가 LPFAB 버스(28)(도 1 참조)에 기록하는 것을 차단할 수 있다. 보다 긴 경고 시간을 획득하기 위해 하나 이상의 플립플롭을 사용하는 것이 가능하다.
전술한 버스들 간의 데이터 전송 방법은 고속 CPU 버스와 저속 주변장치 버스 간의 인터페이싱을 위한 저전력 고속 솔루션을 제공한다. 이 방법은 주변장치 버스의 속도가 CPU 버스보다 크지 않은 다양한 버스 아키텍처에 적용가능하다.
본 명세서 및 청구범위에서 "포함"이라는 단어는 나열된 요소들 또는 단계들 이외의 다른 요소들 또는 단계들의 존재를 배제하지 않는다.
이상의 설명으로부터 당업자들에게 자명한 다른 변형들이 있다. 이러한 변형들은 버스 아키텍처의 사용, 설계 및 제조업자에게 있어서 이미 공지되어 있는 다른 특징들 및 그 구성 부분을 포함할 수도 있고, 본 명세서에 이미 개시한 특징들 대신 또는 이들에 부가하여 사용될 수도 있다.
데이터 전송을 위해 버스를 이용하는 전자 회로

Claims (11)

  1. 제 1 클록 주파수를 갖는 제 1 장치로부터 상기 제 1 클록 주파수보다 더 높은 제 2 클록 주파수를 갖는 제 2 장치로 데이터를 전송하는 방법으로서,
    상기 제 2 클록 주파수의 사이클로 제 1의 사전 결정된 순간에 데이터를 래칭하는 단계와,
    상기 제 2 클록 주파수의 사이클로 제 2의 사전 결정된 순간에 데이터를 래칭하는 단계 -상기 제 2의 사전 결정된 순간과 제 1의 사전 결정된 순간 사이의 시간은 상기 제 1 클록 주파수의 주기보다 더 작음- 와,
    상기 제 1 및 제 2의 사전 결정된 순간에서의 상기 래칭된 데이터의 값이 동일한 경우에는 제 3의 사전 결정된 순간에 상기 래칭된 데이터를 상기 제 2 장치가 결합되는 버스로 전송하거나, 또는 상기 제 1 및 제 2의 사전 결정된 순간에 샘플링된 값이 상이한 경우에는 상기 제 3의 사전 결정된 순간에 현재 존재하는 데이터를 상기 버스로 전송하는 단계
    를 포함하는 데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 제 1의 사전 결정된 순간과 제 2의 사전 결정된 순간 사이의 시간 차 및 상기 제 2의 사전 결정된 순간과 제 3의 사전 결정된 순간 사이의 시간 차는 동일한 데이터 전송 방법.
  3. 제 2 항에 있어서,
    각각의 상기 시간 차는 상기 클록 주파수의 사이클의 반에 대응하는 데이터 전송 방법.
  4. 제 2 클록 주파수로 동작하는 제 2 장치로부터 상기 제 2 클록 주파수보다 더 낮은 제 1 클록 주파수로 동작하는 제 1 장치로 데이터를 전송하는 방법에 있어서,
    상기 제 2 장치로부터의 데이터를 상기 제 2 클록 주파수로 중간 레지스터 내에 저장하는 단계와,
    상기 중간 레지스터로부터의 데이터를 상기 제 1 클록 주파수로 상기 제 1 장치로 전송하는 단계
    를 포함하는 데이터 전송 방법.
  5. 제 4 항에 있어서,
    데이터가 상기 중간 레지스터에 기록된 후에는 상기 중간 레지스터 내의 추가적인 데이터 저장을 금지하는 데이터 전송 방법.
  6. 고속 버스를 저속 버스에 결합시키는 데이터 전송 브리지로서,
    제 1의 사전 결정된 순간에 상기 저속 버스 상에 제 1의 저속 데이터 샘플을 래칭하는 제 1 래칭 수단과,
    제 2의 사전 결정된 순간에 상기 저속 버스 상에 제 2의 저속 데이터 샘플을 래칭하는 제 2 래칭 수단 -상기 제 1의 사전 결정된 순간과 제 2의 사전 결정된 순간 사이의 시간 간격은 상기 저속 데이터의 주기보다 더 작음- 과,
    상기 저속 데이터의 상기 제 1 및 제 2 샘플을 비교하는 비교 수단을 포함하되,
    상기 비교 수단은,
    상기 제 1 및 제 2 샘플이 동일한 값인 것에 응답하여 제 3의 사전 결정된 순간에 상기 래칭된 데이터를 상기 고속 버스로 전송하는 제 1 수단과,
    상기 제 1 및 제 2 샘플이 상이한 것에 응답하여 상기 제 3의 사전 결정된 순간에 현재 존재하는 상기 저속 데이터 샘플을 상기 고속 버스로 전송하는 제 2 수단
    을 포함하는 데이터 전송 브리지.
  7. 고속 데이터를 상기 고속 데이터의 클록 속도보다 더 낮은 클록 속도로 클로킹된 저장 장치로 전송하는 장치로서,
    고 레이트(high rate)의 데이터가 클로킹되는 중간 레지스터와,
    상기 중간 레지스터에 저장된 데이터가 상기 낮은 클록 속도로 다른 레지스터로 전송되도록 하는 수단
    을 포함하는 고속 데이터 전송 장치.
  8. 제 7 항에 있어서,
    데이터가 상기 중간 레지스터에 기록된 후에는 상기 중간 레지스터 내의 추가적인 고속 데이터 저장을 금지하는 수단을 포함하는 고속 데이터 전송 장치.
  9. 제 7 항에 있어서,
    데이터를 상기 다른 레지스터 내에 저장되도록 전송하는 상기 수단은 상기 중간 레지스터의 출력부에 결합된 데이터 입력부를 갖는 멀티플렉서를 포함하고,
    상기 중간 레지스터의 제어 입력부에 결합된 출력부를 가지며 상기 멀티플렉서에 의한 데이터의 전송을 제어하는 중간 레지스터 제어기가 제공되는 고속 데이터 전송 장치.
  10. 제 9 항에 있어서,
    상기 중간 레지스터 제어기는 데이터가 상기 중간 레지스터에 기록된 후에 상기 중간 레지스터 내의 추가적인 데이터 저장을 금지하는 수단을 포함하는 고속 데이터 전송 장치.
  11. 제 9 항 또는 10 항에 있어서,
    상기 중간 레지스터 제어기는 제 1의 D형 플립플롭에 결합된 출력을 갖는 T형 플립플롭 -상기 제 1의 D형 플립플롭은 제 2의 D형 플립플롭에 결합된 출력을 가짐- 과,
    상기 T 형 플립플롭의 출력 및 상기 제 2의 D형 플립플롭의 출력에 각각 결합된 입력들 및 출력을 갖는 제 1 Ex-OR 게이트와,
    상기 제 1 Ex-OR 게이트의 출력을 상기 T 형 플립플롭의 입력에 결합시키는 신호 인버터와,
    상기 제 1 및 제 2의 D형 플립플롭에 각각 결합된 입력들을 갖는 제 2 Ex-OR 게이트를 포함하되,
    상기 제 1 Ex-OR 게이트의 출력은 상기 중간 레지스터에 데이터가 기록된 후에 상기 중간 레지스터 내에 데이터의 저장을 금지하는데 사용되는 고속 데이터 전송 장치.
KR1020047012965A 2002-02-22 2003-01-28 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치 KR100963706B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB0204144.0 2002-02-22
GBGB0204144.0A GB0204144D0 (en) 2002-02-22 2002-02-22 Transferring data between differently clocked busses
PCT/IB2003/000246 WO2003071405A1 (en) 2002-02-22 2003-01-28 Transferring data between differently clocked busses

Publications (2)

Publication Number Publication Date
KR20040085209A KR20040085209A (ko) 2004-10-07
KR100963706B1 true KR100963706B1 (ko) 2010-06-14

Family

ID=9931531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047012965A KR100963706B1 (ko) 2002-02-22 2003-01-28 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치

Country Status (11)

Country Link
US (1) US7165184B2 (ko)
EP (1) EP1478994B1 (ko)
JP (2) JP2005518042A (ko)
KR (1) KR100963706B1 (ko)
CN (1) CN100343778C (ko)
AT (1) ATE415665T1 (ko)
AU (1) AU2003201487A1 (ko)
DE (1) DE60324897D1 (ko)
GB (1) GB0204144D0 (ko)
TW (1) TWI291624B (ko)
WO (1) WO2003071405A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1879096A (zh) * 2003-12-18 2006-12-13 中兴通讯股份有限公司 从AMBAAHB总线协议到i960-like总线协议的总线接口转换装置
KR101086401B1 (ko) * 2004-06-02 2011-11-25 삼성전자주식회사 서로 다른 속도로 동작하는 버스들을 인터페이싱하는 방법및 장치
US7600081B2 (en) * 2006-01-18 2009-10-06 Marvell World Trade Ltd. Processor architecture having multi-ported memory
JP4882862B2 (ja) * 2007-05-11 2012-02-22 ソニー株式会社 無線通信端末、半導体デバイス、データ通信方法および無線通信システム
US8250280B1 (en) 2008-07-15 2012-08-21 Marvell Israel (M.I.S.L.) Ltd. Bus transaction maintenance protocol
IT1399916B1 (it) 2010-04-30 2013-05-09 Balluchi Dispositivo di memoria ad accesso di registro indicizzato
JP2012216985A (ja) * 2011-03-31 2012-11-08 Renesas Electronics Corp データ転送システムおよびデータ転送方法
US9489304B1 (en) * 2011-11-14 2016-11-08 Marvell International Ltd. Bi-domain bridge enhanced systems and communication methods
CN103092175B (zh) * 2013-01-21 2015-04-15 杭州华三通信技术有限公司 I2c主设备与从设备之间串行时钟线scl控制的方法及装置
GB2528481B (en) * 2014-07-23 2016-08-17 Ibm Updating of shadow registers in N:1 clock domain
GB201810785D0 (en) 2018-06-29 2018-08-15 Nordic Semiconductor Asa Asynchronous communication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11160100A (ja) 1997-11-25 1999-06-18 Sony Precision Technology Inc スケール装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4716525A (en) * 1985-04-15 1987-12-29 Concurrent Computer Corporation Peripheral controller for coupling data buses having different protocol and transfer rates
US5256912A (en) * 1991-12-19 1993-10-26 Sun Microsystems, Inc. Synchronizer apparatus for system having at least two clock domains
JPH0713927A (ja) * 1993-06-24 1995-01-17 Fujitsu Ltd 非同期同期変換回路
EP0834134B1 (en) * 1995-06-07 2005-02-16 Samsung Electronics Co., Ltd. Delay reduction in transfer of buffered data between two mutually asynchronous buses
JP2993463B2 (ja) * 1997-05-08 1999-12-20 日本電気株式会社 同期回路制御装置
JP2000010850A (ja) * 1998-06-19 2000-01-14 Nec Eng Ltd メモリアクセスシステム
US6064626A (en) * 1998-07-31 2000-05-16 Arm Limited Peripheral buses for integrated circuit
JP2000076180A (ja) * 1998-08-28 2000-03-14 Nec Corp バス接続装置及び情報処理システム
JP2000242544A (ja) * 1999-02-25 2000-09-08 Fuji Xerox Co Ltd メモリ制御装置及びダイレクトメモリアクセス制御装置
US6345328B1 (en) * 1999-06-09 2002-02-05 Advanced Micro Devices, Inc. Gear box for multiple clock domains
US6549593B1 (en) * 1999-07-19 2003-04-15 Thomson Licensing S.A. Interface apparatus for interfacing data to a plurality of different clock domains
US6408409B1 (en) * 1999-11-15 2002-06-18 Sun Microsystems, Inc. Method and apparatus for ring buffer flow error detection
US6816979B1 (en) * 2001-02-01 2004-11-09 Cypress Semiconductor Corp. Configurable fast clock detection logic with programmable resolution
US6931562B1 (en) * 2001-08-23 2005-08-16 Hewlett-Packard Development Company, L.P. System and method for transferring data from a higher frequency clock domain to a lower frequency clock domain
US6928574B1 (en) * 2001-08-23 2005-08-09 Hewlett-Packard Development Company, L.P. System and method for transferring data from a lower frequency clock domain to a higher frequency clock domain
US7010713B2 (en) * 2002-12-19 2006-03-07 Mosaid Technologies, Inc. Synchronization circuit and method with transparent latches
US6949955B2 (en) * 2003-11-24 2005-09-27 Intel Corporation Synchronizing signals between clock domains
US7061286B2 (en) * 2004-06-24 2006-06-13 Teradyne, Inc. Synchronization between low frequency and high frequency digital signals

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11160100A (ja) 1997-11-25 1999-06-18 Sony Precision Technology Inc スケール装置

Also Published As

Publication number Publication date
DE60324897D1 (de) 2009-01-08
ATE415665T1 (de) 2008-12-15
TW200303472A (en) 2003-09-01
EP1478994B1 (en) 2008-11-26
AU2003201487A1 (en) 2003-09-09
TWI291624B (en) 2007-12-21
JP2009163758A (ja) 2009-07-23
WO2003071405A1 (en) 2003-08-28
KR20040085209A (ko) 2004-10-07
US20050108482A1 (en) 2005-05-19
JP2005518042A (ja) 2005-06-16
US7165184B2 (en) 2007-01-16
EP1478994A1 (en) 2004-11-24
CN100343778C (zh) 2007-10-17
CN1639670A (zh) 2005-07-13
GB0204144D0 (en) 2002-04-10

Similar Documents

Publication Publication Date Title
US6516362B1 (en) Synchronizing data between differing clock domains
US6763416B1 (en) Capturing read data
JP2009163758A (ja) クロックの異なるバス間におけるデータ転送
EP1292894B1 (en) Multiprotocol computer bus interface adapter and method
US5564042A (en) Asynchronous clock switching between first and second clocks by extending phase of current clock and switching after a predetermined time and appropriated transitions
JPH07306827A (ja) P/q整数比関係を有する周波数で動作するディジタル装置間で同期データ伝送を行うための方法および装置
EP1222554A1 (en) Improved synchronous operation of an advanced peripheral bus with backward compatibility
US6112307A (en) Method and apparatus for translating signals between clock domains of different frequencies
JP2004506975A (ja) クロックフォワードシステムi/oのための効率的なクロック開始および停止装置
US20100315134A1 (en) Systems and methods for multi-lane communication busses
US6624659B1 (en) Dynamically updating impedance compensation code for input and output drivers
US6047382A (en) Processor with short set-up and hold times for bus signals
US6584536B1 (en) Bus transaction accelerator for multi-clock systems
US6438627B1 (en) Lower address line prediction and substitution
US6078980A (en) Regulating a data transfer time
US5960180A (en) Host adapter integrated circuit having autoaccess pause
US6571106B1 (en) Method and apparatus for glitchless signal generation
US6088812A (en) Sequential data transfer method
JP2004326222A (ja) データ処理システム
US6360286B1 (en) Sequential data transfer with common clock signal for receiver and sequential storage device and with slack register storing overflow item when set-up time is insufficient
EP1242897B1 (en) Method and apparatus for differential strobing in a communications bus
AU670507B2 (en) Method and system for providing data hold time by synchronous random access memory during write operations
US10915485B2 (en) Circuit for asynchronous data transfer
EP3973635A1 (en) Clock domain crossing for an interface between logic circuits

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130603

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140602

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150608

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180601

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190607

Year of fee payment: 10