KR20140125985A - 반도체 장치 - Google Patents

반도체 장치 Download PDF

Info

Publication number
KR20140125985A
KR20140125985A KR1020130043884A KR20130043884A KR20140125985A KR 20140125985 A KR20140125985 A KR 20140125985A KR 1020130043884 A KR1020130043884 A KR 1020130043884A KR 20130043884 A KR20130043884 A KR 20130043884A KR 20140125985 A KR20140125985 A KR 20140125985A
Authority
KR
South Korea
Prior art keywords
memory device
semiconductor memory
program code
control unit
control
Prior art date
Application number
KR1020130043884A
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 KR1020130043884A priority Critical patent/KR20140125985A/ko
Priority to US14/253,971 priority patent/US9690723B2/en
Publication of KR20140125985A publication Critical patent/KR20140125985A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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
    • G06F13/30Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

본 기술은 반도체 메모리 장치가 시스템에 장착된 상태에서도 반도체 메모리 장치에 대하여 테스트 및 리페어 등의 다양한 동작을 수행할 수 있는 반도체 장치를 제공한다.
본 기술에 의한 반도체 장치는 프로세서 코어의 제어를 통해 제공되는 프로그램 코드를 저장하는 저장부 및 저장부에 저장된 프로그램 코드에 따라 반도체 메모리 장치에 대한 제어 동작을 수행하는 제어부를 포함한다.

Description

반도체 장치{SEMICONDUCTOR DEVICE}
본 발명은 반도체 장치에 관한 것으로, 보다 구체적으로는 시스템에 장착되어 사용되고 있는 반도체 메모리 장치에 대한 테스트 및 리페어 등의 다양한 동작을 수행하는 반도체 장치에 관한 것이다.
종래에는 반도체 메모리 장치를 테스트하기 위하여 독립적인 테스트 장비를 이용하여 제조 단계에서 테스트 및 리페어를 수행하는 것이 일반적이었다.
최근 반도체 메모리 장치의 크기가 매우 작아짐에 따라 반도체 메모리 장치의 제조 과정에서는 아무런 문제가 발견되지 않았으나 이를 시스템에 장착하여 사용하는 과정에서는 오류가 발생하는 경우가 발생하고 있다.
이에 따라 반도체 메모리 장치를 시스템에 장착하여 사용하는 도중에도 반도체 메모리 장치에 대한 테스트 및 리페어를 수행할 수 있는 반도체 장치가 필요로 되고 있다.
본 기술은 반도체 메모리 장치가 시스템에 장착된 상태에서 반도체 메모리 장치에 대하여 테스트 및 리페어 등의 동작을 수행할 수 있는 반도체 장치를 제공한다.
본 발명의 일 실시예에 의한 반도체 장치는 프로세서 코어의 제어를 통해 제공되는 프로그램 코드를 저장하는 저장부 및 저장부에 저장된 프로그램 코드에 따라 반도체 메모리 장치에 대한 제어 동작을 수행하는 제어부를 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 저장부는 반도체 메모리 장치와 상이한 영역의 주소가 할당될 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 저장부는 프로그램 코드를 저장하는 제 1 영역, 프로그램 코드에서 사용하는 데이터를 저장하는 제 2 영역 및 반도체 메모리 장치로부터 읽은 데이터를 저장하는 제 3 영역을 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 프로그램 코드는 반도체 메모리 장치에 대한 제어 동작의 시작 또는 종료를 나타내는 제 1 코드와 제어 동작의 구체적인 내용을 나타내는 제 2 코드를 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 제어부는 프로그램 코드로부터 반도체 메모리 장치에 대하여 수행할 기능을 해석하는 함수 디코더 및 함수 디코더의 제어에 따라 프로그램 코드의 처리 순서를 제어하는 코드 제어부를 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 제어부는 프로그램 코드로부터 반도체 메모리 장치에 제공할 명령을 생성하는 명령 생성부 및 반도체 메모리 장치에 제공할 주소를 생성하는 주소 생성부를 더 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 제어부는 함수 디코더의 제어에 따라 반도체 메모리 장치에 기록할 제 1 데이터를 생성하거나 반도체 메모리 장치로부터 읽은 제 2 데이터를 저장하는 데이터 입출력부를 더 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 데이터 입출력부는 제 2 데이터를 저장부에 제공할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 제어부는 함수 디코더의 제어에 따라 코드 제어부의 동작을 지연하는 지연 제어부를 더 포함할 수 있다.
본 발명의 일 실시예에 의한 반도체 장치에서 제어부는 저장부에서 읽은 프로그램 코드를 임시 저장하는 버퍼를 더 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 프로세서 코어의 제어를 통해 제공되는 프로그램 코드를 저장하는 저장부, 저장부에 저장된 프로그램 코드에 따라 반도체 메모리 장치를 제어하는 제 1 제어부 및 프로세서 코어로부터의 요청을 처리하기 위해 반도체 메모리 장치를 제어하는 제 2 제어부를 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 프로세서 코어와의 연결을 위해 저장부 및 제 2 제어부가 공통으로 인터페이스되는 제 1 버스와 반도체 메모리 장치와의 연결을 위해 제 1 제어부 및 제 2 제어부가 공통으로 인터페이스되는 제 2 버스를 더 포함할 수 있다.
본 발명의 다른 실시예에 의한 반도체 장치는 프로세서 코어의 제어에 따라 저장부 또는 제 2 제어부를 선택적으로 프로세서 코어와 연결하는 제 1 선택부와 제 1 제어부의 제어에 따라 제 1 제어부 또는 제 2 제어부를 선택적으로 반도체 메모리 장치와 연결하는 제 2 선택부를 더 포함할 수 있다.
본 기술에 의한 반도체 장치를 통해 시스템에 장착되어 사용 중인 반도체 메모리 장치에 대하여 테스트 및 리페어 등의 다양한 동작을 수행할 수 있다. 본 기술에 의한 반도체 장치를 통해 시스템의 신뢰성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도.
도 2는 도 1의 프로그램 저장부의 구조.
도 3은 도 2의 프로그램 코드 영역에 프로그램 코드가 저장된 예.
도 4는 제어 프로토콜에 의한 프로그램 코드의 데이터 구조.
도 5는 메인 프로토콜에 의한 프로그램 코드의 데이터 구조.
도 6은 프로그램 저장부에 정보를 프로그램하기 위한 C언어 코드의 예.
도 7은 도 1의 제 1 제어부의 블록도.
도 8은 본 발명의 다른 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도.
도 9는 본 발명의 또 다른 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도.
이하에서는 첨부한 도면을 참조하여 본 발명에 의한 다양한 실시예들을 구체적으로 개시한다. 이하에서 동일한 참조번호는 실질적으로 동일한 구성요소를 지시한다.
도 1은 본 발명의 일 실시예에 의한 반도체 장치(1000)를 포함하는 시스템의 블록도이다.
본 실시예에서 반도체 장치(1000)는 프로그램 저장부(100)와 제 1 제어부(200)를 포함한다. 시스템은 프로세서(10)와 메모리 장치(20)를 더 포함할 수있다. 메모리 컨트롤러(30)는 메모리 장치(20)에 데이터를 저장하거나 메모리 장치(20)로부터 데이터를 읽어온다. 메모리 컨트롤러(30)는 프로세서(10) 내에 내장될 수도 있다.
본 실시예에서 프로세서(10)는 프로그램 저장부(100)에 프로그램 코드를 저장한다. 프로세서(10)의 프로그램 코드 저장 동작은 사용자가 운영체제상에서 동작시키는 응용프로그램을 통해 제어될 수 있다.
예를 들어 사용자는 제 1 제어부(200)에서 해석할 수 있는 미리 정해진 포맷의 프로그램 코드가 프로그램 저장부(100)에 저장되도록 응용프로그램에 전송 명령을 제공할 수 있다. 프로그램 코드는 응용프로그램을 통해 사용자가 직접 생성한 것일 수도 있고 이미 작성된 것으로서 다른 메모리 장치(미도시)에 저장된 것일 수도 있다. 이러한 프로그램 코드는 결과적으로 프로세서(10)의 제어를 통해 프로그램 저장부(100)에 저장된다.
도 6은 프로그램 코드 저장을 위해 사용자가 작성한 C 프로그램 코드를 예시한다. 이에 대해서는 아래에서 자세히 살펴본다.
본 실시예에 의한 반도체 장치(1000)는 메모리 장치(20)가 차지하는 시스템 주소와 상이한 영역의 주소를 차지하도록 설정될 수 있다. 프로세서(10)는 반도체 장치(1000)에 할당된 시스템 주소를 이용함으로써 응용프로그램으로부터 제공된 프로그램 코드를 프로그램 저장부(100)에 저장할 수 있다.
제 1 제어부(200)는 프로그램 저장부(100)에 저장되는 프로그램 코드를 해석하여 메모리 장치(20)를 제어하는 동작을 수행한다. 프로그램 저장부(100)와 제 1 제어부(200)의 상세한 구성 및 기능에 대해서는 이하에서 구체적으로 설명한다.
도 2는 도 1의 프로그램 저장부의 데이터 구조를 예시한다.
프로그램 저장부(100)는 프로그램 코드를 저장하는 프로그램 코드 영역(110), 프로그램 코드에서 사용하는 함수 데이터를 저장하는 함수 데이터 영역(120), 메모리 장치(30)에서 읽어온 데이터를 저장하는 등의 목적으로 유보된 유보 영역(130)을 포함한다.
프로그램 코드 영역(110)은 프로세서(10)로부터 제공되는 일련의 프로그램 코드를 저장한다. 제 1 제어부(200)는 일련의 프로그램 코드를 읽고 해석하여 메모리 장치(20)가 수행할 동작을 결정하고 이에 따라 명령, 주소 등의 정보를 메모리 장치(20)에 제공한다. 프로그램 코드 영역(110)에 저장되는 프로그램 코드는 메인 프로토콜 또는 제어 프로토콜에 의한 데이터 구조를 가진다.
함수 데이터 영역(120)은 프로그램 코드를 수행하는 과정에서 제 1 제어부(200)가 추가로 사용할 데이터를 저장하는 영역이다. 본 실시예에서 프로그램 코드 영역(110)과 함수 데이터 영역(120)의 주소는 서로 상관 관계를 가진다. 예를 들어 프로그램 코드 영역(110)에 저장된 프로그램 코드의 주소값에 미리 정해진 제 1 옵셋값을 더하면 해당 프로그램 코드에 대응하는 함수 데이터의 주소가 된다. 프로그램 코드 영역(110)에 메인 프로토콜에 의한 프로그램 코드가 기록될 때 필요한 함수 데이터가 있는 경우 이를 함수 데이터 영역(120)에 기록할 수 있다. 함수 데이터의 구체적인 데이터 구조는 예시하지 않았으나 이는 실시예에 따라 통상의 기술자에 의해 용이하게 수정 변경될 수 있다.
유보 영역(130)은 다른 목적을 위해 남겨진 영역이다. 예를 들어 제 1 제어부(200)에서 프로그램 코드에 따라 메모리 장치(20)를 제어한 결과 메모리 장치(20)에서 출력된 데이터가 저장되는 공간을 포함할 수 있다. 메모리 장치(20)에서 출력된 데이터가 저장되는 주소는 프로그램 코드의 주소와 상관 관계를 가질 수 있다. 예를 들어 프로그램 코드의 주소에 미리 정해진 제 2 옵셋값을 더하면 해당 프로그램 코드의 수행 결과 메모리 장치(20)로부터 출력된 데이터가 저장되는 곳의 주소가 될 수 있다.
도 3은 본 실시예에서 프로그램 저장 영역(110)에 프로그램 코드가 저장되는 예를 간략히 도시한 것이다.
프로그램 저장 영역(110)에 저장되는 프로그램 코드는 제어 프로토콜(CP) 또는 메인 프로토콜(MP)에 의한 데이터 구조를 가진다.
도 4에 도시된 바와 같이 제어 프로토콜에 의한 프로그램 코드는 메인 프로토콜에 의한 프로그램 코드들을 실행할 것을 지시하는 개시 비트(S)를 포함할 수 있다. 본 실시예에서 프로세서(10)는 메인 프로토콜에 의한 프로그램 코드들을 먼저 저장하고 제어 프로토콜에 의한 프로그램 코드를 가장 나중에 저장한다.
제 1 제어부(200)는 제어 프로토콜에 의한 프로그램 코드에서 개시 비트가 활성화되었는지를 관찰하다가 개시 비트가 활성화되었으면 이미 저장된 메인 프로토콜에 의한 프로그램 코드를 순차적으로 처리하기 시작한다.
제 1 제어부(200)가 제어 프로토콜에 의한 프로그램 코드를 식별하는 구체적인 방법은 실시예에 따라 달라질 수 있다. 본 실시예에서는 특정 주소(0)에 제어 프로토콜에 의한 프로그램 코드를 기록한다. 따라서 본 실시예에 의한 제 1 제어부(200)는 프로그램 저장부(100)의 0번 주소의 개시 비트(도 4의 0번 비트)가 1로 되는지 여부를 관찰하고 있다가 해당 비트가 1로 되면 프로그램 저장부(100)의 4번 주소에 기록된 프로그램 코드부터 순차적으로 처리하기 시작한다.
본 실시예에서 프로세서(10)는 먼저 프로그램 저장부(100)의 4번 ~ 4N번 주소에 메인 프로토콜에 의한 프로그램 코드를 저장한다. 이때 함수 데이터 영역(120)에 데이터를 저장할 필요가 있는 경우 함수 데이터를 함께 저장하게 된다. 가장 마지막으로 0번 주소에 제어 프로토콜에 의한 프로그램 코드를 입력함으로써 제어 프로토콜에 의한 프로그램 코드를 프로그램 저장부(100)에 저장한 이후에 프로그램 코드들을 실행하도록 하였다.
프로그램 코드들의 저장 순서와 이들을 실행을 개시하기 위한 구체적인 방법은 실시예에 따라 달라질 수 있으며 통상의 기술자라면 본 개시를 참조하여 용이하게 설계변경할 수 있다.
도 4와 같이 제어 프로토콜에 의한 프로그램 코드는 메인 프로토콜에 의한 프로그램 코드의 실행이 완료되었음을 표시하는 완료 플래그(C), 유보 영역(130)에 빈 공간이 없음을 표시하는 플래그(F) 등을 더 포함할 수 있다. 프로세서(10)는 제어 프로토콜에 의한 프로그램 코드의 완료 플래그(C)를 조회함으로써 처리 동작이 완료되었는지 식별할 수 있다.
도 5는 메인 프로토콜에 의한 프로그램 코드의 일 예를 나타낸다.
본 실시예의 메인 프로토콜에 의한 프로그램 코드는 명령 필드(CMD), 뱅크 주소 필드(BA), 주소 필드(Address), 함수 코드 필드(FCode), 함수 호출 필드(FCall) 등의 필드를 포함한다.
제 1 제어부(200)는 메인 프로토콜에 포함된 각 필드의 내용을 해석하여 메모리 장치(20)가 수행할 동작을 결정하고 이에 따라 명령, 주소 등의 정보를 메모리 장치(20)에 제공한다.
본 실시예에서 명령 필드에 저장된 정보는 메모리 장치(20)에 제공할 명령을 포함한다. 뱅크 주소 필드는 메모리 장치(20)에 제공할 뱅크 주소를 포함한다. 주소 필드는 메모리 장치(20)에 제공할 주소를 포함한다.
명령 필드, 뱅크 주소 필드, 주소 필드는 메모리 장치(20)의 해당 핀들에 물리적으로 1:1 매핑될 수 있다. 그러나 다른 실시예에서는 이들이 1:1로 매핑되지 않을 수 있으며 이 경우 제 1 제어부(200)는 해당 필드의 데이터들을 디코딩하여 메모리 장치(20)에 제공할 수 있다.
함수 코드 필드는 전술한 명령, 주소 등을 이용하여 메모리 장치(20)를 제어하는 동작 외에 제 1 제어부(200)에서 추가로 수행할 기능을 표시한다. 함수 호출 필드는 호출할 함수가 있는지 여부를 표시한다.
함수 호출 필드는 실시예에 따라 함수 코드 필드와 결합될 수 있다. 예를 들어 함수 코드를 특정값으로 설정함으로써 함수를 호출할 필요가 없음을 표시할 수 있는데 이 경우 함수 호출 필드를 사용하지 않을 수도 있다.
도 5에는 함수 코드의 구체적인 값과 각 코드값에 대응하는 기능이 예시되어 있다.
예를 들어 함수 코드 "00000"는 현재 프로그램 코드를 수행하고 다음 프로그램 코드를 수행하기 전에 사용자가 지정한 시간만큼 지연하는 것을 의미한다. 이때 사용자가 지정한 시간은 해당 프로그램 코드에 대응하는 함수 데이터에 저장될 수 있다. 함수 데이터는 전술한 바와 같이 함수 데이터 영역(120)에 저장되며 함수 데이터가 저장되는 주소는 해당 프로그램 코드의 주소와 미리 정해진 옵셋값을 통해 서로 연관될 수 있다.
함수 코드 "00001"은 MRS 제어 동작시의 지연 기능을 의미한다. 프로그램 코드에 해당 함수 코드가 있는 경우 제 2 제어부(200)는 미리 정해진 시간 동안 지연한 이후 다음 프로그램 코드를 수행한다. 본 실시예의 경우 지연 시간이 미리 고정되어 함수 데이터를 필요로 하지 않는다.
함수 코드 "00010"은 명령(CMD)을 실행하는데 있어서 뱅크 주소 필드 및 주소 필드를 사용하는 대신에 함수 데이터에 저장된 주소를 사용할 것을 나타낸다.
함수 코드 "00011"은 메모리 장치(20)의 DQS(DQ Strobe) 신호를 고정시키도록 제어하고, 함수 코드 "00100"은 메모리 장치(20)의 DQS 신호를 고정하지 않도록 제어한다. DQS 신호를 고정하는 경우 고정할 레벨에 관한 정보는 함수 데이터를 통해 제공될 수 있다.
함수 코드 "00101"은 함수 데이터에 저장된 데이터를 메모리 장치(20)에 제공하도록 제어한다.
함수 코드 "11110"은 현재 프로그램 코드를 다시 수행하도록 한다.
함수 코드 "11111"은 프로그램 코드에 대한 처리 동작을 종료하도록 한다. 따라서 함수 코드 "11111"은 가장 마지막 프로그램 코드(도 3의 프로그램 코드 #N)에 설정되는 것이 바람직하다. 함수 코드 "11111"이 실행되는 경우 제 1 제어부(200)는 제어 프로토콜에 의한 완료 플래그(도 4의 C)를 하이로 설정할 수 있다.
도 6은 프로그램 저장부(010)에 프로그램 코드와 함수 데이터를 저장하기 위한 C 프로그램의 예를 도시한다.
도시된 예는 TMRS 입력을 통해 메모리 장치(20)를 제어하는 코드이다. TMRS는 확장된 형태의 MRS로서 메모리 내부 전압 조절, 메모리 장치의 파라미터 조절, 리던던시 테스트, 압축 테스트 등의 다양한 제어 동작을 위해 사용될 수 있다.
사용자는 해당 코드를 작성하여 실행시킴으로써 프로그램 저장부(100)의 특정 주소에 프로그램 코드와 함수 데이터를 저장할 수 있다. 본 실시예에서는 전술한 바와 같이 메인 프로토콜에 의한 프로그램 코드와 이에 대응하는 함수 데이터를 기록한 이후 마지막으로 개시 비트가 활성화된 제어 프로토콜에 의한 프로그램 코드를 입력한다. 프로그램 저장부(100)에 저장된 제어 동작이 개시된다.
도 7은 도 1의 제 1 제어부(200)를 나타내는 블록도이다. 본 실시예에서 제 1 제어부(200)는 코드 제어부(210), 함수 디코더(220), 명령 생성부(230), 주소 생성부(240), 데이터 입출력부(250), 버퍼(260), 지연 제어부(270)를 포함할 수 있다.
코드 제어부(210)는 프로그램 저장부(100)에서 읽어올 프로그램 코드를 지시하는 프로그램 카운터(미도시)를 포함할 수 있으며 프로그램 카운터(미도시)에 현재 주소값을 설정함으로써 수행할 프로그램 코드를 지시할 수 있다.
코드 제어부(210)는 프로그램 저장부(100)의 제어 프로토콜에 의한 프로그램 코드를 감시하여 개시 비트(도 4의 S)가 활성화된 경우 메인 프로토콜에 의한 첫 번째 프로그램 코드(도 3의 프로그램 코드 #1)를 버퍼(260)로 읽어오기 시작한다. 본 실시예는 이때 코드 제어부(210)의 프로그램 카운터(미도시)의 현재 주소값으로 4를 설정한다.
본 실시예에서 제어 프로토콜에 의한 프로그램 코드는 메인 프로토콜에 의한 프로그램 코드들이 모두 기록된 이후 프로그램 저장부(110)의 0번 주소에 저장되고 개시 비트는 그 0번 비트에 저장되므로 코드 제어부(210)는 매 클록마다 개시 비트의 값의 변화를 관찰함으로써 개시 비트가 활성화된 제어 프로토콜의 프로그램 코드가 입력되었는지 알 수 있다.
이후 코드 제어부(210)는 함수 디코더(220), 지연 제어부(270) 등의 제어에 따라 다음에 읽어올 프로그램 코드의 주소를 결정하고 이를 프로그램 저장부(100)에 제공한다.
버퍼(260)는 현재 처리할 프로그램 코드와 프로그램 코드에 연관된 함수 데이터를 임시로 저장한다.
함수 디코더(220)는 프로그램 코드의 함수 코드 필드(도 5의 FCode)와 함수 호출 필드(FCall)의 데이터를 참조하여 수행할 기능을 식별하고 식별된 기능에 대응하는 제어 신호를 다른 구성요소들에 제공한다.
예를 들어 함수 호출 필드가 0이어서 아무 기능도 수행하지 않는 경우 함수 디코더(220)는 코드 제어부(210)를 제어하여 프로그램 카운터가 다음 프로그램 코드의 주소를 지시도록 한다. 본 실시예에서 다음 주소는 현재 주소에 4를 더한 값이다.
함수 코드가 "00000"인 경우 함수 디코더(220)는 지연 제어부(270)를 제어하여 함수 데이터에 지시된 시간만큼 지연하도록 제어한다. 지연 제어부(270)는 지연된 시간이 경과하면 완료 신호(Done)를 코드 제어부(210)에 제공한다. 완료 신호를 수신한 코드 제어부(2100는 프로그램 카운터의 주소값을 다음 프로그램 코드의 주소값으로 갱신한다.
함수 코드가 "11110"인 경우 함수 디코더(220)는 코드 제어부(210)를 제어하여 프로그램 카운터의 다음 주소값이 현재 프로그램 코드의 주소값과 동일하게 되도록 제어하여 현재 프로그램 코드가 재차 수행되도록 한다.
함수 코드가 "00010"인 경우 함수 디코더(220)는 뱅크 주소 또는 주소 필드의 주소 대신에 함수 데이터를 주소로 사용하도록 주소 생성부(240)를 제어한다.
함수 코드가 "00011"인 경우 함수 디코더(220)는 함수 데이터를 참조하여 데이터 입출력부(250)를 제어한다. 데이터 입출력부(250)는 함수 데이터에 따라 고정된 DQS 신호를 생성하여 메모리 장치(20)에 제공한다. 함수 코드가 "00100"인 경우 함수 디코더(220)는 DQS 신호가 고정되지 않도록 데이터 입출력부(250)를 제어한다.
함수 코드가 "00101"인 경우 함수 디코더(220)는 함수 데이터를 참조하여 메모리 장치에 입력할 데이터를 생성하도록 데이터 입출력부(250)를 제어한다.
명령 생성부(230)는 프로그램 코드의 명령 필드(도 5의 CMD)를 참조하여 메모리 장치(20)에 제공할 명령을 생성한다. 본 실시예의 경우 명령 필드가 메모리 장치(20)의 해당 핀들과 1:1로 매핑되나 다른 실시예에서는 매핑 관계가 달라질 수 있다. 이 경우 명령 생성부(230)는 프로그램 저장부(100)에서 제공된 해당 정보를 디코딩하여 메모리 장치(20)에 제공할 명령을 생성할 수 있다.
주소 생성부(240)는 함수 디코더(220)의 제어에 따라 프로그램 코드의 뱅크 주소 필드, 주소 필드(도 5의 BA, Address) 또는 함수 데이터에 제공된 데이터를 이용하여 주소를 생성하고 이를 메모리 장치(20)에 제공한다. 본 실시예의 경우 뱅크 주소 필드, 주소 필드 및 함수 데이터에 포함된 주소 데이터 필드가 메모리 장치(20)의 해당 핀들과 1:1로 매핑되나 다른 실시예에서는 매핑 관계가 달라질 수 있다. 이 경우 주소 생성부(240)는 프로그램 저장부(100)에서 제공된 정보들을 디코딩하여 메모리 장치(20)에 주소를 제공할 수 있다.
데이터 입출력부(250)는 함수 디코더(220)를 통해 제공되는 함수 데이터를 이용하여 생성한 DQS 신호 또는 데이터 신호를 메모리 장치(20)에 제공하거나, 읽기 명령이 메모리 장치(20)에 제공되는 경우 메모리 장치(20)로부터 제공되는 데이터를 수신하고 수신된 데이터가 프로그램 저장부(100)에 저장하도록 한다. 이때 수신된 데이터는 프로그램 저장부(100)의 유보 영역(130)에 저장되며 저장되는 주소는 해당 프로그램 코드의 주소와 연관될 수 있다.
지연 제어부(270)는 전술한 바와 같이 함수 디코더(220)에서 함수 데이터에 의한 지연을 명령하면 함수 데이터에 정해진 시간만큼 지연한 이후 완료 여부를 코드 생성부(210)에 제공한다. 만일 함수 디코더(220)에서 미리 정해진 시간의 지연을 명령하면 함수 데이터를 참조하지 않고 미리 정해진 시간만큼 지연한 이후 완료 여부를 코드 생성부(210)에 제공한다.
지연 제어부(270)는 미리 정해진 시간 또는 함수 데이터를 통해 지시된 시간만큼 지연하기 위하여 카운터(미도시)를 포함할 수 있다.
지연 기능은 메모리 장치(20)의 동작에 필요한 타이밍 조건을 충족시키면서 메모리 장치(20)를 제어하기 위하여 각 프로그램 코드 사이에 소정의 지연 시간을 설정할 필요가 있는 경우에 유용하게 사용될 수 있다.
전술한 바와 같은 구성을 사용하여 사용자는 프로그램 저장부(100)에 메모리 장치(20)의 테스트를 위한 프로그램 코드들을 저장하고 이를 실행시킬 수 있다. 이를 통해 사용자는 메모리 장치에서 불량이 발생하는 셀, 워드라인, 비트라인의 위치를 파악할 수 있다.
최근 레이저에 의해서 커팅되는 퓨즈 외에 메모리 장치(20)에 입력되는 신호에 의해 파괴될 수 있는 프로그램 수단(예를 들어 E-퓨즈 어레이)을 구비한 메모리 장치(20)가 소개되고 있다. 이러한 메모리 장치(20)들의 경우 메모리 장치(20)에 특정 순서로 입력 신호를 제공함으로써 워드라인 또는 비트라인의 구제를 수행할 수 있다.
본 실시예에 의한 반도체 장치는 E-퓨즈 어레이 등의 프로그램이 가능한 프로그램 수단을 구비한 메모리 장치와 함께 사용되는 경우 프로그램 기능에 의해 리페어 동작을 용이하게 수행할 수 있도록 한다.
예를 들어 사용자는 테스트 결과를 바탕으로 리페어가 수행되어야 할 워드라인, 비트라인 등의 정보를 파악할 수 있다. 이에 따라 사용자는 리페어를 수행하기 위하여 메모리 장치에 제공할 신호들의 순서를 정하고 이에 따라 프로그램 코드들 및 함수 데이터의 집합을 완성할 수 있다. 이러한 동작은 도 6에 예시된 바와 같은 프로그램 동작을 응용함으로써 수행될 수 있다.
사용자는 완성된 프로그램 코드와 이에 대응하는 함수 데이터들을 프로그램 저장부(100)에 저장한 이후 이를 실행시킬 수 있다. 동작이 완료된 경우 리페어 동작이 정상적으로 수행되었는지를 확인하기 위한 추가적인 테스트 동작을 실행시킬 수 있다.
도 8은 본 발명의 다른 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도이다.
본 실시예에 의한 반도체 장치(2000)는 종래의 메모리 컨트롤러(30)에 대응하는 제 2 제어부(300)를 함께 포함하는 점에서 전술한 실시예와 차이가 있을 뿐 프로그램 저장부(100)와 제 1 제어부(200)의 구성 및 동작은 실질적으로 동일하다. 제 2 제어부(300)의 구성 및 기능은 종래의 메모리 컨트롤러(30)와 실질적으로 동일하므로 구체적인 설명은 생략한다.
본 실시예에 의한 반도체 장치(2000)는 외부의 시스템 버스와 인터페이스되는 제 1 버스(410)를 더 포함하고 제 1 버스(410)는 반도체 장치(2000)의 내부에서 프로그램 저장부(100) 및 제 2 제어부(300)와 인터페이스된다.
또한 본 실시예에 의한 반도체 장치(2000)는 메모리 장치(20)와 인터페이스되는 제 2 버스(420)를 더 포함하고, 제 2 버스(420)는 반도체 장치(2000)의 내부에서 제 1 제어부(200) 및 제 2 제어부(300)와 인터페이스된다.
본 실시예에서 반도체 장치(2000)와 메모리 장치(20)는 시스템 상에서 서로 구별되는 주소 영역을 차지한다.
이에 따라 프로그램 저장부(100)와 제 2 제어부(300)는 대응하는 주소 영역을 벗어나는 신호가 시스템 버스에 제공되는 경우 신호의 충돌을 방지하기 위하여 제 1 버스(410)와 인터페이스되는 포트를 하이임피던스 상태로 설정할 수 있다.
마찬가지로 제 1 제어부(200) 또는 제 2 제어부(300)는 자신이 동작하지 않는 경우 제 2 버스(420)와 인터페이스되는 포트를 하이임피던스 상태로 설정할 수 있다.
도 9는 본 발명의 또 다른 실시예에 의한 반도체 장치를 포함하는 시스템의 블록도이다.
도 9에 도시된 실시예는 도 8에 도시된 실시예와 실질적으로 동일하나 제 1 버스(410) 대신 제 1 선택부(510)를 포함하고 제 2 버스(420) 대신 제 2 선택부(520)를 포함하는 점에서 차이가 있다.
제 1 선택부(510)는 시스템 버스로부터 전달된 주소 신호를 제 1 선택 신호로 이용하여 반도체 장치(3000)와 메모리 장치(20) 중 어느 하나가 시스템 버스와 연결되도록 제어할 수 있다.
제 2 선택부(520)는 제 1 제어부(200)가 메모리 장치(20)를 제어하고 있음을 나타내는 신호를 제 2 선택 신호로 이용하여 제 1 제어부(200) 또는 제 2 제어부(300) 중 하나가 메모리 장치(20)와 연결되도록 제어할 수 있다.
이때 제 2 선택 신호는 제 1 선택 신호, 프로그램 저장부(100)에 저장된 제어 프로토콜에 의한 프로그램 코드의 정보 등을 조합하여 통상의 기술자가 용이하게 구현할 수 있다.
이상의 설명은 본 발명의 개시를 위한 것으로서 본 발명의 권리범위를 한정하고자 한 것은 아니다. 본 발명의 권리범위는 특허청구범위에 기재된 범위와 그 균등범위에 의해 정해진다.
1000, 2000, 3000: 반도체 장치
100: 프로그램 저장부
110: 프로그램 코드 영역
120: 함수 데이터 영역
130: 유보 영역
200: 제 1 제어부
210: 코드 제어부
220: 함수 디코더
230: 명령 생성부
240: 주소 생성부
250: 데이터 입출력부
260: 버퍼
270: 지연 제어부
300: 제 2 제어부
10: 프로세서
20: 메모리 장치
30: 메모리 컨트롤러

Claims (20)

  1. 프로세서 코어의 제어를 통해 제공되는 프로그램 코드를 저장하는 저장부; 및
    상기 저장부에 저장된 프로그램 코드에 따라 반도체 메모리 장치에 대한 제어 동작을 수행하는 제어부
    를 포함하는 반도체 장치.
  2. 청구항 1에 있어서, 상기 저장부는 상기 반도체 메모리 장치와 상이한 영역의 주소가 할당되는 반도체 장치.
  3. 청구항 1에 있어서, 상기 저장부는 상기 프로그램 코드를 저장하는 제 1 영역, 상기 프로그램 코드에서 사용하는 데이터를 저장하는 제 2 영역 및 상기 반도체 메모리 장치로부터 읽은 데이터를 저장하는 제 3 영역을 포함하는 반도체 장치.
  4. 청구항 1에 있어서, 상기 프로그램 코드는 상기 반도체 메모리 장치에 대한 제어 동작의 시작 또는 종료를 나타내는 제 1 코드와 상기 제어 동작의 구체적인 내용을 나타내는 제 2 코드를 포함하는 반도체 장치.
  5. 청구항 1에 있어서, 상기 제어부는 상기 프로그램 코드로부터 상기 반도체 메모리 장치에 대하여 수행할 기능을 해석하는 함수 디코더 및 상기 함수 디코더의 제어에 따라 상기 프로그램 코드의 처리 순서를 제어하는 코드 제어부
    를 포함하는 반도체 장치.
  6. 청구항 5에 있어서, 상기 제어부는 상기 프로그램 코드로부터 상기 반도체 메모리 장치에 제공할 명령을 생성하는 명령 생성부 및 상기 반도체 메모리 장치에 제공할 주소를 생성하는 주소 생성부를 더 포함하는 반도체 장치.
  7. 청구항 6에 있어서, 상기 제어부는 상기 함수 디코더의 제어에 따라 상기 반도체 메모리 장치에 기록할 제 1 데이터를 생성하거나 상기 반도체 메모리 장치로부터 읽은 제 2 데이터를 저장하는 데이터 입출력부를 더 포함하는 반도체 장치.
  8. 청구항 7에 있어서, 상기 데이터 입출력부는 상기 제 2 데이터를 상기 저장부에 제공하는 반도체 장치.
  9. 청구항 5에 있어서, 상기 제어부는 상기 함수 디코더의 제어에 따라 상기 코드 제어부의 동작을 지연하는 지연 제어부를 더 포함하는 반도체 장치.
  10. 청구항 5에 있어서, 상기 제어부는 상기 저장부에서 읽은 프로그램 코드를 임시 저장하는 버퍼를 더 포함하는 반도체 장치.
  11. 프로세서 코어의 제어를 통해 제공되는 프로그램 코드를 저장하는 저장부;
    상기 저장부에 저장된 프로그램 코드에 따라 반도체 메모리 장치를 제어하는 제 1 제어부 및
    상기 프로세서 코어로부터의 요청을 처리하기 위해 상기 반도체 메모리 장치를 제어하는 제 2 제어부
    를 포함하는 반도체 장치.
  12. 청구항 11에 있어서, 상기 저장부는 상기 반도체 메모리 장치와 상이한 영역의 주소가 할당되는 반도체 장치.
  13. 청구항 11에 있어서, 상기 프로세서 코어와의 연결을 위해 상기 저장부 및 상기 제 2 제어부가 공통으로 인터페이스되는 제 1 버스를 더 포함하는 반도체 장치.
  14. 청구항 13에 있어서, 상기 반도체 메모리 장치와의 연결을 위해 상기 제 1 제어부 및 상기 제 2 제어부가 공통으로 인터페이스되는 제 2 버스를 더 포함하는 반도체 장치.
  15. 청구항 11에 있어서, 상기 프로세서 코어의 제어에 따라 상기 저장부 또는 상기 제 2 제어부를 선택적으로 상기 프로세서 코어와 연결하는 제 1 선택부를 더 포함하는 반도체 장치.
  16. 청구항 15에 있어서, 상기 제 1 제어부의 제어에 따라 상기 제 1 제어부 또는 상기 제 2 제어부를 선택적으로 상기 반도체 메모리 장치와 연결하는 제 2 선택부를 더 포함하는 반도체 장치.
  17. 청구항 11에 있어서, 상기 저장부는 상기 프로그램 코드를 저장하는 제 1 영역, 상기 프로그램 코드에서 사용하는 데이터를 저장하는 제 2 영역 및 상기 반도체 메모리 장치로부터 읽은 데이터를 저장하는 제 3 영역을 포함하는 반도체 장치.
  18. 청구항 11에 있어서, 상기 제 1 제어부는 상기 프로그램 코드로부터 상기 반도체 메모리 장치에 대하여 수행할 기능을 해석하는 함수 디코더 및 상기 함수 디코더의 제어에 따라 상기 프로그램 코드의 처리 순서를 제어하는 코드 제어부를 포함하는 반도체 장치.
  19. 청구항 18에 있어서, 상기 제 1 제어부는 상기 프로그램 코드로부터 상기 반도체 메모리 장치에 제공할 명령을 생성하는 명령 생성부, 상기 반도체 메모리 장치에 제공할 주소를 생성하는 주소 생성부 및 상기 함수 디코더의 제어에 따라 상기 반도체 메모리 장치에 기록할 제 1 데이터를 생성하거나 상기 반도체 메모리 장치로부터 읽은 제 2 데이터를 저장하는 데이터 입출력부를 더 포함하는 반도체 장치.
  20. 청구항 19에 있어서, 상기 제 1 제어부는 상기 함수 디코더의 제어에 따라 상기 코드 제어부를 지연하는 지연 제어부를 더 포함하는 반도체 장치.
KR1020130043884A 2013-04-22 2013-04-22 반도체 장치 KR20140125985A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130043884A KR20140125985A (ko) 2013-04-22 2013-04-22 반도체 장치
US14/253,971 US9690723B2 (en) 2013-04-22 2014-04-16 Semiconductor device for performing test and repair operations

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130043884A KR20140125985A (ko) 2013-04-22 2013-04-22 반도체 장치

Publications (1)

Publication Number Publication Date
KR20140125985A true KR20140125985A (ko) 2014-10-30

Family

ID=51729920

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130043884A KR20140125985A (ko) 2013-04-22 2013-04-22 반도체 장치

Country Status (2)

Country Link
US (1) US9690723B2 (ko)
KR (1) KR20140125985A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI553483B (zh) * 2014-10-13 2016-10-11 瑞昱半導體股份有限公司 處理器及存取記憶體的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560740B1 (en) 1999-08-03 2003-05-06 Advanced Micro Devices, Inc. Apparatus and method for programmable built-in self-test and self-repair of embedded memory
JP2002109899A (ja) * 2000-07-26 2002-04-12 Mitsubishi Electric Corp 半導体記憶装置およびそれを備える半導体集積回路装置
US7325178B2 (en) 2003-12-05 2008-01-29 Texas Instruments Incorporated Programmable built in self test of memory
KR100643287B1 (ko) * 2004-11-19 2006-11-10 삼성전자주식회사 플래시 메모리의 데이터 처리 장치 및 방법
JP2007249662A (ja) * 2006-03-16 2007-09-27 Toshiba Corp メモリカード及びメモリカードの制御方法
JP4950796B2 (ja) * 2007-07-31 2012-06-13 株式会社東芝 半導体装置

Also Published As

Publication number Publication date
US20140317332A1 (en) 2014-10-23
US9690723B2 (en) 2017-06-27

Similar Documents

Publication Publication Date Title
JP2005266861A (ja) マイクロコンピュータ及びそのテスト方法
US20220101941A1 (en) Memory controllers having simplified bisr logic circuit, methods of operating the memory controller, and memory systems including the memory controller
KR101877939B1 (ko) 테스트 회로, 메모리 시스템 및 메모리 시스템의 테스트 방법
US20170194054A1 (en) Eeprom backup method and device
US20150124542A1 (en) Semiconductor memory device, semiconductor memory module and operation methods thereof
US9396809B2 (en) Semiconductor memory device and memory system including the same
US20120008360A1 (en) Multi-chip package and method of operating the same
KR20140125985A (ko) 반도체 장치
KR20160138767A (ko) 반도체 메모리 장치 및 그 동작 방법
CN104282343B (zh) 半导体系统及其修复方法
US7047444B2 (en) Address selection for testing of a microprocessor
US20140369106A1 (en) Semiconductor device with fuse array and operating method thereof
JP2017162011A (ja) メモリデバイス用テスト回路及びこれを含む半導体集積装置
US8537624B2 (en) Semiconductor memory device and method of operating the same
KR20090107689A (ko) 반도체 장치
JP2010134789A (ja) 要求処理装置、要求処理システムおよびアクセス試験方法
KR102179568B1 (ko) 반도체장치 및 반도체시스템
KR100834915B1 (ko) Pc를 이용하여 테스트하기 위한 임베디드 시스템 및 그방법
KR101001143B1 (ko) 비휘발성 메모리장치 및 이의 동작방법
US20050068818A1 (en) Semiconductor device and method for testing semiconductor device
KR20140017075A (ko) 반도체 메모리 장치 및 그 동작 방법
JP6133386B2 (ja) 半導体メモリ装置
KR101212748B1 (ko) 반도체 메모리, 메모리 시스템 및 그 프로그래밍 방법
JPWO2009122700A1 (ja) 試験装置および試験方法
JP4757196B2 (ja) メモリシステム、およびその試験方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid