[go: up one dir, main page]

KR102701385B1 - Operation method of Flash memory storage device - Google Patents

Operation method of Flash memory storage device Download PDF

Info

Publication number
KR102701385B1
KR102701385B1 KR1020210117402A KR20210117402A KR102701385B1 KR 102701385 B1 KR102701385 B1 KR 102701385B1 KR 1020210117402 A KR1020210117402 A KR 1020210117402A KR 20210117402 A KR20210117402 A KR 20210117402A KR 102701385 B1 KR102701385 B1 KR 102701385B1
Authority
KR
South Korea
Prior art keywords
host
read
frame
flash memory
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020210117402A
Other languages
Korean (ko)
Other versions
KR20230034535A (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 KR1020210117402A priority Critical patent/KR102701385B1/en
Publication of KR20230034535A publication Critical patent/KR20230034535A/en
Application granted granted Critical
Publication of KR102701385B1 publication Critical patent/KR102701385B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • 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
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • 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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

본 발명은, 호스트 인터페이스 컨트롤러가, 호스트 메모리를 관리하는 버퍼 관리자(Buffer Manager)로부터 출력된 읽기 LBA(Logical Block Addressing), 쓰기 LBA(Logical Block Addressing) 및 호스트 버퍼 주소를 포함하는 RW(Read/Write) 명령어를 수신하는 단계, 상기 호스트 인터페이스 컨트롤러가, 상기 호스트 버퍼 주소에 대응하는 호스트 프레임에 저장된 호스트 데이터를 임시 버퍼 프레임에 저장하는 단계, 상기 호스트 인터페이스 컨트롤러가, 상기 읽기 LBA에 대응하는 제1 플래시 메모리 칩의 버퍼 프레임에 저장된 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계 및 NAND 디바이스 컨트롤러가, 상기 임시 버퍼 프레임에 저장된 상기 호스트 데이터를 상기 쓰기 LBA에 대응하는 제2 플래시 메모리 칩의 버퍼 프레임에 저장하는 단계를 포함하는 플래시 메모리 저장장치의 동작방법을 제공한다.The present invention provides a method for operating a flash memory storage device, comprising: a step in which a host interface controller receives a RW (Read/Write) command including a read LBA (Logical Block Addressing), a write LBA (Logical Block Addressing) and a host buffer address output from a buffer manager that manages host memory; a step in which the host interface controller stores host data stored in a host frame corresponding to the host buffer address in a temporary buffer frame; a step in which the host interface controller stores read page data stored in a buffer frame of a first flash memory chip corresponding to the read LBA in the host frame; and a step in which a NAND device controller stores the host data stored in the temporary buffer frame in a buffer frame of a second flash memory chip corresponding to the write LBA.

Description

플래시 메모리 저장장치의 동작방법{Operation method of Flash memory storage device}Operation method of Flash memory storage device

본 발명은 플래시 메모리 저장장치의 동작방법에 관한 것으로서, 더욱 상세하게는 하나의 RW(Read/Write) 명령어로 저장 장치에 데이터를 병렬적으로 읽기 및 쓰기 작업을 수행하기 용이한 플래시 메모리 저장장치의 동작방법에 관한 것이다.The present invention relates to an operating method of a flash memory storage device, and more specifically, to an operating method of a flash memory storage device which facilitates parallel reading and writing of data to a storage device with a single RW (Read/Write) command.

플래시 메모리 저장장치는 비휘발 (Non-Volatile) 메모리 저장 장치로, 전기 신호로 움직이기 때문에 매우 빠른 읽기/쓰기 성능을 보여준다. Flash memory storage devices are non-volatile memory storage devices that move with electrical signals, so they exhibit very fast read/write performance.

지난 몇 년간 플래시 메모리 관련 기술이 빠르게 발전하면서, 모바일 장치, 데스크톱, 데이터 센터 및 클라우드 컴퓨팅을 포함한 모든 컴퓨팅 부문에서 SSD (Solid State Drive)와 같은 플래시 메모리 저장장치 (Flash Memory Storage)가 HDD (Hard Disk Drive)를 대체하고 있다. With the rapid development of flash memory technology in the past few years, flash memory storage devices such as solid state drives (SSDs) are replacing hard disk drives (HDDs) in all computing sectors, including mobile devices, desktops, data centers, and cloud computing.

또한, 플래시 메모리 저장장치는 읽기 IOPS (I/O Per Second)가 쓰기 IOPS 보다 높아 하드 디스크와 달리 읽기 및 쓰기 속도 간 비대칭성이 존재한다는 특성이 있다.Additionally, flash memory storage devices have a characteristic in that read IOPS (I/O Per Second) are higher than write IOPS, so there is an asymmetry between read and write speeds, unlike hard disks.

데이터베이스 관리 시스템 (Database Management System, DBMS)의 핵심 기술 중 하나는 버퍼 관리자(Buffer Manager)인데, 버퍼 관리자는 고성능에 중요한 버퍼 교체 정책 및 저장장치와의 상호 작용을 모두 구현하기 때문에 그 역할이 중요하다. One of the core technologies of a database management system (DBMS) is the buffer manager. The buffer manager plays an important role because it implements both the buffer replacement policy that is important for high performance and the interaction with the storage device.

이와 밀접하게 관련된 프로토콜로 쓰기-후-읽기 (Read-After-Write, RAW) 프로토콜이 존재한다. 읽고자 하는 페이지가 버퍼 캐시에 없을 때(Page Miss, 페이지 누락), 버퍼 관리자는 버퍼 교체 정책에 따라 Victim 페이지를 선택한다. A closely related protocol is the Read-After-Write (RAW) protocol. When the page to be read is not in the buffer cache (Page Miss), the buffer manager selects a victim page according to the buffer replacement policy.

Victim 페이지가 수정된 dirty 페이지이면, Victim 페이지를 저장장치에 동기식(synchronous)으로 먼저 쓰고, 해당 프레임을 비우고, 저장장치로부터 읽고자 하는 페이지 데이터를 읽어와 비워진 프레임에 저장한다. If the victim page is a modified dirty page, the victim page is first written synchronously to storage, the corresponding frame is emptied, and the page data to be read is read from storage and stored in the emptied frame.

이 프로토콜은 모든 DBMS의 버퍼 캐시 관리에 사용되며, OS/파일시스템과 같이 버퍼 캐시 개념을 사용하는 다른 시스템에서도 일반적으로 사용되는 프로토콜이다. This protocol is used for buffer cache management in all DBMSs, and is also commonly used in other systems that use the buffer cache concept, such as OS/file systems.

한편, RAW 프로토콜 상에서 페이지 누락 상황에 놓인 프로세스는 읽기 지연 (read stall) 문제를 겪을 수 있다. 즉 페이지 누락 시, 프로세스는 Dirty Victim 페이지를 위한 동기적 쓰기가 완료될 때까지 기다린 후에야 읽고자 하는 페이지를 읽어올 수 있다. Meanwhile, a process in a page-missing situation in the RAW protocol may experience a read stall problem. That is, when a page is missed, the process must wait until the synchronous write for the dirty victim page is completed before it can read the page it wants to read.

따라서 쓰기 및 읽기 동작 처리 순서가 직렬화되며, 결국 저장장치의 성능을 충분히 활용하지 못하고 CPU 활용률도 떨어뜨리는 문제가 발생하게 된다. Therefore, the order of processing write and read operations is serialized, which ultimately leads to problems in which the performance of the storage device is not fully utilized and CPU utilization is also reduced.

이러한 직렬화된 쓰기-읽기 작업을 병렬로 처리할 수 있다면 읽기 지연 문제를 해결하고 시스템 성능을 향상시킬 수 있으므로, 이를 위한 연구가 필요하다.If these serialized write-read operations can be processed in parallel, it can solve the read latency problem and improve system performance, so research is needed.

본 발명의 목적은, 하나의 RW(Read/Write) 명령어로 저장 장치에 데이터를 병렬적으로 읽기 및 쓰기 작업을 수행하기 용이한 플래시 메모리 저장장치의 동작방법을 제공함에 있다.The purpose of the present invention is to provide an operating method of a flash memory storage device that facilitates parallel reading and writing of data to the storage device with a single RW (Read/Write) command.

또한, 본 발명의 목적은, RW(Read/Write) 명령어에 따라 읽기 및 쓰기를 병렬적으로 수행하여 읽기 지연을 완화하여 저장 장치 내의 성능을 향상시키는 플래시 메모리 저장장치의 동작방법을 제공함에 있다.In addition, an object of the present invention is to provide an operating method of a flash memory storage device that improves performance within the storage device by alleviating read delay by performing reading and writing in parallel according to a RW (Read/Write) command.

본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있고, 본 발명의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.The purposes of the present invention are not limited to the purposes mentioned above, and other purposes and advantages of the present invention which are not mentioned can be understood by the following description, and will be more clearly understood by the embodiments of the present invention. In addition, it will be easily understood that the purposes and advantages of the present invention can be realized by the means and combinations thereof indicated in the claims.

본 발명에 따른 플래시 메모리 저장장치의 동작방법은, 호스트 인터페이스 컨트롤러가, 호스트 메모리를 관리하는 버퍼 관리자(Buffer Manager)로부터 출력된 읽기 LBA(Logical Block Addressing), 쓰기 LBA(Logical Block Addressing) 및 호스트 버퍼 주소를 포함하는 RW(Read/Write) 명령어를 수신하는 단계, 상기 호스트 인터페이스 컨트롤러가, 상기 호스트 버퍼 주소에 대응하는 호스트 프레임에 저장된 호스트 데이터를 임시 버퍼 프레임에 저장하는 단계, 상기 호스트 인터페이스 컨트롤러가, 상기 읽기 LBA에 대응하는 제1 플래시 메모리 칩의 버퍼 프레임에 저장된 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계 및 NAND 디바이스 컨트롤러가, 상기 임시 버퍼 프레임에 저장된 상기 호스트 데이터를 상기 쓰기 LBA에 대응하는 제2 플래시 메모리 칩의 버퍼 프레임에 저장하는 단계를 포함할 수 있다.An operating method of a flash memory storage device according to the present invention may include a step in which a host interface controller receives an RW (Read/Write) command including a read LBA (Logical Block Addressing), a write LBA (Logical Block Addressing) and a host buffer address output from a buffer manager managing host memory, a step in which the host interface controller stores host data stored in a host frame corresponding to the host buffer address in a temporary buffer frame, a step in which the host interface controller stores read page data stored in a buffer frame of a first flash memory chip corresponding to the read LBA in the host frame, and a step in which a NAND device controller stores the host data stored in the temporary buffer frame in a buffer frame of a second flash memory chip corresponding to the write LBA.

상기 호스트 데이터를 획득한 임시 버퍼 프레임에 저장하는 단계 이전에, 상기 호스트 인터페이스 컨트롤러가, 상기 NAND 디바이스 컨트롤러로부터 상기 호스트 데이터의 저장을 위해 상기 임시 버퍼 프레임을 획득하는 단계를 더 포함할 수 있다.Before the step of storing the acquired host data in a temporary buffer frame, the host interface controller may further include a step of acquiring the temporary buffer frame for storing the host data from the NAND device controller.

상기 호스트 데이터를 획득한 임시 버퍼 프레임에 저장하는 단계는, 상기 호스트 인터페이스 컨트롤러가 DMA(Direct Memory Access)를 수행하여 상기 호스트 데이터를 읽어들여 상기 임시 버퍼 프레임에 저장할 수 있다.The step of storing the acquired host data in a temporary buffer frame may include having the host interface controller perform DMA (Direct Memory Access) to read the host data and store it in the temporary buffer frame.

상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계는, 상기 호스트 인터페이스 컨트롤러가, 상기 읽기 페이지 데이터에 대한 읽기 작업을 위해 상기 NAND 디바이스 컨트롤러로부터 획득한 상기 제1 플래시 메모리 칩의 버퍼 프레임에 저장하고, 상기 DMA(Direct Memory Access)를 수행하여 상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장할 수 있다.The step of storing the read page data in the host frame may include storing the read page data in a buffer frame of the first flash memory chip obtained from the NAND device controller for a read operation on the read page data by the host interface controller, and performing the DMA (Direct Memory Access) to store the read page data in the host frame.

상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계 이후에, 상기 호스트 인터페이스 컨트롤러가 상기 버퍼 관리자로 상기 RW 명령어에 대한 동작 완료를 알리는 인터럽트를 출력하는 단계를 더 포함할 수 있다.After the step of storing the read page data in the host frame, the host interface controller may further include a step of outputting an interrupt notifying the buffer manager of the completion of an operation for the RW command.

본 발명에 따른 플래시 메모리 저장장치의 동작방법은, 읽기 및 쓰기 요청이 병렬화로 처리함으로써, 시스템 성능 향상에 이점이 있다.The operating method of the flash memory storage device according to the present invention has the advantage of improving system performance by processing read and write requests in parallel.

본 발명에 따른 플래시 메모리 저장장치의 동작방법은, 페이지 누락 시 간단히 RW(Read/Write) 명령어를 호출하는 것으로 읽기 지연 문제를 완화할 수 있는 이점이 있다.The operating method of a flash memory storage device according to the present invention has the advantage of alleviating a read delay problem by simply calling a RW (Read/Write) command when a page is missed.

본 발명에 따른 플래시 메모리 저장장치의 동작방법은, 하나의 RW(Read/Write) 명령어로 읽기 및 쓰기 요청을 처리함으로써,I/O 인터럽트 (Interrupt) 횟수와 이에 따른 컨텍스트 스위치 (Context Switch) 횟수를 줄일 수 있는 이점이 있다.The operating method of a flash memory storage device according to the present invention has the advantage of reducing the number of I/O interrupts and the number of context switches resulting from them by processing read and write requests with a single RW (Read/Write) command.

한편, 본 발명의 효과는 이상에서 언급한 효과들로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 효과들이 포함될 수 있다.Meanwhile, the effects of the present invention are not limited to the effects mentioned above, and various effects may be included within a range obvious to those skilled in the art from the contents described below.

도 1은 본 발명에 따른 플래시 메모리 저장장치의 동작방법을 나타낸 순서도이다.
도 2는 본 발명에 따른 플래시 메모리 저장장치의 동작을 설명하기 위한 개념도이다.
도 3은 본 발명에 따른 플래시 메모리 저장장치의 처리 과정을 비교한 예시도이다.
Figure 1 is a flow chart showing an operating method of a flash memory storage device according to the present invention.
Figure 2 is a conceptual diagram for explaining the operation of a flash memory storage device according to the present invention.
Figure 3 is an exemplary diagram comparing the processing process of a flash memory storage device according to the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.The present invention can have various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the present invention to specific embodiments, but should be understood to include all modifications, equivalents, or substitutes included in the spirit and technical scope of the present invention. In describing each drawing, similar reference numerals are used for similar components.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc. may be used to describe various components, but the components should not be limited by the terms. The terms are only used to distinguish one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as the second component, and similarly, the second component may also be referred to as the first component. The term and/or includes any combination of a plurality of related described items or any item among a plurality of related described items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When it is said that a component is "connected" or "connected" to another component, it should be understood that it may be directly connected or connected to that other component, but that there may be other components in between. On the other hand, when it is said that a component is "directly connected" or "directly connected" to another component, it should be understood that there are no other components in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is only used to describe specific embodiments and is not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly indicates otherwise. In this application, it should be understood that the terms "comprises" or "has" and the like are intended to specify the presence of a feature, number, step, operation, component, part or combination thereof described in the specification, but do not exclude in advance the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning they have in the context of the relevant art, and shall not be interpreted in an idealized or overly formal sense unless expressly defined in this application. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 플래시 메모리 저장장치의 동작방법을 나타낸 순서도 및 도 2는 본 발명에 따른 플래시 메모리 저장장치의 동작을 설명하기 위한 개념도이다.FIG. 1 is a flowchart showing an operation method of a flash memory storage device according to the present invention, and FIG. 2 is a conceptual diagram explaining the operation of a flash memory storage device according to the present invention.

도 1 및 도 2를 참조하면, 플래시 메모리 저장장치의 호스트 인터페이스 컨트롤러는 호스트 메모리를 관리하는 버퍼 관리자(Buffer Manager)로부터 출력된 읽기 LBA(Logical Block Addressing), 쓰기 LBA(Logical Block Addressing) 및 호스트 버퍼 주소를 포함하는 RW(Read/Write) 명령어(RW)를 수신할 수 있다(S110).Referring to FIGS. 1 and 2, a host interface controller of a flash memory storage device can receive a RW (Read/Write) command (RW) including a read LBA (Logical Block Addressing), a write LBA (Logical Block Addressing), and a host buffer address output from a buffer manager (Buffer Manager) that manages host memory (S110).

여기서, 버퍼 관리자는 호스트 시스템의 호스트 메모리를 관리할 수 있다.Here, the buffer manager can manage the host memory of the host system.

버퍼 관리자는 읽기 페이지(PR)을 읽고자 했으나, 저장된 읽기 페이지(PR)가 없어 누락(miss)되고, 호스트 메모리에 불필요한 호스트 데이터(Dirty Victim 페이지, PW)가 교체 대상이 될때 RW 명령어(RW)를 생성하여, 호스트 인터페이스 컨트롤러로 전달할 수 있다.When the buffer manager attempts to read a read page (PR), but a miss occurs due to the absence of a stored read page (PR), and unnecessary host data (Dirty Victim Page, PW) in the host memory becomes a target for replacement, the buffer manager can generate a RW command (RW) and transmit it to the host interface controller.

여기서, RW 명령어(RW)는 읽기 LBA(Logical Block Addressing, PR_LBA), 쓰기 LBA(Logical Block Addressing, PW_LBA) 및 호스트 버퍼 주소(buf)를 포함할 수 있다.Here, the RW command (RW) may include a read LBA (Logical Block Addressing, PR_LBA), a write LBA (Logical Block Addressing, PW_LBA), and a host buffer address (buf).

읽기 LBA(Logical Block Addressing, PR_LBA)는 호스트 메모리로 읽어 들일 읽기 데이터가 위치한 논리적 블록 주소이며, 쓰기 LBA(Logical Block Addressing, PW_LBA)는 플래시 메모리 칩에 쓸 데이터 페이지의 논리적 블록 주소이고, 호스트 버퍼 주소(buf)는 호스트 데이터(PW)를 저장하고 있는 호스트 메모리의 가상 주소이며, 읽기 데이터를 읽어들여 저장하는 호스트 메모리의 호스트 프레임 주소를 나타낼 수 있다.Read LBA (Logical Block Addressing, PR_LBA) is a logical block address where read data to be read into host memory is located, write LBA (Logical Block Addressing, PW_LBA) is a logical block address of a data page to be written to the flash memory chip, and the host buffer address (buf) is a virtual address of the host memory that stores the host data (PW), and can indicate the host frame address of the host memory that reads and stores the read data.

RW 명령어(RW)를 수신하는 경우, 호스트 인터페이스 컨트롤러는 NAND 디바이스 컨트롤러로부터 호스트 데이터(PW)의 저장을 위해 임시 버퍼 프레임을 획득할 수 있다(S120).When receiving a RW command (RW), the host interface controller can obtain a temporary buffer frame for storing host data (PW) from the NAND device controller (S120).

즉, 호스트 인터페이스 컨트롤러는 도 2에 나타낸 바와 같이, NAND 디바이스 컨트롤러로부터 호스트 데이터(PW)의 저장을 위해 임시 버퍼 프레임(①)을 플래시 스토리지 버퍼에서 획득할 수 있다.That is, the host interface controller can obtain a temporary buffer frame (①) from the flash storage buffer for storing host data (PW) from the NAND device controller, as shown in Fig. 2.

호스트 인터페이스 컨트롤러는 호스트 버퍼 주소(buf)에 대응하는 호스트 프레임에 저장된 호스트 데이터(PW)를 임시 버퍼 프레임에 저장할 수 있다(S130).The host interface controller can store host data (PW) stored in a host frame corresponding to a host buffer address (buf) in a temporary buffer frame (S130).

즉, 호스트 인터페이스 컨트롤러는 DMA(Direct Memory Access)를 수행하여 호스트 데이터(PW)를 임시 버퍼 프레임에 저장 또는 복사(②)할 수 있다.That is, the host interface controller can perform DMA (Direct Memory Access) to store or copy (②) host data (PW) to a temporary buffer frame.

호스트 인터페이스 컨트롤러는 상기 읽기 LBA에 대응하는 제1 플래시 메모리 칩의 버퍼 프레임에 저장된 읽기 페이지 데이터를 상기 호스트 프레임에 저장할 수 있다(S140).The host interface controller can store read page data stored in a buffer frame of the first flash memory chip corresponding to the read LBA in the host frame (S140).

즉, 호스트 인터페이스 컨트롤러는 상기 읽기 페이지 데이터(④)에 대한 읽기 작업을 위해 상기 NAND 디바이스 컨트롤러로부터 획득한 상기 제1 플래시 메모리 칩의 버퍼 프레임(③)에 저장하고, 상기 DMA(Direct Memory Access)를 수행하여 상기 읽기 페이지 데이터를 상기 호스트 프레임(⑤)에 저장할 수 있다.That is, the host interface controller can store the read page data (④) obtained from the NAND device controller in the buffer frame (③) of the first flash memory chip for a read operation, and perform the DMA (Direct Memory Access) to store the read page data in the host frame (⑤).

이후, 호스트 인터페이스 컨트롤러는 상기 버퍼 관리자로 RW 명령어(RW)에 대한 동작 완료를 알리는 인터럽트(Interrupt)를 출력할 수 있다(S150).Thereafter, the host interface controller can output an interrupt to notify the buffer manager of the completion of the operation for the RW command (RW) (S150).

즉, 호스트 인터페이스 컨트롤러는 RW 명령어가 성공적으로 완료되었음을 알리기 위해 버퍼 관리자에 인터럽트(⑥)를 보낼 수 있다.That is, the host interface controller can send an interrupt (⑥) to the buffer manager to notify that the RW command has been successfully completed.

NAND 디바이스 컨트롤러는 상기 임시 버퍼 프레임에 저장된 상기 호스트 데이터를 상기 쓰기 LBA에 대응하는 제2 플래시 메모리 칩의 버퍼 프레임에 저장할 수 있다(S170).The NAND device controller can store the host data stored in the temporary buffer frame in the buffer frame of the second flash memory chip corresponding to the write LBA (S170).

즉, NAND 디바이스 컨트롤러는 읽기 작업과 무관하게 비동기적으로 상기 호스트 데이터를 기록할 수 있다(⑦).That is, the NAND device controller can write the host data asynchronously regardless of the read operation (⑦).

도 3은 본 발명에 따른 플래시 메모리 저장장치의 처리 과정을 비교한 예시도이다.Figure 3 is an exemplary diagram comparing the processing process of a flash memory storage device according to the present invention.

도 3은 쓰기 및 읽기 명령어를 처리할 때 기본 명령 세트를 사용하는 경우와 확장된 명령 세트를 사용하는 경우 I/O 처리 과정을 비교한 그림이다. Figure 3 is a diagram comparing the I/O processing process when using the basic command set and when using the extended command set when processing write and read commands.

도 3을 설명하기 이전에, 호스트 인터페이스 컨트롤러는 RW 명령어(RW)와 일치하는 명령어가 없기 때문에, Cosmos+ OpenSSD의 펌웨어 상에 RW 인터페이스를 구현하였다.Before explaining Figure 3, since the host interface controller does not have a command matching the RW command (RW), the RW interface was implemented on the firmware of Cosmos+ OpenSSD.

RW 명령어(RW)의 구현을 위해, NVM 명령 세트 (NVM Command Set)를 확장하였다. Cosmos+ OpenSSD는 NVM Express (NVMe) 인터페이스를 지원하는데, NVMe 인터페이스가 지원하는 기본 명령 세트에 RW를 위한 custom opcode를 추가하였다. To implement the RW command (RW), the NVM command set (NVM Command Set) was extended. Cosmos+ OpenSSD supports the NVM Express (NVMe) interface, and a custom opcode for RW was added to the basic command set supported by the NVMe interface.

RW 명령어(RW)는 0x66으로 그 값을 정의하였으며 호스트가 지정된 opcode로 RW 명령어를 호출하면, OpenSSD의 호스트 인터페이스 컨트롤러가 주어진 NVM 명령 세트를 식별하고 각 읽기 및 쓰기 작업을 준비한다. The RW command (RW) is defined as 0x66, and when the host calls the RW command with the specified opcode, the host interface controller of OpenSSD identifies the given NVM command set and prepares each read and write operation.

RW 명령어를 이용하면 호스트 시스템은 하나의 I/O 요청을 이용하여 2가지 작업(읽기 및 쓰기)을 SSD에게 요구할 수 있다.The RW command allows the host system to request two operations (a read and a write) from the SSD using a single I/O request.

RW 명령어는 읽기 동작을 위한 저장 장치 주소와 쓰기 동작을 위한 저장 장치 주소를 SSD에게 별도로 제공한다. The RW command provides the SSD with separate storage device addresses for read operations and write operations.

즉, 저장 장치 내 데이터를 읽을 주소와 데이터를 쓸 주소가 서로 다르기 때문에 NAND 디바이스 컨트롤러는 SSD 내부의 여러 채널을 사용하여 독립적으로 두 작업을 수행할 수 있다. That is, because the addresses to read data from and write data to within the storage device are different, the NAND device controller can perform both operations independently using multiple channels within the SSD.

다만, 하나의 호스트 요청은 호스트 메모리 버퍼를 위한 주소 정보를 하나만 포함할 수 있기 때문에 데이터 일관성 (data consistency)을 보장하기 위해서는 하나의 제약 조건을 지켜야 한다. 이는 호스트 메모리 버퍼와 SSD 내부의 저장장치 버퍼 간 데이터 전송 과정에 존재하는데, 호스트 메모리 버퍼의 쓰기 데이터가 저장장치 버퍼에 온전히 쓰여진 이후에만 읽기 동작을 위한 호스트 메모리 버퍼와 저장장치 버퍼 간의 데이터 전송이 수행되어야 한다.However, since one host request can only contain one address information for the host memory buffer, one constraint must be maintained to ensure data consistency. This exists during the data transfer process between the host memory buffer and the storage buffer inside the SSD. Data transfer between the host memory buffer and the storage buffer for a read operation must be performed only after the write data of the host memory buffer is completely written to the storage buffer.

도 3과 같이, 기본 명령 세트를 이용하는 경우, MySQL 버퍼에 빈 버퍼 프레임이 생성된 이후에만 새로운 데이터를 읽어올 수 있기 때문에 쓰기 작업을 위한 호스트 요청 A와 읽기 작업을 위한 호스트 요청 B가 순차적으로 발생할 수 있다.As shown in Figure 3, when using the basic command set, host request A for a write operation and host request B for a read operation can occur sequentially because new data can be read only after an empty buffer frame is created in the MySQL buffer.

이 경우에는 쓰기 동작과 읽기 동작이 순차적으로 수행된다. In this case, the write and read operations are performed sequentially.

반면 확장된 명령 세트를 이용하는 경우, RW 명령어(RW) 호출을 위한 호스트 요청 C만 발생한다. On the other hand, when using the extended command set, only a host request C is issued for calling the RW instruction (RW).

이 경우에는 호스트 메모리 버퍼와 SSD 내부 저장장치 버퍼 간 쓰기 데이터 전송 과정 외에는 읽기 작업과 쓰기 작업이 병렬적으로 처리될 수 있으며, I/O 처리 시간을 줄일 수 있다.In this case, read and write operations can be processed in parallel, except for the write data transfer process between the host memory buffer and the SSD internal storage buffer, which can reduce the I/O processing time.

이상에서 실시 예들에 설명된 특징, 구조, 효과 등은 본 발명의 적어도 하나의 실시 예에 포함되며, 반드시 하나의 실시 예에만 한정되는 것은 아니다. 나아가, 각 실시 예에서 예시된 특징, 구조, 효과 등은 실시 예들이 속하는 분야의 통상의 지식을 가지는 자에 의해 다른 실시 예들에 대해서도 조합 또는 변형되어 실시 가능하다. 따라서 이러한 조합과 변형에 관계된 내용들은 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.The features, structures, effects, etc. described in the embodiments above are included in at least one embodiment of the present invention, and are not necessarily limited to only one embodiment. Furthermore, the features, structures, effects, etc. exemplified in each embodiment can be combined or modified and implemented in other embodiments by a person having ordinary knowledge in the field to which the embodiments belong. Therefore, the contents related to such combinations and modifications should be interpreted as being included in the scope of the present invention.

또한, 이상에서 실시 예를 중심으로 설명하였으나 이는 단지 예시일 뿐 본 발명을 한정하는 것이 아니며, 본 발명이 속하는 분야의 통상의 지식을 가진 자라면 본 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부된 청구 범위에서 규정하는 본 발명의 범위에 포함되는 것으로 해석되어야 할 것이다.In addition, although the above has been described focusing on embodiments, these are merely examples and do not limit the present invention, and those with ordinary skill in the art to which the present invention pertains will recognize that various modifications and applications not exemplified above are possible without departing from the essential characteristics of the present embodiment. For example, each component specifically shown in the embodiments can be modified and implemented. And, the differences related to such modifications and applications should be interpreted as being included in the scope of the present invention defined in the appended claims.

Claims (5)

호스트 인터페이스 컨트롤러가, 호스트 메모리를 관리하는 버퍼 관리자(Buffer Manager)로부터 출력된 읽기 LBA(Logical Block Addressing), 쓰기 LBA(Logical Block Addressing) 및 호스트 버퍼 주소를 포함하는 RW(Read/Write) 명령어를 수신하는 단계;
상기 호스트 인터페이스 컨트롤러가, 상기 호스트 버퍼 주소에 대응하는 호스트 프레임에 저장된 호스트 데이터를 임시 버퍼 프레임에 저장하는 단계;
상기 호스트 인터페이스 컨트롤러가, 상기 읽기 LBA에 대응하는 제1 플래시 메모리 칩의 버퍼 프레임에 저장된 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계; 및
NAND 디바이스 컨트롤러가, 상기 임시 버퍼 프레임에 저장된 상기 호스트 데이터를 상기 쓰기 LBA에 대응하는 제2 플래시 메모리 칩의 버퍼 프레임에 저장하는 단계를 포함하고,
상기 RW 명령어는,
확장된 NVM 명령어 세트를 통해 RW를 위한 custom opcode를 추가하여 생성될 수 있고, 읽기 동작을 위한 저장 장치 주소와 쓰기 동작을 위한 저장 장치 주소를 별도로 포함하여, 하나의 호스트 요청을 통해 읽기와 쓰기를 수행하도록 하는 것을 특징으로 하는
플래시 메모리 저장장치의 동작방법.
A step in which a host interface controller receives a RW (Read/Write) command including a read LBA (Logical Block Addressing), a write LBA (Logical Block Addressing) and a host buffer address output from a buffer manager that manages host memory;
A step in which the host interface controller stores host data stored in a host frame corresponding to the host buffer address in a temporary buffer frame;
The step of the host interface controller storing the read page data stored in the buffer frame of the first flash memory chip corresponding to the read LBA in the host frame; and
The NAND device controller comprises a step of storing the host data stored in the temporary buffer frame in a buffer frame of a second flash memory chip corresponding to the write LBA,
The above RW command is,
It can be generated by adding a custom opcode for RW through an extended NVM command set, and is characterized by separately including a storage device address for a read operation and a storage device address for a write operation, thereby performing read and write through a single host request.
How a flash memory storage device operates.
제 1 항에 있어서,
상기 호스트 데이터를 획득한 임시 버퍼 프레임에 저장하는 단계 이전에,
상기 호스트 인터페이스 컨트롤러가, 상기 NAND 디바이스 컨트롤러로부터 상기 호스트 데이터의 저장을 위해 상기 임시 버퍼 프레임을 획득하는 단계를 더 포함하는,
플래시 메모리 저장장치의 동작방법.
In paragraph 1,
Before the step of storing the acquired host data in a temporary buffer frame,
The host interface controller further comprises a step of obtaining the temporary buffer frame for storing the host data from the NAND device controller.
How a flash memory storage device operates.
제 1 항에 있어서,
상기 호스트 데이터를 획득한 임시 버퍼 프레임에 저장하는 단계는,
상기 호스트 인터페이스 컨트롤러가 DMA(Direct Memory Access)를 수행하여 상기 호스트 데이터를 읽어들여 상기 임시 버퍼 프레임에 저장하는,
플래시 메모리 저장장치의 동작방법.
In the first paragraph,
The step of storing the acquired host data in a temporary buffer frame is:
The host interface controller performs DMA (Direct Memory Access) to read the host data and store it in the temporary buffer frame.
How a flash memory storage device operates.
제 1 항에 있어서,
상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계는,
상기 호스트 인터페이스 컨트롤러가, 상기 읽기 페이지 데이터에 대한 읽기 작업을 위해 상기 NAND 디바이스 컨트롤러로부터 획득한 상기 제1 플래시 메모리 칩의 버퍼 프레임에 저장하고, DMA(Direct Memory Access)를 수행하여 상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는,
플래시 메모리 저장장치의 동작방법.
In paragraph 1,
The step of storing the above read page data in the above host frame is:
The host interface controller stores the read page data in a buffer frame of the first flash memory chip obtained from the NAND device controller for a read operation on the read page data, and performs DMA (Direct Memory Access) to store the read page data in the host frame.
How a flash memory storage device operates.
제 1 항에 있어서,
상기 읽기 페이지 데이터를 상기 호스트 프레임에 저장하는 단계 이후에,
상기 호스트 인터페이스 컨트롤러가 상기 버퍼 관리자로 상기 RW 명령어에 대한 동작 완료를 알리는 인터럽트를 출력하는 단계를 더 포함하는,
플래시 메모리 저장장치의 동작방법.
In paragraph 1,
After the step of storing the above read page data in the above host frame,
The host interface controller further comprises a step of outputting an interrupt to the buffer manager notifying completion of an operation for the RW command.
How a flash memory storage device operates.
KR1020210117402A 2021-09-03 2021-09-03 Operation method of Flash memory storage device Active KR102701385B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210117402A KR102701385B1 (en) 2021-09-03 2021-09-03 Operation method of Flash memory storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210117402A KR102701385B1 (en) 2021-09-03 2021-09-03 Operation method of Flash memory storage device

Publications (2)

Publication Number Publication Date
KR20230034535A KR20230034535A (en) 2023-03-10
KR102701385B1 true KR102701385B1 (en) 2024-08-30

Family

ID=85511835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210117402A Active KR102701385B1 (en) 2021-09-03 2021-09-03 Operation method of Flash memory storage device

Country Status (1)

Country Link
KR (1) KR102701385B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190123984A (en) * 2018-04-25 2019-11-04 에스케이하이닉스 주식회사 Memory system and operating method thereof
US10671314B2 (en) * 2018-06-07 2020-06-02 Circuit Blvd., Inc. Method of copying data between open-channel solid state drives (SSDs) and an apparatus performing the same

Also Published As

Publication number Publication date
KR20230034535A (en) 2023-03-10

Similar Documents

Publication Publication Date Title
US8392670B2 (en) Performance management of access to flash memory in a storage device
JP4829365B1 (en) Data storage device and data writing method
CN107908571B (en) Data writing method, flash memory device and storage equipment
KR101086857B1 (en) Control Method of Semiconductor Storage System Performing Data Merge
US9256384B2 (en) Method and system for reducing write latency in a data storage system by using a command-push model
KR101245011B1 (en) Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
US20180275921A1 (en) Storage device
US8060669B2 (en) Memory controller with automatic command processing unit and memory system including the same
US9348747B2 (en) Solid state memory command queue in hybrid device
TWI531963B (en) Data storage systems and their specific instruction enforcement methods
US10635356B2 (en) Data management method and storage controller using the same
US8185687B2 (en) Semiconductor storage device and method of controlling semiconductor storage device
US8862819B2 (en) Log structure array
CN108153682B (en) Method for mapping addresses of flash translation layer by utilizing internal parallelism of flash memory
US11269559B2 (en) Data processing device
CN105389268A (en) Data storage system and method of operation
US10628048B2 (en) Storage control device for controlling write access from host device to memory device
US11474750B2 (en) Storage control apparatus and storage medium
US11403211B2 (en) Storage system with file priority mechanism and method of operation thereof
TW202449615A (en) Devices and methods for cache operation in storage devices
KR102701385B1 (en) Operation method of Flash memory storage device
US12105968B2 (en) Systems, methods, and devices for page relocation for garbage collection
US12360699B2 (en) Memory system
CN112199044B (en) Multi-tenant-oriented FTL setting method, system, computer program and storage medium
Alhasan et al. RUSM: Harnessing Unused Resources in 3D NAND SSD to Enhance Reading Performance

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20210903

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

Comment text: Notification of reason for refusal

Patent event date: 20231130

Patent event code: PE09021S01D

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

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20240824

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20240828

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20240828

End annual number: 3

Start annual number: 1

PG1601 Publication of registration