KR100307857B1 - 전자장치 - Google Patents
전자장치 Download PDFInfo
- Publication number
- KR100307857B1 KR100307857B1 KR1019930000467A KR930000467A KR100307857B1 KR 100307857 B1 KR100307857 B1 KR 100307857B1 KR 1019930000467 A KR1019930000467 A KR 1019930000467A KR 930000467 A KR930000467 A KR 930000467A KR 100307857 B1 KR100307857 B1 KR 100307857B1
- Authority
- KR
- South Korea
- Prior art keywords
- address
- storage means
- instructions
- processor
- correction
- Prior art date
Links
- 238000012937 correction Methods 0.000 claims abstract description 48
- 238000000034 method Methods 0.000 claims abstract description 29
- 230000004048 modification Effects 0.000 claims abstract description 28
- 238000012986 modification Methods 0.000 claims abstract description 27
- 238000012545 processing Methods 0.000 claims description 30
- 230000004044 response Effects 0.000 claims description 3
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 2
- 238000004519 manufacturing process Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 101150065817 ROM2 gene Proteins 0.000 description 2
- 230000004069 differentiation Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
Classifications
-
- 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
- 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
- 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
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
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)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
Abstract
끼워넣기 처리 중에도 수정을 할 수 있도록 한다. 전자장치(10)에는, CPU(1), ROM(2), RAM(3) 및 입력수단(4), 다시 데이터 버스(5) 및 어드레스 버스(6)가 설치된다. 또한 수정할 곳의 어드레스의 레지스터(7)와 수정 끼워넣기 벡터의 레지스터(8)가 설치되어, 이들이 데이터 버스(5)에 접속된다. 다시 이 레지스터(7)에 기억된 어드레스와 어드레스 버스(6)의 어드레스와의 일치를 겸출하는 비교기(9)의 출력부가 CPU(1) 의 끼워넣기 제어부 X 에 접속된다. CPU(1) 에는, 다른 처리로부터의 끼워넣기 제어부 A,B,C... 로 설치되어 있다. 다시 입력수단 (4)에는 외부기억장치(20)가 접속되어, 이 외부기억장치(20)로 부터의 주프로그램의 버그를 수정하기 위한 정보는 입력수단 (4)을 통해서 RAM3 에 기억됨과 함께, 이 RAM3 에 레지스터(7 및 8)에 기입된 데이터를 퇴피시키는 스택 에어리어(32)가 설치된다.
Description
제1도는 본 발명에 의한 전자장치의 한 예의 구성도.
제2도는 처리 프로그램의 설명을 위한 도면.
제3도는 수정하기 위한 정보의 설명을 위한 도면.
제4도는 동작의 설명을 위한 도면.
<도면의 주요부분에 대한 부호의 설명>
1 : 처리수단으로서 CPU 2 : 고정 기억수단으로서 ROM
3 : 수정정보 기억수단으로서 RAM 4 : 입력수단
5 : 데이터 버스 6 : 어드레스 버스
7 : 수정하는 곳의 어드레스의 레지스터
8 : 수정 끼워넣기 벡터의 레지스터
9 : 비교기
10 : 전자장치로서의 1 칩 마이크로 컴퓨터
20 : 외부기억장치 31 : 고정의 테이블 에어리어
32 : 스택 에어리어
본 발명은, 예를 들면 전자기기에 내장되어 사용되는 1 칩 마이크로 컴퓨터와 같은 전자장치에 관한 것이다.
예를 들면 전자기기에 내장되어서 사용되는 1 칩 마이크로 컴퓨터는, 고정 기억수단(ROM), 처리수단(CPU), 입력수단, 가변기억수단(RAM)등이 일체로 집적된 전자장치로 구성이 되어있다.
이와 같은 전자장치(1칩 마이크로 컴퓨터)에 있어서, 처리수단(CPU)에서의 처리의 프로그램은, 예를 들면 고정기억수단(ROM)에 기억되어 있다. 즉 이 고정기억수단(ROM)에 기억된 정보(처리프로그램)에 따라서 특정한 처리가 행해진다. 거기에서 이 고정기억수단(ROM)을 예를 들면 마스크 ROM 으로 형성함으로서, 이와 같은 전자장치는, 특히 양산화에 의해 그것의 가격을 저렴하게 할 수가 있다.
한편, 상술한 전자장치는, 민생용의 카메라 일체형 VTR, 소형 비디오 데크 등의 전자기기에 내장되어 사용되고 있다.
이와 같은 전자기기(민생용 카메라 일체형 VTR 등)에 있어서는, 근래의 상품 차별화를 목적으로 한 다기능화가 진행되고 있다.
이로 인해 고정기억수단(ROM)에 기억되는 정보(처리프로그램)의 양이 증대하고, 특히 처리프로그램의 장대화를 동반해서 그것의 불비(버그)의 발생은 피할 수 없는 문제로 되어있다.
거기에서 이와 같은 버그가 장치의 양산 후에 발견된 경우에는, 이미 양산된 장치를 폐기하여 재차 양산을 행하거나, 그것의 버그를 수정하기 위한 외부 부품을 설치하는 등의 처리를 행할 필요가 있으며, 또한 외부부품을 설치하는 일은 부품의 실장 밀도가 높은 전자기기에서는 실시가 곤란한 경우가 많다.
이것에 대해서 본원 출원인은, 먼저 이와 같은 버그를 양산 후에 수정하는 수단을 제안하였다(일본 특허출원 헤이세이 3-118799 호 참조). 즉 이 선원에서는, 전자 장치 내에 버그 수정을 위한 수정정보 기억수단과 액세스 전환수단을 설치한다. 그래서 고정기억수단에 기억되는 정보가 버그의 부분을 판별하여, 그 부분에서는 액세스를 고정기억수단에서 수정정보 기억수단으로 전환하도록 한 것이다.
그런데 이 선원의 장치에 있어서, 고정기억수단(ROM)에 기억되는 정보(처리프로그램)가 항상 소정의 차례로 액세스 되어있는 경우에는, 임의의 수정할 곳에서 수정이 행해진 마지막에 다음의 수정할 곳을 지정함으로서, 복수의 버그의 부분을 차례로 수정할 수가 있다.
그러나 이 선원의 장치에서는, 끼워넣기 처리 등에 의해 별도의 정보가 액세스되는 경우에, 이 별도의 다른 정보의 버그를 수정할 수는 없다. 즉 예를 들면 끼워넣기 처리의 최초에 끼워넣기 처리의 수정 할 곳의 지정을 행한 경우에는, 이 끼워넣기가 메인의 처리의 어디에서 행해지는가 결정되어 있지 않기 때문에, 메인의 처리로 되돌아간 후에 다음에 수정할 곳을 지정할 수가 없게 되어버린다.
이로 인해 종래는, 끼워넣기 처리용의 수정정보 기억수단과 액세스 전환수단을 독립적으로 설치하여, 끼워넣기 처리중의 수정을 독립적으로 행하도록 하고 있다. 그러나 그러기 위해서는 다량의 회로가 추가로 필요하다. 또한 끼워넣기 처리가 다중으로 행해지는 경우에는, 그것의 최대수의 조의 수정정보 기억수단과 액세스 전환 수단이 필요해져서, 용이하게 실시할 수가 없는 것이었다.
본 발명은 이와 같은 점을 감안하여 이루어진 것이다.
해결하고자 하는 문제점은, 종래의 전자장치에서는, 양산 후에 버그가 발견된 경우에는, 이미 양산된 장치를 폐기하여 재차 양산을 행하거나, 그것의 버그를 수정하기 위한 외부부품을 설치하지 않으면 안 된다. 또한 선원에서는, 끼워넣기 처리 등에 의해 별도의 정보가 액세스되는 경우에, 이 별도의 정보의 버그를 수정하는 일이 용이하게는 되지 않는다.
본 발명에 따른 전자 장치는, 데이터 버스와, 어드레스 버스와, 상기 어드레스 버스 상의 고정 기억 수단 어드레스의 제어 하에, 상기 고정 기억 수단 어드레스에 의해 지정된 위치에서 상기 고정 기억 수단 내에 유지된 명령을 상기 데이터 버스로 제공하기 위해 접속되는 고정 기억 수단으로서, 복수의 프로그램 명령을 유지하는 복수의 위치를 가지며, 상기 복수의 프로그램 명령은 복수의 인터럽트 프로세스 루틴을 구비하는 프로그램을 집합적으로 포함하는, 상기 고정 기억 수단과, 상기 데이터 버스와 어드레스 버스에 접속되며, 상기 프로그램 명령들을 실행하는 프로세서와, 상기 프로세서에 의해 실행된 상기 프로그램 명령들에 응답해서, 상기 프로세서에 의해 실행될 상기 프로그램 명령들을 유지하는 상기 복수의 위치에 대한 상기 고정 기억 수단 어드레스를 상기 어드레스 버스에 제공하는 어드레스 제어 수단과, 상기 프로세서에 의해 실행되는 상기 프로그램의 실행에 대한 복수의 변형을 나타내는 복수의 수정 명령을 유지하는 수정 정보 기억 수단으로서, 상기 어드레스 버스 상의 수정 기억 수단 어드레스의 제어 하에, 상기 어드레스 버스 상의 상기 수정 기억 수단 어드레스에 의해 지정된 위치에서 상기 수정 정보 기억 수단 내에 유지된 수정 명령을 상기 데이터 버스에 제공하기 위해 접속되는, 상기 수정 정보 기억 수단와, 제 1 전환 수단을 포함하는 전환 수단으로서, 상기 제 1 전환 수단 내에 유지된 제 1 제어 데이터의 제어 하에, 상기 프로그램의 제 1 버그 부분의 명령들에 대한 고정 기억 수단 어드레스 대신에, 상기 수정 정보 기억 수단 내의 제 1 복수의 수정 명령에 대한 수정 기억 수단 어드레스를 상기 어드레스 버스에 제공함으로써, 상기 제 1 복수의 수정 명령이 상기 제 1 버그 부분의 명령들 대신에 실행을 위한 프로세서에 제공되며, 이에 의해 상기 제 1 복수의 수정 명령이 상기 제 1 버그 부분의 명령들 대신에 상기 프로세서에 의해 실행되는, 상기 전환 수단을 포함하며, 상기 전환 수단은, 제 2 전환 수단과, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 제 2 전환 수단으로 상기 제 1 제어 데이터를 이동시킨 후, 상기 제 1 전환 수단으로 제 2 제어 데이터를 저장하는 이동 및 저장 수단으로서, 상기 복수의 인터럽트 처리 루틴중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 전환 수단은, 상기 제 1 전환 수단 내에 유지된 제 2 제어 데이터의 제어 하에, 상기 프로그램의 제 2 버그 부분의 명령들의 고정 기억 수단 어드레스 대신에 상기 수정 정보 기억 수단에 있는 제 2 복수의 수정 명령들에 대한 수정 기억 수단 어드레스를 상기 어드레스 버스에 제공함으로써, 상기 제 2 복수의 수정 명령이 상기 제 2 버그 부분의 명령들 대신에 실행을 위한 상기 프로세서에 제공되며, 이에 의해, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 제 2 복수의 수정 명령은 상기 제 2 버그 부분의 명령들 대신에 상기 프로세서에 의해 실행되는, 상기 이동 및 저장 수단과, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행이 종료될 때, 상기 제 2 전환 수단에 유지된 제 1 제어 데이터를 상기 제 1 전환 수단에 재차 저장하는 수단을 포함하며, 상기 제 1 제어 데이터는 상기 제 1 버그 부분에 대한 고정 기억 수단 어드레스로 구성되는 제 1 부분과 상기 제 1 복수의 수정 명령에 대한 수정 기억 수단 어드레스로 구성되는 제 2 부분을 포함하며, 상기 제 2 데이터는 상기 제 2 버그 부분에 대한 상기 고정 기억 수단 어드레스로 구성되는 제 1 부분과 상기 제 2 복수의 수정 명령에 대한 수정 기억 수단 어드레스로 구성되는 제 2 부분을 포함하며, 상기 전환 수단은, 상기 제 1 전환 수단 내에 상기 제 1 제어 데이터가 있든지 상기 제 2 제어 데이터가 있든지간에 상기 어드레스 상의 어드레스와 상기 제 1 부분을 비교하는 비교 수단과, 상기 프로세서로 하여금 수정 처리 인터럽트 루틴을 실행시키도록 하기 위하여 상기 프로세서에 인터럽트를 발생하는 인터럽트 신호 발생 수단으로서, 상기 수정 처리 인터럽트 루틴은 상기 복수의 인터럽트 처리 루틴 중 하나이며, 상기 수정 처리 인터럽트 루틴의 실행은 상기 전환 수단으로 하여금 상기 제 1 전환 수단 내에 상기 제 1 제어 데이터가 있든지 제 2 제어 데이터가 있든지 간에 상기 제 2 부분을 상기 어드레스 버스에 제공하도록 하는, 상기 인터럽트 신호 발생 수단을 더 포함한다.
이것에 의하면, 고정기억수단에 기억된 정보가 수정 정보기억 수단으로부터의 정보에 의해 수정되어, 양산 후에 발견된 정보의 버그 수정을 행할 수가 있음과 함께, 수정할 곳의 판별 데이터를 스택메모리에 퇴피시킴으로서, 끼워넣기 처리중에도 수정을 할 수가 있다.
제 1 도에 있어서, 10 은 전자장치로서의 1 칩 마이크로 컴퓨터의 전체를 도시한다. 이 전자장치(10)에는, 처리수단으로서의 CPU(1), 고정기억수단으로서의 ROM(2), 수정정보 기억수단으로서 RAM(3), 입력수단(4)등이 설치되어 있다. 이 CPU(1), ROM(2), RAM(3) 및 입력수단(4)은 서로 데이터 버스(5)를 거쳐서 접속된다. 또한 CPU(1)에서 형성된 어드레스 출력이 어드레스 버스(6)를 거쳐서 ROM(2) 및 RAM(3)의 어드레스 입력에 접속된다.
또한 수정할 곳의 어드레스의 레지스터(7)와 수정 끼워넣기 벡터의 레지스터(8)가 설치되어, 이들의 레지스터(7,8)가 데이터 버스(5)에 접속된다. 다시 이 레지스터(7)에 기억된 어드레스와 어드레스 버스(6)의 어드레스와의 일치를 검출하는 비교기(9)의 어드레스가 일치한 것을 도시하는 신호의 출력부가, CPU(1)의 끼워넣기 제어부 X 에 접속된다. 또한 CPU(1)에는, 다른 처리로부터의 끼워넣기 제어부 A,B,C... 도 설치되어 있다.
다시 입력수단(4)에는 외부기억장치(20)가 접속된다. 이 외부기억장치(20)도 전자기기내에 설치된다. 또한 이 외부기억장치(20)는, 예를 들면 EEPROM 으로 구성되어, 통상은 전자기기의 조정공정에서 얻어진 파라미터 등이 기억되는 것이다. 그래서 이 외부기억장치(20)로부터의 정보는 입력수단(4)을 통해서 RAM(3)에 기억되어 CPU(1)에서의 처리 등에 사용된다.
이와 같은 전자장치(10)에 있어서, ROM(2)에는 CPU(1)에서의 처리의 프로그램의 정보가 고정적으로 기억된다. 이 처리 프로그램에는, 예를 들면 제 2 도에 도시하는 바와 같이, 먼저 기동을 위한 프로그램이 설치된다. 이 기동 프로그램에는 RAM(3)의 클리어를 포함하는 장치의 초기화를 위한 프로그램과 함께, 외부기억 장치(20)로부터의 정보를 입력수단(4)을 통해서 RAM(3)에 기억시키기 위한 프로그램 등이 설치된다.
다시 ROM(2)에 기억되는 처리프로그램에는, 주된 처리를 하기 위한 주프로그램과 함께, 각종의 끼워넣기 A,B,C... 의 처리를 하는 끼워넣기 프로그램이 설치된다. 또한 이 주프로그램의 최초에는, RAM(3)의 후술하는 고정의 테이블 에어리어(31)에 기입된 최초의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정프로그램의 위치를 표시하는 벡터의 데이터를 상술한 레지스터(7 및 8)에 기입하는 처리가 설치된다.
또한 끼워넣기 프로그램의 최초에는, 같은 도면의 B 에 도시하는 바와같이, 레지스터(7 및 8)에 기입된 데이터를 RAM(3)의 후술하는 스택 에어리어(32)에 퇴피시키는 처리가 설치된다. 다음에 이 퇴피 후에 RAM(3)의 고정 테이블 에어리어(31)에 기입된, 그것의 끼워넣기에 대응하는 최초의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정 프로그램의 위치를 표시하는 벡터의 데이터를, 레지스터(7 및 8)에 기입하는 처리가 설치된다. 그래서 끼워넣기 프로그램의 마지막에, 스택 에어리어(32)에 퇴피시킨 데이터를 레지스터(7 및 8)에 재차 기입하는 처리가 설치된다.
한편, 외부기억장치(20)에는, 상술한 조정 공정에서 얻어진 파라미터 등과 함께, 필요에 따라서 후술하는 ROM(2)에 기억된 정보의 버그를 수정하기 위한 정보가 기억된다. 여기에서 버그를 수정하기 위한 정보로서는, 예를 들면 제 3 도에 도시하는 바와 같이, 수정 프로그램과 함께, 주프로그램 및 끼워넣기에 대응하는 최초의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정 프로그램의 위치를 표시하는 벡터의 데이터가 설치된다.
그래서 상술한 기동 프로그램의 기동 프로그램의 처리에 의해, 이 외부기억 장치(20)로부터의 정보는 입력수단(4)을 통해서 RAM(3)에 기억된다. 이에 따라 RAM(3)으로 수정 프로그램이 기억됨과 함께, 주프로그램 및 끼워넣기에 대응하는 최초의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정 프로그램의 위치를 도시하는 벡터의 데이터가, RAM(3)의 고정의 테이블 에어리어(31)에 기입된다.
따라서 이 장치에 있어서, 기동후의 주프로그램의 최초에서 주프로그램의 최초의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정프로그램의 위치를 도시하는 벡터의 데이터가 RAM(3)의 고정의 테이블 에어리어(31)로부터 판독되어, 레지스터 (7) 및 (8)에 기입된다. 그래서 주프로그램이 진행하여, 그것의 어드레스가 레지스터(7)의 어드레스와 일치하면, CPU(1)의 끼워넣기 제어부(X)에 신호가 공급된다.
이에 따라 CPU(1)에서는, 끼워넣기(X)의 처리로서 레지스터(8)의 데이터가 참조되어, 이 데이터의 도시하는 위치의 수정프로그램이 실행된다. 다시 이 수정 프로그램의 최후에는, 주프로그램의 다음의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정프로그램의 위치를 도시하는 벡터의 데이터를 레지스터(7 및 8)에 기입하는 처리가 설치된다. 이와 같이 하여 주프로그램의 수정할 곳이 차례로 수정된다.
이것에 대해서, 이 장치에 있어서 끼워넣기 제어부 A,B,C... 에 끼워넣기 요구가 있으면, 각각의 끼워넣기 A,B,C... 의 처리가 행해진다. 그래서 이들의 각 끼워넣기 프로그램의 최초에서, 레지스터(7 및 8)에 기입된 데이터가 RAM(3)의 스택 에어리어(32)에 퇴피된다. 다시 그것의 끼워넣기에 대응하는 최초의 수정하는 곳의 어드레스와 그것의 수정을 행하는 수정 프로그램의 위치를 표시하는 벡터의 데이터가 RAM(3)의 고정의 테이블 에어리어(31)로부터 판독되어, 레지스터(7 및 8)에 기입된다. 그래서 끼워넣기 프로그램이 진행하여, 그것의 어드레스가 레지스터(7)의 어드레스와 일치하면, CPU(1)의 끼워넣기 제어부(X)에 신호가 공급된다.
이에 따라 CPU(1)에서는, 끼워넣기(X)의 처리로서 레지스터(8)의 데이터가 참조되어, 이 데이터의 표시하는 위치의 수정프로그램이 실행된다. 다시 이 수정 프로그램의 마지막에는, 그 끼워넣기 프로그램의 다음의 수정할 곳의 어드레스와 그것의 수정을 행하는 수정프로그램의 위치를 표시하는 벡터의 데이터를 레지스터(7 및 8)에 기입처리가 설치된다. 이와 같이 하여 끼워넣기 프로그램의 수정할 곳이 차례로 수정된다. 다시 이 끼워넣기 프로그램의 최후에서, 스택 에어리어(32)에 퇴피된 데이터가 레지스터(7 및 8)에 재차 기입된다.
즉 이 장치에 있어서, 끼워넣기 A,B,C... 의 요구가 있으면, 제 4 도에 도시하는 바와 같이 주프로그램의 수정할 곳의 어드레스와 그 수정을 하는 수정프로그램의 위치를 도시하는 벡터의 데이터가 레지스터(7 및 8)에서 스택 에어리어(32)에 퇴피되어, 그것의 끼워넣기에 대응하는 최초의 수정할 곳의 어드레스와 그 수정을 하는 수정 프로그램의 위치를 표시하는 벡터의 데이터가 RAM(3)의 고정 테이블 에어리어(31)로부터의 판독되어 레지스터(7 및 8)에 기입된다. 이것에 의해 끼워넣기 프로그램의 수정할 곳이 차례로 수정이 된다. 다시 이 끼워넣기 프로그램의 최후에서 스택 에어리어(32)에 퇴피된 데이터가 레지스터(7 및 8)에 재차 기입됨으로서, 주프로그램의 수정할 곳의 수정이 계속된다.
이와 같이 하여 상술한 장치에 의하면, 고정기억수단(ROM2)에 기억된 정보가 수정정보 기억수단(RAM3)으로부터의 정보에 의해 수정이 되어, 양산 후에 발견된 정보의 버그 수정을 할 수 있음과 함께, 수정할 곳의 판별 데이터를 스택메모리(스택 에어리어(32))에 퇴피시킴으로서, 끼워넣기 처리 중에도 수정을 할 수 있는 것이다.
또한 상술한 장치에 있어서, 스택 에어리어(32)를 말하자면 푸시다운 스택의 구성으로 한다. 이에 따라 끼워넣기 처리중에 다시 끼워넣기를 하는, 다중 끼워넣기에도 이 장치를 적용할 수가 있다.
또한 상술한 장치에 있어서, ROM2 에서 RAM3 으로의 전환수단의 구성은, 수정프로그램의 위치를 표시하는 벡터의 데이터에 대신해서, 그 위치로의 점프 명령으로 함과 함께, ROM2 의 출력 데이터와 레지스터(8)의 데이터를, 비교기(9)의 어드레스가 일치하였을 때에 전환하도록 하여도 좋다.
다시 상술한 장치에 있어서, 끼워넣기에 대응하는 최초의 수정할 곳의 어드레스의 데이터는, 각종의 끼워넣기 A,B,C... 의 처리마다에 RAM3 의 고정 테이블 에어리어(31)에 설치된다. 여기에서 임의의 끼워넣기의 처리에 수정할 곳이 없는 경우에는, 그것에 대응하는 고정 테이블 에어리어(31)의 데이터는 그것의 끼워넣기의 처리 중에 액세스하지 않는 어드레스를 선정하여 기입할 필요가 있다.
그러나 상술한 장치에 있어서, RAM3 은 기동프로그램에서 클리어되어, 모두 "0" 으로 된 후에 외부기억장치(20)로부터의 정보가 기억된다. 따라서 이 RAM3 의 고정 테이블 에어리어(31)는, 새롭게 데이터를 기입하지 아니할 때는 모두 "0" 으로 되어있다. 한편, CPU1 에서 모두 "0" 의 어드레스가 RAM 에어리어에 할당되어 있는 경우에는, 프로그램 처리 중에 이 어드레스가 액세스되는 일은 없다. 거기에서 임의의 끼워넣기의 처리에 수정할 곳이 없는 경우에는, 그것에 대응하는 고정의 테이블 에어리어(31)에는 새롭게 데이터를 기입하지 아니하는 것으로, 상술한 목적을 달성할 수가 있다.
본 발명에 의하면, 고정기억수단에 기억된 정보가 수정정보 기억수단으로부터의 정보에 의해 수정되어, 양산 후에 발견된 정보의 버그 수정을 할 수가 있으며, 수정할 곳의 판별 데이터를 스택메모리에 퇴피시킴으로서, 끼워넣기 처리 중에도 수정을 할 수 있다.
Claims (1)
- 전자 장치에 있어서, 데이터 버스와, 어드레스 버스와, 상기 어드레스 버스 상의 고정 기억 수단 어드레스의 제어 하에, 상기 고정 기억 수단 어드레스에 의해 지정된 위치에서 고정 기억 수단 내에 유지된 명령을 상기 데이터 버스로 제공하기 위해 접속되는 상기 고정 기억 수단으로서, 복수의 프로그램 명령을 유지하는 복수의 위치를 가지며, 상기 복수의 프로그램 명령은 복수의 인터럽트 프로세스 루틴을 구비하는 프로그램을 집합적으로 포함하는, 상기 고정 기억 수단과, 상기 데이터 버스와 어드레스 버스에 접속되며, 상기 프로그램 명령들을 실행하는 프로세서와, 상기 프로세서에 의해 실행된 상기 프로그램 명령들에 응답해서, 상기 프로세서에 의해 실행될 상기 프로그램 명령들을 유지하는 상기 복수의 위치에 대한 상기 고정 기억 수단 어드레스를 상기 어드레스 버스에 제공하는 어드레스 제어 수단과, 상기 프로세서에 의해 실행되는 상기 프로그램의 실행에 대한 복수의 변형을 나타내는 복수의 수정 명령을 유지하는 수정 정보 기억 수단로서, 상기 어드레스 버스 상의 수정 기억 수단 어드레스의 제어 하에, 상기 어드레스 버스 상의 상기 수정 기억 수단 어드레스에 의해 지정된 위치에서 상기 수정 정보 기억 수단 내에 유지된 수정 명령을 상기 데이터 버스에 제공하기 위해 접속되는, 상기 수정 정보 기억 수단와, 제 1 전환 수단을 포함하는 전환 수단으로서, 상기 제 1 전환 수단 내에 유지된 제 1 제어 데이터의 제어 하에, 상기 프로그램의 제 1 버그 부분의 명령들에 대한 고정 기억 수단 어드레스 대신에, 상기 수정 정보 기억 수단 내의 제 1 복수의 수정 명령에 대한 수정 기억 수단 어드레스를 상기 어드레스 버스에 제공함으로써, 상기 제 1 복수의 수정 명령이 상기 제 1 버그 부분의 명령들 대신에 실행을 위한 프로세서에 제공되며, 이에 의해 상기 제 1 복수의 수정 명령이 상기 제 1 버그 부분의 명령들 대신에 상기 프로세서에 의해 실행되는, 상기 전환 수단을 포함하며, 상기 전환 수단은, 제 2 전환 수단과, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 제 2 전환 수단으로 상기 제 1 제어 데이터를 이동시킨 후, 상기 제 1 전환 수단으로 제 2 제어 데이터를 저장하는 이동 및 저장 수단으로서, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 전환 수단은, 상기 제 1 전환 수단 내에 유지된 제 2 제어 데이터의 제어 하에, 상기 프로그램의 제 2 버그 부분의 명령들의 고정 기억 수단 어드레스 대신에 상기 수정 정보 기억 수단에 있는 제 2 복수의 수정 명령들에 대한 수정 기억 수단 어드레스를 상기 어드레스 버스에 제공함으로써, 상기 제 2 복수의 수정 명령이 상기 제 2 버그 부분의 명령들 대신에 실행을 위한 상기 프로세서에 제공되며, 이에 의해, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행되는 동안, 상기 제 2 복수의 수정 명령은 상기 제 2 버그 부분의 명령들 대신에 상기 프로세서에 의해 실행되는, 상기 이동 및 저장 수단과, 상기 복수의 인터럽트 처리 루틴 중 하나가 상기 프로세서에 의해 실행이 종료될 때, 상기 제 2 전환 수단에 유지된 제 1 제어 데이터를 상기 제 1 전환 수단에 재차 저장하는 수단을 포함하며, 상기 제 1 제어 데이터는 상기 제 1 버그 부분에 대한 고정 기억 수단 어드레스로 구성되는 제 1 부분과 상기 제 1 복수의 수정 명령에 대한 수정 기억 수단 어드레스로 구성되는 제 2 부분을 포함하며, 상기 제 2 데이터는 상기 제 2 버그 부분에 대한 상기 고정 기억 수단 어드레스로 구성되는 제 1 부분과 상기 제 2 복수의 수정 명령에 대한 수정 기억 수단 어드레스로 구성되는 제 2 부분을 포함하며, 상기 전환 수단은, 상기 제 1 전환 수단 내에 상기 제 1 제어 데이터가 있든지 상기 제 2 제어 데이터가 있든지 간에 상기 어드레스 상의 어드레스와 상기 제 1 부분을 비교하는 비교 수단과, 상기 프로세서로 하여금 수정 처리 인터럽트 루틴을 실행시키도록 하기 위하여 상기 프로세서에 인터럽트를 발생하는 인터럽트 신호 발생 수단으로서, 상기 수정 처리 인터럽트 루틴은 상기 복수의 인터럽트 처리 루틴 중 하나이며, 상기 수정 처리 인터럽트 루틴의 실행은 상기 전환 수단으로 하여금 상기 제 1 전환 수단 내에 상기 제 1 제어 데이터가 있든지 제 2 제어 데이터가 있든지 간에 상기 제 2 부분을 상기 어드레스 버스에 제공하도록 하는, 상기 인터럽트 신호 발생 수단을 더 포함하는, 전자 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP01120692A JP3230262B2 (ja) | 1992-01-24 | 1992-01-24 | 電子装置及びその固定情報修正方法 |
JP92-011206 | 1992-01-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR930016880A KR930016880A (ko) | 1993-08-30 |
KR100307857B1 true KR100307857B1 (ko) | 2001-11-30 |
Family
ID=11771541
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019930000467A KR100307857B1 (ko) | 1992-01-24 | 1993-01-15 | 전자장치 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6128751A (ko) |
EP (1) | EP0553733B1 (ko) |
JP (1) | JP3230262B2 (ko) |
KR (1) | KR100307857B1 (ko) |
CA (1) | CA2087696A1 (ko) |
DE (1) | DE69331292T2 (ko) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH089435A (ja) * | 1994-06-15 | 1996-01-12 | Nec Corp | 選択呼出受信機 |
GB2292470A (en) * | 1994-08-19 | 1996-02-21 | Advanced Risc Mach Ltd | Rom patching |
GB2309324B (en) * | 1996-01-17 | 2000-09-06 | Motorola Inc | Method for storing repair data in a micro processor system |
JP2867965B2 (ja) * | 1996-06-28 | 1999-03-10 | 日本電気株式会社 | データ処理装置及びデータ処理方法 |
US6009540A (en) * | 1997-04-08 | 1999-12-28 | Aitm Associates Incorporated | Logic module for implementing system changes on PC architecture computers |
FR2764407B1 (fr) * | 1997-06-05 | 1999-07-30 | Alsthom Cge Alcatel | Dispositif de retouche de programme de commande dans un processeur |
JP2001184203A (ja) * | 1999-12-24 | 2001-07-06 | Matsushita Electric Ind Co Ltd | プログラム修正装置 |
JP2001256044A (ja) * | 2000-03-14 | 2001-09-21 | Sony Corp | データ処理装置 |
GB2373888A (en) * | 2001-03-30 | 2002-10-02 | Toshiba Res Europ Ltd | Dynamic vector address allocation for a code patching scheme |
US20040015939A1 (en) * | 2001-05-16 | 2004-01-22 | Cheah Jonathon Y. | Updateable memory module |
US6925521B2 (en) * | 2001-09-10 | 2005-08-02 | Texas Instruments Incorporated | Scheme for implementing breakpoints for on-chip ROM code patching |
AU2003278342A1 (en) | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
DE60308215T2 (de) | 2002-11-18 | 2007-08-23 | Arm Ltd., Cherry Hinton | Prozessorschaltung zwischen sicheren und nicht sicheren modi |
JP2004213102A (ja) * | 2002-12-26 | 2004-07-29 | Fujitsu Ltd | マイクロコンピュータ |
US7269707B2 (en) * | 2003-01-10 | 2007-09-11 | Texas Instruments Incorporated | Multiple patches to on-chip ROM in a processor with a multilevel memory system without affecting performance |
US7596721B1 (en) * | 2004-01-09 | 2009-09-29 | Maxtor Corporation | Methods and structure for patching embedded firmware |
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 |
US7526578B2 (en) * | 2006-02-17 | 2009-04-28 | International Business Machines Corporation | Option ROM characterization |
US20080263533A1 (en) * | 2007-04-19 | 2008-10-23 | Proton World International N.V. | Implementation of patches by a processing unit |
CN101334760B (zh) * | 2007-06-26 | 2010-04-07 | 展讯通信(上海)有限公司 | 监控总线非法操作的方法、装置及包含该装置的系统 |
US8156486B2 (en) * | 2008-10-29 | 2012-04-10 | Mediatek Inc. | Patching devices and methods thereof for patching firmware functions |
CN103268237A (zh) * | 2013-05-10 | 2013-08-28 | 东信和平科技股份有限公司 | 一种掩膜智能卡的补丁功能扩展方法及装置 |
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 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4802119A (en) * | 1987-03-17 | 1989-01-31 | Motorola, Inc. | Single chip microcomputer with patching and configuration controlled by on-board non-volatile memory |
EP0458559A2 (en) * | 1990-05-24 | 1991-11-27 | Schlumberger Industries Limited | Mask-programmable microprocessors |
Family Cites Families (49)
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 |
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 |
US4028684A (en) * | 1975-10-16 | 1977-06-07 | Bell Telephone Laboratories, Incorporated | Memory patching circuit with repatching capability |
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 |
US4400798A (en) * | 1981-07-13 | 1983-08-23 | Tektronix, Inc. | Memory patching system |
JPS5816350A (ja) * | 1981-07-22 | 1983-01-31 | Toshiba Corp | メモリ拡張代替方式 |
JPS5886648A (ja) * | 1981-11-18 | 1983-05-24 | Mitsubishi Electric 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 |
US4607332A (en) * | 1983-01-14 | 1986-08-19 | At&T Bell Laboratories | Dynamic alteration of firmware programs in Read-Only Memory based systems |
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 | マイクロプログラム制御処理方式 |
JPH01503028A (ja) * | 1986-06-09 | 1989-10-12 | データコンサルト、イ、マルメ、アクチェボラーグ | 暗号化及び解読装置 |
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 |
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 |
DE68923864T2 (de) * | 1989-04-19 | 1996-05-02 | Ibm | Anordnung zur Speicher- und Peripherie-Bausteinauswahl. |
JPH03142629A (ja) * | 1989-10-30 | 1991-06-18 | Toshiba Corp | マイクロコントローラ |
US5199032A (en) * | 1990-09-04 | 1993-03-30 | Motorola, Inc. | Microcontroller having an EPROM with a low voltage program inhibit circuit |
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 |
US5623665A (en) * | 1992-01-13 | 1997-04-22 | Sony Corporation | Electronic apparatus for patching a read-only memory |
JPH06318261A (ja) * | 1992-09-18 | 1994-11-15 | Sony Corp | 電子装置 |
JP3284614B2 (ja) * | 1992-09-19 | 2002-05-20 | ソニー株式会社 | 電子装置 |
JP3810805B2 (ja) * | 1992-09-19 | 2006-08-16 | ソニー株式会社 | 情報修正システム |
-
1992
- 1992-01-24 JP JP01120692A patent/JP3230262B2/ja not_active Expired - Fee Related
-
1993
- 1993-01-15 KR KR1019930000467A patent/KR100307857B1/ko not_active IP Right Cessation
- 1993-01-20 CA CA002087696A patent/CA2087696A1/en not_active Abandoned
- 1993-01-22 EP EP93101008A patent/EP0553733B1/en not_active Expired - Lifetime
- 1993-01-22 DE DE69331292T patent/DE69331292T2/de not_active Expired - Fee Related
-
1995
- 1995-06-06 US US08/469,498 patent/US6128751A/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4802119A (en) * | 1987-03-17 | 1989-01-31 | Motorola, Inc. | Single chip microcomputer with patching and configuration controlled by on-board non-volatile memory |
EP0458559A2 (en) * | 1990-05-24 | 1991-11-27 | Schlumberger Industries Limited | Mask-programmable microprocessors |
Also Published As
Publication number | Publication date |
---|---|
DE69331292D1 (de) | 2002-01-24 |
JP3230262B2 (ja) | 2001-11-19 |
US6128751A (en) | 2000-10-03 |
EP0553733A2 (en) | 1993-08-04 |
CA2087696A1 (en) | 1993-07-25 |
JPH05204630A (ja) | 1993-08-13 |
DE69331292T2 (de) | 2002-06-13 |
EP0553733A3 (en) | 1997-10-15 |
EP0553733B1 (en) | 2001-12-12 |
KR930016880A (ko) | 1993-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100307857B1 (ko) | 전자장치 | |
US6298434B1 (en) | Data processing device for processing virtual machine instructions | |
US7752427B2 (en) | Stack underflow debug with sticky base | |
JP2013522750A (ja) | 例外イベントを取り扱うための装置および方法 | |
EP0725333B1 (en) | Control system for processor | |
JPH04346127A (ja) | 電子装置 | |
JPH06187143A (ja) | 電子装置 | |
US20060095726A1 (en) | Independent hardware based code locator | |
JPH01310441A (ja) | データ処理装置 | |
EP0447685A2 (en) | Programmable controller | |
EP2124147A1 (en) | Multi-processor system and program execution in the system | |
KR100280590B1 (ko) | 전자 장치 | |
EP0577393B1 (en) | Method for executing a program | |
CN114047952A (zh) | 用于单片机的处理器、方法、单片机和存储介质 | |
US7203867B2 (en) | Processor system, processor and arithmetic processing method | |
JPH0877021A (ja) | 割込処理装置および方法 | |
KR20010015000A (ko) | 롬 정정 유닛을 구비하는 컴퓨터 시스템 | |
EP1177499A1 (en) | Processor and method of executing instructions from several instruction sources | |
TW201734821A (zh) | 暫存器存取控制 | |
JPH06103109A (ja) | データプロセッサ、及びこれを用いるデバッグ装置 | |
KR20020029921A (ko) | 정적 기억 장치 내의 마이크로 명령어를 수정하는 방법 및장치 | |
JPH08249206A (ja) | スタック領域破壊検出機能付き計算機 | |
JP3575052B2 (ja) | 電子装置 | |
US7131118B2 (en) | Write-through caching a JAVA® local variable within a register of a register bank | |
JPH0795288B2 (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 | ||
FPAY | Annual fee payment |
Payment date: 20080725 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |