KR20160131191A - 반도체 장치 및 그 동작 방법 - Google Patents

반도체 장치 및 그 동작 방법 Download PDF

Info

Publication number
KR20160131191A
KR20160131191A KR1020150062996A KR20150062996A KR20160131191A KR 20160131191 A KR20160131191 A KR 20160131191A KR 1020150062996 A KR1020150062996 A KR 1020150062996A KR 20150062996 A KR20150062996 A KR 20150062996A KR 20160131191 A KR20160131191 A KR 20160131191A
Authority
KR
South Korea
Prior art keywords
data
buffer
memory device
storing
write
Prior art date
Application number
KR1020150062996A
Other languages
English (en)
Other versions
KR102032892B1 (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 KR1020150062996A priority Critical patent/KR102032892B1/ko
Priority to US14/983,767 priority patent/US9817767B2/en
Publication of KR20160131191A publication Critical patent/KR20160131191A/ko
Application granted granted Critical
Publication of KR102032892B1 publication Critical patent/KR102032892B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0004Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising amorphous/crystalline phase transition cells
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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/12Replacement control
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0021Auxiliary circuits
    • G11C13/0069Writing or programming circuits or methods
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1084Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/1096Write circuits, e.g. I/O line write drivers
    • 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/28Using a specific disk cache architecture
    • G06F2212/282Partitioned cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/313In storage device

Abstract

본 기술에 의한 반도체 장치는 호스트로부터의 쓰기 요청에 의한 제 1 데이터를 저장하는 버퍼, 버퍼로부터 추방되는 제 2 데이터를 저장하는 메모리 장치, 및 쓰기 요청을 처리하기 위하여 버퍼 및 메모리 장치를 제어하는 제어부를 포함한다.

Description

반도체 장치 및 그 동작 방법{SEMICONDUCTOR DEVICE AND OPERATING METHOD THEREOF}
본 발명은 반도체 장치 및 그 동작 방법에 관한 것으로서 보다 구체적으로는 셋 동작 및 리셋 동작에 걸리는 시간(레이턴시)이 상이한 메모리 장치의 동작 성능을 향상시키는 반도체 장치 및 그 동작 방법에 관한 것이다.
도 1은 상변이 메모리 장치(PCRAM, Phase Change Random Access Memory)에서 메모리 셀의 상변이 동작을 설명하는 그래프이다.
그래프는 메모리 셀을 고저항 상태(리셋 상태)에서 저저항 상태(셋 상태)로 변환하는 셋 동작과 저저항 상태에서 고저항 상태로 변환하는 리셋 동작에 필요한 전력과 시간을 나타낸다.
도시된 바와 같이 셋 동작에 걸리는 시간이 리셋 동작에 걸리는 시간보다 약 8배 정도가 된다.
일반적인 메모리 장치에서는 일정한 개수의 셀 단위로 데이터를 기록하므로 하나의 쓰기 동작시 일부 셀들에 대해서는 셋 동작이 수행되고 다른 일부 셀들에 대한 리셋 동작이 동시에 수행될 가능성이 있다.
이에 따라 종래의 상변이 메모리 장치에서는 쓰기 동작에 필요한 시간이 적어도 셋 동작에 필요한 시간만큼 길어져 메모리 장치의 동작 성능이 저하되는 문제가 있다.
이러한 문제는 상변이 메모리 장치뿐만 아니라 메모리 셀에 기록하는 논리 값에 따라 쓰기 동작에 필요한 시간이 크게 달라지는 메모리 장치에서는 언제나 발생할 수 있다.
본 기술은 셋 동작 및 리셋 동작에 걸리는 시간이 상이한 메모리 장치의 동작 성능을 향상시키는 반도체 장치 및 그 동작 방법을 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 호스트로부터의 쓰기 요청에 의한 제 1 데이터를 저장하는 버퍼, 버퍼로부터 추방되는 제 2 데이터를 저장하는 메모리 장치, 및 쓰기 요청을 처리하기 위하여 버퍼 및 메모리 장치를 제어하는 제어부를 포함한다.
본 발명의 일 실시예에 의한 반도체 장치의 동작 방법은 호스트로부터 쓰기 요청된 제 1 데이터를 제 1 버퍼에 저장하는 단계, 메모리 장치에서 쓰기 요청된 주소의 제 3 데이터를 읽어 제 2 버퍼에 저장하는 단계, 제 1 데이터와 제 3 데이터를 연산하는 단계; 및 연산 결과를 이용하여 메모리 장치에서 쓰기 요청된 주소의 데이터를 갱신하는 단계를 포함한다.
본 기술에 의한 반도체 장치는 버퍼에 대해서 쓰기 동작을 우선적으로 수행하여 쓰기 동작의 성능을 향상시키는 동시에 상대적으로 시간이 많이 걸리는 셋 동작과 리셋 동작을 분리하여 내부적으로 수행함으로써 메모리 장치의 동작 성능을 향상시킨다.
도 1은 상변이 메모리 장치의 셋 동작 및 리셋 동작을 설명하는 그래프.
도 2는 본 발명의 일 실시예에 의한 반도체 장치의 블록도.
도 3은 본 발명의 일 실시예에 의한 반도체 장치의 쓰기 동작의 일 예를 나타낸 순서도.
도 4는 본 발명의 일 실시예에 의한 반도체 장치의 쓰기 동작의 다른 예를 나타낸 순서도.
도 5는 본 발명의 일 실시예에 의한 반도체 장치의 읽기 동작의 일 예를 나타낸 순서도.
도 6 내지 8은 본 발명의 일 실시예에 의한 반도체 장치의 동작을 설명하는 설명도.
도 9 내지 11은 본 발명의 다른 실시예에 의한 반도체 장치의 동작을 설명하는 설명도.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예에 대해서 상세히 설명한다. 이하의 설명에서 동일한 참조 부호는 실질적으로 동일한 대상을 지시한다.
도 2는 본 발명의 일 실시예에 의한 반도체 장치(1000)의 블록도이다.
본 발명의 일 실시예에 의한 반도체 장치는 호스트(1)로부터 제공되는 메모리 장치(300)에 대한 쓰기 요청을 제어하는 제어부(100)와 쓰기 요청된 데이터를 메모리 장치(300)에 저장하기 전에 미리 저장하는 버퍼(200)를 포함한다.
메모리 장치(300)는 메모리 셀에 저장하는 데이터에 따라 쓰기 동작시간이 달라지는 특성을 갖는 임의의 메모리 장치일 수 있다. 예를 들어 상변이 메모리 장치가 이에 해당한다.
메모리 장치(300)는 단일한 메모리 모듈의 형태일 수도 있고 SSD(Solid State Disk)와 같이 다수의 메모리 모듈이 포함된 스토리지 장치의 형태일 수도 있다.
후자의 경우 제어부(100)와 버퍼(200) 및 메모리 장치(300)가 하나의 패키지에 포함될 수도 있다.
제어부(100)에 의해 수행되는 쓰기 및 읽기 동작의 예에 대해서는 이하에서 구체적으로 개시하기로 한다.
버퍼(200)는 제 1 버퍼(210)와 제 2 버퍼(220)를 포함한다. 버퍼(200)는 디램, 에스램 등과 같이 상대적으로 고속의 메모리 장치로 구현될 수 있다.
제 1 버퍼(210)는 메모리 장치(300)에 대한 캐시와 유사한 역할을 한다. 이에따라 호스트(1)에서 쓰기 요청된 데이터는 메모리 장치(300)에 저장하기 전에 제 1 버퍼(210)에 저장될 수 있다.
제 2 버퍼(220)는 데이터를 임시 저장하는 역할을 한다.
예를 들어 제 2 버퍼(220)는 제 1 버퍼(210)에 쓰기 요청된 데이터를 처음으로 기록하거나 갱신하는 경우 메모리 장치(300)의 쓰기 요청된 주소에 저장되어 있던 데이터를 임시 저장하는 역할을 한다.
예를 들어 제 2 버퍼(220)는 쓰기 요청된 데이터를 제 1 버퍼(210)에 저장하기 전에 임시로 저장할 수도 있다.
제 1 버퍼(210)의 저장 공간은 메모리 장치(300)의 저장 공간에 비하여 작게 설정되는 것이 일반적이다.
동작이 진행됨에 따라 제 1 버퍼(210)의 저장 공간이 부족해질 수 있으며 이 경우 제 1 버퍼(210)에서 하나 또는 둘 이상의 데이터를 선택하여 메모리 장치(300)로 추방한다.
전술한 바와 같이 제 2 버퍼(220)는 쓰기 요청이 입력되는 경우 메모리 장치(300)에서 쓰기 요청된 주소의 현재 데이터를 임시 저장하는 역할을 할 수 있다.
이 경우 제 2 버퍼(220)에 임시 저장된 데이터는 제 1 버퍼(210)에 저장된 쓰기 요청된 데이터와 연산되고 연산 결과는 메모리 장치(300)의 쓰기 요청된 주소의 데이터를 갱신하는데 사용된다.
도 3은 본 발명의 일 실시예에 의한 반도체 장치의 쓰기 동작의 일 예를 나타낸 순서도이다.
도 3의 동작은 제어부(100)에 의해 제어될 수 있다.
제어부(100)는 호스트(1)로부터 쓰기 요청이 제공되면 먼저 제 1 버퍼(210)에 쓰기 요청된 주소의 데이터가 존재하는지 확인한다(S100).
제 1 버퍼(210)에 쓰기 요청된 주소의 데이터가 존재하면(버퍼 히트), 제어부(100)는 해당 주소의 데이터를 쓰기 요청된 데이터로 갱신한다(S100).
이후 제어부(100)는 메모리 장치(300)의 쓰기 요청된 주소에 저장되어 있는 데이터를 제 2 버퍼(210)에 임시 저장한다(S120).
이후 제어부(100)는 제 1 버퍼(210)에 기록된 쓰기 요청된 데이터와 제 2 버퍼(220)에 저장된 데이터를 연산한다(S130).
이후 제어부(100)는 연산 결과를 이용하여 메모리 장치(300)의 쓰기 요청된 주소의 데이터를 갱신한다(S140).
제 1 버퍼(210)에 쓰기 요청된 주소의 데이터가 존재하지 않는 경우(버퍼 미스), 제어부(100)는 제 1 버퍼(210)에 여유 공간이 있는지 판단한다(S210).
제 1 버퍼(210)에 여유 공간이 있는 경우 제어부(100)는 제 1 버퍼(210)의 여유 공간에 쓰기 요청된 주소의 데이터를 기록한다(S110). 이후의 동작은 전술한 바와 같다.
제 1 버퍼(210)에 여유 공간이 없는 경우 제어부(100)는 제 1 버퍼(210)에서 메모리 장치(300)로 추방할 데이터를 선택한다(S220).
추방할 데이터는 하나 또는 둘 이상일 수 있다. 또한 추방할 데이터를 선택하는 기준은 실시예에 따라 다양하게 선택될 수 있다. 예를 들어 제 1 버퍼(210)에서 액세스 시점이 오래된 순서에 따라 추방할 데이터를 선택할 수 있다.
이후 제어부(100)는 선택된 데이터로 메모리 장치(300)의 데이터를 갱신한다.
이후 제어부(100)는 단계(S210)의 동작을 반복한다.
이상에서는 각 단계들을 순차적으로 수행하는 것으로 개시하였으나 제어부(200)의 동작 중 일부 또는 전부는 병렬로 수행될 수도 있다. 예를 들어 단계(S110)와 단계(S120)는 병렬로 동시에 수행될 수 있다.
도 4는 본 발명의 일 실시예에 의한 반도체 장치의 쓰기 동작의 다른 예를 나타낸 순서도이다.
도 4의 실시예는 단계(S210)에서 제 1 버퍼(210)에 여유 공간이 없는 것으로 판단한 경우에 있어서 도 3과 다소 상이하다.
도 4의 실시예에서 제어부(100)는 제 1 버퍼(210)에 여유 공간이 없는 것으로 판단한 경우 먼저 쓰기 요청된 데이터를 제 2 버퍼(220)에 임시 저장한다.
이후 제어부(100)는 제 1 버퍼(210)에서 추방할 데이터를 선택하고(S220), 선택된 데이터로 메모리 장치의 대응하는 데이터를 갱신한다(S230).
이후 제어부(100)는 제 2 버퍼(220)의 데이터를 제 1 버퍼(240)로 이동하고 단계(S120)로 이동한다.
이후의 단계들은 전술한 바와 실질적으로 동일하므로 설명을 생략한다.
도 3의 실시예는 제 1 버퍼(210)에 여유 공간이 없는 경우 제 1 버퍼(210)에 여유 공간이 생길 때까지 쓰기 동작이 완료되지 않으나 도 4의 실시예는 제 1 버퍼(210)에 여유 공간이 없는 경우 제 2 버퍼(220)에 쓰기 요청된 데이터를 임시 저장하므로 호스트(1)와의 관계에 있어서 쓰기 동작이 종료된 것으로 볼 수 있으며 이에 따라 동작 성능이 향상될 수 있다.
도 5는 본 발명의 일 실시예에 의한 반도체 장치의 읽기 동작의 일 예를 나타낸 순서도이다.
호스트(1)로부터 읽기 요청이 제공되면 제어부(100)는 제 1 버퍼(210)에 읽기 요청된 주소의 데이터가 존재하는지 판단한다(S300).
제 1 버퍼(210)에 읽기 요청된 주소의 데이터가 존재하는 경우(버퍼 히트) 제어부(100)는 제 1 버퍼(210)에서 데이터를 읽어 출력한다(S310).
제 1 버퍼(210)에 읽기 요청된 주소의 데이터가 존재하지 않는 경우(버퍼 미스), 제어부(100)는 메모리 장치(300)에서 읽기 요청된 주소의 데이터를 읽어 출력하고 이를 제 2 버퍼(220)에 임시 저장한다(S320).
이후 제어부(100)는 제 1 버퍼(210)에 여유 공간이 있는지 판단한다(S210).
제 1 버퍼(210)에 여유 공간이 있는 경우 제어부(100)는 제 2 버퍼(220)에 임시 저장된 데이터를 제 1 버퍼(210)에 저장하고(S330) 종료한다.
제 1 버퍼(210)에 여유 공간이 없는 경우 제어부(100)는 제 1 버퍼(210)에서 추방할 데이터를 선택하고(S220), 선택된 데이터로 메모리 장치(300)의 데이터를 갱신한다(S230).
이후 제어부(100)는 제 2 버퍼(220)에 임시 저장된 데이터를 제 1 버퍼(210)에 저장하고(S330) 종료한다.
이상에서는 제 1 버퍼(210)에서 여유 공간을 확보하는 단계(S210, S220, S230)가 읽기 또는 쓰기 동작 시 수행되는 것으로 개시하였으나 이 단계들은 호스트(1)로부터 아무 요청이 없는 아이들 상태에서 수행될 수도 있다.
도 6 내지 8은 본 발명의 일 실시예에 의한 반도체 장치의 동작을 설명하는 설명도이다.
본 실시예에서 메모리 장치(300)는 상변이 메모리 장치로 가정한다.
본 실시예에서 메모리 장치(300)의 읽기 및 쓰기 단위는 8비트인 것으로 가정한다.
또한 메모리 장치(300)에서 셋 상태는 회색으로, 리셋 상태는 흰색으로 표시한다.
본 실시예에서 셋 상태는 1, 리셋 상태는 0의 논리값에 대응하는 것으로 가정한다.
도 6은 도 3의 단계(S110, S120)에 대응하는 설명도이다.
쓰기 요청된 데이터 "10011111"는 제 1 버퍼(210)에 저장된다.
메모리 장치(300)의 쓰기 요청된 주소의 메모리 셀은 "셋 셋 리셋 셋 리셋 리셋 셋 리셋" 상태를 가지는 것으로 가정한다. 이는 데이터 "11010010"에 대응하며 이 데이터는 제 2 버퍼(220)에 저장된다.
만일 종래와 같이 쓰기 요청된 데이터를 메모리 장치(300)에 직접 쓴다면 도 6에 표시한 바와 같이 하나의 셀에 대한 리셋 동작과 3개의 셀에 대한 셋 동작을 함께 수행해야 하므로 셋 동작에 필요한 시간만큼 쓰기 동작 시간이 증가하게 된다.
도 7은 도 3의 단계(S130, S140)에 대응하는 설명도이다.
제 1 버퍼(210)에 저장된 쓰기 요청된 데이터와 제 2 버퍼(220)에 저장된 메모리 장치(300)에 저장되어 있던 데이터를 비트 단위로 OR 연산하고, 연산 결과 얻은 데이터 "11011111"를 이용하여 메모리 장치(300)의 쓰기 요청된 주소의 데이터를 갱신한다.
도 6과 비교하면 메모리 장치(300)에서 데이터를 갱신하기 위하여 3 번의 셋 동작이 필요함을 알 수 있다.
이때 셋 동작은 쓰기 요청이 제 1 버퍼(210)에 대해서 수행된 이후에 수행되므로 메모리 장치(300)의 쓰기 성능에 영향을 주지 않는다.
메모리 장치(300)의 데이터는 제 1 버퍼(210)와 제 2 버퍼(220)의 데이터를 비트별로 OR 연산하여 갱신되므로 도 7의 동작에서는 셋 동작만 수행된다.
도 8은 도 3의 단계(S230)에 대응하는 설명도이다.
도 8은 도 7에서 제 1 버퍼(210)의 데이터가 추방되는 것을 가정한다.
도시된 바와 같이 제 1 버퍼(210)에 저장된 데이터 "10011111"를 메모리 장치(300)로 추방하여 메모리 장치(300)의 데이터를 갱신한다.
도 7과 비교하면 메모리 장치(300)의 1개의 셀에 대해서 리셋 동작이 필요함을 알 수 있다.
도 7에서 수행되는 OR 연산으로 인하여 특정 비트에 적어도 한 번 "1"이 쓰기 요청되는 경우 메모리 장치(300)의 대응 비트는 셋으로 미리 설정된다.
이에 따라 도 8에서 메모리 장치(300)의 데이터를 갱신하는 경우에는 셋 동작이 수행되지 않게 된다.
이와 같이 제 1 버퍼(210)에 여유 공간을 만들기 위하여 메모리 장치(300)에 대해서 셋 동작을 수행하지 않으므로 여유 공간을 만드는데 필요한 시간을 줄일 수 있다.
도 9 내지 11은 본 발명의 일 실시예에 의한 반도체 장치의 동작을 설명하는 설명도이다.
도 6 내지 8의 실시예와는 달리 본 실시예에서 셋 상태는 0, 리셋 상태는 1의 논리값에 대응하는 것으로 가정한다.
도 9는 도 3의 단계(S110, S120)에 대응하는 설명도이다.
쓰기 요청된 데이터 "10011111"는 제 1 버퍼(210)에 저장된다.
메모리 장치(300)의 쓰기 요청된 주소의 메모리 셀은 "셋 셋 리셋 셋 리셋 리셋 셋 리셋" 상태를 가진다. 이는 데이터 "00101101"에 대응하며 이 데이터는 제 2 버퍼(220)에 저장된다.
만일 종래와 같이 쓰기 요청된 데이터를 메모리 장치(300)에 직접 쓴다면 도 10에 표시한 바와 같이 하나의 셀에 대한 셋 동작과 3개의 셀에 대한 리셋 동작을 수행해야 한다. 이에 따라 셋 동작에 필요한 시간만큼 쓰기 동작 시간이 증가하게 된다.
도 10은 도 3의 단계(S130, S140)에 대응하는 설명도이다.
제 1 버퍼(210)에 저장된 쓰기 요청된 데이터와 제 2 버퍼(220)에 저장된 메모리 장치(300)에 저장되어 있던 데이터를 비트 단위로 AND 연산하고, 연산 결과 얻은 데이터 "00001001"를 이용하여 메모리 장치(300)의 쓰기 요청된 주소의 상태를 갱신한다.
도 9와 비교하면 메모리 장치(300)의 데이터를 갱신하기 위하여 2 번의 셋 동작이 필요하다.
이때 셋 동작은 쓰기 요청이 제 1 버퍼(210)에 대해서 수행된 이후에 수행되므로 메모리 장치(300)의 쓰기 성능에 영향을 주지 않는다.
메모리 장치(300)의 데이터는 제 1 버퍼(210)와 제 2 버퍼(220)의 데이터를 비트별로 AND 연산한 결과에 의해 갱신되므로 도 10의 동작에서는 셋 동작만 수행된다.
도 11은 도 3의 단계(S230)에 대응하는 설명도이다.
도 11은 도 10에서 제 1 버퍼(210)의 데이터가 추방되는 것을 가정한다.
도시된 바와 같이 제 1 버퍼(210)에 저장된 데이터 "10011111"를 메모리 장치(300)로 추방하여 메모리 장치(300)의 데이터를 갱신한다.
이때 도 10과 비교하면 메모리 장치(300)의 4개의 셀에 대해서 리셋 동작이 필요함을 알 수 있다.
도 10에서 AND 연산을 수행하므로 특정 비트에 적어도 한 번 "0"이 쓰기 요청되는 경우 메모리 장치(300)의 대응 비트는 셋으로 미리 설정된다.
이에 따라 도 11에서 메모리 장치(300)의 데이터를 갱신하는 경우에는 셋 동작이 수행되지 않게 된다.
이와 같이 제 1 버퍼(210)에 여유 공간을 만들기 위하여 메모리 장치(300)에 대해서 셋 동작을 수행하지 않으므로 여유 공간을 만드는데 필요한 시간을 줄일 수 있다.
도 8 및 도 11에서 개시한 효과는 도 5의 단계(S230)에 대해서도 유사하게 발휘될 수 있다.
이상에서 도면을 참조하여 본 발명의 실시예를 개시하였다. 이상의 개시는 설명을 위한 것으로서 본 발명의 권리범위를 한정하는 것은 아니며, 본 발명의 권리범위는 이하의 특허청구범위에 문언적으로 기재된 범위와 그 균등범위에 의해 정해진다.
1: 호스트
1000: 반도체 장치
100:제어부
200: 버퍼
210: 제 1 버퍼
220: 제 2 버퍼
300: 메모리 장치

Claims (13)

  1. 호스트로부터의 쓰기 요청에 의한 제 1 데이터를 저장하는 버퍼;
    상기 버퍼로부터 추방되는 제 2 데이터를 저장하는 메모리 장치; 및
    상기 쓰기 요청을 처리하기 위하여 상기 버퍼 및 상기 메모리 장치를 제어하는 제어부
    를 포함하는 반도체 장치.
  2. 청구항 1에 있어서, 상기 메모리 장치는 데이터의 값에 따라 쓰기 동작 시간이 상이한 메모리 셀을 포함하는 반도체 장치.
  3. 청구항 2에 있어서, 상기 메모리 장치는 상변이 메모리 장치를 포함하는 반도체 장치.
  4. 청구항 1에 있어서, 상기 버퍼는
    상기 제 1 데이터를 저장하는 제 1 버퍼; 및
    상기 메모리 장치에서 상기 쓰기 요청에 대응하는 주소에 저장된 제 3 데이터를 저장하는 제 2 버퍼
    를 포함하는 반도체 장치.
  5. 청구항 4에 있어서, 상기 제어부는 상기 쓰기 요청에 대응하여 상기 제 1 데이터를 상기 제 1 버퍼에 저장하고, 상기 제 3 데이터를 상기 제 2 버퍼에 저장하고, 상기 제 1 데이터와 상기 제 3 데이터를 연산한 결과에 따라 상기 제 3 데이터를 갱신하는 반도체 장치.
  6. 청구항 4에 있어서, 상기 제어부는 상기 제 1 버퍼에 여유 공간이 없는 경우 상기 제 1 버퍼에서 상기 제 2 데이터를 선택하고 상기 제 2 데이터를 상기 메모리 장치의 대응하는 주소에 저장하는 동작을 제어하는 반도체 장치.
  7. 청구항 6에 있어서, 상기 제어부는 상기 제 1 버퍼에 여유 공간이 없는 경우 상기 제 1 데이터를 상기 제 2 버퍼에 임시 저장하고, 상기 제 1 버퍼에서 상기 제 2 데이터를 선택하고, 상기 제 2 데이터를 상기 메모리 장치의 대응하는 주소에 저장하고, 상기 제 2 버퍼의 데이터를 상기 제 1 버퍼로 이동하는 동작을 제어하는 반도체 장치.
  8. 청구항 5에 있어서, 상기 제어부는 상기 제 3 데이터에서 특정 논리 레벨을 갖는 비트수가 증가하도록 상기 연산의 종류를 결정하는 반도체 장치.
  9. 청구항 8에 있어서, 상기 연산은 비트별 AND 또는 비트별 OR 인 반도체 장치.
  10. 호스트로부터 쓰기 요청된 제 1 데이터를 제 1 버퍼에 저장하는 단계;
    메모리 장치에서 상기 쓰기 요청된 주소의 제 3 데이터를 읽어 제 2 버퍼에 저장하는 단계;
    상기 제 1 데이터와 상기 제 3 데이터를 연산하는 단계; 및
    상기 연산 결과를 이용하여 상기 메모리 장치에서 상기 쓰기 요청된 주소의 데이터를 갱신하는 단계
    를 포함하는 반도체 장치의 동작 방법.
  11. 청구항 10에 있어서, 상기 호스트로부터 쓰기 요청된 주소의 데이터가 상기 제 1 버퍼에 존재하지 않고 상기 제 1 버퍼에 충분한 공간이 없는 경우,
    상기 제 1 버퍼에서 추방할 제 3 데이터를 선택하는 단계; 및
    상기 제 3 데이터를 이용하여 상기 메모리 장치를 갱신하는 단계
    를 더 포함하는 반도체 장치의 동작 방법.
  12. 청구항 10에 있어서, 상기 호스트로부터 쓰기 요청된 주소의 데이터가 상기 제 1 버퍼에 존재하지 않고 상기 제 1 버퍼에 충분한 공간이 없는 경우,
    상기 제 1 데이터를 상기 제 2 버퍼에 저장하는 단계;
    상기 제 1 버퍼에서 추방할 제 3 데이터를 선택하는 단계;
    상기 제 3 데이터를 이용하여 상기 메모리 장치를 갱신하는 단계;
    상기 제 2 버퍼의 데이터를 상기 제 1 버퍼로 이동하는 단계
    를 더 포함하는 반도체 장치의 동작 방법.
  13. 청구항 12에 있어서,
    상기 제 3 데이터를 읽어 상기 제 2 버퍼에 저장하는 단계;
    상기 제 1 데이터와 상기 제 3 데이터를 연산하는 단계; 및
    상기 연산 결과를 이용하여 상기 메모리 장치에서 상기 쓰기 요청된 주소의 데이터를 갱신하는 단계
    를 더 포함하는 반도체 장치의 동작 방법.
KR1020150062996A 2015-05-06 2015-05-06 반도체 장치 및 그 동작 방법 KR102032892B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150062996A KR102032892B1 (ko) 2015-05-06 2015-05-06 반도체 장치 및 그 동작 방법
US14/983,767 US9817767B2 (en) 2015-05-06 2015-12-30 Semiconductor apparatus and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150062996A KR102032892B1 (ko) 2015-05-06 2015-05-06 반도체 장치 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20160131191A true KR20160131191A (ko) 2016-11-16
KR102032892B1 KR102032892B1 (ko) 2019-10-16

Family

ID=57222704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150062996A KR102032892B1 (ko) 2015-05-06 2015-05-06 반도체 장치 및 그 동작 방법

Country Status (2)

Country Link
US (1) US9817767B2 (ko)
KR (1) KR102032892B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7557076B2 (en) * 2002-06-06 2009-07-07 The Procter & Gamble Company Organic catalyst with enhanced enzyme compatibility
TWI645286B (zh) * 2017-08-31 2018-12-21 慧榮科技股份有限公司 記憶體控制裝置和方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033509A (ko) * 1994-05-26 1995-12-26 기다오까 다까시 반도체 메모리 검사장치
US20110022782A1 (en) * 2009-07-24 2011-01-27 Stec, Inc. Flash storage with array of attached devices

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070226401A1 (en) * 2006-03-21 2007-09-27 Pa-Chung Huang Data accessing structure and method for flash memory
US20120311262A1 (en) 2011-06-01 2012-12-06 International Business Machines Corporation Memory cell presetting for improved memory performance
KR102147993B1 (ko) * 2013-11-14 2020-08-25 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
TWI524179B (zh) * 2014-04-22 2016-03-01 新唐科技股份有限公司 儲存單元控制器及其控制方法、以及儲存裝置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR950033509A (ko) * 1994-05-26 1995-12-26 기다오까 다까시 반도체 메모리 검사장치
US20110022782A1 (en) * 2009-07-24 2011-01-27 Stec, Inc. Flash storage with array of attached devices

Also Published As

Publication number Publication date
KR102032892B1 (ko) 2019-10-16
US20160328328A1 (en) 2016-11-10
US9817767B2 (en) 2017-11-14

Similar Documents

Publication Publication Date Title
US10241919B2 (en) Data caching method and computer system
US20190227927A1 (en) Data storage device and data storage method for dynamically executing a garbage-collection process
US9489148B2 (en) Selecting between non-volatile memory units having different minimum addressable data unit sizes
US9477593B2 (en) Semiconductor device and operating method thereof
US10108491B2 (en) Control circuit, memory device including the same, and method
US20090132770A1 (en) Data Cache Architecture and Cache Algorithm Used Therein
CN105242871A (zh) 一种数据写入方法及装置
TW201636845A (zh) 記憶體裝置與其操作方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
US10126986B2 (en) Memory system and operating method thereof for skipping mapping information update operation of duplicate addresses in a fast write mode
US9170893B2 (en) Method and system for selecting region of a nonvolatile memory
US20170262218A1 (en) Storage device and data moving method for storage device
CN104503703A (zh) 缓存的处理方法和装置
US10235049B2 (en) Device and method to manage access method for memory pages
CN111258925A (zh) 非易失内存的访问方法、装置、内存控制器、设备及介质
KR20160131191A (ko) 반도체 장치 및 그 동작 방법
US20100228930A1 (en) Access control device, information processing device, access control program and access control method
CN110275678B (zh) 一种基于stt-mram的固态存储器件随机访问性能提升方法
US20150212949A1 (en) Storage control device and storage control method
US20120233394A1 (en) Memory controller and a controlling method adaptable to dram
CN105677246B (zh) 一种nand闪存的数据读取方法、装置及nand闪存
US10297304B1 (en) Memory device and operating method thereof
US10146443B2 (en) Memory controller
TW201908980A (zh) 混合式高速快取記憶體及用於縮短其延遲之方法
US20220308766A1 (en) Memory controller and memory system

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant