1 |
1
삭제
|
2 |
2
기 설정된 태그 전파 규칙을 이용하여 정보흐름 추적장치가 정보흐름을 추적하는 방법에 있어서,상기 정보흐름 추적장치는, 조건 분기를 포함하는 블록에 프로그램카운터태그를 스택에 입력하는 푸쉬 명령을 삽입하는 단계; 상기 조건 분기에 의한 모든 제어 흐름이 통과하는 블록에 프로그램카운터태그를 상기 스택에서 꺼내는 팝명령을 삽입하는 단계; 및상기 푸쉬명령 및 상기 팝명령이 삽입된 프로그램 코드의 실행시, 상기 태그 전파 규칙을 이용하여 정보흐름을 추적하는 단계;를 포함하고,조건 분기를 포함하는 조건 블록과 상기 조건 블록의 조건 분기에 의한 모든 제어 흐름이 통과하는 첫 번째 블록인 초기 포스트-도미네이터를 파악하는 단계;상기 초기 포스트-도미네이터에 도달하기 전에 상기 조건 블록으로부터 도달할 수 있는 모든 블록의 집합을 구하는 단계;상기 초기 포스트-도미네이터에 도달하는 경로 중 상기 조건 블록을 지나지 않는 경로를 파악하는 단계; 및상기 조건 블록을 지나지 않는 경로에서 상기 집합에 속하는 첫 번째 블록과 그 전 블록 사이에서 프로그램카운터태그를 상기 스택에 입력하는 더미 푸쉬 명령을 삽입하는 단계;를 상기 정보흐름을 추적하는 단계 전에 더 포함하는 것을 특징으로 하는 정보흐름 추적방법
|
3 |
3
기 설정된 태그 전파 규칙을 이용하여 정보흐름 추적장치가 정보흐름을 추적하는 방법에 있어서,상기 정보흐름 추적장치는, 조건 분기를 포함하는 블록에 프로그램카운터태그를 스택에 입력하는 푸쉬 명령을 삽입하는 단계; 상기 조건 분기에 의한 모든 제어 흐름이 통과하는 블록에 프로그램카운터태그를 상기 스택에서 꺼내는 팝명령을 삽입하는 단계; 및상기 푸쉬명령 및 상기 팝명령이 삽입된 프로그램 코드의 실행시, 상기 태그 전파 규칙을 이용하여 정보흐름을 추적하는 단계;를 포함하고, 프로그램 코드 내 루프의 프리헤더에 푸쉬명령을 삽입하는 단계; 및상기 루프 내의 모든 제어 흐름이 통과하는 블록에 팝명령을 삽입하는 단계;를 상기 정보흐름을 추적하는 단계 전에 더 포함하는 것을 특징으로 하는 정보흐름 추적방법
|
4 |
4
기 설정된 태그 전파 규칙을 이용하여 정보흐름 추적장치가 정보흐름을 추적하는 방법에 있어서,상기 정보흐름 추적장치는, 조건 분기를 포함하는 블록에 프로그램카운터태그를 스택에 입력하는 푸쉬 명령을 삽입하는 단계; 상기 조건 분기에 의한 모든 제어 흐름이 통과하는 블록에 프로그램카운터태그를 상기 스택에서 꺼내는 팝명령을 삽입하는 단계; 및상기 푸쉬명령 및 상기 팝명령이 삽입된 프로그램 코드의 실행시, 상기 태그 전파 규칙을 이용하여 정보흐름을 추적하는 단계;를 포함하고,레지스터를 정의하는 정의 블록, 레지스터를 정의하는 블록으로부터 도달가능한 경유 블록을 파악하는 단계; 및조건 블록부터 깊이-우선 방법으로 다음 블록을 탐색하면서, 상기 경유 블록을 만나면 레지스터 태그를 설정하는 명령을 삽입하는 단계;를 상기 정보흐름을 추적하는 단계 전에 더 포함하는 것을 특징으로 하는 정보흐름 추적방법
|
5 |
5
삭제
|
6 |
6
프로세서의 코어디버그인터페이스를 통해 분기의 목적지 주소를 포함하는 추적 정보를 선별하여 수신하는 필터;상기 필터를 통해 선별된 정보를 저장하는 버퍼; 및프로그램 코드의 분기 조건을 포함하는 블록 및 상기 분기 조건에 의한 모든 제어 흐름이 통과하는 블록에 각각 위치한 푸쉬명령 및 팝명령에 따라 프로그램카운터태그를 스택에 푸쉬 또는 팝하고, 태그 전파 규칙에 따라 상기 프로그램카운터태그를 이용하여 레지스터 태그 또는 메모리 태그를 설정하는 태그계산부;를 포함하고,상기 태그계산부는,각 레지스터태그, 프로그램카운터태그, 조건 코드 레지스터 태그를 포함하는 태그레지스터파일;프로그램카운터태그를 저장하는 스택;코어디버그인터페이스를 통해 수신한 목적지 주소에 해당하는 호스트 코드를 기초로 태그 전파 규칙을 파악하고, 호스트 코드의 푸쉬/팝 명령에 따라 상기 프로그램카운터태그를 스택에 푸쉬 또는 팝하고, 태그 전파 규칙에 따라 상기 태그레지스터파일의 각종 태그 또는 메인메모리에 위치한 메모리태그를 설정하는 디코더;를 포함하는 것을 특징으로 하는 정보흐름추적장치
|
7 |
7
프로세서의 코어디버그인터페이스를 통해 분기의 목적지 주소를 포함하는 추적 정보를 선별하여 수신하는 필터;상기 필터를 통해 선별된 정보를 저장하는 버퍼; 및프로그램 코드의 분기 조건을 포함하는 블록 및 상기 분기 조건에 의한 모든 제어 흐름이 통과하는 블록에 각각 위치한 푸쉬명령 및 팝명령에 따라 프로그램카운터태그를 스택에 푸쉬 또는 팝하고, 태그 전파 규칙에 따라 상기 프로그램카운터태그를 이용하여 레지스터 태그 또는 메모리 태그를 설정하는 태그계산부;를 포함하고,논리주소를 물리주소의 맵핑정보를 저장하는 주소변환테이블; 및코어디버그인터페이스를 통해 수신한 주소를 상기 주소변환테이블을 이용하여 물리주소로 변환하고, 변환된 물리주소를 이용하여 해당하는 호스트 코드를 읽는 명령페치부;를 더 포함하는 것을 특징으로 하는 정보흐름추적장치
|
8 |
8
제 6항 또는 제 7항에 있어서, 상기 프로그램 코드는, 조건 분기를 포함하는 블록에 프로그램카운터태그를 스택에 입력하는 푸쉬 명령을 포함하고, 상기 조건 분기에 의한 모든 제어 흐름이 통과하는 블록에 프로그램카운터태그를 상기 스택에서 꺼내는 팝명령을 포함하는 것을 특징으로 하는 정보흐름추적장치
|
9 |
9
제 2항 내지 제 4항 중 어느 한 항에 기재된 방법을 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
|