KR19990006743A - 데이타처리장치 및 이동체통신단말장치 - Google Patents
데이타처리장치 및 이동체통신단말장치 Download PDFInfo
- Publication number
- KR19990006743A KR19990006743A KR1019980021033A KR19980021033A KR19990006743A KR 19990006743 A KR19990006743 A KR 19990006743A KR 1019980021033 A KR1019980021033 A KR 1019980021033A KR 19980021033 A KR19980021033 A KR 19980021033A KR 19990006743 A KR19990006743 A KR 19990006743A
- Authority
- KR
- South Korea
- Prior art keywords
- clock signal
- arithmetic processing
- circuit
- processing
- data
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Telephone Function (AREA)
Abstract
본 발명은 중앙처리장치 등의 연산처리수단과 그 동작프로그램을 사용한 소프트웨어처리의 일부를 하드웨어로 치환해서 그 처리를 고속화하기 위한 전용하드웨어를 사용한 데이타처리장치로서, 소프트웨어에 의존한 처리내용은 그 동작프로그램의 내용에 따라서 가변이지만, 연산량의 증대에 대해서는 충분히 고속으로 대처할 수 없다는 문제점을 해결하기 위해서, 클럭신호와 동기해서 명령을 실행하는 연산처리수단 및 연산처리수단 과 연휴해서 특정의 연산처리를 클럭신호와 동기해서 실행하는 전용하드웨어수단을 포함하고, 전용하드웨어수단은 연산처리수단에 의한 처리가 중단될 때 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시키는 클럭제어회로를 갖는 데이타처리장치를 마련하였다.
이렇게 하는 것에 의해서, 전용하드웨어수단에 의한 연산결과의 페치실패의 사태를 방지할 수 있고, 연산량의 증대에 대한 고속처리를 액셀러레이터수단을 사용해서 촉진할 수 있다는 효과가 얻어진다.
Description
본 발명은 중앙처리장치 등의 연산처리수단과 그 동작프로그램을 사용한 소프트웨어처리의 일부를 하드웨어로 치환해서 그 처리를 고속화하기 위한 전용하드웨어(이하, 액셀러레이터라고도 한다)를 사용한 데이타처리장치, 더 나아가서는 디지탈셀룰러휴대전화를 비롯하는 이동체통신단말장치 등에 관한 것으로서, 예를 들면 이동체통신단말장치를 구성하는 디지탈신호프로세서(이하, DSP라고도 한다)와 파형등화 등의 특정 신호처리를 고속화하는 액셀러레이터의 처리를 연휴(聯携)시키는 제어기술에 적용해서 유효한 기술에 관한 것이다.
범용마이크로프로세서, 마이크로컴퓨터, DSP 등으로 대표되는 프로세서는 그 동작프로그램에 따라서 프로그램가능하게 데이타처리를 실행할 수 있다. DSP는 디지탈신호처리에 특화한 프로세서이다. 예를 들면, 이동체통신단말장치의 처리는 음성부호화 복호화처리 및 변복조처리 등의 디지탈신호처리와 통신프로토콜처리로 크게 나뉘어 진다. 전자는 디지탈신호처리라는 성질상 전용의 하드웨어나 프로그램가능한 DSP에 의해 실현하는 데에 적합하다. 한편, 후자의 통신프로토콜처리는 매우 복잡하고, C언어 등의 고급언어를 사용한 소프트웨어에 의해 실현하는 데에 적합하다. 이와 같은 사실을 근거로 해서 이동체통신단말장치의 베이스밴드처리중 음성부호화 복호화처리, 통신로부호화 복호화처리 및 변복조처리 등을 DSP에 의해 실행하고, 통신프로토콜처리를 범용마이크로프로세서에 의해 실현하는 방법이 제안되고 있다.
현재, 대부분의 이동체통신단말장치는 상술한 바와 같이 DSP와 범용마이크로프로세서라는 2개의 프로세서를 사용해서 구성되어 있다. 또, 한편으로 최근에는 DSP와 범용마이크로프로세서를 총합한 프로세서(이하, 총합프로세서라고도 한다)도 제품화되어 있고, 이것을 사용해도 마찬가지로 이동체통신단말장치를 실현할 수 있다. 그과 같은 총합프로세서로서는 예를 들면 히다치세사쿠쇼(주)제의 SH-DSP(SH7410)가 있다. 이 총합프로세서는 프로그램의 리드와 2개의 데이타전송을 동시에 실행하면서 연산을 실행할 수 있으므로, 음성부호화 복호화처리, 통신로부호화 복호화처리 및 파형등화처리라는 디지탈신호처리에 적합하다.
그러나, 상기 DSP와 범용마이크로프로세서를 사용해도 또 상기 총합프로세서를 사용해도 음성부호화 복호화처리, 통신로부호화 복호화처리 및 파형등화처리라는 디지탈신호처리는 DSP나 총합프로세서상에서 오직 소프트웨어에 의존한 처리로서 실현되고 있다. 상기 오직 소프트웨어에 의존한 처리내용은 그 동작프로그램의 내용에 따라서 가변이지만, 연산량의 증대에 대해서는 충분히 고속으로 대처할 수 없는 것이 예상된다.
예를 들면, 상기 이동체통신단말장치의 구성은 현행의 음성통신서비스만을 주로 실현하기 위한 것이다. 차세대의 이동통신시스템에 있어서는 고속데이타서비스가 주류로 된다고 예상되고 있다. 고속데이타서비스에 있어서는 현행의 음성전송만의 경우보다 대량의 데이타를 전송할 필요가 있다. 따라서, 전송량에 비례해서 연산량이 증대하는 신호처리가 이동체통신단말장치에 있어 큰 부담으로 되고 있다. 이러한 신호처리에는 파형등화나 통신로복호화 등이 있다. 현행의 음성전송서비스에서는 이들 처리는 단말장치에 탑재된 DSP 등의 프로그램가능한 프로세서가 소프트웨어처리로서 실행하고 있다. 그러나, 차세대의 고속데이타서비스에 대응하기 위해서는 프로세서의 처리능력만으로는 충분하지 않다.
여기서, 현재프로세서의 소프트웨어로서 실현되고 있는 파형등화나 통신로복호화의 처리의 내용은 성격이 다른 2종류의 것으로 구성되어 있다. 즉, 단순한 반복이지만 연산량이 많은 처리와 복잡하기는 하지만 연산량은 그다지 많지 않은 처리의 2종류이다. 전자는 하드웨어로서 후자는 소프트웨어로서 실현하는 데에 적합하다. 그래서, 전자의 처리를 프로세서와 동일 칩상에 마련한 하드웨어의 액셀러레이터에 의해 실현하고, 그 액셀러레이터에 의한 처리를 프로세서에 의한 소프트웨어처리와 연휴시켜서 전체를 실현하는 것을 고려할 수 있다.
상기 액셀러레이터는 상기 프로세서의 프로세서코어(범용마이크로프로세서에 있어서의 CPU부, DSP에 있어서의 DSP엔진 또는 총합프로세서에 있어서의 CPU부와 DSP엔진)에 있어서 주변회로로서 위치지어 진다. 프로세서코어가 입력레지스터에 1개의 데이타를 라이트하면, 액셀러레이터는 파형등화 등의 특정 디지탈신호처리에 특화한 연산회로를 사용해서 데이타처리를 실행하고 입력레지스터로의 데이타라이트에서 소정 사이클마다 액셀러레이터의 출력레지스터에 연산결과가 나타난다. 프로세서의 프로세서코어는 소정 사이클마다 출력레지스터에 나타나는 연산결과데이타를 순차 출력레지스터에서 리드해서 온칩메모리 등으로 전송한다. 프로세서의 프로세서코어가 온칩의 레지스터나 온칩의 메모리를 리드 라이트하는 데에는 보통 1사이클이 필요하다. 즉, 프로세서가 출력레지스터를 리드해서 예를 들면 온칩메모리에 라이트하는 데에는 2사이클이 필요하다. 이 경우, 액셀러레이터의 처리량이 2사이클 이상이면 프로세서코어는 연산결과를 페치실패(fetch fail)없이 온칩메모리로 전송할 수 있다. 따라서, 액셀러레이터의 처리와 프로세서코어의 처리를 병렬화할 수 있으므로, 프로세서에 의한 파형등화 등의 데이타처리의 전체적인 성능을 향상시킬 수 있다.
그러나, 프로세서코어가 액셀러레이터에 데이타를 라이트해서 그 일련의 연산결과를 취득하고 있는 도중에 프로세서에 우선도가 높은 인터럽트요구가 발생하면 이하의 문제가 발생하는 것이 명확하게 되었다. 즉, 프로세서가 우선도가 높은 인터럽트요구를 위한 처리를 실행하고 있는 동안, 액셀러레이터의 출력레지스터가 다음의 연산결과에 의해 오버라이트되어 버린다. 이 때문에 액셀러레이터의 연산결과에 페치실패가 발생해 버린다. 디지탈셀룰러휴대전화와 같은 이동체통신단말장치에 있어서 이 우선도가 높은 인터럽트는 예를 들면 고주파회로를 거친 송수신데이타나 음성데이타의 전송에 따른 인터럽트이다. 이들 데이타는 최우선으로 프로세서내부로 전송할 필요가 있다.
그래서, 우선도가 높은 인터럽트요구가 발생해서 프로세서가 액셀러레이터의 출력레지스터를 리드할 수 없게 된 경우, 액셀러레이터의 동작을 일시정지시켜서 연산결과의 페치실패를 방지할 필요가 있다. 즉, 프로세서가 우선도가 높은 처리를 실행하고 있는 동안 액셀러레이터의 동작이 일시적으로 정지된다. 우선도가 높은 처리의 종료후 액셀러레이터의 동작이 재개된다. 액셀러레이터의 동작이 프로세서의 동작클럭신호와 동기되고 있는 경우, 액셀러레이터의 동작을 정지시키기 위해서는 액셀러레이터로의 클럭신호의 공급을 일시 정지시키면 좋다.
총합프로세서나 DSP 등의 프로세서는 액셀러레이터를 비롯한 온칩의 주변모듈로의 클럭신호의 공급을 제어하는 구성을 갖는 것이 있다. 이와 같은 클럭제어는 온칩모듈로의 클럭신호의 공급을 선택적으로 정지시키는 것에 의해 주변모듈이 동작하고 있지 않을 때 칩의 전체적인 소비전력을 억제하도록 하는 것이다. 이 클럭제어에서는 프로세서내에 1개의 총합클럭제어 레지스터가 마련된다. 이 레지스터내의 각 비트는 온칩의 각 주변모듈에 대응하고 있다. 프로세서코어가 이 레지스터의 임의의 비트에 “1”을 라이트하면, 대응하는 주면모듈에 클럭신호가 공급되고, “0”을 라이트하면 클럭신호의 공급이 정지된다.
그러나, 그와 같은 클럭제어에서는 인터럽트발생시에 프로세서코어가 상기 액셀러레이터의 연산결과의 페치실패의 사태를 저지할 수는 없다. 왜냐하면, 프로세서가 인터럽트를 접수하면 프로세서코어의 처리는 인터럽트처리로 분기되고, 이미 상기 클럭공급레지스터에 액세스할 수 없게 되어 클럭신호의 공급을 정지시키는 것이 불가능하게 되기 때문이다. 인터럽트는 프로세서의 동작과는 비동기로 발생하기 때문에 인터럽트의 발생을 예측해서 클럭신호의 공급을 미리 정지킬 수도 없다. 인터럽트에 관한 상기 문제점은 다른 버스마스터모듈에 의한 버스권요구에 따라서 프로세서코어가 버스권을 포기할 때에도 발생한다.
본 발명의 목적은 연산처리수단이 액셀러레이터수단으로서의 처리회로 또는 하드웨어회로와 연휴해서 처리를 실행하고 있을 때, 연산처리수단이 인터럽트되거나 버스권을 상실해서 그 처리가 중단되는 경우에도 액셀러레이터수단에 의한 연산결과의 페치실패의 사태를 방지할 수 있는 데이타처리장치를 제공하는 것이다.
본 발명의 다른 목적은 연산량의 증대에 대한 고속처리를 액셀러레이터수단으로서의 처리회로 또는 하드웨어회로를 사용해서 실현할 수 있는 이동체통신단말장치를 제공하는 것이다.
도 1은 액셀러레이터로의 클럭공급을 인터럽트신호에 의해서 정지가능하게 한 프로세서의 1예를 프로세서코어가 액셀러레이터와 연휴해서 동작하는 상태에 주목해서 도시한 프로세서의 블럭도,
도 2는 액셀러레이터로의 클럭공급을 인터럽트신호에 의해서 정지가능하게 한 프로세서의 1예를 프로세서코어가 고속입출력 인터페이스로부터의 인터럽트요구에 응답해서 동작하는 상태에 주목해서 도시한 프로세서의 블럭도,
도 3은 인터럽트신호의 활성화와 동기해서 액셀러레이터로의 클럭신호의 공급을 정지시키기 위한 프로세서의 1예를 도시한 블럭도,
도 4는 모듈공급레지스터에 대한 리세트를 프로세서코어로의 인터럽트신호를 사용해서 실행하도록 한 프로세서의 더욱 구체적인 1예를 도시한 블럭도,
도 5는 액셀러레이터의 입력레지스터에 대한 라이트동작과 연동해서 액셀러레이터에 동작클럭을 공급하도록 한 구성에 주목한 액셀러레이터의 블럭도,
도 6은 도 5의 동작타이밍의 1예를 도시한 타이밍도,
도 7은 액셀러레이터의 출력레지스터에 대한 리드동작과 연동해서 액셀러레이터에 동작클럭을 공급하도록 한 구성에 주목한 액셀러레이터의 블럭도,
도 8은 도 7의 동작타이밍의 1예를 도시한 타이밍도,
도 9는 프로세서코어 이외에 우선도가 높은 데이타전송인터럽트를 처리할 수 있는 DMAC 등 다른 버스마스터를 내장하는 경우에 액셀러레이터로의 클럭공급제어를 가능하게 하는 프로세서의 블럭도,
도 10은 프로세서코어로의 버스레디신호를 사용해서 액셀러레이터로의 클럭공급정지를 실행하도록 구성된 액셀러레이터의 1예를 도시한 블럭도,
도 11은 도 3의 구성에 대해서 자율적 클럭정지회로를 추가한 액셀러레이터의 1예를 도시한 블럭도,
도 12는 자율적 클럭정지회로의 구체적인 1예를 도시한 블럭도,
도 13은 자율적 클럭정지회로의 동작타이밍을 도시한 타이밍도,
도 14는 도 11과 도 7의 구성을 아울러 갖는 액셀러레이터를 도시한 블럭도,
도 15는 이동체통신시스템의 개요를 도시한 블럭도,
도 16은 DSP와 범용마이크로프로세서를 사용해서 구성한 GSM이동체 통신단말장치의 1예를 도시한 블럭도,
도 17은 DSP 또는 총합프로세서 등의 프로세서의 1예를 도시한 블럭도,
도 18은 도 17의 프로세서에 포함되는 액셀러레이터의 전체적인 구성의 1예를 도시한 블럭도,
도 19는 도 17의 프로세서의 메모리공간의 1예를 도시한 어드레스맵을 도시한 도면,
도 20은 도 17의 액셀러레이터의 데이타입출력의 전체적인 타이밍을 도시한 타이밍도,
도 21은 2상클럭생성회로와 그 동작타이밍을 도시한 설명도,
도 22는 논오버랩 2상클럭신호에 의해서 동작되는 마스터슬레이브형식을 갖는 레지스터의 1비트의 구성을 도시한 논리회로도,
도 23은 도 17의 프로세서에 있어서의 액셀러레이터 이외의 주변회로에 대한 클럭공급제어를 위한 구성을 도시한 블럭도,
도 24는 ASIC전개를 고려해서 도 17의 프로세서코어와 용도별 액셀러레이터를 동일 칩상에 탑재한 프로세서의 전체적인 블럭도.
본원에 있어서 개시되는 발명중 대표적인 것의 개요를 간단히 설명하면 다음과 같다.
즉, 데이타처리장치는 클럭신호와 동기해서 명령을 실행하는 연산처리수단(120)과 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 처리회로로서의 전용하드웨어수단(200)을 포함하고, 상기 전용하드웨어수단은 상기 연산처리수단에 의한 처리가 중단될 때, 상기 특정의 연산처리를 동기시키는 내부클럭신호(CLK1, CLK2)의 변화를 정지시키는 클럭제어회로(206)을 갖는다.
전용하드웨어수단의 내부클럭신호의 변화를 정지시키는 제어상태는 예를 들면 이하의 3가지 상태로 분류할 수 있다. 제1 상태는 연산제어수단으로의 인터럽트신호(INT)에 의한 인터럽트와 동기해서 상기 내부클럭신호를 정지시킨다. 제2 상태는 연산제어수단에 버스조정신호(BRDY1)에 의한 버스권포기가 지시되었을 때 상기 내부클럭신호를 정지시킨다. 제3 상태는 연산제어수단이 전용하드웨어수단에서 연산결과를 리드할 간격마다 자동적으로 내부클럭신호를 정지시킨다. 이하, 각각의 상태에 대해서 수단을 더욱 상세하게 기술한다.
제1 상태에 관한 데이타처리장치는 상기 연산처리수단에 인터럽트신호(INT)에 의해서 인터럽트가 지시되었을 때, 상기 특정의 연산처리를 동기시키는 내부클럭신호(CLK1, CLK2)의 변화를 정지시키는 클럭제어회로(206)을 갖는다. 예를 들면 상기 클럭제어회로는 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로(255) 등의 기억회로를 갖고, 상기 플립플롭회로는 상기 인터럽트신호에 의한 인터럽트지시에 따라서 제2 상태로 된다.
상기 전용하드웨어수단(200)은 예를 들면 상기 연산처리수단(120)에 의해서 액세스되는 입력레지스터(222), 상기 입력레지스터에 라이트된 데이타를 상기 내부클럭신호와 동기해서 연산하는 연산회로(223, 224, 225, 231) 및 연산회로에 의해 연산된 연산결과가 저장(로드)되는 출력레지스터(226)에 의해서 구성할 수 있다.
이 때, 상기 연산처리수단에 의한 상기 입력레지스터로의 데이타라이트와 동기해서 상기 플립플롭회로를 상기 제1 상태로 할 수 있다. 이것에 의해서, 전용하드웨어수단은 내부클럭신호의 변화가 정지되어 있어도 연산대상데이타의 라이트와 연동해서 또는 응답해서 내부클럭신호의 변화가 재개되고 연산가능한 상태로 된다.
또, 상기 연산처리수단에 의한 상기 출력레지스터의 데이타리드와 동기해서 상기 플립플롭회로를 상기 제1 상태로 할 수 있다. 이것에 의해서 전용하드웨어수단은 내부클럭신호의 변화가 정지되어 있어도 연산결과데이타의 리드와 연동해서 또는 응답해서 내부클럭신호의 변화가 재개되고 연산가능한 상태로 된다.
상기 연산처리수단과 상기 전용하드웨어수단은 단일의 반도체기판에 프로세서로서 형성할 수 있다.
제2 상태에 관한 데이타처리장치는 상기 연산처리수단 이외의 버스마스터수단(131) 및 상기 연산처리수단과 상기 버스마스터수단 사이의 버스권을 조정하는 버스조정수단(130)을 더 포함한다. 이 때, 클럭제어회로(206)은 버스조정신호(BRDY1)에 의해서 상기 연산처리수단에 버스권포기가 지시되었을 때, 상기 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시킨다. 클럭제어회로는 예를 들면 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로를 갖고, 상기 플립플롭회로는 연산처리수단으로의 상기 버스조정신호에 의한 버스권포기의 지시에 따라서 제2 상태로 되고, 연산처리수단으로의 상기 버스조정신호에 의한 버스권승인의 지시에 따라서 제1 상태로 된다.
제3 상태에 관한 데이타처리장치는 클럭신호와 동기해서 명령을 실행하는 연산처리수단(120) 및 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단(200)을 포함한다. 상기 전용하드웨어수단은 상기 특정의 연산처리를 동기시키는 내부클럭신호(CLK1, CLK2)의 변화를 정지시키는 클럭제어회로(206), 상기 연산처리수단에 의해서 액세스되는 입력레지스터(222), 상기 입력레지스터에 라이트된 데이타를 상기 내부클럭신호와 동기해서 연산하는 연산회로(223, 224, 225, 231) 및 연산회로에 의해 연산된 연산결과가 로드되는 출력레지스터(226)을 갖는다. 상기 클럭제어회로는 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로(255) 및 상기 연산회로의 연산결과에 의한 상기 출력레지스터의 리라이트간격을 계수하는 카운터수단(292, 293, 296, 298)을 갖고, 상기 플립플롭회로는 상기 카운터수단에 의한 상기 리라이트간격의 카운트업과 동기해서 상기 제2 상태로 된다. 상기 플립플롭회로는 상기 연산처리수단에 의한 상기 출력레지스터의 데이타리드와 동기해서 상기 제1 상태로 할 수 있다.
이동통신단말장치는 통신프로토콜처리, 통신로부호복호화처리 및 변복조처리에 사용하는 상기 데이타처리장치(1723, 1727), 고주파변복조수단(1710) 및 상기 데이타처리장치와 상기 고주파변복조수단 사이에 배치된 아날로그전단부(front end unit)(1702)를 포함하여 구성할 수 있다.
본 발명의 상기 및 그 밖의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면에서 명확하게 될 것이다.
실시예
도 15에는 이동체통신시스템의 개요가 도시되어 있다. 도 15에는 사용자(1602), 이동체통신단말장치(단지, 통신단말이라고도 한다)(1601) 및 기지국(1600)이 도시되어 있다. 사용자(1602)는 통신단말(1601)을 사용해서 기지국(1600)으로 액세스해서 각종 서비스를 받게 된다. 다른 통신단말과 통신하는 경우에도 기지국(1600)을 거쳐서 실행하므로 통신단말과 기지국 사이의 통신처리는 마찬가지이다.
통신단말(1601)은 사용자인터페이스 시스템제어부(1609), 통신프로토콜처리부(1610), 음성부호화 복호화처리, 통신로부호화 복호화처리와 변복조처리부(1611) 및 아날로그전단부(AFE) RF회로(1605)로 구성된다. 기지국(1600)은 시스템제어부(1612), 통신프로토콜처리부(1613), 통신로부호화 복호화처리 복조부(1614) 및 아날로그전단부(AFE) RF회로(1606)으로 구성된다.
통신단말(1601)이 기지국(1600)과 수수하는 방법에는 크게 나누어 2가지가 있다. 하나는 음성 등 사용자의 데이타를 수수하는 경우이고, 다른 하나는 시스템운용상의 제어데이타를 수수하는 경우이다. (1604)는 스피커이다.
음성데이타를 수수하는 경우에는 다음과 같이 된다. 마이크로폰(1603)에서 입력된 음성데이타는 디지탈데이타로 변환된 후 처리부(1611)에 의한 음성부호화처리에 의해 압축된다. 압축된 음성데이타는 처리부(1611)에 의한 통신로부호화처리에 의해서 에러정정용 정보가 부가되고 난 후 처리부(1611)에서 변조처리된다. 이상의 처리는 디지탈영역에서 실행된다. 변조된 디지탈음성은 처리부(1605)의 아날로그전단부(AFE)에서 아날로그데이타로 변환되고, RF회로에 의해 고주파의 전파에 실려 안테나(1607)에서 발신된다. 이 전파는 기지국(1600)의 안테나(1608)에서 수신된 후 일단 복조된다. 그리고, 통신상대에 할당되어 있는 주파수(주파수분할다중인 경우)에 의해 재차 변조되고, 통신상대에 할당되어 있는 타임슬롯(시분할다중인 경우)의 타이밍에서 통신상대에게 기지국에서 재송신된다.
다음에, 시스템운용상의 제어데이타를 수수하는 경우를 설명한다. 이 경우, 통신단말(1601)내의 통신프로토콜처리부(1610)과 기지국(1600)내의 통신프로토콜처리부(1613)이 정보의 수수를 실행한다. 양자 사이에는 가상적인 논리접속이 형성된다. 이 가상적인 논리접속은 이하와 같은 물리접속에 의해 실현되고 있다. 예를 들면, 기지국(1600)이 통신단말에 무언가 지시를 보내는 경우 다음과 같이 된다. 미리 결정된 프로토콜에 따른 지시데이타는 처리부(1614)에 의해 통신로부호화처리와 변조처리가 실시된다. 그리고, 처리부(1606)의 아날로그전단부(AFE)에서 아날로그데이타로 변환되고, RF회로에 의해 전파에 실려 안테나(1608)에서 발신된다. 이 전파는 통신단말(1601)의 안테나(1607)에서 수신되고 난 후 처리부(1605)의 RF회로와 아날로그전단부(AFE)를 거쳐서 베이스밴드의 디지탈데이타로 변환된다. 계속해서 처리부(1611)에 의한 복조처리, 통신로복호화처리가 실시되고, 통신프로토콜처리부(1610)으로 보내진다.
이상, 통신단말(1601)이 기지국(1600)과 신호를 수수지하는 2가지의 방법 및 관련된 처리의 개요를 설명하였다. 이들 관련된 처리는 2종류로 크게 나눌 수 있다. 음성부호화 복호화처리, 통신로부호화 복호화처리 및 변복조처리는 디지탈신호처리로 분류되어 전용의 하드웨어나 프로그램가능한 디지탈신호프로세서(DSP)에 의해 실현하는 데에 적합하다. 한편, 통신프로토콜처리는 매우 복잡하고 C언어 등의 고급언어를 사용한 소프트웨어에 의해 실현하는 데에 적합하다.
이동체통신단잘장치의 베이스밴드처리중 음성부호화 복호화처리, 통신로부호화 복호화처리 및 변복조처리를 DSP에 의해 실행하고, 통신프로토콜처리를 범용마이크로프로세서에 의해 실현할 수 있다.
도 16에는 DSP와 범용마이크로프로세서를 사용해서 구성한 이동체통신단말장치의 1예가 도시되어 있다.
이 이동체통신단말장치는 유럽의 디지탈셀룰러전화의 사용인 GSM(Global System for Mobile Communications)용의 것이다. 도 16의 이동체통신단말장치는 DSP(1723), DSP용 RAM(Random access Memory)(1700), DSP용 ROM(Read Only Memory)(1701), 범용마이크로프로세서(1727), 베이스밴드용 아날로그전단부AFE(1702), 고주파변복조기(1710), 파워앰프(PA)(1712), 안테나(1713), 듀플렉서(1714), 로우노이즈앰프(LNA)(1715), 마이크로폰(1708), 스피커(1709), 주파수신서사이저(1716), 시스템타이밍회로(1719), 전압제어시스템클럭(1721), 1/4분주회로(1722), 사운더용 DA변환기(1731), 사운더(1730), 전지감시용 AD변환기(1732), 전지감시회로(1733), 전지(1734), 범용마이크로프로세서용 RAM(1739), 범용마이크로프로세서용 ROM(1738), 액정디스플레이(LCD)(1737), SIM(Subscriber Identity Module)(1736) 및 키보드(1735)로 구성되어 있다.
음성송신시, 마이크로폰(208)에서 입력된 음성은 증폭된 후 음성용 AD변환기(1706)에 의해 샘플링되어 디지탈데이타로 변환된다. 샘플링레이트는 8kHz, 비트정밀도는 13비트(bit)이다. 디지탈화된 데이타는 DSP(1723)으로 보내지고, 압축부호화, 통신로부호화된 후 재차 아날로그전단부AFE(1702)의 I/Q용 DA변환기(1704)로 보내진다. 여기서, 아날로그데이타로 변조, 변환되어 고주파변복조기(1710)에 입력된다. 그리고 RF주파수(∼800MHz)에 실려 안테나(1713)에서 발신된다. 듀플렉서(1714)는 입력전파와 출력전파를 분리하는 데에 사용된다. 고주파변복조에서 사용되는 고주파사인(정현)파(1717)은 주파수신서사이저(1716)에 의해 합성된다. ROM(1701)에는 DSP(1723)에 의해 실행되는 프로그램이 내장되어 있고, RAM(1700)은 DSP(1723)의 워크용이다.
음성수신시, 안테나(1713)에서 수신된 데이타는 로우노이즈앰프(LNA)(1715)를 거쳐서 고주파변복조기(1710)에 입력된다. 여기서, 저주파의 베이스밴드 아날로그신호로 변환되고, 아날로그전단부(AFE)(1702)의 I/Q용 AD변환기(1704)로 보내진다. 샘플링되어 디지탈데이타로 변환된 데이타는 DSP(1723)으로 보내져서 통신로복호화, 압축복호화된다. 그 후, 음성용 DA변환기(1706)에 의해 아날로그데이타로 변환되어 스피커(1709)에서 출력된다.
사용자가 전화를 걸 때, 키보드(1735)와 LCD(1737)을 사용한다. SIM(1736)은 착탈가능한 사용자ID모듈로서, 이것을 통신단말에 장착하는 것에 의해서 단말을 그 사용자전용의 것으로 할 수 있다. ROM(1738)에는 범용마이크로프로세서(1727)에 의해 실행되는 프로그램이 내장되어 있고, RAM(1739)는 범용마이크로프로세서(1727)의 워크용이다. 전지(1734)는 본 단말전체의 주배터리로서, 전지감시회로(1733), 전지감시용 AD변환기(1732)를 통해서 범용마이크로프로세서(1727)이 그 잔량을 모니터한다. 전화가 걸려 왔을 때 범용마이크로프로세서(1727)은 사운더용 DA변환기(1731)을 거쳐서 사운더(1730)을 울린다.
이동체통신단말장치의 기본클럭ø(13MHz)는 전압제어시스템 클럭발생기(1721)에서 공급된다. 이 기본클럭ø가 입력되는 시스템타이밍회로(1719)는 필요한 시스템타이밍신호(1740), (1720)을 생성해서 단말내로 분배한다. 기본클럭ø는 또 DSP(1723)과 범용마이크로프로세서(1727)에도 공급된다. GSM에 있어서의 DSP의 처리에서는 20∼50MIPS(Mega Instruction Per Second)의 연산속도가 필요하다고 한다. 도 16에서는 DSP(1723)에 탑재된 PLL(Phase Looked Loop)회로(1725)를 사용해서 DSP가 기본클럭13MHz의 4배인 52MHz에서 동작하고 있다. 한편, GSM에 있어서의 범용마이크로프로세서의 CPU처리는 1∼2MIPS의 연산속도가 필요하다고 한다. 그래서, 도 16에서는 1/4분주회로(1722)에서 기본클럭ø(13MHz)의 1/4인 3.25MHz를 생성하고, 이 레이트로 범용마이크로프로세서를 작동시키고 있다.
이동체통신단말장치의 기본클럭ø(13MHz)는 기지국의 마스터클럭(13MHz)와 엄밀하게 주파수를 맞출 필요가 있다. 이것은 다음과 같이 해서 달성된다. 우선, 기지국에서 엄밀한 주파수정보를 수취한다. 그리고 DSP(1723)은 이 정보에 따라 AFC(Auto Frequency Control)용 DA변환기(1707)을 거쳐서 전압제어시스템 클럭발생기(1721)을 제어해서 주파수를 조정한다. 또, 기지국에서 단말의 전파출력의 지시가 올 경우도 있다. 이 때에는 DSP(1723)이 PA(파워앰프)용 DA변환기(1703)을 구동해서 파워앰프제어신호(1711)에 의해 파워앰프(1712)의 출력을 조정한다. 또, DSP(1723)은 수신신호의 진폭정보에 따라서 AGC(Auto Gain Control)용 DA변환기(1705)를 거쳐서 고주파변복조기(1710)내의 게인을 조정한다.
DSP(1723)과 범용마이크로프로세서(1727) 사이의 통신은 다음과 같이 실행된다. DSP(1723)은 HIF(호스트 인터페이스)(1724)를 거쳐서 범용마이크로프로세서의 외부버스(1728)에 접속되어 있다. 범용마이크로프로세서(1727)은 이 HIF(1724)에서 DSP의 내부자원을 자유롭게 리드 라이트할 수 있다. DSP(1723)이 범용마이크로프로세서(1727)에 연락하고자 할 때에는 인터럽트신호(1726)을 사용한다.
도 16에서는 이동통신단말은 DSP(1723)과 범용마이크로프로세서(1727)이라는 2개의 프로세서를 사용해서 구성되어 있다. 또, 상기 DSP(1723)과 범용마이크로프로세서(1727)은 쌍방을 1칩에 내장해서 총합한 총합프로세서로서 구성할 수도 있다. 이 때, 총합프로세서에는 ROM이나 RAM을 온칩할 수 있다.
도 17에는 DSP 또는 총합프로세서의 내부구성의 1예가 도시되어 있다. 도 17에 도시된 프로세서(100)은 데이타연산유닛(108), 프로그램제어 데이타전송유닛(109), 데이타용메모리X(110), 데이타용메모리Y(111), 프로그램 데이타겸용메모리(112), 주변회로(113), X어드레스버스(102), Y어드레스버스(101), 메인어드레스버스(103), 제어버스(104), X데이타버스(105), Y데이타버스(106), 메인데이타버스(107)로 구성된다.
도 17의 구성에 있어서, 상기 데이타연산유닛(108), 프로그램제어 데이타전송유닛(109), 데이타용메모리X(110) 및 데이타용메모리Y(111)은 프로세서코어(120)을 구성한다. 프로세서코어(120)이라는 것은 범용마이크로프로세서의 경우에는 CPU부이고, DSP의 경우에는 DSP엔진이고, 총합프로세서의 경우에는 CPU부 및 DSP엔진이다. CPU부는 명령을 페치하고 페치한 명령을 해독하고 그 해독결과에 따라서 레지스터나 정수연산기를 조작해서 명령을 실행하는 유닛이다. DSP엔진은 코맨드 또는 제어신호를 받고 그것에 따라 지시되는 디지탈신호처리를 곱합연산기 등을 사용해서 실행하는 유닛이다.
도 17에는 프로세서(100)의 핵으로 되는 부분만 상세히 도시하고 있다. 실제의 프로세서에는 인터럽트콘트롤러, 버스조정자(arbiter) 및 DMAC(Direct Memory Access Controller) 등의 주변회로가 탑재되어 있다. 이들은 도 17에 있어서는 주변회로(113)으로서 일괄해서 도시되어 있다.
프로세서(100)은 프로그램 데이타겸용메모리(112)에 저장된 프로그램을 메인데이타버스(107)을 거쳐서 프로그램제어 데이타전송유닛(109)에 리드하고 디코드해서 실행한다. 이 때, 리드된 프로그램의 어드레스는 프로그램제어 데이타전송유닛(109)에서 메인어드레스버스(103)을 경유해서 프로그램 데이타겸용메모리(112)에 공급된다.
프로세서(100)은 상기 프로그램의 리드와 동시에 2개의 데이타를 데이타연산유닛(108)에 공급할 수 있다. 즉, 데이타용메모리X(110)에 저장되어 있는 1개의 데이타를 X데이타버스(105)를 거쳐서 데이타연산유닛(108)로 전송함과 동시에, 데이타용메모리Y(111)에 저장되어 있는 다른 1개의 데이타를 Y데이타버스(106)을 경유해서 데이타연산유닛(108)로 전송할 수 있다. 리드되는 2개의 데이타의 어드레스는 데이타용메모리X(110)과 데이타용메모리Y(111)에 각각 X어드레스버스(102), Y어드레스버스(101)을 거쳐서 프로그램제어 데이타전송유닛(109)에서 공급된다.
도 17에 도시된 프로세서(100)은 그것이 DSP 또는 총합프로세서중의 어느 쪽의 프로세서라도 파형등화나 통신로복호화 등의 연상량이 많은 신호처리에 이용된다.
그와 같은 파형등화나 통신로복호화의 처리의 내용은 성격이 다른 2종류의 것으로 구성되어 있다. 즉, 단순한 반복이지만 연산량이 많은 처리와 복잡하기는 하지만 연산량은 그다지 많지 않은 처리의 2종류이다. 전자는 하드웨어로서 후자는 소프트웨어로서 실현하는 데에 적합하다. 그래서, 전자의 처리를 프로세서(100)과 동일 칩상에 온칩의 하드웨어의 액셀러레이터로서 실현하고, 프로세서코어(120)에 의한 소프트웨어처리와 연휴시켜 전체를 실현할 수 있다. 액셀러레이터는 도 17의 주변회로(113)의 하나로서 위치지을 수 있다.
본 실시예에 의해 설명한 바와 같은 GSM 등의 이동체단말장치에 있어서는 내장배터리에 의해서 전원의 공급이 실행되기 때문에, 저소비전력화가 중요한 과제로 된다. 저소비전력화를 달성하기 위해서는 DSP 또는 총합프로세서의 동작주파수를 낮게 억제하는 것이 유효하지만, 동작주파수를 낮게 억제하면 연산량이 많은 처리를 소프트웨어처리에 의해 실행하는 것이 곤란하게 된다. 따라서, 내장배터리에 의해서 전원공급을 실행하는 이동체단말장치에 있어서는 내부의 신호처리의 일부를 프로세서와 동일 칩상에 실현한 온칩의 하드웨어의 액셀러레이터로 실행시키는 것이 저소비전력화의 관점에서 매우 유효하다.
도 18에는 상기 액셀러레이터의 1예가 도시된다. 도 18의 액셀러레이터(200)은 예를 들면 상기 파형등화처리를 대상으로 한 것이다. 도 18의 액셀러레이터(200)은 입력레지스터(222), 제1 연산회로(223), 중간레지스터(224), 제2 연산회로(225), 출력레지스터(226), 입출력제어회로(209), 어드레스디코더(210), 내부타이밍회로(217), 내부메모리(231) 및 2상클럭제어회로(206)으로 구성된다. 도 18의 액셀러레이터(200)은 도 17에 도시한 프로세서(100)의 제어버스(104), 메인데이타버스(107) 및 메인어드레스버스(103)에 접속된다. 액셀러레이터(200)은 도 17의 프로세서(100)의 하나의 주변회로(113)으로서 접속된다.
도 19에는 도 17의 프로세서(100)의 메모리공간에 맵핑된 도 18의 액셀러레이터(200)의 자원이 도시되어 있다. 액셀러레이터(200)의 자원은 입력레지스터(222), 출력레지스터(226), 내부메모리(231)이고, 프로세서(100)은 메모리공간의 대응하는 어드레스를 리드 라이트하는 것에 의해 이들을 액세스한다.
프로세서(100)의 프로세서코어(120)은 액셀러레이터(200)을 기동하기 전에 내부메모리(231)에 필요한 데이타를 라이트하고, 또 처리에 필요한 상태변수의 초기화를 실행해 둔다. 프로세서(100)의 프로세서코어(120)은 입출력제어회로(209)를 거쳐서 입력레지스터(222), 출력레지스터(226), 내부메모리(231)로 액세스한다. 어느 자원으로 액세스할 것인지는 어드레스에 의해 선택된다. 이 어드레스는 어드레스버스(204)를 경유해서 어드레스디코더(210)에 의해 해독되고, 해독된 신호는 입력레지스터(222)나 출력레지스터(226) 등의 선택신호로서 입출력제어회로(209)에서 사용된다. 액셀러레이터(200)의 기동은 프로세서(100)의 프로세서코어(120)이 입출력제어회로(209)를 거쳐서 입력레지스터(222)에 데이타를 라이트하는 것에 의해 실행된다.
그의 상세는 나중에 설명하겠지만, 액셀러레이터(200)은 논오버랩 2상의 클럭신호CLK1, CLK2와 동기동작된다. 클럭신호CLK1, CLK2는 시스템클럭신호CLK에 따라서 2상클럭제어회로(206)이 생성한다. 2상클럭제어회로(206)은 나중에 그의 상세를 설명하겠지만, 클럭정지제어신호나 프로세서코어(120)으로의 인터럽트신호 등에 따라서 클럭신호CLK1, CLK2의 공급정지동작을 실행한다. 도 18에 있어서, (218), (220), (216)은 레지스터(222), (224), (226)에 대한 출력타이밍신호이고, (211), (219), (221)은 레지스터(222), (224), (226)의 입력타이밍신호이다. (232), (233)은 내부메모리(231)과 연산회로(223), (225)를 접속하기 위한 데이타신호선이다. 입출력제어회로(209)는 데이타선(214)와 어드레스선(213)을 거쳐서 내부메모리(231)을 액세스한다. 도 18에서는 도 17의 제어버스(104)에 포함되는 리드신호RD_와 라이트인에이블신호WE_가 대표적으로 도시되어 있다.
도 18의 액셀러레이터(200)은 입력레지스터(222)에 1개의 데이타가 라이트되면 연산을 개시하고, 내부메모리(231)의 데이타를 사용해서 합계 8개의 출력데이타를 생성한다. 제1 연산회로(223)과 제2 연산회로(225)는 양자 모두 실행하는데에 3사이클이 걸린다. 입력레지스터(222)에 1개의 데이타가 라이트되고 난 후 3사이클후에 제1 연산회로(223)은 최초의 중간데이타를 중간레지스터(224)로 출력한다. 이후, 제1 연산회로(223)은 3사이클마다 중간레지스터(224)를 갱신한다.
제2 연산회로(225)는 중간레지스터(224)에 최초의 중간데이타가 라이트되고 난 후 3사이클후에 최초의 출력데이타를 출력레지스터(226)으로 출력한다. 이후, 제2 연산회로(225)는 3사이클마다 출력레지스터(226)을 갱신한다. 3사이클마다 중간레지스터(224)와 출력레지스터(226)을 갱신하는 데에 필요한 타이밍신호는 내부타이밍회로(217)에 의해서 공급된다.
상기 액셀러레이터(200)에 의해 실행되는 파형등화처리는 예를 들면 공지의 콤볼루션부호를 디코드하는 처리와 마찬가지이고, 상기 제1 연산회로(223)은 분기메트릭스처리를 실행하고, 제2 연산회로(225)는 논리곱선택처리를 실행한다. 이 처리는 적응형 자동등화처리로서, 복조에 있어 위상조정(phasing)의 영향을 없애는 처리이다. 또, 상기 액셀러레이터에 의해 실행되는 처리로서는 파형등화처리 이외에 에러정정처리나 동화상압축처리가 고려된다.
도 20에 액셀러레이터(200)의 데이타입출력의 전체적인 타이밍을 도시한다. 입력레지스터(222)에 1개의 데이타가 라이트되고 난 후 6사이클후에 최초의 출력데이타가 출력레지스터(226)에 나타난다. 그 후, 3사이클마다 출력레지스터(226)은 새로운 출력데이타로 갱신된다. 이와 같이 해서 합계 8개의 출력데이타가 1개의 출력레지스터(226)에 나타난다. 프로세서(100)의 프로세서코어(120)은 소프트웨어적으로 상기 출력레지스터(226)에서 데이타를 리드해서 프로세서(100)의 온칩메모리로 전송한다. 프로세서(100)이 온칩의 레지스터나 메모리를 리드 라이트하는 데에는 보통 1사이클로 충분하다. 즉, 프로세서(100)이 출력레지스터(226)을 리드해서 온칩메모리에 라이트하는 데에는 2사이클이 걸린다. 그래서, 액셀러레이터(200)의 처리량이 2사이클이상 걸리면 연산결과의 페치실패없이 메모리로 전송할 수 있게 된다. 도 18의 액셀러레이터(200)의 처리량은 3사이클이므로 그 조건을 만족시키고 있고, 연산결과의 페치실패는 발생하지 않는다. 이 구성을 사용하는 것에 의해 액셀러레이터(200)의 처리와 프로세서코어(120)에 의한 데이타전송을 시간적으로 병렬화할 수 있고, 프로세서(100)전체의 데이타처리성능을 향상시킬 수 있다.
이상의 설명에서 이해되는 바와 같이, 상기 액셀러레이터(200)은 클럭신호와 동기해서 자동적으로 동작하고 있고, 프로세서코어(120)의 액세스에 의해서 입력레지스터(222)에 1개의 데이타가 라이트되면 상기 자동동작에 의해서 소정사이클기간을 통해 출력레지스터(226)에는 순차 연산결과가 부여된다. 프로세서코어(120)은 그 동안 출력레지스터(226)에 새로운 연산결과가 순차 나타나는 타이밍과 동기해서 그 연산결과를 메모리에 저장하지 않으면 안된다.
이 때, 프로세서(100)은 액셀러레이터(200)을 사용한 처리보다 우선도가 높은 인터럽트요구가 발생하고, 프로세서코어(120)이 상기 우선도가 높은 인터럽트요구에 응답하는 처리로 분기했을 때, 액셀러레이터(200)의 출력레지스터(226)이 다음의 연산결과로 오버라이트되어 연산결과에 페치실패가 발생하지 않도록 되어 있다. 즉, 우선도가 높은 인터럽트요구가 발생해서 프로세서코어(120)이 액셀러레이터(200)의 출력레지스터(226)을 리드할 수 없게 된 경우, 액셀러레이터(200)의 동작이 일시적으로 정지된다. 그것에 의해서, 프로세서코어(120)의 연산결과의 페치실패가 방지된다. 프로세서코어(120)이 우선도가 높은 처리를 실행하고 있는 동안 액셀러레이터(200)은 일시적으로 그 동작이 정지된다. 프로세서코어(120)이 우선도가 높은 처리를 종료한 후 액셀러레이터(200)의 동작이 재개되면 좋다. 액셀러레이터(200)의 동작을 정지시키기 위해 클럭신호CLK1, CLK2의 공급이 일시적으로 정지된다.
상기 액셀러레이터(200)에 대한 클럭제어의 구체적인 구성을 설명하기 전에 우선, 주변회로에 대한 클럭공급정지제어의 기본적인 구성에 대해서 도 21을 참조하면서 설명한다.
프로세서내부의 동기용 클럭신호로서 오버랩이 없는 2상클럭신호(논오버랩 2상클럭신호)CLK1, CLK2를 사용한다. 즉, 진폭이 하이레벨인 기간이 로우레벨인 기간보다 짧은 클럭파형으로 위상이 서로 180°어긋난 2개의 클럭신호CLK1, CLK2를 사용한다. 이 2상클럭신호CLK1, CLK2를 프로세서(100)내부의 1개소에 생성해서 각 모듈에 분배하는 방법도 고려할 수 있지만 통상은 그렇게 하지 않는다. 2개의 클럭신호선을 프로세서(100)의 내부에서 둘러 치면 배선길이가 길어지고, 그에 따른 전파지연에 의해 쌍방의 클럭신호의 하이레벨기간과 로우레벨기간이 중첩되는 기간이 있기 때문이다. 그래서, 프로세서 전체에서는 1개의 기본클럭신호CLK를 둘러 치고, 각 모듈내에서 이 기본클럭신호CLK에서 2상클럭신호CLK1, CLK2를 생성하는 방법이 취해지고 있다. 이 기본클럭은 진폭이 하이레벨인 기간과 로우레벨인 기간이 동일하다. 도 21의 (a)에 각 모듈내에서 사용되는 2상클럭생성회로를 상세하게 도시한다.
2상클럭생성회로(2300)은 인버터(2301), 2개의 지연회로(2302), (2303), 2개의 NAND회로(2304), (2305) 및 2개의 인버터(2306), (2307)에 의해 구성된다. 2상클럭생성회로(2300)의 입력(2311)에 기본클럭신호CLK가 입력되면 클럭신호CLK2에는 기본클럭파형과 지연회로(2302)에 의해 지연된 기본클럭파형의 논리곱에 의해서 얻어지는 파형이 나타난다. 즉, 기본클럭신호CLK와 동일 주기를 갖고, 진폭이 하이레벨인 기간이 로우레벨인 기간보다 짧은 클럭파형이 클럭신호CLK2로서 생성된다. 한편, 클럭신호CLK1에는 기본클럭신호CLK의 반전에 대해서 마찬가지의 조작이 실행된 결과가 나타난다. 클럭신호CLK2와 마찬가지로 진폭이 하이레벨인 기간이 로우레벨인 기간보다 짧은 클럭파형에서 위상이 클럭신호CLK2에 대해 180°어긋난 것으로 된다. 이들 파형의 관계는 도 21의 (b)의 타이밍도에 도시되어 있다.
또, 도 21의 (a)에는 기본클럭신호CLK를 상기 2상클럭생성회로(2300)에 공급할지의 여부를 제어하는 AND회로(2308)도 도시되어 있다. 클럭인에이블신호CLKEN이 하이레벨일 때 기본클럭신호CLK가 2상클럭생성회로의 입력(2311)에 접속된다. 클럭인에이블신호CLKEN이 로우레벨일 때 2상클럭생성회로의 입력(2311)은 로우레벨로 고정된다. 즉, 클럭인에이블신호CLKEN이 로우레벨로 되면 클럭신호CLK1은 하이레벨로 고정되고 클럭신호CLK2는 로우레벨로 고정된다. 이 상태는 도 21의 (b)의 타이밍도에 있어서의 “클럭정지위치”로 나타내는 상태이다.
다음에, 상기 논오버랩 2상클럭신호CLK1, CLK2를 사용해서 동작되는 프로세서코어(120)이나 액셀러레이터(200)내부의 레지스터에 대해서 설명한다.
도 22에는 레지스터의 1비트(1800)의 구성이 대표적으로 도시되어 있다. 도 18에서 설명한 액셀러레이터(200)이 갖는 레지스터(222), (224), (226)의 각 비트도 도 22와 동일 구조를 갖는다.
레지스터의 1비트(1800)은 4개의 클럭드인버터(1802), (1806), (1808), (1812)와 4개의 인버터(1804), (1806), (1810), (1811)에 의해서 구성된다. 상기 2개의 클럭드인버터(1802), (1806)과 상기 2개의 인버터(1804), (1806)은 입력래치를 구성한다. 이 입력래치는 클럭신호CLK2가 하이레벨일 때에는 클럭드인버터(1802)를 열고 입력데이타(1801)을 기억노드(1807)에 보낸다. 클럭신호CLK2가 로우레벨일 때에는 클럭드인버터(1806)을 열어서 데이타를 기억노드(1807)의 내용을 루프귀환시켜 유지한다. 한편, 클럭드인버터(1808), (1812)와 2개의 인버터(1810), (1811)은 출력래치를 구성한다. 이 출력래치는 클럭신호CLK1이 하이레벨일 때 클럭드인버터(1808)을 열어서 기억노드(1807)에 유지된 데이타를 출력단자(1813)으로 출력한다. 클럭신호CLK1이 로우레벨일 때에는 클럭드인버터(1812)를 열어서 전회의 출력데이타를 루프귀환시켜 유지한다.
레지스터가 그와 같이 구성되어 있는 것에 의해서, 클럭신호CLK1이 하이레벨이고 또한 클럭신호CLK2가 로우레벨인 상태로 되었을 때, 레지스터는 그 기억정보를 유지한다. 도 21에 따라서 설명한 바와 같이, 클럭인에이블신호CLKEN이 로우레벨로 되면 클럭신호CLK1이 하이레벨이고 또한 클럭신호CLK2가 로우레벨인 상태로 고정된다. 따라서, 클럭인에이블신호CLKEN을 로우레벨로 강제해서 주변회로로의 클럭신호의 공급을 정지했을 때 레지스터의 내용은 그대로 유지되는 것이 이해될 것이다.
여기서, 프로세서코어(120)이 프로세서(100)에 내장되어 있는 액셀러레이터(200)을 비롯하는 주변회로에 대해서 클럭신호의 공급을 제어하기 위한 기본적인 구성에 대해서 도 23을 사용해서 설명한다.
도 23에는 상기 프로세서(100)에 내장되어 있는 프로세서코어(120), 정지제어모듈(702) 및 주변모듈(700)이 대표적으로 도시되어 있다. 상기 정지제어모듈(702) 및 주변모듈(700)은 도 17에 도시되는 주변회로(113)에 포함되는 일부의 회로모듈이다. 도 17에 도시되는 그 밖의 회로모듈의 도시는 생략하고 있다.
상기 정지제어모듈(703)은 모듈정지레지스터(704)와 어드레스디코더(705)를 갖는다. 프로세서코어(120)은 모듈정지레지스터(704)를 어드레스신호에 의해 지정해서 리드 라이트할 수 있다. 어드레스디코더(705)는 그 어드레스신호를 디코드해서 모듈정지레지스터(704)의 선택신호를 생성한다.
상기 모듈정지레지스터(704)의 각 비트는 마이크로프로세서(100)에 온칩되어 있는 소정의 여러개의 주변모듈(주변회로(113)에 포함된다)에 대응하고 있다. 프로세서코어(120)이 이 레지스터의 임의의 비트에 “1”을 라이트하면 그 비트에 대응하는 주변모듈에 클럭신호CLK가 공급되고, “0”을 라이트하면 클럭신호CLK의 공급이 정지된다. 도 23에서는 모듈정지레지스터(704)의 1비트가 클럭인에이블신호(708)로서 주변모듈(700)에 공급되어 있다. 주변모듈(700)은 내부회로(714), 2상클럭생성회로(717) 및 AND회로(715)로 구성되어 있다. 내부회로(714)는 그 주변모듈(700)에 따른 기능을 갖고, 여기서는 특히 상세하게 설명하지 않는다. 상기 2상클럭생성회로(717)과 AND회로(715)의 상세는 도 21에서 설명한 2상클럭생성회로(2300)과 AND회로(2308)과 동일하다. (716)은 2상클럭생성회로(717)의 클럭입력이다.
클럭인에이블신호(708)이 “0”(로우레벨)로 되면 2상클럭생성회로(717)에서 출력되는 클럭신호XCLK1, XCLK2는 각각 하이레벨, 로우레벨로 고정된다. 따라서, 내부회로(714)는 그 상태로 고정된 2상클럭신호XCLK1, XCLK2가 공급되어 있을 때 도시를 생략하는 내장레지스터의 값은 유지된다. 그와 같은 내장레지스터는 주변회로의 자원으로서 프로세서(100)의 메모리공간에 할당되어 있다.
상기 액셀러레이터(200)에 대한 클럭공급제어의 구성은 도 23의 구성 그대로는 아니다. 가령, 상기 액셀러레이터(200)에 대한 클럭공급제어의 구성을 도 23의 구성 그대로로 하면, 프로세서코어(120)이 액셀러레이터(200)과 연휴해서 파형등화 등의 처리를 실행하고 있을 때, 그 처리보다 우선도가 높은 인터럽트 등이 요구되었을 때 이것에 의해서 프로세서코어(120)이 인터럽트처리로 분기하면, 프로세서코어(120)은 이미 상기 모듈정지레지스터(704)로 액세스할 수 없게 되고, 액셀러레이터(200)의 클럭공급을 정지시키는 것이 불가능하게 된다. 프로세서코어(120)이 인터럽트처리를 실행하고 있는 동안 액셀러레이터(200)의 연산동작이 계속되면 프로세서코어(120)은 그 연산결과를 페치실패하게 된다.
그래서, 프로세서(100)은 예측할 수 없는 우선도가 높은 인터럽트에 의해 프로세서코어(120)이 직접 액셀러레이터(200)으로의 클럭제어를 실행할 수 없는 경우에도 간접적으로 액셀러레이터(200)으로의 클럭제어를 가능하게 하도록 구성되어 있다. 이하, 그 구성을 상세하게 설명한다.
우선, 도 1에 따라서 액셀러레이터(200)에 대한 클럭제어의 기본적인 구성을 설명한다.
도 1에는 상기 프로세서(100)의 상기 주변회로(113)으로서 인터럽트콘트롤러(121) 및 액셀러레이터(200)이 대표적으로 도시되어 있다. 내부버스(122)는 도 17에서 설명한 메인어드레스버스(103), 제어버스(104) 및 메인데이타버스(107)을 총칭한다.
프로세서코어(120)과 액셀러레이터(200)이 예를 들면 파형등화 등의 처리를 연휴해서 실행하고 있을 때, 프로세서코어(120)은 액셀러레이터(200)의 출력레지스터(226)을 연속적으로 리드할 필요가 있다. 즉, 프로세서코어(120)은 출력레지스터(226)에 소정사이클마다 나타나는 연산결과를 리드하고, 리드한 데이타를 프로그램 데이타겸용메모리(112)에 라이트한다. 이 도중에 프로세서코어(120)에 인터럽트가 요구되어 프로세서코어(120)이 그 요구에 응답하는 인터럽트처리로 분기되면, 프로세서코어(120)은 출력레지스터(226)에서 연산결과데이타를 리드할 수 없게 된다. 우선도가 낮은 인터럽트에 대해서는 프로세서코어(120)이 액셀러레이터(200)을 사용하는 처리로 들어가기 직전에 인터럽트콘트롤러(121)을 거쳐 그 인터럽트요구를 마스크하고 상기 인터럽트요구에 의한 인터럽트의 발생을 금지할 수 있다. 그리고, 액셀러레이터(200)을 사용한 처리를 종료한 후 프로세서코어(120)은 상기 우선도가 낮은 인터럽트금지를 해제하면 좋다. 그러나, 마스크불가능한 우선도가 높은 인터럽트(예를 들면 복조를 위한 데이타입력이나 음성출력을 위한 데이타입력과 같이 특정 사상의 발생에 대해서 고속으로 데이타를 입출력하는 것이 요구되는 우선도가 높은 인터럽트)에 대해서는 그와 같은 처리를 실행할 수는없다.
우선도가 높은 인터럽트요구가 발생했을 때, 액셀러레이터(200)의 클럭제어를 가능하게 하기 위해서 인터럽트콘트롤러(121)이 프로세서코어(120)으로 출력하는 인터럽트신호INT를 액셀러레이터(200)에 공급한다. 이것에 의해서 프로세서코어(120)이 모듈정지레지스터(704)의 액셀러레이터 대응비트를 조작하지 않아도 액셀러레이터(200)으로의 클럭신호의 공급을 정지할 수 있도록 한다. (124)는 인터럽트요구신호이다.
도 2에는 프로세서(100)에 내장된 고속입출력인터페이스(123)이 인터럽트요구신호(124)를 인터럽트콘트롤러(121)에 공급하는 구성이 도시되어 있다. 상술한 바와 같이, 우선도가 높은 인터럽트요구신호(124)에 의해서 프로세서코어(120)이 인터럽트처리로 분기될 때, 그 인터럽트신호INT에 의해서 액셀러레이터(200)으로의 클럭신호의 공급이 정지되고, 액셀러레이터(200)은 인터럽트신호INT가 활성화되었을 때의 내부상태를 그대로 유지해서 연산동작을 중단한다. 따라서, 그 인터럽트요구에 의해서 프로세서코어(120)이 고속입출력인터페이스(123)에 공급되는 데이타를 리드하고, 리드한 데이타를 프로그램 데이타겸용메모리(112)에 라이트하는 동작으로 분기되고, 도 1과 같은 액세스동작(리드, 라이트)를 실행할 수 없게 되어도 액셀러레이터(200)에 의한 연산결과를 페치실패하는 일은 일절 없다.
도 3에는 인터럽트신호의 활성화와 동기해서 액셀러레이터(200)으로의 클럭신호의 공급을 정지시키기 위한 구성의 상세한 1예가 도시되어 있다.
도 3에 있어서 액셀러레이터(200)은 도 18에 도시되는 2상클럭제어회로(206)으로서, AND회로(250), 2상클럭생성회로(252), 1비트의 클럭공급레지스터(255), AND회로(245) 및 2상클럭생성회로(247)을 갖는다. AND회로(250), 2상클럭생성회로(252)는 도 21의 (a)에서 설명한 회로와 실질적으로 동일하다. 내부회로(244)는 도 18의 2상클럭제어회로(206) 이외의 회로를 의미한다.
상기 클럭공급레지스터(255)는 예를 들면 1개의 JK플립플롭에 의해서 구성된다. 이하, 클럭공급레지스터(255)를 JK플립플롭(255)라고도 한다. 상기 JK플립플롭(255)는 그 클럭입력C가 하이레벨일 때 J=1, K=0이면 출력Q가 1로 세트되고, J=0, K=1이면 출력Q가 0으로 리세트된다. 이 JK플립플롭(255)의 출력Q는 2상클럭생성회로(247)에 대한 클럭인에이블신호로 되어 있고, 이것을 사용해서 내부회로(244)로의 클럭공급을 제어한다. 이 클럭공급레지스터(255) 자체는 내부회로(244)로의 클럭신호CLK1, CLK2의 정지중에도 클럭공급재개를 위해 세트가능할 필요가 있다. 그래서, 이 클럭공급레지스터(255)로의 클럭공급은 또 하나의 2상클럭생성회로(252)에서 실행한다. 이 제2의 2상클럭생성회로(252)로의 인에이블제어는 상기 정지제어모듈(702)를 사용해서 도 23에서 이미 설명한 바와 같이 실행한다.
상기 모듈공급레지스터(255)에 대한 리세트는 도 4에 예시된 바와 같이 프로세서코어(120)으로의 인터럽트신호INT를 사용해서 실행할 수 있다. 즉, D플립플롭(260)을 마련하고 그 데이타입력단자D에 인터럽트신호INT를 공급하고, 클럭입력단자C에 클럭신호XCLK2를 공급한다. 이 D플립플롭(260)의 출력단자Q를 JK플립플롭(255)의 입력단자K에 결합한다. D플립플롭(260)은 그 클럭입력단자C가 하이레벨일 때 입력단자D의 값(인터럽트신호INT의 값)을 출력단자Q로 출력한다. 인터럽트콘트롤러(121)로부터의 인터럽트신호INT는 우선 클럭신호XCLK2와 동기해서 상기 D플립플롭(260)에 래치되고, 클럭공급레지스터(255)의 입력단자K에 입력된다. 도시를 생략하는 제어레지스터 등을 이용해서 J=K=0으로 되도록 초기설정해 두면, 이 구성에 의해서 모듈공급레지스터(255)의 출력Q를 프로세서코어(120)으로의 인터럽트신호INT의 하이레벨로의 변화(활성화)와 동기해서 리세트(로우레벨로)할 수 있다.
다음에, 액셀러레이터(200)의 입력레지스터(222)에 대한 라이트동작 또는 출력레지스터(226)에 대한 리드동작과 연동해서 액셀러레이터(200)을 동작가능하게 하는 구성에 대해서 설명한다. 즉, 도 4의 JK플립플롭(255)에 있어서의 입력단자J에 공급되는 신호(256)을 생성하는 회로의 예를 도시한다.
도 5의 구성은 액셀러레이터(200)의 입력레지스터(222)에 대한 라이트동작과 연동해서 액셀러레이터(200)에 동작클럭을 공급하도록 한 것이다. 도 5에는 상기 프로세서코어(120)과 액셀러레이터(200)이 대표적으로 도시되어 있가. 액셀러레이터(200)의 내부는 설명에 필요한 부분만이 명시되고, 내부회로(244) 등은 도시가 생략되어 있다. 명시되어 있는 것은 어드레스디코더(270), 2개의 AND회로(272), (273), D플립플롭(260) 및 입력레지스터(222)이다. 프로세서코어(120)이 입력레지스터(222)의 어드레스를 어드레스버스(103)을 거쳐서 발행하면 어드레스디코더(270)은 입력레지스터(222)의 선택신호(271)을 선택레벨 즉 하이레벨로 한다. 이 때, 프로세서코어(120)에서 출력되는 라이트인에이블신호WE_가 로우레벨(활성화 로우를 가정)이면 AND게이트(272)의 출력신호(274)가 하이레벨로 된다. 이 신호(274)는 입력레지스터(222)가 라이트를 위해 선택된 것을 의미한다. 입력레지스터(222)로의 라이트는 이 선택신호(274)가 하이레벨인 동안에 클럭신호XCLK2와 동기해서 실행된다. 이 선택신호(274)는 또 D플립플롭(260)의 데이타입력단자D에 공급된다. 상기 선택신호(274)는 D플립플롭(260)의 클럭입력단자C에 공급되는 클럭신호XCLK2와 동기해서 데이타출력단자D에서 출력되고, 도 3의 상기 클럭공급레지스터(255)의 세트클럭신호(SETCLOCK)(256)으로 되어 입력단자J에 입력된다. 이 구성에 의해서 모듈공급레지스터(255)를 입력레지스터(222)로의 라이트시에 세트(J=1)할 수 있다. 도 6에는 상기 동작의 타이밍도가 도시되어 있다. 도 4의 구성에 도 5에 관한 모듈공급레지스터(255)를 세트하는 구성을 부가하는 것에 의해, 입력레지스터(222)에 최초의 데이타를 라이트하는 것에 의해서 액셀러레이터(200)을 기동할 수 있다. 또, 우선도가 높은 인터럽트에 의해 액셀러레이터(200)이 정지하고 있는 경우 이 인터럽트루틴의 가장 마지막에 입력레지스터(222)에 한번 더 데이타를 라이트하는 것에 의해서 액셀러레이터(200)을 재기동할 수 있다.
도 7의 구성은 액셀러레이터(200)의 출력레지스터(226)에 대한 리드동작과 연동해서 액셀러레이터(200)에 동작클럭을 공급하도록 한 것이다. 도 7에는 상기 프로세서코어(120)과 액셀러레이터(200)이 대표적으로 도시되어 있다. 액셀러레이터(200)의 내부는 설명에 필요한 부분만이 명시되고, 내부회로(244) 등은 도시가 생략되어 있다. 명시되어 있는 것은 어드레스디코더(270), 2개의 AND회로(280), (281), D플립플롭(260) 및 출력레지스터(226)이다. 프로세서코어(210)이 출력레지스터(226)의 어드레스를 어드레스버스(103)을 거쳐서 발행하면, 어드레스디코더(270)은 출력레지스터(226)의 선택신호(282)를 하이레벨로 한다. 이 때, 프로세서코어(120)으로부터의 리드신호RD_가 로우레벨(활성화 로우를 가정)이면 신호(283)이 하이레벨로 된다. 이 신호(283)은 출력레지스터(226)이 리드를 위해 선택된 것을 나타낸다. 출력레지스터(226)으로부터의 리드는 이 선택신호(283)이 하이레벨인 동안에 있어서의 클럭신호XCLK1과 동기해서 실행된다. 이 선택신호(283)은 또 D플립플롭(260)에 의해 클럭신호XCLK2와 동기를 취하고 난 후 클럭공급레지스터(255)의 세트신호(SETCLOCK)(256)으로 되어 클럭공급레지스터(255)의 입력단자J에 입력된다. 이 구성에 의해서 모듈공급레지스터(255)를 출력레지스터(226)의 리드시에 세트할 수 있다. 도 8에 이 경우의 타이밍을 상세히 도시한다. 도 4의 구성에 도 7에 관한 모듈공급레지스터(255)를 세트하는 구성을 부가하는 것에 의해 우선도가 높은 인터럽트에 의해서 액셀러레이터(200)이 정지하고 있는 경우, 이 인터럽트루틴의 가장 마지막에 출력레지스터(226)을 리드하는 것에 의해 액셀러레이터(200)을 재기동할 수 있다.
이상에서 명확한 바와 같이, 도 4의 구성에 의하면 프로세서코어(120)으로의 인터럽트신호INT를 사용해서 액셀러레이터(200)으로의 클럭공급을 정지할 수 있다. 또, 도 5 또는 도 6의 구성을 채용하면 인터럽트루틴의 종료후에 액셀러레이터(200)의 레지스터(222) 또는 (226)을 액세스하는 것에 의해서 액셀러레이터(200)으로의 클럭공급을 재개할 수 있다.
액셀러레이터(200)에 대한 클럭제어의 제2 예를 도 9 및 도 10에 따라서 설명한다. 여기서 설명하는 예는 프로세서코어(120) 이외에 우선도가 높은 데이타전송인터럽트를 처리할 수 있는 DMAC(131) 등의 다른 버스마스터가 존재하는 경우이다. 이 경우, 프로세서코어(120)이 인터럽트요구에 응답하지 않는 경우라도 프로세서코어(120)은 버스권을 상실하는 경우가 있고, 이것에 의해서 프로세서코어(120)은 액셀러레이터(200)의 출력을 페치실패할 가능성이 있다. 이것에 대처가능하게 하는 예를 다음에 설명한다.
도 9에 있어서 프로세서(100)은 버스조정자(130) 및 DMAC(131)을 더 구비한다. 버스조정자(130) 및 DMAC(131)은 도 17의 주변회로(113)에 포함되는 회로모듈이다. 버스조정자(130)은 우선도가 높은 인터럽트요구(124), 프로세서코어(120)에서 출력되는 리드 라이트요구R/W1 및 DMAC에서 출력되는 리드 라이트요구R/W2를 입력하고, 예를 들면 그들 중 어느 요구가 빠른지에 따라서 버스레디신호BRDY1, BRDY2중의 어느 한쪽을 인에이블로 한다. 도 9의 예에서는 프로세서코어(120)으로의 버스레디신호BRDY1을 사용해서 액셀러레이터(200)으로의 클럭공급정지를 실행한다.
도 10에는 프로세서코어(120)으로의 버스레디신호BRDY1을 사용해서 액셀러레이터(200)으로의 클럭공급정지를 실행하도록 구성된 액셀러레이터(200)의 1예가 도시되어 있다. 도 10에 있어서, 액셀러레이터(200)은 상기 내부회로(244), 상기 2상클럭생성회로(252), (247), 상기 AND회로(250), (246)을 갖고, 또 인버터(272) 및 D플립플롭(270)을 갖는다. D플립플롭(285)는 그 클럭입력단자C에 공급되는 클럭신호XCLK2가 하이레벨일 때 입력단자D에 공급되는 버스레디신호BRDY1의 값을 래치해서 출력단자Q로 출력한다. 이 D플립플롭(285)의 출력(286)은 인버터(287)에서 반전되고, 2상클럭생성회로(247)에 대한 클럭인에이블신호로 된다. 여기서, 상기 버스레디신호 BRDY1은 활성화 로우의 신호이다. 상기 D플립플롭(247) 자체는 내부회로(244)로의 클럭신호CLK1, CLK2 정지중이라도 클럭신호공급을 재개할 수 있도록 세트가능한 것이 필요하다. 그래서, 이 D플립플롭(285)의 클럭단자C로의 클럭신호의 공급은 또 하나의 2상클럭생성회로(252)에서 실행된다. 이 2상클럭생성회로(251)로의 인에이블제어는 모듈정지신호(710)을 사용해서 상술한 도 23의 설명과 마찬가지로 실행된다.
따라서, 도 9 및 도 10의 예에서 이해되는 바와 같이, 프로세서코어(120)으로의 버스레디신호BRDY1을 사용해서 액셀러레이터(200)으로의 클럭신호의 공급을 정지할 수 있다. 이 제어를 채용하는 경우에는 프로세서코어(120)에 버스권이 되돌아 간(버스레디신호BRDY1이 하이레벨로 되는) 시점에서 자동적으로 내부회로(244)로의 클럭신호CLK1, CLK2의 공급이 재개된다.
다음에, 액셀러레이터(200)에 대한 클럭제어의 제3 예를 설명한다. 도 11에는 도 3 및 도 4에서 설명한 액셀러레이터(200)내부의 1비트의 클럭공급레지스터(255)를 자율적으로 클리어해서 내부회로(244)로의 클럭신호CLK1, CLK2의 공급을 정지하는 구성이 도시되어 있다.
도 11은 도 3의 구성에 대해서 자율적 클럭정지회로(290)을 추가한 것이다. 자율적 클럭정지회로(290)은 액셀러레이터(200)의 기동후, 결정된 사이클수만큼 동작한 후에 클럭정지신호(STOPCLOCK)(291)을 생성해서 JK플립플롭(255)의 입력단자K에 공급한다. 하이레벨의 클럭정지신호(291)이 JK플립플롭(255)의 입력단자K에 공급되면 JK플립플롭(255)의 출력단자Q에서 출력되는 클럭인에이블신호(258)이 로우레벨로 되고, 2상클럭생성회로(247)에 의한 클럭신호CLK1, CLK2의 발생이 정지된다.
도 12에는 자율적 클럭정지회로(290)의 내부구성예가 도시되어 있다. 도 13에는 자율적 클럭정지회로(290)의 동작타이밍도가 도시되어 있다. 도 12에 도시되는 자율적 클럭정지회로(290)은 카운터(292), 기대값레지스터(293), 비교기(296) 및 D플립플롭(298)을 갖는다. 카운터(292)는 클럭입력단자에 공급되는 클럭신호CLK1의 클럭사이클과 동기해서 카운트업동작을 실행한다. 카운터(292)의 계수값은 기대값레지스터(293)의 값과 비교기(296)에 의해 비교된다. 도 18 및 도 20에서 설명한 바와 같이 액셀러레이터(200)은 3사이클마다 출력레지스터(226)에 연산결과를 부여할 수 있기 때문에 이 예에서는 상기 기대값레지스터(293)에 설정되는 기대값은 “2”로 된다. 즉, 카운터(292)는 계수값“0”∼“2”를 반복하게 된다. 카운터(292)의 값이 “0”에서 카운트업되고 기대값의 “2”와 동일하게 되면, 비교기(296)에서 일치검출펄스(197)이 출력된다. 이 일치검출펄스(197)에 의해서 카운터(292)의 계수값은 “0”으로 클리어된다. 또, 상기 일치검출펄스(197)은 클럭신호CLK2와 동기해서 D플립플롭(298)에 래치되고, JK플립플롭(255)의 입력단자K에 입력된다. 이것에 의해서 자율적 클럭정지회로(290)으로의 클럭신호CLK1, CLK2의 공급이 정지된다.
내부회로(244)로의 클럭신호CLK1, CLK2의 공급을 재개하는 수단에 대해서는 도 12에서는 도시를 생략하고 있지만, 예를 들면 상술한 바와 같이 액셀러레이터(200)의 출력레지스터(266)의 리드동작과 동기해서 클럭신호CLK1, CLK2의 공급을 재개할 수 있다.
도 14에는 액셀러레이터(200)의 구성으로서 도 11과 도 7에서 설명한 구성을 아울러 갖는 것이 도시되어 있다. 도 14의 구성에 의하면, 액셀러레이터(200)은 기동된 후 자율적 클럭정지회로(290)의 기대값레지스터(293)에 설정된 값에 따른 사이클(예를 들면 3사이클)만큼 기동하고는 반드시 정지한다. 프로세서코어(120)이 액셀러레이터(200)의 출력레지스터(226)을 리드하는 것에 의해서 내부회로(244)로의 클럭신호CLK1, CLK2의 공급이 재개된다. 프로세서코어(120)이 임의의 결정된 간격으로(3사이클마다) 액셀러레이터(200)의 특정레지스터, 즉 출력레지스터(226)을 계속 리드하는 것에 의해 액셀러레이터(200)에 클럭신호CLK1, CLK2를 공급할 수 있다. 클럭신호CLK1, CLK2의 공급을 정지하는 경우는 프로세서코어(120)이 상기 출력레지스터(226)을 리드하지 않으면 좋다. 우선도가 높은 인터럽트에 의해 프로세서코어(120)이 출력레지스터(226)을 리드할 수 없는 경우, 액셀러레이터(200)은 자동적으로 정지한다.
도 14의 구성에 의하면, 프로세서코어(120)이 액셀러레이터(200)의 출력레지스터(226)을 리드할 수 없는 경우에는 내부회로(244)로의 클럭신호CLK1, CLK2의 공급을 자동적으로 정지할 수 있다. 또, 단지 프로세서코어(120)이 액셀러레이터(200)의 출력레지스터(226)을 리드하는 것에 의해 액셀러레이터(200)에 대한 클럭신호CLK1, CLK2의 클럭공급을 재개할 수 있다.
도 11∼도 14를 사용해서 설명한 클럭제어의 제3의 예에 의하면, 액셀러레이터는 자기가 실행할 필요한 연산처리를 종료하면 그 때마다 연산처리를 동기시키는 내부클럭신호의 변화를 자발적으로 정지시킨다. 따라서, 이 제3의 예에 의하면, 다음에 연산처리가 필요로 되는 어떠한 계기(예를 들면 상술한 입력레지스터로의 라이트동작이나 출력레지스터에 대한 리드동작)가 있을 때까지 클럭의 공급은 자발적으로 정지되므로 소비전력의 삭감이라는 효과도 달성할 수 있다.
상술한 연산제어수단으로의 인터럽트신호에 의한 인터럽트와 동기해서 상기 내부클럭신호를 정지시키는 제1 상태, 연산제어수단에 버스조정신호에 의한 버스권포기가 지시되었을 때 상기 내부클럭신호를 정지시키는 제2 상태 및 연산제어수단이 전용하드웨어수단에서 연산결과를 리드할 간격마다 자동적으로 내부클럭신호를 정지시키는 제3 상태는 적절히 조합해서 채용할 수 있다.
이상의 설명에서는 주로 본 발명자에 의해 이루어진 발명을 디지탈셀룰러 휴대전화 등의 이동체통신단말장치에 적용한 경우에 대해서 설명하였지만, 예를 들면 에러정정처리용 액셀러레이터, 음성코더 디코더용 액셀러레이터 등을 사용하는 데이타처리장치에도 적용할 수 있다. 이들은 디지탈TV나 디지탈오디오방송의 수신기 등에 유용하다. 이동체통신단말장치는 GSM에 한정되지 않는다.
도 17에 도시된 프로세서를 다른 응용에 용이하게 대응시키기 위해 ASIC전개할 수 있도록 구성할 수도 있다.
도 24는 도 17에 도시한 DSP나 총합프로세서 등의 프로세서를 ASIC용으로 일반화한 구성을 도시한 블럭도이다. 예를 들면 상기 프로세서코어(120)을 ASIC(Application Specific Integrated Circuits)용 프로세서코어로서 구성한다. 즉, 프로세서코어(120)에 관한 논리기능적 및 디바이스구조적으로 검증완료의 레이아웃설계데이타를 라이브러리에 구비하고 있고, 프로그램 데이타겸용메모리(112) 및 액셀러레이터(114)를 제외한 부분이 다른 모든 응용에 공통으로 사용할 수 있다는 의미에서 ASIC용 프로세서코어(120)으로서 일괄되어 있다. 반대로 말하면 프로그램 데이타겸용메모리(112)와 액셀러레이터(114)를 주문하여 만드는 것에 의해서 다른 응용분야로의 적용이 간단하게 된다.
또, 액셀러레이터의 클럭제어에 사용하는 플립플롭은 JK플립플롭에 한정되지 않고 RS플립플롭이라도 좋다.
또, 상기 설명에서는 액셀러레이터는 프로세서코어에 온칩되어 있지만, 쌍방을 다른 칩으로 구성할 수도 있다. 그 경우에는 도 14에서 설명한 클럭제어방법을 사용하면 프로세서코어와 액셀러레이터가 다른 칩인 것에 의해서 제어가 특별히 곤란하게 되는 일도 없다.
본원에 있어서 개시되는 발명중 대표적인 것에 의해 얻어지는 효과를 간단히 설명하면 다음과 같다.
즉, 데이타처리장치의 연산처리수단이 액셀러레이터와 같은 전용하드웨어수단과 연휴해서 처리를 실행하고 있을 때, 연산처리수단이 인터럽트되거나 버스권을 상실해서 그 처리가 중단되는 경우에도 전용하드웨어수단에 의한 연산결과의 페치실패의 사태를 방지할 수 있다.
그와 같은 데이타처리장치를 이동통신단말장치와 같은 데이타처리시스템에 적용하는 것에 의해, 연산량의 증대에 대한 고속처리를 액셀러레이터수단을 사용해서 촉진할 수 있다.
또, 데이타처리장치의 액셀러레이터에 있어서, 자기가 실행할 필요한 연산처리를 종료할 때마다 연산처리를 동기시키는 내부클럭신호의 변화를 자발적으로 정지시키는 구성을 채용하는 것에 의해서 소비전력의 삭감이라는 효과도 달성할 수 있다. 이와 같은 저소비전력형 데이타처리장치는 이동통신단말장치와 같은 배터리구동의 시스템에 적용하는 데에 적합하다.
Claims (13)
- 클럭신호와 동기해서 명령을 실행하는 연산처리수단 및 상기 연산처리수단 과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단을 포함하고,상기 전용하드웨어수단은 상기 연산처리수단에 의한 처리가 중단될 때 상기 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시키는 클럭제어회로를 갖는 것인 것을 특징으로 하는 데이타처리장치.
- 클럭신호와 동기해서 명령을 실행하는 연산처리수단 및 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단을 포함하고,상기 전용하드웨어수단은 상기 연산처리수단에 인터럽트신호에 의해서 인터럽트가 지시되었을 때, 상기 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시키는 클럭제어회로를 갖는 것인 것을 특징으로 하는 데이타처리장치.
- 제2항에 있어서,상기 클럭제어회로는 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로를 갖고, 상기 플립플롭회로는 상기 인터럽트신호에 의한 인터럽트지시에 의해서 제2 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 제3항에 있어서,상기 전용하드웨어수단은 상기 연산처리수단에 의해서 액세스되는 입력레지스터, 상기 입력레지스터에 라이트된 데이타를 상기 내부클럭신호와 동기해서 연산하는 연산회로 및 연산회로에서 연산된 연산결과가 로드되는 출력레지스터를 갖고,상기 플립플롭회로는 상기 연산처리수단에 의한 상기 입력레지스터로의 데이타라이트와 동기해서 상기 제1 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 제3항에 있어서,상기 전용하드웨어수단은 상기 연산처리수단에 의해서 액세스되는 입력레지스터, 상기 입력레지스터에 라이트된 데이타를 상기 내부클럭신호와 동기해서 연산하는 연산회로 및 연산회로에서 연산된 연산결과가 로드되는 출력레지스터를 갖고,상기 플립플롭회로는 상기 연산처리수단에 의한 상기 출력레지스터의 데이타리드와 동기해서 상기 제1 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 제2항∼제5항중의 어느 한 항에 있어서,상기 연산처리수단과 상기 전용하드웨어수단은 단일의 반도체기판에 프로세서로서 형성되어 이루어지는 것인 것을 특징으로 하는 데이타처리장치.
- 클럭신호와 동기해서 명령을 실행하는 연산처리수단, 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단, 상기 연산처리수단 이외의 버스마스터수단 및 상기 연산처리수단과 상기 버스마스터수단 사이의 버스권을 조정하는 버스조정수단을 포함하고,상기 전용하드웨어수단은 버스조정신호에 의해서 상기 연산처리수단에 버스권포기가 지시되었을 때 상기 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시키는 클럭제어회로를 갖는 것인 것을 특징으로 하는 데이타처리장치.
- 제7항에 있어서,상기 클럭제어회로는 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로를 갖고, 상기 플립플롭회로는 연산처리수단으로의 상기 버스조정신호에 의한 버스권포기의 지시에 따라서 제2 상태로 되고, 연산처리수단으로의 상기 버스조정신호에 의한 버스권승인의 지시에 따라서 제1 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 제7항 또는 제8항에 있어서,상기 연산처리수단과 상기 하드웨어수단은 단일의 반도체기판에 프로세서로서 형성되어 이루어지는 것인 것을 특징으로 하는 데이타처리장치.
- 클럭신호와 동기해서 명령을 실행하는 연산처리수단 및 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단을 포함하고,상기 전용하드웨어수단은 상기 특정의 연산처리를 동기시키는 내부클럭신호의 변화를 정지시키는 클럭제어회로, 상기 연산처리수단에 의해서 액세스되는 입력레지스터, 상기 입력레지스터에 라이트된 데이타를 상기 내부클럭신호와 동기해서 연산하는 연산회로 및 연산회로에서 연산된 연산결과가 로드되는 출력레지스터를 갖고,상기 클럭제어회로는 제1 상태에서 상기 내부클럭신호의 변화를 가능하게 하고, 제2 상태에서 상기 내부클럭신호의 변화를 정지시키는 플립플롭회로 및 상기 연산회로의 연산결과에 의한 상기 출력레지스터의 리라이트간격을 계수하는 카운터수단을 갖고, 상기 플립플롭회로는 상기 카운터수단에 의한 상기 리라이트간격의 카운트업과 동기해서 상기 제2 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 제10항에 있어서,상기 플립플롭회로는 상기 연산처리수단에 의한 상기 출력레지스터의 데이타리드와 동기해서 상기 제1 상태로 되는 것인 것을 특징으로 하는 데이타처리장치.
- 특허청구범위 제2항∼제11항중의 어느 한 항에 기재된 데이타처리장치, 고주파변복조수단 및 상기 데이타처리장치와 상기 고주파변복조수단 사이에 배치된 아날로그전단부를 갖는 이동체통신단말장치로서,상기 데이타처리장치에 포함되는 전용하드웨어수단은 복조처리를 위한 파형등화처리를 실행하는 것인 것을 특징으로 하는 이동체통신단말장치.
- 클럭신호와 동기해서 명령을 실행하는 연산처리수단 및 상기 연산처리수단과 연휴해서 특정의 연산처리를 상기 클럭신호와 동기해서 실행하는 전용하드웨어수단을 포함하는 데이타처리장치로서,상기 전용하드웨어수단은 자기가 실행할 필요한 연산처리를 종료하면 그 때마다 연산처리를 동기시키는 내부클럭신호의 변화를 자발적으로 정지시키는 것을 특징으로 하는 데이타처리장치.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP9151734A JPH10340128A (ja) | 1997-06-10 | 1997-06-10 | データ処理装置及び移動体通信端末装置 |
| JP97-151734 | 1997-06-10 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| KR19990006743A true KR19990006743A (ko) | 1999-01-25 |
Family
ID=15525133
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| KR1019980021033A Withdrawn KR19990006743A (ko) | 1997-06-10 | 1998-06-08 | 데이타처리장치 및 이동체통신단말장치 |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US5987556A (ko) |
| JP (1) | JPH10340128A (ko) |
| KR (1) | KR19990006743A (ko) |
| TW (1) | TW408271B (ko) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100800704B1 (ko) * | 2000-07-19 | 2008-02-01 | 삼성전자주식회사 | 이동 통신 단말기의 메시지 전처리기 및 그 제어 방법 |
Families Citing this family (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH11338716A (ja) * | 1998-05-29 | 1999-12-10 | Nec Corp | 無線端末、及び無線端末における受信方法 |
| US6415255B1 (en) * | 1999-06-10 | 2002-07-02 | Nec Electronics, Inc. | Apparatus and method for an array processing accelerator for a digital signal processor |
| US6748472B2 (en) * | 2001-02-28 | 2004-06-08 | Koninklijke Philips Electronics N.V. | Method and system for an interrupt accelerator that reduces the number of interrupts for a digital signal processor |
| US20030088407A1 (en) * | 2001-04-02 | 2003-05-08 | Yi Hu | Codec |
| US20030005261A1 (en) * | 2001-06-29 | 2003-01-02 | Gad Sheaffer | Method and apparatus for attaching accelerator hardware containing internal state to a processing core |
| JP4870292B2 (ja) * | 2001-09-27 | 2012-02-08 | ラピスセミコンダクタ株式会社 | 割り込み処理可能な情報処理装置 |
| US20030124975A1 (en) * | 2001-12-31 | 2003-07-03 | Alon Ram | Global positioning system (GPS) with cellular infrastructure |
| US6993617B2 (en) * | 2002-05-01 | 2006-01-31 | Sun Microsystems, Inc. | System-on-a-chip having an on-chip processor and an on-chip dynamic random access memory (DRAM) |
| AU2003232964A1 (en) * | 2003-04-17 | 2004-11-04 | Nokia Corporation | An improved mobile camera telephone |
| US7003758B2 (en) | 2003-10-07 | 2006-02-21 | Brion Technologies, Inc. | System and method for lithography simulation |
| US7934082B2 (en) | 2004-08-27 | 2011-04-26 | Panasonic Corporation | Information processing apparatus and exception control circuit |
| US20060230213A1 (en) * | 2005-03-29 | 2006-10-12 | Via Technologies, Inc. | Digital signal system with accelerators and method for operating the same |
| US7415595B2 (en) * | 2005-05-24 | 2008-08-19 | Coresonic Ab | Data processing without processor core intervention by chain of accelerators selectively coupled by programmable interconnect network and to memory |
| US7299342B2 (en) * | 2005-05-24 | 2007-11-20 | Coresonic Ab | Complex vector executing clustered SIMD micro-architecture DSP with accelerator coupled complex ALU paths each further including short multiplier/accumulator using two's complement |
| US20070198815A1 (en) * | 2005-08-11 | 2007-08-23 | Coresonic Ab | Programmable digital signal processor having a clustered SIMD microarchitecture including a complex short multiplier and an independent vector load unit |
| US7617428B2 (en) * | 2006-08-23 | 2009-11-10 | Lsi Corporation | Circuits and associated methods for improved debug and test of an application integrated circuit |
| US8046565B2 (en) * | 2006-12-06 | 2011-10-25 | Kabushiki Kaisha Toshiba | Accelerator load balancing with dynamic frequency and voltage reduction |
| US20100081014A1 (en) * | 2008-09-12 | 2010-04-01 | The Government Of The United States Of America, As Represented By The Secretary Of The Navy | Microbial Fuel Cell Power Systems |
| JP5322567B2 (ja) * | 2008-10-02 | 2013-10-23 | ルネサスエレクトロニクス株式会社 | データ処理システム及び半導体集積回路 |
| CN102415129B (zh) * | 2009-04-24 | 2014-07-23 | 三菱电机株式会社 | 无线基站 |
| TWI494935B (zh) * | 2010-07-12 | 2015-08-01 | Taiwan Secom Co Ltd | 具有高信賴度資料與資料流處理裝置 |
| US9678564B2 (en) * | 2012-12-21 | 2017-06-13 | Nxp B.V. | Multiprocessor system with interrupt distributor |
| US10042798B2 (en) * | 2015-12-30 | 2018-08-07 | Mediatek Singapore Pte. Ltd. | System comprising a master device and a slave device having multiple integrated circuit die, wireless communication unit and method therefor |
| US11436165B2 (en) * | 2019-05-01 | 2022-09-06 | Samsung Electronics Co., Ltd. | High bandwidth memory system |
| US12361990B1 (en) * | 2023-09-20 | 2025-07-15 | Synopsys, Inc. | Memory with external clock synchronized operation |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5121479A (en) * | 1988-01-27 | 1992-06-09 | Storage Technology Corporation | Early start mode data transfer apparatus |
| US5129072A (en) * | 1989-03-08 | 1992-07-07 | Hewlett-Packard Company | System for minimizing initiator processor interrupts by protocol controller in a computer bus system |
| US5369767A (en) * | 1989-05-17 | 1994-11-29 | International Business Machines Corp. | Servicing interrupt requests in a data processing system without using the services of an operating system |
| JPH07160585A (ja) * | 1993-12-13 | 1995-06-23 | Hitachi Ltd | 低電力データ処理装置 |
| US5822553A (en) * | 1996-03-13 | 1998-10-13 | Diamond Multimedia Systems, Inc. | Multiple parallel digital data stream channel controller architecture |
-
1997
- 1997-06-10 JP JP9151734A patent/JPH10340128A/ja not_active Withdrawn
-
1998
- 1998-04-15 TW TW087105747A patent/TW408271B/zh not_active IP Right Cessation
- 1998-06-08 US US09/092,940 patent/US5987556A/en not_active Expired - Lifetime
- 1998-06-08 KR KR1019980021033A patent/KR19990006743A/ko not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100800704B1 (ko) * | 2000-07-19 | 2008-02-01 | 삼성전자주식회사 | 이동 통신 단말기의 메시지 전처리기 및 그 제어 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH10340128A (ja) | 1998-12-22 |
| US5987556A (en) | 1999-11-16 |
| TW408271B (en) | 2000-10-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR19990006743A (ko) | 데이타처리장치 및 이동체통신단말장치 | |
| US20080261649A1 (en) | Radio communication apparatus and method | |
| US6353863B1 (en) | Terminal | |
| US7000140B2 (en) | Data processor and data processing system | |
| US8478921B2 (en) | Communication apparatus implementing time domain isolation with restricted bus access | |
| CN110018712B (zh) | 半导体装置和半导体系统 | |
| CN101057428B (zh) | 包括双定时器单元的通信装置 | |
| US7433393B2 (en) | Apparatus for controlling a digital signal processor for radio isolation and associated methods | |
| CN101023592B (zh) | 利用中断信号控制无线电装置的处理器的设备及相关方法 | |
| US7936789B2 (en) | Disparate clock domain synchronization | |
| CN119376804B (zh) | 芯片启动方法、装置、计算机可读存储介质、计算机程序产品、芯片以及计算设备 | |
| CN109857382A (zh) | 一种SoC芯片软件定义无线电解耦设计方法 | |
| JP2003283651A (ja) | 携帯無線通信装置 | |
| JP2009514084A (ja) | リセット装置を具えたデータ処理装置 | |
| US7761056B2 (en) | Method of controlling a processor for radio isolation using a timer | |
| US8472990B2 (en) | Apparatus using interrupts for controlling a processor for radio isolation and associated method | |
| JP2004199115A (ja) | 半導体集積回路 | |
| US7945718B2 (en) | Microcontroller waveform generation | |
| JPH04148441A (ja) | 処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 19980608 |
|
| PG1501 | Laying open of application | ||
| PC1203 | Withdrawal of no request for examination | ||
| WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |