KR101242602B1 - 테스트 회로를 내장한 시스템 온 칩 - Google Patents

테스트 회로를 내장한 시스템 온 칩 Download PDF

Info

Publication number
KR101242602B1
KR101242602B1 KR1020060012192A KR20060012192A KR101242602B1 KR 101242602 B1 KR101242602 B1 KR 101242602B1 KR 1020060012192 A KR1020060012192 A KR 1020060012192A KR 20060012192 A KR20060012192 A KR 20060012192A KR 101242602 B1 KR101242602 B1 KR 101242602B1
Authority
KR
South Korea
Prior art keywords
processor
test
memory
trace
response
Prior art date
Application number
KR1020060012192A
Other languages
English (en)
Other versions
KR20070080751A (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 KR1020060012192A priority Critical patent/KR101242602B1/ko
Priority to US11/623,831 priority patent/US7702956B2/en
Publication of KR20070080751A publication Critical patent/KR20070080751A/ko
Application granted granted Critical
Publication of KR101242602B1 publication Critical patent/KR101242602B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62JCYCLE SADDLES OR SEATS; AUXILIARY DEVICES OR ACCESSORIES SPECIALLY ADAPTED TO CYCLES AND NOT OTHERWISE PROVIDED FOR, e.g. ARTICLE CARRIERS OR CYCLE PROTECTORS
    • B62J7/00Luggage carriers
    • B62J7/02Luggage carriers characterised by the arrangement thereof on cycles
    • B62J7/04Luggage carriers characterised by the arrangement thereof on cycles arranged above or behind the rear wheel
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62JCYCLE SADDLES OR SEATS; AUXILIARY DEVICES OR ACCESSORIES SPECIALLY ADAPTED TO CYCLES AND NOT OTHERWISE PROVIDED FOR, e.g. ARTICLE CARRIERS OR CYCLE PROTECTORS
    • B62J1/00Saddles or other seats for cycles; Arrangement thereof; Component parts
    • B62J1/14Separate pillions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B62LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
    • B62JCYCLE SADDLES OR SEATS; AUXILIARY DEVICES OR ACCESSORIES SPECIALLY ADAPTED TO CYCLES AND NOT OTHERWISE PROVIDED FOR, e.g. ARTICLE CARRIERS OR CYCLE PROTECTORS
    • B62J1/00Saddles or other seats for cycles; Arrangement thereof; Component parts
    • B62J1/28Other additional equipment, e.g. back-rests for children
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

프로세서 및 캐쉬 메모리 등을 원 칩으로 집적한 반도체 집적 회로 즉, 시스템 온 칩은 프로세서로부터 발생한 테스트 플래그 신호들에 응답해서 테스트 제어 신호들을 발생하는 테스트 컨트롤러, 그리고 테스트 제어 신호들에 응답해서 프로세서와 테스트 대상 장치인 캐쉬 메모리 사이의 전송 데이터 신호를 저장하는 트레이스 메모리를 포함한다. 집적 회로 내 트레이스 메모리를 구비함으로써 집적 회로가 완전히 제작된 후에도 집적 회로를 분해하지 않고도 집적 회로 내에 구성된 테스트 대상 장치의 동작을 테스트할 수 있다.

Description

테스트 회로를 내장한 시스템 온 칩{SYSTEM ON A CHIP HAVING TEST CIRCUIT}
도 1은 본 발명의 바람직한 실시예에 따른 반도체 집적 회로의 구성을 보여주는 블록도;
도 2는 도 1에 도시된 집적 회로 내 캐쉬 메모리에 대한 테스트를 수행하는 과정을 보여주는 타이밍도;
도 3은 도 1에 도시된 캐쉬 메모리가 멀티-웨이 셋 어소시어티브 캐쉬 메모리로 구성될 때 캐쉬 메모리의 구조를 간략하게 보여주는 도면;
도 4는 본 발명의 다른 실시예에 따른 집적 회로를 보여주는 블록도;
도 5는 트레이스 메모리의 구체적인 구성을 보여주는 도면; 그리고
도 6은 도 4에 도시된 코-프로세서 내 레지스터 셋의 구성을 예시적으로 보여주는 도면이다.
*도면의 주요 부분에 대한 설명
100, 200 : 반도체 집적 회로 110, 210 : JTAG 인터페이스
120, 220 : ARM 프로세서 121, 221 : 레지스터 셋
130, 230 : 메모리 140, 240 : 트레이스 메모리
150, 250 : 코-프로세서 151, 251 : 레지스터 셋
160, 260 : 테스트 컨트롤러 170, 270 : 캐쉬 메모리
241-245 : 멀티플렉서 246, 247 : 메모리
310, 320, 330 : 제어 레지스터
311, 321, 331 : 어드레스 레지스터
312, 313, 322, 323, 331, 332 : 데이터 레지스터
본 발명은 시스템 온 칩(System On a Chip, SOC)에 관한 것이다.
반도체 공정이 발전하면서 최근 개발되고 있는 반도체 집적 회로는 중앙 처리 장치(central processing unit, CPU), 캐쉬 메모리, 입/출력 인터페이스 회로 등이 단일 칩으로 집적된 SOC 형태로 개발되는 경향을 보이고 있다. CPU와 캐쉬 메모리를 단일 칩으로 집적하는 경우, 데이터 입/출력 속도가 향상되고, 그 결과 CPU의 전체 성능이 향상되는 효과를 얻을 수 있다. 그러나 제조 공정 등의 불균형 등으로 인해 반도체 집적 회로에 불량이 발생될 수 있으며, 불량의 원인을 밝히기 위한 노력이 필요하다.
일반적으로 반도체 집적 회로의 제작은 복수의 단계들을 거치게 되고, 각 단계마다 집적 회로의 불량 여부가 테스트된다. SOC로 완전하게 제작된 후 발생되는 불량의 원인을 찾기 위해서는 칩을 분해한 후 테스트 신호를 반도체 집적 회로로 인가하고, 외부로 노출된 신호 라인들을 통해 전달되는 신호들을 관찰(probing)하는 과정이 필요하다. 이와 같은 테스트 방법은 많은 시간이 소요되고, 작업자의 세심한 주의가 요구된다.
따라서 본 발명은 테스트가 용이한 반도체 집적 회로를 제공하는 데 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 의하면, 반도체 집적 회로는: 테스트 대상 장치와, 상기 테스트 대상 장치를 액세스하고, 테스트 플래그 신호들을 발생하는 프로세서와, 상기 테스트 플래그 신호들에 응답해서 테스트 제어 신호들을 발생하는 테스트 컨트롤러, 그리고 상기 테스트 제어 신호들에 응답해서 상기 프로세서와 상기 테스트 대상 장치 사이의 전송 데이터 신호를 저장하는 트레이스 메모리를 포함한다.
상기 프로세서는, 제 1 레지스터를 포함하는 제 1 프로세서 그리고 제 2 레지스터를 포함하는 제 2 프로세서를 포함한다. 상기 제 1 프로세서는 제 1 명령에 응답해서 상기 제 1 레지스터의 신호들을 상기 제 2 프로세서 내 상기 제 2 레지스터로 이송하고, 제 2 명령에 응답해서 상기 제 2 프로세서 내 상기 제 2 레지스터의 신호들을 상기 제 1 레지스터로 이송한다.
상기 제 1 프로세서는 ARM(Advanced RISC Machine) 프로세서이고, 상기 제 2 프로세서는 코-프로세서이다.
상기 테스트 플래그 신호들은 상기 제 1 프로세서 내 상기 제 1 레지스터 및 상기 제 2 프로세서 내 상기 제 2 레지스터에 저장된다. 상기 테스트 플래그 신호들은 트레이스 시작 신호를 포함한다.
상기 테스트 컨트롤러는, 상기 트레이스 시작 신호에 응답해서 상기 트레이스 메모리로 제공되는 칩 선택 신호를 인에이블하고, 상기 칩 선택 신호가 인에이블된 후 클럭 신호에 응답해서 어드레스를 상기 트레이스 메모리로 제공한다.
상기 트레이스 메모리는, 상기 클럭 신호, 상기 칩 선택 신호 및 상기 어드레스에 응답해서 상기 테스트 대상 장치와 상기 프로세서 간의 전송 데이터 신호를 기입한다.
상기 테스트 대상 장치는 캐쉬 메모리이고, 상기 캐쉬 메모리는 멀티-웨이 셋 어소시어티브 캐쉬 메모리로 구성된다. 상기 트레이스 메모리는, 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 데이터 신호들을 저장한다.
상기 테스트 컨트롤러는, 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 상기 데이터 신호들 중 어느 하나를 선택하기 위한 선택 신호를 출력하고, 상기 트레이스 메모리는 상기 선택 신호에 응답해서 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 출력되는 데이터 신호들 중 어느 하나를 저장한다.
상기 트레이스 메모리는 적어도 2 개의 메모리들, 그리고 상기 선택 신호에 응답해서 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 상기 데이터 신호들 중 어느 하나를 상기 적어도 2 개의 메모리들 중 선택된 메모리로 제공하는 선택 회로를 포함한다.
본 발명의 다른 특징에 따른 반도체 집적 회로는: 테스트 대상 장치와, 상기 테스트 대상 장치를 액세스하고, 테스트 플래그 신호들을 발생하는 프로세서와, 상기 테스트 플래그 신호들에 응답해서 테스트 제어 신호들을 발생하는 테스트 컨트롤러, 그리고 상기 테스트 제어 신호들에 응답해서 상기 프로세서와 상기 테스트 대상 장치 사이의 전송 데이터 신호를 저장하고, 저장된 데이터 신호를 상기 프로세서로 제공하는 트레이스 메모리를 포함한다.
이하 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다.
도 1은 본 발명의 바람직한 실시예에 따른 반도체 집적 회로의 구성을 보여주는 블록도이다. 도 1을 참조하면, 반도체 집적 회로(100)는 외부와의 인터페이스를 위한 JTAG(Joint Test Action Group) 인터페이스(110), ARM(Advanced RISC Machine) 프로세서(120), 메모리(130), 트레이스 메모리(140), 코-프로세서(co-processor, 150), 테스트 컨트롤러(160) 그리고 캐쉬 메모리(170)를 포함한다.
ARM 프로세서(120)는 메인 프로세서이며, 레지스터 셋(121)을 포함한다. 메모리(130)에 저장된 테스트 프로그램 또는 테스트 코드는 ARM 프로세서(120)에 의해서 실행되며 테스트를 위한 플래그 신호들 및 어드레스는 레지스터 셋(121)에 저장된다. 다른 실시예에서, 테스트 프로그램 또는 테스트 코드는 메모리(130)에 저장되지 않고, JTAG 인터페이스(110)를 통하여 외부로부터 입력될 수 있다.
코-프로세서(150)는 레지스터 셋(151)을 포함한다. ARM 프로세서(120) 내 레지스터 셋(121)에 저장된 테스트를 위한 플래그 신호들 및 어드레스는 코-프로세서(150) 내 레지스터 셋(151)으로 이동될 수 있고, 코-프로세서(150) 내 레지스터 셋(151)에 저장된 테스트 결과는 ARM 프로세서(120) 내 레지스터 셋(121)으로 이동된다.
테스트 컨트롤러(160)는 코-프로세서(150) 내 레지스터 셋(151)에 저장된 플래그 신호들 및 어드레스에 응답해서 트레이스 메모리(140)를 제어하기 위한 제어 신호들(CLK, CSN, WEN, SEL0-SEL4) 및 어드레스(ADDR)를 발생한다.
트레이스 메모리(140)는 테스트 컨트롤러(150)로부터의 제어 신호들 및 어드레스에 응답해서 캐쉬 메모리(170)로부터 출력되는 데이터를 입력 데이터(DIN)로서 받아들여서 저장하고, 저장된 데이터를 출력 데이터(DOUT)로서 코-프로세서(150)로 제공한다.
캐쉬 메모리(170)는 테스트 대상 장치이다. 즉, ARM 프로세서(120)가 캐쉬 메모리(170)에 저장된 데이터를 독출할 때 캐쉬 메모리(170)로부터 출력되는 데이터가 트레이스 메모리(140)에 저장된다.
상술한 바와 같이, 본 발명의 집적 회로(100)는 테스트를 위해 필요한 최소 크기의 트레이스 메모리(140)와 간단한 제어 회로로 구성된 테스트 컨트롤러(160)를 포함한다. 캐쉬 메모리(170)로부터 출력된 데이터는 트레이스 메모리(140)에 저장된 후 코-프로세서(150)의 레지스터 셋(151)으로 출력된 후 ARM 프로세서(120) 내 레지스터 셋(121) 및 JTAG 인터페이스(110)를 통해 집적 회로(100)의 외부로 출력된다. 그러므로 집적 회로(100)가 완전히 제작된 후에도 캐쉬 메모리(170)에 대 한 테스트를 용이하게 실시할 수 있다.
이 실시예에서는 테스트 대상 장치의 일 예로서 캐쉬 메모리를 도시하고 설명하였으나, 테스트 대상 장치는 캐쉬 메모리뿐만 아니라 프로세서와 단일 칩으로 집적되는 어느 장치도 될 수 있다.
도 2는 도 1에 도시된 집적 회로(100) 내 캐쉬 메모리(170)에 대한 테스트를 수행하는 과정을 보여주는 타이밍도이다. 캐쉬 메모리(170)에 대한 테스트는 캐쉬 메모리(170)로부터 출력되는 데이터를 트레이스 메모리(140)에 저장하는 트레이스(trace) 모드와 트레이스 메모리(140)에 저장된 데이터를 코-프로세서(150)로 출력하는 덤프(dump) 모드를 포함한다.
도 2를 참조하면, ARM 프로세서(120)는 메모리(130)로부터 독출된 테스트 코드를 실행하되, 트레이스 모드가 시작될 때 레지스터 셋(121)의 트레이스 시작 플래그 신호(T_START)를 '1'로 설정한다. 레지스터 셋(121)에 저장된 트레이스 시작 플래그 신호(T_START)는 제 1 명령(MCR)에 응답해서 코-프로세서(150) 내 레지스터 셋(151)으로 이동된다. 한편, ARM 프로세서(120)는 캐쉬 메모리(170)로부터 데이터를 독출하는 동작을 수행한다.
테스트 컨트롤러(150)는 코-프로세서(150) 내 레지스터 셋(151)에 저장된 트레이스 시작 플래그 신호(T_START)에 응답해서 칩 선택 신호(CSN)를 로우 레벨로 인에이블하고, 기입 인에이블 신호(WEN)를 로우 레벨로 설정하며, 어드레스 신호(ADDR)를 순차적으로 증가시킨다.
트레이스 메모리(140)는 테스트 컨트롤러(160)로부터의 클럭 신호(CLK), 칩 인에이블 신호(CSN), 기입 인에이블 신호(WEN) 및 어드레스(ADDR)에 응답해서 캐쉬 메모리로부터 출력되는 데이터(DIN)를 저장한다.
ARM 프로세서(120) 내 레지스터 셋(121)으로부터 코-프로세서(150) 내 레지스터 셋(151)으로 전달된 트레이스 종료 신호(T_STOP)가 '0'에서 '1'로 변경되면, 테스트 컨트롤러(160)는 기입 인에이블 신호(WEN)를 하이 레벨로 천이한다. 또한, ARM 프로세서(120) 내 레지스터 셋(121)으로부터 코-프로세서(150) 내 레지스터 셋(151)으로 전달된 어드레스(IN_ADDR)는 테스트 컨트롤러(260)에 의해서 독출 어드레스(ADDR)로서 트레이스 메모리(140)로 제공된다.
트레이스 메모리(140)는 기입 인에이블 신호(WEN)에 응답해서 캐쉬 메모리(170)로부터 입력되는 데이터(DIN)를 저장하는 동작을 종료하고, 입력된 어드레스(ADDR)에 저장된 데이터를 코-프로세서(150) 내 레지스터 셋(151)으로 출력한다. 코-프로세서(150) 내 레지스터 셋(151)에 저장된 데이터는 제 2 명령(MRC)에 응답해서 ARM 프로세서(120) 내 레지스터 셋(121)으로 이동된다. 이후, ARM 프로세서(120) 내 레지스터 셋(121)에 저장된 데이터는 JTAG 인터페이스(110)를 통해서 외부로 출력된다.
이 실시예에서 캐쉬 메모리(170)로부터 입력된 데이터(DIN)는 트레이스 메모리(140)의 '00'번째 번지부터 저장되고, 트레이스 메모리(140)에 저장된 데이터는 ARM 프로세서(120)가 지정한 번지부터 독출될 수 있다. 그러므로 테스트 동작시 트레이스 메모리(140)에 저장된 모든 데이터를 독출하지 않고, 원하는 데이터만을 독출할 수도 있다.
도 3은 도 1에 도시된 캐쉬 메모리(170)가 멀티-웨이 셋 어소시어티브 캐쉬 메모리로 구성될 때 캐쉬 메모리의 구조를 간략하게 보여주고 있다.
도 3에 도시된 캐쉬 메모리(170)는 4-웨이 셋 어소시어티브 캐쉬(171)와 비교기(172)를 포함한다. 이 실시예에서, 캐쉬(171)는 명령(instruction)을 저장하기 위해 사용되는 명령 캐쉬이며, 캐쉬(171)의 셋들(SETO-SET3) 각각은 ARM 프로세서(120)로부터 출력되는 어드레스(IA)에 응답해서 데이터(DATA0-DATA3)를 출력한다. 선택기(172)는 ARM 프로세서(120)로부터의 어드레스(IA)에 응답해서 셋들(SET0-SET3)로부터 출력되는 데이터(DATA0-DATA3) 중 어느 하나를 출력 데이터(IDATA)로서 ARM 프로세서(120)로 출력한다.
본 발명의 실시예에 따른 트레이스 메모리(140)는 ARM 프로세서(120)로부터 캐쉬 메모리(170)로 출력되는 어드레스(IA), 캐쉬 메모리(170)로부터 ARM 프로세서(120)로 출력되는 데이터(IDATA) 그리고 캐쉬(171)의 셋들(SET0-SET3)로부터 출력되는 데이터(DATA0-DATA3)를 저장할 수 있다.
도 4는 본 발명의 다른 실시예에 따른 집적 회로를 보여주는 블록도이다. 도 4에 도시된 집적 회로(200)는 도 1에 도시된 집적 회로(200)와 동일한 회로 구성을 가지나, 테스트 컨트롤러(260)가 트레이스 메모리(240)로 제공하는 제어 신호들의 수가 달라진다. 이는 트레이스 메모리(240)의 내부 회로 구성이 도 1에 도시된 트레이스 메모리(140)와 다르기 때문이다. 도 4에 도시된 회로 구성 요소들 중 도 1에 도시된 구성 요소들과 동일한 기능 및 동작을 수행하는 것은 중복되는 설명을 피하기 위해서 상세한 설명을 생략한다.
테스트 컨트롤러(260)가 트레이스 메모리(240)로 제공하는 신호들에는 클럭 신호(CLK), 제 1 및 제 2 칩 선택 신호들(CSN1, CSN2), 제 1 및 제 2 기입 인에이블 신호들(WEN1, WEN2), 어드레스 신호(ADDR) 그리고 선택 신호들(SEL0~SEL4)이 포함된다.
트레이스 메모리의 구체적인 구성은 도 5에 도시되어 있다. 도 5를 참조하면, 트레이스 메모리(240)는 멀티플렉서들(241-245)과 제 1 및 제 2 메모리들(246, 247)을 포함한다. 멀티플렉서(241)는 ARM 프로세서(120)로부터 캐쉬(171)로 제공되는 어드레스(IA)와 선택기(172)로부터 출력되는 데이터(IDATA)를 입력받는다. 멀티플렉서(242)는 캐쉬(171)의 셋들(SET0, SET1)로부터 출력되는 데이터들(DATA0, DATA1)을 입력받고, 멀티플렉서(242)는 캐쉬(172)의 셋들(SET2, SET3)로부터 출력되는 데이터들(DATA2, DATA3)을 입력받는다. 멀티플렉서들(244, 245)은 멀티플렉서들(241-243)로부터의 출력들을 입력받는다. 멀티플렉서들(241-245)은 테스트 컨트롤러(160)로부터 입력되는 선택 신호들(SEL0-SEL4) 중 대응하는 선택 신호에 각각 응답해서 입력 신호들 중 하나를 출력한다.
ARM 프로세서(120)로부터 캐쉬 메모리(170)로 전달되는 어드레스(IA)와 캐쉬 메모리(170)로부터 ARM 프로세서(120)로 전달되는 데이터(IDATA)에 대한 트레이스를 용이하게 수행할 수 있도록 트레이스 메모리(240)는 두 개의 메모리들(246, 247)을 포함한다. 제 1 및 제 2 메모리들(246, 247)의 크기는 집적 회로(100) 내에서 메모리들(246, 247)이 차지하는 면적 및 메모리들(246, 247)에 저장되는 명령의 수에 따라서 결정된다. 메모리들(246, 247)이 차지하는 면적이 집적 회로(100) 의 크기에 부담되지 않도록 메모리들(1246, 247)의 크기는 설정되어야 하며, 트레이스되는 명령의 수는 최소 10개 이상이어야 한다. 이 실시예에서, 제 1 및 제 2 메모리들(246, 247)은 각각 128 word × 32 bit SRAM(static random access memory)으로 구성된다.
제 1 메모리(246)는 테스트 컨트롤러(160)로부터 입력되는 클럭 신호(CLK), 칩 선택 신호(CSN), 기입 인에이블 신호(WEN) 및 어드레스(ADDR)에 응답해서 멀티플렉서(244)로부터의 입력을 저장하거나 또는 저장된 데이터를 출력 데이터(DOUT)로서 출력한다.
제 2 메모리(247)는 테스트 컨트롤러(160)로부터 입력되는 클럭 신호(CLK), 칩 선택 신호(CSN), 기입 인에이블 신호(WEN) 및 어드레스(ADDR)에 응답해서 멀티플렉서(245)로부터의 입력을 저장하거나 또는 저장된 데이터를 출력 데이터(DOUT)로서 출력한다.
ARM 프로세서(220) 또는 캐쉬 메모리(270)로부터 입력되는 데이터가 트레이스 메모리(240) 내 제 1 및 제 2 메모리들(246, 247) 중 어디에 저장될 지는 테스트 컨트롤러(260)로부터의 선택 신호들(SEL0-SEL4)에 따라서 결정된다.
ARM 프로세서(120)로부터의 어드레스(IA) 및 캐쉬 메모리(170)의 셋들(SET0, SET2)로부터의 데이터(DATA0, DATA2)는 제 1 메모리(246)의 0번째 어드레스부터 128번째 어드레스까지 순차적으로 저장된 후 제 2 메모리(247)의 0번째 어드레스부터 128번째 어드레스 순으로 저장된다. 캐쉬 메모리(170)로부터의 데이터(IDATA) 및 캐쉬 메모리(170)의 셋들(SET1, SET3)로부터의 데이터(DATA1, DATA3)는 제 2 메 모리(247)의 0번째 어드레스부터 128번째 어드레스까지 순차적으로 저장된 후 제 1 메모리(246)의 0번째 어드레스부터 128번째 어드레스 순으로 저장된다.
도 6은 도 4에 도시된 코-프로세서(250) 내 레지스터 셋(251)의 구성을 예시적으로 보여주는 도면이다. 코-프로세서(250) 내 레지스터 셋(251)은 제어 레지스터들(310, 320, 330), 어드레스 레지스터들(311, 321, 331) 그리고 데이터 레지스터들(312, 313, 322, 323, 332, 333)을 포함한다.
제어 레지스터들(310, 320, 330)은 앞서 도 1 및 도 2에서 설명한 플래그 신호들 즉, 트레이스 시작 신호(T_START) 및 트레이스 종료 신호(T_STOP)를 저장한다. 트레이스 시작 신호(T_START) 및 트레이스 종료 신호(T_STOP)는 ARM 프로세서(220) 내 레지스터 셋(221)으로부터 이동된 신호들이다.
어드레스 레지스터들(311, 321, 331)은 트레이스 메모리(240)에 저장된 데이러를 독출하기 위한 어드레스(IN_ADDR)를 저장한다. 어드레스(IN_ADDR)는 ARM 프로세서(220) 내 레지스터 셋(221)으로부터 이동된 신호이다.
데이터 레지스터들(312, 313, 322, 323, 332, 333)은 트레이스 메모리(240)로부터 코-프로세서(250)로 입력되는 데이터를 저장한다. 데이터 레지스터들(312, 313, 322, 323, 332, 333)은 도 5에 도시된 입력 데이터 즉, 캐쉬 어드레스(IA) 및 데이터(IDATA, DATA0-DATA3)에 각각 대응한다.
예컨대, 트레이스 메모리(240)에 저장된 캐쉬 어드레스(IA)를 독출하는 덤프 모드에서, 트레이스 시작 신호(T_START) 및 트레이스 종료 신호(T_STOP)는 제어 레지스터(310)에 저장되고, 독출 어드레스는 어드레스 레지스터(311)에 저장되며 그 리고 트레이스 메모리(240)로부터 독출된 캐쉬 어드레스(IA)는 데이터 레지스터(312)에 저장된다.
다른 예로, 트레이스 메모리(240)에 저장된 캐쉬(171)의 셋(SETO)으로부터의 데이터(DATA0)를 독출하는 덤프 모드에서, 트레이스 시작 신호(T_START) 및 트레이스 종료 신호(T_STOP)는 제어 레지스터(320)에 저장되고, 독출 어드레스는 어드레스 레지스터(321)에 저장되며 그리고 트레이스 메모리(240)로부터 독출된 데이터(DATA0)는 데이터 레지스터(322)에 저장된다.
데이터 레지스터들(312, 313, 322, 323, 332, 333)에 저장된 데이터는 제 2 명령(MRC)에 응답해서 ARM 프로세서(220) 내 레지스터 셋(221)으로 이동된다. 이후, ARM 프로세서(220) 내 레지스터 셋(221)에 저장된 데이터는 JTAG 인터페이스(210)를 통해서 외부로 출력된다.
코-프로세서(250) 내 레지스터 셋(251)에 포함되는 레지스터의 크기 및 수는 도 6에 도시된 예에 한정되지 않고 다양하게 변경될 수 있다. 본 발명의 실시예에서는 플래그 신호들, 어드레스 및 데이터를 코-프로세서(250) 내 레지스터 셋(251)에 저장하였으나 집적 회로(100) 내 테스트 전용 레지스터 셋을 구비하거나 다른 회로 블록 내 레지스터들을 사용할 수도 있다. 본 발명의 실시예에서는 코-프로세서(250) 내 레지스터 셋(251)의 여유 레지스터들을 이용하여 플래그 신호들, 어드레스 및 데이터를 저장함으로써 테스트를 위해 집적 회로(100) 내에 부가되는 구성 요소들이 최소화된다.
예시적인 바람직한 실시예들을 이용하여 본 발명을 설명하였지만, 본 발명의 범위는 개시된 실시예들에 한정되지 않는다는 것이 잘 이해될 것이다. 따라서, 청구범위는 그러한 변형 예들 및 그 유사한 구성들 모두를 포함하는 것으로 가능한 폭넓게 해석되어야 한다.
이와 같은 본 발명에 의하면, 집적 회로에 대한 테스트를 용이하게 실시할 수 있다. 특히, 집적 회로가 완전히 제작된 후에도 집적 회로를 분해하지 않고도 집적 회로 내에 구성된 테스트 대상 장치의 동작을 테스트할 수 있다.

Claims (27)

  1. 테스트 대상 장치와;
    상기 테스트 대상 장치를 액세스하고, 테스트 플래그 신호들을 발생하는 프로세서와;
    상기 테스트 플래그 신호들에 응답해서 테스트 제어 신호들을 발생하는 테스트 컨트롤러; 그리고
    상기 테스트 제어 신호들에 응답해서 상기 프로세서와 상기 테스트 대상 장치 사이의 전송 데이터 신호를 저장하는 트레이스 메모리를 포함하는 반도체 집적 회로.
  2. 제 1 항에 있어서,
    상기 프로세서는,
    제 1 레지스터를 포함하는 제 1 프로세서; 그리고
    제 2 레지스터를 포함하는 제 2 프로세서를 포함하되;
    상기 제 1 프로세서는 제 1 명령에 응답해서 상기 제 1 레지스터의 신호들을 상기 제 2 프로세서 내 상기 제 2 레지스터로 이송하고, 제 2 명령에 응답해서 상기 제 2 프로세서 내 상기 제 2 레지스터의 신호들을 상기 제 1 레지스터로 이송하는 반도체 집적 회로.
  3. 제 2 항에 있어서,
    상기 제 1 프로세서는 ARM(Advanced RISC Machine) 프로세서이고, 상기 제 2 프로세서는 코-프로세서인 반도체 집적 회로.
  4. 제 2 항에 있어서,
    상기 테스트 플래그 신호들은 상기 제 1 프로세서 내 상기 제 1 레지스터 및 상기 제 2 프로세서 내 상기 제 2 레지스터에 저장되는 반도체 집적 회로.
  5. 제 4 항에 있어서,
    상기 테스트 플래그 신호들은 트레이스 시작 신호를 포함하고,
    상기 테스트 컨트롤러는,
    상기 트레이스 시작 신호에 응답해서 상기 트레이스 메모리로 제공되는 칩 선택 신호를 인에이블하는 반도체 집적 회로.
  6. 삭제
  7. 제 5 항에 있어서,
    상기 테스트 컨트롤러는,
    상기 칩 선택 신호가 인에이블된 후 클럭 신호에 응답해서 어드레스를 상기 트레이스 메모리로 제공하는 반도체 집적 회로.
  8. 제 7 항에 있어서,
    상기 트레이스 메모리는,
    상기 클럭 신호, 상기 칩 선택 신호 및 상기 어드레스에 응답해서 상기 테스트 대상 장치와 상기 프로세서 간의 전송 데이터 신호를 기입하는 반도체 집적 회로.
  9. 제 7 항에 있어서,
    상기 테스트 대상 장치는 멀티-웨이 셋 어소시어티브 캐쉬 메모리인 반도체 집적 회로.
  10. 삭제
  11. 제 9 항에 있어서,
    상기 트레이스 메모리는,
    상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 데이터 신호들을 저장하는 반도체 집적 회로.
  12. 제 11 항에 있어서,
    상기 테스트 컨트롤러는, 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 상기 데이터 신호들 중 어느 하나를 선택하기 위한 선택 신호를 출력하고;
    상기 트레이스 메모리는 상기 선택 신호에 응답해서 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 출력되는 데이터 신호들 중 어느 하나를 저장하고,
    상기 트레이스 메모리는 적어도 2 개의 메모리들, 그리고 상기 선택 신호에 응답해서 상기 프로세서로부터 상기 캐쉬 메모리로 제공하는 캐쉬 어드레스 및 상기 캐쉬 메모리의 셋들로부터 상기 프로세서로 출력되는 상기 데이터 신호들 중 어느 하나를 상기 적어도 2 개의 메모리들 중 선택된 메모리로 제공하는 선택 회로를 포함하는 반도체 집적 회로.
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
KR1020060012192A 2006-02-08 2006-02-08 테스트 회로를 내장한 시스템 온 칩 KR101242602B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060012192A KR101242602B1 (ko) 2006-02-08 2006-02-08 테스트 회로를 내장한 시스템 온 칩
US11/623,831 US7702956B2 (en) 2006-02-08 2007-01-17 Circuit for transferring test flag signals among multiple processors, the test flag signals being used by a test controller to generate test signals

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060012192A KR101242602B1 (ko) 2006-02-08 2006-02-08 테스트 회로를 내장한 시스템 온 칩

Publications (2)

Publication Number Publication Date
KR20070080751A KR20070080751A (ko) 2007-08-13
KR101242602B1 true KR101242602B1 (ko) 2013-03-19

Family

ID=38535031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060012192A KR101242602B1 (ko) 2006-02-08 2006-02-08 테스트 회로를 내장한 시스템 온 칩

Country Status (2)

Country Link
US (1) US7702956B2 (ko)
KR (1) KR101242602B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101930373B (zh) * 2009-06-19 2013-08-07 中兴通讯股份有限公司 一种片上系统启动的方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
JP2003324155A (ja) * 2002-04-30 2003-11-14 Mitsubishi Electric Corp 半導体集積回路装置及びそのテスト方法
KR20050075504A (ko) * 2004-01-15 2005-07-21 삼성전자주식회사 내장 메모리의 페일를 검출하기 위한 반도체 테스트 장치
KR20050080686A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 코-디버깅 기능을 지원하는 반도체 집적회로 및 반도체집적회로 테스트 시스템

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100267110B1 (ko) 1992-05-28 2000-11-01 리패치 마이크로프로세서에 상주하는 캐시 램을 테스트하는 방법 및 장치
JPH0877069A (ja) 1994-08-31 1996-03-22 Nkk Corp キャッシュテスト方法
CN1122226C (zh) * 1994-12-28 2003-09-24 株式会社东芝 微处理器与调试系统
US5680544A (en) * 1995-09-05 1997-10-21 Digital Equipment Corporation Method for testing an on-chip cache for repair
JPH11327949A (ja) 1998-05-08 1999-11-30 Hitachi Ltd 半導体装置およびそれを用いた情報処理システムの評価方法
US6446221B1 (en) * 1999-05-19 2002-09-03 Arm Limited Debug mechanism for data processing systems
US6665816B1 (en) * 1999-10-01 2003-12-16 Stmicroelectronics Limited Data shift register
US6865663B2 (en) * 2000-02-24 2005-03-08 Pts Corporation Control processor dynamically loading shadow instruction register associated with memory entry of coprocessor in flexible coupling mode
US7231551B1 (en) * 2001-06-29 2007-06-12 Mips Technologies, Inc. Distributed tap controller
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip
JP2006164185A (ja) * 2004-12-10 2006-06-22 Matsushita Electric Ind Co Ltd デバッグ装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6314530B1 (en) * 1997-04-08 2001-11-06 Advanced Micro Devices, Inc. Processor having a trace access instruction to access on-chip trace memory
JP2003324155A (ja) * 2002-04-30 2003-11-14 Mitsubishi Electric Corp 半導体集積回路装置及びそのテスト方法
KR20050075504A (ko) * 2004-01-15 2005-07-21 삼성전자주식회사 내장 메모리의 페일를 검출하기 위한 반도체 테스트 장치
KR20050080686A (ko) * 2004-02-10 2005-08-17 삼성전자주식회사 코-디버깅 기능을 지원하는 반도체 집적회로 및 반도체집적회로 테스트 시스템

Also Published As

Publication number Publication date
KR20070080751A (ko) 2007-08-13
US7702956B2 (en) 2010-04-20
US20070226573A1 (en) 2007-09-27

Similar Documents

Publication Publication Date Title
US7653845B2 (en) Test algorithm selection in memory built-in self test controller
US7814385B2 (en) Self programmable shared bist for testing multiple memories
US7962821B2 (en) Built-in self testing circuit with fault diagnostic capability
US7729185B2 (en) Apparatus and method for detection of address decoder open faults
CN108899061A (zh) 一种电源常开芯片中的存储器内建自测试方法和系统
JP5107550B2 (ja) メモリ回路
US20050204231A1 (en) Testing memories using algorithm selection
US8977915B2 (en) pBIST engine with reduced SRAM testing bus width
US7757133B1 (en) Built-in self-test hardware and method for generating memory tests with arbitrary address sequences
JP4564616B2 (ja) デバッグ・データ処理装置
KR101242602B1 (ko) 테스트 회로를 내장한 시스템 온 칩
CN113702798A (zh) 一种边界扫描测试方法、装置、设备、芯片及存储介质
JP2010032503A (ja) Jtagテスト・データ・レジスタを用いる非同期通信装置
US20070033470A1 (en) Emulation Cache Access for Tag View Reads
CN103871476B (zh) 嵌入式存储器测试系统
CN103871478A (zh) 嵌入式存储器测试系统
JP2006048767A (ja) 半導体メモリ試験装置
JP2007058450A (ja) 半導体集積回路
US9009550B2 (en) pBIST engine with distributed data logging
JPS63173975A (ja) 半導体装置
US20080155363A1 (en) Bist circuit device and self test method thereof
JP2004079032A (ja) 半導体装置のテスト方法及び半導体装置
KR100821579B1 (ko) 반도체 메모리 장치 및 그 테스트 방법
JP4894376B2 (ja) 半導体集積回路装置
JP2005345239A (ja) Icテスタ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee