KR101444397B1 - Method and apparatus for controlling hard disk access - Google Patents
Method and apparatus for controlling hard disk access Download PDFInfo
- Publication number
- KR101444397B1 KR101444397B1 KR1020130020386A KR20130020386A KR101444397B1 KR 101444397 B1 KR101444397 B1 KR 101444397B1 KR 1020130020386 A KR1020130020386 A KR 1020130020386A KR 20130020386 A KR20130020386 A KR 20130020386A KR 101444397 B1 KR101444397 B1 KR 101444397B1
- Authority
- KR
- South Korea
- Prior art keywords
- ring buffer
- hard disk
- data
- memory
- dpu
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
Abstract
본 발명은 하드디스크 엑세스를 컨트롤하는 임베디드 시스템에 대한 것으로, 임베디드 시스템의 하드디스크 접속 제어 방법은 하드디스크 쓰기 어플리케이션이 호출되면, 링 버퍼 형태로 메모리를 할당하고 상기 메모리 주소를 어플리케이션에 매핑하는 단계; 제 1 링 버퍼에 데이터를 쓰고, 상기 제 1 링 버퍼에 빈 공간이 없는지 여부를 확인하는 단계; 및 상기 제 1 링 버퍼에 빈 공간이 없는 경우, 제 2 링 버퍼에 데이터를 쓰고 상기 제 1 링 버퍼의 데이터를 하드디스크로 전송하는 단계를 포함하는 것을 특징으로 한다. 본 발명에 따르면, Thread 환경에서 계속하여 하드디스크에 읽기, 쓰기를 위한 엑세스 작업으로 CPU가 점유되여 시스템이 블로킹되는 시간을 대폭 단축할 수 있는 효과가 있다. A hard disk access control method of an embedded system includes: allocating a memory in a ring buffer format and mapping the memory address to an application when a hard disk write application is called; Writing data to the first ring buffer and confirming whether there is no empty space in the first ring buffer; And writing data to the second ring buffer and transferring data of the first ring buffer to the hard disk when there is no empty space in the first ring buffer. According to the present invention, the CPU is occupied by the access operation for reading and writing to the hard disk continuously in the Thread environment, thereby greatly shortening the time for blocking the system.
Description
본 발명은 하드디스크 엑세스를 컨트롤하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for controlling hard disk access.
보다 구체적으로 본 발명은 하드디스크 엑세스 제어를 위한 전용 컨트롤러가 쓰기(write) 명령의 경우 메모리를 링 버퍼 형태로 운용하여 하드디스크에 write 작업을 수행하며, 읽기(read) 명령의 경우 타임 오프셋(time offset)을 적용하여 하드디스크에 read 작업을 수행하는 방법 및 장치에 관한 것이다.
More specifically, in the case of a dedicated controller for hard disk access control, a write operation is performed on a hard disk by operating a memory as a ring buffer in the case of a write command. In the case of a read command, The present invention relates to a method and an apparatus for performing a read operation on a hard disk by applying an offset.
최근 디지털 비디오 레코더 (DVR, Digital Video Recorder)가 상용화 되고 있다. DVR은 기존에 쓰이던 비디오 카세트 레코더(VCR)가 녹화를 여러번 반복하는 방식이라 화질이 떨어지고, 비디오테이프를 교체하는 등 사용이 번거로워 이를 해결하기 위해 개발되었다. Recently, a digital video recorder (DVR, Digital Video Recorder) has been commercialized. DVR has been developed to solve this problem because the conventional video cassette recorder (VCR) repeats the recording several times and the image quality deteriorates and the video tape is replaced.
DVR은 비디오테이프 대신 하드디스크나 디지털비디오디스크 등을 사용하므로 저장된 화면을 재생하거나 검색하기가 쉬운 장점이 있다. 뿐만 아니라 디지털 신호로 저장되기 때문에 편집과 화상을 전송하기에도 편리하다.DVR uses hard disk or digital video disk instead of video tape, so it is easy to play or search saved screen. It is also convenient for editing and transferring images because it is stored as a digital signal.
한편 임베디드 시스템이란 특정한 제품에 솔루션에서 주어진 작업을 수행할 수 있도록 추가로 탑재되는 솔루션이나 시스템을 말한다. 즉, 어떤 제품이나 솔루션에 추가로 탑재되어 그 제품 안에서 특정한 작업을 수행하도록 하는 솔루션을 말한다. An embedded system, on the other hand, refers to a solution or system that can be added to a specific product to perform a given task in the solution. In other words, it refers to a solution that is added to a product or solution to perform a specific task within the product.
첨단 기능이 들어 있는 가전제품, 휴대폰, 셋탑박스 등은 물론 DVR 역시 일반적으로 임베디드 시스템을 갖추고 있는데, 이러한 임베디드 시스템은 특정 임베디드 응용 프로그램을 수행할 수 있도록 마이크로프로세서와 하드 디스크를 포함할 수 있다. DVRs, as well as home appliances with advanced functions, mobile phones, set-top boxes, and the like, generally have an embedded system, which may include a microprocessor and a hard disk to perform certain embedded applications.
하드디스크가 장착된 임베디드 시스템의 경우, 저수준 함수인 읽기(read), 쓰기(read)를 위하여 하드디스크에 데이터를 송수신한다. 이는 CPU를 점유한 상태에서 수행되는 작업이며 작업 시간 동안 시스템은 블로킹(blocking) 상태가 된다.In the case of an embedded system equipped with a hard disk, data is transmitted and received to the hard disk for a low-level function, read and write. This is a task performed while occupying the CPU, and the system is in a blocking state during the work time.
하드디스크의 읽기, 쓰기 속도는 CPU나 메모리의 송수신 속도 보다 훨씬 느린 것이 일반적이다. 이로 인하여 특히 빈번하게 읽기 및 쓰기 작업이 발생하는 DVR의 경우, 빈번한 하드디스크 접속은 전체 시스템 성능 저하의 문제가 발생할 수 있다.
The read / write speed of the hard disk is generally much slower than the speed of the CPU and memory. Due to this, in the case of a DVR in which reading and writing operations occur frequently, frequently accessing a hard disk may cause deterioration of the overall system performance.
본 발명은 상기와 같은 문제점을 해결하기 위한 것이다. 특히 본 발명은 하드디스크 엑세스를 효율적으로 컨트롤하는 방법 및 장치를 제공하는 것을 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve the above problems. In particular, it is an object of the present invention to provide a method and apparatus for efficiently controlling hard disk access.
보다 구체적으로 본 발명은 하드디스크 엑세스 제어를 위한 전용 컨트롤러를 이용하여, 상기 전용 컨트롤러가 메모리를 링버퍼 형태로 운용하여 하드디스크에 write 작업을 수행하며, 타임 오프셋(time offset)을 적용하여 하드디스크에 read 작업을 수행하는 방법 및 장치를 제공하는 것을 목적으로 한다.
More specifically, the present invention uses a dedicated controller for hard disk access control, the dedicated controller operates a memory in a ring buffer form to perform a write operation to the hard disk, applies a time offset to the hard disk, And to provide a method and an apparatus for performing a read operation on a computer.
상기와 같은 문제점을 해결하기 위한 본 발명의 일 실시예를 따르는 임베디드 시스템의 하드디스크 접속 제어 방법은 하드디스크 쓰기 어플리케이션이 호출되면, 링 버퍼 형태로 메모리를 할당하고 상기 메모리 주소를 어플리케이션에 매핑하는 단계; 제 1 링 버퍼에 데이터를 쓰고, 상기 제 1 링 버퍼에 빈 공간이 없는지 여부를 확인하는 단계; 및 상기 제 1 링 버퍼에 빈 공간이 없는 경우, 제 2 링 버퍼에 데이터를 쓰고 상기 제 1 링 버퍼의 데이터를 하드디스크로 전송하는 단계를 포함하는 것을 특징으로 한다. According to an embodiment of the present invention, there is provided a method of controlling access to a hard disk of an embedded system, the method comprising: allocating a memory in a ring buffer format and mapping the memory address to an application when a hard disk write application is invoked; ; Writing data to the first ring buffer and confirming whether there is no empty space in the first ring buffer; And writing data to the second ring buffer and transferring data of the first ring buffer to the hard disk when there is no empty space in the first ring buffer.
그리고 본 발명의 다른 실시예를 따르는 임베디드 시스템의 하드디스크 접속 제어 방법은 임의의 시간 T에 대한 하드디스크 읽기 어플리케이션이 호출되면, 링 버퍼 형태로 메모리를 할당하고 상기 메모리 주소를 어플리케이션에 매핑하는 단계; 미리 설정된 시간 오프셋을 적용하여 상기 시간 T 이전 및 이후 시간의 데이터를 하드디스크에서 읽는 단계; 및 상기 하드디스크로부터 읽은 데이터를 링 버퍼에 로드하는 단계를 포함하는 것을 특징으로 한다. In another aspect of the present invention, there is provided a method of controlling access to a hard disk of an embedded system, comprising: allocating a memory in a ring buffer form and mapping the memory address to an application when a hard disk read application is called for a certain time T; Reading data from the hard disk before and after the time T by applying a preset time offset; And loading data read from the hard disk into a ring buffer.
나아가 본 발명의 실시예를 따르는 임베디드 시스템은, 데이터를 저장하는 메모리와 하드디스크; 및 하드디스크 쓰기 어플리케이션이 호출되는 경우, 링 버퍼 형태로 상기 메모리를 할당하고 상기 메모리 주소를 어플리케이션에 매핑하며, 제 1 링 버퍼에 데이터를 쓰고, 상기 제 1 링 버퍼에 빈 공간이 없는지 여부를 확인하고, 상기 제 1 링 버퍼에 빈 공간이 없는 경우, 제 2 링 버퍼에 데이터를 쓰고 상기 제 1 링 버퍼의 데이터를 상기 하드디스크로 전송하도록 제어하는 제어부를 포함하는 것을 특징으로 한다. Furthermore, an embedded system according to an embodiment of the present invention includes a memory for storing data and a hard disk; And when a hard disk writing application is called, allocates the memory in the form of a ring buffer, maps the memory address to an application, writes data in the first ring buffer, and determines whether there is no empty space in the first ring buffer And a control unit for writing data to the second ring buffer and transferring the data of the first ring buffer to the hard disk when there is no empty space in the first ring buffer.
그리고 본 발명의 다른 실시예를 따르는 임베디드 시스템은, 데이터를 저장하는 메모리와 하드디스크; 및 임의의 시간 T에 대한 하드디스크 읽기 어플리케이션이 호출되면, 링 버퍼 형태로 상기 메모리를 할당하고 상기 메모리 주소를 어플리케이션에 매핑하며, 미리 설정된 시간 오프셋을 적용하여 상기 시간 T 이전 및 이후 시간의 데이터를 상기 하드디스크에서 읽고, 상기 하드디스크로부터 읽은 데이터를 상기 링 버퍼에 로드하는 제어부를 포함하는 것을 특징으로 한다.
According to another aspect of the present invention, there is provided an embedded system including: a memory for storing data; a hard disk; And a hard disk read application for an arbitrary time T is called, the memory is allocated in the form of a ring buffer, the memory address is mapped to the application, and a pre-set time offset is applied to the data before and after the time T And a controller for reading data from the hard disk and loading data read from the hard disk into the ring buffer.
본 발명에 따르면, 스레드 환경에서 계속하여 하드디스크에 읽기, 쓰기를 위한 엑세스 작업으로 CPU가 점유되어 시스템이 블로킹되는 시간을 대폭 단축할 수 있다. According to the present invention, in the thread environment, the CPU is occupied by the access operation for reading and writing to the hard disk continuously, and the time for blocking the system can be greatly shortened.
나아가 본 발명에 따르면, CPU 점유율을 낮추어 임베디드 시스템 전체의 효율성을 높일 수 있는 효과가 있다.
Further, according to the present invention, the efficiency of the entire embedded system can be improved by lowering the CPU occupancy rate.
도 1은 본발명의 실시예에 따른 임베디드 시스템의 내부 구조를 설명하기 위한 블록도
도 2는 본발명의 실시예에 따른 쓰기(write) 메모리 링버퍼의 구조를 설명하기 위한 도면
도 3은 본발명의 실시예에 따른 읽기(read) 메모리 링버퍼의 구조를 설명하기 위한 도면
도 4는 본발명의 실시예에 따라 하드디스크 쓰기(write) 엑세스를 제어하는 과정을 도시하는 순서도
도 5은 본 발명의 실시예에 따라 하드디스크 읽기(read) 엑세스를 제어하는 과정을 도시하는 순서도1 is a block diagram for explaining an internal structure of an embedded system according to an embodiment of the present invention;
2 is a diagram for explaining a structure of a write memory ring buffer according to an embodiment of the present invention;
3 is a diagram for explaining the structure of a read memory ring buffer according to an embodiment of the present invention;
4 is a flowchart showing a process of controlling hard disk write access according to an embodiment of the present invention.
5 is a flowchart showing a process of controlling hard disk read access according to an embodiment of the present invention.
본 발명은 이하에 기재되는 실시예들의 설명 내용에 한정되는 것은 아니며, 본 발명의 기술적 요지를 벗어나지 않는 범위 내에서 다양한 변형이 가해질 수 있음은 자명하다. 그리고 실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 널리 알려져 있고 본 발명의 기술적 요지와 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. It is to be understood that the present invention is not limited to the description of the embodiments described below, and that various modifications may be made without departing from the technical scope of the present invention. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail.
첨부된 도면에서 동일한 구성요소는 동일한 부호로 표현된다. 그리고 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시될 수도 있다. 이는 본 발명의 요지와 관련이 없는 불필요한 설명을 생략함으로써 본 발명의 요지를 명확히 설명하기 위함이다. 이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 상세히 설명한다. In the accompanying drawings, the same components are denoted by the same reference numerals. And in the accompanying drawings, some of the elements may be exaggerated, omitted or schematically illustrated. It is intended to clearly illustrate the gist of the present invention by omitting unnecessary explanations not related to the gist of the present invention. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.
한편, 본 발명의 임베디드 시스템은 DVR을 예시할 수 있으나, 이에 한정되는 것은 아니다. 즉, 본 발명인 하드디스크 엑세스를 컨트롤하는 방법 및 장치는 DVR 뿐만 아니라, 휴대폰, 셋탑박스 등 마이크로프로세서와 하드디스크 및 RAM을 포함하는 전자기기에 일반적으로 적용될 수 있다.
Meanwhile, the embedded system of the present invention can exemplify a DVR, but the present invention is not limited thereto. That is, the method and apparatus for controlling access to a hard disk of the present invention can be generally applied not only to a DVR, but also to a microprocessor such as a mobile phone, a set-top box, and an electronic apparatus including a hard disk and a RAM.
도 1은 본 발명의 실시예에 따른 임베디드 시스템의 내부 구조를 설명하기 위한 블록도이다. 도 1에서 도시되는 바와 같이 본 발명의 실시예에 따른 임베디드 시스템(100)은 입력부(110), 통신부(120), 표시부(130). 제어부(140) 및 저장부(170)를 포함할 수 있다. 1 is a block diagram illustrating an internal structure of an embedded system according to an embodiment of the present invention. 1, an embedded
입력부(110)는 임베디드 시스템(100)을 제어하기 위한 사용자의 키 조작을 입력받고 입력 신호를 생성하여 제어부(140)에 전달한다. The
통신부(120)는 임베디드 시스템(100)의 유선 또는 무선 통신을 통한 데이터의 송수신 기능을 수행한다. 또한, 통신부(120)는 유선 또는 무선 채널을 통해 데이터를 수신하여 제어부(140)로 출력하고, 제어부(140)로부터 출력된 데이터를 유무선 채널을 통해 전송할 수 있다. The
표시부(130)는 액정표시장치(LCD, Liquid Crystal Display), 유기 발광 다이오드(OLED, Organic Light Emitting Diodes), 능동형 유기 발광 다이오드(AMOLED, Active Matrix Organic Light Emitting Diodes) 등으로 형성될 수 있으며, 임베디드 시스템(100)의 메뉴, 입력된 데이터, 기능 설정 정보 및 기타 다양한 정보를 사용자에게 시각적으로 제공한다. The
한편, 도 1에 도시된 것은 아니지만, 본 발명의 실시예에 따르는 임베디드 시스템(100)은 오디오 또는 비디오 처리부를 더 구비할 수 있다. Although not shown in FIG. 1, the embedded
오디오 또는 비디오 처리부는 코덱(CODEC)으로 구성될 수 있으며, 코덱은 영상 데이터를 처리하는 비디오 코덱과 음성 등의 오디오 신호를 처리하는 오디오 코덱으로 구성될 수 있다. The audio or video processing unit may be a CODEC, and the CODEC may be a video CODEC for processing image data and an audio CODEC for processing audio signals such as voice.
비디오 처리부는 아날로그 영상을 디지털 영상으로 변환할 수 있다. 그리고 오디오 처리부는 디지털 오디오 신호를 코덱을 통해 아날로그 오디오 신호로 변환하여 스피커(SPK)를 통해 재생하고, 마이크(MIC)로부터 입력되는 아날로그 오디오 신호를 오디오 코덱을 통해 디지털 오디오 신호로 변환할 수 있다. The video processing unit can convert the analog image into the digital image. The audio processor converts the digital audio signal into an analog audio signal through a codec, reproduces the audio signal through a speaker SPK, and converts the analog audio signal input from the microphone into a digital audio signal through an audio codec.
저장부(170)는 임베디드 시스템(100)의 동작에 필요한 프로그램 및 데이터를 저장하는 역할을 수행하며, 프로그램 영역과 데이터 영역으로 구분될 수 있다. The
프로그램 영역은 임베디드 시스템(100)의 전반적인 동작을 제어하는 프로그램 및 임베디드 시스템(100)을 부팅시키는 운영체제(OS, Operating System), 이미지, 동영상, 또는 멀티미디어 컨텐츠 재생 등에 필요한 응용 프로그램, 임베디드 시스템(100)의 기타 옵션 기능, 예컨대, 알람 기능, 파일 변환 기능, 이미지 또는 동영상 재생 기능에 필요한 응용 프로그램 등을 저장할 수 있다. 데이터 영역은 임베디드 시스템(100)의 사용에 따라 발생하는 데이터가 저장되는 영역으로서 이미지 및 동영상 등을 저장할 수 있다.The program area includes a program for controlling overall operation of the embedded
이러한 저장부(170)는 RAM(Random Access Memory, 180) 및 하드디스크(Hard Disk, 190)를 포함할 수 있으며, 이들의 동작은 첨부된 도면과 함께 후술된다. The
제어부(140)는 임베디드 시스템(100)의 각 구성 요소에 대한 전반적인 동작을 제어한다. 특히,본 발명의 실시예를 따르는 제어부(150)는 CPU(Central Processing Unit, 140) 및 하드디스크 엑세스 제어를 위한 전용 컨트롤러인 DPU(Data Processing Unit, 160)을 포함할 수 있다. CPU와 DPU는 물리적으로 각각 구분된 복수의 프로세서일 수 있으나, 하나의 프로세서를 개념적으로 구분한 기능적 단위일 수도 있다. The
CPU(150)는 시스템이 부팅되면 CPU 기반 어플리케이션을 구동한다. 그리고 하드디스크 쓰기 또는 읽기 API(Application Program Interface)가 호출되면 DPU를 활성화시켜 co-processor 혹은 co-work을 시작한다. The
DPU(160)는 Write 용도로 쓰여질 RAM(180)의 물리적 주소 공간 과 Read 용도로 쓰여질 RAM(180) 물리적 주소 공간을 지정할 수 있는 API 함수를 제공할 수 있다. 그리고 DPU(160)는 지정된 Write, Read 메모리 공간에 access 하여 write 작업과 read 작업을 수행 할 수 있는 API 함수를 제공할 수 있다. The
Write의 경우, DPU(160)는 Write 함수의 호출에 대해 주기적으로 체크하여 메모리가 미리 설정된 용량을 충족하는 경우 하드디스크(190)에 쓰기 작업을 수행하여 데이터를 RAM(180)에서 하드디스크(190)로 전송할 수 있다. In the case of Write, the
Read의 경우, DPU(160)는 하드디스크(190)에 접속하는데, 요청 받은 임의의 Time stamp 에 대해 오프셋 값을 두어 요청 시간 전후의 데이터를 하드디스크(190)에서 RAM(180)으로 전송할 수 있다. 구체적인 과정은 첨부된 도면과 함께 후술된다.
In case of Read, the DPU 160 accesses the
도 2는 본발명의 실시예에 따른 쓰기(write) 메모리 링버퍼의 구조를 설명하기 위한 도면이다. 도 2에서 도시된 바와 같이 본 발명의 실시예에 따른 쓰기(write) 메모리는 링버퍼 구조로 운용할 수 있다.2 is a diagram illustrating a structure of a write memory ring buffer according to an embodiment of the present invention. As shown in FIG. 2, a write memory according to an embodiment of the present invention can operate as a ring buffer structure.
예를 들어, 0x1000000 ~ 0x8000000가 Write 용도로 할당된 Memory 영역인 경우, DPU(160)은 N 개의 영역으로 상기 메모리 공간을 나눌 수 있다. 예를 들어 아래처럼 7 개의 공간으로 메모리를 나눌 수 있다. For example, if 0x1000000 to 0x8000000 are memory areas allocated for the purpose of writing, the
제 1 메모리 공간 : 0x1000000 ~ 0x1FFFFFFFFirst memory space: 0x1000000 to 0x1FFFFFFF
제 2 메모리 공간 : 0x2000000 ~ 0x2FFFFFFFSecond memory space: 0x2000000 to 0x2FFFFFFF
제 3 메모리 공간 : 0x3000000 ~ 0x3FFFFFFFThird memory space: 0x3000000 to 0x3FFFFFFF
제 4 메모리 공간 : 0x4000000 ~ 0x4FFFFFFFFourth memory space: 0x4000000 to 0x4FFFFFFF
제 5 메모리 공간 : 0x5000000 ~ 0x5FFFFFFFFifth memory space: 0x5000000 to 0x5FFFFFFF
제 6 메모리 공간 : 0x6000000 ~ 0x6FFFFFFFSixth memory space: 0x6000000 to 0x6FFFFFFF
제 7 메모리 공간 : 0x7000000 ~ 0x7FFFFFFFSeventh memory space: 0x7000000 to 0x7FFFFFFF
예를 들어 CPU(150)또는 DPU(160)는 제 1 메모리 공간에 data 를 모두 write 하였을 때 제 1 메모리 영역의 stop bit가 ON이 되도록 설정할 수 있다. 그리고 DPU(160)는 Checker 기능을 적용하여 stop bit 를 체크하여 stop bit가 ON 인 경우, 해당 메모리 영역의 data 를 하드디스크에 write 하도록 제어할 수 있다. For example, the
제 1 메모리 영역에 대한 하드디스크 Writing 이 진행되는 동안 DPU(160)는 제 1 메모리 영역의 write bit 를 on 시키고, write 가 완료된 이후에 spot bit 와 write bit 는 초기화되도록 설정할 수 있다. The
또한 DPU(160)는 Checker 기능을 적용하여 제 1 메모리 영역의 stop bit 와 write bit 를 체크하여, stop bit가 on 이거나 write bit on 인 경우, 제 2 메모리 영역에 공간에 데이터를 write하도록 제어할 수 있다. 나아가 DPU(160)는, 제공되는 Write API 함수에서 실제 메모리 주소를 mapping 하도록 제어할 수 있다. In addition, the
이러한 본 발명의 실시예에 따라, DPU(160)는 제 1 메모리 공간에 데이터를 write하고 제1 메모리 공간이 가득 찬 경우 하드디스크에 access하여 제 1 메모리 공간의 데이터를 하드디스크로 옮길 수 있다. 제 1 메모리 공간이 가득 찬 경우, 하드디스크 access와 동시에 제 2 메모리 공간에 데이터를 write할 수 있다. 그리고 제 2 메모리 공간이 가득한 경우 하드디스크에 access하여 제 2 메모리 공간의 데이터를 하드디스크로 옮김과 동시에 제 3 메모리 공간에 데이터를 write할 수 있다. 위와 같이 다수개의 buffer 를 ring 처럼 연결하여 순차적으로 회전하게 되면 data 의 손실이 발생하지 않는 효과가 있다
According to the embodiment of the present invention, when the
도 3은 본발명의 실시예에 따른 읽기(read) 메모리 링버퍼의 구조를 설명하기 위한 도면이다. 도 2에서 도시된 바와 같이 본 발명의 실시예에 따른 읽기(read) 메모리는 링버퍼 구조로 운용할 수 있다.3 is a diagram for explaining a structure of a read memory ring buffer according to an embodiment of the present invention. As shown in FIG. 2, a read memory according to an embodiment of the present invention can operate as a ring buffer structure.
예를 들어, 0x1000000 ~ 0x8000000가 read 용도로 할당된 Memory 영역인 경우, DPU(160)은 N 개의 영역으로 공간을 나눌 수 있다. 예를 들어 아래처럼 7 개의 공간으로 나눌 수 있다. For example, if 0x1000000 to 0x8000000 are memory areas allocated for reading purposes, the
제 1 메모리 공간 : 0x1000000 ~ 0x1FFFFFFFFirst memory space: 0x1000000 to 0x1FFFFFFF
제 2 메모리 공간 : 0x2000000 ~ 0x2FFFFFFFSecond memory space: 0x2000000 to 0x2FFFFFFF
제 3 메모리 공간 : 0x3000000 ~ 0x3FFFFFFFThird memory space: 0x3000000 to 0x3FFFFFFF
제 4 메모리 공간 : 0x4000000 ~ 0x4FFFFFFFFourth memory space: 0x4000000 to 0x4FFFFFFF
제 5 메모리 공간 : 0x5000000 ~ 0x5FFFFFFFFifth memory space: 0x5000000 to 0x5FFFFFFF
제 6 메모리 공간 : 0x6000000 ~ 0x6FFFFFFFSixth memory space: 0x6000000 to 0x6FFFFFFF
제 7 메모리 공간 : 0x7000000 ~ 0x7FFFFFFFSeventh memory space: 0x7000000 to 0x7FFFFFFF
예를 들어 입력부(110)로부터 특정 시간 T에 대한 동영상 읽기 사용자 명령을 수신한 경우, CPU(150)또는 DPU(160)는 특정 시간 T에 대응되는 데이터를 하드디스크에서 읽을 수 있다. 한편, 소정의 시간 오프셋을 미리 설정할 수 있는데, 이 경우 미리 설정된 시간 오프셋을 적용하여 T 이전 및 이후 시간에 대응되는 데이터 역시 하드디스크에서 함께 읽을 수 있다. For example, when a moving picture reading user command for a specific time T is received from the
이후 DPU(160)는 T를 메모리 주소값으로 구분하고 하드디스크에서 읽은 데이터를 제 1 메모리 공간에 로드(Load)할 수 있다. 예를 들어 제 1 메모리 공간의 0x1111000 주소값에 T를 대응하여, 하드 디스크에서 읽은 T 이전 및 이후 시간에 대응되는 데이터를 제 1 메모리 공간의 0x1111000 전후에 로드할 수 있다. 특히 T에 대응하는 데이터 메모리 주소값은 제 1 메모리 중간 지점의 오프셋으로 사용할 수 있다. 또한 DPU(160)는, 제공되는 Read API 함수에서 특정 시간 T와 T에 대응하는 메모리 주소를 mapping 하도록 제어할 수 있다. Then, the
이러한 본 발명의 실시예에 따라 DPU(160)는 미리 설정된 시간 오프셋을 적용하여 T 이전 및 이후 시간에 대응되는 데이터 역시 하드디스크에서 함께 읽을 수 있다. 그리고 제 1 메모리 공간의 중간 지점에 T에 대응하는 데이터를 로드하고, T 이전 시간에 대응되는 데이터는 제 1 메모리 공간의 전반부에 로드하고, 제 1 메모리 공간의 전반부가 부족한 경우 제 7 메모리 공간을 사용하여 로드 할 수 있다. 나아가 T 이후 시간에 대응되는 데이터는 제 1 메모리 공간의 후반부에 로드하고, 제 1 메모리 공간의 후반부가 부족한 경우 제 2 메모리 공간을 사용하여 로드 할 수 있다. According to the embodiment of the present invention, the
위와 같이 다수개의 buffer 를 ring 처럼 연결하여 순차적으로 회전하게 되면 사용자가 요청한 data 가 변할 때 마다 가변적으로 앞뒤 data 를 충분히 확보하여 Hard Disk Access 빈도를 자동으로 최소화 할 수 있는 효과가 있다.
If a plurality of buffers are connected in a ring like the above manner, the sequential rotation of the buffers allows a sufficient amount of back and forth data whenever the data requested by the user changes, thereby minimizing the hard disk access frequency automatically.
도 4는 본발명의 실시예에 따라 하드디스크 쓰기(write) 엑세스를 제어하는 과정을 도시하는 순서도이다. 4 is a flowchart illustrating a process of controlling hard disk write access according to an embodiment of the present invention.
단계 410에서 CPU(150)와 DPU(160)는 Co-work 작업을 확인하고, 단계 420에서 CPU(150)는 하드디스크 쓰기 요청 API를 호출할 수 있다. 도 4에서는 단계 410과 단계 420을 각각 도시하였지만, 이는 설명의 편의를 위한 것이며, 각 단계들의 시간적 순서를 나타내는 것은 아니다. 실제, 본 발명의 실시예에 따르면 단계 410은 단계 420와 동시에 일어날 수 있다. 즉, CPU(150)가 하드디스크 쓰기 요청 API를 호출하면 DPU(160)에게 신호를 보내어 CPU(150)와 DPU(160)의 Write Co-work 작업임을 확인할 수 있다. In
단계 430에서 DPU(160)는 데이터를 Write할 메모리를 할당하고 하드디스크 쓰기 요청 어플리케이션에 메모리 주소를 매핑할 수 있다. 또는 DPU(160)가 할당한 메모리에 대한 주소값을 CPU(150)에 전달하면 CPU가 메모리 주소를 어플리케이션에 매핑할 수도 있다. 또한 DPU(160)가 메모리를 할당함과 동시에, CPU를 거치지 않고 DPU(160)가 메모리 주소를 어플리케이션에 바로 매핑할 수도 있다. In
단계 480에서 CPU(150)는 Thread에 쓰기 작업을 계속한다. 그러면 DPU(160)는 단계 450에서 할당된 메모리 링버퍼에 데이터를 Write한다. 단계 460에서 DPU(160)는 링버퍼가 가득 찼는지 stop bit를 이용하여 체크할 수 있다. In
이후 단계 470에서 DPU(160)는 stop bit가 ON 인 경우, 해당 메모리 영역의 data 를 하드디스크에 write 하도록 제어할 수 있다.Thereafter, in
구체적으로 설명하면, 단계 450에서, DPU(160)는 제 N 번째 링버퍼에 데이터를 write하고, 단계 460에서 제 N 번째 링버퍼가 가득 찬 경우, 단계 470에서 하드디스크에 access하여 제 N 번째 링버퍼의 데이터를 하드디스크로 옮길 수 있다. 그리고 다시 단계 450으로 복귀하여 제 N+1 번째 링버퍼에 나머지 데이터를 계속하여 write할 수 있다. More specifically, in
도 5는 본발명의 실시예에 따라 하드디스크 읽기(Read) 엑세스를 제어하는 과정을 도시하는 순서도이다. 5 is a flowchart illustrating a process of controlling hard disk read access according to an embodiment of the present invention.
단계 510에서 CPU(150)와 DPU(160)는 Co-work 작업을 확인하고, 단계 520에서 CPU(150)는 하드디스크 읽기 요청 API를 호출할 수 있다. 도 5에서는 단계 510과 단계 520을 각각 도시하였지만, 본 발명의 실시예에 따르면 단계 510은 단계 520와 동시에 일어날 수 있다. 즉, CPU(150)가 하드디스크 읽기 요청 API를 호출하면 DPU(160)에게 신호를 보내어 CPU(150)와 DPU(160)의 Write Co-work 작업임을 확인할 수 있다. In
단계 530에서 DPU(160)는 데이터를 하드디스크로부터 로드할 메모리를 할당하고 어플리케이션에 메모리 주소를 매핑할 수 있다. 구체적으로는, DPU(160)가 할당한 메모리에 대한 주소값을 CPU(150)에 전달하면 CPU가 메모리 주소를 어플리케이션에 매핑할 수 있다. 또한 DPU(160)가 메모리를 할당함과 동시에, CPU를 거치지 않고 DPU(160)가 메모리 주소를 어플리케이션에 바로 매핑할 수도 있다. At
단계 540에서 DPU(160)는 데이터를 하드디스크에서 읽어 메모리로 전송할 수 있다. 보다 구체적으로, DPU(160)는 임의의 시간 T에 대한 데이터를 하드디스크에서 읽을 수 있는데, 미리 설정된 시간 오프셋을 적용하여 T 이전 및 이후 시간에 대한 데이터를 하드디스크에서 함께 읽을 수 있다. 또한 DPU(160)는 T에 의한 데이터 메모리 주소값은 링버퍼 메모리 중간 지점의 오프셋으로 사용할 수 있다. In
이후 단계 550에서 DPU(160)는 링버퍼를 읽을 수 있으며, 단계 560에서 CPU(150)는 Thread에 read 작업을 반복할 수 있다
Thereafter, in
본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
The embodiments of the present invention disclosed in the present specification and drawings are merely illustrative of specific embodiments of the present invention and are not intended to limit the scope of the present invention in order to facilitate understanding of the present invention. It is to be understood by those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
100: 임베디드 시스템
110 : 입력부
120 : 통신부
140 : 제어부
150 : CPU
160 : DPU
170 : 저장부
180 : RAM
190 : 하드디스크100: Embedded Systems
110: input unit
120:
140:
150: CPU
160: DPU
170:
180: RAM
190: Hard disk
Claims (8)
임의의 시간 T에 대한 하드디스크 읽기 어플리케이션이 호출되면, 링 버퍼 형태로 메모리를 할당하고 상기 할당된 메모리의 메모리 주소를 상기 하드디스크 읽기 어플리케이션에 매핑하는 단계;
미리 설정된 시간 오프셋을 적용하여, 상기 시간 T 이전 및 이후 시간에 대응되는 데이터를 하드디스크에서 읽는 단계; 및
상기 하드디스크로부터 읽은 데이터를 링 버퍼에 로드하는 단계를 포함하며,
상기 데이터를 링 버퍼에 로드하는 단계는,
상기 하드디스크로부터 읽은 데이터 중, 상기 시간 T 이전 시간에 대응되는 데이터를 제 n 링 버퍼 전반부에 로드하고, 상기 제 n 링 버퍼 전반부의 공간이 부족하면 제 n-1 링 버퍼에 로드하는 단계;
상기 하드디스크로부터 읽은 데이터 중, 상기 시간 T에 대응되는 데이터를 상기 제 n 링 버퍼 중간에 로드하는 단계; 및
상기 하드디스크로부터 읽은 데이터 중, 상기 시간 T 이후 시간에 대응되는 데이터를 상기 제 n 링 버퍼 후반부에 로드하고, 상기 제 n 링 버퍼 후반부의 공간이 부족하면 제 n+1 링 버퍼에 로드하는 단계를 포함하는 것을 특징으로 하는 방법.A method of controlling access to a hard disk of an embedded system,
Allocating memory in the form of a ring buffer and mapping the memory address of the allocated memory to the hard disk read application when a hard disk read application for an arbitrary time T is called;
Reading data corresponding to the time before and after the time T from the hard disk by applying a preset time offset; And
And loading data read from the hard disk into a ring buffer,
The step of loading the data into the ring buffer comprises:
Loading the data corresponding to the time before the time T among the data read from the hard disk into the first n-ring buffer and loading the data into the n-1 ring buffer when the space in the first n-ring buffer is insufficient;
Loading data corresponding to the time T among data read from the hard disk into the n-th ring buffer; And
The step of loading data corresponding to the time after the time T among the data read from the hard disk into the rear part of the n-th ring buffer and loading into the n + 1 ring buffer when the space in the rear part of the n-th ring buffer is insufficient ≪ / RTI >
하드디스크 쓰기 어플리케이션이 호출되면, 링 버퍼 형태로 메모리를 할당하고 상기 할당된 메모리의 메모리 주소를 상기 하드디스크 쓰기 어플리케이션에 매핑하는 단계;
제 1 링 버퍼의 쓰기 비트(write bit)를 활성화(on)하면서 상기 제 1 링 버퍼에 데이터를 기록하는 단계;
상기 제 1 링 버퍼에 빈 공간이 없는 경우, 상기 제 1 링 버퍼의 정지 비트(stop bit)를 활성화하는 단계;
상기 제 1 링 버퍼의 정지 비트가 활성화되어 있는 경우, 상기 제 1 링버퍼의 데이터를 하드디스크로 로드하고, 상기 데이터 로드가 종료되면 상기 제 1 링 버퍼의 정지 비트를 비활성화(off)하는 단계;
상기 제 1 링 버퍼의 쓰기 비트 또는 정지 비트가 활성화되어 있는 경우, 제 2 링 버퍼의 쓰기 비트를 활성화하면서 상기 제 2 링버퍼에 데이터를 기록하는 단계; 및
데이터 기록이 종료되면, 상기 제 1 링 버퍼의 쓰기 비트 및 상기 제 2링 버퍼의 쓰기 비트를 비활성화하는 단계를 더 포함하는 것을 특징으로 하는 방법. The method according to claim 1,
Allocating memory in the form of a ring buffer and mapping the memory address of the allocated memory to the hard disk writing application when the hard disk writing application is invoked;
Writing data to the first ring buffer while turning on a write bit of the first ring buffer;
Activating a stop bit of the first ring buffer if there is no empty space in the first ring buffer;
Loading data of the first ring buffer into the hard disk when the stop bit of the first ring buffer is activated and deactivating the stop bit of the first ring buffer when the data load is terminated;
Writing data to the second ring buffer while activating a write bit of the second ring buffer when a write bit or a stop bit of the first ring buffer is activated; And
Further comprising the step of inactivating the write bit of the first ring buffer and the write bit of the second ring buffer when data writing is terminated.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130020386A KR101444397B1 (en) | 2013-02-26 | 2013-02-26 | Method and apparatus for controlling hard disk access |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130020386A KR101444397B1 (en) | 2013-02-26 | 2013-02-26 | Method and apparatus for controlling hard disk access |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140106177A KR20140106177A (en) | 2014-09-03 |
KR101444397B1 true KR101444397B1 (en) | 2014-09-26 |
Family
ID=51754708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020130020386A KR101444397B1 (en) | 2013-02-26 | 2013-02-26 | Method and apparatus for controlling hard disk access |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101444397B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063578A (en) * | 1996-08-23 | 1998-03-06 | Olympus Optical Co Ltd | Information recording and reproducing device |
JPH11175281A (en) * | 1997-12-15 | 1999-07-02 | Hitachi Information Technology Co Ltd | Print data buffer control system |
-
2013
- 2013-02-26 KR KR1020130020386A patent/KR101444397B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1063578A (en) * | 1996-08-23 | 1998-03-06 | Olympus Optical Co Ltd | Information recording and reproducing device |
JPH11175281A (en) * | 1997-12-15 | 1999-07-02 | Hitachi Information Technology Co Ltd | Print data buffer control system |
Also Published As
Publication number | Publication date |
---|---|
KR20140106177A (en) | 2014-09-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102094393B1 (en) | Nonvolatile memory system and operation method thereof | |
US8533386B1 (en) | Modifying data stored in flash memory | |
US20130219111A1 (en) | System and method for read-while-write with nand memory device | |
US7647470B2 (en) | Memory device and controlling method for elongating the life of nonvolatile memory | |
EP3477461A1 (en) | Devices and methods for data storage management | |
TWI730454B (en) | Apparatus and method and computer program product for executing host input-output commands | |
US20210109673A1 (en) | Memory controller and storage device including the same | |
JPWO2008018446A1 (en) | MEMORY CONTROLLER, NONVOLATILE STORAGE DEVICE, ACCESS DEVICE, AND NONVOLATILE STORAGE SYSTEM | |
US9898413B2 (en) | Auto-adaptive system to implement partial write buffering for storage systems dynamic caching method and system for data storage system | |
US20120246352A1 (en) | Data processing systems for audio signals and methods of operating same | |
KR20170012675A (en) | Computing system and data transferring method thereof | |
JP2010211618A (en) | Semiconductor storage device | |
KR20100102283A (en) | Flash memory apparatus and method of controlling the same | |
US20210096985A1 (en) | Memory controller and storage device including the same | |
JP4988054B2 (en) | Memory system | |
US10318418B2 (en) | Data storage in a mobile device with embedded mass storage device | |
US10268606B2 (en) | Method, device and system for switching access modes for data storage device | |
KR101444397B1 (en) | Method and apparatus for controlling hard disk access | |
US20100211738A1 (en) | Mass storage system with improved usage of buffer capacity | |
KR101214784B1 (en) | Multi-channel record and playback apparatus for improving record and playback velocity | |
US20180189059A1 (en) | Semiconductor device and method of operating same | |
US20220197549A1 (en) | Memory controller and storage device including the same | |
JP2007293564A (en) | Memory device and information storage system | |
JP2016009411A (en) | Recording device | |
JP2013050880A (en) | Memory control device and method therefor, data management device and method therefor, and program |
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: 20180827 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190902 Year of fee payment: 6 |