KR102276895B1 - 반도체 장치 및 그 이벤트 프로파일링 방법 - Google Patents

반도체 장치 및 그 이벤트 프로파일링 방법 Download PDF

Info

Publication number
KR102276895B1
KR102276895B1 KR1020170103989A KR20170103989A KR102276895B1 KR 102276895 B1 KR102276895 B1 KR 102276895B1 KR 1020170103989 A KR1020170103989 A KR 1020170103989A KR 20170103989 A KR20170103989 A KR 20170103989A KR 102276895 B1 KR102276895 B1 KR 102276895B1
Authority
KR
South Korea
Prior art keywords
data
capture
period
serial data
memory
Prior art date
Application number
KR1020170103989A
Other languages
English (en)
Other versions
KR20190019295A (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 KR1020170103989A priority Critical patent/KR102276895B1/ko
Priority to US15/946,992 priority patent/US10475501B2/en
Priority to TW107128060A priority patent/TWI781209B/zh
Priority to CN201810940324.1A priority patent/CN109408431B/zh
Publication of KR20190019295A publication Critical patent/KR20190019295A/ko
Application granted granted Critical
Publication of KR102276895B1 publication Critical patent/KR102276895B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M9/00Parallel/series conversion or vice versa
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Noodles (AREA)
  • Mechanical Treatment Of Semiconductor (AREA)
  • Bipolar Transistors (AREA)

Abstract

반도체 장치 및 그 이벤트 프로파일링 방법이 제공된다. 상기 반도체 장치는 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 전송하는 제1 시리얼라이저, 상기 제1 직렬 데이터를 전송받아 제1 병렬 데이터로 복원하는 제1 디시리얼라이저, 제2 주기를 가지는 클럭 신호를 제공하는 타이머, 상기 클럭 신호를 이용하여 상기 제1 병렬 데이터를 상기 제2 주기마다 캡쳐하여 캡쳐 데이터를 생성하는 DMA 및 상기 캡쳐 데이터를 저장하는 제1 메모리를 포함하되, 상기 캡쳐 데이터가 상기 제1 메모리 내에 저장되는 주소는 상기 캡쳐 순서에 순차적으로 대응된다.

Description

반도체 장치 및 그 이벤트 프로파일링 방법 {Semiconductor device and event profiling method of the same}
본 발명은 반도체 장치 및 그 이벤트 프로파일링 방법에 관한 것이다.
칩 내의 이벤트를 프로파일하는 방법으로 기존에는 소프트웨어 프로파일을 사용하고 있다. 기존 소프트웨어 프로파일의 경우 프로파일을 위해서 소프트웨어를 디버깅 모드(debugging mode)로 변경하거나 소프트웨어 프로파일러(software profiler)를 인에이블(enable)하는 것이 필수적이다. 이에 따라서, 현 상태의 이벤트를 그대로 프로파일하기는 어렵고 소프트웨어에 의해서 동작이 변화된 상태로 프로파일을 해야할 수 있다.
또한, 실제 하드웨어의 상태가 아닌 소프트웨어의 상태를 체크하기 때문에 하드웨어 이벤트를 모니터링 하기는 어려울 수 있다. 나아가 소프트웨어 구조에 따라서 모니터링하고 싶은 이벤트들이 다른 경우에는 디버깅 옵션 등을 다양하게 해서 여러 번 프로파일을 진행해야 되는 불편함도 존재한다. 특히, 이러한 경우 뽑아낸 데이터들 간의 주기도 맞지 않아서 SOC(system on chip)의 동작에 대한 종합적인 분석이 상당히 어려울 수 있다.
본 발명이 해결하려는 과제는, 칩 내의 이벤트를 하드웨어 구성으로 용이하게 프로파일할 수 있는 반도체 장치를 제공하는 것이다.
본 발명이 해결하려는 다른 과제는, 칩 내의 이벤트를 하드웨어 구성으로 용이하게 프로파일할 수 있는 반도체 장치의 이벤트 프로파일링 방법을 제공하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는, 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 전송하는 제1 시리얼라이저, 상기 제1 직렬 데이터를 전송받아 제1 병렬 데이터로 복원하는 제1 디시리얼라이저, 제2 주기를 가지는 클럭 신호를 제공하는 타이머, 상기 클럭 신호를 이용하여 상기 제1 병렬 데이터를 상기 제2 주기마다 캡쳐하여 캡쳐 데이터를 생성하는 DMA 및 상기 캡쳐 데이터를 저장하는 제1 메모리를 포함하되, 상기 캡쳐 데이터가 상기 제1 메모리 내에 저장되는 주소는 상기 캡쳐 순서에 순차적으로 대응된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 전송하는 제1 시리얼라이저, 상기 제1 직렬 데이터를 전송받아 제1 병렬 데이터로 복원하는 제1 디시리얼라이저, 제2 도메인의 이벤트를 수집하여 제2 직렬 데이터를 생성하고, 제2 주기마다 전송하는 제2 시리얼라이저, 상기 제2 직렬 데이터를 전송받아 제2 병렬 데이터로 복원하는 제2 디시리얼라이저, 상기 제1 및 제2 병렬 데이터를 통합 데이터로 저장하는 제1 메모리, 캡쳐 주파수를 결정하는 타이머, 상기 캡쳐 주파수에 따라서 상기 통합 데이터로부터 캡쳐 데이터를 생성하는 DMA로서, 상기 캡쳐 데이터는 캡쳐 순서에 따라서 제1 내지 제n 캡쳐 데이터를 포함하는 DMA 및 상기 제1 내지 제n 캡쳐 데이터를 제1 내지 제n 주소에 각각 저장하는 제2 메모리를 포함하되, 상기 제1 내지 제n 주소는 순차적으로 배치된다.
상기 다른 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치의 이벤트 프로파일링 방법은 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 상기 제1 직렬 데이터를 업데이트하고, 상기 제1 직렬 데이터를 제1 병렬 데이터로 변환하여 복원 데이터를 생성하고, 상기 복원 데이터를 제2 주기로 캡쳐하여 캡쳐 데이터를 생성하고, 상기 캡쳐 데이터를 저장하는 것을 포함하되, 상기 캡쳐 데이터는 캡쳐 시점에 따라서 순차적으로 배치된 주소에 저장된다.
도 1은 본 발명의 몇몇 실시예들에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 2는 도 1의 시리얼라이저와 디시리얼라이저의 동작을 세부적으로 설명하기 위한 타임 다이어그램이다.
도 3은 도 1의 디시리얼라이저에 의해서 복원된 병렬 데이터를 설명하기 위한 개념도이다.
도 4는 도 1의 제2 메모리에 저장되는 캡쳐 데이터의 주소를 설명하기 위한 개념도이다.
도 5는 본 발명의 몇몇 실시예들에 따른 반도체 장치를 설명하기 위한 블록도이다.
도 6은 도 5의 시리얼라이저와 디시리얼라이저의 동작을 세부적으로 설명하기 위한 타임 다이어그램이다.
도 7은 본 발명의 몇몇 실시예들에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명하기 위한 순서도이다.
도 8은 도 7의 캡쳐 데이터를 리드하여 시각화한 그래프의 예시도이다.
도 9는 본 발명의 몇몇 실시예들에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명하기 위한 순서도이다.
이하에서, 도 1 내지 도 4를 참조하여, 본 발명의 몇몇 실시예에 따른 반도체 장치에 대해서 설명한다.
도 1은 본 발명의 몇몇 실시예들에 따른 반도체 장치를 설명하기 위한 블록도이고, 도 2는 도 1의 시리얼라이저와 디시리얼라이저의 동작을 세부적으로 설명하기 위한 타임 다이어그램이다. 도 3은 도 1의 디시리얼라이저에 의해서 복원된 병렬 데이터를 설명하기 위한 개념도이고, 도 4는 도 1의 제2 메모리에 저장되는 캡쳐 데이터의 주소를 설명하기 위한 개념도이다.
도 1을 참조하면, 본 발명의 몇몇 실시예에 따른 반도체 장치는 제1 이벤트 풀(100), 제1 시리얼라이저(210), 제1 디시리얼라이저(220), 제1 와이어(230), 제1 메모리(300), DMA(Direct Memory Access)(400), 타이머(410), 제2 메모리(500), 버스 인터페이스(600)를 포함한다.
제1 이벤트 풀(100)은 반도체 장치의 이벤트가 발생할 수 있는 모든 공간일 수 있다. 즉, CPU, 메모리 또는 여러 IP 들이 모두 제1 이벤트 풀(100)에 해당될 수 있다. 즉, 제1 이벤트 풀(100)은 반도체 장치의 이벤트가 생성되는 곳을 가상으로 형상화한 장소일 수 있다.
제1 이벤트 풀(100)은 적어도 하나의 이벤트를 포함할 수 있다. 제1 이벤트 풀(100)은 제1 클럭 게이팅 스테이터스(101), 제1 파워 게이팅 스테이터스(102) 및 제1 DVFS(Dynamic Voltage and Frequency Scailing) 스테이터스(103)을 포함할 수 있다. 단, 이는 하나의 예시에 불과하고, 본 발명이 이에 제한되는 것은 아니다.
상대적으로, 제1 클럭 게이팅 스테이터스(101)의 개수가 가장 많고, 제1 파워 게이팅 스테이터스(102)의 개수가 그보다 적고, 제1 DVFS 스테이터스(103)가 가장 적을 수 있으나, 이에 제한되는 것은 아니다.
제1 시리얼라이저(210)는 제1 이벤트 풀(100)로부터 여러가지 이벤트를 수집할 수 있다. 상기 이벤트는 상술한 제1 클럭 게이팅 스테이터스(101), 제1 파워 게이팅 스테이터스(102) 및 제1 DVFS 스테이터스(103) 중 적어도 하나를 포함할 수 있다.
제1 시리얼라이저(210)는 수집한 이벤트를 하나의 직렬 데이터로 변환할 수 있다. 즉, 제1 클럭 게이팅 스테이터스(101), 제1 파워 게이팅 스테이터스(102) 및 제1 DVFS 스테이터스(103)는 제1 시리얼라이저(210)에 병렬 데이터 형식으로 수집될 수 있다. 이러한 병렬 데이터는 각각 서로 다른 주기를 가지고 서로 동기화되지 않은 상태로 존재할 수 있다.
제1 시리얼라이저(210)는 상기 병렬 데이터를 하나의 직렬 데이터로 변환하여 제1 디시리얼라이저(220)로 전송할 수 있다. 병렬 데이터를 전송하기 위해서는 병렬 행의 숫자만큼의 와이어가 필요하지만 직렬 데이터를 전송하기 위해서는 하나의 와이어만으로 전송이 가능할 수 있다.
따라서, 제1 시리얼라이저(210)는 제1 와이어(230)를 통해서 상기 직렬 데이터를 제1 디시리얼라이저(220)로 전송할 수 있다. 당연히, 제1 와이어(230)는 하나의 경로를 가지는 와이어일 수 있다.
제1 디시리얼라이저(220)는 제1 시리얼라이저(210)로부터 상기 직렬데이터를 전송받을 수 있다. 제1 디시리얼라이저(220)는 제1 와이어(230)를 통해서 제1 시리얼라이저(210)와 연결되어 있으므로 제1 와이어(230)를 통해서 하나의 인풋을 직렬로 전송받을 수 있다.
도 2를 참조하면, 제1 시리얼라이저(210)는 유휴(IDLE) 상태에서 개시(START) 상태가 되면 제1 디시리얼라이저(220)로 데이터를 전송할 수 있다. 다만, 개시(START) 상태에서 바로 유효한 데이터를 보내지는 않고, 동기화(Synchronizing)를 위해서 더미 데이터를 먼저 전송할 수 있다. 상기 더미 데이터에 이어서 직렬로 유효 데이터(Valid data)가 전송되고, 이 때를 시프트(SHIFT) 상태로 볼 수 있다.
이어서, 데이터의 전송이 중단되는 스탑(STOP) 상태가 되고, 이어서 다시 유휴(IDLE) 상태로 돌아올 수 있다. 이렇게 유휴(IDLE) 상태까지가 제1 주기(P1)로 반복될 수 있다. 즉 개시(START) 상태에서 다음 개시(START) 상태까지의 시간은 제1 주기(P1)로 일정하게 정의되어 반복될 수 있다.
제1 디시리얼라이저(220)는 유사하게 유휴(IDLE) 상태에서 데이터가 전송되면 개시(START) 상태가 되고, 더미 데이터를 전송받으면서 데이터를 인식할 수 있다. 데이터 인식 상태에서는 어디서부터가 유효 데이터(Valid data)인지를 제1 디시리얼라이저(220)가 인식할 수 있다.
다시 도 1을 참조하면 제1 시리얼라이저(210)는 제1 주기(P1)를 가지고 주기적으로 직렬 데이터를 업데이트 즉, 전송할 수 있다. 제1 디시리얼라이저(220)도 제1 주기(P1)마다 상기 직렬 데이터를 전송받을 수 있다.
제1 시리얼라이저(210)와 제1 디시리얼라이저(220)의 조합을 통해서, 불필요한 와이어의 사용을 최소한으로 줄일 수 있다. 즉, 본 발명의 몇몇 실시예에 따른 반도체 장치는 하드웨어 스펙의 사용을 최소화하여 이벤트 프로파일링을 수행할 수 있다.
제1 디시리얼라이저(220)는 전송받은 직렬 데이터를 원래의 병렬 데이터로 다시 복원할 수 있다. 제1 디시리얼라이저(220)는 상기 복원된 병렬 데이터를 제1 메모리(300)에 저장할 수 있다.
도 3을 참조하면, 제1 메모리(300)에 저장되는 병렬 데이터의 예시를 확인할 수 있다. 병렬 데이터는 IPs 스테이터스, CPU 스테이터스 등응 서로 다른 종류의 이벤트를 가질 수 있다. 이러한 병렬 데이터는 전혀 동기화되지 않았기 때문에 서로 다른 주기를 가지고 있는 개별 데이터들의 단순 집합에 불과할 수 있다.
제1 메모리(300)는 상기 병렬 데이터를 임시적으로 저장할 수 있다. 제1 메모리(300)는 예를 들어, 플립 플랍(flip-flop) 및 SRAM(static random access memory) 중 적어도 하나일 수 있다. 단, 본 발명이 이에 제한되는 것은 아니다.
다시, 도 1을 참조하면, DMA(400)는 제1 메모리(300)에 저장된 병렬 데이터를 불러올 수 있다. DMA(400)는 병렬 데이터를 시간에 따라서 캡쳐할 수 있다. 여기서, "캡쳐"란 특정 시점에서의 데이터를 그대로 기록하는 것을 의미한다. 각각의 이벤트는 시간에 따라 변하고, 병렬 데이터는 이러한 변화를 모두 저장하고 있다. 이에 반해서 "캡쳐"된 데이터는 시간에 따른 변화를 저장하고 있지는 못하고 캡쳐된 시점의 데이터만을 포함할 수 있다.
DMA(400)는 예를 들어, 도 3의 제1 내지 제9 시점(T1~T9)에 캡쳐를 수행할 수 있다. 상기 제1 내지 제9 시점(T1~T9)은 모두 동일한 간격만큼 배치될 수 있다. 상기 동일한 간격은 캡쳐 주기(Pe)로 타이머(410)에 의해서 정의될 수 있다.
타이머(410)는 DMA(400)에게 캡쳐 주기(Pe) 내지 캡쳐 주파수(1/Pe)를 제공할 수 있다. 캡쳐 주기(Pe)는 필요에 따라서 늘리거나 줄일 수 있다. 즉, 더 세밀한 이벤트 정보를 획득하기 위해서는 캡쳐 주기(Pe)를 작게 하여 촘촘하게 제1 내지 제9 시점(T1~T9)을 배치할 수 있다.
반대로, 더 작은 용량의 이벤트 정보를 획득하기 위해서는 캡쳐 주기(Pe)를 크게하여 넓게 제1 내지 제9 시점(T1~T9)을 배치할 수 있다.
한편, 도 3을 참조하면, 캡쳐 주기(Pe)에 따라서, 누락 이벤트(ME)가 발생할 수 있다. 누락 이벤트(ME)는 서로 인접한 캡쳐 시점 사이에서 이벤트의 값이 고립되도록 변화한 것을 의미한다.
예를 들어, 도 3의 IPs 스테이터스(IPs status)를 살펴보면, 제2 시점(T2)과 제3 시점(T3) 사이에 값이 변화했다가 다시 변화한 부분이 존재한다. 그러나, 제2 시점(T2)에서 캡쳐한 데이터와 제3 시점(T3)에서 캡쳐한 데이터는 이러한 변화를 포함할 수 없으므로 누락 이벤트(ME)가 발생할 수 있다.
따라서, 본 발명의 몇몇 실시예에서는 누락 이벤트(ME)의 발생을 방지하기 위해서, 캡쳐 주기(Pe)를 이벤트들의 주기보다 더 작게할 수 있다.
또는 본 발명의 몇몇 실시예에 따른 반도체 장치에서는 더 낮은 용량의 데이터로 대략적인 추세를 보기 위해서, 누락 이벤트(ME)가 발생함에도 캡쳐 주기(Pe)를 더 크게 조절할 수도 있다.
다시, 도 1을 참조하면, DMA(400)는 버스 인터페이스(600)를 통해서 제2 메모리(500)에 캡쳐 데이터를 저장할 수 있다. 상기 캡쳐 데이터란, 제1 내지 제9 시점(T1~T9)에 캡쳐된 데이터를 의미할 수 있다.
제2 메모리(500)는 DMA(400)에 의해서 상기 병렬 데이터를 저장할 수 있다. 제2 메모리(500)는 예를 들어, DRAM(dynamic random access memory), SRAM(static random access memory) 및 Flash memory 중 적어도 하나를 포함할 수 있다.
제2 메모리(500)는 리저브 영역(510)을 포함할 수 있다. 리저브 영역(510)은 DMA(400)에 의해서 상기 캡쳐 데이터가 저장되는 영역일 수 있다. 리저브 영역(510)의 크기는 상기 캡쳐 데이터의 크기에 대응될 수 있다. 즉, 상기 캡쳐 데이터의 크기와 상기 캡쳐 시점의 개수에 따라서 리저브 영역(510)의 크기가 정해질 수 있다.
버스 인터페이스(600)는 DMA(400)와 제2 메모리(500)를 연결할 수 있다. 버스 인터페이스(600)는 단지 DMA(400)와 제2 메모리(500)를 연결하는 통로로 활용될 뿐만 아니라 반도체 장치 내의 다른 소자들 사이의 연결을 제공할 수 있다. 단, 본 발명이 이에 제한되는 것은 아니다.
기본적으로, DMA(400)가 데이터를 메모리에 저장하기 위해서는 실제 데이터와 더불어 메모리의 어느 영역에 상기 실제 데이터를 저장할 것인지에 대한 주소 데이터가 필요할 수 있다. 따라서, 실제 데이터의 용량보다 더 큰 용량의 데이터가 필요할 수 있다.
그러나, 본 발명의 몇몇 실시예에 따른 반도체 장치의 DMA(400)는 캡쳐 시점 즉, 제1 내지 제9 시점(T1~T9)에 따라서 자동으로 상기 병렬 데이터를 순차적으로 저장할 수 있다. 상기 캡쳐 데이터는 제2 메모리(500)의 리저브 영역(510)에 저장될 수 있다.
구체적으로, 도 4를 참조하면, 제1 시점(T1)에 캡쳐된 캡쳐 데이터는 시작 어드레스(Start address)에 저장될 수 있다. 이어서, 제2 시점(T2)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x020이 더해진 주소(Start address+0x020)에 저장될 수 있다. 이어서, 제3 시점(T3)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x040이 더해진 주소(Start address+0x040)에 저장될 수 있다. 이어서, 제4 시점(T4)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x060이 더해진 주소(Start address+0x060)에 저장될 수 있다. 이어서, 제5 시점(T5)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x080이 더해진 주소(Start address+0x020)에 저장될 수 있다.
이러한 방식으로, 각각의 캡쳐된 데이터가 저장된 주소는 모두 동일한 간격으로 배치될 수 있다. 또한, 제1 내지 제9 시점(T1~T9)의 시간의 순서와 동일하게 상기 주소의 순서가 배치될 수 있다. 즉, 제1 시점(T1)과 제3 시점(T3) 사이에 있는 제2 시점(T2)에 캡쳐된 데이터는 제1 시점(T1)에 캡쳐된 데이터가 저장된 주소(Start address)와 제3 시점(T3)에 캡쳐된 데이터가 저장된 주소(Start address+0x040) 사이에 있는 주소(Start address+0x020)에 저장될 수 있다.
도 4에서는 캡쳐 주기(Pe)가 1ms이고, 캡쳐 데이터의 크기가 256bit로 도시되었으나, 이는 하나의 예시에 불과하고 본 발명이 이에 제한되는 것은 아니다.
상술하였듯이, 저장된 이벤트들은 누락 이벤트(ME)의 정보를 포함하지 못할 수 있다. 따라서, 추후에 제2 메모리(500)의 리저브 영역(510)을 리드(read)하는 경우에도 누락 이벤트(ME)의 정보는 확인할 수 없다. 다만, 캡쳐 주기(Pe)를 작게하면 이러한 누락 이벤트(ME)의 발생을 방지할 수 있다.
다시, 도 1을 참조하면, DMA(400)는 제2 메모리(500)의 리저브 영역(510)에 저장된 캡쳐 데이터를 순차적으로 리드할 수 있다. 이를 통해서 시간의 순서에 따른 이벤트를 하드웨어적으로 확인할 수 있다.
본 발명의 몇몇 실시예에 따른 반도체 장치는 하드웨어적으로 이벤트를 프로파일링할 수 있으므로, 소프트웨어의 동작 여부가 필수적이지 않다. 즉, 소프트웨어적으로 이벤트 프로파일링을 하는 경우에는 소프트웨어가 동작할 때에만 이벤트의 프로파일링이 가능하지만, 본 발명의 경우 소프트웨어 동작 여부와 무관하게 하드웨어적으로 모든 이벤트를 수집할 수 있다.
또한, 소프트웨어에 의한 프로파일링은 CPU에 워크로드(work load)를 부가하게되어 반도체 장치의 성능과 속도를 저하시킬 수 있으나, 본 발명의 경우 하드웨어만으로 이벤트를 프로파일링 하므로, CPU의 부담이 최소화될 수 있다.
나아가, 소프트웨어에 의한 프로파일링은 이벤트 종류에 대한 적합한 드라이버가 다양하게 필요하므로, 이러한 복수의 드라이버를 사용해야하지만, 본 발명의 경우 단순히 캡쳐 데이터만으로, 이벤트의 프로파일링이 가능할 수 있다.
결정적으로, 소프트웨어에 의한 프로파일링은 그 모니터링 동작 자체만으로 장치의 동작이 변하므로, 직관적인 이벤트 프로파일링이 실질적으로 불가능할 수 있다. 그러나, 본 발명의 반도체 장치는 하드웨어적으로 바로 이벤트를 프로파일할 수 있어서 직관적인 이벤트 프로파일링이 가능할 수 있다.
이하, 도 5 및 도 6을 참조하여, 본 발명의 몇몇 실시예에 따른 반도체 장치를 설명한다. 상술한 설명과 중복되는 부분은 생략하거나 간략히 한다.
도 5는 본 발명의 몇몇 실시예들에 따른 반도체 장치를 설명하기 위한 블록도이고, 도 6은 도 5의 시리얼라이저와 디시리얼라이저의 동작을 세부적으로 설명하기 위한 타임 다이어그램이다.
도 5를 참조하면, 본 발명의 몇몇 실시예에 따른 반도체 장치는 제1 내지 제3 도메인(D1~D3)을 포함할 수 있다.
제1 도메인(D1)은 제1 이벤트 풀(100), 제1 시리얼라이저(210) 및 제1 디시리얼라이저(220)를 포함할 수 있다. 제2 도메인(D2)은 제2 이벤트 풀(1100), 제2 시리얼라이저(1210) 및 제2 디시리얼라이저(1220)를 포함할 수 있다. 제3 도메인(D3)은 제3 이벤트 풀(2100), 제3 시리얼라이저(2210) 및 제3 디시리얼라이저(2220)를 포함할 수 있다.
도 5에서 3개의 도메인을 도시하였으나, 본 발명이 이에 제한되는 것은 아니다. 즉, 본 발명의 몇몇 실시예에 따른 반도체 장치는 2개의 도메인을 가질수도 있고, 4개 이상의 도메인을 가질 수 있다. 즉, 도메인이 복수개만 존재한다면 도메인의 개수는 아무런 제한이 없을 수 있다.
제1 도메인(D1)은 상술한 도 1의 설명과 유사할 수 있다. 제2 도메인(D2)의 제2 이벤트 풀(1100)은 제1 이벤트 풀(100)과 식별되는 별개의 공간일 수 있다. 제2 이벤트 풀(1100)은 제1 시리얼라이저(210)에 의해서 이벤트가 수집되지 않는 영역일 수 있다. 제2 이벤트 풀(1100)은 제2 클럭 게이팅 스테이터스(1101) 및 제2 DVFS 스테이터스(1102)를 포함할 수 있다. 도시되었듯이, 제2 이벤트 풀(1100)은 제1 이벤트 풀(100)과 다른 종류와 개수의 이벤트를 포함할 수 있다. 단, 본 발명이 이에 제한되는 것은 아니다.
제2 시리얼라이저(1210)는 제2 이벤트 풀(1100)로부터 여러가지 이벤트를 수집할 수 있다. 제2 시리얼라이저(1210)는 수집된 이벤트의 병렬 데이터를 하나의 직렬 데이터로 변환하여 제2 디시리얼라이저(1220)로 전송할 수 있다. 제2 시리얼라이저(1210)는 제2 와이어(1230)를 통해서 상기 직렬 데이터를 제2 디시리얼라이저(1220)로 전송할 수 있다. 당연히, 제2 와이어(1230)는 하나의 경로를 가지는 와이어일 수 있다.
제3 도메인(D3)의 제3 이벤트 풀(2100)은 제1 이벤트 풀(100) 및 제2 이벤트 풀(1100)과 식별되는 별개의 공간일 수 있다. 제3 이벤트 풀(2100)은 제1 시리얼라이저(210) 및 제2 시리얼라이저(1210)에 의해서 이벤트가 수집되지 않는 영역일 수 있다. 제3 이벤트 풀(2100)은 제3 클럭 게이팅 스테이터스(2101)을 포함할 수 있다. 도시되었듯이, 제3 이벤트 풀(2100)은 제1 이벤트 풀(100) 및 제2 이벤트 풀(1100)과 다른 종류와 개수의 이벤트를 포함할 수 있다. 단, 본 발명이 이에 제한되는 것은 아니다.
제3 시리얼라이저(2210)는 제3 이벤트 풀(2100)로부터 여러가지 이벤트를 수집할 수 있다. 제3 시리얼라이저(2210)는 수집된 이벤트의 병렬 데이터를 하나의 직렬 데이터로 변환하여 제3 디시리얼라이저(2220)로 전송할 수 있다. 제3 시리얼라이저(2210)는 제3 와이어(2230)를 통해서 상기 직렬 데이터를 제3 디시리얼라이저(2220)로 전송할 수 있다. 당연히, 제3 와이어(2230)는 하나의 경로를 가지는 와이어일 수 있다.
도 6을 참조하면, 제1 시리얼라이저(210) 및 제1 디시리얼라이저(220)와, 제2 시리얼라이저(1210) 및 제2 디시리얼라이저(1220)의 동작은 유사할 수 있다. 즉, 제1 시리얼라이저(210) 및 제1 디시리얼라이저(220)와, 제2 시리얼라이저(1210) 및 제2 디시리얼라이저(1220)의 동작은 모두 유휴(IDLE), 개시(START), 시프트(SHIFT), 스탑(STOP)의 동작을 반복할 수 있다.
단, 제1 시리얼라이저(210)와 제2 시리얼라이저(1210)는 서로 다른 주기로 동작할 수 있다. 즉, 제1 시리얼라이저(210)는 제1 주기(P1)로 직렬 데이터를 전송함에 반해서 제2 시리얼라이저(1210)는 제2 주기(P2)로 직렬 데이터를 전송할 수 있다.
이에 따라서, 당연히 제1 시리얼라이저(210)와 제2 시리얼라이저(1210)가 상기 직렬 데이터를 업데이트하는 시점은 서로 동기화되지 않을 수 있다. 본 발명의 몇몇 실시예에 따른 반도체 장치는 서로 다른 도메인에서 시리얼라이저가 동기화 없이 별도로 동작하여도 추후에 병렬 데이터를 복원할 수 있으므로, 시리얼라이저 단계에서의 동기화는 필요하지 않을 수 있다. 이를 통해서 더욱 자유롭고, 적은 리소스를 통해서 이벤트를 프로파일할 수 있다.
다시, 도 5를 참조하면, 제1 내지 제3 도메인(D1~D3)에서의 제1 내지 제3 시리얼라이저(210, 1210, 2210)는 서로 다른 주기로 직렬 데이터를 전송하고 제1 내지 제3 디시리얼라이저(220, 1220, 2220)도 서로 다른 주기로 직렬 데이터를 전송받을 수 있다.
제1 내지 제3 디시리얼라이저(220, 1220, 2220)는 각각 전송받은 직렬 데이터를 병렬 데이터로 복원할 수 있다. 이 때, 제1 내지 제3 디시리얼라이저(220, 1220, 2220)는 복원된 각각의 병렬 데이터들을 통합하여 하나의 통합 데이터를 생성할 수 있다. 이러한 통합 데이터는 제1 메모리(300)에 저장될 수 있다.
DMA(400)는 상기 통합 데이터를 타이머(410)가 제공하는 캡쳐 주기에 따라서 캡쳐하여 제2 메모리(500)에 저장할 수 있다. 이 때, 캡쳐 시점의 순서에 따라서, 저장되는 캡쳐 데이터의 주소가 순차적으로 배치될 수 있다.
본 발명의 몇몇 실시예에 따른 반도체 장치는 서로 다른 도메인에서 독자적으로 시리얼라이저가 이벤트를 수집할 수 있다. 이 때, 각각의 도메인은 반도체 장치 내의 인접한 영역에 의해서 결정될 수도 있고, 신호 경로가 짧은 영역을 위주로 결정될 수도 있다. 즉, 이벤트 수집에 효율적인 방향으로 도메인을 설정하여 이벤트 프로파일링의 효율을 증대시킬 수 있다.
본 실시예의 반도체 장치는 각 도메인 별로 독자적 이벤트 수집에 의해서 동기화를 위한 클럭을 필요로 하지도 않고, 동기화를 위한 버퍼 타임도 필요로 하지 않으며, 동기화를 위한 로직 모듈도 필요로 하지 않을 수 있다. 따라서, 최소한의 리소스를 이용하여 빠르게 이벤트 프로파일링이 가능할 수 있다.
이하, 도 1, 도 3, 도 4, 도 7 및 도 8을 참조하여, 본 발명의 몇몇 실시예에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명한다. 상술한 설명과 중복되는 부분은 생략하거나 간략히 한다.
도 7은 본 발명의 몇몇 실시예들에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명하기 위한 순서도이고, 도 8은 도 7의 캡쳐 데이터를 리드하여 시각화한 그래프의 예시도이다.
도 7을 참조하면, 먼저, 이벤트를 수집하여 직렬 데이터를 생성한다(S100).
구체적으로, 도 1을 참조하면, 제1 시리얼라이저(210)는 제1 이벤트 풀(100)로부터 여러가지 이벤트를 수집할 수 있다. 상기 이벤트는 상술한 제1 클럭 게이팅 스테이터스(101), 제1 파워 게이팅 스테이터스(102) 및 제1 DVFS 스테이터스(103) 중 적어도 하나를 포함할 수 있다. 제1 시리얼라이저(210)는 수집한 이벤트를 하나의 직렬 데이터로 변환할 수 있다.
다시, 도 7을 참조하면, 직렬 데이터를 병렬 데이터로 변환하여 복구 데이터를 생성한다(S200).
구체적으로, 도 1을 참조하면, 제1 디시리얼라이저(220)는 전송받은 직렬 데이터를 원래의 병렬 데이터로 다시 복원할 수 있다.
다시, 도 7을 참조하면, 캡쳐 데이터를 생성한다(S300).
구체적으로, 도 1 및 도 3을 참조하면, DMA(400)는 병렬 데이터를 시간에 따라서 캡쳐할 수 있다. DMA(400)는 예를 들어, 도 3의 제1 내지 제9 시점(T1~T9)에 캡쳐를 수행할 수 있다. 상기 제1 내지 제9 시점(T1~T9)은 모두 동일한 간격만큼 배치될 수 있다. 상기 동일한 간격은 캡쳐 주기(Pe)로 타이머(410)에 의해서 정의될 수 있다.
다시, 도 7을 참조하면, 순차적으로 배치된 주소에 캡쳐 데이터를 저장한다(S400).
구체적으로, 도 1 및 도 4를 참조하면, 제1 시점(T1)에 캡쳐된 캡쳐 데이터는 시작 어드레스(Start address)에 저장될 수 있다. 이어서, 제2 시점(T2)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x020이 더해진 주소(Start address+0x020)에 저장될 수 있다. 이어서, 제3 시점(T3)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x040이 더해진 주소(Start address+0x040)에 저장될 수 있다. 이어서, 제4 시점(T4)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x060이 더해진 주소(Start address+0x060)에 저장될 수 있다. 이어서, 제5 시점(T5)에 캡쳐된 캡쳐 데이터는 시작 어드레스에서 0x080이 더해진 주소(Start address+0x020)에 저장될 수 있다.
이러한 방식으로, 각각의 캡쳐된 데이터가 저장된 주소는 모두 동일한 간격으로 배치될 수 있다.
다시, 도 7을 참조하면, 캡쳐 데이터를 리드한다(S500).
구체적으로, 도 8을 참조하면, 캡쳐 데이터는 도 8의 그래프와 같이 시각화되어 표현될 수 있다. 또는 다른 방식으로 캡쳐 데이터는 표현될 수 있다. 이러한 캡쳐 데이터의 표현은 이벤트의 모니터링을 위해서 활용될 수 있다.
이하, 도 5, 도 7 및 도 9를 참조하여, 본 발명의 몇몇 실시예에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명한다. 상술한 설명과 중복되는 부분은 생략하거나 간략히 한다.
도 9는 본 발명의 몇몇 실시예들에 따른 반도체 장치의 이벤트 프로파일링 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 제1 도메인(D1) 및 제2 도메인(D2)에서 독자적으로 동작이 수행될 수 있다. 편의상 제1 도메인(D1)을 먼저 설명하고, 이후에 제2 도메인(D2)을 설명한다.
먼저, 이벤트를 수집하여 제1 직렬 데이터를 생성한다(S100a).
구체적으로, 도 5를 참조하면, 제1 시리얼라이저(210)는 제1 도메인(D1)에서 이벤트를 수집하여 제1 직렬 데이터를 생성한다.
다시, 도 9를 참조하면, 제1 직렬 데이터를 제1 병렬 데이터로 변환한다(S200a).
구체적으로, 도 5를 참조하면, 제1 디시리얼라이저(220)는 제1 도메인(D1)에서 전송받은 제1 직렬 데이터를 제1 병렬 데이터로 변환할 수 있다.
이하, 제2 도메인(D2)을 설명한다.
다시, 도 9를 참조하면, 이벤트를 수집하여 제2 직렬 데이터를 생성한다(S100b).
구체적으로, 도 5를 참조하면, 제2 시리얼라이저(1210)는 제2 도메인(D2)에서 이벤트를 수집하여 제2 직렬 데이터를 생성한다.
다시, 도 9를 참조하면, 제2 직렬 데이터를 제2 병렬 데이터로 변환한다(S200b).
구체적으로, 도 5를 참조하면, 제2 디시리얼라이저(1220)는 제2 도메인(D2)에서 전송받은 제2 직렬 데이터를 제2 병렬 데이터로 변환할 수 있다.
다시, 도 9를 참조하면, 복구 데이터를 생성한다(S200c).
상기 복구 데이터는 상기 제1 병렬 데이터 및 제2 병렬 데이터를 통합하여 생성할 수 있다.
이하, 본 발명의 몇몇 실시예에 따른 반도체 장치의 이벤트 프로파일링 방법은 캡쳐 데이터를 생성하고(S300), 순차적으로 배치된 주소에 캡쳐 데이터를 저장하고(S400), 캡쳐 데이터를 리드할 수 있다(S500).
본 실시예의 반도체 장치의 이벤트 프로파일링 방법은 각 도메인 별로 독자적 이벤트 수집에 의해서 최소한의 리소스를 이용하여 빠르게 이벤트 프로파일링이 가능할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
210, 1210, 2210: 시리얼라이저
220, 1220, 2220: 디시리얼라이저
300: 제1 메모리
400: DMA
410: 타이머
500: 제2 메모리
510: 리저브 영역

Claims (10)

  1. 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 전송하는 제1 시리얼라이저;
    상기 제1 직렬 데이터를 전송받아 제1 병렬 데이터로 변환하는 제1 디시리얼라이저;
    제2 주기를 가지는 클럭 신호를 제공하는 타이머;
    상기 클럭 신호를 이용하여 상기 제1 병렬 데이터를 상기 제2 주기마다 캡쳐하여 캡쳐 데이터를 생성하는 DMA; 및
    상기 캡쳐 데이터를 저장하는 제1 메모리를 포함하되,
    상기 캡쳐 데이터가 상기 제1 메모리 내에 저장되는 주소는 캡쳐 순서에 순차적으로 대응되는 반도체 장치.
  2. 제1 항에 있어서,
    상기 이벤트는 클럭 게이팅 스테이터스(clock gating status), 파워 게이팅 스테이터스(power gating status) 및 DVFS 스테이터스(DVFS status) 중 적어도 하나를 포함하는 반도체 장치.
  3. 제1 항에 있어서,
    상기 제1 도메인과 다른 제2 도메인의 이벤트를 수집하여 제2 직렬 데이터를 생성하고, 제3 주기마다 전송하는 제2 시리얼라이저와,
    상기 제2 직렬 데이터를 전송받아 제2 병렬 데이터로 변환하는 제2 디시리얼라이저를 더 포함하고,
    상기 DMA는 상기 제1 및 제2 병렬 데이터를 상기 제2 주기마다 캡쳐하여 캡쳐 데이터를 생성하는 반도체 장치.
  4. 제3 항에 있어서,
    상기 제1 주기는 상기 제3 주기와 서로 다른 반도체 장치.
  5. 제3 항에 있어서,
    상기 제1 및 제2 병렬 데이터가 저장되는 제2 메모리를 더 포함하는 반도체 장치.
  6. 제1 항에 있어서,
    상기 DMA는 제1 시점에 캡쳐한 제1 캡쳐 데이터를 제1 주소에 저장하고,
    상기 제1 시점에서 상기 제2 주기가 지난 제2 시점에서 캡쳐한 제2 캡쳐 데이터를 제2 주소에 저장하고,
    상기 제2 시점에서 상기 제2 주기가 지난 제3 시점에서 캡쳐한 제3 캡쳐 데이터를 제3 주소에 저장하고,
    상기 제2 주소와 상기 제1 주소의 차이는 상기 제3 주소와 상기 제2 주소의 차이와 동일한 반도체 장치.
  7. 제1 도메인의 이벤트를 수집하여 제1 직렬 데이터를 생성하고, 제1 주기마다 전송하는 제1 시리얼라이저;
    상기 제1 직렬 데이터를 전송받아 제1 병렬 데이터로 변환하는 제1 디시리얼라이저;
    제2 도메인의 이벤트를 수집하여 제2 직렬 데이터를 생성하고, 제2 주기마다 전송하는 제2 시리얼라이저;
    상기 제2 직렬 데이터를 전송받아 제2 병렬 데이터로 변환하는 제2 디시리얼라이저;
    상기 제1 및 제2 병렬 데이터를 통합 데이터로 저장하는 제1 메모리;
    캡쳐 주파수를 결정하는 타이머;
    상기 캡쳐 주파수에 따라서 상기 통합 데이터로부터 캡쳐 데이터를 생성하는 DMA로서, 상기 캡쳐 데이터는 캡쳐 순서에 따라서 제1 내지 제n 캡쳐 데이터를 포함하는 DMA; 및
    상기 제1 내지 제n 캡쳐 데이터를 제1 내지 제n 주소에 각각 저장하는 제2 메모리를 포함하되,
    상기 제1 내지 제n 주소는 순차적으로 배치되는 반도체 장치.
  8. 제7 항에 있어서,
    상기 제1 내지 제n 주소의 간격은 균일한 반도체 장치.
  9. 제7 항에 있어서,
    상기 제1 메모리는 플립 플롭 또는 SRAM 중 적어도 하나를 포함하는 반도체 장치.
  10. 제7 항에 있어서,
    상기 제2 메모리는 DRAM, SRAM 및 플래시 메모리 중 적어도 하나를 포함하는 반도체 장치.
KR1020170103989A 2017-08-17 2017-08-17 반도체 장치 및 그 이벤트 프로파일링 방법 KR102276895B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170103989A KR102276895B1 (ko) 2017-08-17 2017-08-17 반도체 장치 및 그 이벤트 프로파일링 방법
US15/946,992 US10475501B2 (en) 2017-08-17 2018-04-06 Semiconductor device and method for profiling events in semiconductor device
TW107128060A TWI781209B (zh) 2017-08-17 2018-08-10 半導體裝置
CN201810940324.1A CN109408431B (zh) 2017-08-17 2018-08-17 半导体装置和用于剖析半导体装置中的事件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170103989A KR102276895B1 (ko) 2017-08-17 2017-08-17 반도체 장치 및 그 이벤트 프로파일링 방법

Publications (2)

Publication Number Publication Date
KR20190019295A KR20190019295A (ko) 2019-02-27
KR102276895B1 true KR102276895B1 (ko) 2021-07-12

Family

ID=65360672

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170103989A KR102276895B1 (ko) 2017-08-17 2017-08-17 반도체 장치 및 그 이벤트 프로파일링 방법

Country Status (4)

Country Link
US (1) US10475501B2 (ko)
KR (1) KR102276895B1 (ko)
CN (1) CN109408431B (ko)
TW (1) TWI781209B (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090505A (ja) 2006-09-29 2008-04-17 Fujitsu Ltd イベント保持回路
JP2009122820A (ja) 2007-11-13 2009-06-04 Yamatake Corp 遠隔監視情報収集システム、遠隔監視情報収集装置、監視端末、及び、遠隔監視情報収集方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5570356A (en) * 1995-06-07 1996-10-29 International Business Machines Corporation High bandwidth communications system having multiple serial links
US6081852A (en) * 1996-04-26 2000-06-27 Texas Instruments Incorporated Packet data transferring system for autonomously operating a DMA by autonomous boot mode select signal wherein the DMA is enabled to at least one program control list
JPH1040211A (ja) * 1996-04-30 1998-02-13 Texas Instr Inc <Ti> パケット化されたデータ通信インタフェース機器内での直接メモリアクセス優先順位を割り当てるための方法ならびにdmaチャンネル回路
JPH1198163A (ja) * 1997-09-19 1999-04-09 Nec Corp 装置内監視情報の収集装置及び収集方法
US6798420B1 (en) * 1998-11-09 2004-09-28 Broadcom Corporation Video and graphics system with a single-port RAM
US6594609B1 (en) 2000-11-25 2003-07-15 Advantest, Corp. Scan vector support for event based test system
US20040139305A1 (en) * 2003-01-09 2004-07-15 International Business Machines Corporation Hardware-enabled instruction tracing
EP1447739A1 (en) * 2003-02-12 2004-08-18 Deutsche Thomson-Brandt Gmbh Method and apparatus for preprocessing input/output signals of/to different types of interfaces using a common format
US7363577B2 (en) 2004-05-18 2008-04-22 Novell, Inc. Techniques for serializing events
US7739668B2 (en) * 2005-05-16 2010-06-15 Texas Instruments Incorporated Method and system of profiling applications that use virtual memory
US7603589B2 (en) * 2005-05-16 2009-10-13 Texas Instruments Incorporated Method and system for debugging a software program
US20070174910A1 (en) * 2005-12-13 2007-07-26 Zachman Frederick J Computer memory security platform
US20070143678A1 (en) 2005-12-21 2007-06-21 Feigenbaum Barry A Method and apparatus for persistently resolving events to event source
KR20090083327A (ko) * 2006-07-10 2009-08-03 아스테리온, 인크. 자동화 테스트 장비에서의 디지털 파형 발생 및 측정
US8045667B2 (en) * 2007-02-02 2011-10-25 Samsung Electronics Co., Ltd. Deserializer and data recovery method
US8121542B2 (en) * 2007-10-16 2012-02-21 Rafi Zack Virtual connector based on contactless link
US7921239B2 (en) 2008-08-08 2011-04-05 Dell Products, Lp Multi-mode processing module and method of use
US8560568B2 (en) * 2008-08-26 2013-10-15 Zeewise, Inc. Remote data collection systems and methods using read only data extraction and dynamic data handling
US8407528B2 (en) * 2009-06-30 2013-03-26 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems
US20110137909A1 (en) 2009-12-07 2011-06-09 Sap Ag Location independent execution of user interface operations
US8683254B2 (en) 2011-01-07 2014-03-25 Anue Systems, Inc. Systems and methods for precise event timing measurements
US8788867B2 (en) 2011-01-07 2014-07-22 Anue Systems, Inc. Systems and methods for playback of detected timing events
US8943369B2 (en) * 2011-02-21 2015-01-27 Texas Instruments Incorporated Prioritizing stall/reason data into priority information stream over PC/data trace
US8930872B2 (en) * 2012-02-17 2015-01-06 Netronome Systems, Incorporated Staggered island structure in an island-based network flow processor
US9405713B2 (en) * 2012-02-17 2016-08-02 Netronome Systems, Inc. Commonality of memory island interface and structure
US20130305012A1 (en) 2012-05-10 2013-11-14 Telefonaktiebolaget L M Ericsson (Publ) Implementation of counters using trace hardware
US9092560B2 (en) * 2012-10-01 2015-07-28 Infineon Technologies Ag Trace based measurement architecture
US9176911B2 (en) * 2012-12-11 2015-11-03 Intel Corporation Explicit flow control for implicit memory registration
US8996889B2 (en) 2013-03-29 2015-03-31 Dropbox, Inc. Portable computing device with methodologies for client-side analytic data collection
US9830245B2 (en) * 2013-06-27 2017-11-28 Atmel Corporation Tracing events in an autonomous event system
US9158720B2 (en) * 2013-08-11 2015-10-13 Qualcomm Incorporated System and method for scalable trace unit timestamping
US10073754B2 (en) * 2013-09-13 2018-09-11 Assurant, Inc. Systems and methods for collecting, tracking, and storing system performance and event data for computing devices
US9635398B2 (en) 2013-11-01 2017-04-25 Adobe Systems Incorporated Real-time tracking collection for video experiences
US9904626B2 (en) * 2014-08-29 2018-02-27 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and system on chip
US9372947B1 (en) * 2014-09-29 2016-06-21 Cadence Design Systems, Inc. Compacting trace data generated by emulation processors during emulation of a circuit design
US9703670B2 (en) * 2015-01-06 2017-07-11 Microsoft Technology Licensing, Llc Performance state machine control with aggregation insertion
CN104579570B (zh) * 2015-01-14 2018-04-13 灿芯半导体(上海)有限公司 数据接收器、数据接收系统和数据传输系统
CN105991196B (zh) * 2015-02-17 2019-04-19 华为技术有限公司 一种数据预编码器、系统以及编码方法
KR102391385B1 (ko) * 2015-08-13 2022-04-27 삼성전자주식회사 내장형 로직 분석기 및 이를 포함하는 집적 회로

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008090505A (ja) 2006-09-29 2008-04-17 Fujitsu Ltd イベント保持回路
JP2009122820A (ja) 2007-11-13 2009-06-04 Yamatake Corp 遠隔監視情報収集システム、遠隔監視情報収集装置、監視端末、及び、遠隔監視情報収集方法

Also Published As

Publication number Publication date
TWI781209B (zh) 2022-10-21
US10475501B2 (en) 2019-11-12
US20190057733A1 (en) 2019-02-21
KR20190019295A (ko) 2019-02-27
TW201913389A (zh) 2019-04-01
CN109408431A (zh) 2019-03-01
CN109408431B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
US10599178B2 (en) Data transfer between asynchronous clock domains
CN101859289B (zh) 一种利用片外存储器访问控制器访问外部存储器的方法
US8386828B1 (en) Circuit for estimating latency through a FIFO buffer
KR20070001895A (ko) 복수의 시간 도메인들을 갖는 시스템에서 이벤트들을 시간순서화하기 위한 장치 및 방법
EP1761851B1 (en) Interface device for debugging and/or tracing a computer system comprising one or multiple masters and one or multiple slaves working together
US10922263B2 (en) Serial communication device
US20040006724A1 (en) Network processor performance monitoring system and method
US7895430B2 (en) On-chip logic analyzer using compression
KR102276895B1 (ko) 반도체 장치 및 그 이벤트 프로파일링 방법
CN110959121B (zh) 用于集成电路的逻辑分析器
CN108847921B (zh) 分布式振动同步连续监测系统
JP5278705B2 (ja) エンジン・プロセッサ連携システム、及び連携方法
EP2579507B1 (en) Method and system for counting data packets
CN115687012A (zh) 一种总线监测模块、监测方法和相关设备
US20150039272A1 (en) Integrated Digitizer System with Streaming Interface
US9626229B1 (en) Processor performance monitoring unit synchronization
JP4470582B2 (ja) ハードウェア/ソフトウェア協調シミュレーション方式及びその方法
CN112148655B (zh) 多位数据跨时钟域的处理方法及装置
CN112463701A (zh) 一种基于scl实时高电平脉宽的i2c从机电路
KR102184695B1 (ko) 진단 인터페이스 메커니즘을 갖는 전자 시스템 및 그것의 동작 방법
US11223351B1 (en) Activity-aware clock gating for switches
JP2005165825A (ja) トレース情報記録装置
CN116467086A (zh) 数据处理方法、装置、电子设备及存储介质
CN104765703A (zh) 一种在fpga平台上进行数据报文采集的方法
JP3090053B2 (ja) 回路データ用モニタ装置

Legal Events

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