KR101119434B1 - 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체 - Google Patents

하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체 Download PDF

Info

Publication number
KR101119434B1
KR101119434B1 KR1020100048958A KR20100048958A KR101119434B1 KR 101119434 B1 KR101119434 B1 KR 101119434B1 KR 1020100048958 A KR1020100048958 A KR 1020100048958A KR 20100048958 A KR20100048958 A KR 20100048958A KR 101119434 B1 KR101119434 B1 KR 101119434B1
Authority
KR
South Korea
Prior art keywords
specific event
memory
command
stored
area
Prior art date
Application number
KR1020100048958A
Other languages
English (en)
Other versions
KR20110129541A (ko
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 KR1020100048958A priority Critical patent/KR101119434B1/ko
Publication of KR20110129541A publication Critical patent/KR20110129541A/ko
Application granted granted Critical
Publication of KR101119434B1 publication Critical patent/KR101119434B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Abstract

마이크로 콘트롤러 유닛이 개시된다.
본 발명의 바람직한 일 실시예에 따르면, 마이크로 콘트롤러 유닛(Micro Controller Unit)에 있어서, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드(code)가 저장되는 제 1 영역 및 특정 이벤트(event)가 저장되는 제 2 영역을 포함하는 제 1 메모리(memory); 및 상기 제 1 영역 및 제 2 영역을 분리하여 관리하며, 상기 제 1 영역에 대한 읽기 작업이 상기 제 2 영역에 대한 쓰기 작업에 의해 중단되지 않도록 상기 제 1 메모리를 관리하는 가상 메모리 관리 모듈(module)을 포함하는 것을 특징으로 하는 마이크로 콘트롤러 유닛이 제공된다.
본 발명에 의하면, 플래시 메모리를 가상 이이피롬 영역과 플래시 영역으로 논리 구획하여 사용하는 것에 의해 마이크로 콘트롤러 유닛에서 이이피롬의 사용을 배제할 수 있다. 따라서, 마이크로 콘트롤러 유닛의 크기를 작게 할 수 있고, 그 가격을 저렴하게 할 수 있는 장점이 있다.

Description

하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체{MICRO CONTROLLER UNIT SHARING ONE MEMORY, METHOD FOR CONTROLLING MEMORY INCLUDED THEREIN AND COMPUTER READABLE RECORD-MIDIUM ON WHICH PROGRAM FOR EXCUTING METHOD THEREOF}
본 발명은 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛(MCU : Micro Controller Unit), 이에 포함되는 메모리(memory) 제어 방법 및 그 방법을 실행하는 프로그램(program)이 기록된 기록 매체에 관한 것이다.
마이크로 콘트롤러 유닛은 하나의 칩(chip) 안에 연산을 수행하는 코어(core) 외에 프로세서(processor) 회로에 필수적인 저장 매체, 입/출력(I/O) 제어회로 등을 하나의 칩에 모두 내장하여 전체 회로를 간단하게 구성한 것으로 임베디드 콘트롤러(Embbeded Controller)라고도 한다. 마이크로 콘트롤러 유닛은 하나의 IC(Integrated Circuit) 만으로 완전한 컴퓨터로서의 기능을 갖추고 있어 단일칩(single-chip) 또는 원 칩(one-chip) 마이크로 컴퓨터라고도 불리우고 있다.
마이크로 콘트롤러 유닛은 전자제품 예를 들어, PDA(Personal Digital Assistant), PPC(Palm Sized PC), HPC(Hand Held PC), 랩탑(Lap Top) 컴퓨터 및 노트북 등에 내장되어 전자제품의 전체 동작을 제어함과 동시에, 사용자에 의해 입력된 명령을 처리하고 그 명령에 따라 전자제품의 동작을 제어하는 역할을 수행한다.
종래의 마이크로 콘트롤러 유닛은 저장 매체로서 플래시 메모리(FRASH MEMORY) 및 이이피롬(EEPROM : Electrically Erasable Programmable Read-Only Memory)을 사용하였다. 플래시 메모리에는 코어가 연산을 수행하는데 필요한 명령 코드(code)가 저장되며, 이이피롬에는 키(key) 입력값과 같은 특정 이벤트(event)가 저장된다. 이와 같이, 명령 코드와 특정 이벤트가 물리적으로 분리된 별개의 메모리에 저장되므로, 코어가 명령 코드를 읽어들이고(read), 특정 이벤트를 기록(wirte) 또는 삭제(delete)를 하는 과정에서 멈추지 않고 동작할 수 있는 것이다.
다만, 종래와 같이, 마이크로 콘트롤러 유닛은 저장 매체로 복수의 메모리를 포함함으로써, 크기가 크고 가격이 비싸다는 문제점이 있었다.
이에, 본 발명은 크기가 작고 가격이 저렴한 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 제어 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체를 제공하는데 그 목적이 있다.
본 발명의 다른 목적들은 이하의 실시예에 대한 설명을 통해 쉽게 이해될 수 있을 것이다.
상기한 바와 같은 목적을 달성하기 위해 본 발명의 일 측면에 의하면 마이크로 콘트롤러 유닛이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 마이크로 콘트롤러 유닛(Micro Controller Unit)에 있어서, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드(code)가 저장되는 제 1 영역 및 특정 이벤트(event)가 저장되는 제 2 영역을 포함하는 제 1 메모리(memory); 및 상기 제 1 영역 및 제 2 영역을 분리하여 관리하며, 상기 제 1 영역에 대한 읽기 작업이 상기 제 2 영역에 대한 쓰기 작업에 의해 중단되지 않도록 상기 제 1 메모리를 관리하는 가상 메모리 관리 모듈(module)을 포함하는 것을 특징으로 하는 마이크로 콘트롤러 유닛이 제공된다.
여기서, 상기 특정 이벤트는 상기 마이크로 콘트롤러 유닛에 인가되는 전원이 차단된 경우에도 저장되어야 하는 상기 명령 코드 이외의 데이터(data)일 수 있다.
그리고, 상기 특정 이벤트는 키(key) 입력값 또는 프로그램 변수 등을 포함할 수 있다.
또한, 상기 제 1 메모리는 플래시 메모리(flash memory)일 수 있다.
또한, 상기 가상 메모리 관리 모듈은, 명령 코드 읽기 명령을 수신한 때, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업에 대한 정보를 저장하고, 상기 수신된 명령 코드 읽기 명령을 처리하고, 상기 수신된 명령 코드 읽기 명령의 처리가 완료되면, 상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여 상기 중단된 특징 이벤트 쓰기 작업을 진행할 수 있다.
또한, 상기 가상 메모리 관리 모듈은, 특정 이벤트 쓰기 명령을 수신한 때, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하고, 상기 진행 중인 명령 코드 읽기 작업이 완료된 때 상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여 상기 수신된 특정 이벤트 쓰기 명령을 처리할 수 있다.
또한, 상기 가상 메모리 관리 모듈은 상기 중단된 특정 이벤트 쓰기 작업에 대한 정보 또는 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하기 위한 제 2 메모리를 포함할 수 있다.
또한, 상기 제 2 메모리는 램(RAM : Random Access Memory)일 수 있다.
또한, 상기 제 2 메모리는 상기 제 2 영역 보다 작은 용량을 가질 수 있다.
본 발명의 다른 측면에 따르면, 마이크로 콘트롤러 유닛에 포함된 메모리의 제어 방법이 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법에 있어서, 명령 코드 읽기 명령을 수신하는 단계; 특정 이벤트 쓰기 작업이 진행 중인지 여부를 판단하는 단계; 상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 진행 중인 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하는 단계; 상기 수신된 명령 코드 읽기 명령을 처리하는 단계; 상기 수신된 명령 코드 읽기 명령의 처리가 완료되는 단계; 및 상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여, 상기 중단된 특정 이벤트 쓰기 작업을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법이 제공된다.
여기서, 상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중이지 아니한 경우, 상기 진행 중인 특징 이벤트 쓰기 작업 중단 및 상기 중단된 특정 이벤트 쓰기 작업 정보의 저장 없이 상기 수신된 명령 코드 읽기 명령을 처리할 수 있다.
그리고, 상기 제 1 메모리는 플래시 메모리일 수 있다.
또한, 상기 마이크로 콘트롤러 유닛은 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하기 위한 제 2 메모리를 더 포함할 수 있다.
또한, 상기 제 2 메모리는 램일 수 있다.
또한, 상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작을 수 있다.
본 발명의 다른 실시예에 따르면, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법에 있어서, 특정 이벤트 쓰기 명령을 수신하는 단계; 명령 코드 읽기 작업이 진행 중인지 여부를 판단하는 단계; 상기 판단 결과, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하는 단계; 상기 진행 중인 명령 코드 읽기 작업이 완료되는 단계; 및 상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여, 상기 저장된 특정 이벤트 쓰기 명령을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법이 제공된다.
여기서, 상기 판단 결과, 명령 코드 읽기 작업이 진행 중이지 아니한 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트의 저장 없이 상기 수신된 특정 이벤트 쓰기 명령을 처리할 수 있다.
그리고, 상기 제 1 메모리는 플래시 메모리일 수 있다.
또한, 상기 마이크로 콘트롤러 유닛은 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하기 위한 제 2 메모리를 더 포함할 수 있다.
또한, 상기 제 2 메모리는 램일 수 있다.
또한, 상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작을 수 있다.
본 발명의 또 다른 측면에 따르면, 마이크로 콘트롤러 유닛에 포함된 메모리 제어 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
본 발명의 바람직한 일 실시예에 따르면, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법을 구현하기 위한 프로그램이 기록된 기록매체에 있어서, 명령 코드 읽기 명령을 수신하는 단계; 특정 이벤트 쓰기 작업이 진행 중인지 여부를 판단하는 단계; 상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 진행 중인 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하는 단계; 상기 수신된 명령 코드 읽기 명령을 처리하는 단계; 상기 수신된 명령 코드 읽기 명령의 처리가 완료되는 단계; 및 상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여, 상기 중단된 특정 이벤트 쓰기 작업을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
여기서, 상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중이지 아니한 경우, 상기 진행 중인 특징 이벤트 쓰기 작업 중단 및 상기 중단된 특정 이벤트 쓰기 작업 정보의 저장 없이 상기 수신된 명령 코드 읽기 명령을 처리할 수 있다.
그리고, 상기 제 1 메모리는 플래시 메모리일 수 있다.
또한, 상기 마이크로 콘트롤러 유닛은 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하기 위한 제 2 메모리를 더 포함할 수 있다.
또한, 상기 제 2 메모리는 램일 수 있다.
또한, 상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작을 수 있다.
본 발명의 다른 실시예에 따르면, 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법을 구현하기 위한 프로그램이 기록된 기록매체에 있어서, 특정 이벤트 쓰기 명령을 수신하는 단계; 명령 코드 읽기 작업이 진행 중인지 여부를 판단하는 단계; 상기 판단 결과, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하는 단계; 상기 진행 중인 명령 코드 읽기 작업이 완료되는 단계; 및 상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여, 상기 저장된 특정 이벤트 쓰기 명령을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법을 구현하기 위한 프로그램을 기록한 기록매체가 제공된다.
여기서, 상기 판단 결과, 명령 코드 읽기 작업이 진행 중이지 아니한 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트의 저장 없이 상기 수신된 특정 이벤트 쓰기 명령을 처리할 수 있다.
그리고, 상기 제 1 메모리는 플래시 메모리일 수 있다.
또한, 상기 마이크로 콘트롤러 유닛은 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하기 위한 제 2 메모리를 더 포함할 수 있다.
또한, 상기 제 2 메모리는 램일 수 있다.
또한, 상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작을 수 있다.
이상에서 설명한 바와 같이, 본 발명에 의한 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 제어 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체에 의하면, 플래시 메모리를 가상 이이피롬 영역과 플래시 영역으로 논리 구획하여 사용하는 것에 의해 마이크로 콘트롤러 유닛에서 이이피롬의 사용을 배제할 수 있다. 따라서, 마이크로 콘트롤러 유닛의 크기를 작게 할 수 있고, 그 가격을 저렴하게 할 수 있는 장점이 있다.
그리고, 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 제어 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체에 의하면, 위와 같이 이이피롬의 사용이 배제되더라도, 가상 메모리 관리 모듈이 명령 코드의 읽기 작업이 특정 이벤트 쓰기 작업에 의해 중단되지 않도록 하는 것에 의해, 코어가 종래 이이피롬이 구비된 환경과 동일하게 동작할 수 있는 장점이 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 마이크로 콘트롤러 유닛의 구조를 개략적으로 도시한 블록도이다.
도 2는 도 1의 플래시 메모리의 구조를 나타내는 도면이다.
도 3은 도 1의 가상 메모리 관리 모듈의 구조를 나타내는 블록도이다.
도 4는 도 1의 마이크로 콘트롤러 유닛의 구조를 좀 더 구체적으로 도시한 도면이다.
도 5는 이이피롬과 램의 구조를 나타내는 도면이다.
도 6은 명령 코드 읽기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
도 7은 특정 이벤트 쓰기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
도 8은 가상 메모리 관리 모듈이 특정 이벤트 쓰기 작업 중 명령 코드 읽기 명령을 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다.
반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부된 도 1 내지 도 3을 참조하여 본 발명의 바람직한 일 실시예에 따른 마이크로 콘트롤러 유닛의 구조에 대하여 설명한다. 본 발명의 요지를 명확하게 하기 위해 본 발명의 주요 부분이 아닌 사항에 대하여는 그 설명을 간략히 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 마이크로 콘트롤러 유닛의 구조를 개략적으로 도시한 블록도이다. 도 2는 도 1의 플래시 메모리의 구조를 나타내는 도면이다. 도 3은 도 1의 가상 메모리 관리 모듈의 구조를 나타내는 블록도이다.
먼저, 도 1을 참조하면, 본 발명의 일 실시예에 따른 마이크로 콘트롤러 유닛(1)은 코어(100), 플래시 메모리(200) 및 가상 메모리 관리 모듈(300)을 포함할 수 있다.
코어(100)는 플래시 메모리(200)에 저장된 명령 코드를 사용하여 연산을 수행할 수 있다. 이를 위해, 코어(100)는 플래시 메모리(200)에 저장된 명령 코드를 읽어들이는 인스트럭션 페쳐(instruction fetcher), 인스트럭션 페쳐가 읽어들인 명령 코드를 해독하는 인스트럭션 디코더(instruction decoder) 및 해독된 명령 코드를 사용하여 연산을 수행하는 ALU(Arithmetic Logic Unit) 등을 포함할 수 있다. 코어(100)에 관한 구체적인 사항은 당업자에게 용이한 사항이므로 이에 대한 구체적인 설명은 생략한다.
플래시 메모리(200)는 코어(100)가 수행할 연산을 정의하는 명령 코드를 저장할 수 있다. 도 2를 참조하여 플래시 메모리(200)의 구체적인 구조를 설명한다.
도 2를 참조하면, 플래시 메모리(200)는 플래시 영역(210)과 가상 이이피롬 영역(220)을 포함할 수 있다. 즉, 물리적으로 하나인 플래시 메모리(200)는 두 개의 영역으로 논리 구획될 수 있다. 플래시 영역(210)은 코어(100)에서의 연산을 정의하는 명령 코드를 블록(block) 단위로 저장할 수 있고, 가상 이이피롬 영역(220)은 키 입력값 또는 프로그램 변수 등과 같은 특정 이벤트를 블록 단위로 저장할 수 있다. 여기서, 특정 이벤트는 마이크로 콘트롤러 유닛(1)에 인가되는 전원이 차단된 경우에도 저장되어야 하는 명령 코드 이외의 데이터를 포함하는 것일 수 있다. 플래시 영역(210)은 종래의 플래시 메모리에 해당하며, 가상 이이피롬 영역(220)은 종래의 이이피롬의 역할을 대신할 수 있다. 그리고, 플래시 영역(210)과 가상 이이피롬 영역(220)은 각각 별개의 콘트롤러(controller)에 의해 관리될 수 있으며, 이에 대한 구체적인 설명은 후술한다. 위와 같이, 마이크로 콘트롤러 유닛(1)에서 이이피롬이 제거되는 것에 의해, 마이크로 콘트롤러(1)의 사이즈(size)가 작아질 수 있고, 그 가격이 저렴해질 수 있다. 여기서, 설명의 편의를 위해, 플래시 메모리(200)가 두개의 영역으로 논리 구획된 경우를 기준으로 설명하나, 이에 한정되는 것은 아니다. 즉, 설정에 의해 플래시 메모리(200)는 더 많은 수로 논리 구획될 수 있으며, 그 중 일 영역에는 하기에서 설명되는 메모리 관리 로직(310, 도 3 참조)이 저장될 수도 있다.
다시, 도 1을 참조하면, 가상 메모리 관리 모듈(300)이 코어(100)와 플래시 메모리(200) 사이에 위치할 수 있다. 도 3을 참조하면, 가상 메모리 관리 모듈(300)은 메모리 관리 로직(310, memory control logic)으로서, 플래시 콘트롤러(311), 가상 이이피롬 콘트롤러(312), 램 콘트롤러(313) 및 램(320, RAM : Random Access Memory)을 포함할 수 있다. 플래시 메모리(200)는 메모리 특성상 쓰기 및 삭제 속도는 읽기 속도에 비해 매우 느리다. 마이크로 콘트롤러 유닛(1)이 엔드 유저(end user)에 의해 프로그래밍된 프로그램에 따라 정해진 동작을 수행하도록 하기 위해 코어(100)는 계속하여 명령 코드를 읽어 들어야 한다. 다만, 위와 같이 특정 이벤트가 저장되는 영역과 명령 코드가 저장되는 영역이 물리적으로 하나의 메모리에 존재하는 경우, 코어(100)가 명령 코드를 읽어야 하는 타이밍(timing)에 특정 이벤트의 쓰기 또는 삭제 작업에 의해 코어가(100)가 명령 코드를 읽어들이지 못하는 문제가 발생할 수 있다. 가상 메모리 관리 모듈(300)은 위와 같은 문제가 발생하지 않도록 코어(100)와 플래시 메모리(200) 사이에 위치하여 플래시 메모리(200)를 관리하는 역할을 할 수 있다. 즉, 가상 메모리 관리 모듈(300)은 종래의 플래시 메모리와 이이피롬의 기능이 하나의 플래시 메모리로 통합된 환경에서 종래와 동일하게 코어가 동작하도록 플래시 메모리(300)를 제어하는 역할을 할 수 있다. 이에 대한 구체적인 사항은 후술한다.
이하, 첨부된 도 4 및 도 5를 참조하여 위와 같은 구조를 가지는 마이크로 콘트롤러 유닛에서의 동작을 가상 메모리 관리 모듈을 중심으로 설명한다.
도 4는 도 1의 마이크로 콘트롤러 유닛의 구조를 좀 더 구체적으로 도시한 도면이다. 도 5는 이이피롬과 램의 구조를 나타내는 도면이다.
먼저, 도 4를 참조하면, 가상 메모리 관리 모듈(300)은 메모리 관리 로직(310) 및 램(320)을 포함할 수 있다. 메모리 관리 로직(310)는 플래시 콘트롤러(311), 가상 이이피롬 콘트롤러(312) 및 램 콘트롤러(313)를 포함할 수 있다.
먼저, 플래시 콘트롤러(311)는 플래시 메모리(300)의 플래시 영역(210)을 관리하는 로직이다. 가상 메모리 관리 모듈(300)이 코어(100)로부터 수신한 명령이 명령 코드 읽기 명령인 경우, 플래시 콘트롤러(311)는 플래시 영역(210)의 특정 블록에 저장된 명령 코드를 읽어들어, 이를 코어(100)에 전송해줄 수 있다.
가상 이이피롬 콘트롤러(312)는 플래시 메모리(300)에서 가상 이이피롬 영역(220)을 관리하는 로직이다. 가상 메모리 관리 모듈(300)이 코어(100)로부터 수신한 명령이 특정 이벤트의 쓰기 또는 삭제 명령인 경우, 가상 이이피롬 콘트롤러(312)는 가상 이이피롬 영역(220)의 특정 블록에 특정 이벤트를 쓰기 또는 삭제할 수 있다. 삭제 작업은 특정 블록의 데이터 영역을 "0"으로 쓰는 것이므로 이하, 설명의 편의를 위해 쓰기 작업 만을 중심으로 설명한다.
가상 메모리 관리 모듈(300)이 명령 코드 읽기 명령을 수신한 때, 가상 이이피롬 콘트롤러(312)에 의해 가상 이이피롬 영역(220)에 대한 쓰기 작업이 진행 중일 수 있다. 이때, 플래시 콘트롤러(311)가 플래시 영역(210)으로부터 명령 코드를 읽어오지 못하게 되면, 코어(100)의 동작이 중단되는 문제가 발생할 수 있다. 따라서, 가상 메모리 관리 모듈(300)이 명령 코드 읽기 명령을 수신한 때, 가상 이이피롬 콘트롤러(312)의 쓰기 동작은 중단될 수 있다. 이로써, 코어(100)가 동작 중에 명령 코드를 읽어들이지 못하는 상황을 방지할 수 있다.
또한, 가상 메모리 관리 모듈(300)이 특정 이벤트 쓰기 명령을 수신한 때, 플래시 콘트롤러(311)에 의해 플래시 영역(210)에 대한 읽기 작업이 진행 중일 수 있다. 이때, 특정 이벤트 및 특정 이벤트 쓰기 명령은 램(320)에 저장될 수 있다. 구체적으로, 가상 메모리 관리 모듈(300)이 특정 이벤트 쓰기 명령을 수신한 때, 플래시 콘트롤러(311)에 의해 플래시 영역(210)에 대한 명령 코드 읽기 작업이 진행 중인 경우, 가상 이이피롬 콘트롤러(312)는 특정 이벤트 및 특정 이벤트 쓰기 명령을 램 콘트롤러(313)에 전달하고, 이를 전달 받은 램 콘트롤러(313)는 이를 램(320)에 저장할 수 있다. 그리고, 플래시 영역(210)에 대한 읽기 작업이 종료된 경우, 가상 이이피롬 콘트롤러(312)는 램 콘트롤러(313)에 램(320)에 저장된 특정 이벤트 및 특정 이벤트 쓰기 명령을 요청하고, 특정 이벤트 및 특정 이벤트 쓰기 명령을 램 콘트롤러(313)로부터 수신한 가상 이이피롬 콘트롤러(312)는 가상 이이피롬 영역(220)에 대한 쓰기 작업을 진행할 수 있다. 그리고, 가상 이이피롬 콘트롤러(312)가 쓰기 작업을 진행하는 도중, 가상 메모리 관리 모듈(300)이 코드 읽기 명령을 수신한 경우에는, 가상 이이피롬 콘트롤러(312)의 쓰기 작업은 중단되고, 중단된 쓰기 작업 정보는 다시 램(300)에 저장될 수 있다. 그리고, 플래시 콘트롤러(310)에 의한 명령 코드 읽기 작업이 종료된 경우, 가상 이이피롬 콘트롤러(312)에 의한 쓰기 작업은 다시 진행될 수 있다. 여기서, 램(320)은 명령 코드 읽기 작업에 의해 중단된 특정 이벤트 쓰기 명령 및 그 특정 이벤트를 저장할 수 있을 정도의 용량을 가지면 족하다. 따라서, 램(320)의 용량은 가상 이이피롬 영역(220)의 용량 보다 작게 하여 램(320)의 크기를 최소화 하는 것이 바람직하다.
위와 같이 마이크로 콘트롤러 유닛(1)이 동작하게 되면, 하나의 플래시 메모리(200)를 사용하는 경우라도 코어(100)가 명령 코드를 읽어내는 작업이 중단되지 않음과 동시에 특정 이벤트의 쓰기 작업이 가능하다. 즉, 코어(100)를 기준으로 볼 때, 코어(100)는 하나의 플래시 메모리(200)를 사용하고 있으나, 종래의 이이피롬과 플래시 메모리를 동시에 사용하는 것과 동일하게 동작할 수 있다.
도 5를 참조하면, (a)는 이이피롬의 구조를 나타내고, (b)는 램의 구조를 나타낸다. 이이피롬은 램에 비해 상대적으로 동작 전압이 높아 동작 전압까지 전원을 올려주는 차지 펌프(charge pump)를 필요로 한다. 이이피롬에서 차지 펌프는 데이터 영역 보다 더 많은 부분을 차지한다. 따라서, 동일한 용량을 가지는 메모리라 했을 때, 램으로 구현하는 경우 메모리 크기를 현저하게 줄일 수 있다. 이와 같은 배경에서 본 발명은 이이피롬의 사용을 배제하는 하는 것에 의해 마이크로 콘트롤러 유닛(1)의 크기를 현저하게 줄일 수 있다. 또한, 이이피롬이 배제되고 그 이이피롬과 동일한 용량의 램이 추가되더라고, 램은 이이피롬 보다 크기가 작아 마이크로 콘트롤어 유닛(1)의 크기를 줄일 수 있다. 또한, 램은 명령 코드 읽기 작업에 의해 진행시키지 못하는 특정 이벤트 쓰기 명령 및 특정 이벤트 만을 저장할 정도의 용량이면 족하다. 따라서, 매우 소용량을 가지는 램으로 기존의 이이피롬을 대체할 수 있으므로, 본 발명의 마이크로 콘트롤러 유닛(1)은 가격 및 크기 면에서 매우 월등할 수 있다. 또한, 위와 같이 마이크로 콘트롤러 유닛(1)에서 이이피롬을 배제한다고 하여도, 메모리 관리 로직(310)과 램(320)에 의해 코어(100)는 기존과 동일하게 동작할 수 있다.
이하, 첨부된 도 4 및 도 6 내지 도 8을 참조하여 본 발명의 바람직한 일 실시예에 따른 마이크로 콘트롤러 유닛에 포함된 플래시 메모리의 제어 방법에 대하여 설명한다.
도 6은 명령 코드 읽기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
도 6을 참조하면, 명령 코드 읽기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작은 명령 코드 읽기 명령 수신 단계(S61), 가상 이이피롬 콘트롤러가 쓰기 작업 중인지 여부를 판단하는 단계(S62), 플래시 영역에서 명령 코드 읽음 단계(S63) 및 가상 이이피롬 콘트롤러의 쓰기 작업 중단 단계(S64)를 포함할 수 있다.
먼저, 명령 코드 읽기 명령 수신 단계(S61)는 가상 메모리 관리 모듈(300)이 코어(100)로부터 특정 블록에 저장된 명령 코드를 읽어들이라는 명령을 수신하는 단계이다.
그 다음, 가상 이이피롬 콘트롤러가 쓰기 작업 처리 중인지 여부를 판단하는 단계(S62)는 메모리 제어 로직(310) 상에서 가상 이이피롬 콘트롤러(312)에 의해 가상 이이피롬 영역(220) 영역에 대한 쓰기 작업이 진행 중인지 여부가 판단되는 단계이다.
그 다음, 플래시 영역에서 명령 코드 읽음 단계(S63)는 상기 S62에서의 판단 결과 가상 이이피롬 콘트롤러(312)에 의해 가상 이이피롬 영역(220)에 대한 쓰기 작업이 진행되고 있지 않다고 판단되면, 플래시 콘트롤러(311)가 플래시 영역(210)의 특정 블록에 저장된 명령 코드에 대한 읽기 작업을 진행하는 단계이다. 이때, 읽혀진 명령 코드는 코어(100)로 전달될 수 있다.
그 다음, 가상 이이피롬 콘트롤러의 쓰기 작업 중단 단계(S64)는 상기 S62에서의 판단 결과, 가상 이이피롬 콘트롤러(312)에 의해 가상 이이피롬 영역(220)에 대한 쓰기 작업이 진행되고 있다고 판단되면, 메모리 제어 로직(310) 상에서 가상 이이피롬 콘트롤러(312)에 의한 쓰기 작업이 중단되는 단계이다. S64에 의해 가상 이이피롬 콘트롤러에 의한 쓰기 작업이 중단되면, 플래시 콘트롤러(311)는 플래시 영역(210)의 특정 블록에 저장된 명령 코드에 대한 읽기 작업을 진행할 수 있다(S63).
도 7은 특정 이벤트 쓰기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
도 7을 참조하면, 특정 이벤트 쓰기 명령을 가상 메모리 관리 모듈이 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작은 특정 이벤트 쓰기 명령 수신 단계(S71), 플래시 콘트롤러가 읽기 작업 중인지 여부 판단 단계(S72), 가상 이이피롬 영역에 특정 이벤트 쓰기 단계(S73), 램에 특정 이벤트 및 쓰기 명령 저장 단계(S74) 및 플래시 콘트롤러 읽기 종료 단계(S75)를 포함할 수 있다.
먼저, 특정 이벤트 쓰기 명령 수신 단계(S71)는 가상 메모리 관리 모듈(300)이 코어(100)로부터 특정 이벤트를 가상 이이피롬 영역(220)에 기록하도록 하는 명령을 수신하는 단계이다.
그 다음, 플래시 콘트롤러가 읽기 작업 중인지 여부 판단 단계(S72)는 메모리 제어 로직(310) 상에서 플래시 콘트롤러(311)에 의해 플래시 영역(210)에 대한 읽기 작업이 진행 중인지 여부가 판단되는 단계이다.
그 다음, 가상 이이피롬 영역에 특정 이벤트 쓰기 단계(S73)는 S72에서의 판단 결과, 플래시 콘트롤러(311)에 의해 플래시 영역(210)에 대한 읽기 작업이 진행 중이지 않은 경우, 가상 이이피롬 콘트롤러(312)가 가상 이이피롬 영역(220)에 블록 단위로 특정 이벤트를 기록하는 단계이다.
그 다음, 램에 특정 이벤트 및 쓰기 명령 저장 단계(S74)는 S72에서의 판단 결과, 플래시 콘트롤러(311)에 의해 플래시 영역(210)에 대한 읽기 작업이 진행 중인 경우, 가상 이이피롬 콘트롤러(312)가 램 콘트롤러(313)에 특정 이벤트 및 특정 이벤트 쓰기 명령의 저장을 의뢰하고, 램 콘트롤러(313)가 램(330)에 특정 이벤트 및 특정 이벤트 쓰기 명령을 저장하는 단계이다.
플래시 콘트롤러 읽기 종료 단계(S75)는 S72에서 진행 중이라고 판단된 플래시 콘트롤러(311)의 읽기 작업이 종료되는 단계이다. S75에서 플래시 콘트롤러(311)의 읽기 작업이 종료되면 S73 단계로 진행되어, 가상 이이피롬 콘트롤러(312)가 가상 이이피롬 영역(220)에 특정 이벤트를 기록할 수 있다(S73). 구체적으로, 플래시 콘트롤러(311)의 읽기 작업이 종료되면, 가상 이이피롬 콘트롤러(312)는 램 콘트롤러(313)에 저장된 특정 이벤트 및 특정 이벤트 쓰기 명령을 전달하여 줄 것을 요청하고, 이를 램 콘트롤러(313)로부터 전달 받은 가상 이이피롬 콘트롤러(312)는 이를 사용하여 가상 이이피롬 영역(220)에 특정 이벤트를 기록할 수 있다.
도 8은 가상 메모리 관리 모듈이 특정 이벤트 쓰기 작업 중 명령 코드 읽기 명령을 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작의 일 실시예를 나타내는 플로우 차트이다.
도 8을 참조하면, 가상 메모리 관리 모듈이 특정 이벤트 쓰기 작업 중 명령 코드 읽기 명령을 수신한 경우, 도 4의 메모리 관리 로직의 제어 동작은, 가상 이이피롬 영역에 특정 이벤트 쓰기 작업 진행 단계(S81), 명령 코드 읽기 명령 수신 단계(S82), 램에 특정 이벤트 및 쓰기 명령 저장 단계(S83), 명령 코드 읽기 작업 진행 단계(S84), 명령 코드 읽기 작업 종료 단계(S85) 및 중단된 특정 이벤트 쓰기 작업 진행 단계(S86)를 포함할 수 있다.
먼저, 가상 이이피롬 영역에 특정 이벤트 쓰기 작업 진행 단계(S81)는 가상 이이피롬 콘트롤러(312)가 가상 이이피롬 영역(220)에 특정 이벤트를 기록하는 단계이다.
명령 코드 읽기 명령 수신 단계(S82)는 가상 메모리 관리 모듈(300)이 코어(100)로부터 특정 블록에 저장된 명령 코드를 읽어들이라는 명령을 수신하는 단계이다.
램에 특정 이벤트 및 쓰기 명령 저장 단계(S83)는 가상 이이피롬 콘트롤러(312)가 특정 이벤트 쓰기 작업을 중단하고, 램 콘트롤러(313)에 특정 이벤트 및 특정 이벤트 쓰기 명령의 저장을 의뢰하고, 램 콘트롤러(313)가 램(330) 에 특정 이벤트 및 특정 이벤트 쓰기 명령을 저장하는 단계이다.
명령 코드 읽기 작업 진행 단계(S84)는 플래시 콘트롤러(311)가 플래시 영역(210)의 특정 블록으로부터 명령 코드를 읽어들이는 단계이다.
명령 코드 읽기 작업 종료 단계(S85)는 플래시 콘트롤러(311)가 플래시 영역(210)의 특정 블록으로부터 명령 코드 읽기 작업을 종료한 단계이다.
중단된 특정 이벤트 쓰기 작업 진행 단계(S86)는 명령 코드 읽기 작업이 종료되면, S83에서 중단된 특정 이벤트 쓰기 작업을 다시 진행하는 단계이다. 이때, 가상 이이피롬 콘트롤러(312)는 램 콘트롤러(313)에 저장된 특정 이벤트 및 특정 이벤트 쓰기 명령을 읽어서 전달해 줄 것을 요청하고, 이를 전달받은 가상 이이피롬 콘트롤러(311)는 이를 사용하여 중단된 특정 이벤트 쓰기 작업을 진행할 수 있다.
상기 도 6 내지 도 8의 프로세스를 통해, 기존의 이이피롬과 플래시 메모리를 물리적으로 하나인 플래시 메모리로 대체하는 경우라도, 코어(100)는 기존과 동일하게 동작할 수 있다. 즉, 코어(100)는 특정 이벤트의 쓰기 및 명령 코드의 읽기 작업이 동시에 진행되는 것으로 인식하므로, 멈추지 않고 동작이 가능하다. 여기서, 도 6 내지 도 8에서의 모든 단계가 전체로써 실시되어야 하는 것은 아니며 그 일부가 사용될 수도 있고 다른 도면에서의 단계가 서로 결합되어 사용될 수 있음은 물론이다.
한편, 이러한 본 발명에 의한 마이크로 콘트롤러 유닛에 포함되는 메모리의 제어 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다.
상기한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대해 통상의 지식을 가진 당업자라면 본 발명의 사상과 범위한에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
100 : 코어
200 : 플래시 메모리 210 : 플래시 영역
220 : 가상 이이피롬 영역
300 : 가상 메모리 관리 모듈 310 : 메모리 관리 로직
311 : 플래시 콘트롤러 312 : 가상 이이피롬 콘트롤러
313 : 램 콘트롤러 320 : 램

Claims (23)

  1. 마이크로 콘트롤러 유닛(Micro Controller Unit)에 있어서,
    물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드(code)가 저장되는 제 1 영역 및 특정 이벤트(event)가 저장되는 제 2 영역을 포함하는 제 1 메모리(memory); 및
    상기 제 1 영역 및 제 2 영역을 분리하여 관리하며, 상기 제 1 영역에 대한 읽기 작업이 상기 제 2 영역에 대한 쓰기 작업에 의해 중단되지 않도록 상기 제 1 메모리를 관리하는 가상 메모리 관리 모듈(module)을 포함하고,
    상기 가상 메모리 관리 모듈은,
    명령 코드 읽기 명령을 수신한 때, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업에 대한 정보를 저장하고, 상기 수신된 명령 코드 읽기 명령을 처리하고, 상기 수신된 명령 코드 읽기 명령의 처리가 완료되면, 상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여 상기 중단된 특징 이벤트 쓰기 작업을 진행하고,
    특정 이벤트 쓰기 명령을 수신한 때, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하고, 상기 진행 중인 명령 코드 읽기 작업이 완료된 때 상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여 상기 수신된 특정 이벤트 쓰기 명령을 처리하는 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  2. 제 1 항에 있어서,
    상기 특정 이벤트는 상기 마이크로 콘트롤러 유닛에 인가되는 전원이 차단된 경우에도 저장되어야 하는 상기 명령 코드 이외의 데이터(data)를 포함하는 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  3. 제 1 항에 있어서,
    상기 특정 이벤트는 키(key) 입력값 또는 프로그램 변수 등을 포함하는 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  4. 제 1 항에 있어서,
    상기 제 1 메모리는 플래시 메모리(flash memory)인 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 가상 메모리 관리 모듈은 상기 중단된 특정 이벤트 쓰기 작업에 대한 정보 또는 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하기 위한 제 2 메모리를 포함하는 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  8. 제 7 항에 있어서,
    상기 제 2 메모리는 램(RAM : Random Access Memory)인 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  9. 제 7 항에 있어서,
    상기 제 2 메모리는 상기 제 2 영역 보다 작은 용량을 가지는 것을 특징으로 하는 마이크로 콘트롤러 유닛.
  10. 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법에 있어서,
    명령 코드 읽기 명령을 수신하는 단계;
    특정 이벤트 쓰기 작업이 진행 중인지 여부를 판단하는 단계;
    상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 진행 중인 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하는 단계;
    상기 수신된 명령 코드 읽기 명령을 처리하는 단계;
    상기 수신된 명령 코드 읽기 명령의 처리가 완료되는 단계; 및
    상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여, 상기 중단된 특정 이벤트 쓰기 작업을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  11. 제 10 항에 있어서,
    상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중이지 아니한 경우, 상기 진행 중인 특징 이벤트 쓰기 작업 중단 및 상기 중단된 특정 이벤트 쓰기 작업 정보의 저장 없이 상기 수신된 명령 코드 읽기 명령을 처리하는 것을 특징으로 하는 메모리 관리 방법.
  12. 제 10 항에 있어서,
    상기 제 1 메모리는 플래시 메모리인 것을 특징으로 하는 메모리 관리 방법.
  13. 제 10 항에 있어서,
    상기 마이크로 콘트롤러 유닛은 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하기 위한 제 2 메모리를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  14. 제 13 항에 있어서,
    상기 제 2 메모리는 램인 것을 특징으로 하는 메모리 관리 방법.
  15. 제 13 항에 있어서,
    상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작은 것을 특징으로 하는 메모리 관리 방법.
  16. 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법에 있어서,
    특정 이벤트 쓰기 명령을 수신하는 단계;
    명령 코드 읽기 작업이 진행 중인지 여부를 판단하는 단계;
    상기 판단 결과, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하는 단계;
    상기 진행 중인 명령 코드 읽기 작업이 완료되는 단계; 및
    상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여, 상기 저장된 특정 이벤트 쓰기 명령을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법.
  17. 제 16 항에 있어서,
    상기 판단 결과, 명령 코드 읽기 작업이 진행 중이지 아니한 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트의 저장 없이 상기 수신된 특정 이벤트 쓰기 명령을 처리하는 것을 특징으로 하는 메모리 관리 방법.
  18. 제 16 항에 있어서,
    상기 제 1 메모리는 플래시 메모리인 것을 특징으로 하는 메모리 관리 방법.
  19. 제 16 항에 있어서,
    상기 마이크로 콘트롤러 유닛은 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하기 위한 제 2 메모리를 더 포함하는 것을 특징으로 하는 메모리 관리 방법.
  20. 제 19 항에 있어서,
    상기 제 2 메모리는 램인 것을 특징으로 하는 메모리 관리 방법.
  21. 제 19 항에 있어서,
    상기 제 2 메모리의 용량은 상기 제 2 영역 보다 작은 것을 특징으로 하는 메모리 관리 방법.
  22. 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법을 구현하기 위한 프로그램이 기록된 기록매체에 있어서,
    명령 코드 읽기 명령을 수신하는 단계;
    특정 이벤트 쓰기 작업이 진행 중인지 여부를 판단하는 단계;
    상기 판단 결과, 특정 이벤트 쓰기 작업이 진행 중인 경우, 상기 진행 중인 특정 이벤트 쓰기 작업을 중단하고, 상기 중단된 특정 이벤트 쓰기 작업 정보를 저장하는 단계;
    상기 수신된 명령 코드 읽기 명령을 처리하는 단계;
    상기 수신된 명령 코드 읽기 명령의 처리가 완료되는 단계; 및
    상기 저장된 특정 이벤트 쓰기 작업 정보를 사용하여, 상기 중단된 특정 이벤트 쓰기 작업을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법을 구현하기 위한 프로그램을 기록한 기록매체.
  23. 물리적으로 하나이며, 복수의 영역으로 논리 구획되어 명령 코드가 저장되는 제 1 영역 및 특정 이벤트가 저장되는 제 2 영역을 포함하는 제 1 메모리를 포함하는 마이크로 콘트롤러 유닛에서 상기 제 1 메모리를 관리하는 방법을 구현하기 위한 프로그램이 기록된 기록매체에 있어서,
    특정 이벤트 쓰기 명령을 수신하는 단계;
    명령 코드 읽기 작업이 진행 중인지 여부를 판단하는 단계;
    상기 판단 결과, 명령 코드 읽기 작업이 진행 중인 경우, 상기 수신된 특정 이벤트 쓰기 명령 및 특정 이벤트를 저장하는 단계;
    상기 진행 중인 명령 코드 읽기 작업이 완료되는 단계; 및
    상기 저장된 특정 이벤트 쓰기 명령 및 특정 이벤트를 사용하여, 상기 저장된 특정 이벤트 쓰기 명령을 처리하는 단계를 포함하는 것을 특징으로 하는 메모리 관리 방법을 구현하기 위한 프로그램을 기록한 기록매체.
KR1020100048958A 2010-05-26 2010-05-26 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체 KR101119434B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100048958A KR101119434B1 (ko) 2010-05-26 2010-05-26 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100048958A KR101119434B1 (ko) 2010-05-26 2010-05-26 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체

Publications (2)

Publication Number Publication Date
KR20110129541A KR20110129541A (ko) 2011-12-02
KR101119434B1 true KR101119434B1 (ko) 2012-03-16

Family

ID=45498639

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100048958A KR101119434B1 (ko) 2010-05-26 2010-05-26 하나의 메모리를 공유하는 마이크로 콘트롤러 유닛, 이에 포함되는 메모리 관리 방법 및 그 방법을 실행하는 프로그램이 기록된 기록 매체

Country Status (1)

Country Link
KR (1) KR101119434B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0178584A2 (de) * 1984-10-18 1986-04-23 Mecapec S.A. Anlage zur mechanischen Reinigung von Abwasser
KR20020039374A (ko) * 1999-10-19 2002-05-25 바누치 유진 지. 상이한 메모리 기술 특성을 갖는 분할 메모리 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0178584A2 (de) * 1984-10-18 1986-04-23 Mecapec S.A. Anlage zur mechanischen Reinigung von Abwasser
KR20020039374A (ko) * 1999-10-19 2002-05-25 바누치 유진 지. 상이한 메모리 기술 특성을 갖는 분할 메모리 장치

Also Published As

Publication number Publication date
KR20110129541A (ko) 2011-12-02

Similar Documents

Publication Publication Date Title
KR101395778B1 (ko) 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법
TWI622923B (zh) 整理指令處理方法、記憶體控制電路單元與記憶體儲存裝置
CN111026326B (zh) 存储器控制器、存储装置及管理元数据的方法
US8667209B2 (en) Non-volatile memory access method and system, and non-volatile memory controller
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US20150161039A1 (en) Data erasing method, memory control circuit unit and memory storage apparatus
US20140289505A1 (en) Boot partitions in memory devices and systems
TWI684860B (zh) 用來進行讀取加速之方法以及資料儲存裝置及其控制器
WO2012161777A2 (en) Multi-phase resume from hibernate
US9424177B2 (en) Clock switching method, memory controller and memory storage apparatus
TWI516903B (zh) 定相反及閘的電源開啟重設
US8897092B2 (en) Memory storage device, memory controller and controlling method
US8914587B2 (en) Multi-threaded memory operation using block write interruption after a number or threshold of pages have been written in order to service another request
TWI698749B (zh) 資料儲存裝置與資料處理方法
US20180129604A1 (en) Storage device and data processing system including the same
TW201217968A (en) Data writing method, memory controller and memory storage apparatus
CN111796759B (zh) 多平面上的片段数据读取的计算机可读取存储介质及方法
US20190391916A1 (en) Method for managing flash memory module and associated flash memory controller and electronic device
US9235501B2 (en) Memory storage device, memory controller thereof, and method for programming data thereof
CN103389942A (zh) 控制装置、存储装置及存储控制方法
CN111897743A (zh) 数据储存装置及逻辑至物理地址映射表的载入方法
CN102193871B (zh) 非挥发性存储器存取方法、系统及非挥发性存储器控制器
KR102330394B1 (ko) 컨트롤러의 작동 방법과 상기 컨트롤러를 포함하는 장치의 작동 방법
US11347433B2 (en) Method for performing sudden power off recovery management, associated memory device and controller thereof, and associated electronic device
TWI468946B (zh) 用來進行主裝置指揮運作之方法以及記憶裝置及控制器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150202

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee