KR20230115535A - 데이터 저장장치의 작동방법 - Google Patents

데이터 저장장치의 작동방법 Download PDF

Info

Publication number
KR20230115535A
KR20230115535A KR1020220012130A KR20220012130A KR20230115535A KR 20230115535 A KR20230115535 A KR 20230115535A KR 1020220012130 A KR1020220012130 A KR 1020220012130A KR 20220012130 A KR20220012130 A KR 20220012130A KR 20230115535 A KR20230115535 A KR 20230115535A
Authority
KR
South Korea
Prior art keywords
memory
storage device
node
area
data storage
Prior art date
Application number
KR1020220012130A
Other languages
English (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 KR1020220012130A priority Critical patent/KR20230115535A/ko
Publication of KR20230115535A publication Critical patent/KR20230115535A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • G06F2212/1044Space efficiency improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory

Abstract

본 발명은 데이터 저장장치의 작동방법에 관한 것으로, 본 발명의 일 실시예에서는, 저장공간 절약 및 재사용성 극대화를 위한 데이터 저장장치의 작동방법에 있어서, (a) 메모리맵의 사용영역을 재사용영역 및 재사용불가영역으로 구분하는 단계; (b) 상기 재사용영역에서 워터 마크로 표식되는 가상의 구역을 설정하는 단계; (c) 유지 및/또는 삭제 플래닝을 통해 입력 메모리의 역방향 순회를 수행하는 단계; 및 (d) 연결 리스트로 메모리 위치, 크기, 사용량, 워터 마크 중 적어도 하나를 관리하여 출력 메모리의 위치를 지정하는 단계를 포함하는, 데이터 저장장치의 작동방법을 제공한다.

Description

데이터 저장장치의 작동방법{Method of operating data storage device}
본 발명은 데이터 저장장치의 작동방법에 관한 것으로, 더욱 상세하게는 저장공간 절약 및 재사용성 극대화할 수 있는 데이터 저장장치의 작동방법에 관한 것이다.
플래시 메모리는 지속적으로 전원이 공급되는 비휘발성 메모리로서 노드 단위로 내용을 지울 수 있고, 다시 프로그램 할 수도 있다.
플래시 메모리와 같은 비 휘발성 메모리는 기록 및 삭제가 자유로운 램(RAM: Random Access Memory)의 장점과 전원 공급 없이도 저장된 데이터를 보존하는 롬(ROM: Read Only Memory)의 장점을 동시에 지니고 있어 최근 휴대용 전가기기의 저장 매체로 널리 사용되고 있다.
비휘발성 메모리는 기존의 램이나 마그네틱 등과 마찬가지로 특정 위치에 저장된 데이터로의 임의 접근을 허용하지만, 데이터를 삭제하는 방법에 있어서는 기존의 저장장치와 다르게 삭제블록(Erase block: 이하, 블록)을 기본 단위로 한다. 즉, 이전의 데이터를 수정하고자 하는 경우, 해당 데이터를 포함하는 블록 전체를 삭제한 후 데이터를 다시 기록하는 것인데 예를 들어 글자나 알파벳을 하나씩 수정하는 다신 삭제키를 눌러 전체 단어를 모두 삭제한 후 다시 기록하는 것과 같다.
일반적으로, 비휘발성 메모리는 다수개의 블록으로 구성되며, 각각의 블록은 다수 개의 페이지를 포함한다. 또한, 페이지는 읽기 및 쓰기 연산의 기본 단위로 데이터 영역과 스페어 영역으로 구분될 수 있다. 이때, 데이터 영역에는 데이터가 저장되며, 스페어 영역에는 해당 물리 페이지에 기록된 논리 페이지의 오프셋이 기록된다. 각 페이지에서 데이터는 기 설정된 바이트(bytes)의 크기로 데이터 영역에 기록되며, 각 페이지에는 파일 ID와 청크 번호가 부여되어 스페어 영역에 기록된다. 또한, 각 페이지에는 스페어 영역이 존재하는데 스페어 영역에 저장된 정보는 메모리에 저장된 데이터의 검색에 이용된다. 이때, 사용자 또는 장치가 메모리에 저장된 데이터를 검색하고자 하는 경우 모든 페이지의 스페어 영역이 스캔되어야 해당 데이터의 위치가 추출될 수 있다.
특히, 메모리의 집적도가 점점 증가함에 따라 전술한 파일 시스템을 갖는 메모리에서는 메모리의 모든 영역을 스캔한 후 페이지로의 접근을 수행하므로 많은 시간이 소요되고, 메모리의 사용 영역이 증가되면서 재사용할 수 있는 영역이 줄어들어 활용성이 저하된다.
대한민국 등록 특허 제10-1075063호
본 발명이 해결하고자 하는 기술적 과제는 저장공간 절약 및 재사용성 극대화할 수 있는 데이터 저장장치의 작동방법을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 기술적 과제는 연산속도 및 효율성을 향상시킬 수 있는 데이터 저장장치의 작동방법을 제공하는 것이다.
본 발명이 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위하여, 본 발명의 일 실시예에서는, 저장공간 절약 및 재사용성 극대화를 위한 데이터 저장장치의 작동방법에 있어서, (a) 메모리맵의 사용영역을 재사용영역 및 재사용불가영역으로 구분하는 단계; (b) 상기 재사용영역에서 워터 마크로 표식되는 가상의 구역을 설정하는 단계; (c) 유지 및/또는 삭제 플래닝을 통해 입력 메모리의 역방향 순회를 수행하는 단계; 및 (d) 연결 리스트로 메모리 위치, 크기, 사용량, 워터 마크 중 적어도 하나를 관리하여 출력 메모리의 위치를 지정하는 단계를 포함하는, 데이터 저장장치의 작동방법을 제공한다.
본 발명의 실시예에 있어서, 상기 (a) 단계에서는, 상기 재사용불가영역에서 지속적으로 사용되는 가중치 노드를 가장 처음으로 위치를 설정하고, 최종출력으로 지정된 레이어 출력 노드를 메모리 파편화 방지를 위해 상기 가중치 노드 다음으로 위치를 설정하며, 상기 메모리맵에서 최초입력 노드, 레이어 출력 노드, 레이어 워크스페이스 노드를 상기 재사용영역으로 설정할 수 있다.
본 발명의 실시예에 있어서, 상기 (c) 단계에서는, 텐서의 저장공간을 별도로 설정하고, 역방향으로 레이어들을 순회하면서 입력 텐서를 검사하되, 입력 데이터가 상기 텐서의 저장공간에 보관된 데이터이면 메모리 유지로 설정하고, 상기 텐서의 저장공간에 보관되지 않은 데이터이면 메모리 해제로 설정하면서 입력 데이터의 이름을 상기 텐서의 저장공간에 보관할 수 있다.
본 발명의 실시예에 있어서, 상기 (d) 단계에서는, 순방향으로 레이어들을 순회하면서 출력 텐서의 오프셋(offset) 값을 결정하고, 상기 오프셋 값을 연결 리스트로 관리할 수 있다.
본 발명의 실시예에 있어서, 상기 (d) 단계에서는, 입력 텐서에 대하여 상기 연결 리스트로부터 오프셋을 유지 및/또는 삭제하는 동작을 수행하고, 삭제된 인접 노드들을 하나의 빈 공간으로 병합하거나, 저장공간을 할당할 때, 여러 빈 공간 노드들 중에서 특정 노드를 선택하는 알고리즘에 의해 저장공간을 할당할 수 있다.
본 발명의 실시예에 따르면, 저장공간 절약 및 재사용성 극대화할 수 있는 데이터 저장장치의 작동방법을 제공할 수 있다.
또한, 본 발명의 실시예에 따르면, 연산속도 및 효율성을 향상시킬 수 있는 데이터 저장장치의 작동방법을 제공할 수 있다.
본 발명의 효과는 상기한 효과로 한정되는 것은 아니며, 본 발명의 상세한 설명 또는 특허청구범위에 기재된 발명의 구성으로부터 추론 가능한 모든 효과를 포함하는 것으로 이해되어야 한다.
도 1은 본 발명의 일 실시예에 따른 데이터 저장장치의 작동방법을 나타내는 순서도이다.
도 2는 본 발명의 일 실시예에 따른 데이터의 처리 흐름을 예시적으로 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 메모리맵을 예시적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 입력 메모리의 역방향 순회를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 노드 할당을 설명하기 위한 도면이다.
도 6 내지 도 8은 본 발명의 일 실시예에 따른 데이터 저장장치의 메모리 경량화 방법을 예시적으로 설명하기 위한 도면들이다.
이하에서는 첨부한 도면을 참조하여 본 발명을 설명하기로 한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며, 따라서 여기에서 설명하는 실시예로 한정되는 것은 아니다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결(접속, 접촉, 결합)"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 부재를 사이에 두고 "간접적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 구비할 수 있다는 것을 의미한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하 첨부된 도면을 참고하여 본 발명의 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 데이터 저장장치의 작동방법을 나타내는 순서도이다. 도 2는 본 발명의 일 실시예에 따른 데이터의 처리 흐름을 예시적으로 나타내는 도면이다. 도 3은 본 발명의 일 실시예에 따른 메모리맵을 예시적으로 나타내는 도면이다. 도 4는 본 발명의 일 실시예에 따른 입력 메모리의 역방향 순회를 설명하기 위한 도면이다. 도 5는 본 발명의 일 실시예에 따른 노드 할당을 설명하기 위한 도면이다. 도 6 내지 도 8은 본 발명의 일 실시예에 따른 데이터 저장장치의 메모리 경량화 방법을 예시적으로 설명하기 위한 도면들이다.
도 1을 참조하면, 발명의 일 실시예에 따른 데이터 저장장치의 작동방법은 저장공간 절약 및 재사용성 극대화를 위하여, 메모리맵의 사용영역을 재사용영역 및 재사용불가영역으로 구분하는 단계(S100), 상기 재사용영역에서 워터 마크로 표식되는 가상의 구역을 설정하는 단계(S200), 입력 메모리를 역방향으로 순회(파싱)하는 단계(S300), 및 출력 메모리의 위치를 지정하는 단계(S400)를 포함할 수 있다.
우선, 도 2를 참조하여 본 발명의 일 실시예에 따른 데이터 저장장치에서 데이터의 처리 흐름을 살펴보면, 최초 데이터가 입력되면, 레이어(layer) A, B, C, D 별로 가중치(weight) 및 워크스페이스(workspace)가 입력(부여)되고, 레이어 순서에 따라 각 레이어에서 출력이 이루어지며, 기 설정된 중간 레이어에서 최종출력 1 및 2가 지정되어 데이터의 출력이 이루어질 수 있다.
구체적으로, 단계 S100에서는, 도 3을 참조하여 메모리를 구성하는 노드 집합으로 이루어진 메모리맵의 사용영역을 재사용영역 및 재사용불가영역으로 설정할 수 있다. 여기서, 데이터 처리 순서에 따라 레이어 A, B, C, D를 처리할 수 있도록 메모리맵의 기본 주소가 설정되되, 상기 재사용불가영역에서 지속적으로 사용되는 가중치(A, B, C, D) 노드는 모두 가장 처음으로 위치를 지정(설정)하고, 최종출력 1 및 2로 지정된 레이어 출력 노드는 메모리 파편화 방지를 위해 가중치(A, B, C, D) 노드 다음으로 위치를 지정(설정)할 수 있다. 또한, 메모리맵에서 최초입력 노드, 레이어 출력 노드, 레이어 워크스페이스 노드는 재사용영역으로 분류(설정)할 수 있다. 또한, 레이어가 동작할 때 할당되는 메모리의 순서는 레이어 출력 노드 다음에 레이어 워크스페이스 노드로 설정될 수 있다.
다음, 단계 S200에서는, 도 3을 참조하여 전체 소요 메모리를 설정하도록 재사용영역에서 워터 마크로 표식되는 가상의 구역을 설정할 수 있다. 예를 들면, 재사용영역에서 3개의 메모리 노드까지만 전체 소요 메모리로 워터 마크를 설정할 수 있다.
여기서, 도 3에 도시된 레이어별 데이터 처리 과정을 살펴보면, 레이어 A의 처리 종료시, 최초입력 노드가 제거되면서 파편화가 발생할 수 있다. 이때, 레이어 B의 레이어 출력 노드는 최종출력 1로 지정된 레이어 출력 노드를 사용하고, 레이어 B의 레이어 워크스페이스 노드는 파편화된 노드 위치로 들어가도록 설정하여 저장공간을 절약할 수 있다. 또한, 레이어 B의 처리 종료시, 재사용영역이 클리어(clear)되어 재사용성을 극대화할 수 있다. 마찬가지로, 레이어 D의 레이처 출력 노드는 최종출력 2로 지정된 레이어 출력 노드를 사용하여 저장공간을 절약하고, 레이어 D의 처리 종료시, 재사용영역이 클리어(clear)되어 재사용성을 극대화할 수 있다.
단계 S300에서는, 도 4를 참조하여 유지 및/또는 삭제 플래닝(planning)을 통해 입력 메모리의 역방향 순회를 수행(파싱)할 수 있다. 이때, 데이터 저장장치는 텐서(Tensor)들의 저장공간(이하, 텐서저장공간(Tensors))을 별도로 설정할 수 있다. 또한, 데이터 저장장치는 역방향으로 레이어를 순회하면서 입력 텐서들을 검사할 수 있다. 또한, 입력 데이터가 텐서저장공간(Tensors)에 보관된 데이터이면 메모리 유지로 체크(설정)하고, 텐서저장공간(Tensors)에 보관되지 않은 데이터 값이면 메모리 해제로 체크(설정)하면서 입력 데이터의 이름을 텐서저장공간(Tensors)에 보관할 수 있다.
예를 들면, 도 4에 도시된 바와 같이, 데이터 저장장치는 입력 메모리의 역방향 순회로, 마지막 E는 텐서저장공간(Tensors)에 보관하고, 레이어concat에서 D, C, B0는 삭제하여 텐서저장공간(Tensors)에 보관하며, 레이어conv에서 C는 유지하고, 레이어reshape에서 C는 유지하고, 레이어concat에서 B1, A1은 삭제하여 텐서저장공간(Tensors)에 보관하며, 레이어split에서 A0는 삭제하여 텐서저장공간(Tensors)에 보관할 수 있다.
단계 S400에서는, 도 4 및 도 5를 참조하여 연결 리스트(linked list)로 메모리 위치, 크기, 사용량(usage), 워터 마크 중 적어도 하나를 관리하여 출력 메모리 위치를 지정할 수 있다.
구체적으로, 데이터 저장장치는 순방향으로 레이어들을 순회하면서 출력 텐서의 오프셋(offset) 값을 결정하고, 이러한 오프셋 값들을 연결 리스트로 관리할 수 있다.
예를 들면, 최초에 CPU로부터 입력받는 입력 텐서는 오프셋 0로 오프셋 값을 설정하면서 차례로 오프셋 값을 할당할 수 있다. 또한, 순방향 순회에서 각 레이어의 출력 텐서를 오프셋 값으로 할당할 수 있다. 이때, 데이터 저장장치는 입력 텐서에 대하여 연결 리스트로부터 오프셋을 유지 및/또는 삭제하는 동작을 수행할 수 있다. 또한, 데이터 저장장치는 삭제된 인접 노드들을 하나의 빈 공간으로 병합할 수 있다. 또한, 데이터 저장장치는 저장공간을 할당할 때, 여러 빈 공간 노드들 중에서 특정 노드를 선택하는 알고리즘에 의해 저장공간을 할당할 수 있다.
여기서, 특정 노드를 선택하는 알고리즘은 ① 가장 잘 맞는 크기의 노드에 할당, ② 가장 큰 크기의 노드에 할당, ③ 처음 발견되는 노드에 할당, ④ 마지막 발견되는 노드에 할당하는 조건으로 이루어질 수 있다. 이때, 맞는 크기의 공간이 없을 경우, 가장 마지막에 새로운 노드를 할당하는데, 가장 마지막 노드가 빈 공간이면 병합하여 할당할 수 있다.
예를 들면, 도 5에 도시된 바와 같이, 데이터 저장장치는 노드의 사용이 끝나면 is_used = X로 설정하고, 좌측 및/또는 우측이 비사용상태이면 병합할 수 있다. 또한, 데이터 저장장치는 할당 요청이 오면 요청보다 큰 빈공간을 연결 리스트에서 검색하여 첫번째 발견된 노드를 선택하고, 노드를 발견하지 못한 경우, 마지막 노드가 비사용상태이면 마지막 노드를 확장하여 워터 마크를 증가시키고, 마지막 노드가 사용상태이면 마지막에 새로운 노드를 생성하여 워터 마크를 증가시켜 워터 마크를 관리할 수 있다.
한편, 도 6 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 데이터 저장장치의 메모리 경량화 방법을 예시적으로 설명하면, 역방향 레이어 순회를 통해 레이어conv2d들의 출력이 concat(결합)되는 것을 파악할 수 있고, 순방향 메모리 위치 설정단계에서 레이어conv2d의 출력 메모리를 지정할 때, 동일한 메모리 공간을 지정하면서 피치(pitch)를 동일하게 하고, 오프셋 값을 달리하는 형태로 지정할 수 있다. 이 방식으로 레이어 concat을 생략할 수 있고, concat(결합)하기 위해 2번의 메모리 복사를 생략할 수 있다.
또한, 레이어 concat에서의 피치 및 오프셋 값을 미리 설정하여, 메모리 영역을 최적화함으로써, 별도의 출력 메모리가 별도로 요구되지 않도록 할 수 있다. 즉, 출력을 위한 별도의 메모리 복사 작업을 생략하도록 함으로써, 연산속도 및 효율성을 향상시킬 수 있다.
본 발명의 실시예에 따르면, 저장공간 절약 및 재사용성 극대화할 수 있다.
또한, 본 발명의 실시예에 따르면, 연산속도 및 효율성을 향상시킬 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (5)

  1. 저장공간 절약 및 재사용성 극대화를 위한 데이터 저장장치의 작동방법에 있어서,
    (a) 메모리맵의 사용영역을 재사용영역 및 재사용불가영역으로 구분하는 단계;
    (b) 상기 재사용영역에서 워터 마크로 표식되는 가상의 구역을 설정하는 단계;
    (c) 유지 및/또는 삭제 플래닝을 통해 입력 메모리의 역방향 순회를 수행하는 단계; 및
    (d) 연결 리스트로 메모리 위치, 크기, 사용량, 워터 마크 중 적어도 하나를 관리하여 출력 메모리의 위치를 지정하는 단계;
    를 포함하는, 데이터 저장장치의 작동방법.
  2. 제1항에 있어서,
    상기 (a) 단계에서는,
    상기 재사용불가영역에서 지속적으로 사용되는 가중치 노드를 가장 처음으로 위치를 설정하고, 최종출력으로 지정된 레이어 출력 노드를 메모리 파편화 방지를 위해 상기 가중치 노드 다음으로 위치를 설정하며,
    상기 메모리맵에서 최초입력 노드, 레이어 출력 노드, 레이어 워크스페이스 노드를 상기 재사용영역으로 설정하는 것을 특징으로 하는, 데이터 저장장치의 작동방법.
  3. 제1항에 있어서,
    상기 (c) 단계에서는,
    텐서의 저장공간을 별도로 설정하고,
    역방향으로 레이어들을 순회하면서 입력 텐서를 검사하되,
    입력 데이터가 상기 텐서의 저장공간에 보관된 데이터이면 메모리 유지로 설정하고, 상기 텐서의 저장공간에 보관되지 않은 데이터이면 메모리 해제로 설정하면서 입력 데이터의 이름을 상기 텐서의 저장공간에 보관하는 것을 특징으로 하는, 데이터 저장장치의 작동방법.
  4. 제1항에 있어서,
    상기 (d) 단계에서는,
    순방향으로 레이어들을 순회하면서 출력 텐서의 오프셋(offset) 값을 결정하고, 상기 오프셋 값을 연결 리스트로 관리하는 것을 특징으로 하는, 데이터 저장장치의 작동방법.
  5. 제4항에 있어서,
    상기 (d) 단계에서는,
    입력 텐서에 대하여 상기 연결 리스트로부터 오프셋을 유지 및/또는 삭제하는 동작을 수행하고,
    삭제된 인접 노드들을 하나의 빈 공간으로 병합하거나,
    저장공간을 할당할 때, 여러 빈 공간 노드들 중에서 특정 노드를 선택하는 알고리즘에 의해 저장공간을 할당하는 것을 특징으로 하는, 데이터 저장장치의 작동방법.

KR1020220012130A 2022-01-27 2022-01-27 데이터 저장장치의 작동방법 KR20230115535A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220012130A KR20230115535A (ko) 2022-01-27 2022-01-27 데이터 저장장치의 작동방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220012130A KR20230115535A (ko) 2022-01-27 2022-01-27 데이터 저장장치의 작동방법

Publications (1)

Publication Number Publication Date
KR20230115535A true KR20230115535A (ko) 2023-08-03

Family

ID=87567977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220012130A KR20230115535A (ko) 2022-01-27 2022-01-27 데이터 저장장치의 작동방법

Country Status (1)

Country Link
KR (1) KR20230115535A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075063B1 (ko) 2009-11-02 2011-10-19 계명대학교 산학협력단 퍼지 규칙을 이용한 화재 불꽃 감지 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101075063B1 (ko) 2009-11-02 2011-10-19 계명대학교 산학협력단 퍼지 규칙을 이용한 화재 불꽃 감지 방법

Similar Documents

Publication Publication Date Title
KR100849221B1 (ko) 비휘발성 메모리의 관리 방법 및 비휘발성 메모리 기반의장치
KR100453053B1 (ko) 플래쉬 메모리용 파일 시스템
KR100843135B1 (ko) 비휘발성 메모리 관리 방법 및 장치
JP4773342B2 (ja) 不揮発性記憶装置及びデータ書込み方法
JP4185058B2 (ja) フラッシュメモリのリマッピング方法
JP4844639B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US20080320211A1 (en) Nonvolatile memory control device, nonvolatile memory control method, and storage device
US7516266B2 (en) System and method capable of sequentially writing data to a flash memory
US20190286334A1 (en) Memory device and host device
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2008112445A (ja) 不揮発性メモリを管理する装置及び方法
JP2008070975A (ja) データ保存装置及びデータ保存方法
JP2010287049A (ja) メモリシステムおよびメモリシステムの管理方法
JP2015191336A (ja) メモリ制御装置、情報処理装置とその制御方法、及びプログラム
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
KR20230115535A (ko) 데이터 저장장치의 작동방법
JP2009259145A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2018185842A (ja) メモリ制御装置及び情報処理システム
JP3555456B2 (ja) フラッシュ型メモリの管理装置
JP4687720B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
CN113127376B (zh) 固态驱动器的控制方法、装置及设备
JP2001101071A (ja) フラッシュ型メモリを用いたデータ記憶装置及びフラッシュ型メモリのデータ管理方法
JP4760826B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009211152A (ja) 情報処理装置、メモリシステムおよびその制御方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal