KR102412423B1 - 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 - Google Patents

비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 Download PDF

Info

Publication number
KR102412423B1
KR102412423B1 KR1020200003129A KR20200003129A KR102412423B1 KR 102412423 B1 KR102412423 B1 KR 102412423B1 KR 1020200003129 A KR1020200003129 A KR 1020200003129A KR 20200003129 A KR20200003129 A KR 20200003129A KR 102412423 B1 KR102412423 B1 KR 102412423B1
Authority
KR
South Korea
Prior art keywords
log
data
storage area
ack
cache memory
Prior art date
Application number
KR1020200003129A
Other languages
English (en)
Other versions
KR102412423B9 (ko
KR20210089932A (ko
Inventor
한태희
홍정범
김용욱
강민구
이조은
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020200003129A priority Critical patent/KR102412423B1/ko
Priority to US17/122,255 priority patent/US11294822B2/en
Publication of KR20210089932A publication Critical patent/KR20210089932A/ko
Application granted granted Critical
Publication of KR102412423B1 publication Critical patent/KR102412423B1/ko
Publication of KR102412423B9 publication Critical patent/KR102412423B9/ko

Links

Images

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/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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host 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/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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • 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
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/608Details relating to cache mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7208Multiple device management, e.g. distributing data over multiple flash devices

Landscapes

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

Abstract

비휘발성 메모리 장치의 동작 방법이 개시된다. 본 명세서의 일 실시예에 따른 비휘발성 메모리 장치의 동작 방법은, 로그 저장 영역, 데이터 저장 영역 및 ACK 생성부를 포함하는 비휘발성 메모리 장치의 동작 방법에 있어서, 캐시 메모리로부터 로그 및 데이터를 수신하는 단계, 상기 수신한 로그를 상기 로그 저장 영역에 저장하는 단계, 상기 수신한 데이터를 상기 데이터 저장 영역에 저장하는 단계, 상기 로그 및 상기 데이터의 저장 결과에 따라, 상기 캐시 메모리로 ACK 시그널을 전송하는 단계를 포함할 수 있다.

Description

비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법{NON-VOLATILE MEMORY STORAGE, COMPUTING SYSTEM INCLUDING THE SAME AND PERATION METHOD THEREOF}
본 발명은 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법에 관한 것이다. 상세하게는 로그를 저장하도록 할당한 메모리 셀과 ACK 생성부를 포함하는 비휘발성 메모리 장치, 상기 비휘발성 메모리 장치를 포함하는 컴퓨팅 시스템과, 로그 및 데이터의 저장이 실패한 경우 캐시 메모리에 대하여 로그 및 데이터의 재전송을 요청하기 위한 ACK 시그널을 전송하는 비휘발성 메모리 장치의 동작 방법에 관한 것이다.
차세대 비휘발성 메모리 소자들은 공정 스케일 한계 및 큰 대기 전력을 갖는 DRAM 기반 메인 메모리를 대체할 해결책으로 주목받고 있다. 비휘발성 램(NVRAM)은 refresh 동작이 필수적으로 요구되는 DRAM에 비해 소모 전력을 크게 줄일 수 있으나, 오히려 이로 인해 데이터의 일관성 및 보안 문제 등이 발생하는 문제점이 존재하였다.
종래에는, 이러한 문제점을 해결하기 위하여 TC 방식과 Kiln 방식을 사용하였다. TC 방식은, Transaction Cache 기반의 아키텍처를 사용하는 것으로서 별개의 Transaction Cache를 코어와 메인 메모리 사이에 별도로 구비하였다. 그러나 이는 코어 수에 비례하여 Transaction Cache의 크기가 커져야 하므로, 다수의 코어를 사용하는 현재의 컴퓨팅 시스템과는 맞지 않다.
또한, Kiln 방식은, 마지막 레벨의 캐시 내에 로그 저장 영역을 추가하는 것으로서, 캐시 내에 추가된 로그 저장 영역은 매번 쓰기 동작마다 flush되어야 하므로 시스템 성능이 저하될 수 있다.
따라서, 데이터의 일관성 및 보안 문제 등을 해결하기 위한 새로운 해결책이 필요하다.
본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위하는 것을 목적으로 한다.
또한, 본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위하여 추가되는 버스 트랜잭션의 양을 감소시키는 것을 목적으로 한다.
또한, 본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위하여 추가되는 버스 트랜잭션의 양을 감소시킴으로써, 전체 컴퓨팅 시스템의 성능을 향상시키고 메모리 버스의 수명을 증가시키는 것을 목적으로 한다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 발명의 상세한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위하여, 본 명세서는, 로그 저장 영역, 데이터 저장 영역 및 ACK 생성부를 포함하는 비휘발성 메모리 장치의 동작 방법에 있어서,캐시 메모리로부터 로그 및 데이터를 수신하는 단계, 상기 수신한 로그를 상기 로그 저장 영역에 저장하는 단계, 상기 수신한 데이터를 상기 데이터 저장 영역에 저장하는 단계, 상기 로그 및 상기 데이터의 저장 결과에 따라, 상기 캐시 메모리로 ACK 시그널을 전송하는 단계를 포함할 수 있다.
또한, 상기 로그 및 상기 데이터를 수신하는 단계는, 상기 캐시 메모리로부터 상기 로그 및 상기 데이터를 동시에 수신할 수 있다.
또한, 상기 ACK 시그널은, 상기 비휘발성 메모리 장치의 동작이 완료되었음을 나타내는 제1 ACK 시그널 또는 상기 캐시 메모리에 상기 로그 및 상기 데이터의 재전송을 요청하는 제2 ACK 시그널을 포함할 수 있다.
또한, 상기 ACK 시그널을 전송하는 단계는, 상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 상기 ACK 생성부로 플래그 비트를 전송하고, 상기 플래그 비트에 근거하여 상기 ACK 생성부로부터 상기 캐시 메모리로 상기 ACK 시그널을 전송할 수 있다.
또한, 상기 플래그 비트는, 상기 로그 저장 영역에서 상기 로그의 저장의 성공 또는 실패를 나타내는 제1 플래그 비트 및 상기 데이터 저장 영역에서 상기 데이터의 저장의 성공 또는 실패를 나타내는 제2 플래그 비트를 포함할 수 있다.
또한, 상기 플래그 비트는, 상기 로그 및 상기 데이터의 저장 성공을 나타내는 제1 시그널, 상기 로그의 저장 성공 및 상기 데이터의 저장 실패를 나타내는 제2 시그널, 상기 로그의 저장 실패 및 상기 데이터의 저장 성공을 나타내는 제3 시그널, 및 상기 로그 및 상기 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널일 수 있다.
이때, 상기 ACK 시그널을 전송하는 단계는, 상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 상기 ACK 생성부로 상기 제4 시그널이 전송되면, 상기 ACK 생성부로부터 상기 캐시 메모리로 상기 ACK 시그널을 전송할 수 있다.
이때, 상기 ACK 시그널은, 상기 로그 및 상기 데이터를 재전송하라는 명령을 포함할 수 있다.
또한, 상술한 과제를 해결하기 위하여, 본 명세서는 캐시 메모리로부터 수신한 로그(log)를 저장하는 로그 저장 영역, 상기 캐시 메모리로부터 수신한 데이터(data)를 저장하는 데이터 저장 영역 및 상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 플래그 비트를 수신하고, 상기 플래그 비트에 따라 상기 캐시 메모리로 ACK 시그널을 전송하는 ACK 생성부를 포함할 수 있다.
또한, 상기 로그 저장 영역 및 상기 데이터 저장 영역은, 상기 캐시 메모리로부터 동시에 상기 로그 및 상기 데이터를 수신할 수 있다.
또한, 상기 플래그 비트는 상기 로그 저장 영역에서 상기 로그의 저장의 성공 또는 실패를 나타내는 제1 플래그 비트 및 상기 데이터 저장 영역에서 상기 데이터의 저장의 성공 또는 실패를 나타내는 제2 플래그 비트를 포함할 수 있다.
상기 플래그 비트는, 상기 로그 및 상기 데이터의 저장 성공을 나타내는 제1 시그널, 상기 로그의 저장 성공 및 상기 데이터의 저장 실패를 나타내는 제2 시그널, 상기 로그의 저장 실패 및 상기 데이터의 저장 성공을 나타내는 제3 시그널, 및 상기 로그 및 상기 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널일 수 있다.
이때, 상기 플래그 비트는 상기 제4 시그널이고, 상기 ACK 생성부는 상기 제4 시그널을 수신하고, 상기 ACK 생성부는 상기 캐시 메모리에 대하여 상기 ACK 시그널을 전송할 수 있다.
또한, 상기 ACK 시그널은, 상기 로그를 상기 로그 저장 영역으로 재전송하고, 상기 데이터를 상기 데이터 저장 영역으로 재전송하라는 명령을 포함할 수 있다.
또한, 상기 ACK 생성부는 NOR 게이트를 포함할 수 있다.
또한, 상기 비휘발성 메모리 장치는 복수의 메모리 셀을 포함하는 복수의 메모리 뱅크(bank)를 포함하고, 상기 복수의 메모리 뱅크는 각각의 메모리 뱅크마다 상기 로그 저장 영역을 포함할 수 있다.
또한, 상술한 과제를 해결하기 위하여, 본 명세서는 상술한 비휘발성 메모리 장치 및 상기 비휘발성 메모리 장치로 로그 및 데이터를 전송하는 캐시 메모리를 포함할 수 있다.
이때, 상기 캐시 메모리는 상기 로그 및 데이터를 전송한 후, 상기 전송한 로그 및 데이터를 임시로 저장할 수 있다.
이때, 상기 캐시 메모리는, 상기 비휘발성 메모리로부터 ACK 시그널을 수신하고, 상기 ACK 시그널에 근거하여 상기 임시로 저장한 로그 및 데이터를 상기 비휘발성 메모리로 재전송할 수 있다.
본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위할 수 있는 효과가 있다.
또한, 본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위하여 추가되는 버스 트랜잭션의 양을 감소시킬 수 있는 효과가 있다.
또한, 본 명세서는, 비휘발성 메모리 장치의 데이터 일관성 유지를 위하여 추가되는 버스 트랜잭션의 양을 감소시킴으로써, 전체 컴퓨팅 시스템의 성능을 향상시키고 메모리 버스의 수명을 증가시킬 수 있는 효과가 있다.
본 명세서에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 명세서가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
도 1은 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 나타낸 도면이다.
도 2는 본 명세서의 제1 실시예에 따른 플래그 비트에 대한 표이다.
도 3은 본 명세서의 제1 실시예에 따른 플래그 비트에 따른 비휘발성 메모리 장치의 동작 방법을 나타낸 도면이다.
도 4는 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 실시한 경우의 시스템 성능을 비교한 그래프이다.
도 5는 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 실시한 경우의 버스 트랜잭션의 양을 비교한 그래프이다.
도 6은 본 명세서의 제2 실시예에 따른 비휘발성 메모리 장치를 나타낸 도면이다.
도 7은 본 명세서의 제3 실시예에 따른 컴퓨팅 시스템을 나타낸 도면이다.
도 8은 본 명세서의 제3 실시예에 따라 제2 ACK 시그널을 생성하는 경우를 나타낸 도면이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 명세서의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
이하, 상술한 내용들을 바탕으로 본 명세서의 바람직한 제1 실시예에 따른, 비휘발성 메모리 장치의 동작 방법에 관하여 상세히 설명하면 다음과 같다. 또한, 본 명세서의 바람직한 제1 실시예에 따른 동작 방법의 수행 주체는 비휘발성 메모리 장치일 수 있다.
도 1은 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 나타낸 도면이다.
도 1에 따르면, 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치(100)의 동작 방법은, 캐시 메모리(200)로부터 로그(log) 및 데이터(data)를 수신하는 단계(S110), 수신한 로그를 로그 저장 영역(110)에 저장하는 단계(S120), 수신한 데이터를 데이터 저장 영역(120)에 저장하는 단계(S130) 및 로그 및 데이터의 저장 결과에 따라, 캐시 메모리(200)(또는 프로세서(300))로 ACK 시그널을 전송하는 단계(S140)를 포함할 수 있다.
캐시 메모리(200)로부터 로그 및 데이터를 수신하는 단계(S110)는, 캐시 메모리(200)로부터 로그 및 데이터를 동시에 수신할 수 있다. 이때, 로그는 명령어를 포함할 수 있다. 이와 같이, 로그와 데이터를 동시에 송수신함으로써, 캐시 메모리(200)와 비휘발성 메모리 장치(100)사이에서 송수신되는 데이터의 양을 줄일 수 있는 효과가 발생할 수 있다.
또한, 로그 및 데이터가 동시에 송수신될 수 있으므로, 캐시 메모리(200)로부터 로그(log) 및 데이터(data)를 수신하는 단계(S110) 및 수신한 로그를 로그 저장 영역(110)에 저장하는 단계(S120)는 동시에 이루어 질 수 있으며 그 순서에 구속되지 않는다.
이때, 로그 저장 영역(110) 또는 데이터 저장 영역(120)은 비휘발성 메모리에 포함된 복수의 메모리 셀 들을 의미할 수 있다. 로그 저장 영역(110)은, 복수의 메모리 셀 중에서 로그를 저장하도록 할당된 메모리 셀을 의미할 수 있다.
로그 및 데이터의 저장 결과에 따라, 캐시 메모리(200)(또는 프로세서(300))로 ACK 시그널을 전송하는 단계(S140)는, 로그 저장 영역(110) 및 데이터 저장 영역(120)으로부터 ACK 생성부(140)로 플래그 비트(130)를 전송하고, 플래그 비트(130)에 근거하여 ACK 생성부(140)로부터 캐시 메모리(200)(또는 프로세서(300))로 ACK 시그널을 전송할 수 있다.
이때, ACK 시그널은, 비휘발성 메모리 장치(100)의 동작이 완료되었음을 나타내는 제1 ACK 시그널 또는 캐시 메모리(200)에 로그 및 데이터의 재전송을 요청하는 제2 ACK 시그널을 포함할 수 있다. 비휘발성 메모리 장치(100)의 동작이 완료되었다는 것은, 로그 및 데이터의 저장이 성공적으로 완료되었거나, 수정이 가능하여 캐시 메모리(200)로부터 로그 및 데이터의 재전송이 필요하지 않다는 것을 의미할 수 있다 .
이처럼, 제1 또는 제2 ACK 시그널을 전송하기 위하여, 로그의 저장 결과 및 데이터의 저장 결과를 확인하는 과정이 필요하다. 이를 위하여, 로그가 저장된 로그 저장 영역(110) 및 데이터가 저장된 데이터 저장 영역(120)으로부터 ACK 생성부(140)로 플래그 비트(130)가 전송될 수 있다. ACK 생성부(140)는 플래그 비트(130)에 근거하여 ACK 시그널을 생성하여 캐시 메모리(200)로 전송할지를 선택할 수 있다.
이때, 플래그 비트(flag bit, 130)는, 로그 저장 영역(110)에서 로그의 저장의 성공 또는 실패를 나타내는 제1 플래그 비트와 데이터 저장 영역(120)에서 데이터의 저장의 성공 또는 실패를 나타내는 제2 플래그 비트를 포함할 수 있다. 여기서 비트는 0 또는 1의 bit를 의미할 수 있다.
일 예로, 제1 플래그 비트가 1인 경우 로그 저장 영역(110)에서 로그의 저장이 성공한 것을 의미할 수 있고, 제1 플래그 비트가 0인 경우 로그 저장 영역(110)에서 로그의 저장이 실패한 것을 의미할 수 있다.
일 예로, 제2 플래그 비트가 1인 경우 데이터 저장 영역(120)에서 데이터의 저장이 성공한 것을 의미할 수 있고, 제1 플래그 비트가 0인 경우 데이터 저장 영역(120)에서 데이터의 저장이 실패한 것을 의미할 수 있다.
따라서, 플래그 비트(130)는, 11, 10, 01, 00의 4가지 조합으로 이루어질 수 있으며, 이하 도 2에서 상세히 설명한다.
도 2는 본 명세서의 제1 실시예에 따른 플래그 비트에 대한 표이다.
도 2에 따르면, 플래그 비트(130)는, 11, 10, 01, 00의 4가지 조합으로 이루어질 수 있다. 이때, 플래그 비트(130)를 이루는 2개의 숫자 중 좌측의 숫자를 제1 플래그 비트, 우측의 숫자를 제2 플래그 비트라고 할 수 있다.
플래그 비트(130)가 11인 경우, 로그는 로그 저장 영역(110)에 성공적으로 저장되고, 데이터는 데이터 저장 영역(120)에 성공적으로 저장된 것으로 볼 수 있다. 이 경우 별도의 후속 조치는 필요 없으며, 다음 로그 및 데이터가 캐시 메모리(200)로부터 수신될 수 있다.
플래그 비트(130)가 10인 경우, 로그는 로그 저장 영역(110)에 성공적으로 저장되었으나, 데이터는 데이터 저장 영역(120)에 저장되지 못하거나 저장 과정에서 오류가 발생한 것으로 볼 수 있다. 이 경우 로그에만 문제가 발생하고 데이터는 잘 저장되었으므로, 다음 동작시 로그만 새로 업데이트할 수 있다.
즉, 본 명세서에 따른 비휘발성 메모리 장치(100)의 동작 방법은 데이터의 정확하고 일관성있는 저장을 위한 것이므로, 로그에만 문제가 발생한 경우는 로그만 새로 업데이트 함으로써 해결가능하다.
플래그 비트(130)가 01인 경우, 로그는 로그 저장 영역(110)에 저장되지 못하거나 저장 과정에서 오류가 발생한 것으로 볼 수 있고, 데이터는 데이터 저장 영역(120)에 성공적으로 저장된 것으로 볼 수 있다. 이 경우 로그는 잘 저장되었으나 데이터에 문제가 발생하였으므로, 다음 동작시 저장된 로그를 바탕으로 데이터를 수정할 수 있다.
즉, 로그가 정확히 저장되었다면 로그를 바탕으로 데이터를 새로 저장하거나 수정할 수 있다. 로그는 컴퓨터의 처리 내용을 시간의 흐름에 따른 기록 및 데이터의 주소 등을 포함하는 명령어이기 때문이다.
플래그 비트(130)가 00인 경우, 로그 및 데이터 모두 저장에 실패한 것으로 볼 수 있다. 저장에 실패하였다는 것은, 할당된 저장 영역에 저장되지 못하거나 저장 과정에서 오류가 발생한 것을 의미할 수 있다. 이 경우, 로그와 데이터 모두에 문제가 발생하였으므로, 제2 ACK 시그널을 캐시 메모리(200)(또는 프로세서(300))로 전송하여, 캐시 메모리(200)로부터 동일한 로그 및 데이터를 재전송받을 수 있다.
이때, 캐시 메모리(200)는 제2 ACK 시그널을 대비하여 로그 및 데이터를 임시로 저장해둘 수 있다. 즉, 캐시 메모리(200)에서 로그 저장 영역(110) 및 데이터 저장 영역(120)으로 로그 및 데이터를 전송한 후, 캐시 메모리(200)는 전송한 로그 및 데이터를 삭제하지 않고 임시로 저장할 수 있다. 추후 제1 ACK 시그널이 캐시 메모리(200)에 전송되면, 캐시 메모리(200)는 제1 ACK 시그널 확인 후 전송한 로그 및 데이터를 삭제할 수 있다.
캐시 메모리(200)는 제2 ACK 시그널을 수신한 경우, 전송한 로그 및 데이터를 재전송할 수 있다. 즉, 로그 저장 영역(110) 및 데이터 저장 영역(120)은 캐시 메모리(200)로부터 로그 및 데이터를 재수신할 수 있다.
도 3은 본 명세서의 제1 실시예에 따른 플래그 비트에 따른 비휘발성 메모리 장치의 동작 방법을 나타낸 도면이다.
도 3에 따르면, 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치(100)의 동작 방법은, 캐시 메모리(200)로부터 로그(log) 및 데이터(data)를 수신하는 단계(S210), 수신한 로그를 로그 저장 영역(110)에 저장하는 단계(S220), 수신한 데이터를 데이터 저장 영역(120)에 저장하는 단계(S230)를 포함할 수 있다.
또한, 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치(100)의 동작 방법은, 로그 및 데이터의 저장이 성공 또는 실패로 완료되면, 이를 비트로 나타낸 플래그 비트(130)가 메모리 셀에 저장되며, 해당 플래그 비트(130)를 ACK 생성부(140)에 전송하는 단계(S240)를 더 포함할 수 있다.
이때, 플래그 비트(130)는, 로그 및 데이터의 저장 성공을 나타내는 제1 시그널, 로그의 저장 성공 및 데이터의 저장 실패를 나타내는 제2 시그널, 로그의 저장 실패 및 데이터의 저장 성공을 나타내는 제3 시그널, 및 로그 및 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널일 수 있다.
즉, 제1 내지 제4 시그널은 제1 플래그 비트 및 제2 플래그 비트의 조합일 수 있다. 따라서, 제1 시그널은 11, 제2 시그널은 10. 제3 시그널은 01, 제4 시그널은 00일 수 있다.
플래그 비트(130)가 제1 시그널 내지 제3 시그널인 경우, 비휘발성 메모리 장치(100)는 프로세서(300)에 제1 ACK 시그널을 전송할 수 있다(S250, S251).
플래그 비트(130)가 제1 시그널인 경우, 비휘발성 메모리 장치(100)의 동작은 완료되며, 다음 로그 및 데이터의 수신이 시작될 수 있다.
플래그 비트(130)가 제2 시그널 및 제3 시그널인 경우, 제1 ACK 시그널을 프로세서(300)로 전송하고(S251), 로그를 업데이트하거나 로그를 바탕으로 데이터를 수정할 수 있다(S261).
플래그 비트(130)가 제4 시그널인 경우, 캐시 메모리(200)에 대하여 로그 및 데이터의 재전송을 요청하는 제2 ACK 시그널을 전송할 수 있다(S252). 이 경우 캐시 메모리(200)로부터 로그 및 데이터를 재수신할 수 있다(S262).
도 4는 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 실시한 경우의 시스템 성능을 비교한 그래프이다.
도 4에 따르면, 4가지 유형의 그래프가 도시되었다. 종래 기술인 TC 방식, Kiln 방식과 본 명세서의 동작 방법을 사용한 그래프가 도시되었으며, 뿐만 아니라 어떠한 일관성 유지 기법을 사용하지 않은 경우의 그래프도 함께 도시되어 있다.
도 4에 따르면, 시스템 성능을 비교하기 위하여 4가지 항목을 기준으로 막대 그래프가 도시되었다. 좌측부터, graph, rbtree, sps, btree, hashtable, geomean이며, 도시된 막대 그래프는 각각의 방식에 따른 성능 수치를 0에서 1사이의 값으로 표시한다.
일관성 유지 기법을 사용하지 않은 경우의 그래프가 1의 값을 가진다. 성 유지 기법을 사용하지 않은 경우의 그래프와 크기가 비슷할수록 시스템 성능의 향상을 의미할 수 있다. 즉, TC 방식, Kiln 방식과 본 명세서의 동작 방법이라는 로직이 추가되었음에도 원래의 시스템 속도와 최대한 가깝게 유지하는 것이 좋다.
도 4에 따르면, 4가지 항목에 대한 그래프 모두 TC 방식 및 Kiln 방식 보다 본 명세서의 동작 방법을 사용한 경우의 그래프가 1에 가깝게 표시되었음을 알 수 있다. 따라서, 종래 방식들보다 본 명세서의 동작 방법을 사용한 경우의 시스템 성능이 뛰어남을 알 수 있다. 구체적으로, 본 명세서에 따른 동작 방법을 사용한 경우 TC 방식 대비 평균 1.2%, Kiln 대비 평균 15.6%가 향상되었음을 알 수 있다.
도 5는 본 명세서의 제1 실시예에 따른 비휘발성 메모리 장치의 동작 방법을 실시한 경우의 버스 트랜잭션의 양을 비교한 그래프이다.
도 5에 따르면, 4가지 유형의 그래프가 도시되었다. 종래 기술인 TC 방식, Kiln 방식과 본 명세서의 동작 방법을 사용한 그래프가 도시되었으며, 뿐만 아니라 어떠한 일관성 유지 기법을 사용하지 않은 경우의 그래프도 함께 도시되어 있다.
도 5에 따르면, 시스템 성능을 비교하기 위하여 4가지 항목을 기준으로 막대 그래프가 도시되었다. 좌측부터, graph, rbtree, sps, btree, hashtable, geomean이며, 도시된 막대 그래프는 각각의 방식에 따른 버스 트랜잭션의 양을 0에서 30 사이로 표시한다.
일관성 유지 기법을 사용하지 않은 경우가 가장 낮은 크기의 버스 트랜잭션의 양을 가지는 것을 알 수 있다. 이때, 본 명세서에 따른 동작 방법을 사용한 경우의 막대 그래프가, 종래 다른 방식들을 사용한 경우의 막대 그래프보다 높이가 낮은 것을 알 수 있다. 구체적으로, 본 명세서에 따른 동작 방법을 사용한 경우의 버스 트랜잭션 양을 살펴보면, TC 방식 대비 평균 32.8%, Kiln 방식 대비 평균 14.5% 감소한 것을 확인할 수 있다.
이하, 상술한 내용들을 바탕으로 본 명세서의 바람직한 제2 실시예에 따른, 비휘발성 메모리 장치(100)에 관하여 상세히 설명하면 다음과 같다.
또한, 본 명세서의 바람직한 제2 실시예에 따른 비휘발성 메모리 장치(100)에 대한 설명 중 상술한 제1 실시예에 대한 설명과 동일하거나 중복되는 내용은 생략하고 다른 점을 중심으로 서술한다.
도 6은 본 명세서의 제2 실시예에 따른 비휘발성 메모리 장치를 나타낸 도면이다.
도 6에 따르면, 비휘발성 메모리 장치(100)는 로그 저장 영역(110), 데이터 저장 영역(120), NOR 게이트(141)를 포함할 수 있다. 이때, 로그 저장 영역(110) 및 데이터 저장 영역(120)은 복수의 메모리 셀을 의미할 수 있다.
비휘발성 메모리 장치(100)는 복수의 메모리 셀을 포함하는 복수의 메모리 뱅크(bank)를 포함할 수 있으며, 복수의 메모리 뱅크는 각각의 메모리 뱅크마다 로그 저장 영역(110)을 포함할 수 있다. 즉, 로그 저장 영역(110)은 각각의 메모리 뱅크마다 로그를 저장하기 위하여 별도로 할당된 복수의 메모리 셀을 의미할 수 있다.
플래그 비트(130)는 제1 플래그 비트 및 제2 플래그 비트를 포함할 수 있다. 즉, 플래그 비트(130)는 2개의 메모리 셀을 포함하는 개념일 수 있다. 도 6에 따르면, 플래그 비트(130)는 00으로 도시되어 있으나, 이에 한정되지 않는다. 플래그 비트(130)는 11, 10, 01, 00을 포함할 수 있으며 이에 대한 내용은 제1 실시예에 설명한 바와 동일하거나 중복되므로 생략한다.
NOR 게이트(141)는 ACK 생성부(140)를 의미할 수 있다. 즉, ACK 생성부(140)는 NOR 게이트(141)를 포함할 수 있다. 플래그 비트(130)가 NOR 게이트(141)를 통과하여 1bit의 ACK 시그널로 변환될 수 있다. 즉, ACK 생성부(140)는 플래그 비트(130)에 근거하여 1bit의 ACK 시그널을 생성할 수 있다.
도 6에 따르면, 로그 저장 영역(110)은 캐시 메모리(200)로부터 수신한 로그(log)를 저장하고, 데이터 저장 영역(120)은 캐시 메모리(200)로부터 수신한 데이터(data)를 저장할 수 있다. 또한, ACK 생성부(140)는 로그 저장 영역(110) 및 데이터 저장 영역(120)으로부터 플래그 비트(130)를 수신하고, 플래그 비트(130)에 따라 캐시 메모리(200)(또는 프로세서(300))로 ACK 시그널을 전송할 수 있다.
이때, 로그 저장 영역(110) 및 데이터 저장 영역(120)은, 캐시 메모리(200)로부터 동시에 로그 및 데이터를 수신할 수 있다.
또한, 플래그 비트(130)는, 로그 및 데이터의 저장 성공을 나타내는 제1 시그널, 로그의 저장 성공 및 데이터의 저장 실패를 나타내는 제2 시그널, 로그의 저장 실패 및 데이터의 저장 성공을 나타내는 제3 시그널, 및 로그 및 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널일 수 있다.
일 예로, 제1 시그널은 11, 제2 시그널은 10, 제3 시그널은 01, 제4 시그널은 00일 수 있다.
일 예로, 플래그 비트(130)가 제4 시그널이인 경우, ACK 생성부(140)는 제4 시그널을 수신하고, ACK 생성부(140)는 캐시 메모리(200)에 대하여 ACK 시그널을 전송할 수 있다. ACK 시그널은 제1 ACK 시그널, 제2 ACK 시그널을 포함할 수 있고, 플래그 비트(130)가 제4 시그널인 경우 ACK 생성부(140)는 제2 ACK 시그널을 전송할 수 있다. 제1 ACK 시그널, 제2 ACK 시그널에 대한 설명은 제1 실시예에서 설명한 내용과 동일하거나 중복되므로 생략한다.
이하, 상술한 내용들을 바탕으로 본 명세서의 바람직한 제3 실시예에 따른, 비휘발성 메모리 장치(100)를 포함하는 컴퓨팅 시스템에 관하여 상세히 설명하면 다음과 같다.
또한, 본 명세서의 바람직한 제3 실시예에 따른 컴퓨팅 시스템에 대한 설명 중 상술한 제1 실시예 및 제2 실시예에 대한 설명과 동일하거나 중복되는 내용은 생략하고 다른 점을 중심으로 서술한다.
도 7은 본 명세서의 제3 실시예에 따른 컴퓨팅 시스템을 나타낸 도면이며, 도 8은 본 명세서의 제3 실시예에 따라 제2 ACK 시그널을 생성하는 경우를 나타낸 도면이다.
도 7에 따르면, 컴퓨팅 시스템(10)은 프로세서(300), 캐시 메모리(200) 및 비휘발성 메모리 장치(100)를 포함할 수 있다. 비휘발성 메모리 장치(100)는 내부에 NOR 게이트(141), 즉, ACK 생성부(140)를 더 포함할 수 있다.
이때, 사용되는 비휘발성 메모리 장치(100)는 상술한 제2 실시예에 따른 비휘발성 메모리 장치(100)일 수 있으며, 그 동작 방법은 상술한 제1 실시예에 따른 동작 방법일 수 있다.
이때, 프로세서(300)는, 연산을 수행하고 다른 장치를 제어할 수 있는 구성이다. 주로, 중앙 연산 장치(CPU), 어플리케이션 프로세서(AP) 등을 의미할 수 있다. 또한, CPU 또는 AP는 그 내부에 하나 또는 그 이상의 코어들을 포함할 수 있으며, CPU 또는 AP는 작동 전압과 클락 신호를 이용하여 작동할 수 있다.
도 7에 따르면, ACK 생성부(140)로부터 생성된 ACK 시그널은 캐시 메모리(200)에 전송될 수 있다. 다만, 이는 하나의 예시이며, ACK 생성부(140)로부터 생성된 ACK 시그널은 프로세서(300)에 전송되고, 프로세서(300)는 ACK 시그널에 근거하여 캐시 메모리(200)로 로그 및 데이터의 전달 여부를 명령하는 시그널을 전송할 수 있다.
도 8에 따르면, 캐시 메모리(200)에서 로그 저장 영역(110)으로 로그가 전송되며(S001), 캐시 메모리(200)에서 데이터 저장 졍역으로 데이터가 전송될 수 있다(S002). 이 경우, 로그 저장 영역(110)에서는 로그를 저장하며, 로그 저장 결과가 성공 또는 실패일 수 있다(S002). 또한, 데이터 저장 영역(120)에서는 데이터를 저장하며, 데이터 저장 결과가 성공 또는 실패일 수 있다(S004). 다만, 도 8에 따라, 로그 저장 결과 및 데이터 저장 결과가 실패인 경우를 중심으로 이하 살펴본다.
캐시 메모리(200)는 로그 및 데이터를 전송한 후(S001, S003), 전송한 로그 및 데이터를 곧바로 삭제하지 않고 임시로 저장해둘 수 있다(S005). 이는, 추후 ACK 생성부(140)로부터 로그 및 데이터의 재전송 요청을 포함하는 ACK 시그널을 수신하는 경우를 대비하기 위함일 수 있다.
로그 저장 영역(110)은 로그의 저장이 성공 또는 실패인지를 나타내는 제1 플래그 비트를 ACK 생성부(140)로 전송하고(S006), 데이터 저장 영역(120)은 데이터의 저장이 성공 또는 실패인지를 나타내는 제2 플래그 비트를 ACK 생성부(140)로 전송할 수 있다(S007). ACK 생성부(140)는 로그 및 데이터의 저장이 모두 실패한 경우 제2 ACK 시그널을 생성하고(S008), 생성된 제2 ACK 시그널을 캐시 메모리(200)로 전송할 수 있다(S009). 캐시 메모리(200)는 제2 ACK 시그널을 수신하면 임시 저장하였던 로그 및 데이터를 재전송할 수 있다(S010, S011).
전술한 본 명세서는, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 명세서의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 명세서의 등가적 범위 내에서의 모든 변경은 본 명세서의 범위에 포함된다.
또한, 이상에서 실시 예들을 중심으로 설명하였으나 이는 단지 예시일 뿐 본 명세서를 한정하는 것이 아니며, 본 명세서가 속하는 분야의 통상의 지식을 가진 자라면 본 실시 예의 본질적인 특성을 벗어나지 않는 범위에서 이상에 예시되지 않은 여러 가지의 변형과 응용이 가능함을 알 수 있을 것이다. 예를 들어, 실시 예들에 구체적으로 나타난 각 구성 요소는 변형하여 실시할 수 있는 것이다. 그리고 이러한 변형과 응용에 관계된 차이점들은 첨부한 청구 범위에서 규정하는 본 명세서의 범위에 포함되는 것으로 해석되어야 할 것이다.
10: 컴퓨팅 시스템
100: 비휘발성 메모리 장치
110: 로그 저장 영역
120: 데이터 저장 영역
130: 플래그 비트
140: ACK 생성부
141: NOR 게이트
200: 캐시 메모리
300: 프로세서

Claims (19)

  1. 로그 저장 영역, 데이터 저장 영역 및 ACK 생성부를 포함하는 비휘발성 메모리 장치의 동작 방법에 있어서,
    비휘발성 메모리 장치가 캐시 메모리로부터 로그 및 데이터를 수신하는 단계;
    상기 비휘발성 메모리 장치가 상기 수신한 로그를 상기 로그 저장 영역에 저장하는 단계;
    상기 비휘발성 메모리 장치가 상기 수신한 데이터를 상기 데이터 저장 영역에 저장하는 단계;
    상기 로그 및 상기 데이터 각각의 저장 결과에 따라, 상기 비휘발성 메모리 장치가 상기 캐시 메모리로 ACK 시그널을 전송하는 단계;를 포함하고,
    상기 로그의 저장 성공 및 상기 데이터의 저장 실패의 경우 저장된 로그를 바탕으로 데이터를 수정하고,
    상기 로그의 저장 실패 및 상기 데이터의 저장 성공의 경우 로그만을 새로 업데이트하며,
    상기 로그 및 상기 데이터 모두의 저장 실패의 경우에만 상기 캐시 메모리에 로그 및 데이터의 재전송 요청을 상기 ACK 시그널을 통해 전송하는, 비휘발성 메모리 장치의 동작 방법.
  2. 제1항에 있어서,
    상기 로그 및 상기 데이터를 수신하는 단계는,
    상기 캐시 메모리로부터 상기 로그 및 상기 데이터를 동시에 수신하는 것인, 비휘발성 메모리 장치의 동작 방법.
  3. 제1항에 있어서,
    상기 ACK 시그널은,
    상기 로그 및 상기 데이터 중 적어도 하나의 저장 성공의 경우 상기 비휘발성 메모리 장치의 동작이 완료되었음을 나타내는 제1 ACK 시그널 또는
    상기 로그 및 상기 데이터 모두의 저장 실패의 경우 상기 캐시 메모리에 상기 로그 및 상기 데이터의 재전송을 요청하는 제2 ACK 시그널을 포함하는 것인, 비휘발성 메모리 장치의 동작 방법.
  4. 제1항에 있어서,
    상기 ACK 시그널을 전송하는 단계는,
    상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 상기 ACK 생성부로 플래그 비트를 전송하고, 상기 플래그 비트에 근거하여 상기 ACK 생성부로부터 상기 캐시 메모리로 상기 ACK 시그널을 전송하는 것인, 비휘발성 메모리 장치의 동작 방법.
  5. 제4항에 있어서,
    상기 플래그 비트는,
    상기 로그 저장 영역에서 상기 로그의 저장의 성공 또는 실패를 나타내는 제1 플래그 비트; 및
    상기 데이터 저장 영역에서 상기 데이터의 저장의 성공 또는 실패를 나타내는 제2 플래그 비트;를 포함하는 것인, 비휘발성 메모리 장치의 동작 방법.
  6. 제4항에 있어서,
    상기 플래그 비트는,
    상기 로그 및 상기 데이터의 저장 성공을 나타내는 제1 시그널, 상기 로그의 저장 성공 및 상기 데이터의 저장 실패를 나타내는 제2 시그널, 상기 로그의 저장 실패 및 상기 데이터의 저장 성공을 나타내는 제3 시그널, 및 상기 로그 및 상기 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널인 것인, 비휘발성 메모리 장치의 동작 방법.
  7. 제6항에 있어서,
    상기 ACK 시그널을 전송하는 단계는,
    상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 상기 ACK 생성부로 상기 제4 시그널이 전송되면, 상기 ACK 생성부로부터 상기 캐시 메모리로 상기 로그 및 상기 데이터를 재전송하라는 명령을 포함하는 상기 ACK 시그널을 전송하는 것인, 비휘발성 메모리 장치의 동작 방법.
  8. 삭제
  9. 캐시 메모리로부터 수신한 로그(log)를 저장하는 로그 저장 영역;
    상기 캐시 메모리로부터 수신한 데이터(data)를 저장하는 데이터 저장 영역; 및
    상기 로그 저장 영역 및 상기 데이터 저장 영역으로부터 각각 플래그 비트를 수신하고, 상기 플래그 비트에 따라 상기 캐시 메모리로 ACK 시그널을 전송하는 ACK 생성부;를 포함하고,
    상기 로그의 저장 성공 및 상기 데이터의 저장 실패의 경우 저장된 로그를 바탕으로 데이터를 수정하고,
    상기 로그의 저장 실패 및 상기 데이터의 저장 성공의 경우 로그만을 새로 업데이트하며,
    상기 로그 및 상기 데이터 모두의 저장 실패의 경우에만 상기 캐시 메모리에 로그 및 데이터의 재전송 요청을 상기 ACK 시그널을 통해 전송하는, 비휘발성 메모리 장치.
  10. 제9항에 있어서,
    상기 로그 저장 영역 및 상기 데이터 저장 영역은,
    상기 캐시 메모리로부터 동시에 상기 로그 및 상기 데이터를 수신하는 것인, 비휘발성 메모리 장치.
  11. 제9항에 있어서,
    상기 플래그 비트는,
    상기 로그 저장 영역에서 상기 로그의 저장의 성공 또는 실패를 나타내는 제1 플래그 비트; 및
    상기 데이터 저장 영역에서 상기 데이터의 저장의 성공 또는 실패를 나타내는 제2 플래그 비트;을 포함하는 것인, 비휘발성 메모리 장치.
  12. 제9항에 있어서,
    상기 플래그 비트는,
    상기 로그 및 상기 데이터의 저장 성공을 나타내는 제1 시그널, 상기 로그의 저장 성공 및 상기 데이터의 저장 실패를 나타내는 제2 시그널, 상기 로그의 저장 실패 및 상기 데이터의 저장 성공을 나타내는 제3 시그널, 및 상기 로그 및 상기 데이터의 저장 실패를 나타내는 제4 시그널 중 어느 하나의 시그널인 것인, 비휘발성 메모리 장치.
  13. 제12항에 있어서,
    상기 플래그 비트는 상기 제4 시그널이고,
    상기 ACK 생성부는 상기 제4 시그널을 수신하고,
    상기 ACK 생성부는 상기 캐시 메모리에 대하여 상기 로그를 상기 로그 저장 영역으로 재전송하고, 상기 데이터를 상기 데이터 저장 영역으로 재전송하라는 명령을 포함하는 상기 ACK 시그널을 전송하는 것인, 비휘발성 메모리 장치.
  14. 삭제
  15. 제9항에 있어서,
    상기 ACK 생성부는 NOR 게이트를 포함하는 것인, 비휘발성 메모리 장치.
  16. 제9항에 있어서,
    상기 비휘발성 메모리 장치는,
    복수의 메모리 셀을 포함하는 복수의 메모리 뱅크(bank)를 포함하고,
    상기 복수의 메모리 뱅크는,
    각각의 메모리 뱅크마다 상기 로그 저장 영역을 포함하는 것인, 비휘발성 메모리 장치.
  17. 제9항 내지 제13항, 제15항 내지 제16항 중 어느 한 항의 비휘발성 메모리 장치; 및
    상기 비휘발성 메모리 장치로 로그 및 데이터를 전송하는 캐시 메모리;를 포함하는, 컴퓨팅 시스템.
  18. 제17항에 있어서,
    상기 캐시 메모리는,
    상기 로그 및 데이터를 전송한 후, 상기 전송한 로그 및 데이터를 임시로 저장하는 것인, 컴퓨팅 시스템.
  19. 제18항에 있어서,
    상기 캐시 메모리는,
    상기 비휘발성 메모리로부터 ACK 시그널을 수신하고, 상기 ACK 시그널에 근거하여 상기 임시로 저장한 로그 및 데이터를 상기 비휘발성 메모리로 재전송하는 것인, 컴퓨팅 시스템.
KR1020200003129A 2020-01-09 2020-01-09 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법 KR102412423B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200003129A KR102412423B1 (ko) 2020-01-09 2020-01-09 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법
US17/122,255 US11294822B2 (en) 2020-01-09 2020-12-15 Non-volatile memory storage, computing system including the same and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200003129A KR102412423B1 (ko) 2020-01-09 2020-01-09 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법

Publications (3)

Publication Number Publication Date
KR20210089932A KR20210089932A (ko) 2021-07-19
KR102412423B1 true KR102412423B1 (ko) 2022-06-23
KR102412423B9 KR102412423B9 (ko) 2022-07-29

Family

ID=76761058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200003129A KR102412423B1 (ko) 2020-01-09 2020-01-09 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법

Country Status (2)

Country Link
US (1) US11294822B2 (ko)
KR (1) KR102412423B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091448A1 (en) * 2003-10-24 2005-04-28 Yoji Nakatani Storage system and file-reference method of remote-site storage system
KR100812710B1 (ko) * 2006-11-14 2008-03-12 엠텍비젼 주식회사 제어 버스를 이용한 통신 방법 및 장치
KR101541532B1 (ko) * 2014-09-17 2015-08-06 성균관대학교산학협력단 스토리지 클래스 메모리의 데이터 일관성 유지를 위한 장치 및 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9448938B2 (en) * 2010-06-09 2016-09-20 Micron Technology, Inc. Cache coherence protocol for persistent memories
CN103780361B (zh) * 2012-10-17 2018-08-17 中兴通讯股份有限公司 一种应答信息的发送方法及装置
US10102144B2 (en) * 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9355034B2 (en) * 2013-12-31 2016-05-31 Samsung Electronics Co., Ltd. Removal and optimization of coherence acknowledgement responses in an interconnect
WO2016101165A1 (zh) * 2014-12-24 2016-06-30 华为技术有限公司 事务处理的方法、装置及计算机系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091448A1 (en) * 2003-10-24 2005-04-28 Yoji Nakatani Storage system and file-reference method of remote-site storage system
KR100812710B1 (ko) * 2006-11-14 2008-03-12 엠텍비젼 주식회사 제어 버스를 이용한 통신 방법 및 장치
KR101541532B1 (ko) * 2014-09-17 2015-08-06 성균관대학교산학협력단 스토리지 클래스 메모리의 데이터 일관성 유지를 위한 장치 및 방법

Also Published As

Publication number Publication date
US20210216466A1 (en) 2021-07-15
KR102412423B9 (ko) 2022-07-29
KR20210089932A (ko) 2021-07-19
US11294822B2 (en) 2022-04-05

Similar Documents

Publication Publication Date Title
KR101014040B1 (ko) 디램 버퍼 관리 장치 및 방법
KR102374113B1 (ko) 메모리 장치의 동작 방법, 이를 이용한 메모리 장치 및 그 장치를 포함하는 메모리 시스템
US9003153B2 (en) Method of storing blocks of data in a plurality of memory devices in a redundant manner, a memory controller and a memory system
US20130036339A1 (en) Memory device
US20150212885A1 (en) Error feedback and logging with memory on-chip error checking and correcting (ecc)
US20140185620A1 (en) Packet deconstruction/reconstruction and link-control
US10541034B2 (en) Determining read voltages for a storage device
CN111078607A (zh) 面向rdma与非易失性内存的网络访问编程框架部署方法及系统
US20120030435A1 (en) Memory device, memory management device, and memory management method
KR102067040B1 (ko) 고장 방지 기능을 갖는 캐시 제어 장치 및 동작 방법
US12045516B2 (en) DRAM-less SSD with secure HMB for low latency
EP3783489B1 (en) Memory controller with high data reliability, a memory system having the same, and an operation method of the memory controller
US20170123694A1 (en) Memory controller and memory device
US20220035548A1 (en) Data storage method, electronic device, and computer program product
TWI759370B (zh) 記憶體裝置、記憶體系統及其操作方法
US8176388B1 (en) System and method for soft error scrubbing
CN109739777B (zh) 本地与分布式协同设计的可靠闪存存储方法及系统
KR102412423B1 (ko) 비휘발성 메모리 장치, 이것을 포함하는 컴퓨팅 시스템 및 이것의 동작 방법
US20110066925A1 (en) Error detection
US20210081132A1 (en) Systems and methods for strong write consistency when replicating data
US12045130B2 (en) Managing data integrity using a change in a number of data errors and an amount of time in which the change occurred
CN112181703B (zh) 支持容处理器与内存板间软错误重发机制的cam及应用方法
US11567691B2 (en) Continuous monotonic counter for memory devices
KR102028666B1 (ko) 비식별 요청을 처리하는 저장 장치 및 그것의 동작 방법
US11755407B2 (en) Multi-rate ECC parity for fast SLC read

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]