KR102533377B1 - 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법 - Google Patents

로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법 Download PDF

Info

Publication number
KR102533377B1
KR102533377B1 KR1020180043330A KR20180043330A KR102533377B1 KR 102533377 B1 KR102533377 B1 KR 102533377B1 KR 1020180043330 A KR1020180043330 A KR 1020180043330A KR 20180043330 A KR20180043330 A KR 20180043330A KR 102533377 B1 KR102533377 B1 KR 102533377B1
Authority
KR
South Korea
Prior art keywords
loads
memory
memory device
load generator
test
Prior art date
Application number
KR1020180043330A
Other languages
English (en)
Other versions
KR20190119860A (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 KR1020180043330A priority Critical patent/KR102533377B1/ko
Priority to US16/192,989 priority patent/US10923210B2/en
Priority to CN201910188874.7A priority patent/CN110379453B/zh
Publication of KR20190119860A publication Critical patent/KR20190119860A/ko
Application granted granted Critical
Publication of KR102533377B1 publication Critical patent/KR102533377B1/ko

Links

Images

Classifications

    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/36Data generation devices, e.g. data inverters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/48Arrangements in static stores specially adapted for testing by means external to the store, e.g. using direct memory access [DMA] or using auxiliary access paths
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2736Tester hardware, i.e. output processing circuits using a dedicated service processor for test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

본 개시는 로드 생성기 및 메모리 컨트롤러를 포함하는 메모리 장치를 제공한다. 로드 생성기는, 마스터 장치들의 속성들 및 특성들과 무관하게, 메모리로의 제 1 액세스들을 위한 로드들을 출력한다. 로드 생성기는 로드들을 출력하기 위한 대역폭의 변경 없이 일정한 대역폭으로 로드들을 출력한다. 메모리 컨트롤러는 로드 생성기로부터 로드들을 수신하거나 또는 버스를 통해 마스터 장치들로부터 메모리로의 제 2 액세스들을 위한 요청들을 수신한다. 메모리 컨트롤러는 제 1 액세스들과 관련되는 동작들이 메모리에서 수행되도록 로드들을 처리하거나 또는 제 2 액세스들과 관련되는 동작들이 메모리에서 수행되도록 요청들을 처리한다. 메모리 컨트롤러는 요청들을 처리하는 방식과 동일한 방식으로 로드들을 처리한다.

Description

로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법 {MEMORY DEVICE INCLUDING LOAD GENERATOR AND METHOD OF OPERATING THE SAME}
본 개시는 전자 장치에 관한 것으로, 좀 더 구체적으로는 전자 장치를 테스트하기 위한 구성들 및 동작들에 관한 것이다.
근래 다양한 유형의 전자 장치들이 이용되고 있다. 전자 장치는 그것에 포함되는 전자 회로들의 동작들에 따라 고유의 기능들을 수행하고, 사용자에게 서비스를 제공한다. 전자 장치는 단독으로 동작하며 사용자에게 서비스를 제공할 수 있고, 또는 다른 전자 장치와 통신하며 사용자에게 서비스를 제공할 수 있다.
메모리 장치는 전자 장치들의 한 예이다. 메모리 장치는 그것에 포함되는 전자 회로들의 동작들에 따라 데이터를 저장하거나 출력한다. 메모리 장치는 다른 장치의 요청에 응답하여 데이터 저장 및 데이터 출력의 서비스를 제공한다.
전자 장치는 동작 환경(Condition)에 의존하는 요구사항(Requirement)들에 대응하는 특성들을 가질 수 있다. 전자 장치는 그것이 동작하는 환경에서 요구되는 특성들을 갖도록 다양하게 설계될 수 있다. 예로서, 메모리 장치는 사용자 또는 시스템에 의해 요구되는 다양한 특성(예컨대, 용량, 동작 주파수, 대역폭 등)을 가질 수 있다.
한편, 전자 장치가 사용자에게 판매되거나 시스템에 채용되기 전에, 전자 장치가 요구사항들을 충족시키면서 정상적으로 동작하는지 테스트하기 위해 테스트 절차가 수행될 수 있다. 테스트 절차 동안, 전자 장치는 의도된 환경 또는 의도된 시나리오 하에서 오류 또는 장애 없이 정상적인 서비스를 제공할 수 있는지 테스트될 수 있다. 전자 장치의 테스트는 사용자의 만족도 및 시스템의 신뢰성을 향상시킬 수 있다. 그러나, 전자 장치를 테스트하는 데에 비용, 시간 등의 자원이 소모될 수 있고, 따라서 효율적인 테스트 절차를 수행하는 것은 중요한 이슈일 수 있다.
본 개시의 실시 예들은 마스터 장치들의 속성들 및 특성들과 무관하게 전자 장치(예컨대, 메모리 장치)의 동작들과 관련하여 요구되는 환경에서 전자 장치를 테스트하기 위한 구성들 및 동작들을 제공할 수 있다.
몇몇 실시 예에서, 메모리 장치는 로드 생성기 및 메모리 컨트롤러를 포함할 수 있다. 로드 생성기는 메모리로의 제 1 액세스들을 위한 로드(Load)들을 출력할 수 있다. 메모리 컨트롤러는 로드 생성기로부터 로드들을 수신하거나 또는 버스를 통해 마스터 장치들로부터 메모리로의 제 2 액세스들을 위한 요청들을 수신할 수 있다. 메모리 컨트롤러는 제 1 액세스들과 관련되는 동작들이 메모리에서 수행되도록 로드들을 처리하거나 또는 제 2 액세스들과 관련되는 동작들이 메모리에서 수행되도록 요청들을 처리할 수 있다. 로드 생성기는 마스터 장치들의 속성들 및 특성들과 무관하게 로드들을 출력할 수 있다. 메모리 컨트롤러는 요청들을 처리하는 방식과 동일한 방식으로 로드들을 처리할 수 있다.
몇몇 실시 예에서, 메모리 컨트롤러는 메모리를 제어하기 위해 로드 생성기, 인터페이스 회로, 및 기능 회로들을 포함할 수 있다. 로드 생성기는 메모리로의 제 1 액세스들을 위한 로드들을 출력할 수 있다. 인터페이스 회로는 로드 생성기로부터 로드들을 수신하거나 또는 버스로부터 메모리로의 제 2 액세스들을 위한 요청들을 수신할 수 있다. 기능 회로들은 인터페이스 회로로부터 로드들 또는 요청들을 수신할 수 있다. 기능 회로들은 제 1 액세스들과 관련되는 동작들이 메모리에서 수행되도록 로드들을 처리하거나 또는 제 2 액세스들과 관련되는 동작들이 메모리에서 수행되도록 요청들을 처리할 수 있다. 테스트 활성화에 응답하여, 로드 생성기는 로드들이 요청들의 포맷과 동등한 포맷을 갖도록 로드들을 출력할 수 있고, 인터페이스 회로는 요청들을 수신함이 없이 로드들을 수신할 수 있다. 예로서, 기능 회로들은 로드들 각각을 반복 없이 한 번씩 처리할 수 있다. 예로서, 기능 회로들에서 로드들을 수신하고 처리하는 것은 기능 회로들에서 요청들을 수신하고 처리하는 것과 배타적일 수 있다.
몇몇 실시 예에서, 메모리 장치를 동작시키는 방법은, 메모리 장치의 테스트를 위한 활성화 신호를 수신하는 단계, 활성화 신호에 응답하여 메모리 장치를 위한 로드 생성기를 활성화시키는 단계, 활성화된 로드 생성기에 의해 메모리 장치의 메모리로의 액세스들을 위한 로드들을 생성하는 단계, 및 메모리 장치의 메모리 컨트롤러에 의해 액세스들과 관련되는 동작들이 메모리에서 수행되도록 로드들을 처리하는 단계를 포함할 수 있다. 로드들을 생성하는 단계는 로드들을 출력하기 위한 대역폭의 변경 없이 일정한 대역폭으로(예컨대, 메모리 장치의 동작들과 관련하여 요구되는 최대 대역폭으로) 로드들을 출력하는 단계를 포함할 수 있다. 예로서, 메모리 장치를 동작시키는 방법은 활성화 신호에 응답하여 마스터 장치들의 버스를 통한 메모리로의 액세스를 차단하는 단계를 더 포함할 수 있다.
실시 예들에 따르면, 전자 장치(예컨대, 메모리 장치)는 마스터 장치들의 속성들 및 특성들과 무관하게 생성되는 로드들에 기초하여 테스트될 수 있다. 따라서, 전자 장치는, 마스터 장치들의 영향 및 다양한 환경에 기인하는 변동성 없이, 전자 장치에 대한 요구사항(예컨대, 최대 대역폭)만을 고려하여 단일의 방식으로 테스트될 수 있다. 이는 전자 장치를 테스트하는 데에 소모되는 비용, 시간 등의 자원을 줄일 수 있고 장치 테스트의 일관성, 효율성, 및 신뢰성을 향상시킬 수 있다.
도 1은 몇몇 실시 예에 따른 전자 시스템의 예시적인 구성을 보여주는 블록도이다.
도 2는 도 1의 메모리 장치에 대한 요구사항을 설명하기 위한 표이다.
도 3은 도 1의 메모리 장치를 테스트하는 예시적인 방법을 설명하는 흐름도이다.
도 4 내지 도 6은 도 1의 메모리 장치를 테스트하기 위한 테스트 시스템의 예시적인 구성들을 보여주는 블록도들이다.
도 7은 도 6의 로드(Load) 생성기에 의해 생성되는 로드의 예시적인 구성을 설명하기 위한 표이다.
도 8은 도 6의 메모리 장치의 예시적인 구성을 보여주는 블록도이다.
도 9는 도 8의 메모리 장치를 테스트하는 예시적인 방법을 설명하는 흐름도이다.
도 10 내지 도 12는 도 6의 메모리 장치와 관련되는 예시적인 구성들을 보여주는 블록도들이다.
도 13은 도 12의 메모리 장치에 포함되는 예시적인 구성을 보여주는 블록도이다.
도 14는 도 12 및 도 13의 메모리 장치의 예시적인 동작을 설명하는 흐름도이다.
도 15는 도 1의 메모리 장치를 테스트하기 위한 메모리 장치의 예시적인 구성을 보여주는 블록도이다.
아래에서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자들이 본 발명을 용이하게 실시할 수 있도록, 첨부되는 도면들을 참조하여 몇몇 실시 예가 명확하고 상세하게 설명될 것이다.
도 1은 몇몇 실시 예에 따른 전자 시스템(1000)의 예시적인 구성을 보여주는 블록도이다.
전자 시스템(1000)은 메인 프로세서(1100), 그래픽 프로세서(1200), 메모리 장치(1300), DMA(Direct Memory Access) 장치(1400), 및 버스(1600)를 포함할 수 있다. 예로서, 전자 시스템(1000)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 웨어러블(Wearable) 장치, 비디오 게임기(Video Game Console), 서버, 전기 자동차, 가전기기, 의료기기 등과 같은 장치들 또는 시스템들 중 하나일 수 있다.
메인 프로세서(1100)는 전자 시스템(1000)의 전반적인 동작들을 제어할 수 있다. 이를 위해, 메인 프로세서(1100)는 다양한 산술/논리 연산을 처리하도록 구성되는 하나 이상의 프로세서 코어를 포함할 수 있다. 예로서, 메인 프로세서(1100)는 범용 프로세서 또는 어플리케이션 프로세서로 구현될 수 있다.
그래픽 프로세서(1200)는 특정 유형의 연산들을 처리하도록 구성될 수 있다. 예로서, 그래픽 프로세서(1200)는 이미지 정보를 출력하기 위해 그래픽 처리에 특화된 연산들을 처리할 수 있다. 예로서, 그래픽 프로세서(1200)는 매우 많은 양의 그래픽 데이터를 빠르게 처리하기 위한 병렬 프로세서들을 포함할 수 있다.
메모리 장치(1300)는 전자 시스템(1000)의 동작에 이용되는 데이터를 저장할 수 있다. 메모리 장치(1300)는 전자 시스템(1000)의 워킹 메모리 또는 버퍼 메모리로서 이해될 수 있다. 예로서, 메모리 장치(1300)는 SRAM(Static Random Access Memory), DRAM(Dynamic RAM), SDRAM(Synchronous RAM) 등과 같은 휘발성 메모리, 및/또는 PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다.
DMA 장치(1400)는 메모리 장치(1300)로 액세스하여 메모리 장치(1300)에 데이터를 저장하거나 메모리 장치(1300)에 저장된 데이터를 읽을 수 있다. 예로서, DMA 장치(1400)는 메인 프로세서(1100)의 개입 없이 메모리 장치(1300)로 액세스하기 위해 DMA 동작을 수행할 수 있다. 예로서, DMA 장치(1400)는 DMA 동작을 지원할 수 있는 스토리지 장치(예컨대, SSD(Solid State Drive), 메모리 카드 등), 이미지 프로세서, MODEM(Modulator/Demodulator) 등을 포함할 수 있다.
예로서, 메모리 장치(1300)는 메인 프로세서(1100) 및 그래픽 프로세서(1200)에 의해 처리된 또는 처리될 데이터를 일시적으로 저장할 수 있다. 예로서, 메모리 장치(1300)는 DMA 장치(1400)에 의해 요청되는 데이터를 저장하고 출력할 수 있다. 이처럼, 메모리 장치(1300)를 이용할 수 있는 장치는 “마스터 장치”로 불릴 수 있다. 예로서, 메인 프로세서(1100), 그래픽 프로세서(1200), 및 DMA 장치(1400) 각각은 마스터 장치로서 이해될 수 있다. 메모리 장치(1300)는 데이터를 저장하거나 읽고자 의도하는 마스터 장치에 의해 이용될 수 있다.
이외에도, 전자 시스템(1000)은 다른 어떠한 유형의 마스터 장치(1500)이든 더 포함할 수 있다. 본 개시에서 설명되는 예시적인 구성 요소들은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 발명을 한정하도록 의도되지 않는다.
전자 시스템(1000)은 복수의 마스터 장치를 포함할 수 있고, 메모리 장치(1300)는 복수의 마스터 장치에 의해 공유될 수 있다. 메모리 장치(1300)는 공유된 장치로서 이해될 수 있다. 복수의 마스터 장치는 공유된 장치를 함께 이용하기 위해 공유된 장치를 공유할 수 있다. 복수의 마스터 장치는 공유된 장치와 데이터를 교환하기 위해 버스(1600)를 통해 공유된 장치와 통신할 수 있다.
버스(1600)는 전자 시스템(1000)의 구성 요소들 사이에서 통신 경로를 제공할 수 있다. 전자 시스템(1000)의 구성 요소들은 버스(1600)의 버스 포맷에 따라 데이터를 교환할 수 있다. 예로서, 버스 포맷은 USB(Universal Serial Bus), SCSI(Small Computer System Interface), PCIe(Peripheral Component Interconnect Express), SATA(Serial Advanced Technology Attachment), SAS(Serial Attached SCSI), NVMe(Nonvolatile Memory Express), UFS(Universal Flash Storage), DDR(Double Data Rate) 등의 다양한 인터페이스 규약 중 하나 이상을 포함할 수 있다.
메모리 장치(1300)가 메인 프로세서(1100), 그래픽 프로세서(1200), DMA 장치(1400), 및/또는 다른 마스터 장치(1500)에 의해 이용되는 경우, 메모리 장치(1300)로의 액세스들(ACS)이 발생할 수 있다. 액세스들(ACS)은 메모리 장치(1300)에 데이터를 저장하기 위한 동작들과 관련되거나, 및/또는 메모리 장치(1300)에 저장된 데이터를 읽기 위한 동작들과 관련될 수 있다.
한편, 복수의 마스터 장치가 메모리 장치(1300)를 공유함에 따라, 상당히 많은 양의 액세스들(ACS)이 발생할 수 있다. 마스터 장치들의 개수가 증가하거나 마스터 장치들 각각의 성능이 높아지는 경우, 메모리 장치(1300)는 더 많은 양의 액세스들(ACS)을 처리해야 할 수 있다. 메모리 장치(1300)는 주어진 환경(Condition)의 액세스들(ACS)을 처리하기 위한 요구사항(Requirement)들을 충족해야 할 수 있다.
도 2는 도 1의 메모리 장치(1300)에 대한 요구사항을 설명하기 위한 표이다.
예로서, 메모리 장치(1300)는 복수의 마스터 장치로부터 수신되는 데이터 저장 및/또는 데이터 출력의 요청들을(예컨대, 액세스들(ACS)을) 적절하게 처리하기 위한 요구사항들을 충족해야 할 수 있다. 이를 위해, 메모리 장치(1300)는 요구사항들을 충족시키기 위한 대역폭의 특성을 가질 수 있다.
대역폭은 단위 시간 당 메모리 장치(1300)로 입력되고 메모리 장치(1300)로부터 출력되는 데이터의 양과 관련될 수 있다. 메모리 장치(1300)의 대역폭이 클수록, 단위 시간 당 메모리 장치(1300)로 입력되고 메모리 장치(1300)로부터 출력되는 데이터의 양이 증가할 수 있다(즉, 메모리 장치(1300)가 더 많은 양의 액세스들(ACS)을 처리할 수 있다).
예로서, 메모리 장치(1300)의 데이터 입력/출력을 위한 레인(Lane)들 또는 채널들의 개수가 증가하는 경우, 메모리 장치(1300)의 대역폭이 높아질 수 있다. 그러나, 물리적인 한계(예컨대, 비용, 면적, 및 설계 상의 한계)에 기인하여, 레인들 또는 채널들의 개수는 한정될 수 있다. 이 경우, 메모리 장치(1300)를 동작시키기 위한 클록의 주파수를 높임으로써 메모리 장치(1300)의 대역폭이 더 높아질 수 있다.
그러나, 메모리 장치(1300)를 동작시키기 위한 클록의 주파수가 높아짐에 따라, 메모리 장치(1300)에서 전달되는 신호의 전압 레벨이 작아질 수 있다. 게다가, 신호를 샘플링하기 위한 셋업/홀드(Setup/Hold) 시간이 불충분해지거나, 타이밍 마진(Timing Margin)이 작아질 수 있다. 이 경우, 메모리 장치(1300)의 동작이 불안정해지거나, 메모리 장치(1300)의 동작에 오류 또는 장애가 발생할 수 있다.
메모리 장치(1300)의 불안정한 동작을 방지하기 위해 신호의 전압 레벨 및 타이밍 마진이 커지는 경우, 메모리 장치(1300)의 대역폭이 작아질 수 있다. 메모리 장치(1300)의 작은 대역폭은 복수의 마스터 장치로부터 수신되는 요청들을 처리하기에 불충분할 수 있다. 따라서, 성능 및 안정성의 측면에서, 메모리 장치(1300)를 안정적으로 동작시키기 위한 환경 하에서의 최대 대역폭으로 메모리 장치(1300)를 동작시키는 것이 유익할 수 있다.
예로서, 메모리 장치(1300)가 사용자에게 판매되기 전에 또는 메모리 장치(1300)가 전자 시스템(1000)에 장착되기 전에, 메모리 장치(1300) 및/또는 전자 시스템(1000)의 제조자, 설계자, 또는 판매자는 메모리 장치(1300)가 주어진 환경에서 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하고자 의도할 수 있다.
메모리 장치(1300) 외에도, 전자 시스템(1000)의 공유된 장치는 복수의 마스터 장치를 위한 액세스들을 처리해야 할 수 있다. 공유된 장치는 전자 시스템(1000)의 주어진 환경에서 요구되는 최대 대역폭으로 정상적으로 동작하는지 본 개시의 실시 예들에 따라 테스트될 수 있다.
아래의 설명들에서, 메모리 장치(1300)가 공유된 장치의 예로서 설명될 것이지만, 본 발명은 여기에 한정되지 않는다. 예로서, 버스(1600) 역시 복수의 마스터 장치에 의해 공유되는 공유된 장치일 수 있고, 본 개시의 실시 예들에 따라 테스트될 수 있다. 그 밖에, 어떠한 유형의 공유된 장치이든 본 개시의 실시 예들에 따라 테스트될 수 있다. 아래의 설명들은 더 나은 이해를 가능하게 하기 위해 제공되고, 실시 예들은 메모리 장치(1300) 외의 다른 유형의 장치를 위해 채용될 수 있음이 잘 이해될 것이다.
도 3은 도 1의 메모리 장치(1300)를 테스트하는 예시적인 방법을 설명하는 흐름도이다.
메모리 장치(1300)가 정상적으로 동작하는지 테스트하기 위해 테스트 데이터가 생성될 수 있다(S130). 테스트 데이터는 메모리 장치(1300)가 데이터를 저장하거나 출력하는 상황을 연출하기 위해 생성될 수 있다. 메모리 장치(1300)는 테스트 데이터를 저장하거나 출력할 수 있고, 따라서 메모리 장치(1300)가 정상적으로 동작하는지가 테스트 데이터에 기초하여 테스트될 수 있다.
예로서, 테스트 데이터는 임의의 또는 무작위의 데이터를 포함할 수 있다. 예로서, 테스트 데이터는 사용자가 메모리 장치(1300) 및/또는 전자 시스템(1000)을 사용하는 시나리오에서 생성될 것으로 예상되는 데이터를 포함할 수 있다. 본 발명은 여기에 한정되지 않고, 테스트 데이터는 메모리 장치(1300)를 테스트하는 데에 적합한 어떠한 종류의 데이터이든 포함하도록 다양하게 변경 또는 수정될 수 있다.
본 개시에서, 테스트 "데이터"라는 용어가 이용되지만, 이는 본 발명을 한정하도록 의도되지 않는다. 테스트 데이터는 단순히 데이터만 포함할 수 있지만, 몇몇 경우, 테스트 데이터는 마스터 장치로부터의 커맨드, 메모리 장치(1300)로부터의 응답, 헤더(Header) 정보 등과 같이 다양한 개체(Entity)를 포함하여 제공될 수 있다.
테스트 데이터는 메모리 장치(1300)가 주어진 환경에서 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하기 위해 생성될 수 있다. 따라서, 테스트 데이터는 주어진 환경에 대한 최대 대역폭으로 전송되도록 생성될 수 있다. 예로서, 전자 시스템(1000)의 주어진 환경이 메모리 장치(1300)의 10MHz/s의 최대 대역폭을 요구하는 경우, 테스트 데이터는 10MHz/s의 대역폭을 커버하도록 생성될 수 있다. 테스트 데이터를 생성하는 것과 관련되는 예시적인 구성들은 도 4 내지 도 6을 참조하여 설명될 것이다.
테스트 데이터에 기초하여, 메모리 장치(1300)가 정상적으로 동작하는지가 모니터링될 수 있다(S150). 메모리 장치(1300)가 테스트 데이터에 기초하여 최대 대역폭으로 동작하는 동안 오류나 장애가 발생하지 않는 경우, 메모리 장치(1300)가 정상적으로 동작하는 것으로 판별될 수 있다(S150의 Yes). 이 경우, 메모리 장치(1300)는 테스트를 통과할 수 있다(S160). 반면, 메모리 장치(1300)가 테스트 데이터에 기초하여 최대 대역폭으로 동작하는 동안 오류나 장애가 발생하는 경우, 메모리 장치(1300)가 정상적으로 동작하지 않는 것으로 판별될 수 있다(S150의 No). 이 경우, 메모리 장치(1300)는 테스트에 실패할 수 있다(S170).
도 4는 도 1의 메모리 장치(1300)를 테스트하기 위한 테스트 시스템의 예시적인 구성을 보여주는 블록도이다. 예로서, 도 1의 메모리 장치(1300)는 도 4의 메모리 장치(1300a)를 포함할 수 있고, 도 4의 테스트 시스템(2000a)을 이용하여 테스트될 수 있다.
테스트 시스템(2000a)은 마스터 장치들(2100, 2200, 2300, 2400), 테스트 벡터(Test Vector)(2500a), 메모리 장치(1300a), 및 버스(1600)를 포함할 수 있다. 마스터 장치들(2100, 2200, 2300, 2400) 각각은 도 1의 메인 프로세서(1100), 그래픽 프로세서(1200), 또는 DMA 장치(1400)를 포함할 수 있고, 또는 메모리 장치(1300a)를 이용할 수 있는 그 밖의 어떠한 유형의 마스터 장치이든 포함할 수 있다. 나아가, 마스터 장치들의 개수는 전자 시스템(1000) 및 테스트 시스템(2000a)의 구성들에 따라 다양하게 변경 또는 수정될 수 있다.
메모리 장치(1300a)는 메모리(1310) 및 메모리 컨트롤러(1330a)를 포함할 수 있다. 메모리(1310)는 휘발성 메모리 및/또는 불휘발성 메모리를 포함할 수 있고, 데이터를 저장할 수 있다. 메모리 컨트롤러(1330a)는 메모리(1310)가 데이터를 저장하거나 저장된 데이터를 출력하도록 메모리(1310)를 제어할 수 있다. 메모리 컨트롤러(1330a)는 버스(1600)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터 수신되는 요청들에 기초하여 메모리(1310)를 제어할 수 있다.
예로서, 도 1 및 도 4를 참조하면, 메모리 컨트롤러(1330a)는 메인 프로세서(1100)의 요청들을 버스(1600)로부터 수신할 수 있다. 수신된 요청들은 메모리(1310)로의 액세스들(ACS)을 지시할 수 있다. 메모리 컨트롤러(1330a)는 액세스들(ACS)과 관련되는 동작들(예컨대, 읽기 동작, 쓰기 동작 등)이 메모리(1310)에서 수행되도록 메인 프로세서(1100)의 요청들을 처리할 수 있다.
테스트 벡터(2500a)는 메모리 장치(1300a)를 테스트하기 위한 테스트 데이터를 생성하기 위해 제공될 수 있다. 테스트 벡터(2500a)는 마스터 장치들(2100, 2200, 2300, 2400)이 테스트 데이터를 출력하도록 마스터 장치들(2100, 2200, 2300, 2400)과 함께 동작하는 구성 요소일 수 있다. 테스트 벡터(2500a)는 본 개시에서 설명되는 동작들을 수행하기 위해 하드웨어, 소프트웨어, 또는 그것들의 조합으로 구현될 수 있다.
예로서, 테스트 벡터(2500a)는 테스트 데이터를 생성하기 위해 마스터 장치들(2100, 2200, 2300, 2400)을 제어하도록 구성되는 하드웨어 회로(예컨대, 아날로그 회로, 논리 회로 등)를 포함할 수 있다. 예로서, 테스트 벡터(2500a)는 마스터 장치들(2100, 2200, 2300, 2400)이 테스트 데이터를 출력하도록 마스터 장치들(2100, 2200, 2300, 2400) 상에서 실행되는 프로그램 코드로 구현될 수 있다.
테스트 벡터(2500a)가 동작함에 따라, 테스트 데이터가 생성될 수 있다. 예로서, 테스트 벡터(2500a)는 사용자가 메모리 장치(1300a) 및/또는 전자 시스템(1000)을 사용하는 시나리오에서 생성되는 트랜잭션(Transaction)들과 동일 또는 유사한 트랜잭션들이 발생하도록 마스터 장치들(2100, 2200, 2300, 2400)의 동작들을 트리거(Trigger)할 수 있다. 트리거에 응답하여, 마스터 장치들(2100, 2200, 2300, 2400)이 테스트 데이터를 생성할 수 있다.
테스트 데이터에 기초하여, 버스(1600)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터 메모리 장치(1300a)로 테스트 액세스들(TEST_ACS1)이 발생할 수 있다. 테스트 액세스들(TEST_ACS1)은 테스트 데이터에 기초하여 메모리 장치(1300a)(예컨대, 메모리(1310))에서 수행되는 다양한 동작(예컨대, 읽기 동작, 쓰기 동작 등)과 관련될 수 있다. 테스트 액세스들(TEST_ACS1)이 발생함에 따라, 메모리 장치(1300a)가 정상적으로 동작하는지 테스트될 수 있다.
예로서, 테스트 벡터(2500a)는 마스터 장치(2100)의 속성들 및 특성들(예컨대, 목표 동작 주파수, 물리적인 사양 등)을 고려하여 설계될 수 있다. 이 경우, 테스트 벡터(2500a)는 생성되는 테스트 데이터가 마스터 장치(2100)의 속성들 및 특성들에 기초하여 주어진 환경에 대한 최대 대역폭으로 전송되도록 설계될 수 있다. 따라서, 테스트 벡터(2500a)에 기초하여 생성되는 테스트 데이터는 메모리 장치(1300a)가 마스터 장치(2100)에 의해 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하기 위해 이용될 수 있다.
그러나, 테스트 벡터(2500a)는 마스터 장치들(2200, 2300, 2400)의 속성들 및 특성들과 관련되지 않을 수 있다. 이 경우, 테스트 벡터(2500a)에 기초하여 생성되는 테스트 데이터는 마스터 장치들(2200, 2300, 2400)의 속성들 및 특성들에 기초하여 주어진 환경에 대한 최대 대역폭들을 커버하지 못할 수 있다.
예로서, 주어진 환경에서, 마스터 장치(2200)에 의해 요구되는 메모리 장치(1300a)로의 액세스들의 양이 마스터 장치(2100)에 의해 요구되는 메모리 장치(1300a)로의 액세스들의 양보다 많은 경우, 테스트 벡터(2500a)에 기초하여 생성되는 테스트 데이터는 마스터 장치(2200)에 의해 요구되는 최대 대역폭을 커버하지 못할 수 있다. 이 경우, 메모리 장치(1300a)가 마스터 장치(2100)에 의해 요구되는 환경에서는 정상적으로 동작할 수 있음에도 불구하고, 마스터 장치(2200)에 의해 요구되는 환경에서는 메모리 장치(1300a)의 동작에 오류 또는 장애가 발생할 수 있다.
이처럼, 단일의 테스트 벡터(2500a)가 이용되는 경우, 마스터 장치들(2100, 2200, 2300, 2400) 모두의 속성들 및 특성들을 고려하는 것이 어려울 수 있다. 마스터 장치들(2100, 2200, 2300, 2400) 모두의 속성들 및 특성들을 고려함이 없이 메모리 장치(1300a)가 테스트되는 경우, 사용자가 메모리 장치(1300a)를 실제로 이용하는 동안 메모리 장치(1300a)의 동작에 오류 또는 장애가 발생할 수 있다.
도 5는 도 1의 메모리 장치(1300)를 테스트하기 위한 테스트 시스템의 예시적인 구성을 보여주는 블록도이다. 예로서, 도 1의 메모리 장치(1300)는 도 5의 메모리 장치(1300a)를 포함할 수 있고, 도 5의 테스트 시스템(2000b)을 이용하여 테스트될 수 있다.
테스트 시스템(2000b)은 마스터 장치들(2100, 2200, 2300, 2400), 테스트 벡터들(2501b, 2502b, 2503b, 2504b), 메모리 장치(1300a), 및 버스(1600)를 포함할 수 있다. 테스트 벡터들(2501b, 2502b, 2503b, 2504b) 각각은 메모리 장치(1300a)를 테스트하기 위한 테스트 데이터를 생성하기 위해 제공될 수 있다. 이를 위해, 테스트 벡터들(2501b, 2502b, 2503b, 2504b) 각각은 도 4의 테스트 벡터(2500a)와 유사한 구성으로 구현될 수 있다.
테스트 데이터에 기초하여, 버스(1600)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터 메모리 장치(1300a)로 테스트 액세스들(TEST_ACS2)이 발생할 수 있다. 테스트 액세스들(TEST_ACS2)은 테스트 데이터에 기초하여 메모리 장치(1300a)에서 수행되는 다양한 동작(예컨대, 읽기 동작, 쓰기 동작 등)과 관련될 수 있다. 테스트 액세스들(TEST_ACS2)이 발생함에 따라, 메모리 장치(1300a)가 정상적으로 동작하는지 테스트될 수 있다.
예로서, 테스트 벡터들(2501b, 2502b, 2503b, 2504b)은 각각 마스터 장치들(2100, 2200, 2300, 2400)의 속성들 및 특성들(예컨대, 목표 동작 주파수, 물리적인 사양 등)을 고려하여 설계될 수 있다. 예로서, 테스트 벡터(2502b)는 생성되는 테스트 데이터가 마스터 장치(2200)의 속성들 및 특성들에 기초하여 주어진 환경에 대한 최대 대역폭으로 전송되도록 설계될 수 있다. 유사하게, 테스트 벡터들(2501b, 2503b, 2504b)은 생성되는 테스트 데이터가 마스터 장치들(2100, 2300, 2400)의 속성들 및 특성들에 기초하여 주어진 환경들에 대한 최대 대역폭들로 전송되도록 설계될 수 있다.
따라서, 테스트 벡터(2502b)에 기초하여 생성되는 테스트 데이터는 메모리 장치(1300a)가 마스터 장치(2200)에 의해 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하기 위해 이용될 수 있다. 유사하게, 테스트 벡터들(2501b, 2503b, 2504b)에 기초하여 생성되는 테스트 데이터는 메모리 장치(1300a)가 마스터 장치들(2100, 2300, 2400)에 의해 요구되는 최대 대역폭들로 정상적으로 동작하는지 테스트하기 위해 이용될 수 있다.
도 4의 테스트 시스템(2000a)과 달리, 도 5의 테스트 시스템(2000b)은 각 마스터 장치에 의해 요구되는 환경에 적합한 테스트 벡터를 채용할 수 있다. 테스트 벡터들(2501b, 2502b, 2503b, 2504b)에 기초하여 생성되는 테스트 데이터는 각 마스터 장치들(2100, 2200, 2300, 2400)의 속성들 및 특성들에 기초하여 주어진 환경들에 대한 최대 대역폭들을 커버할 수 있다. 이처럼, 복수의 테스트 벡터(2501b, 2502b, 2503b, 2504b)가 이용되는 경우, 마스터 장치들(2100, 2200, 2300, 2400) 모두의 속성들 및 특성들이 고려될 수 있다.
그러나, 전자 시스템(1000) 또는 테스트 시스템(2000b)의 구현(예컨대, 종류, 유형, 목적, 사양, 성능 등)에 의존하여, 마스터 장치들(2100, 2200, 2300, 2400)의 속성들, 특성들, 종류, 및 유형이 다양하게 변경 또는 수정될 수 있다. 따라서, 테스트 벡터들(2501b, 2502b, 2503b, 2504b) 역시 다양한 마스터 장치를 고려하기 위해 다양하게 설계되어야 할 수 있다. 이는 테스트 벡터를 개발하고 설계하는 데에 소모되는 시간 및 비용을 증가시킬 수 있다.
나아가, 전자 시스템(1000) 또는 테스트 시스템(2000b)의 구현의 다양성에 기인하여, 모든 상황들을 커버할 수 있는 테스트 벡터들을 설계하는 데에 한계가 있을 수 있다. 게다가, 테스트 데이터가 마스터 장치들(2100, 2200, 2300, 2400)의 속성들, 특성들, 종류, 및 유형에 의존하여 상이하게 생성될 수 있고, 따라서 장치 테스트의 일관성, 효율성, 및 신뢰성이 저하될 수 있다.
도 6은 도 1의 메모리 장치(1300)를 테스트하기 위한 테스트 시스템의 예시적인 구성을 보여주는 블록도이다. 예로서, 도 1의 메모리 장치(1300)는 도 6의 메모리 장치(1300c)를 포함할 수 있고, 도 6의 테스트 시스템(2000c)을 이용하여 테스트될 수 있다.
테스트 시스템(2000c)은 마스터 장치들(2100, 2200, 2300, 2400), 메모리 장치(1300c), 및 버스(1600)를 포함할 수 있다. 메모리 장치(1300c)는 메모리(1310), 메모리 컨트롤러(1330a), 및 로드(Load) 생성기(1350c)를 포함할 수 있다. 메모리 컨트롤러(1330a)는 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)를 포함할 수 있다.
메모리 컨트롤러(1330a)는 버스(1600)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터 수신되는 요청들에 기초하여 메모리(1310)를 제어할 수 있다. 수신된 요청들은 메모리(1310)로의 액세스들(ACS1)을 지시할 수 있다. 액세스들(ACS1)에 기초하여, 마스터 장치들(2100, 2200, 2300, 2400)에 의해 요청되는 동작들(예컨대, 읽기 동작, 쓰기 동작 등)이 메모리(1310)에서 수행될 수 있다. 여기서, 액세스들(ACS1)은 메모리 장치(1300c)의 테스트를 위한 것이 아니라, 메모리 장치(1300c)와의 일반적인 트랜잭션을 위한 것일 수 있다.
호스트 인터페이스 회로(1331)는 마스터 장치들(2100, 2200, 2300, 2400)과 메모리 장치(1300c) 사이의 통신을 중재할 수 있다. 호스트 인터페이스 회로(1331)는 버스(1600)로부터 메모리(1310)로의 액세스들(ACS1)을 위한 요청들을 수신할 수 있다. 호스트 인터페이스 회로(1331)는 수신된 요청들의 포맷(Format)을 메모리 컨트롤러(1330a)에 의해 인식되는 포맷으로 변경하거나, 메모리 컨트롤러(1330a)에서 처리된 데이터의 포맷을 마스터 장치들(2100, 2200, 2300, 2400)에 의해 인식되는 포맷으로 변경할 수 있다.
기능 회로들(1333)은 메모리(1310)에 저장될 데이터 및/또는 메모리(1310)로부터 출력된 데이터에 대해 다양한 연산을 수행할 수 있다. 예로서, 기능 회로들(1333)은 호스트 인터페이스 회로(1331)로부터 마스터 장치들(2100, 2200, 2300, 2400)의 요청들을 수신할 수 있고, 액세스들(ACS1)과 관련되는 동작들이 메모리(1310)에서 수행되도록 요청들을 처리할 수 있다. 예로서, 기능 회로들(1333)은 데이터 변환 회로, 오류 검출 및 정정 회로, 프로세서 등과 같은 다양한 하드웨어 회로를 포함할 수 있다.
메모리 인터페이스 회로(1335)는 메모리(1310)와 메모리 컨트롤러(1330a) 사이의 통신을 중재할 수 있다. 메모리 인터페이스 회로(1335)는 기능 회로들(1333)의 연산들에 따라 메모리(1310)가 데이터를 저장하거나 출력하도록 메모리(1310)와 통신할 수 있다. 메모리 인터페이스 회로(1335)는 메모리(1310)에 의해 인식되는 포맷의 데이터를 메모리(1310)로 제공하거나, 메모리(1310)로부터 출력되는 데이터의 포맷을 메모리 컨트롤러(1330a)에 의해 인식되는 포맷으로 변경할 수 있다.
로드 생성기(1350c)는 메모리 장치(1300c)가 주어진 환경에서 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하기 위해 로드들을 생성할 수 있다. 로드 생성기(1350c)는 로드들을 생성하도록 구성되는 하드웨어 회로들을 포함할 수 있다. 로드 생성기(1350c)에 의해 생성되는 로드들은 메모리 장치(1300c)를 테스트하기 위한 테스트 데이터로서 이용될 수 있다. 로드들은 메모리 장치(1300c)를 테스트하는 데에 적합한 어떠한 종류의 데이터이든 포함할 수 있다.
로드들에 기초하여, 메모리(1310)로의 테스트 액세스들(TEST_ACS3)이 발생할 수 있다. 테스트 액세스들(TEST_ACS3)은 로드들에 기초하여 메모리 장치(1300c)(예컨대, 메모리(1310))에서 수행되는 다양한 동작(예컨대, 읽기 동작, 쓰기 동작 등)과 관련될 수 있다. 테스트 액세스들(TEST_ACS3)과 관련되는 동작들은 마스터 장치들(2100, 2200, 2300, 2400)과 무관하게 메모리 장치(1300c)를 테스트하기 위해 수행될 수 있다. 테스트 액세스들(TEST_ACS3)이 발생함에 따라, 메모리 장치(1300c)가 정상적으로 동작하는지 테스트될 수 있다.
예로서, 액세스들(ACS1)을 위한 통신 경로는 버스(1600)를 통할 수 있고, 테스트 액세스들(TEST_ACS3)을 위한 통신 경로는 버스(1600)를 통하지 않을 수 있다. 이 예에서, 테스트 액세스들(TEST_ACS3)을 위한 통신 경로는 액세스들(ACS1)을 위한 통신 경로와 별개일 수 있다. 로드 생성기(1350c)는 마스터 장치들(2100, 2200, 2300, 2400)로부터 독립적일 수 있다.
메모리 컨트롤러(1330a)의 호스트 인터페이스 회로(1331)는 로드 생성기(1350c)로부터 로드들을 수신할 수 있다. 메모리 컨트롤러(1330a)의 기능 회로들(1333)은 호스트 인터페이스 회로(1331)로부터 로드들을 수신할 수 있다. 메모리 컨트롤러(1330a)의 기능 회로들(1333)은 테스트 액세스들(TEST_ACS3)과 관련되는 동작들이 메모리(1310)에서 수행되도록 로드들을 처리하기 위해 다양한 연산을 수행할 수 있다.
도 6은 로드 생성기(1350c)가 메모리 장치(1300c)에 포함되는 것을 보여준다. 몇몇 실시 예에서, 로드 생성기(1350c)는 메모리 장치(1300c) 외부에 제공될 수 있다. 또는, 로드 생성기(1350c)는 메모리 컨트롤러(1330a) 내부에 제공될 수 있다.
도 4 및 도 5의 테스트 시스템들(2000a, 2000b)과 달리, 도 6의 테스트 시스템(2000c)은 테스트 벡터 대신 로드 생성기(1350c)를 채용할 수 있다. 로드 생성기(1350c)는 마스터 장치들(2100, 2200, 2300, 2400)과 독립적으로 메모리 장치(1300c)를 위해(예컨대, 메모리 장치(1300c) 내부에) 구현될 수 있다. 따라서, 로드 생성기(1350c)는 마스터 장치들(2100, 2200, 2300, 2400)의 속성들 및 특성들과 무관하게 로드들을 생성하고 출력할 수 있다.
로드 생성기(1350c)는 생성되는 로드들이 주어진 환경에 대한 최대 대역폭으로 전송되도록 설계될 수 있다. 예로서, 로드 생성기(1350c)는 로드들을 출력하기 위한 대역폭의 변경 없이 일정한 대역폭으로(예컨대, 메모리 장치(1300c)의 동작들과 관련하여 요구되는 최대 대역폭으로) 로드들을 출력할 수 있다. 따라서, 로드 생성기(1350c)에 의해 생성되는 로드들은 메모리 장치(1300c)가 메모리 장치(1300c)의 동작들과 관련하여 요구되는 최대 대역폭으로 정상적으로 동작하는지 테스트하기 위해 이용될 수 있다.
테스트 시스템(2000c)에서, 메모리 장치(1300c)는 마스터 장치들(2100, 2200, 2300, 2400)의 속성들 및 특성들과 무관한 환경에서 테스트될 수 있다. 따라서, 메모리 장치(1300c)는, 마스터 장치들(2100, 2200, 2300, 2400)의 영향 및 다양한 환경에 기인하는 변동성(Variation) 없이, 메모리 장치(1300c)에 대한 요구사항(예컨대, 최대 대역폭)만을 고려하여 테스트될 수 있다. 즉, 마스터 장치들(2100, 2200, 2300, 2400)의 속성들, 특성들, 종류, 및 유형과 무관하게, 메모리 장치(1300c)는 단일의 방식으로(예컨대, 메모리 장치(1300c)의 최대 대역폭만을 고려하는 방식으로) 테스트될 수 있다.
테스트 시스템(2000c)에서, 메모리 장치(1300c)는 로드 생성기(1350c)만 이용하여 테스트될 수 있다. 따라서, 마스터 장치들(2100, 2200, 2300, 2400)의 속성들 및 특성들을 고려하여 테스트 벡터들을 개발하고 설계하는 데에 소모되는 자원(예컨대, 시간, 비용 등)이 감소할 수 있다. 나아가, 메모리 장치(1300c)가 단일의 방식으로 테스트됨에 따라, 장치 테스트의 일관성, 효율성, 및 신뢰성이 향상될 수 있다.
메모리 컨트롤러(1330a)는 호스트 인터페이스 회로(1331)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들 또는 로드 생성기(1350c)로부터의 로드들을 선택적으로 수신할 수 있다. 따라서, 메모리 컨트롤러(1330a)의 기능 회로들(1333)에서, 로드 생성기(1350c)로부터의 로드들을 수신하고 처리하는 것은 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들을 수신하고 처리하는 것과 배타적일 수 있다.
예로서, 메모리 장치(1300c)에 대한 테스트 비활성화(Disable)에 응답하여, 로드 생성기(1350c)는 로드들을 생성하지 않을 수 있다. 메모리 컨트롤러(1330a)는 호스트 인터페이스 회로(1331)를 통해 로드 생성기(1350c)로부터의 로드들을 수신하지 않을 수 있고 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들만을 수신할 수 있다. 따라서, 메모리 장치(1300c)는 액세스들(ACS1)에 기초하여 동작할 수 있다.
반면, 메모리 장치(1300c)에 대한 테스트 활성화(Enable)에 응답하여, 로드 생성기(1350c)가 로드들을 생성하고 출력할 수 있다. 메모리 컨트롤러(1330a)는 호스트 인터페이스 회로(1331)를 통해, 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들을 수신함이 없이, 로드 생성기(1350c)로부터의 로드들만을 수신할 수 있다. 따라서, 메모리 장치(1300c)는 테스트 액세스들(TEST_ACS3)에 기초하여 테스트될 수 있다.
로드 생성기(1350c)에 의해 생성되는 로드들의 포맷은 마스터 장치들(2100, 2200, 2300, 2400)로부터 수신되는 요청들의 포맷과 동등할 수 있다. "동등"은 로드들의 포맷이 요청들의 포맷과 완전히 또는 실질적으로 동일한 것을 의미할 수 있다.
동등한 포맷에 기인하여, 메모리 컨트롤러(1330a)가 로드 생성기(1350c)로부터 로드들을 수신하는 경우, 메모리 컨트롤러(1330a)는 로드들이 마치 마스터 장치들(2100, 2200, 2300, 2400)로부터 수신되는 것처럼 인식할 수 있다. 메모리 컨트롤러(1330a)의 기능 회로들(1333)은, 마스터 장치들(2100, 2200, 2300, 2400)로부터 수신되는 요청들을 인식하고 처리하는 방식과 동일한 방식으로, 로드 생성기(1350c)로부터 수신되는 로드들을 인식하고 처리할 수 있다. 따라서, 로드들 또는 테스트 액세스들(TEST_ACS3)에 대응하는 동작들이 메모리(1310)에서 수행될 수 있다.
메모리 컨트롤러(1330a)가 로드 생성기(1350c)로부터 로드들을 수신하는 경우, 메모리 컨트롤러(1330a)는 로드들 각각을 한 번씩 처리할 수 있다. 테스트 시스템(2000c)은 특정 로드를 반복하여 처리하여 마스터 장치들(2100, 2200, 2300, 2400)의 요청들을 처리하는 데에 적합한 환경을 탐색하기 위한 것이 아니라, 메모리 장치(1300c)가 특정 환경에서(예컨대, 최대 대역폭으로) 정상적으로 동작하는지 테스트하기 위한 것일 수 있다. 따라서, 메모리 컨트롤러(1330a)는 로드들 각각을 반복 없이 한 번씩만 처리할 수 있다.
로드 생성기(1350c)에 의해 생성되는 로드들 각각은 메모리 장치(1300c)의 동작들과 관련하여 요구되는 최대 대역폭의 환경에서 테스트 액세스들(TEST_ACS3)에 기초하여 메모리 장치(1300c)를 테스트하기 위한 데이터 패턴을 포함할 수 있다.
도 7은 도 6의 로드 생성기(1350c)에 의해 생성되는 로드의 예시적인 구성을 설명하기 위한 표이다.
예로서, 각 로드는 각각이 논리 값을 갖는 비트들로 구성되는 데이터 패턴을 포함할 수 있다. 예로서, 데이터 패턴은 상이한 논리 값들의 비트들이 번갈아 배치되도록 생성되는 오드(Odd) 패턴, 동일한 논리 값의 비트들이 연속하여 배치되도록 생성되는 이븐(Even) 패턴, 임의의 비트들을 포함하여 생성되는 임의 패턴 등을 포함할 수 있다. 몇몇 경우, 데이터 패턴은 각 비트가 무작위의 논리 값을 갖도록 생성되는 무작위 패턴을 포함할 수 있다.
몇몇 실시 예에서, 로드 생성기(1350c)는 로드로서 출력될 데이터 패턴의 논리 값들을 저장하기 위해 메모리 소자 또는 회로를 포함할 수 있고, 저장된 데이터 패턴에 기초하여 로드들을 출력할 수 있다. 몇몇 실시 예에서, 로드 생성기(1350c)는 특정 논리 값에 대응하는 신호 레벨을 제공하기 위해 전압 생성 회로를 포함할 수 있다. 몇몇 실시 예에서, 로드 생성기(1350c)는 시드(Seed) 값에 기초하여 무작위의 논리 값의 비트를 제공하기 위해 랜덤화(Randomization) 회로를 포함할 수 있다.
로드 생성기(1350c)는 데이터 패턴의 비트들을 출력하기 위해 버퍼 회로를 포함할 수 있다. 로드 생성기(1350c)는 클록에 응답하여, 하나의 로드를 구성하는 비트들을 병렬로 또는 동시에 출력할 수 있다.
몇몇 실시 예에서, 로드 생성기(1350c)는 단일 데이터 패턴의 로드들을 출력할 수 있다. 몇몇 실시 예에서, 로드 생성기(1350c)는 가변하는 데이터 패턴들의 로드들을 출력할 수 있다. 이 경우, 로드 생성기(1350c)는 다양한 데이터 패턴 중에서 선택되는 데이터 패턴의 로드가 출력되도록 선택 회로(예컨대, 스위치, 멀티플렉서 등)를 포함할 수 있다.
위 실시 예들은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 발명을 한정하도록 의도되지 않는다. 로드의 데이터 패턴은 의도된 동작이 메모리(1310)에서 수행되도록 메모리 컨트롤러(1330a)에 의해 인식될 수 있게 다양하게 변경 또는 수정될 수 있다. 나아가, 로드 생성기(1350c)의 구성 및 로드의 데이터 패턴은 메모리 장치(1300c)를 테스트하는 데에 적합하도록 다양하게 변경 또는 수정될 수 있다.
도 8은 도 6의 메모리 장치(1300c)의 예시적인 구성을 보여주는 블록도이다. 예로서, 도 6의 메모리 장치(1300c)는 도 8의 메모리 장치(1300d)를 포함할 수 있다.
메모리 장치(1300d)는 메모리(1310), 메모리 컨트롤러(1330a), 로드 생성기(1350d), 스위치 회로(1359d), 및 하나 이상의 레지스터(1370d)를 포함할 수 있다. 메모리 컨트롤러(1330a), 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)는 도 6을 참조하여 설명되었다.
로드 생성기(1350d)의 구성은 도 6의 로드 생성기(1350c)의 구성과 실질적으로 동일 또는 유사한 구성을 포함할 수 있다. 로드 생성기(1350d)의 동작은 도 6의 로드 생성기(1350c)의 동작과 실질적으로 동일 또는 유사한 동작을 포함할 수 있다.
스위치 회로(1359d)는 버스(1600)와 메모리 컨트롤러(1330d) 사이의 액세스들(ACS1)을 위한 통신 경로 또는 로드 생성기(1350d)와 메모리 컨트롤러(1330d) 사이의 테스트 액세스들(TEST_ACS3)을 위한 통신 경로를 선택적으로 제공할 수 있다. 스위치 회로(1359d)는 두 통신 경로 중 하나가 선택적으로 제공되도록 두 통신 경로를 전환할 수 있다.
예로서, 스위치 회로(1359d)는 버스(1600)로부터의 마스터 장치들(2100, 2200, 2300, 2400)의 요청들 또는 로드 생성기(1350d)로부터의 로드들을 선택적으로 메모리 컨트롤러(1330a)로 전달할 수 있다. 따라서, 메모리 컨트롤러(1330a)의 호스트 인터페이스 회로(1331)는 스위치 회로(1359d)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들 또는 로드 생성기(1350c)로부터의 로드들을 선택적으로 수신할 수 있다.
레지스터(1370d)는 로드 생성기(1350c)의 동작들과 관련되는 다양한 설정 값을 저장할 수 있다. 로드 생성기(1350c)는 레지스터(1370d)에 저장된 설정 값들에 기초하여 동작하거나 비활성화될 수 있다. 예로서, 메모리 장치(1300d) 및/또는 전자 시스템(1000)의 제조자, 설계자, 또는 판매자는 메모리 장치(1300d)를 테스트하기 위해 레지스터(1370d)의 설정 값을 제어(예컨대, 변경 또는 조작)할 수 있다. 레지스터들(1370d)의 개수는 설정 값들의 구성에 의존하여 다양하게 변경 또는 수정될 수 있다.
몇몇 실시 예에서, 레지스터(1370d)는 메모리 장치(1300d)의 테스트를 활성화시킬 것인지를 지시하는 활성화 값을 저장할 수 있다. 레지스터(1370d)는 활성화 값에 기초하여 메모리 장치(1300d)에 대한 테스트 활성화 또는 테스트 비활성화를 선택하기 위해 활성화 신호(EN)를 출력할 수 있다.
예로서, 활성화 값이 메모리 장치(1300d)에 대한 테스트 비활성화를 지시하는 경우, 레지스터(1370d)는 활성화 신호(EN)를 출력하지 않을 수 있다. 활성화 신호(EN)가 출력되지 않는 경우, 로드 생성기(1350d)는 동작하지 않을 수 있다(예컨대, 로드들을 생성하거나 출력하지 않을 수 있다). 나아가, 스위치 회로(1359d)는 버스(1600)와 메모리 컨트롤러(1330d) 사이의 액세스들(ACS1)을 위한 통신 경로를 제공할 수 있고, 로드 생성기(1350d)와 메모리 컨트롤러(1330d) 사이의 통신 경로를 차단할 수 있다.
따라서, 테스트 비활성화에 응답하여, 메모리 컨트롤러(1330a)는 버스(1600) 및 스위치 회로(1359d)를 통해 마스터 장치들(2100, 2200, 2300, 2400)로부터의 요청들을 수신할 수 있고, 액세스들(ACS1)에 의해 지시되는 동작들이 메모리(1310)에서 수행될 수 있다. 이 경우, 메모리 장치(1330d)의 테스트는 수행되지 않을 수 있고, 마스터 장치들(2100, 2200, 2300, 2400)과 메모리 장치(1300d) 사이에서 일반적인 트랜잭션들이 제공될 수 있다.
반면, 예로서, 활성화 값이 메모리 장치(1300d)에 대한 테스트 활성화를 지시하는 경우, 레지스터(1370d)는 활성화 신호(EN)를 출력할 수 있다. 활성화 신호(EN)에 응답하여, 로드 생성기(1350d)가 동작할 수 있고(예컨대, 로드들을 생성할 수 있고), 따라서 로드들을 출력하는 것이 활성화될 수 있다. 나아가, 스위치 회로(1359d)는 로드 생성기(1350d)와 메모리 컨트롤러(1330d) 사이의 테스트 액세스들(TEST_ACS3)을 위한 통신 경로를 제공할 수 있고, 버스(1600)와 메모리 컨트롤러(1330d) 사이의 통신 경로를 차단할 수 있다.
따라서, 테스트 활성화에 응답하여, 스위치 회로(1359d)를 통해 메모리 컨트롤러(1330a)로 로드들을 전달하는 것이 활성화될 수 있다. 메모리 컨트롤러(1330a)는 로드 생성기(1350d)에 의해 생성된 로드들을 수신할 수 있고, 테스트 액세스들(TEST_ACS3)에 의해 지시되는 동작들이 메모리(1310)에서 수행될 수 있다. 이 경우, 메모리 장치(1330d)가 주어진 환경에서(예컨대, 최대 대역폭으로) 정상적으로 동작하는지가 테스트될 수 있다. 한편, 마스터 장치들(2100, 2200, 2300, 2400)과의 일반적인 트랜잭션은 제공되지 않을 수 있다.
몇몇 실시 예에서, 레지스터(1370d)는 로드로서 출력될 데이터 패턴을 지시하는 패턴 제어 값을 저장할 수 있다. 레지스터(1370d)는 패턴 제어 값에 기초하여, 로드로서 출력될 데이터 패턴을 선택하기 위해 패턴 제어 신호(PTN)를 출력할 수 있다.
예로서, 도 7을 참조하여 설명된 것처럼, 로드 생성기(1350d)는 다양한 데이터 패턴 중에서 선택되는 데이터 패턴의 로드를 출력하도록 구성될 수 있다. 로드 생성기(1350d)는 패턴 제어 신호(PTN)에 응답하여, 각각이 선택된 데이터 패턴을 포함하는 로드들을 출력할 수 있다. 패턴 제어 신호(PTN)에 기초하여, 로드들에 포함되는 데이터 패턴들은 고유하게 선택되거나, 또는 시간에 따라 가변할 수 있다.
도 9는 도 8의 메모리 장치(1300d)를 테스트하는 예시적인 방법을 설명하는 흐름도이다. 메모리 장치(1300d)는 도 8의 예시적인 방법에 따라 동작할 수 있다.
메모리 장치(1300d) 및/또는 전자 시스템(1000)의 제조자, 설계자, 또는 판매자는 메모리 장치(1300d)를 테스트하고자 의도할 수 있다. 이 경우, 메모리 장치(1300d) 및/또는 전자 시스템(1000)의 제조자, 설계자, 또는 판매자는 테스트를 위해 레지스터(1370d)의 설정 값들을 제어(예컨대, 입력 또는 변경)할 수 있다(S210). 예로서, 레지스터(1370d)의 활성화 값은 테스트 활성화를 지시하도록 제어될 수 있다. 따라서, 레지스터(1370d)는 활성화 신호(EN)를 출력할 수 있다.
메모리 장치(1300d)의 몇몇 구성 요소는 활성화 신호(EN)를 수신할 수 있다. 활성화 신호(EN)에 응답하여, 로드 생성기(1350d)가 활성화될 수 있다(S220). 나아가, 스위치 회로(1359d)는 로드 생성기(1350d)와 메모리 컨트롤러(1330a) 사이의 통신 경로를 제공할 수 있다. 한편, 활성화 신호(EN)에 응답하여, 마스터 장치들(2100, 2200, 2300, 2400)로부터의 버스(1600)를 통한 메모리 장치(1300d)(예컨대, 메모리(1310))로의 액세스는 차단될 수 있다(S220).
활성화된 로드 생성기(1350d)는 로드들을 생성하고 출력할 수 있다(S230). 실시 예들에서, 로드 생성기(1350d)는 로드들을 출력하기 위한 대역폭의 변경 없이 일정한 대역폭으로 로드들을 출력할 수 있다. 예로서, 로드 생성기(1350d)는 메모리 장치(1300d)의 동작들과 관련하여 요구되는 최대 대역폭으로 로드들을 출력할 수 있다. 로드 생성기(1350d)에 의해 생성되는 로드들은 스위치 회로(1359d)를 통해 메모리 컨트롤러(1330a)로 전달될 수 있다.
몇몇 실시 예에서, 로드 생성기(1350d)는 패턴 제어 신호(PTN)를 수신할 수 있다. 로드 생성기(1350d)는 패턴 제어 신호(PTN)에 의해 지시되는 데이터 패턴에 따라 로드들을 출력할 수 있다.
메모리 컨트롤러(1330a)는 호스트 인터페이스 회로(1331)를 통해 로드들을 수신할 수 있다. 메모리 컨트롤러(1330a)는 수신된 로드들에 의해 지시되고 테스트 액세스들(TEST_ACS3)과 관련되는 동작들(예컨대, 읽기 동작, 쓰기 동작 등)이 메모리(1310)에서 수행되도록 기능 회로들(1333)에 의해 로드들을 처리할 수 있다(S240).
로드들이 처리됨에 따라, 메모리 장치(1300d)가 주어진 환경에서(예컨대, 최대 대역폭으로) 정상적으로 동작하는지가 모니터링될 수 있다(S250). 예로서, 마스터 장치(예컨대, 메인 프로세서(1100))가 메모리 장치(1300d)의 동작을 모니터링하고 모니터링 결과를 생성할 수 있다. 예로서, 메모리 장치(1300d)는 스스로 메모리 장치(1300d)의 동작을 모니터링하고 모니터링 결과를 생성할 수 있다. 예로서, 메모리 장치(1300d) 및/또는 전자 시스템(1000)의 사용자가 메모리 장치(1300d)의 동작을 모니터링하거나, 생성된 모니터링 결과를 참조할 수 있다.
메모리 장치(1300d)가 최대 대역폭으로 동작하는 동안 오류나 장애가 발생하지 않는 경우, 메모리 장치(1300d)가 정상적으로 동작하는 것으로 판별될 수 있다(S250의 Yes). 이 경우, 메모리 장치(1300d)는 테스트를 통과할 수 있다(S260). 테스트를 통과한 메모리 장치(1300d)는 사용자에게 판매되거나 전자 시스템(1000)에 장착될 수 있다.
반면, 메모리 장치(1300d)가 최대 대역폭으로 동작하는 동안 오류나 장애가 발생하는 경우, 메모리 장치(1300d)가 정상적으로 동작하지 않는 것으로 판별될 수 있다(S250의 No). 이 경우, 메모리 장치(1300d)는 테스트에 실패할 수 있다(S270). 테스트에 실패한 메모리 장치(1300d)는 오류나 장애가 발생하지 않도록 디버깅(Debug)되거나, 더 나은 특성을 갖도록 개선되거나, 요구사항들을 충족시킬 수 있는(예컨대, 최대 대역폭으로 정상적으로 동작할 수 있는) 다른 메모리 장치로 대체될 수 있다.
도 10은 도 6의 메모리 장치(1300c)와 관련되는 예시적인 구성을 보여주는 블록도이다. 예로서, 도 6의 메모리 장치(1300c)는 도 10의 메모리 장치(1300e)를 포함할 수 있다.
메모리 장치(1300e)는 메모리(1310), 메모리 컨트롤러(1330a), 로드 생성기(1350e), 및 클록 생성기(1390e)를 포함할 수 있다. 메모리 컨트롤러(1330a), 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)는 도 6을 참조하여 설명되었다.
로드 생성기(1350e)의 구성은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 구성과 실질적으로 동일 또는 유사한 구성을 포함할 수 있다. 로드 생성기(1350e)의 동작은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 동작과 실질적으로 동일 또는 유사한 동작을 포함할 수 있다.
클록 생성기(1390e)는 로드 생성기(1350e)를 동작시키기 위한 클록(CLK0)을 출력할 수 있다. 로드 생성기(1350e)는 클록(CLK0)에 동기하여 로드들을 출력할 수 있다. 클록 생성기(1390e)는 전자 시스템(1000) 내부(또는, 메모리 장치(1300e) 내부)의 클록 소스(Clock Source)로부터 기준 클록(REF_CLK)을 수신할 수 있고, 기준 클록(REF_CLK)에 기초하여 클록(CLK0)을 생성할 수 있다. 이를 위해, 예로서, 클록 생성기(1390e)는 PLL(Phase Locked Loop) 회로와 같이 특정 주파수의 클록을 출력할 수 있는 회로를 포함할 수 있다.
도 10에 나타낸 실시 예에서, 로드 생성기(1350e)는 독립적인 클록(CLK0)에 응답하여 동작할 수 있다. 이 경우, 클록(CLK0)의 주파수는 의도되는 최대 대역폭에 대응하도록 유연하게 선택될 수 있다.
도 11은 도 6의 메모리 장치(1300c)와 관련되는 예시적인 구성을 보여주는 블록도이다. 예로서, 도 6의 메모리 장치(1300c)는 도 11의 메모리 장치(1300f)를 포함할 수 있다.
예로서, 도 1의 전자 시스템(1000) 또는 도 6의 테스트 시스템(2000c)은 클록 생성기들(2110, 2210, 2310, 2410, 1610)을 더 포함할 수 있다. 클록 생성기들(2110, 2210, 2310, 2410, 1610)은 각각 클록들(CLK1, CLK2, CLK3, CLK4, CLK5)을 출력할 수 있다. 예로서, 클록 생성기들(2110, 2210, 2310, 2410, 1610)은 안정적인 기준 클록에 기초하여 클록들(CLK1, CLK2, CLK3, CLK4, CLK5)을 생성할 수 있다. 클록들(CLK1, CLK2, CLK3, CLK4, CLK5)은 각각 마스터 장치들(2100, 2200, 2300, 2400) 및 버스(1600)를 동작시키기 위해 제공될 수 있다.
메모리 장치(1300f)는 메모리(1310), 메모리 컨트롤러(1330a), 로드 생성기(1350f), 및 선택기(1390f)를 포함할 수 있다. 메모리 컨트롤러(1330a), 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)는 도 6을 참조하여 설명되었다.
로드 생성기(1350f)의 구성은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 구성과 실질적으로 동일 또는 유사한 구성을 포함할 수 있다. 로드 생성기(1350f)의 동작은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 동작과 실질적으로 동일 또는 유사한 동작을 포함할 수 있다.
선택기(1390f)는 클록들(CLK1, CLK2, CLK3, CLK4, CLK5)을 수신할 수 있다. 선택기(1390f)는 클록들(CLK1, CLK2, CLK3, CLK4, CLK5) 중에서 선택되는 하나의 클록을 클록(CLK0)으로서 출력할 수 있다. 예로서, 선택기(1390f)는 스위치, 멀티플렉서 등과 같이 복수의 입력 중 일부를 선택할 수 있는 회로를 포함할 수 있다.
클록(CLK0)은 로드 생성기(1350f)로 제공될 수 있다. 로드 생성기(1350f)는 클록(CLK0)에 동기하여 로드들을 출력할 수 있다. 따라서, 로드 생성기(1350f)는 마스터 장치들(2100, 2200, 2300, 2400) 및 버스(1600)를 동작시키기 위한 클록들(CLK1, CLK2, CLK3, CLK4, CLK5) 중 하나의 클록에 응답하여 로드들을 출력할 수 있다.
예로서, 클록들(CLK1, CLK2, CLK3, CLK4, CLK5) 중에서 선택되는 하나의 클록의 주파수는 클록들(CLK1, CLK2, CLK3, CLK4, CLK5)의 주파수들 중 가장 높을 수 있다. 클록(CLK0)은 클록들(CLK1, CLK2, CLK3, CLK4, CLK5) 중에서 가장 높은 주파수를 갖는 클록에 대응할 수 있다. 선택기(1390f)는, 로드 생성기(1350f)가 최대 대역폭의 환경에서 로드들을 출력하도록, 높은 주파수를 갖는 클록(CLK0)을 출력하도록 구성될 수 있다.
도 11에 나타낸 실시 예에서, 로드 생성기(1350f)는 이미 존재하는(Existing) 클록들(CLK1, CLK2, CLK3, CLK4, CLK5) 중 하나의 클록에 기초하여 동작할 수 있다. 이 경우, 로드 생성기(1350f)를 위한 별도의 클록 생성기가 제공되지 않을 수 있고, 메모리 장치(1300f)의 구성이 단순화될 수 있다.
도 12는 도 6의 메모리 장치(1300c)와 관련되는 예시적인 구성을 보여주는 블록도이다. 예로서, 도 6의 메모리 장치(1300c)는 도 12의 메모리 장치(1300g)를 포함할 수 있다.
예로서, 도 1의 전자 시스템(1000) 또는 도 6의 테스트 시스템(2000c)은 클록 생성기(1610)를 더 포함할 수 있다. 클록 생성기(1610)는 안정적인 기준 클록에 기초하여 클록(CLK5)을 생성하고 출력할 수 있다. 클록(CLK5)은 버스(1600)를 동작시키기 위해 제공될 수 있다.
메모리 장치(1300g)는 메모리(1310), 메모리 컨트롤러(1330g), 및 로드 생성기(1350g)를 포함할 수 있다. 로드 생성기(1350g)의 구성은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 구성과 실질적으로 동일 또는 유사한 구성을 포함할 수 있다. 로드 생성기(1350g)의 동작은 도 6의 로드 생성기(1350c) 또는 도 8의 로드 생성기(1350d)의 동작과 실질적으로 동일 또는 유사한 동작을 포함할 수 있다.
메모리 컨트롤러(1330g)의 구성은 도 6의 메모리 컨트롤러(1330a)의 구성과 실질적으로 동일 또는 유사한 구성을 포함할 수 있다. 메모리 컨트롤러(1330g)의 동작은 도 6의 메모리 컨트롤러(1330a)의 동작과 실질적으로 동일 또는 유사한 동작을 포함할 수 있다. 메모리 컨트롤러(1330g)는 호스트 인터페이스 회로(1331), 기능 회로들(1333), 메모리 인터페이스 회로(1335), 및 버퍼 메모리(1337)를 포함할 수 있다. 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)는 도 6을 참조하여 설명되었다.
버퍼 메모리(1337)는 메모리 컨트롤러(1330g)에서 이용 또는 전달되는 데이터를 일시적으로 저장할 수 있다. 예로서, 버퍼 메모리(1337)는 기능 회로들(1333)에 의해 처리된 또는 처리될 데이터를 저장할 수 있고, 호스트 인터페이스 회로(1331) 및/또는 메모리 인터페이스 회로(1335)를 통해 전달되는 데이터를 저장할 수 있다. 이를 위해, 예로서, 버퍼 메모리(1337)는 SRAM, DRAM, SDRAM 등과 같은 휘발성 메모리, 및/또는 PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다.
로드 생성기(1350g)는 버스(1600)를 동작시키기 위한 클록(CLK5)을 수신할 수 있다. 로드 생성기(1350g)는 클록(CLK5)에 동기하여 로드들을 출력할 수 있다. 도 12에 나타낸 실시 예에서, 로드 생성기(1350g)는 이미 존재하는 클록(CLK5)에 응답하여 동작할 수 있다. 이 경우, 로드 생성기(1350g)를 위한 별도의 클록 생성기가 제공되지 않을 수 있고, 메모리 장치(1300g)의 구성이 단순화될 수 있다.
한편, 버스(1600)를 동작시키기 위한 클록(CLK5)의 주파수는 전자 시스템(1000) 또는 테스트 시스템(2000c)의 다른 클록들의 주파수들보다 다소 낮을 수 있다. 예로서, 클록(CLK5)의 주파수는 메모리 장치(1300g)(예컨대, 메모리 컨트롤러(1330g) 및/또는 메모리(1310))를 동작시키기 위한 클록의 주파수보다 낮을 수 있다. 이 경우, 클록(CLK5)에 기초하여 동작하는 로드 생성기(1350g)는 메모리 장치(1300g)의 동작들과 관련하여 요구되는 최대 대역폭을 커버하지 못할 수 있다. 도 13 및 도 14를 참조하여 설명될 실시 예들은 낮은 주파수의 클록(CLK5)에도 불구하고 최대 대역폭의 환경을 커버하기 위해 제공될 수 있다.
도 13은 도 12의 메모리 장치(1300g)에 포함되는 예시적인 구성을 보여주는 블록도이다.
몇몇 실시 예에서, 로드 생성기(1350g)는 로드 출력 버퍼(1351) 및 카운터(1353)를 포함할 수 있다. 몇몇 실시 예에서, 버퍼 메모리(1337)는 읽기 FIFO(First-in-first-out) 영역(1337r) 및 쓰기 FIFO 영역(1337w)을 포함할 수 있다. 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)은 버퍼 메모리(1337)에 포함되는 메모리 영역들 상에 할당될 수 있다.
여기서, FIFO라는 용어가 사용되지만, 버퍼 메모리(1337)에서 관리되는 데이터 구조는 FIFO 외의 다른 방식으로 다양하게 변경될 수 있다. 나아가, 도 13의 예시적인 구성은 더 나은 이해를 가능하게 하기 위해 제공되고, 본 발명을 한정하도록 의도되지 않는다.
활성화된 로드 생성기(1350g)의 로드 출력 버퍼(1351)는 클록(CLK5)에 동기하여 로드(LD)를 출력할 수 있다. 출력된 로드(LD)는 고유한 데이터 패턴을 포함하거나, 또는 패턴 제어 신호(PTN)에 의해 지시되는 데이터 패턴을 포함하도록 가변할 수 있다. 클록(CLK5)에 응답하여, 로드 출력 버퍼(1350)는 복수의 로드(LD)를 출력할 수 있다.
출력된 로드(LD)는 버퍼 메모리(1337)에 저장(예컨대, 버퍼링)될 수 있다. 예로서, 출력된 로드(LD)가 읽기 동작과 관련되는 경우, 출력된 로드(LD)는 읽기 FIFO 영역(1337r)에 버퍼링될 수 있다. 예로서, 출력된 로드(LD)가 쓰기 동작과 관련되는 경우, 출력된 로드(LD)는 쓰기 FIFO 영역(1337w)에 버퍼링될 수 있다. 이러한 방식으로, 메모리 컨트롤러(1330g)의 버퍼 메모리(1337)는 클록(CLK5)에 기초하여 복수의 로드(LD)에 대응하는 데이터 값들(예컨대, 비트들의 논리 값들)을 순차적으로 저장할 수 있다.
한편, 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)은 기준 데이터 크기만큼의 데이터 값들을 저장하도록 구성될 수 있다. 데이터 값들이 기준 데이터 크기만큼 누적될 때까지, 버퍼 메모리(1337)의 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)은 저장된 데이터 값들을 출력함이 없이 복수의 로드(LD)에 대응하는 데이터 값들을 저장할 수 있다.
예로서, 각 로드(LD)의 크기 및 기준 데이터 크기는 미리(예컨대, 메모리 장치(1300g)가 테스트되기 전에 미리) 결정될 수 있다. 이 경우, 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)을 완전히 채우기 위한 클록(CLK5)의 사이클들의 수 역시 결정될 수 있다. 예로서, 각 로드(LD)의 크기가 S이고 기준 데이터 크기가 10S인 경우, 클록(CLK5)의 10개 사이클에 응답하여 10개의 로드(LD)들이 출력될 수 있고 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)을 완전히 채울 수 있다.
활성화된 로드 생성기(1350g)의 카운터(1353)는 카운트 값을 관리할 수 있다. 카운터(1353)는 클록(CLK5)에 응답하여 카운트 값을 증가시킬 수 있다. 따라서, 복수의 로드(LD)에 대응하는 데이터 값들 각각이 버퍼 메모리(1337)에 저장(예컨대, 버퍼링)될 때마다, 카운터(1353)는 카운트 값을 증가시킬 수 있다.
카운트 값이 기준 값에 도달하는 경우, 카운터(1353)는 해제(Release) 신호(FREL)를 출력할 수 있다. 기준 값은 기준 데이터 크기와 관련될 수 있다. 예로서, 각 로드(LD)의 크기가 S이고 기준 데이터 크기가 10S인 경우, 기준 값은 10일 수 있다. 기준 값은 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)을 완전히 채우기 위한 클록(CLK5)의 사이클들의 수에 대응할 수 있다. 이 경우, 버퍼 메모리(1337)의 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)에 데이터 값들이 기준 데이터 크기만큼 누적되는 경우, 버퍼 메모리(1337)는 로드 생성기(1350g)로부터 해제 신호(FREL)를 수신할 수 있다.
해제 신호(FREL)에 응답하여, 버퍼 메모리(1337)는 읽기 FIFO 영역(1337r) 및 쓰기 FIFO 영역(1337w)에 저장된 기준 데이터 크기의 누적된 데이터 값들을 출력할 수 있다. 출력된 데이터 값들은 로드들(LDs)을 구성할 수 있다. 버퍼 메모리(1337)는 로드들(LDs)에 대응하는 데이터 값들을 순차적으로 출력할 수 있다. 카운트 값이 기준 값에 도달하고 로드들(LDs)이 해제 신호(FREL)에 응답하여 출력됨에 따라, 카운터(1353)가 리셋될 수 있다.
버퍼 메모리(1337)에 버퍼링된 데이터 값들이 기준 데이터 크기만큼 누적되는 경우, 메모리 컨트롤러(1330g)는 해제 신호(FREL)에 응답하여 로드들(LDs)을 처리할 수 있다. 메모리 컨트롤러(1330g)는 메모리 컨트롤러(1330g)를 동작시키기 위한 클록에 응답하여 로드들(LDs)을 처리할 수 있다. 예로서, 로드들(LDs)은 호스트 인터페이스 회로(1331)를 통해 또는 직접 기능 회로들(1333)로 제공될 수 있고, 기능 회로들(1333)은 로드들(LDs)을 처리할 수 있다. 예로서, 클록(CLK5)의 주파수는 메모리 컨트롤러(1330g)를 동작시키기 위한 클록의 주파수보다 낮을 수 있다.
도 14는 도 12 및 도 13의 메모리 장치(1300g)의 예시적인 동작을 설명하는 흐름도이다.
활성화된 로드 생성기(1350g)는 클록(CLK5)에 응답하여 로드(LD)를 출력할 수 있고 카운트 값을 증가시킬 수 있다(S310). 버퍼 메모리(1337)는 읽기 FIFO 영역(1337r) 또는 쓰기 FIFO 영역(1337w)에 로드(LD)를 버퍼링할 수 있다(S320). 카운트 값이 기준 값(Th)에 도달하지 않은 경우(S330의 No), 로드 생성기(1350g)는 다음 로드(LD)를 출력할 수 있고 카운트 값을 증가시킬 수 있다.
반면, 카운트 값이 기준 값(Th)에 도달한 경우(S330의 Yes), 활성화된 로드 생성기(1350g)는 해제 신호(FREL)를 출력할 수 있다(S340). 버퍼 메모리(1337)는 해제 신호(FREL)에 응답하여 기준 데이터 크기에 대응하는 로드들(LDs)을 출력할 수 있다(S350).
즉, 메모리 컨트롤러(1330g)는, 각 로드(LD)를 클록(CLK5)의 매 사이클에 응답하여 처리하는 대신, 기준 데이터 크기에 대응하여 버퍼 메모리(1337)에 누적된 로드들(LDs)을 한 번에 수신할 수 있다. 이 경우, 단위 시간 당 테스트 액세스들(TEST_ACS3)의 빈도가 증가하는 것처럼 보일 수 있다. 따라서, 클록(CLK5)의 주파수가 낮더라도, 메모리 장치(1300g)의 동작들과 관련하여 요구되는 최대 대역폭이 구현될 수 있다. 각 로드(LD)의 크기 및 기준 데이터 크기가 클록(CLK5)의 주파수에 따라 적절하게 선택되는 경우, 최대 대역폭의 환경 역시 적절하게 얻어질 수 있다.
도 15는 도 1의 메모리 장치(1300)를 테스트하기 위한 메모리 장치(1300h)의 예시적인 구성을 보여주는 블록도이다. 예로서, 도 1의 메모리 장치(1300)는 도 15의 메모리 장치(1300h)를 포함할 수 있다.
메모리 장치(1300h)는 메모리(1310) 및 메모리 컨트롤러(1330h)를 포함할 수 있다. 메모리 컨트롤러(1330h)는 호스트 인터페이스 회로(1331), 기능 회로들(1333), 메모리 인터페이스 회로(1335), 로드 생성기(1350h), 및 스위치 회로(1359h)를 포함할 수 있다. 호스트 인터페이스 회로(1331), 기능 회로들(1333), 및 메모리 인터페이스 회로(1335)는 도 6을 참조하여 설명되었다.
로드 생성기(1350h) 및 스위치 회로(1359h)는 도 8의 로드 생성기(1350d) 및 스위치 회로(1359d)에 각각 대응할 수 있다. 예로서, 로드 생성기(1350h)는 메모리(1310)로의 테스트 액세스들(TEST_ACS3)을 위한 로드들을 출력할 수 있다. 예로서, 스위치 회로(1359h)는 버스(1600)를 통한 마스터 장치들로부터의 메모리(1310)로의 액세스들(ACS1) 또는 로드 생성기(1350h)로부터의 메모리(1310)로의 테스트 액세스들(TEST_ACS3)을 선택적으로 제공할 수 있다.
도 15를 도 8과 비교하면, 로드 생성기(1350h) 및 스위치 회로(1359h)는 메모리 컨트롤러(1330h) 내부에 제공될 수 있다. 예로서, 로드 생성기(1350h)의 동작을 제어하거나 메모리 장치(1300h)를 테스트하는 데에 메모리 컨트롤러(1330h) 내부의 다른 신호들이 요구되는 경우, 로드 생성기(1350h)를 메모리 컨트롤러(1330h) 내부에 구현함으로써 신호 라우팅(Routing)이 쉬워질 수 있다. 이처럼, 본 개시의 실시 예들이 위 설명들로 한정되지 않고 다양하게 변경 또는 수정될 수 있음이 잘 이해될 것이다.
위 설명들은 본 발명을 구현하기 위한 예시적인 구성들 및 동작들을 제공하도록 의도된다. 본 발명의 기술 사상은 위에서 설명된 실시 예들뿐만 아니라, 위 실시 예들을 단순하게 변경하거나 수정하여 얻어질 수 있는 구현들도 포함할 것이다. 또한, 본 발명의 기술 사상은 위에서 설명된 실시 예들을 앞으로 용이하게 변경하거나 수정하여 달성될 수 있는 구현들도 포함할 것이다.
1000 : 전자 시스템
2000a, 2000b, 2000c : 테스트 시스템

Claims (10)

  1. 메모리로의 복수의 제 1 액세스들을 위한 복수의 로드(Load)들을 생성하도록 구성되는 로드 생성기; 및
    상기 로드 생성기로부터 상기 복수의 로드들을 수신하고 그리고 상기 복수의 제 1 액세스들과 관련된 동작들이 상기 메모리에서 수행되도록 상기 복수의 로드들을 처리하도록 구성되는 메모리 컨트롤러를 포함하되,
    상기 복수의 로드들은 적어도 2 개의 상이한 유형의 복수의 마스터 장치들로부터 상기 메모리로의 복수의 제 2 액세스들을 위한 복수의 요청들에 대응되고, 상기 복수의 로드들의 각각은 상기 복수의 마스터 장치들 중 대응하는 마스터 장치의 유형에 기초하여 생성되고,
    상기 메모리 컨트롤러는 상기 복수의 요청들을 처리하는 방식과 동일한 방식으로 상기 복수의 로드들을 처리하도록 더 구성되는 메모리 장치.
  2. 제 1 항에 있어서,
    상기 복수의 로드들의 각각은 상기 메모리 장치의 동작들과 관련하여 요구되는 최대 대역폭의 환경에서 상기 복수의 제 1 액세스들에 기초하여 상기 메모리 장치를 테스트하기 위한 데이터 패턴을 포함하고,
    상기 복수의 로드들의 포맷은 상기 복수의 마스터 장치들로부터 출력되는 상기 복수의 요청들의 포맷과 동등한 메모리 장치.
  3. 제 1 항에 있어서,
    상기 로드 생성기로부터의 상기 복수의 로드들 또는 상기 복수의 마스터 장치들로부터의 상기 복수의 요청들을 선택적으로 상기 메모리 컨트롤러로 전달하도록 구성되는 스위치 회로를 더 포함하는 메모리 장치.
  4. 제 3 항에 있어서,
    상기 로드 생성기 및 상기 스위치 회로로 활성화 신호를 출력하도록 구성된 레지스터를 더 포함하고,
    상기 로드 생성기는 상기 활성화 신호에 기초하여 상기 복수의 로드들을 출력하도록 더 구성되고,
    상기 스위치 회로는 상기 활성화 신호에 기초하여 상기 복수의 로드들을 상기 메모리 컨트롤러로 전달하도록 더 구성되는 메모리 장치.
  5. 제 1 항에 있어서,
    상기 로드 생성기는 상기 복수의 마스터 장치들 및 버스를 동작시키기 위한 복수의 클록들 중 하나의 클록에 응답하여 상기 복수의 로드들을 출력하도록 더 구성되고,
    상기 하나의 클록의 주파수는 상기 복수의 클록들의 주파수들 중 가장 높은 메모리 장치.
  6. 제 1 항에 있어서,
    상기 로드 생성기는 버스를 동작시키기 위한 제 1 클록에 응답하여 상기 복수의 로드들을 출력하도록 더 구성되고,
    상기 제 1 클록의 주파수는 상기 메모리 컨트롤러를 동작시키기 위한 제 2 클록의 주파수보다 낮은 메모리 장치.
  7. 제 6 항에 있어서,
    상기 메모리 컨트롤러는 상기 복수의 로드들에 대응하는 데이터 값들을 순차적으로 저장하고 출력하도록 구성되는 버퍼 메모리를 포함하고,
    상기 버퍼 메모리는 상기 데이터 값들이 기준 데이터 크기만큼 누적될 때까지 상기 데이터 값들을 저장하도록 더 구성되고,
    상기 버퍼 메모리에 저장된 상기 데이터 값들이 상기 기준 데이터 크기만큼 누적되는 경우, 상기 버퍼 메모리는 상기 로드 생성기로부터 수신되는 해제(Release) 신호에 응답하여 상기 기준 데이터 크기의 상기 누적된 데이터 값들을 출력하고 상기 메모리 컨트롤러는 상기 제 2 클록에 응답하여 상기 출력된 데이터 값들에 대응하는 상기 복수의 로드들을 처리하는 메모리 장치.
  8. 메모리를 제어하도록 구성되는 메모리 컨트롤러에 있어서,
    상기 메모리로의 복수의 제 1 액세스들을 위한 복수의 로드(Load)들을 생성하도록 구성되는 로드 생성기;
    상기 로드 생성기로부터 상기 복수의 로드들을 수신하도록 구성되는 인터페이스 회로; 및
    상기 인터페이스 회로로부터 상기 복수의 로드들을 수신하고, 그리고 상기 복수의 제 1 액세스들과 관련되는 동작들이 상기 메모리에서 수행되도록 상기 복수의 로드들을 처리하도록 구성되는 기능 회로들을 포함하되,
    상기 복수의 로드들은 적어도 2 개의 상이한 유형의 복수의 마스터 장치들로부터 상기 메모리로의 복수의 제 2 액세스들을 위한 복수의 요청들에 대응되고, 상기 복수의 로드들의 각각은 상기 복수의 마스터 장치들 중 대응하는 마스터 장치의 유형에 기초하여 생성되고,
    테스트 활성화 신호에 응답하여, 상기 로드 생성기는 상기 복수의 로드들이 상기 복수의 마스터 장치들로부터의 상기 복수의 요청들의 데이터 포맷과 동등한 데이터 포맷을 갖도록 상기 복수의 로드들을 출력하고, 상기 인터페이스 회로는 상기 복수의 마스터 장치들로부터의 상기 복수의 요청들을 수신함이 없이 상기 복수의 로드들을 수신하는 메모리 컨트롤러.
  9. 제 8 항에 있어서,
    상기 로드 생성기는 상기 복수의 로드들을 출력하기 위해 일정한 대역폭으로 상기 복수의 로드들을 출력하도록 더 구성되고,
    상기 기능 회로들은 상기 복수의 로드들의 각각을 한 번씩 처리하도록 더 구성되는 메모리 컨트롤러.
  10. 메모리 장치의 동작 방법에 있어서,
    상기 메모리 장치의 테스트를 위한 활성화 신호를 수신하는 단계;
    상기 활성화 신호를 기반으로, 적어도 2 개의 상이한 유형의 복수의 마스터 장치들로부터 상기 메모리 장치로의 복수의 메모리 액세스들을 시뮬레이션하기 위한 복수의 로드들을 생성하는 단계; 및
    상기 복수의 로드들을 처리하는 단계를 포함하되,
    상기 복수의 로드들을 생성하는 단계는 일정한 대역폭으로 상기 복수의 로드들을 출력하는 단계를 포함하고, 상기 복수의 로드들의 각각은 상기 복수의 마스터 장치들 중 대응하는 마스터 장치의 유형에 기초하여 생성되고,
    상기 복수의 로드들을 처리하는 단계는 상기 복수의 로드들에 대응하는 메모리 액세스들과 관련된 메모리 동작들을 수행하는 단계를 포함하는 메모리 장치의 동작 방법.
KR1020180043330A 2018-04-13 2018-04-13 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법 KR102533377B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180043330A KR102533377B1 (ko) 2018-04-13 2018-04-13 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법
US16/192,989 US10923210B2 (en) 2018-04-13 2018-11-16 Memory device including load generator and method of operating the same
CN201910188874.7A CN110379453B (zh) 2018-04-13 2019-03-13 存储器装置、存储器控制器及操作存储器装置的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180043330A KR102533377B1 (ko) 2018-04-13 2018-04-13 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법

Publications (2)

Publication Number Publication Date
KR20190119860A KR20190119860A (ko) 2019-10-23
KR102533377B1 true KR102533377B1 (ko) 2023-05-18

Family

ID=68161915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180043330A KR102533377B1 (ko) 2018-04-13 2018-04-13 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법

Country Status (3)

Country Link
US (1) US10923210B2 (ko)
KR (1) KR102533377B1 (ko)
CN (1) CN110379453B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111966554B (zh) * 2020-08-25 2024-02-09 深圳比特微电子科技有限公司 芯片测试方法和计算芯片
CN114385426A (zh) * 2020-10-16 2022-04-22 长鑫存储技术有限公司 存储器测试方法、装置、设备及存储介质
US11556259B1 (en) * 2021-09-02 2023-01-17 Micron Technology, Inc. Emulating memory sub-systems that have different performance characteristics

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157053A1 (en) * 2012-12-05 2014-06-05 Christopher P. Mozak Memory subsystem data bus stress testing

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4651298A (en) * 1984-05-30 1987-03-17 The United States Of America As Represented By The Secretary Of The Air Force Selection of data from busses for test
US5109348A (en) 1987-09-14 1992-04-28 Visual Information Technologies, Inc. High speed image processing computer
US5777608A (en) 1989-03-10 1998-07-07 Board Of Regents, The University Of Texas System Apparatus and method for in-parallel scan-line graphics rendering using content-searchable memories
US5748640A (en) * 1996-09-12 1998-05-05 Advanced Micro Devices Technique for incorporating a built-in self-test (BIST) of a DRAM block with existing functional test vectors for a microprocessor
SG63746A1 (en) * 1996-09-20 1999-03-30 Texas Instruments Inc Method and system for testing memory
US5991213A (en) * 1997-04-30 1999-11-23 Texas Instruments Incorporated Short disturb test algorithm for built-in self-test
JP3444154B2 (ja) * 1997-09-17 2003-09-08 日本電気株式会社 メモリアクセス制御回路
US5930497A (en) * 1997-12-11 1999-07-27 International Business Machines Corporation Method and means for generation of realistic access patterns in storage subsystem benchmarking and other tests
US6330697B1 (en) 1999-04-20 2001-12-11 International Business Machines Corporation Apparatus and method for performing a defect leakage screen test for memory devices
US6341094B1 (en) * 2001-07-30 2002-01-22 Lsi Logic Corporation Method and apparatus for functional testing of memory related circuits
JP2004158144A (ja) 2002-11-07 2004-06-03 Renesas Technology Corp 半導体集積回路
US20040216018A1 (en) * 2003-04-28 2004-10-28 Cheung Kam Tim Direct memory access controller and method
KR100505706B1 (ko) 2003-08-25 2005-08-02 삼성전자주식회사 테스트 패턴 신호의 주파수를 선택적으로 가변시키는반도체 메모리 장치의 테스트 장치 및 그 테스트 방법
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
JP4635061B2 (ja) * 2008-02-27 2011-02-16 株式会社東芝 半導体記憶装置の評価方法
US9536626B2 (en) 2013-02-08 2017-01-03 Intel Corporation Memory subsystem I/O performance based on in-system empirical testing
US9568542B2 (en) * 2013-09-25 2017-02-14 Cavium, Inc. Memory interface with integrated tester
JP6546067B2 (ja) 2015-11-04 2019-07-17 ファナック株式会社 メモリ素子の動作マージン確認装置及び動作マージン確認方法
US20170149555A1 (en) 2015-11-20 2017-05-25 Qualcomm Incorporated Self-test for source-synchronous interface
US10720224B2 (en) * 2018-07-18 2020-07-21 Micron Technology, Inc. Protocol independent testing of memory devices using a loopback

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157053A1 (en) * 2012-12-05 2014-06-05 Christopher P. Mozak Memory subsystem data bus stress testing

Also Published As

Publication number Publication date
KR20190119860A (ko) 2019-10-23
CN110379453B (zh) 2024-05-28
US20190318797A1 (en) 2019-10-17
CN110379453A (zh) 2019-10-25
US10923210B2 (en) 2021-02-16

Similar Documents

Publication Publication Date Title
KR102533377B1 (ko) 로드 생성기를 포함하는 메모리 장치 및 그것을 동작시키는 방법
US20190087363A1 (en) Multilevel memory bus system
KR101729874B1 (ko) 시스템 내 약한 비트 검출에 기초하는 향상된 리프레시 레이트 성능
US8081527B1 (en) Per-bit de-skew mechanism for a memory interface controller
JP2008511061A (ja) データ、コマンド、およびアドレス信号をストローブするためのメモリシステムおよび方法
JP6166773B2 (ja) 光モジュール可用性検出方法及び装置
TWI656474B (zh) 用於配置具有軟錯誤檢測和低佈線複雜度的多個寄存器的系統和方法
US11226823B2 (en) Memory module and operating method thereof
CN101369465A (zh) 使用逻辑芯片的半导体器件
US20070038795A1 (en) Asynchronous bus interface and processing method thereof
US10496422B2 (en) Serial device emulator using two memory levels with dynamic and configurable response
US11275402B2 (en) Read clock generation circuit and data processing circuit including the same
US8407542B2 (en) Implementing switching factor reduction in LBIST
US20080086666A1 (en) Analyzer
US20140297973A1 (en) Storage system and information processing apparatus
US20190042131A1 (en) Dynamically programmable memory test traffic router
JP2004185619A (ja) クロックソースを切り替えるシステムおよび方法
US11955982B2 (en) Granular clock frequency division using dithering mechanism
US9160327B2 (en) Semiconductor device and information processing apparatus
US11644861B2 (en) Information processing apparatus including function blocks and generation units
JP4840963B2 (ja) バスシステム及びその制御方法
CN109655643B (zh) 测试装置及其测试电路板
KR20180068346A (ko) 반도체 장치 및 그의 동작 방법
US6421280B1 (en) Method and circuit for loading data and reading data
TW202232501A (zh) 半導體積體電路及其設計方法、設計支援系統與程式

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right