KR100276785B1 - 전자 장치 - Google Patents
전자 장치 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, 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)
- 퍼엄웨어를 기억하기 위한 판독 전용 정보 기억 수단(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)에 의한 억세스의 전환은 인터럽트에 의해 수행되는 것을 특징으로 하는 마이크로 제어기.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030011553A (ko) * | 2001-07-26 | 2003-02-11 | 소니 가부시끼 가이샤 | 전자장치 및 수정방법 |
Families Citing this family (20)
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)
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 | 電子装置 |
-
1991
- 1991-05-23 JP JP3118799A patent/JPH04346127A/ja active Pending
-
1992
- 1992-05-14 CA CA002068705A patent/CA2068705C/en not_active Expired - Fee Related
- 1992-05-18 EP EP92108338A patent/EP0514806B1/en not_active Expired - Lifetime
- 1992-05-18 DE DE69228272T patent/DE69228272T2/de not_active Expired - Fee Related
- 1992-05-22 KR KR1019920008667A patent/KR100276785B1/ko not_active IP Right Cessation
-
1995
- 1995-01-04 US US08/368,758 patent/US6237120B1/en not_active Expired - Fee Related
Cited By (1)
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 |