KR20020077048A - 마이크로컴퓨터 - Google Patents

마이크로컴퓨터 Download PDF

Info

Publication number
KR20020077048A
KR20020077048A KR1020020010099A KR20020010099A KR20020077048A KR 20020077048 A KR20020077048 A KR 20020077048A KR 1020020010099 A KR1020020010099 A KR 1020020010099A KR 20020010099 A KR20020010099 A KR 20020010099A KR 20020077048 A KR20020077048 A KR 20020077048A
Authority
KR
South Korea
Prior art keywords
program
area
mode
user
control program
Prior art date
Application number
KR1020020010099A
Other languages
English (en)
Inventor
야다나오키
이시카와에이이치
Original Assignee
가부시키가이샤 히타치세이사쿠쇼
히타치 홋카이 세미콘덕터 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 가부시키가이샤 히타치세이사쿠쇼, 히타치 홋카이 세미콘덕터 가부시키가이샤 filed Critical 가부시키가이샤 히타치세이사쿠쇼
Publication of KR20020077048A publication Critical patent/KR20020077048A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • 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/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

실장보드에 시리얼 인터페이스를 작성하지 않아도, 유저전용 통신 프로토콜로 온보드 기록할 수 있어, 폭주하더라도, 유저전용 통신 프로토콜 코드가 파괴되지 않는 마이크로컴퓨터를 제공한다.
마이크로컴퓨터의 온칩 불휘발성 메모리(13)에는, 유저의 제어 프로그램 등을 기록하는 유저매트(Mmat) 이외에, 유저부트매트(Umat)를 준비한다. 이 유저부트매트는, 유저 전용의 통신 프로토콜을 기록하는 매트가 되며, 그 매트로부터 프로그램을 실행하는 유저부트모드도 준비한다. 이 유저부트모드에서는, 유저브트매트가 소거 및 기록이 불가능하게 된다. 유저브트매트와 유저매트를 분리함으로써, 유저매트에 전용통신 프로토콜을 기록하지 않아도, 소거 및 기록용에 유저 임의의 기록 인터페이스를 실현할 수 있다.

Description

마이크로컴퓨터{MICROCOMPUTER}
본 발명은, 전기적으로 소거 및 기록 가능한 불휘발성 메모리와 CPU(중앙처리장치)를 갖는 마이크로컴퓨터, 특히 상기 불휘발성 메모리에 대한 소거 및 기록동작의 허가와 금지에 관한 것으로, 예컨대 플래시메모리를 갖는 원 칩의 마이크로컴퓨터에 적용하는 유효한 기술에 관한 것이다.
플래시메모리 등 전기적으로 소거 및 기록이 가능한 불휘발성 메모리는 메모리셀에 프로그램되는 문턱치 전압의 상이에 따라 정보를 기억한다. 플래시메모리에서 그 문턱치전압의 상이는, 플로팅게이트가 보유하는 전자 또는 정공 양의 상이에 의해 실현된다. 예컨대 열평형 상태의 문턱치전압에 대하여 상대적으로 높은 문턱치전압 상태를 기록상태, 상대적으로 낮은 문턱치전압 상태를 소거상태라 칭한다(역의 정의도 가능하다). 이때, 특히 제한되지 않지만, 메모리셀을 소거상태로 하는 소거 및 메모리셀을 기록상태로 하는 기록의 각 동작에서는, 고전압 펄스의 인가와, 이것에 의한 문턱치전압 상태의 검증을 반복하여 행한다. 마이크로컴퓨터의 온칩 플래시메모리에 소거 및 기록을 가능하게 하는 동작모드로서, 라이터 모드 및부트모드를 갖는 것이 있다. 라이터 모드란, 예컨대, 마이크로컴퓨터를 외관상, 플래시메모리칩과 등가로 하고, EPROM 라이터와 같은 기록장치에 접속하여, 소거 및 기록을 가능하게 하는 동작모드이다. 부트모드는, 예컨대, 마이크로컴퓨터가 시스템에 실장된 상태에서 조보(調步)동기 혹은 비동기의 시리얼 인터페이스(UART)를 통하여 실장 시스템과의 통신을 확립시켜 소거 및 기록을 가능하게 하는 동작모드이다. 시스템 실장 전에 온칩 플래시메모리에 프로그램이나 데이터를 초기적으로 기록하는 경우에는 라이터모드를 이용할 수 있다. 한편, 시스템 실장 후에, 프로그램의 버전업(version-up)이나 데이터의 튜닝을 위해 온칩 플래시메모리의 기억정보를 기록하는 경우에는 부트모드를 이용할 수 있다.
종래, 부트모드에는 기본적인 인터페이스 방식으로서 시리얼 인터페이스를 이용하도록 되어 있으므로, 부트모드를 이용하여 온보드 재기록을 행하는 경우, 마이크로컴퓨터의 실장 시스템 보드에는 조보(調步)동기와 같은 시리얼 인터페이스 회로를 탑재하는 것이 행해지고 있다.
그러나, 조보 동기와 같은 시리얼 인터페이스 회로를 본래 필요로 하지 않는 시스템도 있다. 예컨대, CD-ROM(Compact Disk-Read Only Memory), CD-RW(Compact Disk-rewritable), DVD-ROM(Digital Video Disk-Read Only Memory), DVD-RAM(Digital Video Disk-Random Access Memory) 등의 디스크 드라이브 시스템에서는 ATAPI(AT Attachment Packet Interface)나 SCSI(Small Computer System Interface) 등의 인터페이스가 필연적으로 존재한다. 엔진이나 트랜스미션 등의 자동차 관계의 제어시스템에서는 HCAN이라 칭하는 에어리어 네트워크 인터페이스가 존재한다. 이와 같이 각 유저의 시스템 보드에 ATAPI, SCSI 또는 HCAN 등의 인터페이스가 존재해도, 부트모드에서 온보드 재기록을 행하기 위해서만 조보 동기와 같은 시리얼 인터페이스를 더 존재시킬 필요가 있다고 하면, 이것은 유저의 시스템 보드에 있어서 오버헤드의 문제를 발생시키는 것이 된다.
이것을 회피하는데는, 자유롭게 이용하는 것이 허용된 플래시메모리상의 기억영역(즉, 유저 메모리영역)에서 프로그램의 실행이 가능한 유저 프로그램모드에서 온보드 기록을 실시할 수 있도록 하면 된다. 즉, 미리, 예컨대 라이터 모드에서 유저 메모리 영역에 ATAPI 등의 유저 시스템보드 전용의 통신 프로토콜 처리 프로그램을 기록한다. 이것을 실시한 후에, 마이크로컴퓨터를 유저의 시스템보드로 실장하고, 그 유저 전용의 통신 프로토콜 처리 프로그램을 CPU로 실행하면, 유저의 시스템보드상에 시리얼 인터페이스를 가지지 않아도, 유저 메모리영역에 대한 프로그램 버전업이나 튜닝 데이터를 재기록하는 등을 실시할 수 있다.
그러나, 유저의 제어 프로그램이나 튜닝 데이터 등이 기록되는 유저영역에 전용통신 프로토콜 처리 프로그램도 함께 기록하는 경우에는, 유저가 제어프로그램을 작성할 때에, 그 전용통신 프로토콜의 프로그램이 잘못하여 소거되기 어렵게 하는 제어를 실현하지 않으면 안되고, 유저가 프로그램을 작성하는데 큰 부담이 되는 것이 염려된다. 또, 시스템보드상에 실장한 후에 유저 프로그램모드에서 CPU가 폭주했을 때, 유저 프로그램 모드에서 실장 가능해지는 상기 통신 프로토콜의 처리 프로그램이 잘못되어 지워져 버리면, 소거 및 기록을 위해 유저 시스템보드는 2번다시 인터페이스를 확립할 수 없다. 실장기판에서 마이크로컴퓨터 칩을 떼어내어, 라이터 모드를 이용하지 않는 한, 재기록을 실시할 수 없게 되는 문제가 본 발명자에 의해 명백해졌다. 또, 본 명세서에서 유저란 넓은 의미에서 마이크로컴퓨터 등의 반도체 디바이스의 이용자를 의미한다. 따라서, 반도체 디바이스의 제조메카가 그 반도체 디바이스를 어떤 의미로 사용하면, 그 한정에서 해당 제조메카는 유저일 수도 있다.
본 발명의 목적은, 소거되면 시스템상 치명적인 타격을 입게 되는 실장보드와의 사이의 통신 프로토콜과 같은 프로그램 정보가 불휘발성 메모리로부터 소실하기 어려운 구성의 마이크로컴퓨터를 제공하는데 있다.
본 발명의 다른 목적은, 마이크로컴퓨터의 실장기판이 서포트하는 개별적인 통신 프로토콜에 대해서도 인터페이스의 확립을 보증할 수 있는 마이크로컴퓨터를 제공하는데 있다.
CPU의 폭주에 의해서도 온칩 불휘발성 메모리의 기억정보 소실을 강력히 역제하는 것이 가능한 마이크로컴퓨터를 제공하는데 있다.
본 발명의 상기 및 그 이외의 목적과 신규한 특징은 본 명세서의 기술 및 첨부도면으로부터 명백해질 것이다.
도 1은, 본 발명의 일예에 관한 마이크로컴퓨터의 블록도이다.
도 2는, CPU(2)의 구체예를 나타내는 블록도이다.
도 3은, 플래시메모리의 메모리 매트를 예시하는 설명도이다.
도 4는, 플래시메모리의 메모리 매트마다 각 동작모드에 의한 액세스 태양을 예시하는 설명도이다.
도 5는, CPU가 실행하는 프로그램의 소재와 실행에 의한 작용을 모식적으로 나타내는 설명도이다.
도 6은, 플래시메모리의 소거 및 기록 보호를 위한 논리 구성을 예시하는 논리 회로도이다.
도 7은, CPU의 오퍼레이션이 유저매트와 유저부트매트와의 사이에서 전환될 때의 상태 천이도이다.
도 8은, 프로그램모드 판정처리의 플로우챠트이다.
도 9는, 라이터모드 처리의 플로우챠트이다.
도 10은, 부트모드 처리의 플로우챠트이다.
도 11은, 유저부트모드 처리의 플로우챠트이다.
도 12는, 유저모드 처리의 플로우챠트이다.
도 13은, 도 11의 스텝 S42 및 도 12의 스텝 S54의 기록/소거 처리의 플로우챠트이다.
도 14는, 도 13의 기록처리에 착안한 개략 플로우챠트이다.
도 15는, RAM에의 전송처리(T1)의 상세한 부분을 예시하는 플로우챠트이다.
도 16은, 기록 초기화 처리(T2)의 상세한 부분을 예시하는 플로우챠트이다.
도 17은, 기록실행(T3)의 상세한 부분을 예시하는 플로우챠트이다.
도 18은, 도 16의 기록 초기화시에 내장RAM, 기록 프로그램, 초기화 처리, 레지스터(R4, R5)와의 사이의 데이터 접속관계를 예시하는 설명도이다.
도 19는, 기록시에 RAM, 범용 레지스터(R4, R5), 기록 프로그램과의 사이의 데이터 접속관계를 예시하는 설명도이다.
도 20은, 도 17의 스텝 T35에 대응하는 기록프로그램의 처리 플로우이다.
도 21은, 도 13의 소거처리에 착안한 개략 플로우챠트이다.
도 22는, 소거 초기화 처리(T6)의 상세한 부분을 예시하는 플로우챠트이다.
도 23은, 소거실행(T7)의 상세한 부분을 예시하는 플로우챠트이다.
도 24는, 도 22의 소거 초기화시에 내장RAM, 소거 프로그램, 초기화 처리, 레지스터(R4, R5)와의 사이의 데이터 접속관계를 예시하는 설명도이다.
도 25는, 소거시에 RAM, 범용 레지스터(R4, R5), 소거 프로그램과의 사이의 데이터 접속관계를 예시하는 설명도이다.
도 26은, 도 23의 스텝 T74에 대응하는 소거 프로그램의 처리 플로우이다.
도 27은, 유저 브랜치처에서 CPU가 폭주하여 플래시메모리의 기억정보가 파괴되는 사태를 억제 가능하게 하는 유저 브랜치 처리의 플로우챠트이다.
{부호의 설명)
1마이크로컴퓨터
2CPU
3RAM
4버스 스테이트 컨트롤러
5플래시메모리 모듈
6플래시 컨트롤 로직
9인터럽트 컨트롤러
RES리셋신호
13플래시메모리
14모드신호
15시스템 컨트롤러
20메모리셀 어레이
FMATS제어 레지스터
FKEY제어 레지스터
FCCS제어 레지스터
SCO제어비트
Rmat리페어 및 트리밍 매트
Tmat부트매트
Umat유저부트매트
Mmat유저매트
Pfwe외부단자
[1] 본원에서 개시되는 발명 중 대표적인 것의 개요를 간단히 설명하면 하기와 같다.
즉, 마이크로컴퓨터의 온칩 불휘발성 메모리에는, 유저(마이크로컴퓨터의 사용자)의 제어 프로그램 등을 기록하는 제3 영역(유저매트) 이외에, 제2 영역(유저부트매트)을 준비한다. 이 서브부트매트는, 예컨대 유저 전용의 통신 프로토콜을 기록하는 기억영역(매트)으로 사용하고, 그 매트로부터 프로그램을 실행하는 유저부트모드도 전용모드로서 준비한다. 이 유저부트모드에서는, 유저부트매트는 소거 및 기록이 불가능하게 된다.
상기에 의한 작용효과는 이하와 같다. (1) 유저 전용의 통신 프로토콜을 저장할 수 있는 유저부트매트를 준비했으므로, 마이크로컴퓨터가 구비하는 임의의 인터페이스를 유용할 수 있다. (2) 불휘발성 메모리의 소거 및 기록에 유저 임의의 인터페이스를 채용하는 것이 가능해 짐으로써, 유저 실장보드에 반드시 시리얼 인터페이스를 준비하지 않아도 되게 된다. (3) 유저부트매트와 유저매트를 분리함으로써, 유저매트에 전용통신 프로토콜 처리 프로그램을 기록하지 않아도, 소거 및 기록용에 유저 임의의 기록 인터페이스를 실장할 수 있으므로, 유저매트에 저장하여 사용하는 제어 프로그램의 작성이 용이해진다. 요컨대, 유저 프로그램 모드에서 사용하는 통신제어 프로그램의 소거방지 등에 대하여 특별한 고려를 하지 않아도 된다. (4) 유저부트매트로부터 상승하는 유저부트모드에서는, 하드웨어적으로 유저부트매트를 소거 및 기록 불가능하게 하므로, 폭주 등으로 유저부트매트의 기록정보가 파괴되는 일은 없고, 디버그시에 CPU가 폭주해도, 외부 인터페이스를 제어하는 프로그램의 파괴에는 미치지 않으므로, 실장한 마이크로컴퓨터 칩을 떼어내지 않아도, 온보드에서 유저매트의 재기록을 자유롭게 행할 수 있다.
[2] 본 발명의 더 상세한 제1 상태에 관한 마이크로컴퓨터는, CPU와, 전기적으로 소거 및 기록 가능한 제1 영역(부트매트), 제2 영역(유저부트매트) 및 제3 영역(유저매트)을 갖는 불휘발성 메모리와, 동작모드의 지시수단을 포함한다. 동작모드의 지시수단은, 상기 CPU에 제1 영역의 프로그램을 처리시킴과 동시에 상기 제1 영역을 소거 및 기록 불가능하게 하는 제1 모드(부트모드), 상기 CPU에 제2 영역의 프로그램을 처리시킴과 동시에 제1 영역 및 제2 영역을 소거 및 기록 불가능하게 하는 제2 모드(유저부트모드) 및 상기 CPU에 제3 영역의 프로그램을 처리시킴과 동시에 제1 영역 및 제2 영역을 소거 및 기록 불가능하게 하는 제3 모드(유저모드)를 지시하고, 예컨대 모드신호의 입력회로 등으로 실현된다.
이 태양의 마이크로컴퓨터는, 제2 영역 및 제3 영역에 구체적인 프로그램이 기억되어 있지 않는 상태, 요컨대, 유저가 제2 및 제3 영역에 소망의 프로그램을 저장하는 처리에 이르기 전의 상태도 의미하고 있다. 마이크로컴퓨터가 시스템 보드에 실장될 때는, 상기 제2 영역의 시스템 보드에 고유의 인터페이스를 확립하는 통신 프로토콜 처리 프로그램 등을 저장하고, 제3 영역에 시스템 보드를 제어하는 유저 프로그램이나 튜닝 데이터 등을 저장하여, 유저 시스템의 제어에 이용된다. 온보드 기록을 행하는 경우에는, 유저부트모드와 같은 제2 모드를 지정하고, 상기 CPU에 제2 영역의 통신 프로토콜 처리 프로그램 등을 처리시켜, 시스템 보드에 고유의 인터페이스를 확립시키고, 제3 영역의 유저 프로그램을 버전업하거나, 혹은 튜닝 데이터의 재기록을 행할 수 있다. 따라서, 상기 (1) ~ (4)의 작용효과를 얻을 수 있다.
[3] 본 발명의 더 상세한 제2 태양에 관한 마이크로컴퓨터는, CPU와, 전기적으로 소거 및 기록 가능한 제1 영역(부트매트), 제2 영역(유저부트매트) 및 제3 영역(유저매트)을 갖는 불휘발성 메모리와, 제1 모드, 제2 모드 또는 제3 모드를 선택적으로 지정하는 지시수단을 포함한다. 상기 CPU는, 제1 모드의 지정에 의해 제1 영역의 프로그램을 처리하고, 제2 모드의 지정에 의해 제2 영역의 프로그램을 처리하며, 제3 모드의 지정에 의해 제3 영역의 프로그램을 처리한다. 상기 불휘발성 메모리는, 제1 모드의 지정에 의해 상기 제2 영역 및 제3 영역이 소거 및 기록 가능하게 되고, 또 제1 영역이 소거 및 기록 불가능하게 되며, 제2 모드의 지정에 의해 제3 영역이 소거 및 기록 가능하게 되고, 또 제1 영역 및 제2 영역이 소거 및 기록 불가능 하게 되며, 제3 모드의 지정에 의해 제3 영역이 소거 및 기록 가능하게 되고, 또 제1 영역 및 제2 영역이 소거 및 기록 불가능하게 된다. 이 태양의 마이크로컴퓨터에서도 상기 (1) ~ (4)의 작용효과를 얻을 수 있다.
상기 제1 영역에는 마이크로컴퓨터의 외부와 인터페이스를 확립하기 위한 제1 통신제어 프로그램을 보유시키고 있어 좋다. 상기 제1 영역은 제1 내지 제3의 어떤 동작모드에서도 소거 및 기록 불가능하게 되므로, 마이크로컴퓨터의 제조과정 등으로 EPROM 라이터 등의 기록장치를 이용하여 초기적으로 기록된다. 제1 통신제어 프로그램은 기본적인 조보동기에 의한 시리얼 인터페이스 프로그램이어서 좋다.
상기 제2 영역에는 마이크로컴퓨터의 외부와 인터페이스를 확립하기 위한 제2 통신제어 프로그램을 보유시키고 있어 좋다. 상기 제2 영역은 제1 모드에서 소거 및 기록 가능하므로, 제2 통신제어 프로그램은 유저 전용의 통신 프로토콜, 즉 시스템 보드에 고유의 인터페이스 사양(예컨대 ATAPI)을 만족하는 통신제어 프로그램이어서 좋다.
상기 제1 영역은 제1 내지 제3의 어떤 동작모드에서도 소거 및 기록 불가능하게 되므로, 제1 영역에 상기 불휘발성 메모리를 위한 소거 및 기록제어 프로그램을 보유시키면, 그것이 불필요하게 소실할 우려를 미연에 방지할 수 있다.
마찬가지로, 상기 제1 영역에는, 상기 소거 및 기록제어 프로그램의 전송제어 프로그램을 보유시키고 있어 좋다.
상기 CPU에 의한 전송제어 프로그램의 처리에 의해 상기 소거 및 기록제어 프로그램이 전송되는 RAM을 마이크로컴퓨터에 저장하고 있어 좋다. CPU는 내장 RAM상에서 상기 소거 및 기록제어 프로그램이 실행 가능하게 된다.
CPU의 폭주 등에 의한 불휘발성 메모리의 불필요한 재기록 방지의 관점으로부터, 상기 불휘발성 메모리는, 상기 지시수단에 의한 모드지정과는 별도로, 외부단자로부터 공급되는 기록동작의 지시를, 소거 및 기록동작을 가능하게 하기 위한 필요조건에 더하여도 좋다.
[4] 상기 제2 태양에 관한 마이크로컴퓨터에서의 CPU의 리셋 벡터 어드레스(리셋 해제 후에 참조되는 벡터 어드레스)에 착안하면, 상기 제1 영역, 제2 영역 및 제3 영역의 각각에서의 선두 어드레스를 CPU의 어드레스 공간상 동일 어드레스로 하고, 상기 CPU가 이용하는 선두 어드레스를 제2 영역으로 하는지 제3 영역으로 하는지를 배타적으로 지정하는 제1 레지스터 수단(FMATS)을 CPU의 어드레스 공간에 배치하는 구성을 채용할 수 있다.
이 구성에서 제1 모드의 지정에 의해 제1 영역의 프로그램이 실행되었을 때,제1 영역의 프로그램 자체가 제1 영역에 대한 소거 및 기록을 행하는 처리루틴을 포함하고 있지 않으면, 제1 영역에 대한 소거 및 기록은 행해지지 않는다. 제1 영역에 저장해야 할 프로그램의 개발 및 그 프로그램의 기록을 마이크로컴퓨터의 제조메카로 행하는 것을 상정하면, 제1 영역에 대한 소거 및 기록을 불가능하게 하는 것은 완전이다. 제1 모드의 지정에 의해 제1 영역의 프로그램을 실행한 후, 제1 레지스터 수단의 설정에 따라 제2 영역 또는 제3 영역의 프로그램을 실행 가능한 상태로 천이할 수 있다. 그 후, 제2 영역 또는 제3 영역에 저장한 프로그램만으로 제1 영역의 프로그램을 실행 가능한 상태로 되돌아가는 것은 기본적으로 불가능하며, 가령 되돌아 가는 것을 허용하는 하드웨어를 갖고 있어도 제1 영역의 소거 및 기록은 역시 불가능하다.
상기 CPU의 어드레스 공간에 RAM을 배치하면, CPU는 RAM상에 프로그램을 전송하여 실행하는 것이 가능해진다.
CPU가 RAM상에서 프로그램을 처리하고 있는 것을 조건으로, 상기 제1 레지스터 수단의 설정변경을 허가하면, 제1 내지 제3 영역의 어떤 영역에서 프로그램을 패치하고 있는 상태로부터 다른 영역에서의 프로그램 실행의 천이를 원활화할 수 있다. CPU가 RAM상에서 프로그램을 처리하고 있는 것을 버스제어수단(BSC)이 검출하는 것을 조건으로, 상기 제1 레지스터 수단의 설정변경을 허가하도록 해도 된다.
소거 및 기록제어 프로그램을 RAM에 저장시키는 동작에 허가를 주는 정보가 셋트되는 제2 레지스터 수단(FKEY)을 설치하고, 상기 불휘발성 메모리는, 이 제2 레지스터 수단의 허가정보가 리셋되는 것을, 소거 및 기록동작을 가능하게 하기 위한 필요조건으로 하면 된다. 이것에 의하면, 소거 및 기록제어 프로그램을 RAM에 전송할 필요가 없을 때 가령 CPU가 폭주해도, 제2 레지스터 수단의 리셋상태에 의해 소거 및 기록제어 프로그램이 잘못하여 RAM으로 전송되어, 그것이 불필요하게 실행될 확율을 저감할 수 있다. 또, 소거 및 기록제어 프로그램을 RAM에 전송하고 있을 때 가령, CPU가 폭주해도, 제2 레지스터 수단의 셋트상태는 소거 및 기록동작의 억제 조건으로 되어 있으므로, 이때 소거 및 기록 프로그램이 잘못하여 실행 개시되는 확율을 저감할 수 있다.
[5] 상기 제2 태양에 관한 마이크로컴퓨터에서의 소거 및 기록제어 프로그램에 착안한다. 상기 CPU의 어드레스 공간에 RAM을 배치하고, 상기 제1 영역에 소거 및 기록제어 프로그램을 저장해 두고, 상기 CPU는 제1 모드에 응답하여 상기 소거 및 기록제어 프로그램을 상기 RAM에 전송 제어하고, 전송처의 RAM으로부터 소거 및 기록제어 프로그램을 패치하여 실행하면 된다. 마이크로컴퓨터의 유저는 소거 및 기록제어 프로그램을 개발할 필요는 없다. RAM상에서 소거 및 기록제어 프로그램을 실행하면, 제1 모드에서 제2 영역 및 제3 영역에 대한 소거 및 기록을 원활화할 수 있다.
제1 영역의 소거 및 기록제어 프로그램을 제2 모드에서도 이용 가능하게 하는데는, 예컨대, 상기 제2 모드에서 CPU는, 제3 레지스터 수단(SCO)의 제1 설정치에 응답하여, 상기 제1 영역의 프로그램을 처리하는 상태로 천이하고, 상기 소거 및 기록제어 프로그램을 RAM에 전송 제어하며, 제2 영역의 프로그램을 처리하는 상태로 복귀시키도록 하면 된다.
제1 영역의 소거 및 기록제어 프로그램을 제3 모드에서도 이용 가능하게 하는데는, 예컨대, 상기 제3 모드에서 CPU는, 제3 레지스터 수단(SCO)의 제1 설정치에 응답하여, 상기 제1 영역의 프로그램을 처리하는 상태로 천이하고, 상기 소거 및 기록제어 프로그램을 RAM에 전송 제어하여, 제3 영역의 프로그램을 처리하는 상태로 복귀시키도록 하면 된다.
소거 및 기록제어 프로그램을 RAM에 저장시키는 동작에 허가를 주는 정보로서 제2 설정치가 셋트되는 제2 레지스터 수단(FKEY)을 설치하고, 상기 불휘발성 메모리는, 이 제2 레지스터 수단의 허가정보가 제3 설정치로 리셋되는 것을, 소거 및 기록동작을 가능하게 하기 위한 필요조건으로 하고, 상기 제2 레지스터 수단에 제2 설정치가 셋트되는 상태를 제3 레지스터 수단에 제1 설정치를 셋트 가능하게 하기 위한 필요조건으로서 좋다. 요컨대, 유저가 소거 및 기록을 실시하고 싶지 않은 부분에서, 프로그램이 폭주하여, 소거 및 기록 제어프로그램이 전송되면, 유저 프로그램을 파괴할 가능성이 높아진다. 이것을 회피하기 위해서는, 유저는 제3 레지스터 수단에 제1 설정치를 셋트하기 전에, 제2 레지스터 수단에 제2 설정치를 저장한다. 이 제2 설정치를 저장하고 있지 않을 때는, 제3 레지스터 수단을 제1 설정치로 셋트하는 것은 불가능하다. 제2 레지스터 수단에 제2 설정치가 저장되어 있을 때는, 제3 레지스터 수단을 제1 설정치로 셋트하는 것이 가능해지며, 이것에 의해 프로그램의 전송이 가능해진다.
소거 및 기록제어 프로그램이 전송된 후에 프로그램이 폭주한 경우를 고려하여 제2 레지스터를 사용한다. 기본적으로는, 그밖의 조건에 의해, CPU가 폭주해도,소거 및 기록이 실시되지 않도록 되어 있지만, 신뢰성을 더 높이기 위해, 유저는, 소거 및 기록을 실시하기 전에, 제2 레지스터 수단에 제3 설정치를 셋트한다. 이 제3 설정치를 저장하고 있지 않을 때는, 다른 소거 및 기록조건이 잘못하여 인에이블로 되어 있었다고 해도, 소거 및 기록동작은 불가능한 상태로 된다.
[6] 불휘발성 메모리 내, 유저에게 개방되는 기억영역에 착안한다. 마이크로컴퓨터는, CPU와, 전기적으로 소거 및 기록 가능한 불휘발성 메모리를 포함하고, 불휘발성 메모리는 제1 메모리 매트(유저부트매트)와 제2 메모리 매트(유저매트)를 구비하며, 제1 메모리 매트와 제2 메모리 매트는, 레지스터에서 배타적으로 선택 가능하게 되어 있어, 제1 메모리 매트가 선택된 경우에는 제1 메모리 매트에 대한 소거 및 기록동작이 억제되고, 제2 메모리 매트가 선택된 경우에는 RAM상에서의 프로그램 실행 상태로 천이하는 것을 해제조건으로 하여 소거 및 기록동작이 억제되는 것이다. 이것에 의해, 프로그램을 현재 실행하고 있는 메모리 매트가 소거 및 기록됨으로써 문제의 발생을 미연에 방지할 수 있다.
[7] 불휘발성 메모리의 기억영역 전체에 착안한다. 마이크로컴퓨터는, CPU와, 전기적으로 소거 및 기록 가능한 불휘발성 메모리를 가지며, 상기 불휘발성 메모리는, 외부와의 인터페이스를 확립하기 위해 CPU에 의해 처리되는 통신제어 프로그램(시리얼 통신 PGM)을 보유하는 제1 영역(부트 매트)과, 상기 CPU에 의한 통신제어 프로그램의 처리에 의해 외부와의 인터페이스가 확립되어 소거 및 기록 가능해지는 제2 영역(유저부트매트)과, 상기 CPU에 의한 통신제어 프로그램의 처리에 의해 외부와의 인터페이스가 확립되어 소거 및 기록 가능하게 되고, 또 CPU에 의한제2 영역의 프로그램의 처리에 의해 소거 및 기록 가능하게 되는 제3 영역(유저매트)을 갖는다.
[8] 또다른 관점에 의한 마이크로컴퓨터는, 제1 인터페이스(ATAPI, SCSI, HCAN)를 갖는 실장기판에 실장되어야 하는 마이크로컴퓨터로서, 중앙처리장치와, 상기 제1 인터페이스가 다른 제2 인터페이스(SCI)를 이용한 통신 프로토콜(UART)을 확립하기 위한 제1 통신처리 프로그램이 저장되는 제1 기억영역(부트 매트)과, 상기 제1 인터페이스를 이용한 통신 프로토콜을 확립하기 위한 제2 통신처리 프로그램이 저장되는 제2 기억영역(유저부트매트)과, 소정의 제1 동작모드에서 상기 중앙처리장치에 의해 실행되는 제어 프로그램이 저장되는 제3 기억영역(유저매트)을 갖는 불휘발성 매모리를 갖는다.
상기 제1 기억영역은, 다시, 기록제어 프로그램이 저장되고, 이때, 상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 기록제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 기록모드에 의해, 상기 제2 기억영역에 기록된다.
또, 상기 제3 기억영역에 저장되는 상기 제어프로그램은, 상기 제1 기록모드, 또는, 상기 제1 기억영역에 저장된 기록제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 기록모드의 어떤 것에 의해, 상기 제3 기억영역에 기록된다.
상기 제1 기억영역은, 다시, 소거제어 프로그램이 저장되고, 이때, 상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 소거제어 프로그램 및상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 소거모드에 의해, 상기 제2 기억영역으로부터 소거 가능하게 된다.
상기 제3 기억영역에 저장되는 상기 제어 프로그램은, 상기 제1 소거모드, 또는, 상기 제1 기억영역에 저장된 소거제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 소거모드의 어떤 것에 의해, 상기 제3 기억영역으로부터 소거 가능하다.
또한 상기와는 다른 관점에 의한 마이크로컴퓨터는, 중앙처리장치와, 제1 인터페이스(SCSI)을 이용한 통신 프로토콜(UART)을 확립하기 위한 제1 통신처리 프로그램과 기록제어 프로그램이 저장되는 제1 기억영역과, 상기 제1 인터페이스와 다른 상기 제2 인터페이스(ATAPI, SCSI, HCAN)를 이용한 통신 프로토콜을 확립하기 위한 제2 통신처리 프로그램이 저장되는 제2 기억영역과, 소정의 제1 동작모드에서 상기 중앙처리장치에 의해 실행되는 제어 프로그램이 저장되는 제3 기억영역을 갖는 불휘발성 메모리를 갖는다.
[발명의 실시형태]
<마이크로컴퓨터>
도 1에는 본 발명의 일예에 관한 처리장치로서의 마이크로컴퓨터가 나타나 있다. 동도에 나타나는 마이크로컴퓨터(1)는, 특히 제한되지 않지만, 단결정 실리콘과 같은 1개의 반도체 기판(반도체 칩)에 CMOS 집적회로 제조기술에 의해 형성된다.
마이크로컴퓨터(1)는, 연산제어장치로서의 중앙처리장치(CPU)(2), 불휘발성메모리로서의 RAM(3), 버스 스테이트 컨트롤러(BSC)(4), 플래시메모리(13) 및 그밖의 내장회로를 총징하는 그 이외의 모듈(7)을 갖는다. 상기 플래시메모리(13)는 전기적으로 재기록 가능한 불휘발성 메모리의 일예이며, 플래시메모리 모듈(5)과 플래시 컨트롤 모듈(6)로 구성된다. 상기 그밖의 모듈(7)로서 마스크ROM(8), 인터럽트 컨트롤러(INTC)(9), 타이머(TMR)(10), 입출력포트(I/O)(11), 시리얼 인터페이스 컨트롤러(SCI)(12), 그밖의 인터페이스 컨트롤러(16), DMAC(Direct Memory Access Controller)(17) 및 시스템 컨트롤러(15) 등을 갖는다. 그들 회로모듈은 버스(IAB, IDB, PAB, PDB, CONT)를 통하여 인터페이스된다.
상기 버스(IAB, IDB)는 정보전송속도가 비교적 빠른 내부 어드레스버스, 내부 데이터버스이다. 상기 버스(PAB, PDB)는 정보전송 속도가 비교적 느린 주변 어드레스버스, 주변 데이터버스이다. 버스(CONT)는, 버스커맨드, 버스액세스 제어신호 및 타이밍 제어신호 등을 전달하는 제어신호선을 총칭한다. 내부버스(IDB, IAB)와 주변버스(PDB, PAB)와의 동작속도의 상이 혹은 액세스 대상에 고유의 액세스 형태의 상이에 대하여 상기 BSC4가 액세스 동작 타이밍 등을 최적 제어함과 동시에, 상기 BSC4는 액세스 어드레스에 따른 칩 선택 혹은 모듈선택제어 등도 행한다.
상기 시스템 컨트롤러(15)에는 외부로부터 복수비트의 모드신호(14) 및 리셋신호(RES) 등이 입력된다. 마이크로컴퓨터(1)의 파워온 리셋 혹은 하드웨어 리셋에 의해 리셋신호(RES)가 로우레벨이 되면, 그 로우레벨 기간에 마이크로컴퓨터(1)의 내부에서 리셋동작이 행해진다. 리셋신호(RES)에 의한 리셋의 해제 후, 복수비트의 모드신호(14)의 상태에 따라, 마이크로컴퓨터(1)의 동작모드가 결정된다. CPU(2)는, 그 동작모드에 따른 프로그램 영역의 리셋벡터를 리드하고, 그 어드레스의 명령을 패치하며, 패치한 명령을 해독하여, 명령실행을 개시한다.
RAM(3)은 CPU(2)의 작업영역 혹은 데이터 또는 프로그램의 일시기억영역으로서도 이용된다. 상기 마스크ROM(8)은 데이터 데이블 등의 기억영역이 된다. 플래시메모리 모듈(5)은 CPU(2)의 프로그램이나 데이터의 기억영역이 된다.
인터럽트 컨트롤러(10)는 마이크로컴퓨터(1)의 외부에서 공급되는 인터럽트 요구 또는 마이크로컴퓨터(1) 내부의 상태에 따라 내장회로모듈로부터 발생되는 인터럽트 요구가 입력되고, 인터럽트 우선레벨 및 인터럽트 마스크 등에 따라, 경합하는 인터럽트 요구의 조정과 인터럽트 우선레벨에 의한 인터럽트 마스크처리를 행한다. 인터럽트 컨트롤러(10)는 인터럽트 요구의 조정과 인터럽트 마스크처리와의 결과에 따라, CPU(2)에 인터럽트 신호(IRQ)를 공급함과 동시에, 접수된 인터럽트 요구의 인터럽트 요인에 따른 인터럽트 벡터 어드레스를 CPU(2)에 공급한다. CPU(2)는 인터럽트 벡터 어드레스에 의해 지시되는 프로그램에 처리를 분기한다. 인터럽트 컨트롤러(9)는 CPU(2)로부터 인터럽트 마스크 데이터(IMSK)가 공급되며, 이 인터럽트 마스크 데이터(IMSK)에서 나타나는 인터럽트 우선레벨 보다도 낮은 인터럽트 요구의 접수를 마스크한다.
I/O(11)는 외부 어드레스버스 및 외부 데이터버스로의 접속, SCI(12)의 외부 인터페이스, TMR(10)의 외부 이벤트신호 입력, 그 인터페이스 컨트롤러(16)의 외부 인터페이스 등에 이용된다. 인터페이스 컨트롤러(16)는 예컨대, ATAPI 또는 SCSI 등의 인터페이스에 적용 가능하다.
도 2에는 상기 CPU(2)의 구체예가 나타난다. CPU(2)는, 특히 제한되지 않지만, 쉬프터(SFT) 및 산술논리 연산기(ALU) 등의 연산기와, 32비트의 범용 레지스터(R0 ~ R31), 프로그램 카운터(PC), 스테이터스 레지스터(SR) 및 템포러리 레지스터(TR) 등의 레지스터군, 그리고 리드 데이터버퍼(RDB), 라이트 데이터버퍼(WDB) 및 어드레스 버퍼(AB) 등의 버퍼회로를 실행부에 가지며, 그것들은 제1 내지 제3 내부버스(IB1 ~ IB3) 중 소정의 내부버스에 접속된다. CPU(2)는 명령제어부로서, 명령 레지스터(IR), 명령 디코더(IDEC), 명령 시퀀스 로직(INTL)을 갖는다.
상기 리드 데이터버퍼(RDB)는 예컨대 32비트의 데이터버스(IDB)로부터 입력된 데이터를 내부버스(IB2)에 공급한다. 스테이터스 레지스터(SR)는 인터럽트 마스크 데이터(IMSK)의 필드를 갖는다. 인터럽트 마스크 데이터(IMSK)는 인터럽트 컨트롤러(9)에 공급된다. 인터럽트 컨트롤러(9)는 인터럽트 마스크 데이터(IMSK)에서 나타나는 인터럽트 우선레벨 보다도 낮은 인터럽트 요구를 마스크한다.
상기 프로그램 카운터(PC)는 다음에 실행해야 할 명령 어드레스를 보유하고, 그 명령 어드레스가 어드레스버퍼(AB)로부터 내부 어드레스버스(IAB)에 출력되면, RAM(3) 등의 대응 어드레스로부터 리드된 명령이 내부 데이터버스(IDB)를 통하여 명령 레지스터(IR)에 패치된다. 명령 디코더(IDEC)는 명령 레지스터(IR)의 명령을 해독하여, CPU(2) 내부의 제어신호를 생성하고, 상기 실행부에 의한 연산처리를 제어한다. 명령 시퀀스 로직(INTL)은 인터럽트 신호(IRQ) 등에 응답하여 명령 실행순서를 변경하는 제어를 행한다.
도 1에서 플래시메모리 모듈(5)은, 메모리셀 어레이(20), X디코더 드라이버(XDEㆍDV)(21), 센스앰프 어레이(SAA)(22), Y스위치 어레이(YSW)(23), Y디코더(YDE)(24), 입출력회로(IFB)(25), 전원회로(VGN)(26) 및 타이밍 제너레이터(TGN)(27)를 갖는다. 메모리셀 어레이(20)는 매트릭스 배치된 플래시메모리셀(도시하지 않음)을 갖는다. 플래시메모리셀은, 특히 제한되지 않지만, 반도체기판 혹은 웰영역에 소스, 드레인을 가지며, 채널의 상방에 각각 절연막을 통하여 플로팅게이트 및 컨트롤게이트가 형성된 스택구조를 가지며, 소스를 소스선에, 드레인을 비트선에, 컨트롤게이트를 워드선에 접속하여 구성된다.
플래시메모리셀은 문턱치 전압이 프로그램 가능하게 되며, 프로그램된 문턱치 전압에 따라 정보를 유지한다. 예컨대, 1개의 플래시메모리셀이 1비트의 정보를 유지할 경우에, 상대적으로 높은 문턱치 전압상태를 기록상태, 상대적으로 낮은 문턱치전압 상태를 소거상태라 칭한다. 기록상태를 얻기 위한 기록동작은, 특히 제한되지 않지만, 컨트롤게이트에 10V, 드레인에 예컨대 5V, 소스 및 기판에 예컨대 0V를 인가하여, 드레인ㆍ소스 사이에 전류를 흐르게 하고, 이것에 의해 핫일렉트론 주입이 발생하고, 플로팅게이트에 전자가 축적되어, 메모리셀의 문턱치전압이 높아진다. 상기 소거상태를 얻기 위한 소거동작은, 특히 제한되지 않지만, 컨트롤게이트에 10V, 소스 및 기판에 예컨대 -10V를 인가하고, 다시 드레인을 예컨대 개방(플로팅)으로 하여, 플로팅게이트에 축적된 전자를 기판에 방출시켜, 이것에 의해 메모리셀의 문턱치전압이 낮아진다.
상기 입출력회로(25)는 버스(IAB, IDB, PAB, PDB, CONT)와의 사이에서 어드레스, 제어신호 및 커맨드를 입력함과 동시에 데이터의 입출력을 행한다. 입출력회로(25)에 입력된 어드레스 신호는 XDECㆍDV21 및 YDE24에 입력되어 각각 디코드된다. XDECㆍDV21은 그 디코드 결과에 따라 워드선을 선택한다. YDE24는 그 디코드 결과에 따라 YSW23를 통하여 비트선을 선택한다. 워드선 선택 및 비트선 선택에 의해 플래시메모리셀이 선택된다. 판독동작에서는, 상기 선택된 플래시메모리셀의 판독데이터는, SAA22로 검출되며, 입출력 회로(25)를 경유하여 버스(PDB 또는 IDB)로 출력된다. 기록동작에서는, 버스(PDB 또는 IDB)로부터 입출력회로(25)에 공급되는 기록데이터가 입출력회로(25) 내의 기록래치회로로 래치되고, 워드선 선택된 메모리셀에 대하여, 래치데이터에 따라 기록ㆍ기록방지가 제어된다. 기록처리 전에는 미리 블록 단위로 플래시메모리셀에 대한 소거가 행해진다.
상기 전원회로(26)는 클램프회로나 챠지펌프회로 등을 가지며, 플래시메모리의 기록ㆍ소거ㆍ판독 등의 동작으로 사용하는 다양한 전압을 공급한다. 상기 타이밍 제너레이터(27)는, 제어버스(CONT)를 통하여 공급되는 스트로브 신호 및 데이터 버스(PDB, IDB)를 통하여 입력되는 커맨드에 의거하여 플래시메모리의 외부와의 인터페이스 제어를 행한다.
도 1에서 상기 플래시 컨트롤 모듈(6)은, 플래시메모리 모듈(5)에 대한 소거 및 기록이나 그것을 위한 프로그램 전송관계의 각종 제어 레지스터(30)와 제어논리회로(29)를 갖는다. 도 1에는 제어 레지스터로서 FCCS, FKEY, FMATS, 라이터 모드 관계 레지스터, 기록 소거 관계 레지스터가 대표적으로 나타나 있다. 플래시메모리 모듈(5)에 대한 소거 및 기록동작의 제어에는 RAM(3)의 기억영역이나 CPU(2)의 범용 레지스터도 이용한다.
<플래시메모리의 메모리매트>
도 3에는 플래시메모리의 메모리매트가 예시된다. 플래시메모리 모듈(5)의 메모리셀 어레이(20)는, 전기적으로 소거 및 기록 가능한 부트매트(제1 영역)(Tmat), 유저부트매트(제2 영역)(Umat), 유저매트(제3 영역)(Mmat) 및 리페어 및 트리밍 매트(Rmat)를 갖는다. 상기 부트매트(Tmat), 유저부트매트(Umat) 및 유저매트(Mmat)는 각각 CPU(2)의 어드레스 공간에서의 선두 어드레스인 0번지(H'0000000)를 스타트 어드레스로서 메모리 공간이 할당된다. 요컨대, 상기 부트매트(Tmat), 유저부트매트(Umat) 및 유저매트(Mmat)는 어드레스 공간이 오버랩되어, 상기 어드레스 디코더(YDEC, XDECㆍDV)는 어느 매트를 이용하는가의 지시에 응답하여 어드레스 디코드 논리가 선택되게 된다. 어느 매트를 이용하는가는 모드신호(14)에서 지시되는 마이크로컴퓨터의 동작모드 등에 의해 결정된다. 리페어 및 트리밍 매트(Rmat)는 메모리셀 어레이에서의 결함구제 어드레스나 회로의 특성에 따른 맞춰넣기를 위한 트리밍 회로의 설정 데이터가 저장된다.
<동작모드>
플래시메모리는, 프로세스 세대가 진행함에 따라, 기록관계, 소거관계의 프로그램이 복잡화되어 간다. 이러한 사정하에서, 소거 및 기록 제어프로그램을 유저가 작성하지 않으면 안된다고 하면, 유저의 부담이 커진다. 마이크로컴퓨터(1)에서는, 유저에 소거 및 기록 프로그램을 작성하는 부담을 줄여, 간단한 수속으로 소거 및 기록을 어느 모드에서든 실시할 수 있도록 고려되어 있다. 특히,플래시메모리(13)를 소거 및 기록하기 위한 고전압 펄스 인가시간 등의 파라메터를 튜닝하거나 처리플로우를 변경할 때에, 하드웨어에 의존하지 않고 소프트웨어를 사용하여 실시할 수 있어 유저에게 부담을 지우지 않아, 간단한 수속으로 소거 및 기록을 실시할 수 있는 동작모드를 준비하고 있다. 그 내용을 간단히 설명하면, 부트매트(Tmat)가 유지하고 있는 소거 및 기록 제어프로그램을 어느 동작모드에서도 참조할 수 있도록 하고, 게다가, 부트매트(Tmat)의 프로그램에는, 보안에 관한 부분의 기술도 있으므로, 문제없는 범위에서 유저가 그 프로그램을 사용할 수 있게 되어 있다.
마이크로컴퓨터(1)의 동작모드를 상세히 기술한다. 플래시메모리(13)에 대한 소거 및 기록을 착안하면, 마이크로컴퓨터(1)는, 라이터모드, 부트모드(제1 모드), 유저부트모드(제2 모드) 및 유저모드(제3 모드)를 갖는다. 특히 제한되지 않지만, 상기 모드신호(14)는 2비트이며, 시스템 컨트롤러(15)는, 그 논리치의 조합을 해독하여, 지시된 동작모드가, 상기 라이터모드, 부트모드, 유저부트모드 또는 유저모드중 어떤 것인가를 판정한다.
상기 라이터모드는 EPROM 라이터와 같은 기록장치를 이용하여 플래시메모리(13)의 소거 및 기록을 실시 가능하게 하는 동작모드이다. 라이터모드가 지정되면, 리셋처리 후, CPU(2)는 부트매트(Tmat)의 선두번지로부터 벡터패치를 행하여 프로그램의 실행을 개시한다(부트매트로부터 동기). 그리고, 라이터 모드에 필요한 처리로서, 커맨드 판정 프로그램이나 소거 및 기록 관계의 프로그램을 모두 RAM(3)으로 전송한다. 그 후에, CPU(2)는, RAM(3)에 전송된 프로그램의 실행으로이행하고, 플래시메모리(13)는 EPROM 라이터에 의해 소거 및 기록 가능하게 된다. 이 라이터모드는, 오프보드(마이크로컴퓨터가 시스템보드에 실장되어 있지 않은 상태)에서 상기 유저매트(Mmat) 및 유저부트매트(Umat)에 임의의 유저 제어 프로그램 등을 저장하는데 적합하다.
상기 부트모드는, 매트(Tmat, Umat,Mmat) 모두를 소거하고, SCI(12)를 사용하여 기록을 실시 가능하게 하는 동작모드이다. 이 부트모드는 상기 CPU(2)에 부트매트(Tmat)의 프로그램을 처리시킴과 동시에 해당 부트매트(Tmat)를 소거 및 기록 불가능하게 한다. 구체적으로는, 부트모드가 지정되면, 리셋처리 후, CPU(2)는 부트매트(Tmat)의 선두번지로부터 벡터패치를 행하여 프로그램의 실행을 개시한다. 그리고, 부트모드에 필요한 처리로서, 부트매트(Tmat) 내의 소거 및 기록관계의 프로그램 및 커맨드 판정 프로그램을 RAM(3)으로 전송한다. 전송종료와 그 이외의 처리종료 후에, CPU(2)는 RAM(3)상의 프로그램 실행으로 이동한다. RAM(3)상의 프로그램 실행에서 매트(Umat, Mmat) 모두를 소거한 후에, 커맨트 판정 프로그램을 기동하고, SCI(12)를 이용하여 기록이 실시 가능해진다. 이 부트모드는, 시리얼 통신 인터페이스를 구비한 온보드로, 상기 유저매트(Mmat) 및 유저부트매트(Umat)로 임의의 유저 제어 프로그램 등을 저장하는데 적합하다.
상기 유저부트모드는, 상기 CPU(2)에 유저부트매트(Umat)의 프로그램을 처리시켜 유저 임의로 인터페이스를 사용한 소거 및 기록을 실시 가능하게 하고, 부트매트(Tmat) 및 유저부트매트(Umat)에 대해서는 소거 및 기록을 불가능하게 하는 동작모드이다. 구체적으로는, 유저부트모드는, 부트매트(Tmat)로부터 기동하여,CPU(2)가 부트매트(Tmat) 내의 프로그램을 실행함과 동시에 RAM(3)에 유저부트매트 전환 프로그램의 전송을 행한다. 그 후에, CPU(2)는 RAM(3)상의 프로그램 실행으로 이동한다. CPU(2)에 의한 RAM(3)상의 프로그램 실행으로, CPU(2)의 어드레스 공간에서 보이는 플래시메모리(13)상의 매트를 디폴트의 유저매트(Mmat)로부터 유저부트매트(Umat)로 전환하여, 유저 부터매트(Umat)의 벡터 어드레스를 판독한 후에 그 영역으로 점프한다. 보안이 걸려 있는 경우는, 유저매트(Mmat)의 소거를 실시한 후에, 점프를 실시한다. 기록을 실시할 때는, 후술하는 SCO 모드를 사용하여 필요한 소거 및 기록 프로그램을 부트매트(Tmat)로부터 RAM(3)에 다운로드한 후, 그 소거 및 기록제어 프로그램을 이용하여, 유저매트(Mmat)에 대한 기록을 행한다. 요컨대, 유저부트매트(Umat)에 유저 전용의 인터페이스 프로그램을 준비하여, 유저의 실장보드에 맞춘 기록데이터 전송이 실현 가능해진다. 이 유저부트모드는, 유저의 시스템보드가 구비되어 있는 온보드 인터페이스를 사용하여, 유저의 제어 프로그램 등을 유저매트(Mmat)에 기록하는데 적합하다. 이 동작에 있어서 유저부트매트(Umat)의 소거는 방지된다. 따라서, 유저의 시스템보드가 시리얼 인터페이스를 구비하지 않고, 온보드로 부트모드를 이용할 수 없어도, 이것 대신에, 유저의 시스템보드가 구비되어 있는 온보드 인터페이스를 통하여 기록을 보증할 수 있다.
상기 유저모드는 유저매트(Mmat)가 보유하는 프로그램을 이용하여 소거 및 기록을 실시 가능하게 하는 동작모드이며, 부트매트(Tmat) 및 유저부트매트(Umat)의 소거 및 기록에 대해서는 불가능으로 한다. 상세하게는, CPU(2)를 유저매트(Mmat)로부터 기동하여, 유저매트(Mmat)상의 프로그램이 실행된다. 특히,유저가 필요할 때에, 후술하는 SCO 비트를 인에이블로 하면 부트매트(Tmat)와 유저매트(Mmat)가 자동적으로 전환하고, 부트매트(Tmat)의 어떤 번지로부터 프로그램이 스타트하고, 부트매트(Tmat)상의 소거 및 기록 제어프로그램이 RAM(3)에 전송되며, 프로그램의 전송이 종료하면 유저매트(Mamt)와 부트매트(Tmat)가 자동적으로 전환되어, 유저의 처리로 복귀하고, 유저의 프로그램에서 상기 소거 및 기록 제어프로그램이 이용되어, 유저매트(Mmat)에 대한 소거 및 기록이 가능해진다. 요컨대, 유저 프로그램 모드에서는, 후술하는 SCO모드를 사용하여 부트매트(Tmat)상의 소거 및 기록제어 프로그램을 RAM(3)상에 전송하여 그 프로그램을 이용 가능하게 하고 있다. 이 유저모드는, 온보드이며 유저 제어 프로그램 실행 중에 유저매트(Mmat)상의 파라메터 등을 재기록하는데 적합하다.
도 4의 (A), (B)에는 각 매트의 각 동작모드에 의한 액세스 태양이 나타난다. 동도에 나타나는 액세스 태양은 상기 동작모드에서 설명한 액세스 태양을 정리한 것이다. 동도로부터도 명백한 바와 같이, 리페어 및 트리밍 매트(Rmat)와 부트매트(Tmat)는 어떤 동작모드에서도 소거 및 기록 불가능하게 되며, 유저부트매트(Umat)는 유저 제어프로그램이 실행 가능하게 되는 유저부트모드 및 유저모드(유저 프로그램 모드)에서 소거 및 기록 불가능하게 된다. 이 유저부트모드는 유저의 시스템 보드가 구비되어 있는 온보드 인터페이스를 사용하여, 유저의 제어 프로그램 등을 유저매트(Mmat)에 기록하는데 적합하다. 이 동작에서 유저부트매트(Umat)의 소거는 방지된다. 따라서, 유저의 시스템 보드가 시리얼 인터페이스를 구비하지 않고, 온보드에서 부트모드를 이용할 수 없어도, 이것 대신에, 유저의시스템보드가 구비되어 있는 온보드 인터페이스를 통하여 기록을 보증할 수 있다. 또한, 도 4에서 액세스란 리드 액세스를 의미하고, 기호 △는 부트매트에 저장된 프로그램에 따라 리드 액세스 가능하다는 것을 의미하고, 유저 제어 프로그램에 따라 임의로 리드 액세스할 수 있는 것은 의미하지 않는다.
도 5에는 CPU가 실행하는 프로그램의 소재와 실행에 의한 작용을 모식적으로 나타낸다. 도 5에서는 CPU(2)의 도시는 생략되어 있고, CN1은 부트매트(Tmat)로부터 RAM(3)에 전송된 소거 및 기록 제어프로그램 등을 CPU(2)가 해독한 결과의 제어신호군을 가상적으로 나타낸다. CN2는 부트매트(Tmat)로부터 RAM(3)로 전송된 시리얼 인터페이스 제어 프로그램을 CPU(2)가 해독한 결과의 제어신호군을 가상적으로 나타낸다. CN3은 유저부트매트(Umat)의 유저 인터페이스 제어 프로그램을 CPU(2)가 해독한 결과의 제어신호군을 가상적으로 나타낸다. CN4는 유저매트(Mmat)의 유저 인터페이스 제어 프로그램을 CPU(2)가 해독한 결과의 제어신호군을 가상적으로 나타낸다. 제어신호(CN3, CN4)는 유저부트매트(Umat), 유저매트(Mmat)로부터 직접 패치한 프로그램의 해독결과와 같이 도시되어 있지만, 일단 RAM(3)으로 전송되어, RAM(3)으로부터 패치한 프로그램의 해독결과이면 된다. Sig1 ~Sig4는 시스템 컨트롤러(15)에 의한 리셋 해제 후의 모드신호(14)의 해독 결과를 의미하고, Sig1은 부트모드, Sig2는 유저부트모드, Sig3는 유저모드, Sig4는 라이트 모드를 의미한다. 이들 신호 Sig1 ~ Sig4는 실제로는 CPU(2)에도 공급되지만 여기서는 그 상태의 도시를 생략하고 있다.
모드신호(14)로 부트모드가 지시되면, 신호 Sig1에 응답하여 플래시 컨트롤모듈(6)에 의해 부트매트(Tmat)의 소거 및 기록제어 프로그램 및 시리얼 통신제어 프로그램 등이 RAM(3)으로 전송된다(경로 P1). CPU(2)에 의한 그 시리얼 통신제어 프로그램의 해독결과(CN2)에 따라 호스트장치(HST1)에 온보드의 시리얼 인터페이스로부터 기록데이터가 RAM(3)에 삽입되고(경로 P2), CPU(2)에 의한 소거 및 기록 제어프로그램의 해독결과(CN1)에 따라 플래시메모리(13)가 소거되며, RAM(3)상의 기록 데이터를 이용하여 유저부트매트(Umat) 및 유저매트(Mmat)에 대하여 유저 제어프로그램의 기록이 행해진다(경로 P3, P4).
모드신호(14)로 유저부트모드가 지시되면, 신호 Sig2에 응답하여 플래시 컨트롤모듈(6)에 의해 부트매트(Tmat)로부터 매트 전환 제어프로그램 등이 RAM(3)에 전송되고(경로 P1), 유저부트매트(Umat)로 전환되며, 유저부트매트(Umat)의 선두벡터를 패치하여 실행한다. 기록을 실시할 때는, 소거 및 기록 프로그램을 부트매트(Tmat)로부터 RAM(3)에 다운로드한다. 유저부트매트(Umat)가 보유하는 유저 인터페이스 제어 프로그램의 해독결과(CN3)에 따라 호스트 장치(HST2)에 온보드의 유저 인터페이스로부터 기록 데이터가 RAM(3)에 삽입되고(경로 P5), CPU(2)에 의한 소거 및 기록 제어프로그램의 해독결과(CN1)에 따라 플래시메모리(13)가 소거되고, RAM(3)상의 기록 데이터를 이용하여 유저매트(Mmat)에 대하여 유저제어 프로그램이나 유저 데이터의 기록이 행해진다(경로 P3, P4). 유저 인터페이스는 예컨대 그 이외에 인터페이스 컨트롤러(16)에 의해 실현되는 ATAPI용 인터페이스 등이 된다. 또한, 유저부트매트(Umat)에 저장되는 유저 인터페이스 제어 프로그램은 부트매트(Tmat)에 저장된 것과 유사 혹은 다른 시리얼 인터페이스 제어 프로그램이어도된다.
모드신호(14)로 유저모드가 지시되면, 신호 Sig3에 의해 그것이 플래시 컨트롤모듈(6)로 전송되고, 기록을 실시할 때는, 소거 및 기록 프로그램을 부트매트(Tmat)로부터 RAM(3)에 다운로드한다. 유저매트(Mmat)가 보유하는 유저 인터페이스 제어 프로그램의 해독결과(CN4)에 따라 호스트 장치(HST2)에 온보드의 유저 인터페이스로부터 기록 데이터가 RAM(3)에 삽입되고(경로 P5), CPU(2)에 의한 소거 및 기록제어 프로그램의 해독결과(CN1)에 따라 플래시메모리(13)가 소거되며, RAM(3)상의 기록 데이터를 이용하여 유저매트(Mmat)에 대하여 유저 제어프로그램이나 유저 데이터의 기록이 행해진다(경로 P3, P4). 또한, 유저매트(Mmat)에 저장되는 유저 인터페이스 제어 프로그램은 부트매트(Tmat)에 저장된 것과 유사 혹은 다른 시리얼 인터페이스 제어 프로그램이어도 된다.
특히 도시하지 않지만, 마이크로컴퓨터(1)의 비교예로서, 유저부트매트(Umat) 및 유저부트모드를 구비하고 있지 않은 마이크로컴퓨터를 상정한다. 이 경우, 유저부트매트(Umat)에 저장한 유저 인터페이스 프로그램을 유저매트(Mmat)에 저장해 두면, 상기 마이크로컴퓨터(1)와 같도록, 호스트장치(HST2)의 온보드의 유저 인터페이스를 통하여 프로그램이나 데이터를 유저매트(Mmat)에 기록 또는 재기록을 행할 수 있다. 단, 마이크로컴퓨터(1)도 그렇지만, 유저매트(Mmat)에 대해서는 자유로운 재기록이 허용되는 관계상, 유저매트(Mmat)에 저장된 유저인터페이스 프로그램은 소거될 우려가 있다. 소거되었을 때, 호스트장치(HST2)가 부트모드로 이용 가능한 시리얼 인터페이스를 온보드로 구비하고 있지 않으면, 그 비교예에 관한 마이크로컴퓨터는 가장 빠른 호스트장치(HST2)와는 온보드로 정보를 입출력할 수 없게 된다.
상기 동작모드를 갖는 마이크로컴퓨터(1)에 의하면, 이하의 작용효과를 얻을 수 있다. (1) 유저전용의 통신 프로토콜을 저장 가능한 유저부트매트(Umat)를 준비했으므로, 마이크로컴퓨터(1)가 구비하는 임의의 인터페이스를 플래시메모리(13)의 소거 및 기록에 유용할 수 있다. (2) 플래시메모리(13)의 소거 및 기록에 유저 임의의 인터페이스를 채용하는 것이 가능해짐으로써, 호스트장치(HST2)에 반드시 시리얼 인터페이스를 준비하지 않아도 된다. (3) 유저부트매트(Umat)와 유저매트(Mmat)를 분리함으로써, 유저매트(Mmat)에 전용 통신 프로토콜을 기록하지 않아도, 소거 및 기록용에 유저 임의의 기록 인터페이스를 실현할 수 있으므로, 유저매트(Mmat)에 저장하여 사용하는 제어 프로그램의 작성이 용이해진다. 요컨대, 유저 프로그램모드에서 사용하는 통신제어 프로그램의 소거방지 등에 대하여 특별한 고려를 하지 않아도 된다. (4) 유저부트매트(Umat)로부터 상승하는 유저부트모드에서는, 하드웨어적으로 유저부트매트(Umat)를 소거 및 기록 불가능하게 하므로, 폭주 등으로 유저부트매트(Umat)의 기억정보가 파괴되는 일은 없으며, 디버그시에 CPU(2)가 폭주해도, 외부 인터페이스를 제어하는 프로그램의 파괴에는 미치지 못하므로, 실장한 마이크로컴퓨터 칩을 떼어내도 온보드에서 유저매트(Mmat)의 재기록을 자유롭게 행할 수 있다.
<소거 및 기록의 보호>
도 6에는 플래시메모리(13)의 소거 및 기록에 대한 보호를 위한 논리구성이예시된다. 동도의 논리는 정논리가 되며, 그 구성은 플래시 컨트롤 모듈(6)에 의해 실현된다.
플래시메모리에 대한 소거 및 기록동작은, 기록소거관계 레지스터군(30A)의 초기치에 대하여, 처리에 필요한 제어 데이터를 설정함으로써 가능해진다. 기록소거관계 레지스터군(30A)에 대한 제어 데이터의 설정은 제어비트(SWE)가 논리치 "1"로 가능해진다. 요컨대, 제어비트(SWE)가 논리치 "1"이 되지 않는한, 플래시메모리(13)의 소거 및 기록은 불가능해진다.
제어비트(SWE)를 논리치 "1"로 하는 제1 조건은 외부단자(Pfwe)에 의해 레지스터 FCCS의 인에이블 비트(FWE)를 논리치 "1"로 셋트하는 것이다.
제2 조건은, NAND 게이트(40)의 출력을 논리치 "1"로 하는 동작모드의 선택상태와 플래시메모리의 매트선택상태를 얻는 것이다. 즉, 동작모드가 테스트모드(TESTTM=1), 라이터모드(WRTM=1), 또는 부트모드(BOOT=1)인 것. 혹은, 유저모드 또는 유저부트모드에서 유저부트매트(Umat)가 선택되어 있지 않은 것(UMATSEL=0)이다. 또한, 테스트모드란 마이크로컴퓨터의 제조메카가 디바이스 테스트에 이용하는 동작모드이며, 모든 동작이 가능해지지만, 유저에는 비공개의 동작모드, 즉, 유저에 의한 설정이 불가능한 것으로 고려되고 있다.
상기 신호(UMATSEL)는 레지스터(FMATS) 및 당해 레지스터(FMATS)의 설정치에 대한 AA 판정회로(41)의 판정결과가 된다. 레지스터(FMATS)는, 유저매트(Mmat)와 유저부트매트(Umat)를 전환할 때에 사용한다. 이 레지스터(FMATS)를 사용함으로써, CPU(2)의 오퍼레이션을 유저매트(Mmat)로부터 유저부트매트(Umat)로 천이하는 것이가능해진다. 단, 매트의 전환에는 제한사항이 있다. 즉, 레지스터(FMATS)의 유저부트매트 선택비트를 셋트할 수 있는 조건은, CPU(2)의 오퍼레이션이 RAM(3)의 프로그램을 실행하고 있는 것이다. 이 조건은, CPU(2)에 의한 명령패치의 어드레스 영역이 RAM(3)의 어드레스영역인 것을 BSC4가 검출하여 판정한다. 레지스터(FMATS)의 초기치는 H'AA 이외이며, 유저매트 선택상태를 나타낸다. H'AA에 의해 유저부트매트 선택상태를 나타낸다. 도 7에는 CPU(2)의 오퍼레이션(OP)이 유저매트(Mmat)와 유저부트매트(Umat)와의 사이에서 전환될 때의 상태 천이가 나타난다.
이 제2 조건에 의해, 유저부트매트(Umat)의 액세스는, 어떤 모드에서도 가능하지만, 기록/소거는, 라이터모드와 부트모드(및 테스트모드)만 가능하게 된다.
제3 조건은 레지스터(FKEY)가 소거 및 기록 허용치로 설정되어 있는 것이다. 상기 레지스터(FKEY)는, 전압강하나 노이즈 등이 원인으로, 프로그램이 폭주하고, 그것에 의한 프로그램의 파괴를 방지하기 위해 설치되어 있다. 소거 및 기록제어 프로그램(기록/소거 프로그램)이 전송된 후에 프로그램이 폭주한 경우를 고려하여 레지스터(FKEY)를 사용한다. 기본적으로는, 단자(Pfwe)와 제어비트(SWE)에 의해, CPU(2)가 폭주해도, 기록/소거가 실시되지 않도록 되어 있지만, 신뢰성을 더 높이기 위해 유저는, 기록/소거를 실시하기 전에, 레지스터(FKEY)에 "5A"의 값을 셋트한다. 이 "5A"를 저장하지 않을 때는, FWE가 인에이블("1")로 되어 있었다고 해도, 제어비트(SWE)를 셋트할 수 없게 된다. 레지스터(FKEY)에 "5A"가 저장되어 있는 상태는, A5, 5A 판정회로(42)로 검출되고, 신호 fwemkp=1이 되어, 이것에 의해, SWE가 논리치 "1"로 세트 가능해진다.
상기 레지스터 FKEY는 상술의 기록/소거 프로그램 관계로서 기능되는 이외에, 프로그램 전송관계로서 기능된다. 즉, 플래시메모리의 소거 및 기록제어 프로그램을 부트매트(Tmat)에 저장하고, 부트모드 이외에, 유저부트모드 및 유저모드에서 이용 하능하게 하는 관계상, 부트매트(Tmat)의 당해 소거 및 기록 제어프로그램을 RAM(3)에 전송시키므로, 레지스터(FCCS)에 제어비트(SCO)를 설치하고, 제어비트(SCO)를 인에이블하면, 자동적으로 유저매트(Mmat)와 부트매트(Tmat)가 전환되고, 부트매트(Tmat)로부터 소거 및 기록 제어프로그램이 RAM(3)으로 전송되며, 처리종료 후에 리턴명령이 실행되어 유저의 처리로 복귀하도록 되어 있다. 이때, 유저가 기록/소거를 실시하고 싶지 않은 부분에서, 프로그램이 폭주하여 기록/소거 프로그램이 전송되면, 유저 프로그램을 파괴할 가능성이 높아진다. 이것을 회피하기 위해, 레지스터(FKEY)를 사용한다. 유저는, 제어비트(SCO)를 셋트하기 전에, 이 레지스터(FKEY)에 "A5"를 저장한다. 이 "A5"를 저장하지 않은 때는, 제어비트(SCO)를 셋트하는 것은 불가능하다. 또, CPU(2)가 RAM(3)상의 프로그램을 오퍼레이션하고 있는 것도 조건이 된다. "A5"가 저장되고, RAM(3)상에서 CPU(2)의 오퍼레이션이 행해지고 있을 때는, SCO비트가 셋트 가능해지며, 소거 및 기록 제어프로그램을 부트매트(Tmat)로부터 RAM(3)으로 전송하는 것이 허용된다.
상술한 바와 같이, 플래시메모리(13)에 대한 소거 및 기록에 관해서는, 레지스터(FKEY)에서 프로그램의 전송과 소거기록을 배타 제어하고 있으므로, 프로그램이 전송되지 않는 상태에서 폭주한 경우는, 기록/소거가 실행되기 어렵다.
<프로그램 모드 판정처리>
여기서, 상기 각 동작모드에서 처리의 상세한 부분을 설명한다. 도 8에는 프로그램 모드 판정처리의 플로우챠트(13)가 예시된다. SCO모드란 유저모드에서 플래시메모리를 소거 및 기록할 때의 동작모드를 의미한다. 부트모드, 라이터모드, 유저부트모드, 유저모드는 각각 대응하는 모드단자를 셋트하여 리셋 해제하면 된다. SCO모드는, 유저모드 중에서 제어비트(SCO)에 논리치 "1"을 셋트하여 설정된다. 설정된 동작모드에 따라 모드판정 레지스터에 모드정보가 셋트된다.
동작모드가 설정되면, CPU(2)는 부트매트 내의 프로그램을 실행한다(부트매트 내 OP). 부트모드, 라이터모드, 유저부트모드는 부트매트 내의 선두 어드레스로부터 벡터를 패치하여 프로그램 실행을 개시하지만(S1), SCO 모드의 경우에는 부트매트 내의 선두 이외의 소정 번지, 예컨대 우선도가 가장 높은 예외처리인 유저브레이크 번지로부터 처리를 개시한다.
처리개시하면, 모드 판정용 레지스터를 리드하고(S2), 그 내용을 판정하며, 소거 및 기록 제어프로그램의 전송 등, 필요란 전처리를 행하여(S2 ~ S5), 대응하는 처리로 진행한다(S6 ~ S9). 또한, 플로우챠트의 각 처리란에 나타나는 "user"는 그 처리가 유저에 의해 정의된 프로그램에 의거하여 행해지는 처리인 것을 의미하며, 처리란에 나타나는 "boot"는 그 처리가 부트매트(Tmat)의 프로그램에 의거하여 행해지는 처리인 것을 의미한다.
<라이터 모드처리>
도 9에는 라이터모드 처리의 플로우챠트가 예시된다. 라이터모드가 설정되었을 때는, 도 8에 나타나도록 라이터모드 제어 프로그램이 RAM(3)에 전송되고 있다.우선, 라이터모드에서 소거 및 기록에 이용되는 커맨드ㆍ데이터 레지스터(CDL), 플래그 레지스터(FLG)가 명백해져, 커맨드 플래그(CDF)에 "1"이 셋트되고(S11), 전원이 다하기까지, 플래그 레지스터(FLG) 및 커맨드 플래그(CDF)의 상태를 참조하면서, EPROM 라이터로부터 커맨드ㆍ데이터 레지스터(CDL)에 셋트되는 커맨드 및 기록 데이터에 따라, 유저매트(Mmat) 및 유저부트매트(Umat)에 대한 소거(S14, S15) 및 기록(S12, S13)이 행해진다. 라이트모드 처리는 RAM(3)내 오퍼레이션이 된다.
<부트모드 처리>
도 10에는 부트모드처리의 플로우챠트가 예시된다. 우선, 온보드의 시리얼 인터페이스와 SCI(12)와의 송수신을 확립하고(S20), 마이크로컴퓨터(1)의 발진주파수 등에 필요한 파라메터를 다운로드하여 설정한다(S21). 이어서, 호스트장치로부터의 커맨드를 판정하여, 마이크로컴퓨터의 제품명이나 소거블록수 등의 스테이터스를 호스트장치로 리턴하고(S22), 커맨드 판정 프로그램과 소거 프로그램을 RAM(3)에 전송하여(SCO 모드를 이용하는 것도 가능), RAM(3)상에서의 오퍼레이션으로 천이한다(S23). 그리고, 유저매트(Mmat) 및 유저부트매트(Umat)를 전면 소거한(S24) 후, 커맨드에 응답하면서, 유저매트 기록처리(S25), 유저부트매트 기록처리(S26), 기록검증처리(S27, S28) 등을 행한다.
<유저부트모드 처리>
도 11에는 유저부트모드 처리의 플로우챠트가 예시된다. 유저부트모드에서는, 특히 제한되지 않지만, 부트매트(Tmat)의 선두벡터로부터 오퍼레이션을 개시하고, 유저부트매트(Umat)로의 전환 프로그램을 부트매트(Tmat)로부터 RAM(3)에 전송하여(S30), RAM(3)상에서의 오퍼레이션으로 천이하고(S31), 레지스터(FMATS)에 H'AA를 셋트하여, 레지스터(FMATS)에 의한 유저매트 지시상태(초기치)를 유저부트매트로 전환한다(S32). 여기서, 유저부트매트(Umat)의 영역 설정에 오류가 있는지를 판정하여(S33, S34), 오류가 없으면 유저부트매트(Umat)의 선두벡터 어드레스를 리드하고(S35), 리드한 벡터 어드레스로 서브루틴 점프한다(S36). CPU(2)는 유저부트매트(Umat)상의 프로그램을 실행하고, 우선, 유저 정의의 통신을 확립하여, 기록에 필요한 유저 프로그램을 RAM(3)에 전송한다(S37). CPU(2)는 RAM(3)상의 프로그램 실행으로 천이하여(S38), 재차 레지스터(FMATS)의 조작을 행하여, 처리대상매트를 유저부트매트(Umat)로부터 유저매트(Mmat)로 전환한다(S39). 그리고, RAM(3)상의 유저 프로그램을 실행하여 제어비트(SCO)를 "1"로 셋트하고(S40), SCO모드 처리로 천이하여, 부트매트(Tmat) 내의 소거 및 기록 제어프로그램을 RAM(3)으로 천이시켜(S41), 전송된 소거 및 기록 제어프로그램을 이용한 기록/소거의 처리가 행해진다(S42).
<유저모드 처리>
도 12에는 유저모드처리의 플로우챠트가 예시된다. 유저모드가 지정되면, 유저매트(Mmat)의 선두로부터 벡터 패치가 행해져(S50), 유저의 제어 프로그램이 실행된다(S51). 유저 프로그램의 실행중에 유저매트(Mmat)로의 기록이 필요해지면 RAM(3)상에서 오퍼레이션을 행하여 SCO 비트를 "1"로 셋트하고(S52), SCO모드 처리로 천이하여, 부트매트 내의 소거 및 기록 제어프로그램을 RAM(3)으로 전송시켜(S53), 전송된 소거 및 기록 제어프로그램을 이용한 기록/소거의 처리가행해진다(S54).
<기록/소거 처리>
도 13에는 상기 스텝(S42, S54)의 기록/소거 처리의 플로우챠트가 예시된다. 스텝 S60 ~ S63까지가 기록/소거의 초기화 처리이다. 여기서는, 소거 및 기록 제어프로그램은 마이크로컴퓨터(1)의 제조메카에 의해 미리 부트매트(Tmat)에 유지되어 있다. 요컨대, 그 프로그램은 유저 고유의 조건에 대하여 규정하지 않는다. 예컨대 소거전압 펄스나 기록전압 펄스의 인가시간은 플래시메모리셀의 특성이 따라 결정되지만, 그 펄스 인가시간은 마이크로컴퓨터(1)의 동작클록신호로 제어할 필요가 있고, 그 때문에 필요한 동작주파수의 데이터가 제어 레지스터(FPEPEQ)에 설정된다(S60). 제어 레지스터(FPEFEQ)는, 특히 제한되지 않지만, CPU(2)의 범용 레지스터(4)가 할당된다.
소거전압펄스나 기록전압펄스 및 검증동작의 사이클 중에 유저의 처리가 완전히 중단되는 문제를 해소하기 위한 유저 브랜치 처리(상세한 설명은 후술)를 위한 분기처 처리의 어드레스를 레지스터(FUBRA)에 설정한다(S61).
그 후, 초기화 프로그램 영역으로 서브루틴 점프하여(S62), 초기화 프로그램을 실행하고(S64), 상기 주파수나 유저 브랜치 어드레스라는 초기설정 내용에 따라, 소거 및 기록을 위한 파라메터가 소거 및 기록 제어프로그램상에 자동적으로 설정된다.
다음에, 소거 및 기록의 하드 보호를 해제하기 위해, 단자(Pfwe)를 통하여 제어비트(FWE)를 논리치 "1"로 셋트하여 하드 보호를 해제하고, 유저 프로그램의실행으로 천이한다(S64). 이 오퍼레이션 상태에서, 기록 데이터를 준비하여(S65), 유저가 실시하고 싶은 기록/소거를 실행한다(S66). 스텝(S65, S66)의 처리는 유저가 목적으로 하는 처리가 종료되기까지 반복된다.
<유저 브랜치>
도 13의 기록 소거 처리를 더 상세히 기술하며 유저 브랜치 처리에 대하여 설명한다.
도 14는 도 13의 기록처리에 착안한 개략 플로우챠트이다. 기록처리는, 부트매트(Tmat)로부터 소스코드(소거 및 기록 제어 프로그램 등)를 RAM(3)에 전송하는 처리(T1), 기록 초기화의 실행(T2) 및 기록 실행(T3)으로 대별된다.
전송처리(T1)는, 전송을 실시하고 싶은 프로그램을 선택하고, 레지스터(FKEY)를 셋트하여 제어비트(SCO)를 인에이블로 한다. 이것을 실시함으로써, 부트매트로부터 자동적으로 전송 프로그램이 스타트한다. 프로그램은, RAM(3)의 스타트 어드레스로부터 필요한 영역만 프로그램이 전송된다. 이때에 초기화 프로그램도 전송된다.
초기화의 실행(T2)에서는, 초기화 프로그램이 실행되며, 전송된 프로그램에 대하여, 동작 주파수에 의존하는 웨이트 타임(wait time) 루프회수의 설정이나 유저 브랜치 어드레스가 설정된다.
기록 실행(T3)에서는, 기록을 실시하기 전에, 어떠한 방식이어도 좋지만, 기록데이터를 RAM(3)상으로 전송한다. 이 때에는, 어떤 결정된 순서로 데이터를 배열할 필요가 있다. 전송영역은, 유저가 임의로 설정하는 것이 가능하며, 필요한 수속을 실시하여, 전송을 실시한 후, 프로그램의 어떤 정해진 번지로 서브루틴 점프를 실시한다. 이 서브루틴 점프를 실시함으로써 기록이 실행된다.
도 15에는 RAM(3)으로의 전송처리(T1)의 상세한 설명이 예시된다. 우선 레지스터(FKEY)를 "A5"로 설정하고(T10), 전송하고픈 소스코드를 선택한다(T11). 소스코드의 선택은, 기록소거 관계 레지스터(30A)에 대하여 행해진다. 선택 가능한 소스코드는, 특히 제한되지 않지만, 기록 및 기록검증 프로그램, 소거 및 소거 검증 프로그램 등이다. 그리고, 제어비트(SCO)가 "1"로 셋트되어, 선택된 소스코드가 RAM(3)의 소정 영역에 전송된다(T12). 제어비트(SCO)의 인에이블을 실시할 때는, CPU(2)는 플래시메모리(13) 밖에서 오퍼레이션을 실시하고 있을 필요가 있다. 이것은, 오퍼레이션 가능한 매트가 유저매트(Mmat)로부터 부트매트(Tmat)로 변화해버리므로 프로그램이 폭주하기 때문이다. 제어비트(SCO)의 인에이블을 실시하면, 자동적으로 부트매트(Tmat)로부터 프로그램을 시작한다. 이 부트 프로그램은, 범용 레지스터의 값을 소프트웨어 처리로 스택에 퇴피한다. 유저의 처리로 되돌아 갈 때는, 리턴명령으로 유저의 처리로 복귀한다. 이 복귀를 실시하기 전에 부트매트(Tmat)내의 전송 프로그램은, 퇴피를 실시한 범용 레지스터의 값을 복귀한다. 마지막으로 전송이 정상적으로 종료했는가 판별이 행해진다(T13).
도 16에는 기록 초기화 처리(T2)의 상세한 것이 예시된다. 우선 레지스터(FPEFEQ)(R4)에 마이크로컴퓨터(1)의 동작 주파수가 셋트되고(T20), 레지스터(FUBRA)에 유저 브랜치 어드레스가 셋트된다. 레지스터(FUBRA)에는 CPU(2)의 범용 레지스터(R5)가 할당된다. 그 후, 기록 초기화 프로그램이 실행된다(T22). 예컨대, 기록관계의 초기화 프로그램은, 설정된 칩 동작 주파수의 값을 참조하여, 웨이트 타임 루프 회수를 결정한다. 결정한 웨이트 타임 시간을 RAM(3)상에 전송된 기록 제어프로그램에 입력하는 처리를 행한다. 또, 기록 초기화 프로그램은, 레지스터(FUBRA)(R5)의 값을 참조하여, 유저 브랜치를 실시하거나, 실시한 경우에 어떤 곳의 어드레스로 점프하는 가의 기록 프로그램 변경을 실시한다. 요컨대, 유저 브랜치를 실시하는 서브루틴 점프명령에, 레지스터(FUBRA)(R5)의 값이, 분기처 어드레스로서 입력된다. 마지막으로, 초기화 처리가 정상적으로 종료한 것을 판별하여(T23), 처리를 종료한다.
여기서, 상기 레지스터(FUBRA)는 기록/소거 도중에서의 유저 브랜치 어드레스를 지정하는 레지스터이며, 이 영역은 범용 레지스터(R5)에 의존한다. 유저 브랜치를 실시하고 싶지 않을 때는, 이 레지스터에 H'00000000을 셋트한다. 유저 브랜치에 의해 오동작을 발생하지 않도록 하기 위해, 브랜치 메모리영역에서 기록/소거 도중의 영역에 관해서는 유저 브랜치를 금지하고, 내장 RAM 내, 기록/소거 프로그램이 전송된 영역에의 유저 브랜치를 금지하며, 프로그램 데이터의 재기록을 금지하여, 유저 브랜치를 실시한 곳에서, SCO모드의 실행이나 기록/소거 루틴, 기록/소거 초기화 루틴을 호출하는 것을 금지하는 것이 바람직하다.
도 18에는 도 16에 기록 초기화시에 내장 RAM(3), 기록 프로그램, 초기화 처리, 레지스터(R4, R5)와의 사이의 데이터 접속관계가 나타난다. 동도에 의해, 초기화 프로그램은, 레지스터(R4, R5)를 참조하여, 참조결과를 기록 프로그램의 유저 브랜치 처리에 반영하여, 웨이트 관계 파라메터에 반영하는 것이 명료하다.
도 17에는 기록 실행(T3)의 상세한 부분이 예시된다. 우선, 마스크 불가능한 인터럽트(NMI)를 접수했을 때의 분기처를 RAM(3) 어드레스 영역으로 변경한다(T30). 예컨대 벡터 베이스 레지스터를 RAM(3)의 어드레스 영역으로 설정 변경하면 된다. 이것은, 기록도상의 플래시메모리 영역을 피하는 것이 오동작 방지의 점보다 바람직하기 때문이다. 그러한 NMI는 유저 정의의 에러처리 루틴을 호출하기 위해 이용하면 된다. 그리고 NMI보다도 인터럽트 우선레벨이 낮은 인터럽트를 마스크한다(T31). 예컨대 스테이터스 레지스터(SR)에 인터럽트 마스크 데이터(IMSK)의 NMI 다음에 낮은 인터럽트 우선레벨을 설정하면 된다. 이것은, 기록/소거 중에는, 상태에 따라 플래시메모리에 고전압이 인가되어 있다. 이 상태에서 IRQ 등의 인터럽트가 입력되었다고 해도, 플래시메모리의 벡터를 판독할 수 있는 것은 보증할 수 없다. 따라서, 기록/소거 중에는, NMI 이외의 인터럽트는 금지로 한다.
그리고, 기록 어드레스의 설정영역을 범용 레지스터(R5)에 셋트한다(T32). 즉, 내장 RAM(3)에 기록되어 있는 기록 어드레스 영역의 선두 어드레스를 범용 레지스터(R5)로 셋트한다. 그리고, 기록 데이터 어드레스의 설정영역을 범용 레지스터(R4)로 셋트한다(T33). 즉, 내장 RAM(3)에 기록되어 있는 기록 데이터 어드레스영역의 선두 어드레스를 범용 레지스터(R4)에 셋트한다. 그 후, 레지스터(FKEY)에 기록/소거코드 "5A"를 셋트하고(T34), 기록 프로그램으로 점프하여 실행한다(T35). 마지막으로 기록이 정상적으로 종료하였는지를 판별한다(T36).
도 19에는 기록시에 RAM(3), 범용 레지스터(R4, R5), 기록 프로그램과의 사이의 데이터 접속관계가 예시된다. 여기서는 듀얼뱅크 기록을 상정하고 있으므로, 기록 어드레스영역의 선두 어드레스와 기록 데이터 어드레스 영역의 선두 어드레스를 각각의 뱅크마다 참조할 수 없으므로, RAM영역(FMPDR0, FMPDR1)을 레지스터(R4)로, RAM영역(FMPAR0, FMPAR1)을 레지스터(R5)로 참조 가능하게 하고 있다.
도 20에는 도 17의 스텝(T35)에 대응하는 기록 프로그램의 처리플로우가 예시된다. 이 처리 플로우는, 기록 데이터 래치(T40), 기록펄스의 인가(T41), 기록검증(T42)의 처리 서클 중에, 유저 브랜치 어드레스에 서브루틴 점프하는가를 판정하는 스텝(T43)을 가지며, 초기화 처리에 의한 설정치에 따라, 서브루틴 점프의 지시가 되어 있는 경우(유저 브랜치 어드레스가 H'00000000 이외 일 때)에는, 유저 브랜치 어드레스에 분기하여, 서브루틴을 실행한다(T44). 실행 후에 다시 기록동작 루틴으로 되돌아온다. 기록검증에서 소정의 문턱치 상태를 얻을 수 없을 때는, 펄스 인가회수(N)를 증가하여 재차 같은 루프를 반복하여(T45), 반복회수가 최대회수(WMAX)에 도달하기 전에 기록 정상상태를 얻으면 그 시점에서 도 17의 플로우로 되돌아가고(T46), 최대회수에 도달해도 정상종료할 수 없을 때는 기록에러처리를 행하여(T47), 도 17의 플로우로 되돌아간다.
이와 같이, 기록펄스 인가와 기록검증의 사이클 중에, 유저 브랜치 어드레스에서 나타난 서브루틴 처리로 분기 가능하다면, 기록중이어도, 유저의 제어 프로그램에, 어느 일정 간격으로 제어를 되돌릴 수 있다. 게다가, 소프트웨어로 실시하고 있으므로, 유저의 제어로 되돌아 오는 간격을 소프트웨어로 변경하는 것도 가능하다. 기록중에도, 유저 제어 프로그램에 일정 간격으로 되돌아 옴으로써, 이 마이크로컴퓨터(1)를 사용한 시스템을 긴 시간 정지시키지 않아도, 소거 및 기록이 실시 가능해진다. 따라서, 일정 기간마다 내외의 사상을 인식할 필요가 있는 시스템, 혹은 학습기능 부가 시스템 등에 대하여, 유저의 프로그램 실행중에 소거 및 기록이 실행해 가는 것이 가능하다.
도 21은 도 13의 소거처리에 착안한 재략 플로우챠트이다. 소거처리는, 부트매트로부터 소스코드(소거 및 기록 제어프로그램 등)를 RAM(3)으로 전송하는 처리(T5), 소거 초기화의 실행(T6) 및 소거실행(T7)으로 대별된다.
전송처리(T5)는 상기 전송처리(T1)와 같다. 초기화의 실행(T6)에서는, 전송된 프로그램에 관하여, 동작 주파수에 의존하는 웨이트 타임 루프 회수의 설정이나 유저 브랜치의 설정을 위해, 초기화 프로그램을 실행한다.
소거실행(T7)에서는, RAM(3)으로 전송된 소거 프로그램의 어떤 정해진 번지로 점프 서브루틴을 실행함으로써 소거를 실행한다.
도 22에는 소거 초기화 처리(T6)의 상세한 부분이 예시된다. 우선 레지스터(FPEFEQ)(R4)에 마이크로컴퓨터(1)의 동작 주파수가 셋트되고(T60), 레지스터(FUBRA)에 유저 브랜치 어드레스가 셋트된다(T61). 레지스터(FUBRA)에는 CPU(2)의 범용 레지스터(R5)가 할당된다. 그 후, 소거 초기화 프로그램이 실행된다(T62). 전송되었을 때의 소거 프로그램은, 웨이트 루프 회수가 초기설정상태로 되어 있다. 이것으로부터, 이 초기화 프로그램을 사용하여, 소거 프로그램의 웨이트 루프 회수를 모두 변경한다. 이 계산을 실시하기 위해, 유저는 레지스터(FPEFEQ)(R4)를 셋트한다. 레지스터(FUBRA)(R5)의 설정에서는, 소거 프로그램의 유저브랜치 설정을 실시하게 된다. 소거 초기화 프로그램은, 레지스터(FUBRA)의 설정치를 참조하여, 유저브랜치를 실시하거나, 실시한 경우에 어떤 곳의 어드레스로 점프하는가에 대하여, 소거 프로그램 변경을 실시한다. 이 변경을 실시하기 위해, 유저는 레지스터(FUBRA)에 값을 셋트한다. 마지막으로, 초기화 처리가 정상 종료한 것을 판별하여(T63), 처리를 종료한다.
여기서, 상기 레지스터(FUBRA)의 의의는 기록의 경우와 같으며, 유저 브랜치를 실시하고 싶지 않을 때는, 이 레지스터에 H'00000000을 셋트한다.
도 24에는 도 22의 소거 초기화시에 내장 RAM(3), 소거 프로그램, 초기화 처리, 레지스터(R4, R5)와의 사이의 데이터 접속관계가 나타난다. 동도에 의해, 초기화 프로그램은, 레지스터(R4, R5)를 참조하여, 참조결과를 기록 프로그램의 유저 브랜치 처리에 반영하여, 웨이트 관계 파라메터에 반영하는 것이 명백하다.
도 23에는 소거실행(T7)의 상세한 부분이 예시된다. 우선, 마스크 불가능한 인터럽트(NMI)를 접수했을 때의 분기처를 RAM(3) 어드레스 영역으로 변경한다(T70). 예컨대 벡터 베이스 레지스터를 RAM(3)의 어드레스 영역으로 설정 변경하면 된다. 이것은, 소거도상의 플래시모메리 영역을 피하는 것이 오동작 방지의 점에서 바람직하기 때문이다. 이러한 NMI는 유저 정의의 에러처리 루틴을 호출하기 위해 이용하면 된다. 그리고, NMI 보다도 인터럽트 우선레벨이 낮은 인터럽트를 마스크한다(T71). 예컨대 스테이터스 레지스터(SR)에 인터럽트 마스크 데이터(IMSK)의 NMI의 다음에 낮은 인터럽트 우선레벨을 설정하면 된다. 이것은, 소거중에는, 상태에 따라 플래시메모리에 고전압이 인가되어 있다. 이 상태에서IRQ 등의 인터럽트가 들어왔다고 해도, 플래시메모리의 벡터를 읽을 수 있는 것은 보증할 수 없다. 따라서, 소거중에는, NMI 이외의 인터럽트는 금지로 한다.
그리고, 소거블록 번호를 범용 레지스터(R4)에 셋트한다(T72). 그 후, 레지스터(FKEY)에 기록/소거코드 "5A"를 셋트하고(T73), 소거 프로그램으로 점프하여 실행한다(T74). 마지막으로 소거 정상 종료를 판별한다(T75).
도 25에는 소거시에서의 RAM(3), 범용 레지스터(R4, R5), 소거 프로그램과의 사이의 데이터 접속관계가 예시된다. 이 접속관계는, 유저가 소거 프로그램을 작성하지 않으므로 소거매트 선택의 인터페이스 방법으로서, 소거블록 선택을 받아 넙겨주는 것을, 레지스터(FEBS)(R4)를 통하여 소거블록 번호를 받아 넘겨주는 것으로 실시한다.
도 26에는 도 23의 스텝(T74)에 대응하는 소거 프로그램의 처리플로우가 예시된다. 이 처리플로우는, 소거데이터 래치(T80), 소거펄스의 인가(T81), 소거검증(T82)의 처리 사이클 중에, 유저 브랜치 어드레스에 서브루틴 점프하는가를 판정하는 스텝(T83)을 가지며, 초기화 처리에 의한 설정치에 따라, 서브루틴 점프의 지시가 나타나 있는 경우(유저 브랜치 어드레스가 H'00000000 이외일 때)에는, 유저 브랜치 어드레스로 분기하여, 서브루틴을 실행한다(T84). 실행 후에 다시 소거동작 루틴으로 되돌아온다. 소거 검증으로 소정의 문턱치 상태를 얻을 수 없을 때는. 펄스인가회수(N)를 증가하여 재차 같은 루프를 반복하여(T85), 반복회수가 최대회수(EMAX)에 도달하기 전에 소거 정상상태를 얻으면 그 시점에서 도 23의 플로우로 되돌아가고(T86), 최대회수에 도달해도 정상 종료할 수 없을 때는 소거 에러처리를 행하여(T87), 도 23의 플로우로 되돌아간다.
이와 같이, 소거펄스 인가와 소거검증의 사이클중에, 유저 브랜치 어드레스로 나타난 서브루틴 처리로 분기 가능하면, 소거중이어도, 유저의 제어 프로그램에, 어느 일정 간격으로 제어를 되돌릴 수 있다. 소거중에도, 유저 제어프로그램에 일정 간격으로 되돌아 옴으로써, 이 마이크로컴퓨터(1)를 사용한 시스템을 긴 시간 정지시키지 않아도, 소거가 실시 가능해진다. 따라서, 일정기간마다 내외의 사상을 인식할 필요가 있는 시스템, 혹은 학습기능 부가의 시스템 등에 대하여, 유저의 프로그램 실행 중에 소거 및 기록을 실행해 가는 것이 가능하다.
<유저 브랜치처에서의 프로그램의 폭주>
기록/소거 프로그램이 전송된 상태이며, 더욱이 단자(Pfwe)가 인에이블 상태("1")인 경우는, 플래시메모리(13)가 보유하는 기억정보를 어떤 경우에도 정상적으로 유지하는 것을 완전히 보증하는 것은, 곤란하다. 도 27에는 유저 브랜치처에서 CPU(2)가 폭주하여 플래시메모리(13)의 기억정보가 파괴되는 사태를 억제 가능하게 하는 기록/소거 처리의 수법이 예시된다. 즉, 기록/소거 플로우 중에서 각 처리 종료마다 실시하는 상기 스텝(T44, T84)의 유저 브랜치 처리에서는, 기록 소거의 동작전원을 초기화하여 리드동작의 동작전원으로 천이시키고(T90), 그 후, 레지스터(FKEY)의 값을, 기록/소거 가능치 "5A" 이외의 임의의 값으로 변경한다(T91). 예컨대 7X(X=0~F)로 한다. 이것을 실시함으로써, 제어비트(SWE)의 셋트가 불가능해지므로, 유저 브랜치처에서 CPU가 폭주해도, 간단하게는 기록/소거할 수 없게 된다.
스텝(T91)의 처리에서, 레지스터(FKEY)에 설정하는 코드를, 처리에 대하여 의미가 있는 코드, 예컨대, 소거/기록의 진보상황을 나타내는 코드로 하면, 폭주 등에 의해, 기록/소거 미완상태에서 기록/소거의 처리루틴으로부터 리턴해오는 경우, 혹은 레지스터(FKEY)의 값이 기대치 이외의 값으로 변화하고 있는 경우, 레지스터(FKEY)의 값을 참조함으로써, 이상을 검출할 수 있다. 도 27의 예에서는, 펄스인가와 검증 동안에는 "71", 검증과 기록데이터 재연산 동안에는 "72", 재연산과 기록펄스 인가 전의 더미 라이트 동안에는 "73"으로 하고, 유저 브랜치 처리로부터 빠져나갈 때, 레지스터(FKEY)의 값이 "7X(X=1 ~ F)"인가를 판정하여(T92), 그 이외이면 어떤 이상이 있다고 간주하여, 기록/소거에 대하여 실패처리를 행한다(T93). FKEY가 "7X"이면, 정상적으로 처리 종료로 간주하고, FKEY를 "5A"로 되돌린다(T93).
또한, 진보정황을 유지하는 레지스터(FKEY)가 아니어도 되지만, 유저 브랜치인 경우에 "5A" 이외의 값으로 재기록 하는 것이 득책이라는 사정을 고려하면, 레지스터(FKEY)를 이용하는 것이, 하드웨어 리소스와 처리부담의 양면에 있어서 경제적이다.
이상 본 발명자에 의해 이루어진 발명을 실시형태에 의거하여 구체적으로 설명하였지만, 본 발명은 그것에 한정되는 것이 아니라, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능하다는 것은 말할 필요도 없다.
예컨대, 소거 및 기록 가능한 불휘발성 메모리는 2치의 플래시메모리로 한정되지 않는다. 멀티밸유 플래시메모리, 예컨대, 1개의 플래시메모리셀에 2비트 이상의 기억정보를 유지시키는 것이 가능한 멀티밸유 플래시메모리여도 된다. 즉, 1개의 플래시메모리셀은, 정보기억시에 복수비트의 기록 데이터로 지정되는 4종류 이상의 문턱치 전압 중의 하나의 문턱치전압으로 설정되고, 정보판독시에 문턱치전압의 상태를 대응하는 복수비트의 기억정보로서 출력한다. 1개의 플래시메모리셀의 기억정보를 복수비트화한 메모리이다. 여기서는, 하나의 플래시메모리셀에 2비트의 정보를 기록할 수 있고, 또 그 정보를 판독할 수 있는 플래시메모리를 일례로 한다. 이러한 플래시메모리가 실현하고자 하는 멀티밸유 정보기억 기술에 있어서, 하나의 메모리셀의 정보기억상태는, 예컨대 소거상태("11"), 제1 기록상태("10"), 제2 기록상태("00"), 제3 기록상태("01") 중에서 선택된 하나의 상태로 된다. 전부 4가지의 정보기억상태는 2비트의 데이터에 의해 결정되는 상태로 된다. 즉, 2비트의 데이터를 하나의 메모리셀로 기억한다.
또, 플래시메모리셀은 플로팅게이트와 컨트롤게이트가 세로로 겹친 구조로 한정되지 않고, MOS 트랜지스터의 게이트전극을 플로팅게이트 전극으로 하여 당해 게이트전극을 연장시켜 형성한 MOS 게이트 용량을 통하여 채널영역을 컨트롤게이트에 이용하는 디바이스 구조 등을 채용해도 된다. 또, 불휘발성 기억소자는 플래시메모리에 한정되지 않고, MNOS(Metal Nitride Oxide Semiconductor) 트랜지스터를 기억소자로 하는 EEPROM(Electrically Erasable and Programmable Read Only Memory)과 같은 불휘발성 메모리, 혹은 강도전체 메모리 등이어도 된다.
또, 마이크로컴퓨터가 온칩으로 구비하는 회로모듈은 상기 예에 한정되지 않고, 적절히 변경 가능하다.
소거 및 기록 제어프로그램을 부트매트에 초기적으로 유지시키는 구성으로 한정되지 않는다. 시스템보드로부터 다운로드하는 구성을 채용해도 된다. 또, 각종 레지스터 수단은 플래시메모리 내장의 주변 레지스터여도, CPU 내장의 범용 레지스터여도, 혹은 SRAM 등의 메모리로 구성되는 메모리맵 I/O 레지스터여도 된다.
상기 유저 브랜치는, 레지스터(FUBRA)(R5)의 설정치에 의거하여, 점프 서브루틴 명령의 점프처 코드를 미리 재기록하는 초기화 처리를 행한 후, 그 프로그램을 실행하는 것으로 설명하였다. 이것 대신에, 점프 서브루틴 명령으로 그 레지스터(FUBRA)(R5)을 직접 참조하여 분기하도록 해도 된다. 이 경우에는, 그 소거 및 기록 제어프로그램의 컴파일러가 하나의 함수내에 인수로서 이용할 수 있는 범용 레지스터 수의 제한 범위 내에서 범용 레지스터(R5)를 참조할 수 없으면 안된다.
본원에서 개시되는 발명 중 대표적인 것에 의해 얻어지는 효과를 간단히 설명하면 하기와 같다.
즉, 유저의 실장보드에 반드시 시리얼 인터페이스를 작성하지 않아도, 유저 전용의 통신 프로토콜로, 온보드 기록을 실시할 수 있고, 폭주해도, 유저 전용통신 프로토콜 코드를 파괴하는 일은 없다.
유저매트에는, 유저의 제어 프로그램을 작성하면 되고, 프로그램의 작성이 용이해진다. 요컨대, 유저부트매트와 유저매트를 분리함으로써, 유저매트에 전용 통신 프로토콜을 기록하지 않아도, 소거 및 기록용에 유저 임의의 기록 인터페이스를 실현할 수 있으므로, 유저매트에 저장하여 사용하는 제어 프로그램의 작성이 용이해진다. 따라서, 유저 프로그램모드에서 사용하는 통신제어 프로그램의 소거 방지 등에 대하여 특별한 고려를 하지 않아도 된다.
유저부트매트로부터 상승하는 유저부트모드에서는, 하드웨어적으로 유저부트매트를 소거 및 기록 불하능하게 하므로, 폭주 등으로 유저부트매트의 기억정보가 파괴되는 일은 없고, 디버그시에 CPU가 폭주해도, 외부 인터페이스를 제어하는 프로그램의 파괴에는 미치지 않으므로, 실장한 마이크로컴퓨터 칩을 떼어내지 않아도, 온보드로 유저매트의 재기록을 자유롭게 행할 수 있다.

Claims (39)

  1. CPU와, 제1 영역, 제2 영역 및 제3 영역을 가지며 소거 및 기록 가능한 불휘발성 메모리를 포함하고,
    상기 CPU에 제1 영역의 프로그램을 처리시킴과 동시에 상기 제1 영역을 소거 및 기록 불가능하게 하는 제1 모드,
    상기 CPU에 제2 영역의 프로그램을 처리시킴과 동시에 제1 영역 및 제2 영역을 소거 및 기록 불가능하게 하는 제2 모드, 및
    상기 CPU에 제3 영역의 프로그램을 처리시킴과 동시에 제1 영역 및 제2 영역을 소거 및 기록 불가능하게 하는 제3 모드의 지시수단을 가지고 이루어지는 것을 특징으로 하는 마이크로컴퓨터.
  2. 제 1항에 있어서,
    상기 지시수단은, 상기 제1 모드, 제2 모드 및 제3 모드를 지시하는 신호의 입력회로인 것을 특징으로 하는 마이크로컴퓨터.
  3. CPU와, 소거 및 기록 가능한 제1 영역, 제2 영역 및 제 3 영역을 갖는 불휘발성 메모리와, 제1 모드, 제2 모드 또는 제3 모드를 선택적으로 지정하는 지시수단을 포함하며,
    상기 CPU는, 제1 모드의 지정에 의해 제1 영역의 프로그램을 처리하고, 제2모드의 지정에 의해 제2 영역의 프로그램을 처리하며, 제3 모드의 지정에 의해 제3 영역의 프로그램을 처리하고,
    상기 불휘발성 메모리는, 제1 모드의 지정에 의해 상기 제2 영역 및 제3 영역이 소거 및 기록 가능하게 되고 또, 제1 영역이 소거 및 기록 불가능하게 되며, 제2 모드의 지정에 의해 제3 영역이 소거 및 기록 가능하게 되고, 또, 제1 영역 및 제2 영역이 소거 및 기록 불가능하게 되며, 제3 모드의 지정에 의해 제3 영역이 소거 및 기록 가능하게 되고, 또 제 1 영역 및 제 2 영역이 소거 및 기록 불가능하게 되는 것을 특징으로 하는 마이크로컴퓨터.
  4. 제 1항 또는 제 3항에 있어서,
    상기 제1 영역은 마이크로컴퓨터의 외부와 인터페이스를 확립하기 위한 제1 통신제어 프로그램을 보유하는 것을 특징으로 하는 마이크로컴퓨터.
  5. 제 1항 또는 제 3항에 있어서,
    상기 제1 영역은 마이크로컴퓨터의 외부와 인터페이스를 확립하기 위한 제1 통신제어 프로그램을 보유하고, 상기 제2 영역은 마이크로컴퓨터의 외부와 인터페이스를 확립하기 위한 제2 통신제어 프로그램을 보유하는 것을 특징으로 하는 마이크로컴퓨터.
  6. 제 4항 또는 제 5항에 있어서,
    상기 제1 영역은, 상기 불휘발성 메모리를 위한 소거 및 기록 제어프로그램을 보유하는 것을 특징으로 하는 마이크로컴퓨터.
  7. 제 6항에 있어서,
    상기 제1 영역은, 상기 소거 및 기록 제어프로그램의 전송제어 프로그램을 보유하는 것을 특징으로 하는 마이크로컴퓨터.
  8. 제 7항에 있어서,
    상기 CPU에 의한 전송제어 프로그램의 처리에 의한 상기 소거 및 기록 제어프로그램이 전송되는 RAM을 가지고 이루어지는 것을 특징으로 하는 마이크로컴퓨터.
  9. 제 3항에 있어서,
    상기 불휘발성 메모리는, 상기 지시수단에 의한 모드지정과는 별도로, 외부단자로부터 공급되는 기록동작의 지시를, 소거 및 기록동작을 가능하기 하기 위한 필요조건으로 하는 것을 특징으로 하는 마이크로컴퓨터.
  10. 재 3항에 있어서,
    상기 제1 영역, 제2 영역 및 제3 영역의 각각에 선두 어드레스는 CPU의 어드레스 공간상 동일 어드레스이며, 상기 CPU가 이용하는 선두 어드레스를 제2 영역으로 하거나 제3 영역으로 하는가를 배타적으로 지정하는 제1 레지스터 수단이 CPU의 어드레스 공간에 배치되어 이루어지는 것을 특징으로 하는 마이크로컴퓨터.
  11. 제 10항에 있어서,
    상기 CPU의 어드레스 공간에 배치된 RAM을 가지고 이루어지는 것을 특징으로 하는 마이크로컴퓨터.
  12. 제 11항에 있어서,
    CPU가 RAM상에서 프로그램을 처리하고 있는 것을 조건으로, 상기 제1 레지스터 수단의 설정변경을 허가하는 버스제어수단을 갖는 것을 특징으로 하는 마이크로컴퓨터.
  13. 제 11항에 있어서,
    소거 및 기록 제어프로그램을 RAM에 저장시키는 동작에 허가를 주는 정보가 셋트되는 제2 레지스터 수단을 가지며, 상기 불휘발성 메모리는, 이 제2 레지스터 수단의 허가정보가 리셋되는 것을, 소거 및 기록동작을 가능하게 하기 위한 필요조건으로 하는 것을 특징으로 하는 마이크로컴퓨터.
  14. 제 3항에 있어서,
    상기 CPU의 어드레스 공간에 배치된 RAM을 가지며, 상기 제1 영역은 소거 및기록 제어프로그램을 가지고,
    상기 CPU는 제1 모드에 응답하여 상기 소거 및 기록 제어프로그램을 상기 RAM에 전송 제어하고, 전송처인 RAM으로부터 소거 및 기록 제어프로그램을 패치하여 실행하는 것을 특징으로 하는 마이크로컴퓨터.
  15. 제 14항에 있어서,
    상기 제2 모드에서 CPU는, 제3 레지스터 수단의 제1 설정치에 응답하여, 상기 제1 영역의 프로그램을 처리하는 상태로 천이하고, 상기 소거 및 기록 제어프로그램을 RAM에 전송 제어하여, 제2 영역의 프로그램을 처리하는 상태로 복귀하는 것을 특징으로 하는 마이크로컴퓨터.
  16. 제 15항에 있어서,
    상기 제3 모드에서 CPU는, 제3 레지스터 수단의 제1 설정치에 응답하여, 상기 제1 영역의 프로그램을 처리하는 상태로 천이하고, 상기 소거 및 기록제어 프로그램을 RAM으로 전송 제어하여, 제3 영역의 프로그램을 처리하는 상태로 복귀하는 것을 특징으로 하는 마이크로컴퓨터.
  17. 제 15항 또는 제 16항에 있어서,
    소거 및 기록 제어프로그램을 RAM에 저장시키는 동작에 허가를 주는 정보로서 제2 설정치가 셋트되는 제2 레지스터 수단을 가지며, 상기 불휘발성 메모리는,이 제2 레지스터 수단의 허가정보가 제3 설정치로 리셋되는 것을 소거 및 기록동작을 가능하게 하기 위한 필요조건으로 하고,
    상기 제2 레지스터 수단에 제2 설정치가 셋트되는 상태를 제3 레지스터 수단에 제1 설정치를 셋트 가능하게 하기 위한 필요조건으로 하는 것을 특징으로 하는 마이크로컴퓨터.
  18. CPU와, 소거 및 기록 가능한 불휘발성 메모리를 포함하고, 불휘발성 메모리는 제1 메모리매트와 제2 메모리매트를 구비하며, 제1 메모리매트와 제2 메모리매트는, 레지스터에서 배타적으로 선택 가능하게 되어 있고,
    제1 메모리매트가 선택된 경우는 제1 메모리매트에 대한 소거 및 기록동작이 억제되며,
    제2 메모리매트가 선택된 경우는 RAM상에서의 프로그램 실행상태로 천이하는 것을 해제할 필요조건으로서 소거 및 기록동작이 억제되는 것을 특징으로 하는 마이크로컴퓨터.
  19. CPU와, 소거 및 기록 가능한 불휘발성 메모리를 갖는 마이크로컴퓨터로서,
    상기 불휘발성 메모리는, 외부와의 인터페이스를 확립하기 위해 CPU에 의해 처리되는 통신제어 프로그램을 보유하는 제1 영역과,
    상기 CPU에 의한 통신제어 프로그램의 처리에 의해 외부와의 인터페이스가 확립되어 소거 및 기록가능해 지는 제2 영역과,
    상기 CPU에 의한 통신제어 프로그램의 처리에 의해 외부와의 인터페이스가 확립되어 소거 및 기록 가능하게 되고, 또, CPU에 의한 제2 영역의 프로그램의 처리에 의해 소거 및 기록 가능하게 되는 제3 영역을 가지고 이루어지는 것을 특징으로 하는 마이크로컴퓨터.
  20. 제1 인터페이스를 갖는 실장기판에 실장되어야 할 마이크로컴퓨터로서,
    중앙처리장치와,
    상기 제1 인터페이스와 다른 제2 인터페이스를 이용한 통신 프로토콜을 확립하기 위한 제1 통신처리 프로그램이 저장되는 제1 기억영역과, 상기 제1 인터페이스를 이용한 통신 프로토콜을 확립하기 위한 제2 통신처리 프로그램이 저장되는 제2 기억영역과, 소정의 제1 동작모드에서 상기 중앙처리장치에 의해 실행되는 제어 프로그램이 저장되는 제3 기억영역을 갖는 불휘발성 메모리를 갖는 것을 특징으로 하는 마이크로컴퓨터.
  21. 제 20항에 있어서,
    상기 제1 기억영역은, 다시, 기록제어 프로그램이 저장되고,
    상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 기록제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 기록모드에 의해, 상기 제2 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  22. 제 21항에 있어서,
    상기 제3 기억영역에 저장되는 상기 제어프로그램은, 상기 제1 기록모드, 또는, 상기 제1 기억영역에 저장된 기록제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 기록모드의 어떤 것에 의해, 상기 제3 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  23. 제 20항에 있어서,
    상기 제1 인터페이스는, ATAPI 인터페이스, SCSI 인터페이스, 또는, HCAN 인터페이스인 것을 특징으로 하는 마이크로컴퓨터.
  24. 제 20항에 있어서,
    상기 제2 인터페이스는, 조보동기를 이용한 시리얼 인터페이스인 것을 특징으로 하는 마이크로컴퓨터.
  25. 제 20항에 있어서,
    상기 불휘발성 메모리는, 플로팅게이트를 갖는 불휘발성 메모리셀을 복수 갖는 것을 특징으로 하는 마이크로컴퓨터.
  26. 제 25항에 있어서,
    상기 불휘발성 메모리는, 플래시메모리인 것을 특징으로 하는 마이크로컴퓨터.
  27. 제 20항에 있어서,
    상기 제1 기억영역은, 다시, 소거제어 프로그램이 저장되고,
    상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 소거제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 소거모드에 의해, 상기 제2 기억영역에서 소거 가능하게 되는 것을 특징으로 하는 마이크로컴퓨터.
  28. 제 27항에 있어서,
    상기 제3 기억영역에 저장되는 상기 제어프로그램은, 상기 제1 소거모드, 또는, 상기 제1 기억영역에 저장된 소거제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 소거모드의 어떤 것에 의해, 상기 제3 기억영역에서 소거 가능한 것을 특징으로 하는 마이크로컴퓨터.
  29. 제 28항에 있어서,
    상기 제1 기억영역은, 다시, 기록제어 프로그램이 저장되고,
    상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 기록제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 기록모드에 의해, 상기 제2 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  30. 제 29항에 있어서,
    상기 제3 기억영역에 저장되는 상기 제어프로그램은, 상기 제1 기록모드, 또는, 상기 제1 기억영역에 저장된 기록제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 기록모드의 어떤 것에 의해, 상기 제3 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  31. 중앙처리장치와,
    제1 인터페이스를 이용한 통신 프로토콜을 확립하기 위한 제1 통신처리 프로그램과 기록제어 프로그램이 저장되는 제1 기억영역과, 상기 제1 인터페이스와 다른 상기 제2 인터페이스를 이용한 통신 프로토콜을 확립하기 위한 제2 통신처리 프로그램이 저장되는 제2 기억영역과, 소정의 제1 동작모드에서 상기 중앙처리장치에 의해 실행되는 제어 프로그램이 저장되는 제3 기억영역을 갖는 불휘발성 메모리를 갖는 것을 특징으로 하는 마이크로컴퓨터.
  32. 제 31항에 있어서,
    상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 기록제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 기록모드에 의해, 상기 제2 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  33. 제 32항에 있어서,
    상기 제3 기억영역에 저장되는 상기 제어 프로그램은, 상기 제1 기록모드, 또는, 상기 제1 기억영역에 저장된 기록제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 기록모드의 어떤 것에 의해, 상기 제3 기억영역에 기록되는 것을 특징으로 하는 마이크로컴퓨터.
  34. 제 31항에 있어서,
    상기 제1 기억영역은, 다시, 소거제어 프로그램이 저장되고,
    상기 제2 기억영역에 저장되는 상기 제2 통신처리 프로그램은, 상기 소거제어 프로그램 및 상기 제1 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제1 소거모드에 의해, 상기 제2 기억영역에서 소거되는 것을 특징으로 하는 마이크로컴퓨터.
  35. 제 34항에 있어서,
    상기 제3 기억영역에 저장되는 상기 제어프로그램은, 상기 제1 소거모드, 또는 상기 제1 기억영역에 저장되는 소거제어 프로그램 및 상기 제2 통신처리 프로그램을 상기 중앙처리장치에 의해 실행시키는 제2 소거모드의 어떤 것에 의해, 상기제3 기억영역에서 소거되는 것을 특징으로 하는 마이크로컴퓨터.
  36. 제 31항에 있어서,
    상기 제1 인터페이스는, ATAPI 인터페이스, SCSI 인터페이스, HCAN 인터페이스로부터 선택된 적어도 하나의 인터페이스인 것을 특징으로 하는 마이크로컴퓨터.
  37. 제 31항에 있어서,
    상기 제2 인터페이스는, 조보동기를 이용한 시리얼 인터페이스인 것을 특징으로 하는 마이크로컴퓨터.
  38. 제 31항에 있어서,
    상기 불휘발성 메모리는, 플로팅게이트를 갖는 불휘발성 메모리를 복수 갖는 것을 특징으로 하는 마이크로컴퓨터.
  39. 제 38항에 있어서,
    상기 불휘발성 메모리는, 플래시메모리인 것을 특징으로 하는 마이크로컴퓨터.
KR1020020010099A 2001-03-30 2002-02-26 마이크로컴퓨터 KR20020077048A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001097807A JP4162863B2 (ja) 2001-03-30 2001-03-30 マイクロコンピュータ
JPJP-P-2001-00097807 2001-03-30

Publications (1)

Publication Number Publication Date
KR20020077048A true KR20020077048A (ko) 2002-10-11

Family

ID=18951543

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020010099A KR20020077048A (ko) 2001-03-30 2002-02-26 마이크로컴퓨터

Country Status (4)

Country Link
US (3) US6832285B2 (ko)
JP (1) JP4162863B2 (ko)
KR (1) KR20020077048A (ko)
TW (1) TWI251744B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4958201B2 (ja) * 2001-03-30 2012-06-20 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
JP2004213102A (ja) * 2002-12-26 2004-07-29 Fujitsu Ltd マイクロコンピュータ
JP4229712B2 (ja) * 2003-01-27 2009-02-25 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
ITRM20030354A1 (it) * 2003-07-17 2005-01-18 Micron Technology Inc Unita' di controllo per dispositivo di memoria.
JP4421390B2 (ja) 2004-06-21 2010-02-24 富士通マイクロエレクトロニクス株式会社 半導体集積回路
US7864292B2 (en) * 2005-11-16 2011-01-04 Asml Netherlands B.V. Lithographic apparatus and device manufacturing method
US7921303B2 (en) 2005-11-18 2011-04-05 Qualcomm Incorporated Mobile security system and method
US7502916B2 (en) * 2005-12-02 2009-03-10 Infineon Technologies Flash Gmbh & Co. Kg Processing arrangement, memory card device and method for operating and manufacturing a processing arrangement
JP2007299146A (ja) * 2006-04-28 2007-11-15 Mitsumi Electric Co Ltd 情報処理装置及び映像受信装置
US7613876B2 (en) * 2006-06-08 2009-11-03 Bitmicro Networks, Inc. Hybrid multi-tiered caching storage system
JP5045115B2 (ja) * 2007-01-23 2012-10-10 株式会社島津製作所 プログラマブルデバイス制御装置およびその方法
US8352659B1 (en) * 2009-10-30 2013-01-08 Xilinx, Inc. Segmentation and reassembly of a data value communicated via interrupt transactions
JP5868381B2 (ja) * 2013-12-03 2016-02-24 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US9424134B2 (en) * 2014-03-28 2016-08-23 Intel Corporation Boot management in a non-volatile memory system
WO2019043823A1 (ja) * 2017-08-30 2019-03-07 オリンパス株式会社 メモリアクセス装置、画像処理装置、および撮像装置
JP7267692B2 (ja) * 2018-07-31 2023-05-02 キヤノン株式会社 ファームウェアを更新する画像形成装置
KR102552666B1 (ko) * 2018-11-12 2023-07-10 삼성전자주식회사 전자 장치 및 그것의 동작 방법
WO2023127516A1 (ja) * 2021-12-27 2023-07-06 ソニーグループ株式会社 置換装置、情報処理方法および情報処理装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5210854A (en) * 1989-06-14 1993-05-11 Digital Equipment Corporation System for updating program stored in eeprom by storing new version into new location and updating second transfer vector to contain starting address of new version
US6009495A (en) 1989-12-29 1999-12-28 Packard Bell Nec Protected address range in an electrically erasable programmable read only memory
EP0464433A3 (en) * 1990-06-29 1994-05-18 Nat Semiconductor Corp Microcontroller device having remotely programmable eprom & method of programming
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
US6148441A (en) * 1994-04-06 2000-11-14 Dell Usa, L.P. Method for reprogramming flash ROM in a personal computer implementing an EISA bus system
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置
US5950222A (en) 1996-03-14 1999-09-07 Sanyo Electric Co., Ltd. Microcomputer using a non-volatile memory
JPH09319727A (ja) * 1996-05-31 1997-12-12 Hitachi Ltd データプロセッサ及びデータ処理システム
JPH1055278A (ja) 1996-08-08 1998-02-24 Toshiba Microelectron Corp メモリ混載マイコン
US5901330A (en) * 1997-03-13 1999-05-04 Macronix International Co., Ltd. In-circuit programming architecture with ROM and flash memory
US6009496A (en) * 1997-10-30 1999-12-28 Winbond Electronics Corp. Microcontroller with programmable embedded flash memory
JPH11219299A (ja) 1998-02-02 1999-08-10 Mitsubishi Electric Corp マイクロコンピュータ
JP2000259420A (ja) 1999-03-05 2000-09-22 Denso Corp 電子制御装置用の学習値更新装置
JP4475709B2 (ja) * 1999-11-15 2010-06-09 株式会社ルネサステクノロジ マイクロコンピュータ

Also Published As

Publication number Publication date
US20020144052A1 (en) 2002-10-03
US7277979B2 (en) 2007-10-02
US6832285B2 (en) 2004-12-14
US20050091446A1 (en) 2005-04-28
JP2002297561A (ja) 2002-10-11
US7805562B2 (en) 2010-09-28
TWI251744B (en) 2006-03-21
JP4162863B2 (ja) 2008-10-08
US20080005454A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
KR20020077048A (ko) 마이크로컴퓨터
JP4230122B2 (ja) マイクロコンピュータ、書込み方法及び消去方法
US20040003167A1 (en) Microcomputer
KR100604877B1 (ko) 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
JP2009505304A (ja) 埋設式メモリのアクセス制御
JP2001236239A (ja) メモリ装置の操作確認方法,外部プログラミング装置及び車両用デジタル制御装置。
EP3432190B1 (en) Processing system and related integrated circuit for handling password management
JP4958201B2 (ja) マイクロコンピュータ
JP2008186476A (ja) マイクロコンピュータ
US7519802B2 (en) System and method for configuring a computer system
JP3866269B2 (ja) マイクロコンピュータ
EP2730993B1 (en) Reset method and network device
US8140896B2 (en) System and method for downloading system program
JP4042940B2 (ja) オンチップ・プログラミング機能を持つマイクロコントローラ
KR100465610B1 (ko) 온-칩 프로그래밍 능력을 가지는 내장된 플래시 메모리를 구비한 마이크로컴퓨터 및 상기 내장된 플래시 메모리에 데이터를프로그램하는 방법
KR100290280B1 (ko) 프로그램 가능한 플래시 메모리를 내장하는 마이크로콘트롤러
KR100629464B1 (ko) 다중 마이크로프로세서 이동통신 단말기에 펌웨어의다운로드 속도를 향상하기 위한 병렬 다운로드 방법
JP2010170579A (ja) データ処理装置
JP2000305771A (ja) 不揮発性メモリ内蔵マイコンへのソフトウェアローディング方法
JP3633812B2 (ja) フラッシュファームダウンロードによるフラッシュメモリ制御システム
CN110941444A (zh) 一种升级配置逻辑电路、方法、系统及可编程逻辑器件
JP2002287994A (ja) マイクロコントローラ
JP4127562B2 (ja) マイクロコンピュータ
JPH0749852A (ja) マイクロコンピュータ
JPH07119538A (ja) エンジン制御装置

Legal Events

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