KR20030027630A - 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치 - Google Patents

중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치 Download PDF

Info

Publication number
KR20030027630A
KR20030027630A KR1020010060999A KR20010060999A KR20030027630A KR 20030027630 A KR20030027630 A KR 20030027630A KR 1020010060999 A KR1020010060999 A KR 1020010060999A KR 20010060999 A KR20010060999 A KR 20010060999A KR 20030027630 A KR20030027630 A KR 20030027630A
Authority
KR
South Korea
Prior art keywords
cpu
peripheral devices
state
enable
clock
Prior art date
Application number
KR1020010060999A
Other languages
English (en)
Other versions
KR100800665B1 (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 KR1020010060999A priority Critical patent/KR100800665B1/ko
Publication of KR20030027630A publication Critical patent/KR20030027630A/ko
Application granted granted Critical
Publication of KR100800665B1 publication Critical patent/KR100800665B1/ko

Links

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
    • 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

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)

Abstract

중앙처리장치(CPU)와 주변장치들로 이루어지는 컴퓨터시스템에서 상기 CPU와 주변장치들을 인터페이스하기 위한 장치가 개시되어 있다. 상기 컴퓨터시스템의 제1 주변장치들은 상기 CPU의 클럭에 따라 동작하는 제1 버스를 통해 상기 CPU에 접속된다. 제2 주변장치들은 상기 CPU의 클럭보다 낮은 저주파수의 대역에서 동작하는 제2 버스를 통해 상기 CPU에 접속된다. 상기 인터페이스 장치는 상기 CPU와 상기 제2 주변장치들간의 데이터 엑세스(라이트/리드) 시간을 장치별로 서로 다르게 조절하기 위한 엑세스 제어신호(PSEL,PENABLE)를 생성하여 상기 제2 주변장치들중의 해당하는 장치로 제공한다.

Description

중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치 {INTERFACE APPARATUS BETWEEN CENTRAL PROCESSING UNIT AND ITS PERIPHERAL DEVICES}
본 발명은 중앙처리장치와 주변장치들로 이루어지는 컴퓨터시스템에 관한 것으로, 특히 상기 중앙처리장치와 주변장치들을 인터페이스하기 위한 장치에 관한 것이다.
중앙처리장치(Central Processing Unit: 이하 "CPU"라 칭함)는 전기 및 전자 기기, 컴퓨터기기, 통신기기, 일반 기계 및 기구, 자동차기기 등과 같은 각종 시스템들의 내부에 실장되어 그 시스템의 주요 동작들을 제어하는 제어부이다. 이러한 CPU는 시스템의 주변장치들(peripheral devices)과 접속되어 데이터의 입력 기능, 데이터의 출력 기능, 논리연산 기능 등을 수행하는 시스템의 필수적인 구성요소이다. 즉 상기 CPU는 현존하는 대부분의 산업 분야에서의 시스템들에 빠지지 않고 사용되고 있는 구성요소이다. 일 예로, 최근 관심이 고조되고 있는 통신시스템인 부호분할다중접속(CDMA: Code Division Multiple Access)방식 이동전화기(mobile phone)의 모뎀 칩(modem chip)에도 CPU 및 주변장치들이 내장되어 있다. 하기에서는 CPU와 그에 접속된 주변장치들을 "컴퓨터시스템"이라 칭하기로 한다.
도 1은 본 발명이 적용되는 컴퓨터시스템의 블록다이아그램, 즉 CDMA 방식 이동전화기의 모뎀 칩에 내장되는 CPU 및 주변장치들의 블록 다이아그램이다. 이 블록 다이아그램은 영국 ARM사에 의해 제조 및 판매되고 있는 CPU인 ARM940T Core 10을 이용하여 설계된 SCom5000의 시스템 블록 다이아그램이다.
상기 도 1을 참조하면, 컴퓨터시스템의 버스구조, 즉 AMBA(Advanced Micro-controller Bus Architecture)는 제1 버스 20과 제2 버스로 구성된다. 상기 제1 버스 20은 고주파수(high frequency)가 요구되는 제1 주변장치들 2가 사용하는 AHB(Advanced High-performance Bus)이다. 상기 제2 버스 30은 상대적으로 저주파수(low frequency)가 요구되는 제2 주변장치들 4가 사용하는 APB(Advanced Peripheral Bus)이다. 상기 제1 주변장치들 2에는 도시된 바와 같이 ARM Core AMBA Wrapper, Retry slave, MuxS2M, DMA, MuxM2S, SMI, TIC, 디코더(Decoder), ResCn시, 중재기(Arbiter), 디폴트 슬레이브(Default slave)가 포함된다. 상기 제2 주변장치들 4에는 MuxP2B, 모뎀(MODEM), 범용비동기송수신기(UART1/2: Universal Asynchronous Receiver and Transmitter), 디지털신호처리기(DSP: Digital Signal Processor), DFM/SBI, 클럭발생기(Clock Generator), 범용직렬버스(USB: Universal Serial Bus), 와치도그 타이머(WDOG(watch-dog) Timer/Timers), 기타 장치들(ETC)이 포함된다. 즉, 상기 컴퓨터시스템은 CPU로서의 ARM940T Core 10과, 상기 CPU 10의 클럭과 같은 고주파수에서 동작하는 제1 버스 20을 통해 상기 CPU 10에 접속된 제1 주변장치들 2와, 상기 CPU 10의 클럭에 대해 상대적으로 저주파수에서 동작하는 제2 버스 30을 통해 상기 CPU 10에 접속된 제2 주변장치들 4를 포함한다. 또한 상기 컴퓨터시스템은 서로 다른 주파수 대역에서 동작하는 상기 제1 버스 20 및 상기 제2 버스 30간의 인터페이스를 위한 브리지 모듈(bridge module)인 APBif(APB interface) 40을 포함한다.
일 예로, 상기 APBif 40은 상기 CPU 10이 상기 주변장치들 4를엑세스(access)할 때 - 상기 CPU 10이 상기 주변장치들 4의 내부 레지스터에 저장된 데이터를 리드(read)하거나 상기 CPU 10이 상기 주변장치들 4에 데이터를 라이트(write)할 때, 서로 다른 주파수 대역간의 동작 타이밍(operation timing)이 맞도록 처리하기 위한 부가적인 로직이다. 상기 CPU 10과 상기 주변장치들 4간의 동작 타이밍을 맞추기 위해서 상기 APBif 40은 도 2 및 도 3에 도시된 바와 같이 PSEL신호 및 PENABLE신호를 생성한다. 여기서 그리고 하기에서, P로 시작하는 신호들은 APB 30과 관련된 신호들을 나타내고, H로 시작하는 신호들은 AHB 20과 관련된 신호들을 나타낸다. 상기 PSEL신호의 타이밍은 "t1+t2(2 cycles)"로 고정되어 있고, 상기 PENABLE신호의 타이밍은 "t2(1 cycle)"로 고정되어 있다는 사실에 유의하여야 한다. 이러한 고정적인 타이밍은 ARM사의 AMBA 규격에 따른 것이다.
전술한 바와 같이, 서로 다른 주파수 대역에서 동작하는 도 1에 도시된 AHB 20과 APB 30간의 인터페이스를 위해 생성되는 PSEL, PENABLE과 같은 인터페이스 신호들의 대기 싸이클(wait cycle)(데이터 이동 시 필요한 시간)은 디폴트 싸이클(default cycle)(PSEL 2 cycle, PENABLE 1 cycle)로 고정되어 있다. 그러므로, 고주파수의 CPU 클럭보다 상대적으로 저주파수 대역에서 동작하는 블록을 인터페이스할 때 상기 고주파수 클럭을 상기 제2 주변장치들 4에 동기시키는 부가적인 로직이 반드시 필요하고, 또한 상기 고주파수 클록을 APB 30에 연결된 모든 서브블록들(제2 주변장치들 4)에 공급해 줄 필요가 있다. 이러한 필요는 동적 전류(dynamic current)의 증가를 야기시켜 결과적으로는 상당한 양의 전력 소모를 초래한다. 이러한 전력 소모의 문제점은 특히 도 1에 도시된 바와 같은 구성을 가지는 컴퓨터시스템이 저전력 설계가 중요시되는 이동 전화기에 적용되는 경우에 더 크게 작용할 것이다.
따라서 본 발명의 목적은 컴퓨터시스템에서 CPU와 상기 CPU의 클럭보다 낮은 저주파수 대역에서 동작하는 주변장치들을 인터페이스할 때 초래되는 상당한 양의 전력 소모를 줄이는 장치를 제공함에 있다.
본 발명의 다른 목적은 CPU와 상기 CPU의 클럭보다 낮은 주파수 대역에서 동작하는 주변장치들을 엑세스할 때의 상기 CPU의 클럭이 상기 주변장치들에 제공됨에 따라 초래되는 전력 소모를 줄이기 위한 장치를 제공함에 있다.
이러한 목적들을 달성하기 위한 본 발명의 제1견지(Aspect)에 따른 컴퓨터시스템은 중앙처리장치(CPU)를 포함한다. 제1 주변장치들은 상기 CPU의 클럭에 따라 동작하는 제1 버스를 통해 상기 CPU에 접속된다. 제2 주변장치들은 상기 CPU의 클럭보다 낮은 저주파수의 대역에서 동작하는 제2 버스를 통해 상기 CPU에 접속된다. 인터페이스 장치는 상기 CPU와 상기 제2 주변장치들간의 데이터 엑세스 시간을 장치별로 서로 다르게 조절하기 위한 엑세스 제어신호를 생성하여 상기 제2 주변장치들중의 해당하는 장치로 제공한다. 상기 컴퓨터시스템은 휴대전화기의 모뎀 칩에 적용될 수 있다. 상기 엑세스 제어신호는 상기 CPU와 상기 제2 주변장치들간의 데이터 라이트/리드 시간을 장치별로 서로 다르게 조절하기 위한 신호이다.
본 발명의 제2견지에 따른 컴퓨터시스템은 중앙처리장치(CPU)와, 상기 CPU의클럭에 따라 동작하는 제1 버스를 통해 상기 CPU에 접속된 제1 주변장치들과, 상기 CPU의 클럭보다 낮은 저주파수 대역에서 동작하는 제2 버스를 통해 상기 CPU에 접속된 제2 주변장치들과, 상기 CPU와 상기 제2 버스간의 인터페이스를 위한 장치를 포함한다.
상기 인터페이스 장치의 제1 저장부는 상기 제2 주변장치들중에서 상기 CPU에 의해 엑세스될 제1 장치를 준비시키기 위하여 제공되는 상기 CPU로부터의 인에이블 설정값을 저장한다. 제2 저장부는 상기 CPU가 상기 제1 장치의 엑세스를 위해 상기 제1 장치를 인에이블시키는 인에이블 듀레이션 시간값을 저장한다. 카운터는 상기 저장부들에 저장된 값들이 로드됨에 응답하여 미리 설정된 카운트 동작을 수행함으로써 상기 인에이블 설정값 및 상기 인에이블 듀레레이션 시간값이 조절된 엑세스 제어신호를 상기 제1 장치로 출력한다.
도 1은 본 발명이 적용되는 컴퓨터시스템의 블록 다이아그램.
도 2는 종래 기술에 따른 중앙처리장치의 라이트 동작 타이밍을 보여주는 도면.
도 3은 종래 기술에 따른 중앙처리장치의 리드 동작 타이밍을 보여주는 도면.
도 4는 본 발명의 실시예에 따른 브리지 모듈의 블록 다이아그램.
도 5는 도 4에 도시된 엑세스 타이밍 조절부의 구체적인 구성을 보여주는 도면.
도 6은 본 발명의 실시예에 따른 브리지 모듈의 스테이트 다이아그램.
도 7은 본 발명의 실시예에 따른 중앙처리장치의 라이트 동작 타이밍을 보여주는 도면.
도 8은 본 발명의 실시예에 따른 중앙처리장치의 리드 동작 타이밍을 보여주는 도면.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 도면들 중 참조번호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 참조번호들 및 부호들로 나타내고 있음에 유의해야 한다. 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
하기에서는 먼저 상술한 본 발명의 목적들을 달성하기 위하여 도 1에 도시된 바와 같이 구성되는 컴퓨터시스템에서의 CPU 10과 상기 CPU 10의 클럭보다 낮은 저주파수 대역에서 동작하는 주변장치들 4간을 인터페이스하기 위한 장치가 도 3을 참조하여 설명될 것이다. 상기 도 3에 도시된 본 발명의 실시예에 따른 인터페이스 장치는 도 5에 도시된 바와 같이 구체적으로 구성된다. 다음에, 본 발명의 실시예에 따른 인터페이스 장치의 스테이트 머신에 의해 변경되는 스테이트들이 도 6을 참조하여 설명될 것이다. 그 다음에 본 발명의 실시예에 따른 인터페이스 장치에 의한 엑세스(라이트/리드) 동작이 도 7 및 도 8을 참조하여 설명될 것이다.
도 4는 본 발명의 실시예에 따른 인터페이스 장치인 브리지 모듈(bridge module)의 블록 다이아그램이다.
상기 도 4를 참조하면, 본 발명의 실시예에 따른 인터페이스 장치는 출력 데이터/어드레스 버스 드라이버들(output data and address bus drivers) 410, AHB 슬레이브 인터페이스(slave interface) 420, AHB 슬레이브 출력 드라이버들(slave output drivers) 430, APB 어드레스 디코더(address decoder) 440, 스테이트 머신(state machine) 450, 엑세스 타이밍 조절부(access timing adjustment unit) 460 및 APB 출력 드라이버들(output drivers) 470을 포함하여 구성된다. 여기서, 스테이트 머신 450의 다음단에 접속되는 엑세스 타이밍 조절부 460을 제외한 나머지의 구성요소들은 본 발명의 출원 시점에서 이미 공지된 AMBA 규격에 따른 동작을 수행하는 것이므로 이들에 대한 구체적인 설명은 생략하기로 한다. 대신에, 하기에서는 본 발명의 실시예에 따른 특징적인 구성요소인 상기 엑세스 타이밍 조절부 460의 동작만을 구체적으로 설명하기로 한다.
상기 엑세스 타이밍 조절부 460은 도 2 및 도 3에 도시된 PSEL신호 및 PENABLE신호와 같은 엑세스 제어신호가 도 7 및 도 8에 도시된 바와 같이 생성되도록 한다. 즉, 상기 엑세스 타이밍 조절부 460은 도 1의 CPU 10과 제2 주변장치들 4간의 데이터 엑세스 시간이 종래 기술과 같이 2싸이클과 1싸이클로 각각 고정되던 것을 엑세스 제어신호를 생성함으로써 조절 가능하게 한다. 예를 들어 5싸이클과 2싸이클이 되도록 조절한다면 라이트, 리드 동작시 변화된 엑세스 시간으로 데이터가 이동한다. 이때 상기 엑세스 타이밍 조절부 460에 의해 생성되는 엑세스 제어신호인 PSEL신호 및 PENABLE신호의 대기 싸이클은 상기 제2 주변장치들 4의 각 장치별로 서로 다르게 설정될 수 있다. 여기서, PSEL신호는 상기 제2 주변장치들 4중에서 상기 CPU 10에 의해 엑세스될 제1 장치를 준비시키기 위한 신호이고, PENABLE신호는 상기 CPU 10에 의해 엑세스될 상기 제1 장치를 인에이블시키기 위한 신호이다. 상기 PENABLE신호는 후술될 도 7 및 도 8에 도시된 바와 같이 인에이블 설정(PENABLE SETUP) 구간(t1)과 인에이블 듀레이션(PENABLE DURATION) 구간(t2)으로 구분되고, 상기 인에이블 설정 구간과 상기 인에이블 듀레이션 구간의 합에 따른 구간이 상기 PSEL 신호의 구간에 해당한다.
도 5는 도 4에 도시된 엑세스 타이밍 조절부 460의 구체적인 구성을 보여주는 도면이다.
상기 도 5를 참조하면, 상기 엑세스 타이밍 조절부 460은 디코더(Decoder) 41과, 논리곱(AND) 게이트들 42,52와, 멀티플렉서(Multiplexer)로 구현될 수 있는 선택기들 43,45,46,49,50과, 반전기(Inverter) 51과, 디플립플롭(D flip flop)으로 구현될 수 있는 저장부들 44,47,48과, 비교기들(Comparators) 53,54와, 카운터(Counter) 54를 포함하여 구성된다.
상기 디코더 41은 어드레스 신호 ADDR[19:16]를 입력하여 디코딩하고 디코딩 결과를 출력한다. 상기 논리곱 게이트 42는 상기 디코더 41의 출력을 제1 입력으로 하고 '1' 신호를 제2 입력으로 하여 논리곱 연산하고 논리곱 연산 결과를 Psel신호로서 출력한다. 상기 멀티플렉서 43은 상기 Psel신호와 상기 디플립플롭 44로부터의 iPsel신호와 '0'신호를 입력하고, 스테이트 머신 450으로부터 제공되는 Psel_mux_en신호에 따라 상기 입력 신호들중의 하나를 선택하여 PselMux신호로서 출력한다. 상기 디플립플롭 44는 상기 PselMux신호를 D단자로 입력하여 저장하고, 반전된 클럭 HCLK에 따라 Q단자로 상기 iPsel신호를 출력한다. 상기 멀티플렉서 45는 "0" 단자로 상기 디플립플롭 47의 출력을 입력하고 "1" 단자로 SENADataOut 신호를 입력하고, 상기 iPsel신호에 따라 상기 입력 신호들중의 하나를 선택하여 출력한다. 상기 멀티플렉서 46은 "0" 단자로 상기 디플립플롭 48의 출력을 입력하고 "1" 단자로 SENADataOut 신호를 입력하고, 상기 iPsel신호에 따라 상기 입력 신호들중의 하나를 선택하여 출력한다. 상기 디플립플롭 47은 상기 멀티플렉서 45의 출력신호를 D단자로 입력하여 NSetup[4:0]으로서 저장하고, 반전된 클럭 HCLK에 따라 상기 저장된 신호를 Q단자로 출력한다. 상기 디플립플롭 48은 상기 멀티플렉서 46의 출력신호를 D단자로 입력하여 NEnable[4:0]으로서 저장하고, 반전된 클럭 HCLK에 따라 상기 저장된 신호를 Q단자로 출력한다. 상기 멀티플렉서 49는 "0" 단자로 상기 디플립플롭 47의 출력을 입력하고 "1" 단자로 상기 디플립플롭 48의 출력을 입력하고, 상기 스테이트 머신 450으로부터 제공되는 Setup_enable_sel신호에 따라 상기 입력 신호들중의 하나를 선택하여 출력한다. 상기 멀티플렉서 50은 상기 멀티플렉서 49로부터의 출력을 입력하고 또한 상기 비교기 53으로부터의 출력을 입력하고, 상기 스테이트 머신 450으로부터 제공되는 LoadCount_n신호에 따라 상기 입력 신호들중의 하나를 선택하여 출력한다. 상기 반전기 51은 상기 LoadCount_n신호를 반전한다. 상기 논리곱 게이트 52는 상기 반전기 51에 의해 반전된 LoadCount_n신호와 상기 DecCount_n신호를 입력하여 논리곱 연산하고 논리곱 연산 결과를 출력한다. 상기 카운터 54는 상기 멀티플렉서 50의 출력이 입력됨에 응답하여 미리 정해진 수(예: 5)만큼의 다운 카운트 동작을 수행한다. 상기 비교기 53은 상기 카운터 54에 의한 카운트 결과값과 '1'을 비교하고 그 비교 결과를 출력한다. 상기 비교기 55는 상기 카운터 54에 의한 카운트 결과값과 '5'b00000'을 비교하고 그 비교 결과를 CountZero신호를 출력한다.
상기 디플립플롭 47로서 구현되는 제1 저장부는 도 1에 도시된 제2 주변장치들 4중에서 상기 CPU 10에 의해 엑세스될 제1 장치를 인에이블시키기 위한 PENABLE신호의 인에이블 설정(PENABLE SETUP) 구간값을 저장한다. 상기 디플립플롭 48로서 구현되는 제2 저장부는 상기 제2 주변장치들 4중에서 상기 CPU 10에 의해 액세스될 제1 장치를 인에이블시키기 위한 PENABLE신호의 인에이블 듀레이션(PENABLEDURATION) 구간값을 저장한다. 상기 PENABLE신호의 인에이블 설정(PENABLE SETUP) 구간값 및 인에이블 듀레이션(PENABLE DURATION) 구간값은 상기 CPU 10으로부터 제공된다. 상기 카운터 54는 5진 카운터로 구현될 수 있으며, 상기 저장부들 47,48중의 어느 한 저장부로부터의 출력값이 로드됨에 따라 하향 카운트(decremental count) 동작을 수행하고 그 수행 결과에 따른 카운트값을 출력한다.
도 6은 본 발명의 실시예에 따른 브리지 모듈의 스테이트(상태) 다이아그램(state diagram)이다.
상기 도 6에서, ST_IDLE 610은 초기 상태를 나타낸다. ST_READ 620은 리드 상태를 나타낸다. ST_RENABLE 630은 리드 인에이블 상태를 나타낸다. ST_WWAIT 640은 준비 상태를 나타낸다. ST_WRITE 650은 기다림이 필요없는 라이트 상태를 나타낸다. ST_WRITEP 660은 기다림이 필요한 라이트 상태를 나타낸다. ST_WENABLE 670은 기다림이 필요없는 라이트 인에이블 상태를 나타낸다. ST_WENABLEP 680은 기다림이 필요한 라이트 인에이블 상태를 나타낸다.
ST_IDLE 상태 610에서 LoadCount_n 값은 1이고, DecCount_n 값은 1이다. 상기 ST_IDLE 상태 610에서 HWRITE=0, Valid=1, LoadCount_n=0인 경우 ST_READ 상태 620으로 천이한다. 상기 ST_IDLE 상태 610에서 Valid=0인 경우에는 상기 ST_IDLE 상태 610을 유지한다. 상기 ST_READ 상태 620에서 DecCount_n 값은 0이다. 상기 ST_READ 상태 620에서 CountZero=1, LoadCount_n=0인 경우 ST_RENABLE 상태 630으로 천이한다. 상기 ST_READ 상태 620에서 CountZero=0인 경우에는 상기 ST_READ 상태 620을 유지한다. 상기 ST_RENABLE 상태 630에서 DecCount_n 값은 0이다. 상기 ST_RENABLE 상태 630에서 CountZero=1, Valid=1, HWRITE=0인 경우 상기 ST_READ 상태 620으로 천이하고, CountZero=1, Valid=0, LoadCount_n=0인 경우 상기 ST_IDLE 상태 610으로 천이하고, CountZero=1, Valid=1, HWRITE=1인 경우 ST_WWAIT 상태 640으로 천이한다. 상기 ST_RENABLE 상태 630에서 CountZero=0인 경우에는 상기 ST_RENABLE 상태 630을 유지한다.
상기 ST_IDLE 상태 610에서 HWRITE=1, Valid=1인 경우 ST_WWAIT 상태 640으로 천이한다. 상기 ST_WWAIT 상태 640에서 LoadCount_n=0이다. 상기 ST_WWAIT 상태 640에서 Valid=0인 경우 ST_WRITE 상태 650으로 천이하고, Valid=1인 경우 ST_WRITEP 상태 660으로 천이한다. 상기 ST_WRITE 상태 650에 DecCount_n 값은 0이고, 상기 ST_WRITEP 상태 660에서 DecCount_n 값은 0이다.
상기 ST_WRITE 상태 650에서 CountZero=0, Valid=1인 경우 상기 ST_WRITEP 상태 660으로 천이하고, CountZero=1, Valid=0, LoadCount_n=0인 경우 ST_WENABLE 상태 670으로 천이하고, CountZero=1, Valid=1, LoadCount_n=0인 경우 ST_WENABLEP 상태 680으로 천이한다. 상기 ST_WRITE 상태 650에서 CountZero=0, Valid=0인 경우에는 상기 ST_WRITE 상태 650을 유지한다. 상기 ST_WRITEP 상태 660에서 CountZero=1, LoadCount_n=0인 경우 ST_WENABLEP 상태 680으로 천이한다. 상기 ST_WRITEP 상태 660에서 CountZero=0인 경우에는 상기 ST_WRITEP 상태 660을 유지한다.
상기 ST_WENABLE 상태 670에서 DecCount_n 값은 0이다. 상기 ST_WENABLE 상태 670에서 CountZero=1, HWRITE=0, Valid=1, LoadCount_n=0인 경우 상기 ST_READ 상태 620으로 천이하고, CountZero=0, Valid=1인 경우 ST_WENABLEP 상태 680으로 천이한다. 상기 ST_WENABLE 상태 670에서 CountZero=0, Valid=0인 경우에는 상기 ST_WENABLE 상태 670을 유지한다. 상기 ST_WENABLEP 상태 680에서 DecCount_n 값은 0이다. 상기 ST_WENABLEP 상태 680에서 CountZero=1, Valid=0, HwriteReg=1인 경우 상기 ST_WRITE 상태 650으로 천이하고, CountZero=1, HwriteReg=1, Valid=1, LoadCount_n=0인 경우 상기 ST_WRITEP 상태 660으로 천이하고, CountZero=1, HwriteReg=1, Valid=0, LoadCount_n=0인 경우 상기 ST_WWAIT 상태 640으로 천이하고, CountZero=1, HwriteReg=0, LoadCount_n=0인 경우 상기 ST_READ 상태 620으로 천이한다. 상기 ST_WENABLEP 상태 680에서 CountZero=0인 경우에는 상기 ST_WENABLEP 상태 680을 유지한다.
전술한 스테이트 다이아그램에 따른 각 상태들에 대해서는 이미 본 발명이 출원되기 이전의 시점에서 공지된 AMBA 규격에 정의되어 있는 상태들이다. 다만, 본 발명의 실시예에서는 이러한 상태들이 도면에 도시된 바와 같이 도 5에 도시된 카운터 54의 카운트 결과값에 따라 제어된다는 특징이 있다. 이러한 특징은 후술되는 설명으로부터 명확해질 것이다.
도 7은 본 발명의 실시예에 따른 CPU 10과 제2 주변장치들 4간의 라이트 동작 타이밍을 보여주는 도면이고, 도 8은 본 발명의 실시예에 따른 CPU 10과 제2 주변장치들 4간의 리드 동작 타이밍을 보여주는 도면이다.
이하 본 발명의 실시예에 따른 인터페이스 장치(브리지 모듈)에 의하여 CPU 10과 제2 주변장치들 4간의 데이터 엑세스 동작이 도 4 내지 도 8을 참조하여 보다 구체적으로 설명될 것이다.
본 발명의 실시예는 종래 기술이 가지는 문제점을 해결하기 위하여 엑세스 제어신호인 CPU 인터페이스 신호(interface signal)들의 길이를 모든 APB 서브블록들(제2 주변장치들 4의 각 장치들)에 다르게 설정할 수 있는 카운터 54를 포함하는 엑세스 타이밍 조절부 460을 포함하는 것을 특징으로 한다. 이러한 엑세스 타이밍 조절부 460에 의해 생성되는 엑세스 제어신호에 의한 데이터 이동은 PENABLE 신호가 기준이 된다. 종래 기술과 같이 PCLK는 더 이상 필요없다.
다시 도 1을 참조하면, CPU 10이 데이터를 APB 서브블록들 4와 주고 받을 때, APBif 40은 설계자가 미리 설정해 놓은 해당 APB 서브블록의 PENABLE 설정값(setup value) - 도 7 및 도 8의 t1의 길이를 결정하는 값을 참조하여 카운터 54에 그 값을 로드하여 하향 카운트 동작이 수행되도록 한다. 상기 카운터 54에 의한 카운트 값을 "0"으로 하여 PENABLE 신호를 "1" 로 만든 후, 상기 카운터 54는 다시 PENABLE 듀레이션값(Duration value) - 도 7 및 도 8의 t2의 길이를 결정하는 값을 로드하여 하향 카운트 동작을 수행한다. 상기 카운터 54에 로드되는 두 값들은 상기 CPU 10에 의해 프로그램가능(programmable)한 값으로, 상기 CPU 10으로부터 제공되어 도 5의 저장부(플립플롭)들 47,48에 할당되는 값이다. 상기 PENABLE 설정값 및 상기 PENABLE 듀레이션값은 CPU 클럭(clock) 주기를 기준으로 최대 0 ~31 싸이클(cycle)까지 조절이 가능하다.
본 발명의 실시예에 의한 데이터 라이트 동작(CPU write operation)의 수행 예를 설명한다.
데이터 라이트 동작시 도 6의 ST_IDLE 상태(초기 상태) 610에서 ST_WWAIT 상태(준비 상태) 640으로 천이(transition)가 일어난다. 상기 ST_WWAIT 상태 640에서는 Valid값에 따라 ST_WRITE 상태(기다림이 필요없는 쓰기 상태) 650 혹은 ST_WRITEP 상태(기다림이 필요한 쓰기 상태) 660으로 천이된다. ST_WRITE 상태 650은 Valid 신호가 "0"일 때 ST_WWAIT 상태 640에서 천이되고, ST_WRITEP 상태 660은 Valid 신호가 "1"일 때 ST_WWAIT 상태 640에서 천이된다. 여기서, Valid 가 "0" 이라는 의미는 현재 수행하고 있는 명령 이후의 다음 명령이 APB 서브블록들과 관련이 없는 CPU 내부의 명령이기 때문에 현재 명령을 바로 수행하여도 된다는 의미이다. 이 경우 AHB와 APB간의 데이터 이동은 한 번 뿐이다. 즉, APB 라이트 동작에 기다리는 시간(pending cycle)이 필요하지 않다는 의미이다. 반면에, valid 가 "1"이라는 의미는 AHB 신호와 APB 신호 사이에 여러 싸이클의 데이터 이동 후 명령을 기다리는 시간(pending cycle)이 요구된다는 의미이다. 이 경우 AHB와 APB간의 데이터 이동이 명령(insrtruction)에 좌우된다. 즉, 현재 명령과 다음 명령이 APB 서브블록을 엑세스하는 명령이므로, APB 입장에서 현재 명령을 수행할 때까지 다음 명령을 기다릴 필요가 있다. 이에 따라 현재의 싸이클에 기다리는 싸이클이 필요하다.
위에서 언급한 "기다리는 시간(pending cycle)"은 AHB와 APB간을 인터페이스할 때 다음 명령을 위하여 위하여 기다림이 필요한지 아닌지를 의미하고, "조절 시간(wait cycle)은 APB를 공유하는 제2 주변장치들 4의 서브블록들에 제공되는 PENABLE신호 및 PSEL신호의 길이를 카운터 54에 의해 조절할 수 있다는 것을 의미한다.
지금, 도 6의 ST_WWAIT 상태 640이 되면 초기값(LoadCount_n)은 "0"으로 된다. 데이터 라이트 동작 수행에 따른 ST_WRITEP 상태 660이 되면 도 5의 저장부 47에 저장되어 있는 PENABLE 설정값이 카운터 54로 로드되고, 이와 동시에 논리곱 게이트 52의 출력값은 "1"이 된다. 상기 논리곱 게이트 52의 출력값은 일종의 시작 버튼과 같다. 상기 논리곱 게이트 52의 출력값이 "1"이 되면 상기 카운터 54에 의한 카운트 출력값이 "0"이 될 때까지 다운 카운트 동작이 수행된다. 이러한 다운 카운트 동작은 PENABLE 설정 시간(도 7의 t1)이 상기 저장부 47에 저장되어 있는 PENABLE 설정값만큼 늘어남을 의미한다. PSEL신호는 상기 ST_WRITEP 상태 660으로 천이되자마자 "하이(high)" 레벨을 유지하고, 상기 카운터 54가 다운 카운트 동작을 수행하여 그 카운트값이 "0" 이 되면 PENABLE 신호가 "하이" 레벨로 바뀌게 된다. 즉, ST_WRITEP 상태 660에서 카운터 54에 의한 카운트값이 "0"이 되면, ST_WENABLEP 상태(여러 번 쓰기 수행 상태) 680으로 천이된다. 이러한 상태에서 PENABLE 듀레이션값(도 7의 t2)을 결정하기 위하여 저장부 48에 저장된 값이 카운터 54로 로드된다. 상기 카운터 54는 상기 PENABLE 듀레에션값이 로드됨에 응답하여 카운트 결과값이 "0"이 될 때까지 다운 카운트 동작을 수행한다. 이러한 다운 카운트 동작은 PENABLE 듀레이션값(도 7의 t2)이 상기 저장부 48에 저장되어 있는 PENABLE 듀레이션값만큼 늘어남을 의미한다. 상기 카운터 54에 의한 카운트 결과값이 "0"이 되면, PSEL신호 및 PENABLE 신호가 동시에 "하이" 레벨에서 "로우(LOW)" 레벨로 천이된다. 상기 PENABLE 설정 길이(도 7의 t1)를 조절할 수 있는 프로그램가능한 데이터는 (LoadCount_n = 0) 이면서 ST_READ 상태, ST_WRITE 상태, ST_WRITEP 상태에서만 상기 카운터 54로 로드되고, 나머지의 상태들에서는 PENABLE 듀레이션 길이(도 7의 t2)를 조절할 수 있는 프로그램가능한 데이터가 상기 카운터 54로 로드된다.
데이터 리드 동작을 수행할 때도 마찬가지로 ST_READ 상태 620에서 상기 저장부 47에 저장되어 있는 PENABLE 설정값(도 8의 t1)이 상기 카운터 54로 로드되도록 하고, ST_RENABLE 상태 630에서는 상기 저장부 48에 저장되어 있는 PENABLE 듀레이션값(도10 의 t2)이 상기 카운터 54로 로드되도록 한다. 상기 카운터 54는 상기 PENABLE 설정값 혹은 PENABLE 듀레이션값이 로드됨에 응답하여 카운트 결과값이 "0"이 될 때까지 다운 카운트 동작을 수행한다. 일 예로, 도 8에 도시된 바와 같이 t1 길이를 3 cycles로 되도록 하기 위하여 도 5의 저장부 47에 "5'h02"를 라이트하고, t2 길이를 2 cycles로 되도록 하기 위하여 저장부 48에 "5'h01"을 라이트할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
상술한 바와 같이 본 발명은 CPU 클럭보다 낮은 저주파수 대역에서 동작하는 주변장치들을 AMBA 버스에 접속할 때 CPU 클럭을 입력받지 않고 라이트/리드와 같은 엑세스 동작의 타이밍을 조절하기 위한 제어(인터페이스)신호들을 입력받아 저주파수의 클럭으로만 동작되도록 한다. 이에 따라 고주파수 대역의 클럭 사용에 의한 동적 전류를 감소시킬 수 있다는 이점이 있다. 즉, CPU와 비동기 클럭(asynchronous clock)을 사용하는 블록들에서 CPU 클럭을 사용하지 않고 블록에서 요구되는 스펙(spec.)에 적절하게 사용될 수 있는 CPU 인터페이스 신호를 생성할 수 있다. 특히, 본 발명을 이동 전화기에 내장되는 모뎀 칩에 적용하는 경우, 서로 다른 주파수 대역에서 동작하는 제1 버스(AHB)와 제2 버스(APB)간의 효율적인 저전력 인터페이스를 구현할 수 있다는 이점이 있다.

Claims (8)

  1. 중앙처리장치(CPU)와,
    상기 CPU의 클럭에 따라 동작하는 제1 버스를 통해 상기 CPU에 접속되는 제1 주변장치들과,
    상기 CPU의 클럭보다 낮은 저주파수의 대역에서 동작하는 제2 버스를 통해 상기 CPU에 접속되는 제2 주변장치들과,
    상기 CPU와 상기 제2 주변장치들간의 데이터 엑세스 시간을 장치별로 서로 다르게 조절하기 위한 엑세스 제어신호를 생성하여 상기 제2 주변장치들중의 해당하는 장치로 제공하는 인터페이스 장치를 포함함을 특징으로 하는 컴퓨터시스템.
  2. 제1항에 있어서, 휴대전화기의 모뎀 칩에 적용됨을 특징으로 하는 상기 컴퓨터시스템.
  3. 제1항에 있어서, 상기 엑세스 제어신호는 상기 CPU와 상기 제2 주변장치들간의 데이터 라이트/리드 시간을 장치별로 서로 다르게 조절하기 위한 신호임을 특징으로 하는 상기 컴퓨터 시스템.
  4. 중앙처리장치(CPU)와, 상기 CPU의 클럭에 따라 동작하는 제1 버스를 통해 상기 CPU에 접속된 제1 주변장치들과, 상기 CPU의 클럭보다 낮은 저주파수 대역에서 동작하는 제2 버스를 통해 상기 CPU에 접속된 제2 주변장치들을 포함하는 컴퓨터시스템에서, 상기 CPU와 상기 제2 버스간의 인터페이스를 위한 장치에 있어서,
    상기 제2 주변장치들중에서 상기 CPU에 의해 엑세스될 제1 장치를 준비시키기 위하여 제공되는 상기 CPU로부터의 인에이블 설정값을 저장하기 위한 제1 저장부와,
    상기 CPU가 상기 제1 장치의 엑세스를 위해 상기 제1 장치를 인에이블시키는 인에이블 듀레이션 시간값을 저장하기 위한 제2 저장부와,
    상기 저장부들에 저장된 값들이 로드됨에 응답하여 미리 설정된 카운트 동작을 수행함으로써 상기 인에이블 설정값 및 상기 인에이블 듀레레이션 시간값이 조절된 엑세스 제어신호를 상기 제1 장치로 출력하는 카운터를 포함함을 특징으로 하는 상기 장치.
  5. 제4항에 있어서, 상기 인에이블 설정값 및 상기 인에이블 듀레이션 시간값은 상기 제2 주변장치들의 각 장치들별로 조절 가능함을 특징으로 하는 상기 장치.
  6. 제5항에 있어서, 라이트 동작시의 상기 인에이블 설정값 및 상기 인에이블 듀레이션 시간값과 리드 동작시의 상기 인에이블 설정값 및 상기 인에이블 듀레이션 시간값은 서로 다르게 정해짐을 특징으로 하는 상기 장치.
  7. 제4항에 있어서, 상기 저장부들과 상기 카운터의 사이에 접속되고, 상기 인에이블 설정값과 상기 인에이블 듀레이션 시간값을 선택적으로 상기 카운터로 로드시키는 선택기를 더 포함함을 특징으로 하는 상기 장치.
  8. 제4항에 있어서, 상기 저장부들은 디플립플롭임을 특징으로 하는 상기 장치.
KR1020010060999A 2001-09-29 2001-09-29 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치 KR100800665B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020010060999A KR100800665B1 (ko) 2001-09-29 2001-09-29 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020010060999A KR100800665B1 (ko) 2001-09-29 2001-09-29 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치

Publications (2)

Publication Number Publication Date
KR20030027630A true KR20030027630A (ko) 2003-04-07
KR100800665B1 KR100800665B1 (ko) 2008-02-01

Family

ID=29563133

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010060999A KR100800665B1 (ko) 2001-09-29 2001-09-29 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치

Country Status (1)

Country Link
KR (1) KR100800665B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334073B2 (en) 2004-06-02 2008-02-19 Samsung Electronics Co., Ltd. Method of and apparatus for interfacing buses operating at different speeds
CN103399839A (zh) * 2012-12-27 2013-11-20 联发科技股份有限公司 媒介外围接口、电子装置及通信方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448715A (en) * 1992-07-29 1995-09-05 Hewlett-Packard Company Dual clock domain interface between CPU and memory bus
US5564027A (en) * 1995-04-20 1996-10-08 International Business Machines Corporation Low latency cadence selectable interface for data transfers between busses of differing frequencies
US5916311A (en) * 1996-03-27 1999-06-29 Matsushita Electric Industrial Co., Ltd. Bus controller and information processing device providing reduced idle cycle time during synchronization
KR19990005361A (ko) * 1997-06-30 1999-01-25 유기범 억세스 타임이 서로 다른 중앙 처리 장치와 주변 입출력 장치와의 정합 장치
JPH11184554A (ja) * 1997-12-24 1999-07-09 Mitsubishi Electric Corp クロック制御タイプ情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7334073B2 (en) 2004-06-02 2008-02-19 Samsung Electronics Co., Ltd. Method of and apparatus for interfacing buses operating at different speeds
CN103399839A (zh) * 2012-12-27 2013-11-20 联发科技股份有限公司 媒介外围接口、电子装置及通信方法

Also Published As

Publication number Publication date
KR100800665B1 (ko) 2008-02-01

Similar Documents

Publication Publication Date Title
EP1286248B1 (en) Semiconductor device with hardware mechanism for proper clock control
CN100456210C (zh) 用于减少空闲模式下的功率消耗的处理器系统和方法
EP1226493B1 (en) Bus architecture and shared bus arbitration method for a communication processor
JP3638271B2 (ja) 情報処理装置
CN114490460A (zh) 一种用于asic的flash控制器及其控制方法
US8593185B2 (en) Clock divider circuit and system LSI having same
JP3510618B2 (ja) バスブリッジ回路及びそのアクセス制御方法
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
KR100963706B1 (ko) 데이터 전송 방법, 데이터 전송 브리지 및 고속 데이터전송 장치
KR100800665B1 (ko) 중앙처리장치와 주변 장치들간의 인터페이스를 위한 장치
US6639436B2 (en) Semiconductor integrated circuit with function to start and stop supply of clock signal
WO2011107828A1 (en) Integrated circuit device comprising clock gating circuitry, electronic device and method for dynamically configuring clock gating
US6571106B1 (en) Method and apparatus for glitchless signal generation
CN114371876A (zh) 一种寄存器的配置电路以及一种集成电路芯片
CN109684245B (zh) 一种apb总线访问spi flash的方法及装置
CN114721464A (zh) 片上系统和计算装置
JP2004094945A (ja) ホストと、ホストよりも大きなレイテンシを有するスレーブデバイス間のインタフェース
JP2507955B2 (ja) 同期式バスインタフェ―ス装置
WO2024017337A1 (zh) 一种fifo存储控制电路、方法、芯片及电子设备
US7065669B2 (en) System and method for providing a write strobe signal to a receiving element before both an address and data signal
JPH10133766A (ja) 適応型パワーダウン・クロック制御
US20140281759A1 (en) Bus protocol checker, system on chip including the same, bus protocol checking method
JP2008287557A (ja) バスシステム及びマイクロコンピュータ
JP2004013289A (ja) マイクロコントローラのオンチップデバッグ方法
JPH04373002A (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: 20101230

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee