KR20230173560A - 메모리 장치 및 이의 방어 방법 - Google Patents

메모리 장치 및 이의 방어 방법 Download PDF

Info

Publication number
KR20230173560A
KR20230173560A KR1020220114831A KR20220114831A KR20230173560A KR 20230173560 A KR20230173560 A KR 20230173560A KR 1020220114831 A KR1020220114831 A KR 1020220114831A KR 20220114831 A KR20220114831 A KR 20220114831A KR 20230173560 A KR20230173560 A KR 20230173560A
Authority
KR
South Korea
Prior art keywords
defense
memory device
type
duration
refresh
Prior art date
Application number
KR1020220114831A
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 US18/191,039 priority Critical patent/US20230410875A1/en
Priority to CN202310396778.8A priority patent/CN117253515A/zh
Publication of KR20230173560A publication Critical patent/KR20230173560A/ko

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Dram (AREA)

Abstract

일 실시예 따른 메모리 장치의 방어 방법은, 공격에 의해 희생될 행을 리프레시 하는데 사용되는 복수의 방어 타입을 획득하는 단계; 상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계; 결정된 동작 시간에 기초하여 상기 복수의 방어 타입을 스위칭하여 리프레시를 수행하는 단계를 포함할 수 있다.

Description

메모리 장치 및 이의 방어 방법{MEMORY DEVICE AND DEFENSE METHOD THEREOF}
개시 내용은 메모리 장치 및 이의 방어 방법에 관한 것이다.
동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM)와 같은 휘발성 메모리 장치는 저장된 데이터를 유지하기 위하여 리프레시 동작을 필요로 한다. 로우 해머링(Row-hammering, RH) 공격은 이러한 DRAM의 리프레시 동작으로 인한 물리적 취약성을 이용한 보안 공격방법이다. 공격자는 RH 공격을 이용해 관리자권한을 획득하거나 시스템다운을 일으킬 수 있다.
이러한 RH 공격을 방어하기 위해 사용되는 방어 기법의 일 예로 타깃 로우 리프레시(Target Row Refresh, TRR)가 있다. TRR은 공격받는 워드라인의 어드레스(address)와 공격횟수를 기록하고, 기록된 정보에 기초하여 가장 취약해진 어드레스를 리프레시하는 방식이다. 그러나 이후 TRR 방어로직을 회피하여 공격하는 라운드 로빈(Round-robin) 공격 방법 등이 생겨남에 따라, TRR 설계는 RH 공격에 대한 강건성 증가와 오버헤드 감소라는 동시에 달성하기 어려운 두가지 목표를 가지게 되었고 비용대비 효과를 고려한 설계가 필요한 상황이다.
일 실시예는 RH 공격에 대한 강건성이 증대된 메모리 장치를 제공하고자 한다.
일 실시예는 최소한의 방어 회로 추가로 오버헤드를 증가시키지 않으면서 방어 성능을 증대시키고, 하위 방어까지 가능하게 하는 메모리 장치를 제공하고자 한다.
이러한 기술적 과제를 해결하기 위한 일 실시예에 따른 메모리 장치의 방어 방법은 공격에 의해 희생될 행을 리프레시 하는데 사용되는 복수의 방어 타입을 획득하는 단계; 상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계; 결정된 동작 시간에 기초하여 상기 복수의 방어 타입을 스위칭하여 리프레시를 수행하는 단계를 포함할 수 있다.
상기 동작 시간은 상기 메모리 장치의 타깃 로우 리프레시(target row refresh)의 주기의 정수배일 수 있다.
상기 리프레시를 수행하는 단계는, 리프레시 파라미터를 변경함으로써 상기 복수의 방어 타입을 스위칭하는 단계를 포함할 수 있다.
상기 리프레시를 수행하는 단계는, 제1 시구간에서 상기 결정된 동작 시간에 기초하여 순서대로 상기 복수의 방어 타입을 스위칭하는 단계; 및 상기 제1 시구간에 후속하는 제2 시구간에서 상기 제1 시구간에서와 동일한 순서로 상기 복수의 방어 타입을 스위칭하는 단계를 포함할 수 있다.
상기 리프레시를 수행하는 단계는, 제1 시구간에서 상기 결정된 동작 시간에 기초하여 순서대로 상기 복수의 방어 타입을 스위칭하는 단계; 및 상기 제1 시구간에 후속하는 제2 시구간에서 상기 제1 시구간에서와 상이한 순서로 상기 복수의 방어 타입을 스위칭하는 단계를 포함할 수 있다.
상기 복수의 방어 타입 각각의 동작 시간은 동일할 수 있다.
상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계는, 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계를 포함할 수 있다.
상기 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계는, 상기 공격 커맨드 시퀀스의 지속 시간보다 짧게 상기 동작 시간을 결정하는 단계를 포함할 수 있다.
상기 복수의 방어 타입 각각의 동작 시간은 상이할 수 있다.
상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계는, 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계를 포함할 수 있다.
상기 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계는, 상기 공격 커맨드 시퀀스의 지속 시간보다 짧게 상기 동작 시간을 결정하는 단계를 포함할 수 있다.
상기 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계는, 상기 공격 커맨드 시퀀스의 지속 시간에 비례하게 상기 동작 시간을 결정하는 단계를 포함할 수 있다.
상기 복수의 방어 타입을 획득하는 단계는, 동일한 로우 어드레스의 비트 플립(bit-flip)을 방어하기 위한 적어도 두 개의 방어 타입이 있는 경우, 상기 적어도 두 개의 방어 타입 중 하나의 방어 타입을 획득하는 단계를 포함할 수 있다.
상기 적어도 두 개의 방어 타입 중 하나의 방어 타입을 획득하는 단계는, 상기 적어도 두 개의 방어 타입 중 지속 시간이 가장 짧은 방어 타입을 획득하는 단계를 포함할 수 있다.
일 실시예에 따른 메모리 장치의 방어 방법은, 제1 공격 커맨드 시퀀스를 방어하기 위한 제1 방어 타입을 사용하여 리프레시를 수행하는 단계; 및 제2 공격 커맨드 시퀀스를 방어하기 위한 제2 방어 타입을 사용하여 리프레시를 수행하는 단계를 포함할 수 있다.
상기 제1 공격 커맨드 시퀀스는 제1 지속 시간 동안 지속되고, 상기 제2 공격 커맨드 시퀀스는 제2 지속 시간 동안 지속되고, 상기 제1 방어 타입을 사용하여 리프레시를 수행하는 단계는, 상기 제1 지속 시간 및 상기 제2 지속 시간보다 짧은 제3 지속 시간 동안 상기 제1 방어 타입을 사용하는 단계를 포함하고, 상기 제2 방어 타입을 사용하여 리프레시를 수행하는 단계는, 상기 제1 지속 시간 및 상기 제2 지속 시간보다 짧은 제4 지속 시간 동안 상기 제2 방어 타입을 사용하는 단계를 포함할 수 있다.
상기 제3 지속 시간과 상기 제4 지속 시간은 동일할 수 있다.
상기 제3 지속 시간과 상기 제4 지속 시간은 상이할 수 있다.
상기 제3 지속 시간은 상기 제1 지속 시간에 비례하고, 상기 제4 지속 시간은 상기 제2 지속 시간에 비례할 수 있다.
일 실시예에 따른 메모리 장치는 메모리 셀 어레이; 및 복수의 방어 타입을 획득하고, 상기 복수의 방어 타입 각각의 동작 시간을 결정하고, 결정된 동작 시간에 기초하여 상기 복수의 방어 타입을 스위칭하여 상기 메모리 셀 어레이에 리프레시를 수행하는 방어 회로를 포함할 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 개략적인 블록도이다.
도 2는 일 실시예에 따른 도 1의 메모리 장치의 개략적인 블록도이다.
도 3은 일 실시예에 따른 방어 회로가 관리하는 워드라인 테이블을 나타낸다.
도 4는 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 5는 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 6은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 7은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 8은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 9는 종래 메모리 장치의 방어 능력을 설명하기 위한 그래프이다.
도 10은 일 실시예에 따른 메모리 장치의 방어 능력을 설명하기 위한 그래프이다.
도 11은 일 실시예에 따른 메모리 장치의 방어 방법을 설명하기 위한 순서도이다.
도 12는 일 실시예에 따른 메모리 장치의 방어 방법을 설명하기 위한 순서도이다.
도 13은 일 실시예에 따른 컴퓨터 시스템의 개략적인 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 도면을 참고하여 설명한 흐름도에서, 동작 순서는 변경될 수 있고, 여러 동작들이 병합되거나, 어느 동작이 분할될 수 있고, 특정 동작은 수행되지 않을 수 있다.
또한, 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다. 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소를 설명하는데 사용될 수 있지만, 구성요소는 이러한 용어에 의해 한정되지는 않는다. 이들 용어는 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로 사용될 수 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 시스템의 개략적인 블록도이다.
도 1을 참조하면, 메모리 시스템(memory system; 10)은 메모리 컨트롤러(memory controller; 100) 및 메모리 장치(memory device; 200)를 포함할 수 있다.
메모리 컨트롤러(100)는 메모리 시스템(10)의 동작을 전반적으로 제어할 수 있다. 메모리 컨트롤러(100)는 클럭 신호(CLK), 커맨드(CMD), 및 어드레스(ADDR)를 사용하여 메모리 장치(200)에 데이터(DQ)를 기입하거나 메모리 장치(200)로부터 데이터(DQ)를 독출할 수 있다. 예를 들어, 메모리 컨트롤러(100)와 메모리 장치(200)는 개별 핀(pin) 및 개별 전송선을 사용하여 연결되어 클럭 신호(CLK), 커맨드(CMD), 어드레스(ADDR), 또는 데이터(DQ)를 교환할 수 있다.
메모리 컨트롤러(100)는 호스트(host; 20)의 명령에 응답하여 메모리 장치(200)를 제어할 수 있다. 호스트(20)는 PCIe(Peripheral Component Interconnect express), ATA(Advanced Technology Attachment), SATA(Serial ATA), PATA(Parallel ATA), 또는 SAS(Serial Attached SCSI)와 같은 인터페이스 프로토콜을 사용하여 메모리 컨트롤러(100)와 통신할 수 있다. 또한, 호스트(20)와 메모리 컨트롤러(100) 간의 인터페이스 프로토콜들은 상술한 예에 한정되지 않으며, USB(Universal Serial Bus), MMC(Multi-Media Card), ESDI(Enhanced Small Disk Interface), 또는 IDE(Integrated Drive Electronics) 등과 같은 다른 인터페이스 프로토콜들 중 하나로 구현될 수도 있다.
메모리 장치(200)는 DDR SDRAM(Double Data Rate Synchronous Dynamic Random Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, LPDDR(Low Power DDR), RDRAM(Rambus Dynamic Random Access Memory) 등과 같은 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM)일 수 있다.
메모리 장치(200)는 커맨드(CMD)를 통한 공격을 방어하기 위한 방어 회로를 포함할 수 있다. 방어 회로는 시간대별로 상이한 방어 타입으로 동작할 수 있다. 방어 타입은 공격에 의해 희생될 행을 리프레시 하는데 사용되는 방어 방법의 타입을 의미할 수 있다. 예를 들어, 방어 타입이 S개인 경우(여기서, S는 1보다 큰 정수), 방어 회로가 조합할 수 있는 방어 타입의 조합 수는 (S-1)!개일 수 있다.
일 예로, 방어 회로는 제1 공격을 막기 위한 제1 방어 타입 및 제2 공격을 막기 위한 제2 방어 타입으로 동작할 수 있다. 제1 공격은 제1 시간 길이 동안 지속되고, 제2 공격은 제2 시간 길이 동안 지속되며, 제1 시간 길이는 제2 시간 길이보다 짧을 수 있다. 방어 회로는 제1 시구간에서 제1 방어 타입으로, 제2 시구간에서 제2 방어 타입으로 동작할 수 있다.
일 실시예에서, 방어 회로는 미리 결정된 주기로 방어 타입을 스위칭할 수 있다. 즉, 상술한 예에서, 제1 시구간의 길이와 제2 시구간의 길이는 동일할 수 있다. 방어 회로는 각각의 방어 타입이 막기 위한 공격의 시간 길이에 기초하여 각 방어 타입 변경 주기를 결정할 수 있다. 방어 회로는 제1 시간 길이보다 짧게 방어 타입 변경 주기를 결정할 수 있다. 방어 타입 변경 주기는 리프레시 주기의 정수배일 수 있다. 리프레시 주기는 타깃 로우 리프레시(Target Row Refresh, TRR)의 주기를 의미할 수 있다. 대안적으로, 방어 타입 변경 주기는 클록 신호 주기의 정수배일 수 있다.
일 실시예에서, 방어 회로는 방어 타입마다 상이한 동작 시간을 할당할 수 있다. 즉, 상술한 예에서, 제1 시구간의 길이와 제2 시구간의 길이는 상이할 수 있다. 방어 회로는 각각의 방어 타입이 막기 위한 공격의 시간 길이에 비례하여 방어 타입 동작 시간을 결정할 수 있다. 또한, 방어 회로는 제1 시구간의 길이와 제2 시구간의 길이 각각이 제1 시간 길이를 초과하지 않도록 방어 타입 동작 시간을 결정할 수 있다. 방어 타입 동작 시간은 리프레시 주기의 정수배일 수 있다. 대안적으로, 방어 타입 동작 시간은 클록 신호 주기의 정수배일 수 있다.
방어 회로는 파라미터(parameter)를 변경시킴으로써 방어 타입을 스위칭할 수 있다. 파라미터는 리프레시와 연관된 파라미터로서, 퇴출(eviction) 단계에서 어드레스 카운터(address counter)의 리셋(reset) 여부, 퇴출 단계에서 퇴출할 어드레스를 결정하는 로직(logic), 일반 리프레시와 타깃 로우 리프레시(TRR)의 비율, 타깃 로우 리프레시(TRR) 테이블에 버퍼 추가 여부, 의사 난수(pseudo random) 사용 여부 등을 포함할 수 있다.
퇴출 단계는 타깃 로우 리프레시(TRR) 테이블에서의 어드레스 값 또는 카운터 값 중 적어도 하나를 리셋하는 단계를 의미할 수 있다. 일반 리프레시는 메모리 장치(200)에서 보존성(retention)을 위한 리프레시를 의미할 수 있다. 타깃 로우 리프레시(TRR) 테이블의 버퍼는 테이블에서 일부 영역을 버퍼로 설정한 것이며, 버퍼는 퇴출된 어드레스 값 또는 카운터 값 중 적어도 하나를 저장할 수 있다. 방어 회로는 방어 타입에 따라 버퍼에 저장된 데이터를 리셋할 수 있다. 또한, 의사 난수를 사용하는 경우 방어 회로는 무작위성(randomness)을 가지고 타깃 로우 리프레시(TRR) 테이블을 생성할 수 있다.
방어 회로는 적어도 하나의 파라미터를 사용하여 방어 타입을 결정할 수 있다. 예를 들어, 방어 타입을 결정하는 제1 파라미터, 제2 파라미터, 및 제3 파라미터가 있을 수 있다. 방어 회로는 제1 파라미터, 제2 파라미터, 및 제3 파라미터 중 적어도 하나를 사용하여 방어 타입을 결정할 수 있다.
즉, 메모리 장치(200)는 복수의 방어 타입으로 동작하게 되므로, 공격에 대한 강건성이 증대되고, 최소한의 방어 회로 추가로 오버헤드를 증가시키지 않으면서 방어 성능을 증대시키고, 하위 방어까지 가능하게 할 수 있다.
도 2는 일 실시예에 따른 도 1의 메모리 장치의 개략적인 블록도이고, 도 3은 일 실시예에 따른 방어 회로가 관리하는 워드라인 테이블을 나타낸다.
도 2를 참조하면, 메모리 장치(200)는 제어 로직(control logic; 210), 어드레스 레지스터(address register; 220), 방어 회로(defense circuit; 230), 뱅크 제어 로직(bank control logic; 240), 복수의 로우 디코더(row decoder; 250), 복수의 컬럼 디코더(column decoder; 260), 입출력 게이팅 회로(input/output gating circuit; 270), 데이터 입출력 버퍼(data input/output buffer; 280), 복수의 메모리 셀 어레이(memory cell array; 290), 및 복수의 센스 증폭기(sense amplifier; 295)를 포함할 수 있다.
제어 로직(210)은 메모리 장치(200)의 동작을 제어할 수 있다. 예를 들어, 제어 로직(210)은 메모리 장치(200)에 기입 동작, 소거 동작, 독출 동작, 리프레시 동작 등이 수행되도록 내부 신호를 생성할 수 있다.
제어 로직(210)은 커맨드 디코더(command decoder; 215)를 포함할 수 있다. 커맨드 디코더(215)는 메모리 컨트롤러(100)로부터 수신한 커맨드(CMD)를 디코딩하고 메모리 장치(200)가 커맨드(CMD)에 따라 동작하도록 내부 신호를 생성할 수 있다. 커맨드(CMD)는 기입 이네이블 신호(WEB), 로우 어드레스 스트로브 신호(RASB), 컬럼 어드레스 스트로브 신호(CASB), 칩 선택 신호(CSB), 클럭 이네이블 신호(CKE) 등을 포함할 수 있다. 내부 신호는 액티브 신호, 프리차지 신호, 리프레시 신호, 기입 신호, 소거 신호, 독출 신호 등을 포함할 수 있다.
어드레스 레지스터(220)는 메모리 컨트롤러(100)로부터 어드레스(ADDR)를 수신할 수 있다. 어드레스(ADDR)는 뱅크 어드레스(BANK_ADDR), 로우 어드레스(ROW_ADDR), 및 컬럼 어드레스(COL_ADDR)를 포함할 수 있다. 어드레스 레지스터(220)는 로우 어드레스(ROW_ADDR)를 방어 회로(230) 및 복수의 로우 디코더(250)에 제공하고, 뱅크 어드레스(BANK_ADDR)를 방어 회로(230) 및 뱅크 제어 로직(240)에 제공하며, 컬럼 어드레스(COL_ADDR)를 복수의 컬럼 디코더(260)에 제공할 수 있다.
도 2에서는 제어 로직(210)과 어드레스 레지스터(220)가 별개의 구성 요소인 것으로 도시되어 있으나, 반드시 이에 한정되는 것은 아니고, 제어 로직(210)과 어드레스 레지스터(220)는 불가분적인 하나의 구성 요소로 구현될 수도 있다.
방어 회로(230)는 메모리 셀 어레이(290)에서 자주 액세스되는 워드라인을 테이블(1000)에 저장하고 관리할 수 있다. 예를 들어, 방어 회로(230)는 액세스 횟수가 임계값 이상인 워드라인을 테이블(1000)에 저장할 수 있다. 방어 회로(230)는 뱅크 별로 테이블(1000)을 관리할 수 있다. 방어 회로(230)는 뱅크 어드레스(BANK_ADDR) 및 로우 어드레스(ROW_ADDR) 중 적어도 하나에 기초하여 테이블(1000)을 생성할 수 있다.
메모리 컨트롤러(100)는 호스트(20)로부터의 명령에 따라 랜덤하게 메모리 장치(200)의 어드레스에 액세스하며, 종종 특정 어드레스에 집중적으로 액세스할 수 있다. 특정 워드라인이 집중적으로 액세스되는 경우, 해당 워드라인의 활성화 상태의 전압으로 인해 인접한 워드라인의 메모리 셀에 저장된 데이터가 변경될 수 있다. 테이블(1000)은 액세스 횟수가 가장 많은 워드라인과 해당 워드라인의 액세스 횟수(access count)를 포함할 수 있다. 테이블(1000)은 액세스 횟수를 내림차순으로 워드라인을 관리할 수 있다.
도 3을 참조하면, 테이블(1000)은 제1 메모리 셀 어레이(290_1)에서 액세스가 많이 일어난 워드라인들과, 워드라인들의 액세스 횟수를 관리한다. 제1 메모리 셀 어레이(290_1)에서 462번 워드라인이 500번 액세스되었고, 3번 워드라인이 448번 액세스되었고, 9번 워드라인이 411번 액세스되었고, 50번 워드라인이 357번 액세스되었고, 1032번 워드라인이 271번 액세스되었을 수 있다.
방어 회로(230)는 방어 타입에서 정의하는 리프레시 정책에 따라 테이블(1000)에 기초하여 리프레시 어드레스(REF_ADDR)를 생성할 수 있다. 예를 들어, 방어 회로(230)는 테이블(1000)에서 관리하는 워드라인의 인접 워드라인을 리프레시 어드레스(REF_ADDR)로서 출력할 수 있다. 워드라인의 상부 x개의 워드라인 및/또는 하부 y개의 워드라인을 그 워드라인의 인접 워드라인이라고 할 수 있다. 여기서, x와 y는 1 이상의 정수이며, 실시예에 따라 x와 y는 서로 동일하거나 다를 수 있다.
방어 회로(230)가 리프레시 어드레스(REF_ADDR)를 복수의 로우 디코더(250)에 출력하면, 메모리 장치(200)는 리프레시 어드레스(REF_ADDR)에 기초하여 리프레시를 수행할 수 있다. 메모리 장치(200)가 리프레시를 수행하면, 방어 회로(230)는 리프레시된 워드라인의 기준이 되는 워드라인(예를 들어, 도 3의 462번 워드라인)의 액세스 횟수를 리셋할 수 있다. 방어 회로(230)는 리프레시되어 액세스 횟수가 리셋된 워드라인을 테이블(1000)에서 제거할 수 있다.
방어 회로(230)는 시간대별로 상이한 방어 타입으로 동작할 수 있다. 예를 들어, 방어 타입이 S개인 경우(여기서, S는 1보다 큰 정수), 방어 회로가 조합할 수 있는 방어 타입의 조합 수는 (S-1)!개일 수 있다. 상이한 방어 타입은 상이한 공격을 막기 위해 설계된 로직일 수 있다. 예를 들어, 제1 방어 타입은 제1 공격을 막기 위한 로직이고, 제2 방어 타입은 제2 공격을 막기 위한 로직일 수 있다.
방어 회로(230)는 복수의 파라미터 중 적어도 하나를 사용하여 방어 타입을 결정할 수 있다. 예를 들어, 파라미터는 퇴출 단계에서 어드레스 카운터의 리셋 여부, 퇴출 단계에서 퇴출할 어드레스를 결정하는 로직, 일반 리프레시와 타깃 로우 리프레시(TRR)의 비율, 타깃 로우 리프레시(TRR) 테이블에 버퍼 추가 여부, 의사 난수 사용 여부 등을 포함할 수 있다.
방어 회로(230)는 파라미터를 변경함으로써 방어 타입을 스위칭할 수 있다. 방어 회로(230)는 클럭 신호(CLK)를 사용하여 시구간별로 상이한 방어 타입을 사용할 수 있다.
일 실시예에서, 방어 회로(230)는 방어 타입 변경 주기를 결정하고, 방어 타입 변경 주기에 기초하여 방어 타입을 스위칭할 수 있다. 방어 회로(230)는 공격들 중에서 가장 짧은 지속 시간을 초과하지 않도록 방어 타입 변경 주기를 결정할 수 있다. 방어 타입 변경 주기는 메모리 장치(200)의 레프레시 주기의 정수배일 수 있다. 대안적으로, 방어 타입 변경 주기는 클록 신호 주기의 정수배일 수 있다.
일 실시예에서, 방어 회로(230)는 방어 타입마다 상이한 동작 시간을 할당할 수 있다. 방어 회로는 각각의 방어 타입이 막기 위한 공격의 시간 길이에 비례하여 방어 타입 동작 시간을 결정할 수 있다. 이때, 방어 회로는 공격들 중에서 가장 짧은 지속 시간을 초과하지 않도록 방어 타입 동작 시간을 결정할 수 있다. 방어 타입 동작 시간은 메모리 장치(200)의 레프레시 주기의 정수배일 수 있다. 대안적으로, 방어 타입 동작 시간은 클록 신호 주기의 정수배일 수 있다.
뱅크 제어 로직(240)은 뱅크 어드레스(BANK_ADDR)에 응답하여 뱅크 제어 신호를 생성하여 복수의 로우 디코더(250) 및 복수의 컬럼 디코더(260)에 출력할 수 있다. 복수의 로우 디코더(250)는 제1 내지 제n 로우 디코더(250_1~250_n)를 포함할 수 있다(n은 1보다 큰 정수). 복수의 컬럼 디코더(260)는 제1 내지 제n 컬럼 디코더(260_1~260_n)를 포함할 수 있다(n은 1보다 큰 정수). 뱅크 제어 신호에 응답하여, 제1 내지 제n 로우 디코더(250_1~250_n) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 로우 디코더가 활성화되고, 제1 내지 제n 컬럼 디코더(260_1~260_n) 중 뱅크 어드레스(BANK_ADDR)에 상응하는 컬럼 디코더가 활성화될 수 있다.
복수의 메모리 셀 어레이(290)는 제1 내지 제n 메모리 셀 어레이(290_1~290_n)를 포함할 수 있다(n은 1보다 큰 정수). 즉, 복수의 메모리 셀 어레이(290)의 수는 복수의 로우 디코더(250)의 수 및 복수의 컬럼 디코더(260)의 수와 동일할 수 있다. 예를 들어, n은 8, 16, 32 등으로 구현될 수 있다.
제1 내지 제n 로우 디코더(250_1~250_n)는 제1 내지 제n 메모리 셀 어레이(290_1~290_n)에 각각 연결될 수 있다. 제1 내지 제n 컬럼 디코더(260_1~260_n)는 제1 내지 제n 메모리 셀 어레이(290_1~290_n)에 각각 연결될 수 있다. 또한, 복수의 센스 증폭기(295)는 제1 내지 제n 메모리 셀 어레이(290_1~290_n)에 각각 연결된 제1 내지 제n 센스 증폭기(295_1~295_n)를 포함할 수 있다.
제1 내지 제n 로우 디코더(250_1~250_n), 제1 내지 제n 컬럼 디코더(260_1~260_n), 제1 내지 제n 센스 증폭기(295_1~295_n), 및 제1 내지 제n 메모리 셀 어레이(290_1~290_n)는 각각 제1 내지 제n 뱅크를 구성할 수 있다. 제1 내지 제n 메모리 셀 어레이(290_1~290_n) 각각은 복수의 워드라인과, 복수의 비트라인, 그리고 워드라인과 비트라인이 교차하는 지점에 형성되는 복수의 메모리 셀을 포함할 수 있다. 각 메모리 셀은 DRAM 셀 구조를 가질 수 있다. 메모리 셀이 연결되는 워드라인을 로우라고 정하고, 메모리 셀이 연결되는 비트라인을 칼럼이라고 정할 수 있다.
제1 내지 제n 로우 디코더(250_1~250_n) 중 뱅크 제어 로직(240)에 의해 활성화된 로우 디코더는 어드레스 레지스터(220)로부터 출력된 로우 어드레스(ROW_ADDR)와, 리프레시 컨트롤러(240)로부터 출력된 리프레시 어드레스(REF_ADDR) 중 어느 하나를 선택하여 디코딩할 수 있다. 제1 내지 제n 로우 디코더(250_1~250_n) 각각은 로우 어드레스(ROW_ADDR)와 리프레시 어드레스(REF_ADDR) 중 어느 하나를 선택하기 위한 멀티플렉서(multiplexer, MUX)를 포함할 수 있다. 활성화된 로우 디코더는 디코딩된 어드레스에 상응하는 워드 라인을 활성화할 수 있다. 예를 들어, 활성화된 로우 디코더는 디코딩된 어드레스에 상응하는 워드 라인에 워드 라인 구동 전압을 인가할 수 있다.
복수의 컬럼 디코더(260)는 입출력 게이팅 회로(270)를 통해 센스 증폭기(295)를 활성화시킬 수 있다. 예를 들어, 제1 내지 제n 컬럼 디코더(260_1~260_n) 중 뱅크 제어 로직(240)에 의해 활성화된 컬럼 디코더는 입출력 게이팅 회로(270)를 통하여 제1 내지 제n 센스 증폭기(295_1~295_n) 중 뱅크 어드레스(BANK_ADDR) 및 컬럼 어드레스(COL_ADDR)에 상응하는 센스 증폭기를 활성화시킬 수 있다. 복수의 컬럼 디코더(260)는 컬럼 어드레스(COL_ADDR)를 일시적으로 저장하는 컬럼 어드레스 래치를 포함할 수 있다.
입출력 게이팅 회로(270)는 입출력 데이터를 게이팅하는 회로, 입력 데이터 마스크 로직, 메모리 셀 어레이(290)로부터 출력된 데이터를 저장하기 위한 독출 데이터 래치, 및 메모리 셀 어레이(290)에 데이터를 기입하기 위한 기입 드라이버를 포함할 수 있다.
제1 내지 제n 메모리 셀 어레이(290_1~290_n) 중 하나의 메모리 셀 어레이에서 독출된 데이터(DQ)는 메모리 셀 어레이에 상응하는 센스 증폭기에 의해 감지되고, 독출 데이터 래치에 저장될 수 있다. 독출 데이터 래치에 저장된 데이터(DQ)는 데이터 입출력 버퍼(280)를 통하여 메모리 컨트롤러(100)에 제공될 수 있다. 또한, 제1 내지 제n 메모리 셀 어레이(290_1~290_n) 중 하나의 메모리 셀 어레이에 기입될 데이터(DQ)는 메모리 컨트롤러(100)로부터 데이터 입출력 버퍼(280)에 제공될 수 있다. 데이터 입출력 버퍼(280)에 제공된 데이터(DQ)는 기입 드라이버들을 통하여 하나의 메모리 셀 어레이에 기입될 수 있다.
도 4는 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 4를 참조하면, 일 실시예에 따른 메모리 장치(200)는 주기(TREF)로 리프레시를 수행할 수 있다. 주기(TREF)는 타깃 로우 리프레시(TRR)가 수행되는 주기일 수 있다. 메모리 장치(200)는 시구간(TDT1)에서 제1 방어 타입으로 동작하고, 시구간(TDT2)에서 제2 방어 타입으로 동작할 수 있다. 시구간(TDT1)과 시구간(TDT2)은 각각 주기(TREF)의 정수배일 수 있다. 대안적으로, 시구간(TDT1)과 시구간(TDT2)은 클록 신호(CLK)의 주기의 정수배일 수도 있다. 시구간(TDT1)과 시구간(TDT2)은 시간 길이가 상이할 수 있다. 메모리 장치(200)는 제1 파라미터 세트를 사용하여 제1 방어 타입으로 동작하고, 제2 파라미터 세트를 사용하여 제2 방어 타입으로 동작할 수 있다. 제1 파라미터 세트와 제2 파라미터 세트는 상이할 수 있다.
메모리 장치(200)의 방어 회로(230)는 시구간(TDT1)에서 제1 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하고, 시구간(TDT2)에서 제2 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력할 수 있다.
메모리 장치(200)는 메모리 컨트롤러(100)로부터 임의의 시점부터 제1 커맨드 시퀀스(command sequence)와 제2 커맨드 시퀀스를 수신할 수 있다. 제1 커맨드 시퀀스는 시구간(TCMD1) 동안 지속되고, 제2 커맨드 시퀀스는 시구간(TCMD2) 동안 지속될 수 있다. 제1 커맨드 시퀀스와 제2 커맨드 시퀀스는 적어도 하나의 공격자로부터 수신하는 상이한 유형의 공격 커맨드일 수 있다. 제1 방어 타입은 제2 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제1 커맨드 시퀀스를 방어하기 위한 로직일 수 있다. 도 4에서 제1 방어 타입의 지속 시간인 TDT1은 제1 커맨드 시퀀스의 지속 시간인 TCMD1 보다 길 수 있다.
즉, 메모리 장치(200)가 제1 커맨드 시퀀스를 수신하는 시구간(TCMD1) 동안 동작하는 제1 방어 타입은 제1 커맨드 시퀀스를 방어하지 못하므로, 시점(t_atk)에서 공격자의 공격이 성공할 수 있다. 이에, 메모리 장치(200)는 다양한 공격을 방어하기 위해 복수의 방어 타입의 조합을 변경하거나, 복수의 방어 타입의 스위칭 시간을 변경할 수 있다.
도 5는 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 5를 참조하면, 일 실시예에 따른 메모리 장치(200)는 주기(TREF)로 리프레시를 수행할 수 있다. 주기(TREF)는 타깃 로우 리프레시(TRR)가 수행되는 주기일 수 있다. 메모리 장치(200)는 제1 방어 타입 및 제2 방어 타입을 조합하여 공격을 방어할 수 있다. 예를 들어, 메모리 장치(200)는 시구간(TDT3) 동안 제1 방어 타입으로 동작하고, 시구간(TDT4) 동안 제2 방어 타입으로 동작할 수 있다. 시구간(TDT3)과 시구간(TDT4)은 각각 주기(TREF)의 정수배일 수 있다. 대안적으로, 시구간(TDT3)과 시구간(TDT4)은 클록 신호(CLK)의 주기의 정수배일 수도 있다. 시구간(TDT3)과 시구간(TDT4)은 시간 길이가 동일할 수 있다. 메모리 장치(200)는 제1 파라미터 세트를 사용하여 제1 방어 타입으로 동작하고, 제2 파라미터 세트를 사용하여 제2 방어 타입으로 동작할 수 있다. 제1 파라미터 세트와 제2 파라미터 세트는 상이할 수 있다.
메모리 장치(200)의 방어 회로(230)는 시구간(TDT3)에서 제1 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하고, 시구간(TDT4)에서 제2 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력할 수 있다.
메모리 장치(200)는 메모리 컨트롤러(100)로부터 임의의 시점부터 제1 커맨드 시퀀스와 제2 커맨드 시퀀스를 수신할 수 있다. 제1 커맨드 시퀀스는 시구간(TCMD1) 동안 지속되고, 제2 커맨드 시퀀스는 시구간(TCMD2) 동안 지속될 수 있다. 제1 커맨드 시퀀스와 제2 커맨드 시퀀스는 적어도 하나의 공격자로부터 수신하는 상이한 유형의 공격 커맨드일 수 있다. 제1 방어 타입은 제2 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제1 커맨드 시퀀스를 방어하기 위한 로직일 수 있다. 도 5에서 제1 방어 타입의 지속 시간인 TDT3은 제1 커맨드 시퀀스의 지속 시간인 TCMD1 보다 짧을 수 있다.
즉, 메모리 장치(200)가 제1 커맨드 시퀀스를 수신하는 시구간(TCMD1) 동안 방어 회로(230)는 제1 방어 타입에서 제2 방어 타입으로 변경할 수 있다. 방어 회로(230)가 제2 방어 타입으로 리프레시를 수행함으로써 제1 커맨드 시퀀스에 의한 공격을 방어할 수 있다.
방어 회로(230)는 시구간(TDT3)에서 제1 방어 타입으로 동작하고, 시구간(TDT4)에서 제2 방어 타입으로 동작한 후에, 시구간(TDT5)에서 제1 방어 타입으로 동작할 수 있다. 시구간(TDT3), 시구간(TDT4), 및 시구간(TDT5)은 시간 길이가 동일할 수 있다. 즉, 메모리 장치(200)가 제2 커맨드 시퀀스를 수신하는 시구간(TCMD2) 동안 방어 회로(230)는 제2 방어 타입에서 제1 방어 타입으로 변경할 수 있다. 방어 회로(230)가 제1 방어 타입으로 리프레시를 수행함으로써 제2 커맨드 시퀀스에 의한 공격을 방어할 수 있다. 방어 회로(230)는 방어 타입을 스위칭함으로써 공격에 대한 강건성을 증대시킬 수 있다.
도 5에서는 메모리 장치(200)가 제1 방어 타입 및 제2 방어 타입으로 동작하는 것으로 설명하였으나, 반드시 이에 한정되는 것은 아니고, 세 개 이상의 방어 타입을 조합하여 동작하는 것으로 구현될 수 있다.
또한, 도 5의 시구간에서 메모리 장치(200)는 제1 커맨드 시퀀스 및 제2 커맨드 시퀀스를 수신하는 것으로 도시하였으나, 반드시 이에 한정되는 것은 아니고, 세 개 이상의 커맨드 시퀀스를 수신하는 것으로 구현될 수 있다.
도 6은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 6을 참조하면, 일 실시예에 따른 메모리 장치(200)는 주기(TREF)로 리프레시를 수행할 수 있다. 주기(TREF)는 타깃 로우 리프레시(TRR)가 수행되는 주기일 수 있다. 메모리 장치(200)는 제1 방어 타입 및 제2 방어 타입을 조합하여 공격을 방어할 수 있다. 예를 들어, 메모리 장치(200)는 시구간(TDT6) 동안 제1 방어 타입으로 동작하고, 시구간(TDT7) 동안 제2 방어 타입으로 동작할 수 있다. 시구간(TDT6)과 시구간(TDT7)은 각각 주기(TREF)의 정수배일 수 있다. 대안적으로, 시구간(TDT6)과 시구간(TDT7)은 클록 신호(CLK)의 주기의 정수배일 수도 있다. 시구간(TDT6)과 시구간(TDT7)은 시간 길이가 상이할 수 있다. 메모리 장치(200)는 제1 파라미터 세트를 사용하여 제1 방어 타입으로 동작하고, 제2 파라미터 세트를 사용하여 제2 방어 타입으로 동작할 수 있다. 제1 파라미터 세트와 제2 파라미터 세트는 상이할 수 있다.
메모리 장치(200)의 방어 회로(230)는 시구간(TDT6)에서 제1 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하고, 시구간(TDT7)에서 제2 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력할 수 있다.
메모리 장치(200)는 메모리 컨트롤러(100)로부터 임의의 시점부터 제1 커맨드 시퀀스와 제2 커맨드 시퀀스를 수신할 수 있다. 제1 커맨드 시퀀스는 시구간(TCMD1) 동안 지속되고, 제2 커맨드 시퀀스는 시구간(TCMD2) 동안 지속될 수 있다. 제1 커맨드 시퀀스와 제2 커맨드 시퀀스는 적어도 하나의 공격자로부터 수신하는 상이한 유형의 공격 커맨드일 수 있다. 제1 방어 타입은 제2 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제1 커맨드 시퀀스를 방어하기 위한 로직일 수 있다.
방어 회로(230)는 각 방어 타입의 지속 시간이 커맨드 시퀀스의 지속 시간을 초과하지 않도록 각 방어 타입의 지속 시간을 결정할 수 있다. 예를 들어, 방어 회로(230)는 수신될 것으로 예상되는 가장 짧은 공격 커맨드 시퀀스의 지속 시간을 결정할 수 있다. 방어 회로(230)는 상기 가장 짧은 공격 커맨드 시퀀스의 지속 시간을 초과하지 않는 범위 내에서 각 방어 타입의 지속 시간을 결정할 수 있다.
이때, 방어 회로(230)는 각 방어 타입이 막기 위한 공격의 시간 길이에 비례하여 방어 타입의 지속 시간을 결정할 수 있다. 예를 들어, 제1 커맨드 시퀀스의 지속 시간이 제2 커맨드 시퀀스의 지속 시간보다 짧은 경우, 방어 회로(230)는 제1 커맨드 시퀀스를 방어하기 위한 제2 방어 타입의 지속 시간을 제2 커맨드 시퀀스를 방어하기 위한 제1 방어 타입의 지속 시간보다 짧게 할 수 있다.
즉, 메모리 장치(200)가 제1 커맨드 시퀀스를 수신하는 시구간(TCMD1) 동안 방어 회로(230)는 제1 방어 타입에서 제2 방어 타입으로 변경할 수 있다. 방어 회로(230)가 제2 방어 타입으로 리프레시를 수행함으로써 제1 커맨드 시퀀스에 의한 공격을 방어할 수 있다.
방어 회로(230)는 시구간(TDT6)에서 제1 방어 타입으로 동작하고, 시구간(TDT7)에서 제2 방어 타입으로 동작한 후에, 시구간(TDT8)에서 제1 방어 타입으로 동작할 수 있다. 시구간(TDT6) 및 시구간(TDT8)은 시간 길이가 동일할 수 있다. 시구간(TDT6) 및 시구간(TDT7)은 시간 길이가 상이할 수 있다. 즉, 메모리 장치(200)가 제2 커맨드 시퀀스를 수신하는 시구간(TCMD2) 동안 방어 회로(230)는 제2 방어 타입에서 제1 방어 타입으로 변경할 수 있다. 방어 회로(230)가 제1 방어 타입으로 리프레시를 수행함으로써 제2 커맨드 시퀀스에 의한 공격을 방어할 수 있다. 방어 회로(230)는 방어 타입을 스위칭함으로써 공격에 대한 강건성을 증대시킬 수 있다.
도 6에서는 메모리 장치(200)가 제1 방어 타입 및 제2 방어 타입으로 동작하는 것으로 설명하였으나, 반드시 이에 한정되는 것은 아니고, 세 개 이상의 방어 타입을 조합하여 동작하는 것으로 구현될 수 있다.
또한, 도 6의 시구간에서 메모리 장치(200)는 제1 커맨드 시퀀스 및 제2 커맨드 시퀀스를 수신하는 것으로 도시하였으나, 반드시 이에 한정되는 것은 아니고, 세 개 이상의 커맨드 시퀀스를 수신하는 것으로 구현될 수 있다.
도 7은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 7을 참조하면, 일 실시예에 따른 메모리 장치(200)는 주기(TREF)로 리프레시를 수행할 수 있다. 주기(TREF)는 타깃 로우 리프레시(TRR)가 수행되는 주기일 수 있다. 메모리 장치(200)는 복수의 방어 타입(제1 내지 제P 방어 타입)을 조합하여 공격을 방어할 수 있다. 여기서, P는 2보다 큰 정수이다. 예를 들어, 메모리 장치(200)는 시구간(TDT9) 동안 제1 방어 타입으로 동작하고, 시구간(TDT10) 동안 제2 방어 타입으로 동작하고, ... 시구간(TDT11) 동안 제P 방어 타입으로 동작할 수 있다. 시구간(TDT9~TDT11)은 시간 길이가 동일하며 주기(TREF)의 정수배일 수 있다. 대안적으로, 시구간(TDT9~TDT11)은 클록 신호(CLK)의 주기의 정수배일 수도 있다. 메모리 장치(200)는 제1 파라미터 세트를 사용하여 제1 방어 타입으로 동작하고, 제2 파라미터 세트를 사용하여 제2 방어 타입으로 동작하며, ... 제P 파라미터 세트를 사용하여 제P 방어 타입으로 동작할 수 있다. 제1 내지 제P 파라미터 세트는 모두 상이할 수 있다.
메모리 장치(200)의 방어 회로(230)는 시구간(TDT9)에서 제1 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하고, 시구간(TDT10)에서 제2 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하며, ... 시구간(TDT11)에서 제P 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력할 수 있다.
일 실시예에서, 시구간(TDT11) 이후에 방어 회로(230)는 시구간(TDT9~TDT11)에서와 같이 제1 방어 타입부터 동작할 수 있다.
일 실시예에서, 시구간(TDT11) 이후에 방어 회로(230)는 방어 타입을 재조합하여 시구간(TDT9~TDT11)에서와는 달리 동작할 수 있다.
메모리 장치(200)는 메모리 컨트롤러(100)로부터 임의의 시점부터 복수의 커맨드를 수신할 수 있다. 복수의 커맨드는 제3 내지 제Q 커맨드를 포함할 수 있다. 제3 커맨드 시퀀스는 시구간(TCMD3) 동안 지속되고, 제4 커맨드 시퀀스는 시구간(TCMD4) 동안 지속되고, ... 제Q 커맨드 시퀀스는 시구간(TCMD5)동안 지속될 수 있다. 제3 내지 제Q 커맨드 시퀀스는 적어도 하나의 공격자로부터 수신하는 상이한 유형의 공격 커맨드일 수 있다. 제1 방어 타입은 제3 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제4 커맨드 시퀀스를 방어하기 위한 로직이고, 제P 방어 타입은 제Q 커맨드 시퀀스를 방어하기 위한 로직일 수 있다. 도 7에서 방어 타입의 지속 시간(TDT9~TDT11) 각각은 커맨드 시퀀스(TCMD3~TCMD5)의 지속 시간 각각을 초과하지 않을 수 있다.
즉, 방어 회로(230)는 수신될 것으로 예상되는 가장 짧은 공격 커맨드 시퀀스의 지속 시간을 초과하지 않는 범위 내에서 방어 타입 변경 주기를 결정할 수 있다. 다시 말해, 방어 회로(230)는 공격 커맨드 시퀀스가 수신되는 동안 방어 타입이 변경될 수 있도록 각 방어 타입의 지속 시간을 결정할 수 있다. 방어 회로(230)는 방어 타입을 스위칭함으로써 공격에 대한 강건성을 증대시킬 수 있다.
도 8은 일 실시예에 따른 메모리 장치의 동작을 설명하기 위한 타이밍도이다.
도 8을 참조하면, 일 실시예에 따른 메모리 장치(200)는 주기(TREF)로 리프레시를 수행할 수 있다. 주기(TREF)는 타깃 로우 리프레시(TRR)가 수행되는 주기일 수 있다. 메모리 장치(200)는 복수의 방어 타입(제1 내지 제P 방어 타입)을 조합하여 공격을 방어할 수 있다. 여기서, P는 2보다 큰 정수이다. 예를 들어, 메모리 장치(200)는 시구간(TDT12) 동안 제1 방어 타입으로 동작하고, 시구간(TDT13) 동안 제2 방어 타입으로 동작하고, ... 시구간(TDT14) 동안 제P 방어 타입으로 동작할 수 있다. 시구간(TDT12~TDT14) 각각은 주기(TREF)의 정수배일 수 있다. 대안적으로, 시구간(TDT12~TDT14)은 클록 신호(CLK)의 주기의 정수배일 수도 있다. 시구간(TDT12~TDT14) 중 적어도 하나는 시간 길이가 상이할 수 있다. 메모리 장치(200)는 제1 파라미터 세트를 사용하여 제1 방어 타입으로 동작하고, 제2 파라미터 세트를 사용하여 제2 방어 타입으로 동작하며, ... 제P 파라미터 세트를 사용하여 제P 방어 타입으로 동작할 수 있다. 제1 내지 제P 파라미터 세트는 모두 상이할 수 있다.
메모리 장치(200)의 방어 회로(230)는 시구간(TDT12)에서 제1 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하고, 시구간(TDT13)에서 제2 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력하며, ... 시구간(TDT14)에서 제P 방어 타입에 따른 리프레시 어드레스(REF_ADDR)를 출력할 수 있다.
일 실시예에서, 시구간(TDT14) 이후에 방어 회로(230)는 시구간(TDT12~TDT14)에서와 같이 제1 방어 타입부터 동작할 수 있다.
일 실시예에서, 시구간(TDT14) 이후에 방어 회로(230)는 방어 타입을 재조합하여 시구간(TDT12~TDT14)에서와는 달리 동작할 수 있다.
메모리 장치(200)는 메모리 컨트롤러(100)로부터 임의의 시점부터 복수의 커맨드를 수신할 수 있다. 복수의 커맨드는 제3 내지 제Q 커맨드를 포함할 수 있다. 제3 커맨드 시퀀스는 시구간(TCMD3) 동안 지속되고, 제4 커맨드 시퀀스는 시구간(TCMD4) 동안 지속되고, ... 제Q 커맨드 시퀀스는 시구간(TCMD5)동안 지속될 수 있다. 제3 내지 제Q 커맨드 시퀀스는 적어도 하나의 공격자로부터 수신하는 상이한 유형의 공격 커맨드일 수 있다. 제1 방어 타입은 제3 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제4 커맨드 시퀀스를 방어하기 위한 로직이고, 제P 방어 타입은 제Q 커맨드 시퀀스를 방어하기 위한 로직일 수 있다. 도 8에서 방어 타입의 지속 시간(TDT12~TDT14) 각각은 커맨드 시퀀스(TCMD3~TCMD5)의 지속 시간 각각을 초과하지 않을 수 있다.
즉, 방어 회로(230)는 수신될 것으로 예상되는 가장 짧은 공격 커맨드 시퀀스의 지속 시간을 초과하지 않는 범위 내에서 방어 타입 변경 주기를 결정할 수 있다. 다시 말해, 방어 회로(230)는 공격 커맨드 시퀀스가 수신되는 동안 방어 타입이 변경될 수 있도록 각 방어 타입의 지속 시간을 결정할 수 있다.
이때, 방어 회로(230)는 각 방어 타입이 막기 위한 공격의 지속 시간에 비례하여 방어 타입의 지속 시간을 결정할 수 있다. 예를 들어, 방어 회로(230)는 제3 커맨드 시퀀스의 지속 시간에 기초하여 제1 방어 타입의 지속 시간을 결정하고, 제4 커맨드 시퀀스의 지속 시간에 기초하여 제2 방어 타입의 지속 시간을 결정하고, ... 제Q 커맨드 시퀀스의 지속 시간에 기초하여 제P 방어 타입의 지속 시간을 결정할 수 있다. 방어 회로(230)는 방어 타입을 스위칭함으로써 공격에 대한 강건성을 증대시킬 수 있다.
도 9는 종래 메모리 장치의 방어 능력을 설명하기 위한 그래프이고, 도 10은 일 실시예에 따른 메모리 장치의 방어 능력을 설명하기 위한 그래프이다.
도 9를 참조하면, 종래 메모리 장치는 제1 방어 타입, 제2 방어 타입, 제3 방어 타입, 및 제4 방어 타입 중 어느 하나로 동작할 수 있다. 즉, 실시예에 따라서 종래 메모리 장치는 방어 타입 스위칭 없이 전구간에서 하나의 방어 타입으로 동작할 수 있다. 도 9는 제1 내지 제4 방어 타입을 공격하는 커맨드 시퀀스를 종래 메모리 장치에 송신한 경우, 메모리 장치를 공격할 수 있는 포인트(point)를 나타낸다.
도 10을 참조하면, 일 실시예에 따른 메모리 장치는 제1 방어 타입, 제2 방어 타입, 제3 방어 타입, 및 제4 방어 타입을 스위칭하면서 동작할 수 있다. 즉, 실시예에 따라, 메모리 장치는 미리 결정된 주기로 방어 타입을 스위칭하거나, 소정의 규칙을 통해 방어 타입 동작 시간을 결정할 수 있다. 도 10은 제1 내지 제4 방어 타입을 공격하는 커맨드 시퀀스를 일 실시예에 따른 메모리 장치에 송신한 경우, 메모리 장치를 공격할 수 있는 포인트를 나타낸다. 일 실시예에 따른 메모리 장치는 대부분의 공격 커맨드를 방어하며, 공격에 성공한 공격 커맨드 또한 리스크 스코어(risk score)가 크게 감소함을 알 수 있다. 리스크 스코어는 방어 성능을 나타내는 지표로서, 그 수치가 낮을수록 방어 성능이 우수함을 나타낸다. 또한, 일 실시예에 따른 메모리 장치에서 각 방어 타입은 시너지 효과를 생성하여 각각의 방어 타입이 막을 수 없었던 공격까지 막아냄을 알 수 있다.
도 11은 일 실시예에 따른 메모리 장치의 방어 방법을 설명하기 위한 순서도이다.
도 11을 참조하면, 메모리 장치의 방어 회로는 복수의 방어 타입을 획득할 수 있다(S1110). 방어 타입은 공격에 의해 희생될 행을 리프레시 하는데 사용되는 방어 방법의 타입을 의미할 수 있다. 방어 타입은 공격 커맨드 시퀀스를 방어하기 위한 로직일 수 있다. 예를 들어, 제1 방어 타입은 제1 공격 커맨드 시퀀스를 방어하기 위한 로직이고, 제2 방어 타입은 제2 공격 커맨드 시퀀스를 방어하기 위한 로직일 수 있다.
유사한 공격들을 방어하기 위한 적어도 두 개의 방어 타입이 있는 경우, 방어 회로는 적어도 두 개의 방어 타입 중 하나의 방어 타입을 획득할 수 있다. 유사한 공격들이란, 메모리 장치에서 동일한 로우 어드레스의 비트 플립(bit-flip)을 일으키기 위한 적어도 두 개의 공격을 의미할 수 있다. 예를 들어, 방어 회로는 적어도 두 개의 방어 타입 중 지속 시간이 가장 짧은 방어 타입을 획득할 수 있다. 즉, 방어 회로는 중복되거나 유사한 방어 타입 중 하나의 방어 타입만 사용하고 나머지 방어 타입은 사용하지 않을 수 있다.
방어 회로는 복수의 방어 타입 각각의 동작 시간을 결정할 수 있다(S1120). 일 실시예에서, 동작 시간은 메모리 장치의 리프레시 주기의 정수배일 수 있다. 일 실시예에서, 동작 시간은 메모리 장치의 클록 신호 주기의 정수배일 수 있다.
일 실시예에서, 복수의 방어 타입 각각의 동작 시간은 동일할 수 있다. 방어 회로는 공격 커맨드 시퀀스의 지속 시간에 기초하여 동작 시간을 결정할 수 있다. 예를 들어, 방어 회로는 공격 커맨드 시퀀스의 지속 시간보다 짧게 동작 시간을 결정할 수 있다. 이때 공격 커맨드 시퀀스는 메모리 장치가 수신할 수 있는 공격 커맨드 시퀀스 중 지속 시간이 가장 짧은 커맨드 시퀀스일 수 있다.
일 실시예에서, 복수의 방어 타입 각각의 동작 시간은 상이할 수 있다. 방어 회로는 공격 커맨드 시퀀스의 지속 시간에 기초하여 동작 시간을 결정할 수 있다. 예를 들어, 방어 회로는 공격 커맨드 시퀀스의 지속 시간보다 짧게 복수의 방어 타입 각각의 동작 시간을 결정할 수 있다. 방어 회로는 공격 커맨드 시퀀스의 지속 시간에 비례하게 동작 시간을 결정할 수 있다. 예를 들어, 방어 회로는 제1 공격 커맨드 시퀀스의 지속 시간에 비례하여 제1 방어 타입의 지속 시간을 결정하고, 제2 공격 커맨드 시퀀스의 지속 시간에 비례하여 제2 방어 타입의 지속 시간을 결정할 수 있다.
방어 회로는 결정된 동작 시간에 기초하여 복수의 방어 타입을 스위칭하여 리프레시를 수행할 수 있다(S1130). 방어 회로는 리프레시 파라미터를 변경함으로써 복수의 방어 타입을 스위칭할 수 있다. 리프레시 파라미터는, 퇴출 단계에서 어드레스 카운터의 리셋 여부, 퇴출 단계에서 퇴출할 어드레스를 결정하는 로직, 일반 리프레시와 타깃 로우 리프레시(TRR)의 비율, 타깃 로우 리프레시(TRR) 테이블에 버퍼 추가 여부, 의사 난수 사용 여부 등을 포함할 수 있다.
일 실시예에서, 방어 회로는 제1 시구간에서 결정된 동작 시간에 기초하여 순서대로 복수의 방어 타입을 스위칭하고, 제1 시구간에 후속하는 제2 시구간에서 제1 시구간에서와 동일한 순서로 복수의 방어 타입을 스위칭하여 리프레시를 수행할 수 있다.
일 실시예에서, 방어 회로는 제1 시구간에서 결정된 동작 시간에 기초하여 순서대로 복수의 방어 타입을 스위칭하고, 제1 시구간에 후속하는 제2 시구간에서 제1 시구간에서와 상이한 순서로 복수의 방어 타입을 스위칭하여 리프레시를 수행할 수 있다.
도 12는 일 실시예에 따른 메모리 장치의 방어 방법을 설명하기 위한 순서도이다.
도 12를 참조하면, 메모리 장치의 방어 회로는 제1 공격 커맨드 시퀀스를 방어하기 위한 제1 방어 타입을 사용하여 리프레시를 수행할 수 있다(S1210). 제1 공격 커맨드 시퀀스는 제1 지속 시간 동안 지속될 수 있다. 방어 회로는 제1 지속 시간 및 제2 지속 시간보다 짧은 제3 지속 시간 동안 제1 방어 타입을 사용할 수 있다.
방어 회로는 제2 공격 커맨드 시퀀스를 방어하기 위한 제2 방어 타입을 사용하여 리프레시를 수행할 수 있다(S1220). 제2 공격 커맨드 시퀀스는 제2 지속 시간 동안 지속될 수 있다. 방어 회로는 제1 지속 시간 및 제2 지속 시간보다 짧은 제4 지속 시간 동안 제2 방어 타입을 사용할 수 있다.
일 실시예에서, 제3 지속 시간과 제4 지속 시간은 동일할 수 있다.
일 실시예에서, 제3 지속 시간과 제4 지속 시간은 상이할 수 있다. 예를 들어, 방어 회로는 제1 지속 시간에 비례하여 제3 지속 시간을 결정하고, 제2 지속 시간에 비례하여 제4 지속 시간을 결정할 수 있다.
도 13은 일 실시예에 따른 컴퓨터 시스템의 개략적인 블록도이다.
도 13을 참조하면, 컴퓨팅 시스템(2000)은 프로세서(2010), 메모리(2020), 메모리 컨트롤러(2030), 저장 장치(2040), 통신 인터페이스(2050), 및 버스(2060)를 포함한다. 컴퓨팅 시스템(2000)은 다른 범용적인 구성 요소를 더 포함할 수 있다.
프로세서(2010)는 컴퓨팅 시스템(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(2010)는 CPU(central processing unit), AP(application processor), GPU(graphic processing unit) 등의 다양한 프로세싱 유닛 중 적어도 하나로 구현될 수 있다.
메모리(2020)는 각종 데이터 및 명령을 저장한다. 메모리(2020)는 도 1 내지 도 12를 참고로 하여 설명한 메모리 장치로 구현될 수 있다. 메모리 컨트롤러(2030)는 메모리(2020)로의 및 메모리(2020)로부터의 데이터 또는 명령의 전달을 제어한다. 메모리 컨트롤러(2030)는 도 1 내지 도 8을 참고로 하여 설명한 메모리 컨트롤러로 구현될 수 있다. 어떤 실시예에서, 메모리 컨트롤러(2030)는 프로세서(2010)와 별도의 칩으로 제공될 수 있다. 어떤 실시예에서, 메모리 컨트롤러(2030)는 프로세서(2010)의 내부 구성으로 제공될 수 있다.
저장 장치(2040)는 프로그램 및 데이터를 비임시적으로 저장한다. 어떤 실시예에서, 저장 장치(2040)는 비휘발성 메모리로 구현될 수 있다. 통신 인터페이스(2050)는 컴퓨팅 시스템(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2050)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 버스(2060)는 컴퓨팅 시스템(2000)의 구성 요소간 통신 기능을 제공한다. 버스(2060)는 구성 요소 간의 통신 프로토콜에 따라 적어도 하나의 유형의 버스를 포함할 수 있다.
어떤 실시예에서, 도 1 내지 도 13을 참고로 하여 설명한 각 구성요소 또는 둘 이상의 구성요소의 조합은 디지털 회로, 프로그램 가능한 또는 프로그램할 수 없는 로직 장치 또는 어레이, 응용 주문형 집적 회로(application specific integrated circuit, ASIC) 등으로 구현될 수 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (10)

  1. 공격에 의해 희생될 행을 리프레시 하는데 사용되는 복수의 방어 타입을 획득하는 단계;
    상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계;
    결정된 동작 시간에 기초하여 상기 복수의 방어 타입을 스위칭하여 리프레시를 수행하는 단계
    를 포함하는 메모리 장치의 방어 방법.
  2. 제1항에 있어서,
    상기 리프레시를 수행하는 단계는,
    리프레시 파라미터를 변경함으로써 상기 복수의 방어 타입을 스위칭하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  3. 제1항에 있어서,
    상기 복수의 방어 타입 각각의 동작 시간은 동일한,
    메모리 장치의 방어 방법.
  4. 제3항에 있어서,
    상기 복수의 방어 타입 각각의 동작 시간을 결정하는 단계는,
    공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  5. 제4항에 있어서,
    상기 공격 커맨드 시퀀스의 지속 시간에 기초하여 상기 동작 시간을 결정하는 단계는,
    상기 공격 커맨드 시퀀스의 지속 시간보다 짧게 상기 동작 시간을 결정하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  6. 제1항에 있어서,
    상기 복수의 방어 타입을 획득하는 단계는,
    동일한 로우 어드레스의 비트 플립(bit-flip)을 방어하기 위한 적어도 두 개의 방어 타입이 있는 경우, 상기 적어도 두 개의 방어 타입 중 하나의 방어 타입을 획득하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  7. 제6항에 있어서,
    상기 적어도 두 개의 방어 타입 중 하나의 방어 타입을 획득하는 단계는,
    상기 적어도 두 개의 방어 타입 중 지속 시간이 가장 짧은 방어 타입을 획득하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  8. 제1 공격 커맨드 시퀀스를 방어하기 위한 제1 방어 타입을 사용하여 리프레시를 수행하는 단계; 및
    제2 공격 커맨드 시퀀스를 방어하기 위한 제2 방어 타입을 사용하여 리프레시를 수행하는 단계
    를 포함하는 메모리 장치의 방어 방법.
  9. 제8항에 있어서,
    상기 제1 공격 커맨드 시퀀스는 제1 지속 시간 동안 지속되고,
    상기 제2 공격 커맨드 시퀀스는 제2 지속 시간 동안 지속되고,
    상기 제1 방어 타입을 사용하여 리프레시를 수행하는 단계는,
    상기 제1 지속 시간 및 상기 제2 지속 시간보다 짧은 제3 지속 시간 동안 상기 제1 방어 타입을 사용하는 단계
    를 포함하고,
    상기 제2 방어 타입을 사용하여 리프레시를 수행하는 단계는,
    상기 제1 지속 시간 및 상기 제2 지속 시간보다 짧은 제4 지속 시간 동안 상기 제2 방어 타입을 사용하는 단계
    를 포함하는, 메모리 장치의 방어 방법.
  10. 메모리 셀 어레이; 및
    복수의 방어 타입을 획득하고, 상기 복수의 방어 타입 각각의 동작 시간을 결정하고, 결정된 동작 시간에 기초하여 상기 복수의 방어 타입을 스위칭하여 상기 메모리 셀 어레이에 리프레시를 수행하는 방어 회로
    를 포함하는 메모리 장치.


KR1020220114831A 2022-06-17 2022-09-13 메모리 장치 및 이의 방어 방법 KR20230173560A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US18/191,039 US20230410875A1 (en) 2022-06-17 2023-03-28 Memory device and defense method thereof
CN202310396778.8A CN117253515A (zh) 2022-06-17 2023-04-13 存储器装置及其防御方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020220074180 2022-06-17
KR20220074180 2022-06-17

Publications (1)

Publication Number Publication Date
KR20230173560A true KR20230173560A (ko) 2023-12-27

Family

ID=89378199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220114831A KR20230173560A (ko) 2022-06-17 2022-09-13 메모리 장치 및 이의 방어 방법

Country Status (1)

Country Link
KR (1) KR20230173560A (ko)

Similar Documents

Publication Publication Date Title
US9293188B2 (en) Memory and memory controller for high reliability operation and method
US6463001B1 (en) Circuit and method for merging refresh and access operations for a memory device
US9281046B2 (en) Data processor with memory controller for high reliability operation and method
US20160202926A1 (en) Refresh row address
US8305834B2 (en) Semiconductor memory with memory cell portions having different access speeds
KR100865188B1 (ko) 메모리 제어기용 판독-기록 스위칭 방법
US11449441B2 (en) Multi-ported nonvolatile memory device with bank allocation and related systems and methods
KR20180022016A (ko) 반도체장치
US20210109577A1 (en) Temperature-based runtime variability in victim address selection for probabilistic schemes for row hammer
US10055169B2 (en) Memory system and read request management method thereof
US20230410875A1 (en) Memory device and defense method thereof
US7512763B2 (en) Transparent SDRAM in an embedded environment
JP2004288225A (ja) Dram及びアクセス方法
US20200176062A1 (en) Memory devices and methods of processing security data thereof
KR100619202B1 (ko) 자동 프리챠지 인코딩 장치 및 방법
KR20230173560A (ko) 메모리 장치 및 이의 방어 방법
KR101989860B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US7003643B1 (en) Burst counter controller and method in a memory device operable in a 2-bit prefetch mode
JPH08328949A (ja) 記憶装置
CN117253515A (zh) 存储器装置及其防御方法
KR20210091404A (ko) 메모리 장치, 메모리 모듈 및 메모리 장치의 동작 방법
US20240069757A1 (en) Memory control device and refresh control method thereof
US20230168818A1 (en) Memory device having reduced power noise in refresh operation and operating method thereof
US20240170039A1 (en) Cxl device and operation method of cxl device
US20240038288A1 (en) Memory device refresh operations