KR100491056B1 - 반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의기입 방법 - Google Patents

반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의기입 방법 Download PDF

Info

Publication number
KR100491056B1
KR100491056B1 KR10-2002-7001744A KR20027001744A KR100491056B1 KR 100491056 B1 KR100491056 B1 KR 100491056B1 KR 20027001744 A KR20027001744 A KR 20027001744A KR 100491056 B1 KR100491056 B1 KR 100491056B1
Authority
KR
South Korea
Prior art keywords
nonvolatile memory
cpu
writing
program
flash memory
Prior art date
Application number
KR10-2002-7001744A
Other languages
English (en)
Other versions
KR20020022098A (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 KR20020022098A publication Critical patent/KR20020022098A/ko
Application granted granted Critical
Publication of KR100491056B1 publication Critical patent/KR100491056B1/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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators

Landscapes

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

Abstract

반도체 집적 회로에 내장된 불휘발성 메모리의 재기입 프로그램을 기억하기 위한 마스크 ROM을 불필요한 것으로 하고, 또한 불휘발성 메모리의 기입에 필요한 각종 제어 신호의 펄스폭을 용이하게 변경한다.
중앙 연산 처리 장치(CPU: 101)와, 불휘발성 메모리(105)와, 불휘발성 메모리로의 기입을 행하기 위해 CPU가 실행하는 프로그램을 통신에 의해 외부로부터 수신하고, 수신한 프로그램을 CPU로 보내는 통신 인터페이스(103)를 구비한다.

Description

반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의 기입 방법{INTEGRATED CIRCUIT AND METHOD OF WRITING NONVOLATILE MEMORY WITHIN INTEGRATED CIRCUIT}
본 발명은 플래시 메모리, EEPROM, EPROM, FeRAM 등의 불휘발성 메모리와, 중앙 연산 처리 장치(이하, 「CPU」라 함)를 내장한 싱글 칩·마이크로 컴퓨터(이하, 「마이크로 컴퓨터」라 함)나 게이트 어레이 등의 반도체 집적 회로에 관한 것으로, 특히 프로그램 실행 가능하며 워크용 RAM을 구비하지 않는 반도체 집적 회로에 관한 것이다. 또한, 본 발명은 그와 같은 반도체 집적 회로에 내장된 불휘발성 메모리로의 기입 방법에 관한 것이다.
종래로부터, CPU 및 불휘발성 메모리를 내장한 반도체 집적 회로를 보드에 실장한 후에 ROM 라이터로부터 직렬 인터페이스를 통해 CPU에 통신을 행하고, CPU를 동작시켜서 불휘발성 메모리에 프로그램을 기입하거나 갱신하거나 하는 것이 행해지고 있었다. 이것을 「온 보드(인서킷) 기입」이라고 한다. 예를 들어, 종래의 온 보드 기입을 위한 회로 구성예를 도 6에 도시한다.
도 6에 있어서, 마이크로 컴퓨터(300)는 CPU 코어(301)와, 제어 레지스터(302)와, 동기 직렬 통신 인터페이스(303)와, 멀티플렉서(304)와, 플래시 메모리(305)와, 마스크 ROM(307)에 의해 구성되어 있다. CPU 코어(301)는 인스트럭션 어드레스 버스 B31 및 인스트럭션 버스 B32를 통해, 마스크 ROM(307) 및 멀티플렉서(304)와 접속되어 있다. 또한, CPU 코어(301)는 데이터 어드레스 버스 B33 및 데이터 버스 B34를 통해, 제어 레지스터(302), 동기 직렬 통신 인터페이스(303) 및 멀티플렉서(304)와 접속되어 있다.
멀티플렉서(304)는 버스 B35를 통해 플래시 메모리(305)에 접속되어 있다. 플래시 메모리(305)는 CPU 코어(301)가 실행해야 할 인스트럭션 코드나 CPU 코어(301)가 사용하는 데이터 등을 기억하기 위한 불휘발성 메모리이다.
플래시 메모리(305)에 프로그램을 기입할 때는 동기 직렬 통신 인터페이스(303)에 ROM 라이터(400)가 접속된다. ROM 라이터(400)는 동기 직렬 통신에 의해 조작 커맨드나 어드레스 정보나 데이터 등의 전송을 행한다. 한편, 마이크로 컴퓨터(300)에 내장된 마스크 ROM(307)은 플래시 메모리(305)를 온 보드 기입하기 위해서 CPU 코어(301)가 실행하는 프로그램을 기억하는 판독 전용 메모리이고, 통신과 시퀀서를 위해서 사용된다. ROM 라이터(400)로부터 마이크로 컴퓨터(300)에 전송된 조작 커맨드는 마스크 ROM(307)에 기억된 온 보드 기입 프로그램에 의해 실행되며, 어드레스 정보에 기초하여 소거나 데이터의 기입 등을 행한다. 기입 시간이나 소거 시간의 관리도 마스크 ROM(307)에 기억된 프로그램에 의해 행해진다.
이 동기 직렬 통신에 있어서는, ROM 라이터(400)로부터 마이크로 컴퓨터(300)로 클럭을 송신하기 위한 CLK 신호선(404)과, ROM 라이터(400)로부터 마이크로 컴퓨터(300)로 데이터를 송신하기 위한 RXD 신호선(401)과, 마이크로 컴퓨터(300)로부터 ROM 라이터(400)로 데이터를 송신하기 위한 TXD 신호선(402)과, ROM 라이터(400)와 마이크로 컴퓨터(300) 사이에서 직렬 클럭을 송수신하기 위한 SCLK 신호선(403)이 적어도 이용된다.
제어 레지스터(302)는, 상술한 바와 같이 CPU 코어(301)와 접속되어 있는 것 외에, 플래시 메모리 기입 어드레스 버스 B36, 플래시 메모리 기입 데이터 버스 B37 및 제어 신호 버스 B38을 통해, 멀티플렉서(304)와도 접속되어 있다. 제어 레지스터(302)는 CPU 코어(301)로부터 기입된 데이터를 유지함과 함께, 그 데이터를 플래시 메모리 기입 어드레스 버스 B36, 플래시 메모리 기입 데이터 버스 B37 및 제어 신호 버스 B38로 출력한다.
멀티플렉서(304)는, 상술한 바와 같이 CPU 코어(301) 및 플래시 메모리(305)와 접속되어 있는 것 외에, 플래시 메모리 기입 모드 지시선(306)을 통해, 스위치(308)와도 접속되어 있다. 스위치(308)는 온 보드 기입을 행할 때는 온으로 되어 플래시·메모리 기입 모드 지시선(306)을 접지하고, 온 보드 기입을 행하지 않을 때는 오프로 되어 플래시·메모리 기입 모드 지시선(306)을 풀 업한다. 멀티플렉서(304)는 플래시 메모리 기입 모드 지시선(306)이 풀 업되어 있을 때 버스 B31 ∼ B34와 버스 B35를 접속하고, 플래시 메모리 기입 모드 지시선(306)이 접지되어 있을 때에 버스 B36 ∼ B38과 버스 B35를 접속한다.
다음에, 도 6에 도시한 마이크로 컴퓨터(300)의 통상의 동작(온 보드 기입 이외의 동작)에 대하여 설명한다. 또한, 통상 동작의 경우, 스위치(308)는 오프이고, 플래시 메모리 기입 모드 지시선(306)은 풀 업되어 있다.
우선, CPU 코어(301)는 인스트럭션 어드레스를 인스트럭션 어드레스 버스 B31 상에 출력한다. 멀티플렉서(304)는 인스트럭션 어드레스 버스 B31 상에 출력된 인스트럭션 어드레스를 버스 B35에 전달한다. 플래시 메모리(305)는 버스 B35로부터 인스트럭션 어드레스를 받아 해당 어드레스에 대응하는 인스트럭션 코드를 버스 B35로 출력한다. 멀티플렉서(304)는 버스 B35 상에 출력된 인스트럭션 코드를 인스트럭션 버스 B32로 전달한다. CPU 코어(301)는 인스트럭션 버스 B32로부터 인스트럭션 코드를 받아 해당 인스트럭션 코드를 실행한다. 이와 같이, CPU 코어(301)에 의해 플래시 메모리(305)에 기억된 인스트럭션 코드 열(프로그램)이 실행된다.
다음에, 본 종래예에서의 온 보드 기입 동작에 대하여 설명한다. 온 보드 기입을 행하는 경우, 온 보드 기입 작업자는 스위치(308)를 온으로 함과 함께 마이크로 컴퓨터(300)의 전원을 온으로 하고, 또한 ROM 라이터(400)의 전원을 온으로 하여 조작을 개시한다.
온 보드 기입 동작이 개시되면, CPU 코어(301)는 인스트럭션 어드레스 버스 B31로, 마스크 ROM(307) 중 온 보드 기입용 프로그램에 대응하는 어드레스를 출력한다. 다음에, CPU 코어(301)는 인스트럭션 버스 B32를 통해, 마스크 ROM(307)으로부터 온 보드 기입을 위한 인스트럭션 코드를 판독한다. 그리고, CPU 코어(301)는 판독한 온 보드 기입을 위한 인스트럭션 코드를 실행한다. 또한, CPU 코어(301)는 온 보드 기입에 필요한 데이터 등을 동기 직렬 통신선(401 ∼ 404) 및 동기 직렬 통신 인터페이스(303)를 통해 ROM 라이터(400)로부터 수신한다. 이와 같이 하여, CPU 코어(301)가 마스크 ROM(307) 중에 기억된 온 보드 기입을 위한 인스트럭션 코드 열(프로그램)을 실행함으로써, 플래시 메모리(305)로의 기입이 행해진다.
이와 같이, 종래는 온 보드 기입을 위한 통신 및 시퀀스를 실행하는 프로그램을 기억하기 위해서 마스크 ROM을 필요로 하고 있었기 때문에, 회로 규모가 증대하고 있었다. 특히, 마이크로 컴퓨터의 경우에는 마스크 ROM을 내장하기 때문에 칩 면적이 증대함과 함께 단자수도 증가하게 된다는 문제가 있었다.
또한, 온 보드 기입 시의 각 제어 신호의 펄스 폭이나 재시도 횟수 등을 변경하기 위해서는, 마스크 ROM 중에 기억된 프로그램을 변경할 필요가 있었다. 이것에 대하여, 각 제어 신호를 복수 종류의 펄스 폭으로 출력하도록 사전에 마스크 ROM 중에 프로그램을 작성해 두는 것도 생각되지만, 프로그램·사이즈가 증대함과 함께 마스크 ROM의 사이즈도 증대한다는 문제가 있었다.
이러한 과제를 해결하는 방법으로서, 온 보드 기입을 위한 프로그램을 RAM 상에 기억하여 실행하는 것도 생각된다. 그러나, 4 비트 아이콘의 경우에는 워크용의 RAM을 갖지 않는 구성이 일반적이다. 또한, RAM을 탑재하였다고 해도 4 비트 마이크로 컴퓨터 등에 있어서는 데이터 폭과 인스트럭션 폭이 다르기 때문에, 온 보드 기입을 위한 프로그램을 RAM 상에 기억하고 실행하는 것은 곤란하였다.
한편, 일본국 특허 출원 공개 공보, (특개)평 11-149376호에 게재되어 있는 BOOT 로더 회로에서는 외부 통신 인터페이스를 사용하여 ROM의 기입을 할 수 있지만, 상술한 바와 같은 ROM 기입을 위한 각 제어 신호의 펄스폭을 확보할 수 없었다.
그래서, 상기한 점에 감안하여, 본 발명은 반도체 집적 회로에 내장된 불휘발성 메모리에 온 보드 기입을 행하는 경우에 마스크 ROM을 불필요한 것으로 하고, 또한 불휘발성 메모리의 기입에 필요한 각종 제어 신호의 펄스폭을 용이하게 변경하는 것을 목적으로 한다.
<발명의 개시>
이상의 과제를 해결하기 위해서, 본 발명에 따른 반도체 집적 회로는 중앙 연산 처리 장치(CPU)와, 불휘발성 메모리와, 불휘발성 메모리로의 기입을 행하기 위해서 CPU가 실행하는 프로그램을 통신에 의해 외부로부터 수신하고, 수신한 프로그램을 CPU로 보내는 통신 인터페이스를 구비한다.
여기서, 통신 인터페이스가 불휘발성 메모리로의 기입을 행하기 위해서 CPU가 실행하는 프로그램을 동기 직렬 통신에 의해 외부로부터 수신하고, 수신한 프로그램을 CPU로 보냄과 함께, 동기 직렬 통신에 의해 수신한 직렬 클럭을 CPU로 보내도록 해도 된다.
또한, 본 발명에 따른 기입 방법은 반도체 집적 회로에 내장된 불휘발성 메모리로의 기입을 행하는 방법으로서, (a) 불휘발성 메모리로의 기입을 행하기 위한 프로그램을 통신에 의해 외부로부터 반도체 집적 회로의 통신 인터페이스로 송신하는 단계와, (b) 통신 인터페이스가 수신한 프로그램을 반도체 집적 회로의 중앙 연산 처리 장치(CPU)로 보내는 단계와, (c) CPU에서 수취한 프로그램을 실행하고 불휘발성 메모리로의 기입을 행하는 단계를 구비한다.
여기서, 단계 (a)가 불휘발성 메모리로의 기입을 행하기 위한 프로그램을 동기 직렬 통신에 의해 외부로부터 수신하는 단계를 포함하고, 단계 (b)가 통신 인터페이스가 수신한 프로그램을 CPU로 보냄과 함께, 동기 직렬 통신에 의해서 수신한 직렬 클럭을 CPU로 보내는 단계를 포함하고, 단계 (c)가 CPU에서, 수취한 프로그램을 직렬 클럭을 동작 클럭으로 하여 실행하고 불휘발성 메모리로의 기입을 행하는 단계를 포함하도록 해도 된다.
이상과 같이 구성한 본 발명에 따르면, 불휘발성 메모리의 기입 프로그램을 통신에 의해 송신하기 때문에, 불휘발성 메모리의 기입 프로그램을 기억하기 위한 마스크 ROM 등을 없앨 수 있고, 회로가 간단화나 칩 면적의 축소를 도모할 수 있다. 이에 따라, 마스크 ROM용 클럭 단자도 불필요해진다.
또한, 마스크 ROM 등에 기억된 프로그램과 같이 고정된 프로그램을 갖지 않기 때문에, 프로그램 문제점의 수정이 용이해진다.
또한, 불휘발성 메모리의 기입 프로그램의 송신에 동기 직렬 통신을 이용하여, 그 직렬 클럭을 CPU로 공급함과 함께 불휘발성 메모리의 기입 프로그램의 송신 타이밍을 조정함으로써, 불휘발성 메모리의 기입에 필요한 각 제어 신호의 펄스 폭을 확보함과 함께, 펄스 폭의 변경을 용이하게 행할 수 있다.
도 1은 본 발명의 일 실시 형태에 따른 온 보드 기입을 위한 회로 구성을 나타내는 블록도.
도 2는 도 1에서의 ROM 라이터의 동작을 나타내는 흐름도.
도 3은 도 1에서의 CPU 코어의 동작을 나타내는 흐름도.
도 4는 본 발명의 일 실시 형태에서의 인스트럭션 코드를 전송하는 원리를 설명하기 위한 타이밍차트.
도 5는 본 발명의 일 실시 형태에서의 제어 신호의 펄스 폭을 변경하는 원리를 설명하기 위한 타이밍차트.
도 6은 종래의 온 보드 기입을 위한 회로 구성예를 나타내는 흐름도.
<발명을 실시하기 위한 최량의 형태>
이하, 도면에 기초하여 본 발명의 실시 형태에 대하여 설명한다. 또, 동일한 요소에는 동일한 참조 번호를 붙여서 설명을 생략한다.
도 1은 본 발명의 일 실시 형태에 따른 온 보드 기입을 위한 회로 구성을 나타내는 블록도이다. 본 실시 형태는 본 발명을 싱글 칩·마이크로 컴퓨터(이하, 「마이크로 컴퓨터」라고 함)에 적용한 것이다.
도 1에 있어서, 마이크로 컴퓨터(100)는 CPU 코어(101)와, 제어 레지스터(102)와, 동기 직렬 통신 인터페이스(103)와, 멀티플렉서(104)와, 플래시 메모리(105)에 의해 구성되어 있다. CPU 코어(101)는 인스트럭션 어드레스 버스 B11 및 인스트럭션 버스 B12를 통해 멀티플렉서(104)와 접속되어 있다. 또한, CPU 코어(101)는 데이터 어드레스 버스 B13 및 데이터 버스 B14를 통해 제어 레지스터(102), 동기 직렬 통신 인터페이스(103) 및 멀티플렉서(104)와 접속되어 있다.
멀티플렉서(104)는 버스 B15를 통해 플래시 메모리(105)에 접속되어 있다. 플래시 메모리(105)는 CPU 코어(101)가 실행해야 할 인스트럭션 코드나 CPU 코어(101)가 사용하는 데이터 등을 기억하기 위한 불휘발성 메모리이다. 또한, 본 발명의 설명에 불필요한 그 외의 페리페럴, 인터페이스 등은 도시를 생략한다.
플래시 메모리(105)에 프로그램을 기입할 때에는, 동기 직렬 통신 인터페이스(103)에 ROM 라이터(200)가 접속된다. ROM 라이터(200)에는 사전에 퍼스널 컴퓨터 등(도시하지 않음)으로부터, 플래시 메모리(105)에 기입을 행하기 위해서 CPU 코어(101)에 실행시키기 위한 인스트럭션 코드 열(프로그램)이 다운로드되어 기억되어 있다. ROM 라이터(200)는 동기 직렬 통신에 의해 CPU 코어(101)의 동작 클럭이나 온 보드 기입을 위한 인스트럭션 코드의 전송을 행한다. 이 인스트럭션 코드에는 제어 코드 및 기입 데이터도 포함된다.
동기 직렬 통신 인터페이스(103)는 직렬 클럭 공급선(109)을 통해 CPU 코어(101)와 접속되어 있다. 동기 직렬 통신 인터페이스(103)는 수신한 직렬 데이터를 병렬 데이터로 변환하고, 이에 따라 얻어진 복수의 연속하는 인스트럭션 코드(프로그램)를 CPU 코어(101)가 실행함으로써, 플래시 메모리(105)의 온 보드 기입이 행해진다. 여기서, 전송하는 프로그램에 있어서는 점프 명령을 사용하지 않고, 복수의 연속하는 인스트럭션을 단계마다 실행한다.
이 동기 직렬 통신에 있어서는, ROM 라이터(200)로부터 마이크로 컴퓨터(100)로 데이터를 송신하기 위한 RXD 신호선(201)과, 마이크로 컴퓨터(100)로부터 ROM 라이터(200)로 데이터를 송신하기 위한 TXD 신호선(202)과, ROM 라이터(200)와 마이크로 컴퓨터(100) 사이에 직렬 클럭을 송수신하기 위한 SCLK 신호선(203)이 적어도 이용된다.
제어 레지스터(102)는 상술한 바와 같이 CPU 코어(101)와 접속되어 있는 것 외에, 플래시 메모리 기입 어드레스 버스 B16, 플래시 메모리 기입 데이터 버스 B17 및 제어 신호 버스 B18을 통해, 멀티플렉서(104)와도 접속되어 있다. 제어 레지스터(102)는 CPU 코어(101)로부터 기입된 데이터를 유지과 함께, 그 데이터를 플래시 메모리 기입 어드레스 버스 B16, 플래시 메모리 기입 데이터 버스 B17 및 제어 신호 버스 B18로 출력한다. 제어 레지스터(102)는 CPU 코어(101)의 어드레스 공간에 맵되어 있고, 데이터 어드레스 버스 B13 및 데이터 버스 B14에 접속되어, CPU 코어(101)로부터 액세스된다. 또한, 제어 레지스터(102)의 출력은 멀티플렉서(104)를 통해 플래시 메모리(105)에 접속되어 있다.
멀티플렉서(104)는 상술한 바와 같이 CPU 코어(101) 및 플래시 메모리(105)와 접속된 것 외에, 플래시 메모리 기입 모드 지시선(106)을 통해 스위치(108)와도 접속되어 있다. 스위치(108)는 온 보드 기입을 행할 때는 온으로 되어 플래시 메모리 기입 모드 지시선(106)을 접지하고, 온 보드 기입을 행하지 않을 때는 오프로 되어 플래시 메모리 기입 모드 지시선(106)을 풀 업한다. 멀티플렉서(104)는 플래시 메모리 기입 모드 지시선(106)이 풀 업되어 있을 때 버스 B11 ∼ B14와 버스 B15를 접속하고, 플래시 메모리 기입 모드 지시선(106)이 접지되어 있을 때 버스 B16 ∼ B18과 버스 B15를 접속한다.
다음에, 본 실시 형태에서의 마이크로 컴퓨터(100)의 통상의 동작(온 보드 기입 동작 이외의 동작)에 대하여 설명한다. 또한, 통상 동작의 경우, 스위치(108)는 오프이고 플래시 메모리 기입 모드 지시선(106)은 풀 업되어 있다.
우선, CPU 코어(101)는 인스트럭션 어드레스를 인스트럭션 어드레스 버스 B11 상에 출력한다. 멀티플렉서(104)는 인스트럭션 어드레스 버스 B11 상에 출력된 인스트럭션 어드레스를 버스 B15에 전달한다. 플래시 메모리(105)는 버스 B15로부터 인스트럭션 어드레스를 받아서, 해당 어드레스에 대응하는 인스트럭션 코드를 버스 B15로 출력한다. 멀티플렉서(104)는 버스 B15 상에 출력된 인스트럭션 코드를 인스트럭션 버스 B12로 전달한다. CPU 코어(101)는 인스트럭션 버스 B12로부터 인스트럭션 코드를 받아 해당 인스트럭션 코드를 실행한다. 이와 같이, CPU 코어(101)에 의해 플래시 메모리(105)에 기억된 인스트럭션 코드 열(프로그램)이 실행된다.
다음에, 본 실시 형태에서의 온 보드 기입 동작에 대하여 설명한다. 온 보드 기입을 행하는 경우, 온 보드 기입 작업자는 스위치(108)를 온으로 함과 함께 마이크로 컴퓨터(100)의 전원을 온으로 하고, 또한 ROM 라이터(200)의 전원을 온으로 하여 조작을 개시한다.
작업자가 ROM 라이터(200)의 조작을 개시하면, ROM 라이터(200)는 도 2의 흐름도에 기초한 처리를 개시한다.
단계 S201에 있어서, ROM 라이터(200)가 기억된 인스트럭션 코드 열로부터 인스트럭션 코드(데이터를 포함한다)를 하나 추출한다.
다음의 단계 S202에 있어서, ROM 라이터(200)는 단계 S201에 있어서 추출된 인스트럭션 코드를 직렬 변환한다. 그리고, ROM 라이터(200)는 직렬 변환된 인스트럭션 코드를 동기 직렬 통신선(201 ∼ 203)을 통해, 마이크로 컴퓨터(100) 내의 동기 직렬 통신 인터페이스(103)로 송신한다.
한편, 마이크로 컴퓨터(100) 내의 동기 직렬 통신 인터페이스(103)는 ROM 라이터(200)로부터 직렬 데이터를 수신하면, 수신한 데이터를 병렬 변환한다. 그리고, 동기 직렬 통신 인터페이스(103)는 병렬 변환한 데이터, 즉 인스트럭션 코드를 인스트럭션 버스 B12로 출력한다. 그와 함께, 동기 직렬 통신 인터페이스(103)는 SCLK 신호선(203)을 통해 수신한 직렬 클럭을 직렬 클럭 공급선(109)을 통해 CPU 코어(101)로 출력한다.
한편, 직렬 클럭 공급선(109)을 통해 동기 직렬 통신 인터페이스(103)로부터 직렬 클럭을 수취하면 마이크로 컴퓨터(100) 중 CPU 코어(101)가 도 3의 흐름도를 개시한다.
최초의 단계 S101에 있어서, 마이크로 컴퓨터(100)의 CPU 코어(101)는 동기 직렬 통신 인터페이스(103)로부터 인스트럭션 코드를 수취하는 것을 대기한다.
동기 직렬 통신 인터페이스(103)에 의해 출력된 인스트럭션 코드를 인스트럭션 버스 B12로부터 수취하면, 단계 S101에서 대기하고 있던 CPU 코어(101)는 처리를 단계 S102로 옮긴다.
단계 S102에 있어서, CPU 코어(101)는 단계 S101에 있어서 수취한 인스트럭션 코드에 기초하여 플래시 메모리(105)에 기입해야 할 데이터와, 해당 데이터를 기입해야 할 플래시 메모리(105) 중의 어드레스와, 플래시 메모리(105)에 기입을 행하기 위해서 필요한 제어 신호를 발생시키기 위한 데이터를 제어 레지스터(102)로 출력한다. 그 후, CPU 코어(101)는 처리를 단계 S101로 복귀한다.
제어 레지스터(102)는 CPU 코어(101)로부터 플래시 메모리(105)에 기입해야 할 데이터와, 해당 데이터를 기입해야 할 플래시 메모리(105) 중의 어드레스, 및 플래시 메모리(105)에 기입을 행하기 위해 필요한 제어 신호를 발생시키기 위한 데이터를 수취하면, 수취한 데이터에 기초하여 플래시 메모리(105)에 기입해야 할 데이터를 플래시 메모리 기입 데이터 버스 B17로 출력하고, 해당 데이터를 기입해야 할 플래시 메모리(105) 중의 어드레스를 플래시 메모리 기입 어드레스 버스 B16으로 출력하고, 플래시 메모리(105)에 기입을 행하기 위해 필요한 제어 신호를 제어 신호 버스 B18로 출력한다.
이와 같이, 플래시 메모리(105)에 기입해야 할 데이터가 플래시 메모리 기입 데이터 버스 B17로 출력되며, 해당 데이터를 기입해야 할 플래시 메모리(105) 중의 어드레스가 플래시 메모리 기입 어드레스 버스 B16으로 출력되며, 플래시 메모리(105)에 기입을 행하기 위해 필요한 제어 신호가 제어 신호 버스 B18로 출력되면, 멀티플렉서(104) 및 버스 B15를 통해 플래시 메모리(105)로 전달되어, 플래시 메모리(105)로의 기입이 행해진다.
한편, ROM 라이터(200)는 단계 S202에서 인스트럭션 코드를 송신하면, 다음의 단계 S203에 있어서 단계 S202에서 송신한 인스트럭션 코드의 CPU 코어(101)에서의 실행 후에 대기 시간이 필요한지의 여부, 즉 제어 신호 버스 B18에 출력된 제어 신호에 홀드 시간을 확보할 필요가 있는지의 여부를 체크한다. 그리고 만일 대기 시간이 필요하면, ROM 라이터(200)는 처리를 단계 S204로 진행하고, 그렇지 않으면 처리를 단계 S205로 진행한다.
단계 S203에서 대기 시간이 필요하다고 판단된 경우, ROM 라이터(200)는 단계 S204에서 필요한 대기 시간 동안에 인스트럭션 코드의 송신을 중단한다.
단계 S204에서 필요한 시간이 경과한 후 및 단계 S203에서 대기 시간이 필요하지 않다고 판단된 경우, ROM 라이터(200)는 단계 S205에서 송신해야 할 인스트럭션 코드가 아직 남아 있는지의 여부를 체크한다. 그리고, 혹시 송신해야 할 인스트럭션 코드가 아직 남아 있다고 판단된 경우에는 처리를 단계 S201로 되돌리고, 송신해야 할 인스트럭션 코드가 남아 있지 않다고 판단된 경우에는 처리를 종료한다.
다음에, 본 실시 형태에서의 인스트럭션 코드를 전송하는 원리에 대하여 도 4의 타이밍차트를 이용하여 설명한다. 직렬 클럭에 동기하여 인스트럭션 코드를 전송하는 경우에, 인스트럭션 코드의 비트폭(인스트럭션 코드를 전송하기 위한 클럭수)과, 그 인스트럭션을 실효로 하기 위한 클럭수가 같은 경우에는 문제는 없지만, 이들이 같지 않은 경우에는 이하의 방법에 의해 양자의 사이클을 맞출 필요가 있다. 예를 들면, 도 4에 도시한 바와 같이, 인스트럭션 코드 A, B가 12 비트폭인 경우에는 각각을 직렬 전송하기 위해 적어도 12 클럭이 필요하다. 그러나, 인스트럭션 코드 A의 실행 사이클이 7 클럭인 경우에는 인스트럭션 코드의 전송과 인스트럭션의 실행과의 사이에서 사이클이 맞지 않게 된다. 그래서, 본 실시 형태에서는 다음 인스트럭션 코드 B가 전송되기까지의 5 클럭(=12클럭-7클럭) 사이에, 더미의 명령 NOP을 삽입하고 있다. 이에 따라, 인스트럭션 코드의 전송과 인스트럭션의 실행과의 사이에서 사이클을 맞출 수 있다.
다음에, 본 실시 형태에서의 제어 신호의 펄스 폭을 변경하는 원리에 대하여 도 5의 타이밍차트를 이용하여 설명한다.
도 5에 있어서, 상단의 신호는 SLCK 신호선(203)으로부터 입력되는 직렬 클럭 신호로, 중단의 신호는 RXD 신호선(201)으로부터 입력되는 데이터 신호이고, 하단의 신호는 제어 신호 버스 B18에 출력되는 제어 신호 중 하나인 PROG 신호이다. 여기서, PROG 신호는 플래시 메모리(105)에 기입을 행하기 위한 신호로, 예를 들면 1㎳의 펄스폭이 필요한 것으로 한다. 즉, 도 5에 있어서 구간 D는 1㎳라고 하자.
우선, ROM 라이터(200)는 PROG 신호를 "1"로 하기 위해서 CPU 코어(101)가 실행하는 인스트럭션 코드를 동기 직렬 통신에 의해 송신한다(구간 A). 이 인스트럭션 코드가 CPU 코어(101)에 의해 실행되면, PROG 신호는 "1"이 된다. 다음에, ROM 라이터(200)는 PROG 신호의 펄스 폭을 확보하기 위해, 동기 직렬 통신을 중단한다(구간 B). 필요한 펄스폭을 확보하기 위한 기간이 경과한 후에 ROM 라이터(200)는 PROG 신호를 "0"으로 하기 위해서 CPU 코어(101)가 실행하는 인스트럭션 코드를 동기 직렬 통신에 의해 송신한다(구간 C). 이 인스트럭션 코드가 CPU 코어(101)에 의해 실행되면 PROG 신호는 "0"이 된다. 이와 같이, 동기 직렬 통신을 중단함으로써 제어 신호의 펄스 폭을 확보할 수 있고, 또한 중단 길이를 변경함으로써 제어 신호의 펄스폭을 용이하게 변경할 수 있다.
이상 진술한 바와 같이, 본 발명에 따르면 불휘발성 메모리의 기입 프로그램을 통신에 의해 송신하기 때문에, 불휘발성 메모리의 기입 프로그램을 기억하기 위한 마스크 ROM 등을 없앨 수 있고, 회로의 간단화나 칩 면적의 축소를 도모할 수 있다. 이에 따라, 마스크 ROM용 클럭 단자도 불필요해진다.
또한, 마스크 ROM 등에 기억된 프로그램과 같이 고정된 프로그램을 갖지 않기 때문에, 프로그램 문제점의 수정이 용이해진다.
또한, 불휘발성 메모리의 기입 프로그램의 송신에 동기 직렬 통신을 이용하여, 그 직렬 클럭을 CPU로 공급함과 함께 불휘발성 메모리의 기입 프로그램의 송신 타이밍을 조정함으로써, 불휘발성 메모리의 기입에 필요한 각 제어 신호의 펄스 폭을 확보함과 함께 펄스 폭의 변경을 용이하게 행할 수 있다.

Claims (4)

  1. 중앙 연산 처리 장치(CPU)와,
    불휘발성 메모리와,
    상기 불휘발성 메모리로의 기입을 행하기 위하여 상기 CPU가 실행하는 프로그램과 직렬 클럭을 동기 직렬 통신에 의해 외부로부터 수신하고, 상기 수신한 프로그램 및 직렬 클럭을 상기 CPU로 전송하는 통신 인터페이스를 포함하고,
    상기 통신 인터페이스는 상기 CPU로 전송하는 데이터의 비트수가 직렬 클럭수와 일치하지 않는 경우 더미 비트를 추가하여 상기 수신한 프로그램을 상기 CPU로 전송하는 사이클을 상기 직렬 통신의 사이클에 맞추는 것을 특징으로 하는 반도체 집적 회로.
  2. 삭제
  3. 반도체 집적 회로에 내장된 불휘발성 메모리로의 기입을 행하는 방법에 있어서,
    (a) 상기 불휘발성 메모리로의 기입을 행하기 위한 프로그램과 직렬 클럭을 동기 직렬 통신에 의해 외부로부터 상기 반도체 집적 회로의 통신 인터페이스로 전송하는 단계와,
    (b) 상기 통신 인터페이스에서 상기 수신한 프로그램 및 직렬 클럭과 함께 더미 비트를 상기 직렬 통신의 사이클에 맞추어 상기 반도체 집적 회로의 중앙 연산 처리 장치(CPU)로 전송하는 단계와,
    (c) 상기 CPU에서 상기 수신한 프로그램을 상기 직렬 클럭을 동작 클럭으로 하여 실행하여 상기 불휘발성 메모리로의 기입을 행하는 단계
    를 포함하는 것을 특징으로 하는 기입 방법.
  4. 삭제
KR10-2002-7001744A 2000-06-14 2001-06-14 반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의기입 방법 KR100491056B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000178345A JP2001357023A (ja) 2000-06-14 2000-06-14 半導体集積回路及びそれに内蔵された不揮発性メモリへの書き込み方法
JPJP-P-2000-00178345 2000-06-14

Publications (2)

Publication Number Publication Date
KR20020022098A KR20020022098A (ko) 2002-03-23
KR100491056B1 true KR100491056B1 (ko) 2005-05-24

Family

ID=18679793

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7001744A KR100491056B1 (ko) 2000-06-14 2001-06-14 반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의기입 방법

Country Status (5)

Country Link
US (1) US6766408B2 (ko)
JP (2) JP2001357023A (ko)
KR (1) KR100491056B1 (ko)
AU (1) AU6429001A (ko)
WO (1) WO2001097056A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI236853B (en) * 2002-10-02 2005-07-21 Mitsubishi Electric Corp Communication adapter device, communication adapter, method for writing into nonvolatile memory, electric apparatus used for the same, and ROM writer
US6930929B1 (en) * 2002-11-04 2005-08-16 National Semiconductor Corporation Simultaneous read-write memory cell at the bit level for a graphics display
US8090916B2 (en) * 2004-06-29 2012-01-03 Macronix International Co., Ltd. In-circuit programming architecture with processor and delegable flash controller
US7406559B2 (en) * 2004-08-23 2008-07-29 Macronix International Co., Ltd. In-circuit programming architecture with processor, delegable flash controller, and code generator
US20070258298A1 (en) * 2006-05-04 2007-11-08 Westell Technologies, Inc. Parallel programming of flash memory during in-circuit test
US9442842B2 (en) * 2013-08-19 2016-09-13 Sandisk Technologies Llc Memory system performance configuration

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03158184A (ja) 1989-11-17 1991-07-08 Juki Corp 制御プログラムによつて動作するミシン
JPH04114289A (ja) 1990-09-04 1992-04-15 Mitsubishi Electric Corp マイクロコンピュータ集積回路装置のデータ書換え回路
JPH04287294A (ja) * 1991-03-18 1992-10-12 Matsushita Electron Corp 不揮発性メモリ内蔵マイクロコンピュータ
JPH0512511A (ja) * 1991-07-03 1993-01-22 Mitsubishi Electric Corp Icカード及びその応用プログラムの変更方法
JPH05159079A (ja) * 1991-12-04 1993-06-25 Fujitsu Ltd 半導体集積回路装置
US5687345A (en) * 1992-03-17 1997-11-11 Hitachi, Ltd. Microcomputer having CPU and built-in flash memory that is rewritable under control of the CPU analyzing a command supplied from an external device
TW231343B (ko) * 1992-03-17 1994-10-01 Hitachi Seisakusyo Kk
JPH05307616A (ja) * 1992-04-30 1993-11-19 Hitachi Ltd 半導体装置
US6006304A (en) * 1993-06-25 1999-12-21 Hitachi, Ltd. Apparatus and method for calculating an erasure time for data stored in a flash memory
JPH0729386A (ja) * 1993-07-13 1995-01-31 Hitachi Ltd フラッシュメモリ及びマイクロコンピュータ
JPH08101821A (ja) 1994-09-30 1996-04-16 Ishikawajima Harima Heavy Ind Co Ltd ボードコンピュータ
JPH08203288A (ja) * 1995-01-23 1996-08-09 Nec Ic Microcomput Syst Ltd オンボード書込制御装置
JP3109413B2 (ja) * 1995-07-31 2000-11-13 株式会社デンソー 機械制御装置
AU2521297A (en) * 1996-04-11 1997-10-29 Hitachi Limited Disk drive and computer
US6275911B1 (en) * 1996-09-20 2001-08-14 Denso Corporation Memory writing device for an electronic device
JP3796837B2 (ja) * 1996-09-20 2006-07-12 株式会社デンソー 電子装置のメモリ書込装置
JP3173407B2 (ja) * 1997-02-05 2001-06-04 日本電気株式会社 フラッシュeeprom内蔵マイクロコンピュータ
JPH10283172A (ja) 1997-04-02 1998-10-23 Nec Corp フラッシュromデータ書き換え方式
JPH117381A (ja) 1997-06-19 1999-01-12 Nissan Motor Co Ltd フラッシュメモリのオンボード書き込み方法
JPH11149376A (ja) * 1997-11-14 1999-06-02 Toyo Commun Equip Co Ltd Bootローダー回路
JPH11272642A (ja) * 1998-03-26 1999-10-08 Nec Corp 1チップマイクロコンピュータ及び起動アドレス設定方法

Also Published As

Publication number Publication date
AU6429001A (en) 2001-12-24
WO2001097056A1 (fr) 2001-12-20
US6766408B2 (en) 2004-07-20
US20020018371A1 (en) 2002-02-14
KR20020022098A (ko) 2002-03-23
JP4663210B2 (ja) 2011-04-06
JP2001357023A (ja) 2001-12-26

Similar Documents

Publication Publication Date Title
US6009496A (en) Microcontroller with programmable embedded flash memory
US5901330A (en) In-circuit programming architecture with ROM and flash memory
US5400389A (en) System for rewriting information in rewritable memory provided in portable remote terminal and portable remote terminal applicable to the system
US6839774B1 (en) Single-chip data processing apparatus incorporating an electrically rewritable nonvolatile memory and method of operating the same
KR101507194B1 (ko) 직렬 인터페이스 nand
KR100474622B1 (ko) 마이크로컴퓨터
US5365047A (en) IC card with clock signal input control
US8686836B2 (en) Fast block write using an indirect memory pointer
KR100385228B1 (ko) 불휘발성 메모리를 프로그램하는 방법 및 장치
US8723654B2 (en) Interrupt generation and acknowledgment for RFID
US6708289B1 (en) Microcomputer, electronic equipment and debugging system
KR100491056B1 (ko) 반도체 집적 회로 및 그에 내장된 불휘발성 메모리로의기입 방법
CN114035853B (zh) 具备spi接口的mcu引导系统及芯片
US7685343B2 (en) Data access method for serial bus
US8957763B2 (en) RFID access method using an indirect memory pointer
US7102950B2 (en) Fuse data storage system using core memory
US11593284B2 (en) Method for managing an operation for modifying the stored content of a memory device, and corresponding memory device
US6466994B1 (en) Method and system for programming a system board using a peripheral controller
KR20060087038A (ko) 마이크로컨트롤러 시스템 및 그 롬 데이터 프로그램 방법
JP2002366380A (ja) 電子機器および電子機器の制御方法
US20020004877A1 (en) Method and system for updating user memory in emulator systems
US7209252B2 (en) Memory module, printer assembly, and method for storing printer code
CN116259347B (zh) 基于spi协议的嵌入式闪存的编程装置
US9092582B2 (en) Low power, low pin count interface for an RFID transponder
JP3190421B2 (ja) Icメモリカードシステム

Legal Events

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

Payment date: 20130502

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140418

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150417

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20160418

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee