KR20080111242A - Apparatus and method for virtual memory in portable communication system - Google Patents
Apparatus and method for virtual memory in portable communication system Download PDFInfo
- Publication number
- KR20080111242A KR20080111242A KR1020070059363A KR20070059363A KR20080111242A KR 20080111242 A KR20080111242 A KR 20080111242A KR 1020070059363 A KR1020070059363 A KR 1020070059363A KR 20070059363 A KR20070059363 A KR 20070059363A KR 20080111242 A KR20080111242 A KR 20080111242A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual memory
- buffer
- memory file
- file
- address
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/656—Address space sharing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
도 1은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기의 가상 메모리 시스템을 도시한 블록도,1 is a block diagram illustrating a virtual memory system of a portable terminal according to an embodiment of the present invention;
도 2는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기의 가상 메모리 시스템에서 가상 메모리를 설정하는 과정을 도시한 흐름도,2 is a flowchart illustrating a process of setting a virtual memory in a virtual memory system of a portable terminal according to an embodiment of the present invention;
도 3은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 파일의 읽기 과정을 수행하기 위한 과정을 도시한 흐름도,3 is a flowchart illustrating a process of reading a virtual memory file in a portable terminal according to an embodiment of the present invention;
도 4는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 파일의 쓰기 과정을 수행하기 위한 과정을 도시한 흐름도 및,4 is a flowchart illustrating a process for performing a process of writing a virtual memory file in a portable terminal according to an embodiment of the present invention;
도 5는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 처리를 종료하도록 하는 과정을 도시한 흐름도.5 is a flowchart illustrating a process of terminating a virtual memory process in a portable terminal according to an exemplary embodiment of the present invention.
본 발명은 휴대용 단말기의 가상 메모리 장치 및 방법에 관한 것으로, 더욱이 낸드 플래쉬(NAND FLASH) 메모리를 이용하여 동기식 동적 램(SDRAM ; Synchronous Dynamic RAM)의 공간처럼 이용할 수 있도록 하기 위한 장치 및 방법에 관한 것이다.The present invention relates to a virtual memory device and a method of a portable terminal, and more particularly, to a device and a method for using a NAND flash memory as a space of a synchronous dynamic RAM (SDRAM). .
이하 설명에 앞서 가상메모리란 주로 내장된 하드디스크를 가상의 메모리로 활용하여 제한된 용량의 메모리에서 메모리 부족의 한계를 극복하고자 널리 사용되는 방법을 말한다. Prior to the following description, virtual memory refers to a method widely used to overcome the limitation of memory shortage in a limited memory by mainly using an internal hard disk as a virtual memory.
즉, 시스템의 운영체제는 현재 메모리에 로딩되어 있는 내용중 당장 필요로 하지 않는 영역을 찾아내어 그 내용을 하드디스크에 저장하고 그 내용이 위치해 있던 메모리의 영역을 마치 사용하지 않는 메모리 영역으로 간주하여 응용 프로그램의 메모리 할당 요구에 응답한다. That is, the operating system of the system finds an area that is not needed right now among contents loaded in the memory, stores the contents on the hard disk, and considers the memory area where the content is located as an unused memory area. Respond to a program's memory allocation request.
일반적으로 사용하는 가상메모리 기법은 개인용 컴퓨터에서 페이지(PAGE) 개념을 이용하여 사용되며, 메모리에 상주하게 되는 데이터들 중에서 최소 사용(LRU ; Least Recently Used) 정책 등을 고려하여 사용되지 않는 데이터는 하드디스크의 가상 메모리 공간으로 이동하고, 사용해야할 데이터는 동기식 동적 램의 공간으로 가져와서 수행하는 교환(SWAP) 방식을 채택하고 있다.In general, the virtual memory technique is used in the personal computer by using the concept of page (PAGE), and the data that is not used in consideration of the least recently used (LRU) policy among the data resident in the memory is hard It moves to virtual memory space on disk and uses swap (SWAP) to bring data into the space of synchronous dynamic RAM.
그러나, 상기와 같은 방법을 자원 사용이 많아 상기 개인용 컴퓨터와 같은 시스템이라 할지라도 성능이 저하 현상이 발생하는 문제점이 있다.However, there is a problem in that the above-described method uses a lot of resources, and even a system such as a personal computer causes a performance degradation.
상기와 같은 가상 메모리 기법을 상기 휴대용 단말기에 적용할 경우, 메모리 관리부(MMU ; Memory Management Unit)를 포함하는 임베디드 프로세서를 이용하여 낸드 플래쉬 메모리를 이용하여 동기식 동적 램의 공간처럼 이용할 수 있도록 할 수 있다.When the above virtual memory technique is applied to the portable terminal, the embedded processor including a memory management unit (MMU) may be used as a space of a synchronous dynamic RAM using a NAND flash memory. .
하지만, 상기와 같은 가상 메모리 기법을 휴대용 단말기와 같은 임베디드 시스템에 적용할 경우, 상기 휴대용 단말기의 프로세서 성능 제한 및 낸드 플래쉬 메모리에 대한 쓰기 연산이 많이 수행되게 되면 배드 블럭(BAD BLOCK)이 발생하게 되는 단점이 있기 때문에 낸드 플래쉬 메모리의 수명을 고려하여 읽기 전용의 용도로 제한적으로 사용되고 있다. However, when the above-described virtual memory technique is applied to an embedded system such as a portable terminal, a bad block is generated when the processor performance limitation of the portable terminal and a large number of write operations on the NAND flash memory are performed. Due to its drawbacks, it is used for read-only purposes in consideration of NAND flash memory life.
따라서, 상기 휴대용 단말기에서 읽기 쓰기와 같은 작업 수행을 가능하도록 하기 위한 가상 메모리 시스템이 요구된다.Accordingly, there is a need for a virtual memory system for enabling the portable terminal to perform tasks such as reading and writing.
상술한 바와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 휴대용 단말기에서 낸드 플래쉬 메모리의 수명 단축 문제를 해결하기 위한 가상 메모리 시스템을 제공하기 위한 장치 및 방법을 제공함에 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide an apparatus and method for providing a virtual memory system for solving the problem of shortening the lifespan of a NAND flash memory in a portable terminal.
본 발명의 다른 목적은 휴대용 단말기에서 낸드 플래쉬 메모리 수명 단축 문제를 해결하기 위한 가상 메모리 파일 쓰기 또는 읽기 과정을 수행하는 장치 및 방법을 제공함에 있다.Another object of the present invention is to provide an apparatus and method for performing a virtual memory file writing or reading process for solving a NAND flash memory life shortening problem in a portable terminal.
상술한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 휴대용 단말기의 가상 메모리 시스템은 가상 메모리 파일의 읽기 과정에서 사용한 가상 메모리 파일의 버퍼 정보인 업로드 인덱스(Upload Index)와 상기 가상 메모리 파일 쓰기 과정을 수행할 버퍼의 정보를 포함하는 플러쉬 인덱스(Flush Index)를 포함하는 버퍼와, 상기 버퍼의 정보를 이용하여 낸드 플레쉬 메모리를 동기식 동적 램과 같은 기능을 수행하도록 가상 메모리를 설정하여 상기 가상 메모리 파일의 연산을 가능하도록 처리하는 메모리 관리부를 포함하는 것을 특징으로 한다.According to the first aspect of the present invention for achieving the above object, the virtual memory system of the portable terminal is the upload index (Upload Index) which is the buffer information of the virtual memory file used in the process of reading the virtual memory file and the virtual memory file write The virtual memory by setting a buffer including a flush index including information of a buffer to perform a process and a virtual memory to perform a function such as a synchronous dynamic RAM using a buffer information of the NAND flash memory; And a memory management unit for processing a file to be operated.
상술한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 휴대용 단말기의 가상 메모리 처리 방법은 상기 휴대용 단말기의 가상 메모리 파일을 설정하는 과정과, 상기 설정한 가상 메모리 파일을 연산하는 과정을 포함하는 것을 특징으로 한다.According to a second aspect of the present invention for achieving the above objects, a virtual memory processing method of a portable terminal includes the step of setting a virtual memory file of the portable terminal, the operation of calculating the set virtual memory file It is characterized by.
이하 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, the operating principle of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed descriptions of well-known functions or configurations will be omitted if it is determined that the detailed description of the present invention may unnecessarily obscure the subject matter of the present invention. Terms to be described later are terms defined in consideration of functions in the present invention, and may be changed according to intentions or customs of users or operators. Therefore, the definition should be made based on the contents throughout the specification.
이하 설명에서는 휴대용 단말기에서 낸드 플래쉬 메모리(Nand Flash Memory)를 동기식 동적 램(SDRAM ; Synchronous Dynamic RAM)과 같은 기능을 수행하도록 하기 위한 가상 메모리 시스템의 장치 및 방법에 대하여 기술할 것이다. In the following description, an apparatus and method of a virtual memory system for enabling a NAND flash memory to perform a function such as synchronous dynamic RAM (SDRAM) in a portable terminal will be described.
또한, 이하 설명에서 정의한 가상 메모리 정보는 가상 메모리 파일 읽기 또는 쓰기에 필요한 정보를 말한다. In addition, the virtual memory information defined in the following description refers to information required for reading or writing the virtual memory file.
즉, 상기 가상 메모리 정보는 상기 가상 메모리 파일의 읽기 과정에서 사용한 가상 메모리 파일의 버퍼 정보인 연산 요청된 주소 값, 로딩된 버퍼의 슬롯 정보(예 ; 슬롯 포인터, 슬롯 번호 등)와 같이 쓰기 과정에 필요한 정보를 기록하는 업로드 인덱스(Upload Index)와 쓰기 과정을 수행할 버퍼의 슬롯 정보를 기록하는 플러쉬 인덱스(Flush Index)를 포함한다.That is, the virtual memory information may be used in a writing process such as an operation requested address value, which is buffer information of a virtual memory file used in reading the virtual memory file, and slot information (eg, slot pointer, slot number, etc.) of the loaded buffer. An upload index for recording necessary information and a flush index for recording slot information of a buffer for performing a write process are included.
도 1은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기의 가상 메모리 시스템을 도시한 도면이다.1 illustrates a virtual memory system of a portable terminal according to an exemplary embodiment of the present invention.
상기 도 1을 참조하면, 상기 가상 메모리 시스템은 메모리 관리부(100), 메모리부(102) 및 버퍼(110)를 포함하여 구성할 수 있으며, 상기 버퍼는 큐 버퍼(112)와 페이징 버퍼(114)를 포함할 수 있다.Referring to FIG. 1, the virtual memory system may include a memory manager 100, a
상기 메모리 관리부(MMU ; Memory Management Unit)(100)는 상기 가상 메모리 시스템의 전반적인 동작을 제어하며, 본 발명에 따라 낸드 플레쉬 메모리(Nand Flash Memory)를 동기식 동적 램(SDRAM ; Synchronous Dynamic RAM)과 같은 기능을 수행하도록 하는 가상 메모리를 설정하도록 처리한다.The memory management unit (MMU) 100 controls the overall operation of the virtual memory system, and according to the present invention NAND flash memory (Nand Flash Memory) such as synchronous dynamic RAM (SDRAM) Process to set the virtual memory to perform the function.
또한, 상기 메모리 관리부(100)는 가상 메모리 파일의 연산을 가능하도록 처리한다.In addition, the memory manager 100 processes the operation of the virtual memory file.
즉, 가상 메모리 파일 읽기 과정을 수행할 경우, 상기 메모리 관리부(100)는 가상 메모리 주소를 통한 데이터 접근에 따른 데이터 처리 실패(Data Abort)가 발생함을 확인할 경우, 데이터 처리 실패가 발생한 가상 메모리의 주소와 상응하는 가상 메모리 파일을 확인한다. That is, when performing a virtual memory file reading process, the memory manager 100 determines that a data processing failure occurs due to data access through a virtual memory address. Check the virtual memory file corresponding to the address.
이후, 상기 메모리 관리부(100)는 상기 확인한 가상 메모리 파일에 읽기 과정을 수행하고, 상기 읽기 과정을 수행한 파일을 상기 페이징 버퍼(114)에 복사하도록 처리한다.Thereafter, the memory manager 100 performs a read process on the checked virtual memory file, and processes the read-processed file to copy to the
이후, 상기 메모리 관리부(100)는 데이터 쓰기에 필요한 쓰기 정보를 큐 버퍼(112)에 기록하도록 처리한다.Thereafter, the memory manager 100 processes the write information necessary for writing data to the
한편, 상기 가상 메모리 파일 쓰기 과정을 수행할 경우, 상기 메모리 관리부(100)는 읽기 과정을 수행할 때마다 할당받은 슬롯 번호를 확인하고, 쓰기 과정을 수행할 가상 메모리 파일의 버퍼 슬롯 번호를 확인하여 상기 슬롯 번호가 일치함을 확인할 경우, 상기 쓰기 과정을 수행할 버퍼의 슬롯 포인터를 확인한다.On the other hand, when performing the virtual memory file write process, the memory manager 100 checks the allocated slot number each time the read process is performed, and checks the buffer slot number of the virtual memory file to perform the write process If it is confirmed that the slot numbers match, the slot pointer of the buffer to perform the writing process is checked.
이후, 상기 메모리 관리부(100)는 상기 가상 메모리 파일의 읽기 과정에서 발생한 데이터 처리 실패 주소를 상기 가상 메모리 파일 읽기 과정에서 할당받은 주소로 변환하여 기 정의된 페이지 단위로 상기 가상 메모리 파일의 쓰기 과정을 수행한다.Thereafter, the memory manager 100 converts a data processing failure address generated during the reading of the virtual memory file into an address allocated in the reading of the virtual memory file, and writes the virtual memory file in a predetermined page unit. Perform.
상기 버퍼(110)는 다수개의 슬롯으로 구성된 큐 버퍼(112)와 페이징 버퍼(114)를 포함하며, 접근과 응답속도가 빠른 저장 장소로 휴대용 단말기에서 현재 사용중인 데이터들을 임시 저장하며, 본 발명에 따라 상기 가상 메모리 파일 읽기 또는 쓰기에 필요한 가상 메모리 정보를 저장한다.The
상세히 설명하면, 상기 버퍼(110)의 상기 큐 버퍼(112)는 가상 메모리 파일의 읽기 과정에서 사용한 가상 메모리 파일의 버퍼 정보인 업로드 인덱스(Upload Index)와 상기 가상 메모리 파일 쓰기 과정을 수행할 버퍼의 정보를 포함하는 플러쉬 인덱스(Flush Index)를 포함할 수 있다.In detail, the
여기에서, 상기 업로드 인덱스는 연산 요청된 주소 값, 로딩된 버퍼의 슬롯 정보(예 ; 슬롯 포인터, 슬롯 번호 등)와 같이 쓰기 과정에 필요한 정보를 기록하며, 상기 플러쉬 인덱스는 쓰기 과정을 수행할 버퍼의 슬롯 정보를 기록할 수 있다.Here, the upload index records information required for a writing process, such as an operation value of the requested address and slot information (eg, slot pointer, slot number, etc.) of the loaded buffer, and the flush index is a buffer for performing the writing process. Slot information can be recorded.
또한, 상기 페이징 버퍼(114)는 상기 가상 메모리 파일의 연산 과정을 수행한 데이터를 저장하며, 상기 페이징 버퍼(114)는 동기식 동적 램에 포함될 수 있다.In addition, the
상기 메모리부(102)는 휴대용 단말기의 전반적인 동작을 제어하기 위한 운영체제와 응용 프로그램인 상기 기본 데이터를 압축된 형태인 압축 기본 데이터로 저장하고, 또한, 저장용 데이터(전화번호, SMS 메시지, 압축된 이미지 파일, 동영상 등)를 저장한다. The
상기 메모리부(102)는 낸드 플레쉬 메모리 및, 동기식 동적 램을 포함할 수 있다.The
상기 메모리 관리부(102)는 상기 휴대용 단말기의 제어부(미도시)에 의해 수행할 수 있으나, 본 발명에서 이를 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서, 실제로 제품을 구현하는 경우에 이들 모두를 상 기 제어부(미도시)에서 처리하도록 구성할 수도 있다.The
이상은 휴대용 단말기에서 낸드 플래쉬 메모리(Nand Flash Memory)를 동기식 동적 램(SDRAM ; Synchronous Dynamic RAM)과 같은 기능을 수행하도록 하기 위한 가상 메모리 시스템에 관하여 설명하였고, 이하 설명에서는 본 발명의 바람직한 일 실시 예에 따른 상기 가상 메모리 시스템을 이용하여 가상 메모리 파일을 처리하도록 하기 위한 방법에 관하여 설명할 것이다.The foregoing has described a virtual memory system for allowing a NAND flash memory to perform a function such as synchronous dynamic RAM (SDRAM) in a portable terminal, and in the following description, a preferred embodiment of the present invention. A method for processing a virtual memory file using the virtual memory system according to the present invention will be described.
도 2는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기의 가상 메모리 시스템에서 가상 메모리를 설정하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of setting a virtual memory in a virtual memory system of a portable terminal according to an exemplary embodiment of the present invention.
상기 도 2를 참조하면, 상기 휴대용 단말기의 가상 메모리 시스템은 먼저 201단계에서 메모리 관리부(100)로 하여금 가상 메모리 주소에 대한 접근을 허용하도록 하는 가상 메모리 설정 이벤트가 발생하는지 검사하도록 지시한다.Referring to FIG. 2, in
만일, 상기 가상 메모리 설정 이벤트가 발생하지 않을 경우, 상기 메모리 관리부(100)는 211단계로 진행하여 해당 기능(예 ; 대기 모드)을 수행한다.If the virtual memory setting event does not occur, the memory manager 100 proceeds to step 211 to perform a corresponding function (eg, standby mode).
한편, 상기 가상 메모리 설정 이벤트가 발생함을 확인할 경우, 상기 메모리 관리부(100)는 203단계로 진행하여 가상 메모리 공간을 정의한다.On the other hand, when it is confirmed that the virtual memory setting event occurs, the memory manager 100 proceeds to
이후, 상기 메모리 관리부(100)는 205단계로 진행하여 가상 메모리 파일의 생성 여부를 검사한다.In
만일, 상기 가상 메모리 파일이 생성함을 확인할 경우, 상기 메모리 관리부(100)는 207단계로 진행하여 상기 203단계에서 정의한 가상 메모리 주소와 상기 205단계에서 생성된 가상 메모리 파일의 주소를 매핑하도록 처리한다.If it is confirmed that the virtual memory file is generated, the memory manager 100 proceeds to
여기에서, 상기 메모리 관리부(100)는 상기 가상 메모리 파일의 배드 블럭(BAD BLOCK)의 발생을 고려하여 가상 메모리 주소 공간만큼의 크기로 상기 가상 메모리 파일을 생성할 수 있다.Here, the memory manager 100 may generate the virtual memory file with a size equal to the virtual memory address space in consideration of occurrence of a bad block of the virtual memory file.
이후, 상기 메모리 관리부(100)는 상기 가상 메모리 파일의 연산 즉, 상기 가상 메모리 파일의 읽기 또는 쓰기 과정에 필요한 가상 메모리 정보를 초기화하도록 처리한다.Thereafter, the memory manager 100 processes the virtual memory file to be initialized, that is, virtual memory information required for a read or write process of the virtual memory file.
여기에서, 상기 가상 메모리 정보는 큐 버퍼에 기록되어 있는 상기 가상 메모리 파일의 읽기 과정에서 사용한 가상 메모리 파일의 버퍼 정보인 업로드 인덱스(Upload Index)와 상기 가상 메모리 파일 쓰기 과정을 수행할 버퍼의 정보를 포함하는 플러쉬 인덱스(Flush Index)를 포함할 수 있다.Here, the virtual memory information may include an upload index, which is buffer information of a virtual memory file used in a process of reading the virtual memory file recorded in a queue buffer, and information of a buffer to perform the virtual memory file writing process. A flush index may be included.
이후, 상기 메모리 관리부(100)는 본 알고리즘을 종료한다.Thereafter, the memory manager 100 ends the present algorithm.
도 3은 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 파일의 읽기 과정을 수행하기 위한 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of reading a virtual memory file in a portable terminal according to an exemplary embodiment of the present invention.
상기 과정은 가상 메모리 주소를 통한 데이터 접근이 발생할 경우, 동기식 동적 램(SDRAM ; Synchronous Dynamic RAM)에 존재하는 실제 주소가 아니기 때문에 데이터 처리 실패(Data Abort)가 발생한 상태임을 가정하여 설명할 것이다.The above process will be described on the assumption that data processing failure occurs because data access through the virtual memory address is not a real address existing in synchronous dynamic RAM (SDRAM).
상기 도 3을 참조하면, 상기 휴대용 단말기의 가상 메모리 시스템은 먼저 301에서 메모리 관리부(100)로 하여금 데이터 처리 실패가 발생함을 확인하고, 303 단계로 진행하여 상기 데이터 처리 실패가 발생한 가상 메모리 주소와 상응하는 가상 메모리 파일의 주소를 확인한다.Referring to FIG. 3, the virtual memory system of the portable terminal first determines in
이후, 상기 메모리 관리부(100)는 305단계로 진행하여 상기 데이터 처리 실패가 발생한 주소와 상응하는 가상 메모리 파일을 오픈(Open)한 후, 307단계로 진행하여 사용자 요청에 따른 상기 가상 메모리 파일의 읽기 과정을 수행한다.After that, the memory manager 100 proceeds to step 305 to open the virtual memory file corresponding to the address where the data processing failure has occurred, and proceeds to step 307 to read the virtual memory file according to a user request. Perform the process.
여기에서, 상기 305단계의 가상 메모리 파일 오픈 과정은 상기 가상 메모리 시스템의 성능 저하를 방지하기 위하여 최초 과정에서만 수행하며, 상기 307단계의 상기 가상 메모리 파일의 읽기 과정은 상기 가상 메모리 시스템에 기 정의되어있는 페이지 단위의 크기 만큼 파일 읽기 연산을 수행할 수 있다.In this case, the process of opening the virtual memory file of
이후, 상기 메모리 관리부(100)는 상기 읽기 과정을 수행한 가상 메모리 파일을 페이징 버퍼(114)에 저장한 후, 311단계로 진행하여 연산에 요청된 주소, 로딩된 버퍼 슬롯의 포인터, 슬롯 번호 등을 포함하는 가상 메모리 정보를 큐 버퍼(112)에 기록한다.After that, the memory manager 100 stores the virtual memory file in which the read process is performed in the
여기에서, 상기 페이징 버퍼(114)에 저장되는 데이터가 버퍼 영역의 슬롯에 대체될 경우, 상기 메모리 관리부(100)는 새로운 데이터를 상기 페이징 버퍼(114)에 저장하도록 처리할 수 있다.Here, when data stored in the
여기에서, 상기 가상 메모리 정보는 데이터 연산 요청된 주소 값, 로딩된 버퍼의 슬롯 정보(예 ; 슬롯 포인터, 슬롯 번호 등)와 같이 쓰기 과정에 필요한 정보로 상기 큐 버퍼(112)의 업로드 인덱스(Upload Index)에 기록할 수 있다.Here, the virtual memory information is information required for a writing process such as an address value requested for data operation and slot information (eg, slot pointer, slot number, etc.) of the loaded buffer. The upload index of the
이후, 상기 메모리 관리부(100)는 본 알고리즘을 종료한다.Thereafter, the memory manager 100 ends the present algorithm.
도 4는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 파일의 쓰기 과정을 수행하기 위한 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process of writing a virtual memory file in a portable terminal according to an exemplary embodiment of the present invention.
상기 도 4를 참조하면, 먼저 가상 메모리 시스템은 401단계에서 메모리 관리부(100)로 하여금 가상 메모리 파일의 읽기 과정에서 할당받은 슬롯 번호를 확인하도록 지시한 후, 403단계로 진행하여 큐 버퍼(112)의 플러쉬 인덱스(Flush Index)에 기록된 가상 메모리 정보를 이용하여 상기 가상 메모리 파일의 쓰기 과정을 수행할 버퍼의 슬롯 번호를 확인하도록 지시한다.Referring to FIG. 4, the virtual memory system first instructs the memory manager 100 to check a slot number allocated in a process of reading a virtual memory file in
여기에서, 상기 플러쉬 인덱스에 기록된 가상 메모리 정보는 상기 가상 메모리 파일 읽기 과정에서 페이징된 페이징 정보로 쓰기 과정을 수행할 버퍼의 슬롯 정보를 말한다.Herein, the virtual memory information recorded in the flush index refers to slot information of a buffer to write to paging information paged in the virtual memory file reading process.
이후, 상기 메모리 관리부(100)는 403단계로 진행하여 상기 과정에서 확인한 슬롯 번호가 일치하는지 비교한다.Thereafter, the memory manager 100 proceeds to step 403 to compare whether the slot numbers identified in the process match.
만일, 상기 슬롯 번호들이 서로 일치하지 않음을 경우, 상기 메모리 관리부(100)는 본 알고리즘을 종료한다.If the slot numbers do not coincide with each other, the memory manager 100 ends the present algorithm.
한편, 상기 슬롯 번호들이 서로 일치함을 확인할 경우, 상기 메모리 관리부(100)는 407단계로 진행하여 가상 메모리 파일을 오픈한다.On the other hand, if it is confirmed that the slot numbers coincide with each other, the memory manager 100 proceeds to step 407 to open the virtual memory file.
이후, 상기 메모리 관리부(100)는 409단계로 진행하여 상기 큐 버퍼의 플러쉬 인덱스에 기록된 가상 메모리 정보를 이용하여 쓰기 과정을 수행할 버퍼의 슬롯 포인터를 확인하고, 411단계로 진행하여 상기 가상 메모리 파일 읽기 과정에서 발 생한 데이터 처리 실패(Data Abort)가 발생한 주소를 확인한다.In
이후, 상기 메모리 관리부(100)는 413단계로 진행하여 상기 411단계에서 확인한 상기 데이터 처리 실패가 발생한 주소를 상기 가상 메모리 파일 읽기 과정에서 할당받은 주소로 변환한다.In
이후, 상기 메모리 관리부(100)는 415단계로 진행하여 기 정의된 페이지 단위로 상기 가상 메모리 파일의 쓰기 과정을 수행한다.In
상기 가상 메모리 파일의 쓰기 과정은 상기 가상 메모리 파일에 데이터를 쓰는 과정으로, 큐 방식으로 관리되는 버퍼에서 모든 슬롯이 다 사용된 후, 새로운 슬롯으로 교체되는 단계에서 쓰기 과정을 수행하는 방식(Lazy Update)으로 수행할 수 있다.The writing process of the virtual memory file is a writing process of writing data to the virtual memory file. After all slots are used in the queue-managed buffer, the writing process is performed in the step of replacing the slot with a new slot. ).
이후, 상기 메모리 관리부(100)는 본 알고리즘을 종료한다.Thereafter, the memory manager 100 ends the present algorithm.
도 5는 본 발명의 바람직한 일 실시 예에 따른 휴대용 단말기에서 가상 메모리 처리를 종료하도록 하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of terminating a virtual memory process in a portable terminal according to an exemplary embodiment of the present invention.
상기 도 5를 참조하면, 가상 메모리 시스템은 먼저 501단계에서 메모리 관리부(100)로 하여금 사용자에 의한 휴대용 단말기 전원 오프 요청을 감지하는지 검사하도록 지시한다.Referring to FIG. 5, the virtual memory system first instructs the memory manager 100 to check whether a portable terminal power off request is detected by a user in
만일, 상기 요청을 감지하지 않을 경우, 상기 메모리 관리부(100)는 507단계로 진행하여 해당 기능(예 ; 가상 메모리 처리 과정 수행)을 수행한다.If the request is not detected, the memory manager 100 proceeds to step 507 to perform a corresponding function (for example, performing a virtual memory process).
한편, 상기 요청을 감지할 경우, 상기 메모리 관리부(100)는 503단계로 진행 하여 가상 메모리 파일을 닫은 후, 상기 휴대용 단말기의 전원 오프 과정을 수행한다.On the other hand, when detecting the request, the memory manager 100 proceeds to step 503 to close the virtual memory file, and performs a power-off process of the portable terminal.
여기에서, 상기 503단계는 가상 메모리 파일 생성에 필요한 시간을 절약하기 위하여 상기 가상 메모리 파일을 삭제하지 않아 상기 가상 메모리 파일을 재사용하도록 할 수 있다.Here, in
이후, 상기 메모리 관리부(100)는 본 알고리즘을 종료한다.Thereafter, the memory manager 100 ends the present algorithm.
한편, 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined not only by the scope of the following claims, but also by the equivalents of the claims.
상술한 바와 같이, 본 발명에 따른 가상 메모리 시스템을 이용하여 가상 메모리 파일에 대한 읽기 또는 쓰기 과정을 수행하도록 할 수 있다. 또한 기존의 가상 메모리 시스템의 문제점인 가상 메모리 파일의 쓰기 과정으로 인해 발생하는 낸드 플래쉬 메모리의 수명 단축 문제점을 해결할 수 있다.As described above, the virtual memory system according to the present invention may be used to read or write the virtual memory file. In addition, it is possible to solve the problem of shortening the lifespan of NAND flash memory caused by the virtual memory file writing process, which is a problem of the conventional virtual memory system.
Claims (16)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070059363A KR20080111242A (en) | 2007-06-18 | 2007-06-18 | Apparatus and method for virtual memory in portable communication system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070059363A KR20080111242A (en) | 2007-06-18 | 2007-06-18 | Apparatus and method for virtual memory in portable communication system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20080111242A true KR20080111242A (en) | 2008-12-23 |
Family
ID=40369531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070059363A KR20080111242A (en) | 2007-06-18 | 2007-06-18 | Apparatus and method for virtual memory in portable communication system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20080111242A (en) |
-
2007
- 2007-06-18 KR KR1020070059363A patent/KR20080111242A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI625731B (en) | Volatile memory architecture in non-volatile memory devices and related controllers | |
KR102584018B1 (en) | Apparatus, system and method for caching compressed data background | |
US10114740B2 (en) | Memory management techniques | |
US9183136B2 (en) | Storage control apparatus and storage control method | |
US20120254514A1 (en) | Memory system, controller, and method for controlling memory system | |
US20190102262A1 (en) | Automated continuous checkpointing | |
US8850105B2 (en) | Method for controlling memory system, information processing apparatus, and storage medium | |
CN105718530B (en) | File storage system and file storage control method thereof | |
US20160092361A1 (en) | Caching technologies employing data compression | |
US11132145B2 (en) | Techniques for reducing write amplification on solid state storage devices (SSDs) | |
US9983826B2 (en) | Data storage device deferred secure delete | |
CN112799595B (en) | Data processing method, device and storage medium | |
US20190370009A1 (en) | Intelligent swap for fatigable storage mediums | |
US9367691B2 (en) | Modify executable bits of system management memory page table | |
KR20100102535A (en) | Semiconductor memory device | |
KR101996641B1 (en) | Apparatus and method for memory overlay | |
CN115639971A (en) | Data writing method, data writing device, electronic device, storage medium, and program product | |
US10073851B2 (en) | Fast new file creation cache | |
JP4988054B2 (en) | Memory system | |
KR20110033066A (en) | Fast speed computer system power-on & power-off method | |
CN115934002B (en) | Solid state disk access method, solid state disk, storage system and cloud server | |
CN110515861B (en) | Memory device for processing flash command and method thereof | |
KR20090053487A (en) | Method of demand paging for codes which requires real time response and terminal | |
KR20080111242A (en) | Apparatus and method for virtual memory in portable communication system | |
US20190004708A1 (en) | Electronic device and data compression method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |