KR102658595B1 - 다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법 - Google Patents

다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법 Download PDF

Info

Publication number
KR102658595B1
KR102658595B1 KR1020207023268A KR20207023268A KR102658595B1 KR 102658595 B1 KR102658595 B1 KR 102658595B1 KR 1020207023268 A KR1020207023268 A KR 1020207023268A KR 20207023268 A KR20207023268 A KR 20207023268A KR 102658595 B1 KR102658595 B1 KR 102658595B1
Authority
KR
South Korea
Prior art keywords
stream
key
circuitry
key values
elements
Prior art date
Application number
KR1020207023268A
Other languages
English (en)
Other versions
KR20200108458A (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 에이알엠 리미티드
Publication of KR20200108458A publication Critical patent/KR20200108458A/ko
Application granted granted Critical
Publication of KR102658595B1 publication Critical patent/KR102658595B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법이 기재되어 있다. 제1 요소들로 이루어진 제1 스트림을 발생하는 제1 발생 회로소자와, 제2 요소들로 이루어진 제2 스트림을 발생하는 제2 발생 회로소자와의 양쪽을 포함하는 장치가 제공되어 있다. 제1 발생 회로소자는 제2 스트림에서 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하도록 배치되어 있다. 키 발생 회로소자는, 제1 스트림내에 포함될 제1 요소의 인스턴스마다, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 발생하는데 사용된다. 그리고, 제1 발생 회로소자는 제1 요소의 인스턴스마다 그 연관 키 값을 제1 스트림내에 나타내도록 배치되어 있다. 이러한 해결방법에 의해, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스에 대한 이후의 분석이, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 한다. 이것은, 제1 스트림과 관련지어 대역폭 제약들을 경감하는 방식으로, 제1 스트림에서의 개개의 요소들과 제2 스트림에서의 대응한 개개의 요소들과의 사이의 정렬을 허용하는 매우 효율적인 메카니즘을 제공한다.

Description

다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법
본 기술은, 다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법에 관한 것이다.
데이터 처리 시스템에서는, 나중에 분석하기 위해 다중 스트림의 정보를 생성하여도 되는 상황들이 있고, 이때 여기서는 그 스트림들내의 정보의 블록들을 요소들이라고 한다. 별개의 스트림들이 상이한 정보를 캡처하여도 되지만, 그들은 동일한 소스로부터 필수적으로 유래하여도 되고, 따라서 하나의 스트림내의 일부 요소들은 대응한 요소를 그 밖의 스트림에 포함시킨 소스에서 동일한 액티비티에 관계되어도 된다.
일례로서, 중앙처리유닛(CPU) 등의 처리 요소들에 의해 행해지는 처리 액티비티들을 계속 추적하는 것이 바람직한 경우가 많이 있다. 예컨대, 이러한 정보는, 데이터 처리장치의 개발시에 유용하다. 이러한 처리를 돕는데 사용될 수도 있는 툴의 일례는, 추적 툴이 있다.
상기 시스템내의 단계별 액티비티를 나타내는 데이터를 포함하는 추적 스트림을 발생하는 처리요소의 액티비티를 추적하는 것은, 시스템 개발에 있어서 매우 유용하다. 이러한 추적 툴은, 처리가 감시중인 칩상에 있는 임베디드 추적 매크로셀(ETM, 캠브리지 ARM 리미티드의 상표)을 포함하는 프로그램 흐름을 추적하는 다양한 수단을 사용한다.
일부의 인스턴스에, 다중 별개의 추적 스트림들은, 그 다중 스트림내에서 하나의 스트림에서의 일부의 요소들이 나머지 스트림에서의 대응한 요소들에 의해 캡처된 것처럼 동일한 액티비티들에 관련되는 경우 생성되어도 되고, 이에 따라 다중 추적 스트림을 분석할 때, 일 스트림에서의 요소들이 타 스트림에서의 요소들에 대응하는지를 결정할 수 있는 것이 유용할 것이다.
일 구성 예에서 제공한 장치는: 제1 요소들로 이루어진 제1 스트림을 발생하는 제1 발생 회로소자; 제2 요소들로 이루어진 제2 스트림을 발생하는 제2 발생 회로소자; 상기 제1 발생 회로소자는 제2 스트림에서 대응한 제2 요소의 각 어커런스(occurrence)를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하도록 배치되고; 제1 스트림내에 포함될 제1 요소의 인스턴스마다, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 발생하는 키 발생 회로소자를 구비하고; 제1 발생 회로소자는 제1 요소의 인스턴스마다 그 연관 키 값을 제1 스트림내에 나타내도록 배치되어, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스에 대한 이후의 분석이, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 하고, 상기 키 발생 회로소자는, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤인 의사난수 생성기이고, 상기 키 발생 회로소자는, 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 그 세트로부터 키 값들을 발생하도록 배치되고, 여기서 p>s이다.
또 하나의 구성 예에서 제공한 진단장치는: 제1 스트림의 요소들을 수신하는 제1 인터페이스; 제2 스트림의 요소들을 수신하는 제2 인터페이스; 및 제1 및 제2 스트림에 대한 정렬 연산을 행하는 분석 회로소자를 구비하고; 제1 스트림은, 제2 스트림에서의 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 요소를 갖고, 제1 요소의 각 인스턴스와 관련지어, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 제공하고; 그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s이고, 분석 회로소자는, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 결정하기 위해서, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석하도록 배치되어 있고, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤이다.
또 다른 구성 예에서 제공한 다중 스트림의 요소들을 발생하는 장치의 작동방법은: 제1 요소들로 이루어진 제1 스트림을 발생하는 단계; 제2 요소들로 이루어진 제2 스트림을 발생하는 단계; 제1 스트림의 발생시에, 제2 스트림에서 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하는 단계; 제1 스트림내에 포함될 제1 요소의 인스턴스마다, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 발생하는 단계; 및 제1 요소의 인스턴스마다 그 연관 키 값을 제1 스트림내에 나타내어, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스에 대한 이후의 분석이, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 하는 단계를 포함하고, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤이고, 그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s이다.
아울러 또 다른 구성 예에서 제공한, 다중 스트림을 분석하는 진단장치의 작동방법은: 제1 스트림의 요소들을 수신하는 단계; 제2 스트림의 요소들을 수신하는 단계; 및 제1 및 제2 스트림에 대한 정렬 연산을 행하는 단계를 포함하고; 제1 스트림은, 제2 스트림에서의 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 요소를 갖고, 제1 요소의 각 인스턴스와 관련지어, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 제공하고; 그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s이고, 상기 정렬 연산시에, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 결정하기 위해서, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석하는 것을 포함하고, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤이다.
본 기술은, 아래의 첨부도면들에 도시된 것과 같은 예들을 참조하여 예시로만 한층 더 설명하겠다:
도 1은 일 구성 예에 따른 시스템의 블록도이고;
도 2는 일 구성 예에 따른 도 1의 시스템에서 생성한 2개의 추적 스트림을 분석하는데 사용될 수 있는 진단장치를 개략적으로 도시한 것이고;
도 3a 및 3b는 구성 예에 따른 한쪽의 스트림이나 양쪽의 스트림내에서 사용한 키 값들을 발생하는데 사용되어도 되는 2개의 상이한 메카니즘을 개략적으로 도시한 것이고;
도 4a 내지 4c는 일 구성 예에 따른 도 3b의 LFSR(160)에서 생성한 키 값들의 시리즈의 일부 특성을 도시한 것이고;
도 5a 및 5b는 샘플 유닛으로부터 도 1의 ETM에 샘플링 이벤트들과 키 값들 양쪽의 신호를 보내는데 이벤트 버스의 다중 비트들을 사용할 수 있는 2개의 방식을 도시한 것이고;
도 6a 및 6b는 2개의 추적 스트림에서 대응한 요소간에 정렬을 검출하도록 행해질 수도 있는 시퀀스 매칭 연산을 개략적으로 도시한 것이고;
도 7은, 일례에 따라, 제1 및 제2 추적 스트림에서 추적 요소간에 정렬을 결정하기 위해서, 도 2의 진단장치에서 행한 분석연산을 개략적으로 설명하는 흐름도다.
앞서 언급된 것처럼, 일부의 인스턴스에서는, 다중 스트림의 요소들에서의 대응한 요소들을 정렬할 수 있는 것이 바람직하다. 이를테면, 추적 발생의 예를 고려하면, 다중 별개의 추적 스트림들이 생성되어도 되는 것이 가능하고, 이때 그 다중 스트림들내에서 일 스트림에서의 일부의 요소들은 타 스트림에서의 대응한 요소들에 의해 캡처된 것처럼 동일한 액티비티들에 관계되고, 이에 따라 그 다중 추적 스트림들을 분석할 때, 일 스트림에서의 개개의 요소들과 타 스트림에서의 대응한 요소들을 정렬할 수 있는데 유용하다.
그렇지만, 종종, 그 스트림들 중 적어도 하나가 대역폭 제한되는 경우이다. 그 결과, 격리에 있어서 유일한 식별자들, 예컨대 이러한 식별자들이 소비될 공간의 양으로 인해, 고해상도 타임스탬프, 또는 단조적으로 증가하는 시퀀스 번호를 갖는 양쪽의 스트림에서 주목 요소들을 태깅하는 것이 가능하지 않을 수도 있다.
이에 따라, 다중 스트림에 보이는 요소들을 정렬하려고 하는 보다 효율적인 메카니즘을 바란다.
본 기술의 일례에서 제공한 장치는, 제1 요소들로 이루어진 제1 스트림을 발생하는데 사용된 제1 발생 회로소자와, 제2 요소들로 이루어진 제2 스트림을 발생하는데 사용된 제2 발생 회로소자를 갖는다. 제1 스트림은 제1 요소들의 인스턴스들과 아울러 그 밖의 요소들을 포함하여도 되고, 마찬가지로, 제2 스트림은 제2 요소들의 인스턴스들과 아울러 그 밖의 요소들도 포함하여도 된다. 그렇지만, 제1 및 제2 요소들은 본 기술에 대한 특별한 관심을 갖는데, 그 이유는, 제1 스트림에서의 제1 요소들의 어커런스들과 제2 스트림에서의 제2 요소들의 어커런스들과의 상관성이 있기 때문이다. 특히, 제1 발생 회로소자는, 제2 스트림에서 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하도록 배치되어 있다.
이 사실로 미루어, 제1 및 제2 스트림의 이후의 분석시에 제1 스트림에서의 제1 요소의 각 인스턴스와 제2 스트림에서의 제2 요소의 대응한 인스턴스를 일치시키고 싶은 바람이 있을 가능성이 높고, 여기서 설명된 기술들은, 이러한 분석이 일어나게 하는 것을 가능하게 하는 충분한 정보를 포함하는 효율적인 메카니즘을 제공하고, 이러한 부가의 정보를 수용하는데 요구된 대역폭을 감소시킨다.
특히, 상기 설명된 기술들에서는, 키 발생 회로소자를 사용하여, 제1 스트림내에 포함될 제1 요소의 인스턴스마다, 일 세트의 키 값들로부터 결정된 연관 키 값을 발생한다. 그렇지만, 그 일 세트의 키 값들은, 주목 기간 동안에 제1 스트림내에 포함될 가능성이 높은 제1 요소의 인스턴스마다, 유일한 키 값들이 발생되게 하기에 불충분하다.
그 후, 제1 발생 회로소자는, 제1 요소의 인스턴스마다 상기 연관 키 값을 제1 스트림내에 나타내도록 배치된다. 상술한 것처럼 개개의 키 값은 제1 스트림내의 제1 요소의 임의의 특별한 인스턴스의 유일한 식별을 가능하게 하기에 불충분하므로, 그것만으로 제2 스트림에서의 대응한 제2 요소와 정렬시키는 것을 가능하게 할 수 없지만, 제1 스트림내의 제2 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석함으로써, 예컨대, 공지된 시퀀스 매칭 기술들을 사용함으로써, 이것은 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 한다.
이에 따라, 이러한 해결방법에 의해, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 나중의 정렬을 가능하게 하기 위해서, 적어도 제1 스트림내에 포함될 필요가 있는 정보의 양은 상당히 감소될 수 있어서, 나중에 검출될 제1 및 제2 스트림에서의 요소간의 정확한 관련성을 여전히 허용하면서 대역폭 제약들을 완화할 수 있다.
제2 스트림내에 포함된 정보는, 다양한 형태를 취할 수 있다. 일 구성 예에서, 제2 스트림은, 대응한 제1 요소에 대해 상기 키 발생 회로소자에서 발생한 연관 키 값의 결정을 가능하게 하기에 충분한 각 제2 요소와 관련지어 식별자 정보를 갖는다. 일 시나리오 예에서, 상기 식별자 정보 자체는 그 연관 키 값을 포함할 수도 있으므로, 관련 키 값들은 직접 그 스트림들의 양쪽내에 포함된다. 예를 들면, 이것은, 제1 스트림뿐만 아니라, 제2 스트림도 대역폭 제한되는 경우, 특히 유용할 수 있다.
그렇지만, 또는, 상기 장치는 식별자 정보를 구성하는 카운터 값을 발생하는 카운터 회로소자를 더 구비하여도 되고, 상기 키 발생 회로소자는 현재의 카운터 값으로부터 각 키 값을 발생하기 위해서 카운터 회로소자에 결합되어 있다. 따라서, 개개의 카운터 값들은 제2 요소의 각 인스턴스와 관련지어 제2 스트림내에 포함되어도 되고, 키 발생 회로소자에서 발생한 키들은 현재의 카운터 값들에 따라 발생된다. 이러한 시나리오에서, 스트림들을 나중에 분석할 때, 키 발생 회로소자에서 카운터 값들로부터 키들을 발생하였던 방식을 진단 회로소자가 알면, 진단 회로소자는 제2 스트림내에 포함된 카운터 값들로부터 키 값들을 계산함에 따라서, 정렬을 결정하기 위해서 제1 스트림으로부터 키 값들의 시리즈와 비교될 수 있는 제2 스트림에 대한 키 값들의 시리즈를 생성할 수 있다.
카운터 값을 포함하는 것이 다른 목적을 위해 이후의 진단장치에 유용하지만, 키 발생 회로소자에 행한 연산들을 진단장치가 알기를 요구하지 않는 것이 바람직한 상황들에 있어서, 키 값들은 양쪽의 스트림에 포함될 수 있어, 제2 스트림내에서 상기 식별자 정보는 카운터 값과 키 값의 양쪽을 포함하여도 된다.
현재의 카운터 값으로부터 키 값을 발생하는 구성 예에서, 키 발생 회로소자는 다양한 방식으로 배치되어도 된다. 일 실시예에서, 키 발생 회로소자는 대응한 키 값을 발생하기 위해서 해시 함수를 현재의 카운터 값에 적용하도록 배치되어 있다. 사용할 수 있는 적절한 해시 함수가 많이 있고, 적절한 일례는 암호 해시 함수다.
일 구성 예에서, 키 발생 회로소자는, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤인 의사난수 생성기다.
의사난수 생성기는, 주목 기간이 지남에 따라, 동일한 값들의 시퀀스를 갖는 특별한 수의 키 값들의 시퀀스의 기회가 비교적 가능성이 없지만, 해당 시나리오가 일어날 확률이 여전히 약간 있어 그 정렬 처리의 정확성을 감소시킬 수 있도록, 배치될 수 있다.
이에 따라, 일 구성 예에서, 키 발생 회로소자는, 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 그 세트로부터 키 값들을 발생하도록 배치되고, 여기서 p>s이다. 따라서, 의사난수 생성 기술들은, 원하는 경우 사용될 수 있지만, 키 발생 회로소자의 적절한 구성에 의해, 주어진 시퀀스 사이즈 s에 대한 값들의 시퀀스의 어떠한 반복도 관찰되기 전에 발생될 키 값들의 수에 관해 보증할 수 있다(여기서는, 보증 기간이라고 함). 키 발생 회로소자의 적절한 구성에 의해, p의 값은 s의 값보다 상당히 크도록 배치될 수 있고, 이것이 실제로 의미하는 것은, 주목 기간이 지남에 따라, 특별한 수 s의 키 값들을 검토할 때, 관찰된 특별한 값들의 시퀀스가 해당 기간내에서 s 키 값들의 임의의 다른 시퀀스를 반복하지 않을 것이 보증될 수 있다는 것이다.
일 실시예에서, p와 s와의 관계는 아래의 식으로 표현된다:
p=bs-1
여기서, b는 상기 세트에서의 키 값들의 수다.
따라서, 단지 예로만, 상기 세트에 3개의 키 값(예를 들면, 값 1, 2 또는 3)이 있고 3개의 키 값들의 시퀀스가 생각되면, 임의의 주어진 3개의 키 값들의 시퀀스가 키 발생 회로소자로부터 26개의 발행 키 값마다 한 번 일어나도록 보장될 수 있다.
따라서, 정렬 처리를 위한 주목 기간에, 제1 스트림내에서 적어도 s 키 값들이 관찰되고 p보다 많은 값들이 관찰되지 않으면, 제1 스트림에서의 제1 요소들과 제2 스트림에서의 대응한 제2 요소들과의 정렬을 가능하게 하기에 충분한 정보가 있을 것이라고 보증될 것이다.
상기 특성들을 갖는, 특히 임의의 특별한 주어진 값들의 시퀀스에 대한 공지된 주기성을 갖는, 키 값들의 시리즈를 생성할 수 있는 키 발생 회로소자의 형태는 많이 있다. 일 구성 예에서, 키 발생 회로소자는, 선형 피드백 시프트 레지스터(LFSR)를 포함한다. 특히, 일 구성 예에서는, 길이 bs-1의 반복 키 시퀀스를 생성하여, 길이 s의 임의의 주어진 시퀀스가 길이 bs-1의 시퀀스에서 한 번만 일어나는 최대길이 LFSR을 사용할 수 있다.
상술한 기술들을 효율적으로 이용하기 위해서는, 제1 스트림과 제2 스트림간의 개략 정렬을 식별 가능한 것이 바람직하여, 상술한 정렬 기술들은, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정확한 정렬을 보장하도록, 해당 개략 정렬 후 양쪽의 스트림에 대해 관찰된 키 값들의 시리즈에 적용될 수 있다. 일 구성 예에서, 이것은 제1 발생 회로소자와 제2 발생 회로소자가 제1 및 제2 스트림의 개략 정렬을 가능하게 하는 각각의 제1 및 제2 스트림내의 동기화 값을 주기적으로 발행하도록 배치됨으로써 달성되고, 그 키 값들의 시퀀스의 분석은 그 개략 정렬 후 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정확한 정렬을 가능하게 한다.
예컨대, 키 발생 회로소자가 앞서 설명된 상기 보증 주기성을 구현하는 구현에서는, 상기 동기화 값에 근거한 제1 및 제2 스트림의 개략 정렬 후에, s 키 값들의 시퀀스가 제1 스트림에서 관찰되어 있는 경우, 정렬이 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이에서 이루어질 수 있는 경우일 것이다.
따라서, 개략 정렬이 이루어질 수 있으면, 제1 스트림내에서 적어도 s 키 값들이 관찰되고 p보다 많은 키 값들이 관찰되지 않는다면, 다음 개략 정렬이 행해지기 전에, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이에서 정확하게 정렬할 수 있는 것을 보장하도록 제시된 충분한 정보가 있을 것이다.
동기화 값은 다양한 형태를 취할 수 있지만, 일례에서는 글로벌 타임스탬프 값이다. 글로벌 타임스탬프 값이 추적 스트림들내에 포함되는 빈도는 구현에 따라 달라질 수 있고, 실제로 글로벌 타임스탬프 포함의 빈도는 상이한 스트림간에 달라져도 된다. 또한, 일 구성 예에서, 글로벌 타임스탬프 값들이 포함되는 빈도는, 상술한 시퀀스 매칭 기술들에 근거한 정확한 정렬이 이루어지게 개략 정렬이 충분히 자주 일어나는 것을 보장하도록, 필요에 따라 달라질 수 있다.
다중 스트림의 요소들은 다양한 목적을 위해 데이터 처리 시스템내에서 생성되어도 된다. 일 구성 예에서, 상기 장치는, 데이터 처리 연산들을 행하기 위해서 명령들의 시퀀스를 실행하는 처리 회로소자를 더 구비한다. 이러한 예에서, 제1 발생 회로소자는, 제1 스트림으로서, 추적 요소들로 이루어진 제1 추적 스트림을 발생하는 제1 추적 발생 회로소자를 구성하여도 되고, 이때의 제1 추적 스트림에서의 추적 요소들은 적어도 제1 요소들을 포함한다. 마찬가지로, 제2 발생 회로소자도, 제2 스트림으로서, 추적 요소들로 이루어진 제2 추적 스트림을 발생하는 제2 추적 발생 회로소자를 구성하여도 되고, 이때의 제2 추적 스트림에서의 추적 요소들은 적어도 제2 요소들을 포함한다.
이러한 2개의 추적 스트림이 생성될 때, 상기 처리 회로소자의 액티비티들을 결정하기 위해서 그 추적 스트림들을 나중에 분석할 때, 제1 추적 스트림에 보이는 추적 요소들과, 제2 추적 스트림내에 보이는 대응한 추적 요소들과의 정확한 관련성을 결정할 수 있는 것이 바람직할 수 있다. 특히, 상이한 스트림들에서의 추적 요소들에서 제공한 정보는, 상이할 수도 있지만, 상기 처리 회로소자내에서 일어나는 동일한 이벤트에 실제로 관계될 수도 있고, 이에 따라, 제1 스트림에서의 요소들이 제2 스트림에서의 추적 요소들과 같은 처리 회로소자 이벤트에 관계되는지를 정확히 식별하는데 매우 유용할 수 있다.
일례에서, 제2 추적 발생 회로소자는, 하나 이상의 기억요소들에 보유된 데이터, 예컨대 상기 처리 회로소자의 하나 이상의 레지스터들에 보유된 데이터를 샘플링하기 위해 상기 처리 회로소자에 의해 기동된 샘플링 회로소자를 구비하여도 되고, 이때의 그 샘플링된 데이터는 제2 추적 스트림내의 제2 요소로서 출력된다. 이러한 예에서, 샘플링 회로소자는, 제1 추적 발생 회로소자에 대해, 대응한 제1 요소로서, 데이터 샘플링 이벤트를 제1 추적 스트림내에 제공시키도록, 샘플링 회로소자가 그 데이터를 샘플링하게 기동될 때, 샘플링 이벤트 표시를 제1 추적 발생 회로소자에 발행하도록 배치되어도 된다. 따라서, 이러한 예에서, 제1 스트림은 데이터 샘플링 이벤트가 일어나 있는 표시를 포함하여도 되고, 제2 스트림은 샘플링되어 있는 데이터를 제공하는 대응한 추적 요소를 포함한다. 상술한 기술들은, 상이한 추적 스트림들에서의 2개의 추적 요소가 일치되는 것을 가능하게 하는 효율적인 메카니즘을 제공한다.
샘플링 회로소자가 제1 추적 발생 회로소자와 통신하여도 되는 방식이 많이 있다. 일 구성 예에서, 제1 추적 발생 회로소자는 이벤트 버스에 결합되어 이벤트 표시들을 수신하는 것이고, 샘플링 회로소자는 그 샘플링 이벤트 표시를 상기 이벤트 버스상에서 제1 추적 발생 회로소자에 발행하도록 배치되어 있다.
요구된 키 값이 제1 추적 발생 회로소자에 제공되어 샘플링 이벤트와 관련지어 제1 추적 스트림에서 식별되게 사용될 수 있는 방식이 많이 있다. 그렇지만, 일 구성 예에서, 효율적으로 이벤트 버스의 복수의 비트를 활용하여 샘플링 이벤트의 표시와 키 값이 사용되도록 제공되는 것이 가능하다. 특히, 일례에서, 키 발생 회로소자는 샘플링 회로소자와 관련되어 있고, 상기 샘플링 회로소자는 이벤트 버스의 복수의 비트를 사용하여, 샘플링 이벤트의 존재와 해당 샘플링 이벤트에 대한 키 값과의 양쪽을 식별하는 제1 추적 발생 회로소자에, 이벤트 표시를 제공하도록 배치되어 있다. 따라서, 이러한 실시예에서는, 멀티비트 신호를 사용하여 샘플링 이벤트를 표시하면, 해당 멀티비트 신호의 다수의 상이한 논제로 변형 예를 사용하여 샘플링 이벤트와 연관 키 값의 존재를 지정할 수 있다. 이것은 매우 효율적인 구현을 제공할 수 있다.
일례에서, 상기 기술은, 제1 스트림에서의 요소들과 제2 스트림에서의 대응한 요소들과의 사이의 정렬을 결정하려고 하는 진단장치도 제공한다. 특히, 진단장치는, 제1 스트림의 요소들을 수신하는 제1 인터페이스와, 제2 스트림의 요소들을 수신하는 제2 인터페이스를 구비하여도 되고, 또한, 제1 및 제2 스트림에 대한 정렬 연산을 행하는 분석 회로소자를 구비하여도 된다. 제1 스트림은, 제1 스트림에서의 대응한 제2 요소의 각 어커런스를 식별하는 제1 요소를 갖도록 배치되고, 또한, 일 세트의 키 값들로부터 결정된 연관 키 값을 상기 제1 요소의 각 인스턴스와 관련지어 제공한다. 앞서 설명된 것처럼, 상기 일 세트의 키 값들은, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분하다. 그 후, 분석 회로소자는, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 결정하기 위해서, 제1 스트림에서의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석하도록 배치되어 있다. 상기 스트림내에 보이는 키 값들의 배수를 사용하여 시퀀스 매칭에 근거하여 상기 요구된 정렬 분석을 행하는 상기와 같은 키 값들의 사용은, 제1 스트림, 원하는 경우 제2 스트림내의 상기 정렬을 위해 요구된 정보를 포함하는 아주 효율적인 대역폭 메카니즘을 제공한다.
앞서 언급된 것처럼, 제2 스트림은 각 제2 요소와 관련지어 식별자 정보를 갖도록 배치될 수 있고, 분석 회로소자는 그 식별자 정보를 사용하여 대응한 제1 요소에 사용된 연관 키 값을 결정하여도 된다. 일부의 인스턴스에서, 상기 식별자 정보 자체는, 키 값을 포함하여도 되지만, 다른 구성에서 상기 식별자 정보는 카운터 회로소자에 의해 발생된 카운터 값을 포함하여도 되고, 해당 인스턴스에서 상기 분석 회로소자는 카운터 값마다 연관 키 값을 발생하는 키 발생 회로소자를 구비하도록 배치되어서, 키 값들의 시리즈가, 제1 스트림에 포함되었던 대응한 키 값들과 일치된 시퀀스일 수 있는 제2 스트림에 대해 생성되는 것을 가능하게 한다.
이제, 특별한 예들에 대해서 도면들을 참조하여 설명하겠다.
도 1은 일 구성 예에 따른 시스템의 블록도이다. 중앙처리유닛(CPU)과 같은 프로세서 코어의 형태의 데이터 처리장치(10)는, 데이터 처리 연산들을 행하기 위해서 프로그램 명령들을 실행하는 실행유닛(15)을 갖게 구성되어 있다. 따라서, 그 실행유닛은 요구된 데이터 처리 연산들을 행하기 위해서 처리 회로소자의 형태를 취하고, 그 명령들을 실행할 때 실행 유닛에서 활용한 데이터는 일 세트의 레지스터들(20)에서 액세스되어도 된다. 실행유닛(15)에서 실행한 로드 명령 및 스토어 명령은, 메모리(30)로부터의 데이터 값들을 상기 레지스터들(20)에 로딩하거나, 데이터 값들을 그 레지스터들로부터 메모리(30)에 기억시키는데, 사용될 수 있다. 당업자라면 아는 것처럼, 하나 이상의 캐시 레벨들(25)은, 데이터에의 액세스 시간을 단축하려고 하기 위해서, 메인 메모리(30)와 상기 코어(10) 사이의 시스템에 있어도 된다.
프로세서 코어에서 행한 액티비티들에 대한 정보를 제공하는 하나 이상의 추적 스트림들을 생성하기 위해서 프로세서 코어(10)의 액티비티를 추적하고 나서, 적절한 때에 적절한 진단장치에 의해 오프칩이 분석될 수 있는데 유용할 수 있다. 이를 위해, 임베디드 추적 매크로셀(ETM)(40)이나, 추적 인터페이스(35)를 거쳐 프로세서 코어(10)에 결합될 수 있는 그 밖의 적절한 추적 발생 회로소자를 제공하는 것이 알려져 있다. 프로세서 코어에 의해 행해지는 적어도 일 서브세트의 액티비티들에 대한 정보는, 추적 인터페이스(35)로부터 ETM(40)에 출력되어, ETM에, 프로세서 코어에 의해 행해지는 액티비티들에 대한 특정한 상세내용을 진단장치에 의해 결정하는데 사용될 수 있는 추적 요소들의 시리즈로 이루어진 제1 추적 스트림을 출력시킬 수 있다.
다양한 타입의 추적은, 상기 ETM, 이를테면 특정한 타입들의 명령들이 실행될 때 표시들을 제공하는 명령 또는 프로그램 흐름 추적에 의해 행해질 수 있다. 해당 기본 명령 추적 정보도, 그 밖의 정보, 예컨대 명령들을 검색하기 위해 프로세서 코어에 의해 액세스된 메모리 어드레스들을 식별하는 명령 어드레스 정보, 및/또는 프로세서 코어에서 처리한 데이터 값들과 관련지어 액세스된 메모리 어드레스들에 대한 표시들을 제공하는 데이터 추적에 의해, 보충될 수 있다(선택사항으로 데이터 값들 자체도 캡처되어도 된다).
추가로, 상기 시스템내에서 일어나는 특정한 이벤트들은, 이벤트 버스(60)를 거쳐 ETM(40)에 신호가 보내질 수 있다. 그 후, 이러한 이벤트들에 대한 정보는, ETM에서 생성한 추적 스트림내에도 포함될 수 있다.
당업자라면 알듯이, 추적 스트림내의 원하는 정보를 출력하는데 사용될 수 있는 메카니즘이 많이 있다. 일 구성 예에서는, 패킷 기반 메카니즘을 사용하여, 추적 스트림은 패킷들의 정보의 시리즈를 포함하고, 이때 진단장치는 내부에 갖는 추적 정보를 얻기 위해서 그 패킷들을 디코딩할 수 있다.
또한, 프로세서 코어의 액티비티들을 추적할 때, 실행 유닛(15)에 의한 상기 명령들의 실행동안에 특정한 시점에서 기억요소들 이를테면 레지스터들(20)에 보유된 데이터 값들을 샘플링하는데도 유용할 수 있다. 이것은, 필요에 따라 또한 필요시에 프로세서 코어에 의해 기동될 수 있다. 예컨대, 그것은, 특별한 명령들의 실행시, 또는 n번째 명령마다의 실행시 등에, 기동되어도 된다. 샘플링 유닛(45)(예컨대, 통계적 프로파일링 확장(SPE) 유닛)은, 상기와 같은 목적들을 위해 상기 코어(10)에 제공되고, 이때의 샘플링 유닛은, 프로세서 코어(10)로부터의 트리거를 수신하면, 하나 이상의 레지스터들(20)의 값을 샘플링하고, 제2 추적 스트림내의 샘플링된 데이터 값들을 출력하여, 샘플 버퍼(50)를 거쳐 라우팅되어도 되도록 배치되어 있다.
샘플링 유닛이 데이터 값들을 샘플링할 때마다, 이 샘플링 유닛은, ETM(40)이 그 추적 스트림내에서 샘플링 이벤트가 일어난 표시를 출력할 수 있도록, 이벤트 버스(60)상에서 샘플링 이벤트 표시를 ETM(40)에 발행할 것이다.
ETM의 추적 스트림내에서 개개의 샘플링 이벤트 표시와 제2 추적 스트림내의 대응한 샘플링된 데이터를, 일치시킬 수 있는 추적 스트림들의 양쪽을 진단장치에 의해 이후에 분석하는 것을 가능하게 한 메카니즘을 제공하는데 유용할 것이라는 것을 알 것이다. 그렇지만, 적어도 ETM(40)에서 생성한 추적 스트림은, 전형적으로 매우 대역폭이 제한된다. 특히, ETM은, 이미 상당한 양의 추적 정보를 출력중일 수도 있다. 그 결과, 상당한 공간을 소비할 ETM의 추적 스트림내에 정렬 정보를 포함하는 것이 바람직하지 않다.
일례로서, ETM의 추적 스트림내의 샘플링 이벤트들과 제2 추적 스트림에서의 대응한 샘플링된 데이터를 정렬하려고 하는 간단한 선택사항은, 격리시에 유일한 식별자, 예를 들면, 고해상도 타임 스탬프, 또는 단조적으로 증가하는 시퀀스 번호를 포함하는 것일 것이다. 해당 정보가 양쪽의 스트림내에 포함되면, 어느 샘플링 이벤트들이 제2 추적 스트림내의 샘플링된 데이터의 어느 블록에 대응하는지를 식별하는 간단한 처리다. 그렇지만, 이것은, 앞서 설명된 것처럼 전형적으로 대역폭이 제한되고, 또한 동일한 타임스탬프 소스를 사용하기 위해 ETM(40)과 샘플링 유닛(45) 양쪽에 관해 요구사항도 두는, ETM의 추적 스트림내에 무시할 수 없는 양의 공간을 소비한다. 사용된 타이머/카운터가 상기 코어에 내부에 있는 경우, 카운터 값은, 상기 코어와 추적유닛을 연결하는 상기 버스상에서 전파될 필요가 있을 것이다. 또한, 해당하는 이벤트들의 빈도가 높지 않은 경우에도, 추적 스트림이 여전히 대역폭이 제한될 것이고, 큰 이벤트 식별자 패킷을 삽입하는 것은 지장을 줄 수 있는, 예를 들면 추적 손실을 야기시킬 수 있는, 경우일 수 있다. 이에 따라, 요구된 정보를 제공하여 진단장치가 이후에 ETM추적 스트림에서의 개개의 추적 요소들과 제2 추적 스트림(50)에서의 대응한 샘플링된 데이터를 일치시키는 것을 가능하게 하는 보다 효율적인 대역폭 메카니즘을 제공하는 것이 바람직하다. 도시된 예들에서, 제2 추적 스트림은, 제1 추적 스트림만큼 제약된 대역폭은 아니고, 이에 따라, 유일한 식별자 정보를 수용 가능할 수도 있다. 그렇지만, 그 밖의 상황에서도 대역폭이 제한되어도 되고, 이에 따라, 정렬 정보를 식별하기 위해 제1 추적 스트림에 관해서 적용된 임의의 대역폭 축소 기술은 제2 추적 스트림에 관해서 적용되는 것이 바람직할 수도 있다.
여기서 설명된 예들에서, 대역폭 요구사항의 감소는, 제한된 수의 가능한 키 값들이 제공되게, 또 키 값이 ETM의 추적 스트림내의 각 샘플링 이벤트 표시와 관련되게, 구성함으로써 이루어진다. 그 키 값들은, 다양한 방식으로 얻어질 수 있다. 예컨대, 그 키 값들은, 임의의 내부 카운터들과 분리하여 연산하는 적절한 의사난수 발생 회로소자를 통해 발생되어도 되고, 이 경우에, 동일한 키 값들은 제2 추적 스트림내에도 포함될 수 있다. 다른 예에서, 키 발생 회로소자는, 내부 카운터의 현재 값을 입력으로서 사용하고, 해당 입력에 따라 키 값을 발생하여도 되고, 이 경우에, 내부 카운터 값이 연관된 키 값을 갖거나 갖지 않고 제2 추적 스트림으로 출력되어도 된다는 것이 가능하다. 제2 추적 스트림이 제1 추적 스트림내에 삽입되는 키 값들을 포함하지 않는 경우, 상기 진단장치에는, 진단장치가 제2 추적 스트림내에 포함되는 정보로부터 키 값들을 얻는 것을 가능하게 하기에 충분한 정보가 포함될 수 있다. 예컨대, 키 값들이 내부 카운터 값들에 따라 발생되고, 그 후 내부 카운터 값들이 상기 샘플링된 데이터와 관련지어 제2 추적 스트림내에 포함되는 경우, 진단장치에는, 내부 카운터 값들로부터 키 값들을 키 발생 회로소자에 의해 발생하는데 적용된 알고리즘에 대한 지식이 포함될 수 있고, 이에 따라 제2 추적 스트림내의 내부 카운터 값들의 분석으로부터 키 값들을 재작성할 수 있다.
결과적으로, 제1 추적 스트림은, 그것 자체가 제2 추적 스트림에서의 샘플링된 데이터의 대응한 블록과의 정렬의 결정을 용이하게 하는데 불충분한 작은 키 값을, 각 샘플링 이벤트와 관련지어 포함할 것이다. 그렇지만, 제2 추적 스트림도 키 값들을 직접 포함하거나, 진단장치가 키 값들을 결정하는 것을 가능하게 하는 정보를 포함한다. 이에 따라, 진단장치에서, 그 진단장치는, 제1 스트림내의 키 값들의 시리즈와, 제2 추적 스트림에 직접 존재하거나 제2 추적 스트림의 콘텐츠로부터 얻어진 키 값들의 시리즈를, 관찰할 수 있다. 시퀀스 매칭 연산을 사용함으로써, 각 스트림과 관련지어 다중 키 값들의 존재를 사용하여, ETM의 추적 스트림에서의 개개의 샘플링 이벤트들과 대응한 제2 추적 스트림에서의 샘플링된 데이터와의 직접 일치를 식별하는 것이 가능하다.
일 구성 예에서, 글로벌 타임스탬프 소스(55)는, 상기 시스템내에서, 그 시스템내의 다수의 구성요소들에 글로벌 타임스탬프를 출력하도록 구성될 수 있다. 본 기술은 샘플링 유닛(45)과 ETM(40)에 대해 특별한 관심이 있고, 이 구성요소들 모두는 글로벌 타임스탬프 정보를 상기 소스(55)로부터 수신하도록 배치될 수 있다. 주기적으로 및/또는 특정한 이벤트들의 발생시에, ETM(40)과 샘플링 유닛(45)은 그들의 각각의 추적 스트림들내에 글로벌 타임스탬프 정보를 포함하여도 된다. 반드시 동일한 글로벌 타임스탬프 값이 ETM(40) 또는 샘플링 유닛(45)에 의해 출력될 경우도, 반드시 글로벌 타임스탬프 값들이 2개의 상이한 추적 스트림내에서 제공되는 빈도가 동일할 경우도 아니라는 것을 주목해야 할 것이다. 그럼에도 불구하고, 글로벌 타임스탬프 정보의 제공에 의해, 진단장치는 그 2개의 추적 스트림간의 개략 정렬을 얻는 것이 가능하다. 해당 개략 정렬이 얻어졌다면, 상술한 시퀀스 매칭 기술들은, ETM의 추적 스트림내에 존재하는 키 값들의 시리즈와 제2 추적 스트림으로부터 결정된 키 값들의 시리즈와의 비교에 근거하여, 그 추적 스트림에서의 샘플링 이벤트와 제2 추적 스트림에서의 대응한 샘플링된 데이터와의 사이의 정확한 정렬을 가능하게 한다.
제1 추적 스트림내에서 샘플링 이벤트들과 관련지어 ETM(40)에 의해 포함될 키 값들을 발생하여 ETM에 제공할 수 있는 방식은 많이 있다. 그렇지만, 일 구성 예에서, 도 1에 개략적으로 도시된 것처럼, 이벤트 버스의 다중 비트들을 샘플링 유닛에서 사용하기 위해 유보할 수 있는 경우, 샘플링 유닛은, 키 발생 회로소자를 포함할 수 있고, 이벤트 버스상에서 ETM(40)에 송신하는 멀티비트 신호의 상이한 논제로 값들을 사용하여 샘플링 이벤트의 존재와 해당 샘플링 이벤트와 관련된 키 값과의 양쪽의 신호를 보낼 수 있다. 이것은, 제1 추적 스트림내에 포함하기 위해 ETM에 키 값을 제공하기 위한 매우 효율적인 메카니즘을 제공할 수 있다.
그렇지만, 이렇게 키 값 정보를 전파할 필요성이 없다는 것을 알 것이다. 예컨대, 다른 구성에 있어서, 1개의 경로는 샘플링 유닛에서 샘플링 이벤트의 존재를 ETM에 대해 식별하는데 사용될 수 있고, 전체적으로 별도의 경로는 연관된 키 값을 ETM(40)에 제공하는데 사용될 수 있다.
도 1에 도시된 제1 및 제2 추적 스트림이 진단장치에 직접 제공되어도 되지만, 그 추적 스트림들은 초기에 기억되고나서, 적절한 때에 진단장치에 의해 오프라인에서 분석되는 경우도 종종 있다. 예컨대, 제1 스트림과 제2 스트림 중 한쪽 또는 양쪽은, 진단장치에 의한 이후의 액세스를 위해 상기 메모리(30)내에 기억되어도 된다.
도 2는 일 구성 예에 따른 진단장치를 개략적으로 도시한 것이다. 이 진단장치는, 제1 및 제2 인터페이스(105, 110)를 갖되, 이 인터페이스를 통해 제1 및 제2 추적 스트림을 검색할 수 있다. 그 후, 분석 회로소자(115)는, 추적 스트림들을 주는 정보를 분석하도록 배치된다. 패킷 기반 메카니즘을 사용하여 추적 스트림을 이송한다고 가정하면, 상기 분석 회로소자는 초기의 단계로서, 그 추적 스트림 양쪽내에 포함된 개개의 추적 정보를 얻기 위해서 그 패킷들의 일부 디코딩을 행하여도 된다. 그 후, 분석 회로소자는, 프로세서 코어에서 행한 액티비티들을 확립하려고 하기 위해서 제1 추적 스트림을 분석하여도 된다. 이 처리에 도움이 되도록, 분석 회로소자(115)는, 예컨대 프로세서 코어에서 실행한 프로그램의 프로그램 화상을 포함하여도 되는 스토리지(120)를 참조할 수도 있다. 그 후, 프로그램 화상을 사용하여, 분석 회로소자는, 추적 스트림내에 포함된 명령 어드레스 정보에 근거하여, 상기 코어(10)에서 실행한 실제의 명령들을 식별 가능할 수도 있다.
또한, 분석 회로소자는, 시퀀스 매칭 기술들을 활용하여 제1 추적 스트림내에 존재하는 개개의 샘플링 이벤트들과 제2 추적 스트림내에 제공된 대응한 샘플링된 데이터와의 일치를 검출하기 위해서 정렬 연산을 행할 수 있다. 앞서 언급된 것처럼, 제2 추적 스트림이 제1 추적 스트림에 사용되어 있는 키 값들을 직접 포함하지 않는 경우, 키 발생기(125)는, 샘플링된 데이터의 각 블록과 관련지어 제2 추적 스트림내에 포함된 식별자 정보로부터 키 값들이 얻어지는 것을 가능하게 하는 분석 회로소자내에 설치되어도 된다. 앞서 설명된 것처럼, 식별자 정보는, 예를 들면, 내부 카운터 값을 포함할지도 모르고, 키 발생기(125)는 그 내부 카운터 값들로부터 원래의 키 값들을 발생하기 위해서 샘플링 유닛과 관련된 키 발생기에서 사용한 알고리즘을 알 것이고, 이에 따라 제2 추적 스트림과 연결지어 상기 분석 회로소자내에 국소적으로 키 값들을 재작성할 수 있다. 그 결과, 분석 회로소자는, 일정 기간에 제1 및 제2 추적 스트림의 리뷰를 통해, 상기 제1 스트림내의 키 값들의 시리즈와 상기 제2 스트림과 관련된 키 값들의 시리즈와의 양쪽을 개발하고 나서, 제1 스트림에서의 키 값들의 시퀀스와 제2 스트림에서의 키 값들의 시퀀스를 일치시키는 시퀀스 매칭 연산을 행하여서, 제1 추적 스트림에서의 추적 요소와 제2 추적 스트림에서의 대응한 추적 요소와의 사이의 정확한 정렬을 결정할 수 있다.
앞서 설명된 것처럼, 분석 회로소자가 그 2개의 스트림간의 개략 정렬을 확립하기 위해 사용할 수 있는 2개의 스트림내에 글로벌 타임스탬프 정보도 있을 것이고, 그 후 상술한 시퀀스 매칭 기술은 개략 정렬이 이루어졌으면, 정확한 정렬을 결정하기 위해서 이용된다.
도 3a는 사용되어도 되는 샘플링 유닛(45)의 제1 예를 도시한 것이다. 본 예에서는, 샘플링 유닛(45)이 내부 카운터(150)를 유지관리하는 것으로 한다. 이것은, 유일한 카운터 값들이 주목 일정 기간에 일어나는 이벤트들과 관련될 수 있는 것을 보장하도록 충분히 폭넓은 카운터이어도 된다. 제2 추적 스트림이 이러한 내부 카운터 값을 포함하기에 충분한 대역폭을 가질 수도 있지만, 제1 추적 스트림은 충분한 대역폭을 갖지 않는다. 대신에, 키 발생 회로소자는, 내부 카운터로부터 키 값을 얻기 위해서 해시 함수(155)를 구현할 수 있고, 그 후, 해당 키 값은 현재의 이벤트와 관련지어 제1 추적 스트림내에 포함될 수 있다. 해시 함수는, 다양한 형태를 취할 수 있지만, 일 실시예에서는, 의사랜덤 방식으로 비교적 작은 세트의 가능한 키 값들로부터 키 값을 생성할 수 있다. 적절한 해시 함수의 일례는 암호 해시 함수일 것이다. 원하는 경우, 키 값은, 내부 카운터 값 대신에, 또는 내부 카운터 값과 아울러, 제2 추적 스트림내에도 포함될 수 있다. 그 제2 스트림내에 키 값을 포함함으로써, 임의의 키 발생 기능성(125)이 상기 분석 회로소자내에 제공될 필요가 없다. 그렇지만, 그것은, 내부 카운터 값이 그 밖의 목적을 위해 분석 회로소자에 대해 유용한 정보를 계속 제공할 수 있고, 이에 따라 키 값이 포함되는 경우에도 제2 추적 스트림내에 계속 포함되어도 되는 경우이어도 된다.
실제로, 샘플링된 데이터의 블록마다, 다수의 부가의 정보도, 데이터가 샘플링되었던 시간에 상기 코어의 처리 액티비티에 대한 보충 정보를 제공하도록 제공되는 경우도 종종 있다. 그 샘플링된 데이터와 관련지어 포함되어도 되는 3개의 타입의 데이터의 예는, 타임 스탬프, 프로그램 카운터의 현재값, 및 데이터 액세스 동작에 관한 지연시간이 있지만, 이들은 예들에 지나지 않고 그 밖의 형태의 정보도 포함될 수 있다는 것을 알 것이다.
도 3a가 키 값들을 발생하는데 사용될 수 있는 1개의 해결방법을 도시한 것이지만, 내부 카운터로부터 키 값을 발생할 필요가 없고, 대신에, 전체적으로 별도의 메카니즘은 나중에 제1 및 제2 추적 스트림 양쪽에 포함되는 키 값들을 발생하도록 제공될 수 있다. 샘플링 유닛(45)이 필요에 따라 또한 필요할 경우 키 값들을 발생하기 위한 선형 피드백 시프트 레지스터(LFSR)(160)을 포함하는 일례가, 도 3b에 도시되어 있다. 그 후, 그 발생된 키 값들은, 샘플링된 데이터의 각 블록과 관련지어 제2 추적 스트림내에포함되고, 또한 대응한 샘플링 이벤트 표시와 관련지어 포함하기 위해 상기 ETM에 전송된다. 이와 같은 LFSR(160)은, 다시, 효과적으로 의사 랜덤인 키 값들을 생성할 수 있지만, 부가의 관심 특성, 즉 특별한 수 s의 키 값들의 값들이 반복하기 전에 발생될 키 값들의 수에 대한 보증(즉, 보증 주기성)도 구현할 수 있다. 예컨대, 최대길이 LFSR은, 반복하는 길이 bs-1의 키들의 시리즈를 생성하도록 사용될 수 있어, 임의의 주어진 길이 s의 시퀀스는 길이 bs-1의 시퀀스에서 한 번만 일어난다.
이것은, 키 값들의 시리즈(200)가 주기성 p(210)을 갖게 도시되어 있는 도 4a에 개략적으로 도시되어 있다. 개개의 키 값들(205)은 LFSR(160)에 의해 발생되지만, 키 값들의 특별한 시퀀스 사이즈 s를 고려할 때, 관찰된 값들의 특별한 시퀀스가 주기성 기간 p(210)내에서 반복되지 않도록 보장될 수 있다. 주기성 길이 p는, 고려중인 시퀀스 s에서의 키 값들의 수와, LFSR에서 발생할 수 있는 상이한 키 값들의 수와의 양쪽에 좌우될 것이다. 2개의 특정한 예들이 도 4b 및 4c에 도시되어 있다. 도 4b의 예에서는, LFSR이 이진 LFSR이고, 따라서 임의의 개개의 키 값이 단지 제로 또는 1일 수 있는 것으로 가정한다(즉, b는 2이다). 그렇지만, 매우 제한된 수의 상이한 키 값들을 고려해볼 때도, 합리적인 수의 샘플링 이벤트들이 글로벌 타임스탬프에 근거하여 각 개략 정렬 처리간에 관찰될 가능성이 높으면, 제1 추적 스트림에서의 개개의 요소와 제2 추적 스트림에서의 대응한 요소와의 사이의 정확한 일치를 얻는 것이 가능하다. 예컨대, 샘플링 이벤트의 적어도 8개의 인스턴스가 이후의 개략 정렬 처리간에 일어나는 것이 예상되면, 상대적으로 긴 주기성이 관찰될 수 있고, 특히 키 값들의 시퀀스는 255 키 샘플들이 발생되어 있을 때까지 반복되지 않을 것이다. 따라서, 키 값의 8개보다 많고 255미만의 인스턴스들이 관찰된다고 가정하면, 직접 정렬이 얻어질 수 있다.
도 4c는 가능한 키 값들이 3개, 즉 b=3인 다른 예를 도시한 것이다. 이것은, 이벤트 버스상에서 2개의 비트로 3개의 값의 신호를 보낼 수 있기 때문에, 관심 유스 케이스(use case)를 제공한다. 이러한 키 값들의 조합을 사용할 때, 단지 예로만, 3개의 키 값들만을 관찰할 때에도, 그 3개의 키 값들과 관련된 주기성이 26인, 즉 특별한 키 값들의 조합이 발생되는 26개의 키 값들마다 한 번 보일 뿐일 것이라는 것을 알 것이다. 26비트 시퀀스의 예는 완벽을 기하기 위해서 도 4c에도 도시되어 있다.
따라서, 예 2에 따라, 적어도 3개의 키 값들이 각 개략 정렬 처리간의 제1 추적 스트림내에서 관찰될 것이고 26미만의 키 샘플들이 관찰될 것이면, 제1 스트림에서의 개개의 요소들과 제2 스트림에서의 대응한 요소들과의 사이의 정확한 정렬이 진단장치에서 행한 시퀀스 매칭 처리에 의해 이루어질 수 있다는 것이 알려져 있다.
도 5a는, 이벤트 버스(60)상의 2비트를 사용하여, 샘플링 회로소자(45)가 샘플링 이벤트의 존재와 해당 샘플링 이벤트와 관련되는 키 값과의 양쪽을, ETM(40)에 대해 나타내는 것을 어떻게 가능하게 할 수 있는지를 도시한 것이다. 특히, 2개의 가능한 논제로 조합을 사용하여 3개의 상이한 키 값 1, 2 또는 3을 식별할 수 있고, 이때의 비트들의 각 조합은 샘플링 이벤트가 일어난 ETM에도 나타내는데 사용된다. 이것은, 샘플링 회로소자가 샘플링 이벤트가 일어난 ETM에 나타낼 뿐만 아니라, 사용될 키 값을 나타내기 위한 매우 효율적인 메카니즘을 제공한다.
도 5b는 이를 위해 이벤트 버스상의 3개의 비트가 사용되는 다른 구성을 도시한 것이다. 도 5b로부터, 7개의 상이한 키 값들을 샘플링 이벤트와 관련지어 나타낼 수 있을 가능성이 있다는 것을 알 것이다. 보다 많은 상이한 키 값들을 포함함으로써, 상기 주기성이 크게 증가될 수 있거나, 정확한 정렬이 보증될 수 있기 전에 요구된 시퀀스 사이즈 s가 감소될 수 있다.
또한, 도 5b에서 언급된 것처럼, 조합 "100"이 사용되지 않는 변형예를 제공하는 것이 가능하다. 이것은, 상기 장치내의 일부의 설정 가능성을 제공할 것이어서, 이벤트 버스의 3개의 비트는 6개의 키 값들이 제공되는 것을 가능하게 하도록 사용될 수 있거나, 대신에 단지 2비트는 3개의 키 값들이 식별되는 것을 가능하게 하는데 사용될 수 있다.
도 6a는 일 구성 예에서 사용되어도 되는 시퀀스 매칭 정렬처리를 개략적으로 도시한 것이다. 앞서 설명된 것처럼, 글로벌 타임스탬프 값들은, 특정한 시점에서 추적 스트림들의 양쪽에서 출력될 것이다. 글로벌 타임스탬프들은, 반드시 각 스트림내에서 동시에 발행되지 않을 것이므로, 약간 상이한 값들을 가질 수도 있다. 또한, 동일한 글로벌 타임스탬프 값이 양쪽의 스트림내에 포함되는 인스턴스들에서도, 일부 스큐가, 예를 들면 해당 글로벌 타임스탬프 값을 샘플링 유닛과 ETM에 전파하는데 걸린 시간으로 인해 일어날 가능성 있음에 따라서, 해당 인스턴스에서도 정확한 정렬이 글로벌 타임스탬프 값들을 비교함으로써 이루어질 수 없다. 그럼에도 불구하고, 진단장치는, 2개의 스트림내의 글로벌 타임스탬프 값들의 비교에 의해 근사 정렬(250)을 이룰 수 있다. 근사 정렬이 이루어졌으면, 상술한 시퀀스 매칭 처리는, 정확한 정렬을 이루는데 사용될 수 있다. 도 6a는 이것을, 키 값들이 3개의 가능한 값들, 즉 1, 2 또는 3을 갖는 상황에 대해 개략적으로 도시한 것이고, 특히 도 4c의 26비트 고정 시퀀스의 예가 되는 것으로 가정한다. 도 6a에 도시된 것처럼, 양쪽의 스트림에서의 키 값들을 사용하여, 정확한 정렬을 검출하는 것이 가능하다. 이러한 특별한 인스턴스에서 가정한 것은, 상기 값 2, 1 그후 3의 관찰에 의해 일치가 검출될 수 있다는 것이다. 실제로, 시퀀스 매칭 알고리즘은, 그 정렬을 결정하기 위해서, 양쪽의 스트림에서 이용가능한 키 값 전부를 이용할 것이다. 정확한 시퀀스 정렬을 위한 다수의 알고리즘 중 임의의 것(예컨대, Boyer-Moore, exact Smith-Waterman)이 이 처리를 위해 사용될 수 있다.
도 4a 내지 4c를 참조하여 앞서 설명된 해결방법을 사용할 때, s보다 많은 키 값들이 반복 근사 정렬 처리 사이에서 관찰되고 p미만의 키 값들이 관찰되면, 시퀀스 매칭 해결방법을 사용하여 직접 정렬이 이루어질 수 있을 것이 보증될 수 있다.
도 6b는 키 값들의 보다 많은 범용 의사 랜덤 시리즈를 사용할 때 원리상 일어날 수 있지만 실제로는 보다 많은 키 값들이 관찰되기 때문에 문제를 야기시키기 어려워지는 쟁점을 도시한 것이다. 특히, 보다 많은 범용 의사 랜덤 키 값 발생기들이 도 4a를 참조하여 설명된 주기성 특징을 보증할 수 없으므로, 반복적 근사 정렬간에 일어난 반복된 시퀀스들의 확률이 일부 있다. 이것은, 3개의 키 값만을 비교하는 경우, 특별한 주어진 예에 대해서, 연속적으로 2번 보이는 시퀀스 "1,2,3"으로 인한 정렬에 관해 모호성이 약간 있는 도 6b에서의 버블(265)에 의해 도시되어 있다. 그렇지만, 도시된 특별한 예에 대해서 또한, 버블(270)에 의해 도시된 것처럼, 이 모호성은 4개의 키 값들이 관찰되면 제거되는데, 그 이유는 "1,2,3,1" 값들의 시퀀스가 반복 근사 정렬 처리간에 반복되지 않기 때문이다.
도 7은 제1 추적 스트림에서의 요소와 제2 추적 스트림에서의 대응한 요소와의 사이의 정확한 정렬을 얻기 위해서, 진단장치(100)의 분석 회로소자(115)에 의해 행해질 수도 있는 분석 연산을 도시하는 흐름도이다. 단계 300에서는, 2개의 스트림 사이에서 근사 정렬이 이루어지는 것을 가능하게 하기에 충분한 글로벌 타임스탬프 동기화 정보를 취득한다. 그 후, 단계 305와 310에서는, 상기 제1 스트림과 상기 제2 스트림의 양쪽으로부터 키 값들의 시리즈를 결정한다. 그 후, 단계 320에서는, 제1 추적 스트림에서의 키 값들의 시퀀스와 제2 추적 스트림내에서의 키 값들의 시퀀스와의 사이의 일치를 검출하기 위해서, 키 값들의 2개의 시리즈를 사용하여, 시퀀스 매칭 연산을 적용한다. 시퀀스 매칭 연산을 구현하는데 적용될 수 있는 알고리즘은 많이 있다. 예컨대, 하나의 해결방법은, 상기 키들에 일치하는 정렬을 결정하기 위해 가능한 모든 후보 정렬들을 시도하려고 하는 것일 수도 있고, 임의의 타임스탬프 오더링 제약들을 위반하지 않는다. 예컨대, 이러한 해결방법에 있어서, 상기 근사 정렬 정보는, 시퀀스 매칭 연산 자체에 포함되어도 된다. 예컨대, 후보 정렬에 대해, 키 값들 1,2,3의 시퀀스가 그 밖의 스트림에서 키 값들 1,2,3의 대응한 시퀀스와 일치하지만, 타임스탬프 정보로부터 취득된 근사 정렬이, 그 스트림들 중 하나의 스트림에서의 키 값 1이 근사 정렬의 일측에서 발견되었고 나머지 값이 근사 정렬의 타측에서 발견된 것을 나타내면, 실제로 해당 인스턴스에서 일치가 없고, 알고리즘이 타임스탬프 오더링을 위반하지 않는 일치를 계속 찾을 것이라고, 결정될 수도 있다.
다른 알고리즘은, 타임 오더링을 먼저 위반하는 알고리즘들을 제거하고 나서, 키 값들의 시퀀스 양쪽을 일치시키는 정렬을 식별하기 위해서 나머지 후보 정렬들을 시도하려고 할 수 있음에 따라서, 상기 제1 스트림에서의 개개의 추적 요소들과 제2 스트림에서의 개개의 요소들과의 사이의 관련성을 직접 식별할 수도 있다.
상술한 기술들로부터, 비교적 작은 수의 별개의 키 값들의 이용에 의해, 시퀀스 매칭 기술들을 사용하여 하나의 추적 스트림내에 보이는 키 값들의 시퀀스를 분석하고, 구체적으로는 이 키 값들의 시퀀스와 나머지 추적 스트림에 대한 키 값들의 대응한 시퀀스를 일치시켜, 일 스트림에서의 추적 요소와 타 스트림에서의 대응한 추적 요소와의 사이의 정확한 일치를 취득할 수 있다는 것을 알 것이다. 일 구성 예에서, 2개의 스트림을 동기화하는 능력은, 상기 보여진 키 값들의 수의 기능, 키 값 발생 시퀀스의 주기성, 및 그 밖의 상관 정보, 예컨대 글로벌 타임스탬프 정보의 존재다. 상기 시스템이 이벤트들의 스트림을 동기화하는 능력에 영향을 미치기 위해 사용시에 여러가지로 조정할 수 있다는 것을 알 것이다. 예컨대, 글로벌 타임스탬프 정보가 포함되는 빈도가 증가될 수 있음에 따라서, 보다 자주 근사 정렬이 이루어질 수 있다. 다른 예로서, 키 발생 회로소자는, 원하는 경우(예컨대, 설계 집적화 시간에, 또는 동적으로), 예컨대, 상이한 주기성 특성들을 갖는 키 값들의 상이한 시퀀스들이 발생되게 하는, 설정 가능성의 정도를 구비할 수 있다.
본 출원에서, "...하도록 구성된"의 단어는, 장치의 요소가 상기 명시된 동작을 실시할 수 있는 구성을 갖는다는 것을 의미하는데 사용된다. 본 문맥에서, "구성"은, 하드웨어 또는 소프트웨어의 상호연결의 배치 또는 방식을 의미한다. 예를 들면, 상기 장치는 상기 명시된 동작을 제공하는 전용 하드웨어를 가져도 되거나, 프로세서 또는 다른 처리 디바이스는 그 기능을 행하도록 프로그래밍되어도 된다. "하도록 구성된"은, 상기 장치 요소가 임의의 방식으로 상기 명시된 동작을 제공하기 위해서 변경될 필요가 있다는 것을 암시하지는 않는다.
여기서는 본 발명의 실시예들을 첨부도면을 참조하여 상세히 설명하였지만, 본 발명은 구체적인 실시예들에 한정되지 않고, 첨부된 청구항에서 기재된 것과 같은 본 발명의 범위 및 사상으로부터 벗어나지 않고 당업자가 변경, 부가 및 수정을 여러 가지로 실시할 수 있다는 것을 알 수 있다. 예를 들면, 본 발명의 범위로부터 벗어나지 않고 종속항의 특징들과 독립항의 특징들을 여러 가지로 조합할 수 있다.

Claims (21)

  1. 제1 요소들로 이루어진 제1 스트림을 발생하는 제1 발생 회로소자;
    제2 요소들로 이루어진 제2 스트림을 발생하는 제2 발생 회로소자;
    - 상기 제1 발생 회로소자가 제2 스트림에서 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하도록 배치되고 -;
    제1 스트림내에 포함될 제1 요소의 인스턴스마다, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 발생하는 키 발생 회로소자를 구비하고;
    제1 발생 회로소자는 제1 요소의 인스턴스마다 그 연관 키 값을 제1 스트림내에 나타내도록 배치되어, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스에 대한 이후의 분석이, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 하고,
    상기 키 발생 회로소자는, 제1 스트림내의 키 값들의 시퀀스가 의사 랜덤인 의사난수 생성기이고,
    상기 키 발생 회로소자는, 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 그 세트로부터 키 값들을 발생하도록 배치되고, 여기서 p>s인, 장치.
  2. 제 1 항에 있어서,
    상기 제2 스트림은, 대응한 제1 요소에 대해 상기 키 발생 회로소자에서 발생한 연관 키 값의 결정을 가능하게 하기에 충분한 각 제2 요소와 관련지어 식별자 정보를 갖는, 장치.
  3. 제 2 항에 있어서,
    상기 식별자 정보를 구성하는 카운터 값을 발생하는 카운터 회로소자를 더 구비하고, 상기 키 발생 회로소자는 현재의 카운터 값으로부터 각 키 값을 발생하기 위해서 상기 카운터 회로소자에 결합되어 있는, 장치.
  4. 제 3 항에 있어서,
    상기 키 발생 회로소자는 대응한 키 값을 발생하기 위해서 해시 함수를 현재의 카운터 값에 적용하도록 배치되어 있는, 장치.
  5. 제 2 항에 있어서,
    상기 식별자 정보는 연관 키 값을 포함하는, 장치.
  6. 삭제
  7. 삭제
  8. 제 1 항에 있어서,
    p=bs-1
    여기서, b는 상기 세트에서의 키 값들의 수인, 장치.
  9. 제 1 항에 있어서,
    상기 키 발생 회로소자는, 선형 피드백 시프트 레지스터(LFSR)를 포함하는, 장치.
  10. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 제1 발생 회로소자와 상기 제2 발생 회로소자는, 제1 및 제2 스트림의 개략 정렬을 가능하게 하는 각각의 제1 및 제2 스트림내의 동기화 값을 주기적으로 발행하도록 배치되고, 키 값들의 시퀀스의 분석은 개략 정렬 후 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정확한 정렬을 가능하게 하는, 장치.
  11. 제 10 항에 있어서,
    상기 동기화 값에 근거한 제1 및 제2 스트림의 개략 정렬 후에, s 키 값들의 시퀀스가 제1 스트림에서 관찰되어 있으면, 정렬이 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이에서 이루어질 수 있는, 장치.
  12. 제 10 항에 있어서,
    상기 동기화 값은 글로벌 타임스탬프 값인, 장치.
  13. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    데이터 처리 연산들을 행하기 위해서 명령들의 시퀀스를 실행하는 처리 회로소자를 더 포함하고;
    상기 제1 발생 회로소자는, 제1 스트림으로서, 추적 요소들로 이루어진 제1 추적 스트림을 발생하는 제1 추적 발생 회로소자를 구성하고, 제1 추적 스트림에서의 추적 요소들은 적어도 제1 요소들을 포함하고;
    상기 제2 발생 회로소자는, 제2 스트림으로서, 추적 요소들로 이루어진 제2 추적 스트림을 발생하는 제2 추적 발생 회로소자를 구성하고, 제2 추적 스트림에서의 추적 요소들은 적어도 제2 요소들을 포함하는, 장치.
  14. 제 13 항에 있어서,
    상기 제2 추적 발생 회로소자는, 하나 이상의 기억요소들에 보유된 데이터를 샘플링하고 이 샘플링된 데이터를 제2 추적 스트림내의 제2 요소로서 출력하기 위해, 상기 처리 회로소자에 의해 기동된 샘플링 회로소자를 구비하고;
    상기 샘플링 회로소자는, 상기 제1 추적 발생 회로소자에 대해, 대응한 제1 요소로서, 데이터 샘플링 이벤트를 제1 추적 스트림내에 제공시키도록, 샘플링 회로소자가 그 데이터를 샘플링하게 기동될 때, 샘플링 이벤트 표시를 상기 제1 추적 발생 회로소자에 발행하도록 배치되어 있는, 장치.
  15. 제 14 항에 있어서,
    상기 제1 추적 발생 회로소자는 이벤트 버스에 결합되어 이벤트 표시들을 수신하는 것이고, 상기 샘플링 회로소자는 그 샘플링 이벤트 표시를 이벤트 버스상에서 상기 제1 추적 발생 회로소자에 발행하도록 배치되어 있는, 장치.
  16. 제 15 항에 있어서,
    상기 키 발생 회로소자는 상기 샘플링 회로소자와 관련되어 있고, 상기 샘플링 회로소자는 이벤트 버스의 복수의 비트를 사용하여, 샘플링 이벤트의 존재와 해당 샘플링 이벤트에 대한 키 값과의 양쪽을 식별하는 상기 제1 추적 발생 회로소자에, 이벤트 표시를 제공하도록 배치되어 있는, 장치.
  17. 제1 스트림의 요소들을 수신하는 제1 인터페이스;
    제2 스트림의 요소들을 수신하는 제2 인터페이스; 및
    제1 및 제2 스트림에 대한 정렬 연산을 행하는 분석 회로소자를 구비하는 진단장치로서,
    제1 스트림은, 제2 스트림에서의 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 요소를 갖고, 제1 요소의 각 인스턴스와 관련지어, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 제공하고;
    그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s이고,
    분석 회로소자는, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 결정하기 위해서, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석하도록 배치되어 있고,
    제1 스트림내의 키 값들의 시퀀스가 의사 랜덤인, 진단장치.
  18. 제 17 항에 있어서,
    상기 제2 스트림은 각 제2 요소와 관련지어 식별자 정보를 갖고, 상기 분석 회로소자는 그 식별자 정보를 사용하여 대응한 제1 요소에 사용된 연관 키 값을 결정하는, 진단장치.
  19. 제 18 항에 있어서,
    상기 식별자 정보는 카운터 회로소자에 의해 발생된 카운터 값을 포함하고, 상기 분석 회로소자는 카운터 값마다 연관 키 값을 발생하는 키 발생 회로소자를 포함하는, 진단장치.
  20. 다중 스트림의 요소들을 발생하는 장치의 작동방법으로서,
    제1 요소들로 이루어진 제1 스트림을 발생하는 단계;
    제2 요소들로 이루어진 제2 스트림을 발생하는 단계;
    제1 스트림의 발생시에, 제2 스트림에서 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 스트림에서의 제1 요소를 삽입하는 단계;
    제1 스트림내에 포함될 제1 요소의 인스턴스마다, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 발생하는 단계; 및
    제1 요소의 인스턴스마다 그 연관 키 값을 제1 스트림내에 나타내어, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스에 대한 이후의 분석이, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 가능하게 하는 단계를 포함하고,
    제1 스트림내의 키 값들의 시퀀스가 의사 랜덤이고,
    그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s인, 작동방법.
  21. 다중 스트림을 분석하는 진단장치의 작동방법으로서,
    제1 스트림의 요소들을 수신하는 단계;
    제2 스트림의 요소들을 수신하는 단계; 및
    제1 및 제2 스트림에 대한 정렬 연산을 행하는 단계를 포함하고;
    제1 스트림은, 제2 스트림에서의 대응한 제2 요소의 각 어커런스를 식별하기 위해 제1 요소를 갖고, 제1 요소의 각 인스턴스와 관련지어, 유일한 키 값들이 제1 요소의 인스턴스마다 발생되게 하기에 불충분한 일 세트의 키 값들로부터 결정된 연관 키 값을 제공하고;
    그 세트로부터 키 값들은 지정된 수 's'의 키 값들의 시퀀스가 'p' 키 값들이 발생된 후에만 반복하도록 발생되고, 여기서 p>s이고,
    상기 정렬 연산시에, 제1 스트림에서의 제1 요소와 제2 스트림에서의 대응한 제2 요소와의 사이의 정렬을 결정하기 위해서, 제1 스트림내의 제1 요소의 인스턴스들의 대응한 시퀀스와 관련된 키 값들의 시퀀스를 분석하는 것을 포함하고,
    제1 스트림내의 키 값들의 시퀀스가 의사 랜덤인, 작동방법.
KR1020207023268A 2018-01-30 2018-12-19 다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법 KR102658595B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1801494.4 2018-01-30
GB1801494.4A GB2570512B (en) 2018-01-30 2018-01-30 An apparatus and method for aligning corresponding elements in multiple streams of elements
PCT/GB2018/053679 WO2019150062A1 (en) 2018-01-30 2018-12-19 An apparatus and method for aligning corresponding elements in multiple streams of elements

Publications (2)

Publication Number Publication Date
KR20200108458A KR20200108458A (ko) 2020-09-18
KR102658595B1 true KR102658595B1 (ko) 2024-04-19

Family

ID=61558058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207023268A KR102658595B1 (ko) 2018-01-30 2018-12-19 다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법

Country Status (5)

Country Link
US (1) US11387995B2 (ko)
KR (1) KR102658595B1 (ko)
CN (1) CN111630499B (ko)
GB (1) GB2570512B (ko)
WO (1) WO2019150062A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229771A1 (en) * 2010-06-21 2014-08-14 Arm Limited Correlating trace data streams
US20140304810A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for protecting cluster systems from tcp syn attack

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7310749B2 (en) * 2002-12-17 2007-12-18 Texas Instruments Incorporated Apparatus and method for trace stream identification of a processor debug halt signal
GB2453174B (en) * 2007-09-28 2011-12-07 Advanced Risc Mach Ltd Techniques for generating a trace stream for a data processing apparatus
GB2481380B (en) * 2010-06-21 2018-05-16 Advanced Risc Mach Ltd Correlating trace data streams
US9910759B2 (en) * 2015-12-03 2018-03-06 Sap Se Logging framework and methods
JP6955676B2 (ja) * 2016-10-06 2021-10-27 日本電気株式会社 ログ分析方法、システムおよび記録媒体
GB2558955B (en) * 2017-01-24 2020-12-23 Advanced Risc Mach Ltd An apparatus and method for generating and processing a trace stream indicative of execution of predicated vector memory access instructions

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140229771A1 (en) * 2010-06-21 2014-08-14 Arm Limited Correlating trace data streams
US20140304810A1 (en) * 2013-04-06 2014-10-09 Citrix Systems, Inc. Systems and methods for protecting cluster systems from tcp syn attack

Also Published As

Publication number Publication date
US11387995B2 (en) 2022-07-12
GB2570512B (en) 2020-04-22
CN111630499B (zh) 2024-04-19
CN111630499A (zh) 2020-09-04
US20210083869A1 (en) 2021-03-18
KR20200108458A (ko) 2020-09-18
GB2570512A (en) 2019-07-31
WO2019150062A1 (en) 2019-08-08
GB201801494D0 (en) 2018-03-14

Similar Documents

Publication Publication Date Title
He et al. An evaluation study on log parsing and its use in log mining
KR101648235B1 (ko) 정합-데이터 보고 모듈을 갖는 패턴 인식 프로세서
US7673187B2 (en) Data processing apparatus and method for reducing trace bandwidth
US8296607B2 (en) Serialization module separating pipelined trace-worthy event and sync packet data
CN113366478A (zh) 利用独立存储的校验密钥实现对在区块链中维护的仪器测量数据进行审计
US7308658B2 (en) Method and apparatus for measuring test coverage
US10650145B2 (en) Method for testing computer program product
Zhou et al. KeySight: Troubleshooting programmable switches via scalable high-coverage behavior tracking
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
CN113536770B (zh) 基于人工智能的文本解析方法、装置、设备及存储介质
KR102658595B1 (ko) 다중 스트림의 요소들에서의 대응한 요소들의 정렬 장치 및 방법
US10891216B2 (en) Parallel data flow analysis processing to stage automated vulnerability research
US8234525B2 (en) Method and system for anomaly detection in software programs with reduced false negatives
Moreno et al. Non-intrusive runtime monitoring through power consumption to enforce safety and security properties in embedded systems
CN111859062A (zh) 一种基于dpdk的网络数据处理方法和装置
CN111737155B (zh) 一种芯片调试系统、方法、装置、设备及存储介质
GB2560749A (en) Trace data representation
US9148281B2 (en) Random number generation
Padaryan et al. Methods and software tools to support combined binary code analysis
Wei Automated Diagnosis of Scalability Losses in Parallel Applications
US7719996B2 (en) Encoding timestamps
CN114944997B (zh) 一种协议检测方法、协议检测装置和计算机可读存储介质
CN111078538B (zh) 基于jmh的规则自动化测试的方法
Tsai et al. Reverse engineering of dynamic parallel program behavior from execution traces
Nordhaug Gpu accelerated nids search

Legal Events

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