KR20010006839A - 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법 - Google Patents

마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법 Download PDF

Info

Publication number
KR20010006839A
KR20010006839A KR1020000014226A KR20000014226A KR20010006839A KR 20010006839 A KR20010006839 A KR 20010006839A KR 1020000014226 A KR1020000014226 A KR 1020000014226A KR 20000014226 A KR20000014226 A KR 20000014226A KR 20010006839 A KR20010006839 A KR 20010006839A
Authority
KR
South Korea
Prior art keywords
memory
emulation
external
bus
mode
Prior art date
Application number
KR1020000014226A
Other languages
English (en)
Other versions
KR100506031B1 (ko
Inventor
구도마코토
데라사와히로후미
미야야마요시유키
Original Assignee
야스카와 히데아키
세이코 엡슨 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 야스카와 히데아키, 세이코 엡슨 가부시키가이샤 filed Critical 야스카와 히데아키
Publication of KR20010006839A publication Critical patent/KR20010006839A/ko
Application granted granted Critical
Publication of KR100506031B1 publication Critical patent/KR100506031B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 발명의 목적은 단자수의 절약을 도모하면서 최적의 평가환경을 실현할 수 있는 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법을 제공하는 것이다. 외부 메모리(30)와 에뮬레이션 메모리(32)에서 외부 버스(28)를 공용하고, 에뮬레이션 모드 시에 CPU(12)의 내부 ROM(16)으로의 액세스를 외부 버스(28)를 통한 에뮬레이션 메모리(32)로의 액세스로 절환된다. 에뮬레이션 모드의 온, 오프는 모드 선택 단자나 모드 선택 레지스터에 의해 절환된다. 외부 메모리(30)의 제어신호(CNT1)와는 다른 계통의 제어신호(CNT2)에서 에뮬레이션 메모리(32)를 제어한다. CNT2의 메모리 리드 신호가 CNT1의 메모리 리드 신호보다도 빠른 타이밍에서 액티브하게 되도록 하여, 1 클록 사이클 내에서 명령의 페치, 디코드를 완료시킨다. 에뮬레이션 메모리(32), 내부 ROM(16) 또는 외부 메모리(30)로부터 부트하는 각 모드나 OPT 모드를 선택하기 위한 모드 선택 단자를 설치한다.

Description

마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법{Microcomputer, electronic equipment and emulation method}
본 발명은 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법에 관한 것이다.
최근에, 가정용의 게임장치, 카 네비게이션 시스템, 프린터, 휴대 정보 단말, 휴대전화 등의 전자 기기에 부착되어, 고도의 정보처리를 실현할 수 있는 마이크로 컴퓨터에 대한 수요가 높아지고 있다.
이러한 마이크로 컴퓨터에서는, 도 1a에 도시하는 바와 같은 대량 생산용의 제품 칩(700) 이외에도, 도 1b에 도시하는 바와 같은 프로그램이나 시스템 개발용의 평가 칩(710)이 작성된다. 그리고, 이 평가 칩(710)에서는, 범용 메모리 등의 외부 메모리(706)가 접속되는 통상의 외부 어드레스 버스(702), 외부 데이터 버스(704) 이외에도, 에뮬레이션 메모리(내부 ROM(718)를 에뮬레이션하기 위한 메모리; 716)에 전용의 어드레스 버스(712), 데이터 버스(714)가 설치된다. 즉, 개발 도중의 프로그램에 대해서는, 내부 ROM(718)에 기억시키지 않고서, 고속 SRAM 등의 에뮬레이션 메모리(716)에 기억시킨다. 그리고, 프로그램의 디버그를 행하고, 디버그가 완전히 종료하여 완성된 프로그램을 내부 ROM(718)에 기억하도록 한다. 완성 전의 프로그램을 내부 ROM(718)에 기억시키면, 프로그램에 변경이 발생한 경우 등에, 내부 ROM(718)의 마스터 패턴을 변경하여 내부 ROM(718)을 새롭게 다시 만들어내지 않으면 안된다.
이와 같이, 평가 칩(710)에는 에뮬레이션 메모리(716)에 전용의 어드레스 버스(712), 데이터 버스(714)가 설치된다. 따라서, 평가 칩(710)의 핀수는, 제품 칩(700)의 단자(핀)수와 비교하여 대단히 많아져 버린다. 이 때문에, 평가 칩(710)을 실장할 수 있는 패키지의 입수가 곤란하게 되거나, 제품 칩(700)과 평가 칩(710)과의 단자의 정합성을 얻는 것이 번거롭게 되는 문제가 생긴다. 또한, 평가 칩(710)에서는 정상으로 동작하고 있던 프로그램이, 제품 칩(700)에서는 동작하지 않게 되는 문제도 생긴다.
본 발명은 이상과 같은 기술적 과제를 감안하여 이루어진 것으로서, 그 목적으로 하는 점은, 단자수의 절약을 도모하면서 적합한 평가환경을 실현할 수 있는 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법을 제공하는 것에 있다.
도 1a, 도 1b는 제품 칩과 평가 칩을 다른 칩으로 하는 종래의 수법에 대해서 설명하기 위한 도면.
도 2는 본 실시예의 마이크로 컴퓨터의 구성예를 도시하는 블록도.
도 3은 본 실시예의 마이크로 컴퓨터의 더욱 상세한 구성예를 도시하는 블록도.
도 4는 본 실시예의 마이크로 컴퓨터의 동작을 설명하기 위한 신호 파형도.
도 5는 모드 선택 단자(MT)에 의해 설정 가능한 각종의 모드에 대해서 설명하기 위한 도면.
도 6은 OPT 모드에 대해서 설명하기 위한 도면.
도 7a, 도 7b, 도 7c는 여러 가지 전자 기기의 내부 블록도의 예.
도 8a, 도 8b, 도 8c는 여러 가지 전자 기기의 외관도의 예.
* 도면의 주요 부분에 대한 부호의 설명 *
12. CPU 14. 버스 제어부
16. 내부 ROM 18. 에뮬레이션 지시부
20. 메모리 제어부 22. CPU 버스
28. 외부 버스 30. 외부 메모리
32. 에뮬레이션 메모리
상기 과제를 해결하기 위해서 본 발명은, 정보처리를 행하는 마이크로 컴퓨터로서, 명령의 실행 처리를 행하는 프로세서와, 에뮬레이션 메모리와 적어도 1개의 다른 외부 메모리가 접속 가능한 외부 버스와, 에뮬레이션 모드가 온이 된 경우에, 상기 프로세서의 내부 메모리로의 액세스가, 상기 외부 버스를 통한 상기 에뮬레이션 메모리로의 액세스로 바뀌도록, 상기 프로세서의 버스를 상기 외부 버스에 접속하는 버스 제어 수단을 포함하는 것을 특징으로 한다.
본 발명에서는, 외부 메모리와 에뮬레이션 메모리가 접속 가능한 외부 버스(외부 버스 단자)가 설치되고, 외부 메모리와 에뮬레이션 메모리에 의해 외부 버스가 공용 가능하게 되어 있다. 그리고, 에뮬레이션 모드가 온이 되면, 프로세서의 내부 메모리로의 액세스가, 외부 버스를 통한 에뮬레이션 메모리로의 액세스로 바뀐다. 따라서, 에뮬레이션 모드가 오프일 때에는, 내부 메모리에 기억되는 정보에 기초하여 프로세서가 동작하고, 에뮬레이션 모드가 온일 때에는, 에뮬레이션 메모리에 기억되는 정보에 기초하여 프로세서가 동작하게 된다. 이로써, 에뮬레이션 메모리를 사용한, 프로그램 개발 등의 평가작업이 가능하게 된다. 더욱이, 본 발명에 의하면, 에뮬레이션 메모리에 전용의 버스를 설치하지 않고서, 다른 외부 메모리용의 외부 버스를 통하여 에뮬레이션 메모리로의 액세스가 행해진다. 따라서, 특히 한정은 되지 않지만, 평가용의 마이크로 컴퓨터의 단자와 제품용의 마이크로 컴퓨터의 단자를 동일 형태인 것으로 할 수 있게 되고, 마이크로 컴퓨터의 단자수의 절약을 도모하면서 최적의 평가 환경을 실현할 수 있다.
또, 외부 버스는, 외부 메모리와 에뮬레이션 메모리가 접속 가능하다면 충분하고, 예를 들어 제품 시에 있어서는, 에뮬레이션 메모리를 외부 버스에 접속할 필요는 없다.
또한, 프로세서의 내부 메모리로의 액세스는, 내부 메모리가 할당되는 메모리 공간의 에어리어로의 액세스이면 충분하고, 예를 들면 평가 시에 있어서는, 내부 메모리를 마이크로 컴퓨터에 실제로 내장시킬 필요성은 반드시 없다.
또한, 제품 시에 있어서, 에뮬레이션에 필요한 회로를 창의적으로 배제하거나, 에뮬레이션 기능을 무효로 한 것과 같은 마이크로 컴퓨터도, 본 발명의 균등한 범위에 포함된다.
또한 본 발명은 에뮬레이션 모드의 온, 오프를 선택하기 위한 모드 선택 단자를 포함하는 것을 특징으로 한다. 이와 같이 하면, 내부 메모리에 기억되는 프로그램 등의 정보를 재기록하지 않고서, 제품 시에 에뮬레이션 모드를 오프로 하는 것이 가능하게 된다.
또한 본 발명은 에뮬레이션 모드의 온, 오프를 선택하기 위한 정보를 기억하여 상기 프로세서가 액세스 가능한 모드 선택 레지스터를 포함하는 것을 특징으로 한다. 이와 같이 하면, 마이크로 컴퓨터의 단자로의 신호의 설정을 변경하지 않고서, 소프트웨어 처리에 의해 에뮬레이션 모드의 온, 오프를 바꾸는 것이 가능하게 된다.
또, 본 발명에서는, 프로세서의 어드레스 버스에 대해서는, 에뮬레이션 모드의 온, 오프에 의존하지 않고서 외부 어드레스 버스 및 상기 내부 메모리의 어드레스 버스에 접속되고, 프로세서의 데이터 버스에 대해서는, 에뮬레이션 모드가 온이 된 경우에 외부 데이터 버스에 접속되도록 해도 된다.
또한 본 발명은 상기 외부 버스에 접속되는 상기 외부 메모리를 제어하기 위한 제 1 제어신호와, 상기 외부 버스에 접속되는 상기 에뮬레이션 메모리를 제어하기 위한, 상기 제 1 제어수단과는 다른 계통의 제 2 제어신호를 출력하는 메모리 제어수단을 포함하는 것을 특징으로 한다. 이와 같이 하면, 외부 메모리를 제어하는 제 1 제어신호와는 다른 계통의 제 2 제어신호로, 에뮬레이션 메모리를 제어할 수 있게 된다. 이로써, 외부 메모리가 접속되는 외부 버스를 사용하여 에뮬레이션 메모리로의 액세스를 행한 경우에도, 에뮬레이션 메로리로의 적정한 액세스를 실현할 수 있게 된다.
또한 본 발명은 상기 제 2 제어신호가 포함하는 제 2 메모리 리드 신호가, 상기 제 1 제어신호가 포함하는 제 1 메모리 리드 신호보다도 빠른 타이밍에서 액티브하게 되는 것을 특징으로 한다. 이와 같이 하면, 예를 들면 에뮬레이션 메모리에 기억되는 명령을 프로세서가 1 클록 사이클로 페치하여 디코드하지 않으면 안 되는 등의 제약이 있는 경우에도, 이러한 제약에 용이하게 대응할 수 있게 된다.
또한 본 발명은 리셋 후에 상기 프로세서가 최초로 액세스하는 액세스 장소가 상기 에뮬레이션 메모리로 되는 제 1 모드와, 상기 액세스 장소가 상기 내부 메모리가 되는 제 2 모드를 선택하기 위한 모드 선택 단자를 포함하는 것을 특징으로 한다. 이와 같이 하면, 평가 시에는 제 1 모드를 선택하고, 제품(실동작) 시에는 제 2 모드를 선택하는 것이 가능하게 되어, 프로그램 개발 등의 평가 작업의 효율화를 도모할 수 있게 된다.
또한 본 발명은 상기 액세스 장소가 상기 외부 메모리가 되는 제 3 모드가, 상기 모드 선택 단자에 의해 선택 가능한 것을 특징으로 한다. 이와 같이 하면, 외부 메모리로부터의 부트가 가능하게 되어, 폭 넓은 층의 사용자의 요망에 대응할 수 있게 된다.
또한 본 발명은 리셋 후에 상기 외부 메모리로부터 상기 에뮬레이션 메모리로 정보가 송신되고, 그 후에 상기 프로세서가 최초에 상기 에뮬레이션 메모리에, 액세스하는 제 4 모드가, 상기 모드 선택 단자에 의해 선택 가능한 것을 특징으로 한다. 이렇게 하면, 에뮬레이션 메모리의 정보가 소실할 때마다, 에뮬레이션 메모리에 정보를 다운로드하지 않으면 안 되는 등의 시간을 생략하는 것이 가능하게 되어, 평가 작업의 효율화를 도모할 수 있게 된다.
또한 본 발명에 관련되는 전자 기기는, 상기의 어느 한 마이크로 컴퓨터와, 상기 마이크로 컴퓨터의 처리대상이 되는 정보의 입력원과, 상기 마이크로 컴퓨터에 의해 처리된 정보를 출력하기 위한 출력장치를 포함하는 것을 특징으로 한다. 이와 같이 하면, 전자 기기에 부착되는 마이크로 컴퓨터로서, 평가 시와 제품 시에서 동일한 것을 사용할 수 있게 되어, 전자 기기의 저 비용화나 신뢰성의 향상을 도모할 수 있게 된다. 또한, 마이크로 컴퓨터를 전자 기기에 설치된 상태에서 행해지는 평가 작업의 효율화도 도모할 수 있게 된다.
또한 본 발명은, 명령의 실행처리를 행하는 프로세서와, 에뮬레이션 메모리 및 적어도 1개의 다른 외부 메모리가 접속 가능한 외부 버스를 포함하는 마이크로 컴퓨터를 위한 에뮬레이션 방법으로서, 마이크로 컴퓨터의 평가 시에 있어서는, 상기 에뮬레이션 메모리와 상기 외부 메모리에서 상기 외부 버스를 공용시키는 동시에, 상기 외부 버스를 통하여 상기 에뮬레이션 메모리에 액세스하고, 해당 액세스에 의해 상기 에뮬레이션 메모리로부터 판독되는 정보에 기초하여 상기 프로세서를 동작시키며, 마이크로 컴퓨터의 제품 시에 있어서는, 내부 메모리로부터 판독되는 정보에 기초하여 상기 프로세서를 동작시키는 것을 특징으로 한다.
본 발명에 의하면, 마이크로 컴퓨터의 평가 시에 있어서는, 외부 메모리가 접속되는 외부 버스를 통하여, 에뮬레이션 메모리로의 액세스가 행해지고, 에뮬레이션 메모리를 사용한, 프로그램 개발 등의 평가 작업이 가능하게 된다. 그리고, 본 발명에 의하면, 에뮬레이션 메모리에 전용의 버스를 설치하지 않고서, 다른 외부 메모리용의 외부 버스를 통하여 에뮬레이션 메모리로의 액세스가 행해진다. 따라서, 특히 한정되지는 않지만, 평가용의 마이크로 컴퓨터의 단자와 제품용의 마이크로 컴퓨터의 단자를 동일 형태인 것으로 할 수 있게 되어, 마이크로 컴퓨터의 단자수의 절약을 도모하면서 최적의 평가 환경을 실현할 수 있게 된다.
이하, 본 발명이 적합한 실시예에 대해서 도면을 참조하여 상세히 설명한다.
1. 마이크로 컴퓨터
도 2에, 본 실시예의 마이크로 컴퓨터의 구성예를 도시한다.
도 2의 마이크로 컴퓨터(10)는, CPU(광의로는 프로세서; 12), 버스 제어부(BCU; 14), 내부 ROM(광의로는 내부 메모리; 16), 에뮬레이션 지시부(18), 메모리 제어부(20)를 포함한다. 또한, 마이크로 컴퓨터(10)의 외부 버스(외부 버스 단자; 28)에는, 범용 메모리(플래시 메모리, DRAM) 등의 외부 메모리(30)나, 고속 SRAM 등으로 구성되는 에뮬레이션 메모리(32)가 접속 가능하게 되어 있다. 또, 외부 버스(28)에, 게이트 어레이 등의 다른 외부 디바이스를 접속해도 된다.
여기서, CPU(12)는, 명령의 실행처리를 행하는 것이며, CPU(12)의 CPU 버스(22)는 버스 제어부(14)에 접속된다. 또한 CPU(12)로부터의 스테이터스 신호(ST)도 버스 제어부(14)로 출력된다. 내부 ROM(16)은, 프로그램이나 데이터 등의 정보를 기억하는 것으로, 내부 ROM(16)의 내부 ROM 버스(26)는 버스 제어부(14)에 접속된다. 또, 평가 시 등에 있어서는, 내부 ROM(16)를 마이크로 컴퓨터(10)에 내장시키지 않도록 해도 된다.
에뮬레이션 지시부(18)는, 에뮬레이션 모드가 온일 때에, 에뮬레이션 지시신호(EM)를 액티브하게 하고, 에뮬레이션의 지시를 버스 제어부(14)에 대하여 행하는 것이다. 이 경우, 에뮬레이션 모드의 온, 오프는 마이크로 컴퓨터(10)에 모드 선택 단자를 설치하고, 이 모드 선택 단자를 제어함으로써 바꾸어도 되며, 마이크로 컴퓨터(10)에 모드 선택 레지스터를 설치하여, 이 모드 선택 레지스터에 기억하는 정보를 제어함으로써 바꾸어도 된다.
메모리 제어부(20)는, 외부 메모리(30), 에뮬레이션 메모리(32), 내부 ROM(16)를 제어하기 위한 각종의 제어신호(칩 이네이블 신호, 메모리 리드 신호 등; CNT1, CNT2, CNT3)를 출력한다. 특히, 본 실시예에서는, 동일한 외부 버스(28)에 접속되는 외부 메모리(30)와 에뮬레이션 메모리(32)에 대하여, 서로 다른 계통의 제어신호(CNT1, CNT2)를 출력하고 있는 점에 특징이 있다.
버스 제어부(14)는, CPU 버스(22), 내부 ROM 버스(26), 외부 버스(28) 등의 제어를 행하기 위한 것이다. 버스 제어부(14)는, CPU(12)로부터의 어드레스나 스테이터스 신호(ST)에 기초하여, 내부 ROM(16)의 내부 ROM 버스(26)를, CPU 버스(22)에 접속하거나, 외부 메모리(30), 에뮬레이션 메모리(32)가 접속되는 외부 버스(28)를, CPU 버스(22)에 접속하는 등의 버스 제어를 행한다.
그리고, 버스 제어부(14)는, 에뮬레이션 지시부(18)로부터의 신호(EM)에 의해 에뮬레이션 모드(내부 ROM(16)을 에뮬레이션 메모리(32)에서 에뮬레이션하는 모드)가 온이라고 지시된 경우에는, CPU(12)의 내부 ROM(16)으로의 액세스를, 외부 버스(28)를 통한 에뮬레이션 메모리(32)로의 액세스로 바꾼다. 즉, CPU 버스(22)를 내부 ROM 버스(26)가 아닌 외부 버스(28)에 접속하고, CPU 버스(22) 및 내부 ROM 버스(26)를 통한 내부 ROM(16)으로의 CPU(12)의 액세스를, CPU 버스(22) 및 외부 버스(28)를 통한 에뮬레이션 메모리(32)로의 액세스로 바꾼다.
이렇게 하는 것으로, CPU(12)는, 내부 ROM(16)에 격납되는 프로그램(또는 데이터)은 아니며, 에뮬레이션 메모리(32)에 격납되는 프로그램에 기초하여 동작하게 된다. 따라서, 사용자는, 프로그램이 완성할 때까지는 개발 도중의 프로그램을 에뮬레이션 메모리(32)에 다운로드하여 프로그램 개발을 행할 수 있다. 그리고, 개발이 종료한 후에 완성된 프로그램을 내부 ROM(16)에 기억시키고, 최종적인 제품 칩으로 하는 것이 가능하게 된다.
그리고, 본 실시예에서는, 외부 메모리(30)와 에뮬레이션 메모리(32)에서 외부 버스(28)를 공용하고 있다. 따라서, 도 1b에 도시하는 바와 같은 에뮬레이션 메모리(716)에 전용의 어드레스 버스(712), 데이터 버스(714)를 설치할 필요가 없다. 이 때문에, 제품 칩과 평가 칩의 단자(핀) 수를 동일하게 할 수 있게 된다. 따라서, 제품 칩을 그대로 평가 칩으로서 사용할 수 있게 되어, 제품의 저비용화를 도모할 수 있게 된다.
또한 본 실시예에 의하면, 평가 칩용의 다른 패키지를 준비하거나, 제품 칩과 평가 칩의 단자의 정합성을 얻는 등의 시간을 생략할 수 있다.
또한 본 실시예에 의하면, 제품 칩을 그대로 평가 칩으로서 사용할 수 있기 때문에, 평가 칩에서는 정상으로 동작하고 있는 프로그램이 제품 칩에서는 정상으로 동작하지 않게 된다는 것과 같은 문제가 생기지 않게 된다. 즉, 평가 칩과 제품 칩의 단자(핀)수가 다르면, 단자가 접속되는 패드(입력 패드, 출력 패드, 입출력 패드)의 레이아웃 배치나 패드로의 신호선의 배선이, 평가 칩과 제품 칩에서 다른 것으로 되어 버린다. 그리고, 패드의 레이아웃 배치나 패드로의 신호선의 배치가 다르면, 이들 신호선을 통과하는 신호의 지연시간도 달라져 버린다. 따라서, 예를 들면 제품 칩은 높은 클록 주파수로 동작하지만 평가 칩은 그와 같은 높은 클록 주파수로 동작하지 않는 문제가 생긴다. 이 때문에, 평가 칩에 대해서는 낮은 클록 주파수로 동작 확인을 하지 않을 수 없게 되어, 실동작시와는 다른 환경, 신호의 타이밍에서의 프로그램 개발을 강요받게 된다.
이것에 대하여, 본 실시예에서는, 제품 칩을 그대로 평가 칩으로서 사용할 수 있기 때문에, 실동작 시와 같은 환경, 신호의 타이밍에서 프로그램 개발을 행할 수 있게 된다. 이 결과, 제품 칩의 신뢰성을 향상할 수 있는 동시에, 개발기간의 단축화, 제품 비용의 저감화를 도모할 수 있게 된다.
또, CPU(12)의 내부 ROM(16)으로의 액세스를, 에뮬레이션 메모리(32)로의 액세스로 바꾸는 경우, 내부 ROM(16)으로의 액세스는, 내부 ROM(16)이 할당되는 메모리 공간의 에어리어로의 액세스이면 충분하다. 예를 들면 평가 시 등에 있어서 내부 ROM(16)을 마이크로 컴퓨터(10)에 내장시키지 않는 경우를 생각한다. 이 경우에는, 내부 ROM(16)는 물리적으로는 존재하지 않기 때문에, CPU(12)가 내부 ROM(16)으로 액세스하더라도, 그 액세스는, 내부 ROM(16)이 할당된 메모리 공간의 에어리어로의 액세스에 머무르게 된다.
그런데, 도 2와 같이, 외부 메모리(30)와 에뮬레이션 메모리(32)에 외부 버스를 공용시키면, 다음과 같은 문제가 생긴다.
즉, 내부 ROM(16)에 격납되는 명령(프로그램)의 페치 및 디코드는, 1 클록 사이클 내에서 완료할 필요가 있다. 따라서, 에뮬레이션 모드 시에는, 에뮬레이션 메모리(32)의 명령을 1 클록 사이클 내에서 페치 및 디코드하지 않으면 안 되게 된다.
그런데, 외부 버스(28)는, 도 1b와 다르고, 에뮬레이션 메모리(32)에 전용의 버스는 아니다. 따라서, 다른 외부 디바이스(30)와 완전히 동일하게 에뮬레이션 메모리(32)를 제어하고자 하면, 1 클록 사이클 내에서의 명령의 페치 및 디코드가 실현되지 않게 되는 문제가 생긴다. 특히, 클록 주파수가 높아지면, 이 문제는 더욱 심각하게 되어, 에뮬레이션 메모리(32)를 사용한 프로그램 개발을, 실동작 시의 클록 주파수로 행할 수 없게 될 우려가 있다.
그래서, 본 실시예에서는, 외부 메모리(30)를 제어하기 위한 제어신호(CNT1)와는 다른 계통의 제어신호(CNT2)를 준비하여, 이 CNT2를 사용하여 에뮬레이션 메모리(32)로부터의 판독 동작 등을 제어하도록 하고 있다. 보다 구체적으로는, CNT1에 포함되는 메모리 리드 신호보다도 빠른 타이밍에서 CNT2에 포함되는 메모리 리드 신호가 액티브하게 되도록 신호를 제어하고 있다. 이와 같이 하는 것으로, 외부 버스(28)를 외부 메모리(30)와 에뮬레이션 메모리(32)에서 공용시킨 경우에도, 1 클록 사이클 내에서 명령의 페치 및 디코드를 완료할 수 있게 된다. 이로써, 에뮬레이션 메모리(32)를 사용한 프로그램 개발을, 실동작 시의 클록 주파수로 행하는 것이 용이하게 된다.
도 3에, 본 실시예의 마이크로 컴퓨터의 상세한 구성예를 도시한다.
여기서는 CPU(12)는, 하버드 아키텍처(Harvard architecture)의 버스 구성을 채용하고 있다. CPU(12)의 명령용 어드레스 버스(50), 데이터용 어드레스 버스(52)는, 멀티플렉서(40)에 입력된다. 멀티플렉서(40)는, CPU(12)로부터의 명령/데이터 전환 신호 DIS(스테이터스 신호의 하나)에 기초하여, 명령용 어드레스 버스(50)로부터의 어드레스와, 데이터용 어드레스 버스(52)로부터의 어드레스의 어느 하나를 선택하여, 외부 어드레스 버스(54)에 출력한다.
또한 도 3에서는, CPU(12)로부터의 명령용, 데이터용 어드레스 버스(50, 52)는, 에뮬레이션 모드의 온, 오프에 의존하지 않고서, 외부 어드레스 버스(54) 및 내부 ROM 어드레스 버스(55)의 양쪽에 접속된다.
또한 CPU(12)의 데이터 출력 버스(58)는, 입출력 패드 셀(48)을 통하여 외부 데이터 버스(56)에 접속된다. 또한, CPU(12)의 데이터 입력 버스(60)는, 명령/데이터 전환부(42), 데이터 버스(62), 입출력 패드 셀(48)을 통하여, 외부 데이터 버스(56)에 접속된다.
또한 CPU(12)의 명령 페치용 버스(64)는, 내부 ROM(16)에 접속되는 동시에, 명령/데이터 전환부(42), 데이터 버스(62), 입출력 패드 셀(48)을 통하여, 외부 데이터 버스(56)에 접속된다.
메모리 제어부(20)는, 제 1 칩 이네이블 신호(CE1), 제 1 메모리 리드 신호(RD1)를 외부 메모리(30)에 출력한다. 또한, CE1, RD1과는 다른 계통의 제 2 칩 이네이블 신호(CE2), 제 2 메모리 리드(RD2)를 에뮬레이션 메모리(32)에 출력한다. 또한 제 3 칩 이네이블 신호(CE3), 제 3 메모리 리드 신호(RD3)를 내부 ROM(16)에 출력한다. 즉, 메모리 제어부(20)는, 이들의 CE1, RD1, CE2, RD2, CE3, RD3을 사용하여, 외부 메모리(30), 에뮬레이션 메모리(32), 내부 ROM(16)로부터의 리드 동작등을 제어하게 된다.
모드 선택 단자(MT), 모드 선택 레지스터(44), OR 회로(46)는, 도 2의 에뮬레이션 지시부(18)에 상당하는 것이다. 즉 단자(MT)가 H 레벨이 된다, 혹은, 모드 선택 레지스터(44)에 H 레벨이 기억되면, 에뮬레이션 모드 지시 신호(EM)가 H 레벨이 되고, 에뮬레이션 모드를 위한 버스 전환 제어가 행해지게 된다.
또, 모드 선택 레지스터(44)에는, 도시하지 않는 버스를 통하여 CPU(12)가 액세스 가능하게 되어 있다. 즉, 모드 선택 레지스터(44)의 정보는, 소프트웨어 처리에 의해 재기록 가능하게 되어 있다. 예를 들면 마이크로 컴퓨터(10)를 시스템 보드(회로 보드)에 실장하여 프로그램 개발을 행하는 사용자의 중에는, 프로그램 완성 후에, 단자(MT)에 부여하는 신호 레벨을 H 레벨로부터 L 레벨로 전환하는(에뮬레이션 모드를 오프로 한다) 것을 원하지 않는 사용자도 있다. 단자(MT)의 신호 레벨을 변경하면, 동작환경이 변화하고, 신호 레벨의 변경전에 동작하고 있는 시스템이 동작하지 않게 되는 것도 생각되기 때문이다. 또한, 단자(MT)의 신호 레벨의 변경은, 비용 증가로 이어질 가능성도 있기 때문이다. 따라서, 이러한 사용자에게는, CPU(12)가 액세스 가능한 모드 선택 레지스터(44)를 설치하는 것으로, 그 요망에 대응할 수 있다. 모드 선택 레지스터(44)를 사용하면, 단자(MT)의 신호 레벨을 변경하지 않고서, 프로그램을 사용하여 소프트웨어 처리에서 에뮬레이션 모드의 온, 오프를 제어할 수 있게 되기 때문이다.
한편, 사용자의 중에는, 프로그램의 완성 후는, 프로그램의 재기록을 일체 행하고 싶지 않는 사용자도 있다. 즉, 모드 선택 레지스터(44)를 사용하는 경우에는, 프로그램 완성 후에, 에뮬레이션 모드가 오프가 되도록 프로그램을 재기록할 필요가 있다. 그러나, 이러한 프로그램의 재기록은, 새로운 버그의 발생을 야기할 가능성이 있다. 따라서, 이러한 버그의 발생을 싫어하는 프로그램 완성 후에는 프로그램의 재기록을 일체 바라지 않는 사용자에게는, 단자(MT)를 설치하는 것으로, 그 요망에 대응할 수 있다. 단자(MT)를 사용하면, 프로그램을 재기록하지 않고서, 단자(MT)의 신호 레벨을 변경하는 것만으로 하드웨어적으로 에뮬레이션 모드의 온, 오프를 제어할 수 있게 되기 때문이다.
다음에, 도 3의 마이크로 컴퓨터(10)의 명령의 페치 동작에 대해서 간단히 설명한다.
명령 페치의 경우에는, 명령/데이터 전환 신호(DIS)가 명령을 지시하게 되어, 멀티플렉서(40)가 명령용 어드레스 버스(50)를 선택한다. 이로써, 외부 어드레스 버스(54) 및 내부 ROM 어드레스 버스(55)에는, 명령용의 어드레스가 출력된다. 즉, 에뮬레이션 메모리(32), 내부 ROM(16)에는 모두, 명령용 어드레스가 입력되게 된다.
이 때, 모드 선택 레지스터(44)에 L 레벨이 기억되고, 동시에 단자(MT)도 L 레벨에 설정되어 있으면, 에뮬레이션 모드가 오프가 되고, 신호(EM)가 L 레벨이 된다. 또한 명령 페치이기 때문에, CPU(12)로부터의 신호 READ(스테이터스 신호의 하나)도 액티브하게 된다. 이로써, 메모리 제어부(20)는, 어드레스 버스(55)로부터의 어드레스를 디코드하고, 내부 ROM 에어리어의 어드레스이면, 내부 ROM(16)로의 제 3 칩 이네이블 신호(CE3), 제 3 메모리 리드 신호(RD3)를 액티브하게 한다. 이로써, 내부 ROM(16)로부터의 명령이 명령 페치용 버스(64)를 통하여 CPU(12)에 판독되게 된다. 즉 CPU(12)는, 내부 ROM(16)에 기억되어 있는 명령을 페치하여 실행하게 된다.
한편, 모드 선택 레지스터(44)에 H 레벨이 기억되거나, 또는 단자(MT)가 H 레벨에 설정되면, 에뮬레이션 모드가 온이 되고, 신호(EM)가 H 레벨이 된다. 그렇게 하면, 메모리 제어부(20)는, 이번에는, CE3, RD3이 아닌, 에뮬레이션 메모리(32)로의 제 2 칩 이네이블 신호(CE2), 제 2 메모리 리드 신호(RD2)를 액티브하게 한다. 또한, 명령 페치이기 때문에, 신호(DIS)가 명령을 지시하게 되는 동시에 신호 READ가 액티브하게 되고, 명령/데이터 전환부(42)가 데이터 입력 버스(60)가 아닌, 명령 페치용 버스(64)를 선택하게 된다. 이상에 의해, 에뮬레이션 메모리(32)로부터의 명령이, 외부 데이터 버스(56), 입출력 패드 셀(48), 데이터 버스(62), 명령/데이터 전환부(42), 명령 페치용 버스(64)를 통하여, CPU(12)에 판독되게 된다. 즉 CPU(12)는, 내부 ROM(16)이 아닌 에뮬레이션 메모리(32)에 기억되어 있는 명령을 페치하여 실행하게 된다.
또, 이와 같이 에뮬레이션 메모리(32)의 명령이 판독되고 있는 동안은, 내부 ROM(16)이 내장하는 트라이 스테이트 버퍼(17)의 출력이 트라이 스테이트 상태가 된다. 이로써, 명령 페치용 버스(64)에서의 데이터의 충돌이 방지된다.
이상과 같이 도 3의 실시예에서는, CPU(12)의 명령 페치 시에 에뮬레이션 모드가 오프(신호(EM)가 L 레벨)인 경우에는, 통상과 그대로, 내부 ROM(16)로부터의 명령이 명령용 페치 버스(64)를 통하여 CPU(12)에 페치되어 실행된다. 한편, CPU(12)의 명령 페치 시에 에뮬레이션 모드가 온(신호(EM)이 H 레벨)인 경우에는, 내부 ROM(16)가 아닌 에뮬레이션 메모리(32)로부터의 명령이 외부 데이터 버스(56)를 통하여 CPU(12)에 페치되어 실행되게 된다.
따라서, 프로그램의 완성 전에 있어서는 사용자는, 단자(MT) 또는 모드 선택 레지스터(44)를 사용하여 에뮬레이션 모드를 온으로 하고, 에뮬레이션 메모리(32)에 개발 도중의 프로그램을 수시 다운로드하면서 프로그램 개발을 행한다. 그리고, 프로그램의 개발이 완료되면, 사용자는, 완성 후의 프로그램을 내부 ROM(16)에 기억시킨다(마스터 패턴을 작성한다). 그리고, 단자(MT) 또는 모드 선택 레지스터(44)를 사용하여 에뮬레이션 모드를 오프로 한다. 이로써, 내부 ROM(16)로부터의 명령에 기초하여 CPU(12)가 동작하는 제품 칩이 완성된다.
그리고, 본 실시예에 의하면, 에뮬레이션 메모리(32)에 전용의 어드레스 버스, 데이터 버스는 설치되지 않고, 외부 어드레스 버스, 외부 데이터 버스(54, 56)가 외부 메모리(30)와 에뮬레이션 메모리(32)에서 공용된다. 따라서, 에뮬레이션 메모리(32)로부터의 명령(프로그램)으로 CPU(12)가 동작하는 평가 칩과, 내부 ROM(16)으로부터의 명령으로 CPU(12)에 동작하는 제품 칩이, 단자수, 패드의 레이아웃 배치, 신호선의 배치 등이 다르지 않는 동일 칩이 된다. 이 때문에, 제품 칩그 자체를 사용하여 프로그램을 개발할 수 있게 된다. 이 결과, 평가 시와 제품 시(실동작 시)에서 동작환경, 신호의 타이밍이 다른 것에 기인하여, 평가 시에는 정상으로 동작하고 있었지만 제품 시에는 동작하지 않게 되는 등의 문제를 효과적으로 해결할 수 있게 된다.
그런데, 이상과 같이 외부 어드레스 버스, 외부 데이터 버스(54, 56)를 외부 메모리(30)와 에뮬레이션 메모리(32)에서 공용하는 수법을 채용하는 것으로, 제품칩과 평가 칩을 동일 칩으로 할 수 있는 이점을 얻을 수 있다. 그러나, 그 반면, 이 수법에 의하면, 에뮬레이션 메모리(32)로부터의 명령의 판독이 맞지 않게 된다는 문제가 생긴다.
즉, 외부 어드레스 버스, 외부 데이터 버스(54, 56)는, 에뮬레이션 메모리(32)에 전용의 어드레스 버스, 데이터 버스(도 1b의 712, 714 참조)가 아닌, 원래, 외부 메모리(30)용으로 설계된 어드레스 버스, 데이터 버스이다. 그리고, 외부 메모리(30)로부터의 정보의 판독에 대해서는, 통상, 시간적인 여유가 충분히 있다. 이것에 대하여, CPU(12)에 의한 명령의 페치 및 디코드는 1 클록 사이클 내에서 완료할 필요가 있기 때문에, 에뮬레이션 메모리(32)로부터의 명령의 판독에 대해서는 시간적인 여유가 없다.
그래서, 본 실시예에서는, 외부 메모리(30)용의 CE1, RD1과는 다른 계통의 칩 이네이블 신호(CE2), 메모리 리드 신호(RD2)를 메모리 제어부(20)에 출력시키고 있다. 이로써, 외부 어드레스 버스, 외부 데이터 버스(54, 56)를 외부 메모리(30)와 에뮬레이션 메모리(32)에서 공용하면서도, 에뮬레이션 메모리(32)로부터의 명령의 페치 및 디코드를, 1 클록 사이클 내에서 완료할 수 있게 된다. 이상의 사실에 대해서 도 4의 신호 파형도를 사용하여 상세히 설명한다.
도 4에서는, CPU(12)가 다음과 같은 명령을 실행한다.
·명령(1) 1d %r2, 0x00
·명령(2) 1d %r1, [%r9]
·명령(3) add %r4, %r1
·명령(4) sub %r5, %r1
상기에 있어서, 명령(1)은, CPU(12)의 범용 레지스터(r2)에 데이터(0x00)를 로드한다는 명령이다. 명령(2)은, 범용 레지스터(r9)에 격납되어 있는 어드레스인 외부 메모리(30)의 어드레스로부터의 데이터를, 범용 레지스터(r1)에 로드하는 명령이다. 즉 외부 메모리(30)로부터의 데이터를 범용 레지스터(r1)에 로드하는 명령이다. 명령(3)은, 범용 레지스터(r4)의 데이터와 r1의 데이터를 가산하는 명령이다. 명령(4)은, 범용 레지스터(r5)의 데이터로부터 r1의 데이터를 감산하는 명령이다.
이들의 명령 (1), (2), (3), (4)는, 도 4의 B1에 도시하는 바와 같은 파이프라인 처리에 의해 실행된다. 또 B1에 있어서, F는 명령의 페치를, D는 명령의 디코드를, R는 레지스터의 리드를, A는 어드레스의 계산을, E는 명령의 실행을, W는 레지스터로의 라이트를 나타낸다.
도 4의 B2에 도시하는 BCLK는, 버스 사이클을 정하는 버스 클록이며, 여기서는, BCLK은 CPU(12)의 동작 클록으로도 되어 있다.
도 4에서는 B3에 도시하는 바와 같이, 우선 에뮬레이션 메모리(32)로부터의 명령의 판독이 행해지고, 다음에, 외부 메모리(30)로부터의 데이터의 판독이 행헤지며, 다음에, 에뮬레이션 메모리(32)로부터의 명령의 판독이 행해진다.
즉, 도 4의 B4, B5, B6에 도시하는 바와 같이, 명령(1), (2), (3)을 에뮬레이션 메모리(32)로부터 판독하기 위한 어드레스가 외부 어드레스 버스(54)에 출력된다. 이들의 어드레스는, CPU(12)로부터 명령용 어드레스 버스(50), 멀티플렉서(40)를 통하여 외부 어드레스 버스(54)에 출력된다. 이로써, B7, B8, B9에 도시하는 바와 같이, 각 어드레스에 대응하는 명령(명령 데이터)이 에뮬레이션 메모리(32)로부터 판독되고, 외부 데이터 버스(56)에 출력된다. 그리고 이들의 명령은, 외부 데이터 버스(56)로부터 입출력 패드 셀(48), 데이터 버스(62), 명령/데이터 전환부(42), 명령 페치용 버스(64)를 통하여, CPU(12)에 페치되어 디코드된다.
또한, 도 4의 B10에서는, 외부 메모리(30)로의 판독 어드레스가, CPU(12)로부터 데이터용 어드레스 버스(52), 멀티플렉서(40)를 통하여 외부 어드레스 버스(54)에 출력된다. 이 어드레스는, 상기 명령(2)에 의해 지정되는 어드레스[% r9]이다. 이로써, B11에 도시하는 바와 같이, 외부 메모리(30)로부터의 데이터가 외부 데이터 버스(56)에 출력되고, 입출력 패드 셀(48), 데이터 버스(62), 명령/데이터 전환부(42),데이터 입력 버스(60)를 통하여 CPU(12)에 판독된다.
또한, 도 4의 B12에서는, 명령(4)을 에뮬레이션 메모리(32)로부터 판독하기 위한 어드레스가 외부 어드레스 버스(54)에 출력된다. 이로써 B13에 나타내는 바와 같이, 이 어드레스에 대응하는 명령이 에뮬레이션 메모리(32)로부터 외부 데이터 버스(56)에 출력된다.
외부 메모리(30)로부터 데이터를 판독하는 경우에는, 도 4의 B14, B15에 도시하는 바와 같이 제 1 칩 이네이블 신호(CE1), 제 1 메모리 리드 신호(RD1)를 액티브하게 한다(L 레벨로 한다). 한편, 에뮬레이션 메모리(32)로부터 명령을 판독하는 경우에는, B16 내지 B21에 도시하는 바와 같이, 제 2 칩 이네이블 신호(CE2), 제 2 메모리 리드 신호(RD2)를 액티브하게 한다.
이 때, B15에 도시하는 바와 같이, RD1은 BCLK의 하강에 동기하여 액티브하게 된다. 한편, B18 내지 B21에 도시하는 바와 같이, RD2는, BCLK의 상승에 동기하여 액티브하게 된다. 보다 구체적으로는, BCLK의 상승으로부터 소정의 지연시간(지연소자에 있어서의 지연시간; TD) 경과 후에 액티브하게 된다. 즉, RD2는, RD1보다도 빠른 타이밍에서 액티브하게 되도록 제어된다.
이와 같이 RD2를 빠른 타이밍에서 액티브하게 하는 것으로, CPU(12)에 의한 명령의 페치(F) 및 디코드(D)를, 1 클록 사이클 내에서 완료할 수 있게 된다.
즉, 다른 외부 메모리(30)에 사용하는 RD1을 사용하여 에뮬레이션 메모리(32)로부터의 명령의 판독을 행하면, RD1은 BCLK의 하강에 동기하여 액티브하게 되기 때문에, CPU(12)에 의한 명령의 페치 및 디코드가 1 클록 사이클 내에서 완료할 수 없게 되는 문제가 생긴다. 특히, BCLK의 클록 주파수가 높아진 경우에는, 이 문제가 생길 가능성은 더욱 높아진다.
이 경우, 예를 들면, 평가 시, 즉 에뮬레이션 메모리(32)로부터의 명령의 판독 시에 있어서는, BCLK의 클록 주파수를 낮게 하도록 하면, 상기 문제를 해소할 수 있다. 그러나, 이것으로는, 실동작 시의 클록 주파수와 프로그램 개발 시의 클록 주파수가 다르게 되어 버려, 프로그램 개발시에는 정상으로 동작하고 있는 프로그램이 실동작시에는 정상으로 동작하지 않게 되는 문제를 초래한다. 따라서, 제품 칩과 평가 칩을 동일 칩으로 할 수 있다는 본 실시예의 이점이, 실질적으로 없어져 버린다.
이것에 대하여, 도 4에서는, RD1과 다른 계통의 RD2를 준비하여, B18 내지 B21에 도시하는 바와 같이 RD2를 빠른 액티브에서 액티브하게 하고 있기 때문에, 에뮬레이션 메모리(32)로부터의 명령의 페치 및 디코드를 1 클록 사이클 내에서 적정히 완료할 수 있게 된다. 따라서, 실동작 시와 동일한 클록 주파수로 프로그램 개발을 할 수 있게 되며, 프로그램 개발이 종료하여 완성 후의 프로그램을 내부 ROM(16)에 기억시킨 경우에도, 문제없이 프로그램이 정상으로 동작하게 된다. 따라서, 외부 어드레스 버스, 외부 데이터 버스(54, 56)의 공용에 의해 제품 칩과 평가 칩을 동일 칩으로 할 수 있다는 본 실시예의 이점을, 더욱 살릴 수 있게 된다.
또, 도 4의 B22에서는, 외부 메모리(30)로부터의 데이터의 판독에 웨이트가 삽입되어 있기 때문에, CPU(12)의 파이프라인 처리가 스톨하고 있다. 즉, 외부 어드레스 버스(54), 외부 데이터 버스(56)에는, 판독이나 기록 스피드가 다른 여러 가지의 외부 메모리(30)가 접속될 가능성이 있다. 따라서, 신호(CE1, RD1)가 액티브하게 되는 기간에 대해서는 웨이트의 삽입이 가능하게 되어 있고, 판독이나 기록 스피드가 다른 여러 가지의 외부 메모리(30)에 대응할 수 있도록 되어 있다.
한편, 신호(CE2, RD2)가 출력되는 에뮬레이션 메모리(32)에 대해서는, 상술한 바와 같이 1 클록 사이클로 명령을 판독할 필요가 있다. 따라서, CE2, RD2가 액티브하게 되는 기간에 대해서는, CE1, RD1과는 달리, 웨이트의 삽입은 행해지지 않게 된다.
그런데, 도 3에서는, 1 비트의 모드 선택 단자(MT)에 의해 에뮬레이션 모드의 온, 오프를 선택할 수 있도록 되어 있지만, 이 단자(MT)를 예를 들면 복수 비트로 하여, 다른 모드를 선택할 수 있도록 해도 된다.
예를 들면 도 5에서는 단자(MT)를 2 비트로 하고 있다. 그리고, 단자(MT)가 (00)에 설정된 경우에는, 에뮬레이션 메모리(32)로부터 부트하는 모드가 선택된다. 즉, 리셋 후에 CPU(12)가 최초에 액세스하는 액세스 장소가 에뮬레이션 메모리(32)가 되는 모드(에뮬레이션 모드가 온이 되는 모드)가 선택된다. 또한 단자(MT)가 (01)에 설정된 경우에는, 외부 메모리(30)로부터 에뮬레이션 메모리(32)에 정보를 전송한 후에, 에뮬레이션 메모리(32)로부터 부트하는 모드가 선택된다. 또한 단자(MT)가 (10)에 설정된 경우에는, 내부 ROM(16)로부터 부트하는 모드가 선택된다. 즉, 리세트후의 CPU(12)의 최초의 액세스 장소가 내부 ROM(16)이 되는 모드가 선택된다. 또한 단자(MT)가 (11)에 설정된 경우에는, 외부 메모리(30)로부터 부트하는 모드가 선택된다. 즉, 리셋 후의 CPU(12)의 최초의 액세스 장소가 외부 메모리(30)가 되는 모드가 선택된다.
이와 같이, 단자(MT)를 사용하여 각종 모드를 선택할 수 있도록 하는 것으로, 프로그램 개발의 효율화를 더욱 도모할 수 있게 된다.
예를 들면, 프로그램의 개발 도중에 있어서는 단자(MT)를 (00)에 설정한다. 이와 같이 하는 것으로, 리셋 후는 항상 에뮬레이션 메모리(32)로부터 부트하게 된다. 따라서, 에뮬레이션 메모리(32)에 기억된 프로그램(명령)에 의해 CPU(12)가 동작하게 되고, 에뮬레이션 메모리(32)에 수시 프로그램을 다운로드하면서 프로그램 개발을 행할 수 있게 된다.
또한, 프로그램의 개발이 종료하여 완성된 프로그램을 내부 ROM(16)에 기억시킨 후는, 단자(MT)를 (10)에 설정한다. 이와 같이 하는 것으로, 리셋 후는 항상 내부 ROM(16)으로부터 부트하게 된다. 따라서, 마이크로 컴퓨터(10)를 제품 칩으로서 사용할 수 있게 된다. 즉, 단자(MT)의 설정을 (00)으로부터 (10)으로 변경하는 것만으로, 평가 칩을, 제품 칩으로서 사용할 수 있게 된다.
또한, 리셋 후에 외부 메모리(30)로부터 부트하고자 하는 사용자는, 단자(MT)를 (11)에 설정하면 된다. 즉, 사용자의 중에는, 사용자의 시스템 보드상의 외부 메모리(30)에, 리셋 후에 최초에 기동시키는 프로그램을 격납하는 것을 바라는 사용자도 있다. 이러한 사용자에게는, 내부 ROM(16)는 불필요하고, 전자 기기의 저 비용화를 위해 내부 ROM(16)를 내장하지 않는 타입의 마이크로 컴퓨터를 제공하는 것이 바람직하다. 이러한 경우에도 본 실시예에 의하면, 단자(MT)를 (11)에 설정하는 것만으로, 이러한 사용자의 요망에 용이하게 대응할 수 있게 된다.
다음에, 단자(MT)를 (01)로 한 경우의 모드(이하, OTP(One Time Prom) 모드라고 부른다)에 대하여 도 6을 참조하여 상세히 설명한다.
OTP 모드에 있어서는, 리셋 후에, 도 6의 C1에 도시하는 바와 같이, 플래시 메모리(31)(외부 메모리의 하나)로부터의 프로그램(정보)이 마이크로 컴퓨터(10)가 내장하는 DMA 컨트롤러(80)를 통하여 에뮬레이션 메모리(32)에 전송된다. 즉, 에뮬레이션 메모리(32)는, 처리의 고속화를 위해, 통상, 고속 SRAM에 의해 구성된다. 따라서, 전원이 꺼져 버리면, 에뮬레이션 메모리(32)에 기억되어 있던 프로그램은 없어져 버린다. 이 때문에, 전원을 꺼질 때마다, 에뮬레이션 메모리(32)에 프로그램을 다운로드하는 시간이 필요하게 되어, 프로그램 개발의 작업이 번거롭게 된다.
그래서, 이러한 경우에 본 실시예에서는, 단자(MT)를 (01)에 설정한다. 이와 같이 하면, 플래시 메모리(EEPROM)(31)에 기억되어 있던 프로그램이, 리셋 후에 자동적으로 에뮬레이션 메모리(32)에 전송되게 된다. 그리고, 플래시 메모리(31)는 불휘발성의 메모리이기 때문에, 전원이 꺼진 경우에도 플래시 메모리(31)에 기억되는 프로그램은 소실하지 않는다. 따라서, 전원이 꺼진 경우에도, 에뮬레이션 메모리(32)에 프로그램을 다시 다운로드할 필요가 없어지고, 프로그램개발의 효율화를 도모할 수 있게 된다.
이상과 같이, 복수 비트의 단자(MT)를 설치하고, 이 단자(MT)에 의해 상기 한 여러 가지의 모드를 선택할 수 있도록 하는 것으로, 폭 넓은 층의 사용자의 요망에 대응할 수 있게 되는 동시에 프로그램 개발의 효율화나 자유도를 증가시킬 수 있게 된다.
2.전자 기기
다음에, 본 실시예의 마이크로 컴퓨터를 포함하는 전자 기기에 대해서 설명한다.
예를 들면 도 7a에, 전자 기기의 하나인 카 네비게이션 시스템의 내부 블록도를 도시하고, 도 8a에, 그 외관도를 도시한다. 카 네비게이션 시스템의 조작은 리모콘(510)을 사용하여 행해지고, GPS나 쟈이로로부터의 정보에 기초하여 위치검출부(520)가 차의 위치를 검출한다. 지도 등의 정보는 CDROM(530; 정보 기억 매체)에 격납되어 있다. 메모리(540)는 화상처리나 음성처리 시의 작업영역이 되는 메모리이고, 생성된 화상은 화상 출력부(550)를 사용하여 운전자에게 표시된다. 또한, 생성된 카 네비게이션용의 가이드 음성은, 음 출력부(535)를 사용하여 운전자에게 출력된다. 마이크로 컴퓨터(500)는, 리모콘(510), 위치 검출부(520), CDROM(530) 등의 정보 입력원으로부터 정보를 입력하고, 여러 가지 처리를 행하여, 처리후의 정보를, 화상 출력부(550), 음 출력부(535) 등의 출력장치를 사용하여 출력한다.
도 7b에, 전자 기기의 하나인 게임장치의 내부 블록도를 도시하고, 도 8b에, 그 외관도를 도시한다. 이 게임장치에서는, 게임 컨트롤러(560)로부터의 플레이어의 조작정보, CDROM(570)로부터의 게임 프로그램, IC 카드(580)로부터의 플레이어 정보 등에 기초하여, 메모리(590)를 작업영역으로서 게임화상이나 게임음을 생성하여, 화상 출력부(610), 음 출력부(600)를 사용하여 출력한다.
도 7c에 전자 기기의 하나인 프린터의 내부 블록도를 도시하고, 도 8c에 그 외관도를 도시한다. 이 프린터에서는, 조작 패널(620)로부터의 조작정보, 코드 메모리(630) 및 폰트 메모리(640)로부터 문자정보에 기초하여, 비트 맵 메모리(650)를 작업영역으로서, 인쇄 화상을 생성하여, 프린트 출력부(660)를 사용하여 출력한다. 또한 프린터의 상태나 모드를 표시 패널(670)을 사용하여 사용자에게 전한다.
본 실시예의 마이크로 컴퓨터에 의하면, 전자 기기(시스템 보드)에 부착한 마이크로 컴퓨터의 칩으로서, 평가 시와 제품 시(실동작 시)에서 동일의 칩을 사용할 수 있게 된다. 따라서, 평가 시와 제품 시에서, 마이크로 컴퓨터의 칩의 소켓이나 마이크로 컴퓨터로의 배선의 배치를 동일하게 할 수 있게 되며, 전자 기기의 저 비용화를 도모할 수 있게 된다. 또한, 평가 시에는 정상으로 동작하여 있었는데 제품 시에는 정상으로 동작하지 않게 되는 사태도 효과적으로 방지할 수 있다. 또한, 마이크로 컴퓨터를 전자 기기에 부착한 상태에서 행해지는 프로그램 개발의 효율화를 도모할 수 있고, 개발기간의 단축화나 전자 기기의 저 비용화를 도모할 수 있다.
또 마이크로 컴퓨터를 적용할 수 있는 전자 기기로서는, 상기 이외에도 예를 들면, 휴대전화(셀룰러폰;cellular phone), PHS, 페이저, 휴대형 정보단말, 디지털 카메라, 하드 디스크 장치, 광 디스크(CD, DVD) 장치, 광자기 디스크(MO) 장치, 오디오 기기, 전자수첩, 전자탁상 계산기, POS 단말, 터치 패널을 구비한 장치, 프로젝터, 워드 프로세서, 퍼스널 컴퓨터, 텔레비전, 뷰 파인더형, 또는 모니터 직시형의 비디오 테이프 레코더 등 여러 가지를 생각할 수 있다.
또, 본 발명은 본 실시예에 한정되지 않으며, 본 발명의 요지의 범위내에서 여러 가지의 변형 실시가 가능하다.
예를 들면, 에뮬레이션 모드가 온일 때에, 프로세서(CPU)의 버스를 외부 버스에 접속하는 수법도, 도 3에서 설명한 것에 한정되지 않고, 여러 가지의 변형 실시예가 가능하다.
또한, 에뮬레이션 모드의 온, 오프의 설정은, 모드 선택 레지스터나 모드 선택 단자에 의해 행하는 것이 특히 바람직하지만, 다른 수법을 사용하는 것도 가능하다.
또한, 외부 메모리를 제어하기 위한 제 1 제어신호나, 에뮬레이션 메모리를 제어하기 위한 제 2 제어신호도, 도 3, 도 4에서 설명한 바와 같은 신호가 특히 바람직하지만, 이것에 한정되는 것은 아니다.
또한, 본 발명의 전자 기기의 구성도, 도 7a 내지 도 8c에서 설명한 것에 한정되지 않으며, 여러 가지의 변형 실시가 가능하다.
본 발명에 의하면, 마이크로 컴퓨터의 평가 시에 있어서는, 외부 메모리가 접속되는 외부 버스를 통하여, 에뮬레이션 메모리로의 액세스가 행해지고, 에뮬레이션 메모리를 사용한, 프로그램 개발 등의 평가 작업이 가능하게 된다. 또한, 에뮬레이션 메모리에 전용의 버스를 설치하지 않고서, 다른 외부 메모리용의 외부 버스를 통하여 에뮬레이션 메모리로의 액세스가 행해진다. 따라서, 평가용의 마이크로 컴퓨터의 단자와 제품용의 마이크로 컴퓨터의 단자를 동일 형태인 것으로 할 수 있게 되어, 마이크로 컴퓨터의 단자수의 절약을 도모하면서 최적의 평가 환경을 실현할 수 있게 된다.

Claims (11)

  1. 정보처리를 행하는 마이크로 컴퓨터로서,
    명령의 실행처리를 행하는 프로세서와,
    에뮬레이션 메모리와 적어도 1개의 다른 외부 메모리가 접속 가능한 외부 버스와,
    에뮬레이션 모드가 온이 된 경우에, 상기 프로세서의 내부 메모리로의 액세스가, 상기 외부 버스를 통한 상기 에뮬레이션 메모리로의 액세스로 절환되도록, 상기 프로세서의 버스를 상기 외부 버스에 접속하는 버스 제어 수단을 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  2. 제 1 항에 있어서,
    에뮬레이션 모드의 온, 오프를 선택하기 위한 모드 선택 단자를 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  3. 제 1 항에 있어서,
    에뮬레이션 모드의 온, 오프를 선택하기 위한 정보를 기억하여 상기 프로세서가 액세스 가능한 모드 선택 레지스터를 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  4. 제 1 항에 있어서,
    프로세서의 어드레스 버스에 있어서는, 에뮬레이션 모드의 온, 오프에 의존하지 않고서 외부 어드레스 버스 및 상기 내부 메모리의 어드레스 버스에 접속되고,
    프로세서의 데이터 버스에 있어서는, 에뮬레이션 모드가 온이 된 경우에 외부 데이터 버스에 접속되는 것을 특징으로 하는 마이크로 컴퓨터.
  5. 제 1 항에 있어서,
    상기 외부 버스에 접속되는 상기 외부 메모리를 제어하기 위한 제 1 제어신호와, 상기 외부 버스에 접속되는 상기 에뮬레이션 메모리를 제어하기 위한, 상기 제 1 제어수단과는 다른 계통의 제 2 제어신호를 출력하는 메모리 제어수단을 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  6. 제 5 항에 있어서,
    상기 제 2 제어신호가 포함하는 제 2 메모리 리드 신호가, 상기 제 1 제어신호가 포함하는 제 1 메모리 리드 신호보다도 빠른 타이밍으로 액티브하게 되는 것을 특징으로 하는 마이크로 컴퓨터.
  7. 제 1 항에 있어서,
    리셋 후에 상기 프로세서가 최초로 액세스하는 액세스 장소가 상기 에뮬레이션 메모리가 되는 제 1 모드와, 상기 액세스 장소가 상기 내부 메모리가 되는 제 2 모드를 선택하기 위한 모드 선택 단자를 포함하는 것을 특징으로 하는 마이크로 컴퓨터.
  8. 제 7 항에 있어서,
    상기 액세스 장소가 상기 외부 메모리가 되는 제 3 모드가, 상기 모드 선택 단자에 의해 선택 가능한 것을 특징으로 하는 마이크로 컴퓨터.
  9. 제 7 항에 있어서,
    리셋 후에 상기 외부 메모리로부터 상기 에뮬레이션 메모리로 정보가 송신되고, 그 후에 상기 프로세서가 최초에 상기 에뮬레이션 메모리에 액세스하는 제 4 모드가, 상기 모드 선택 단자에 의해 선택 가능한 것을 특징으로 하는 마이크로 컴퓨터.
  10. 제 1 항 내지 제 9 항중 어느 한 항에 따른 마이크로 컴퓨터와,
    상기 마이크로 컴퓨터의 처리대상이 되는 정보의 입력원과,
    상기 마이크로 컴퓨터에 의해 처리된 정보를 출력하기 위한 출력장치를 포함하는 것을 특징으로 하는 전자 기기.
  11. 명령의 실행처리를 행하는 프로세서와, 에뮬레이션 메모리 및 적어도 1개의 다른 외부 메모리가 접속 가능한 외부 버스를 포함하는 마이크로 컴퓨터를 위한 에뮬레이션 방법으로서,
    마이크로 컴퓨터의 평가 시에 있어서는, 상기 에뮬레이션 메모리와 상기 외부 메모리에서 상기 외부 버스를 공용시키는 동시에, 상기 외부 버스를 통하여 상기 에뮬레이션 메모리에 액세스하여, 해당 액세스에 의해 상기 에뮬레이션 메모리로부터 판독되는 정보에 기초하여 상기 프로세서를 동작시키고,
    마이크로 컴퓨터의 제품 시에 있어서는, 내부 메모리로부터 판독되는 정보에 기초하여 상기 프로세서를 동작시키는 것을 특징으로 하는 에뮬레이션 방법.
KR10-2000-0014226A 1999-03-23 2000-03-21 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법 KR100506031B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP07806699A JP3943277B2 (ja) 1999-03-23 1999-03-23 マイクロコンピュータ及び電子機器
JP99-78066 1999-03-23

Publications (2)

Publication Number Publication Date
KR20010006839A true KR20010006839A (ko) 2001-01-26
KR100506031B1 KR100506031B1 (ko) 2005-08-04

Family

ID=13651482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0014226A KR100506031B1 (ko) 1999-03-23 2000-03-21 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법

Country Status (4)

Country Link
US (1) US6799157B1 (ko)
JP (1) JP3943277B2 (ko)
KR (1) KR100506031B1 (ko)
TW (1) TW457419B (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8014993B1 (en) * 2000-08-15 2011-09-06 Cypress Semiconductor Corporation Transportable volume, local environment repository
JP3964142B2 (ja) * 2000-08-15 2007-08-22 株式会社ソニー・コンピュータエンタテインメント エミュレート装置及び部品、情報処理装置、エミュレーション方法、記録媒体、プログラム
FR2821456B1 (fr) * 2001-02-28 2003-06-20 St Microelectronics Sa Microprocesseur a architecture harvard ayant un espace adreassable lineaire
US7248381B2 (en) * 2001-07-10 2007-07-24 Avago Technologies Imaging Ip (Singapore) Pte. Ltd. Point-of-sale demonstration of computer peripherals
TWI220192B (en) * 2001-11-06 2004-08-11 Mediatek Inc Memory access method and apparatus in ICE system
US7287154B1 (en) * 2004-02-02 2007-10-23 Trimble Navigation Limited Electronic boot up system and method
JP4481695B2 (ja) 2004-03-25 2010-06-16 ルネサスエレクトロニクス株式会社 デバッグ用切換器、デバッグ方法
CN100357909C (zh) * 2005-08-31 2007-12-26 上海海尔集成电路有限公司 一种仿真器芯片
CN101354730B (zh) * 2005-08-31 2010-08-25 上海海尔集成电路有限公司 一种仿真器芯片的仿真方法
US20090006989A1 (en) * 2007-06-27 2009-01-01 Samsung Electronics Co., Ltd Image forming method and apparatus, and host
JP2009157874A (ja) * 2007-12-28 2009-07-16 Nec Electronics Corp 情報処理装置、及びソフトウェアのデバッグ方法
US9703562B2 (en) * 2013-03-16 2017-07-11 Intel Corporation Instruction emulation processors, methods, and systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS583054A (ja) 1981-06-30 1983-01-08 Nec Corp シングルチツプマイクロコンピユ−タ
JPS61229133A (ja) * 1985-04-03 1986-10-13 Nec Corp シングルチツプマイクロコンピユ−タ用エミユレ−タ
NL8602849A (nl) * 1986-11-11 1988-06-01 Philips Nv Inrichting voor het emuleren van een microcontroller, middels gebruik maken van een moedermicrocontroller en een dochtermicrocontroller, moedermicrocontroller, respektievelijk dochtermicrocontroller voor gebruik in zo een inrichting, geintegreerde schakeling voor gebruik in zo een dochtermicrocontroller en microcontroller bevattende zo een geintegreerde schakeling.
US4939637A (en) * 1988-02-10 1990-07-03 Metalink Corporation Circuitry for producing emulation mode in single chip microcomputer
US4868822A (en) * 1988-02-19 1989-09-19 John Fluke Mfg. Co., Inc. Memory emulation method and system for testing and troubleshooting microprocessor-based electronic systems
JP2597409B2 (ja) 1989-12-28 1997-04-09 三菱電機株式会社 マイクロコンピュータ
US5313618A (en) * 1992-09-03 1994-05-17 Metalink Corp. Shared bus in-circuit emulator system and method
US5515525A (en) * 1993-09-28 1996-05-07 Bull Hn Information Systems Inc. Emulating the memory functions of a first system on a second system
US5526503A (en) * 1993-10-06 1996-06-11 Ast Research, Inc. Virtual addressing buffer circuit
US5640542A (en) * 1993-10-29 1997-06-17 Intel Corporation On-chip in-circuit-emulator memory mapping and breakpoint register modules
US5781750A (en) * 1994-01-11 1998-07-14 Exponential Technology, Inc. Dual-instruction-set architecture CPU with hidden software emulation mode
US5669009A (en) * 1994-06-30 1997-09-16 Hughes Electronics Signal processing array
US5623673A (en) * 1994-07-25 1997-04-22 Advanced Micro Devices, Inc. System management mode and in-circuit emulation memory mapping and locking method
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5794063A (en) * 1996-01-26 1998-08-11 Advanced Micro Devices, Inc. Instruction decoder including emulation using indirect specifiers
JPH10214201A (ja) * 1997-01-29 1998-08-11 Mitsubishi Electric Corp マイクロコンピュータ
JP2000516750A (ja) * 1997-05-30 2000-12-12 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 標準ポート手段を有するnon―bond―outバージョンのマイクロコントローラをエミュレートする方法、このようなエミュレートを行うマイクロコントローラ及びエミュレーションを実行するためのシステム情報の格納及び/又は再生システム
JPH11184724A (ja) * 1997-12-18 1999-07-09 Matsushita Electric Ind Co Ltd インサーキットエミュレータ及び半導体集積回路

Also Published As

Publication number Publication date
JP2000276370A (ja) 2000-10-06
JP3943277B2 (ja) 2007-07-11
KR100506031B1 (ko) 2005-08-04
TW457419B (en) 2001-10-01
US6799157B1 (en) 2004-09-28

Similar Documents

Publication Publication Date Title
KR100995719B1 (ko) 데이터 처리 시스템 및 데이터 프로세서
US8316200B2 (en) Microcomputer, electronic instrument, and flash memory protection method
JP2009540431A (ja) 1つのインターフェースを有するハイブリッド・メモリ・デバイス
JP4869713B2 (ja) マルチチップパッケージデバイス
KR100506031B1 (ko) 마이크로 컴퓨터, 전자 기기 및 에뮬레이션 방법
US5095485A (en) Microprocessor equipped with parity control unit on same chip
US5509139A (en) Circuit for disabling an address masking control signal using OR gate when a microprocessor is in a system management mode
US6877063B1 (en) Multiple memory aliasing for a configurable system-on-chip
US5960190A (en) In-circuit emulation system with minimal impact on target environment
JP3380827B2 (ja) エミュレータ装置
US5825784A (en) Testing and diagnostic mechanism
US20030225567A1 (en) System and method for emulating an embedded non-volatile memory
US5857116A (en) Circuit for disabling an address masking control signal when a microprocessor is in a system management mode
US7020813B2 (en) On chip debugging method of microcontrollers
JP2008065549A (ja) マイクロコンピュータ、情報処理システム、電子機器及びマイクロコンピュータの起動制御方法
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JP2001092686A (ja) 半導体装置
JP3323341B2 (ja) エミュレーション用プロセッサおよびそれを搭載したエミュレータ
US5924124A (en) Software programmable bus disable system
JP2000181899A (ja) マイクロプロセッサ、共用端子制御方法およびリセット処理実行方法
JPH09198272A (ja) エミュレーション用プロセッサおよびエミュレータ
JPH06150026A (ja) マイクロコンピュータ、及びエミュレータ
JPH09138747A (ja) 超小型コンピュータ装置
JPH09269915A (ja) マイクロプロセッサ
JPH09259043A (ja) メモリ保護メカニズム

Legal Events

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

Payment date: 20120629

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20130618

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee