1 |
1
멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치에 의해 수행되는 동적 바이너리 인스트루멘테이션 방법에 있어서, 대상 프로그램을 실행하는 실행 코어에 브레이크 포인트를 설정하는 단계, 상기 브레이크 포인트에 진입하여 디버그 이벤트를 발생한 상기 실행 코어로부터, 상기 디버그 이벤트를 수신하는 단계, 상기 디버그 이벤트가 발생한 상기 브레이크 포인트를 확인하고, 상기 브레이크 포인트에 상응하는 인스트루멘트 코드를 실행하는 단계, 상기 인스트루멘트 코드의 실행 결과를 저장하는 단계, 그리고 다음 코드 블록에 상기 브레이크 포인트를 설정하고, 상기 실행 코어를 재실행하는 단계를 포함하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
2 |
2
제1항에 있어서, 상기 인스트루멘트 코드를 실행하는 단계는, 상기 실행 코어가 진입한 상기 브레이크 포인트에 상응하는 상기 인스트루멘트 코드를 검색하는 단계, 그리고 검색된 상기 인스트루멘트 코드를 메모리에 탑재하여 실행하는 단계를 포함하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
3 |
3
제2항에 있어서, 상기 인스트루멘트 코드의 실행 결과를 저장하는 단계는, 실행코어 컨텍스트 읽기 명령, 인스트럭션 송신 명령, 인스트럭션 실행 명령 중 적어도 어느 하나에 대한 응답인 실행코어 컨텍스트 값 및 인스트럭션 실행 결과 중 적어도 어느 하나를 수집하여 저장하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
4 |
4
제3항에 있어서, 상기 인스트루멘트 코드의 실행 결과를 저장하는 단계는, 상기 실행 코어가 진입한 상기 브레이크 포인트의 정보, 상기 브레이크 포인트의 개수, 상기 브레이크 포인트의 설정 여부 및 상기 브레이크 포인트의 설정값 중 적어도 어느 하나를 포함하는 상기 브레이크 포인트의 상태 정보를 수신하여 저장하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
5 |
5
제4항에 있어서, 상기 다음 코드 블록에 상기 브레이크 포인트를 설정하고, 상기 실행 코어를 재실행하는 단계는, 상기 브레이크 포인트의 상태 정보 및 상기 메모리 중 적어도 어느 하나를 기반으로, 상기 다음 코드 블록의 위치를 계산하는 단계, 상기 인스트루멘트 코드를 실행한 현재의 상기 브레이크 포인트를 해제하는 단계, 상기 다음 코드 블록의 위치를 기반으로 상기 다음 코드 블록에 상기 브레이크 포인트를 설정하는 단계를 포함하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
6 |
6
제1항에 있어서, 상기 코드 블록은, 기본 블록 단위, 인스트럭션 단위, 함수 단위 및 이미지 단위 중 적어도 어느 하나인 인스트루멘트 단위인 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
7 |
7
제1항에 있어서, 상기 디버그 이벤트 발생 시, 상기 실행 코어를 정지 모드(Halt mode)로 전환하는 단계, 그리고 상기 다음 코드 블록에 상기 브레이크 포인트를 설정한 후, 상기 실행 코어를 정상 모드(Normal mode)로 전환하여 상기 실행 코어를 재실행하는 단계를 더 포함하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
8 |
8
제7항에 있어서, 상기 대상 프로그램의 마지막 코드를 실행할 때까지, 상기 다음 코드 블록에 상기 브레이크 포인트를 설정한 후 상기 실행 코어를 재실행하는 단계를 반복하여 수행하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
9 |
9
제1항에 있어서, 상기 브레이크 포인트를 설정하는 단계는, 상기 실행 코어에 하나 이상의 하드웨어 브레이크 포인트를 설정하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 방법
|
10 |
10
대상 프로그램을 실행하는 실행 코어에 브레이크 포인트를 설정하고, 상기 브레이크 포인트에 진입하여 디버그 이벤트를 발생한 상기 실행 코어로부터, 상기 디버그 이벤트를 수신하는 실행 코어 제어부, 그리고 상기 디버그 이벤트가 발생한 상기 브레이크 포인트를 확인하고, 상기 브레이크 포인트에 상응하는 인스트루멘트 코드를 실행하며, 상기 인스트루멘트 코드의 실행 결과를 저장하고, 다음 코드 블록에 상기 브레이크 포인트를 설정하며, 상기 실행 코어를 재실행하는 인스트루멘트 실행부를 포함하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
11 |
11
제10항에 있어서, 상기 인스트루멘트 실행부는, 상기 실행 코어가 진입한 상기 브레이크 포인트에 상응하는 상기 인스트루멘트 코드를 검색하는 인스트루멘트 코드 검색 모듈, 그리고 검색된 상기 인스트루멘트 코드를 메모리에 탑재하여 실행하는 인스트루멘트 코드 실행 모듈을 포함하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
12 |
12
제11항에 있어서, 상기 인스트루멘트 코드 실행 모듈은, 실행코어 컨텍스트 읽기 명령, 인스트럭션 송신 명령, 인스트럭션 실행 명령 중 적어도 어느 하나에 대한 응답인 실행코어 컨텍스트 값 및 인스트럭션 실행 결과 중 적어도 어느 하나를 수집하여 저장하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
13 |
13
제12항에 있어서, 상기 인스트루멘트 실행부는, 상기 실행 코어가 진입한 상기 브레이크 포인트의 정보, 상기 브레이크 포인트의 개수, 상기 브레이크 포인트의 설정 여부 및 상기 브레이크 포인트의 설정값 중 적어도 어느 하나를 포함하는 상기 브레이크 포인트의 상태 정보를 수신하여 저장하는 코드 블록 제어 모듈을 더 포함하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
14 |
14
제13항에 있어서, 상기 코드 블록 제어 모듈은, 상기 브레이크 포인트의 상태 정보 및 상기 메모리 중 적어도 어느 하나를 기반으로 상기 다음 코드 블록의 위치를 계산하고, 상기 인스트루멘트 코드를 실행한 현재의 상기 브레이크 포인트를 해제하며, 상기 다음 코드 블록의 위치를 기반으로 상기 다음 코드 블록에 상기 브레이크 포인트를 설정하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
15 |
15
제10항에 있어서, 상기 코드 블록은, 기본 블록 단위, 인스트럭션 단위, 함수 단위 및 이미지 단위 중 적어도 어느 하나인 인스트루멘트 단위인 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
16 |
16
제10항에 있어서, 상기 실행 코어 제어부는, 상기 디버그 이벤트 발생 시 상기 실행 코어를 정지 모드(Halt mode)로 전환하고, 상기 다음 코드 블록에 상기 브레이크 포인트를 설정한 후, 상기 실행 코어를 정상 모드(Normal mode)로 전환하여 상기 실행 코어를 재실행하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
17 |
17
제16항에 있어서, 상기 실행 코어 제어부는, 상기 대상 프로그램의 마지막 코드를 실행할 때까지, 상기 다음 코드 블록에 상기 브레이크 포인트를 설정한 후 상기 실행 코어를 재실행하는 과정을 반복하여 수행하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
18 |
18
제10항에 있어서, 상기 실행 코어에는 하나 이상의 하드웨어 브레이크 포인트가 설정되는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
19 |
19
복수의 코어들 중에서 대상 프로그램을 실행하는 실행 코어에 브레이크 포인트를 설정하고, 상기 실행 코어의 온 칩 디버그 로직을 이용하여, 상기 브레이크 포인트에 진입하여 디버그 이벤트를 발생한 상기 실행 코어로부터 상기 디버그 이벤트를 수신하는 실행 코어 제어부, 상기 디버그 이벤트가 발생한 상기 브레이크 포인트에 상응하는 인스트루멘트 코드를 검색하는 인스트루멘트 코드 검색부, 검색된 상기 인스트루멘트 코드를 실행하고, 상기 인스트루멘트 코드의 실행 결과를 저장하는 인스트루멘트 코드 실행부, 그리고 다음 코드 블록의 위치를 계산하고, 상기 다음 코드 블록에 상기 브레이크 포인트를 설정하는 코드 블록 제어부를 포함하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|
20 |
20
제19항에 있어서, 상기 실행 코어 제어부는, 상기 실행 코어가 상기 브레이크 포인트에 진입한 경우 상기 실행 코어를 정지 모드(Halt mode)로 전환하고, 인스트루멘트 코어에서 상기 브레이크 포인트에 상응하는 상기 인스트루멘트 코드를 실행하며, 상기 인스트루멘트 코드의 실행을 종료한 후 상기 실행 코어를 정상 모드(Normal mode)로 전환하는 것을 특징으로 하는 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치
|