KR101738640B1 - 트레이스 데이터 압축 장치 및 방법 - Google Patents

트레이스 데이터 압축 장치 및 방법 Download PDF

Info

Publication number
KR101738640B1
KR101738640B1 KR1020110005141A KR20110005141A KR101738640B1 KR 101738640 B1 KR101738640 B1 KR 101738640B1 KR 1020110005141 A KR1020110005141 A KR 1020110005141A KR 20110005141 A KR20110005141 A KR 20110005141A KR 101738640 B1 KR101738640 B1 KR 101738640B1
Authority
KR
South Korea
Prior art keywords
trace data
function unit
unit
information
valid
Prior art date
Application number
KR1020110005141A
Other languages
English (en)
Other versions
KR20120083800A (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 KR1020110005141A priority Critical patent/KR101738640B1/ko
Priority to US13/177,823 priority patent/US9152422B2/en
Publication of KR20120083800A publication Critical patent/KR20120083800A/ko
Application granted granted Critical
Publication of KR101738640B1 publication Critical patent/KR101738640B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30072Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards

Abstract

생성되는 트레이스 데이터의 양을 줄일 수 있는 트레이스 데이터 압축 장치 및 방법이 제공된다. 본 발명의 일 양상에 따른 트레이스 데이터 압축 장치는, 재구성가능 프로세서에 포함된 각각의 펑션 유닛(function unit, FU)의 전체 트레이스 데이터(trace data)에서 실질적으로 의미있는 동작을 수행하는 펑션 유닛의 트레이스 데이터인 유효 트레이스 데이터를 검출하는 검출부, 및 검출된 유효 트레이스 데이터를 압축하는 압축부를 포함할 수 있다.

Description

트레이스 데이터 압축 장치 및 방법{Apparatus and method for compression of trace data}
재구성가능 아키텍처(reconfigurable architecture)의 트레이스 데이터(trace data) 수집 기술과 관련된다.
통상적으로, 재구성 가능 아키텍처(reconfigurable architecture)란 어떠한 작업을 수행하기 위한 컴퓨팅 장치의 하드웨어적 구성을 각각의 작업에 최적화되도록 변경할 수 있는 아키텍처를 의미한다.
어떠한 작업을 하드웨어적으로만 처리하면 고정된 하드웨어의 기능으로 인해 작업 내용에 약간의 변경이 가해지면 이를 효율적으로 처리하기가 어렵다. 또한, 어떠한 작업을 소프트웨어적으로만 처리하면 그 작업 내용에 맞도록 소프트웨어를 변경하여 처리하는 것이 가능하지만 하드웨어적 처리에 비해 속도가 늦다.
재구성 가능 아키텍처는 이러한 하드웨어/소프트웨어의 장점을 모두 만족시킬 수가 있다. 예컨대, 동일한 작업이 반복적으로 수행되는 디지털 신호 처리 분야에서는 이러한 재구성 가능 아키텍처가 많은 주목을 받고 있다.
재구성 가능 아키텍처의 종류는 여러 가지가 있는데 그 중 코어스 그레인 어레이(Coarse-Grained Array)가 대표적이다. 코어스 그레인 어레이는 여러 개의 펑션 유닛(function unit)으로 이루어진다. 그리고 펑션 유닛들 간의 연결 상태가 조절됨에 따라 어떤 작업에 최적화되는 것이 가능하다.
한편, 트레이스 데이터(trace data)란 어떤 프로세싱 유닛의 메모리 접근 정보가 될 수 있다. 그런데 코어스 그레인 어레이에 있어서, 각각의 펑션 유닛은 독립적으로 동작 가능하기 때문에 이러한 트레이스 데이터 역시 각 펑션 유닛 별로 생성된다. 따라서 펑션 유닛의 개수에 비례하여 트레이스 데이터의 양 또한 증가한다.
생성되는 트레이스 데이터의 양을 줄일 수 있는 트레이스 데이터 압축 장치 및 방법이 제공된다.
본 발명의 일 양상에 따른 트레이스 데이터 압축 장치는, 재구성가능 프로세서에 포함된 각각의 펑션 유닛(function unit, FU)의 전체 트레이스 데이터(trace data)에서 실질적으로 의미있는 동작을 수행하는 펑션 유닛의 트레이스 데이터인 유효 트레이스 데이터를 검출하는 검출부, 및 검출된 유효 트레이스 데이터를 압축하는 압축부를 포함할 수 있다.
본 발명의 일 양상에 따른 트레이스 데이터 압축 방법은, 재구성가능 프로세서에 포함된 각각의 펑션 유닛(function unit, FU)의 전체 트레이스 데이터(trace data)에서 실질적으로 의미있는 동작을 수행하는 펑션 유닛의 트레이스 데이터인 유효 트레이스 데이터를 검출하는 단계, 및 검출된 유효 트레이스 데이터를 압축하는 단계를 포함할 수 있다.
개시된 내용에 따르면, 실질적으로 유의미한 동작을 수행하지 아니한 펑션 유닛의 트레이스 데이터를 제외하고, 실질적으로 의미있는 동작을 수행한 펑션 유닛의 트레이스 데이터만 선별해서 압축을 수행하기 때문에, 생성되는 트레이스 데이터의 양을 줄일 수가 있다. 또한, 트레이스 데이터를 압축할 때, 관련된 추가 정보를 생성해서 함께 압축하기 때문에, 추후 재구성가능 프로세서를 효율적으로 디버깅할 수가 있다.
도 1은 본 발명의 일 실시예에 따른 재구성가능 프로세서를 도시한다.
도 2는 본 발명의 일 실시예에 따른 트레이스 데이터를 도시한다.
도 3은 본 발명의 일 실시예에 따른 트레이스 데이터 압축 장치를 도시한다.
도 4는 본 발명의 일 실시예에 따른 유효 트레이스 데이터를 도시한다.
도 5는 본 발명의 일 실시예에 따른 유효 트레이스 데이터 검출 방법을 도시한다.
도 6은 본 발명의 일 실시예에 따른 트레이스 데이터 압축 방법을 도시한다.
본 발명의 일 실시예에 따른 트레이스 데이터(trace data) 압축 장치 및 방법은 재구성가능 프로세서(reconfigurable processor)에 적용될 수 있다. 재구성가능 프로세서는 태스크 또는 인스트럭션을 독립적으로 처리할 수 있는 다수의 펑션 유닛(function unit)을 포함한다. 본 발명의 일 실시예에 따라 재구성가능 프로세서에 적용될 수 있는 트레이스 데이터 압축 장치 및 방법은 각각의 펑션 유닛에 대응되는 트레이스 데이터 중에서 유의미한 또는 유효한 트레이스 데이터만 선택적으로 압축을 하는 것이 가능하다.
이하, 첨부된 도면을 참조하여 본 발명의 실시를 위한 구체적인 예를 상세히 설명한다.
도 1은 본 발명의 일 실시예에 따른 재구성가능 프로세서를 도시한다.
도 1을 참조하면, 재구성가능 프로세서(100)는 처리부(101) 및 구성 메모리(102)를 포함할 수 있다.
처리부(101)는 다수의 펑션 유닛(예컨대, FU #0 ~ FU #15)을 포함한다. 각각의 FU #0 내지 FU #15는 태스크 또는 인스트럭션을 독립적으로 처리할 수 있다. 예컨대, 처리부(101)는 독립적으로 동작하는 FU #0 내지 FU #15를 통해 소정의 작업을 병렬적으로 처리하는 것이 가능하다. 각각의 FU #0 내지 FU #15는 산술/논리 연산을 수행하는 프로세싱 엘리먼트(processing element)와 연산 결과를 임시로 저장하는 레지스터 파일(register file)을 포함할 수 있다.
구성 메모리(102)는 처리부(101)의 구성 정보(configuration information)를 저장한다. 구성 정보는 각 펑션 유닛에 할당되는 인스트럭션 정보 및 펑션 유닛들 간의 연결 정보를 포함할 수 있다. 다시 말해, 구성 정보는 각 펑션 유닛에 할당되는 인스트럭션 및 펑션 유닛들 간의 연결 상태를 정의할 수 있다. 따라서 각 펑션 유닛에 매핑되는 인스트럭션 및 펑션 유닛들의 연결 상태는 구성 메모리(102)에 저장된 구성 정보에 따라 달라질 수 있다.
예를 들어, 프로그램 카운터(PC)가 제 1 구성 정보(110)를 가리키면 제 1 구성 정보(110)에 따라 FU #0에 인스트럭션 A가 매핑되고 FU #0의 출력이 FU #4의 입력과 연결될 수 있다. 그리고 프로그램 카운터(PC)가 제 2 구성 정보(120)를 가리키면 제 2 구성 정보(120)에 따라 FU #0에 인스트럭션 B가 매핑되고 FU #0의 출력이 FU #5의 입력과 연결될 수 있다.
이와 같이, 재구성가능 프로세서(100)는 프로그램 카운터의 값이 지시하는 구성 정보에 따라 처리부(101)의 구성을 특정한 작업에 최적화시켜서 그 작업을 수행하는 것이 가능하다.
또한, 재구성가능 프로세서(100)는 각각의 구성 정보 별로 트레이스 데이터를 생성할 수 있다. 트레이스 데이터는 각 펑션 유닛의 메모리 접근 정보가 될 수 있다. 예컨대, 트레이스 데이터는 각 펑션 유닛이 인스트럭션을 수행하기 위해 메모리의 어느 영역에 접근했는지 또는 그 영역의 어떤 데이터에 접근했는지 등을 나타낼 수 있다.
트레이스 데이터는 구성 메모리(102)에 대한 메모리 접근 정보와 구성 메모리(102)를 제외한 다른 메모리(미도시)에 대한 메모리 접근 정보를 모두 포함할 수 있다. 또한, 재구성가능 프로세서(100)가 코어스 그레인 어레이(coarse-grained arry, CGA)인 경우, CGA 인스트럭션 메모리 또는 CGA 데이터 메모리에 대한 접근 정보를 포함할 수도 있다. 나아가 재구성가능 프로세서(100)가 실행 모드로써 VLIW(very long instruction word) 모드 및 CGA 모드를 갖는 경우, 트레이스 데이터는 모드 전환시의 컨텍스트를 저장하는 중앙 레지스터 파일에 관한 접근 정보를 포함할 수도 있다.
도 2는 본 발명의 일 실시예에 따른 트레이스 데이터를 도시한다.
도 1 및 도 2를 참조하면, 트레이스 데이터는 재구성가능 프로세서(100)의 구성 정보 또는 실행 사이클마다 생성될 수 있다. 예를 들어, 프로그램 카운터(PC)가 제 1 구성 정보(110)에 대응되었을 때(예컨대, cycle 0), 첫 번째 트레이스 데이터 그룹(201)이 생성될 수 있다. 예컨대, 첫 번째 트레이스 데이터 그룹(201)의 TD #0는 FU #0의 트레이스 데이터가 될 수 있다. 마찬가지로 프로그램 카운터(PC)가 제 2 구성 정보(120)에 대응되었을 때(예컨대, cycle 1), 두 번째 트레이스 데이터 그룹(202)이 생성될 수 있다.
그런데 각 트레이스 데이터 그룹(201)(202)내에는 무의미한 트레이스 데이터가 존재할 수가 있다. 예컨대, cycle 0이 수행되는 동안 제 1 구성 정보(110)에 따라 FU #0이 NOP(no operation) 인스트럭션을 수행한 경우, FU #0의 트레이스 데이터인 TD #0는 불필요한 정보가 될 수 있다.
본 발명의 일 실시예에 따라, 트레이스 데이터 압축 장치는 전체 트레이스 데이터에서 동작 중인 펑션 유닛의 트레이스 데이터인 유효 트레이스 데이터만 선별해서 압축을 하는 것이 가능하다.
도 3은 본 발명의 일 실시예에 따른 트레이스 데이터 압축 장치를 도시한다.
도 1 및 도 3을 참조하면, 트레이스 데이터 압축 장치(300)는 검출부(301) 및 압축부(302)를 포함할 수 있다.
검출부(301)는 재구성가능 프로세서(100)에 포함된 각각의 펑션 유닛의 트레이스 데이터를 수신한다. 예컨대, 검출부(301)는 도 2와 같은 전체 트레이스 데이터를 수신할 수 있다.
또한, 검출부(301)는 수신된 전체 트레이스 데이터에서 실질적으로 유의미한 동작을 수행하는 펑션 유닛의 트레이스 데이터로 정의되는 유효 트레이스 데이터를 검출한다. 예컨대, 검출부(301)는 재구성가능 프로세서(100)의 각 실행 사이클 별로 동작 중인 펑션 유닛을 확인하고, 확인된 펑션 유닛에 대응되는 트레이스 데이터를 유효 트레이스 데이터로 검출할 수 있다.
실질적으로 유의미한 동작을 수행하는 펑션 유닛은 재구성가능 프로세서(100)의 컴파일러가 제공하는 스케줄 정보에 기초하여 확인될 수 있다. 컴파일러가 제공하는 스케줄 정보는 구성 정보 또는 실행 사이클 별로 각 펑션 유닛에 어떠한 인스트럭션이 매핑되는지를 나타낼 수 있다.
예컨대, 검출부(301)는 컴파일러가 제공하는 스케줄 정보에 따라 NOP가 매핑된 펑션 유닛 및/또는 predicate이 매핑된 펑션 유닛을 제외한 나머지 펑션 유닛을 실질적으로 유의미한 동작을 수행하는 펑션 유닛으로 결정할 수 있다. 다시 말해, 검출부(301)는 NOP가 매핑된 펑션 유닛의 트레이스 데이터를 제외한 나머지 트레이스 데이터 또는 predicate가 매핑된 펑션 유닛의 트레이스 데이터를 제외한 나머지 트레이스 데이터를 유효 트레이스 데이터로 검출하는 것이 가능하다.
본 실시예에 따라, NOP 및 predicate란 기능이 없는 인스트럭션을 의미한다. 예컨대, predicate은 소프트웨어 파이프라이닝(pipelining)의 커널(kernel) 단계 진입 전의 프롤로그(prologue) 단계 또는 커널 단계 종료 후의 에필로그(epilogue) 단계에서 사용되는 기능이 없는 인스트럭션이 될 수 있다. 그 밖에도 다양한 컴파일 정책에 따라 특별한 기능이 없는 인스트럭션이 펑션 유닛에 매핑되는 경우가 발생할 수 있는데, 검출부(301)는 컴파일러의 스케줄 정보를 참조해서 펑션 유닛에 매핑된 인스트럭션을 확인할 수 있다.
압축부(302)는 검출부(301)에 의해 검출된 유효 트레이스 데이터를 압축한다. 따라서 전체 트레이스 데이터에서 유효 트레이스 데이터만 선택적으로 압축되는 것이 가능하다. 압축부(302)는 재구성가능 프로세서(100)의 구성 정보 또는 실행 사이클 별로 유효 트레이스 데이터를 압축하여 압축된 트레이스 데이터를 생성할 수 있다.
또한, 압축부(302)는 유효 트레이스 데이터의 검출과 관련된 추가 정보를 생성하고, 생성된 추가 정보와 유효 트레이스 데이터를 함께 압축해서 압축 트레이스 데이터를 생성할 수 있다. 추가 정보는 재구성가능 프로세서의 프로그램 카운터 값, 동작 중인 펑션 유닛의 식별 정보, 동작 중이 아닌 펑션 유닛의 식별 정보, 재구성가능 프로세서의 컴파일러가 제공하는 스케줄 정보, 압축 유형 등을 포함할 수 있다. 예컨대, 추가 정보에 따라 특정한 트레이스 데이터가 어떤 구성 정보에 대응되는지, 실질적으로 유의미한 동작을 수행한 펑션 유닛은 어느 것인 것 등이 확인될 수 있다.
도 4는 본 발명의 일 실시예에 따른 유효 트레이스 데이터를 도시한다.
도 1, 도 3 및 도 4를 참조하면, 검출부(301)는 전체 트레이스 데이터 그룹(401)를 수신한다. 전체 트레이스 데이터 그룹(401)에는 실질적으로 특정 기능을 수행한 펑션 유닛의 트레이스 데이터와 아무런 기능을 수행하지 아니한 펑션 유닛의 트레이스 데이터가 혼재되어 있다.
또한, 검출부(301)는 재구성가능 프로세서(100)의 컴파일러로부터 스케줄 정보를 수신한다. 검출부(301)는 수신된 스케줄 정보를 참조하여 어떤 펑션 유닛에 NOP 또는 predicate이 매핑되어 있는지 확인한다. 만약, FU #2 내지 FU #13에 NOP가 매핑되어 있다면, 검출부(301)는 FU #2 내지 FU #13에 대응되는 트레이스 데이터인 TD #2 내지 TD #13을 불필요한 트레이스 데이터로 결정할 수 있다. 그리고 검출부(301)는 TD #2 내지 TD #13을 제외한 나머지 트레이스 데이터 TD #0, #1, #14, 및 #15를 유효 트레이스 데이터로 검출할 수 있다.
압축부(302)는 유효 트레이스 데이터들로 이루어진 유효 트레이스 데이터 그룹(402)을 압축해서 압축된 트레이스 데이터(403)를 생성한다.
압축부(302)에 의해 생성된 압축 트레이스 데이터(403)와 전체 트레이스 데이터 그룹(401)을 비교하면, 압축 트레이스 데이터(403)에는 실질적으로 특정한 기능을 수행한 펑션 유닛의 트레이스 데이터만 포함되어 있기 때문에 그 데이터의 양이 전체 트레이스 데이터 그룹(401)에 비해 감소되는 것을 알 수 있다.
도 5는 본 발명의 일 실시예에 따른 유효 트레이스 데이터 검출 방법을 도시한다.
도 5에서, 노드 n1 내지 n4는 인스트럭션 또는 인스트럭션에 의해 처리되는 데이터를 나타낼 수 있다. 예컨대, 인스트럭션 n1 이후에 인스트럭션 n1의 실행 결과를 이용하여 인스트럭션 n2 및 n3가 실행되고, 인스트럭션 n2 및 n3의 실행 결과를 이용하여 인스트럭션 n4가 실행되는 프로그램이 있다고 가정하자. 또한, 인스트럭션 n2와 n3는 병렬 관계에 있어서 동시에 실행되는 것이 가능하고, 전체 실행 과정은 2번 반복된다고 가정하자.
도 1, 도 3 및 도 5를 참조하면, 재구성가능 프로세서(100)의 프로그램 카운터(PC)가 1일 때, 구성 정보 #1이 로드되고, 파이프라이닝의 프롤로그 단계가 실행될 수 있다. 예컨대, 첫 번째 실행 사이클에서 FU #1은 노드 n1을 실행하는 것이 가능하다. 한편, 검출부(301)는 컴파일러의 스케줄 정보에 따라 FU #0 및 #2에 NOP가 매핑되고 FU #3에 predicate이 매핑되었음을 확인할 수 있다. 이에 따라 검출부(301)는 확인된 FU #0, #2, #3의 트레이스 데이터를 제외한 FU #1의 트레이스 데이터만 유효 트레이스 데이터로 검출할 수 있다.
또한, 재구성가능 프로세서(100)의 프로그램 카운터(PC)가 2일 때, 구성 정보 #2가 로드되고, 파이프라이닝의 커널 단계가 실행될 수 있다. 예컨대, 두 번째 실행 사이클에서 FU #1 및 #2는 각각 노드 n2 및 n3을 실행하는 것이 가능하다. 한편, 검출부(301)는 컴파일러의 스케줄 정보에 따라 FU #0 및 #3에 NOP가 매핑되었음을 확인할 수 있다. 이에 따라 검출부(301)는 확인된 FU #0 및 #3의 트레이스 데이터를 제외한 FU #1 및 #2의 트레이스 데이터만 유효 트레이스 데이터로 검출할 수 있다.
마찬가지로, 재구성가능 프로세서(100)의 프로그램 카운터(PC)가 3일 때, 구성 정보 #3이 로드되고, 파이프라이닝의 커널 단계가 실행될 수 있다. 예컨대, 세 번째 실행 사이클에서 FU #1은 두 번째 반복의 노드 n1(즉, iteration=1일때의 노드 n1)을 실행하고, FU #3은 첫 번째 반복의 노드 n4(즉, iteration=2일때의 노드 n4)를 실행하는 것이 가능하다. 또한, 검출부(301)는 컴파일러의 스케줄 정보에 따라 FU #0 및 #2에 NOP가 매핑되었음을 확인할 수 있다. 이에 따라 검출부(301)는 확인된 FU #0 및 #2의 트레이스 데이터를 제외한 FU #1 및 #3의 트레이스 데이터만 유효 트레이스 데이터로 검출할 수 있다.
도 6은 본 발명의 일 실시예에 따른 트레이스 데이터 압축 방법을 도시한다.
도 3 및 도 6을 참조하면, 트레이스 데이터 압축 장치(300)는 전체 트레이스 데이터에서 유효 트레이스 데이터를 검출한다(601). 예컨대, 검출부(301)가 도 5와 같이 스케줄 정보에 기초하여 NOP 또는 predicate가 할당된 펑션 유닛을 확인하고, 확인된 펑션 유닛을 제외한 나머지 펑션 유닛의 트레이스 데이터를 유효 트레이스 데이터로 검출하는 것이 가능하다.
유효 트레이스 데이터가 검출되면, 트레이스 데이터 압축 장치(300)는 검출된 유효 트레이스 데이터를 압축한다. 예컨대, 압축부(302)가 유효 트레이스 데이터의 검출과 관련된 추가 정보를 생성하고, 생성된 추가 정보와 유효 트레이스 데이터를 함께 압축해서 압축 트레이스 데이터를 생성하는 것이 가능하다.
이상에서 살펴본 것과 같이, 본 실시예에 따른 트레이스 데이터 압축 장치 및 방법에 의하면, 실질적으로 유의미한 동작을 수행하지 아니한 펑션 유닛의 트레이스 데이터를 제외하고, 실질적으로 의미있는 동작을 수행한 펑션 유닛의 트레이스 데이터만 선별해서 압축을 수행하기 때문에, 생성되는 트레이스 데이터의 양을 줄일 수가 있다.
또한, 트레이스 데이터를 압축할 때, 관련된 추가 정보를 생성해서 함께 압축하기 때문에, 추후 재구성가능 프로세서를 효율적으로 디버깅할 수가 있다.
한편, 본 발명의 실시 예들은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
나아가 전술한 실시 예들은 본 발명을 예시적으로 설명하기 위한 것으로 본 발명의 권리범위가 특정 실시 예에 한정되지 아니할 것이다.

Claims (13)

  1. 재구성가능 프로세서에 포함된 각각의 펑션 유닛(function unit, FU)의 전체 트레이스 데이터(trace data)에서 동작 중인 펑션 유닛에 대응되는 트레이스 데이터를 유효 트레이스 데이터로 검출하는 검출부; 및
    상기 검출된 유효 트레이스 데이터를 압축하는 압축부를 포함하고,
    상기 트레이스 데이터는,
    각 펑션 유닛에 할당되는 인스트럭션 정보 및 펑션 유닛들 간의 연결 정보를 포함하는 구성정보 별로 생성되며, 각 펑션 유닛의 메모리 접근 정보를 포함하는 트레이스 데이터 압축 장치.
  2. 제 1 항에 있어서, 상기 검출부는
    상기 재구성가능 프로세서의 컴파일러가 제공하는 스케줄 정보를 이용하여 전체 트레이스 데이터에서 상기 유효 트레이스 데이터를 검출하는 트레이스 데이터 압축 장치.
  3. 제 2 항에 있어서, 상기 스케줄 정보는
    NOP 명령어가 매핑된 펑션 유닛의 식별 정보 및 파이프라이닝을 위한 프레디킷(predicate) 명령어가 매핑된 펑션 유닛의 식별 정보 중 적어도 하나를 포함하는 트레이스 데이터 압축 장치.
  4. 제 1 항에 있어서, 상기 검출부는
    전체 펑션 유닛들 중에서 NOP 명령어가 매핑된 펑션 유닛을 확인하고, 확인된 펑션 유닛에 대응되는 트레이스 데이터를 제외한 나머지 트레이스 데이터를 상기 동작 중인 펑션 유닛의 트레이스 데이터로 검출하는 트레이스 데이터 압축 장치.
  5. 제 1 항에 있어서, 상기 검출부는
    전체 펑션 유닛들 중에서 파이프라이닝을 위한 프레디킷(predicate) 명령어가 매핑된 펑션 유닛을 확인하고, 확인된 펑션 유닛에 대응되는 트레이스 데이터를 제외한 나머지 트레이스 데이터를 상기 동작 중인 펑션 유닛의 트레이스 데이터로 검출하는 트레이스 데이터 압축 장치.
  6. 제 1 항에 있어서, 상기 압축부는
    상기 유효 트레이스 데이터의 검출과 관련된 추가 정보를 생성하고, 생성된 추가 정보와 상기 유효 트레이스 데이터를 함께 압축해서 압축 트레이스 데이터를 생성하는 트레이스 데이터 압축 장치.
  7. 제 6 항에 있어서, 상기 압축부는
    상기 재구성가능 프로세서의 구성 정보 또는 실행 사이클 별로 상기 압축 트레이스 데이터를 생성하는 트레이스 데이터 압축 장치.
  8. 제 6 항에 있어서, 상기 추가 정보는
    상기 재구성가능 프로세서의 프로그램 카운터 값, 동작 중인 펑션 유닛의 식별 정보, 동작 중이 아닌 펑션 유닛의 식별 정보, 상기 재구성가능 프로세서의 컴파일러가 제공하는 스케줄 정보, 압축 유형 중 적어도 하나를 포함하는 트레이스 데이터 압축 장치.
  9. 재구성가능 프로세서에 포함된 각각의 펑션 유닛(function unit, FU)의 전체 트레이스 데이터(trace data)에서 동작 중인 펑션 유닛에 대응되는 트레이스 데이터를 유효 트레이스 데이터로 검출하는 단계; 및
    상기 검출된 유효 트레이스 데이터를 압축하는 단계를 포함하고,
    상기 트레이스 데이터는,
    각 펑션 유닛에 할당되는 인스트럭션 정보 및 펑션 유닛들 간의 연결 정보를 포함하는 구성정보 별로 생성되며, 각 펑션 유닛의 메모리 접근 정보를 포함하는 트레이스 데이터 압축 방법.
  10. 제 9 항에 있어서, 상기 유효 트레이스 데이터를 검출하는 단계는
    상기 재구성가능 프로세서의 컴파일러가 제공하는 스케줄 정보를 이용하여 전체 트레이스 데이터에서 상기 유효 트레이스 데이터를 검출하는 트레이스 데이터 압축 방법.
  11. 제 9 항에 있어서, 상기 유효 트레이스 데이터를 검출하는 단계는
    전체 펑션 유닛들 중에서 NOP 명령어가 매핑된 펑션 유닛을 확인하고, 확인된 펑션 유닛에 대응되는 트레이스 데이터를 제외한 나머지 트레이스 데이터를 상기 동작 중인 펑션 유닛의 트레이스 데이터로 검출하는 트레이스 데이터 압축 방법.
  12. 제 9 항에 있어서, 상기 유효 트레이스 데이터를 검출하는 단계는
    전체 펑션 유닛들 중에서 파이프라이닝을 위한 프레디킷(predicate) 명령어가 매핑된 펑션 유닛을 확인하고, 확인된 펑션 유닛에 대응되는 트레이스 데이터를 제외한 나머지 트레이스 데이터를 상기 동작 중인 펑션 유닛의 트레이스 데이터로 검출하는 트레이스 데이터 압축 방법.
  13. 제 9 항에 있어서, 상기 유효 트레이스 데이터를 압축하는 단계는
    상기 유효 트레이스 데이터의 검출과 관련된 추가 정보를 생성하고, 생성된 추가 정보와 상기 유효 트레이스 데이터를 함께 압축해서 압축 트레이스 데이터를 생성하는 트레이스 데이터 압축 방법.
KR1020110005141A 2011-01-18 2011-01-18 트레이스 데이터 압축 장치 및 방법 KR101738640B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110005141A KR101738640B1 (ko) 2011-01-18 2011-01-18 트레이스 데이터 압축 장치 및 방법
US13/177,823 US9152422B2 (en) 2011-01-18 2011-07-07 Apparatus and method for compressing trace data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110005141A KR101738640B1 (ko) 2011-01-18 2011-01-18 트레이스 데이터 압축 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20120083800A KR20120083800A (ko) 2012-07-26
KR101738640B1 true KR101738640B1 (ko) 2017-05-24

Family

ID=46491649

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110005141A KR101738640B1 (ko) 2011-01-18 2011-01-18 트레이스 데이터 압축 장치 및 방법

Country Status (2)

Country Link
US (1) US9152422B2 (ko)
KR (1) KR101738640B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020123173A1 (en) * 2018-12-14 2020-06-18 Advanced Micro Devices, Inc. Lossy significance compression with lossy restoration

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130066402A (ko) * 2011-12-12 2013-06-20 삼성전자주식회사 트레이스 데이터 저장 장치 및 방법
KR101962248B1 (ko) * 2012-03-16 2019-03-27 삼성전자주식회사 재구성 가능 프로세서의 검증 지원 장치 및 방법
CN104035765B (zh) * 2014-05-22 2017-03-15 烽火通信科技股份有限公司 一种嵌入式系统上下文的分析方法
US9524227B2 (en) * 2014-07-09 2016-12-20 Intel Corporation Apparatuses and methods for generating a suppressed address trace
KR102247529B1 (ko) * 2016-09-06 2021-05-03 삼성전자주식회사 전자 장치, 재구성 가능 프로세서 및 그 제어 방법들
US9959194B1 (en) 2017-03-08 2018-05-01 Microsoft Technology Licensing, Llc Indexing a trace by insertion of memory snapshots for replay responsiveness
US9983978B1 (en) 2017-03-08 2018-05-29 Microsoft Technology Licensing, Llc Querying an indexed time-travel trace
US9934126B1 (en) 2017-03-08 2018-04-03 Microsoft Technology Licensing, Llc Indexing a trace by insertion of reverse lookup data structures
US9940369B1 (en) 2017-03-08 2018-04-10 Microsoft Technology Licensing, Llc Searching an indexed time-travel trace
US9934127B1 (en) 2017-03-08 2018-04-03 Microsoft Technology Licensing, Llc Indexing a trace by insertion of key frames for replay responsiveness
US10185645B2 (en) 2017-03-08 2019-01-22 Microsoft Technology Licensing, Llc Resource lifetime analysis using a time-travel trace
US10282274B2 (en) 2017-06-14 2019-05-07 Microsoft Technology Licensing, Llc Presenting differences between code entity invocations
US11070563B2 (en) * 2018-07-11 2021-07-20 International Business Machines Corporation Trace-based transaction validation and commitment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196197A1 (en) 2002-04-12 2003-10-16 Chen Fu Methods and systems for integrated scheduling and resource management for a compiler
US20060225050A1 (en) * 2001-04-30 2006-10-05 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3629181B2 (ja) * 2000-03-28 2005-03-16 Necマイクロシステム株式会社 プログラム開発支援装置
US6681353B1 (en) 2000-07-05 2004-01-20 Emc Corporation Methods and apparatus for obtaining a trace of a digital signal within a field programmable gate array device
JP3609794B2 (ja) * 2002-03-26 2005-01-12 株式会社東芝 トレースデータ圧縮装置、トレースデータ圧縮方法及びトレースデータ圧縮回路を内蔵したマイクロコンピュータ
US7159101B1 (en) * 2003-05-28 2007-01-02 Mips Technologies, Inc. System and method to trace high performance multi-issue processors
US7543186B2 (en) 2004-09-13 2009-06-02 Sigmatel, Inc. System and method for implementing software breakpoints
US7496902B2 (en) * 2005-03-17 2009-02-24 International Business Machines Corporation Data and instruction address compression
US8001427B2 (en) * 2005-05-16 2011-08-16 Texas Instruments Incorporated Method and system of indexing into trace data based on entries in a log buffer
US7886198B2 (en) * 2005-05-16 2011-02-08 Texas Instruments Incorporated Method and system of identifying overlays used by a program
US8037285B1 (en) * 2005-09-28 2011-10-11 Oracle America, Inc. Trace unit
US8069335B2 (en) * 2005-11-15 2011-11-29 Nxp B.V. Processing system and method for executing instructions
US8250542B1 (en) * 2006-01-03 2012-08-21 Altera Corporation Method and apparatus for performing trace data compression
KR20080076020A (ko) 2007-02-14 2008-08-20 주식회사 하이닉스반도체 프로그램 카운터
US7861070B2 (en) * 2008-06-12 2010-12-28 National Tsing Hua University Trace compression method for debug and trace interface wherein differences of register contents between logically adjacent registers are packed and increases of program counter addresses are categorized
US8176366B2 (en) * 2009-04-03 2012-05-08 Arm Limited Trace synchronization
US20110289485A1 (en) * 2010-05-21 2011-11-24 International Business Machines Corporation Software Trace Collection and Analysis Utilizing Direct Interthread Communication On A Network On Chip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060225050A1 (en) * 2001-04-30 2006-10-05 Mips Technologies, Inc. Dynamic selection of a compression algorithm for trace data
US20030196197A1 (en) 2002-04-12 2003-10-16 Chen Fu Methods and systems for integrated scheduling and resource management for a compiler

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020123173A1 (en) * 2018-12-14 2020-06-18 Advanced Micro Devices, Inc. Lossy significance compression with lossy restoration
US11342933B2 (en) 2018-12-14 2022-05-24 Advanced Micro Devices, Inc. Lossy significance compression with lossy restoration

Also Published As

Publication number Publication date
US9152422B2 (en) 2015-10-06
KR20120083800A (ko) 2012-07-26
US20120185675A1 (en) 2012-07-19

Similar Documents

Publication Publication Date Title
KR101738640B1 (ko) 트레이스 데이터 압축 장치 및 방법
Czajkowski et al. From OpenCL to high-performance hardware on FPGAs
EP2951681B1 (en) Solution to divergent branches in a simd core using hardware pointers
EP2680132B1 (en) Staged loop instructions
JP4489102B2 (ja) プロセッサ構造および応用の最適化のためのプロファイラ
US20160321039A1 (en) Technology mapping onto code fragments
JP2011096254A (ja) 乗累算演算を実行するための装置および方法
EP2951682B1 (en) Hardware and software solutions to divergent branches in a parallel pipeline
KR102013582B1 (ko) 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
US20130067196A1 (en) Vectorization of machine level scalar instructions in a computer program during execution of the computer program
Ferreira et al. A run-time modulo scheduling by using a binary translation mechanism
US9383981B2 (en) Method and apparatus of instruction scheduling using software pipelining
KR102174335B1 (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
KR20150041541A (ko) 프로세서의 디코더 검증을 위한 테스트 벤치 생성 방법 및 이를 위한 장치
KR101910934B1 (ko) 루프의 프롤로그 또는 에필로그의 비유효 연산을 처리하는 장치 및 방법
KR102168175B1 (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US9141498B2 (en) Method for verification of reconfigurable processor
Brandner et al. Worst-case execution time analysis of predicated architectures
CN117193861B (zh) 指令处理方法、装置、计算机设备和存储介质
So et al. Complementing software pipelining with software thread integration
Lozano et al. A deeply embedded processor for smart devices
KR102197071B1 (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
Yuan et al. A new multithreaded architecture supporting direct execution of Esterel
Di Biagio et al. Architecture Optimization of Application-Specific Implicit Instructions
Donati et al. A New Space Digital Signal Processor Design

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