[go: up one dir, main page]

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

마이크로컴퓨터 Download PDF

Info

Publication number
KR100264758B1
KR100264758B1 KR1019970054776A KR19970054776A KR100264758B1 KR 100264758 B1 KR100264758 B1 KR 100264758B1 KR 1019970054776 A KR1019970054776 A KR 1019970054776A KR 19970054776 A KR19970054776 A KR 19970054776A KR 100264758 B1 KR100264758 B1 KR 100264758B1
Authority
KR
South Korea
Prior art keywords
interrupt
register
program
address
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
KR1019970054776A
Other languages
English (en)
Other versions
KR19980033145A (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 KR19980033145A publication Critical patent/KR19980033145A/ko
Application granted granted Critical
Publication of KR100264758B1 publication Critical patent/KR100264758B1/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
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)

Abstract

마이크로컴퓨터는 중앙 처리 유닛, 인터럽트 처리 요구를 발생시키기 위한 인터럽트 요구 발생 유닛, 프로그램 메모리에 저장된 프로그램을 사용하여 인터럽트 처리를 수행하기 위한 제1 인터럽트 모드와 상기 프로그램 메모리에 저장된 프로그램을 사용하지 않고 인터럽트 처리를 수행하기 위한 제2 인터럽트 모드에 근거하여 상기 인터럽트 처리 요구에 응답하여 두개의 처리 요구를 제어하기 위한 처리 요구 제어 유닛, 및 전기적으로 프로그램가능 및 소거가능한 읽기-전용 메모리로서 역할을 하는 플래시 메모리를 포함한다. 상기 플래시 메모리에/로 부터 데이터를 기록/삭제하는 처리는 상기 제2 인터럽트 모드에서 수행된다.

Description

마이크로컴퓨터
본 발명은 전기적으로 소거가능 및 프로그램가능한 플래시 메모리를 포함하는 마이크로컴퓨터에 관한 것이다.
플래시 메모리에/로 부터 데이터를 기록/소거할 수 있는 마이크로컴퓨터의 제1 종래 기술이 일본 무심사 특허 공보 제5-266219호에 개시되어 있다. 이 종래 기술에서, CPU를 사용하여 플래시 PROM를 제어하기 위한 제1 모드와 반도체 회로 외부의 회로를 사용하여 플래시 PROM를 제어하기 위한 제2 모드를 갖는 마이크로컴퓨터가 설명된다. 도 1은 플래시 메모리를 포함하고 기록과 소거 처리를 가능하게 하는 이와 같은 종래 마이크로컴퓨터의 블록도이다. 상기 마이크로컴퓨터는 중앙 처리 유닛(1), 플래시 PROM(2), 레지스터(3), RAM(4), 인터럽트 요구 발생 유닛(5), 타이머 유닛(6), 내부 버스(7), 및 ROM(8)을 구비한다.
중앙 처리 유닛(이하에 CPU라고 함)은 내부 버스(7)를 통해 전송된 데이터를 기록하고 어드레스 신호(ADR)를 플래시 PROM(2)에 출력하기 위한 프로그램 카운터(이하에 PC라고 함), 내부 버스(7)를 통해 전송된 명령 코드를 래치하기 위한 명령 레지스터(12), 명령 레지스터(12)의 출력으로 부터 명령 코드를 복호하기 위한 명령 복호기(13), 명령 복호기(13)로 부터 복호된 결과에 따라 명령을 실행하기 위한 실행 제어 유닛(14), 예를 들면, 내부 버스(7)를 통해 전송된 두개의 데이터를 로드하며, 실행 제어 유닛(1)에 따라 계산을 수행하며, 계산 결과를 내부 버스(7)에 출력하고, 계산 결과에 따른 플래그 변화를 레지스터로서 구성된 프로그램 상태 워드(이하에 PSW라 함) 레지스터(16)로 출력하기 위한 ALU(15), 및 인터럽트 요구 발생 유닛(5)으로 부터 출력된 인터럽트 요구 신호(IRQ)에 따라 인터럽트 처리를 제어하기 위한 인터럽트 요구 수신 유닛(17)을 구비한다.
플래시 PROM(2)은 플래시 메모리(메모리 셀)(21), 기록/소거/판독 제어 회로(이하에 WER 회로라 함)(22), 내부 버스(7)로 부터 플래시 메모리(21)에 기록될 데이터를 래치하기 위한 데이터 래치(23), 내부 버스(7)로 부터 WER 회로(22)에 공급될 커맨드를 래치하기 위한 커맨드 레지스터(24), 내부 버스(7)로 부터 기록 모드에서 사용될 어드레스를 플래시 메모리(21)에 래치하기 위한 어드레스 래치(25), 및 어드레스 신호(ADR)와 어드레스 래치(25)로 부터의 출력 신호를 스위칭하고 선택된 신호를 어드레스로서 플래시 메모리(21)에 출력하기 위한 선택기(26)를 구비한다. 커맨드 레지스터(24)가 기록/소거 처리 이외의 처리, 즉, 정상 판독 처리를 나타내는 NOP 모드일 때, 선택기(26)는 어드레스 신호(ADR)를 어드레스로서 플래시 메모리(21)에 출력한다. 커맨드 레지스터(24)가 NOP 모드가 아닐 때, 선택기(26)는 어드레스 래치(25)로 부터의 출력 신호를 어드레스로서 플래시 메모리(21)에 출력한다.
RAM(4)은 내부 버스(7)로 부터 어드레스를 수신하고 내부 버스(7)로 부터/로 데이터를 수신/출력한다. 타이머 유닛(6)은 내부 클럭에 동기하여 카운트 동작을 수행하기 위한 타이머와, 비교 레지스터에 의해 구성된다. 타이머의 값이 비교 레지스터의 값과 일치할 때, 타이머 유닛(6)은 인터럽트 신호를 인터럽트 요구 발생 유닛(5)으로 출력하고 타이머를 클리어한다. 인터럽트 요구 발생 유닛(5)은 타이머 유닛(6)과 같은 주변 회로로 부터 인터럽트 요구를 수신하고 인터럽트 요구 신호(IRQ)를 CPU(1)의 인터럽트 요구 수신 유닛(17)에 출력한다. ROM(8)은 플래시 PROM(2)에 데이터를 기록하기 위한 프로그램을 저장하고 플래시 PROM(2)에 데이터를 기록하는데 사용된다.
상기 구성을 갖는 마이크로컴퓨터의 동작이 설명될 것이다.
[명령의 실행]
프로그램의 실행이 설명될 것이다. PC(11)는, 어드레스 신호(ADR)로서, 실행될 명령이 저장된 어드레스를 출력한다. 커맨드 레지스터(24)가 NOP 모드로 설정되기 때문에, 선택기(26)는 어드레스 신호(ADR)를 플래시 메모리(21)에 출력한다. 플래시 메모리(21)는 내용을 어드레스에 따라 WER 회로(22)를 통해 내부 버스(7)에 출력한다. 내부 버스(7)에 출력된 명령 코드는 명령 레지스터(12)에 의해 래치되고 명령 복호기(13)에 의해 복호된다. 실행 제어 유닛(14)은 ALU(15)의 동작을 가리키고 명령 복호기(13)로 부터의 복호된 결과에 따라 레지스터를 가리킨다. ALU(15)로 부터의 계산 결과는 내부 버스(7)를 통해 전송되고 레지스터(3)에 기록된다. PSW 레지스터(16)의 플래그는 ALU(15)로 부터의 계산 결과에 따라 변한다. PC(11)는 다음에 실행될 명령의 어드레스를 준비하기 위해 명령을 실행한 후에 하나씩 증가된다. 명령은 상기 방법으로 실행된다.
[인터럽트 처리에 근거한 플래시 PROM 기록 처리]
인터럽트 처리의 흐름을 사용하여 플래시 PROM 기록 처리가 다음에 설명될 것이다. 플래시 PROM(2)에 1-바이트 데이터를 기록하기 위해, 약 10㎲의 시간이 요구된다. 다른 한편으로, 마이크로컴퓨터는, 예를 들면, 20㎒의 동작 클럭에 따라 고속으로 동작한다. 이러한 이유로, 플래시 PROM(2)의 커맨드 레지스터가 기록 모드로 설정된 후, 처리는 기록 처리가 인에이블될 때까지 대기해야 한다. 대기 시간은 타이머 유닛(6)을 사용하여 제어된다. 인터럽트 신호가 타이머 유닛(6)과 같은 주변 회로로 부터 인터럽트 요구 발생 유닛(5)으로 출력될 때, 인터럽트 요구 발생 유닛(5)은 인터럽트 우선 순위를 결정한다. 만약 인터럽트의 수신이 인에이블되면, 인터럽트 요구 신호(IRQ)는 "1"로 설정된다. 인터럽트 요구 신호(IRQ)가 "1"로 설정될 때, 프로그램의 실행은 정지되고, 인터럽트 처리가 시작된다. 인터럽트 요구 수신 유닛(17)은 실행 제어 유닛(14)으로 부터의 제어 신호를 토대로 RAM(4)에 PC(11)와 PSW 레지스터(16)의 내용을 저장하고 이 후에 인터럽트 처리 프로그램에 필요한 시작 어드레스를 PC(11)에 설정한다. 이러한 설정에 따라, 인터럽트 처리 프로그램이 시작된다. 인터럽트 처리 프로그램이 종료될 때, RAM(4)에 저장된 내용은 PC(11)와 PSW 레지스터(16)로 복귀되어, 인터럽트 처리 전의 상태를 회복한다.
도 2a는 플래시 PROM(2)의 어드레스(1000H)에 1-바이트 데이터를 기록하기 위한 프로그램의 예를 도시한다. 좌측에 있는 A0 내지 A6은 프로그램이 저장되는 메모리의 어드레스를 나타낸다. 이 프로그램은 ROM(8)에 저장되고 플래시 메모리에 데이터를 기록하는데 사용된다.
A0 : 어드레스 래치(25)에 어드레스(1000H)를 설정함.
A1 : 데이터 래치(23)에 먼저 기록될 데이터(DATA0)를 설정함.
A2 : 기록 모드로 커맨드 레지스터(24)를 설정함.
A3 : 플래시 메모리(21)의 기록 시간을 만족시키기 위한 값으로 타이머 유닛(6)의 비교 레지스터를 설정하고 타이머의 카운트 동작을 시작함.
A4 : 중지(HALT) 모드를 설정함.
중지 모드에서, CPU는 타이머 유닛(6)과 같은 주변 회로가 동작하는 동안 정지한다.
도 2b는 인터럽트 처리 프로그램을 도시한다.
IA0 : NOP 모드로 커맨드 레지스터(24)를 설정함.
IA1 : 타이머 유닛(6)의 카운트 동작을 정지함.
IA2 : 복귀
도 3은 PC(11), 어드레스 래치(25), 데이터 래치(23), 커맨드 레지스터(24) 등의 변화를 도시한 동작 타이밍도이다. 커맨드 레지스터(24)가 기록(WR) 모드로 설정될 때, 선택기(26)는, 어드레스로서, 어드레스 래치(25)에 설정된 값 "1000H"을 플래시 메모리(21)에 출력한다. 중지 모드가 설정될 때, CPU(1)는 정지하며, PC(11)는 어드레스(A4)가 가리켜져있는 동안 정지하고, 플래시 PROM(2)의 액세스는 종료된다. 타이머 유닛(6)의 타이머의 값이 비교 레지스터의 값과 일치할 때, 타이머 유닛(6)은 인터럽트 신호를 타이머 유닛(6)에 출력하고 타이머를 클리어한다. 인터럽트 요구 발생 유닛(5)은 인터럽트 요구 신호(IRQ)를 "1"로 설정한다. 인터럽트 요구 신호(IRQ)가 "1"일 때, 중지 모드는 취소된다. 중지 모드가 취소될 때, PC(11)는 어드레스(A5)를 가리키도록 하나 증가된다. 인터럽트 요구 수신 유닛(17)은 RAM(4)에 PC(11)와 PSW 레지스터(16)의 내용을 저장하고 PC(11)에 인터럽트 처리 프로그램의 시작 어드레스(IA0)를 설정한다. 복귀 명령이 실행될 때, RAM(4)에 저장된 내용은 PC(11)와 PSW 레지스터(16)로 복귀된다. 어드레스(A5)는 PC(11)에 설정되며, 그 결과 어드레스(A5)로 부터의 처리가 실행된다.
상술된 바와 같이, 종래 구성에서, 커맨드 레지스터(24)가 NOP 모드로 설정될 때만, PC(11)의 어드레스에 설정된 데이터가 플래시 메모리(21)로 출력된다. 커맨드 레지스터(24)가 기록 모드로 설정될 때, 플래시 메모리(21)에 저장된 프로그램은 판독될 수 없다. 이러한 이유로, 프로그램을 저장하기 위한 전용 ROM(8)이 필요하다. 이 프로그램은 RAM(4)에 전송될 수 있고 RAM(4)으로 부터 읽어내어질 수 있다. 이 경우에, RAM(4)의 용량은 증가되어야 한다.
또한 먼저 상술된 종래 기술은, 플래시 메모리(21)에 데이터를 기록하기 위한 프로그램을 저장하는 ROM(8)를 구성하는 대신에, 플래시 메모리(21)가 한번에 소거될 수 있는 다수의 블록으로 분할되고, 데이터가 CPU를 사용하여 프로그램을 저장하는 블록 이외의 블록에 기록되는 변형을 설명한다. 일본 무심사 특허 공보 제6-111032호는 어드레스 래치, 데이터 래치, 및 커맨드 래치 모두가 직렬 인터페이스를 사용하여 설정된 제2 종래 기술을 개시한다.
데이터가 플래시 PROM에 기록될 때, 실행될 프로그램을 판독하기 위한 어드레스와 플래시 PROM에 데이터를 기록하기 위한 어드레스 모두가 가리켜져야 한다. 따라서, 플래시 PROM에 데이터를 기록하기 위한 프로그램을 저장하기 위한 전용 메모리가 구성되어야 하며, 이는 칩 크기의 증가를 초래한다. 일본 무심사 특허 공보 제5-266219호에 설명된 변형에서와 같이, 플래시 PROM이 다수의 블록으로 분할되고, 기록 프로그램이 다른 블록에 저장될 때, 어떠한 전용 메모리도 필요하지 않다. 대신에, 프로그램을 실행하기 위한 어드레스와 플래시 PROM에 데이터를 기록하기 위한 어드레스를 스위칭하기 위한 선택기가 플래시 PROM의 각각의 블록에 구성되어야 하며, 그 결과 칩 크기의 증가의 문제는 여전히 해결되지 않게 된다. 대체적으로, 제2 종래 기술에서와 같이, 직렬 회로가 CPU 대신에 어드레스 래치, 데이터 래치, 및 커맨드 레지스터를 설정하고 플래시 PROM에 데이터를 기록하는데 사용될 때, 어드레스 선택기 또는 기록 처리용 전용 메모리는 필요하지 않다. 그러나, 커맨드 레지스터의 설정과 함께 동시에 카운트 동작을 시작하기 위한 타이머는 기록 시간을 대기하도록 구성되어야 하며, 이는 주변 회로의 수의 증가를 초래한다. 이러한 이유로, 칩 크기의 증가의 문제는 거의 해결될 수 없다.
본 발명은 종래 기술의 상기 상황을 고려하여 이뤄져 있고, 본 발명의 목적은 임의의 전용 메모리 또는 주변 회로를 추가하지 않고 플래시 PROM에 데이터의 기록을 가능케 하고 크기의 감소를 실현하는 마이크로컴퓨터를 제공하는 것이다.
상기 목적을 달성하기 위해, 본 발명의 제1 특징에 따르면, 중앙 처리 유닛; 인터럽트 처리 요구를 발생시키기 위한 인터럽트 요구 발생 유닛; 프로그램 메모리에 저장된 프로그램을 사용하여 인터럽트 처리를 수행하기 위한 제1 인터럽트 모드와 상기 프로그램 메모리에 저장된 프로그램을 사용하지 않고 인터럽트 처리를 수행하기 위한 제2 인터럽트 모드를 토대로 인터럽트 처리 요구에 응답하여 두개의 처리 요구를 제어하기 위한 처리 요구 제어 유닛; 및 전기적으로 프로그램가능 및 소거가능한 읽기-전용 메모리로서 역할을 하는 플래시 메모리를 구비하되, 상기 플래시 메모리에/로 부터 기록/소거하는 처리는 상기 제2 인터럽트 모드에서 수행되는 마이크로컴퓨터가 제공된다.
본 발명의 제2 특징에 따르면, 제1 특징의 플래시 메모리는 프로그램가능한 플래시-삭제가능한 메모리 셀; 상기 플래시 메모리에/로 부터 데이터를 기록/삭제하도록 명령하기 위한 커맨드를 보유하기 위한 커맨트 래치; 상기 메모리 셀에 기록될 데이터를 보유하기 위한 데이터 래치; 상기 메모리 셀에/로 부터 데이터를 기록/판독하거나 상기 메모리 셀로 부터 데이터를 삭제하는 처리에 대응하는 어드레스를 보유하기 위한 어드레스 래치; 상기 어드레스 래치와 상기 중앙 처리 유닛으로 부터 출력된 어드레스 신호를 스위칭하고 상기 메모리 셀에 대한 어드레스 데이터를 출력하기 위한 스위칭 회로; 및 상기 메모리 셀의 상기 데이터 래치의 데이터를 기록하며, 상기 메모리 셀로 부터 데이터를 회수하거나, 상기 스위칭 회로로 부터 출력된 어드레스 데이터와 상기 커맨드 래치의 커맨드에 따라 상기 메모리 셀로 부터 데이터를 삭제하기 위한 기록/소거/판독 회로를 구비하는 마이크로컴퓨터가 제공된다.
본 발명의 제3 특징에 따르면, 제2 특징의 플래시 메모리는 상기 어드레스 래치의 어드레스를 증가시키기 위한 증분기를 더 구비하는 마이크로컴퓨터가 제공된다.
본 발명의 제4 특징에 따르면, 제1 내지 제3 특징의 중앙 처리 유닛은 실행될 명령이 저장되는 상기 프로그램 메모리의 어드레스를 가리키기 위한 프로그램 카운터; 상기 프로그램 메모리로 부터 읽어내어진 명령을 실행하기 위한 실행 제어 유닛; 및 상기 실행 제어 유닛의 동작 상태를 저장하기 위한 프로그램 상태 워드 레지스터를 구비하되, 상기 제1 인터럽트 모드에 근거하여 처리 요구가 발생될 때, 상기 중앙 처리 유닛은 프로그램의 실행을 정지하며, 상기 프로그램 카운터와 상기 프로그램 상태 워드 레지스터의 내용을 저장하고, 상기 제1 인터럽트 모드에 근거하여 인터럽트 처리를 실행하도록 상기 프로그램 메모리로 부터 프로그램을 읽어내고, 상기 제2 인터럽트 모드에 근거하여 처리 요구가 발생될 때, 상기 중앙 처리 유닛은 프로그램의 실행을 인터럽트하며, 그 내용은 저장하지 않고 상기 프로그램 카운터와 상기 프로그램 상태 워드 레지스터의 상태를 유지하고, 상기 프로그램 메모리에 저장된 명령을 사용하지 않고 상기 제2 인터럽트 모드에 근거하여 인터럽트 처리를 실행하는 마이크로컴퓨터가 제공된다.
본 발명의 제5 특징에 따르면, 상기 인터럽트 요구 발생 유닛에 연결된 직렬 통신 회로를 더 구비하되, 상기 제2 인터럽트 모드에 근거한 처리 요구는 상기 직렬 통신 회로에 의해 로드된 데이터가 상기 플래시 메모리에 기록될 수 있도록 상기 직렬 통신 회로에 의해 수신된 인터럽트에 응답하여 설정되는 마이크로컴퓨터가 제공된다.
상기 특징으로 부터 명백하듯이, 본 발명에 따르면, 처리 요구 제어 유닛의 인터럽트 처리는 제1 및 제2 인터럽트 모드에 대한 두개의 처리 요구를 포함한다. 특히, 제2 인터럽트 모드에서, 인터럽트 처리는 프로그램 메모리에 저장된 프로그램을 사용하지 않고 실행될 수 있다. 이러한 이유로, 플래시 메모리에 데이터를 기록하기 위한 프로그램을 실행하기 위해 어떠한 전용 메모리도 필요하지 않는다. 직렬 통신 회로에 의한 수신 인터럽트에 대해, 제2 인터럽트 모드가 설정된다. 이 경우에, 직렬 통신 회로에 의해 로드된 데이터는 RAM 등에 저장되지 않고 플래시 PROM에 직접 기록될 수 있어, 데이터를 저장하기 위한 RAM은 생략될 수 있다. 데이터가 직렬 통신 회로를 사용하여 외부 회로로 부터 전달될 지라도, CPU를 사용하여 플래시 메모리에 데이터를 기록하는 처리가 실행될 수 있고, 플래시 메모리의 기록 처리를 제어하기 위한 어떠한 전용 메모리도 독립하여 구성될 필요가 없다. 따라서, 사용될 칩의 크기는 감소될 수 있고, 소형 및 저비용의 마이크로컴퓨터가 제공될 수 있다.
본 발명의 상기와 많은 다른 목적, 특징, 및 장점은 본 발명의 이론을 포함한 바람직한 실시예가 설명된 예를 사용하여 도시된 다음의 상세한 설명과 첨부된 도면을 참조하여 기술 분야에 숙련자에게서 명백해질 것이다.
도 1은 종래 마이크로컴퓨터의 구성을 도시한 블록도.
도 2a와 도 2b는 도 1에 도시된 종래 기술의 플래시 PROM의 동작의 플로우차트로, 도 2a는 기록 프로그램의 플로우차트이고, 도 2b는 인터럽트 루틴의 플로우차트.
도 3은 도 1에 도시된 종래 기술의 플래시 PROM에 기록에 관련된 타이밍도.
도 4는 본 발명의 제1 실시예의 구성을 도시한 블록도.
도 5는 RAM에 관련하여 본 발명의 레지스터 유닛의 구성을 도시한 도면.
도 6은 제1 실시예에서 제2 인터럽트 모드의 처리의 흐름을 도시한 플로우차트.
도 7a와 도 7b는 도 4에 도시된 제1 실시예에서 플래시 PROM의 동작의 플로우차트로, 도 7a는 기록 프로그램의 플로우차트이고, 도 7b는 인터럽트 루틴의 플로우차트.
도 8은 인터럽트 처리에서 다양한 구성 소자의 변화를 도시한 타이밍도.
도 9는 타이머의 값이 10번째 시간에 대한 비교 레지스터의 값과 일치할 때 수행된 인터럽트 처리의 다양한 구성 소자의 변화를 도시한 타이밍도.
도 10은 본 발명의 제2 실시예의 구성을 도시한 블록도.
도 11a와 도 11b는 도 10에 도시된 제2 실시예에 사용된 레지스터 구성과 제2 인터럽트 모드에 근거한 처리의 플로우차트를 도시한 도면.
도 12는 도 10에 도시된 제2 실시예에서 플래시 PROM에 데이터를 기록하기 위한 프로그램의 플로우차트.
도 13은 도 10에 도시된 제2 실시예의 인터럽트 처리에서 다양한 구성 소자의 변화를 도시한 타이밍도.
<도면의 주요 부분에 대한 부호의 설명>
1 : 중앙 처리 유닛
2 : 플래시 PROM
3 : 레지스터 유닛
4 : RAM
5 : 인터럽트 요구 발생 유닛
6 : 타이머 유닛
7 : 내부 버스
11 : PC
12 : 명령 레지스터
13 : 명령 복호기
14 : 실행 제어 유닛
15 : ALU
16 : PSW
17 : 인터럽트 요구 수신 유닛
21 : 플래시 메모리
22 : WER 회로
23 : 데이터 래치
24 : 커맨드 레지스터
25 : 어드레스 래치
26 : 선택기
27 : 증분기
본 발명의 바람직한 실시예가 첨부된 도면을 참조하여 아래에 설명될 것이 다. 도 4는 본 발명의 제1 실시예의 블록도이다. 이 실시예의 마이크로컴퓨터는 CPU(중앙 처리 유닛)(1), 플래시 PROM(2), 레지스터 유닛(3), RAM(4), 인터럽트 요구 발생 유닛(5), 타이머 유닛(6), 및 이들 유닛을 연결하기 위한 내부 버스(7)를 구비한다. 도 1에 도시된 ROM(8)은 생략된다. CPU(1)는 내부 버스(7)를 통해 전송된 데이터를 기록하고 어드레스 신호(ADR)를 플래시 PROM(2)에 출력하기 위한 PC(프로그램 카운터)(11), 내부 버스(7)를 통해 전송된 명령 코드를 래치하기 위한 명령 레지스터(12), 명령 레지스터(12)의 출력으로 부터 명령 코드를 복호하기 위한 명령 복호기(13), 명령 복호기(13)로 부터 복호된 결과에 따라 명령을 실행하기 위한 실행 제어 유닛(14), 예를 들면, 내부 버스(7)를 통해 전송된 두개의 데이터를 로드하며, 실행 제어 유닛(14)에 따른 계산을 수행하며, 계산 결과를 내부 버스(7)에 출력하고, 계산 결과에 따른 플래그 변화를 PSW(프로그램 상태 워드) 레지스터(16)에 출력하기 위한 ALU(계산기)(15), ALU(15)로 부터의 계산 결과에 따라 플래그를 보유하기 위한 레지스터로서 역할을 하는 PSW 레지스터(16), 및 인터럽트 요구 발생 유닛(5)로 부터 출력된 인터럽트 요구 신호(IRQ)와 인터럽트 모드를 나타내는 인터럽트 모드 신호(IMODE)에 따라 인터럽트 처리를 제어하기 위한 처리 요구 제어 유닛으로서 역할을 하는 인터럽트 요구 수신 유닛(17)을 구비한다.
플래시 PROM(2)은 플래시 메모리(21), WER 회로(기록/소거/판독 제어 회로)(22), 내부 버스(7)로 부터 플래시 메모리(21)에 기록될 데이터를 래치하기 위한 데이터 래치(23), 내부 버스(7)로 부터 WER 회로(22)에 공급될 커맨드를 래치하기 위한 커맨드 레지스터(24), 내부 버스(7)로 부터 플래시 메모리(21)에서 기록 모드로 사용될 어드레스를 래치하기 위한 어드레스 래치(25), 어드레스 신호(ADR)와 어드레스 래치(25)로 부터의 출력 신호를 스위칭하고 선택된 신호를 어드레스로서 플래시 메모리(21)에 출력하기 위한 선택기(26), 및 어드레스 래치의 값을 하나씩 증가시키기 위한 증분기(27)를 구비한다. 커맨드 레지스터(24)가 기록/소거 처리 이외의 처리, 즉 정상 판독 처리를 나타내는 NOP 모드일 때, 선택기(26)는 어드레스 신호(ADR)를 어드레스로서 플래시 메모리(21)에 출력한다. 커맨드 레지스터(24)가 NOP 모드가 아닐 때, 선택기(26)는 어드레스 래치(25)로 부터의 출력 신호를 어드레스로서 플래시 메모리(21)에 출력한다.
레지스터 유닛(3)은 프로그램 등에 대한 값을 저장하는데 사용되고 또한 RAM(4)의 어드레스를 가리키는데 사용된다. RAM(4)은 내부 버스(7)로 부터 어드레스를 수신하고 내부 버스(7)로 부터/로 데이터를 수신/출력한다. 타이머 유닛(6)은 내부 클럭에 동기하여 카운트 동작을 수행하기 위한 타이머와, 비교 레지스터에 의해 구성된다. 타이머의 값이 비교 레지스터의 값과 일치할 때, 타이머 유닛(6)은 인터럽트 신호를 인터럽트 요구 발생 유닛(5)에 출력하고 타이머를 클리어한다. 인터럽트 요구 발생 유닛(5)은 타이머 유닛(6)과 같은 주변 회로로 부터 인터럽트 요구를 수신하고 인터럽트 모드 신호(IMODE)와 인터럽트 요구 신호(IRQ)를 CPU(1)의 인터럽트 요구 수신 유닛(17)에 출력한다.
상기 구성을 갖는 마이크로컴퓨터의 동작이 설명될 것이다.
[명령의 실행]
프로그램의 실행이 설명될 것이다. PC(11)는, 어드레스 신호(ADR)로서, 실행될 명령이 저장된 어드레스를 출력한다. 커맨드 레지스터(24)가 NOP 모드로 설정되기 때문에, 선택기(26)는 어드레스 신호(ADR)를 플래시 메모리(21)에 출력한다. 플래시 메모리(21)는 ROM의 내용을 어드레스 신호(ADR)에 따라 WER 회로(22)를 통해 내부 버스(7)에 출력한다. 내부 버스(7)를 통해 전송된 명령 코드는 명령 레지스터(12)에 의해 래치되고 명령 복호기(13)에 의해 복호된다. 실행 제어 유닛(14)은 ALU(15)의 동작을 가리키고 명령 복호기(13)로 부터 복호된 결과에 따라 레지스터 유닛(3)의 레지스터를 가리킨다. ALU(15)로 부터의 계산 결과는 내부 버스(7)를 통해 전송되고 레지스터 유닛(3)에 기록된다. PSW 레지스터(16)의 플래그는 ALU(15)로 부터의 계산 결과에 따라 변한다. PC(11)는 다음에 실행될 명령이 저장되어 있는 어드레스를 준비하기 위해 명령을 실행한 후 하나씩 증가된다. 명령은 상기 방법으로 실행된다.
[인터럽트 처리]
인터럽트 처리의 흐름이 설명될 것이다. 도 4에는, 타이머 유닛(6)만이 도시된다. 정상적으로, 다수의 주변 회로가 타이머 유닛(6)에 추가하여 연결된다. 인터럽트 신호가 타이머 유닛(6)과 같은 주변 회로로 부터 인터럽트 요구 발생 유닛(5)에 출력될 때, 인터럽트 요구 발생 유닛(5)은 인터럽트 우선 순위를 결정한다. 만약 인터럽트의 수신이 인에이블 된다면, 인터럽트 요구 신호(IRQ)는 "1"로 설정된다. 더욱이, 인터럽트 모드의 설정에 따라, 인터럽트 모드 1이 설정될 때, 인터럽트 모드 신호(IMODE)는 "0"으로 설정된다. 인터럽트 모드 2가 설정될 때, 인터럽트 모드 신호(IMODE)는 "1"로 설정된다. 인터럽트 모드 1은 종래 기술에 설명된 정상 인터럽트 처리이고, 그 상세한 설명은 생략될 것이다.
인터럽트 모드 2를 사용하여 플래시 PROM에 RAM(4)에 저장된 데이터를 기록하기 위한 동작이 설명될 것이다. 도 5는 인터럽트 모드 2에 사용된 레지스터 유닛(3)의 구성을 도시한 도면이다. 도 5는 타이머 유닛(6)의 인터럽트에 대응하는 부분을 설명한다. 다른 인터럽트 처리에 대해, 대응하는 레지스터가 준비된다. 이 예에서, 레지스터 유닛(3)이 사용된다. 그러나, RAM(4)의 특정한 어드레스가 레지스터 대신에 사용될 수 있다. 타이머 제어 레지스터 등은 특별한 기능 레지스터(이하에 SFRs라고 함)라 칭한다. SFR의 각각의 레지스터가 설명될 것이다.
레지스터(MSC)는 인터럽트 모드 2의 처리 시간의 수를 가리킨다. MSC=0일 때, 인터럽트 모드 2는 종료되고, 인터럽트 모드 1의 처리가 시작된다. 레지스터(SFRP1과 SFRP2)는 SFR의 어드레스를 가리킨다. 레지스터(CMD1과 CMD2)는 레지스터(SFRP1)에 의해 지시된 어드레스로 설정될 데이터를 나타낸다. 레지스터(MEMP)는 레지스터(SFRP2)에 의해 지시된 어드레스로 전송될 데이터가 저장되는 어드레스를 가리킨다. 이 예에서, 레지스터(MEMP)는 데이터가 저장된 RAM(4)의 어드레스를 가리킨다.
인터럽트 모드 2가 설정될 때, 다음의 처리가 수행된다. 도 6은 인터럽트 모드 2의 플로우차트이다. 인터럽트 모드 2의 흐름이 설명될 것이다. 먼저, 레지스터(CMD1)의 내용이 레지스터(SFRP1)(S11)에 의해 지시된 레지스터로 전송된다. 레지스터(MSC)의 내용은 하나씩 감소된다(S12). 만약 MSC=0일 때, 인터럽트 모드는 인터럽트 모드 1로 변경되고, 인터럽트 요구가 발생되어, 처리(S13 내지 S15)를 종료한다. 그 후, 인터럽트 모드 1에 근거한 인터럽트 처리가 실행된다. 만약 MSC≠0이면, 레지스터(MEMP)에 의해 지시된 어드레스에 있는 RAM의 내용이 레지스터(SFRP2)(S16)에 의해 표현된 어드레스에 있는 (SFR)로 전송된다. 레지스터(CMD2)의 내용은 레지스터(SFRP1)(S17)에 의해 지시된 레지스터로 전송된다. 그후, 레지스터(MEMP)의 값은 하나씩 증가된다(S18).
[인터럽트 모드 2에 근거한 플래시 PROM 기록 프로그램의 예]
도 7a는 인터럽트 모드 2에서 어드레스(1000H)로 부터 10-바이트를 기록하기 위한 프로그램의 예를 도시한다. 먼저, 레지스터는 인터럽트 모드 2에 근거하여 처리하기 위해 설정된다. "10"의 값은 레지스터(MSC)에 설정되며, 커맨드 레지스터(24)의 어드레스는 레지스터(SFRP1)에 설정되며, NOP 커맨드를 나타내는 데이터는 레지스터(CMD1)에 설정되며, 기록 커맨드를 나타내는 데이터는 레지스터(CMD2)에 설정되며, 데이터 래치(23)의 어드레스는 레지스터(SFRP2)에 설정되고, 제2 바이트로 기록될 데이터(DATA1)가 저장되어 있는 어드레스가 레지스터(MEMP)에 설정된다. 더욱이, 인터럽트 요구 발생 유닛(5)은 타이머 유닛(6)의 인터럽트 처리가 인터럽트 모드 2로 수행되도록 설정된다.
어드레스(A0 내지 A4)는 다음과 같이 설정된다.
A0 : 데이터 래치(23)에 먼저 기록될 데이터(DATA0)를 설정함.
A1 : 어드레스 래치(25)에 어드레스(1000H)를 설정함.
A2 : 플래시 메모리(21)의 기록 시간을 만족시키는 값으로 타이머 유닛(6)의 비교 레지스터를 설정하고, 타이머의 카운트 동작을 시작함.
A3 : 기록 모드로 커맨드 레지스터(24)를 설정하고, 중지 모드를 설정함.
도 7b는 인터럽트 모드 1에서 사용된 인터럽트 처리 프로그램을 도시한다. 이 프로그램은 어드레스(IA0)에서 주 루틴으로 복귀한다.
도 8은 PC(11), 어드레스 래치(25), 데이터 래치(23), 커맨드 레지스터(24), 레지스터(MSC), 레지스터(MEMP) 등의 변화를 도시한 타이밍도이다. 중지 모드에서, CPU(1)는 타이머 유닛(6)과 같은 주변 회로가 동작하는 동안 정지한다. 커맨드 레지스터(24)가 기록(WR) 모드로 설정될 때, 선택기(26)는, 어드레스로서, 어드레스 래치(25)에 설정된 값을 플래시 메모리(21)에 출력한다. 중지 모드가 설정될 때, CPU(1)는 정지하며, PC(11)는 어드레스(A3)가 가리켜져 있는 동안 정지하고, 플래시 PROM(2)에 대한 액세스가 종료된다.
타이머 유닛(6)의 타이머의 값이 비교 레지스터의 값과 일치할 때, 타이머 유닛(6)은 인터럽트 신호를 인터럽트 요구 발생 유닛(5)에 출력하고 타이머를 클리어한다. 타이머 유닛(6)이 인터럽트 모드 2로 설정될 때, 인터럽트 요구 발생 유닛(5)은 인터럽트 요구 신호(IRQ)를 "1"로 설정하고 인터럽트 모드 신호(IMODE)를 "1"로 설정한다. 인터럽트 모드 신호(IMODE)가 "1"이기 때문에, 도 6에 도시된 흐름이 실행된다. 레지스터(SFRP1)가 커맨드 레지스터(24)를 가리키고, 레지스터(CMD1)가 NOP 커맨드를 가리키기 때문에, 커맨드 레지스터(24)는 NOP 모드로 설정된다. 커맨드 레지스터(24)가 NOP 모드로 설정될 때, 어드레스 래치(25)는 증분기(27)에 의해 하나씩 증가된 값을 래치한다. 다음에, 레지스터(MSC)의 값은 "9"까지 하나씩 감소된다. 레지스터(CMD2)가 기록 커맨드를 가리키기 때문에, 커맨드 레지스터(24)는 기록 모드로 설정된다. 레지스터(MEMP)의 값은 (1001H)까지 하나씩 증가된다.
상기 처리는 인터럽트 요구 수신 유닛(17)에 의해 수행된다. 인터럽트 요구 수신 유닛(17)은 명령 레지스터의 값에 독립하여 동작하고 PC(11)에 의해 가리켜진 어드레스에 있는 데이터를 판독하지 않는다. 인터럽트 요구 신호(IRQ)가 "1"이고, 인터럽트 모드 신호(IMODE)가 "1"일 때, 중지 모드는 인터럽트 처리 동안 취소된다. 인터럽트 처리가 종료된 후, 중지 모드는 다시 설정된다. 그 후, 타이머의 값이 비교 레지스터의 값과 일치할 때마다, 플래시 메모리에서의 기록 처리는 반복된다.
도 9는 타이머의 값이 10번째 시간에 대한 비교 레지스터의 값과 일치할 때 수행된 인터럽트 처리의 타이밍도이다. 커맨드 레지스터(24)가 NOP 모드로 설정될 때, 레지스터(MSC)의 값은 "0"까지 하나씩 감소된다. MSC=0이기 때문에, 인터럽트 모드는 인터럽트 모드 1로 변경된다. 인터럽트 요구 신호(IRQ)가 "1"로 다시 설정될 때, 중지 모드는 인터럽트 모드 신호(IMODE)가 "0"이고, 인터럽트 요구 신호(IRQ)가 "1"이기 때문에 취소된다. 인터럽트 처리가 인터럽트 모드 1에 근거하여 수행될 때, 도 7b에 도시된 인터럽트 처리 루틴의 어드레스(IA0)는 PC(11)에서 설정된다. 이 예에서, 어떠한 처리도 인터럽트 처리 루틴에서 수행되지 않고 인터럽트 처리 루틴은 주 루틴에 복귀한다. 이러한 이유로, 타이머가 주 루틴의 어드레스(A4)에서 정지되어, 10-바이트 데이터의 기록을 종료한다.
본 발명의 제2 실시예가 도 10를 참조하여 아래에 설명될 것이다. 마이크로컴퓨터는 도 4에 도시된 바와 같은 동일한 구성을 갖는다. 그러나, 제2 실시예에서, 도 4에 도시된 타이머 유닛(6) 뿐만 아니라 직렬 통신 회로(30)가 주변 회로로서 포함된다. 이러한 구성에 따라, 직렬 통신 회로(30)에 의해 수신된 데이터는 플래시 PROM(2)에 직접 기록될 수 있다. 도 11a와 도 11b는 인터럽트 모드 2에서 사용된 흐름과 레지스터를 도시한다. 도 11a는 직렬 통신 회로의 수신 인터럽트에 사용된 흐름과 레지스터를 도시한다. 도 11b는 타이머 일치 인터럽트에 사용된 흐름과 레지스터를 도시한다. 도 11a와 도 11b를 참조하여, 레지스터(MSC)는 인터럽트 모드 2의 처리 시간의 수를 가리킨다. 레지스터(SFRP11, SFRP21, SFRP31, SFRP41, SFRP12, 및 SFRP22)는 (SFR)의 어드레스를 가리킨다. 레지스터(CMD31, CMD41, CMD12, 및 CMD22)는 (SFR)에 설정될 데이터를 가리킨다.
도 11a에 도시된 직렬 수신 인터럽트에 근거한 인터럽트 모드 2의 흐름이 설명될 것이다. 먼저, 레지스터(SFRP11)에 의해 가리켜진 (SFR)의 내용이 레지스터(SFRP21)에 의해 가리켜진 (SFR)에 전송된다(S21). 다음에, 레지스터(CMD31)의 내용은 레지스터(SFRP31)에 의해 가리켜진 SFR에 설정된다(S22). 레지스터(CMD41)의 내용은 레지스터(SFR41)에 의해 가리켜진 (SFR)에 설정된다(S23).
도 11b에 도시된 타이머 일치 인터럽트에 근거하여 인터럽트 모드 2의 흐름이 설명될 것이다. 먼저, 레지스터(CMD12)의 내용은 레지스터(SFRP12)에 의해 가리켜진 (SFR)에 설정된다(S31). 다음에, 레지스터(CMD22)의 내용은 레지스터(SFRP22)에 의해 가리켜진 (SFR)에 설정된다(S32). 레지스터(MSC)의 내용은 하나 감소된다(S3). 만약 MSC≠0이면, 처리는 종료된다(S34). 만약 MSC=0이면, 인터럽트 모드는 인터럽트 모드 1로 변경되고(S35), 인터럽트 요구가 발생된다(S36). 그 후, 인터럽트 모드 1에 근거한 인터럽트 처리가 실행된다.
[인터럽트 모드 2에 근거한 플래시 PROM 기록 프로그램]
도 12는 인터럽트 모드 2에서 어드레스(1000H)로 부터 직렬 통신 회로에 의해 수신된 10-바이트 데이터를 기록하기 위한 프로그램의 예를 도시한다. 먼저, 레지스터는 직렬 수신 인터럽트에 근거하여 인터럽트 모드 2로 처리하도록 설정된다. 직렬 수신 레지스터의 어드레스는 레지스터(SFRP11)에 설정되며, 데이터 래치(23)의 어드레스는 레지스터(SFRP21)에 설정되며, 커맨드 레지스터(24)의 어드레스는 레지스터(SFRP31)에 설정되며, 기록 커맨드를 나타낸 데이터는 레지스터(CMD31)에 설정되며, 타이머 유닛(6)의 제어 레지스터의 어드레스는 레지스터(SFRP41)에 설정되고, 타이머 유닛(6)의 동작을 정지시키기 위한 데이터는 레지스터(CMD41)에 설정된다. 다음에, 레지스터는 타이머 인터럽트에 근거하여 인터럽트 모드 2로 처리하도록 설정된다. "10"의 값이 레지스터(MSC)에 설정되며, 커맨드 레지스터(24)의 어드레스는 레지스터(SFRP12)에 설정되며, NOP 커맨드를 나타낸 데이터는 레지스터(CMD12)에 설정되며, 타이머 유닛(6)의 제어 레지스터의 어드레스는 레지스터(SFRP22)에 설정되고 타이머 유닛(6)의 동작을 정지시키기 위한 데이터는 레지스터(CMD22)에 설정된다. 더욱이, 인터럽트 요구 발생 유닛(5)은 직렬 수신 인터럽트와 타이머 유닛(6)의 인터럽트 처리가 인터럽트 모드 2에서 수행되도록 설정된다.
A0 : 어드레스 래치(25)에 어드레스(1000H)를 설정함.
A1 : 중지 모드를 설정함.
도 13은 PC(11), 어드레스 래치(25), 데이터 래치(23), 커맨드 레지스터(24), 레지스터(MSC) 등의 변화를 도시한 동작 타이밍도이다. 데이터를 수신하자마자, 직렬 통신 회로(30)는 수신 완료 인터럽트 신호를 인터럽트 요구 발생 유닛(5)에 출력한다. 직렬 수신 인터럽트 모드 2가 설정되어 있기 때문에, 인터럽트 요구 발생 유닛(5)은 인터럽트 요구 신호(IRQ)를 "1"로 설정하고 인터럽트 모드 신호(IMODE)를 "1"로 설정한다. 인터럽트 모드 신호(IMODE)가 "1"이기 때문에, 도 11a에 도시된 흐름이 실행된다. 레지스터(SFRP11)가 직렬 수신 레지스터의 어드레스를 가리키고, 레지스터(SFRP21)가 데이터 래치(23)의 어드레스를 가리키기 때문에, 직렬 수신 레지스터의 내용은 데이터 래치에 설정된다. 레지스터(CMD31)가 기록 커맨드 데이터를 가리키고, 레지스터(SFRP31)가 커맨드 레지스터(24)의 어드레스를 가리키기 때문에, 커맨드 레지스터(24)가 기록 모드로 설정된다. 커맨드 레지스터(24)가 기록 모드로 설정되기 때문에, 선택기(26)는 어드레스 래치(25)의 내용을 플래시 메모리(21)에 출력한다. 레지스터(CMD41)가 타이머 유닛(6)의 카운트 동작을 시작하기 위한 값을 갖고, 레지스터(SFRP41)가 타이머 유닛(6)의 제어 레지스터의 어드레스를 가리키기 때문에, 타이머 유닛(6)은 카운트 동작을 시작한다. 인터럽트 요구 신호(IRQ)가 "1"이고, 인터럽트 모드 신호(IMODE)가 "1"일 때, 중지 모드는 인터럽트 처리 동안 취소된다. 인터럽트 처리가 완료될 때, 중지 모드는 다시 설정된다.
타이머 유닛(6)의 타이머의 값이 비교 레지스터의 값과 일치할 때, 타이머 유닛(6)은 인터럽트 신호를 인터럽트 요구 발생 유닛(5)에 출력한다. 타이머 인터럽트가 인터럽트 모드 2로 설정되기 때문에, 인터럽트 요구 발생 유닛(5)은 인터럽트 요구 신호(IRQ)를 "1"로 설정하고 인터럽트 모드 신호(IMODE)를 "1"로 설정한다. 인터럽트 모드 신호(IMODE)가 "1"이기 때문에, 도 11b에 도시된 흐름이 실행된다. 레지스터(CMD12)는 NOP 커맨드 데이터를 나타내고, 레지스터(SFRP12)는 커맨드 레지스터(24)의 어드레스를 가리키며, 커맨드 레지스터(24)는 NOP 모드로 설정된다. 커맨드 레지스터(24)가 NOP 모드로 설정될 때, 어드레스 래치(25)는 증분기(27)에 의해 하나씩 증가된 값을 래치한다. 레지스터(CMD22)가 타이머 유닛(6)의 동작을 정지시키기 위한 데이터를 갖고, 레지스터(SFRP22)가 타이머 유닛(6)의 제어 레지스터의 어드레스를 가리키기 때문에, 타이머 유닛(6)은 카운트 동작을 정지한다. 레지스터(MSC)의 값은 "9"까지 하나 감소된다. MSC≠0이기 때문에, 인터럽트 모드 2의 처리는 종료된다. 인터럽트 요구 신호(IRQ)가 "1"이고, 인터럽트 모드 신호(IMODE)가 "1"일 때, 중지 모드는 인터럽트 처리 동안 취소된다. 인터럽트 처리가 종료된 후, 중지 모드는 다시 설정된다. 플래시 PROM(2)에 직렬 통신 회로(30)에 의해 수신된 데이터를 기록하는 처리는 레지스터(MSC)의 값이 0이 될 때까지 반복된다. 이 예의 타이머 인터럽트에 대해, 레지스터(MSC)는 플래시 메모리에 기록될 데이터의 수를 설정하도록 구성된다. 그러나, 레지스터(MSC)는 생략될 수 있고, 마이크로컴퓨터는 필요한 바이트수가 전송된 후 리셋될 수 있고, 플래시 PROM(2)에 기록된 프로그램이 실행될 수 있다.
본 발명의 제3 실시예가 다음에 설명될 것이다. 이 실시예에서, 증분기(27)는 제1 실시예에서 도 4에 도시된 블록도로 부터 생략되고, 어드레스 래치(25)의 어드레스를 가리키기 위한 레지스터(SFRP3)는 증가 처리가 CPU(1)의 ALU(15)에 의해 수행될 수 있도록 타이머 인터럽트에 근거하여 인터럽트 모드 2를 처리하기 위한 레지스터로서 준비된다. 하드웨어 크기는 CPU(1)의 ALU(15)를 사용함으로써 감소될 수 있다. 이러한 처리의 흐름이 아래에 설명될 것이다. 레지스터(CMD1)의 내용은 레지스터(SFRP1)에 의해 가리켜진 레지스터에 전송된다. 레지스터(MSC)의 내용은 하나 감소된다. 만약 MSC=0이면, 인터럽트 모드는 인터럽트 모드 1로 변경되고, 인터럽트 요구가 발생되어, 처리를 종료한다. 그 후, 인터럽트 모드 1에 근거한 인터럽트 처리가 실행된다. 레지스터(SFRP3)에 의해 가리켜진 어드레스에 있는 SFR의 내용은 읽어내어지고, 읽어내어진 값은 ALU(15)에 의해 하나 감소되고 레지스터(SFRP3)에 의해 가리켜진 SFR에 재기록된다. 만약 MSC≠0이면, 레지스터(MEMP)에 의해 가리켜진 어드레스에서의 내용이 레지스터(SFRP2)에 의해 가리켜진 어드레스에서 SFR로 전송된다. 레지스터(MEMP)의 값은 하나 증가된다. 중지 모드는 설정되고, 처리가 종료된다.
이와 같은 인터럽트 모드 2가 준비될 때, 도 4에 도시된 블록도에서와 같이, 데이터가 플래시 PROM에 기록될 수 있다. 기록 처리는 상술되었다. 기록된 데이터를 검증 또는 삭제하는 처리도 또한 인터럽트 모드 2에서 수행될 수 있다.
일본 심사 특허 공보 제4-14736호는 두개의 인터럽트 모드를 구성하면서 데이터 전송 등을 수행하는 방법을 개시한다. 본 발명은 간단한 데이터 전송 뿐만 아니라 데이터 설정과 커맨드 설정이 수행된다는 점에서 이러한 종래 기술과 차이가 있다.
상기 특징으로 부터 명백하듯이, 본 발명에 따르면, 처리 요구 제어 유닛의 인터럽트 처리는 제1 및 제2 인터럽트 모드에 대한 두개의 처리 요구를 포함한다. 특히, 제2 인터럽트 모드에서, 인터럽트 처리는 프로그램 메모리에 저장된 프로그램을 사용하지 않고 실행될 수 있다. 이러한 이유로, 플래시 메모리에 데이터를 기록하기 위한 프로그램을 실행하기 위해 어떠한 전용 메모리도 필요하지 않는다. 직렬 통신 회로에 의한 수신 인터럽트에 대해, 제2 인터럽트 모드로 설정된다. 이 경우에, 직렬 통신 회로에 의해 로딩된 데이터는 RAM 등에 저장되지 않고 플래시 PROM에 직접 기록될 수 있으며, 그래서 데이터를 저장하기 위한 RAM은 생략될 수 있다. 데이터가 직렬 통신 회로를 사용하여 외부 회로로 부터 송신될 지라도, CPU를 사용하여 플래시 메모리에 데이터를 기록하는 처리가 실행될 수 있고, 플래시 메모리의 기록 처리를 제어하기 위한 어떠한 전용 메모리도 독립하여 구성될 필요가 없다. 따라서, 사용될 칩의 크기는 감소될 수 있고, 소형 및 저비용의 마이크로컴퓨터가 제공될 수 있다.
본 발명의 상기와 많은 다른 목적, 특징, 및 장점은 본 발명의 이론을 포함한 바람직한 실시예가 설명된 예를 사용하여 도시된 다음의 상세한 설명과 첨부된 도면을 참조하여 기술 분야에 숙련자에게서 명백해질 것이다.

Claims (5)

  1. 마이크로컴퓨터에 있어서,
    중앙 처리 유닛;
    인터럽트 처리 요구를 발생시키기 위한 인터럽트 요구 발생 유닛;
    상기 인터럽트 처리 요구에 응답하여 프로그램 메모리에 저장된 프로그램을 사용하여 인터럽트 처리를 수행하기 위한 제1 인터럽트 모드와 상기 프로그램 메모리에 저장된 프로그램을 사용하지 않고 인터럽트 처리를 수행하기 위한 제2 인터럽트 모드에 근거하여 두개의 처리 요구를 제어하기 위한 처리 요구 제어 유닛; 및
    전기적으로 프로그램가능 및 소거가능한 읽기-전용 메모리로서 역할을 하는 플래시 메모리
    를 구비하되,
    상기 플래시 메모리에/로 부터 기록/삭제하는 처리는 상기 제2 인터럽트 모드에서 수행되는 것을 특징으로 하는 마이크로컴퓨터.
  2. 제1항에 있어서,
    상기 플래시 메모리는
    프로그램가능한 플래시-소거가능한 메모리 셀;
    상기 플래시 메모리에/로 부터 데이터를 기록/삭제하도록 명령하기 위한 커맨드를 보유하기 위한 커맨트 래치;
    상기 메모리 셀에 기록될 데이터를 보유하기 위한 데이터 래치;
    상기 메모리 셀에/로 부터 데이터를 기록/판독하거나 상기 메모리 셀로 부터 데이터를 삭제하는 처리에 대응하는 어드레스를 보유하기 위한 어드레스 래치;
    상기 어드레스 래치와 상기 중앙 처리 유닛으로 부터 출력된 어드레스 신호를 스위칭하고 상기 메모리 셀에 대한 어드레스 데이터를 출력하기 위한 스위칭 회로; 및
    상기 메모리 셀에 상기 데이터 래치의 데이터를 기록하며, 상기 메모리 셀로 부터 데이터를 읽어내거나(reading out), 상기 스위칭 회로로 부터 출력된 어드레스 데이터와 상기 커맨드 래치의 커맨드에 따라 상기 메모리 셀로 부터 데이터를 삭제하기 위한 기록/삭제/판독 회로
    를 구비하는 것을 특징으로 하는 마이크로컴퓨터.
  3. 제2항에 있어서,
    상기 플래시 메모리는 상기 어드레스 래치의 어드레스를 증가시키기 위한 증분기를 더 구비하는 것을 특징으로 하는 마이크로컴퓨터.
  4. 제1항에 있어서,
    상기 중앙 처리 유닛은
    실행될 명령이 저장되는 상기 프로그램 메모리의 어드레스를 가리키기 위한 프로그램 카운터;
    상기 프로그램 메모리로 부터 읽어내어진 명령을 실행하기 위한 실행 제어 유닛; 및
    상기 실행 제어 유닛의 동작 상태를 저장하기 위한 프로그램 상태 워드 레지스터
    를 구비하되,
    상기 제1 인터럽트 모드에 근거한 처리 요구가 발생될 때, 상기 중앙 처리 유닛은 프로그램의 실행을 정지하며, 상기 프로그램 카운터와 상기 프로그램 상태 워드 레지스터의 내용을 저장하고, 상기 제1 인터럽트 모드에 근거한 인터럽트 처리를 실행하는 프로그램을 상기 프로그램 메모리로 부터 읽어내고, 상기 제2 인터럽트 모드에 근거한 처리 요구가 발생될 때, 상기 중앙 처리 유닛은 프로그램의 실행을 인터럽트하며, 그 내용은 저장하지 않고 상기 프로그램 카운터와 상기 프로그램 상태 워드 레지스터의 상태를 유지하고, 상기 프로그램 메모리에 저장된 명령을 사용하지 않고 상기 제2 인터럽트 모드에 근거한 인터럽트 처리를 실행하는 것을 특징으로 하는 마이크로컴퓨터.
  5. 제1항에 있어서,
    상기 인터럽트 요구 발생 유닛에 연결된 직렬 통신 회로를 더 구비하되,
    상기 제2 인터럽트 모드에 근거한 처리 요구는 상기 직렬 통신 회로에 의해 로드된 데이터가 상기 플래시 메모리에 기록될 수 있도록 상기 직렬 통신 회로에 의해 수신된 인터럽트에 응답하여 설정되는 것을 특징으로 하는 마이크로컴퓨터.
KR1019970054776A 1996-10-25 1997-10-24 마이크로컴퓨터 Expired - Fee Related KR100264758B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP96-283644 1996-10-25
JP8283644A JPH10124474A (ja) 1996-10-25 1996-10-25 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
KR19980033145A KR19980033145A (ko) 1998-07-25
KR100264758B1 true KR100264758B1 (ko) 2000-09-01

Family

ID=17668196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970054776A Expired - Fee Related KR100264758B1 (ko) 1996-10-25 1997-10-24 마이크로컴퓨터

Country Status (3)

Country Link
US (1) US6269429B1 (ko)
JP (1) JPH10124474A (ko)
KR (1) KR100264758B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3785299B2 (ja) * 2000-03-16 2006-06-14 本田技研工業株式会社 車両制御装置のためのメモリ書き換えシステム
JP2002269065A (ja) * 2001-03-08 2002-09-20 Mitsubishi Electric Corp プログラム可能な不揮発性メモリを内蔵したマイクロコンピュータ

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4406429A (en) * 1978-04-13 1983-09-27 Texas Instruments Incorporated Missile detecting and tracking unit
JPH05266219A (ja) 1992-03-17 1993-10-15 Hitachi Ltd マイクロコンピュータ
JPH06111032A (ja) 1992-09-30 1994-04-22 Mitsubishi Electric Corp マイクロコンピュータ
JP3292864B2 (ja) * 1995-02-07 2002-06-17 株式会社日立製作所 データ処理装置
US5784712A (en) * 1995-03-01 1998-07-21 Unisys Corporation Method and apparatus for locally generating addressing information for a memory access

Also Published As

Publication number Publication date
KR19980033145A (ko) 1998-07-25
JPH10124474A (ja) 1998-05-15
US6269429B1 (en) 2001-07-31

Similar Documents

Publication Publication Date Title
US6449709B1 (en) Fast stack save and restore system and method
US6792501B2 (en) Universal serial bus flash memory integrated circuit device
JP3787167B2 (ja) フラッシュメモリ
US3930236A (en) Small micro program data processing system employing multi-syllable micro instructions
US3886523A (en) Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets
EP1788479A2 (en) System and method for booting from a non-volatile application and file storage device
US20060195650A1 (en) Method to detect NAND-flash parameters by hardware automatically
US4005391A (en) Peripheral interrupt priority resolution in a micro program data processor having plural levels of subinstruction sets
US7302518B2 (en) Method and system for managing a suspend request in a flash memory
US7558152B2 (en) Address counter for nonvolatile memory device
JPH05204709A (ja) プロセッサ
US4460972A (en) Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
JP2006313561A (ja) データ処理装置
US4947478A (en) Switching control system for multipersonality computer system
US5742842A (en) Data processing apparatus for executing a vector operation under control of a master processor
KR100264758B1 (ko) 마이크로컴퓨터
KR100534613B1 (ko) 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법
US5208915A (en) Apparatus for the microprogram control of information transfer and a method for operating the same
EP0720087A1 (en) Apparatus and method for a memory extension stack in a data processing system
EP0669582A2 (en) Immediate system management interrupt source with associated reason register
EP0020972B1 (en) Program controlled microprocessing apparatus
CN1187687C (zh) 减少电脑初始设定元件的方法及装置
EP0503498A2 (en) Single-chip microcomputer with program/data memory flag
JP3839835B2 (ja) データ処理装置及びマイクロコンピュータ
JPH10312307A (ja) コンピュータシステムに適用するエミュレータ

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19971024

A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 19971205

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 19971024

Comment text: Patent Application

PG1501 Laying open of application
E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20000529

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20000605

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20000607

End annual number: 3

Start annual number: 1

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