KR20000023322A - A method and system for updating memory in a processing system - Google Patents

A method and system for updating memory in a processing system Download PDF

Info

Publication number
KR20000023322A
KR20000023322A KR1019990040548A KR19990040548A KR20000023322A KR 20000023322 A KR20000023322 A KR 20000023322A KR 1019990040548 A KR1019990040548 A KR 1019990040548A KR 19990040548 A KR19990040548 A KR 19990040548A KR 20000023322 A KR20000023322 A KR 20000023322A
Authority
KR
South Korea
Prior art keywords
eprom
memory
nonvolatile
devices
memory update
Prior art date
Application number
KR1019990040548A
Other languages
Korean (ko)
Inventor
엘루와오니엠체마
해밀턴릭알렌2세
메타체탄
파텔모린이시와바이
Original Assignee
포만 제프리 엘
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포만 제프리 엘, 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 포만 제프리 엘
Publication of KR20000023322A publication Critical patent/KR20000023322A/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/102External programming circuits, e.g. EPROM programmers; In-circuit programming or reprogramming; EPROM emulators
    • G11C16/105Circuits or methods for updating contents of nonvolatile memory, especially with 'security' features to ensure reliable replacement, i.e. preventing that old data is lost before new data is reliably written
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

PURPOSE: A system for managing memory update is provided for the system to operate at a first or a second nonvolatile component, which contain the identical code block. CONSTITUTION: A system adoptes a fail safe memory update method using two non-volatile components such as EPROM A and B. Two components contain the identical code block body. If a user updates the microcode in a firmware by loading from a diskette, the memory update is performed only for one of EPROMs, such as EPROM B. When the EPROM B is damaged, no promotion is possible to the system. If a test for the EPROM B is finished, a promotion process starts by the user and the content of the EPROM B is transfered safely to the EPROM A.

Description

프로세싱 시스템에서의 메모리 갱신 관리 방법 및 시스템{A METHOD AND SYSTEM FOR UPDATING MEMORY IN A PROCESSING SYSTEM}A METHOD AND SYSTEM FOR UPDATING MEMORY IN A PROCESSING SYSTEM}

본 발명은 프로세싱 시스템에서의 비휘발성 소자에 관한 것으로, 보다 상세하게는, 비휘발성 소자를 갱신하는 것에 관한 것이다.The present invention relates to nonvolatile devices in a processing system, and more particularly, to updating nonvolatile devices.

오늘날의 컴퓨터 시스템에 있어서 가장 중요한 것은 신뢰성, 적용성, 서비스가용성이다. 이들 특성을 최적화하기 위해서는, 고객 환경에서 발생된 결점이든 생산 제품을 선적한 후 개발 부서에서 발견한 잠재적인 결함이든 그러한 문제점은 현장에서 올바르게 수정될 수 있어야 한다. 문제점을 올바르게 수정하는 한 가지 중요한 요소는 펌웨어 갱신으로서, 이 프로세스를 통해 고객이나 숙련된 현장 전문가는 선적 된, 설치된 컴퓨터의 마이크로코드(microcode)를 갱신할 수 있다. 마이크로코드 갱신은 디스켓이나 다른 휴대용 매체로부터 번역 코드(compiled code)를 획득하여 미래의 실행을 위해 플래시(flash) EPROM에 로딩시킴으로써 전술한 바와 같은 공지된 문제점을 제거하거나 새로운 기능성을 그 시스템에 부여해 줄 수 있다. 그러므로, 그와 같은 갱신은 대체로 운용 시스템이나 표준 사용자 인터페이스(standard user interface)에서 액세스할 수 없는, 기계내에 내장된 코드에 대한 소프트웨어 업그레이드를 수행하는 방법을 제공한다.For today's computer systems, the most important is reliability, applicability, and service availability. To optimize these characteristics, such problems, whether in the customer's environment or potential defects discovered by the development department after shipping the product, must be corrected on site. One important factor in correcting the problem is firmware update, which allows customers or experienced field experts to update the microcode of the shipped computer. Microcode update removes the known problems as described above or adds new functionality to the system by acquiring compiled code from diskette or other portable media and loading it into a flash EPROM for future execution. Can be. Therefore, such an update provides a way to perform a software upgrade to code embedded in a machine that is generally inaccessible from the operating system or a standard user interface.

그러나, 메모리 갱신 프로세스와 관련된 문제점은 강구된 모든 예방책에도 불구하고 메모리 EPROM의 손상으로 인해 시스템 플래너를 포함하는 필드 대체 유닛(field replacement unit : FRU)의 대체가 요구될 수도 있다는 위험이 존재한다는 것이다.However, a problem with the memory update process is that, despite all the precautions taken, there is a risk that replacement of a field replacement unit (FRU) containing a system planner may be required due to corruption of the memory EPROM.

상세히 설명하면, 메모리 EPROM은 일반적으로 두 부분, 즉 복구부(recovery portion)와 합성부(composite portion)로 분할된다. 복구부는 합성 블럭을 갱신하는데 필요한 모든 코드를 포함하고, 그에 따라 대부분의 기능성이 합성 블럭에 존재하므로, 많은 갱신이 있더라도 복구부의 내용에는 결코 영향을 미치지 않는다. 그러나, 복구 EPROM을 갱신하기 위한 능력이 있으며, 이러한 기능성은 종종 요구된다. 이로 인해 문제점이 야기된다. EPROM의 복구부를 갱신하는 동안에 정전이 발생하면, 구성 부품을 교체하지 않고서는 어떤 기계도 정정으로 인한 손상을 올바르게 수정하지 못했었다. 복구 EPROM을 새로운 코드와 기존 코드로 부분적으로 프로그래밍하는 것이 가능하므로 어느 코드도 실행시킬 수 없다는 것을 유감스럽게도 고객이 알게 되었다. 이 경우에, 통상의 방법으로는 더 이상 갱신될 수 없으므로 시스템 플래너를 교체하든지, 아니면 EPROM을 포함하는 FRU를 교체하는 것 외에는 어떠한 방법도 없다.In detail, the memory EPROM is generally divided into two parts, a recovery portion and a composite portion. The recovery section contains all the code necessary to update the composite block, and thus most of the functionality is present in the composite block, so even if there are many updates, the contents of the recovery section are never affected. However, there is the ability to update a recovery EPROM and such functionality is often required. This causes a problem. If a power outage occurred while updating the recovery section of the EPROM, no machine could correct the damage due to the correction without replacing the component. The customer has unfortunately found that it is not possible to execute any code because the recovery EPROM can be partially programmed with new and existing code. In this case, there is no way other than replacing the system planner or replacing the FRU containing the EPROM as it can no longer be updated by conventional methods.

이러한 문제점을 제거하기 위한 많은 방법 및 제품이 고안되어 왔다. 인텔사(Intel Corporation)가 개발한 제품 중 하나는 부팅 블럭(boot block) 소자로 불리는 EPROM 혹은 플래시 비휘발성 소자이다. 부팅 블럭으로 불리는 하나의 작은 블럭을 제외한 모든 블럭이 재프로그래밍될 수 있도록 상기 소자는 몇 개의 블럭으로 분할된다. 여기서, 이 개념은 변경 가능한 분할부(partition)를 재프로그램하는 데 요구되는 최소의 마이크로코드만이 부팅 블럭에 저장되도록 마이크로코드를 유사하게 분할하기 위한 것이었다. 이하에서 이러한 마이크로코드는 임계 코드(critical code)로 지칭될 것이다. 그에 따라, 변경 가능한 분할부를 재프로그래밍하는 동안에 에러가 발생된 경우, 부팅 블럭 분할부는 변경되지 않고 남아 있게 되어 손상된 분할부를 다시 재프로그래밍하는 데 사용될 수 있다. 그러나, 이러한 소자는 마이크로코드를 모두 변경시킬 수 없음으로 인해 또 다른 문제를 야기시켰다. 부팅 블럭 분할부 내의 마이크로코드가 컴퓨터에 의해 변경될 수 없을 것이므로, 이러한 마이크로코드를 변경하는 것은 최소한 판독 전용 메모리에 저장된 마이크로코드를 변경하는 것 만큼 어려울 것이다.Many methods and products have been devised to eliminate this problem. One product developed by Intel Corporation is an EPROM or flash nonvolatile device called a boot block device. The device is divided into several blocks so that all blocks except one small block, called the boot block, can be reprogrammed. Here, the idea was to similarly split the microcode so that only the minimum microcode required to reprogram a changeable partition is stored in the boot block. Such microcode will hereinafter be referred to as critical code. Thus, if an error occurs while reprogramming the changeable partition, the boot block partition remains unchanged and can be used to reprogram the damaged partition. However, these devices have caused another problem because they cannot change all of the microcode. Since the microcode in the boot block partition cannot be changed by the computer, changing such microcode will be at least as difficult as changing the microcode stored in read-only memory.

다른 판매업자도 비휘발성 소자를 분할하여 상기 문제점을 해결하려고 시도했었다. 예를 들어, 향상된 마이크로 소자는 동일 크기를 갖는 몇 개의 분할부를 포함하는 플래시 메모리를 제공한다. 이러한 소자는 임계 코드를 저장하는 데 사용되는 블럭들이 실제로 그들 스스로 기록 보호될 수 있는 메모리 블럭이라는 점에서 인텔사의 소자와는 다르다. 텍사스 인스트루먼트(Texas Instruments)와 미쯔비시(Mitsubishi)와 같은 다른 판매업자도 동일한 크기를 갖는 몇 개의 블럭으로 분할되는 플래시 비휘발성 소자를 제공한다.Other vendors have also attempted to solve the problem by dividing the nonvolatile devices. For example, an improved microdevice provides a flash memory that includes several partitions of equal size. These devices differ from Intel's in that the blocks used to store the threshold code are actually memory blocks that can be write protected on their own. Other vendors, such as Texas Instruments and Mitsubishi, also offer flash nonvolatile devices that are divided into several blocks of the same size.

전술한 모든 문제점을 해결할 수 있는 소자는 지금까지 없었다. 특히, 임계 코드가 보존되도록 하면서도 모든 코드가 호스트 컴퓨터에 의해 갱신될 수 있는 방식으로 마이크로코드를 저장할 소자는 없다. 그러한 소자는 코드 변경 동안에 발생되는 결함을 호스트 컴퓨터가 허용할 수 있도록 하는 메카니즘을 제공하는 동시에 호스트 컴퓨터에게 그 자신의 마이크로코드를 갱신하는 유연성(flexibility)을 제공할 것이다.There has been no device that can solve all the above problems. In particular, there is no device to store the microcode in such a way that all the code can be updated by the host computer while allowing the threshold code to be preserved. Such a device would provide the host computer with the flexibility to update its own microcode while providing a mechanism that allows the host computer to tolerate defects that occur during code changes.

이와 같은 문제점을 해결하기 위한 한 가지 시도는 비휘발성 페이징(paging) 메카니즘을 EPROM 모듈에 내장하는 것이다. EPROM 소자를 두 개의 블럭으로 분할하고 페이징을 통하여 블럭의 위치가 교환되도록 함으로써, 두 블럭 중 하나가 부팅 블럭으로 사용될 수 있다. 이렇게 함으로써, 재프로그래밍하는 동안에 발생하는 결함으로부터 시스템이 복구될 수 있도록 하는 동시에, 소자를 완전히 재프로그래밍할 수 있다.One attempt to solve this problem is to embed a nonvolatile paging mechanism in the EPROM module. By dividing the EPROM device into two blocks and having the positions of the blocks exchanged through paging, one of the two blocks can be used as the boot block. This allows the system to recover from defects that occur during reprogramming, while at the same time allowing complete reprogramming of the device.

1. 현재 부팅 블럭으로 사용되지 않는 블럭을 새로운 임계 코드로 재프로그래밍함.Reprogram a block that is not currently used as the boot block with a new threshold code.

2. 페이징 메카니즘을 사용하여 두 블럭의 위치를 교체(swap)함.2. Swap two blocks using a paging mechanism.

3. 이 시점에서 새로운 임계 코드를 포함하는 블럭은 새로운 부팅 블럭이 되고 다른 블럭은 재프로그래밍될 수 있음.3. At this point, the block containing the new threshold code becomes the new boot block and other blocks can be reprogrammed.

전술한 프로세스에 걸쳐서, 유효 임계 코드는 항상 부팅 블럭에 위치하므로, 컴퓨터는 갱신 동안에 야기될 수 있는 에러를 복구할 수 있게 된다. 또한, 부팅 블럭에 위치하는 임계 코드의 일체성(integrity)을 보장하기 위하여, 임의의 블럭 교체가 이루어지기 전에 새로운 임계 코드에 대한 CRC 검사와 같은 프로세스를 통해 몇 가지 기본적인 에러 검사가 수행되어야 한다.Throughout the process described above, the valid threshold code is always located in the boot block, allowing the computer to recover from errors that may occur during the update. In addition, in order to ensure the integrity of the threshold code located in the boot block, some basic error checking must be performed through a process such as CRC checking for a new threshold code before any block replacement is made.

간단한 페이징 메카니즘을 사용하여 블럭을 교환할 수 있다. 페이징을 이용하여, 마이크로프로세서에서 제공되는 메모리 어드레스는 두 항목(2-entry) 페이지 테이블에서의 인덱스로서 사용될 것이다. 페이지 테이블에서 항목은 마이크로프로세서 어드레스의 주어진 범위 내에서 동작하는 메모리 블럭이 어떤 것인지를 지정한다.Blocks can be exchanged using a simple paging mechanism. Using paging, the memory address provided by the microprocessor will be used as an index in the two-entry page table. The entries in the page table specify which blocks of memory operate within a given range of microprocessor addresses.

페이지 테이블이 무효 상태로 남아 있으면, (새로운 또는 기존의) 임계 코드 는 요구한대로 액세스되지 않을 수 있다. 이는 시스템으로 하여금 전술한 바와 같은 비기능적(nonfunctional) 상태에 머물게 할 것이다. 이를 방지하기 위해, 몇 가지 결함 허용 한계가 페이징 기능에 포함되어야 한다. 여기서 사용된 방법은 두 페이지 (블럭)만을 제공하여 무효 페이지 테이블에 대한 가능성을 제거하는 것이다.If the page table remains invalid, the (new or existing) threshold code may not be accessed as required. This will keep the system in a nonfunctional state as described above. To prevent this, some fault tolerance must be included in the paging function. The method used here is to provide only two pages (blocks) to eliminate the possibility of invalid page tables.

이와 같은 매우 간단한 페이징 메카니즘은 한 비트만을 사용하여 구현될 수 있으며, 그 비트의 어느 극성으로도 유효 부팅 블럭이 액세스되도록 할 것이다. 보다 복잡한 메카니즘이 고안될 수 있지만 상기 원하는 기능을 얻는데에는 요구되지 않는다.This very simple paging mechanism can be implemented using only one bit, and will allow a valid boot block to be accessed with either polarity of that bit. More complex mechanisms can be devised but are not required to achieve the desired function.

제시한 목적에 대해서 효과적이더라도, 이러한 시스템은 페이징 방법과 메모리 포인터에 의존하여 시스템 일체성을 유지시키지만 시스템 내에 상당한 오버헤드를 부가시킨다. 추가적으로, 페이징 메카니즘이 고장난 경우, 이러한 시스템에는 코드가 비기능적 상태에 있게 되는 상황이 발생한다.Although effective for the purposes presented, these systems rely on paging methods and memory pointers to maintain system integrity but add significant overhead within the system. In addition, if the paging mechanism fails, such a system would have a situation where the code would be in a non-functional state.

따라서, 고장 안전의 플래시 메모리와 같은 비휘발성 소자를 갱신하는 시스템과 방법이 요구된다. 이러한 시스템은 구현이 용이하고 비용이 저렴하며 기존의 프로세싱 시스템에 적응할 수 있어야 한다. 본 발명은 그와 같은 요구를 상정한다.Accordingly, what is needed is a system and method for updating nonvolatile devices, such as fail-safe flash memories. These systems must be easy to implement, inexpensive, and adaptable to existing processing systems. The present invention assumes such a need.

본 발명은 프로세싱 시스템에서의 메모리 갱신을 관리하는 방법 및 시스템을 제공한다. 이 방법 및 시스템은 제 1 및 제 2 비휘발성 소자를 제공하는 것을 포함한다. 제 1 및 제 2 비휘발성 소자 각각은 실질적으로 동일한 코드 블럭을 포함한다. 이 방법 및 시스템은 메모리 갱신 프로세스가 제 1 및 제 2 비휘발성 소자 중 하나에서만 개시되도록 하는 것을 포함한다.The present invention provides a method and system for managing memory updates in a processing system. The method and system include providing first and second nonvolatile devices. Each of the first and second nonvolatile elements includes substantially the same code block. The method and system include causing the memory update process to be initiated only on one of the first and second nonvolatile devices.

전술한 고장 안전의 메모리 갱신 방법을 채택함으로써, 펌웨어에는 어떠한 손상의 가능성도 없어지게 되었다. 이제, 버그 상태나 새로운 기능성의 도입으로 인해 고객이 펌웨어를 갱신할 경우에, 시스템은 손상되지 않고 갱신 완료시 부팅될 수 있음이 확실하다. 통상적인 시스템은 그렇지 않았다. 플래너를 대체할 필요가 없어 고객의 만족도를 높이고 서비스 비용을 감소시키므로, 수리 비용이 상당히 감소된다. 정전시에도 시스템 손상 위험없이 메모리 용량을 전체 코드 몸체로 확장할 수 있으므로, 통상적인 시스템에 비해 커다란 이점을 제공하게 된다.By adopting the above-described fail-safe memory update method, there is no possibility of any damage to the firmware. Now, if a customer updates the firmware due to a bug condition or the introduction of new functionality, it is certain that the system can be booted upon completion of the update without damage. The conventional system did not. There is no need to replace the planner, which increases customer satisfaction and reduces service costs, which significantly reduces repair costs. In the event of a power outage, memory capacity can be extended to the entire code body without risking system damage, providing a significant advantage over conventional systems.

도 1은 본 발명에 따른 EPROM 갱신 프로세스의 흐름도,1 is a flow chart of an EPROM update process according to the present invention;

도 2는 본 발명에 따른 EPROM 프로모트 프로세스의 흐름도,2 is a flow chart of an EPROM promoter process in accordance with the present invention;

도 3은 본 발명에 따른 시스템 및 방법의 흐름도.3 is a flow diagram of a system and method in accordance with the present invention.

도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings

12 : 운영 시스템 14 : 엔지니어링 소프트웨어12: operating system 14: engineering software

16 : 서비스 프로세서 카드16: service processor card

본 발명은 프로세싱 시스템에 있어서 메모리 갱신에 대한 개선에 관한 것이다. 후속하는 기술 내용은 당업자가 본 발명을 만들고 사용할 수 있도록 제시되며, 본 특허 출원 및 그에 대한 요건과 관련하여 설명된다. 본 발명의 바람직한 실시예에 대한 다양한 변형은 당업자에게 쉽게 명확해질 것이며 본 명세서에서의 전반적인 원리는 다른 실시예에 적용될 수도 있다. 따라서, 본 발명은 도시한 실시예에 한정되는 것으로 해석되지 않아야 하고, 본 명세서에서 설명되는 원리 및 특징과 부합하도록 가장 광범위하게 해석되어야 한다.The present invention relates to improvements to memory updates in processing systems. The following description is presented to enable any person skilled in the art to make and use the invention, and is described in connection with the present patent application and requirements thereof. Various modifications to the preferred embodiment of the present invention will be readily apparent to those skilled in the art, and the overall principles herein may be applied to other embodiments. Accordingly, the present invention should not be construed as limited to the embodiments shown, but rather the broadest interpretation consistent with the principles and features described herein.

메모리 갱신 프로세스를 관리하는 본 발명에 따른 시스템 및 방법이 개시된다. 본 발명에 따른 시스템 및 방법은, 전술한 바와 같은 합성 및 복구 코드 블럭에 의존하지 않고, 복구 블럭의 손상 가능성을 제거하고 손상으로 인한 FRU 대체 가능성도 제거하는 고장 안전의 메모리 갱신 기법을 이용한다. 하기에서는 본 발명을 플래시 소자나 EPROM 소자와 관련지어 설명할 것이다. 그러나, 어떤 유형의 비휘발성 소자도 사용될 수 있으며 이는 본 발명의 사상과 범주에 속할 것임이 당업자에게는 쉽게 인식될 것이다.A system and method in accordance with the present invention for managing a memory update process are disclosed. The system and method according to the present invention utilizes a fail-safe memory update technique that does not rely on the synthesis and recovery code blocks as described above, which eliminates the possibility of corruption of the recovery block and also eliminates the possibility of FRU replacement due to the damage. In the following, the present invention will be described in connection with a flash device or an EPROM device. However, it will be readily appreciated by those skilled in the art that any type of nonvolatile device may be used and that it will fall within the spirit and scope of the present invention.

이 갱신 방법은 실질적으로 동일하며 제조 후 선적된 것과 같이 최초 상태로 존재하는 서비스 프로세서 카드 상의 2개의 EPROM을 사용하는 것에 의존한다. 두 측면은 EPROM A와 EPROM B로 지정될 것이다. 이들 EPROM 각각은 펌웨어가 기능하는 데 필요한 전체 코드 몸체를 포함한다. 갱신 프로세스 전체를 통해 일체성을 보장하기 위해서는 마이크로코드를 갱신할 때 소정의 기본 규칙이 뒤따르게 되는데, 이들 규칙은 고장 안전 방법에 대한 논리적 진행(progression)을 포함한다. 이제, 본 발명을 완전히 이해하기 위해, 후속하는 기술 내용과 함께 도 1 및 도 2를 참조하기로 한다.This update method is substantially the same and relies on using two EPROMs on the service processor card that are present in their original state as shipped after manufacture. Both sides will be designated EPROM A and EPROM B. Each of these EPROMs contains the complete code body needed for the firmware to function. To ensure integrity throughout the update process, certain basic rules are followed when updating microcode, which includes logical progression to the failsafe method. In order to fully understand the present invention, reference is now made to FIGS. 1 and 2 in conjunction with the following description.

도 1은 본 발명에 따른 메모리 갱신 프로세스의 흐름도를 도시하고 있다. 사용자가 사용자 시스템을 로딩하는 두 가지 펌웨어 프로그램 선택 사양을 갖도록, 사용자 자신은 서비스 프로세서(16)의 EPROM A(18) 또는 EPROM B(20)의 부팅을 중단시킬 수 있다. 운용 시스템을 통하여 코드를 디스켓으로부터 EPROM으로 로딩하는 특징을 통해 알 수 있는 EPROM의 일체성을 위협하는 메모리 갱신 프로세스는 EPROM B(20)에서만 실행된다. EPROM B(20)가 테스트되면, 프로모션 프로세스(18)가 사용자에 의해 개시되어 EPROM B(20)의 내용물을 도 2에 도시한 바와 같은 서비스 프로세서 카드(16)의 EPROM A(18)에 복제할 수 있다.1 shows a flowchart of a memory update process according to the present invention. The user himself may stop booting EPROM A 18 or EPROM B 20 of the service processor 16 so that the user has two firmware program options for loading the user system. The memory update process, which threatens the integrity of the EPROM as seen by the feature of loading code from the diskette into the EPROM through the operating system, is executed only in EPROM B 20. Once EPROM B 20 has been tested, promotion process 18 is initiated by the user to copy the contents of EPROM B 20 to EPROM A 18 of service processor card 16 as shown in FIG. Can be.

이러한 프로모션 프로세스를 달성하기 위하여, 현재의 부팅 세션은 EPROM B(20)에서 개시되어야 한다. 다시 말해, EPROM B(20)가 손상되면, 프로모션의 가능성은 제거된다. 본 발명이 EPROM B(20)에서 개시되는 플래시 갱신 프로세스와 관련하여 설명될 것이지만, EPROM A(18)가 갱신 프로세스를 개시하는 EPROM으로서 선택될 수 있음을 당업자는 쉽게 인식할 것이다. 중요한 점은 EPROM 중 하나만이 갱신되어 프로모션 프로세스 동안에 어떤 손상된 데이터도 전송되지 않도록 보장할 수 있다는 것이다. 게다가, 프로모트 동작이 개시되기 이전에 시스템이 완전히 부팅되어야 하기 때문에, 갱신이 시작되기 전에 소스 일체성이 확인된다.In order to achieve this promotion process, the current boot session must be initiated in EPROM B 20. In other words, if the EPROM B 20 is damaged, the possibility of promotion is eliminated. Although the present invention will be described with reference to the flash update process disclosed in EPROM B 20, those skilled in the art will readily appreciate that EPROM A 18 may be selected as the EPROM to initiate the update process. It is important to note that only one of the EPROMs can be updated to ensure that no corrupted data is transmitted during the promotion process. In addition, since the system must be fully booted prior to the commencement of the promotion operation, source integrity is verified before the update begins.

도 3은 본 발명에 따른 메모리 갱신 관리 방법의 활용을 도시하는 흐름도이다. 먼저, 단계(100)에서 사용자는 EPROM A와 EPROM B 중 어느 것을 선택할 것인가를 결정한다. 사용자가 EPROM A(18)를 선택한 것으로 가정하면, 단계(102)에서 시스템은 AIX 로그 인 프롬프트(log in prompt)를 사용하여 부팅될 것이다. 이어서, 단계(104)에서는 시스템이 메모리 갱신인지 아니면 메모리 프로모트인지를 결정한다. 시스템이 메모리 프로모트인 경우, 단계(106)에서 에러가 기록(log)되고, 단계(108)를 통하여 시스템은 A 측에서 재부팅된다. 한편, 시스템이 메모리 갱신인 경우에는, 단계(110)에서 메모리 갱신이 개시되고, 새로운 이미지가 EPROM B에 복제된다. 그 다음, 단계(112)를 통하여 시스템은 EPROM B에서 재부팅된다.3 is a flow chart showing the utilization of the memory update management method according to the present invention. First, in step 100 the user decides which of EPROM A and EPROM B to select. Assuming the user has selected EPROM A 18, in step 102 the system will boot using the AIX log in prompt. Subsequently, step 104 determines whether the system is a memory update or a memory promotion. If the system is a memory promotion, an error is logged at step 106 and through step 108 the system is rebooted on the A side. On the other hand, if the system is a memory update, the memory update is started in step 110, and the new image is copied to EPROM B. The system then reboots at EPROM B via step 112.

한편, 사용자가 EPROM B를 선택한 경우, 단계(106)에서 시스템은 AIX 로그 프롬프트로 부팅된다. 이어서, 단계(113)에서는 시스템이 프로모트인지 메모리 갱신인지를 결정한다. 시스템이 메모리 갱신인 경우, 단계(110, 112)가 반복된다. 시스템이 프로모트인 경우, 단계(114)에서 프로모트가 개시되어 메모리 B 이미지를 메모리 A에 복제한다. 그 다음, 단계(116)에서 시스템은 메모리 A에서 재부팅된다.On the other hand, if the user selects EPROM B, in step 106 the system boots to the AIX log prompt. Next, in step 113, it is determined whether the system is a promoter or a memory update. If the system is a memory update, steps 110 and 112 are repeated. If the system is a promoter, the promotion is initiated at step 114 to duplicate the memory B image to memory A. Next, in step 116, the system is rebooted in memory A.

이들 논리 규칙 설명에 의해 소정의 상태가 다음과 같이 의미된다는 것을 주목하자.Note that by these logic rule descriptions, a predetermined state is meant as follows.

EPROM A는 프로모션 프로세스에 의해서만 갱신되며 디스켓을 통해서는 갱신되지 않는다. 전원이 공급되지 않아 (규정에 따라, EPROM B 상에서의) 갱신 프로세스가 종료된 경우, 사용자는 갱신 실패로 인해 영향 받지 않은 EPROM A로 복귀할 수 있다. 이어서, EPROM A에서의 동작 상태로 기계를 부팅했을 때, 사용자는 상기 갱신을 무한 횟수 재시도할 수 있다. 어떤 복구 블럭도 파괴되지 않았으므로, FRU의 대체를 필요로하는 손상은 발생되지 않는다. 전원이 공급되지 않아 (규정에 따라, EPROM A 상에서의) 프로모션 프로세스가 종료된 경우, 사용자는 성공적인 부팅 완료(프로모션에 대한 기준을 참조바람)에 의해 유효 상태에 있는 것으로 알려져 있는 EPROM B로 복귀할 수 있다. 또한, 사용자는 EPROM B에서 시스템을 지속적으로 부팅할 수 있으며, 시스템 적용성의 손실을 전혀 받지 않는다.EPROM A is only updated by the promotion process and not via diskette. If the update process is terminated (in accordance with regulations, on EPROM B) due to lack of power, the user can return to EPROM A unaffected due to the update failure. Subsequently, when the machine is booted in the operating state in EPROM A, the user can retry the update an infinite number of times. Since no repair block has been destroyed, no damage is required that requires replacement of the FRU. If the promotion process is terminated due to no power (according to regulations, on EPROM A), the user may return to EPROM B, which is known to be valid by successful boot completion (see criteria for promotion). Can be. In addition, the user can continue to boot the system from EPROM B, without any loss of system applicability.

전술한 고장 안전 메모리 갱신 방법의 채택으로, 펌웨어에는 어떠한 손상 가능성도 없어지게 되었다. 이제, 버그 상태나 새로운 기능성의 도입으로 인해 고객이 펌웨어를 갱신할 경우에, 시스템은 손상되지 않고 갱신 완료시 부팅될 수 있음이 확실하다. 통상적인 시스템은 그렇지 않았다. 플래너를 교체할 필요가 없어 고객의 만족도를 높이고 서비스 비용을 감소시키므로, 수리 비용이 상당히 감소된다. 정전시에도 시스템 손상 위험없이 메모리 용량을 전체 코드 몸체로 확장할 수 있으므로, 통상적인 시스템에 비해 커다란 이점을 제공하게 된다.The adoption of the failsafe memory update method described above eliminates the possibility of any damage to the firmware. Now, if a customer updates the firmware due to a bug condition or the introduction of new functionality, it is certain that the system can be booted upon completion of the update without damage. The conventional system did not. Repair costs are significantly reduced, as there is no need to replace the planner, increasing customer satisfaction and reducing service costs. In the event of a power outage, memory capacity can be extended to the entire code body without risking system damage, providing a significant advantage over conventional systems.

본 발명을 도시한 실시예에 따라 기술하였지만, 실시예에 대해 변경이 가해질 수 있으며 그 변경은 본 발명의 사상과 범주에 속할 것임을 당업자는 쉽게 인식할 것이다. 따라서, 첨부한 특허 청구 범위의 사상 및 범주를 벗어남이 없이 많은 변형이 당업자에 의해 이루어질 수 있다.Although the invention has been described in accordance with the illustrated embodiments, those skilled in the art will readily recognize that changes may be made to the embodiments and that such changes will fall within the spirit and scope of the invention. Accordingly, many modifications may be made by one skilled in the art without departing from the spirit and scope of the appended claims.

본 발명의 메모리 갱신 방법 및 시스템은 플래너를 교체할 필요가 없어 고객의 만족도를 높이고 서비스 비용을 감소시키므로, 수리 비용을 상당히 감소시킨다. 정전시에도 시스템 손상 위험없이 메모리 용량을 전체 코드 몸체로 확장할 수 있으므로, 통상적인 시스템에 비해 커다란 이점을 제공한다.The memory update method and system of the present invention eliminates the need to replace the planner, thereby increasing customer satisfaction and reducing service costs, thereby significantly reducing repair costs. In the event of a power failure, the memory capacity can be extended to the entire code body without risking system damage, providing a significant advantage over conventional systems.

Claims (10)

프로세싱 시스템에서 메모리 갱신을 관리하는 방법에 있어서,A method of managing memory updates in a processing system, ① 제 1 및 제 2 비휘발성 소자를 제공하는 단계 - 상기 제 1 및 제 1 비휘발성 소자 각각이 실질적으로 동일한 코드 블럭을 포함함 - 와,(1) providing first and second nonvolatile elements, each of the first and first nonvolatile elements comprising substantially the same code block; ② 메모리 갱신 프로세스가 상기 제 1 및 제 2 비휘발성 소자 중 하나에서만 개시되도록 하는 단계를 포함하는(Ii) causing the memory update process to be initiated only on one of the first and second nonvolatile devices; 메모리 갱신 관리 방법.How to manage memory updates. 제 1 항에 있어서,The method of claim 1, 상기 제 1 및 제 2 비휘발성 소자가 제 1 및 제 2 EPROM 소자를 포함하는The first and second nonvolatile devices include first and second EPROM devices. 메모리 갱신 관리 방법.How to manage memory updates. 제 1 항에 있어서,The method of claim 1, 상기 제 1 및 제 2 비휘발성 소자가 제 1 및 제 2 플래시 소자를 포함하는The first and second nonvolatile devices include first and second flash devices. 메모리 갱신 관리 방법.How to manage memory updates. 제 1 항에 있어서,The method of claim 1, ③ 메모리 프로모트(promote) 프로세스가 상기 제 1 및 제 2 비휘발성 소자 중 하나에서 상기 제 1 및 제 2 비휘발성 소자 중 다른 하나로 개시되도록 하는 단계를 더 포함하는(3) causing the memory promoter process to be initiated from one of the first and second nonvolatile devices to the other of the first and second nonvolatile devices. 메모리 갱신 관리 방법.How to manage memory updates. 제 4 항에 있어서,The method of claim 4, wherein ④ 상기 제 1 비휘발성 소자 또는 상기 제 2 비휘발성 소자 중 하나에서 상기 프로세싱 시스템이 재부팅되도록 하는 단계를 더 포함하는④ causing the processing system to reboot in either the first nonvolatile device or the second nonvolatile device; 메모리 갱신 관리 방법.How to manage memory updates. 프로세싱 시스템에서의 메모리 갱신을 관리하는 시스템에 있어서,A system for managing memory updates in a processing system, 제 1 및 제 2 비휘발성 소자를 제공하는 수단 - 상기 제 1 및 제 1 비휘발성 소자 각각이 실질적으로 동일한 코드 블럭을 포함함 - 과,Means for providing first and second nonvolatile elements, each of the first and first nonvolatile elements comprising substantially the same code block; 메모리 갱신 프로세스가 상기 제 1 및 제 2 비휘발성 소자 중 하나에서만 개시되도록 하는 수단을 포함하는Means for causing a memory update process to be initiated only on one of the first and second nonvolatile devices; 메모리 갱신 관리 시스템.Memory update management system. 제 6 항에 있어서,The method of claim 6, 상기 제 1 및 제 2 비휘발성 소자가 제 1 및 제 2 EPROM 소자를 포함하는The first and second nonvolatile devices include first and second EPROM devices. 메모리 갱신 관리 시스템.Memory update management system. 제 6 항에 있어서,The method of claim 6, 상기 제 1 및 제 2 비휘발성 소자가 제 1 및 제 2 플래시 소자를 포함하는The first and second nonvolatile devices include first and second flash devices. 메모리 갱신 관리 시스템.Memory update management system. 제 6 항에 있어서,The method of claim 6, 메모리 프로모트 프로세스가 상기 제 1 및 제 2 비휘발성 소자 중 하나에서 상기 제 1 및 제 2 비휘발성 소자 중 다른 하나로 개시되도록 하는 수단Means for causing a memory promotion process to be initiated from one of the first and second nonvolatile devices to the other of the first and second nonvolatile devices 을 더 포함하는 메모리 갱신 관리 시스템.Memory update management system further comprising. 제 9 항에 있어서,The method of claim 9, 상기 제 1 비휘발성 소자와 제 2 비휘발성 소자 중 하나에서 상기 프로세싱 시스템이 재부팅되도록 하는 수단을 더 포함하는Means for causing the processing system to reboot in one of the first nonvolatile device and the second nonvolatile device; 메모리 갱신 관리 시스템.Memory update management system.
KR1019990040548A 1998-09-24 1999-09-21 A method and system for updating memory in a processing system KR20000023322A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15995998A 1998-09-24 1998-09-24
US9/159,959 1998-09-24

Publications (1)

Publication Number Publication Date
KR20000023322A true KR20000023322A (en) 2000-04-25

Family

ID=22574845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990040548A KR20000023322A (en) 1998-09-24 1999-09-21 A method and system for updating memory in a processing system

Country Status (1)

Country Link
KR (1) KR20000023322A (en)

Similar Documents

Publication Publication Date Title
US6836859B2 (en) Method and system for version control in a fault tolerant system
US6615404B1 (en) Method and apparatus for downloading software into an embedded-system
US7036007B2 (en) Firmware architecture supporting safe updates and multiple processor types
US6442067B1 (en) Recovery ROM for array controllers
US6182187B1 (en) System ROM including a flash EPROM and a ROM for storing primary boot code replacing a block flash EPROM
US7711989B2 (en) Storage system with automatic redundant code component failure detection, notification, and repair
JP4868216B2 (en) Firmware update circuit and firmware update method
US6308265B1 (en) Protection of boot block code while allowing write accesses to the boot block
US6665813B1 (en) Method and apparatus for updateable flash memory design and recovery with minimal redundancy
US5826075A (en) Automated programmable fireware store for a personal computer system
US7313682B2 (en) Method and system for updating boot memory that stores a fail-safe reset code and is configured to store boot code and boot updater code
US8601255B2 (en) Approaches for updating bios
US20070094656A1 (en) Self-modifying copier for downloading executable code in a non-disruptive manner
US20060236150A1 (en) Timer-based apparatus and method for fault-tolerant booting of a storage controller
EP0402683A2 (en) Method and apparatus for updating firmware resident in an electrically erasable programmable read-only memory
US6931522B1 (en) Method for a computer using the system image on one of the partitions to boot itself to a known state in the event of a failure
US10684913B2 (en) Systems and methods for detecting errors and/or restoring non-volatile random access memory using error correction code
US20070101166A1 (en) Method and apparatus for utilizing a microcontroller to provide an automatic order and timing power and reset sequencer
RU2248627C2 (en) Method and device for changing content of memory devices of control blocks
US20040153738A1 (en) Redundancy management method for BIOS, data processing apparatus and storage system for using same
US7546596B2 (en) Non-disruptive method, system and program product for overlaying a first software module with a second software module
US20070277028A1 (en) Method and system for recovery from reprogramming failures in nonvolatile memory
US7428635B2 (en) Method of writing non-volatile memory that avoids corrupting the vital initialization code
KR20000023322A (en) A method and system for updating memory in a processing system
CN114035813A (en) Upgrading method, device, equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application