[go: up one dir, main page]

KR20200139294A - Delayed Reset for Code Execution from memory Device - Google Patents

Delayed Reset for Code Execution from memory Device Download PDF

Info

Publication number
KR20200139294A
KR20200139294A KR1020190065292A KR20190065292A KR20200139294A KR 20200139294 A KR20200139294 A KR 20200139294A KR 1020190065292 A KR1020190065292 A KR 1020190065292A KR 20190065292 A KR20190065292 A KR 20190065292A KR 20200139294 A KR20200139294 A KR 20200139294A
Authority
KR
South Korea
Prior art keywords
processor
nvm
code
initialization
boot
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020190065292A
Other languages
Korean (ko)
Other versions
KR102300822B1 (en
Inventor
이타이 아드몬
니르 타세르
마크 루코
Original Assignee
윈본드 일렉트로닉스 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윈본드 일렉트로닉스 코포레이션 filed Critical 윈본드 일렉트로닉스 코포레이션
Priority to KR1020190065292A priority Critical patent/KR102300822B1/en
Publication of KR20200139294A publication Critical patent/KR20200139294A/en
Application granted granted Critical
Publication of KR102300822B1 publication Critical patent/KR102300822B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • 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/20Initialising; Data preset; Chip identification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/1097Boot, Start, Initialise, Power

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

메모리 장치는 비휘발성 메모리(NVM) 및 회로를 포함한다. 이 회로는 프로세서에 대한 메모리 액세스 동작을 실행하기 위해 NVM을 준비하고 초기화하고, NVM의 준비 및 초기화의 적어도 일부 동안 프로세서가 부트스트랩 되는 것을 방지함으로써, NVM이 준비되기 전에 프로세서로부터 메모리 액세스 동작이 수신되지 않는 것을 확실히 하도록 구성된다.The memory device includes nonvolatile memory (NVM) and circuitry. This circuit prepares and initializes the NVM to perform memory access operations for the processor, and prevents the processor from bootstrapping during at least part of the preparation and initialization of the NVM, so that memory access operations are received from the processor before the NVM is ready. It is structured to ensure that it doesn't work.

Figure P1020190065292
Figure P1020190065292

Description

메모리 장치의 코드 실행을 위한 지연 리셋{Delayed Reset for Code Execution from memory Device}Delayed Reset for Code Execution from memory Device}

본 발명은 일반적인 디지털 시스템에 관한 것으로, 특히 마이크로 컨트롤러와 비휘발 메모리를 포함하는 리셋 시스템을 위한 장치 및 방법에 관한 것이다.The present invention relates to a general digital system, and more particularly to an apparatus and method for a reset system comprising a microcontroller and a non-volatile memory.

디지털 시스템은 통상적으로 하나 이상의 프로세서(예를 들어, CPU, MCU, GPU, DSP 및 기타)를 포함하고, 소프트웨어 또는 펌웨어 코드뿐만 아니라 데이터를 저장하기 위한 비휘발 메모리(예를 들어, 플래시 메모리 장치)를 사용한다.Digital systems typically include one or more processors (e.g., CPU, MCU, GPU, DSP, and others), and non-volatile memory (e.g., flash memory devices) for storing software or firmware code as well as data. Use.

프로세서 및 그 주변 장치의 리셋 및 초기화하는, 예를 들어 파워-업(power-up)시에, 다양한 기술이 당 업계에 공지되어 있다. 예를 들어, Le 등은 " 브라운 아웃 검출 능력을 가진 긴 리셋 타임 파워-온 리셋 회로(A Long Reset-Time Power-On Reset Circuit with Brown-Out Detection Capability),"(A Long Reset-Time Power-On Reset Circuit with Brown-Out Detection Capability)에서 파워-온-리셋(power-on-reset)(POR) 회로를 기술한다.Various techniques are known in the art for resetting and initializing the processor and its peripherals, for example at power-up. For example, Le et al., "A Long Reset-Time Power-On Reset Circuit with Brown-Out Detection Capability," (A Long Reset-Time Power- On Reset Circuit with Brown-Out Detection Capability), describe the power-on-reset (POR) circuit.

다른 POR 회로는 Tanzawa에 의해 "밴드 갭 전압보다 높은 유연한 검출 레벨을 갖는 프로세스 및 온도 허용 전원-온 리셋 회로(A process and temperature-tolerant power-on reset circuit with a flexible detection level higher than the bandgap voltage)"(IEEE International Symposium on Circuits and Systems(ISCAS), June, 2008)에서 발표되었다. 이 논문은 밴드 갭 기준 전압에 기반한 파워-온-리셋 회로의 동작 원리를 설명하며, 1.25V의 밴드 갭 전압보다 높은 설계 출력 전압을 구현할 수 있다.Another POR circuit is described by Tanzawa as "A process and temperature-tolerant power-on reset circuit with a flexible detection level higher than the bandgap voltage." "(IEEE International Symposium on Circuits and Systems (ISCAS), June, 2008). This paper describes the operating principle of a power-on-reset circuit based on a bandgap reference voltage, and a design output voltage higher than a bandgap voltage of 1.25V can be implemented.

본 명세서에서 설명되는 본 발명의 실시예는 비휘발성 메모리(non-volatile memory)(NVM) 및 회로(circuitry)를 포함하는 메모리 장치(memory device)를 제공한다. 상기 회로는 프로세서(processor)에 대한 메모리 액세스 동작을 실행하기 위해 NVM을 준비하고 초기화하고; 및 NVM의 준비 및 초기화의 적어도 일부 동안 프로세서가 부트스트랩(bootstrapping) 되는 것을 방지함으로써, NVM이 준비되기 전에 프로세서로부터 메모리 액세스 동작이 수신되지 않는 것을 확실히 하도록 구성된다.Embodiments of the present invention described herein provide a memory device including a non-volatile memory (NVM) and circuitry. The circuitry prepares and initializes the NVM to perform a memory access operation for a processor; And preventing the processor from bootstrapping during at least part of the preparation and initialization of the NVM, thereby ensuring that no memory access operations are received from the processor before the NVM is ready.

일부 실시예에서, 상기 회로는 상기 NVM의 초기화(initialization) 및 준비(preparation) 중 적어도 일부 동안, 상기 프로세서를 리셋 상태(reset state)로 유지함으로써 상기 프로세서가 부트스트랩 되는 것을 방지하도록 구성된다. 일 실시예서, 상기 NVM은 상기 프로세서의 부트-코드를 저장하도록 구성되며, 상기 회로는 상기 NVM의 초기화 및 준비 중 적어도 일부 이후에 상기 프로세서를 상기 리셋 상태로부터 해제하도록 구성되고, 후속하여 부트-코드(boot code)를 프로세서에 제공한다.In some embodiments, the circuit is configured to prevent the processor from bootstrapping by holding the processor in a reset state during at least some of the initialization and preparation of the NVM. In one embodiment, the NVM is configured to store a boot-code of the processor, and the circuit is configured to release the processor from the reset state after at least part of the initialization and preparation of the NVM, and subsequently boot-code (boot code) is provided to the processor.

다른 실시예에서, 상기 NVM은 상기 프로세서의 부트-코드를 저장하도록 구성되며, (i) 상기 NVM의 초기화 및 준비 중 적어도 일부 동안, 상기 프로세서가 부트스트랩 되는 것을 방지하는 대체 코드(alternative code)를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 요청에 응답하고; 및 (ii) 상기 NVM의 초기화 및 준비 중 적어도 일부 이후에, 상기 부트-코드를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 후속하는 요청에 응답함으로써, 상기 회로는 부트스트랩으로부터 상기 프로세서를 방지하도록 구성된다.In another embodiment, the NVM is configured to store the boot-code of the processor, and (i) an alternative code that prevents the processor from being bootstrapped during at least part of initialization and preparation of the NVM Respond to a request from the processor for the boot-code by providing; And (ii) after at least some of the initialization and preparation of the NVM, by responding to a subsequent request from the processor for the boot-code by providing the boot-code, the circuit prevents the processor from bootstrap. Is configured to

일 실시예에서, 상기 대체 코드는 상기 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 상기 프로세서로 하여금 반복하도록 한다. 다른 실시예에서, 상기 대체 코드는 한번 실행되는 제1 파트(first part), 및 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 반복적으로 실행되는 제2 파트(second part)를 포함한다. 다른 실시예에서, 상기 제1 파트는 상기 프로세서의 레지스터를 로드 하는 명령을 포함한다.In one embodiment, the replacement code causes the processor to iterate until at least part of the initialization and preparation of the NVM is complete. In another embodiment, the replacement code includes a first part that is executed once, and a second part that is repeatedly executed until at least part of the initialization and preparation of the NVM is completed. In another embodiment, the first part includes an instruction to load a register of the processor.

일부 실시예에서, 상기 NVM 및 상기 회로는 동일한 집적 회로(IC) 패키지에 패키지 된다.In some embodiments, the NVM and the circuit are packaged in the same integrated circuit (IC) package.

본 발명의 실시예와 함께 메모리 장치의 방법이 추가적으로 제공된다. 상기 방법은 상기 메모리 장치 내의 회로를 이용하는 단계, 프로세서에 대한 메모리 액세스 동작을 실행하기 위해 상기 메모리 장치 내의 비휘발성 메모리(non-volatile memory)(NVM)의 초기화 및 준비하는 단계, 및 NVM의 준비 및 초기화의 적어도 일부 동안 프로세서가 부트스트랩 되는 것을 방지함으로써, 상기 메모리 장치의 회로에 의해 상기 NVM이 준비되기 전에 상기 프로세서로부터 어떠한 메모리 액세스 동작도 수신되지 않음을 확실히 하는 단계를 포함한다.A method of a memory device is additionally provided with an embodiment of the present invention. The method includes the steps of using a circuit in the memory device, initializing and preparing a non-volatile memory (NVM) in the memory device to perform a memory access operation for a processor, and preparing an NVM, and Preventing the processor from bootstrapping during at least part of the initialization, thereby ensuring that no memory access operation is received from the processor before the NVM is ready by the circuit of the memory device.

본 발명은 그 실시예에 대한 다음의 상세한 설명으로부터 도면과 함께 보다 잘 이해될 것이다:The invention will be better understood in conjunction with the drawings from the following detailed description of its embodiments:

도 1은 본 발명의 실시예에 따라, 시스템-리셋 입력(system-reset input)을 갖는 플래시 장치에 의해 생성된 프로세서-리셋(processor-reset)을 갖는 컴퓨터 시스템을 개략적으로 도시하는 블록도이다.
도 2는 본 발명의 다른 실시예에 따라, 내부 POR 회로를 갖는 플래시 장치에 의해 생성된 프로세서-리셋 출력을 갖는 컴퓨터 시스템을 개략적으로 도시하는 블록도이다.
도 3은 본 발명의 실시예에 따라 플래시 장치(Flash-device)에 의해 생성된 프로세서-리셋을 갖는 컴퓨터 시스템의 부트 시퀀스를 개략적으로 도시한 타이밍도이다.
도 4는 본 발명의 일 실시예에 따라, 플래시 장치에 의해 생성된 수정된 부트 명령(modified boot instruction)을 갖는 컴퓨터 시스템을 개략적으로 도시하는 블록도이다.
도 5는 본 발명의 또 다른 실시예에 따라, 플래시 장치에 의해 생성된 수정된 부트 시퀀스를 갖는 컴퓨터 시스템을 개략적으로 도시하는 블록도이다. 및
도 6은 본 발명의 일부 실시예에 따라 프로세서-정지(processor-stall)를 갖는 컴퓨터 시스템의 부트 시퀀스를 개략적으로 도시한 타이밍도이다.
1 is a block diagram schematically showing a computer system with a processor-reset generated by a flash device having a system-reset input, according to an embodiment of the present invention.
2 is a block diagram schematically showing a computer system having a processor-reset output generated by a flash device having an internal POR circuit, according to another embodiment of the present invention.
3 is a timing diagram schematically showing a boot sequence of a computer system having a processor-reset generated by a flash-device according to an embodiment of the present invention.
4 is a block diagram schematically showing a computer system having a modified boot instruction generated by a flash device, according to an embodiment of the present invention.
5 is a block diagram schematically showing a computer system having a modified boot sequence generated by a flash device, according to another embodiment of the present invention. And
6 is a timing diagram schematically illustrating a boot sequence of a computer system having a processor-stall in accordance with some embodiments of the present invention.

프로세서(예를 들어, 중앙 처리 장치(CPU)) 및 메모리 장치를 포함하는 컴퓨터 시스템에서, 메모리 장치의 초기화 시간은 프로세서의 초기화 시간보다 길 수 있다. 이러한 경우, 리셋 또는 파워-업 후에, 메모리 장치가 필요한 코드 또는 데이터를 제공할 준비가 되기 전에 프로세서가 실행을 위해 준비가 되어, 컴퓨터 시스템의 성공적인 부팅을 방해할 수 있다.In a computer system including a processor (eg, a central processing unit (CPU)) and a memory device, the initialization time of the memory device may be longer than the initialization time of the processor. In this case, after a reset or power-up, the processor is ready for execution before the memory device is ready to provide the necessary code or data, which can prevent successful booting of the computer system.

특히, 이 시나리오는 프로세서의 부트-코드가 플래시 장치 - 플래시 장치는 일부 아날로그 작업을 완료하는데 필요한 시간, BIST(Built-In-Self-Test) 실행 시간 및/또는 보안 관련 작업을 수행하는데 필요한 시간을 포함하여 준비하는데 오랜 시간이 걸릴 수 있는 - 에 저장될 때 일반적이다.Specifically, in this scenario, the boot-code of the processor is a flash device-the flash device determines the time required to complete some analog tasks, the built-in-self-test (BIST) execution time, and/or the time required to perform security-related tasks. It is common when stored in-which can take a long time to prepare, including.

따라서, 플래시 장치에 저장된 코드로 부팅하는 컴퓨터 시스템에서, 프로세서가 플래시 장치가 준비되었을 때만 부팅을 시도하도록 지연된 리셋을 갖는 프로세서를 제공할 필요가 있을 수 있다.Thus, in a computer system that boots with code stored in a flash device, it may be necessary to provide a processor with a delayed reset such that the processor attempts to boot only when the flash device is ready.

프로세서에 대해 적절히 지연된 리셋을 생성하는 한 가지 방법은 플래시 장치가 준비해야 할 최대 예상 시간보다 긴 시간 지연을 갖는 리셋 회로를 사용하는 것이다. 그러나, 이것은 특수 회로의 추가가 필요하고; 플래시 장치가 준비되는데 필요한 시간의 변동 및 불확실성으로 인해 필요 이상으로 오래 걸려 컴퓨터 시스템의 시작이 더 지연될 수 있다.One way to create a properly delayed reset for the processor is to use a reset circuit with a time delay that is longer than the maximum expected time the flash device should prepare. However, this requires the addition of special circuitry; The fluctuations and uncertainties in the time required for the flash device to be ready can take longer than necessary to further delay the startup of the computer system.

본 명세서에 설명된 본 발명의 실시예는 프로세서가 메모리 장치가 준비된 직후(그리고 전에는 결코 불가능한)에 부트 시퀀스를 시작하도록 하는 개선된 방법 및 장치를 제공한다. 다음의 설명은 예로서, 주로 CPU 및 플래시 장치를 언급하지만, 개시된 기술은 다른 적합한 유형의 프로세서 및 메모리/저장 장치에 적용 가능하다.Embodiments of the invention described herein provide an improved method and apparatus for allowing a processor to initiate a boot sequence immediately after (and never before) a memory device is ready. The following description mainly refers to a CPU and a flash device by way of example, but the disclosed technology is applicable to other suitable types of processors and memory/storage devices.

일부 실시예에서, 메모리 장치(예를 들어, 플래시 장치)는 동일한 집적 회로(IC) 패키지 내에 함께 패키지 된 비휘발성 메모리(NVM) 어레이 및 회로 모두를 포함한다. 다른 태스크 중에서, 회로는 프로세서(예를 들어, CPU)에 대한 메모리 액세스 동작을 실행하기 위해 NVM을 초기화 및 준비하고, NVM이 준비되기 전에 프로세서로부터 어떠한 메모리 액세스 동작도 수신되지 않았음을 확인하도록 구성된다. 상기 회로는 상기 NVM의 초기화 및 준비의 적어도 일부 동안 상기 프로세서가 부트스트랩 되는 것을 방지함으로써 상기 조건을 확실히 한다.In some embodiments, a memory device (eg, a flash device) includes both a nonvolatile memory (NVM) array and circuitry packaged together within the same integrated circuit (IC) package. Among other tasks, the circuit is configured to initialize and prepare the NVM to execute a memory access operation for the processor (e.g., CPU), and to ensure that no memory access operation has been received from the processor before the NVM is ready. do. The circuit ensures the condition by preventing the processor from bootstrapped during at least part of the initialization and preparation of the NVM.

메모리 장치의 회로는 NVM이 준비될 때까지 프로세서가 부트스트랩 되는 것을 방지하기 위해 다양한 기술을 사용할 수 있다. 몇 가지 예가 아래에 자세히 설명되어 있다. 여기에 기술된 기술은 순수하게 예로서 제공되며, 임의의 다른 적절한 기술이 대안적인 실시예에서 사용될 수 있다.The circuitry of the memory device can use a variety of techniques to prevent the processor from bootstrapping until the NVM is ready. Some examples are detailed below. The techniques described herein are provided purely by way of example, and any other suitable technique may be used in alternative embodiments.

일례에서, 회로는 NVM이 준비될 때까지 프로세서를 리셋 상태로 유지하고, 그 후 리셋 상태로부터 프로세서를 해제한다. 다른 예에서, 프로세서의 부트-코드(boot code)는 NVM에 저장된다. 회로는 NVM의 준비 여부에 따라 부트-코드에 대한 프로세서의 요청에 다르게 응답한다. NVM이 준비되면 회로는 프로세서에 요청된 부트-코드를 제공한다. NVM이 준비되지 않은 경우, 회로는 NVM이 준비될 때까지 프로세서가 부트스트랩 되지 못하게 하는 대체 코드(alternative code)를 프로세서에 제공한다.In one example, the circuit keeps the processor in a reset state until the NVM is ready, and then releases the processor from the reset state. In another example, the processor's boot code is stored in the NVM. The circuit responds differently to the processor's request for boot-code depending on whether the NVM is ready. When the NVM is ready, the circuit provides the requested boot-code to the processor. If the NVM is not ready, the circuit provides the processor with alternative code that prevents the processor from bootstrapping until the NVM is ready.

일 실시예에서, 메모리 장치는 프로세서의 리셋 입력에 연결된 프로세서-리셋 출력 핀(processor-reset output pin)을 포함한다. 메모리 장치는 메모리 장치가 준비된 후에 만 프로세서의 리셋 입력을 해제하는 프로세서-리셋 회로를 더 포함한다. 대안적으로, 프로세서가 리셋을 해제하고 부팅 프로세스를 시작하는데 필요한 시간을 고려하여 메모리가 준비되기 약간 전에 프로세서로의 리셋 입력이 해제될 수 있다.In one embodiment, the memory device includes a processor-reset output pin coupled to the reset input of the processor. The memory device further includes a processor-reset circuit for releasing a reset input of the processor only after the memory device is prepared. Alternatively, the reset input to the processor may be released slightly before the memory is ready, taking into account the time required for the processor to release the reset and start the boot process.

본 발명의 다른 실시예에서, 메모리 장치는 여분의 리셋-아웃 핀(reset-out pin)을 포함하지 않으며, 프로세서는 메모리 장치가 준비되기 전에 부팅을 위해 메모리 장치에 액세스 할 수 있다(예를 들어, 프로세서와 메모리 장치는 동일한 리셋 입력을 공유할 수 있다).  그러나, 메모리 장치가 아직 준비되지 않은 상태에서 프로세서가 메모리 장치에 액세스 하면, 메모리 장치는 요청된 부트-코드를 제공하는 대신에 프로세서를 멈추도록 할 명령 또는 명령 시퀀스를 프로세서로 제시할 것이다. 예를 들어, 프로세서는 자체-분기 명령(branch-to-self instruction)을 반복적으로 얻을 수 있다. 메모리 장치가 준비되었을 때만 프로세서는 메모리 장치에 저장된 실제 부트-코드를 얻는다.In another embodiment of the present invention, the memory device does not include an extra reset-out pin, and the processor can access the memory device for booting before the memory device is ready (e.g. , The processor and the memory device can share the same reset input). However, if the processor accesses the memory device while the memory device is not yet ready, the memory device will present an instruction or sequence of instructions to the processor that will cause the processor to stop instead of providing the requested boot-code. For example, a processor can repeatedly obtain a branch-to-self instruction. Only when the memory device is ready the processor gets the actual boot-code stored in the memory device.

따라서, 본 발명에 따른 실시예에서, 메모리 장치가 준비될 때까지 프로세서에 적절한 시간 리셋을 적용하거나 정지 명령 또는 정지 명령 시퀀스를 사용하여 프로세서를 정지시킴으로써, 메모리 장치는 메모리 장치가 준비되기 전에 프로세서의 부트 시퀀스가 시작되지 않도록 보장한다. 추가 리셋 회로가 필요하지 않으며 부팅 지연 시간이 짧다.Thus, in an embodiment according to the present invention, by applying an appropriate time reset to the processor until the memory device is ready, or by stopping the processor using a stop command or a stop command sequence, the memory device Ensures that the boot sequence does not start. No additional reset circuit is required and the boot delay time is short.

시스템 설명(SYSTEM DESCRIPTION)SYSTEM DESCRIPTION

본 발명의 실시예에 따른 컴퓨터 시스템에서, CPU의 부트-코드는 비휘발성 메모리에 저장될 수 있다. 이하의 설명에서, 비휘발성 메모리를 플래시로서 지칭할 것이다. 플래시는 컴퓨터 시스템의 부트-코드를 저장할 수 있는 기술 중 하나이지만, 공개된 기술은 플래시에 국한되지 않는다. 본 발명에 따른 실시예는 임의의 다른 유형의 비휘발성 메모리를 포함할 수 있다.In the computer system according to the embodiment of the present invention, the boot-code of the CPU may be stored in a nonvolatile memory. In the following description, the nonvolatile memory will be referred to as flash. Flash is one of the technologies that can store the boot-code of a computer system, but the disclosed technology is not limited to flash. Embodiments in accordance with the present invention may include any other type of non-volatile memory.

플래시 장치와 같은 컴퓨터 시스템의 다양한 요소는 리셋에서 벗어나는데 상이한 시간이 소요될 수 있으며(예를 들어, 전원이 시스템에 적용될 때), 플래시 메모리가 준비되기 전에 CPU가 부트 시퀀스를 시작하지 않도록 주의해야 한다. 예를 들어, 플래시 메모리는 일반적으로 리셋을 종료할 때 초기화 시퀀스(예를 들어, BIST(built-in-self-test) 또는 보안 정책 시행)를 실행하고; 그리고 CPU가 플래시에 액세스 할 준비를 끝낸 충분한 시간후에 CPU가 액세스 할 준비가 될 수 있다. 따라서, 플래시가 준비된 후에 CPU가 부트 시퀀스를 시작해야만 할 것이고; 따라서 CPU와 플래시의 리셋 소스는 일반적으로 별개이다.Various elements of a computer system, such as flash devices, may take different times to escape from reset (for example, when power is applied to the system), and care must be taken to ensure that the CPU does not start the boot sequence before the flash memory is ready. . For example, a flash memory typically executes an initialization sequence (eg, built-in-self-test (BIST) or security policy enforcement) when terminating a reset; And after enough time the CPU is ready to access the flash, the CPU can be ready to access it. Thus, the CPU will have to start the boot sequence after the flash is ready; Therefore, the CPU and flash reset sources are usually separate.

플래시 장치 기반 프로세서-리셋(Flash-Device-Driven Processor Reset)Flash-Device-Driven Processor Reset

도 1 및 도 2에 예시된 실시예에서, 아래의 도 1 및 도 2에서, 플래시 장치는 CPU 리셋 입력에 결합된 프로세서-리셋 출력 신호를 포함한다. 플래시 장치는 플래시가 액세스 준비가 되지 않았을 때 프로세서-리셋을 활성화하여 플래시가 준비되었을 때만 CPU가 플래시로부터 부팅 되도록 한다.In the embodiment illustrated in Figures 1 and 2, in Figures 1 and 2 below, the flash device includes a processor-reset output signal coupled to a CPU reset input. The flash device activates the processor-reset when the flash is not ready for access, so that the CPU only boots from the flash when the flash is ready.

도 1은 본 발명의 일 실시예에 따른, 시스템-리셋 입력을 갖는 플래시 장치에 의해 생성된 프로세서-리셋을 갖는 컴퓨터 시스템(100)을 개략적으로 도시하는 블록도이다.1 is a block diagram schematically showing a computer system 100 with a processor-reset generated by a flash device having a system-reset input, according to an embodiment of the present invention.

이 시스템은 CPU(102), RAM(104), 주변 장치(106) 및 플래시 장치(108)를 포함한다. CPU(102)는 버스(110)를 통해 RAM(104), 주변 장치(Peripherals)(106) 및 플래시(Flash)(108)와 통신한다(버스(110)는, 예를 들어 최신 마이크로 프로세서 버스 구조(Advanced Microprocessor Bus Architecture); 일부 실시예에서 버스(110)는 AMBA 및 AMBA 버스와 플래시 장치 사이를 인터페이스 하는 직렬-프로세서-인터페이스(Serial-Processor-Interface)(SPI) 또는 상호-집적회로-버스(Inter-Integrated-Circuit-Bus)(I2C)와 같은 인터페이스 모듈을 포함하며; 다른 실시예에서는 다른 버스가 사용될 수도 있음).This system includes a CPU 102, a RAM 104, a peripheral device 106 and a flash device 108. CPU 102 communicates with RAM 104, Peripherals 106 and Flash 108 via bus 110 (bus 110 is, for example, a modern microprocessor bus structure (Advanced Microprocessor Bus Architecture); in some embodiments, the bus 110 is a serial-processor-interface (SPI) or inter-integrated circuit-bus that interfaces between the AMBA and the AMBA bus and the flash device. It includes an interface module such as Inter-Integrated-Circuit-Bus) (I2C); other buses may be used in other embodiments).

플래시 장치(flash device)(108)는 데이터/코드(예를 들어, 부트-코드)를 저장하고 플래시 장치에 전원이 공급되지 않을 때 저장된 데이터/코드를 유지하도록 구성된 비휘발성 저장 어레이(non-volatile storage-array)(112), 초기화 회로(initialization circuit)(114) 및 프로세서-리셋 회로(processor-reset circuit)(116)을 포함한다. 어레이(array)(112) 및 회로(circuit)(114 및 116)는 전형적으로 동일한 집적 회로(IC) 패키지 내에 함께 패키지 된다.The flash device 108 is a non-volatile storage array configured to store data/code (e.g., boot-code) and retain the stored data/code when power is not supplied to the flash device. A storage-array 112, an initialization circuit 114, and a processor-reset circuit 116 are included. Array 112 and circuits 114 and 116 are typically packaged together in the same integrated circuit (IC) package.

컴퓨터 시스템(Computer system)(100)은 플래시 장치에 연결된 외부 리셋 소스(External Reset source)(118)를 추가로 포함한다. 일부 실시예에서, 외부 리셋 소스는 시스템에 인가된 전원이 사전에 설정된 레벨 아래에 있을 때(그리고, 일부 실시예에서, 전원이 사전에 설정된 레벨에 도달한 이후 사전에 설정된 시간 동안) 리셋 출력을 활성화시키는 파워-온 리셋 사전에 설정 수준에 도달), 리셋 출력을 활성화시키는 전원-온-리셋(power-on reset)(POR)을 포함한다.Computer system 100 further includes an External Reset source 118 connected to the flash device. In some embodiments, the external reset source generates the reset output when the power applied to the system is below a preset level (and, in some embodiments, for a preset time after the power reaches a preset level). It includes a power-on reset (POR) that activates the power-on reset (reaching a preset level) and activates the reset output.

도 1의 예시적인 실시예에서, 외부 리셋 소스(118)가 자신의 리셋 출력을 비활성화할 때, 초기화 회로(initialization circuit)(114)는 플래시 초기화 시퀀스(Flash initialization sequence)(예를 들어, BIST)를 시작한다. 초기화 시퀀스가 완료되면, 초기화 회로는 플래시 장치가 준비되었음을 프로세서-리셋 회로(Processor-Reset Circuit)(116)에 신호한다. In the exemplary embodiment of FIG. 1, when the external reset source 118 deactivates its reset output, the initialization circuit 114 is a flash initialization sequence (eg, BIST). Start. When the initialization sequence is completed, the initialization circuit signals the processor-reset circuit 116 that the flash device is ready.

프로세서-리셋 회로(116)는 외부 리셋 신호가 활성화되지 않을 때 초기화 회로(114)에 의해 생성된 준비 입력(Ready input)이 활성화될 때만 플래시 장치의 프로세서-리셋 출력(processor-reset output)을 비활성화 하도록 구성된다.The processor-reset circuit 116 transmits the processor-reset output of the flash device only when the external reset signal is not activated and the ready input generated by the initialization circuit 114 is activated. It is configured to be disabled.

본 발명의 일부 실시예에서, 외부 리셋 소스는 없고, 플래시 장치는 파워-온 리셋 회로(Power-On reset circuit)를 포함한다.In some embodiments of the invention, there is no external reset source, and the flash device includes a Power-On reset circuit.

도 2는 본 발명의 실시예에 따라, 내부 POR 회로를 갖는 플래시 장치에 의해 생성된 프로세서-리셋 출력을 갖는 컴퓨터 시스템(200)을 개략적으로 도시하는 블록도이다. 시스템(100)(도 1)과 마찬가지로, 시스템(200)은 CPU(102), RAM(104), 주변 장치(106) 및 버스(110)를 포함한다. 그러나, 시스템(100)과 달리, 시스템(200)은 외부 리셋 소스를 포함하지 않는다. 그 대신에, 플래시 장치(208)는 POR(Power-On-Reset) 회로(202)(플래시(208)는 도 1의 플래시(108)와 동일함)를 포함한다.2 is a block diagram schematically showing a computer system 200 having a processor-reset output generated by a flash device having an internal POR circuit, according to an embodiment of the present invention. Like system 100 (FIG. 1 ), system 200 includes CPU 102, RAM 104, peripherals 106 and bus 110. However, unlike system 100, system 200 does not include an external reset source. Instead, the flash device 208 includes a Power-On-Reset (POR) circuit 202 (flash 208 is the same as the flash 108 in FIG. 1).

POR 회로(202)는 플래시의 공급 전압이 사전에 설정된 레벨에 도달할 때 리셋 출력을 비활성화하도록 구성된다. POR 회로(202)의 리셋 출력은 외부 리셋 소스(118)(도 1)로부터의 리셋 출력 대신에 플래시 장치(208)를 리셋 하는데 사용된다. 다른 모든 측면에서, 플래시(208)는 플래시(108)와 동일하다: POR 회로(202)가 자신의 리셋 출력을 비활성화 할 때, 초기화 회로(114)는 플래시 초기화 시퀀스를 시작한다; 초기화 시퀀스가 완료되면 초기화 회로는 플래시 장치가 준비되었음을 알린다. 프로세서-리셋 회로(116)는 플래시 장치의 프로세서-리셋 출력을 비활성화하여, CPU(102)가 부팅 프로세스를 시작할 수 있게 한다.The POR circuit 202 is configured to disable the reset output when the supply voltage of the flash reaches a preset level. The reset output of the POR circuit 202 is used to reset the flash device 208 instead of the reset output from the external reset source 118 (FIG. 1). In all other respects, flash 208 is identical to flash 108: when POR circuit 202 deactivates its reset output, initialization circuit 114 initiates a flash initialization sequence; Upon completion of the initialization sequence, the initialization circuit notifies that the flash device is ready. The processor-reset circuit 116 disables the processor-reset output of the flash device, allowing the CPU 102 to start the boot process.

따라서, 도 1 및 도 2의 예시적인 실시예에 따르면, CPU는 플래시가 준비되었을 때만 플래시에 액세스 하며 CPU가 실행하는 부트-코드는 손상되지 않는다. CPU의 리셋 입력을 플래시에 연결함으로써 CPU의 부트 시퀀스를 정확하게 맞출 수 있다. 플래시가 준비되기 전에 부팅이 시작되지 않으며 불필요하게 지연되지 않는다.Thus, according to the exemplary embodiment of Figs. 1 and 2, the CPU accesses the flash only when the flash is ready, and the boot-code executed by the CPU is not damaged. By connecting the CPU's reset input to the flash, you can accurately match the CPU's boot sequence. Booting does not start before the flash is ready and there is no needless delay.

컴퓨터 시스템(100 및 200), 및 플래시 장치(108 및 208)의 구성은 개념적 순수하게 명확성을 위해 도시된 구성의 예이다. 임의의 다른 적절한 구성이 다른 실시예에서 사용될 수 있다. 예를 들어, 플래시 메모리(108, 208)는 EEPROM(Electrically Erasable Programmable Read-Only Memory) 또는 ROM(Read-Only Memory) 및 하드 디스크와 같은 임의의 다른 유형의 비휘발성 메모리 또는 저장 장치로 대체될 수 있다. CPU(102)는 동일하거나 다양한 형태의 복수의 CPU 유닛을 포함할 수 있다. 시스템에 하나 이상의 플래시 메모리와 하나 이상의 버스가 있을 수 있다.The configurations of computer systems 100 and 200, and flash devices 108 and 208 are examples of configurations shown for clarity conceptually. Any other suitable configuration may be used in other embodiments. For example, the flash memories 108 and 208 may be replaced with Electrically Erasable Programmable Read-Only Memory (EEPROM) or Read-Only Memory (ROM) and any other type of nonvolatile memory or storage device such as a hard disk. have. The CPU 102 may include a plurality of CPU units of the same or various types. There may be more than one flash memory and more than one bus in the system.

CPU가 리셋을 종료하는데 약간의 시간이 걸릴 수 있기 때문에, 일부 실시예에서 프로세서-리셋 출력은 초기화 회로(114)가 초기화를 완료하기 전에 사전에 설정된 시간 동안 비활성화 되어 부팅이 불필요하게 지연되지 않는다. 일부 실시예에서, 프로세서-리셋 출력 비활성화는 플래시가 준비된 후 사전에 설정된 시간만큼 지연될 수 있고, 또 다른 실시예에서는 플래시(108)(또는 208)가 복수의 프로세서-리셋 출력을 포함할 수 있으며, 이는 다수의 프로세서 및 다른 시스템 컴포넌트에 결합될 수 있으며, 외부 리셋 입력(또는 POR 리셋) 및 플래시가 준비되는 시간에 대한 각각의 출력의 리셋-비활성화(reset-deactivation)가 개별적으로 구성될 수 있다.Because it may take some time for the CPU to complete the reset, in some embodiments the processor-reset output is disabled for a predetermined amount of time before the initialization circuit 114 completes initialization so that booting is not unnecessarily delayed. In some embodiments, processor-reset output deactivation may be delayed by a pre-set amount of time after the flash is ready, and in other embodiments, flash 108 (or 208) may include multiple processor-reset outputs. , It can be coupled to multiple processors and other system components, and the external reset input (or POR reset) and reset-deactivation of each output for the time the flash is ready can be configured individually. .

본 명세서에서, 초기화 회로(114), 프로세서-리셋 회로(116) 및 POR 회로(POR circuit)(202)(사용되는 경우)는 전체적으로 플래시 장치의 "회로(circuitry)"로 지칭된다. 다른 실시예에서, 임의의 다른 적절한 회로 구성이 사용될 수 있다.In this specification, the initialization circuit 114, the processor-reset circuit 116, and the POR circuit 202 (if used) are collectively referred to as the "circuitry" of the flash device. In other embodiments, any other suitable circuit configuration may be used.

도 3은 플래시 장치로 생성된 프로세서-리셋을 갖는 컴퓨터 시스템의 부트 시퀀스를 개략적으로 설명하는 타이밍 도, 예를 들어 본 발명의 실시예에 따른 도 1 및 도 2의 시스템이다. 이 도면은 시간축(302)에 따른 그래프의 형태로 동작(activity)을 설명한다: 공급 전압 그래프(supply voltage graph)(304), 파워-온 리셋 그래프(power-on reset graph)(306), 플래시 동작 그래프(Flash Activity graph)(308), CPU 리셋 그래프(CPU Reset graph)(310) 및 CPU 동작 그래프(CPU Activity graph)(312). 다섯 개의 중요한 타임 이벤트는 T0 ~ T4의 시간축을 따라 표시된다.3 is a timing diagram schematically illustrating a boot sequence of a computer system with a processor-reset generated by a flash device, for example the system of FIGS. 1 and 2 according to an embodiment of the present invention. This figure describes the activity in the form of a graph along the time axis 302: a supply voltage graph 304, a power-on reset graph 306, and a flash. Flash Activity graph 308, CPU Reset graph 310, and CPU Activity graph 312. Five important time events are displayed along the time axis from T0 to T4.

시간축은 시간-이벤트 T0(314)에서 시작한다. 전원 전압 레벨이 0V이고 시스템이 비활성 상태이다. 시간-이벤트 T1(316)에서, 전원 전압이 램핑을 시작하고, 시스템에 전원을 공급하고; 시간-이벤트 T2(318)에서, 공급 전압은 사전에 설정된 레벨(도 3에 예시된 실시예에서 VCC의 90 %)에 도달한다. POR 유닛은 시간-이벤트(Time-Event) T2(318)까지 리셋(Reset) 상태를 유지한다. 상기 POR이 리셋에서 벗어날 때 플래시 초기화가 시작되고 시간-이벤트 T3(320)에서 종료된다.The time axis starts at time-event T0 314. The supply voltage level is 0V and the system is inactive. At time-event T1 316, the power supply voltage starts ramping and powers the system; At time-event T2 318, the supply voltage reaches a predetermined level (90% of VCC in the embodiment illustrated in FIG. 3). The POR unit maintains a reset state until a time-event T2 318. When the POR leaves the reset, flash initialization starts and ends at time-event T3 (320).

CPU 리셋(Reset)(그래프 310)은 T0에서 T3까지(플래시 장치에 의해) 유지된다. T3에서 플래시 장치는 CPU 리셋을 해제한다. 잠시 후, 시간-이벤트 T4(322)에서 CPU는 플래시 시퀀스를 실행하기 위해 플래시 장치에 액세스 한다(CPU에 의한 일부 사후-리셋 사전-부트 작업에 의해 T3에서 T4까지의 시간이 필요할 수 있음).The CPU Reset (graph 310) is held from T0 to T3 (by flash unit). At T3, the flash device releases the CPU reset. After a while, at time-event T4 322, the CPU accesses the flash device to execute the flash sequence (some post-reset pre-boot operations by the CPU may require time from T3 to T4).

따라서, 도 3에 도시된 타이밍도에 따르면, CPU는 플래시 장치가 준비될 때만 짧은 지연으로 플래시에 액세스 할 것이다.Thus, according to the timing diagram shown in Fig. 3, the CPU will access the flash with a short delay only when the flash device is ready.

도 3에 도시된 타이밍도(300)는 일정한 비율로 그려지지 않고, 더 긴 수평 거리가 반드시 더 긴 시간 기간을 의미하는 것은 아니다. 또한, 타이밍도(300)는 단지 개념적 명확성을 위해 도시된 예시적인 도다. 임의의 다른 적절한 타이밍도가 본 발명의 다른 실시예에서 사용될 수 있다. 예를 들어, 일부 실시예에서, CPU 리셋(310)이, 플래시 초기화가 T4(322)에서 완료되는 시간으로부터 지연을 단축하기 위해, 플래시 초기화가 완료되기 약간 전에 종료될 수 있다.The timing diagram 300 illustrated in FIG. 3 is not drawn at a constant ratio, and a longer horizontal distance does not necessarily mean a longer time period. Further, the timing diagram 300 is an exemplary diagram shown for conceptual clarity only. Any other suitable timing diagram may be used in other embodiments of the present invention. For example, in some embodiments, CPU reset 310 may be terminated just before flash initialization is complete to shorten the delay from the time flash initialization completes at T4 322.

부트-코드 조작(Boot-Code Manipulation)Boot-Code Manipulation

일부 응용 프로그램에서는 플래시 장치에 프로세서-리셋 핀을 추가하는 것이 바람직하지 않거나 실행 불가능할 수 있다. 예를 들어, 플래시의 핀이 핀아웃 표준을 준수하거나 플래시가 다른 플래시 장치와 핀 호환이 가능해야 한다. 본 명세서에 제시된 본 발명의 실시예에 따르면, CPU는 플래시가 준비되기 전에 부팅 프로세스를 시작할 수 있지만, 플래시 장치는 CPU가 판독하는 부트-코드를 수정하여 플래시가 준비될 때까지 CPU를 효과적으로 대기시킨다.In some applications, adding a processor-reset pin to a flash device may be undesirable or impractical. For example, the pins of the flash must conform to the pinout standard, or the flash must be pin compatible with other flash devices. According to the embodiments of the present invention presented herein, the CPU may start the boot process before the flash is ready, but the flash device effectively waits until the flash is ready by modifying the boot-code read by the CPU. .

도 4는 본 발명의 일 실시예에 따라 플래시 장치에 의해 생성된 수정된 부트 명령(boot instruction)을 갖는 컴퓨터 시스템(400)을 개략적으로 도시하는 블록도이다. 시스템은 시스템(100)의 각 유닛(도 1)과 모두 동일할 수 있는 CPU(102), RAM(104), 주변 장치(Peripherals)(106), 버스(110) 및 외부 리셋 소스(External Reset Source)(118)를 포함한다.4 is a block diagram schematically illustrating a computer system 400 having a modified boot instruction generated by a flash device in accordance with an embodiment of the present invention. The system is a CPU 102, RAM 104, Peripherals 106, Bus 110, and External Reset Source, which may all be identical to each unit of system 100 (FIG. 1). ) (118).

플래시 장치(408)는 저장 어레이(112) 및 초기화 회로(114)를 포함하고; 이들은 시스템(100)의 대응하는 유닛과 동일할 수 있다. 또한, 플래시(408)는 정지-코드 유닛(Stall-code unit)(402) 및 멀티플렉서(MUX)(404)를 포함한다.The flash device 408 includes a storage array 112 and an initialization circuit 114; These may be the same as the corresponding units of system 100. The flash 408 also includes a Stall-code unit 402 and a multiplexer (MUX) 404.

정지-코드 유닛(402)은 CPU가 정지하게 하는 컴퓨터 명령을 출력하도록 구성된다. 예를 들어, 명령은 CPU가 동일 위치에서 무한히 명령을 판독하게 하는 자체-분기(branch-to-self)("b") 명령일 수 있다. 정지 명령의 코드는 하드 와이어(hard-wired) 되거나 플래시(408)의 비휘발성 셀에 저장될 수 있다.The stop-code unit 402 is configured to output computer instructions that cause the CPU to stop. For example, the instruction may be a branch-to-self ("b") instruction that causes the CPU to read the instruction indefinitely at the same location. The code of the stop command may be hard-wired or stored in a nonvolatile cell of the flash 408.

초기화 회로(114)는, 초기화 회로가 플래쉬가 준비되지 않았음을 나타낼 때 정지-코드(402)가 출력하는 데이터를 버스(110) 또는 초기화 회로가 플래시가 준비되었음을 나타낼 때 저장 어레이(112)가 출력하는 데이터를 라우트 되도록 구성되는 멀티플렉서(404)와 결합된다.The initialization circuit 114 transmits data output by the stop-code 402 when the initialization circuit indicates that the flash is not ready, and when the bus 110 or the initialization circuit indicates that the flash is ready, the storage array 112 is It is combined with a multiplexer 404 configured to route the output data.

따라서, 도 4에 도시된 예시적인 구성에 따르면, CPU는 플래시가 준비되지 않았을 때 부트 시퀀스를 시작할 수 있지만, CPU가 판독할 명령은 CPU를 정지시킨다. 플래시가 준비되면, 초기화 회로(114)에 의해 표시된 바와 같이, CPU는 저장 어레이(storage-array)(112)로부터 올바른 부트 시퀀스를 판독할 것이다.Thus, according to the exemplary configuration shown in Fig. 4, the CPU can start the boot sequence when the flash is not ready, but an instruction to be read by the CPU stops the CPU. When the flash is ready, as indicated by the initialization circuit 114, the CPU will read the correct boot sequence from the storage-array 112.

도 5는 본 발명의 실시예에 따라, 플래시 장치에 의해 생성된 수정된 부트 시퀀스를 갖는 컴퓨터 시스템(500)을 개략적으로 도시한 블록도이다. 시스템(500)은 도 4의 시스템(400)과 동일하고, 플래시(508)는 플래시(408)의 정지 명령 유닛(Stall Instruction unit)(402) 대신에 정지 시퀀스 유닛(Stall Sequence unit)(502)을 포함하는 것을 제외하고는 플래시(408)와 동일하다.5 is a block diagram schematically illustrating a computer system 500 having a modified boot sequence generated by a flash device, according to an embodiment of the present invention. The system 500 is the same as the system 400 of FIG. 4, and the flash 508 is a Stall Sequence unit 502 instead of the Stall Instruction unit 402 of the flash 408. It is the same as the flash 408 except that it includes.

정지 시퀀스 유닛(Stall Sequence unit)(508)은 플래시가 준비되지 않을 때 CPU가 실행하는 명령의 시퀀스를 포함한다(ARM 프로세서의 명령 세트에 관한 상세한 예가 아래에서 설명될 것이다). 정지 시퀀스 유닛은 CPU에 의해 수행된 액세스를 추적하고 멀티플렉서(404)에 대응하는 데이터를 전송한다(대안적인 실시예에서, 버스(110)의 어드레스 파트는 정지 시퀀스 유닛(502)에 입력되고 정지 시퀀스 유닛은 데이터를 해당 입력 주소에 보낸다).The Stall Sequence unit 508 contains a sequence of instructions that the CPU executes when the flash is not ready (a detailed example of the instruction set of the ARM processor will be described below). The stop sequence unit tracks the accesses performed by the CPU and transmits the data corresponding to the multiplexer 404 (in an alternative embodiment, the address part of the bus 110 is input to the stop sequence unit 502 and the stop sequence The unit sends data to the corresponding input address).

명령의 시퀀스에 대한 코드는 하드-와이어(hard-wired) 될 수 있거나, 플래시(508)의 비휘발성 셀에 저장될 수 있다(일부 실시예에서, 명령 시퀀스에 대한 코드는 부트-코드와 다른 플래시 뱅크에 저장되고, 다른 실시예에서는 명령 시퀀스가 플래시 셀로부터 휘발성 메모리(예를 들어, 플립 플롭 또는 SRAM 메모리)로 리셋 후 곧바로 전달되고 그 이후 휘발성 메모리에서 판독). 멀티플렉서는 플래쉬가 준비되지 않았을 때(초기화 회로(114)로 표시됨) 정지 시퀀스 유닛(503)으로부터, 그리고 플래시가 준비될 때 저장 어레이(112)로부터 데이터를 전송한다.The code for the sequence of commands may be hard-wired, or may be stored in a non-volatile cell of flash 508 (in some embodiments, the code for the sequence of commands is different from the boot-code. It is stored in a bank, and in other embodiments the sequence of commands is transferred from the flash cell to the volatile memory (e.g., flip flop or SRAM memory) immediately after reset and then read from the volatile memory). The multiplexer transfers data from the stop sequence unit 503 when the flash is not ready (indicated by the initialization circuit 114), and from the storage array 112 when the flash is ready.

따라서, 도 5의 예시적인 구성에 따르면, CPU는 플래시가 준비되지 않았을 때 사전에 설정된 명령 시퀀스를 실행하고, 플래시가 준비될 때 저장 어레이(112)에 저장된 부트 시퀀스를 실행할 수 있다.Accordingly, according to the exemplary configuration of FIG. 5, the CPU may execute a preset command sequence when the flash is not ready, and execute the boot sequence stored in the storage array 112 when the flash is ready.

일부 실시예에서, 정지 시퀀스의 실행으로부터 부트 시퀀스의 실행으로의 스위칭은 일관성을 보장하기 위해 알려진 CPU 상태(명령 시퀀스의 임의의 명령에서가 아니라)에서 수행되어야 한다. 플래시(508)는 시퀀스가 사전에 설정된 스테이지(예를 들어, 사전에 설정된 어드레스가 버스(110)로부터 입력된)에 도달할 때까지 준비 표시(ready indication)를 지연시키도록 구성된 회로를 포함할 수 있으며, 정지 시퀀스에서 부트 시퀀스로의 전환이 올바른 CPU 상태에서 수행되도록 보장한다.In some embodiments, the switching from execution of the stop sequence to execution of the boot sequence must be performed in a known CPU state (not in any instruction in the instruction sequence) to ensure consistency. Flash 508 may include circuitry configured to delay a ready indication until the sequence reaches a pre-set stage (e.g., a pre-set address input from bus 110). And ensure that the transition from the stop sequence to the boot sequence is performed in the correct CPU state.

알 수 있는 바와 같이, 도 4 및 도 5에 도시된 플래시(408 및 508), 멀티플렉서(mux)(404), 초기화 회로(114) 및 저장 어레이(112)의 구성은 단지 개념적 명료성을 위해 도시된 구성 예이다. 임의의 다른 적절한 구성이 다른 실시예에서 사용될 수 있다. 예를 들어, 멀티플렉서(404)는 플래시 어레이의 뱅크-선택 로직에 내장될 수 있다. 다른 실시예에 있어서, 일부 실시예에서, 버스(110)의 어드레스 와이어의 서브 세트는 정지 시퀀스 유닛에 입력된다.As can be seen, the configurations of the flashes 408 and 508, multiplexer (mux) 404, initialization circuit 114, and storage array 112 shown in FIGS. 4 and 5 are shown for conceptual clarity only. This is an example configuration. Any other suitable configuration may be used in other embodiments. For example, the multiplexer 404 may be embedded in the bank-select logic of the flash array. In other embodiments, in some embodiments, a subset of the address wires of bus 110 is input to a stop sequence unit.

본 명세서에서, 초기화 회로(114), 정지-코드 유닛(402 또는 502), 및 MUX(404)는 전체적으로 플래시 장치의 "회로"로 지칭된다. 다른 실시예에서, 임의의 다른 적절한 회로 구성이 사용될 수 있다.In this specification, the initialization circuit 114, the stop-code unit 402 or 502, and the MUX 404 are collectively referred to as "circuits" of the flash device. In other embodiments, any other suitable circuit configuration may be used.

도 6은 본 발명의 일부 실시예에 따라 프로세서-정지를 갖는 컴퓨터 시스템의 부트 시퀀스를 개략적으로 도시한 타이밍도(600)이다. 이 다이어그램은 시간축(602)을 따라 그래프의 형태로 작동을 설명한다: 전원 전압 리셋 그래프(supply voltage graph)(604), 전원-온 리셋 그래프(power-on reset graph)(606), 플래시 동작 그래프(Flash Activity graph)(608), CPU 리셋 그래프(Reset graph)(610) 및 CPU 동작 그래프(CPU Activity graph)(612)(그래프 604, 606 및 608은 도 3에 도시된 타이밍도(300)의 그래프 304, 306 및 308과 각각 동일).6 is a timing diagram 600 schematically illustrating the boot sequence of a computer system with a processor-stop in accordance with some embodiments of the present invention. This diagram describes the operation in the form of a graph along the time axis 602: a supply voltage graph 604, a power-on reset graph 606, and a flash operation graph. (Flash Activity graph) 608, CPU Reset graph 610, and CPU Activity graph 612 (graphs 604, 606 and 608 are of the timing diagram 300 shown in FIG. Same as graphs 304, 306 and 308 respectively).

네 개의 중요한 시간-이벤트(Time-Event)가 시간축(T0~T3)을 따라 표시된다.Four important time-events are displayed along the time axis (T0-T3).

시간축은 시간-이벤트 T0에서 시작한다(614). 전원 전압 레벨이 0V이고 시스템이 비활성 상태이다. 시간-이벤트 T1(616)에서, 전원 전압이 램핑을 시작하고 시스템 전원을 켜기 시작한다. 시간-이벤트 T2(618)에서, 공급 전압은 사전에 설정된 레벨(예를 들어, 도 3에 예시된 실시예에서 VCC의 90 %)에 도달한다. POR 유닛은 시간-이벤트(Time-Event) T2(618)까지 리셋(Reset) 상태를 유지한다. POR이 리셋에 존재할 때 플래시 초기화가 시작되고, 시간-이벤트 T3(620)에서 종료된다.The time axis starts at time-event T0 (614). The supply voltage level is 0V and the system is inactive. At time-event T1 616, the supply voltage starts ramping and starts powering up the system. At time-event T2 618, the supply voltage reaches a predetermined level (eg, 90% of VCC in the embodiment illustrated in FIG. 3). The POR unit maintains a reset state until a time-event T2 618. Flash initialization begins when POR is present in reset and ends at time-event T3 (620).

T2(618)에서 CPU Reset(그래프 610)이 해제되고 CPU는 플래시 장치에서 데이터를 판독하면서 부팅을 시도한다. 그러나 플래시 장치가(T2에서 T3로) 초기화 되는 동안 CPU는 플래시에서 정지-코드를 판독한다. 플래시 초기화가 완료될 때만 CPU가 플래시에서 실제 부팅 데이터를 판독하고 부트 시퀀스를 실행한다.At T2 618, the CPU Reset (graph 610) is released, and the CPU attempts to boot while reading data from the flash device. However, while the flash device is being initialized (from T2 to T3), the CPU reads a stop-code from the flash. Only when flash initialization is complete, the CPU reads the actual boot data from the flash and executes the boot sequence.

따라서, 도 6에 도시된 타이밍도(600)에 따르면, CPU는 플래시가 초기화 될 때 리셋으로부터 해제되지만, 초기화가 완료될 때까지 플래시로부터 정지-코드를 판독할 것이다. CPU는 플래시가 준비되었을 때만 플래시에서 실제 부트-코드를 판독한다.Thus, according to the timing diagram 600 shown in Fig. 6, the CPU is released from reset when the flash is initialized, but will read a stop-code from the flash until the initialization is complete. The CPU reads the actual boot-code from flash only when the flash is ready.

도 6에 도시된 타이밍도(600)는 일정한 비율로 그려지지 않고, 더 긴 수평 거리가 반드시 더 길게 각각의 시간 기간을 의미하는 것은 아니다. 또한, 타이밍도(600)는 단지 개념적 명확성을 위해 도시된 예시적인 도이다. 임의의 다른 적절한 타이밍도가 본 발명의 다른 실시예에서 사용될 수 있다.The timing diagram 600 shown in FIG. 6 is not drawn at a constant rate, and a longer horizontal distance does not necessarily mean longer each time period. Further, timing diagram 600 is an exemplary diagram shown for conceptual clarity only. Any other suitable timing diagram may be used in other embodiments of the present invention.

정지 명령 예(Stall-Instruction Example)Stall-Instruction Example

일부 프로세서 아키텍처에서 프로세서 부트 시퀀스는 0x00000000 주소에서 부트-코드를 판독할 수 있다.In some processor architectures, the processor boot sequence can read the boot-code at address 0x00000000.

플래시 장치가 준비되지 않은 경우, 정지-명령 유닛(402)(도 4)은 CPU에 "자체-분기(branch-to-self)" 명령('b .')의 루프를 전송할 것이다.If the flash device is not ready, the stop-instruction unit 402 (Figure 4) will send a loop of "branch-to-self" instructions ('b.') to the CPU.

CPU가 실행할 정지 시퀀스는 다음과 같다.The stop sequence to be executed by the CPU is as follows.

● 'b .' // 분기 자체 명령어● 'b .' // branch instruction

● 'b .' // 분기 자체 명령어● 'b .' // branch instruction

● 'b .' // 분기 자체 명령어● 'b .' // branch instruction

● ....● ....

● 'b .' // 분기 자체 명령어● 'b .' // branch instruction

부트-코드는 어드레스 0x0000에서 시작하여 저장 어레이(storage array)(112)에 저장된다.The boot-code is stored in a storage array 112 starting at address 0x0000.

정지 시퀀스 예(Stall Sequence Example)Stall Sequence Example

일부 프로세서 아키텍처에서, 프로세서 부트 시퀀스는 먼저 메모리 장치(예를 들어, 명령 포인터, 스택 포인터 등)로부터 일부 데이터 또는 구성을 로드 한 다음 메인 부트-코드의 실행을 시작한다.In some processor architectures, the processor boot sequence first loads some data or configuration from a memory device (eg, instruction pointer, stack pointer, etc.) and then begins executing the main boot-code.

부트 시퀀스는 예를 들어 다음 시퀀스를 포함할 수 있다.The boot sequence may include the following sequence, for example.

1. 주소 0에서 스택 포인터(SP) 레지스터에 워드를 로드 한다;1. Load a word into the stack pointer (SP) register at address 0;

2. 주소 4에서 프로그램 카운터(PC) 레지스터에 워드를 로드 한다2. Load a word into the program counter (PC) register at address 4

3. PC가 가리키는 주소에서 코드 실행을 시작한다.3. Start code execution at the address pointed to by the PC.

메모리 장치가 내부 리셋 시퀀스를 완료하게 하기 위해, 정지 시퀀스 유닛(stall sequence unit)(502)은 어드레스 0 또는 4가 액세스 될 때 PC 및 SP에 대한 값을 리턴 하고, 어드레스 0 또는 4가 액세스 될 때 어드레스 위치 0에 저장된다. CPU는 주소 0과 4를 한 번만 판독한 다음 플래시 장치가 준비될 때까지 자체-분기(branch-to-self) 명령을 계속 판독한다.In order for the memory device to complete the internal reset sequence, the stall sequence unit 502 returns values for PC and SP when address 0 or 4 is accessed, and when address 0 or 4 is accessed. It is stored at address position 0. The CPU reads addresses 0 and 4 only once, then continues reading the branch-to-self instruction until the flash device is ready.

예를 들어, 부트 벡터가 다음을 포함하는 경우:For example, if the boot vector contains:

0x000: 0x20001000 // SP 값0x000: 0x20001000 // SP value

0x004: 0x00000100 // PC 값0x004: 0x00000100 // PC value

......

0x100: [여기에서 부트-코드가 시작된다]0x100: [boot-code starts here]

플래시 장치는 준비되지 않은 경우 CPU에 다음 시퀀스를 보낸다.When the flash device is not ready, it sends the next sequence to the CPU.

최초 액세스시 - 0x20001000 // SP 초기화First access-0x20001000 // SP initialization

두 번째 액세스시 - 0x00000100 // PC 초기화On second access-0x00000100 // PC initialization

추가 액세스시 - "b."// 자체 코드로 분기On further access-"b." // branch to own code

컴퓨터 시스템(100, 200, 400, 500)의 구성; 플래시 장치(108, 208, 408 및 508)의 구성; 및 도 1 및 도 2와 관련하여 전술한 다른 유닛의 구성을 도시한다. 도 1, 도 2, 도 4 및 도 5는 순수하게 개념적 명료함을 위해 도시된 구성 예이다.The configuration of computer systems 100, 200, 400, 500; Configuration of flash devices 108, 208, 408 and 508; And the configuration of another unit described above with respect to FIGS. 1 and 2. 1, 2, 4, and 5 are examples of configurations shown purely for conceptual clarity.

예를 들어, 복수의 플래시 장치 및/또는 복수의 CPU 유닛을 갖는 시스템 구성을 포함하는 다른 실시예에서, 임의의 다른 적절한 구성이 사용될 수 있으며, 이들 중 일부 또는 전부는 별개의 리셋 입력을 갖는다.For example, in other embodiments including a system configuration having a plurality of flash devices and/or a plurality of CPU units, any other suitable configuration may be used, some or all of which have separate reset inputs.

도 2 및 도 3에서 설명된 요소 중 일부는, 도 1, 2, 4 및 5는 소프트웨어를 사용하거나, 하드웨어를 사용하거나 또는 하드웨어와 소프트웨어 요소의 조합을 사용하는 ASIC(Application-Specific Integrated Circuit) 또는 FPGA(Field-Programmable Gate Array)와 같은 적절한 하드웨어를 사용하여 구현될 수 있다.Some of the elements described in FIGS. 2 and 3 may include an Application-Specific Integrated Circuit (ASIC) using software, hardware, or a combination of hardware and software elements, or It can be implemented using suitable hardware, such as a Field-Programmable Gate Array (FPGA).

본 명세서에 설명된 실시예는 주로 비휘발성 메모리가 내장된 컴퓨터 시스템을 다루지만 여기에 기술된 방법 및 시스템은 하드 디스크와 같은 다른 저장 장치를 갖는 컴퓨터 시스템과 같은 다른 애플리케이션에도 사용될 수 있다. 따라서, 전술한 실시예는 예시로서 인용되었고, 본 발명은 상기에 특별히 도시되고 설명된 것에 한정되지 않는다는 것을 알 것이다. 오히려, 본 발명의 범위는 전술한 다양한 특징의 조합 및 서브 조합뿐만 아니라 전술한 설명을 읽었을 때 당업자에게 발생할 수 있고 종래 기술에 개시되지 않은 변형 및 수정을 포함한다. 본 특허 출원에 참고 문헌으로 포함된 문헌은 본 명세서에서 명시적으로 또는 암시적으로 행해지는 정의와 상충되는 방식으로 이들 통합된 문서에서 임의의 용어가 정의되는 경우를 제외하고는, 본 명세서의 정의만을 고려해야 한다.Although the embodiments described herein primarily deal with computer systems incorporating non-volatile memory, the methods and systems described herein can also be used in other applications, such as computer systems having other storage devices such as hard disks. Accordingly, it will be appreciated that the above-described embodiments have been cited by way of example, and that the invention is not limited to those specifically shown and described above. Rather, the scope of the invention includes combinations and subcombinations of the various features described above, as well as variations and modifications that may occur to those skilled in the art upon reading the foregoing description and are not disclosed in the prior art. Documents incorporated by reference in this patent application are the definitions of the present specification, except where any term is defined in these consolidated documents in a manner contrary to the definitions made expressly or implicitly herein. Only to be considered.

Claims (16)

메모리 장치에 있어서,
비휘발성 메모리(NVM); 및
회로를 포함하고,
프로세서에 대한 메모리 액세스 동작을 실행하기 위해 NVM을 준비하고 초기화하고; 및
NVM의 준비 및 초기화의 적어도 일부 동안 프로세서가 부트스트랩 되는 것을 방지함으로써,
NVM이 준비되기 전에 프로세서로부터 메모리 액세스 동작이 수신되지 않는 것을
확실히 하도록 구성되는
장치.
In the memory device,
Nonvolatile memory (NVM); And
Circuit,
Prepare and initialize the NVM to perform a memory access operation for the processor; And
By preventing the processor from bootstrapping during at least part of the NVM's preparation and initialization,
The memory access operation is not received from the processor before the NVM is ready.
Configured to make sure
Device.
제1항에 있어서,
상기 회로는,
상기 NVM의 초기화 및 준비 중 적어도 일부 동안,
상기 프로세서를 리셋 상태로 유지함으로써 상기 프로세서가 부트스트랩 되는 것을
방지하도록 구성되는
장치.
The method of claim 1,
The circuit,
During at least some of the initialization and preparation of the NVM,
Keeping the processor in a reset state prevents the processor from being bootstrapped.
Configured to prevent
Device.
제2항에 있어서,
상기 NVM은 상기 프로세서의 부트-코드를 저장하도록 구성되며,
상기 회로는 상기 NVM의 초기화 및 준비 중 적어도 일부 이후에 상기 프로세서를 상기 리셋 상태로부터 해제하도록 구성되고,
후속하여 부트-코드를 프로세서에 제공하는
장치.
The method of claim 2,
The NVM is configured to store the boot-code of the processor,
The circuit is configured to release the processor from the reset state after at least some of the initialization and preparation of the NVM,
Subsequently providing the boot-code to the processor
Device.
제1항에 있어서,
상기 NVM은 상기 프로세서의 부트-코드를 저장하도록 구성되며,
상기 NVM의 초기화 및 준비 중 적어도 일부 동안, 상기 프로세서가 부트스트랩 되는 것을 방지하는 대체 코드를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 요청에 응답하고; 및 상기 NVM의 초기화 및 준비 중 적어도 일부 이후에, 상기 부트-코드를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 후속하는 요청에 응답함으로써,
상기 회로는 부트스트랩으로부터 상기 프로세서를 방지하도록 구성되는
장치.
The method of claim 1,
The NVM is configured to store the boot-code of the processor,
Responding to a request from the processor for the boot-code by providing replacement code that prevents the processor from being bootstrapped during at least some of the initialization and preparation of the NVM; And after at least some of the initialization and preparation of the NVM, by responding to a subsequent request from the processor for the boot-code by providing the boot-code,
The circuit is configured to prevent the processor from bootstrap
Device.
제4항에 있어서,
상기 대체 코드는,
상기 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 상기 프로세서로 하여금 반복하도록 하는
장치.
The method of claim 4,
The replacement code,
Causing the processor to repeat until at least part of the initialization and preparation of the NVM is completed.
Device.
제4항에 있어서,
상기 대체 코드는,
한번 실행되는 제1 파트, 및 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 반복적으로 실행되는 제2 파트
를 포함하는
장치.
The method of claim 4,
The replacement code,
The first part executed once, and the second part repeatedly executed until at least part of the initialization and preparation of the NVM is completed.
Including
Device.
제6항에 있어서,
상기 제1 파트는,
상기 프로세서의 레지스터를 로드 하는 명령
을 포함하는
장치.
The method of claim 6,
The first part,
Instruction to load the register of the processor
Containing
Device.
제1항에 있어서,
상기 NVM 및 상기 회로는,
동일한 집적 회로(IC) 패키지에 패키지 되는
장치.
The method of claim 1,
The NVM and the circuit,
Packaged in the same integrated circuit (IC) package
Device.
메모리 장치의 방법에 있어서,
상기 메모리 장치 내의 회로를 이용하는 단계,
프로세서에 대한 메모리 액세스 동작을 실행하기 위해 상기 메모리 장치 내의 비휘발성 메모리(NVM)의 초기화 및 준비하는 단계; 및
NVM의 준비 및 초기화의 적어도 일부 동안 프로세서가 부트스트랩 되는 것을 방지함으로써, 상기 메모리 장치의 회로에 의해 상기 NVM이 준비되기 전에 상기 프로세서로부터 어떠한 메모리 액세스 동작도 수신되지 않음을 확실히 하는 단계
를 포함하는
방법.
In the method of a memory device,
Using a circuit in the memory device,
Initializing and preparing a nonvolatile memory (NVM) in the memory device to perform a memory access operation for a processor; And
Preventing the processor from bootstrap during at least part of the preparation and initialization of the NVM, thereby ensuring that no memory access operation is received from the processor before the NVM is ready by the circuit of the memory device.
Including
Way.
제9항에 있어서,
상기 프로세서가 부트스트랩 되는 것을 방지하는 단계는,
상기 NVM의 초기화 및 준비 중 적어도 일부 동안 상기 프로세서를 리셋 상태로 유지하는 단계
를 포함하는
방법.
The method of claim 9,
Preventing the processor from being bootstrapped,
Maintaining the processor in a reset state during at least some of the initialization and preparation of the NVM
Including
Way.
제10항에 있어서,
상기 프로세서의 부트-코드를 상기 NVM에 저장하는 단계,
상기 NVM의 초기화 및 준비 중 적어도 일부 이후에 상기 프로세서를 상기 리셋 상태로부터 해제하는 단계, 및
이어서 상기 부트-코드를 상기 프로세서에 제공하는 단계
를 포함하는
방법.
The method of claim 10,
Storing the boot-code of the processor in the NVM,
Releasing the processor from the reset state after at least part of the initialization and preparation of the NVM, and
Then providing the boot-code to the processor
Including
Way.
제9항에 있어서,
상기 프로세서의 부트-코드를 상기 NVM에 저장하는 단계를 포함하고,
상기 프로세서가 부트스트랩 되는 것을 방지하는 단계는,
상기 NVM의 초기화 및 준비 중 적어도 일부 동안, 상기 프로세서가 부트스트랩 되는 것을 방지하는 대체 코드를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 요청에 응답하는 단계; 및
상기 NVM의 초기화 및 준비 중 적어도 일부 이후에, 상기 부트-코드를 제공함으로써 상기 부트-코드에 대한 상기 프로세서로부터의 후속 요청에 응답하는 단계
를 더 포함하는
방법.
The method of claim 9,
Including the step of storing the boot-code of the processor in the NVM,
Preventing the processor from being bootstrapped,
Responding to a request from the processor for the boot-code by providing replacement code that prevents the processor from being bootstrapped during at least some of the initialization and preparation of the NVM; And
After at least part of the initialization and preparation of the NVM, responding to a subsequent request from the processor for the boot-code by providing the boot-code
Further comprising
Way.
제12항에 있어서,
상기 대체 코드는,
상기 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 상기 프로세서로 하여금 반복하도록 하는
방법.
The method of claim 12,
The replacement code,
Causing the processor to repeat until at least part of the initialization and preparation of the NVM is completed.
Way.
제12항에 있어서,
대체 코드는,
한번 실행되는 제1 파트, 및 NVM의 초기화 및 준비의 적어도 일부가 완료될 때까지 반복적으로 실행되는 제2 파트
를 포함하는
방법.
The method of claim 12,
The replacement code is,
The first part executed once, and the second part repeatedly executed until at least part of the initialization and preparation of the NVM is completed.
Including
Way.
제14항에 있어서,
상기 제 1 파트는,
상기 프로세서의 레지스터를 로드 하는 명령
을 포함하는
방법.
The method of claim 14,
The first part,
Instruction to load the register of the processor
Containing
Way.
제9항에 있어서,
상기 NVM 및 상기 회로는,
동일한 집적 회로(IC) 패키지에 패키지 되는
방법.

The method of claim 9,
The NVM and the circuit,
Packaged in the same integrated circuit (IC) package
Way.

KR1020190065292A 2019-06-03 2019-06-03 Delayed Reset for Code Execution from memory Device Active KR102300822B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190065292A KR102300822B1 (en) 2019-06-03 2019-06-03 Delayed Reset for Code Execution from memory Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190065292A KR102300822B1 (en) 2019-06-03 2019-06-03 Delayed Reset for Code Execution from memory Device

Publications (2)

Publication Number Publication Date
KR20200139294A true KR20200139294A (en) 2020-12-14
KR102300822B1 KR102300822B1 (en) 2021-09-10

Family

ID=73780062

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190065292A Active KR102300822B1 (en) 2019-06-03 2019-06-03 Delayed Reset for Code Execution from memory Device

Country Status (1)

Country Link
KR (1) KR102300822B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293610A (en) * 1989-08-04 1994-03-08 Motorola, Inc. Memory system having two-level security system for enhanced protection against unauthorized access
US20050283598A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Method and system for loading processor boot code from serial flash memory
JP2010282499A (en) * 2009-06-05 2010-12-16 Renesas Electronics Corp Computer system, information protection method and program
JP2012073755A (en) * 2010-09-28 2012-04-12 Renesas Electronics Corp Semiconductor device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5293610A (en) * 1989-08-04 1994-03-08 Motorola, Inc. Memory system having two-level security system for enhanced protection against unauthorized access
US20050283598A1 (en) * 2004-06-22 2005-12-22 International Business Machines Corporation Method and system for loading processor boot code from serial flash memory
JP2010282499A (en) * 2009-06-05 2010-12-16 Renesas Electronics Corp Computer system, information protection method and program
JP2012073755A (en) * 2010-09-28 2012-04-12 Renesas Electronics Corp Semiconductor device

Also Published As

Publication number Publication date
KR102300822B1 (en) 2021-09-10

Similar Documents

Publication Publication Date Title
US7234052B2 (en) System boot using NAND flash memory and method thereof
US9858084B2 (en) Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US11972243B2 (en) Memory device firmware update and activation without memory access quiescence
US6601167B1 (en) Computer system initialization with boot program stored in sequential access memory, controlled by a boot loader to control and execute the boot program
KR100239585B1 (en) How to operate a computer system with recoverable basic firmware
US7908466B2 (en) Method and apparatus for booting a microprocessor system using boot code stored on a serial flash memory array having a random-access interface
US7296143B2 (en) Method and system for loading processor boot code from serial flash memory
CN1307532C (en) Guide system utilizing non-flash memory and its method
BR112014014815B1 (en) COMPUTING DEVICE, METHOD AND STORAGE MEANS FOR PERFORMING FIRMWARE BACKUP COPY
TW201224918A (en) Providing platform independent memory logic
EP3289442B1 (en) Central processing unit with enhanced instruction set
KR100604877B1 (en) Apparatus and method for controlling the mapping of memory addresses in embedded systems
EP3699913B1 (en) Delayed reset for code execution from memory device
US9934045B1 (en) Embedded system boot from a storage device
KR102300822B1 (en) Delayed Reset for Code Execution from memory Device
US11614949B2 (en) Method and device for managing operation of a computing unit capable of operating with instructions of different sizes
CN115374051A (en) SoC (system on chip) on-chip SRAM (static random Access memory) multiplexing method, electronic equipment and SoC
CN119201155A (en) Firmware update by logical address remapping
KR20060118715A (en) Operation processing unit and memory interface device and method
JPS60230261A (en) Initializing control system in multi-processor system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20190603

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20200629

Patent event code: PE09021S01D

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210226

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20210815

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20210906

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20210906

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20240827

Start annual number: 4

End annual number: 4