KR19990083088A - Ecc데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터 - Google Patents
Ecc데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터 Download PDFInfo
- Publication number
- KR19990083088A KR19990083088A KR1019990012535A KR19990012535A KR19990083088A KR 19990083088 A KR19990083088 A KR 19990083088A KR 1019990012535 A KR1019990012535 A KR 1019990012535A KR 19990012535 A KR19990012535 A KR 19990012535A KR 19990083088 A KR19990083088 A KR 19990083088A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- user data
- ecc
- eeprom
- ecc data
- Prior art date
Links
- 238000012937 correction Methods 0.000 title claims abstract description 33
- 230000015654 memory Effects 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 73
- 238000013500 data storage Methods 0.000 claims description 64
- 238000000034 method Methods 0.000 claims description 26
- 230000002159 abnormal effect Effects 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 27
- 238000012546 transfer Methods 0.000 description 13
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 10
- 230000009467 reduction Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 230000004044 response Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 230000002950 deficient Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
-
- 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
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Detection And Correction Of Errors (AREA)
- Read Only Memory (AREA)
Abstract
자동차에 사용되는 원칩마이크로컴퓨터에 있어서, 에러정정코드데이터가 대응하는 사용자데이터에 부가되며, 에러정정코드데이터가 부가된 사용자데이터는 곧 EEPROM에 저장되어 사용자데이터에 담긴 1비트에러를 정정한다. 원칩마이크로컴퓨터는, 외부적으로 공급되는 사용자데이터 및 이 사용자데이터에 대응하는 ECC데이터를 그 자신에 임시적으로 저장하기 위한 전기적으로 소거가 가능한 메모리; 프로그램을 사전에 그 자신에 저장하기 위한 프로그램저장메모리; 및 프로그램저장메모리로부터 프로그램을 독출하여 외부적으로 공급된 사용자데이터에 기초하여 ECC데이터를 생성하고, 외부적으로 공급된 사용자데이터에 대응하는 ECC데이터들을 이용하여 외부적으로 공급된 사용자데이터에 담긴 에러들을 순차적으로 정정하기 위한 CPU에 의해 구성된다.
Description
본 발명은 사용자데이터에 부가되는 ECC데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터에 관한 것이다. 보다 상세하게는, 본 발명은 사용자의 작업부하를 줄일 수 있으며, 또한, ECC데이터에 기초되는 EEPROM의 기록시간을 증가시키지 않으면서도 메모리용량을 감소시킬 수 있는 원칩마이크로컴퓨터에 관한 것이다.
EEPROM(electrically erasable programmable read-only memory)은, 데이터를 소거할 수 있으며 그리고/또는 기록할 수 있는 메모리이다(플레쉬EEPROM을 포함하여). 그리고, EEPROM은 통상 원칩마이크로컴퓨터(one-chip microcomputer)들에 채용되며 프로그램을 저장할 수 있다. EEPROM에 저장되는 데이터의 신뢰도를 증가시키기 위해 다음과 같은 에러정정방법이 효율적으로 사용된다. 즉, ECC데이터가 사용자데이터에 부가되면서, 바로 ECC데이터가 부가된 사용자데이터가 저장된다. 에러정정은 독출된 사용자데이터에 대한 ECC데이터를 사용하는 것에 의해 수행된다. 종래의 경우, 이러한 ECC데이터의 부가동작은, 전용 소프트웨어를 사용하여 사용자데이터로부터 ECC데이터를 생성하면서 발생된 데이터를 사용자데이터와 관련지어 EEPROM에 저장하는 식으로 수행되었다.
예를 들면, 자동차엔진을 제어하는데 사용되는 원칩마이크로컴퓨터는, 예컨데, 제어프로그램에 기초하는 연료분사제어 및 엔진회전수제어와 같이, 중요한 제어동작을 실행한다. 이 제어프로그램을 사전에 저장해놓기 위한 ROM의 저장내용물이 변경되는 경우에는, 이 원칩마이크로컴퓨터는 비정상적인 처리동작을 실행하며, 그 결과, 위험한 환경에 놓이게 된다. 이 때문에, 사용자가 사용데이터(프로그램 등)를 ROM에 저장하는 경우, ECC데이터가 ROM에 추가로 저장된다. 원칩마이크로컴퓨터가 사용자데이터를 독출할 때, 1비트에러가 발생하는 경우에는 원칩마이크로컴퓨터는 1비트에러를 정정하며, 2비트에러가 발생하는 경우에는 원칩마이크로컴퓨터는 "비정상"환경울 표시한다.
더욱이, 사전에 ROM에 저장된 사용자데이터에서 버그(bug)가 발견되는 경우, 자동차제조업자들은 결함이 있는 원칩마이크로컴퓨터들을 적절한 원칩마이크로컴퓨터들로 세팅하기 위해 판매된 자동차들을 소환(recall)해야만 한다. 이 버그의 경우에 있어서, 만일, ROM이 마스크ROM과 같은 다시 기록이 가능한 ROM(rewritable ROM)에 의해 구성되는 경우에는, 자동차제조업자들은 결함 있는 원칩마이크로컴퓨터를 탑재한 엔진제어어셈블리를 교체해야 한다. 이러한 다시 기록이 가능한 ROM의 경우에 있어서는, 엔진제어어셈블리의 비용뿐 만 아니라, 교체비용까지 필수적으로 요구된다. 그 결과, 자동차제작업체들은 많은 비용손실을 감수해야만 한다. 이러한 환경 하에서, 원칩마이크로컴퓨터의 ROM이 EEPROM에 의해 구성된다면, 자동차제조업자들은 단지 원칩마이크로컴퓨터의 커넥터를 통해 EEPROM에 기저장된 프로그램을 재작성하기만 하면 되므로, 버그문제를 해결하는 총비용은 낮아질 수 있다.
도 20a 및 도 20b는, EEPROM에 있어서 ECC데이터를 생성 및 부가하는 종래의 방법을 설명하기 위한 도면이다. 이하, 도 20a 및 도 20b를 참조하여 종래의 ECC데이터생성/부가방법을 설명한다.
먼저, 사용자는 ECC데이터를 생성하도록 기설정된 프로그램을 형성한다(도 20a의 단계 101). 00000H부터 0FFFFH까지 정의된 사용자데이터(102)가 입력되는 것으로 가정한다. 사용자는 형성된 프로그램에 따라 전용소프터웨어(exclusively- used software)를 채용하여 사용자데이터(102)에 기초하는 ECC데이터를 생성한다(도 20a의 단계 103). 그 결과, 10000H부터 14FFFH까지 정의된 데이터가 ECC데이터(104)로서 생성된다. 그 다음, ECC데이터(104)는 00000H부터 14FFFH까지 정의된 데이터가 기록데이터(105)로서 생성되도록 사용자데이터(102)에 부가되며, 이들 생성된 기록데이터는 마이크로컴퓨터(미도시) 내에 설치된 EEPROM에 기록된다(도 20a의 단계 106). 이 경우에 있어서, 기록데이터(105)는 전용데이터기록기에 의해 기록되거나 온보드기록방식(on-board writing manner)에 의해 기록된다.
도 20b는 EEPROM의 어드레스맵(address map)을 도시한다. 이 어드레스맵에 있어서, 00000H부터 0FFFFH까지의 어드레스들은 사용자데이터에 할당되며, 또한, 10000H부터 14FFFH까지의 어드레스들은 ECC데이터에 할당된다. ECC데이터의 크기는 16비트데이터의 경우 5비트가 요구된다. 결과적으로, 도 20b에서 보여지는 바와 같은 데이터영역이 요구된다.
그러나, 상술한 종래의 ECC데이터생성/부가방법에 있어서는, ECC데이터 및 사용자데이터가 개별적으로 생성되기 때문에, 사용자데이터를 바탕으로 하여 ECC데이터를 생성하는 전용소프트웨어가 필요하다는 문제점을 갖는다.
또한, ECC데이터가 사용자데이터의 다음 어드레스들에 맵핑되기 때문에, 00000H부터 0FFFFH까지 정의된 데이터에 추가하여 10000H부터 14FFFH까지 정의된 데이터가 ECC데이터로 기록된다. 그 결과, 데이터기록시간이 거의 30% 가까이 증가되는 또 다른 문제점을 갖는다.
더욱이, ECC데이터의 채용으로 인해 기록데이터의 전체데이터양이 거의 30% 가까이 증가되기 때문에, 전체시스템의 외부메모리의 총메모리용량이 약 30%만큼 증가되야만 한다는 문제점을 더 갖는다.
한편, 종래의 기술적 아이디어 중 하나는, 채용되는 논리회로에 의해 구성되는 ECC데이터발생회로를 원칩마이크로컴퓨터 내에 설치하는 것을 제시했었다. 최근에는, 원칩마이크로컴퓨터 내에 채용된 데이터버스들의 비트폭을 점점 증가시키고 있다. 즉, 종래의 데이터버스들의 자체비트폭은 8비트였으나, 현재 데이터버스들의 자체비트폭은 32비트 또는 64비트이다. 이러한 넓은 비트폭환경 하에서, ECC데이터생성회로가 논리회로에 의해 구성되는 경우에는, 전체 회로스케일이 데이터버스의 비트폭이 증가하는 것과 관계하여 지수함수적(exponential manner)으로 증가될 것이다. 그러므로, 반도체칩에 대한 ECC데이터생성회로에 의해 점유되는 면적 역시 필수불가결하게 증가될 것이다.
원칩마이크로컴퓨터에 사용되는 프로그램을 저장하기 위해 EEPROM이 채용되는 경우에 있어서, ECC데이터처리회로는 오직 컴퓨터프로그램이 저장될 때에만 사용되며, 컴퓨터프로그램이 실행될 때에는 사용되지 않는다. 그렇지만, 큰 회로스캐일을 갖는 ECC데이터처리회로가 원칩마이크로컴퓨터 내에 설치된다는, 이러한 기술적아이디어는 원칩마이크로컴퓨터의 비용 효율적인 동작특성을 저하시킬 것이다.
상술한 문제점들의 관점에서, 본 발명의 목적은 ECC데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터를 제공하는데 있다.
본 발명의 다른 목적은 사용자에게 주어지는 작업부담을 감소시키며, 또한 EEPROM의 ECC데이터기록시간을 증가시키지 않으면서도 메모리의 필요용량을 감소시킬 수 있는 원칩마이크로컴퓨터를 제공하는데 있다.
본 발명의 제 1양태에 따른 마이크로컴퓨터는,
외부적으로 공급된 사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 임시적으로 저장하기 위한 전기적 소거가 가능한 메모리;
프로그램을 사전에 저장하기 위한 프로그램저장메모리; 및
외부적으로 공급되는 사용자데이터에 기초하여 ECC데이터를 발생하도록 상기 프로그램저장메모리로부터 상기 프로그램을 독출하며 상기 외부적으로 공급된 사용자데이터에 대응하는 상기 생성된 ECC데이터를 이용하여 상기 외부적으로 공급된 사용자데이터에 담긴 에러들을 순차적으로 정정하기 위한 CPU;를 구비하는 마이크로컴퓨터이다.
전술한 바에 있어서, 외부적으로 공급된 사용자데이터가 1비트에러를 포함하는 경우, CPU는 전기적으로 소거가 가능한 메모리로부터 독출된 ECC데이터를 기초로 하여 1비트에러를 정정한다. 이에 반하여, 외부적으로 공급된 사용자데이터가 2비트 이상의 에러들을 포함하는 경우에는, CPU는 비정상환경임을 표시한다.
또한, 전기적으로 소거가 가능한 메모리는 플레쉬메모리이면 바람직하다.
본 발명의 제 2양태에 따른 원칩마이크로컴퓨터는,
외부적으로 공급되는 사용자데이터를 자신의 사용자데이터저장영역에 임시적으로 저장하며, 상기 사용자데이터에 대응하는 ECC데이터를 자신의 ECC데이터저장영역에 임시적으로 저장하기 위한 EEPROM;
프로그램을 사전에 저장하기 위한 ROM; 및
상기 외부적으로 공급된 사용자데이터에 기초하여 ECC데이터를 생성하도록 상기 ROM으로부터 상기 프로그램을 독출하며, 상기 생성된 ECC데이터를 이용하여 상기 외부적으로 공급된 사용자데이터에 담긴 에러들을 순차적으로 정정하기 위한 CPU;를 구비하는 원칩마이크로컴퓨터이다.
이 제 2양태에 있어서, 상기 CPU는, 기선택된 양의 상기 사용자데이터가 외부데이터소스로부터 들어오는 동안에는, 상기 기선택된 양의 사용자데이터로부터 순차적으로 ECC데이터를 생성하며; 사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역과 상기 EEPROM의 ECC데이터저장영역의 동일한 어드레스들에 기록하며; 상기 에러정정을 순차적으로 수행하도록, 상기 사용자데이터저장영역 및 상기 ECC데이터저장영역의 동일한 주소들로부터 사용자데이터 및 ECC데이터 둘 다를 독출하는 것이 바람직하다.
또한, 상기 CPU는, 상기 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안에는, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 하나의 처리주기가 종료될 때까지 순차적으로 생성하며; 상기 사용자데이터 및 하나의 처리주기가 종료된 후에 생성된 ECC데이터를 상기 EEPROM의 사용자데이터저장영역 및 상기 사용자데이터저장영역의 어드레스로부터 1만큼 감소된 어드레스를 갖는 상기 EEPROM의 ECC데이터저장영역에 기록하며; 상기 에러정정을 순차적으로 수행하도록, EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터 둘 다를 독출하는 것이 바람직하다.
더욱이, 상기 CPU는, 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안에는, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 하나의 처리주기가 종료될 때까지 생성하며; 상기 사용자데이터 및 하나의 처리주기가 종료된 후에 생성된 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 ECC데이터저장영역의 동일한 어드레스에 기록하며; 상기 에러정정을 순차적으로 수행하도록, 상기 EEPROM의 사용자데이터영역에 저장된 사용자데이터 및 상기 사용자데이터저장영역의 어드레스로부터 1만큼 증가된 어드레스를 갖는 상기 EEPROM의 ECC데이터저장영역에 저장된 ECC데이터를 독출하는 것이 바람직히다.
더욱이, 상기 CPU는, 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안에는, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 생성하며; 다음 사용자데이터가 들어올 때까지 상기 ECC데이터의 생성이 이루어지지 않는 경우에는, 유효하지 않은 데이터를 출력하며; 상기 사용자데이터 및 상기 사용자데이터에 대응하는 유효한 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 상기 EEPROM의 ECC데이터저장영역의 동일한 주소들에 기록하며, 에러정정을 실행하도록, EEPROM의 사용자데이터/ECC데이터저장영역의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터를 독출하는 것이 바람직하다.
또한, 본 발명의 제 3양태에 따른 원칩마이크로컴퓨터는,
사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 각각 사용자데이터저장영역 및 ECC데이터저장영역에 임시적으로 저장하기 위한 EEPROM;
사용자데이터에 기초하여 ECC데이터를 발생하는 데에 사용되는 프로그램을 사전에 저장하기 위한 저장수단;
상기 사용자데이터 및 상기 ECC데이터를 상기 EEPROM에 기록하는 동작을 제어하기 위한 기록제어수단; 및
상기 프로그램에 따라 EEPROM에 저장된 사용자데이터로부터 ECC데이터를 생성하며, 상기 생성된 ECC데이터 및 원래의 사용자데이터를 상기 기록제어수단의 제어 하에 상기 EEPROM의 ECC데이터저장영역 및 상기 EEPROM의 사용자데이터저장영역에 저장하기 위한 CPU를 구비하며,
상기 CPU는, 상기 사용자데이터저장영역에 저장된 사용자데이터 및 상기 ECC데이터저장영역에 저장된 ECC데이터를 독출하며, 상기 독출된 사용자데이터 및 상기 독출된 ECC데이터에 기초하여 상기 사용자데이터에 담긴 에러를 정정하는 원칩마이크로컴퓨터이다.
이 제 3양태에 있어서,
상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 저장되는 내부레지스터를 구비하며;
상기 EEPROM은 상기 기선택된 양의 사용자데이터가 전송되는 사용자데이터레지스터 및 ECC데이터레지스터를 더 구비하며;
상기 CPU는, 상기 내부레지서터에 저장된 기선택된 양의 사용자데이터로부터 ECC데이터를 생성하며, 상기 생성된 ECC데이터를 상기 EEPROM에 구비된 상기 ECC데이터레지스터로 전송하며, 상기 사용자데이터레지스터의 사용자데이터 및 상기 ECC데이터레지스터의 ECC데이터를 EEPROM의 사용자데이터저장영역 및 EEPROM의 ECC데이터저장영역의 동일한 주소들에 기록하며, 상기 EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터를 독출하여 에러정정을 수행하는 방식이 바람직하다.
더욱이, 상기 제어수단은 기선택된 양의 사용자데이터가 외부소스로부터 저장되는 사용자데이터스택레지스터 및 ECC데이터스택레지스터를 더 구비하며;
상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 내부레지스터를 더 구비하며;
첫 번째 처리주기에 있어서, 상기 CPU는, 제 1어드레스에 저장된 사용자데이터를 상기 기록제어수단에 구비된 상기 사용자데이터레지스터로 전송하며, 상기 사용자데이터레지스터로 전송되는 사용자데이터를 상기 EEPROM에 구비된 사용자데이터저장영역에 저장하며;
다음 처리주기 및 계속되는 처리주기들에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 사용자데이터를 상기 EEPROM에 구비된 상기 사용자데이터스택레지스터로 전송하며 또한 ECC데이터를 ECC데이터레지스터로 전송하며; 상기 EEPROM의 ECC데이터저장영역에 대해 1만큼 기록 어드레스를 감소시키며; 상기 사용자데이터레지스터에 저장된 사용자데이터 및 상기 ECC데이터레지스터에 저장된 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 ECC데이터저장영역에 기록하며; CPU 자신의 상기 정의된 처리동작을 반복하여 실행하며;
마지막 처리주기에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 생성된 ECC데이터를 상기 EEPROM에 구비된 ECC데이터레지스터로 전송하며; 상기 EEPROM의 ECC데이터저장영역에 대해 1만큼 기록 어드레스를 감소시키며; 상기 EEPROM의 상기 ECC데이터저정영역에 저장된 ECC데이터를 기록하며;
상기 CPU는, EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터 둘 다를 독출하여 순차적으로 에러정정을 실행하는 방식이 바람직하다.
더욱이, 상기 기록제어수단은 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 사용자데이터스택레지스터 및 ECC데이터스택레지스터를 더 구비하며;
상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 내부레지스터를 더 구비하며;
첫 번째 처리주기에 있어서, 상기 CPU는 제 1어드레스에 저장된 사용자데이터를 상기 기록제어수단에 구비된 상기 사용자데이터레지스터로 전송하며, 상기 사용자데이터레지스터로 전송된 사용자데이터를 상기 EEPROM에 구비된 사용자데이터저장영역에 저장하며;
다음 처리주기 및 계속되는 처리주기들에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 생성된 ECC데이터를 상기 EEPROM에 구비된 ECC데이터레지스터로 전송하며; 상기 EEPROM의 상기 ECC데이터저장영역에 저장된 ECC데이터 및 상기 독출된 사용자데이터의 어드레스로부터 1만큼 감소된 어드레스에 저장된 ECC데이터 둘 다를 기록하여 에러정정을 순차적으로 실행하는 것이 바람직하다.
상술한 원칩마이크로컴퓨터에 의해, 사용자데이터는 외부적으로 입력되며 CPU는 내부프로그램에 따라 들어온 기선택된 양의 사용자데이터로부터 순차적으로 ECC데이터를 생성하며, 그 다음, 사용자데이터 및 ECC데이터가 EEPROM의 사용자데이터저장영역 및 ECC데이터저장영역에 저장된다. 그 결과로, ECC데이터가 원칩마이크로컴퓨터의 외부에서 생성되는 경우와 비교하여, 사용자에게 주워지는 작업부하가 크게 감소될 수 있다. 더욱이, ECC데이터를 생성하도록, 생성된 ECC데이터를 임시적으로 저장하는 외부메모리가 더 이상 필요하지 않기 때문에 전체시스템비용이 낮아질 수 있다. 추가하여, 사용자데이터 및 ECC데이터가 EEPROM에 동시에 기록되기 때문에, ECC데이터를 외부메모리로부터 이 EEPROM에 기록하는 경우에 요구되는 데이터기록시간과 비교하여, EEPROM에 대한 데이터기록시간이 감소될 수 있다.
도 1은 본 발명의 실시예에 따른 원칩마이크로컴퓨터의 회로를 개략적으로 나타낸 블록도,
도 2는 도 1의 원칩마이크로컴퓨터에 채용된 EEPROM제어회로를 개략적으로 나타낸 블록도,
도 3은 도 1의 원칩마이크로컴퓨터에 채용된 데이터래치선택/제어회로를 개략적으로 나타낸 블록도,
도 4는 도 1의 원칩마이크로컴퓨터에 채용된 기록신호발생회로를 개략적으로 나타낸 블록도,
도 5는 기록신호발생회로의 동작타이밍도,
도 6은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 1동작처리순서를 설명하기 위한 흐름도,
도 7은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 1동작처리순서를 설명하기 위한 흐름도,
도 8은 제 1동작에 있어서 기록동작 동안의 타이밍도,
도 9는 도 1에서 나타낸 원칩마이크로컴퓨터의 제 2동작처리순서를 설명하기 위한 흐름도,
도 10은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 2동작처리순서를 설명하기 위한 흐름도,
도 11은 ECC어드레스가 기록동작 동안에 쉬프트되는 경우의 타이밍도,
도 12는 ECC어드레스가 기록동작 동안에 쉬프트되는 경우의 EEPROM어드레스발생회로를 개략적으로 나타낸 블록도,
도 13은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 3동작처리순서를 설명하기 위한 흐름도,
도 14는 도 1에서 나타낸 원칩마이크로컴퓨터의 제 3동작처리순서를 설명하기 위한 흐름도,
도 15는 ECC어드레스가 독출동작 동안에 쉬프트되는 경우의 타이밍도,
도 16은 ECC어드레스가 독출동작 동안에 쉬프트되는 경우의 EEPROM어드레스발생회로를 개략적으로 나타낸 블록도,
도 17은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 4동작을 설명하기 위한 흐름도,
도 18은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 4동작을 설명하기 위한 흐름도,
도 19는 제 4동작이 기록동작 동안에 수행되는 경우의 타이밍도이며,
도 20a 및 도 20b는 EEPROM에서 실행되는 종래의 ECC데이터생성/부가방법을 설명하기 위한 도면이다.
※ 도면의 주요부분에 대한 부호의 설명
1: 입력/출력포트 2: CPU
3: 어드레스버스 4: 데이터버스
5: 펌ROM 6: RAM
7: EEPROM제어회로 8: EEPROM
9: 에러정정회로 10: 데이터선택회로
11: 어드레스버스 12: 데이터버스
13: 데이터래치선택/제어회로 14: 데이터래치
15: 데이터래치 16: 데이터래치
17: 기록신호발생회로 18: EEPROM어드레스발생제어회로
21: 내부레지스터그룹 71: 사용자데이터스택레지스터
72: ECC데이터스택레지스터 81: 사용자데이터레지스터
82: ECC데이터레지스터 83: 사용자데이터영역
84: ECC데이터영역 131: 어드레스버스
132: NOR게이트회로 133: 인버터
134: NOR게이트회로 171: 어드레스버스
172: 데이터버스 173: 어드레스디코더
174: 플립플롭 175: 플립플롭
176: 인버터 177: AND게이트회로
181: 어드레스버스 182: 감소회로
183: 어드레스버스 184: 감소회로
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예들에 대해 상세하게 설명한다.
본 발명의 실시예에 따른 원칩마이크로컴퓨터를 설명하기 전에, 이 원칩마이크로컴퓨터에 관련된 도면들의 내용이 상세하게 설명될 것이다.
도 1은 본 발명의 실시예에 따른 원칩마이크로컴퓨터의 회로를 개략적으로 나타낸 블록도이다. 도 2는 도 1의 원칩마이크로컴퓨터에 채용된 EEPROM제어회로를 개략적으로 나타낸 블록도이다. 도 3은 도 1의 원칩마이크로컴퓨터에 채용된 데이터래치선택/제어회로를 개략적으로 나타낸 블록도이다. 도 4는 도 1의 원칩마이크로컴퓨터에 채용된 기록신호발생회로를 개략적으로 나타낸 블록도이다. 도 5는 기록신호발생회로의 동작타이밍도이다. 도 6 및 도 7은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 1동작처리순서를 설명하기 위한 흐름도이다. 도 8은 제 1동작에 있어서 기록동작 동안의 타이밍도이다. 도 9 및 도 10은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 2동작처리순서를 설명하기 위한 흐름도이다. 도 11은 ECC어드레스가 기록동작 동안에 쉬프트되는 경우의 타이밍도이다. 도 12는 ECC어드레스가 기록동작 동안에 쉬프트되는 경우의 EEPROM어드레스발생회로를 개략적으로 나타낸 블록도이다. 도 13 및 도 14는 도 1에서 나타낸 원칩마이크로컴퓨터의 제 3동작처리순서를 설명하기 위한 흐름도이다. 도 15는 ECC어드레스가 독출동작 동안에 쉬프트되는 경우의 타이밍도이다. 도 16은 ECC어드레스가 독출동작 동안에 쉬프트되는 경우의 EEPROM어드레스발생회로를 개략적으로 나타낸 블록도이다. 도 17 및 도 18은 도 1에서 나타낸 원칩마이크로컴퓨터의 제 4동작을 설명하기 위한 흐름도이다. 도 19는 제 4동작이 기록동작 동안에 수행되는 경우의 타이밍도이다.
원칩마이크로컴퓨터의 전체적인 구성
도 1에서 나타낸 바와 같이, 본 발명의 이 실시예의 원칩마이크로컴퓨터는 주로 입력/출력포트(input/output port: 1), CPU(central processing unit: 2), 어드레스버스(address bus: 3), 데이터버스(data bus: 4), 펌ROM(firm read-only memory: 5), RAM(random access memory: 6), EEPROM(8), EEPROM제어회로(7), 에러정정회로(9) 및 데이터선택회로(10)으로 구성된다.
입력포트(1)은 이 원칩마이크로컴퓨터와 외부 장치 간의 데이터 입력/출력을 위한 복수의 터미널포트들로 구성된다. CPU(2)는, 프로그램으로부터 발행된 명령의 해석(interpretation) 및 명령의 실행(execution)을 제어함으로써 이 실시예에 따라 원칩마이크로컴퓨터의 전체적인 동작을 제어한다. 어드레스버스(3)는 이 원칩마이크로컴퓨터 내의 다양한 회로제어부들 간의 어드레스신호를 전송하는데 사용된다. 펌ROM(5)은 이 원칩마이크로컴퓨터를 동작하는데 요구되는 펌웨어(firmware)를, 즉, 마이크로프로그램을 그 자신에 저장한다. 이 실시예에 있어서, 펌ROM(5)은 ECC데이터생성프로그램을 그 자신에 저장한다. RAM(6)은, 주로 CPU(2)의 작업영역으로 사용되는 램덤억세스메모리(random access memory)이다.
EEPROM제어회로(7)는 EEPROM의 독출/기록동작들을 제어하기 위한 제어회로이다. 이 EEPROM제어회로(7)는 후에 설명될 내용물을 포함하며, 데이터를 스택킹(stacking)하도록 사용자데이터스택레지스터(user data stack register: 71) 및 ECC데이터스택레지스터(ECC data stack register: 72)를 포함한다. EEPROM(8)은, 정보를 전기적으로 기록 및 소거하기 위한 고정저장구성요소(fixing strage element)에 대응한다. 이 EEPROM(8)은, 데이터를 그 자신에 기록하기 위해, 사용자데이터레지스터(user data register: 81) 및 ECC데이터레지스터(ECC data register: 82) 둘 다를 포함하며, 사용자데이터영역(83) 및 ECC데이터영역(84)을 더 포함하여 데이터를 그 자신에 기록한다. 이러한 EEPROM(8)으로 통상의 EEPROM(normal EEPROM)이나 플래쉬EEPROM(flash EEPROM)이 사용될 수 있음에 주목하기 바란다.
에러정정회로(9)는 데이터에 부가된 ECC데이터(error correction code data)에 기초하여 데이터에러를 검출함으로써 이 데이터에 담긴 에러를 정정한다. 데이터선택회로(10)는 에러정정회로(9)로부터 출력된 32비트데이터를 상위16비트데이터(upper-graded 16-bit data) 및 하위16비트데이터(lower-graded 16-bit data)로 세분한 다음, 이들 16비트데이터들을 교대로 데이터버스(4)로 전송한다.
EEPROM제어회로(7)의 내부구성
도 2에서 나타낸 바와 같이, 상술된 EEPROM제어회로(7)는 어드레스버스(11), 데이터버스(12), 데이터래치선택/제어회로(13), 어드레스 'n'을 위한 데이터레치(14), 어드레스 'n+2'를 위한 데이터레치(15), ECC데이터를 위한 데이터레치(16), 기록신호발생회로(17) 및 EEPROM어드레스발생회로(18)에 의해 구성된다. 이 예에 있어서, 이하, 외부적으로 공급된 사용자데이터의 어드레스 'n'을 참조부호로 이용하면서 설명한다. 어드레스버스(11)는 상술된 어드레스버스(3)의 한 부분을 구성하며, 어드레스신호를 전송한다. 데이터버스(12)는 상술된 데이터버스(4)의 한 부분을 구성하며, 데이터신호를 전송한다. 데이터래치선택/제어회로(13)는 어드레스버스(11)의 정보에 따라 제어신호들 DL1, DL2, DL3을 생성한다. 이들 제어신호들 DL1, DL2 및 DL3은, 래치데이터가 어드레스 'n'을 위한 데이터레치(14), 어드레스 'n+2'를 위한 데이터레치(15) 및 ECC데이터를 위한 데이터레치(16)에 의해 데이터버스(12) 상에 선택적으로 출두케 하는데 사용된다. 이 데이터레치선택/제어회로(13)의 구성은 후술될 것이다. 제어신호 DL1이 활성화되는 경우에는, 어드레스 'n'을 위한 데이터래치(14)는 어드레스 'n' 및 어드레스 'n+1' 둘 다의 2바이트(16비트)데이터를 데이터버스(12) 상에서 래치(latch)하며, 데이터를 래치하는 것에 의해, 어드레스의 비트 1이 '0'으로 되는 경우에 있어서 래치된 데이터가 EEPROM(8)의 메모리로 출력된다.
제어신호 DL2가 활성화되는 경우에는, 어드레스 'n+2'를 위한 데이터래치(15)는 어드레스 'n+2' 및 어드레스 'n+3' 둘 다의 2바이트(16비트)데이터를 데이터버스(12) 상에서 래치(latch)하며, 데이터를 래치하는 것에 의해, 어드레스의 비트 1이 '1'로 되는 경우에 있어서 래치된 데이터가 EEPROM(8)의 메모리로 출력된다. 제어신호 DL3이 활성화되는 경우에는, ECC를 위한 데이터래치(16)는 하위6비트데이터를 데이터버스(12) 상에서 래치(latch)하며, 데이터를 래치하는 것에 의해, ECC어드레스가 출력되는 경우에 있어서 래치된 데이터가 EEPROM(8)의 메모리셀(memory cell)로 출력된다.
기록신호발생회로(17)는 어드레스버스(11)의 정보 및 데이터버스(12)의 정보 둘 다에 기초하여 기록세트신호(write set signal) 및 기록리셋신호(write reset signal) 둘 다를 발생한다. 이 기록세트신호는 EEPROM(8)에 대한 기록동작의 개시를 제어하는데 사용된다. 기록리셋신호는 EEPROM(8)에 대한 기록동작의 종료를 제어하는데 사용된다. 이 기록신호발생회로(17)의 내부구성은 후술될 것이다. EEPROM어드레스발생회로(18)는어드레스버스(11)의 정보에 기초하여 EEPROM(8)에 대한 어드레스를 발생한다. 이 EEPROM어드레스발생회로(18)는, 어드레스버스의 비트들 2 내지 15를 어드레스디코더(address decoder: 미도시)를 통해 이 EEPROM(8)의 데이터영역(사용자메모리)을 위한 이 EEPROM(8)의 데이터영역의 어드레스 0 내지 13으로서 인가한다. 그리고, 또한, EEPROM(8)은, 어드레스버스(11)의 비트들 2 내지 15를 EEPROM(8)의 ECC데이터영역의 다른 어드레스디코더(address decoder: 미도시) 및 감소회로(decrement circuit: 미도시)를 통해 EEPROM(8)의 ECC데이터영역의 어드레스들 0 내지 13으로서 인가한다. 이러한 어드레스변환이 수행되는 이유는 다음과 같다. 즉, 어드레스신호가 '바이트(byte: 8비트)' 단위로 주어지는 까닭에, EEPROM(8)의 32비트 입력/출력데이터에 대응하는 어드레스로서 2비트의 최소유효비트(least significant bit: LSB)가 필요하지 않기 때문이다. 데이터가 16비트폭을 가지기 때문에, 어드레스 'n'을 위한 래치(14)는 어드레스 'n'의 데이터 및 어드레스 'n+1'의 데이터 둘 다를 래치하며, 어드레스 'n+2'를 위한 래치(15)는 외부어드레스 'n'에 대한 어드레스 'n+2'의 데이터 및 어드레스 'n+3'의 데이터 둘 다를 래치한다.
데이터래치선택/제어회로(13)의 내부구성
도 3에서 나타낸 바와 같이, 상술된 데이터레치선택/제어회로(13)은 어드레스버스(131), NOR게이트회로(132), 인버터(133) 및 다른 NOR게이트회로(134)를 채용하는 것에 의해 구성된다.
어드레스버스(131)은 어드레스버스(11)의 한 부분을 구성하며, 어드레스신호를 전송한다. NOR게이트회로(132)는, EEPROM(8)의 데이터영역을 표시하는 어드레스버스(131)의 비트 1과 ECC데이터영역을 표시하는 어드레스버스(131)의 비트 16, 둘 다가 비활성화된 경우, 어드레스 'n'을 위한 데이터래치(14)에 대해 제어신호 DL1을 출력한다. 인버터(133) 및 NOR게이트회로(134)는, EEPROM(8)의 데이터영역을 표시하는 어드레스버스(131)의 비트 1이 활성화되고 ECC데이터영역을 표시하는 어드레스버스(131)의 비트 16이 비활성화되는 경우, 어드레스 (n+2)를 위한 데이터래치(15)에 대해 제어신호 DL2를 출력한다. 한편, 어드레스버스(131)의 비트 16이 활성화되는 경우에는, 이들 인버터(133) 및 NOR게이트회로(134)는 ECC를 위한 데이터래치(16)에 대해 제어신호 DL3를 출력한다.
기록신호발생회로(17)의 내부 구성/동작
도 4에서 나타낸 바와 같이, 기록신호발생회로(17)은 어드레스버스(171), 데이터버스(172), 어드레스디코더(173), 플립-플롭(flip-flop: 174), 다른 플립-플롭(175), 인버터(176) 및 AND게이트회로(177)을 포함하는 것에 의해 구성된다.
이 기록신호발생회로(17)의 동작들을 도 5의 타이밍도에 나타내었다. 어드레스버스(171)은 어드레스버스(11)의 한 부분을 구성하며, 어드레스신호를 전송한다. 데이터버스(172)는 데이터버스(12)의 한 부분을 구성하며, 데이터신호를 전송한다. 어드레스디코더(173)는, CPU(2)로부터 출력되는 어드레스버스(171) 상의 어드레스가 사전에 세팅된 특정한 어드레스와 일치하는 경우, 어드레스일치신호(address coincidence signal)를 출력하며, 기록신호의 발생을 EEPROM(8)에 지시한다. 어드레스일치신호가 어드레스디코더(173)로부터 출력되는 경우, 플립-플롭(174) 및 플립-플롭(175) 둘 다는, 데이터버스(172)의 데이터비트 0 및 데이터비트 1 각각을 래치한다. 그 결과, 데이터비트 1 및 데이터비트 0이 출력되는 것에 응답하여 기록리셋신호가 출력될 때 기록세트신호가 출력되지 않는다는 환경 하에서, 기록세트신호가 AND게이트회로(177)로부터 출력된다.
EEPOROM(8)에 있어서, 사용자데이터 및 ECC데이터는, 기록펄스가 기록세트신호에 의해 상승되는 것과 기록펄스가 기록리셋신호에 의해 하강되는 것에 의해 활성화되는 동안의 시간주기 내에 기록된다.
EEPROM(8)에 있어서의 제 1동작
이하, 도 6, 도 7 및 도 8을 참조하여, EEPROM(8)에서 실행되는 제 1동작이 설명된다: 즉, 제 1동작은, EEPROM(8)의 기록동작이 저속으로 수행되기 때문에 ECC데이터가 기록펄스의 폭 내에서 생성될 수 있는 경우에 있어서, 실행되는 처리방법을 나타낸다.
사용자데이터의 제 1어드레스 및 사용자데이터의 마지막어드레스, 둘 다가 사용자데이터를 저장하기 위해 외부화일(자세하게 도시되지 않은)에서 사전에 지정된다고 가정한다. 사용자데이터가 외부화일의 제 1어드레스로부터 입력/출력포트(1)로 입력된다(단계 S1). 그 다음, 이 사용자데이터는 데이터버스(4)를 통해 CPU(2)의 내부레지스터그룹(21)에 저장된다(단계 S2). 이상과 같은 단계들 S1 내지 S2가 반복하여 실행되는 것에 의해 4바이트데이터가 저장되면(단계 S3), 그 후에, 이 사용자데이터가 내부레지스터그룹(21)로부터 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 구비된 사용자데이터스택레지스터(user data stack register: 71)로 전송된다(단계 S4). 또한, 이 사용자데이터는 EEPROM(8) 내에 구비된 사용자데이터레지스터(81)로 전송된다(단계 S4).
한편, CPU(2)는, 이 CPU(2)가 저장된 4바이트데이터에 기초하여 ECC데이터를 생성하도록, ECC발생프로그램을 독출하며(단계 S6), 데이터버스(4)를 통해 ECC데이터를 EEPROM제어회로(7) 내에 구비된 ECC데이터스택레지스터(72)로 전송한다(단계 S7). 더욱이, CPU(2)는 이 ECC데이터를 EEPROM(8) 내에 구비된 ECC데이터레지스터(82)로 전송한다(단계 S8).
다음, 4바이트데이터에 포함된 모든 데이터가 완전하게 기록될 때까지 아래에 언급되는 기록처리동작이 반복하여 수행된다(단계 S10). 이 기록처리동작에 있어서, 사용자데이터레지스터(81)의 사용자데이터 및 ECC데이터레지스터(82)의 ECC데이터는 기록세트신호를 EEPROM제어회로(7)로부터 EEPROM(8)으로 공급하는 것에 의해 EEPROM(8)의 사용자데이터영역 및 EEPROM(8)의 ECC데이터영역에 기록된다(단계 S9). 기록동작이 달성되는 경우, 기록리셋신호가 EEPROM(8)으로 공급된다(단계 S11).
4바이트데이터를 위한 처리동작이 달성되는 경우, 사용자데이터의 어드레스는 4만큼 증가되며(단계 S13), 그 다음, 단계 S5 및 S8에서 정의된 처리동작들이 다시 반복된다. 그 다음, 마지막어드레스가 출현하는 경우(단계 S12), 이 처리동작이 달성된다.
이러한 경우에 있어서 처리된 각 데이터의 기록타이밍을 도 8의 타이밍도에 나타내었다. 바꾸어 말하면, 우선 첫번째로, 4바이트데이터가 포트(1)로부터 데이터 '0' 내지 데이터 '3'까지의 기록데이터로서 들어오기 때문에, 이 기록데이터는 연속적으로 데이터버스(4)로 출력된다. 이 기록데이터가 기설정된 타이밍에서 EEPROM(8) 내에 구비된 사용자데이터레지스터(81)로 전송되며, 더욱이, CPU(2)에서 데이터 '0'부터 데이터 '3'까지 ECC데이터의 발생이 달성된 후에 이 ECC데이터가 EEPROM(8) 내에 구비된 ECC데이터레지스터(82)로 전송되는 경우, 기록펄스가 발생되며, 이 기록펄스는 곧 EEPROM(8)에 기록된다.
EEPROM(8) 내에 저장된 데이터가 독출되는 경우, 사용자데이터 및 ECC데이터 둘 다는 동일한 어드레스에서 독출되기 때문에, 대응하는 사용자데이터부분과 대응하는 ECC데이터부분 둘 다가 이 EEPROM(8)으로부터 독출될 수 있다. 그 결과, 에러정정회로(9)에 의해 에러정정이 수행될 수 있다.
EEPROM(8)에 있어서 제 2동작
이어서, 도 9, 도 10, 도 11 및 도 12를 참조하여, EEPROM(8)에서 실행되는 제 2동작을 설명한다. 즉, 이 제 2동작은, EEPROM(8)의 기록동작이 고속으로 수행되기 때문에 ECC데이터가 기록펄스의 폭 내에서 생성될 수 없으며 또한 ECC어드레스가 기록동작동안에 쉬프트되는 경우에 있어서, 실행되는 처리방법을 나타낸다.
사용자데이터의 제 1어드레스 및 이 사용자데이터의 마지막 어드레스, 둘다가 사용자데이터를 저장하기 위해 외부화일에서 사전에 지정된다고 가정한다.
사용자데이터는 외부화일의 제 1어드레스로부터 입력/출력포트(1)로 입력되며(단계 P1), 또한 이 사용자데이터는 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 구비된 사용자데이터스택레지스터(71)로 전송되며(단계 P2), 그 다음, 이 사용자데이터는 CPU(2)의 내부레지스터그룹(21)에 저장된다(단계 P3). 이상과 같은 단계들 P1 내지 P3이 반복하여 실행되는 것에 의해 4바이트데이터가 저장되면(단계 P4), 그 후에, 이 4바이트데이터가 제 1어드레스에 대응하는 경우에는(단계 P5), 사용자데이터가 EEPROM제어회로(7) 내에 구비된 사용자데이터스택레지스터(71)로부터 EEPROM(8) 내에 구비된 사용자데이터레지스터(81)로 전송된다(단계 P6). 사용자데이터를 EEPROM(8)에 기록하기 위해 기록세트신호가 EEPROM제어회로(7)로부터 EEPROM(8)으로 출력되고(단계 P7) 그 다음 이 기록동작이 달성되는 경우(단계 P8), 기록리셋신호가 EEPROM제어회로(7)로부터 EEPROM(8)으로 출력된다(단계 P9). 그 다음, 어드레스가 4만큼 증가된 후, 단계 P1으로 회귀된다. 외부화일로부터 4바이트데이터가 입력된 후의 처리동작은 반복하여 수행된다. 상술한 4바이트데이터의 저장동작이 완료될 때, 이 어드레스가 제 1어드레스에 대응하지 않으며(단계 P5), 또한, 마지막어드레스에도 대응하지 않는 경우에는(단계 11), CPU(2)는 아래에 언급된 동작들을 실행한다. 이 CPU(2)는, 이전의 처리주기에서 저장되었던 4바이트데이터로부터 ECC데이터를 생성하며(단계 P12); 이 ECC데이터를 데이터버스(4)를 통해 EEPROM(7) 내에 구비된 ECC데이터스택레지스터(72)로 전송하며(단계 P13); 그리고, 또한, 이 사용자데이터를 사용자데이터스택레지스터(71)로부터 EEPROM(8) 내에 구비된 사용자데이터레지스터(81)로 전송한다. 또한, CPU(2)는, ECC데이터를 ECC데이터스택레지스터(72)로부터 ECC데이터레지스터(82)로 전송하며(단계 P14); EEPROM(8)의 어드레스를 1만큼 쉬프트하며(단계 P15); 기록세트신호를 EEPROM(8)로 출력하며(단계 P16); 사용자데이터레지스터(81)로부터의 사용자데이터를 EEPROM(8)의 사용자데이터영역(83)에 기록하며; 그리고, 또한 ECC데이터레지스터로부터의 ECC데이터를 ECC데이터영역에 기록한다. 다음, 기록동작이 달성되면(단계 P17), 이 CPU(2)는 기록리셋신호를 EEPROM(8)으로 출력한다(단계 P18). 이 처리동작은 CPU(2)가 4만큼 어드레스를 쉬프트하는 단계(단계 P10)인 이전의 단계 P10으로 회귀된다. 그 다음, 이 처리동작은, 외부화일로부터 4바이트데이터가 들어오는 것에 의해 상술된 일련의 처리동작을 반복하여 수행하는, 단계 P1로 다시 회귀된다.
남은 어드레스가 단계 P11에서 마지막어드레스인 경우, CPU(2)는, 저장된 4바이트데이터로부터 ECC데이터를 생성하며(단계 P19); ECC데이터를 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 구비된 ECC데이터스택레지스터(72)로 전송하며(단계 P20); 그리고, 또한, ECC데이터를 ECC데이터레지스터(82)로 전송하며(단계 P21); EEPROM(8)의 ECC데이터영역(84)의 어드레스를 '-1'만큼 쉬프트하며(단계 P22); 기록세트신호를 EEPROM(8)으로 출력한다; 그리고 또한 ECC데이터를 기록한다. 다음, 기록동작이 종료되면(단계 P24), 처리동작이 달성된다.
도 11은 ECC어드레스가 기록동작 동안에 쉬프트되는 경우에 있어서 각 데이터의 다양한 기록타이밍을 나타낸다. 바꾸어 말하면, 포트(1)로부터의 사용자데이터는 EEPROM(8) 내에 구비된 사용자데이터레지스터(81)로 순차적으로 전송되며, 페이지어드레스(page address) 0, 1, 2,..., n,..., 마지막 어드레스와 같이, 어드레스순서대로 4바이트페이지 단위로 전송된다. 1주기지연을 갖는 사용자데이터에 기초하여 생성된 대응하는 ECC데이터는, 1어드레스만큼 연속적으로 쉬프트되며, 그 다음, 어드레스-쉬프트된 ECC데이터는 EEPROM(8)의 ECC데이터레지스터(82)로 전송된다. 기록펄스에 반응하여, 이들 어드레스-쉬프트된 ECC데이터는 EEPROM(8)의 사용자데이터영역(83)에 기록되며, 또한 ECC데이터영역(84)에 기록된다.
에러정정처리동작이 실행되도록 EEPROM(8)에 저장된 데이터가 독출되는 경우에 있어서, 사용자데이터에 대응하는 사용자데이터부분과 ECC데이터에 대응하는 ECC데이터부분이 동시에 독출될 수 있도록, 사용자데이터 및 ECC데이터 둘 다는 이 EEPROM(8)의 동일한 어드레스로부터 독출된다.
EEPROM어드레스발생회로(18)의 내부구성
도 12에서 도시된 바와 같이, ECC어드레스가 기록동작 동안에 쉬프트되는 경우에 있어서 EEPROM제어회로(7)에 채용되는 EEPROM어드레스발생회로(18)는 어드레스버스(181) 및 감소회로(182)를 채용하는 것에 의해 구성된다.
어드레스버스(181)은 어드레스버스(11)의 한 부분을 구성하며, 어드레스신호를 전송한다. 감소회로(182)는 어드레스버스(181)의 어드레스를 1만큼 감소시키며 이 감소된 어드레스를 출력한다.
32비트 사용자데이터 및 6비트 ECC데이터 둘 다가 동시에 EEPROM(8)에 기록되기 때문에, 어드레스버스(181)의 비트들 2 내지 15는 이 EEPROM(8)의 어드레스 0 내지 13에 EEPROM(8)의 사용자데이터영역(83)을 위한 기록어드레스로서 인가되며, 어드레스버스(181)의 비트들 2 내지 15가 감소회로(182)의 방식에 의해 1만큼 감소되는 까닭에, 바로, 감소된 비트들이 EEPROM(8)의 어드레스 0 내지 13에 EEPROM(8)의 ECC데이터영역(84)을 위한 기록어드레스로서 인가된다. 이러한 변환이 수행되는 이유는 다음과 같다: 즉, 말하자면, 어드레스신호가 1바이트(8비트) 단위로 제공되는 까닭에, EEPROM(8)의 32비트 입력/출력데이터에 대응하는 어드레스로서 2비트의 최소유효비트가 필요하지 않기 때문이다.
EEPROM(8)에 있어서의 제 3동작
이어서, 도 13, 도 14, 도 15 및 도 16을 참조하여, EEPROM(8)에서 실행되는 제 3동작이 설명될 것이다. 즉, 제 3동작은, EEPROM(8)의 기록동작이 고속으로 수행되기 때문에 ECC데이터가 기록펄스의 폭 내에서 생성될 수 없으며 또한 ECC어드레스가 독출동작 동안에 쉬프트되는 경우에 있어서, 실행되는 처리방법을 나타낸다.
사용자데이터의 제 1어드레스 및 사용자데이터의 마지막어드레스는 사용자데이터를 저장하기 위해 외부화일에서 사전에 지정된다고 가정한다. 사용자데이터는 외부화일의 제 1어드레스로부터 입력/출력포트(1)로 입력되며(단계 R1), 그리고, 사용자데이터는 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 채용된 사용자데이터스택레지스터(71)로 전송되고, 또한, 입력된 데이터는 데이터버스(4)를 통해 CPU(2)의 내부레지스터그룹(21)에 저장된다(단계 R4). 이러한 처리동작들 R1 내지 R4를 반복하여 실행하는 것에 의해 4바이트데이터가 저장되고 난 후(단계 R4), 이 4바이트데이터가 제 1어드레스에 대응하는 경우(단계 R6), 이 사용자데이터는 사용자데이터스택레지스터(71)로부터 EEPROM(8) 내의 사용자데이터레지스터(81)로 전송된다(단계 R6). 사용자데이터가 이 EEPROM(8)에 기록되도록 기록세트신호가 EEPROM제어회로(7)로부터 EEPROM(8)로 출력된 다음, 기록동작이 달성되는 경우(단계 R8)에 있어서, 기록리셋신호는 EEPROM제어회로(7)로부터 EEPROM(8)로 출력된다(단계 R9). 그 다음, 이 어드레스는 4만큼 증가되며(단계 R10), 그 다음, 처리동작이 다시 단계 R1으로 회귀된다. 4바이트데이터가 외부화일??로부터 입력된 다음의 처리동작은 반복하여 수행된다.
상술된 4바이트데이터의 저장동작이 종료되는 경우에 있어서, 어드레스가 제 1어드레스에 대응하지 않으며(단계 R5), 또한, 마지막어드레스에도 대응하지 않으면(단계 R11), CPU(2)는 아래에 언급되는 동작들을 실행한다. 이 CPU(2)는 저장된 4바이트 데이터로부터 ECC데이터를 생성하며(단계 R12); ECC데이터를 EEPROM제어회로(7) 내에 제공되는 데이터버스(4)를 통해 ECC데이터스택레지스터(72)로 전송하며(단계 R13); 또한, ECC데이터를 사용자데이터스택레지스터(71)로부터 EEPROM(8) 내에 제공되는 사용자데이터레지스터(81)로 전송한다. 더욱이, CPU(2)는 ECC데이터를 ECC데이터스택레지스터(72)로부터 ECC데이터레지스터(82)로 전송하며(단계 R14); 기록세트신호를 EEPROM(8)으로 출력하며(단계 R15); 사용자데이터를 사용자데이터레지스터(81)로부터 EEPROM(8)의 사용자데이터영역(83)으로 기록하며; 또한, ECC데이터를 ECC데이터레지스터(82)로부터 ECC데이터영역(84)으로 기록한다. 그 다음, 기록동작이 달성되면(단계 R16), 이 CPU(2)는 기록리셋신호를 EEPROM(8)으로 출력한다(단계 R17). 이 처리동작은, CPU(2)가 +4만큼 쉬프트하는 단계(단계 R10)에서 이전의 단계 R10으로 회귀된다. 그 다음, 이 처리동작은, 외부화일로부터 4바이트 데이터가 들어오는 것에 의해 상술한 일련의 처리동작이 반복하여 수행되는 단계 R1으로 다시 회귀된다.
단계 R11에서 남은 어드레스가 마지막어드레스인 경우, CPU(2)는, 저장된 4바이트 데이터로부터 ECC데이터를 생성하며(단계 R18); ECC데이터를 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 제공되는 ECC데이터스택레지스터(72)로 전송하며(단계 R19); 또한, ECC데이터를 ECC데이터스택레지스터(72)로부터 EEPROM(8) 내의 ECC데이터레지스터(82)로 전송하며(단계 R20); 또한, 이 ECC데이터의 기록동작을 실행하도록, 기록세트신호를 EEPROM(8)으로 출력한다(단계 R21). 이 ECC데이터기록동작이 달성되면(단계 R22), 이 처리동작은 달성된다.
도 15는 ECC어드레스가 독출동작 동안에 쉬프트되는 경우에 있어서 각 데이터의 다양한 기록타이밍을 나타낸다. 바꾸어 말하면, 사용자데이터는 포트(1)로부터 EEPROM(8)에 제공된 사용자데이터레지스터(81)로 순차적으로 전송되며, 페이지 어드레스 0, 1, 2,..., n,..., 마지막어드레스와 같이 페이지어드레스의 순서대로 4바이트 페이지 단위로 전송된다. 1주기지연을 갖는 사용자데이터에 기초하여 생성된 대응하는 ECC데이터는 연속적으로 EEPROM의 ECC데이터레지스터(82)로 전송된다. 기록펄스에 응답하여, 이들 어드레스-쉬프트된 ECC데이터가 EEPROM(8)의 동일한 어드레스들에서, EEPROM(8)의 사용자데이터영역(83)에 기록되며 또한, EEPROM(8)의 ECC데이터영역(84)에도 기록된다. 그 결과, 이 경우에 있어서, 페이지어드레스 'n'에서 사용자데이터에 대응하는 ECC데이터가 어드레스 (n+1)에서의 ECC데이터영역(84)에 기록된다.
에러정정처리동작을 실행하도록 EEPROM(8)에 저장된 데이터가 독출되는 경우에 있어서, EEPROM(8) 내에 제공되는 사용자데이터영역(83)의 어드레스 'n'에서의 사용자데이터 및 ECC데이터영역(84)의 어드레스 (n+1)에서의 ECC데이터 둘 다가 독출된다. 그 결과, 대응하는 데이터부분 및 대응하는 ECC데이터부분이 동시에 독출될 수 있다.
EEPROM발생회로(18a)의 내부구성
도 16에서 도시된 바와 같이, ECC어드레스가 독출동작 동안에 쉬프트되는 경우에 있어서, EEPROM제어회로(7)에 채용된 EEPROM어드레스발생회로(18a)는 어드레스버스(183) 및 감소회로(184)를 채용하는 것에 의해 구성된다.
어드레스버스(183)은 어드레스버스(11)의 한 부분을 구성하며, 어드레스신호를 전송한다. 감소회로(184)는 어드레스버스(183)의 어드레스를 1만큼 감소시켜 감소된 어드레스를 출력한다.
32비트 사용자데이터 및 6비트 ECC데이터 둘 다가 동시에 EEPROM(8)으로부터 독출되기 때문에, 어드레스버스(183)의 비트들 2내지 15는 EEPROM(8)의 사용자데이터영역(83)을 위한 독출어드레스로서 EEPROM(8)의 어드레스들 0 내지 13에 인가되며, 어드레스버스(183)의 비트들 2내지 15가 감소회로(184)의 방식에 의해 1만큼 감소되는 까닭에, 바로, 감소된 비트들이 EEPROM(8)의 어드레스 0 내지 13에 EEPROM(8)의 ECC데이터영역(84)을 위한 독출어드레스로서 인가된다. 이러한 변환이 수행되는 이유는 다음과 같다: 즉, 말하자면, 어드레스신호가 1바이트(8비트) 단위로 제공되는 까닭에 EEPROM(8)의 32비트 입력/출력데이터에 대응하는 어드레스로서 2비트의 최소유효비트는 필요하지 않기 때문이다.
EEPROM(8)에 있어서 제 4동작
이하, 도 17, 도 18 및 도 19를 참조하여, EEPROM(8)에서의 제 4동작이 설명될 것이다. 즉, 말하자면, 이 제 4동작은, EEPROM(8)의 기록동작이 고속으로 수행되기 때문에 ECC데이터가 기록펄스의 폭 내에서 생성될 수 없을 때 기록어드레스증가기능이 EEPROM(8)의 ECC데이터영역 측에 제공되는 경우에 있어서, 실행되는 처리방법이다. 이 기록어드레스증가기능은, 펌ROM(5) 내에 저장된 프로그램에 기초하는 CPU(2)의 동작에 의해 기록어드레스를 증가시킨다.
외부화일(미도시) 내에 저장된 사용자데이터의 제 1어드레스 및 사용자데이터의 마지막 어드레스가 사전에 지정된다. 사용자데이터가 제 1어드레스로부터 입력/출력포트(1)로 들어오며(단계 Q1); 이 사용자데이터가 데이터버스(4)를 통해 EEPROM제어회로(7) 내에 제공되는 사용자데이터스택레지스터(71)로 전송되며(단계 Q2); 또한, 입력/출력포트(1)로부터 전송된 사용자데이터가 데이터버스(4)를 통해 CPU(2)의 내부레지스터그룹(21)로 전송되며(단계 Q3); 4바이트데이터가 사용자데이터스택레지스터(71)로부터 EEPROM(8) 내에 제공되는 사용자데이터레지스터(81)로 전송된다(단계 Q5).
한편, 단계 Q5에서 4바이트데이터가 EEPROM(8) 내에 제공되는 사용자데이터레지스터(81)로 전송되는 경우에는, 4바이트데이터가 내부레지스터그룹(21)으로부터 데이터버스(4)를 통해 사용자데이터스택레지스터(71)에 대응하는 어드레스에서의 RAM(6)의 저장영역에 저장된다(단계 Q6). 그 다음, 4바이트데이터가 사용자데이터스택어드레스에 의해 지정된 RAM(6)의 저장영역으로부터 데이터버스(4)를 통해 독출된다(단계 Q7). 따라서, CPU(2)는, CPU(2)가 4바이트데이터로부터 ECC데이터를 생성하는 처리동작을 반복하여 실행하며(단계 Q8); 생성된 ECC데이터를 대응하는 어드레스에서 데이터버스(4)를 통해 ECC데이터스택레지스터(72)로 전송하며(단계 Q9); 또한, 스택어드레스가 감소되도록 이 ECC데이터를 EEPROM(8) 내에 제공되는 ECC데이터레지스터(82)로 전송한다(단계 Q11).
다음, CPU(2)는 어드레스를 4만큼 증가시키면서 다음의 처리동작을 반복하여 수행한다(단계 Q17). 즉, 말하자면, 이 처리동작에 있어서, 이 CPU(2)는 EEPROM제어회로(7)로부터 EEPROM(8)의 사용자데이터영역(83)의 어드레스 및 ECC데이터영역(84)의 어드레스 둘 다를 출력하며(단계 Q12); 또한, 기록동작을 실행하도록 기록세트신호를 EEPROM(8)으로 출력한다(단계 Q13). 이 기록동작이 달성되는 경우(단계 Q14), 이 CPU(2)는, 기록동작을 종료하도록 기록리셋신호를 출력한다(단계 Q15).
사용자데이터가 마지막어드레스가 되는 경우(단계 Q16), CPU(2)는 ECC데이터를 ECC데이터스택레지스터(72)로부터 EEPROM(8) 내에 제공되는 ECC데이터레지스터(82)로 전송한다. ECC데이터전송동작이 종료되는 경우(단계 Q18), CPU(2)는 EEPROM(8)의 ECC데이터영역(84)에 대해 기록동작을 실행하도록 기록세트신호를 출력한다(단계 Q19). 기록동작이 종료되는 경우(단계 Q20), CPU(2)는 기록리셋신호를 출력한다(단계 Q21). 상술한 처리동작은 사용자데이터가 ECC데이터영역(84)의 마지막어드레스가 될 때까지 수행되며(단계 Q22). 그 다음 처리동작이 달성된다.
도 19는 EEPROM(8)에서 제 4동작이 시행될 때의 다양한 데이터에 대한 타이밍도를 도시한다. 이 기록타이밍도에서 보여지는 바와 같이, 사용자데이터는 입력/출력포트(1)로부터 EEPROM(8) 내에 제공되는 사용자데이터레지스터(81)로 순차적으로 전송되며, 페이지어드레스 0, 1, 2,..., n,..., 마지막 어드레스의 순으로 4바이트페이지 단위로 전송된다. 그리고, 또한, 이들 전송된 데이터에 기초하여 생성된 ECC데이터는 이 EEPROM(8) 내에 제공되는 ECC데이터레지스터(82)로 순차적으로 전송된다. 사용자데이터가 기록펄스에 응답하여 이 EEPROM(8)의 사용자데이터영역(83)에 직접적으로 기록되는 동안, ECC데이터가 다른 방식으로 기록된다. 즉, ECC어드레스 '0'을 위해 첫 번째 생성된 ECC데이터는 기록되지 않는다(주로, 기록동작 (1) 및 (2)). 이는, 이들 ECC데이터가 ECC데이터생성에 있어서의 지연들에 의해 발생되는 디폴트값들이기 때문이다. 첫 번째 생성된 ECC데이터에 뒤따르는 ECC데이터는, 기록펄스들에 응답하여 기선택된 어들레스들에서 정의된 EEPROM(8)의 ECC데이터영역(84)에 기록된다.
제 4동작에 있어서, 만일, CPU(2)에 의한 ECC데이터의 생성이 다음 ECC데이터를 기록하는데 사용되는 어드레스가 증가될 때까지 수행될 수 없다면, 이 CPU(2)는 바로 디폴트값을 출력한다. 이 경우에 있어서, EEPROM제어회로(7)는, ECC데이터를 EEPROM(8) 내에 제공되는 ECC데이터영역(84)에 기록하는 것을 실행하지 않는다. 디폴트값으로서, 예를 들면, '1'의 모든 디짙(digit)들이 첫 번째 ECC데이터가 생성될 때까지 사용되며, 이어서, 바로앞의 ECC데이터가 직접적으로 디폴트값으로서 출력된다.
에러정정처리동작을 실행하도록 EEPROM(8)으로부터 데이터가 독출되는 경우, 대응하는 사용자데이터부분 및 대응하는 ECC데이터부분이 독출될 수 있도록 사용자데이터 및 ECC데이터 둘 다가 EEPROM(8)의 동일한 어드레스들에서 독출된다.
전술한 바와 같이, 바람직한 실시예들의 원칩마이크로컴퓨터에 따라, ECC데이터가 생성되는 경우의, ECC데이터생성처리동작은 외부소프트웨어를 실행하는 것에 의해 수행되지 않으며, 원칩마이크로컴퓨터 내에 내부적으로 제공되는 소프트웨어를 실행하는 것에 의해 수행된다. 그 결과, ECC데이터는 외부화일로부터 원칩마이크로컴퓨터로 기록되는 것을 요구하지 않으며, 외부적으로 기록된 데이터의 전체 양이 감소된다. 결과적으로, 기록데이터가 전송되는 동안에 발생되는 에러들을 줄일 수 있으며, 이들 기록데이터의 신뢰도가 증가될 수 있다.
더욱이, EEPROM에 외부적으로 기록되는 데이터의 전체 양이 감소되기 때문에, 데이터기록시간이 단축될 수 있으며, 원칩마이크로컴퓨터의 생산성도 개선될 수 있다.
또한, 종래의 원칩마이크로컴퓨터의 경우와 비교하여, 실질적으로 외부에 설치되는 메모리들, ECC데이터를 제외한 데이터를 EEPROM에 기록하도록 채용된 외부장치가 감소된다. 그 결과, 이 외부장치를 위한 전체비용이 감소될 수 있다.
도면들을 참조하여 본 발명의 다양한 실시예들이 설명되었지만, 본 발명은 이들 실시예들에 의해 제한되는 것은 아니며, 본 발명의 기술적인 범위 및 사상으로부터 벗어나지 않으면서 변형, 변경 및 대신될 수 있다. 예를 들면, 본 발명의 아이디어는 원칩마이크로컴퓨터에 제한되지 않으며, EEPROM들을 채용한 다른 컴퓨터들에 적용될 수도 있으며, 프로그램을 외부적으로 저장할 수도 있다.
앞에서 상세하게 기술한 바와 같이, 본 발명에 따른 원칩마이크로컴퓨터은, ECC데이터와 함께 부가되는 컴퓨터데이터를 만드는 컴퓨터프로그램이 EEPROM 내에 저장되는 한편, 에러정정은 이 EEPROM으로부터 컴퓨터프로그램이 독출될 때 수행된다. 그 결과로, ECC데이터가 원칩마이크로컴퓨터의 외부에서 생성되는 경우의 사용자작업부하와 비교하여, 사용자에게 주어지는 작업부하가 크게 감소될 수 있다.
더욱이, ECC데이터를 생성하도록, 생성된 ECC데이터를 임시적으로 저장하기 위한 외부메모리가 더 이상 필요치 않기 때문에, 전체시스템비용이 낮아질 수 있다.
추가하여, 사용자데이터 및 ECC데이터가 동시에 EEPROM에 기록되기 때문에, ECC데이터가 외부메모리로부터 EEPROM에 기록되는 경우의 기록시간과 비교하여, EEPROM에 대한 데이터기록시간이 감소될 수 있다.
본 발명의 원칩마이크로컴퓨터는, ECC데이터를 생성하기 위해 오직 펌ROM이 새롭게 추가될 뿐이라는 점에서, 논리회로로 구성되는 ECC데이터발생회로에 의해 ECC데이터가 생성되는 종래의 원칩마이크로와 차이가 있다. 그 결과로, 원칩마이크로컴퓨터의 전체 칩의 크기가 회로스케일을 크게 증가하는 것 없이 증가될 필요가 없다. 또한, 본 발명에 따른, ECC데이터생성을 위한 처리동작은 ECC데이터생성처리동작을 실행하는데 사용되는 펌ROM이 통상의 컴퓨터프로그램이 실행되는 동안에는 동작되지 않는 까닭으로, 오직 컴퓨터프로그램이 EEPROM 내에 저장되는 동안에만 실행된다. 더욱이, 컴퓨터프로그램이 실행되는 경우에는, 논리회로들로 구성되는 에러정정회로를 이용하여 에러검출/정정처리동작들이 수행된다. 그 결과, 통상의 컴퓨터프로그램처리속도가 저하되지 않는다.
또한, 통상의 경우, 데이터가 EEPROM에 기록되는 경우에는, RAM에서 요구되는 것과 비교하여, 데이터기록시간이 필수적으로 수백 내지 수천이 된다. 이와 대조적으로, 본 발명에 따르면, 외부장치로부터 수신되는 사용자데이터가 복수의 바이트들 단위로 서로 연계된 후, 연계된 데이터는 바로 EEPROM에 기록된다. 또한, 복수의 바이트 단위로 연계된 사용자데이터는 ECC데이터와 연계된 후, 이 결과와 데이터가 바로 EEPROM에 기록된다. 결과적으로, 사용자데이터가 고속으로 수신될 수 있으며, 또한, ECC데이터가 병렬방식으로 기록시간을 실현하면서 연산될 수 있다.
그러므로, 본 발명이 상기 실시예들에 의해 제한되지 않으며, 본 발명의 범위 및 사상으로부터 벗어나지 않으면서 변경 및 변형될 수 있음은 분명하다.
마지막으로, 본원은 서기 1998년 4월 9일자로 출원된 일본국특허출원번호 평10-097287호를 우선권주장한다.
Claims (12)
- 마이크로컴퓨터에 있어서,외부적으로 공급된 사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 임시적으로 저장하기 위한 전기적 소거가 가능한 메모리;프로그램을 사전에 저장하기 위한 프로그램저장메모리; 및외부적으로 공급되는 사용자데이터에 기초하여 ECC데이터를 발생하도록 상기 프로그램저장메모리로부터 상기 프로그램을 독출하며 상기 외부적으로 공급된 사용자데이터에 대응하는 상기 생성된 ECC데이터를 이용하여 상기 외부적으로 공급된 사용자데이터에 담긴 에러들을 순차적으로 정정하기 위한 CPU;를 구비하는 마이크로컴퓨터.
- 제 1항에 있어서,상기 외부적으로 공급된 사용자데이터가 1비트에러를 포함하는 경우, 상기 CPU는 상기 전기적으로 소거가 가능한 메모리로부터 독출되는 생성된 ECC데이터에 기초하여 상기 1비트에러를 정정하며,상기 외부적으로 공급된 사용자데이터가 2비트 이상의 에러들을 포함하는 경우, 상기 CPU는 비정상환경임을 표시하는 마이크로컴퓨터.
- 제 1항에 있어서,상기 전기적으로 소거가 가능한 메모리는 플레쉬메모리인 마이크로컴퓨터.
- 원칩마이크로컴퓨터에 있어서,외부적으로 공급되는 사용자데이터를 자신의 사용자데이터저장영역에 임시적으로 저장하며, 상기 사용자데이터에 대응하는 ECC데이터를 자신의 ECC데이터저장영역에 임시적으로 저장하기 위한 EEPROM;프로그램을 사전에 저장하기 위한 ROM; 및상기 외부적으로 공급된 사용자데이터에 기초하여 ECC데이터를 생성하도록 상기 ROM으로부터 상기 프로그램을 독출하며, 상기 생성된 ECC데이터를 이용하여 상기 외부적으로 공급된 사용자데이터에 담긴 에러들을 순차적으로 정정하기 위한 CPU;를 구비하는 원칩마이크로컴퓨터.
- 제 4항에 있어서,상기 CPU는,기선택된 양의 상기 사용자데이터가 외부데이터소스로부터 들어오는 동안, 상기 기선택된 양의 사용자데이터로부터 순차적으로 ECC데이터를 생성하며;사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역과 상기 EEPROM의 ECC데이터저장영역의 동일한 어드레스들에 기록하며;상기 에러정정을 순차적으로 수행하도록, 상기 사용자데이터저장영역 및 상기 ECC데이터저장영역의 동일한 주소들로부터 사용자데이터 및 ECC데이터 둘 다를 독출하는 원칩마이크로컴퓨터.
- 제 4항에 있어서,상기 CPU는,상기 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 하나의 처리주기가 종료될 때까지 순차적으로 생성하며;상기 사용자데이터 및 하나의 처리주기가 종료된 후에 생성된 ECC데이터를 상기 EEPROM의 사용자데이터저장영역 및 상기 사용자데이터저장영역의 어드레스로부터 1만큼 감소된 어드레스를 갖는 상기 EEPROM의 ECC데이터저장영역에 기록하며;상기 에러정정을 순차적으로 수행하도록, EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터 둘 다를 독출하는 원칩마이크로컴퓨터.
- 제 4항에 있어서,상기 CPU는,기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 하나의 처리주기가 종료될 때까지 생성하며;상기 사용자데이터 및 하나의 처리주기가 종료된 후에 생성된 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 ECC데이터저장영역의 동일한 어드레스에 기록하며;상기 에러정정을 순차적으로 수행하도록, 상기 EEPROM의 사용자데이터영역에 저장된 사용자데이터 및 상기 사용자데이터저장영역의 어드레스로부터 1만큼 증가된 어드레스를 갖는 상기 EEPROM의 ECC데이터저장영역에 저장된 ECC데이터를 독출하는 원칩마이크로컴퓨터.
- 제 4항에 있어서,상기 CPU는,기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 들어오는 동안, 상기 기선택된 양의 사용자데이터로부터 ECC데이터를 생성하며;다음 사용자데이터가 들어올 때까지 상기 ECC데이터의 생성이 이루어지지 않는 경우에는, 유효하지 않은 데이터를 출력하며;상기 사용자데이터 및 상기 사용자데이터에 대응하는 유효한 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 상기 EEPROM의 ECC데이터저장영역의 동일한 주소들에 기록하며,에러정정을 실행하도록, EEPROM의 사용자데이터/ECC데이터저장영역의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터를 독출하는 원칩마이크로컴퓨터.
- 원칩마이크로컴퓨터에 있어서,사용자데이터 및 상기 사용자데이터에 대응하는 ECC데이터를 각각 사용자데이터저장영역 및 ECC데이터저장영역에 임시적으로 저장하기 위한 EEPROM;사용자데이터에 기초하여 ECC데이터를 발생하는 데에 사용되는 프로그램을 사전에 저장하기 위한 저장수단;상기 사용자데이터 및 상기 ECC데이터를 상기 EEPROM에 기록하는 동작을 제어하기 위한 기록제어수단; 및상기 프로그램에 따라 EEPROM에 저장된 사용자데이터로부터 ECC데이터를 생성하며, 상기 생성된 ECC데이터 및 원래의 사용자데이터를 상기 기록제어수단의 제어 하에 상기 EEPROM의 ECC데이터저장영역 및 상기 EEPROM의 사용자데이터저장영역에 저장하기 위한 CPU를 구비하며,상기 CPU는, 상기 사용자데이터저장영역에 저장된 사용자데이터 및 상기 ECC데이터저장영역에 저장된 ECC데이터를 독출하며, 상기 독출된 사용자데이터 및 상기 독출된 ECC데이터에 기초하여 상기 사용자데이터에 담긴 에러를 정정하는 원칩마이크로컴퓨터.
- 제 9항에 있어서,상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 순차적으로 저장되는 내부레지스터를 구비하며;상기 EEPROM은 상기 기선택된 양의 사용자데이터가 전송되는 사용자데이터레지스터 및 ECC데이터레지스터를 더 구비하며;상기 CPU는, 상기 내부레지스터에 저장된 기선택된 양의 사용자데이터로부터 ECC데이터를 생성하며, 상기 생성된 ECC데이터를 상기 EEPROM에 구비된 상기 ECC데이터레지스터로 전송하며, 상기 사용자데이터레지스터의 사용자데이터 및 상기 ECC데이터레지스터의 ECC데이터를 EEPROM의 사용자데이터저장영역 및 EEPROM의 ECC데이터저장영역의 동일한 주소들에 기록하며, 상기 EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터를 독출하여 에러정정을 수행하는 원칩마이크로컴퓨터.
- 제 9항에 있어서,상기 제어수단은 기선택된 양의 사용자데이터가 외부소스로부터 저장되는 사용자데이터스택레지스터 및 ECC데이터스택레지스터를 더 구비하며;상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 내부레지스터를 더 구비하며;첫 번째 처리주기에 있어서, 상기 CPU는, 제 1어드레스에 저장된 사용자데이터를 상기 기록제어수단에 구비된 상기 사용자데이터레지스터로 전송하며, 상기 사용자데이터레지스터로 전송되는 사용자데이터를 상기 EEPROM에 구비된 사용자데이터저장영역에 저장하며;다음 처리주기 및 계속되는 처리주기들에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 사용자데이터를 상기 EEPROM에 구비된 상기 사용자데이터스택레지스터로 전송하며 또한 ECC데이터를 ECC데이터레지스터로 전송하며; 상기 EEPROM의 ECC데이터저장영역에 대해 1만큼 기록어드레스를 감소시키며; 상기 사용자데이터레지스터에 저장된 사용자데이터 및 상기 ECC데이터레지스터에 저장된 ECC데이터를 각각 상기 EEPROM의 사용자데이터저장영역 및 ECC데이터저장영역에 기록하며; CPU 자신의 상기 정의된 처리동작을 반복하여 실행하며;마지막 처리주기에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 생성된 ECC데이터를 상기 EEPROM에 구비된 ECC데이터레지스터로 전송하며; 상기 EEPROM의 ECC데이터저장영역에 대해 1만큼 기록 어드레스를 감소시키며; 상기 EEPROM의 상기 ECC데이터저정영역에 저장된 ECC데이터를 기록하며;상기 CPU는, EEPROM의 동일한 주소들에 저장된 사용자데이터 및 ECC데이터 둘 다를 독출하여 순차적으로 에러정정을 실행하는 원칩마이크로컴퓨터.
- 제 9항에 있어서,상기 기록제어수단은 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 사용자데이터스택레지스터 및 ECC데이터스택레지스터를 더 구비하며;상기 CPU는 기선택된 양의 사용자데이터가 외부데이터소스로부터 저장되는 내부레지스터를 더 구비하며;첫 번째 처리주기에 있어서, 상기 CPU는 제 1어드레스에 저장된 사용자데이터를 상기 기록제어수단에 구비된 상기 사용자데이터레지스터로 전송하며, 상기 사용자데이터레지스터로 전송된 사용자데이터를 상기 EEPROM에 구비된 사용자데이터저장영역에 저장하며;다음 처리주기 및 계속되는 처리주기들에 있어서, 상기 CPU는, 바로 앞의 처리주기에서 저장된 기설정된 양의 사용자데이터로부터 ECC데이터를 생성하며; 상기 생성된 ECC데이터를 상기 기록제어수단에 구비된 상기 ECC데이터스택레지스터로 전송하며; 생성된 ECC데이터를 상기 EEPROM에 구비된 ECC데이터레지스터로 전송하며; 상기 EEPROM의 상기 ECC데이터저장영역에 저장된 ECC데이터 및 상기 독출된 사용자데이터의 어드레스로부터 1만큼 감소된 어드레스에 저장된 ECC데이터 둘 다를 기록하여 에러정정을 순차적으로 실행하는 원칩마이크로컴퓨터.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-097287 | 1998-04-09 | ||
JP09728798A JP3230485B2 (ja) | 1998-04-09 | 1998-04-09 | 1チップマイクロコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990083088A true KR19990083088A (ko) | 1999-11-25 |
KR100323236B1 KR100323236B1 (ko) | 2002-02-19 |
Family
ID=14188303
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990012535A KR100323236B1 (ko) | 1998-04-09 | 1999-04-09 | Ecc데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터 |
Country Status (4)
Country | Link |
---|---|
US (1) | US6604214B1 (ko) |
JP (1) | JP3230485B2 (ko) |
KR (1) | KR100323236B1 (ko) |
DE (1) | DE19916120A1 (ko) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6941505B2 (en) | 2000-09-12 | 2005-09-06 | Hitachi, Ltd. | Data processing system and data processing method |
US7380131B1 (en) | 2001-01-19 | 2008-05-27 | Xilinx, Inc. | Copy protection without non-volatile memory |
US7191339B1 (en) * | 2001-09-10 | 2007-03-13 | Xilinx, Inc. | System and method for using a PLD identification code |
KR100645058B1 (ko) * | 2004-11-03 | 2006-11-10 | 삼성전자주식회사 | 데이터 신뢰성을 향상시킬 수 있는 메모리 관리 기법 |
US7464241B2 (en) * | 2004-11-22 | 2008-12-09 | Intel Corporation | Memory transaction burst operation and memory components supporting temporally multiplexed error correction coding |
US20060218467A1 (en) * | 2005-03-24 | 2006-09-28 | Sibigtroth James M | Memory having a portion that can be switched between use as data and use as error correction code (ECC) |
US7716497B1 (en) | 2005-06-14 | 2010-05-11 | Xilinx, Inc. | Bitstream protection without key storage |
TWI385666B (zh) * | 2007-05-25 | 2013-02-11 | Realtek Semiconductor Corp | 適用於快閃記憶體之資料結構、及其資料寫入方法及資料讀取方法 |
US8924819B2 (en) * | 2009-01-23 | 2014-12-30 | Macronix International Co., Ltd. | Memory device and operation method thereof |
TWI404067B (zh) * | 2009-02-27 | 2013-08-01 | Macronix Int Co Ltd | 記憶體裝置及其操作方法 |
KR101139187B1 (ko) * | 2009-12-28 | 2012-04-26 | (주)인디링스 | 버퍼 없이 에러를 검출하고 정정하는 컨트롤러 및 그 컨트롤러의 동작 방법 |
US8427193B1 (en) | 2010-12-07 | 2013-04-23 | Xilinx, Inc. | Intellectual property core protection for integrated circuits |
US8418006B1 (en) | 2010-12-07 | 2013-04-09 | Xilinx, Inc. | Protecting a design for an integrated circuit using a unique identifier |
US8386990B1 (en) | 2010-12-07 | 2013-02-26 | Xilinx, Inc. | Unique identifier derived from an intrinsic characteristic of an integrated circuit |
US9684559B1 (en) * | 2014-04-25 | 2017-06-20 | Altera Corporation | Methods and apparatus for storing error correction information on a memory controller circuit |
KR20170143084A (ko) | 2016-06-17 | 2017-12-29 | 에스케이하이닉스 주식회사 | 반도체장치 및 반도체시스템 |
TWI703501B (zh) * | 2018-08-23 | 2020-09-01 | 慧榮科技股份有限公司 | 具有分散式信箱架構的多處理器系統及其溝通方法 |
KR20200092036A (ko) * | 2019-01-24 | 2020-08-03 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01201736A (ja) | 1988-02-08 | 1989-08-14 | Mitsubishi Electric Corp | マイクロコンピュータ |
DE3833300A1 (de) | 1988-09-30 | 1990-04-05 | Claude Marchand | Chromatographiesaeulen-abschlusseinrichtung |
US5293388A (en) * | 1990-11-13 | 1994-03-08 | Hewlett-Packard Company | Compression/decompress with ECC data flow architecture |
JPH0729395A (ja) | 1993-06-25 | 1995-01-31 | Mitsubishi Electric Corp | Eeprom装置 |
JPH1089217A (ja) * | 1996-09-17 | 1998-04-07 | Honda Motor Co Ltd | 車両用盗難防止装置 |
US6026014A (en) * | 1996-12-20 | 2000-02-15 | Hitachi, Ltd. | Nonvolatile semiconductor memory and read method |
TW407234B (en) * | 1997-03-31 | 2000-10-01 | Hitachi Ltd | Semiconductor memory device, non-volatile semiconductor memory device and data reading method thereof |
US6145069A (en) * | 1999-01-29 | 2000-11-07 | Interactive Silicon, Inc. | Parallel decompression and compression system and method for improving storage density and access speed for non-volatile memory and embedded memory devices |
-
1998
- 1998-04-09 JP JP09728798A patent/JP3230485B2/ja not_active Expired - Fee Related
-
1999
- 1999-04-06 US US09/286,973 patent/US6604214B1/en not_active Expired - Lifetime
- 1999-04-09 KR KR1019990012535A patent/KR100323236B1/ko not_active IP Right Cessation
- 1999-04-09 DE DE19916120A patent/DE19916120A1/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
US6604214B1 (en) | 2003-08-05 |
DE19916120A1 (de) | 1999-10-28 |
JPH11296392A (ja) | 1999-10-29 |
KR100323236B1 (ko) | 2002-02-19 |
JP3230485B2 (ja) | 2001-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100323236B1 (ko) | Ecc데이터를 내부적으로 생성할 수 있는 원칩마이크로컴퓨터 | |
JP4063615B2 (ja) | 不揮発性メモリおよびその書き込み処理方法 | |
US20020032891A1 (en) | Data processing system and data processing method | |
JPS5855528B2 (ja) | アドレス発生装置 | |
US4368532A (en) | Memory checking method | |
JP2008217799A (ja) | 処理システムおよび情報をram構体で読取りおよび復元する方法 | |
US5048019A (en) | Method of testing a read-only memory and device for performing the method | |
JPH03252993A (ja) | E↑2promの情報書込み装置 | |
EP0803813B1 (en) | Data backup apparatus of a semiconductor memory | |
US5126972A (en) | Arrangement and method of ascertaining memory addresses which have been accessed during program execution | |
JP3544951B2 (ja) | 1チップマイクロコンピュータ | |
JPH03142800A (ja) | 電気的消去・書き込み可能なプログラマブル・リード・オンリー・メモリ | |
US11650738B2 (en) | Integrity check of a memory | |
JP3777047B2 (ja) | フラッシュメモリ装置の消去方法 | |
JPS6142304B2 (ko) | ||
JP3177975B2 (ja) | 1チップマイクロコンピュータ | |
US6507884B1 (en) | Microcomputer with multiple memories for storing data | |
JPS61262945A (ja) | 記憶装置 | |
JPS6141422B2 (ko) | ||
SU1088073A2 (ru) | Запоминающее устройство с обнаружением ошибок | |
JPH04233052A (ja) | 二重化メモリ装置 | |
JP3711691B2 (ja) | マイクロコントローラ | |
JPS63307543A (ja) | デバッグ装置 | |
JPS617947A (ja) | 制御記憶装置 | |
JPS6125259A (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: 20060110 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |