KR20010085404A - 데이터 프로세서 및 데이터 처리시스템 - Google Patents

데이터 프로세서 및 데이터 처리시스템 Download PDF

Info

Publication number
KR20010085404A
KR20010085404A KR1020010007960A KR20010007960A KR20010085404A KR 20010085404 A KR20010085404 A KR 20010085404A KR 1020010007960 A KR1020010007960 A KR 1020010007960A KR 20010007960 A KR20010007960 A KR 20010007960A KR 20010085404 A KR20010085404 A KR 20010085404A
Authority
KR
South Korea
Prior art keywords
instruction
command
address
buffer
bits
Prior art date
Application number
KR1020010007960A
Other languages
English (en)
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 KR20010085404A publication Critical patent/KR20010085404A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스에 명령이 배치된 처리 프로그램을 대상으로 한 명령 프리페치의 구성을 간소화 한다.
외부 메모리(2)의 버스 제어를 행하는 버스 컨트롤러(4)는, 복수개의 명령버퍼(Buf4, Buf8, BufC), 각각의 명령버퍼에 고유의 플래그(Flg4, Flg8, FlgC) 및 버퍼 제어회로(30)를 구비한다. 버퍼 제어회로는 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트를 채택할 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치한다. 상기 명령 프리페치를 위한 구성은, 캐시 메모리의 어드레스 태그에 의한 제어기구나 FIFO 버퍼의 카운터에 의한 리드ㆍ라이트 포인터 제어기구보다도 간소하게 실현하는 것이 가능하다.

Description

데이터 프로세서 및 데이터 처리시스템{Data processor and data processing system}
본 발명은, 데이터 프로세서, 특히 외부 메모리에서의 명령 프리페치에 관한 것으로서, 예컨대 연속적인 명령 어드레스의 실행순서를 변경하는 분기(본 명세서에서는 점프의 개념도 분기에 포함한다)처리가 적은 서브루틴 프로그램을 실행하는데이터 처리시스템에 적용하여 유효한 기술에 관한 것이다.
데이터 프로세서 등에 의한 명령의 순차 실행을 고속화하기 위한 기술로서, 정보참조의 시간적ㆍ공간적 국소성(局所性)을 감안한 명령 캐시 메모리, 그리고 명령 프리페치버퍼가 있다.
예컨대, 일본공개특허 평6-243036호 공보(미국등록특허번호 제5,511,178호)에는 페치한 명령의 국재성(局在性)을 지표(指標)하는 루프 록(loop lock)을 설치하여, 루프 밖으로 프로그램 제어가 이행할 때까지 루프내의 명령 열(列)을 캐시 메모리에 보유해 놓도록 하는 발명이 개시되어 있다.
일본공개특허 평4-62637호 공보에는, 실행속도를 향상시키기 위해, 페치된 루프명령을 FIFO(First-InㆍFirst-Out) 버퍼에 보유해 두도록 하는 명령 큐(queue)(명령 프리페치버퍼)를 설치한 마이크로 프로세서가 개시된다.
상기 종래기술과 같이 루프명령을 명령 캐시 메모리나 명령 프리페치버퍼에서 추출하지 않도록 하여, 명령의 순차 실행을 고속화하도록 하는 기술은, 루프명령을 다수 이용하는 처리에서는 효과적이지만, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스의 명령을 순차 실행하는 처리의 경우에는, 루프명령을 추출하여 금지하는 구성을 채용하여도, 그것에 걸맞는 큰 효과는 얻기 어렵다. 본 발명자의 검토에 의하면, 그와 같은 경우에 통상의 명령 캐시 메모리를 이용하는 것조차 실질적으로 무의미한 경우인 것이 명백해졌다.
즉, 본 발명자는, 휴대전화 시스템에서의 프로토콜(protocol) 처리 혹은 시스템 제어처리와 같은 서브루틴 프로그램의 실행에 대하여 검토하였다. 상기 서브루틴 프로그램에 의한 상기 프로토콜 처리 혹은 시스템 제어처리는 복잡하며 프로그램 규모도 큰 처리이므로 그 처리 프로그램을 데이터 프로세서의 내장 ROM에 저장하는 것은 현실적이지 못하다. 한편, 외부 메모리의 액세스 속도는 데이터 프로세서에 의한 데이터 처리속도에 비해서 늦고, 그 차이를 흡수하기 위해 데이터 프로세서에 명령 캐시 메모리를 채용할 수 있다. 그러나, 상기 프로토콜 처리 혹은 시스템 제어처리는, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스의 명령을 순차적으로 실행하는 처리가 다수 이용되며, 그 결과, 캐시 메모리를 채용하여도 그다지 효과를 기대할 수 없다.
그래서 본 발명자는 캐시 메모리를 채용하지 않고, 그 대신에 비교적 구성이 간단한 명령 프리페치로 대처하는 것을 검토하였다. 그 경우에는, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스 명령을 순차적으로 실행하는 처리가 다수 이용된다는 특질을 고려하면, 루프명령의 추출 금지와 같은 구성은 전혀 필요하지 않고, 그리고, 프리페치된 명령과 그 명령의 어드레스와의 대응책을 캐시 메모리의 어드레스 태그에 의한 제어 기구(機構)나 카운터에 의한 리드ㆍ라이트 포인터 제어기구 보다도 간소화하는 것이, 비용대 효과의 관점보다 필요한 것이 본 발명자에 의해 발견되었다.
또한 본 발명자에 의해 검토를 행한 바, 명령 프리페치를 행하는 경우에 고정길이의 버스트 전송기구를 사용한 경우, 분기명령에 의해 명령분기가 발생한 경우에 불필요해지는 명령도 프리페치 하게 되므로, 결과적으로 오버헤드가 발생하게되는 것이 판명되었다.
또한 명령 프리페치 동작을, 분기명령의 실행 혹은 어드레스의 하위비트와 통상의 명령페치 요구의 조합으로 행하는 경우, 프리페치된 명령을 모두 실행한 경우에는, 다음의 명령 프리페치 동작에 의해 외부 메모리에서 명령페치가 완료하기까지 프로그램의 실행이 중단한다는 문제점이 있는 것이 판명되었다.
또한, 외부 메모리에 액세스 하는 경우를 보다 상세하게 검토하면, 명령코드의 삽입(명령페치)에는 명령 프리페치가 유효하지만, 오퍼랜드로서 기술된 데이터의 삽입(데이터 페치)에서는 역시 외부 메모리로의 액세스가 발생하는 경우가 있고, 그 경우에는 외부 메모리에서 데이터페치가 완료하기까지 프로그램의 실행이 중단한다는 문제점이 있는 것이 판명되었다.
그래서 본 발명자는, 이들 명령 프리페치에 대처함으로써 새로이 발견된 문제점에 관해서도, 명령 프리페치 방법의 연구에 의해 대처하는 것을 검토하였다. 이 경우에도, 프리페치된 명령과 그 명령의 어드레스와의 대응책을 캐시 메모리의 어드레스 태그에 의한 제어기구나 카운터에 의한 리드ㆍ라이트 포인터 제어기구 보다도 간소화하는 것이, 비용대 효과의 관점에서 필요한 것이 본 발명자에 의해 발견되었다.
본 발명의 다른 목적은, 비교적 간단한 구성에 의해 외부에서 명령 프리페치를 행하는 수 있으며, 명령의 실행 효율을 향상시킬 수 있는 데이터 프로세서를 제공하는데 있다.
본 발명의 다른 목적은, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스 명령을 외부 메모리에서 페치하여 순차적으로 실행하는 처리의 고속화를 데이터 프로세서에서의 비교적 구성이 간단한 명령 프리페치의 기구에 의해 실행하는 수 있는 데이터 처리시스템을 제공하는데 있다.
본 발명의 그 이외의 목적은, 연속적인 명령 어드레스의 실행 순서를 변경하는 분기처리가 적은 서브루틴 프로그램을 실행하는 데이터 처리시스템에서의 데이터 처리효율을 비교적 낮은 비용으로 향상시키는데 있다.
본 발명의 상기 및 그 이외의 목적과 신규한 특징은 본 명세서의 기술 및 첨부도면에서 명백해질 것이다.
도 1은 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 2는 데이터 프로세서에 내장된 CPU의 어드레스 맵(map),
도 3은 데이터 프로세서에 의한 명령페치와 프리페치의 제어수순을 도 4와 함께 나타내는 플로우 차트,
도 4는 데이터 프로세서에 의한 명령페치와 프리페치의 제어수순을 도 3과 함께 나타내는 플로우 차트,
도 5는 외부 메모리로서 페이지 모드를 가지는 플래시 메모리를 채용한 경우해당 페이지 모드에 의한 메모리ㆍ리드 동작의 타이밍 차트,
도 6은 외부 메모리로서 버스트 동작을 가지는 SDRAM을 채용한 경우 해당 버스트ㆍ리드 동작의 타이밍 차트,
도 7은 도 1의 데이터 프로세서를 적용한 휴대전화 시스템의 블록도,
도 8은 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 9는 도 8의 버스트 전송길이 설정부의 일예를 나타내는 블록도,
도 10은 도 9의 버스트 전송길이 설정부에서 버스트 전송길이 설정수순을 나타낸는 플로우 차트,
도 11은 도 8의 버스트 전송길이 설정부에서 설정되는 버스트 전송길이의 변화의 일예를 나타내는 설명도,
도 12는 데이터 프로세서에 의한 명령페치와 프리페치의 제어수순을 도 13과 함께 나타내는 플로우 차트,
도 13은 데이터 프로세서에 의한 명령페치와 프리페치의 제어수순을 도 12와 함께 나타내는 플로우 차트,
도 14는 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 15는 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 16은 도 15의 복수의 프리페치 버퍼 테이블을 가지는 경우의 데이터 프로세서에 의한 명령페치와 명령버퍼에 저장되는 명령과 외부 메모리로의 액세스를 나타내는 타이밍 차트,
도 17은 분기명령과 비분기명령의 각각의 경우에서의 명령버퍼의 동작을 나타내는 플로우 차트,
도 18은 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 19는 도 18의 명령 디코더를 가지는 경우의 분기명령의 검출을 포함하여,데이터 프로세서에 의한 명령페치와 명령버퍼에 저장되는 명령과 외부 메모리로의 액세스를 나타내는 타이밍 차트,
도 20은 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 21은 도 20의 어드레스 계산기를 가지는 경우의 분기명령의 검출을 포함하여, 데이터 프로세서에 의한 명령페치와 명령버퍼에 저장되는 명령과 외부 메모리로의 액세스를 나타내는 타이밍 차트,
도 22는 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도,
도 23은 도 22의 오퍼랜드 페치기능을 가지는 경우의 분기명령의 검출을 포함하여, 데이터 프로세서에 의한 명령페치와 명령버퍼에 저장되는 명령과 외부 메모리로의 액세스를 나타내는 타이밍 차트,
도 24는 본 발명에 관한 데이터 처리시스템의 일예를 데이터 프로세서와 함께 나타내는 블록도이다.
본원에서 개시되는 발명중 대표적인 것의 개요를 간단하게 설명하면 하기와 같다.
즉, 데이터 프로세서는, 명령을 페치하고, 페치한 명령을 해독하여, 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거하여 외부버스 액세스를 제어하는 버스 컨트롤러를 가진다. 상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로를 구비한다. 이때, 상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트를 채택할 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치 하여, 명령의 프리페치에 응답해서 대응 플래그를 유효한(valid) 상태로, 명령버퍼에 프리페치 되어 있는 명령의 출력에 응답하여 대응 플래그를비유효한(invalid) 상태로 제어한다.
상기 수단에서는, 명령버퍼로의 프리페치는 상기 명령 어드레스의 하위 복수비트의 값이 어느 한 개의 소정치가 되었을 때만 행하면 충분하다. 예를 들면, 명령 프리페치 제어의 간소화를 고려하면, 상기 하위 복수비트에 의한 선두치의 명령 어드레스에 대한 명령페치가 있었을 때, 그 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령 프리페치를 행하면 된다. 더우기, 분기명령에 의해 명령 어드레스 계열이 변경될 가능성을 고려하면, 분기명령에 의한 분기선(先) 명령의 명령페치가 있었을 때, 당해 명령페치 어드레스의 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령 프리페치를 행하면 된다.
상기 데이터 프로세서를 이용한 데이터 처리시스템은, 데이터 프로세서의 외부에, 상기 데이터 프로세서의 동작 프로그램을 저장하고, 상기 버스 컨트롤러에 의한 외부버스 액세스의 대상이 되는 메모리를 가진다.
상기 메모리는, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스의 명령을 순차적으로 실행하는 처리가 다수 이용된 프로그램을 보유한다. 이와 같은 프로그램을 실행하는 경우는 데이터 프로세서에 캐시 메모리를 채용하여도 그다지 효과를 기대할 수 없다.
이 때, 상기 수단에 관한 데이터 프로세서에 의하면, 프리페치를 위해 외부에서 판독한 명령을 어느 명령버퍼의 버퍼 엔트리로 하면 되는가는, 그 명령 어드레스의 소정의 하위 복수비트의 값에 의해 일의적으로 결정되므로, 프리페치의 제어가 간단하다. 이 명령 프리페치를 위한 구성은, 캐시 메모리의 어드레스 태그에의한 제어기구나 FIFO 버퍼의 카운터에 의한 리드ㆍ라이트 포인터 제어기구 보다도 간소하게 실현하는 것이 가능하다.
또한, 상기에서 할당된 명령 어드레스의 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로, 프리페치되어 있는 버퍼 엔트리의 출력에 응답하여 대응 플래그를 비유효한 상태로 제어한다. 이것에 의해, 버퍼 엔트리가 유효하여 페치 가능한 것을 플래그의 유효한 상태에 의해 인식할 수 있으며, 명령버퍼의 버퍼 엔트리가 무효하여 새로운 버퍼 엔트리의 로드가 가능한 것을 플래그의 비유효한 상태에 의해 인식할 수 있다.
상기 버퍼 제어회로는, 상기 인식을 이용하면, 상기 명령 실행수단이 페치해야 할 명령 어드레스의 상기 하위 복수비트의 값에 대응하여 할당되어 있는 명령버퍼의 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼가 보유하는 명령을 상기 명령 실행수단을 향해 출력시키면 된다. 또한, 상기 버퍼 제어회로는, 상기 플래그가 비유효한 상태인 것을 조건으로 대응하는 명령버퍼로의 명령 프리페치를 가능하게 하면 된다.
연속적인 명령 어드레스의 실행순서를 변경하는 분기(分岐)와 같은 처리의 발생을 고려하면, 상기 버퍼 제어회로는, 상기 명령 실행수단에 의한 연속적인 명령 어드레스의 실행순서 변경의 지시에 응답하여, 모든 상기 플래그를 비유효한 상태로 초기화하면 된다.
상기 명령버퍼를, 상기 명령 실행수단에 의한 명령페치 단위의 비트 수로 구성하면, 명령 실행수단에 의한 명령버퍼에서의 명령페치의 제어가 용이해진다.
상기 명령버퍼에 명령 프리페치를 행하는 경우에, 명령 어드레스의 하위 복수비트에 의한 최종 어드레스까지를 프리페치하지 않고, 레지스터 등에 설정된 정보에 의해 프리페치하는 최종 어드레스를 결정하고, 또는 분기명령 등의 출현빈도에 의거하여 프리페치하는 최종 어드레스를 결정하도록 함으로써, 분기명령에 의해 프리페치하여도 불필요한 명령의 수를 제어 가능하게 된다.
또한, 분기명령에 의한 분기뿐만 아니라, 인터럽트 처리 발생을 계기로 하여 명령 프리페치를 정지하도록 하여도 된다. 인터럽트 처리가 발생한 경우, 필요에 따라, 프로그램의 실행이 중단되며, 인터럽트 처리 프로그램의 실행이 행해지기 위해, 프리페치된 명령이 불필요해지기 때문이다.
상기 복수개의 명령버퍼를 1 단위로 하고, 적어도 2 단위분의 명령버퍼를 구비하도록 한다. 이 때 상기 제1 단위의 명령버퍼(제1 버퍼 테이블의 명령버퍼)의 각각에 프리페치한 명령을 상기 명령 실행수단에 의해 실행하고 있는 동안에, 상기 버퍼 제어회로는 상기 제1 단위의 명령버퍼의 마지막 명령 어드레스에 연속되는 명령 어드레스에서의 명령을, 제2 단위의 명령버퍼(제2 버퍼 테이블의 명령버퍼)의 각각에 프리페치해 가도록 하여도 된다. 이것에 의해, 상기 명령 실행수단에 의해 상기 제1 단위의 명령버퍼에 프리페치된 명령을 모두 실행 완료한 후, 상기 제2 단위의 명령버퍼에 프리페치된 명령을 실행하도록 제어함으로써, 명령버퍼에 외부 메모리에서 명령 프리페치를 행하는 시간, 프로그램의 실행이 중단하지 않고, 명령의 실행이 가능해진다.
상기 명령버퍼 혹은 상기 버퍼 제어회로에 명령 디코드 기능을 갖게 하고, 명령버퍼에 명령 프리페치하는 명령을 디코드하도록 하면 된다. 이것에 의해 명령버퍼에 프리페치된 명령이 분기명령인지의 여부를 판명하며, 프리페치된 명령이 분기명령인 경우는, 이후의 명령의 프리페치를 정지함으로써, 프리페치하여도 불필요해지는 명령의 수를 제어 가능하게 된다.
또한, 상기 명령버퍼 혹은 상기 버퍼 제어회로에 어드레스 계산기능을 갖게 하고, 분기명령에 의해 분기하는 앞의 명령 어드레스를 어드레스 계산에 의해 판명하는 경우, 분기하는 앞의 명령을 프리페치해 둠으로써, 새롭게 외부 메모리에서 명령버퍼에 명령 프리페치를 행하는 시간, 프로그램의 실행을 중단하지 않고, 명령의 실행이 가능해진다. 더하여, 적어도 2 단위의 명령버퍼를 구비해 두고, 분기명령의 명령 어드레스에 연속하는 어드레스의 명령과, 분기하는 앞의 명령을 프리페치해 둠으로써, 분기명령에 의해 분기한 경우과 분기하지 않았던 경우의 각각에 있어서, 새롭게 외부 메모리에서 명령버퍼에 명령 프리페치를 행하는 시간, 프로그램의 실행을 중단하지 않고, 명령의 실행이 가능해진다.
상기 명령버퍼 혹은 상기 버퍼 제어회로에 명령 디코드 기능과 오퍼랜드 버퍼를 가지고, 오퍼랜드를 가지는 명령을 프리페치한 경우에, 당해 오퍼랜드에 대해서도 프리페치를 가능하게 하도록 한다. 오퍼랜드가 어드레스 수식된 이미디어트(immediate) 데이터 등인 경우, 상기 이미디어트 데이터를 페치하기 위해 외부 메모리로의 액세스가 발생하기 때문에, 명령 프리페치시 상기 이미디어트 데이터도 프리페치해 둠으로써, 프로그램의 실행이 중단되지 않고, 명령의 실행이가능해 진다.
상기 데이터 프로세서에 캐시 메모리를 더 갖게 함으로써, 이미 실행한 어드레스로의 분기나 루프처리, 게다가 프로토콜 처리 자체의 실행시, 캐시 메모리에 저장되어 있는 프로그램의 일부 또는 전부를 재이용 가능하게 함으로써, 외부 메모리로의 액세스에 의한 프로그램의 실행 중단을 감소시키는 것이 가능해진다.
본 발명을 휴대전화의 관점에서 설명한다. 휴대전화는 데이터 처리장치, 메모리 및 상기 데이터 처리장치와 메모리에 접속되는 버스를 가지며, 상기 메모리에는, 적어도 프로토콜 제어 또는 시스템 제어를 위한 프로그램이 저장된다. 상기 데이터 처리장치는, 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령실행부와, 상기 명령실행부에 의한 명령 페치단위의 비트 수를 가지는 복수개의 명령버퍼, 각각의 명령버퍼에 대응한 플래그 및 버퍼 제어회로를 가지며 상기 명령실행부에서의 신호에 의거하여 버스를 통해서 메모리로의 액세스를 제어하는 버스 컨트롤러를 가진다. 상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트를 받아들일수 있는 고유치를 할당한다. 이 버퍼 제어회로는 명령 어드레스의 하위 복수비트에 의해 표현되는 최소치에 해당하는 명령 어드레스로의 명령페치가 있었던 경우, 당해 명령 어드레스 다음의 명령 어드레스에서, 당해 하위 복수비트에 의해 표현되는 최후 명령 어드레스까지의 명령을, 상기 복수개의 명령버퍼의 명령 어드레스에 대응하는 각각의 명령버퍼에 저장하고, 각각의 명령버퍼에 대응한 각각의 플래그를 제1 상태로 한다. 또한 버퍼 제어회로는, 상기 명령실행부에서의 명령페치 요구에 따라, 상기 명령실행부가 출력하는 명령 페치해야 할 명령어드레스의 하위 복수비트에 대응하는 명령버퍼에 대응하는 플래그가 제1 상태라면, 당해 명령버퍼에 저장되어 있는 명령을 상기 명령실행부로 출력하고, 당해 플래그를 제2 상태로 한다.
상기 명령실행부가 출력하는 명령 페치해야 할 명령 어드레스의 하위 복수비트에 대응하는 명령버퍼에 대응하는 플래그가 제2 상태인 경우, 당해 명령 어드레스 다음의 명령 어드레스에서, 당해 하위 복수비트에 의해 표현되는 최후 명령 어드레스까지의 명령을, 상기 복수개의 명령버퍼의 명령 어드레스에 대응하는 명령버퍼의 각각에 저장하여, 각각의 명령버퍼에 대응한 각각의 플래그를 제1 상태로 하여도 된다.
상기에 있어서, 상기 명령실행부가 출력하는 명령 페치해야 할 명령 어드레스의 명령내에, 명령 어드레스의 상기 하위 복수비트에 의해 표현되는 최소치에 해당하는 명령 어드레스의 명령 또는 명령 어드레스의 상기 하위 복수비트에 의해 표현되는 값의 대응 명령버퍼 플래그가 제2 상태로 되어 있는 명령 어드레스의 명령은, 메모리에서 판독된 후, 명령버퍼에 저장되지 않고, 그대로 상기 명령실행부로 공급되면 된다.
상기 명령실행부는, 페치한 명령의 종류에 따라 소정의 신호를 출력한다. 상기 버퍼 제어회로는, 상기 명령실행부가 출력하는 제1 신호에 따라, 상기 복수의 명령버퍼의 각각에 대응한 플래그의 전부를, 제2 상태로 하여도 된다. 상기 명령실행부가, 상기 제1 신호를 출력하는 명령은, 예를 들면, 분기명령이다.
도 1에는 본 발명에 관한 데이터 처리시스템의 일예가 나타난다. 동도에는데이터 프로세서(1)와 외부 메모리(2)가 대표적으로 나타난다.
데이터 프로세서(1)는 대표적으로 나타난 중앙처리장치(CPU)(3) 및 버스 컨트롤러(BSC)(4)를 가진다. 상기 CPU(3)는 명령을 페치하고, 페치한 명령을 해독하여, 명령을 실행하는 명령 실행수단을 구성한다. 상기 버스 컨트롤러(4)는, 상기 CPU(3)에 의한 지시에 의거하여 외부 메모리(2) 등에 대한 외부버스 액세스를 제어한다.
상기 CPU(3)는, 산술논리 연산기(ALU) 등으로 대표되는 연산부(10), 범용 레지스터(11), 프로그램 카운터(12), 명령 디코더(13) 및 메모리 액세스 커맨드 발생부(14)를 가진다. 상기 프로그램 카운터(12)는 다음에 실행해야 할 명령 어드레스를 보유한다. 상기 메모리 액세스 커맨드 발생부(14)는, 메모리 액세스 동작을 위한 제어정보를 명령 디코더(13)에서 입력하고, 명령페치시에는 프로그램 카운터(12)에서 내부 어드레스 버스(16)에 명령 어드레스가 출력되는데 동기하고, 또, 데이터 액세스시에는 범용 레지스터(11)에서 내부 어드레스 버스(16)에 데이터 어드레스가 출력되는데 동기하며, 메모리 액세스 커맨드(18)를 메모리 액세스 커맨드 버스(17)로 출력한다. 상기 메모리 액세스 커맨드(18)는, 리드/라이트 동작의 종별을 나타내는 정보, 액세스 데이터 폭(병렬 데이터 비트 수)을 나타내는 정보, 명령페치 사이클인 것을 나타내는 정보, 명령페치가 강제 명령페치인가 통상 명령페치인가를 나타내는 정보를 포함한다. 강제 명령페치란, 명령 실행순서를 선형의 어드레스 열(列)에서 다른 어드레스 열로 변경하는 분기명령에 의한 분기선 명령의 페치를 의미한다. 통상 명령페치란, 전회의 명령페치 어드레스에 대하여 금회의 명령페치 어드레스가 선형의 어드레스열로 연속적인 어드레스가 되어 있는 명령페치를 의미한다.
메모리 액세스 커맨드에 의해 지시되는 액세스가 명령페치라면, 버스 컨트롤러(4)를 통해서 리드된 명령이 내부 데이터버스(15)를 통하여 명령 디코더(13)로 전송된다. 명령 디코더(13)는 그 명령을 해독하고, 해독 결과에 따라, 외부 메모리(2)에서 범용 레지스터(11)에 오퍼랜드를 로드시키며, 연산부(10)에 오퍼랜드를 연산시켜, 연산결과를 외부 메모리(2)에 저장하는 처리 등을 제어하여, 그 명령을 실행한다.
상기 메모리 액세스 커맨드에 의해 지시되는 액세스가 데이터 액세스라면, 버스 컨트롤러(4)를 통해서 리드된 데이터가 내부 데이터버스(15)를 통해서 범용 레지스터(11)로 전송되거나, 혹은 범용 레지스터(11)에서 내부 데이터버스(15)로 출력된 라이트 데이터가 버스 컨트롤러(4)를 통해서 외부 메모리(2)에 기록된다.
상기 CPU(1)의 어드레스 맵은 도 2에 예시되며, H'00000000 ∼ H'0FFFFFFF까지가 외부 메모리 공간이고, H'10000000 ∼ H'FFFFFFFF까지가 내장 메모리 및 주변모듈 공간 등이 된다. 외부 메모리 공간은 소정 용량마다 순차 CS0 ∼ CS3 공간이 된다. 특히 제한되지 않지만, 외부 메모리 공간(CS0 ∼ CS3)에 접속 가능한 메모리 디바이스의 종류는 ROM(read only memory), SRAM(static random access memory), 버스트 ROM, DRAM(dynamic random access memory), SDRAM(synchronous DRAM) 중에서 미리 선택된 수 종류로 결정되어 있다. 상기 외부 메모리(2)는 그들 외부 메모리 공간(CS0 ∼ CS3)에 배치된 메모리 디바이스로 구성된다. 외부 메모리(2)란, 4개의 메모리 공간(CS0 ∼ CS3)에 배치된 메모리 디바이스를 총칭하는 명칭이다. 특히 제한되지 않지만, 외부 프로그램 메모리 영역은 메모리 공간(CS0)의 선두에서 일정 영역에 할당된다.
상기 버스 컨트롤러(4)는, 외부 메모리(2)의 메모리 공간(CS0 ∼ CS3)마다 액세스 제어를 행하단. 각각의 메모리 공간(CS0 ∼ CS3)의 메모리 칩의 액세스 제어에 필요한 액세스 제어신호(25)는 외부 메모리 액세스 제어부(20)가 어드레스 공간마다 생성한다. 예를들면, DRAM이 배치되어 있는 메모리 공간(CS2)을 액세스 대상으로 할 때는 외부 메모리 액세스 제어부(20)는 로 어드레스 스트로브 신호, 컬럼 어드레스 스트로브 신호, 라이트 인에이블 신호 등을 출력한다. SRAM이 배치되어 있는 메모리 공간(CS3)을 액세스 대상으로 할 때는 외부 메모리 액세스 제어부(20)는 칩 인에이블 신호, 리드/라이트 신호 등을 출력한다.
어느 메모리 공간에 어떠한 메모리 디바이스를 할당하는가는 외부 메모리 액세스 설정 레지스터(21)의 설정치로 결정된다. 예를 들면, 메모리 디바이스의 특성(필요한 웨이트 스테이트 사이클 수, 병령 입출력 데이터 비트 수 등)을 나타내는 제어코드 정보(메모리 디바이스 제어코드)(26)의 설정영역이 메모리 공간별로 설정되며, 설정된 메모리 디바이스 제어코드(26)는 외부 메모리 액세스 제어부(20)에 공급된다.
액세스 대상이 어느 메모리 공간인가는, 내부 어드레스 버스(16)상의 어드레스를 메모리 액세스 어드레스 디코더(22)로 해독하여, 그 해독결과를 외부 메모리 액세스 제어부(20)에 공급하는 것에 의해 명백해진다. CPU(3)에서의 액세스 요구가데이터 액세스인가 명령페치인가, 또는, 리드동작인가 라이트 동작인가 등은, 메모리 액세스 커맨드 버스(17)상의 메모리 액세스 커맨드를 메모리 액세스 커맨드 디코더(23)로 해독하여, 그 결과가 외부 메모리 액세스 제어부(20)에 공급된다.
외부 메모리 액세스 제어부(20)는 그들 입력정보를 참조하여, 외부 메모리(2)의 액세스 대상 메모리 디바이스에, 칩 선택 등의 액세스 제어정보를 주어, 어드레스/데이터 입출력 제어부(24)를 통해서 어드레스 신호의 공급 및 데이터의 입출력을 제어한다. 데이터 액세스에서는, 리드 데이터 및 라이트 데이터는 데이터 패스(27)을 통과한다.
버스 컨트롤러(4)는 명령 프리페치를 위해, 예를 들면 3개의 명령버퍼(Buf4, Buf8, BufC)와, 각각의 명령버퍼에 고유의 플래그(Flg4, Flg8, FlgC)와, 버퍼 컨트롤러(30)와, 입력단 셀렉터(31)와, 출력단 셀렉터(32)를 구비한다. 상기 입력단 셀렉터(31)는 1:4로 출력 선택을 행하고, 출력단 셀렉터는 4:1로 입력 선택을 행한다. 입력단 셀렉터(31)의 출력과 출력단 셀렉터의 입력과의 사이에는 스루(through)경로(33), 명령버퍼(Buf4, Buf8, BufC)가 병렬 배치되어 있다.
특히, 제한되지 않지만, CPU(3)의 명령셋트는 16비트 고정길이이며, CPU(3)는 2명령 단위(32비트 단위)로 명령페치를 행한다. 또한, CPU(3)가 출력하는 어드레스 신호는 바이트(8비트)를 최소단위로 하는 바이트 어드레스이다. 이것에 따라서, 상기 명령버퍼(Buf4, buf8, BufC)는 각각 32비트이다. 상기 바이트 어드레스인 어드레스 신호의 하위 4비트에 착안하면 연속하는 16 바이트분의 명령을 관리할 수 있다. 그래서, 명령버퍼(Buf4)는 하위 4비트가 H'4 (=B'0100)의 명령 어드레스의프리페치 영역으로서 할당되며, 명령버퍼(Buf8)는 하위 4비트가 H'8(=B'1000)의 명령 어드레스의 프리페치 영역에 할당되고, 명령버퍼(BufC)는 하위 4비가 H'C (=B'1100)의 명령 어드레스의 프리페치 영역에 할당된다. 이 명령버퍼의 어드레스 할당논리는 버퍼 컨트롤러(30)에 형성된다.
상기 메모리 액세스 커맨드 디코더(23)에 의해 명령페치의 지시가 검출되면, 상기 버퍼 컨트롤러(30)는, 그 명령페치의 지시가 상기 통상 명령페치인가 강제 명령페치인가를 상기 메모리 액세스 커맨드 디코더(23)의 디코드 출력에 의거하여 판정한다. 또한, 버퍼 컨트롤러(30)는 내부 어드레스 버스(16)의 하위 4비트를 입력하여 그 값을 판정한다.
버퍼 컨트롤러(30)는, 명령페치의 지시가 통상 명령페치이고, 명령 어드레스의 상기 하위 4비트에 의한 선두치(H'0)의 명령 어드레스에 대한 명령페치인 것을 판별하면, 당해 선두의 명령 어드레스에 대한 외부 메모리(2)에서의 명령페치와, 그 후속 어드레스에 대한 명령버퍼(Buf4, Buf8, BufC)로의 명령의 프리페치를 제어한다. 즉, 버퍼 컨트롤러(30)는, 상기 외부 메모리 액세스 제어부(20)에 어드레스/데이터 입출력 제어부(24)를 통해서 메모리 공간(CS0)에서 명령을 32비트 리드시켜, 리드한 명령을 입력단 셀렉터(31)를 향해 출력시킨다. 버퍼 컨트롤러(30)는, 입력단 셀렉터(31)에 공급되는 명령을 스루(through)경로(33)에 안내하고, 출력단 셀렉터(32)에서 스루경로를선택하여, 당해 명령을 내부 데이터버스(15)로 출력하여, 명령 디코더(13)에 전송 가능하게 한다. 그 후, 버퍼 컨트롤러(30)는, 그 명령페치 어드레스에 대하여 하위 4비트를 순차(H'4, H'8, H'C)적으로 변경하여, 각각의 명령 어드레스를 순차 명령버퍼(Buf4, Buf8, BufC)에 저장한다. 이때의 외부 메모리(2)에 대한 액세스 제어는, CPU(3)가 외부 메모리의 액세스를 요구하고 있지 않을 때, 버퍼 컨트롤러(30)가 외부 메모리 액세스 제어부(20)를 통해서 지시한다. 버퍼 컨트롤러(30)는 명령버퍼(Buf4, Buf8, BufC)에 엔트리를 저장할 때마다, 대응하는 플래그(Flg4, Flg8, FlgC)를 유효한 상태(셋트 상태)로 한다.
상기 버퍼 컨트롤러(30)는, 명령페치의 지시가 통상 명령페치이고, 명령 어드레스의 상기 하위 4비트의 값이 H'4, H'8, H'C중 하나인 경우에는 외부 메모리(2)에서 명령페치를 행하지 않고, 이미 프리페치되어 있는 명령버퍼(Buf4, Buf8, BufC) 중에서 대응하는 명령버퍼의 출력을 출력단 셀렉터(32)로 선택하여, 명령페치에 필요한 명령을 내부 데이터버스(15)로 출력하여, 명령 디코더(13)로 전송 가능하게 한다. 버퍼 컨트롤러(30)는, 버퍼 엔트리를 출력한 명령버퍼에 대응하는 플래그를 비유효한 상태(리셋 상태)로 한다.
버퍼 컨트롤러(30)는, 명령페치의 지시가 강제 명령페치인 경우에는, 먼저 플래그(Flg4, Flg8, FlgC)를 비유효한 상태로 강제하다. 다음에, 그 명령 어드레스의 상기 하위 4비트의 값에 관계없이, 그 명령 어드레스에 대한 외부 메모리(2)에서의 명령페치와, 그 후속 어드레스에 대한 명령버퍼로의 명령을 프리페치를 제어한다. 즉, 버퍼 컨트롤러(30)는, 상기 외부 메모리 액세스 제어부(20)에, 어드레스/데이터 입출력 제어부(24)를 통해 메모리 공간(CS0)에서 강제 명령페치에 대한 명령을 리드시켜, 리드한 명령을 입력단 셀렉터(31)를 향해 출력시킨다. 버퍼 컨트롤러(30)는, 입력단 셀렉터(31)에 공급되는 명령을 스루경로(33)로 안내되어,출력단 셀렉터(32)에서 스루경로(33)를 선택하며, 당해 명령을 내부 데이터버스(15)로 출력하여, 명령 디코더(13)에 기록 가능하게 한다. 그후, 버퍼 컨트롤러(30)는, 그 강제 명령페치의 어드레스에 대해 하위 4비트를 H' C까지 변경하여, 각각의 명령 어드레스를 대응하는 명령버퍼에 저장한다. 강제 명령페치 어드레스의 하위 4비트가 H' 4라면, 명령 어드레스의 하위 4비트를 H' 8, H' C로 순차 변경하여 명령버퍼(Buf8, BufC)에 프리페치가 행해진다. 이때의 외부 메모리(2)에 대한 액세스 제어는, CPU(3)가 외부 메모리의 액세스를 요구하지 않을 때, 버퍼 컨트롤러(30)가 외부 메모리 액세스 제어부(20)를 통해 지시한다. 상기와 같이 버퍼 엔트리가 저장된 명령버퍼의 대응 플래그는 유효한 상태(셋트 상태)로 된다.
도 3 및 도 4에는 데이터 프로세서(1)에 의한 명령페치와 프리페치의 제어 수순이 예시되어 있다.
외부 메모리(2)에 대한 액세스 요구가 데이터 액세스의 경우에는 발행된 어드레스에 대한 리드/라이트 동작이 행해진다(S1).
데이터 액세스가 없는 경우에는 액세스 요구가 강제 명령페치인가 판정되고(S2), 강제 명령페치이라면 플래그(Flg4, Flg8, FlgC)가 리셋 상태로 된다(S3). 그리고, 그때의 페치 어드레스의 하위 4비트의 값이 판정된다(S4~S7). 예를 들면 강제 명령페치의 명령 어드레스가 16n+0번지(하위 4비트 = H' 0)일때, 당해 명령 어드레스 16n+0번지의 명령이 외부 메모리(2)에서 명령 디코더(13)로 넘겨진다(S8). 이것에 의해 CPU(3)는 페치한 명령을 해독하여 실행 가능하게 된다. 한편, 버스 컨트롤러(4)는, 그후, CPU(3)에 의한 외부 메모리(2)의 액세스가 없을때, 후속의 명령 어드레스 16n+4번지(하위 4비트 = H' 4), 16n+8번지(하위 4비트 = H' 8), 16n+C번지(하위 4비트 = H' C)에서 대응하는 명령버퍼(Buf4, Buf8, BufC)에 명령을 프리페치하고, 대응하는 플래그(Flg4, Flg8, FlgC)에 명령을 페치하여, 대응하는 플래그(Buf4, Buf8, BufC)를 셋트 상태로 한다(S9 ~ S14). 강제 명령페치의 명령 어드레스가 16n+4번지, 16n+8번지일때도 당해 번지의 명령이 디코더에 공급되어(S15, S20), 후속의 명령 어드레스에서 명령버퍼에 명령 프리페치가 행해지며, 대응하는 플래그가 셋트된다(S16 ~ A19, S21 ~ S22). 강제 명령페치의 명령 어드레스가 16n+C번지일 때는 당해 번지의 명령이 디코더에 페치되어(S23), 명령버퍼로의 명령 프리페치는 행해지지 않는다.
스텝(S2)의 판정 결과가 통상 명령페치일 때에는, 도 4에 나타내는 바와 같이, 그때의 페치 어드레스의 하위 4비트의 값이 판정된다(S30 ~ S33). 예를 들면 통상 명령페치의 명령페치의 명령 어드레스가 16n+0번지(하위 4비트 = H' 0)일때, 당해 명령 어드레스 16n+0번지의 명령이 외부 메모리(2)에서 명령 디코더(13)에 넘겨진다(S34). 이것에 의해 CPU(3)는 페치한 명령을 해독하여 실행 가능하게 된다. 한편, 버스 컨트롤러(4)는, 그후, CPU(3)에 의한 외부 메모리(2)의 액세스가 없을 때, 후속의 명령 어드레스 16n+4번지(하위 4비트 = H' 4), 16n+8번지(하위 4비트 = H' 8), 16n+C번지(하위 4비트 = H' C)에서 대응하는 명령버퍼(Buf4, Buf8, BufC)에 명령을 프리페치하여, 대응하는 플래그(Flg4, Flg8, FlgC)를 셋트 상태로 한다(S34 ~ S40). 통상 명령페치의 명령 어드레스가 16n+4번지, 16n+8번지, 16n+C번지일 때는, 당해 명령번지의 하위 4비트의 값에 대응하는 플래그(Flg4, Flg8, FlgC)가 셋트 상태가 되는 것을 대기하고(S41 ~ S43), 대응하는 명령버퍼(Buf4, Buf8, BufC)에서 명령이 디코더(13)로 공급되며(S44 ~ S46), 공급 후에 대응하는 플래그가 리셋된다(S47 ~ A49).
도 5에는 외부 메모리(2)의 메모리 공간(CS0)에 배치된 메모리 디바이스의 동작 타이밍이 예시된다. 동 도면에 나타내는 동작 타이밍은, 예를 들면 페이지 모드를 가지는 플래시 메모리의 페이지 모드에 의한 메모리·리드 동작을 나타낸다. 플래시 메모리는, 소스, 드레인, 플로팅 게이트 및 컨트롤 게이트를 가지는 메모리 셀 트랜지스터를 기억소자로 하는 전기적으로 재기록 가능한 반도체 기억장치이다. 도 5에서 어드레스 A[19:3]는 메모리의 17비트의 페이지 어드레스 신호를 나타낸다. 3비트의 페이지내 어드레스 신호 A[2:0]를 순차 전환하여 액세스하면, 동일 페이지 내의 액세스를 고속화할 수 있다. 또, 분기명령이 거의 존재하지 않고, 리니어로 명령 실행되는 프로그램의 특성을 감안하면, BufC에 저장한 명령의 출력에 의해, CE나 다음의 명령의 페이지 어드레스 등을 출력해 둠으로써, 데이터의 판독까지의 시간을 단축해 두는 것이 가능해진다. 명령 프리페치를 고려하면, 프로그램을 저장하는 상기 메모리 공간(CS0)의 메모리 디바이스에 페이지 모드 첨부의 플래시 메모리를 채용하면, CPU(3)에 의한 외부 메모리 액세스의 빈 기간에서 행하지 않으면 안되는 명령 프리페치의 고속화에 기여할 수 있다. 또, 도 5에서 CE는 칩 선택을 지시하는 칩 인에이블 신호, OE는 출력동작을 지시하는 아웃풋 인에이블 신호, WE는 기록동작을 지시하는 라이트 인에이블 신호이다.
도 6에는 외부 메모리(20)의 메모리 공간(CS0)에 배치된 다른 메모리 디바이스의 동작 타이밍이 예시된다. 동 도면에 나타내는 동작 타이밍은, SDRAM의 버스트 동작에 의한 메모리·리드 동작을 나타낸다. SDRAM은, 선택 트랜지스터와 스토리지 용량으로 이루어지는 다이나믹형 메모리셀을 각각 가지는 메모리 뱅크를 복수개 가지고, 클록신호에 동기하여 공급되는 커맨드에 의거하여, 클록동기로 동작된다. 버스트 동작의 버스트 길이(연속적인 출력 데이터 수) 및 CAS 레이턴시(컬럼계 동작의 개시부터 데이터 출력까지의 클록사이클 수)는 SDRAM의 컨트롤 레지스터에 미리 설정된다.
SDRAM은 칩 셀렉트신호(/CS)의 로 레벨에 의해 커맨드 또는 데이터가 입력가능하게 된다. 칩 셀렉터신호(/CS)에 의해 커맨드 입력 가능하게 되었을 때 로 어드레스 스트로브 신호(/RAS), 컬럼 어드레스 스트로브 신호(/CAS), 라이트 인에이블 신호(/WE)의 신호 상태에 따라 뱅크 액티브 커맨드가 지정되면, 그것과 함께 입력되는 어드레스 신호에 의해 뱅크와 로 어드레스가 지정되며, 로 어드레스에 의해 워드선 선택동작이 행해진다. 다음에, 칩 셀렉트(/CS)에 의해 커맨드 입력 가능하게 되었을 때 로 어드레스 스트로브 신호(/RAS), 컬럼 어드레스 스트로브 신호(/CAS), 라이트 인에이블 신호(/WE)의 신호 상태에 따라 뱅크 리드 커맨드가 지정되면, 그것과 함께 입력되는 어드레스 신호에 의해 컬럼 어드레스가 지정되고, 비트선 선택 등의 컬럼계 동작이 행해져, 이것에 의해 판독된 데이터(D1)가 CAS 레이턴시에서 지정되는 클록신호 사이클의 경과에 동기하여 외부로 출력된다. 도 6의 예에서는 CAS 레이턴시는 2이다. 이후, 지정되어 있는 버스트 길이에 따른 횟수만큼 컬럼 어드레스를 내부 어드레스 카운터에서 순차 갱신하면서 컬럼계 동작이 반복되며, 예를 들면 버스트 길이 4인 경우에는, 데이터(D1)에 연속하여, 클록신호(CLK)의 클록사이클에 동기하여 데이터(D2, D3, D4)가 출력된다. 명령 프리페치를 고려하면, 프로그램을 저장하는 상기 메모리 공간(CS0)의 메모리 디바이스에, 버스트 동작 가능한 도 6의 SDRAM을 채용하면, CPU(3)에 의한 외부 메모리 액세스의 빈 기간에서 행하지 않으면 안되어 명령 프리페치의 고속화에 기여할 수 있다.
또, 분기명령 등이 거의 존재하지 않고, 리니어로 명령 실행이 행해지는 프로그램의 특성을 감안하면, BufC에 저장한 명령의 출력에 따라, 워드선 선택동작을 행해두고, 데이터의 판독까지의 시간을 단축하는 것이 가능해진다.
도 7에는 도 1의 데이터 프로세서를 적용한 휴대전화 시스템의 블록도를 나타낸다. 휴대전화 시스템은 아날로그부(40)와 디지털부(41)로 대별된다. 아날로그부(40)에서는, 안테나(42)에 듀플렉서로서의 안테나 스위치(43)가 접속되고, 안테나(42)에서 수신된 고주파신호는 로노이즈앰프(LNA)(44)로 고주파 노이즈가 제거되며, 검파·복호회로(DEM)(45)에서 검파된 신호가 복호되고, A/D 변환기(46)에서 디지털 데이터로 변환되어, 디지털부(41)로 공급된다. 디지털부(41)에서 공급되는 디지털 송신데이터는, 특히 제한되지 않지만, GMSK(Gaussian Filterde Minimum Shift Keying) 변조회로(47)로 변조되고, D/A 변환회로(48)에서 아날로그 신호로 변환된다. 변환된 아날로그 신호는 부호화회로(MOD)(49)에서 부호화되고, 부호화된 신호가 고주파 앰프(HPA)(50)에서 고주파 신호로 증폭되어, 안테나(42)에서 송신된다. 부호화회로(MOD)(49) 및 검파·복호회로(DEM)(45)는 PLL회로(51)에서 생성되는 클록신호에 동기 동작된다.
디지털부(41)은, 특히 제한되지 않지만, 디지털 신호처리부(DSP)(53), 시분할다중 액세스 제어부(TDMA)(54), 상기 데이터 프로세서(1) 및 상기 외부 메모리(2)를 가진다. 디지털 신호처리부(53)는, 등화기(55), 채널 코텍(56), 음성압축 신장부(57), 비타비(Vieterbi) 처리부(58) 및 암호화 처리부(59)를 도시를 생략하는 적화(積和)연산회로 및 그 동작 프로그램 등에 의해 실현한다. 등화기(55)는 상기 A/D 변환기(46)의 출력을 등화하고, 등화된 데이터는 비타비 처리부(58)에서 논리치가 판정되고, 판정결과가 채널 코텍(56)으로 공급되어 소정의 포맷 변화가 행해져, 음성압축 신장부(57)에서 신장된다. 신장된 데이터는 D/A 변환기(60)를 통해 스피커(61)에서 방음된다. 마이크(62)에 입력된 음성은 A/D 변환기(63)에서 디지털 음성데이터로 변환되고, 음성압축 신장부(57)에 압축되어, 채널 코텍(56)을 통해 소정의 포맷 변화가 행해져, 상기 GMSK 변조회로(47)로 공급된다.
상기 데이터 프로세서(1)는, 통화중에는 상기 아날로그부(40) 및 디지털부(41)의 동작을 실시간으로 제어한다. 또한, 데이터 프로세서(1)는 이동체통신 특유의 프로토콜 제어처리나 시스템 제어처리를 행한다. 프로토콜 제어처리는, 통화중이나 착신 대기중에 자기자신의 휴대전화 시스템이 어느 통화여역에 소속하는지의 판정이나, 통화역을 관할하는 기지국의 변경 등을 행하는 처리이다. 시스템 제어처리는 휴대전화 시스템의 조작보턴의 변화에 따른 지시를 검출하거나 디스플레이의 표시를 제어하거나 하는 처리이다. 상기 프로토콜 제어처리 및 시스템 제어처리에는 엄격한 실시간성이 요구되지 않으며, 또, 프로그램 용량도 크다. 그때문에, 상기 실시간 제어를 위해 동작 프로그램은 데이터 프로세서(1)의 내장 ROM에 저장되며, 프로토콜 제어처리나 시스템 제어처리를 위해 동작 프로그램은 외부 메모리(2)에 저장된다.
상기 프로토콜 제어처리나 시스템 제어처리를 위한 동작 프로그램에는 루프명령이 거의 존재하지 않아 오로지 리니어한 연속 어드레스의 명령을 순차 실행하는 처리가 다수 이용된 프로그램으로 되어 있다. 이와 같은 프로그램을 실행하는 경우는 데이터 프로세서(1)에 캐시메모리를 채용하여도 그다지 효과를 기대할 수 없고, 또 캐시메모리를 데이터 프로세서상에 설치하면 데이터 프로세서의 트랜지스터 규모의 증대에 의해 프로세서 비용이 높게 되며, 또, 그것에 의한 점유면적도 크게 된다. 이때, 이상에서 설명한 명령 프리페치 기능을 가지는 데이터 프로세서(1)를 이용하면 프리페치를 위해 외부에서 판독한 명령을 어느 명령버퍼(Buf4, Buf8, BufC)의 버퍼 엔트리로 하면 좋은가만, 그 명령 어드레스의 소정의 하위 4비트의 값에 의해 일의적으로 결정되므로, 프리페치의 제어가 간단하다. 이 명령 프리페치를 위한 구성은, 캐시메모리의 어드레스 태그에 의한 제어기구나 FIFO 버퍼의 카운터에 의한 리드·라이트 포인터 제어기구보다도 간소하게 실현하는 것이 가능하다. 따라서, 휴대전화 시스템의 비용 저감 및 소형화에 기여할 수 있다.
특히, 명령버퍼로의 프리페치는 상기 명령 어드레스의 하위 4비트의 값이 어느 하나의 소정치로 되었을 때만 행하면 충분하며, 예를 들면, 상기 하위 4비트에 의한 선두 값(H' 0)의 명령 어드레스에 대한 명령페치가 있을 때, 그 후속 어드레스에서 상기 하위 4비트에 의한 최종 어드레스(H' C)까지 어드레스 순서에 대응하는 명령버퍼에 명령 프리페치를 행하고, 명령 프리페치 제어의 간소화를 고려하고 있다. 또한, 분기명령에 의한 분기선 명령의 명령페치가 있었을 때, 당해 명령페치 어드레스의 후속 어드레스에서 상기 하위 4비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령 프리페치를 행하도록 하여, 분기명령에 의해 명령 어드레스 계열이 변경된 경우에도, 명령 어드레스 계열의 변경 후에서의 명령페치의 효율화에 대해서 고려하고 있다.
도 8에 본 발명에 관한 데이터 처리시스템의 다른 일예를 나타낸다.
도 8에 나타내는 데이터 처리시스템은, 도 1에 나타내는 외부 메모리 액세스 설정 레지스터(21) 대신에, 전송제어부(211)가 이용되며, 데이터 프로세서(100)의 외부 버스트 전송이 가능한 페이지 모드 기능 첨부 외부 메모리를 포함하는 외부 메모리(200)가 접속된다. 상기 전송제어부(211)에서 결정된 버스트 전송길이에 따라, 외부 메모리(200)에서 명령버퍼로, 최대 n명령을 전송 가능하도록, 버퍼 컨트롤러(30)에 의해 제어된다.
상기 페이지 모드 기능 첨부 외부 메모리(CS0 공간)에는, 예를 들면 휴대전화의 시스템 컨트롤 처리 등의 분기나 루프가 비교적 적고, 시퀀셜로 명령이 실행되는 프로그램이 저장된다.
도 9에 상기 전송제어부(211)의 버스트 전송길이의 설정부(250)의 블록도와, 도 10에 버스트 전송길이의 설정제어 플로우, 도 11에 업/다운 카운터(253)와 버스트 워드길이 설정 레지스터(254)의 변화예를 나타낸다. 상기 버스트 전송길이의 설정부(250)는 분기명령과 분기명령의 사이에서 실행되는 비분기명령의 수를 카운트하고, 분기명령이 출현할 때가지 실행되는 비분기명령의 수가 많으면, 버스트 전송길이도 길게하며, 실행되는 비분기명령의 수가 적으면, 버스트 전송길이를 짧게 하도록 제어된다. 초기치으로서 설정되는 버스트 전송길이는 특히 한정되지 않지만, 4명령분으로 하여도 좋다.
도 9의 설정부에서는, 버스트 워드길이 설정 레지스터(254)로의 설정은, 분기명령이 출현한 점에서 설정하고 있지만, 업/다운 카운터(253)가 소정의 값이 될때마다 설정하도록 하여도 된다.
도 12 및 도 13에는, 데이터 프로세서(100)에 의한 명령페치와 프리페치의 제어수순을 나타낸다.
도 12 및 도 13에 나타내는 제어수순은, 도 3 및 도 4에 나타내는 제어수순에 비해, 명령버퍼의 수가 증가함으로써 저장하는 명령수가 증가(Sα)하고 있는 점을 제외하고, 특별한 차이는 없다.
도 14에 본 발명에 관한 데이터 처리시스템의 다른 일예가 나타난다.
도 14에 나타내는 데이터 처리시스템은, CPU(3)가 어떤 요인에 의해 인터럽트 처리를 행하는 것이 필요해진 경우이다. 인터럽트 처리를 행하는 경우, 분기명령에 의해 분기를 행한 경우와 같이, CPU(3)가 실행하는 명령 어드레스가 연속하지 않게 되기 때문이다.
인터럽트 제어부(171)가 각종 요인에 의거하여 인터럽트를 받아들여, 인터럽트 요구가 있었던 취지를 CPU(3)에 통지한다. 명령 디코더(105)는 인터럽트제어부(171)에서의 인터럽트에 대해 인터럽트 처리 프로그램의 실행을 행하는 경우에, 버스 컨트롤러(4)에 통지(153)한다. 상기 통지에 따라, 버퍼 컨트롤러(30)는 분기명령에 의해 분기가 행해지는 경우와 동일한 처리를 행한다.
도 15에, 본 발명에 관한 데이터 처리시스템의 다른 일예가 나타난다.
도 15에 나타내는 데이터 처리시스템은, n개의 명령버퍼를 가지는 프리페치 버퍼 테이블을 2개(162, 163) 가진다. 버퍼 컨트롤러(30)는, CPU(3)가 프리페치 버퍼 테이블(162)을 사용하고 있는 동안에, 외부 메모리(200)에서 명령페치를 행하고, 프리페치 버퍼 테이블(163)의 명령버퍼에 저장하도록 제어된다. 구체적으로는, CPU(3)가 프리페치 버퍼 테이블(162)의 명령버퍼(191, 157, 159)에 저장된 명령을 모두 페치한 후, 다음의 명령페치는 프리페치 버퍼 테이블(163)의 명령버퍼에서 행하며, 프리페치 버퍼 테이블(162)의 명령버퍼에, 외부 메모리(200)에서 명령페치를 행한 명령을 저장한다.
CPU(3)가 프리페치 버퍼 테이블(163)의 명령버퍼에 저장된 명령을 모두 페치한 경우는, 반대로 전환 제어가 행해진다.
도 16에 프리페치 버퍼 테이블의 전환에 관한 타이밍 챠트를 나타낸다. 시간 t1에서 분기명령의 명령페치가 행해진 후, 분기선의 명령 어드레스에 대하여, 버스 컨트롤러(4)는 외부 메모리(200)로의 액세스를 행하고, 시간 t4에서 t6에 걸쳐 외부 메모리(200)에서 공급되는 명령을 프리페치 버퍼 테이블(162)(프리페치 버퍼 테이블 A)의 명령버퍼에 저장한다. 시간 t8에서 프리페치 버퍼 테이블 A의 최후 명령버퍼(A3)에 저장된 명령이 명령페치된 후, 연속하는 명령 어드레스에 대하여, 시간t9에서 t12에 걸쳐, 외부 메모리(200)에서 공급되는 명령을 프리페치 버퍼 테이블(163)(프리페치 버퍼 테이블 B)의 명령버퍼에 저장한다. 이것에 의해, 시간 t10에서 발행되는 명령페치에 대하여, 프리페치 버퍼 테이블 B의 명령버퍼(B0)에 저장된 명령을 저장하는 것이 가능해지며, 외부 메모리(200)에서 명령이 공급되는 것을 기다릴 필요가 없게 된다.
외부 메모리(200)에서 명령을 판독하기 위해 외부 메모리의 어드레스 버스로 출력하는 어드레스에 대하여 설명한다.
시간 t1에서의 분기명령의 명령페치의 경우, 공급을 받아야 할 명령의 어드레스는 CPU(3)가 내부버스로 출력하는 정보를 사용하여, 버스 컨트롤러(4)가 생성해서 외부 메모리의 어드레스 버스로 출력한다. 한편, 시간 t8에서의 비분기명령에 연속하는 명령페치의 경우, 버퍼 컨트롤러(30)의 내부 정보를 기초로 하여, 연속하는 명령의 어드레스 계산이 가능하기 때문에, 내부버스로 출력하는 정보가 출력되기 전에, 선행하여 공급을 받아야 할 명령의 어드레스를 출력하는 것이 가능해진다.
도 17에, 복수의 프리페치 버퍼 테이블을 사용하는 경우의 동작을 나타낸다. CPU(3)에서 분기명령에 의한 명령페치가 출력된 경우(도 17(A)), 외부 메모리로의 판독동작을 행하고, 외부 메모리에서 판독되는 명령을 명령버퍼에 기록하는 것과 병행하여 CPU(3)의 명령페치가 행해진다. 이 경우, 프리페치 버퍼 테이블로의 기록은, 특히 한정되지 않지만, 가장 최근 사용하고 있지 않았던 측의 프리페치 버퍼 테이블에 명령을 저장하도록 하면 된다.
한편, 비분기명령에 의한 명령페치를 행하는 경우(도 17(B)), 명령 어드레스의 하위비트에 의해 나타나는 명령버퍼에 대응하는 플래그가 유효한 상태가 되기까지 대기하여, CPU(3)의 명령페치가 행해지며, 플래그를 비유효한 상태로 한다. 그리고 모든 명령을 명령페치한(즉 빈) 프리페치 버퍼 테이블이 존재하는 경우, CPU(3)에서의 명령페치가 출력되는지의 여부에 관계없이, 최후에 실행한 명령페치에 연속하는 어드레스에 대하여, 외부 메모리(200)로의 판독동작을 행하고, 외부 메모리에서 판독되는 명령을 빈 프리페치 버퍼 테이블의 명령버퍼에 저장하여, 대응하는 플래그를 유효한 상태로 한다.
도 18에 본 발명에 관한 데이터 처리시스템의 다른 일예를 나타낸다.
도 18에 나타내는 데이터 처리시스템은, 외부 메모리(200)에서 판독되는 명령이 분기명령인지 비분기명령인지를 판정하기 위한 명령 디코더(170)를 가지는 것이다. 외부 메모리(200)에서 판독되는 명령이 분기명령인지 비분기명령인지를 상기 명령 디코더(170)에 의해 판정하고, 분기명령인 경우는 그 분기명령에 연속하는 명령의 판독을 중단하는 것이다.
도 19에, 명령 디코더(170)에 의해 분기명령 판정을 행하는 경우의 타이밍 챠트를 나타낸다.
시간 t3에서 시작되는 외부 메모리(200)에서의 명령 판독에서, 시간 t7에서 판독된 명령이 분기명령인 것을 판명한 경우, 외부 메모리(200)에서의 명령 판독(버스트 전송)을 중단하고, 시간 t10에서 분기명령에 의한 분기선 어드레스를 판명한 단계에서, 다음 명령의 판독을 개시(t12)한다.
외부 메모리(200)에서의 명령 판독을 중단하는 것은, 명령 디코더(170)에서의 분기명령의 검출에 한정되지 않고, 인터럽트 요인의 검출이라도 된다. 인터럽트 요인이 검출된 경우, 도 14에서 설명한 바와 같이, 분기명령에 의한 분기와 동일하게 CPU(3)가 실행하는 명령 어드레스가 연속하지 않게 되기 때문이다.
도 20에 본 발명에 관한 데이터 처리시스템의 다른 일예를 나타낸다.
도 20에 나타내는 데이터 처리시스템은, 외부 메모리(200)에서 판독되는 명령이 분기명령인지 비분기명령인지를 판정하는 명령 디코더(170)와, 분기명령에서 분기하는 분기선 어드레스를 계산하기 위한 어드레스 계산기(172)를 가지는 것이다.
도 21에 명령 디코더(170)에 의해 분기명령 판정을 행하고, 어드레스 계산기(172)에 의해 어드레스 계산을 행하는 경우의 타이밍 챠트를 나타낸다.
시간 t3에서 시작되는 외부 메모리(200)에서의 명령판독에 있어서, 시간 t7에서 판독된 명령이 분기명령인 것을 판명한 경우, 외부 메모리(200)에서의 명령 판독(버스트 전송)을 중단하고, 어드레스 계산기(172)에서 계산한 분기선 어드레스에 대하여, 시간 t10에서 외부 메모리(200)에서 명령 판독을 행한다. 이것에 의해 분기명령을 검출한 경우라도, 분기선 어드레스 명령의 판독을 위해 CPU(3)의 명령실행을 중단하지 않게 된다.
명령 디코더(170)에 의해 분기명령을 판정하는 경우, 당해 분기명령이 1 방향 분기명령인지, 2 방향 분기명령인지에 대해서 판정하도록 하여도 된다.
1 방향 분기명령인 경우, 반드시 분기선 어드레스로의 분기가 발생하지만, 2방향 분기명령인 경우, 분기선 어드레스로 분기하던가 혹은 분기하지 않고 연속하는 명령 어드레스의 명령을 실행하던가 어느 하나의 동작을 행한다.
검출한 분기명령이 1 방향 분기명령인 경우, 당해 분기명령에 연속하는 명령에서 판독을 중단하고, 2 방향 분기명령인 경우, 당해 분기명령에 연속하는 명령과, 당해 분기명령에 의해 분기하는 분기선 어드레스의 명령을 각각 프리페치 버퍼 테이블에 저장하도록 제어하면 된다. 이것에 의해, 2 방향 분기명령에 의해 분기를 하던가 하지 않아도, CPU(3)가 실행하는 명령은 프리페치 버퍼 테이블에 저장되어 있기 때문에, 외부 메모리(200)에서 명령을 판독하기 위해 필요한 시간이 없어지게 된다. 그리고, 실행하지 않는 측의 프리페치 버퍼 테이블에 저장한 명령에 대해서는, 실행하지 않는 것이 확실해진 단계에서, 비유효한 상태로 하면 된다.
2 방향 분기명령의 경우에 당해 분기명령에 연속하는 명령과, 분기선 어드레스의 명령을 각각 어떤 명령분 프리페치해 두는 것이지만, 특히 한정하지 않지만, 각각 2 명령분 정도이면 된다. 분기명령을 검출한 후, 분기명령에 연속하는 2 명령정도 판독을 행한 바 외부 메모리(200)에서의 판독을 중단하고, 이어서 분기선 어드레스에 대하여 2 명령정도 판독을 행한다. 2 명령정도 판독을 해 두면, 실행하는 명령을 확정한 단계에서, 외부 메모리(200)에서 새롭게 명령의 판독을 개시하여도, 명령의 실행에 충분하기 때문이다. 구체적으로는 CPU(3)에서의 명령 실행에 관한 시간과 외부 메모리(200)에서 명령을 판독하는데 필요한 시간을 고려하여, 결정하면 된다.
도 22에 본 발명에 관한 데이터 처리시스템의 다른 일예를 나타낸다.
도 22에 나타내는 데이터 처리장치는, 프리페치 버퍼 테이블과 함께 오퍼랜드 버퍼(176, 177)를 가지는 것이다.
도 23에 오퍼랜드 버퍼(176, 177)를 가지는 경우의 타이밍 챠트를 나타낸다.
명령 디코더에 의해 오퍼랜드에 나타나는 어드레스에 대하여 외부 메모리(200)의 판독이 필요한 명령을 검출(t6)한 경우, 어드레스 계산기(172)에 의해 오퍼랜드에 나타나는 어드레스의 계산을 행하고, 외부 메모리(200)에 오퍼랜드 데이터의 판독을 행하며(t9), 외부 메모리(200)에서 판독된 데이터를 오퍼랜드 버퍼(176, 177)에 저장하도록 한다. 이것에 의해 CPU(3)에서의 오퍼랜드 페치(t8)를 대기하여 외부 메모리(200)에 액세스를 하는 경우에 비해 CPU(3)의 실행 중단시간이 짧아진다. 오퍼랜드 데이터의 판독을 완료한 후는, 연속하는 명령에 대하여 명령의 판독을 계속하면 된다.
도 24에 본 발명에 관한 데이터 처리시스템의 다른 일예를 나타낸다.
도 24에 나타내는 데이터 처리시스템은, 프리페치 버퍼와 함께 캐시 메모리를 더 가지는 것이다. 프로토콜 처리에서는 비교적 분기나 루프 처리가 적기 때문에, 캐시 메모리만으로는 처리 효율을 향상하는 것이 곤란하므로, 프리페치 버퍼를 이용하는 것이 유용하다. 그러나, 프리페치 버퍼만으로는, 이미 실행한 어드레스로의 분기나 루프 처리였다고 하여도 외부 메모리(200)로의 액세스가 필요해지며, 이러한 경우는 캐시 메모리가 유용해진다. 또, 프로토콜 처리내에서의 분기나 루프 처리뿐만 아니라, 프로토콜 처리 프로그램 자체, 소정의 시간간격으로 몇 번이고 실행되는 것이며, 캐시 메모리에 프로그램 전부를 저장하는 것은 현실적이지 않지만, 프로그램의 일부라도 캐시 메모리에 저장되어 있으면, 당해 일부에 대해서는 외부 메모리(200)로의 액세스가 불필요해지며, 유용하다고 말할 수 없다. 이것으로부터, 캐시 메모리에 저장되어 있는 명령에 대해서는, 캐시 메모리에서 당해 명령을 판독하고, 캐시 메모리에 저장되어 있지 않은 명령에 대해서는, 프리페치 버퍼를 이용하여, 외부 메모리(200)에서 선행하여 명령을 판독하도록 하면 된다.
또한, 프리페치 버퍼에 도 20에 나타내는 명령 디코더(170)와 어드레스 계산기(172)를 가지며, 분기명령의 검출 및 분기선 어드레스의 계산을 행하도록 하면 된다. 분기선 어드레스가 현재 실행중인 명령 어드레스 보다도 작은 어드레스로의 분기인 경우는, 분기선 어드레스의 명령은 캐시 메모리에 저장되어 있을 가능성이 높기 때문에, 명령 프리페치를 중단하고, 캐시 메모리에 당해 명령이 저장되어 있는지의 여부를 캐시 메모리 컨트롤러(184)에 의해 체크하여, 저장되어 있는 경우는 캐시 메모리에서 저장되어 있는 명령을 판독하도록 하면 된다. 한편, 분기선 어드레스가 현재 실행중인 명령 어드레스 보다도 큰 경우, 또는 캐시 메모리에 당해 명령이 저장되어 있지 않은 경우는, 당해 분기선 어드레스에 대하여 명령 프리페치를 행하도록 하면 된다.
이상 본 발명자에 의해 이루어진 발명을 실시형태에 의거하여 구체적으로 설명하였지만, 본 발명은 그것에 한정되지 않고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능하다는 것은 말할 필요도 없다.
예를 들면, 데이터 프로세서는 CPU와 같은 명령 실행수단과 버스 컨트롤러 이외에도 적당한 회로 모듈을 구비하면 좋은 것은 말할 필요도 없다. 예를 들면,메모리 매니지먼트 유닛(memory management unit), 부동소숫점 연산유닛, 적화 연산유닛, 데이터용의 캐시 메모리, 다이렉트 메모리 액세스 컨트롤러, 타이머·카운터 등을 필요에 따라 내장하여도 된다.
또한, 분기명령에 의한 분기선 명령의 페치시에 프리페치를 하지 않도록 구성하는 것도 가능하다. 또한 메모리 버퍼의 사이즈는 명령페치의 단위인 명령 사이즈와 같게 하는 것이 명령 프리페치 및 명령페치의 제어를 간이화(簡易化)하는 관점에서 우수하지만, 본 발명은 그것에 한정되지 않고, 명령페치의 단위인 명령 사이즈의 정수배의 용량을 가지는 명령버퍼를 채용하는 것도 가능해진다.
이상의 설명에서는 주로 본 발명자에 의해 이루어진 발명을 그 배경이 된 이용분야인 휴대전화 시스템에 적용한 경우에 대하여 설명하였지만, 본 발명은 그것에 한정되지 않고, 그 이외의 통신단말이나 휴대정보 단말 등의 데이터 처리시스템에 널리 적용할 수 있다.
본원에서 개시되는 발명중 대표적인 것에 의해 얻어지는 효과를 간단하게 설명하면 하기와 같다.
즉, 비교적 간단한 구성에 의해 외부에서 명령 프리페치를 행하는 수 있고, 명령의 실행 효율을 향상시킬 수 있는 데이터 프로세서를 실현할 수 있다.
또한, 루프명령이 거의 존재하지 않고 오로지 리니어한 연속 어드레스의 명령을 외부 메모리에서 페치하여 순차적으로 실행하는 처리의 고속화를, 데이터 프로세서에서의 비교적 구성이 간단한 명령 프리페치의 기구에 의해 실현할 수 있다.
또한, 연속적인 명령 어드레스의 실행순서를 변경하는 분기처리가 적은 서브루틴 프로그램을 실행하는 데이터 처리시스템에서의 데이터 처리 효율을 비교적 낮은 비용으로 향상시킬 수 있다.

Claims (32)

  1. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 구비하고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한(valid) 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한(invalid)로 제어하는 것을 특징으로 하는 데이터 프로세서.
  2. 제 1 항에 있어서,
    상기 버퍼 제어회로는, 상기 명령 실행수단이 페치해야 할 명령 어드레스의 상기 하위 복수비트의 값에 대응하여 할당되어 있는 명령버퍼의 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼의 보유명령을 상기 명령 실행수단으로 향해 출력하는 것을 특징으로 하는 데이터 프로세서.
  3. 제 2 항에 있어서,
    상기 버퍼 제어회로는, 상기 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼로 명령 프리페치를 가능하게 하는 것을 특징으로 하는 데이터 프로세서.
  4. 제 3 항에 있어서,
    상기 버퍼 제어회로는, 상기 명령 실행수단에 의한 연속적인 명령 어드레스의 실행순서 변경의 지시에 응답하여, 모든 상기 플래그를 유효한 상태로 초기화 하는 것을 특징으로 하는 데이터 프로세서.
  5. 제 1 항 내지 제 4 항중 어느 한 항에 있어서,
    상기 명령버퍼는, 상기 명령 실행수단에 의한 명령페치 단위의 비트 수를 가지는 것을 특징으로 하는 데이터 프로세서.
  6. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 가지고,
    상기 버스 컨트롤러는, 상기 명령 실행수단에 의한 명령페치 단위의 비트 수를 가지는 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로를 가지며,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 상기 하위 복수비트에 의한 선두치의 명령 어드레스에 대응하는 명령페치인 경우에는 그 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 분기명령에 의한 분기선 명령의 명령페치인 경우에는 해당 명령페치 어드레스의 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하며, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로 하고, 상기 명령 실행수단이 페치하여야 할 명령 어드레스의 상기 하위 복수비트의 값에 대응하여 할당되어 있는 명령버퍼의 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼의 보유명령을 상기 명령 실행수단으로 향해 출력하는 것을 특징으로 하는 데이터 프로세서.
  7. 제 6 항에 있어서,
    상기 버퍼 제어회로는, 명령버퍼에 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 유효한 상태로 제어하고, 상기 플래그가 비유효한 상태인 것을 조건으로 대응하는 명령버퍼로 명령 프리페치를 가능하게 하여, 분기명령에 의한 명령페치의 지시에 응답하여 모든 상기 플래그를 비유효한 상태로 초기화 하는 것을 특징으로 하는 데이터 프로세서.
  8. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 복수개의 명령버퍼, 각각의 명령버퍼에 고유의 플래그 및 버퍼 제어회로를 구비하여 상기 명령 실행수단에 의한 지시에 의거하여 외부버스 어드레스를 제어하는 버스 컨트롤러를 가지고, 1개의 반도체 칩에 형성된 데이터 프로세서와,
    상기 데이터 프로세서의 동작 프로그램을 저장하며, 상기 버스 컨트롤러에 의한 외부버스 액세스의 대상이 되는 메로리를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 상기 하위 복수비트에 의한 선두치의 명령 어드레스에 대응하는 명령페치인 경우에는 그 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 분기명령에 의한 분기선 명령의 명령페치인 경우에는 해당 명령페치 어드레스의 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하며, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로 하고, 상기 명령 실행수단이 페치하여야 할 명령 어드레스의 상기 하위 복수비트의 값에 대응하여 할당되어 있는 명령버퍼의 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼의 보유명령을 상기 명령 실행수단으로 향해 출력하는 것을 특징으로 하는 데이터 프로세서.
  9. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 명령페치 단위의 비트 수를 가지는 복수개의 명령버퍼, 각각의 명령버퍼에 고유의 플래그 및 버스 제어회로를 구비하여 상기 명령실행수단에 의한 지시에 의거하여 외부버스 어드레스를 제어하는 버스 컨트롤러를 가지고, 1개의 반도체 칩에 형성된 데이터 프로세서와,
    상기 데이터 프로세서의 동작 프로그램을 저장하며, 상기 버스 컨트롤러에 의한 외부버스 액세스의 대상이 되는 메로리를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 상기 하위 복수비트에 의한 선두치의 명령 어드레스에 대응하는 명령페치인 경우에는 그 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 분기명령에 의한 분기선 명령의 명령페치인 경우에는 해당 명령페치 어드레스의 후속 어드레스에서 상기 하위 복수비트에 의한 최종 어드레스까지 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하며, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로 하고, 상기 명령 실행수단이 페치하여야 할 명령 어드레스의 상기 하위 복수비트의 값에 대응하여 할당되어 있는 명령버퍼의 플래그가 유효한 상태인 것을 조건으로 대응하는 명령버퍼의 보유명령을 상기 명령 실행수단으로 향해 출력하며, 명령버퍼에 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한 상태로 제어하고, 상기 플래그가 비유효한 상태인 것을 조건으로 대응하는 명령버퍼로의 명령 프리페치를 가능하게 하여, 분기명령에 의한 명령페치의 지시에 응답하여 모든 상기 플래그를 비유효한 상태로 초기화 하는 것을 특징으로 하는 데이터 처리시스템.
  10. 데이터 처리장치, 메모리 및 상기 데이터 처리장치와 메모리에 접속되는 버스를 가지고,
    상기 메모리에는, 적어도 프로토콜 제어 또는 시스템 제어를 위한 프로그램을 저장하며,
    상기 데이터 처리장치는, 명령을 페치하고, 페치된 명령을 해독하여 명령을 실행하는 명령실행부와, 상기 명령실행부에 의한 명령페치단위의 비트 수를 가지는 복수개의 명령버퍼, 각각의 명령버퍼에 대응한 플래그 및 버퍼 제어회로를 가지고 상기 명령실행부에서의 신호에 의거하여 버스를 통해서 메모리로의 액세스를 제어하는 버스 컨트롤러를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트를 받을 수 있는 고유치를 할당하고,
    명령 어드레스의 하위 복수비트에 의해 실현되는 최소치에 해당하는 명령 어드레스로의 명령페치인 경우, 당해 명령 어드레스의 다음 명령 어드레스에서 해당 하위 복수비트에 의해 표현되는 최후의 명령 어드레스까지의 명령을, 상기 복수개의 명령버퍼의 명령 어드레스에 대응하는 각각의 명령버퍼에 저장하고, 각각의 명령버퍼에 대응한 각각의 플래그를 제1상태로 하며,
    상기 명령실행부에서의 명령페치 요구에 따라서 상기 명령실행부가 출력하는 명령페치하여야 할 명령 어드레스의 하위 복수비트에 대응하는 명령버퍼에 대응하는 제1상태라면, 해당 명령버퍼에 저장되어 있는 명령을 상기 명령실행부로 출력하고, 해당 플래그를 제2상태로 하는 것을 특징으로 하는 휴대전화.
  11. 제 10 항에 있어서,
    상기 명령실행부가 출력하는 명령페치하여야 할 명령 어드레스의 하위 복수비트에 대응하는 명령버퍼에 대응하는 플래그가 제2상태인 경우, 당해 명령 어드레스의 다음 명령 어드레스에서 해당 하위 복수비트에 의해 표현되는 최후의 명령 어드레스까지의 명령을, 상기 복수개의 명령버퍼의 명령 어드레스에 대응하는 명령버퍼의 각각에 저장하고, 각각의 명령버퍼에 대응한 각각의 플래그를 제1상태로 하는 것을 특징으로 하는 휴대전화.
  12. 제 11 항에 있어서,
    상기 명령실행부가 출력하는 명령페치하여야 할 명령 어드레스의 명령의 내, 명령 어드레스의 하위 복수비트에 의해 표현되는 최소치에 해당하는 명령 어드레스의 명령 또는 명령 어드레스의 상기 하위 복수비트에 의해 표현되는 값의 대응 명령버퍼 플래그가 제2상태로 되어 있는 명령 어드레스의 명령은, 메모리에서 판독된 후, 그대로 상기 명령실행부로 공급되는 것을 특징으로 하는 휴대전화.
  13. 제 12 항에 있어서,
    상기 명령실행부는, 페치한 명령의 종류에 따라서 소정의 신호를 출력하고,
    상기 버퍼 제어회로는, 사이 명령실행부의 출력하는 제1신호에 따라서, 상기 복수의 명령버퍼의 각각에 대응한 플래그 모두를 제2상태로 하는 것을 특징으로 하는 휴대전화.
  14. 제 13 항에 있어서,
    상기 명령실행부가, 상기 제1신호를 출력하는 명령은, 분기명령인 것을 특징으로 하는 휴대전화.
  15. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 구비하고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한(valid) 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한(invalid)로 제어하며,
    상기 복수개의 명령버퍼중 명령을 프리페치하는 명령버퍼의 수를 변경 가능하게 하는 것을 특징으로 하는 데이터 프로세서.
  16. 제 15 항에 있어서,
    상기 명령을 프리페치하는 명령버퍼의 수는, 소정의 레지스터에 설정된 정보에 의해 결정되는 것을 특징으로 하는 데이터 프로세서.
  17. 제 15 항에 있어서,
    상기 명령을 프리페치하는 명령버퍼의 수는, 분기명령을 실행하는 때까지의 사이에 실행한 비분기명령의 수를 기본으로 결정되는 것을 특징으로 하는 데이터 프로세서.
  18. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러와 인터럽트 제어회로를 가지고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한(valid) 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한(invalid)로 제어하며,
    상기 명령버퍼로의 명령의 프리페치는, 인터럽트 제어회로가 인터럽트를 받아들이는 것에 따라서 중단되는 것을 특징으로 하는 데이터 프로세서.
  19. 제 18 항에 있어서,
    상기 인터럽트 제어회로가 인터럽트를 받아들인 후, 상기 명령 디코더가 인터럽트 처리에 관한 명령 어드레스로 분기하는 것에 따라서, 상기 명령버퍼로의 명령의 프리페치를 중단하는 것을 특징으로 하는 데이터 프로세서.
  20. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 가지고,
    상기 버스 컨트롤러는, 제1 버퍼 테이블과 제2 버퍼 테이블과, 버퍼 제어회로를 가지며,
    각각의 버퍼 테이블은, 복수개의 명령버퍼와 각각의 명령버퍼에 고유의 플래그를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 포함되는 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응플래그를 비유효한로 제어하며,
    상기 제1 버퍼 테이블에 포함되는 모든 명령버퍼에 프리페치되어 있는 명령의 출력에 따라서, 상기 제2 버퍼 테이블에 포함되는 명령버퍼에 프리페치되어 있는 명령을 출력하는 것을 특징으로 하는 데이터 프로세서.
  21. 제 20 항에 있어서,
    상기 버퍼 제어회로는, 상기 명령 실행수단에서 해독한 명령이 제1 명령 종류에 속하는 명령인 것에 따라서, 상기 제1 버퍼 테이블의 명령 프리페치를 중단하고, 상기 명령 실행수단에서 공급되는 명령 어드레스를 기점으로 하여 상기 제2 버퍼 테이블에 포함되는 명령버퍼에 명령 프리페치를 행하는 것을 특징으로 하는 데이터 프로세서.
  22. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 가지고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 버퍼 제어회로와 명령해독부를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한로 제어하며,
    상기 명령버퍼에 저장하는 명령을 상기 명령해독부의에서 해독하고, 해독한 명령이 제1 명령의 종류에 속하는 명령인 경우, 해당 명령을 상기 명령버퍼에서 출력할 때까지 명령 프리페치를 중단하는 것을 특징으로 하는 데이터 프로세서.
  23. 제 22 항에 있어서,
    상기 제1 명령의 종류는, 분기명령인 것을 특징으로 하는 데이터 프로세서.
  24. 제 23 항에 있어서,
    상기 버스 컨트롤러는, 또 어드레스 계산부를 가지고,
    상기 어드레스 계산부는, 상기 분기명령에 의해 분기하는 분기선 어드레스를 계산하며,
    상기 분기선 어드레스를 기점으로 명령 프리페치를 행하는 것을 특징으로 하는 데이터 프로세서.
  25. 제 24 항에 있어서,
    상기 복수의 명령버퍼와 각각의 명령버퍼에 고유의 플래그는, 제1 버퍼 테이블과 제2 버퍼 테이블로 분류되고,
    상기 분기명령까지는 제1 버퍼 테이블에 포함되는 명령버퍼에 프리페치 되며, 상기 분기선 어드레스를 기점으로 상기 제2 버퍼 테이블에 포함되는 명령버퍼에 프리페치 되는 것을 특징으로 하는 데이터 프로세서.
  26. 제 25 항에 있어서,
    상기 제1 버퍼 테이블에 포함되는 명령버퍼에는, 상기 분기명령에 이어서 소정의 어드레스의 명령까지 프리페치 되고, 상기 제2 버퍼 테이블에는, 상기 분기선 어드레스를 기점으로 소정의 어드레스의 명령까지가 프리페치 되어 있는 것을 특징으로 하는 데이터 프로세서.
  27. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러를 가지고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 각각의 명령버퍼에 고유의 플래그와, 1개 이상의 데이터 버퍼와, 데이터 버퍼에 고유의 플래그와, 명령해독부와, 어드레스 계산부와, 버퍼 제어회로를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트가 채용될 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효로 제어하며,
    상기 명령버퍼에 저장되는 명령을 상기 명령해독부에서 해독하고, 해당 명령이 소정의 어드레스에 정장되는 정보를 필요로 하는 제2 종류의 명령에 속하는 명령인 경우, 상기 어드레스 계산부는 상기 소정의 어드레스를 계산하고, 상기 소정의 어드레스에 저장되어 있는 데이터를 상기 데이터 버퍼에 저장하고, 대응하는 고유의 플래그를 유효한 상태로, 저장되어 있는 데이터의 출력에 응답하여 고유의 플래그를 비유효한 상태로 제어하는 것을 특징으로 하는 데이터 프로세서.
  28. 명령을 페치하고, 페치한 명령을 해독하여 명령을 실행하는 명령 실행수단과, 상기 명령 실행수단에 의한 지시에 의거해서 버스 액세스를 제어하는 버스 컨트롤러와, 캐시 메모리를 가지고,
    상기 버스 컨트롤러는, 복수개의 명령버퍼와, 버퍼 제어회로를 가지고,
    상기 버퍼 제어회로는, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 명령버퍼에 명령을 프리페치하며,
    상기 프리페치된 명령은 상기 캐시 메모리에도 공급되는 것을 특징으로 하는 데이터 프로세서.
  29. 제 28 항에 있어서,
    상기 버스 컨트롤러는, 명령페치 어드레스의 명령이 상기 캐시 메모리에 저장되어 있는 경우, 명령 프리페치를 행하지 않고, 상기 캐시 메모리에 저장되어 있는 명령을 상기 명령 실행수단으로 공급하는 것을 특징으로 하는 데이터 프로세서.
  30. 제 29 항에 있어서
    상기 버스 컨트롤러는, 또 각각의 명령버퍼에 고유의 플래그를 가지고,
    상기 버퍼 제어회로는, 상기 각각의 명령버퍼에 명령 어드레스의 하위 복수비트를 채용할 수 있는 고유치를 할당하여, 소정의 명령페치 어드레스의 후속 어드레스를 기점으로 상기 하위 복수비트에 의한 어드레스 순서에 대응하는 명령버퍼에 명령을 프리페치하고, 명령 프리페치에 응답하여 대응 플래그를 유효한 상태로, 프리페치되어 있는 명령의 출력에 응답하여 대응 플래그를 비유효한 상태로 제어하는 것을 특징으로 하는 데이터 프로세서.
  31. 제 28 항에 있어서,
    상기 버스 컨트롤러는, 또 명령해독부와 어드레스 계산부를 가지고,
    상기 명령해독부는 프리페치한 명령을 해독하고, 해당 명령이 분기명령인 경우, 상기 어드레스 계산부에서 분기선 어드레스를 계산하며,
    상기 분기선 어드레스가 상기 명령 실행수단에서 실행하고 있는 명령 어드레스보다도 작은 어드레스로의 분기인 경우는, 명령 프리페치를 중단하며,
    상기 분기선 어드레스가 상기 명령 실행수단에서 실행하고 있는 명령 어드레스보다도 큰 어드레스로의 분기인 경우는, 상기 분기선 어드레스에 대해서 명령 프리페치를 행하는 것을 특징으로 하는 데이터 프로세서.
  32. 제 31 항에 있어서,
    상기 분기선 어드레스가 상기 명령 실행수단에서 실행하고 있는 명령 어드레스보다도 작은 어드레스로의 분기인 경우, 분기선 어드레스의 명령이 상기 캐시 메모리에 저장되어 있는 경우, 상기 캐시 메모리에 저장되어 있는 명령을 상기 명령 실행수단으로 공급하고, 분기선 어드레스의 명령이 상기 캐시 메모리에 저장되어 있지 않은 경우, 상기 명령버퍼에 명령을 프리페치하는 것을 특징으로 하는 데이터 프로세서.
KR1020010007960A 2000-02-24 2001-02-17 데이터 프로세서 및 데이터 처리시스템 KR20010085404A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000052245 2000-02-24
JP2000-052245 2000-02-24

Publications (1)

Publication Number Publication Date
KR20010085404A true KR20010085404A (ko) 2001-09-07

Family

ID=18573799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010007960A KR20010085404A (ko) 2000-02-24 2001-02-17 데이터 프로세서 및 데이터 처리시스템

Country Status (3)

Country Link
US (2) US6542982B2 (ko)
KR (1) KR20010085404A (ko)
TW (1) TW514826B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100976433B1 (ko) * 2008-03-21 2010-08-18 후지쯔 가부시끼가이샤 정보 처리 장치, 프로그램을 기록한 기록 매체, 및 명령열 생성 방법
KR20150046480A (ko) * 2013-10-22 2015-04-30 삼성전자주식회사 내부 및 외부 메모리를 선택적으로 사용하는 harq 데이터 처리 장치 및 그 처리 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8205237B2 (en) 2000-09-14 2012-06-19 Cox Ingemar J Identifying works, using a sub-linear time search, such as an approximate nearest neighbor search, for initiating a work-based action, such as an action on the internet
EP2627008A3 (en) 2000-12-29 2013-09-11 Intel Mobile Communications GmbH Channel codec processor configurable for multiple wireless communications standards
US20030093702A1 (en) * 2001-03-30 2003-05-15 Zheng Luo System on a chip with multiple power planes and associate power management methods
JP2003030018A (ja) * 2001-07-13 2003-01-31 Sony Corp データ通信装置および方法、データ通信システム、情報処理装置および方法、記録媒体、並びにプログラム
US6996657B1 (en) * 2002-03-21 2006-02-07 Advanced Micro Devices, Inc. Apparatus for providing packets in a peripheral interface circuit of an I/O node of a computer system
US6795899B2 (en) * 2002-03-22 2004-09-21 Intel Corporation Memory system with burst length shorter than prefetch length
US20030204675A1 (en) * 2002-04-29 2003-10-30 Dover Lance W. Method and system to retrieve information from a storage device
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
GB2393270B (en) * 2002-09-19 2005-07-27 Advanced Risc Mach Ltd Executing variable length instructions stored within a plurality of discrete memory address regions
US9591112B2 (en) * 2002-12-31 2017-03-07 Google Technology Holdings LLC Command queuing for multimedia storage devices
US6871246B2 (en) * 2003-05-07 2005-03-22 Freescale Semiconductor, Inc. Prefetch control in a data processing system
US7363427B2 (en) * 2004-01-12 2008-04-22 Hewlett-Packard Development Company, L.P. Memory controller connection to RAM using buffer interface
US20050172091A1 (en) * 2004-01-29 2005-08-04 Rotithor Hemant G. Method and an apparatus for interleaving read data return in a packetized interconnect to memory
EP1857935B1 (en) * 2006-05-16 2013-10-23 Saab Ab Fault tolerant data bus node in a distributed system
WO2008067918A1 (en) * 2006-12-05 2008-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Methods and devices for cache enhancing
EP1930811A1 (en) * 2006-12-05 2008-06-11 Telefonaktiebolaget LM Ericsson (publ) Methods and devices for cache enhancing
JP2010224806A (ja) * 2009-03-23 2010-10-07 Toshiba Corp コントローラ及び半導体記憶装置
US8913447B2 (en) 2011-06-24 2014-12-16 Micron Technology, Inc. Method and apparatus for memory command input and control
US9288161B2 (en) * 2011-12-05 2016-03-15 International Business Machines Corporation Verifying the functionality of an integrated circuit
JP5834997B2 (ja) * 2012-02-23 2015-12-24 株式会社ソシオネクスト ベクトルプロセッサ、ベクトルプロセッサの処理方法
CN111124492B (zh) * 2019-12-16 2022-09-20 成都海光微电子技术有限公司 指令生成方法、装置、指令执行方法、处理器及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0462637A (ja) 1990-06-29 1992-02-27 Mitsubishi Electric Corp マイクロプロセッサ
JPH06222990A (ja) * 1992-10-16 1994-08-12 Fujitsu Ltd データ処理装置
JPH06243036A (ja) 1993-02-12 1994-09-02 Hitachi Ltd キャッシュ制御システム
US5680564A (en) * 1995-05-26 1997-10-21 National Semiconductor Corporation Pipelined processor with two tier prefetch buffer structure and method with bypass
US5845101A (en) * 1997-05-13 1998-12-01 Advanced Micro Devices, Inc. Prefetch buffer for storing instructions prior to placing the instructions in an instruction cache

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100976433B1 (ko) * 2008-03-21 2010-08-18 후지쯔 가부시끼가이샤 정보 처리 장치, 프로그램을 기록한 기록 매체, 및 명령열 생성 방법
KR20150046480A (ko) * 2013-10-22 2015-04-30 삼성전자주식회사 내부 및 외부 메모리를 선택적으로 사용하는 harq 데이터 처리 장치 및 그 처리 방법

Also Published As

Publication number Publication date
TW514826B (en) 2002-12-21
US6434691B2 (en) 2002-08-13
US6542982B2 (en) 2003-04-01
US20010018735A1 (en) 2001-08-30
US20020120829A1 (en) 2002-08-29

Similar Documents

Publication Publication Date Title
KR20010085404A (ko) 데이터 프로세서 및 데이터 처리시스템
KR101132484B1 (ko) 다중-스테이지 데이터 프로세싱 파이프라인에서 명령들을 실행하는 시스템 및 방법
KR100307603B1 (ko) 저전력데이타처리장치
US7185171B2 (en) Semiconductor integrated circuit
US5657288A (en) Efficient addressing of large memories
JP5043662B2 (ja) メモリの制御方法、メモリ・システム
US6986029B2 (en) Micro-controller for reading out compressed instruction code and program memory for compressing instruction code and storing therein
JP4791495B2 (ja) 既知プロセッサ状態に基づいてキャッシュビットを選択的にイネーブルにするパワーセービング方法および装置
KR100212142B1 (ko) 매크로 명령기능을 가진 동기식 반도체 메모리장치와 매크로 명령의 저장 및 실행방법
US20060095746A1 (en) Branch predictor, processor and branch prediction method
US6654873B2 (en) Processor apparatus and integrated circuit employing prefetching and predecoding
US5761718A (en) Conditional data pre-fetching in a device controller
JP3753368B2 (ja) データプロセッサ及びデータ処理システム
JP4404373B2 (ja) 半導体集積回路
JPH0844560A (ja) メモリ制御回路とその回路を内蔵した集積回路素子
JP2011044163A (ja) 固定幅命令エンコード内のプロセッサ操作の拡張された機能性
JP4601624B2 (ja) 命令プリデコーダ付きダイレクトメモリアクセスユニット
JP3202654B2 (ja) マイクロプロセッサシステム
JPH1020959A (ja) 低消費電力マイクロプロセッサ
KR100640820B1 (ko) 버퍼 제어 장치
JP2005275735A (ja) Cpuと記憶装置の間に配置される制御装置及びチップセット
KR100204003B1 (ko) 효율적인 디코딩을 위한 프리픽스 컴팩션 방법 및 회로
JPH04255995A (ja) 命令キャッシュ
JP2001265751A (ja) マイクロコンピュータ装置およびその動作状態設定方法
KR19990065166A (ko) 5단 파이프라인 방식을 이용한 마이크로 프로세서

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid