[go: up one dir, main page]

KR100658135B1 - 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터 - Google Patents

프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터 Download PDF

Info

Publication number
KR100658135B1
KR100658135B1 KR1020010076901A KR20010076901A KR100658135B1 KR 100658135 B1 KR100658135 B1 KR 100658135B1 KR 1020010076901 A KR1020010076901 A KR 1020010076901A KR 20010076901 A KR20010076901 A KR 20010076901A KR 100658135 B1 KR100658135 B1 KR 100658135B1
Authority
KR
South Korea
Prior art keywords
register
control
rewrite
clock
microcomputer
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.)
Expired - Fee Related
Application number
KR1020010076901A
Other languages
English (en)
Other versions
KR20020072182A (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 KR20020072182A publication Critical patent/KR20020072182A/ko
Application granted granted Critical
Publication of KR100658135B1 publication Critical patent/KR100658135B1/ko
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7814Specially adapted for real time processing, e.g. comprising hardware timers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Microcomputers (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)

Abstract

자동 순차 회로는 레이아웃 면적이 크고, 그 순차 변경도 용이하지 않은 등의 문제가 있었다.
재기록 제어 F/W와 사용자 S/W를 저장하는 플래시 메모리, 재기록 제어 내용을 지정하는 명령 레지스터, 재기록 제어 대상 어드레스 레지스터, 기록해야 할 데이터를 지정하는 데이터 레지스터 및 플래시 메모리 내 전원 펌프 회로, 메모리 디코더로의 제어 신호를 지정/출력되는 제어 신호 레지스터를 구비하여 마이크로 컴퓨터를 구성하고, 4개의 레지스터에 대해서는, 마이크로 컴퓨터의 CPU에 의해 기록/판독의 액세스가 가능하고, 제어 신호 레지스터의 소정 비트가 소정의 제어 신호에 대응하며, 이것에 기록된 값은 플래시 메모리 내 전원 회로나 메모리 디코더로의 제어 신호로 되어 이들을 제어하는 것에 의해, 이 제어 신호 레지스터의 설정값을 규정 순차에 따라 재기록 제어 F/W에서 재기록함으로써 플래시 메모리의 소거, 프로그램 등의 처리를 실행시키도록 했다.

Description

프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터{MICROCOMPUTER WITH BUILT-IN PROGRAMMABLE NONVOLATILE MEMORY}
도 1은 본 발명의 실시예 1에 따른 플래시 메모리가 내장된 마이크로 컴퓨터의 구성을 나타내는 블록도,
도 2는 플래시 메모리 제어 레지스터군의 메모리 맵,
도 3은 펌프/메모리 디코더용 제어 신호 레지스터와 그 부속 회로의 구성을 나타내는 블록도,
도 4는 순차 제어 레지스터와 그 부속 회로의 구성을 나타내는 블록도,
도 5는 펌프/메모리 디코더용 제어 신호 레지스터의 1비트의 구성을 나타내는 블록도,
도 6은 어드레스 레지스터와 그 부속 회로의 구성을 나타내는 블록도,
도 7은 펌프용 타이머 레지스터와 그 부속 회로의 구성을 나타내는 블록도,
도 8은 클럭 제어 관련 회로의 구성을 나타내는 블록도,
도 9는 클럭 제어 관련 회로의 구성을 나타내는 블록도,
도 10은 소프트웨어 명령 일람표,
도 11은 오류 상태 일람표,
도 12는 메모리 맵과 재기록 제어 F/W의 동작 순서를 나타내는 도면,
도 13은 재기록 제어 F/W 구성과 실행 순서를 나타내는 도면,
도 14는 사용자 I/F 제어부가 담당하는 재기록 제어 F/W의 동작 흐름도,
도 15는 명령 실행 제어부가 담당하는 재기록 제어 F/W의 동작 흐름도,
도 16은 외부 메모리로 동작시키는 모드에서의 메모리 맵,
도 17은 마이크로 컴퓨터의 동작 모드 일람표.
도면의 주요 부분에 대한 부호의 설명
1 : 마이크로 컴퓨터
2 : 플래시 메모리 블록(비휘발성 메모리)
3 : 중앙 처리 장치와 버스 인터페이스(CPU/BIU)
4 : RAM 5 :데이터 버스
6 : 어드레스선 7 : R/W 제어선
11 : 포트 제어 블록 12 : 직렬 I/O
13 : 타이머 15 : 외부 버스 제어 블록
16 : 클럭 제어 회로 17 : 리셋 제어 회로
21 : 사용자 영역 22 : F/W 영역
23 : 메모리 디코더
24 : 전압 차지 펌프 회로(전원 펌프 회로)
25 : 플래시 메모리 제어 레지스터군
26 : 펌프/메모리 디코더용 제어 신호 레지스터
27 : 신호 출력 제어 레지스터 28 : 어드레스 레지스터
29 : 데이터 레지스터 30 : 상태 레지스터
31 : 명령 레지스터 32 : 순차 제어 레지스터
33 : 펌프용 타이머 레지스터 36 : 펌프용 클럭 발진기
72 : 데이터 입력(Din) 단자 73 : 데이터 출력 (Dout) 단자
74 : 데이터 출력 제어 입력 (OUTcont) 단자
75∼77 : 포트 85 : 외부 데이터 버스 단자
86 : 외부 어드레스선 단자 87 : 외부 R/W 제어선 단자
88, 89 : 동작 모드 선택 입력 단자
본 발명은 플래시 메모리 등의 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터에 관한 것으로, 특히, 비휘발성 메모리의 재기록 기능에 관한 것이다.
종래부터, 마이크로 컴퓨터에 내장되어 있는 플래시 메모리의 내용을 재기록하기 위한 제어를 행하는 전용 하드웨어(H/W), 즉, 자동 순차 회로를 갖고, 그 하드웨어에 대해 마이크로 컴퓨터의 CPU(중앙 연산 처리 장치)가 제어 명령을 기록 또는 설정하는 것에 의해 하드웨어를 동작시켜 재기록할 수 있는 마이크로 컴퓨터가 알려져 있다. 그 때, 명령 발행(issuing a command) 등의 재기록 제어 프로그램은 사용자 측의 제어에 의해 내장 RAM으로 전송할 필요가 있고, 또한 인터럽트 금지 처리도 사용자 측에서 실행할 필요가 있었다(예 : 미쯔비시 전기사 제품 M37902FGCHP 등).
이 재기록 처리는 하드웨어에서 자동적으로 실행되므로, 사용자 측에서 준비해야 할 재기록 제어 프로그램은 어느 정도 간략화할 수 있지만, 반면 자동 순차 회로의 레이아웃 면적이 커져 고비용의 요인으로 되어 있었다. 또한, 재기록 순차의 버그 정정이나 웨이퍼 프로세스에 적합하게 적용하도록 하는 하드웨어의 정정이 필요하여 용이하게 정정할 수 없었다.
한편, 재기록 제어용의 자동 순차 회로를 필요 최소한으로밖에 가지지 않고, 재기록 처리에 필요한 시간 관리, 결과 비교/판정까지도 사용자 측 소프트웨어(S/W)가 실행하는 경우도 있다(예: 미쯔비시 전기사 제품 M37754FFCHP, 히타치 제작소 제품 H8/3062F-ZTAT 등).
하드웨어량이 적어서 저렴한 칩을 만들 수 있는 반면, 사용자 측에서 작성해야 할 재기록 제어 소프트웨어의 부하가 매우 커서 소프트웨어 개발 기간이 길어진다는 문제가 있었다.
또한, 국제 출원 WO99/01824에는 프로그래밍할 수 있는 비휘발성 메모리 장치 및 그것을 이용한 마이크로 컴퓨터가 기재되어 있고, 마이크로 컴퓨터 내의 EEPROM (비휘발성 메모리)의 재기록 관련 회로(센스 앰프, 승압 회로)를 제어하는 신호를 출력하는 제어 레지스터를 갖고, 이 제어 레지스터에 마이크로 컴퓨터 외부로부터 직접 순차적으로 데이터를 기록하는 것에 의해 EEPROM의 재기록을 실행하는 수단이 개시되어 있다. 그 목적은 재기록 제어 회로 삭감에 의한 저(低) 비용화이다.
이 참조 문헌은 마이크로 컴퓨터 외부의 기록 장치로부터 이 제어 레지스터에 필요한 데이터를 기록하는 제어에 대한 기술이며, 사용자 소프트웨어 동작 중에 비휘발성 메모리를 재기록하는 것에 대해서는 기재되어 있지 않다.
또한, 직렬 기록 장치(serial writer)를 이용하는 「직렬 입출력 모드」에서는, 마이크로 컴퓨터의 CPU가 이 제어 레지스터에 데이터를 기록할 수 있다고는 기재되어 있지만, 그 이외에는 기술되어 있지 않고, 그 때의 제어 소프트웨어가 구체적으로 어디에 배치되고, 어떻게 동작하는지는 기재되어 있지 않다.
EEPROM에서는 재기록 대상의 메모리 비트만이 판독 제한되기 때문에 제어 소프트웨어의 관리는 비교적 간단하지만, 현실적으로 플래시 메모리가 내장된 마이크로 컴퓨터의 경우에는, 제어 프로그램을 저장하는 플래시 메모리를 재기록할 때는 판독할 수 없기 때문에, 내장 RAM 상의 제어 프로그램으로 실행하고, 인터럽트를 금지하는 등의 제한이 필수적으로 된다. 이 제어 소프트웨어의 관리는 플래시 메모리가 내장된 마이크로 컴퓨터인 경우에는 매우 중요하다. 즉, 이 EEPROM이 내장된 마이크로 컴퓨터의 기록 장치를 사용한 재기록 기술로는, 플래시 메모리를, 사용자 소프트웨어 동작 중에, 재기록하는 것은 도저히 실현할 수 없는 것이다.
종래의 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는 이상과 같이 구성되어 있기 때문에, 자동 순차 회로를 가지는 마이크로 컴퓨터로는 그 레이아웃 면적이 커서 비용이 많이 들고, 그 순차 변경이 용이하지 않다는 과제가 있으며, 자동 순차 회로를 갖지 않는 마이크로 컴퓨터로는 사용자 측의 재기록 제어 소프트웨어의 부담이 매우 커서 소프트웨어 개발 기간이 길어진다는 과제가 있었다.
본 발명은 상기한 바와 같은 과제를 해결하기 위해서 이루어진 것으로, 자동 순차 회로 삭감에 의해 레이아웃 면적을 축소하여 저렴한 비용을 도모하고, 또한, 버그 정정(bug fixing)이나 웨이퍼 프로세스에 적합하게 적용하기 위한 재기록 순차 변경을 용이하게 실시할 수 있도록 하며, 또한, 재기록 제어 펌웨어(F/W) 탑재에 의해 사용자 측 소프트웨어의 부담을 삭감하고, 또한, 소프트웨어 개발 기간을 단축할 수 있는 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터를 얻는 것을 목적으로 한다.
본 발명에 따른 제 1 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어와 사용자 소프트웨어를 각각 별도의 단위 블록에 저장하는 비휘발성 메모리와, 각각 마이크로 컴퓨터의 CPU에 의해 기록 또는 판독할 수 있게 한, 재기록 제어 내용을 지정하는 명령 레지스터, 재기록 제어 대상 어드레스를 지정하는 어드레스 레지스터, 기록해야 할 데이터를 지정하는 데이터 레지스터 및 비휘발성 메모리 내의 전원 펌프 회로와 메모리 디코더로의 제어 신호 를 지정하는 제어 신호 레지스터의 적어도 4개의 레지스터를 구비하고, 제어 신호 레지스터의 소정 비트를 전원 펌프 회로 및 메모리 디코더에 접속되는 제어 신호에 대응시켜 전원 펌프 회로 및 메모리 디코더를 제어하도록 하며, 재기록 제어 펌웨어는 명령 레지스터, 어드레스 레지스터 또는 데이터 레지스터에 설정된 값을 판독하고, 그 설정된 값에 대응한 명령마다 규정된 순차에 따라 제어 신호 레지스터의 설정값을 재기록함으로써 전원 펌프 회로 및 메모리 디코더를 동작시키는 것에 의해, 비휘발성 메모리의 소거 및 프로그램을 포함하는 재기록 처리를 실행시키는 것이다.
본 발명에 따른 제 2 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터에 있어서, 재기록 제어 펌웨어를 저장하는 단위 블록과 사용자 소프트웨어를 저장하는 단위 블록은 양 블록의 어드레스가 불연속인 것이다.
본 발명에 따른 제 3 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, CPU에 의해 기록 또는 판독할 수 있게 한 상태 레지스터를 구비하고, 재기록 제어 펌웨어는 소거 및 프로그램을 포함한 재기록 처리 완료 후, 그 실행 결과를 상태 레지스터에 기록하는 것이다.
본 발명에 따른 제 4 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 적어도 명령 레지스터에 설정된 명령을 디코딩하는 사용자 인터페이스 제어부와, 지정된 명령마다 전원 펌프 회로 및 메모리 디코더를 제어하는 명령 실행 제어부로 구성되고, 이 명령 실행 제어부의 펌웨어는 내장된 RAM에 전송되어, 이 RAM 상에서 실행되는 것이다.
본 발명에 따른 제 5 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 사용자 소프트웨어로부터 해당 재기록 제어 펌웨어의 선두 번지로 점핑함으로써 기동하도록 하고, 또한, 명령 실행 완료 후에는 사용자 소프트웨어의 점핑 명령의 다음 명령으로 되돌아가도록 한 것이다.
본 발명에 따른 제 6 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 소거 명령시에는 소거 실행과 소거 후 검증 실행을 연속하여 실행하고, 프로그램 명령시에는 프로그램 실행과 프로그램 후 검증을 연속하여 실행해서, 이들의 검증 결과가 이상하면, 각각 소거 오류, 프로그램 오류라고 판단하도록 한 것이다.
본 발명에 따른 제 7 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 소거 및 프로그램을 포함하는 명령 실행 결과를 상태 레지스터에 설정하는 것 이외에, 각각 명령 레지스터 및 어드레스 레지스터에 정규 명령(legal command) 코드가 아닌 명령, 또는 정규의 지정해야 할 어드레스가 아닌 어드레스가 지정되어 있던 경우에는, 비정규 명령(illegal command)을 나타내는 오류 코드를 상태 레지스터에 설정하도록 하고, 이 경우에는 그 후의 처리를 실행하지 않는 것이다.
본 발명에 따른 제 8 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 상태 레지스터의 소거는 실시하지 않고, 또한, 명령 레지스터에 설정된 명령을 실행하기 전에 상태 레지스터를 판독하여, 정상 종료 이외의 오류 코드인 경우에는, 그 후의 처리를 실행하지 않는 것이다.
본 발명에 따른 제 9 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 명령 레지스터에 기록해야 할 명령 코드의 비트수를 12 내지 16으로 하여, 재기록 제어 펌웨어가 이 명령 코드의 전체 비트를 디코딩하는 것이다.
본 발명에 따른 제 10 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 어드레스 레지스터에 기록해야 할 어드레스의 비트수를 비휘발성 메모리 공간을 지정할 수 있는 어드레스의 비트수보다도 많게 취하여, 재기록 제어 펌웨어가 이 어드레스의 전체 비트를 디코딩하는 것이다.
본 발명에 따른 제 11 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, CPU에 의해 설정할 수 있는 비휘발성 메모리 재기록 모드 선택 비트를 갖고, 이 펌웨어 재기록 모드 선택 비트에 특정값을 기록했을 때에 제어 신호 레지스터의 재기록을 실행할 수 있도록 한 것이다.
본 발명에 따른 제 12 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 제어 신호 레지스터가 CPU에 의해 설정할 수 있는 레지스터이며, 리셋 신호에 의해, 그 출력되는 제어 신호는 전원 펌프 회로 및 메모리 디코더를 재기록할 수 없는 상태로 리셋되도록 한 것이다.
본 발명에 따른 제 13 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 제어 신호 레지스터가 CPU에 의해 설정할 수 있는 레지스터이며, 감시 타이머 인터럽트 신호에 의해, 그 출력되는 제어 신호는 전원 펌프 회로 및 메모리 디코더를 재기록할 수 없는 상태로 리셋되도록 한 것이다.
본 발명에 따른 제 14 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이 크로 컴퓨터는, 펌웨어 모드 선택 비트가 마이크로 컴퓨터의 리셋 신호에 부가되어, 감시 타이머 인터럽트 신호에 의해, 재기록 불가 모드를 지정하는 상태로 리셋되도록 한 것이다.
본 발명에 따른 제 15 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는 명령 레지스터로서 CPU 내의 누산기를 할당하는 것이다.
본 발명에 따른 제 16 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 명령 레지스터 및 상태 레지스터의 양쪽 또는 한쪽을 레지스터가 아닌, 내장하는 RAM 내의 특정 번지에 할당하는 것이다.
본 발명에 따른 제 17 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는 비휘발성 메모리의 재기록 시에 사용되는 전용 타이머 회로를 더 구비한 것이다.
본 발명에 따른 제 18 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, CPU 및 주변 장치의 동작 클럭원을 클럭 단자로부터 입력된 클럭과, 내장된 자려 발진기(self-excited oscillator)로 생성한 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU가 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는 자려 발진기 측의 클럭을 선택하는 것이다.
본 발명에 따른 제 19 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, CPU의 동작 클럭원을, 클럭 단자로부터 입력된 클럭과 내장된 자려 발진기에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU가 설정할 수 있 는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는, CPU의 동작 클럭원으로서 자려 발진기 측의 클럭을 선택하지만, 타이머 및 직렬 I/0 등 주변 장치용 클럭원은 클럭 단자로부터 입력된 클럭으로부터 전환하지 않는 것이다.
본 발명에 따른 제 20 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, CPU 및 감시 타이머의 동작 클럭원을 클럭 단자로부터 입력된 클럭과, 내장된 자려 발진기에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU에 의해 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는, CPU 및 감시 타이머의 동작 클럭원으로서 자려 발진기 측의 클럭을 선택하지만, 타이머 및 직렬 I/0를 포함하는 주변 장치용 클럭원은 클럭 단자로부터 입력된 클럭으로부터 전환하지 않는 것이다.
본 발명에 따른 제 21 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 내장된 자려 발진기에는 비휘발성 메모리 내의 전압 차지 펌프용 자려 발진기를 겸용하여 사용하는 것이다.
본 발명에 따른 제 22 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 타이머 회로의 클럭원에는 비휘발성 메모리 내의 전압 차지 펌프용 자려 발진기를 겸용하여 사용하는 것이다.
본 발명에 따른 제 23 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 자려 발진기는 항상 동작시켜 놓는 것이 아니라, CPU에 의해 설정할 수 있는 발신 허가 비트를 마련하고, 이 비트가 특정 상태인 경우에 자려 발진 기를 동작시키는 것이다.
본 발명에 따른 제 24 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 동작 클럭원의 전환이 클럭원 선택 비트로 자려 발진기가 생성하는 클럭을 선택하고, 또한 발신 허가 비트에 의해 자려 발진기의 동작 허가를 선택했을 때에, 동작 클럭원은 자려 발진기에서 생성된 클럭으로 전환되는 것이다.
본 발명에 따른 제 25 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 적어도 하나의 동작 모드는 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록을 실시할 수 없도록 하는 것이다.
본 발명에 따른 제 26 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 리셋 해제 후 최초에 액세스하는 리셋 벡터 번지가 외부 영역인 제 2 동작 모드를 갖고, 이 제 2 동작 모드에서 비휘발성 메모리 내의 적어도 사용자 소프트웨어를 저장하는 영역은 CPU로부터 판독할 수 없는 한편, 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하게 하는 것이다.
본 발명에 따른 제 27 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 제 2 동작 모드에서 비휘발성 메모리 내의 재기록 제어 펌웨어를 저장하는 영역은 CPU에 의해 판독될 수 있는 것이다.
본 발명에 따른 제 28 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이 크로 컴퓨터는, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 리셋 해제 후 최초에 액세스하는 리셋 벡터 번지가 외부 영역인 제 3 동작 모드를 가지며, 이 제 3 동작 모드에서 비휘발성 메모리 영역은 CPU로부터 판독할 수 있고, 해당 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하게 하는 것이다.
본 발명에 따른 제 29 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 갖고, 리셋 중에 외부로부터 직접 내장 RAM으로의 기록이 행해지고, 또한 리셋 해제 후의 리셋 벡터 번지가 해당 RAM 내에 설정되는 제 4 동작 모드를 가지며, 이 제 4 동작 모드에서 비휘발성 메모리 영역은 CPU에 의해 판독될 수 있고, 해당 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하게 하는 것이다.
본 발명에 따른 제 30 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 동작 모드 선택 입력 단자의 상태가 CPU에 의해 판독될 수 있는 것이다.
본 발명에 따른 제 31 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 재기록 제어 펌웨어가 동작 모드 선택 입력 단자의 상태를 판독하고, 비휘발성 메모리의 펌웨어 영역의 재기록이 금지되어 있는 동작 모드에서는, 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록을 실시하지 않고, 비정 규 명령이라고 판정하는 것이다.
본 발명에 따른 제 32 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터는, 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록이 가능한 동작 모드 시에 유효해지는 펌웨어 저장 영역용 재기록 명령을 갖는 것이다.
이하, 본 발명의 일 실시예를 설명한다.
(실시예 1)
(하드웨어 구성)
우선, 본 발명의 실시예 1에 따른 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터의 하드웨어 구성에 대하여, 비휘발성 메모리가 플래시 메모리인 경우를 예로 들어, 플래시 메모리가 내장된 마이크로 컴퓨터로서 설명한다.
도 1은 이 실시예 1에 따른 플래시 메모리가 내장된 마이크로 컴퓨터의 구성을 나타내는 블록도이며, 도면에서, 참조 부호 1은 본체인 마이크로 컴퓨터, 참조 부호 2는 플래시 메모리 블록(비휘발성 메모리), 참조 부호 3은 중앙 연산 처리 장치와 버스 인터페이스 장치(이하, CPU/BIU로 생략함), 참조 부호 4는 RAM, 참조 부호 5, 6, 7은 각각 데이터를 전송하는 (내부) 데이터 버스, CPU/BIU(3)로부터의 어드레스를 전송하는 (내부) 어드레스선, CPU/BIU(3)로부터의 판독/기록(R/W) 제어 정보를 전송하는 (내부) R/W 제어선, 참조 부호 11은 포트(75, 76, 77), 동작 모드 선택 입력 단자(88, 89)로부터의 데이터 입력, 출력을 제어하는 포트 제어 블록, 참조 부호 12는 직렬 I/O, 참조 부호 72, 73, 74는 각각 직렬 I/O(12)에 접속되는 데이터 입력(Din) 단자, 데이터 출력 (Dout) 단자, 데이터 출력 제한 입력 (OUTcont) 단자, 참조 부호 13은 타이머이다.
또한, 참조 부호 15는 데이터 버스(5), 어드레스선(6), R/W 제어선(7)과 각각 외부 데이터 버스 단자(85), 외부 어드레스선 단자(86), 외부 R/W 제어선 단자(87) 간 신호의 입출력을 제어하는 외부 버스 제어 블록, 참조 부호 16은 클럭 XIN 입력 단자(78)로부터 입력되는 클럭으로부터 마이크로 컴퓨터(1) 내의 각 블록으로 공급되는 내부 클럭을 생성하는 클럭 제어 회로, 참조 부호 17은 /RESET 입력 단자(79)로부터 입력되는 리셋 입력으로부터 마이크로 컴퓨터(1) 내의 각 블록의 리셋 신호(109)를 생성하는 리셋 제어 회로를 나타낸다.
또, CPU/BIU(3) 내의, 예컨대, 누산기 등의 레지스터에 하기의 명령 레지스터를 설정하는 경우도 있다.
또한, 플래시 메모리 블록(2), RAM(4), 포트 제어 블록(11), 직렬 I/O(12), 타이머(13), 외부 버스 제어 블록(15)과 같은 마이크로 컴퓨터(1) 내의 메모리나 주변 장치군은 모두 데이터 버스(5), 어드레스선(6), R/W 제어선(7)을 거쳐, CPU/BIU(3)로부터의 데이터를 판독, 또는 기록할 수 있도록 되어 있다.
또, 도 1의 플래시 메모리 블록(2) 내의 구성을 설명한다.
도면에서, 참조 부호 20은 실제 기억 소자를 포함하는 메모리 셀 어레이, 어드레스 디코더 등으로 구성되는 메모리 블록, 참조 부호 23은 어드레스 래치 회로, 어드레스 프리디코더로 구성되는 메모리 디코더, 참조 부호 24는 플래시 메모리의 소거, 기록, 판독 시 등에 필요한 내부 전압을 적절히 생성하는 전압 차지 펌프 회로(전원 펌프 회로), 참조 부호 25는 플래시 메모리의 재기록(소거, 기록) 실시 시에 사용하는 플래시 메모리 제어 레지스터군, 참조 부호 35는 소거 후의 비교(소거됐는지 여부를 판독 체크)를 행하는 비교 회로, 참조 부호 36은 전압 차지 펌프 회로(24)로 공급해야 할 클럭을 생성하는 링 오실레이터 등의 자려 발진기로 이루어지는 펌프용 클럭 발진기이다.
메모리 블록(20)은 사용자를 위한 사용자 영역(21)과 재기록 펌웨어(F/W)를 저장하는 F/W 영역(22)으로 분리되고, 사용자 영역(21)은 각각 별개로 소거되는 독립된 블록[블록(0)](210)∼[블록(4)](214)으로 더 분리된다. 또, F/W 영역(22)은 각 블록(210∼214)과는 별도의 소거 블록[블록(5)]이다.
또한, 플래시 메모리 제어 레지스터군(25), 각각 전압 차지 펌프 회로(24), 메모리 디코더(23)로의 제어 신호(40, 41)를 출력하는 펌프/메모리 디코더용 제어 신호 레지스터(26), 펌프/메모리 디코더용 제어 신호 레지스터(26)로부터의 제어 신호(40, 41)의 출력 타이밍을 제어하는 신호 출력 제어 레지스터(27), 소거해야 할 플래시 메모리의 블록이나 기록해야 할 플래시 메모리의 번지 등을 설정하는 어드레스 레지스터(28), 기록해야 할 데이터 등을 설정하는 데이터 레지스터(29), 소거·기록 실행 결과를 나타내는 상태를 설정하는 상태 레지스터(30), 소거 명령, 기록 명령(이하, 프로그램 명령이라고 기재함) 등의 소프트웨어 명령을 설정하는 명령 레지스터(31), 플래시 메모리 재기록 시에 관련 회로의 동작을 제어하기 위한 순차 제어 레지스터(32), 전압 차지 펌프 회로(24)용 제어 신호(40)를 출력해야 할 시간 등을 계측하기 위한 타이머 회로를 갖는 펌프용 타이머 레지스터(33)로 구성되고, 모두 데이터 버스(5), 어드레스선(6), R/W 제어선(7)을 거쳐, CPU/BIU(3)로부터의 데이터를 판독, 또는 기록할 수 있도록 되어 있다.
또, 명령 레지스터(31)를 CPU/BIU(3) 내의, 예컨대, 누산기 등의 레지스터로 설정하는 경우에는, 플래시 메모리 제어 레지스터군(25)은 명령 레지스터(31)를 포함하지 않는다.
어드레스 레지스터(28)는 플래시 메모리 내의 어드레스선(42)을 거쳐 메모리 디코더(23)에 접속되고, 데이터 레지스터(29)는 플래시 메모리 내 데이터 버스(43)를 거쳐 메모리 디코더(23)와 비교 회로(35)에 접속되어 있다.
또한, 도 1의 마이크로 컴퓨터(1)의 외부 회로·소자에 대하여 설명한다.
도면에서, 참조 부호 90은 각각, 외부 데이터 버스 단자(85), 외부 어드레스선 단자(86), 외부 R/W 제어선 단자(87)에 접속되는 외부 데이터 버스(95), 외부 어드레스선(96), 외부 R/W 제어선(97)을 거쳐 접속되는, 예컨대, 플래시 메모리, EPROM 등의 외부 메모리이며, 참조 부호 91은 직렬 I/O(12) 각각의 데이터 입력(Din) 단자(72), 데이터 출력 (Dout) 단자(73), 데이터 출력 제어 입력 (OUTcont) 단자(74)와, 예컨대, RS-232C 등의 직렬 접속 수단에 의해 접속되는 퍼스널 컴퓨터이다.
마이크로 컴퓨터(1)의 CPU/BIU(3)는 외부 영역을 액세스할 수 있는 동작 모드에 있어서, 외부 버스 제어 블록(15)을 거쳐 외부 메모리(90)의 판독(외부 메모 리의 종류에 따라서는 기록)이 가능하고, 또한, 직렬 I/O(12)를 거쳐 퍼스널 컴퓨터(91)와의 사이에서 데이터의 입출력이 가능하다.
도 2는 플래시 메모리 제어 레지스터군(25)의 메모리 맵을 나타낸다. 도 2에 나타내는 번지를 액세스하는 것에 의해, 대응하는 레지스터를 기록 또는 판독할 수 있다.
도 3은 펌프/메모리 디코더용 제어 신호 레지스터(26)와 그 부속 회로의 구성을 나타내는 블록도이다. 도면에서, 참조 부호 126은 어드레스선(6) 상의 어드레스, R/W 제어선(7) 상의 CPU/BIU(3)로부터의 판독/기록(R/W) 제어 정보를 디코딩하여, E7h, E8h 번지(펌프/메모리 제어 신호 레지스터의 번지) 액세스 시에 펌프/메모리 디코더용 제어 신호 레지스터(26)로의 판독 신호, 기록 신호를 출력하는 E7h, E8h 번지 R/W 제어 회로이며, 참조 부호 127은 어드레스선(6) 상의 어드레스, R/W 제어선(7) 상의 CPU/BIU(3)로부터의 판독/기록(R/W) 제어 정보를 디코딩하여, E7h 번지(신호 출력 제어 레지스터의 번지) 액세스 시에 펌프/메모리 디코더용 제어 신호 레지스터(26)로의 신호 출력 신호를 출력하는 EEh 번지 R/W 제어 회로이다.
또한, 참조 부호 111은 마이크로 컴퓨터 리셋 신호(109)와 하기 감시 타이머 인터럽트 요구 신호(104)의 논리합을 취하여, 펌프/메모리 디코더용 제어 신호 레지스터(26)의 리셋 신호 입력단으로 출력하는 OR 게이트, 참조 부호 112는 E7h, E8h 번지 R/W 제어 회로(126)로부터의 기록 신호와 하기 순차 제어 레지스터(32)의 FM 재기록 모드 비트의 출력(114)의 논리곱을 취하여, 펌프/메모리 디코더용 제어 신호 레지스터(26)의 기록 신호 입력단으로 출력하는 AND 게이트이다.
이 펌프/메모리 디코더용 제어 신호 레지스터(26)는 데이터 버스(5)에 접속되어 있고, CPU/BIU(3)로부터 기록 또는 판독이 가능하다. 또한, 이 레지스터의 1 비트마다 1개가 대응하여 전압 차지 펌프 회로(24), 메모리 디코더(23)로의 제어 신호(40, 41)가 출력된다.
도 5는 펌프/메모리 디코더용 제어 신호 레지스터(26)의 1비트 구성을 나타내는 블록도이다. 도면에서, 참조 부호 140, 141은 각각 슬레이브 및 마스터의 플립플롭(이하, F/F라고 약칭함) 회로이다. 이 슬레이브 F/F(140)는 기록 신호가 액티브로 됐을 때에 데이터 버스(5)가 대응하는 비트의 상태를 래치하고, 리셋 입력 신호가 액티브로 됐을 때에 그 내용을 소거한다. 한편, 마스터 F/F(141)는 신호 출력 신호가 액티브로 됐을 때에 슬레이브 F/F(140) 상태를 래치하고, 리셋 입력 신호가 액티브로 됐을 때에 그 내용을 소거한다. 마스터 F/F(141)의 출력이 전압 차지 펌프 회로(24), 메모리 디코더(23)로의 제어 신호(40, 41)가 대응하는 신호 중 하나로 된다.
도 4는 순차 제어 레지스터(32)와 그 부속 회로의 구성을 나타내는 블록도이다. 도면에서, 참조 부호 132는 어드레스선(6) 상의 어드레스, R/W 제어선(7) 상의 CPU/BIU(3)로부터의 판독/기록(R/W) 제어 정보를 디코딩하여 F0h 번지(순차 제어 레지스터의 번지) 액세스 시에 순차 제어 레지스터(32)로의 판독 신호, 기록 신호를 출력하는 F0h 번지 R/W 제어 회로이며, 참조 부호 113은 순차 제어 레지스터(32)의 비트 6 출력과 비트 5 출력의 논리곱을 취하는 AND 게이트, 또한 참조 부호 117은 마이크로 컴퓨터 리셋 신호(109)와 하기의 감시 타이머 인터럽트 요구 신호(104)의 논리합을 취하여 순차 제어 레지스터(32)의 리셋 신호 입력단으로 출력하는 OR 게이트이다. 그리고, 순차 제어 레지스터(32)의 비트(0, 1, 4, 5, 6)는 각각, 검증 개시 비트, 검증 상태, FM 재기록 모드 비트, 클럭원 선택 비트, 펌프용 클럭 발진 허가 비트에 할당되어 있다. 또한, 순차 제어 레지스터(32)는 데이터 버스(5)에 접속되어 있고, CPU/BIU(3)로부터 기록 또는 판독이 가능하다.
도 6은 어드레스 레지스터(28)와 그 부속 회로의 구성을 나타내는 블록도이며, 도면에서, 참조 부호 128은 어드레스선(6) 상의 어드레스, R/W 제어선(7) 상의 CPU/BIU(3)로부터의 판독/기록(R/W) 제어 정보를 디코딩하여 E0h∼E2h 번지(상태 레지스터의 번지) 액세스 시에 어드레스 레지스터(28)로 판독 신호, 기록 신호를 출력하는 E0h∼E2h 번지 R/W 제어 회로이며, 참조 부호 228은 어드레스 레지스터(28)에 부속하는 어드레스 인크리멘터(incrementor)이다.
이 어드레스 레지스터(28)는 데이터 버스(5)에 접속되어 있고, CPU/BIU(3)로부터 기록 또는 판독이 가능하고, 또한 플래시 메모리 내 어드레스선(42)이 접속되어 있다. 어드레스 인크리멘터(228)는 순차 제어 레지스터(32)의 비트 0 (검증 개시 비트)에 의해, 후술하는 소거 후 검증 시에 어드레스값을 증가시킨다.
도 7은 펌프용 타이머 레지스터(33)와 그 부속 회로의 구성을 나타내는 블록도이며, 도면에서, 참조 부호 133은 어드레스선(6) 상의 어드레스와, R/W 제어선(7) 상의 CPU/BIU로부터의 판독/기록(R/W) 제어 정보를 디코딩하고, F2h, F3h 번지(펌프용 타이머 레지스터의 번지) 액세스 시에 펌프용 타이머 레지스터(33)로의 판독 신호, 기록 신호를 출력하는 F2h, F3h 번지 R/W 제어 회로이며, 참조 부호 134는 펌프용 클럭(106)의 클럭에 동기하여 펌프용 타이머 레지스터(33)의 비트 0 ∼ 비트 14의 카운터 레지스터의 값을 감산하는 디크리멘터이다. 이 디크리멘터(134)와 펌프용 타이머 레지스터(33)로 15 비트의 카운터를 구성하고 있다.
펌프용 타이머 레지스터(33)의 비트 15는 카운트 개시 비트에 할당되어 있다. 이 카운트 개시 플래그에 "1"을 쓰면 디크리멘터(134)가 감소를 개시하고, 펌프용 타이머 레지스터(33)의 값이 "0"으로 되면 카운트 개시 비트는 자동적으로 "0"으로 된다. 펌프용 타이머 레지스터(33)는 데이터 버스(5)에 접속되어, CPU/BIU(3)로부터 기록 또는 판독이 가능하다.
도 8 및 도 9는 모두 마이크로 컴퓨터(1)의 클럭 제어 관련 회로의 구성을 나타내는 블록도이며, 도면에서, 참조 부호 24는 전압 차지 펌프 회로, 참조 부호 36은 펌프용 클럭 발진기, 참조 부호 118은 전압 차지 펌프 회로(24)로부터의 발진요구 신호(108)와 순차 제어 레지스터(32)의 비트 6(펌프용 클럭 발진 허가 비트)의 출력(116)의 논리합을 취하여, 펌프용 클럭 발진기(36)로 입력하는 OR 게이트, 참조 부호 153은 감시 타이머, 참조 부호 104는 이 감시 타이머(153)로부터 출력되는 감시 타이머 인터럽트 요구 신호, 참조 부호 16은 클럭 제어 회로, 참조 부호 151은 입력된 클럭원으로부터 CPU/BIU용, 주변 장치용, 감시 타이머용 클럭(154∼156)을 생성하는 클럭 생성 회로, 참조 부호 152는 순차 제어 레지스터(32)의 비트 5(클럭 선택 비트) 출력과 비트 6(펌프용 클럭 발진 허가 비 트) 출력(116)을 입력으로 하는 AND 게이트(113)의 출력(클럭원 선택 신호)(115) 상태에 의해 2개의 입력단으로부터 입력되는 클럭을 선택하여 출력하는 클럭 선택기이다.
감시 타이머(153)에 의해 CPU/BIU(3)로부터 기록을 행하면(그 기록 버스는 도시하지 않음) 그 카운트값은 최대값으로 설정되어, 감시 타이머용 클럭에 의해 순차적으로 감소된다. 카운트값이 "0"이 된 시점에서, 감시 타이머 인터럽트 요구 신호(104)가 "H"(액티브)로 된다. 이와 같이, 도 8은 클럭 생성 회로(151)의 클럭원을 클럭 선택기(152)에 의해 선택하는 구성예이고, 한편, 도 9는 CPU/BIU용 클럭, 감시 타이머용 클럭을 클럭 선택기(152)에 의해 선택하는 구성예이다.
(펌웨어 구성, 동작 모드)
다음으로 본 발명의 실시예 1에 따른 펌웨어 구성, 동작 모드에 대하여 도면을 참조하여 설명한다.
도 10에 도시되는 표 1은 플래시 메모리의 조작을 지정하는 소프트웨어 명령의 일람표이다. 이 표 1에서는, 플래시 메모리의 내용을 특정 블록(도 1의 블록(0)(210)∼ 블록(4)(214))마다 소거하는 "블록 소거" 명령과, 지정한 번지로 1워드(= 2 바이트 = 16 비트) 단위로 기록하는 "(워드) 프로그램" 명령을 기재하고 있지만, 당연히 그 외의 명령(예컨대, 잠금 비트 조작에 대한 명령, 테스트용 명령 등)을 추가해도 무방하다. 블록 소거 명령(이하, 소거 명령이라 생략함)의 경우에는, 블록 선두 어드레스(24 비트)와 명령 코드(16 비트)를 지정하고, (워드) 프로 그램 명령(이하, 프로그램 명령이라 생략함)인 경우에는, 기록 어드레스(24 비트), 기록 데이터(16 비트)와 명령 비트(16 비트)를 지정한다.
도 11에 나타내는 표 2는 명령 실행 결과나 비정규 명령 입력을 나타내는 오류 상태의 일람표이다. 오류 상태의 코드는, 보통, 재기록 제어 F/W에 의해 상태 레지스터(30)에 기록되고, 사용자 측의 소프트웨어에 의해 판독과 내용 소거가 행하여진다. 또, 상태 코드는 상태 레지스터(30)의 비트 5, 비트 4에 할당되어 있다.
도 12는 마이크로 컴퓨터(1)의 메모리 맵과 재기록 제어 F/W의 동작 순서를 나타내는 도면이다. 도 12에서, 플래시 메모리 제어 레지스터군(25)을 포함하는 주변 장치 제어 레지스터군(14), RAM(4), 플래시 메모리 사용자 영역(21), 플래시 메모리 F/W 영역(22)의 배치를 나타내고, 또한, 플래시 메모리 F/W 영역(22) 내에 재기록 제어 F/W(103)가 저장되고, 플래시 메모리 사용자 영역(21)내에 사용자의 E/W(소거/기록) 프로그램(102)이 저장되며, RAM(4) 내에 재기록 제어 F/W(103)의 일부의 구성 요소인 명령 실행 제어부(101)가 전송되는 것을 나타낸다.
또, 주변 장치 제어 레지스터군(14)의 번지는 도 1의 마이크로 컴퓨터(1)의 블록도에서, 포트 제어 블록(11), 직렬 I/O(12), 타이머(13) 외의 주변 장치 내의 제어 레지스터와, 플래시 메모리 제어 레지스터군(25)에 할당된 번지를 나타낸다. 또한, 원형 번호(circle number) 1∼11은 재기록 제어 F/W의 동작 순서, 즉, 순차를 나타낸다. ,
도 13은 재기록 제어 F/W 구성과 실행 순서를 나타내는 도면이며, 도면에서, 원형 번호 1∼11은 도 9와 공통인 재기록 제어 F/W의 동작 순서를 나타낸다. 또한, 재기록 제어 F/W(103)는 사용자 I/F 제어부(100)와 명령 실행 제어부(101)로 구성되어 있는 것을 나타낸다.
도 14는 사용자 I/F 제어부가 담당하는 재기록 제어 F/W의 동작 흐름도를, 도 15는 명령 실행 제어부(101)가 담당하는 재기록 제어 F/W의 동작 흐름도를 나타낸다. 또, 도 15는 도 14 중 명령 실행 부분에 상당한다. 또한, 도면 중 원형 번호 1∼11은 도 9, 도 10과 공통인 재기록 제어 F/W의 동작 순서를 나타낸다.
도 16은 마이크로 컴퓨터(1)의 외부 메모리에 의해 동작시키는 모드에서의 메모리 맵을 나타낸다. 도 12의 메모리 맵은 플래시 메모리 사용자 영역(21)이 외부 메모리 영역으로 되어 있는 점이 다르게 된다. 또, 사용자 E/W 제어 프로그램(102)은 외부 ROM 등의 외부 메모리에 저장된다.
도 17에 도시되는 표 3은 마이크로 컴퓨터(1)의 동작 모드 일람표이다. 보통의 사용자를 위한 모드 이외에 테스트나 칩평가를 위한 테스트 모드가 있다. 이들의 테스트 모드에서는 주로 플래시 메모리의 F/W 영역을 재기록한다.
(사용자 영역의 재기록 동작 설명)
다음으로, 본 발명의 실시예 1에 따른 플래시 메모리가 내장된 마이크로 컴퓨터의 동작에 대하여, 주로 도 12 내지 도 15를 사용하여 재기록 제어 F/W에 의한 재기록 제어 순서에 대하여 설명한다.
우선, 플래시 메모리의 F/W 영역(22)에 재기록 제어 F/W(103)를 후술하는 방 법으로 기록하여 놓은 마이크로 컴퓨터에서, 이것을 사용하여 사용자가 플래시 메모리의 사용자 영역(21)을 재기록하는 순서를 설명한다.
사용자 E/W 제어 프로그램(102)은 사용자 측에서 준비해야 하는 프로그램으로서, 플래시 메모리의 재기록을 재기록 제어 F/W(103)로 하여금 실행케 하는 지시를 행하고, 재기록 실행 후 평가한다. 구체적으로는, 도 13에 도시하는 바와 같이, 재기록해야 하는 내용과 번지/블록을 지정하기 위해 표 1의 소프트웨어 명령표에 따라, 순차 ①에서, 어드레스 레지스터(28)로의 어드레스 설정, 데이터 레지스터로의 기록 데이터 설정(프로그램 시에만), 명령 레지스터(31)로의 소프트웨어 명령 설정을 행하고, 다음으로, 순차 ②에 있어서, 플래시 메모리의 F/W 영역(22)에 저장되어 있는 재기록 제어 F/W(103)의 선두 번지로 점핑하는 곳까지 실행한다.
이 각 명령으로 설정된 하드웨어의 동작을 도 1을 사용하여 설명한다. 어드레스 레지스터(28)로의 어드레스 설정(기록)은 CPU/BIU(3)가 어드레스 레지스터(28)에 대응하는 번지(0000EOh/E1h)를 어드레스선(6)에, 기록해야 할 어드레스를 데이터 버스(6)에 기록한다는 정보(기록 신호)를 R/W 제어선(7)으로 출력한다.
다음으로 어드레스 레지스터(28)로의 기록이 실행된다. 도 6은 어드레스 레지스터(28)와 그 부속 회로를 나타내는 도면이다. E0h/E1h 번지 제어 회로(128)는 어드레스선(6) 상의 어드레스 (0000E0h/E1h)와 R/W 제어선(7) 상의 기록 신호로부터, 자기가 담당하는 레지스터로의 기록이라고 판단하여, 어드레스 레지스터(28)로 기록 신호를 출력한다. 어드레스 레지스터(28)에서는 이 기록 신호가 액티브로 되 면, 데이터 버스(5) 상의 데이터(기록해야 할 어드레스)를 취입한다.
이상의 동작으로 어드레스 레지스터(28)로의 어드레스 설정(기록)이 완료된다. 이와 같이 하여, 데이터 레지스터(29), 명령 레지스터(31)로의 설정도 비슷한 순서로 실행할 수 있다. 이와 관련하여, 각 레지스터의 판독은 상기 기록 신호를 판독 신호로 하여, 데이터 출력을 CPU/BIU(3)가 아닌 각 레지스터가 행하면 거의 마찬가지로 설명할 수 있다.
재기록 제어 F/W(103)는 사용자 E/W 제어 프로그램(102)으로부터의 점핑(순차 ②)에 의해 기동하고, 도 14의 재기록 제어 F/W 동작 흐름에 근거하여 동작한다.
우선, 단계 ST<1>에서, CPU 레지스터를 대피(= RAM(4)의 특정 영역으로의 데이터 전송)시켜, 사용자 E/W 제어 프로그램(102)의 동작 환경을 파괴하지 않도록 하고(후에, 단계 ST<12>에서 CPU 내 레지스터로의 복귀를 행함), 또한, 마스크 가능 인터럽트(maskable interrupt)의 금지 조치를 행한다. 재기록 시에는 플래시 메모리의 판독을 회로 상 할 수 없기 때문에, 인터럽트 발생 시에 플래시 메모리 사용자 영역에 존재하는 인터럽트 벡터를 판독할 수 없으므로, 인터럽트의 금지 조치가 필요하게 된다.
다음으로, 순차 ③에 있어서, 플래시 메모리 제어 레지스터군의 조작으로서, 단계 ST<2>에서, 펌프용 클럭 발진 허가, 즉, 순차 제어 레지스터(32)의 비트 6 펌프용 클럭 발진 허가 비트에 "1" 을 기록한다. 이에 따라, 도 4 및 도 8의 펌프용 클럭 발진 허가 신호(116)가 "H"로 되고, OR 게이트(118)도 "H"로 되며, 펌프용 클 럭 발진기(36)는 발진을 개시한다. 또, 펌프용 클럭 발진기(36)는, 상기한 바와 같이, 링 오실레이터 등의 자려 발진기이므로, 발진 개시부터 발진 안정까지 일정 시간이 필요하게 된다. 이 일정 시간 경과 후, 펌프용 클럭(106)을 사용할 수 있다.
다음으로, 단계 ST<3>에서, FM 재기록 모드의 설정, 즉, 순차 제어 레지스터(32)의 비트 4 FM 재기록 모드 비트에 "1" 을 기록한다. 이에 따라, 도 4 및 도 3에 나타내는 FM 재기록 모드 신호(114)가 "H"로 되어, AND 게이트(112)를 개방하는 조건(condition for opening an AND gate) 중 하나가 만족된다. 즉, 하기 순차 ⑥, ⑦의 처리 중에서, 펌프/메모리 디코더용 제어 신호 레지스터(26)로의 기록에 의해, 동일 레지스터로의 기록 신호가 전달되어 기록할 수 있게 된다. 또한, FM 재기록 모드 신호(114)에 의해, 도시하지 않고 있지만, 재기록 제어용 하드웨어 회로의 동작 금지를 해제시킬 수도 있다.
다음으로, 단계 ST<4>에서, 상태 레지스터(30)를 판독하여, 동일 레지스터의 비트 5, 4가 "00"으로 소거되어 있는지 여부를 체크한다. 판독 값이 "00" (리셋 후 또는 명령 정상 종료 시의 상태 : 표 2 참조)이면, 다음으로 처리, 즉, 단계 ST<5>로 진행한다. 한편, 판독 값이 "O0" 이외의 값이면, 이전의 처리에서 어떤 오류가 있으며, 사용자가 그 대책을 행하고 있지 않는 것으로 되기 때문에, 아무것도 하지 않고서 단계 ST<10>의 FM 재기록 모드 해제로 진행한다.
이 단계 ST<3>의 FM 재기록 모드의 설정, 단계 ST<4>의 상태 레지스터 체크 중에 상기 펌프용 클럭 발진기(36)의 발진 안정이 완료된다.
다음으로, 단계 ST<5>의 펌프용 클럭 전환, 즉, 순차 제어 레지스터(32)의 비트 5 클럭원 선택 비트에 "1" 을 기록한다. 이것에 의해 도 4, 도 8 및 도 9에 나타내는 AND 게이트 출력 신호(=클럭원 선택 신호)(115)가 "H"로 되어, 클럭 선택기(152)는 상기 펌프용 클럭(106)으로 전환된다. 클럭원 선택 신호(115)는 펌프용 클럭 발진 허가 비트와 클럭원 선택 비트가 모두 "1"일 때만 "H"(펌프용 클럭(106) 전환)로 된다. 클럭원 선택 비트만으로는 클럭 전환할 수 없다.
도 8의 회로의 경우에는, 클럭 선택기(152)는 클럭원의 전환에 의해, 클럭 생성 회로(151)에서 생성되는 CPU/BIU·주변 장치용 클럭(154) 및 감시 타이머용 클럭이 모두 상기 펌프용 클럭(106)에 유래한 클럭으로 전환된다. 즉, 재기록 시의 마이크로 컴퓨터(1)의 동작은 사용자가 사용하고 있는 클럭의 주파수에 의존하지 않게 된다.
또한, 도 9의 회로의 경우에는, 클럭 선택기(152)는 클럭원의 전환에 의해, CPU/BIU용 클럭(155)과 감시 타이머용 클럭이 모두 상기 펌프용 클럭(106)에 유래한 클럭으로 전환되고, 주변 장치용 클럭(156)은 전환되지 않는다. 즉, 재기록 시에는, CPU/BIU(3)과 감시 타이머(153)의 동작은 사용자가 사용하고 있는 클럭의 주파수에 의존하지 않게 되지만, 주변 장치는 사용자 사용 조건대로의 동작을 계속한다.
다음으로, 단계 ST<6>의 마이크로 컴퓨터 동작 모드 체크, 어드레스 디코딩을 포함하는 명령 디코딩을 행한다. 이것은 도 13의 순차 ④에 상당한다. 마이크로 컴퓨터 동작 모드는 도 1에 나타내는 동작 모드 선택 단자 MD 0(88), MD 1(89)의 상태를 포트 제어 블록(11)을 거쳐 CPU/BIU(3)가 판독하는 것으로 체크된다. 여기서는, 표 3에 나타내는 사용자 모드를 상정한다. 플래시 메모리의 재기록이 금지되어 있는 동작 모드에서 소거, 프로그램 등의 명령이 설정된 경우에는, 비정규 명령이라고 판단한다.
명령 디코딩(어드레스 디코딩을 포함함)은 CPU/BIU(3)가 명령 레지스터(31), 어드레스 레지스터(28), 데이터 레지스터(29)를 순서대로 판독하여, 도 10의 표 1에 따라 판단함으로써 실행된다. 우선, 명령 레지스터(31)의 내용이 규정되어 있는 명령인지 여부를 16비트 모두 체크하여, 규정 이외의 코드이면 비정규 명령이라고 판단한다. 블록 소거 명령인 경우에는, 어드레스 레지스터(28)의 내용이 블록(210∼214)의 선두 번지인지 여부를 24 비트 모두 체크하여, 이들 이외의 번지이면 비정규 명령이라고 판단한다. 프로그램 명령인 경우에는, 어드레스 레지스터(28)의 내용이 사용자 영역(21)의 번지인지 여부를 24 비트 모두 체크하여, 이들 이외의 번지이면 비정규 명령이라고 판단한다.
정규 명령이라고 판단한 경우에는 다음 단계 ST<7>의 명령 실행으로 진행하고, 비정규 명령이라고 판단한 경우에는 단계 ST<8>의 상태 레지스터(30)에 비정규 명령 코드 "11"을 설정하여, 단계 ST<10>의 FM 재기록 모드 해제로 진행한다.
이상 단계 ST<1> 내지 <6>, <8>의 처리는 재기록 제어 F/W(103) 중 사용자 I/F 제어부(100)에 속하고, 다음 단계 ST<7>의 명령 실행은 명령 실행 제어부(101)에 속한다. 이 명령 실행 제어부(101)는 소프트웨어 명령마다의 F/W 군으로 구성된다.
도 15의 재기록 제어 F/W 동작 흐름을 참조하여, (a) 블록 소거 명령 실행, (b) 프로그램 명령 실행의 흐름을 설명한다. 어느 명령이라도 플래시 메모리의 재기록을 행하기 때문에, 플래시 메모리로부터의 F/W 판독을 할 수 없게 되므로, 실제 명령 실행 F/W는 RAM(4)으로 전송하여, 여기서 실행시킬 필요가 있다.
(a) 블록 소거 명령 실행인 경우, 우선 단계 ST<IR1>에서, RAM(4)의 소정 어드레스로 명령 실행 제어부(101)의 소거 명령 실행부 F/W를 전송하고, 그 선두 번지로 점핑한다. 따라서, 이후의 소거 명령 실행은 RAM(4) 상의 F/W에서 행해지기 때문에, 플래시 메모리(의 F/W 영역)는 판독되지 않는다.
다음으로, 단계 ST<IR2>의 소거 순차를 실행한다. 이것은 도 13의 순차 ⑥, ⑦에 상당하는 처리로, 구체적으로는, 소정의 소거 순차에 따라 펌프/메모리 디코더용 제어 신호 레지스터(26), 신호 출력 제어 레지스터(27)의 설정값을 순차적으로 재기록함으로써 전압 차지 펌프 회로(24), 메모리 디코더(23)로의 제어 신호(40, 41)를 변화시켜, 소거 동작을 하게 한다. 제어 신호(40, 41)를 변화시키기 위해서는, 우선, 펌프/메모리 디코더용 제어 신호 레지스터(26)에 다음으로 출력해야 할 상태에 상당하는 데이터를 기록해 두고, 다음으로 소정의 변화 타이밍에서 신호 출력 제어 레지스터(27)로의 더미 기록을 행한다. 또, 도 3에 도시하는 바와 같이, 펌프/메모리 디코더용 제어 신호 레지스터(26)로의 기록 신호는 AND 게이트(112)로부터 출력되기 때문에, 이 레지스터로 기록하기 전에 순차 제어 레지스터(32)의 비트 4(FM 재기록 모드 비트)에 "1"을 설정해 둘 필요가 있다.
상기 소정의 소거 순차에 의한 소정의 변화 타이밍에 맞춘 신호 출력 제어 레지스터(27)로의 더미 기록을 하기 위해서는, 시간 계측이 필요하게 된다. 이 시간 계측에 펌프용 타이머 레지스터(33)를 사용한다. 우선 펌프용 타이머 레지스터(33)의 비트 0∼비트 14에 카운트값을, 비트 15의 카운트 개시 비트에 "1"을 기록하면, 펌프용 타이머 클럭(106)에 동기하여 카운트(감소)가 시작된다. 카운터값이 "O"이 되면 카운터 개시 비트가 자동적으로 "0"으로 되기 때문에, 재기록 제어 F/W에서 이 비트를 반복해서 체크(polling)해 두면, 카운트 종료를 인식할 수 있다.
도 3에서는, 펌프/메모리 디코더용 제어 신호 레지스터(26)로의 기록은 상기 어드레스 레지스터(28)로의 기록과 비슷하게 행해지고, 다음 신호 출력 제어 레지스터(27)로의 더미 기록으로 EE 번지 R/E 제어 회로(127)로부터 신호 출력 신호가 출력된다. 펌프/메모리 디코더용 제어 신호 레지스터(26)는, 도 5에 도시하는 바와 같이, 구성되어 있으므로, 기록 신호에 의해 데이터 버스(5) 상태가 판독되고, 다음 신호 출력에 의해 레지스터로부터 제어 신호(40, 41)로서 출력된다. 또, 펌프/메모리 디코더용 제어 신호 레지스터(26)의 설정 후의 초기값은 전압 차지 펌프 회로(24), 메모리 디코더(23)가 소거, 프로그램 등을 재기록하지 않는 상태로 설정된다.
또한, 소거해야 할 블록의 지정은 도 1의 플래시 메모리 내 어드레스선(42)을 거쳐 어드레스 레지스터(28)로부터 메모리 디코더(23)로 전달된다.
소거 완료 후, 소거가 정상적으로 행해졌는지 여부를 확인하기 위해서, 단계 ST<IR3>에서, 소거 후 검증을 행한다. 소거 후 검증은 순차 제어 레지스터(32)의 비트 0 검증 개시 비트에 "1"을 기록하는 것에 의해 기동된다. 도 6에 나타내는 어드레스 레지스터(28)에 부속되는 어드레스 인크리멘터(228)에 의해 소거 후 검증 시에는 소거한 블록의 최초 어드레스로부터 순서대로 어드레스를 생성하여 메모리 디코더(23)로 보낸다. 비교 회로(35)는 이 어드레스마다 플래시 메모리를 판독하고, 그 결과를 플래시 메모리 내 데이터 버스(43)를 거쳐 판독하고, 소거 기대값("1")과 비교하여, 일치하지 않는 경우에는, 순차 제어 레지스터(32)의 비트 1 검증 상태에 "1"을 설정한다.
소거 명령 실행부 F/W에서 이 검증 상태를 판독하여, 검증 결과를 체크한다. 그 결과가 OK이면, 단계 ST<IR6>의 RAM(4)으로부터의 복귀로 진행한다. NG이면, 단계 ST<IR4>에서 소거를 소정 회수 실시했는가를 체크하여, 소정 회수를 만족하지 않으면 다시 단계 ST<IR2>의 소거 순차 실행으로 되돌아가고, 소정 회수를 만족하고 있으면 소거 오류라고 판정하여, 단계 ST<IR5>에서의 상태 레지스터(30)의 비트 5, 4로 소거 오류 코드 "10"을 설정(순차 ⑨')하고, 단계 ST<IR6>의 RAM(4)으로부터의 복귀로 진행한다.
(b) 프로그램 명령 실행인 경우에는, 단계 ST<PR2>의 프로그램 순차 실행의 구체적인 순서, 단계 ST<PR3>의 프로그램 후 검증의 구체적인 순서, 단계 ST<PR5>의 상태 레지스터(30)로의 설정 오류 코드가 다른 것 이외는 기본적으로 상기 블록 소거 실행인 경우와 마찬가지다.
또한, 단계 ST<PR2>의 프로그램 순차 실행은 소정의 프로그램 순차에 따라 펌프/메모리 디코더용 제어 신호 레지스터(26), 신호 출력 제어 레지스터(27)의 설 정값을 순차적으로 재기록함으로써 전압 차지 펌프 회로(24), 메모리 디코더(23)로의 제어 신호(40, 41)를 변화시켜, 프로그램 동작을 하게 한다. 제어 신호(40, 41)를 변화시키는 순서는 블록 소거의 경우와 동일하다.
또한, 프로그램해야 할 데이터는 도 1의 플래시 메모리 내 데이터 버스(43)를 거쳐 데이터 레지스터(29)로부터 메모리 디코더(23)로 전달된다.
단계 ST<PR3>의 프로그램 후 검증은 전용 회로를 이용하지 않고, CPU/BIU(3)가 플래시 메모리의 해당 번지를 판독하여, 기록 값과 비교하는 것으로 실행된다. 그 결과가 OK이면, 단계 ST<PR6>의 RAM(4)으로부터의 복귀로 진행한다. NG이면, 단계 ST<PR4>에서 프로그램을 소정 회수 실시했는지를 체크하여, 소정 회수를 만족하지 않으면 다시 단계 ST<PR2>의 프로그램 순차 실행으로 되돌아가고, 소정 회수를 만족하고 있으면 프로그램 오류라고 판정하며, 단계 ST<PR5>의 상태 레지스터(30)의 비트 5, 4로 프로그램 오류 코드 "01"을 설정하여, 단계 ST<PR6>의 RAM(4)으로부터의 복귀로 진행한다.
단계 ST<IR6>의 RAM(4)으로부터의 복귀 또는 단계 ST<PR6>의 RAM(4)으로부터의 복귀에서, 본래의 사용자 I/F 제어부(100)(플래시 메모리의 F/W 영역(22)에 저장)로 이행하여, 이행 단계 ST<9>의 XIN 클럭으로의 전환, 단계 ST<1O>의 FM 재기록 모드 해제, 단계 ST<11>의 펌프용 클럭 발진 정지를 순서대로 실시한다. 구체적으로는, 각각 순차 제어 레지스터(32)의 비트 5, 비트 4, 비트 6으로 "0"을 기록하는 것이다. (각각의 동작은 먼저 설명한 단계 ST<2>, <3>, <5>의 반대로 될 뿐이므로 설명은 생략함).
마지막으로, 단계 ST<12>에서 CPU 내 레지스터로의 복귀를 행한다. 구체적으로는, 먼저, 단계 ST<1>에서의 CPU 내 레지스터의 대피에 의해 RAM(4)의 특정 영역에 저장해 둔 데이터를 본래의 CPU 내 레지스터로 복귀(전송)시킨다. 이후에, 사용자 E/W 제어 프로그램의 점핑(순차 ②)를 행했던 점핑 명령의 다음 명령으로 복귀한다. 이것으로, 재기록 제어 F/W의 처리는 종료된다.
복귀 후, 사용자 E/W 제어 프로그램(102)에서는, 순차 원형 번호⑪에서, 상태 레지스터(30)를 판독하여, 명령 사항 결과를 체크한다.
이상과 같은 순서로, 플래시 메모리의 사용자 영역을 재기록한다. 또, 프로그램해야 할 데이터는, 예컨대, 도 1의 퍼스널 컴퓨터(91)로부터 직렬 I/O(12)를 거쳐 입력된다.
다음으로, 재기록 제어 F/W 실행 중에 마이크로 컴퓨터(1)의 CPU(3)가 폭주하여, (감시 타이머로의 정기적인 기록 = 카운트값의 설정이 실행되지 않기 때문에) 감시 타이머 인터럽트 요구(104)가 출력된 경우, 도시하지 않는 인터럽트 제어 회로는 소정의 인터럽트 처리(CPU 내 레지스터 내용의 대피와 감시 타이머 인터럽트 용의 인터럽트 벡터 번지(플래시 메모리의 사용자 영역 내)로의 점핑 등)를 행한다. 또한, 도 3 및 도 4에 나타내는 OR 게이트(111, 117)가 출력하는 리셋 신호가 "1"로 되어, 각각 펌프/메모리 디코더용 제어 신호 레지스터(26), 순차 제어 레지스터(32)를 리셋한다. 이에 따라, 전압 차지 펌프 회로(24), 메모리 디코더(23)는 재기록 동작을 중단하고, 또한 FM 재기록 모드는 해제되며, 클럭은 XIN 입력측으로 전환되고, 플래시 메모리는 CPU/BIU(3)로부터 판독할 수 있는 상태로 되돌아간다.
상기 실시예 1에서는, 명령 레지스터(31)를 어드레스에 할당한 보통의 레지스터 구조인 것으로 했지만, 이것을 CPU(3) 내에 있는 누산기에 할당해도 무방하다. 이 경우, 사용자는 누산기에 명령을 설정하게 된다.
상기 실시예 1에서는, 명령 레지스터(31), 상태 레지스터(39)를 어드레스를 할당한 보통의 레지스터 구조인 것으로 했지만, 이들의 한쪽 또는 양쪽을 RAM(4) 내의 특정 번지에 할당해도 관계없다.
(마이크로 컴퓨터 동작 모드와 F/W 영역의 재기록 방법 설명)
상기 설명에서는 플래시 메모리의 F/W 영역(22) 내에 저장되어 있는 재기록 제어 F/W를 이용하여, 동사용자 영역의 재기록을 행하는 방법에 대하여 설명했다. 이후, F/W 영역 그 자체의 재기록 방법과 그에 관련된 마이크로 컴퓨터의 동작 모드에 대하여 설명한다.
도 17에 도시되는 표 3에 마이크로 컴퓨터(1)의 동작 모드 일람을 나타낸다. 표 3에서 각 동작 모드는 동작 모드 선택 단자 MD 1, MD 0에 외부로부터 인가되는 전압 레벨에 의해 선택된다. 각 동작 모드는 플래시 메모리를 CPU로부터 판독할 수 있는지 여부, 플래시 메모리를 재기록할 수 있는지 여부, 리셋 벡터 번지가 어디에 배치될지의 조건이 다르다. 또, 표 3에서 ○표, ×표는 각각 판독 또는 재기록이 가능한지 여부를 나타낸다. CPU로부터의 판독 가능/불능 및 리셋 벡터 번지의 배치 제어는 CPU/BIU(3) 내의 하드웨어의 제어 회로에 의해 행해지고, 플래시 메모리의 재기록 제어는 재기록 제어 F/W에 의해 행해진다. 이 때문에, 재기록 제어 F/W는 동작 모드 선택 단자 MD 1, MD 0을 (포트 제어 블록(11)을 거쳐) 판독하여 동작 모드를 판정한다.
다음으로 각 동작 모드에 대하여 설명한다. 사용자 모드에서는, F/W 영역(22)은 판독 가능(즉, 재기록 제어 F/W에 의한 재기록이 가능)하지만, F/W 영역 그 자체의 재기록은 행할 수 없다(즉, 보호되어 있음). 리셋 벡터는 사용자 영역(21)에 있으며, 사용자가 보통 사용하는 모드이다.
이 사용자 모드에서의 메모리 맵을 도 12에 나타낸다. 또, 도 12에서 주변 장치 레지스터군(14), RAM(4), 사용자 영역(21), F/W 영역(22)에 외부 메모리 영역을 할당해도 무방하고, 이 경우에는, 도 1에 도시하는 바와 같이, 외부 데이터 버스 단자(85), 동어드레스선 단자(86) 및 동R/W 제어선 단자(87)로부터 외부 데이터 버스선(95), 동어드레스선(96) 및 동R/W 제어선(97)을 거쳐 외부 메모리(90)를 접속할 수 있다.
테스트 모드 1은 F/W 영역(22) 그 자체의 재기록이 가능하게 된 것 외에는 상기 사용자 모드와 동일하다. 리셋 벡터가 사용자 영역에 있기 때문에 리셋 후의 시작은 사용자 영역(21) 내의 소프트웨어에 의해 행해지고, 그 후 F/W 영역(22) 내의 재기록 제어 F/W를 RAM(4)으로 전송한 후, 이 F/W를 사용하여 F/W 영역을 재기록하게 된다. 이 모드는 F/W의 도중 변경을 상정한 모드이다.
테스트 모드 2에서는 외부 메모리(90)를 접속하는 것을 상정한 동작 모드 이 며, 사용자 영역(21)을 판독할 수는 없는 대신 사용자 영역(21)과 동일 번지에서 외부 메모리 영역을 액세스할 수 있고, 또한 리셋 벡터가 이 외부 메모리 영역에 배치된다. 이 테스트 모드 2의 메모리 맵을 도 16에 나타낸다. 이 모드에서는 외부 메모리(90)에 리셋 벡터나 사용자 제어 프로그램(그에 상당하는 E/W 제어 프로그램)에 부가하여, 재기록 제어 F/W를 저장해 둔다.
리셋 후, E/W 제어 프로그램에 의해 재기록을 실행하지만, 그 경우 외부 메모리(90) 내의 재기록 제어 F/W를 기동한다. 이 모드에서는, F/W 영역(22)을 재기록할 수 있기 때문에, 플래시 메모리의 F/W 영역으로의 최초 F/W 기록에 사용할 수 있다. 외부 메모리(90) 대신에 테스터를 접속하여 이 테스터에 의해 마이크로 컴퓨터를 조작하면, 마이크로 컴퓨터의 출하 시에 테스터를 사용하여 재기록 제어 F/W를 F/W 영역(22)에 기록할 수 있다.
또한 이 테스트 모드 2에서는, 외부 메모리(90)에 리셋 벡터나 사용자 E/W 제어 프로그램(그에 상당하는 E/W 제어 프로그램)을 저장하고, F/W 영역(22)에 저장된 재기록 제어 F/W를 사용하여, 사용자 영역의 재기록을 행할 수 있다.
상기 테스트 모드 2에서는 사용자 영역(21)을 판독할 수는 없는 대신 사용자 영역(21)과 동일 번지에서 외부 영역을 액세스할 수 있고, 또한 리셋 벡터가 이 외부 영역에 배치되었으므로, 이것이 사용자 영역(21)의 판독할 수 있게 하지만, 리셋 벡터를, 예컨대, 사용자 영역(21)과 F/W 영역(22) 사이(800000h∼FFDFFFh 번지)의 외부 메모리 영역의 특정 번지로 이동하여 설치하는 모드를 만들어도 관계없다. 이 경우, 상기 리셋 벡터를 포함하는 번지에 외부 메모리(90)를 배치하고, 여기에 리셋 벡터나 사용자 E/W 제어 프로그램(그에 상당하는 E/W 제어 프로그램)에 부가하여, 재기록 제어 F/W를 저장해 둔다.
테스트 모드 3은 마이크로 컴퓨터의 출하 시에 테스트를 행하여 재기록 제어 F/W를 F/W 영역(22)에 기록하기 위한 모드이다. 이 모드에서 /RESET 단자(79)에 "L"을 인가한 리셋 상태에서는, 외부 데이터 버스 단자(85), 동어드레스선 단자(86), 동R/W 제어선 단자(87)로부터 직접 RAM(4)으로의 기록이나 판독을 할 수 있다. 이 상태에서(도 1의 외부 메모리(90) 대신에 접속되어 있음) 테스터로부터 RAM(4)에 리셋 벡터나 사용자 E/W 제어 프로그램(그에 상당하는 E/W 제어 프로그램) 및 재기록 제어 F/W를 기록한다.
다음으로, /RESET 단자(79)의 레벨을 "H"로 하여 리셋을 해제하면, 마이크로 컴퓨터(1)의 CPU/BIU(3)는 동작 개시하여, RAM(4) 상의 리셋 벡터, E/W 제어 프로그램에 의해 동작한다. 플래시 메모리의 재기록은 마찬가지로 RAM(4) 상의 재기록 제어 F/W를 사용하여 실행된다. 이 모드에서는, F/W 영역(22)을 변경할 수 있기 때문에, 플래시 메모리의 F/W 영역으로의 최초 F/W 기록에 사용할 수 있다.
상기 F/W 영역(22)을 재기록할 수 있는 테스트 모드(1∼3)에서 F/W 영역(22)의 재기록을 행하는 명령은 보통 사용하는 블록 소거 명령, 프로그램 명령이 아니라, F/W 전용의 블록 소거 명령, 프로그램 명령을 정의해도 무방하고, 또한, 예컨대, 보호 해제 명령을 정의하여 이 명령 실행 후에만, (보통의) 블록 소거 명령, 프로그램 명령이 유효해지도록 해도 상관없다(그 기능을 재기록 제어 F/W가 갖게 함).
또, 상기 실시예 1에서는, 비휘발성 메모리로서 플래시 메모리의 경우를 들었지만, 그 외에 EEPROM, 강 전계 메모리를 사용한 경우와 마찬가지로 생각할 수 있다.
이상과 같이, 이 실시예 1에 따르면, 재기록 제어 펌웨어(순차 F/W)와 사용자 소프트웨어를 저장하는 플래시 메모리, 재기록 제어 내용을 지정하는 명령 지정 수단(명령 레지스터), 재기록 제어 대상 어드레스 지정 수단(어드레스 레지스터), 기록해야 할 데이터를 지정하는 데이터 지정 수단(데이터 레지스터) 및 플래시 메모리 내 전원 펌프 회로, 메모리 디코더로의 제어 신호를 지정/출력하는 제어 신호 설정 수단(제어 신호 레지스터)을 구비하여 마이크로 컴퓨터를 구성하고, 이들 4개의 설정 수단(레지스터)에 대해서는, 마이크로 컴퓨터의 CPU에 의해 기록 또는 판독의 액세스가 가능하고, 제어 신호 레지스터의 1 비트가 하나의 제어 신호에 대응하고, 이것에 기록된 값은 직접 플래시 메모리 내 전원 회로, 메모리 디코더로의 제어 신호로 되어 이들을 제어한다.
그리고, 이 제어 신호 레지스터의 설정값을 규정 순차에 따라 재기록 제어 F/W에서 재기록함으로써 플래시 메모리의 소거, 프로그램(기록) 등의 처리를 실행시킨다.
또한, 플래시 메모리의 재기록을 행하는 경우에는, 사용자 소프트웨어(S/W)에 의해 명령 레지스터 및 필요에 따라 어드레스 레지스터, 데이터 레지스터에 필요한 정보를 설정한 후, 그 F/W를 호출한다(F/W 저장 번지로 점핑함).
또한, 재기록 제어 F/W는 이들 레지스터에 설정된 정보를 판독하고, 다음에 그 명령마다 결정할 수 있었던 순차(순서, 시간)에 따라 제어 신호 레지스터에 준하여 필요한 설정값을 기록한다.
명령 실행이 완료되면, F/W는 본래의 사용자 S/W로 복귀한다. 또, 플래시 메모리는 복수의 소거 단위 블록을 가지며, 재기록 제어 F/W는 사용자 소프트웨어용 블록과는 별도의 블록 내에 저장한다.
이상과 같이, 플래시 메모리가 내장된 마이크로 컴퓨터를 구성했기 때문에, 종래의 자동 순차 회로 (A)를 제어 신호 레지스터 (B)로 변경하여, 그 순차 동작을 플래시 메모리 (C) 내의 F/W에서 실행시킴으로써, 레이아웃 면적 S는, S(A) > (S(B) + S (C))이므로, 줄일 수 있고, 자동 순차 회로 삭감에 의한 레이아웃 면적 축소 및 저 비용화를 실현할 수 있다는 효과가 얻어진다.
또한, 재기록 제어 F/W를 탑재함으로써, 공급자 측에서 제공하는 F/W에 의해 종래 일부 사용자에게 행하였던 재기록 프로그램의 RAM 전송 등의 처리를 실행하므로, 사용자 측의 S/W를 간략화할 수 있다는 효과가 얻어진다.
또한, 순차 제어를 H/W가 아니라, 용이하게 변경할 수 있는 F/W에 의해 실행하도록 했기 때문에, 순차(순서, 시간)의 변경을 용이하게 할 수 있어 플래시 메모리의 완성에 맞추어 최적의 순차를 제공할 수 있다는 효과가 얻어진다.
이상과 같이, 본 발명에 따르면, 재기록 제어 펌웨어와 사용자 소프트웨어를 각각 별도의 단위 블록에 저장하는 비휘발성 메모리와, 각각 마이크로 컴퓨터의 CPU에 의해 기록 또는 판독할 수 있게 한, 재기록 제어 내용을 지정하는 명령 레지스터, 재기록 제어 대상 어드레스를 지정하는 어드레스 레지스터, 기록해야 할 데이터를 지정하는 데이터 레지스터 및 비휘발성 메모리 내의 전원 펌프 회로와 메모리 디코더로의 제어 신호를 지정하는 제어 신호 레지스터의 적어도 4개의 레지스터를 구비한 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터가 제공된다.
이에 따라, 제어 신호 레지스터의 소정 비트가 전원 펌프 회로 및 메모리 디코더에 접속되는 제어 신호에 대응하여 전원 펌프 회로 및 메모리 디코더를 제어하도록 하고, 재기록 제어 펌웨어는 명령 레지스터, 어드레스 레지스터 또는 데이터 레지스터에 설정된 값을 판독하여, 그 설정된 값에 대응한 명령마다 규정된 순차에 따라 제어 신호 레지스터의 설정값을 재기록함으로써 전원 펌프 회로 및 메모리 디코더를 동작시키는 것에 의해, 비휘발성 메모리의 소거 및 프로그램을 포함하는 재기록 처리를 실행시킬 수 있다.
따라서, (1) 종래 필요한 자동 순차 회로의 삭감에 의해 레이아웃 면적을 축소하여, 저 비용화를 도모하고, (2) 버그 정정이나 웨이퍼 프로세스로의 최적의 적용을 위한 재기록 순차 변경을 용이하게 실시할 수 있도록 할 수 있고, (3) 재기록 제어 펌웨어 탑재에 의해 사용자 소프트웨어의 부담을 삭감하고, 또한, 소프트웨어 개발 기간의 단축을 도모할 수 있는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어를 저장하는 단위 블록과 사용자 소프트웨어를 저장하는 단위 블록은 그 어드레스가 연속하지 않도록 구성했기 때문에, 소거, 프로그램 명령의 어드레스 지정 오류 등에 의한 재기록 제어 펌웨어의 오(誤)소거 방지 또는 펌웨어 영역의 블록을 비공개로 하는 것에 의해 재기록 제어 펌웨어의 비닉(秘匿)을 도모할 수 있는 효과가 있다.
본 발명에 따르면, CPU에 의해 기록 또는 판독할 수 있게 한 상태 레지스터를 구비하고, 재기록 제어 펌웨어는 소거 및 프로그램을 포함한 재기록 처리 완료 후, 그 실행 결과를 상태 레지스터에 기록하도록 구성했기 때문에, 사용자 E/W(소거/기록) 제어 프로그램으로 복귀한 후, 사용자 E/W 제어 프로그램은 지정한 명령이 정상으로 완료된 것인지, 이상 종료된 것인지를 확인할 수 있는 효과가 얻어진다.
본 발명에 따르면, 재기록 제어 펌웨어가 적어도 명령 레지스터에 설정된 명령을 디코딩하는 사용자 인터페이스 제어부와, 지정된 명령마다 전원 펌프 회로 및 메모리 디코더를 제어하는 명령 실행 제어부로 구성되고, 이 명령 실행 제어부의 펌웨어는 내장하는 RAM으로 전송되어, 이 RAM 상에서 실행되도록 구성했기 때문에, 사용자 E/W 제어 프로그램에서는 명령 지정과 명령 실행 후의 상태 체크 이외의 처리를 지원하지 않아서 좋고, 종래 필요하던 재기록 제어 소프트웨어의 RAM으로의 전송, 재기록 모드의 설정 등이 불필요해지므로, 사용자 측의 부담은 최소한으로 할 수 있는 효과가 있다.
또한, 상술한 두 개의 사용자 제어부와 명령 실행부로 분리하는 것에 의해, 명령의 추가, 변경 등에 대한 재기록 제어 펌웨어의 유지 보수가 용이하게 되는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어가 사용자 소프트웨어로부터 해당 재기록 제어 펌웨어의 선두 번지로 점핑함으로써 기동하고, 또한, 명령 실행 완료 후에는 사용자 소프트웨어의 점핑 명령의 다음 명령으로 되돌아가도록 구성했기 때문에, 사용자 E/W 제어 프로그램에서는 명령 지정과 명령 실행 후의 상태 체크 이외의 처리를 지원하지 않아서 좋고, 종래 명령 실행 상태를 나타내는 상태 비트의 폴링(polling)에 의해 행해지고 있었던 명령 실행의 종료 확인이 불필요해지기 때문에, 사용자의 부담은 최소한으로 할 수 있는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어가, 소거 명령시에는 소거 실행과 소거 후 검증 실행을 연속해서 행하고, 프로그램 명령시에는 프로그램 실행과 프로그램 후 검증을 연속해서 행하며, 이들 검증 결과가 이상하면, 각각 소거 오류, 프로그램 오류라고 판단하도록 구성했기 때문에, 소거, 프로그램의 일련의 동작을 사용자 측에서 보면 자동적으로 실행하므로, 사용자 E/W 제어 프로그램에서는 일일이 검증 작업을 실시할 필요가 없어, 소프트웨어 개발을 용이하게 할 수 있는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어가, 소거 및 프로그램을 포함하는 명령 실행 결과를 상태 레지스터에 설정하는 것 이외에, 각각 명령 레지스터 및 어드레스 레지스터에 정규 명령 코드가 아닌 명령, 또는 정규의 지정해야 할 어드레스가 아닌 어드레스가 지정되어 있었던 경우에는, 비정규 명령을 나타내는 오류 코드를 상태 레지스터에 설정하도록 하고, 이 경우에는 그 후의 처리를 실행하지 않도록 구성했기 때문에, 사용자 E/W 제어 프로그램에서의 명령, 어드레스 지정 오류에 의한 오(誤) 동작 방지를 도모하고, 또한 사용자 E/W 제어 프로그램에 경고하는 것으로 사용자 측의 오류 수정이 용이해지는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어가 상태 레지스터의 소거는 실시하지 않고, 또한, 명령 레지스터에 설정된 명령을 실행하기 전에 상태 레지스터를 판독하고, 정상 종료 이외의 오류 코드인 경우에는, 그 후의 처리를 실행하지 않도록 구성했기 때문에, 명령 실행이 이상 상태로 종료한 것을 사용자(사용자 E/W 제어 프로그램)가 확인하지 않고 다음 명령을 실행시키는 것을 방지할 수 있는 효과가 있다.
본 발명에 따르면, 명령 레지스터에 기록해야 할 명령 코드의 비트수를 12 내지 16으로 하고, 재기록 제어 펌웨어가 이 명령 코드의 전체 비트를 디코딩하도록 구성했기 때문에, 명령 코드의 용장성이 대폭 향상되어 잘못된 명령 입력에 의한 오 동작의 발생 확률을 감소시킬 수 있는 효과가 있다.
본 발명에 따르면, 어드레스 레지스터에 기록해야 할 어드레스의 비트수를, 비휘발성 메모리 공간을 지정할 수 있는 어드레스의 비트수보다도 많게 취하고, 재기록 제어 펌웨어는 이 어드레스의 전체 비트를 디코딩하도록 구성했기 때문에, 어드레스의 용장성이 향상되어 잘못된 어드레스 입력에 의한 오 동작의 발생 확률을 감소시킬 수 있는 효과가 있다.
본 발명에 따르면, CPU에 의해 설정할 수 있는 비휘발성 메모리 재기록 모드 선택 비트를 갖고, 이 펌웨어 재기록하고 모드 선택 비트에 특정값을 기록했을 때에 제어 신호 레지스터의 재기록을 행할 수 있도록 구성했기 때문에, CPU의 폭주나 사용자의 잘못된 사용(소프트웨어 오류) 등으로 제어 신호 레지스터로 비정규 기록 이 행해져, 플래시 메모리가 비정규적으로 재기록되는 것을 방지할 수 있는 효과가 있다.
본 발명에 따르면, 제어 신호 레지스터가 CPU에 의해 설정할 수 있는 레지스터이며, 리셋 신호에 의해, 그 출력되는 제어 신호는 전원 펌프 회로 및 메모리 디코더를 재기록할 수 없는 상태로 리셋되도록 구성했기 때문에, 리셋 시, 리셋 해제 시에 플래시 메모리가 비정규적으로 재기록되는 것을 방지할 수 있는 효과가 있다.
본 발명에 따르면, 제어 신호 레지스터는 CPU에 의해 설정할 수 있는 레지스터이며, 감시 타이머 인터럽트 신호에 의해, 그 출력되는 제어 신호는 전원 펌프 회로 및 메모리 디코더를 재기록할 수 없는 상태로 리셋되도록 구성했기 때문에, 재기록 제어 펌웨어에 의한 비휘발성 메모리의 재기록 시에, 만일 CPU가 폭주한 경우에 해당 비휘발성 메모리가 비정규적으로 재기록될 가능성을 감소할 수 있는 효과가 있다.
본 발명에 따르면, 펌웨어 모드 선택 비트가 마이크로 컴퓨터의 리셋 신호에 부가되어, 감시 타이머 인터럽트 신호에 의해 재기록 불가 모드를 지정하는 상태로 리셋되도록 구성했기 때문에, 재기록 제어 펌웨어에 의한 비휘발성 메모리가 비정규적으로 재기록될 가능성을 감소시킬 수 있는 효과가 있다.
본 발명에 따르면, 명령 레지스터로서, CPU 내의 누산기를 할당하도록 구성했기 때문에, 어드레스를 할당한 보통의 레지스터 구조에 의해 명령 레지스터를 실현한 경우에 비해, 그 내용을 판독하는 순서가 생략되므로 보다 고속으로 명령 디코더 처리를 할 수 있고, 또한, 레지스터를 신규로 배치하지 않아도 되기 때문에 회로 규모, 레이아웃 면적의 확대를 피할 수 있는 효과가 있다.
본 발명에 따르면, 명령 레지스터 및 상태 레지스터의 양쪽 또는 한쪽을 레지스터가 아닌, 내장하는 RAM 내의 특정 번지에 할당하도록 구성했기 때문에, 어드레스를 할당한 보통의 레지스터 구조로 이들 레지스터를 실현한 경우에 비해, 회로 규모, 레이아웃 면적의 확대를 대폭 삭감할 수 있는 효과가 있다.
본 발명에 따르면, 비휘발성 메모리의 재기록 시 전용 타이머 회로를 더 구비하도록 구성했기 때문에, 프로그램의 루프 회수로 시간을 계산하는 소프트웨어 타이머에 비해, 정밀한 시간 측정을 실현할 수 있는 효과가 있다.
또한, 사용자 측은 마이크로 컴퓨터가 정규의 주변 회로로서 갖고 있는 타이머를 비휘발성 메모리 재기록 중에 사용할 수 있는 효과가 있다.
본 발명에 따르면, CPU 및 주변 장치의 동작 클럭원을 클럭 단자로부터 입력된 클럭과, 내장된 자려 발진기에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU가 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는, 자려 발진기 측의 클럭을 선택하도록 구성했기 때문에, 사용자에 의존하지 않는 시간 설정을 행할 수 있으므로 재기록 제어 펌웨어의 개발이나 조정을 용이하게 실행할 수 있는 효과가 있다.
본 발명에 따르면, CPU의 동작 클럭원을, 클럭 단자로부터 입력된 클럭과 내장된 자려 발진기에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU가 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는, CPU의 동작 클럭원으로서 자려 발진기 측의 클 럭을 선택하지만, 타이머 및 직렬 I/0 등의 주변 장치용 클럭원은 클럭 단자로부터 입력된 클럭으로부터 전환하지 않도록 구성했기 때문에, 재기록 실행 중의 시간 계측을 사용자마다 주파수가 다른 XIN 입력 클럭이 아니라, 항상 일정 주파수를 내장된 자려 발진기 측의 클럭에 의해 행함으로써, 사용자 사용 조건에 의존하지 않는 시간을 설정할 수 있어, 재기록 제어 펌웨어의 개발이나 조정을 용이하게 실행할 수 있는 효과가 있다.
또한, 주변 장치의 동작 속도는 사용자 소프트웨어 주행 시 그대로인 것으로, 비휘발성 메모리의 재기록 시에도 타이머나 직렬 I/0와 같은 주변 장치의 클럭 설정값을 바꾸지 않고 그 상태대로 사용할 수 있게 된다. 이 때문에, 사용자 E/W 제어 프로그램과 재기록 제어 펌웨어를 교대로 실행하여, 순서대로 기록(프로그램)을 실행하는 경우에, 다음 기록 데이터를 직렬 I/0로부터 자동적으로 수신할 수 있는 효과가 있다.
본 발명에 따르면, CPU 및 감시 타이머의 동작 클럭원을, 클럭 단자로부터 입력된 클럭과 내장된 자려 발진기에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, CPU에 의해 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하고, 비휘발성 메모리의 재기록 실행 시에는, CPU 및 감시 타이머의 동작 클럭원으로서 자려 발진기 측의 클럭을 선택하지만, 타이머 및 직렬 I/0를 포함하는 주변 장치용 클럭원은 클럭 단자로부터 입력된 클럭으로부터 전환하지 않도록 구성했기 때문에, 재기록 실행 중의 시간 계측을 사용자마다 주파수가 다른 XIN 입력 클럭이 아니라, 항상 일정 주파수를 내장된 자려 발진기 측의 클럭에 의해 행 함으로써, 사용자 사용 조건에 의존하지 않는 시간을 설정할 수 있으므로 재기록 제어 펌웨어의 개발이나 조정을 용이하게 실행할 수 있는 효과가 있다.
또한, 주변 장치의 동작 속도는 사용자 소프트웨어 주행 시 그대로인 것으로, 비휘발성 메모리의 재기록 시에도 타이머나 직렬 I/0와 같은 주변 장치의 클럭 설정값을 바꾸지 않고 그 상태대로 사용할 수 있게 되는 효과가 있다.
또한, CPU의 폭주 대책으로서 정기적으로 행하는 감시 타이머로의 기록(리셋) 빈도를 사용자 사용 조건에 관계없이 설정할 수 있는 효과가 있다.
본 발명에 따르면, 내장된 자려 발진기에는 비휘발성 메모리 내의 전압 차지 펌프용 자려 발진기를 겸용하여 사용하도록 구성했기 때문에, 전용 자려 발진기를 신규로 마련한 경우에 비해, 회로 규모, 레이아웃 면적의 확대를 대폭 삭감할 수 있는 효과가 있다.
본 발명에 따르면, 타이머 회로의 클럭원에는 비휘발성 메모리 내의 전압 차지 펌프용 자려 발진기를 겸용하여 사용하도록 구성했기 때문에, 전용 자려 발진기를 신규로 마련한 경우에 비해, 회로 규모, 레이아웃 면적의 확대를 대폭 삭감할 수 있는 효과가 있다.
본 발명에 따르면, 자려 발진기는 항상 동작시켜 놓는 것이 아니라, CPU에 의해 설정할 수 있는 발신 허가 비트를 마련하고, 이 비트가 특정 상태인 경우에 자려 발진기를 동작시키도록 구성했기 때문에, 내장된 자려 발진기의 소비 전력을 삭감할 수 있고, 또한 발진에 의한 불필요한 복사 잡음을 최소한으로 억제할 수 있는 효과가 있다.
본 발명에 따르면, 동작 클럭원의 전환이 클럭원 선택 비트에 의해 자려 발진기가 생성하는 클럭을 선택하고, 또한 발신 허가 비트에 의해 자려 발진기의 동작 허가를 선택했을 때에, 동작 클럭원은 자려 발진기에서 생성된 클럭으로 전환되도록 구성했기 때문에, CPU가 폭주한 경우에, 내장된 자려 발진기가 동작 금지 상태에서 해당 자려 발진기의 클럭을 선택한 경우에도 마이크로 컴퓨터의 클럭이 정지하여 회복 불가능해지는 것을 피하는 효과가 있다.
본 발명에 따르면, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 적어도 하나의 동작 모드는 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록을 실시할 수 없도록 구성했기 때문에, 이 재기록 할 수 없는 모드만을 사용자 공개로 함으로써 오소거, 오기록에 의한 중요한 재기록 제어 펌웨어의 파괴를 미연에 방지할 수 있는 효과가 있다.
본 발명에 따르면, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 리셋 해제 후 최초에 액세스하는 리셋 벡터 번지가 외부 영역인 제 2 동작 모드를 갖고, 이 제 2 동작 모드에서 비휘발성 메모리 내의 적어도 사용자 소프트웨어를 저장하는 영역은 CPU로부터 판독할 수 없는 한편, 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하도록 구성했기 때문에, 외부 영역에 리셋 벡터, 재기록 제어 소프트웨어 및 재기록 제어 펌웨어를 기록한 외부 메모리를 배치하고, 이것으로 마이크로 컴퓨터를 기동함으로써, 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록할 수 있는 효과가 있다.
또한, 외부 영역에 테스터를 접속하여 이 테스터의 제어에 의해 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록할 수 있는 효과가 있다.
본 발명에 따르면, 제 2 동작 모드에서 비휘발성 메모리 내의 재기록 제어 펌웨어를 저장하는 영역은 CPU에서 판독될 수 있도록 구성했기 때문에, 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록한 후, 그 내용을 CPU에서 판독하고 확인할 수 있는 효과가 있다.
또한, 이 동작 모드에 의해 외부 메모리로부터 재기록 제어 펌웨어를 기동하여, 비휘발성 메모리의 사용자 영역의 재기록을 행할 수 있는 효과가 있다.
본 발명에 따르면, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 구비하고, 리셋 해제 후 처음에 액세스하는 리셋 벡터 번지가 외부 영역인 제 3 동작 모드를 갖고, 이 제 3 동작 모드에서 비휘발성 메모리 영역은 CPU로부터 판독할 수 있으며, 해당 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하도록 구성했기 때문에, 외부 영역에 리셋 벡터, 재기록 제어 소프트웨어, 재기록 제어 펌웨어를 기록한 외부 메모리를 배치하고, 이것으로 마이크로 컴퓨터를 기동함으로써, 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록할 수 있는 효과가 있다.
또한, 외부 영역에 테스터를 접속하여 이 테스터의 제어에 의해 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록할 수 있는 효과가 있다.
본 발명에 따르면, 동작 모드 선택 입력 단자로의 인가 전압 레벨에 의해 결정되는 동작 모드를 복수 갖고, 리셋 중에 외부로부터 직접 내장 RAM으로의 기록을 행하고, 또한 리셋 해제 후의 리셋 벡터 번지가 해당 RAM 내에 설정되는 제 4 동작 모드를 갖고, 이 제 4 동작 모드에서 비휘발성 메모리 영역은 CPU에 의해 판독될 수 있으며, 해당 비휘발성 메모리 내의 사용자 소프트웨어를 저장하는 영역 및 재기록 제어 펌웨어를 저장하는 영역의 재기록이 가능하도록 구성했기 때문에, 해당 RAM에 미리 리셋 벡터, 재기록 제어 소프트웨어 및 재기록 제어 펌웨어를 기록한 외부 메모리를 전송하고, 이것에 의해 마이크로 컴퓨터를 기동함으로써, 비휘발성 메모리의 펌웨어 영역에 최초로 재기록 제어 펌웨어를 기록할 수 있는 효과가 있다.
본 발명에 따르면, 동작 모드 선택 입력 단자의 상태가 CPU에 의해 판독될 수 있도록 구성했기 때문에, 재기록 제어 펌웨어에서의 펌웨어 영역으로의 재기록 가부 판단이 가능해지고, 하드웨어에 의해 펌웨어 영역으로의 재기록 금지/허가를 제어하는 것보다도, 회로 규모, 레이아웃 면적의 증가량이 적고, 만일의 버그 발생 시에도 개정 등의 대처가 용이해지는 효과가 있다.
본 발명에 따르면, 재기록 제어 펌웨어가 동작 모드 선택 입력 단자의 상태를 판독하고, 비휘발성 메모리의 펌웨어 영역의 재기록이 금지되어 있는 동작 모드에서는, 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록을 실시하지 않고, 비정규 명령이라고 판정하도록 구성했기 때문에, 하드웨어에 의해 펌웨어 영역으로의 재기록 금지/허가를 제어하는 것보다도, 회로 규모, 레이아웃 면적의 증가 량이 적고, 만일의 오류 발생 시에도 개정 등의 대처가 용이해지는 효과가 있다.
본 발명에 따르면, 비휘발성 메모리의 재기록 제어 펌웨어 저장 영역의 재기록이 가능한 동작 모드 시에 유효해지는 펌웨어 저장 영역용 재기록 명령을 갖도록 구성했기 때문에, 이 명령을 사용자에게 비공개로 함으로써 오소거, 오기록에 의한 중요한 재기록 제어 펌웨어의 파괴를 미연에 방지할 수 있는 효과가 있다.
또, CPU가 내부 데이터 버스를 거쳐 설정할 수 있는 제어 신호 출력 제어 비트를 갖고, 이 제어 신호 출력 제어 비트로 CPU가 기록을 실시한 시점에서, 먼저 제어 신호 레지스터에 기록하여 놓은 상태가 제어 신호로서 전원 펌프 회로, 메모리 디코더에 출력되도록 해도 무방하고, 이에 따라, 제어 신호의 수만큼 필요한 제어 신호 레지스터의 비트수가, 마이크로 컴퓨터 내 데이터 버스의 비트수보다 많은 경우에 복수개에 걸쳐 설정을 반복할 필요가 있는 경우에도, 전원 펌프 회로, 메모리 디코더로 출력해야 할 제어 신호군을 동시에 변화시키기 위해서 이 제어 신호 출력 제어 비트를 마련하는 것으로 대처할 수 있다.

Claims (4)

  1. 재기록 제어 펌웨어와 사용자 소프트웨어를 각각 별도의 단위 블록에 저장하는 비휘발성 메모리와, 각각 마이크로 컴퓨터의 CPU에 의해 기록 또는 판독할 수 있게 한, 재기록 제어 내용을 지정하는 명령 레지스터, 재기록 제어 대상 어드레스를 지정하는 어드레스 레지스터, 기록해야 할 데이터를 지정하는 데이터 레지스터 및 비휘발성 메모리 내의 전원 펌프 회로와 메모리 디코더로의 제어 신호를 지정하는 제어 신호 레지스터의 적어도 4개의 레지스터를 구비한 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터에 있어서,
    상기 제어 신호 레지스터의 소정 비트를 상기 전원 펌프 회로 및 메모리 디코더로 접속되는 제어 신호에 대응시켜 이들 전원 펌프 회로 및 메모리 디코더를 제어하도록 하고,
    재기록 제어 펌웨어는 상기 명령 레지스터, 어드레스 레지스터 또는 데이터 레지스터에 설정된 값을 판독하고, 그 설정된 값에 대응한 명령마다 규정된 순차에 따라 상기 제어 신호 레지스터의 설정값을 재기록함으로써 상기 전원 펌프 회로 및 메모리 디코더를 동작시키는 것에 의해 상기 비휘발성 메모리의 소거 및 프로그램을 포함하는 재기록 처리를 실행시키는 것을 특징으로 하는
    프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터.
  2. 제 1 항에 있어서,
    마이크로 컴퓨터 CPU에 의해 기록 또는 판독할 수 있게 한 상태 레지스터를 구비하고,
    재기록 제어 펌웨어는 소거 및 프로그램을 포함한 재기록 처리 완료 후, 그 실행 결과를 상기 상태 레지스터에 기록하는 것을 특징으로 하는
    프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터.
  3. 제 1 항에 있어서,
    명령 레지스터에 기록해야 할 명령 코드의 비트수를 12 내지 16으로 하고, 재기록 제어 펌웨어는 이 명령 코드의 전체 비트를 디코딩하는 것을 특징으로 하는
    프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터.
  4. 제 1 항에 있어서,
    CPU의 동작 클럭원을, 클럭 단자로부터 입력된 클럭과 내장된 자려 발진기(self-excited oscillator)에서 생성된 클럭으로 전환하는 클럭 전환 회로를 갖고, 상기 CPU가 설정할 수 있는 클럭원 선택 비트의 상태에 의해 이들 클럭을 전환하도록 하며, 비휘발성 메모리의 재기록 실행 시에는, 상기 CPU의 동작 클럭원을 상기 자려 발진기 측의 클럭을 선택하지만, 타이머 및 직렬 I/0 등의 주변 장치용 클럭원은 상기 클럭 단자로부터 입력된 클럭으로부터 전환하지 않는 것을 특징으로 하는
    프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로 컴퓨터.
KR1020010076901A 2001-03-08 2001-12-06 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터 Expired - Fee Related KR100658135B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001065389A JP2002269065A (ja) 2001-03-08 2001-03-08 プログラム可能な不揮発性メモリを内蔵したマイクロコンピュータ
JPJP-P-2001-00065389 2001-03-08

Publications (2)

Publication Number Publication Date
KR20020072182A KR20020072182A (ko) 2002-09-14
KR100658135B1 true KR100658135B1 (ko) 2006-12-15

Family

ID=18924050

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020010076901A Expired - Fee Related KR100658135B1 (ko) 2001-03-08 2001-12-06 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터

Country Status (5)

Country Link
US (1) US6587916B2 (ko)
JP (1) JP2002269065A (ko)
KR (1) KR100658135B1 (ko)
DE (1) DE10159901B4 (ko)
TW (1) TW575811B (ko)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684290B2 (en) * 2001-10-18 2004-01-27 Kabushiki Kaisha Toshiba Memory rewriting apparatus and method for memory mapping rewriting program to same address space
JP2003167649A (ja) * 2001-11-28 2003-06-13 Mitsubishi Electric Corp 情報処理装置
US7599976B1 (en) * 2002-11-13 2009-10-06 Metrowerks Corporation System and method for cryptographic key generation
JP2004213102A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd マイクロコンピュータ
JP4201629B2 (ja) * 2003-03-26 2008-12-24 三洋電機株式会社 誤書込み防止回路および該誤書込み防止回路を含む半導体装置
JP2005038382A (ja) * 2003-06-26 2005-02-10 Sanyo Electric Co Ltd 制御装置及びデータ書き込み方法
US7281103B2 (en) 2003-10-01 2007-10-09 Kabushiki Kaisha Toshiba Microcomputer with a security function for accessing a program storage memory
KR100966895B1 (ko) * 2004-01-06 2010-06-30 삼성전자주식회사 불휘발성 메모리의 테스트 장치 및 방법
JP2005309839A (ja) * 2004-04-22 2005-11-04 Sanyo Electric Co Ltd 制御装置
KR100691486B1 (ko) * 2004-07-13 2007-03-09 주식회사 하이닉스반도체 반도체메모리소자
KR100578143B1 (ko) 2004-12-21 2006-05-10 삼성전자주식회사 버퍼 메모리에 저장된 데이터를 무효화시키는 스킴을 갖는저장 시스템 및 그것을 포함한 컴퓨팅 시스템
US8122193B2 (en) 2004-12-21 2012-02-21 Samsung Electronics Co., Ltd. Storage device and user device including the same
JP2008097135A (ja) * 2006-10-06 2008-04-24 Oki Electric Ind Co Ltd メモリ制御装置
JP5032137B2 (ja) 2007-01-24 2012-09-26 株式会社東芝 半導体記憶装置
JP4324810B2 (ja) 2007-04-10 2009-09-02 セイコーエプソン株式会社 マイクロコンピュータ、電子機器及びフラッシュメモリのプロテクト方式
WO2011011007A1 (en) * 2009-07-23 2011-01-27 Hewlett-Packard Development, Company, L.P. Non-volatile data-storage latch
US9465755B2 (en) 2011-07-18 2016-10-11 Hewlett Packard Enterprise Development Lp Security parameter zeroization
KR101701014B1 (ko) * 2012-03-30 2017-01-31 인텔 코포레이션 운영 체제에의 악성 활동 보고
KR101979732B1 (ko) * 2012-05-04 2019-08-28 삼성전자 주식회사 비휘발성 메모리 컨트롤러 및 비휘발성 메모리 시스템
US9459810B2 (en) * 2013-12-30 2016-10-04 Sandisk Technologies Llc Storage module and method for configuring command attributes
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
CN110720088A (zh) 2017-06-12 2020-01-21 净睿存储股份有限公司 集成到大容量存储设备的可访问快速耐久存储
US20180357017A1 (en) 2017-06-12 2018-12-13 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10552090B2 (en) * 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
WO2020217303A1 (ja) * 2019-04-23 2020-10-29 株式会社Fuji 情報処理装置及び作業機
US11398282B2 (en) * 2019-05-31 2022-07-26 Micron Technology, Inc. Intelligent charge pump architecture for flash array

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910008581A (ko) * 1989-10-30 1991-05-31 아오이 죠이치 마이크로 콘트롤러
KR950033761A (ko) * 1994-05-31 1995-12-26 기다오까 다까시 Rom 프로그램 변경기능을 가진 마이크로컴퓨터
KR970071274A (ko) * 1996-04-10 1997-11-07 다까노 야스아끼 개서 가능한 불휘발성 메모리를 갖는 마이크로컴퓨터
JPH10124474A (ja) * 1996-10-25 1998-05-15 Nec Corp マイクロコンピュータ
JPH10161988A (ja) * 1996-11-28 1998-06-19 Nec Corp フラッシュeeprom内蔵マイクロコンピュータ
JP2000194551A (ja) * 1998-12-28 2000-07-14 Oki Micro Design Co Ltd フラッシュメモリ書換え回路

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2461301A1 (fr) 1978-04-25 1981-01-30 Cii Honeywell Bull Microprocesseur autoprogrammable
US4752871A (en) * 1985-09-30 1988-06-21 Motorola, Inc. Single-chip microcomputer having a program register for controlling two EEPROM arrays
US5313429A (en) * 1992-02-14 1994-05-17 Catalyst Semiconductor, Inc. Memory circuit with pumped voltage for erase and program operations
TW231343B (ko) 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
JPH05266219A (ja) 1992-03-17 1993-10-15 Hitachi Ltd マイクロコンピュータ
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
JP3976839B2 (ja) * 1996-07-09 2007-09-19 株式会社ルネサステクノロジ 不揮発性メモリシステムおよび不揮発性半導体メモリ
JP3062730B2 (ja) * 1996-07-10 2000-07-12 株式会社日立製作所 不揮発性半導体記憶装置および書込み方法
JPH10134024A (ja) 1996-10-31 1998-05-22 Sanyo Electric Co Ltd マイクロコンピュータ
JPH10177563A (ja) * 1996-12-17 1998-06-30 Mitsubishi Electric Corp フラッシュメモリ内蔵マイクロコンピュータ
US6026014A (en) * 1996-12-20 2000-02-15 Hitachi, Ltd. Nonvolatile semiconductor memory and read method
US5991221A (en) * 1998-01-30 1999-11-23 Hitachi, Ltd. Microcomputer and microprocessor having flash memory operable from single external power supply
JPH10269109A (ja) * 1997-03-21 1998-10-09 Mitsubishi Electric Corp マイクロコンピュータ
TW389910B (en) 1997-07-03 2000-05-11 Seiko Epson Corp Programmable nonvolatile memory apparatus and microcomputer using the same
JP4229482B2 (ja) * 1997-10-24 2009-02-25 株式会社ルネサステクノロジ フラッシュメモリ内蔵マイクロコンピュータ
TW368626B (en) 1998-04-17 1999-09-01 Winbond Electronics Corp Microprocessor with self-programmed embedded flash memory and programming method
IT1302432B1 (it) * 1998-08-13 2000-09-05 Texas Instruments Italia Spa Sistema di azzeramento a blocchi a settori di dispositivi di memoriaa semicondutture flash
US6421757B1 (en) * 1998-09-30 2002-07-16 Conexant Systems, Inc Method and apparatus for controlling the programming and erasing of flash memory

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR910008581A (ko) * 1989-10-30 1991-05-31 아오이 죠이치 마이크로 콘트롤러
KR950033761A (ko) * 1994-05-31 1995-12-26 기다오까 다까시 Rom 프로그램 변경기능을 가진 마이크로컴퓨터
KR970071274A (ko) * 1996-04-10 1997-11-07 다까노 야스아끼 개서 가능한 불휘발성 메모리를 갖는 마이크로컴퓨터
JPH10124474A (ja) * 1996-10-25 1998-05-15 Nec Corp マイクロコンピュータ
KR19980033145A (ko) * 1996-10-25 1998-07-25 가네꼬히사시 마이크로컴퓨터
JPH10161988A (ja) * 1996-11-28 1998-06-19 Nec Corp フラッシュeeprom内蔵マイクロコンピュータ
JP2000194551A (ja) * 1998-12-28 2000-07-14 Oki Micro Design Co Ltd フラッシュメモリ書換え回路

Also Published As

Publication number Publication date
DE10159901B4 (de) 2005-03-31
JP2002269065A (ja) 2002-09-20
KR20020072182A (ko) 2002-09-14
DE10159901A1 (de) 2002-09-26
US6587916B2 (en) 2003-07-01
US20020129195A1 (en) 2002-09-12
TW575811B (en) 2004-02-11

Similar Documents

Publication Publication Date Title
KR100658135B1 (ko) 프로그래밍할 수 있는 비휘발성 메모리를 내장한 마이크로컴퓨터
US9053015B2 (en) NAND flash memory interface controller with GNSS receiver firmware booting capability
US7778074B2 (en) System and method to control one time programmable memory
KR20010070149A (ko) 전기적으로 재기입 가능한 불휘발성 메모리를 구비하는마이크로컨트롤러
KR100492714B1 (ko) 마이크로 컴퓨터
KR100255568B1 (ko) 재기록이 가능한 불휘발성 메모리를 갖는 마이크로컴퓨터
CN101561796A (zh) 微处理器及其可复写非易失性状态的新值写入方法
CN109407807B (zh) 一种芯片复位电路、复位方法及mcu芯片
JPH1050078A (ja) 電気的に消去およびプログラムが可能なリード・オンリ・メモリの消去およびプログラミング保護方法および装置
KR100374366B1 (ko) 비휘발성 반도체 기억장치 및 그 제조방법
KR100299542B1 (ko) 불휘발성메모리를사용한마이크로컴퓨터
US7680976B2 (en) Method and apparatus for emulating rewritable memory with non-rewritable memory in an MCU
US8621643B2 (en) Semiconductor device
JPWO2006040798A1 (ja) 半導体集積回路装置および電子システム
JP2006107326A (ja) 半導体集積回路
JP2001075941A (ja) フラッシュメモリ内蔵マイクロコンピュータおよびその動作方法
JP3197865B2 (ja) マイクロコンピュータ
US11915008B2 (en) Processing system, related integrated circuit, device and method
JP2005050442A (ja) 冗長メモリ回路
JPH08235073A (ja) マイクロコンピュータ
CN117573155B (zh) 产品信息处理方法及芯片
US20030142570A1 (en) Memory controller and serial memory
KR100388219B1 (ko) 플래쉬 메모리가 내장된 원칩 마이크로 콘트롤러 유닛
JP2004021421A (ja) メモリ装置の制御方法およびそのプログラムならびに記録媒体
JP3866269B2 (ja) マイクロコンピュータ

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20011206

PA0201 Request for examination
PG1501 Laying open of application
N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20030422

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20040329

Patent event code: PE09021S01D

E601 Decision to refuse application
PE0601 Decision on rejection of patent

Patent event date: 20041022

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20040329

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

J201 Request for trial against refusal decision
PJ0201 Trial against decision of rejection

Patent event date: 20041124

Comment text: Request for Trial against Decision on Refusal

Patent event code: PJ02012R01D

Patent event date: 20041022

Comment text: Decision to Refuse Application

Patent event code: PJ02011S01I

Appeal kind category: Appeal against decision to decline refusal

Decision date: 20060831

Appeal identifier: 2004101005486

Request date: 20041124

J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20041124

Effective date: 20060831

Free format text: TRIAL NUMBER: 2004101005486; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20041124

Effective date: 20060831

PJ1301 Trial decision

Patent event code: PJ13011S01D

Patent event date: 20060831

Comment text: Trial Decision on Objection to Decision on Refusal

Appeal kind category: Appeal against decision to decline refusal

Request date: 20041124

Decision date: 20060831

Appeal identifier: 2004101005486

PS0901 Examination by remand of revocation
S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
PS0701 Decision of registration after remand of revocation

Patent event date: 20060908

Patent event code: PS07012S01D

Comment text: Decision to Grant Registration

Patent event date: 20060904

Patent event code: PS07011S01I

Comment text: Notice of Trial Decision (Remand of Revocation)

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20061208

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20061211

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

Termination category: Default of registration fee

Termination date: 20101110