KR100276785B1 - 전자 장치 - Google Patents

전자 장치 Download PDF

Info

Publication number
KR100276785B1
KR100276785B1 KR1019920008667A KR920008667A KR100276785B1 KR 100276785 B1 KR100276785 B1 KR 100276785B1 KR 1019920008667 A KR1019920008667 A KR 1019920008667A KR 920008667 A KR920008667 A KR 920008667A KR 100276785 B1 KR100276785 B1 KR 100276785B1
Authority
KR
South Korea
Prior art keywords
address
correction
information
storage means
access
Prior art date
Application number
KR1019920008667A
Other languages
English (en)
Other versions
KR920022104A (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 KR920022104A publication Critical patent/KR920022104A/ko
Application granted granted Critical
Publication of KR100276785B1 publication Critical patent/KR100276785B1/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
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Memory System (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Document Processing Apparatus (AREA)

Abstract

[목적]
양산한 커스텀 LSI에 내장된 퍼엄웨어를 수정 가능하게 하는 것이다.
[구성]
1 칩 마이크로 콘트롤러(1)에 수정 내용 기억부(2), 수정 어드레스 기억부(3), 비교부(4) 및 억세스 변경부(6)를 미리 부가한다. ROM(15)내에 격납된 퍼엄웨어의 수정 정보를 외부로부터 수정 내용 기억부(2)와 수정 어드레스 기억부에 써넣는다. 비교부(4)는 어드레스 버스(16)중의 실행 어드레스와 수정 어드레스 기억부(3)에 격납된 수정 어드레스를 비교한다. 양 어드레스가 불일치할 경우, 종래와 같이 동작한다. 한편, 양 어드레스가 일치한 경우에는 일치 신호를 입력으로 하는 억세스 변경부(6)의 제어에 의해, ROM(15)내의 수정 부분을 대신해서, 수정 내용 기억부(2)에 격납된 수정 내용이 실행된다.

Description

전자 장치
제1도는 본 발명의 기본 구성을 도시하는 블록도.
제2도는 본 발명의 일 실시예를 도시하는 블록도.
제3도는 동 실시예의 동작을 도시하는 플로우 챠트.
제4도는 본 발명의 다른 실시예를 도시하는 블록도.
제5도는 동 실시예의 동작을 도시하는 플로우 챠트.
제6(a)도 및 제6(b)도는 동 실시예의 동작 예를 도시하는 도면.
제7도는 동 실시예의 다른 동작을 도시하는 플로우 챠트.
제8(a)도 및 제8(b)도는 동 실시예의 다른 동작예를 도시하는 도면.
* 도면의 주요부분에 대한 부호의 설명
ㄱ : 수정 정보 기억 수단 ㄴ : 전환 수단
1 : 전자 장치 2 : 수정 내용 기억부
3 : 수정 어드레스 기억부 4 : 비교부
5 : 일치 신호 6 : 억세스 변경부
7 : 수정 정보 11 : 외부 기억 수단
12 : 입력 수단 13 : 데이타 버스
14 : 어드레스 콘트롤러(CPU) 15 : 롬(ROM)
16 : 어드레스 버스 21 : 인터럽트 발생 어드레스 레지스터
22 : 비교 장치 23a : 제어 플래그 래치
23b : 인터럽트 벡터 레지스터 24 : 스위치
25 : 인터럽트 제어 회로 26 : 램(RAM)
27 : 바꿔쓰기 가능 ROM 28 : 통신 회선
29 : 통신 회로 31 : 수정 어드레스 레지스터
32 : 수정 데이타 레지스터 33 : 스위치
[산업상의 이용분야]
본 발명은 전용 마이크로 콘트롤러 등의 전자 장치, 특히 어드레스 콘트롤러로서의 센트럴 프로세싱 유니트(CPU) 등과, 프로그램이나 데이타를 고정적으로 격납한 리드 온리 메모리(ROM)등을 한 칩에 집적한 전자 장치에 관한 것이다.
[종래의 기술]
종래의 전자기기, 예컨대, 카메라 일체형 비디오 카세트 레코더(이하, 카메라 일체형 VCR이라 함)등에는 전자기기의 전체 또는 일부를 제어하는 제어 수단으로서 원칩화된 커스텀 LSI의 전자 장치, 소위 마이크로 콘트롤러가 탑재되어 있다.
이와 같은 마이크로 콘트롤러는 일반적으로 센트럴 프로세싱 유니트(이하, CPU라 함)와, 리드 온리 메모리(ROM)나 랜덤 억세스 메모리(RAM)등의 메모리와 입출력 포트 등의 주변 회로등으로 구성되는 전용 마이크로 컴퓨터이다.
여기에서, CPU는 어드레스 콘트롤러로서 메모리 등으로의 억세스를 제어하거나, 또는 프로세서로서 프로그램을 실행한다. 또한, ROM에는 프로그램이나 데이타등, 탑재되는 전자기기를 제어하기 위한 정보가 퍼엄웨어의 형태로 고정적으로 격납되며, RAM은 CPU에 프로그램 실행시의 워킹 에어리어 등을 제공하고, 주변 회로는 외부와의 통신에 쓰인다.
따라서, 커스텀 LSI인 마이크로 콘트롤러 등의 상기 전자 장치를 타당한 단가로 제공하려면 양산이 필수이다.
[발명이 해결하려는 과제]
근래에 있어서의 전자기기의 고기능화나 차별화를 위해, 마이크로 콘트롤러의 ROM에 격납되는 퍼엄웨어의 용량은 해마다 증가하고, 카메라 일체형 VCR을 예를 들면, 현재의 수십킬로 바이트로부터 수년 후에는 100 킬로바이트를 초과할 것으로 예상된다.
퍼엄웨어의 품질에 대해서는, 프로그램의 구조화나 여러 가지 검사에 의해 마이크로 콘트롤러의 양산 후에 버그(벌레)가 발생치 않도록 최대한의 노력이 경주되고 있다.
만일, 양산 버그가 발견되었을 경우, 종래에는 외부 설치 회로의 추가 등에 의한 수정이나, 버그를 정정한 마이크로 콘트롤러를 재차 양산해서 교환하는 등의 대책에 다대한 비용과 시간 및 인재를 필요로 했다. 더욱이, 카메라 일체형 VCR과 같은 부품 집적도가 높은 전자기기의 경우, 외부 설치 회로의 추가에 의한 수정은 거의 불가능하게 되어 있다.
그러므로, 본 발명은 마이크로 콘트롤러 등의 전자 장치의 아키텍쳐를 미리 양산 버그에 대응할 수 있는 것으로 함으로써, 만일, 양산 버그가 발견된 경우에도 외부로부터 수정 정보를 한번 부여하는 것만으로 버그를 회피할 수 있는 전자 장치를 제안하는 것이다.
[과제를 해결하기 위한 수단]
상술한 과제를 해결하기 위해서, 본 발명에 있어서는 정보를 고정적으로 기억하는 고정 기억 수단과, 어드레스 제어를 행하는 어드레스 제어 수단과, 외부로부터의 정보를 입력하는 입력 수단을 일체로 집적한 전자 장치에 있어서, 고정 기억 수단에 기억된 정보의 변경 부분에 관한 수정 정보가 입력 수단을 거쳐서 외부로부터 입력되었을 때, 이 수정 정보를 기억하는 수정 정보 기억 수단과, 고정 기억 수단의 변경 부분으로서 어드레스 제어 수단에 의한 억세스를 상기 고정 기억 수단으로부터 수정 정보 기억 수단으로 전환하는 전환 수단을 일체로 집적한 것이다.
[작용]
본 발명의 전자 장치(1)를 도시하는 제1도에 있어서, ROM(15)에 고정적으로 격납된 퍼엄웨어에, 만일 버그 등의 변경을 요하는 부분이 발생했을 경우, ROM(15)에 있어서의 변경을 요하는 부분의 어드레스, 즉 수정 어드레스와, 변경후의 내용, 즉 수정 내용 등이 수정 정보(7)로서, 외부 기억 수단(11)으로부터 입력 수단(12)과 데이타 버스(13)를 거쳐서, 수정 정보 기억 수단(ㄱ)의 수정 어드레스 기억부(3)와 수정 내용 기억부(2)에 써넣어진다.
CPU 등으로 구성되는 어드레스 콘트롤러(14)는, 어드레스 버스(16)를 거쳐서 ROM(15)중의 상기 변경을 요하는 부분에 억세스하려는 경우, 실행 어드레스가 수정 어드레스 기억 수단(3)에 기억된 수정 어드레스와 동등하게 된다. 이때, 전환 수단(ㄴ)의 비교부(4)는 어드레스 일치 신호(5)를 억세스 변경부(6)에 출력하고, 억세스 변경부(7)에 의해서, 억세스 제어가 ROM(15)으로부터 수정 내용 기억부(2)로 변경된다. 수정 내용의 실행 후에는, 억세스 제어는 다시 ROM(15)의 변경하고자 하는 부분의 직후의 어드레스로 되돌려 진다. 이와 같이, 수정 정보 기억 수단(ㄱ) 및 전환 수단(ㄴ)을 일체로 부가한 본 발명의 전자 장치(1)에 의하면 만일, 양산 버그가 발생했을 경우에도, 외부로부터 수정 정보(7)를 부여함으로써, 용이하게 양산 버그의 수정이 가능해진다.
[실시예]
이어서, 본 발명의 실시예에 대해서, 도면을 참조하여 상세히 설명한다.
제1도는, 본 발명의 기본 구성을 도시하는 블록도이다. 본 발명의 전자 장치(1)는 종래의 구성에 수정 내용 기억부(2) 및 수정 어드레스 기억부(3)로 이루어지는 수정 정보 기억 수단(ㄱ)과, 비교부(4) 및 억세스 변경부(6)로 이루어지는 전환 수단(ㄴ)을 부가한 아키텍쳐로 되고, ROM(15)중의 퍼엄웨어에 버그나 변경을 요하는 부분(이하, 수정 부분이라 함)이 발생했을 경우의 패치는 다음과 같이 행해진다.
우선, 수정 정보(7)의 입력에 대해서 설명한다. 수정 정보(7)는 ROM(15)에 있어서의 수정 부분의 어드레스 또는 스타트 어드레스(이하, 수정 어드레스라 함)와, 수정 부분에 패치하고 싶은 내용이나 패치 후에 복귀하는 ROM 상의 어드레스 등(이하, 수정내용이라 함)으로 구성된다. 수정 정보(7)는 외부 기억 수단(11)으로부터 입력 수단(12), 데이타 버스(13)를 거쳐서 수정 정보 기억 수단(ㄱ)의 수정 어드레스 기억부(3)와 수정 내용 기억부(2)에 써넣어진다.
여기에서, 상기 써넣기는 예를 들면 전자 장치(1)의 초기화시에 ROM(15)중의 로우더에 의해서 행해진다. 외부 기억 수단(11)은 도면에서는 전자 장치(1)의 외부에 설치되어 있으나, 전자 장치(1)의 내부에 설치해도 된다. 수정 어드레스 기억부(3)는 수정 어드레스를 래치하기 위한, 예를 들면 16 비트의 레지스터이며, 수정 어드레스를 전환 수단(ㄴ)의 비교부(4)로 출력한다. 또한, 수정내용 기억부(2)는 수정 내용을 일시 기억하는 RAM 이다.
다음에, ROM(15)의 수정 부분의 패치 처리를 설명한다. 어드레스 콘트롤러(14), 예컨대 CPU는 어드레스 버스(16)를 거쳐서 ROM(15)의 어드레스 제어를 행한다. 수정 부분의 수정 어드레스에 도달하면, 비교부(4)에 입력되는 2개의 어드레스, 즉, 실행 어드레스와 수정 어드레스는 동등해지고, 비교부(4)는 억세스 변경부(6)에 어드레스 일치 신호(5)를 출력하고, 억세스 변경부(6)에 의해 어드레스 콘트롤러(14)의 어드레스 제어는 ROM(15)으로부터 수정 내용 기억부(2)로 이동된다.
수정 내용 기억부(2)에 격납된 수정 내용의 실행 후, 어드레스 콘트롤러(14)의 어드레스 제어는, 수정 내용에 의해 도시되는 ROM(15)상의 수정 부분을 스킵한 어드레스로 복귀한다. 이와 같이 해서 ROM(15)에 고정적으로 격납된 퍼엄웨어의 수정 부분의 패치가 행하여진다.
여기에서, 억세스 변경부(6)는 인터럽트 제어 회로 등에 상당한다.
제2도는 본 발명의 일 실시예를 도시하는 블록도이고, 패치 처리의 대상이 ROM(15)상의 프로그램인 경우에 적용된다. 또한, 제1도와 동일 또는 유사한 블록에는 동일 부호를 붙이고 그 설명을 생략한다.
EEPROM(27)에 격납된 수정 정보(7)는 통신 회선(28), 통신 회로(29) 및 8비트의 데이타 버스(13)를 거쳐서, 16 비트의 인터럽트 발생 어드레스 레지스터(21)와, RAM(26)에 써넣어 진다. 여기서, EEPROM(27)은 제1도의 외부 기억 수단(11)에 상당하고, 통신 회선(28)과 통신 회로(29)는 입력 수단(12)에 상당한다. RAM(26)의 일부는 제1도의 수정 내용 기억부(2)로서 사용되고, 수정 내용은 여기에 써넣어진다. 또한, 인터럽트 발생 어드레스 레지스터(21)는 수정 어드레스 기억부(3)에 상당하고, 수정 어드레스는 여기에 래치된다.
비교부(4)에 상당하는 16 비트 비교 장치(22)는 어드레스 버스(16)의 실행 어드레스를 모니터하고, 수정 어드레스와 일치하면 일치 신호(5)를 출력한다.
도면 부호(23a)는 ROM(15)중의 수정 부분의 유무를 나타내는 제어 플래그 래치이며, 수정 정보(7)가 입력되면, 「1」로 세트되고, 입력이 없는 경우에는 「0」으로 리세트 된다. 제어 플래그 래치(23a)가 「0」인 경우, 스위치(24)가 「폐쇄」 제어되고, 「1」로 되면 「개방」으로 제어되므로, 일치 신호(5)는 인터럽트 요구 신호로서 인터럽트 제어 회로(25)에 입력되고, 인터럽트 제어 회로(25)에 의한 인터럽트 처리에 의해서, 인터럽트 벡터 레지스터(23b)가 나타내는 어드레스로 제어가 이동된다.
여기에서, 상기 인터럽트 벡터 레지스터(23b)에는 RAM(26)에 격납한 수정 내용의 선두 어드레스가 수정 정보를 써넣을 때에 래치되어 있는 것으로 한다. 또한, 제어 플래그 래치(23a), 인터럽트 벡터 레지스터(23b), 스위치(24) 및 인터럽트 제어 회로(25)는 제1도의 억세스 변경부(7)에 상당한다.
RAM(26)에 격납된 수정 내용의 말미는, 예컨대 ROM(15)의 수정 부분을 스킵한 어드레스로의 점프 명령 등으로 되므로, 제어는 RAM(26)으로부터 ROM(15)으로 리턴된다. 여기서, 인터럽트 처리로부터 복귀로 리턴 명령이 아닌 점프 명령을 사용하는 것은 RAM중의 수정 부분을 스킵하기 위해서 이다. 또한, 이것에 수반하여, 인터럽트시에 스택 등으로 퇴피한 데이타의 폐기 등이 필요해진다.
제3도는 동 실시예의 동작을 도시하는 플로우 챠트이다.
우선, 전원 투입후의 초기화시에, ROM 내에 격납된 이니셜 패치 로우더에 의해, EEPROM(27)에 격납된 수정 정보(7)중, 수정 어드레스를 인터럽트 발생 어드레스 레지스터(21)에 래치한다(스텝 ST1). 또한, 수정 내용의 선두 어드레스를 인터럽트 벡터 레지스터(23b)에 래치한다(스텝 ST2). 또한, 수정 내용을 RAM(26)의 소정의 어드레스에 써넣고, 제어 플래그 래치(23a)를 「1」로 세트한다(스텝 ST3).
다음에, 16 비트 비교 장치(22)는 어드레스 버스(16)에 출력되는 실행 어드레스와 인터럽트 발생 어드레스 레지스터(21)에 래치된 수정 어드레스를 비교하고(스텝 ST4), 불일치의 경우 인터럽트는 발생하지 않으며, 억세스는 ROM(15)에 대해서 행해진다(스텝 ST10).
일치했을 경우에는, 비교 장치(22)로부터 일치 신호(5)가 스위치(24)를 거쳐서 인터럽트 제어 회로(25)에 부여되고, 인터럽트가 발생한다(스텝 ST5). 인터럽트가 발생하면, 인터럽트 벡터 레지스터(23b)에 래치된 어드레스, 즉 RAM(26)의 수정 내용의 선두 어드레스로 제어가 옮겨지고(스텝 ST7), RAM(25)에 격납된 수정 내용(프로그램)이 실행된다(스텝 ST7).
인터럽트로부터의 복귀를 리턴 명령이 아니고 점프 명령으로 행하는 경우, 수정 내용의 후미에는 스택 등으로 퇴피한 리턴 어드레스 등을 폐기하는 명령이 내려지므로, 이것을 실행한다(스텝 ST8).
최후에, 수정 프로그램에 기록된 점프 명령을 실행하고, 제어는 ROM(15)의 수정 부분을 스킵한 어드레스로 돌아간다(스텝 ST9). 이 수정 부분으로의 재차 억세스에 대비하기 위해서, 비교 장치(22)에 의한 어드레스 비교는 계속해서 행해진다(스텝 ST4).
또한, ROM(15)에 복수 개소의 수정 부분이 있는 경우에는, 상술한 플로우차트 중, 스텝 S17에 이어서, 인터럽트 발생 어드레스 레지스터(21)와 인터럽트 벡터 레지스터(23b)를 각각 다음의 수정 어드레스와 다음 수정 내용의 선두 어드레스로 갱신하면 된다.
또한, 제2도에 있어서, 스위치(24)를 폐기하고, 제어 플래그 래치(23a)에 의해서 비교 장치(22)의 동작을 온·오프 제어하도록 해도 된다. 또한, 제어 플래그 래치(23a)와 스위치(24)를 폐기하고, ROM(15)에 수정 부분이 존재하지 않는 경우에는, 인터럽트 발생 어드레스 레지스터(21)에 무효 어드레스를 래치하도록 해도 된다.
또한, 도면에 있어서, EEPROM(27)을 전자 장치(1)의 내부에 설치하고, 통신 회선(28)에 EEPROM 써넣기 기기를 접속하여, 수정 정보를 EEPROM(27)에 써넣음으로써, 수정 정보가 전자 장치(1)의 내부에 바꿔쓰기 가능한 상태로 상주하도록 해도 된다.
제4도는 본 발명의 다른 실시예를 도시하는 블록도이고, 제2도와 공통 부분에는 동일 부호를 붙여, 그 설명을 생략한다.
도면부호(31)은 ROM(15)상의 수정하고자 하는 1워드의 어드레스, 즉, 수정 어드레스를 일시 기억하기 위한 수정 어드레스 레지스터이며, 제1도의 수정 어드레스 기억부(3)에 상당한다. 도면부호(32)는 1 워드의 수정 데이타를 일시 기억하기 위한 수정 데이타 레지스터이며, 제1도의 수정 내용 기억부(2)에 상당한다. 또한, 도면부호(33)은 데이타 버스(13)에 ROM(15)으로부터의 데이타를 출력할 것인지, 또는 수정 데이타 레지스터(32)로부터의 수정 데이타를 출력할 것인지를 선택하는 스위치이며, 제1도의 억세스 변경부(6)에 상당한다.
본 실시예에 있어서, ROM(15)에 격납된 임의의 1 워드(프로그램이나 데이타라도 좋음)를 1 워드의 수정 데이타에 의해서 패치하는 동작을, 제5도에 도시하는 플로우 차트에 기준해서 설명한다.
전자 장치(1)의 초기화시, ROM(15)에 상주하는 이니셜 패치 로우더에 의해서 EEPROM(27)으로부터의 수정 정보(7)를 판독한다. 즉, 2 바이트의 수정 어드레스를 수정 어드레스 레지스터(31)에 래치하고(스텝 ST11), 1 바이트의 수정 데이타를 수정 데이타 레지스터(32)에 래치한다(스텝 ST12).
초기화 후, 비교 장치(22)는 어드레스(16)에 출력되는 실행 어드레스를 수정 어드레스 레지스터(31)에 기억된 수정 어드레스와 비교한다(스텝 ST14).
실행 어드레스와 수정 어드레스가 불일치하는 경우, 스위치(33)는 ROM(15)측으로 전환되고(스텝 ST20), CPU(14)의 ROM(15)으로의 억세스 결과로서, ROM(15)중에 격납되어 있는 데이타가 데이타 버스(13)로 출력된다(스텝 ST21).
한편, 실행 어드레스와 수정 어드레스가 일치한 경우, 스위치(33)는 수정 데이타 레지스터(32)측으로 전환(스텝 ST15)되므로, CPU(14)의 ROM(15)으로의 억세스 결과로서, 수정 데이타 레지스터(32)에 래치된 수정 데이타가 데이타 버스(13)에 출력된다(스텝 ST16). 다음번 수정에 대비하기 위해, 비교 장치(22)는 어드레스 비교를 계속 행한다(스텝 ST14).
제6(a)도 및 제6(b)도는 제5도에 도시한 플로우 챠트의 동작 예를 도시하는 도면이다.
제6(a)도는 ROM(15)의 어드레스와 내용 및 수정 어드레스 레지스터(31), 수정 데이타 레지스터(32)의 내용을 도시하며, ROM(15)의 어드레스(A~H)에는 각각 데이타(a~h)가 고정적으로 격납되어 있다. 이중, 어드레스(E)의 데이터(e)가 오류 개소였다고 본다. 이 경우, 수정 어드레스 레지스터(31)와 수정 데이터 레지스터(32)에는 각각 수정 어드레스(E)와 수정 데이타(K)가 래치된다.
본 실시예에 있어서, CPU(14)에 의해 ROM(15)의 어드레스(A~H)를 순차 억세스한 경우의 실행 이미지(프로그램의 경우), 또는 참조 이미지(데이타의 경우)를 제6(b)도에 도시한다. 즉, 오류 개소(e)는 수정 내용(K)으로 치환되어 수정된다.
제7도는 본 실시예에 있어서, ROM(15)의 복수 개소, 예컨대 2 개소의 각 1 워드를 수정하는 경우의 플로우 차트이다. 또한, 제8(a)도 및 제8(b)도는 그 동작 예이다. 또한, 제7도는 제5도에 4 개의 스텝(ST13, ST17∼19)을 부가한 플로우 챠트 이므로 제5도와 중복하는 스텝의 설명은 생략한다.
제8(a)도에 도시하듯이, ROM(15)의 어드레스(B 및 E)를 수정하는 경우에 대해서 설명한다.
우선, 스텝(ST11)에 있어서, 수정 어드레스 레지스터(31)에는 수정 어드레스(B)가 래치된다. 스텝(ST12)에 있어서, 수정 데이타 레지스터(32)에는 수정 데이타로서 본 예에선 1워드 명령 「L로 날아라」가 래치된다. 또한, 스텝(ST13)에 있어서, RAM(26)의 어드레스(L∼S)에는 제8(a)도에 도시하는 데이터가 써넣어진다.
실행 어드레스와 수정 어드레스(B)가 일치하면, 데이타 버스(13)에는, 수정 데이타 레지스터(32)에 래치된 1 워드의 수정 데이타 「L 로 날아라」가 출력되며(스텝 ST16), CPU(14)의 어드레스 제어는 RAM(26)의 어드레스(L)로 옮겨진다(스텝 ST17).
RAM(26)의 어드레스(L)의 데이타 「B의 수정 내용」을 실행한 후, 어드레스(M)의 데이타 「수정 어드레스 레지스터(31)의 갱신 명령」과, 어드레스(N)의 데이타 「수정 데이타 레지스터(32)의 갱신 명령」을 순차 실행한다. 이 결과, 수정 어드레스 레지스터(31)에는 수정 어드레스(E)가 래치되고, 수정 데이타 레지스터(32)에는 수정 데이타 「P로 날아라」가 래치된다(이상, 스텝 ST18).
다음에, RAM(26)의 어드레스(0)의 데이타 「C로 날아라」를 실행하여, CPU(14)의 어드레스 제어를 ROM(15)의 어드레스(C)로 옮겨진다(스텝 ST19).
그래서 제1오류 개소(b)의 패치는 완료되고, 스텝(ST14∼ST19), 또는 스텝 (ST14~ST21)이 반복된다.
즉, ROM(15)의 어드레스(E)에 있어서 , CPU의 어드레스 제어는 RAM(26)의 어드레스(P)로 옮겨지며, 제2오류 개소(e)가 수정된다. RAM(26)의 어드레스(Q, R)에 기록된 명령에 의해서, 수정 어드레스 레지스터(31)와 수정 데이타 레지스터(32)에는 각각 수정 어드레스(B)와 수정 데이타 「L로 날아라」가 재차 래치되며, 제1오류 개소(b)의 수정에 대비한다.
제8(b)도에, 본 예에 의한 실행 이미지를 도시한다.
또한, 제8(a)도중, RAM(26)의 어드레스(L, P)에 표시되는 「수정 내용」은 1 워드에 한정되지 않는다. 즉, 1 워드의 오류 개소(b, e)에 대한 수정 내용은 복수 워드여도 된다.
또한, 제4도에 도시하는 다른 실시예에 있어서, 비교 장치(22), 수정 어드레스 레지스터(31) 및 수정 어드레스 레지스터(32)를 복수조 구비함으로써, 복수의 수정 개소에 대응하도록 해도 된다.
[발명의 효과]
본 발명에 의하면, 양산 후에 퍼엄웨어의 버그가 발견되거나, 또는 변경이 생길 경우, 외부로부터 수정 정보를 부여함으로서 신속하게 또한 용이하게 대응할 수 있는 효과가 있다.
또한, 종래와 같이 막대한 비용, 시간 및 인재를 필요로 하는 대응, 즉 외부 설치 회로의 부가나, 전자 장치 그 자체의 재차 양산 등에 의한 대응이 불필요해지는 현저한 효과와 동시에, 외부 설치 회로의 부가 등에 의한 신뢰성 저하를 방지할 수 있는 효과가 있다.

Claims (1)

  1. 퍼엄웨어를 기억하기 위한 판독 전용 정보 기억 수단(15), 어드레스 제어를 수행하기 위한 어드레스 제어 수단(14), 및 기판 외부에 있는 소스(11)로부터 공급받은 정보를 입력하기 위한 입력 수단(12)과, 기판 외부에 있는 소스(11)로부터 입력 수단(12)을 거쳐서 입력된 수정 정보를 수신하고 그 수정 정보를 기억하기 위한 랜덤 억세스 수정 정보 기억 수단(ㄱ)으로서, 상기 수정 정보는 판독 전용 정보 기억 수단(15)에 기억된 결함 정보부분에 대한 변경을 표시하는, 상기 랜덤 억세스 수정 정보 기억 수단(ㄱ)과, 상기 어드레스 제어 수단(14)에 의해 판독 전용 정보 기억 수단(15)에 있어서의 결함 정보 부분으로부터 수정 정보 기억 수단(ㄱ)에 있어서의 수정 정보로 억세스를 선택적으로 전환하기 위한 전환 수단(ㄴ)으로서, 상기 수정 정보는 판독 전용 정보 기억 수단(15)에 있어서의 결함 정보 부분의 어드레스와 동일한 수정 어드레스를 포함하고, 결함 정보 부분을 대체하기 위해 변경 정보를 포함하며, 상기 전환 수단(L)은 어드레스 제어 수단에 의해서 어드레스될 어드레스와 수정 어드레스를 비교하여 수정 어드레스와 억세스될 어드레스가 동일할 때 어드레스 일치 신호(5)를 출력하는 어드레스 비교 수단(4)과, 상기 어드레스 비교 수단(4)에 접속되어 어드레스 제어 수단(14)에 의해 상기 어드레스 일치 신호(5)에 응답하여 판독 전용 정보 기억 수단(15)에 있어서의 결함 정보 부분 대신에 수정 정보 기억 수단(ㄱ)에 있어서의 변경 정보를 억세스하도록 하는 억세스 변경 수단(6)을 구비하는, 상기 전환 수단(ㄴ)을 포함하며, 어드레스 제어 수단(14), 판독 전용 정보 기억 수단(15), 및 수정 정보 기억 수단(ㄱ)에 접속된 어드레스 버스(16)를 더 포함하는 마이크로 제어기에 있어서, 상기 마이크로 제어기는 단일 기판상에 일체화되고, 상기 기억 수단(ㄴ)은 상기 마이크로 제어기의 초기화시에 수정 정보를 기억하며, 제어 플래그 래치(23a)는 판독 전용 정보 기억 수단(15)이 결함 정보 부분을 기억하고 있는 것을 나타내도록 세트되고, 상기 전환 수단(ㄴ)은 상기 제어 플래그 래치(23a)가 판독 전용 정보 기억 수단(15)에 결함 정보 부분이 있는 것을 나타내도록 세트될 때만 억세스 제어 수단(14)에 의해 어드레스를 전환하고, 액세스 변경 수단(6)에 의한 억세스의 전환은 인터럽트에 의해 수행되는 것을 특징으로 하는 마이크로 제어기.
KR1019920008667A 1991-05-23 1992-05-22 전자 장치 KR100276785B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP91-118799 1991-05-23
JP3118799A JPH04346127A (ja) 1991-05-23 1991-05-23 電子装置

Publications (2)

Publication Number Publication Date
KR920022104A KR920022104A (ko) 1992-12-19
KR100276785B1 true KR100276785B1 (ko) 2001-01-15

Family

ID=14745405

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019920008667A KR100276785B1 (ko) 1991-05-23 1992-05-22 전자 장치

Country Status (6)

Country Link
US (1) US6237120B1 (ko)
EP (1) EP0514806B1 (ko)
JP (1) JPH04346127A (ko)
KR (1) KR100276785B1 (ko)
CA (1) CA2068705C (ko)
DE (1) DE69228272T2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030011553A (ko) * 2001-07-26 2003-02-11 소니 가부시끼 가이샤 전자장치 및 수정방법

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574926A (en) * 1993-03-11 1996-11-12 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
EP0615187B1 (en) * 1993-03-11 2000-09-20 Olympus Optical Co., Ltd. One-chip microcomputer system having function for substantially correcting contents of program
EP0649091A1 (en) * 1993-10-13 1995-04-19 International Business Machines Corporation Correction and modification of microprocessor chip operations
JPH0876990A (ja) * 1994-09-07 1996-03-22 Seikosha Co Ltd カメラ用制御回路
US6738894B1 (en) * 1995-02-07 2004-05-18 Hitachi, Ltd. Data processor
FR2764404B1 (fr) * 1997-06-10 2001-03-30 Sagem Procede de commande d'un microprocesseur integre avec une memoire morte de programme et circuit integre pour la mise en oeuvre du procede
JPH1115689A (ja) * 1997-06-19 1999-01-22 Nec Corp ソフトウェアのデバッグ方法及びデバッグ・プログラムを記録した記録媒体
US6973522B1 (en) * 1999-08-10 2005-12-06 Pentax Corporation Microcomputer with program-revision ability
JP3838840B2 (ja) * 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
JP4194310B2 (ja) 2002-07-19 2008-12-10 株式会社ルネサステクノロジ 電子装置
US7493435B2 (en) * 2003-10-06 2009-02-17 Intel Corporation Optimization of SMI handling and initialization
TWI263940B (en) * 2004-11-23 2006-10-11 Ene Technology Inc Memory device firmware patch method
EP1686467B1 (en) * 2005-01-31 2008-03-12 STMicroelectronics S.r.l. Method and system for correcting errors in read-only memory devices, and computer program product therefor
US7464248B2 (en) 2005-04-25 2008-12-09 Mediatek Incorporation Microprocessor systems and bus address translation methods
US7533240B1 (en) * 2005-06-01 2009-05-12 Marvell International Ltd. Device with mapping between non-programmable and programmable memory
US8156486B2 (en) * 2008-10-29 2012-04-10 Mediatek Inc. Patching devices and methods thereof for patching firmware functions
US8689204B2 (en) * 2009-02-28 2014-04-01 Blackberry Limited Methods and tools for creation of read-only-memory software binary images and corresponding software patches
US20130227343A1 (en) * 2012-02-28 2013-08-29 O2Micro, Inc. Circuits and Methods for Replacing Defective Instructions
JP6318425B2 (ja) * 2013-02-22 2018-05-09 マーベル ワールド トレード リミテッド リードオンリメモリのブートコードパッチ
US9547489B2 (en) * 2014-03-31 2017-01-17 Qualcomm Incorporated System and method for modifying a sequence of instructions in a read-only memory of a computing device

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4150428A (en) 1974-11-18 1979-04-17 Northern Electric Company Limited Method for providing a substitute memory in a data processing system
JPS5721799B2 (ko) 1975-02-01 1982-05-10
JPS5245232A (en) 1975-10-08 1977-04-09 Hitachi Ltd Micro program modification circuit
US4028684A (en) 1975-10-16 1977-06-07 Bell Telephone Laboratories, Incorporated Memory patching circuit with repatching capability
US4028683A (en) 1975-10-16 1977-06-07 Bell Telephone Laboratories, Incorporated Memory patching circuit with counter
US4028678A (en) 1975-10-16 1977-06-07 Bell Telephone Laboratories, Incorporated Memory patching circuit
US4218757A (en) 1978-06-29 1980-08-19 Burroughs Corporation Device for automatic modification of ROM contents by a system selected variable
US4291375A (en) 1979-03-30 1981-09-22 Westinghouse Electric Corp. Portable programmer-reader unit for programmable time registering electric energy meters
US4296470A (en) 1979-06-21 1981-10-20 International Business Machines Corp. Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
JPS56136054A (en) 1980-03-26 1981-10-23 Hitachi Ltd Function assigning circuit
US4319343A (en) 1980-07-16 1982-03-09 Honeywell Inc. Programmable digital memory circuit
US4456966A (en) 1981-02-26 1984-06-26 International Business Machines Corporation Memory system with flexible replacement units
JPS57150019A (en) 1981-03-13 1982-09-16 Hitachi Ltd Control system of terminal device
JPS57196357A (en) 1981-05-29 1982-12-02 Toshiba Corp Data processor
JPS57211651A (en) * 1981-06-23 1982-12-25 Toshiba Corp Patch system
US4490783A (en) 1981-07-02 1984-12-25 Texas Instruments Incorporated Microcomputer with self-test of microcode
JPS587067A (ja) * 1981-07-07 1983-01-14 西尾 康雄 二段駐車装置
US4400798A (en) 1981-07-13 1983-08-23 Tektronix, Inc. Memory patching system
JPS5816350A (ja) * 1981-07-22 1983-01-31 Toshiba Corp メモリ拡張代替方式
US4542453A (en) * 1982-02-19 1985-09-17 Texas Instruments Incorporated Program patching in microcomputer
US4490812A (en) 1982-09-30 1984-12-25 Mostek Corporation User reprogrammable programmed logic array
US4819154A (en) 1982-12-09 1989-04-04 Sequoia Systems, Inc. Memory back up system with one cache memory and two physically separated main memories
US4769767A (en) 1984-01-03 1988-09-06 Ncr Corporation Memory patching system
US4610000A (en) 1984-10-23 1986-09-02 Thomson Components-Mostek Corporation ROM/RAM/ROM patch memory circuit
FR2573227B1 (fr) 1984-11-09 1987-01-30 Palais Decouverte Dispositif de simulation et de securite pour clavier de saisie de donnees
US4745572A (en) 1985-11-04 1988-05-17 Step Engineering Software editing instrument
US4709324A (en) 1985-11-27 1987-11-24 Motorola, Inc. Data processor control unit having an interrupt service using instruction prefetch redirection
JPS62249231A (ja) 1986-04-23 1987-10-30 Pfu Ltd マイクロプログラム制御処理方式
ATE83106T1 (de) 1986-06-09 1992-12-15 Securicrypto Ab Einrichtung zur verschluesselung und zur entschluesselung.
US4751677A (en) 1986-09-16 1988-06-14 Honeywell Inc. Differential arrangement magnetic memory cell
US4751703A (en) 1986-09-16 1988-06-14 International Business Machines Corp. Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor
US4831517A (en) 1986-10-10 1989-05-16 International Business Machines Corporation Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system
US4802119A (en) * 1987-03-17 1989-01-31 Motorola, Inc. Single chip microcomputer with patching and configuration controlled by on-board non-volatile memory
US4942541A (en) 1988-01-22 1990-07-17 Oms, Inc. Patchification system
JPS6465633A (en) 1987-09-07 1989-03-10 Hitachi Ltd Microprogram controller
JP3023425B2 (ja) 1987-10-09 2000-03-21 株式会社日立製作所 データ処理装置
JPH0199129A (ja) 1987-10-12 1989-04-18 Fujitsu Ltd マイクロプログラム修正方式
JPH01114941A (ja) 1987-10-28 1989-05-08 Fujitsu Ltd プログラム修正方式
JPH01232447A (ja) * 1988-03-11 1989-09-18 Mitsubishi Electric Corp シングル・チップ・マイクロコンピュータ
JPH01286029A (ja) * 1988-05-13 1989-11-17 Nec Corp マイクロプログラムのパッチ方式
US4905200A (en) * 1988-08-29 1990-02-27 Ford Motor Company Apparatus and method for correcting microcomputer software errors
US5063499A (en) 1989-01-09 1991-11-05 Connectix, Inc. Method for a correlating virtual memory systems by redirecting access for used stock instead of supervisor stock during normal supervisor mode processing
US5357627A (en) 1989-03-28 1994-10-18 Olympus Optical Co., Ltd. Microcomputer having a program correction function
DE68923864T2 (de) 1989-04-19 1996-05-02 Ibm Anordnung zur Speicher- und Peripherie-Bausteinauswahl.
US5077737A (en) 1989-08-18 1991-12-31 Micron Technology, Inc. Method and apparatus for storing digital data in off-specification dynamic random access memory devices
JPH03142629A (ja) * 1989-10-30 1991-06-18 Toshiba Corp マイクロコントローラ
GB9011679D0 (en) * 1990-05-24 1990-07-11 Schlumberger Ind Ltd Mask-programmable microprocessors
US5199032A (en) 1990-09-04 1993-03-30 Motorola, Inc. Microcontroller having an EPROM with a low voltage program inhibit circuit
JP3131234B2 (ja) 1991-01-14 2001-01-31 株式会社日立製作所 半導体装置
US5408672A (en) 1991-11-18 1995-04-18 Matsushita Electric Industrial Co. Microcomputer having ROM to store a program and RAM to store changes to the program
JPH06318261A (ja) * 1992-09-18 1994-11-15 Sony Corp 電子装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030011553A (ko) * 2001-07-26 2003-02-11 소니 가부시끼 가이샤 전자장치 및 수정방법

Also Published As

Publication number Publication date
CA2068705A1 (en) 1992-11-24
EP0514806A3 (en) 1993-12-08
EP0514806B1 (en) 1999-01-27
CA2068705C (en) 2002-10-22
DE69228272T2 (de) 1999-06-02
DE69228272D1 (de) 1999-03-11
US6237120B1 (en) 2001-05-22
KR920022104A (ko) 1992-12-19
JPH04346127A (ja) 1992-12-02
EP0514806A2 (en) 1992-11-25

Similar Documents

Publication Publication Date Title
KR100276785B1 (ko) 전자 장치
KR100324834B1 (ko) 전자장치
EP0453268B1 (en) A microprocessor for inserting a bus cycle to output an internal information for an emulation
JP2731692B2 (ja) デバッグ装置
US4542453A (en) Program patching in microcomputer
US7596721B1 (en) Methods and structure for patching embedded firmware
US6115814A (en) Memory paging scheme for 8051 class microcontrollers
JPH03141447A (ja) 電気的に消去可能なプログラマブル読み出し専用メモリーに常駐するファームウェアを更新する方法及び装置
US5600807A (en) Programmable controller capable of updating a user program during operation by switching between user program memories
US5799144A (en) Microcomputer for resolving problems found in a program stored in a ROM
US6925522B2 (en) Device and method capable of changing codes of micro-controller
US20030005212A1 (en) Method and apparatus for dynamically modifying a stored program
KR100310486B1 (ko) 마이크로컴퓨터
US5619678A (en) Electronic device for correction of ROM data with a parameter for calculation of position of correction data
JPH06314190A (ja) 電子装置
EP1177499A1 (en) Processor and method of executing instructions from several instruction sources
KR20020029921A (ko) 정적 기억 장치 내의 마이크로 명령어를 수정하는 방법 및장치
JPH1040094A (ja) ファームウエアのプログラム制御装置
JP2004240717A (ja) ソフトウェア更新装置
JPH0876990A (ja) カメラ用制御回路
JPH1050086A (ja) Eepromを有するマイクロコンピュータ及びその書換方法
JPS63156231A (ja) リ−ドオンリ−メモリ内命令の変更方法
JPS59229647A (ja) 入出力装置制御方式
JP2004139340A (ja) 測定器
JPH06318262A (ja) 複数の電子装置を用いたシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080926

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee