KR100723097B1 - 반도체 장치 - Google Patents

반도체 장치 Download PDF

Info

Publication number
KR100723097B1
KR100723097B1 KR1020000050731A KR20000050731A KR100723097B1 KR 100723097 B1 KR100723097 B1 KR 100723097B1 KR 1020000050731 A KR1020000050731 A KR 1020000050731A KR 20000050731 A KR20000050731 A KR 20000050731A KR 100723097 B1 KR100723097 B1 KR 100723097B1
Authority
KR
South Korea
Prior art keywords
data
address
mask
comparison
written
Prior art date
Application number
KR1020000050731A
Other languages
English (en)
Other versions
KR20010070043A (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 KR20010070043A publication Critical patent/KR20010070043A/ko
Application granted granted Critical
Publication of KR100723097B1 publication Critical patent/KR100723097B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)
  • Debugging And Monitoring (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

각종 전기 기기에 사용되는 마스크 R0M을 탑재한 마이크로컴퓨터에 있어서, 마스크 R0M의 수정을 실행하지 않고서 소프트웨어의 버그를 해결하는 것을 목적으로 한다.
제 1 데이터(21a)에 버그가 있는 경우, 제 2 데이터(22a)의 소정 비트를 오버라이트(overwrite)하도록 한 것에 의해, 마이크로컴퓨터(10)의 소프트웨어 버그를 수정한다.

Description

반도체 장치{SEMICONDUCTOR APPARATUS}
도 1은 본 발명의 실시예 1에 있어서의 반도체 장치의 구성을 도시하는 블록도,
도 2는 본 발명의 실시예 1에 있어서의 반도체 장치의 동작 설명을 위해 모식적으로 도시한 블록도,
도 3은 본 발명의 실시예 2에 있어서의 반도체 장치를 설명하기 위한 테이프 카세트의 외관 구성을 도시하는 사시도,
도 4는 본 발명의 실시예 2의 반도체 장치의 구성을 도시하는 블록도,
도 5는 종래의 반도체 장치의 구성을 도시하는 블록도.
도면의 주요 부분에 대한 부호의 설명
1 : 마스크 R0M 2 : RAM
3 : CPU 4 : 제 1 연산기
5 : 비교기 6 : 제 2 연산기
7 : 전환기 8 : 비휘발성 메모리
10, 20 : 마이크로컴퓨터 21 : 제 1 어드레스
21a : 제 1 데이터 22 : 제 2 어드레스
22a : 제 2 데이터 81 : 소스 어드레스
82 : 제 1 마스크 데이터 83 ; 비교 데이터
84 : 제 2 마스크 데이터 85 : 타겟 어드레스
본 발명은, 마스크 R0M을 탑재한 마이크로컴퓨터의 소프트웨어의 버그 제거를 용이하게 하는 반도체 장치에 관한 것이다.
최근, 마스크 R0M을 탑재한 마이크로컴퓨터의 소프트웨어의 버그 제거는 마스크 R0M의 변경 등에 의한 프로그램 영역의 변경에 의한 대책이 일반적으로 이루어지고 있다. 이하에 종래의 마스크 R0M을 탑재한 마이크로컴퓨터의 소프트웨어의 버그에 대한 대책 방법에 대하여 설명한다.
종래, 마스크 R0M을 탑재한 마이크로컴퓨터의 소프트웨어의 버그 제거는 마스크 R0M을 재차 작성하여 고치든지, 마스크 R0M내의 프로그램 영역의 일부를 마이크로컴퓨터 외부의 비휘발성 메모리에 오버라이트해 놓고, 그 비휘발성 메모리의 내용을 오버라이트하는 방법이 채용되어 있다. 마이크로컴퓨터의 구성을 도 5에 나타낸다. 도 5에 있어서, 마이크로컴퓨터(50)는 프로그램 영역의 판독 전용 메모리인 마스크 ROM(51), 데이터 영역의 휘발성 메모리 RAM(52) 및 중앙 연산 처리기에 의해 CPU(53)를 구비하고 있다.
종래, 마스크 ROM(51)를 탑재한 마이크로컴퓨터(50)의 소프트웨어부에 버그가 존재하고 있던 경우, 그 제거 방법은 마스크 ROM(51)의 재변경을 실행하거나, 마스크 ROM(51)내의 프로그램 영역의 일부를 마이크로컴퓨터 외부에 배치된 비휘발성 메모리에 오버라이트하는 것에 의해 실현하고 있었다.
또, 마스크 R0M의 버그를 제거하는 선행 기술로서는, 예를 들면 일본 특허 공개 소화 제 63-10234 호 공보, 일본 특허 공개 평성 제 1-192096 호 공보 및 미국 특허 제 5,479,342호에 예시되어 있다.
그러나, 상기 종래의 구성에서는, 마스크 ROM(51)를 탑재한 마이크로컴퓨터(50)에 소프트웨어의 버그가 존재하는 경우, 마이크로컴퓨터 자체를 웨이퍼의 상태로부터 재차 확산 공정을 거쳐 작성하여 고치지 않으면 안되어, 이를 위해서는 시간과 비용이 많이 필요하게 된다고 하는 문제점을 갖고 있었다. 또한, 프로그램 영역의 일부를 마이크로컴퓨터(50) 외부에 배치된 비휘발성 메모리에 오버라이트하는 경우에도, 다량의 비휘발성 메모리를 필요로 하여, 많은 비용이 필요하게 되는 문제를 갖고 있었다.
본 발명은 상기 종래의 문제점을 해결하는 것으로, 마스크 R0M을 변경하지 않고, 또한 프로그램 영역의 일부를 마이크로컴퓨터 외부에 배치된 비휘발성 메모리에 오버라이트하는 일없이, 소프트웨어의 버그에 의한 문제를 해결할 수 있는 반도체 장치를 제공하는 것을 목적으로 한다.
본 발명은 상기의 목적을 달성하기 위해서, 프로그램이 기억된 프로그램 영역을 갖는 마스크 R0M과 상기 프로그램의 동작에 이용하는 데이터를 기억한 데이터 영역을 갖는 오버라이트 가능한 메모리와 중앙 연산 처리 수단을 구비한 제어 수단과, 상기 메모리에 있어서의 임의의 데이터 영역을 오버라이트 가능한 임의의 데이터를 기억하는 기억 수단을 구비한 반도체 장치이다. 이 구성에 의해서, 마스크 R0M을 변경하지 않고, 소프트웨어의 버그를 제거할 수 있다.
본 발명의 다른 발명은, 제 1 및 제 2 데이터가 기입된 제어 수단과, 제 1 및 제 2 마스크 데이터와 비교 데이터와 소스 어드레스와 타겟 어드레스를 갖는 기억 수단을 구비한 반도체 장치에 있어서, 수치 「O」이 기입된 상기 기억 수단에 임의의 상기 제 1 및 제 2 마스크 데이터와 상기 비교 데이터와 상기 소스 어드레스와 상기 타겟 어드레스를 기입하고, 상기 소스 어드레스에 근거하여 상기 제 1 데이터를 추출하며, 상기 제 1 데이터와 상기 제 1 마스크 데이터로 제 1 연산을 실행하고, 상기 제 1 연산 결과와 상기 비교 데이터를 비교하고, 상기 타겟 어드레스에 근거하여 상기 제 2 데이터를 추출하며, 상기 제 2 데이터와 상기 제 2 마스크 데이터로 제 2 연산을 실행하고, 상기 비교 결과에 의해서 상기 제 2 연산 결과를 상기 제 2 데이터에 기입하는지 여부를 결정하는 반도체 장치이다.
이에 의하면, 비교적 소용량의 비휘발성 메모리만을 준비하는 것만으로, 마스크 R0M의 수정을 행하는 일없이 소프트웨어의 버그를 제거할 수 있다.
(발명의 실시예)
이하, 본 발명의 실시예에 대하여, 도면을 이용하여 설명한다.
(실시예 1)
본 실시예에서는, 마이크로컴퓨터를 구비한 전자 기기가 통상의 동작으로부터 일탈하여 오동작을 발생한 경우, 또는, 마이크로컴퓨터 기능의 변경을 희망하는 경우에는, 마이크로컴퓨터내의 RAM 데이터 영역에 있어서의, 예컨대, 버그의 원인으로 되어 있는 잘못된 데이터를, 마이크로컴퓨터에 외부 접속한 비휘발성 메모리에 의해서, RAM내의 데이터를 올바른 데이터로 오버라이트하는 것이다. 이러한 비휘발성 메모리는 미리 전자 기기내에 탑재되고, 마이크로컴퓨터와 접속되어 있다. 그리고, 전자 기기가 통상의 정상 동작으로부터 일탈하여 오동작을 나타내었을 때는, 비휘발성 메모리에 임의의 RAM에 있어서의 데이터 수정을 행하는 어드레스를 특정하는 소스 어드레스 데이터나 타겟 어드레스 데이터, 실제로 데이터 수정을 할 때에 이용하는 마스크 데이터나 비교 데이터 등이, 예를 들면, 사용자나 마이크로컴퓨터 기술자에 의해서 기입된다. 이들 데이터가 기입된 후, 전자 기기 본체의 전원을 투입함으로써, RAM의 데이터의 오버라이트가 실행된다.
또, 비휘발성 메모리를 마이크로컴퓨터에 접속하여, 전술한 각 데이터를 기입하고 있지 않은 상태일 때, 즉 RAM의 데이터를 오버라이트 가능한 데이터를 기억하기 전의 상태는 비휘발성 메모리의 각 어드레스에는 수치 「O」이 기입되어 있다.
도 1은 본 발명의 실시예 1에 있어서의 반도체 장치의 구성을 나타내는 블럭도이고, 도 2는 본 발명의 실시예 1의 구체적 구성을 모식적으로 나타낸 블럭도이다. 도 1에 있어서, 마이크로컴퓨터(10)는 각종 전자 기기에 탑재되어, 당해 전자 기기의 동작 제어 등을 행한다. 마이크로컴퓨터(10)의 외부에는 기억 수단인 비휘발성 메모리(8)가 마련되어 있다. 비휘발성 메모리(8)의 내부에는, 후술하는 RAM(2)에 있어서의 임의의 어드레스인 제 1 어드레스(21)를 지정하는 소스 어드레스(81), RAM(2)의 제 1 어드레스(21)내의 제 1 데이터(21a)에 있어서의 소정의 비트를 추출하기 위해서 연산 처리를 행하는 제 1 마스크 데이터(82), 전술한 연산 결과와 비교하는 비교 데이터(83), 전술한 비교 결과에 의해 RAM(2)에 있어서의 제 2 어드레스(22)내의 제 2 데이터(22a)에서의 소정의 비트를 다른 값으로 오버라이트하기 위한 제 2 마스크 데이터(84), 후술하는 제 2 어드레스(22)를 특정하는 타겟 어드레스(85)가 배치되어 있다. 또, 이들 데이터가 기입되는 것은, 본 기기에서 오동작이 발생하여 마이크로컴퓨터(10)에 버그가 발견되었을 때로, 데이터가 기입되기 전에는 각각의 데이터로서 「O」이 기입되어 있다.
마이크로컴퓨터(10)는 각종 연산 처리 동작을 행하는 중앙 연산 처리 장치(이하, CPU라고 기재함)(3) 및 마스크 ROM(1)에 기록된 프로그램과 함께 마스크 ROM(1)을 거쳐서 CPU(3)를 제어하는 데이터를 기록하여 오버라이트 가능한 메모리인 RAM(Random Access Memory)(2)를 구비한다. RAM(2)내의 데이터 영역에는 제 1 어드레스(21) 및 제 2 어드레스(22)가 내장되고, 제 1 어드레스(21)에 기입된 제 1 데이터(21a)가 특정한 데이터인 경우, 제 2 어드레스(22)에 기입된 제 2 데이터(22a)가 소정의 결과를 출력하도록 되어 있다.
제 1 연산기(4)는 비휘발성 메모리(8)로부터의 제 1 마스크 데이터(82)와 제 1 데이터(21a)를 논리 연산하여 제 1 데이터(21a)에 있어서의 소정의 비트를 추출하는 제 1 연산 수단이며, 주로 승산 동작을 행하지만 이것에 한정되지 않는다. 비교기(5)는 제 1 연산기(4)의 연산 결과와 비휘발성 메모리(8)로부터의 비교 데이터(83)를 비교하는 비교 수단이다. 비교기(7)는 비교기(5)의 비교 결과에 의해 개방(OFF)/접속(ON) 전환을 행하는 전환 수단이며, 후술하는 제 2 연산기(6)의 연산 결과를 제 2 데이터(22a)와 오버라이트하는지 여부를 결정한다. 전환기(7)는 비교기(5)의 비교 결과가 참(제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 일치하고 있는 경우)인 경우는 ON으로 되고, 제 2 연산기(6)의 연산 결과에 근거하여 제 2 데이터(22a)의 소정 비트가 올바른 값으로 오버라이트되지만, 비교기(5)의 비교 결과가 거짓(제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 불일치)인 경우, 전환기(7)는 OFF로 되어, 제 2 데이터(22a)는 오버라이트되지 않는다.
제 2 연산기(6)는 제 2 데이터(22a)와 제 2 마스크 데이터(84)로 논리 연산을 행하는 제 2 연산 수단이며, 본 실시예에서는 주로 논리 가산의 처리를 행하지만 이것에 한정되지 않는다. 마스크 R0M(1)은 마이크로컴퓨터(1O)의 내부에 마련되고, CPU(3)를 제어하는 소프트웨어가 기입되어 있다. 제 2 연산기(6)는 제 2 데이터(22a)에 있어서의 소정 비트의 값이 올바르지 않는 경우에, 소정 비트가 올바른 값으로 설정된 제 2 마스크 데이터(84)와 논리 연산을 행하여, 제 2 데이터(22a)의 소정 비트를 올바른 값으로 수정하는 것이다. 이렇게 해서, 마이크로컴퓨터(10)는 상기 마스크 ROM(1), RAM(2), CPU(3), 제 1 연산기(4), 비교기(5), 제 2 연산기(6), 전환기(7)를 구비한다.
마이크로컴퓨터 기술자는 마이크로컴퓨터(10)의 버그의 원인으로 되어 있는 RAM(2)에 있어서의 어드레스나 비트, 버그가 있는 어드레스나 비트를 추출하기 위한 소스 어드레스(81)나 제 1 마스크 데이터(82), 버그의 유무를 확인하기 위한 비교 데이터(83), RAM내의 데이터를 오버라이트하기 위한 제 2 마스크 데이터(84), 타겟 어드레스(85)는 미리 알려져 있는 것으로 하여, 비휘발성 메모리(8)에 필요한 데이터를 미리 기입해 놓는다.
이상과 같이 구성된 본 실시예의 반도체 장치에 대하여, 도 1 및 도 2를 이용하여 그 동작을 더욱 상세히 설명한다.
우선, 마이크로컴퓨터(10)에는, 미리 비휘발성 메모리(8)가 접속된 상태로 기기내에 내장되어 있다. 비휘발성 메모리(8)내의 모든 어드레스에는 내장 당초에는 「0」이 기입되어 있고, RAM(2)내의 데이터를 부주의하게 오버라이트하지 않도록 하고 있다.
다음에, 마이크로컴퓨터(10)가 오동작하거나, 마이크로컴퓨터(10) 기능의 일부를 변경하고자 하는 경우, 마이크로컴퓨터(10)내의 소프트웨어의 일부를 변경할 필요가 있다. 본 실시예에서는, 마이크로컴퓨터(10)내의 데이터 영역을 RAM(2)로 구성하고 있기 때문에, 임의로 오버라이트하는 것이 가능하다. 오버라이트하기 위해서는, 오버라이트하기 위한 데이터나, 오버라이트하는 어드레스를 특정하기 위한 데이터를 마이크로컴퓨터 기술자 등의 사용자가 비휘발성 메모리(8)에 기입함으로써, RAM(2)내의 데이터를 오버라이트할 수 있게 된다.
비휘발성 메모리(8)에 각 데이터를 기입하면, 비휘발성 메모리(8)내의 소스 어드레스(81)에 의해서, RAM(2)내의 임의의 어드레스인 제 1 어드레스(21)를 선택하고, 그 제 1 어드레스(21)에 기입된 제 1 데이터(21a)와, 비휘발성 메모리(8)내의 제 1 마스크 데이터(82)를 제 1 연산기(4)에서 논리 연산하여, 제 1 데이터(21a)에 있어서의 소정의 비트를 판독한다. 그 연산 결과와 비교 데이터(83)를 비교기(5)에서 비교한다. 그 비교 결과에 따라, 전환기(7)를 전환하도록 제어하고 있다. 비교 데이터(83)는 그 소정 비트의 값이 제 1 연산기(4)의 연산 결과의 소정 비트의 값과 일치하는 데이터를 기입해 놓고, 이 비교 데이터(83)와 제 1 연산기(4)의 연산 결과가 일치했을 때는, 제 2 어드레스(22)의 제 2 데이터(22a)의 소정 비트의 값을 수정할 수 있도록, 전환기(7)를 ON으로 하도록 제어한다.
비교기(5)에 있어서, 제 1 연산기(4)의 데이터와 비교 데이터(83)가 일치한 경우는, 전환기(7)를 ON으로 하여 제 2 데이터(22a)를 오버라이트한다. 또한, 비교기(5)에 있어서, 제 1 연산기(4)의 데이터와 비교 데이터(83)가 불일치하는 경우에는, 전환기(7)를 OFF로 하여 제 2 데이터(22a)를 오버라이트하지 않는다.
한편, 비휘발성 메모리(8)내의 타겟 어드레스(85)에 의해서 RAM(2)내의 제 2 어드레스(22)를 지정하여, 제 2 어드레스(22)내의 제 2 데이터(22a)의 소정의 비트를 제 2 연산기(6)로 판독한다. 제 2 연산기(6)에서는, 비휘발성 메모리(8)내의 제 2 마스크 데이터(84)와 논리 연산을 행하여, 전환기(7)에 출력하고 있다. 여기서, 전환기(7)가 ON인 경우에는 제 2 연산기(6)의 연산 결과를 제 2 데이터(22a)에 기입하지만(소정 비트를 오버라이트함), 전환기(7)가 OFF인 경우는 제 2 연산기(6)의 연산 결과는 제 2 데이터(22a)에 기입되지 않고, 제 2 데이터(22a)는 하등 변경되지 않는다.
여기서, 제 1 데이터(21a)와 제 2 데이터(22a)는 각각 쌍으로 되어 동작하는 것이고, 제 1 데이터(21a)의 조건에 근거하여, 상기 조건에 따른 결과를 제 2 데이터(22a)로서 출력하는 것이다.
상기의 동작에 대하여, 이하 도 2를 이용하여 상술한다.
우선, 비휘발성 메모리(8)에 기입되어 있는 각 데이터에 대하여 설명한다.
도 2에 있어서, RAM(2)내의 각 데이터나 비휘발성 메모리(8)내의 각 데이터는 각각 8 비트의 데이터로 실현하고 있다. 예를 들면, 마이크로컴퓨터 기술자 또는 사용자는 마이크로컴퓨터(10)를 탑재한 기기가 통상의 동작으로부터 일탈하였으면, 마이크로컴퓨터(10)내에 버그가 있는 것을 인식하고, 그 오동작의 상태에 근거하여, 예컨대, RAM(2)에 기입된 내용을 기록한 RAM 맵을 이용하여, RAM(2)내에 있어서의 버그가 있다고 생각되는 제 2 어드레스(22)의 제 2 데이터(22a)를 특정한다. 다음에, 제 2 데이터(22a)와, 제 2 데이터(22a)와 쌍으로 되어 동작하는 제 1 데이터(21a)를 비휘발성 메모리(8)에 의해서 특정하기 위해서, 제 1 어드레스(21)에 대응하는 어드레스를 비휘발성 메모리(8)내의 소스 어드레스(81)에 기입하고, 제 2 어드레스(22)에 대응하는 어드레스를 비휘발성 메모리(8)내의 타겟 어드레스(85)에 기입한다.
또한, 제 1 어드레스(21)에는 제 1 데이터(21a)로서 「01000101」이 기입되어 있는 것은, 예를 들면, 마이크로컴퓨터 기술자 또는 사용자는 이미 알고 있으며, 버그가 있는 제 2 데이터(22a)의 소정 비트에 대응한, 제 1 데이터(21a)에 있어서의 소정 비트의 값을 제 1 연산기(4)에서 추출하기 위한 제 1 마스크 데이터(82)로서 「00000100」를 비휘발성 메모리(8)에 기입한다.
또한, 제 1 마스크 데이터(82)에 의해서 추출한 비트의 값과 비교하기 위한 비교 데이터(83) 「00000100」를 비휘발성 메모리(8)에 기입한다. 이 비교 데이터(83)는 버그가 있다고 생각되는 제 2 데이터(22a)에 있어서의 비트에 대응한, 제 1 데이터(21a)에 있어서의 소정 비트의 값과 일치하는 데이터로 되어 있다. 즉, 제 1 마스크 데이터(82)를 이용하여 제 1 데이터(21a)로부터 소정 비트의 값을 추출하여, 그 비트의 값이 소망하는 값인지 여부를 확인하는 것이다.
또한, 마이크로컴퓨터 기술자는 제 1 데이터(21a)의 조건에 근거하여 그 결과가 제 2 데이터(22a)로서 출력되는 것은 이미 알고 있으며, 그 제 2 데이터(22a) 「00000010」이 기입되어 있는 제 2 어드레스(22)를, 예컨대, RAM 맵을 이용하여 특정한다. 그리고, 버그 수정시에 제 2 어드레스(22)를 비휘발성 메모리(8)에 의해서 지정하기 위해서, 제 2 어드레스(22)에 대응하는 어드레스를 비휘발성 메모리(8)내의 타겟 어드레스(85)에 기입한다.
또한, 타겟 어드레스(85)에 의해서 특정한 제 2 어드레스(22)의 제 2 데이터(22a)에 있어서의, 버그가 있다고 생각되는 소정의 비트를 다른 값으로 오버라이트하기 위한 제 2 마스크 데이터(84) 「00100000」를 비휘발성 메모리(8)에 기입한다.
이하, 도 2를 이용하여 동작을 설명한다.
우선, 본 기기가 오동작하여, 마이크로컴퓨터에 버그가 있다고 판단되었을 때에는, 마이크로컴퓨터 기술자나 사용자에 의해서 비휘발성 메모리(8)에 소스 어드레스(81)와 제 1 마스크 데이터(82)와 비교 데이터(83)와 제 2 마스크 데이터(84)와 타겟 어드레스(85)를 기입한다. 그리고, 소스 어드레스(81)에 의해서 선택된 제 1 데이터(21a) 「01000101」와 제 1 마스크 데이터(82) 「00000100」를 제 1 연산기(4)에서 논리 승산을 행한다. 여기서, 제 1 마스크 데이터(82)는 제 1 데이터(21a)와 논리 승산함으로써 제 1 데이터(21a)에 있어서의 소정의 비트(본 예에서는 최하위로부터 3 비트째)의 값을 추출하는 데이터로 되어 있다. 이것에 의해서 논리 승산의 결과는 「O0000100」로 된다. 그 연산 결과 「00000100」와 비교 데이터(83) 「00000100」를 비교기(5)에서 비교한다. 여기서, 비교기(5)에서 비교 데이터(83)와 제 1 연산기(4)의 연산 결과를 비교하는 것은 제 1 연산기(4)에서 추출한 소정 비트의 값이 소망하는 값인지 여부를 확인하기 위해서이다.
한편, 타겟 어드레스(85)에 의해서, RAM(2)내의 제 2 어드레스(22)를 선택하여, 그 제 2 어드레스(22)에 기입된 제 2 데이터(22a)와 제 2 마스크 데이터(84)를 제 2 연산기(6)에서 논리 연산을 행한다. 예컨대, 타겟 어드레스(85)에서 선택된 제 2 어드레스(22)의 제 2 데이터(22a)로서 「00000010」, 제 2 마스크 데이터(84)로서 「00100000」이 들어가 있는 상태에서, 각각의 데이터를 제 2 연산기(6)에서 논리 가산을 행한다. 그 논리 가산의 결과는 「00100010」로 된다.
그리고, 전술한 비교기(5)에 있어서의 비교의 결과, 제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 일치한 경우는, 전환기(7)를 ON으로 하고, 제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 불일치하는 경우는, 전환기(7)를 OFF로 한다. 전환기(7)가 OFF인 경우, 즉 제 2 데이터(22a)를 수정할 필요가 없는 경우는, 제 2 연산기(6)의 연산 결과는 제 2 데이터(22a)에 반영되지 않아 데이터는 변경되지 않지만, 전환기(7)가 ON인 경우는, 제 2 연산기(6)의 연산 결과에 근거하여, 제 2 데이터(22a)내의 소정의 비트를 올바른 값으로 오버라이트한다. 본 실시예에서는, 제 2 데이터(22a)에 연산 전에 기입되어 있던 데이터 「00000010」를 제 2 연산기(6)의 연산 결과인 「00100010」으로 오버라이트한다. 즉, 제 2 데이터(22a)의 왼쪽으로부터 3 비트째의 값이 본래 「1」이어야 되나, 「0」이기 때문에, 제 2 연산기(6)의 연산 결과에 의해 「1」로 오버라이트한다.
이상과 같이 본 실시예에 의하면, 제 2 데이터(22a)의 소정 비트의 값에 버그가 있는 경우, 미리 마이크로컴퓨터(10)에 접속된 비휘발성 메모리(8)에, 데이터를 오버라이트하기 위한 임의의 어드레스나 데이터를 기입함으로써 제 2 데이터(22a)의 소정 비트의 값을 오버라이트하도록 한 것에 의해, 마이크로컴퓨터(10)의 소프트웨어 버그를 수정할 수 있다. 즉, 본 실시예에 있어서는, 마이크로컴퓨터에 있어서의 버그 수정은 비교적 소용량의 비휘발성 메모리만을 준비하면 되므로 저가의 비용으로 실시할 수 있다.
(실시예 2)
다음에, 본 발명의 반도체 장치를 이용한 일례를 실시예 2로서 설명한다. 본 실시예에서 나타내는 일례는, 비디오 테이프 레코더에 일반적으로 사용되고 있는 오류 소거 방지 탭(taps) 검출에 의한 동작 제어를 행하는 마이크로컴퓨터의 버그 수정이다.
마이크로컴퓨터를 구비한 비디오 테이프 레코더가 오동작했을 때나, 마이크로컴퓨터에 의해서 동작하는 기능을 일부 변경하고자 하는 경우, 마이크로컴퓨터내의 소프트웨어를 수정할 필요가 있다. 종래에서는 마스크 R0M을 작성하여 고치는 등의 대폭적인 변경이 부득이했지만, 본 실시예에서는, 이러한 소프트웨어의 변경, 수정에 대하여, 마이크로컴퓨터내의 RAM(데이터 영역)에 있어서의, 예컨대, 버그의 원인으로 되어 있는 잘못된 데이터를 마이크로컴퓨터에 외부 접속한 비휘발성 메모리에 의해서, RAM내의 데이터를 비교적 염가의 비용으로 올바른 데이터로 오버라이트하는 것이 얻어지는 것이다. 이러한 비휘발성 메모리는 미리 비디오 테이프 레코더내에 탑재되고, 마이크로컴퓨터와 접속되어 있다. 그리고, 비디오 테이프 레코더가 정상적인 동작으로부터 일탈한 때에, 비휘발성 메모리에, 임의의, RAM에서의 데이터 수정을 행하는 어드레스를 특정하는 소스 어드레스 데이터나 타겟 어드레스 데이터, 실제로 데이터 수정을 행할 때에 이용하는 마스크 데이터나 비교 데이터 등이 사용자 등에 의해서 기입된다. 이들 데이터가 기입된 후, 비디오 테이프 레코더의 전원을 투입함으로써, RAM의 데이터 오버라이트가 실행된다.
또, 비휘발성 메모리를 마이크로컴퓨터에 접속하여, 전술한 각 데이터를 기입하고 있지 않은 상태일 때, 즉 RAM의 데이터를 오버라이트 가능한 데이터를 기억하기 전에는, 비휘발성 메모리의 각 어드레스에는 수치 「O」이 기입되어 있다.
도 3은 비디오 테이프 레코더에 이용하는 테이프 카세트의 외관을 도시하는 사시도이고, 도 3(a)는 오류 소거 방지 탭이 있는(기록 가능 상태) 테이프 카세트, 도 3(b)는 오류 소거 방지 탭이 없는(기록 불가능 상태) 테이프 카세트를 도시하고 있다. (31)는 테이프 카세트, (32)는 탭의 유무나 개폐식의 도어 등으로 구성되는 오류 소거 방지 검출부이다.
도 4는 본 실시예의 구성을 나타내는 블럭도이며, 설명의 편의상, 실시예 1에서 이용한 마스크 ROM과 CPU의 묘화를 생략했다. 도 4에 있어서, 마이크로컴퓨터(20)는 전자 기기의 동작을 제어하는 제어 수단이고, 비휘발성 메모리(8)는 마이크로컴퓨터(20)에 접속되어, 마이크로컴퓨터(20)내의 버그를 수정하는 데이터를 기억한 기억 수단이다. 비휘발성 메모리(8)의 내부에는, RAM(2)에 있어서의 제 1 데이터(41)가 기록된 임의의 어드레스를 특정하는 소스 어드레스(81), 제 1 데이터(41)와 논리 연산을 행하는 제 1 마스크 데이터(82), 제 1 연산기(4)의 연산 결과와 비교하는 비교 데이터(83), 제 2 데이터(42)와 논리 연산을 행하는 제 2 마스크 데이터(84), 제 2 데이터(42)의 어드레스를 특정하는 타겟 어드레스(85)가 배치되어 있고, 각 데이터는 마이크로컴퓨터 기술자에 의해서 임의의 데이터로 변경할 수 있는 것이다. 또, 비휘발성 메모리(8)는 미리 마이크로컴퓨터(20)에 접속한 상태로 해 놓고, 본 기기가 오동작하여 마이크로컴퓨터(20)에 버그가 있다고 판명되었을 때에, 마이크로컴퓨터 기술자가 상기 각 데이터를 비휘발성 메모리(8)에 기입하는 것이다.
RAM(Random Access Memory)(2)은 데이터 영역을 갖는 오버라이트 가능한 메모리이며, RAM(2)의 데이터 영역 어드레스에는 제 1 데이터(41) 및 제 2 데이터(42)가 기입된다.
제 1 연산기(4)는 비휘발성 메모리(8)로부터의 제 1 마스크 데이터(82)와 제 1 데이터(41)를 논리 연산하는 제 1 연산 수단이며, 본 실시예에서는 승산기로 하였지만, 후술하는 제 1 선택 데이터(86)에 의해, 예컨대 가산기로도 설정 가능하고, 그 밖의 논리 연산기에도 대응할 수 있는 것이다. 또, 제 1 연산기(4)를 승산기로 한 경우는, RAM(2)에 있어서의 제 1 데이터(41)와 비휘발성 메모리(8)에 있어서의 제 1 마스크 데이터(82)로 승산 처리를 행하여, 그 연산 결과를 비교기(5)로 출력한다. 또한, 제 1 연산기(4)를 가산기로 한 경우는, RAM(2)에 있어서의 제 1 데이터(41)와 비휘발성 메모리(8)에 있어서의 제 1 마스크 데이터(82)로 가산 처리를 행하여, 그 연산 결과를 비교기(5)에 출력한다. 어느 쪽의 연산에 있어서도, 제 1 데이터(41)에 있어서의 소정의 비트를 추출하기 위한 연산이다.
비교기(5)는 제 1 연산기(4)의 연산 결과와 비교 데이터(83)를 비교하여 후술하는 전환기(7)의 ON/OFF 전환 제어를 행하는 비교 수단이다. 본 실시예에서는 제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 일치한 경우에 전환기(7)를 ON 상태로 하도록 작동한다. 즉, 제 1 연산기(4)에 의해서 추출된 제 1 데이터(41)의 소정 비트의 값이 소망하는 데이터인 비교 데이터(83)와의 일치성을 확인하고 있다.
전환기(7)는 비교기(5)의 비교 결과에 의해 개방(OFF)/접속(ON) 전환을 행하는 전환 수단으로서, 후술하는 제 2 연산기(6)의 연산 결과를 제 2 데이터(42)에 기입하는지 여부를 전환하는 것이다.
제 2 연산기(6)는 제 2 데이터(42)와 제 2 마스크 데이터(84)로 논리 연산하는 제 2 연산 수단이다. 본 실시예에서는 승산기로 하였지만, 후술하는 제 2 선택 데이터(87)에 의해서, 예컨대, 가산기로도 설정 가능하고, 그 밖의 논리 연산기에도 대응할 수 있는 것이다. 또, 제 2 연산기(6)를 승산기로 한 경우는, RAM(2)에 있어서의 제 2 데이터(42)와 비휘발성 메모리(8)에 있어서의 제 2 마스크 데이터(84)로 승산 처리를 행하여, 그 연산 결과를 전환기(7)에 출력한다. 또, 제 2 연산기(6)를 가산기로 한 경우는, RAM2에 있어서의 제 2 데이터(42)와 비휘발성 메모리(8)에 있어서의 제 2 마스크 데이터(84)로 가산 처리를 행하여, 그 연산 결과를 전환기(7)에 출력한다. 어느 쪽의 연산에 있어서도, 제 2 데이터(42)에 있어서의 소정의 비트를 추출하여, 추출한 소정 비트의 값을 변경하기 위한 연산이다. 제 1 선택 데이터(86)는 제 1 연산기(4)를 승산기나 가산기 중 어느 하나를 선택할 수 있다. 제 2 선택 데이터(87)는 제 2 연산기(6)를 승산기나 가산기 중 어느 하나를 선택할 수 있다. 제 1 및 제 2 선택 데이터(86 및 87)에 있어서, 「01h」로 설정되었을 때는 승산기를 지정하고, 「02h」로 설정되었을 때는 가산기를 지정한다.
마이크로컴퓨터(20)내에는 RAM(2), 제 1 연산기(4), 비교기(5), 제 2 연산기(6), 전환기(7)가 각각 마련되어 있다.
이상과 같이 구성된 본 실시예의 반도체 장치에 대하여, 이하 그 동작에 대하여 설명한다.
도 3에 도시하는 바와 같이, 비디오 테이프 레코더에 이용되는 테이프 카세트(31)에는 오류 소거 방지 검출부(32)(본 실시예에서는 탭)가 카세트 측면에 부착되어 있고, 그 탭이 부착되어 있으면 기록 가능하고(도 3(a) 참조), 그 탭이 없으면(도 3(b) 참조) 기록을 하는 것은 불가능하다고 하는 규칙성이 있다. 이러한 테이프 카세트를 이용하는 비디오 테이프 레코더의 제어에는, 마스크 R0M을 탑재한 마이크로컴퓨터를 사용하고 있다.
상기 구성에 있어서, 예컨대, 비디오 테이프 레코더의 소프트웨어에, 잘못된소거 방지용의 탭이 부착되어 있지 않음(굽혀져 있음)에도 불구하고, 기록 동작을 행하게 된다고 하는 오동작이 발견된 것으로 한다. 이러한 오동작의 원인으로서는 검출 메카니즘의 고장 등도 생각할 수 있지만, 본 실시예에서의 설명은 마이크로컴퓨터내의 소프트웨어의 버그에 의한 오동작을 전제로 하고 있다. 상기한 바와 같이, 소프트웨어 버그의 원인에 의한 오동작은 소프트웨어에서 오류 소거 방지 탭이 부착되어 있지 않을(굽혀져 있을) 때에 플래그가 「1」이 되는 「오류 소거 방지 플래그」와, 오류 소거 방지 플래그가 「1」로 되어 있는 때에 기록 동작을 행하지 않도록 제어하는 「기록 개시 플래그」의 관계에 오류가 있는 경우에 발생한다. 또, 「기록 개시 플래그」가 「1」인 때는 기록 동작을 개시하고, 「O」인 때는 기록 동작을 개시하지 않는다.
본래, 오류 소거 방지 플래그가 「1」로 되어 있는(오류 소거 방지 탭이 굽혀져 있을) 때에는, 기록 개시 플래그는 「O」(기록 동작을 개시하지 않음)인 것이 정상임에도 불구하고, 기록 개시 플래그가 「1」로 되어 있는(기록 동작을 개시하는) 상태로 되어 있으면, 비디오 테이프 레코더는 전술한 바와 같은 오동작을 야기하게 된다. 이 때, 본 장치를 작동시켜, 오류 소거 방지 플래그가 「1」로 되어 있으면, 기록 개시 플래그를 「O」로 하는(기록 동작을 행하지 않는) 동작을 실행시키도록, RAM의 데이터 영역에 있어서의 기록 개시 플래그의 부분을 오버라이트하도록 동작시킨다. 그 결과, 소프트웨어의 버그가 해소되어, 재차 마스크 ROM을 작성하여 고칠 필요가 없어지게 되는 것이다.
이하에 구체적 동작에 대하여 도 4를 이용하여 상술한다.
도 4에 있어서, 우선, 비휘발성 메모리(8)는 마이크로컴퓨터(20)에 접속된 상태에서 비디오 테이프 레코더내에 배치된다. 이 때의 비휘발성 메모리(8)의 모든 어드레스에는,「0」의 값이 미리 기입되어 있기 때문에, RAM(2)내의 데이터를 준비되지 않게 오버라이트하는 동작은 실행되지 않는다. 이러한 비디오 테이프 레코더에 있어서, 오류 소거 방지 검출부(32)의 탭이 없음에도 불구하고, 기록 동작을 개시하게 되는 오동작이 발생하여, 마이크로컴퓨터(20)의 버그가 원인인 것이 발견되면, 마이크로컴퓨터 기술자는 이하의 순서에 따라서 비휘발성 메모리(8)에 각 데이터를 미리 기입한다.
마이크로컴퓨터 기술자 또는 사용자는 미리 RAM(2)내에 있어서의, 오류 소거 방지 플래그가 기입되어 있는 어드레스나 비트, 기록 개시 플래그가 기입되어 있는 어드레스나 비트는 미리 알고 있는 것으로 한다. 그리고, 이들 기지(旣知)의 정보에 근거하여, 오류 소거 방지 플래그가 RAM(2)에 있어서의 어드레스 「16C5h」번지의 왼쪽으로부터 2 비트째에 제 1 데이터(41)로서 기입하고, 기록 개시 플래그가 어드레스 「3A67h」번지의 왼쪽으로부터 6 비트째에 제 2 데이터(42)로서 기입하는 것으로 하면, 비휘발성 메모리(8)에, 임의의 어드레스로서 소스 어드레스(81) 「16C5h」, 제 1 마스크 데이터(82)로서 제 1 데이터(41)에 있어서의 왼쪽으로부터 2 비트째를 판독하기 위한 데이터 「01000000」, 비교 데이터(83)로서 제 1 연산기(4)의 연산 결과와 비교하기 위한 데이터 「01000000」, 제 2 마스크 데이터(84)로서 제 2 데이터(42)의 왼쪽으로부터 6 비트째를 오버라이트하기 위한 데이터 「11111011」, 타겟 어드레스(85)로서 제 2 데이터(42)의 어드레스를 특정하기 위한 「3A67h」를 각각 기입해 놓는다.
여기서, 비교 데이터(83)에는, 제 1 연산기(4)의 연산 결과와 비교하여, 오류 소거 방지 플래그가 「1」일 때의 제 1 데이터(41)와 제 1 마스크 데이터(82)의 연산 결과와 일치하는 데이터를 기입한다. 즉, 오류 소거 방지 플래그가 「1」일 때에 있어서의, 제 2 데이터(42)를 수정하기 위해서이다. 오류 소거 방지 플래그가 「0」일 때(즉, 오류 소거 방지 탭이 있는 경우)에 대해서는, 제 2 데이터(42)를 수정할 필요가 없기 때문에, 제 1 연산기(4)의 연산 결과와 비교 데이터(83)가 불일치하는 경우는, 제 2 데이터(42)는 변경되지 않는다. 또, 비휘발성 메모리(8)로의 데이터의 기입은 전용의 기입 장치를 이용하여 기입하는 등의 방법이 있다.
그리고, 제 1 선택 데이터(86)에는 제 1 연산기(4)가 승산기로서 동작하도록 「01h」, 제 2 선택 데이터(87)에는 제 2 연산기(6)가 승산기로서 동작하도록 「01h」를 각각 기입해 놓는다. 또한, 제 2 마스크 데이터(84)에는 제 2 연산기(6)에서 승산 처리되었을 때에, 제 2 데이터(42)의 왼쪽으로부터 6 비트째를 「1」로부터 「0」으로 오버라이트하는 데이터 「11111011」를 기입해 놓는다.
그리고, 비휘발성 메모리(8)의 소스 어드레스(81)에 의해 RAM(2)의 임의의 어드레스 「16C5h」가 지정되고, 그 어드레스에 기입되어 있는 제 1 데이터(41) 「01000000」를 판독한다. 판독한 제 1 데이터(41)는 제 1 연산기(4)에 입력되고, 제 1 연산기(4)에서, 제 1 데이터(41) 「01000000」와, 비휘발성 메모리(8)에 있어서의 제 1 마스크 데이터(82) 「01000000」를 승산 처리한다. 즉, 제 1 데이터(41)에 있어서의 오류 소거 방지 플래그가 기입되어 있는 비트의 값을 추출한다. 그 연산 결과는 「O1000000」로 되고, 그 연산 결과는 비교기(5)에 입력된다. 비교기(5)는 제 1 연산기(4)의 연산 결과 「01000000」와, 비휘발성 메모리(8)에 있어서의 비교 데이터(83) 「01000000」를 비교하여, 각각의 데이터가 일치(즉, 오류 소거 방지 플래그(왼쪽으로부터 2 비트째)가 1로 되어 있을 때)하고 있기 때문에, 전환기(7)를 ON이 되도록 제어한다.
한편, 타겟 어드레스(85) 「3A67h」에 의해서, RAM(2)에 있어서의 제 2 데이터(42)의 어드레스를 특정하여, 제 2 데이터(42) 「00000100」를 제 2 연산기(6)로 판독한다. 제 2 연산기(6)에서, 제 2 데이터(42) 「00000100」와 마스크 데이터(84) 「11111011」를 승산 처리한다. 그 승산 결과는 「00000000」로 된다. 즉, 수정하고자 하는 비트(왼쪽으로부터 6 비트째)의 값을 「1」로부터 「O」으로 하는 것이고, 수정하고자 하는 비트 이외의 비트에 대해서는, 제 2 연산기(6)에 있어서의 연산에 의해서 값이 변경되지 않도록 모두 「1」로 되어 있다.
그리고, 전환기(7)가 ON일 때는, 제 2 연산기(6)의 연산 결과 「O0000000」이 제 2 데이터(42)에 기입된다. 이 때, 제 2 연산기(6)에서 연산되기 전의 제 2 데이터(42)는 기록 개시 플래그(왼쪽으로부터 6 비트째)가 「1」로 되어 있었지만, 제 2 연산기(6)의 연산 결과에 오버라이트되는 것에 의해, 제 2 데이터(42)의 기록 개시 플래그가 「0」으로 된다. 그 결과, 제 1 데이터(41)에 있어서의 오류 소거 방지 플래그(왼쪽으로부터 2 비트째)가 「1」로 되어 있으면, 제 2 데이터(42)에 있어서의 기록 개시 플래그(왼쪽으로부터 6 비트째)가 「0」으로 되는 동작이 되기 때문에, 오류 소거 방지용 탭이 부착되어 있지 않음에도 기록하게 되는 버그가 해소된 것으로 된다.
이렇게 하여 버그를 수정한 마이크로컴퓨터(20)를 비디오 테이프 레코더로 동작시키면, 오류 소거 방지 검출부(32)가 있는 테이프 카세트(31)(도 3(a) 참조)에서는, 조작자의 녹화 지령에 의해 기록 동작을 행하고, 오류 소거 방지 검출부(32)가 없는 테이프 카세트(31)(도 3(b) 참조)에서는, 조작자의 잘못된 녹화 지령을 행하더라도 기록 동작이 행하여지지 않는 정상 동작으로 된다.
이상과 같이 본 실시예에 의하면, 비휘발성 메모리(8)에 제 1 및 제 2 마스크 데이터(82 및 84)와 소스 어드레스(81)와 비교 데이터(83)와 타겟 어드레스(85)의 임의의 데이터를 기입하고, 소스 어드레스(81)에 의해서 RAM(2)내의 제 1 데이터(41)를 추출하며, 오류 소거 방지 플래그가 기입되어 있는 제 1 데이터(41)중에서 제 1 마스크 데이터(82)에 의해서 오류 소거 방지 플래그를 판독하고, 비교 데이터(83)와 비교하며, 비교 데이터(83)와 일치하였을 때는, 기록 개시 플래그가 기입되어 있는 제 2 데이터(42)와 제 2 마스크 데이터(84)를 제 2 연산기(6)에서 연산한 결과를 제 2 데이터(42)에 기입하는 것에 의해, 오류 소거 방지 플래그가 「1」로 되어 있을 때는 기록 개시 플래그를 「0」으로 하도록 제 2 데이터(42)를 수정할 수 있는 것이며, 마이크로컴퓨터에 있어서의 버그 수정을 소용량의 비휘발성 메모리에 의한 저비용으로의 실현이 가능하다는 우수한 효과가 얻어진다.
또한, 비휘발성 메모리(8)에는, 마이크로컴퓨터 기술자에 의해서 버그에 따른 소스 어드레스, 타겟 어드레스의 지정이나, 각 데이터 설정을 행할 수 있기 때문에, 각종 버그에 대하여, 마스크 R0M을 변경하지 않고서 버그의 수정을 행할 수 있는 것이다.
또, 본 실시예에 있어서, 제 1 및 제 2 연산기(4 및 6)를 승산기로서 설명하였지만, 비휘발성 메모리(8)내의 제 1 및 제 2 선택 데이터(86 및 87)를 변경함으로써, 제 1 및 제 2 연산기 중 어느 한쪽 또는 양쪽을 가산기 등으로 설정하는 것이 가능하다. 또한, 본 실시예에 있어서는 승산기와 가산기로만 전환 가능한 구성으로 하였지만, 제산기 등의 다른 논리 연산기로 설정하는 것도 가능하다.
이상과 같이 본 발명은, 마스크 R0M을 변경하지 않고, 또한 프로그램 영역의 일부를 마이크로컴퓨터 외부에 배치된 비휘발성 메모리에 오버라이트하는 일없이, 소프트웨어의 버그 수정을 소용량의 비휘발성 메모리에 의한 저비용으로의 실현이 가능하다는 우수한 효과를 얻을 수 있는 것이다.
또한, 마이크로컴퓨터의 버그를 수정할 때, 마이크로컴퓨터 자체를 웨이퍼의 상태로부터 재차 확산 공정을 거쳐 작성하여 고치는 작업이 불필요하게 되어, 비용을 대폭 저감시킬 수 있다고 하는 우수한 효과를 얻을 수 있는 것이다.

Claims (6)

  1. 프로그램이 기억된 프로그램 영역을 갖는 마스크 R0M과 상기 프로그램의 동작에 이용하는 데이터를 기억한 데이터 영역을 갖는 오버라이트 가능한 메모리와 중앙 연산 처리 수단을 구비한 제어 수단과,
    상기 메모리에 있어서의 임의의 데이터 영역을 오버라이트 가능한 임의의 데이터를 기억하는 기억 수단
    을 포함하며,
    상기 기억 수단은,
    메모리 내의 제 1 어드레스를 지정하는 소스 어드레스와,
    상기 제 1 어드레스에 기억된 제 1 데이터의 소정 비트의 값을 판독하기 위한 제 1 마스크 데이터와,
    상기 제 1 마스크 데이터와 상기 제 1 데이터로 연산 처리한 연산의 결과 데이터와 비교하기 위한 비교 데이터와,
    상기 메모리 내의 제 2 어드레스를 지정하는 타겟 어드레스와,
    상기 제 2 어드레스에 기억된 제 2 데이터와 연산하기 위한 제 2 마스크 데이터
    를 포함하는 것을 특징으로 하는 반도체 장치.
  2. 제 1 항에 있어서,
    상기 기억 수단은, 메모리에 있어서의 데이터 영역을 오버라이트 가능한 임의의 데이터를 기억하기 전에는, 수치 「O」이 기입되어 있는 것을 특징으로 하는 반도체 장치.
  3. 제 1 항에 있어서,
    상기 메모리는, 소정의 조건이 설정된 제 1 데이터와, 상기 제 1 데이터의 조건에 따른 결과 출력을 실행하는 제 2 데이터를 포함한 것을 특징으로 하는 반도체 장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 제어 수단은,
    메모리내의 소스 어드레스에 의해서 선택된 임의의 제 1 어드레스에 기입된 제 1 데이터와 기억 수단으로부터의 제 1 마스크 데이터로 연산 처리하는 제 1 연산 수단과,
    상기 제 1 연산 수단의 연산 결과와 상기 기억 수단으로부터의 비교 데이터의 비교를 행하는 비교 수단과,
    상기 비교 수단의 비교 결과에 의해 ON/OFF를 전환되는 전환 수단과,
    상기 메모리내의 제 2 어드레스에 기입된 제 2 데이터와 상기 기억 수단으로부터의 제 2 마스크 데이터로 연산 처리하는 제 2 연산 수단
    을 포함한 것을 특징으로 하는 반도체 장치.
  6. 제 1 및 제 2 데이터가 기입된 제어 수단과, 제 1 및 제 2 마스크 데이터와 비교 데이터와 소스 어드레스와 타겟 어드레스를 갖는 기억 수단을 구비한 반도체 장치에 있어서,
    수치 「0」이 기입된 상기 기억 수단에 임의의 상기 제 1 및 제 2 마스크 데이터와 상기 비교 데이터와 상기 소스 어드레스와 상기 타겟 어드레스를 기입하고, 상기 소스 어드레스에 근거하여 상기 제 1 데이터를 추출하여, 상기 제 1 데이터와 상기 제 1 마스크 데이터로 제 1 연산을 실행하고, 상기 제 1 연산 결과와 상기 비교 데이터를 비교하며, 상기 타겟 어드레스에 근거하여 상기 제 2 데이터를 추출하고, 상기 제 2 데이터와 상기 제 2 마스크 데이터로 제 2 연산을 실행하며, 상기 비교 결과에 의해서 상기 제 2 연산 결과를 상기 제 2 데이터에 기입하는지 여부를 전환하는 것을 특징으로 하는 반도체 장치.
KR1020000050731A 1999-08-31 2000-08-30 반도체 장치 KR100723097B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP99-244718 1999-08-31
JP24471899 1999-08-31
JP2000192278A JP3750494B2 (ja) 1999-08-31 2000-06-27 半導体装置
JP2000-192278 2000-06-27

Publications (2)

Publication Number Publication Date
KR20010070043A KR20010070043A (ko) 2001-07-25
KR100723097B1 true KR100723097B1 (ko) 2007-05-30

Family

ID=26536874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000050731A KR100723097B1 (ko) 1999-08-31 2000-08-30 반도체 장치

Country Status (6)

Country Link
US (2) US6377493B1 (ko)
EP (1) EP1081595B1 (ko)
JP (1) JP3750494B2 (ko)
KR (1) KR100723097B1 (ko)
CN (1) CN1206658C (ko)
DE (1) DE60009999T2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3750494B2 (ja) * 1999-08-31 2006-03-01 松下電器産業株式会社 半導体装置
JP2003044305A (ja) * 2001-07-26 2003-02-14 Sony Corp 電子装置および修正方法
DK3222615T3 (da) 2008-08-01 2022-06-20 Univ Johns Hopkins Psma-bindende stoffer og anvendelser deraf
CN101604248B (zh) * 2009-07-20 2012-09-26 北京海尔集成电路设计有限公司 一种修正只读存储器中程序的嵌入式系统及其实现方法
CN103875039A (zh) * 2011-09-01 2014-06-18 杭州海存信息技术有限公司 现场修复系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0615187A1 (en) * 1993-03-11 1994-09-14 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
EP0640916A2 (en) * 1993-08-31 1995-03-01 Nec Corporation Microcomputer
US5619678A (en) * 1992-09-19 1997-04-08 Sony Corporation Electronic device for correction of ROM data with a parameter for calculation of position of correction data
US5926620A (en) * 1997-02-18 1999-07-20 Micron Electronics, Inc. Content addressable bit replacement memory

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4651275A (en) * 1981-07-02 1987-03-17 Texas Instruments Incorporated Microcomputer having read/write memory for combined macrocode and microcode storage
JPS6310234A (ja) 1986-07-01 1988-01-16 Canon Inc 割込み処理装置
JPH01192096A (ja) 1988-01-27 1989-08-02 Mitsubishi Electric Corp 半導体装置
JPH0314083A (ja) * 1989-06-12 1991-01-22 Toshiba Corp 携帯可能電子装置
JPH05233266A (ja) * 1992-02-18 1993-09-10 Nec Home Electron Ltd 情報処理装置
JP3904244B2 (ja) * 1993-09-17 2007-04-11 株式会社ルネサステクノロジ シングル・チップ・データ処理装置
JP3563768B2 (ja) * 1994-05-31 2004-09-08 株式会社ルネサステクノロジ Romプログラム変更装置
JP3059076B2 (ja) * 1995-06-19 2000-07-04 シャープ株式会社 不揮発性半導体記憶装置
TW318932B (ko) * 1995-12-28 1997-11-01 Hitachi Ltd
JP3750494B2 (ja) * 1999-08-31 2006-03-01 松下電器産業株式会社 半導体装置
US6941505B2 (en) * 2000-09-12 2005-09-06 Hitachi, Ltd. Data processing system and data processing method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619678A (en) * 1992-09-19 1997-04-08 Sony Corporation Electronic device for correction of ROM data with a parameter for calculation of position of correction data
EP0615187A1 (en) * 1993-03-11 1994-09-14 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
EP0640916A2 (en) * 1993-08-31 1995-03-01 Nec Corporation Microcomputer
US5926620A (en) * 1997-02-18 1999-07-20 Micron Electronics, Inc. Content addressable bit replacement memory

Also Published As

Publication number Publication date
DE60009999T2 (de) 2005-04-21
CN1206658C (zh) 2005-06-15
EP1081595B1 (en) 2004-04-21
JP2001143495A (ja) 2001-05-25
DE60009999D1 (de) 2004-05-27
JP3750494B2 (ja) 2006-03-01
CN1291773A (zh) 2001-04-18
KR20010070043A (ko) 2001-07-25
EP1081595A2 (en) 2001-03-07
US6377493B1 (en) 2002-04-23
EP1081595A3 (en) 2001-04-25
US6487129B2 (en) 2002-11-26
US20020093853A1 (en) 2002-07-18

Similar Documents

Publication Publication Date Title
US5542082A (en) Data storage system connected to a host computer system and having removable data storage media and equipped to read a control program from the removable media into storage employing ID comparison scheme
KR100415371B1 (ko) 컴퓨터
US5881002A (en) Nonvolatile memory control circuit
US20090187305A1 (en) Method of detecting manipulation of a programmable memory device of a digital controller
KR100265266B1 (ko) 플래쉬 eeprom 을 구비하는 마이크로컴퓨터및 플래쉬 eeprom 의 소거방법
US7478207B2 (en) Control system with a write filter for protection of data
KR100723097B1 (ko) 반도체 장치
JP3830867B2 (ja) シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
US5657301A (en) Automatic changer system capable of rewriting a control program for controlling the system
JPH10214203A (ja) 情報処理装置
KR100310486B1 (ko) 마이크로컴퓨터
JPWO2006040798A1 (ja) 半導体集積回路装置および電子システム
JP4734582B2 (ja) 不揮発性メモリのデータ更新方法、制御装置、及びデータ更新プログラム
US5731972A (en) Electronic apparatus which inhibits control of certain objects during initialization processing
KR100341424B1 (ko) 마이크로컴퓨터
JPH05233017A (ja) プログラマブルコントローラ
JPH07287603A (ja) エンジン制御装置
JP3645956B2 (ja) システム処理装置
JPS6289106A (ja) プログラマブルコントロ−ラ
JPH04276838A (ja) メモリ内蔵cpu装置
JP3730684B2 (ja) プログラマブルコントローラ用表示装置およびその表示情報書込方法
JP2950685B2 (ja) 光ディスク用チャネル装置
JP2000267846A (ja) 半導体集積回路装置
JPH02189694A (ja) マイクロコンピュータ
JPH1131104A (ja) 不揮発性メモリへの書き込み方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130430

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140507

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee