KR101102530B1 - 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법 - Google Patents

조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법 Download PDF

Info

Publication number
KR101102530B1
KR101102530B1 KR1020090110617A KR20090110617A KR101102530B1 KR 101102530 B1 KR101102530 B1 KR 101102530B1 KR 1020090110617 A KR1020090110617 A KR 1020090110617A KR 20090110617 A KR20090110617 A KR 20090110617A KR 101102530 B1 KR101102530 B1 KR 101102530B1
Authority
KR
South Korea
Prior art keywords
cache
layout
simulation
cache simulation
fields
Prior art date
Application number
KR1020090110617A
Other languages
English (en)
Other versions
KR20110054103A (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 KR1020090110617A priority Critical patent/KR101102530B1/ko
Publication of KR20110054103A publication Critical patent/KR20110054103A/ko
Application granted granted Critical
Publication of KR101102530B1 publication Critical patent/KR101102530B1/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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44557Code layout in executable memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법에 관한 것으로서, 타겟 구조체 판별과 타겟 구조체를 접근하는 메모리 주소들을 추출하는 프로파일링 (a) 단계; 타겟 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과와 오버헤드를 추정하여 가장 좋은 성능을 갖는 레이아웃을 도출하는 캐쉬 시뮬레이션 (b) 단계; 및 프로그램내의 구조체를 재배치된 레이아웃으로 자동 변환하는 구조체 재배치 변환 (c) 단계; 를 포함한다.
상기와 같은 본 발명에 따르면, 모드 재배치 가능한 레이아웃에 대해 캐쉬 성능 및 명령어 오버헤드를 함께 비교함과 아울러, 캐쉬 시뮬레이션을 모든 재배치 가능한 레이아웃에 대해 수행하지 않고 부분집합에 대해서만 수행함으로써, 캐쉬 시뮬레이션 시간을 획기적으로 단축시키고, 명령어 오버헤드를 최소화시키는 효과가 있다.
동적 메모리 할당, 구조체 재배치, 조합적 캐쉬 시뮬레이션

Description

조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법{A METHOD FOR REASSIGNING STRUCTURE REORGANIZATION USING COMPOSITION-BASED CACHE SIMULATION}
본 발명은 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법에 관한 것으로서, 더욱 상세하게는 구조체의 메모리 레이아웃을 캐쉬 성능에 따라 재배치하되, 각 구조체의 필드들에 대한 캐쉬 시뮬레이션 수행결과에 따라 재배치함으로써, 캐쉬 성능을 향상시키고 재배치에 따른 명령어 오버헤드를 최소화하는 기술에 관한 것이다.
일반적으로 구조체의 연결 리스트는 도 1 에 도시된 바와 같이, 구조체의 key 필드값을 비교하여 일치할 경우 data 필드값을 리턴하고, key 필드값을 비교하여 일치하지 않을 경우 next 필드값을 통해 다음 구조체로 넘어가게 된다.
이러한, 구조체 연결은 도 2 에 도시된 바와 같이, 풀 메모리라는 큰 메모리를 먼저 할당한 후 Node 구조체 인스턴스를 연속적으로 할당하는 방법(a)과, 한 인스턴스의 다른 필드들을 고정 간격을 띄며 할당하여 같은 필드들을 연속적으로 할당하여 잘 쓰이지 않는 필드를 분리시켜주는 방법(b)이 있으며, 이를 좀 더 개선시 켜 서로 같이 접근되는 필드들을 같이 연속적으로 할당하여 캐쉬 지역성을 더 높이지만 대신 필드를 접근할 때 명령어 오버헤드가 발생한다는 단점이 있는 방법(c)이 있다.
서로 같이 접근되는 필드들을 알아내기 위해 기존 기술은 필드간 자주 사용되는 정도를 그래프로 표현하는 필드 친밀도 그래프(Field Affinity Graph)를 사용하였다.
도 3 에 도시된 바와 같이 필드들이 사용될 때 캐쉬 라인 사이즈만큼의 윈도우 구간 안에서 필드들 사이에 얼마나 같이 사용되는지(친밀도)를 그래프에서 에지(edge)의 수치로 나타내어 각 필드들 사이의 친밀도를 표현하는 것이다. 도 3 의 그래프로부터 두 노드의 셀프 에지의 합보다 두 노드 사이의 에지 수치가 더 크면 두 노드를 합치는 방식으로 구조체의 레이아웃을 정할 수 있다.
하지만, 이런 방식은 두 노드의 셀프 에지의 합과 두 노드 사이의 에지 수치가 비슷할 때 선택이 모호한 경우가 발생하며, 윈도우 구간 안의 필드들만 보기에 부정확한 경우가 발생한다는 한계를 가지고 있다.
또한, 이런 방식은 필드 사이의 연관성만 고려하고 서로의 필드들을 합칠 때 발생하는 명령어 오버헤드를 고려하지 않는다는 단점도 존재한다.
본 발명의 목적은, 캐쉬 시뮬레이션을 모든 재배치 가능한 레이아웃에 대해 수행하지 않고 부분집합에 대해서만 수행함으로써, 캐쉬 시뮬레이션 시간을 획기적으로 단축시킴에 그 목적이 있다.
그리고, 본 발명의 또 다른 목적은, 모드 재배치 가능한 레이아웃에 대해 캐쉬 성능 및 명령어 오버헤드를 함께 비교함으로써, 명령어 오버헤드를 최소화시킴에 그 목적이 있다.
이러한 기술적 과제를 달성하기 위한 본 발명의 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법은, 타겟 구조체 판별과 타겟 구조체를 접근하는 메모리 주소들을 추출하는 프로파일링 (a) 단계; 타겟 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과와 오버헤드를 추정하여 가장 좋은 성능을 갖는 레이아웃을 도출하는 캐쉬 시뮬레이션 (b) 단계; 및 프로그램내의 구조체를 재배치된 레이아웃으로 자동 변환하는 구조체 재배치 변환 (c) 단계; 를 포함한다.
또한, (a) 단계는, 구조체의 필드들에 접근 주소가 포함되는지 여부를 판단하는 (a-1) 단계; 및 구조체의 필드들에 접근 주소가 포함되는 경우, 구조체의 필드 접근 주소에 대해 각각의 부분집합에 속하는 필드의 캐쉬 시뮬레이션 주소를 생성하는 (a-2) 단계; 를 포함한다.
또한, (a-1) 단계의 판단결과, 구조체의 필드들에 접근 주소가 포함되지 않는 경우, 부분집합에 속하는 필드의 캐쉬 시뮬리이션 주소를 생성하지 않는 (a-3) 단계; 를 포함한다.
또한, (b) 단계는, 프로파일링 단계를 통해 도출한 타겟 구조체 접근 주소를 이용하여 구조체 필드들의 부분집합에 대해 캐쉬 시뮬레이션을 수행하는 (b-1) 단계; 구조체를 파티션한 각 부분집합들을 이용하여 각각 재배치된 레이아웃을 조합함과 아울러 각 부분집합들의 시뮬레이션 결과를 함께 조합하여, 모든 가능한 재배치된 레이아웃의 시뮬레이션 결과 추정치를 조합하는 (b-2) 단계; 및 모든 가능한 재배치된 레이아웃의 캐쉬 시뮬레이션 결과를 이용하여 계산한 캐쉬 성능과, 각각의 레이아웃에 따른 명령어 오버헤드를 더하여 도출한 전체 성능 오버헤드를 취합하여 가장 좋은 성능을 갖는 레이아웃을 선택하는 (b-3) 단계; 를 포함한다.
상기와 같은 본 발명에 따르면, 동적으로 할당하는 구조체의 레이아웃을 재배치할 때 가장 좋은 성능을 낼 수 있는 레이아웃을 캐쉬 성능과 명령어 오버헤드를 고려하여 선택할 수 있도록 함으로써, 기존의 많은 구조체를 동적 할당하는 프로그램의 성능을 향상시킬 수 있고 새로운 프로그램을 개발할 때에도 참고하여 활용토록 하는 효과가 있다.
또한, 본 발명에 따르면, 캐쉬 시뮬레이션을 모든 재배치 가능한 레이아웃에 대해 수행하지 않고 부분집합에 대해서만 수행함으로써, 캐쉬 시뮬레이션 시간을 획기적으로 단축시키는 효과가 있다.
그리고, 본 발명에 따르면, 모드 재배치 가능한 레이아웃에 대해 캐쉬 성능 및 명령어 오버헤드를 함께 비교함으로써, 명령어 오버헤드를 최소화시키는 효과가 있다.
본 발명의 구체적인 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한, 본 발명에 관련된 공지 기능 및 그 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 구체적인 설명을 생략하였음에 유의해야 할 것이다.
이하에서는 그 언급을 생략하겠으나, 본 발명에 의한 모든 처리과정은 프로파일링을 통해 캐쉬 시뮬레이션을 수행하여 적합한 레이아웃을 찾은 뒤, 소스 레벨 변환기에서 레이아웃을 변환한 프로그램으로 변환하는 것으로 이해하는 것이 바람직하다.
본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법에 대한 구체적인 설명에 앞서, 구조체 재배치에 대해 설명하면 아래와 같다.
도 1 및 도 2 는 다양한 구조체 재배치 방법을 설명하기 위한 것으로서, 도 1 은 구조체를 사용하는 프로그램 코드를 나타낸 예시도인바, 도 2 에 도시된 바와 같이, 구조체 레이아웃을 재배치함으로써 캐쉬 성능을 향상시킬 수 있는 것을 보여주는 예제이다.
도 2 (a) 는 풀 메모리라는 큰 메모리를 할당한 후, 큰 구조체 인스턴스를 연속적으로 배치하는 방법이고, 도 2 (b)는 한 인스턴스의 각 필드들을 고정 간격을 띄며 할당하여 큰 필드들을 연속적으로 할당하여 많이 접근되는 필드들과 많이 접근되지 않는 필드들을 구분시켜주어 캐쉬 성능을 높이는 재배치 방법이다.
가장 좋은 캐쉬 성능을 보이는 도 2 (c) 의 재배치 방법은 서로 같이 접근되는 필드들을 연속적으로 배치하도록 구성되나, 필드들을 접근하는데 필요한 주소를 런타임 중에 추가적으로 계산해야 하는 단점이 있다.
이러한, 추가적인 주소 계산은 첫 번째 그룹이 아닌 다른 그룹에 속한 필드들의 경우에 발생하므로 이러한 그룹에 포함되는 필드들 간의 접근 회수에 따라 명령어 오버헤드가 달라지므로 풀 메모리의 레이아웃을 재배치하는 과정에서 고려될 필요가 있다.
또한, 실험결과에서 도 2 (a) 방식은 풀 메모리 할당 방법(Cmalloc)으로, 또한 도 2 (b) 방식은 고정 간격 할당 방법(DDRemap)으로, 그리고 도 2 (c) 방식은 그룹을 정하되 그룹 할당 방법(Static, Field_Affi 및 Perf_Affi)으로 나뉘게 된다.
도 3 에서 사용된 필드 친밀도 그래프를 컴파일 시간에 정적으로 분석하여 생성한 경우가 Static이고, 프로파일링을 통해 생성한 경우가 Field_Affi이며, 본 발명에서 제안한 방식이 Perf_Affi이다.
한편, 도 4 는 본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법을 나타낸 순서도이고, 도 5 는 본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법의 각 단계를 구체화한 순서도이다.
도 4 및 도 5에 도시된 바와 같이 먼저, 프로파일링 과정을 통해 타겟 구조체 판별과 타켓 구조체를 접근하는 메모리 주소들을 추출한다(S10).
이어서, 캐쉬 시뮬레이션 과정을 통해 타겟 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과와 오버헤드를 추정하여 가장 좋은 성능을 갖는 레이아웃을 도출한다(S20).
그리고, 구조체 재배치 변환 과정을 통해 프로그램에 있는 구조체를 재배치된 레이아웃으로 자동 변환한다(S30).
한편, 구체적으로 도 6 을 참조하여 제S10 단계를 세부적으로 살피면 아래와 같다. 먼저, 시뮬레이션 시간의 단축을 위해 구조체의 필드들에 접근 주소가 포함되는지 여부를 판단한다(S12).
제S12 단계의 파단결과, 구조체의 필드들에 접근 주소가 포함되는 경우, 상기 구조체의 필드 접근 주소에 대해 각각의 부분집합에 속하는 필드의 캐쉬 시뮬레이션 주소를 생성한다(S14).
반면에, 제S12 단계의 파단결과, 구조체의 필드들에 접근 주소가 포함되지 않는 경우, 부분집합에 속하는 필드의 캐쉬 시뮬리이션 주소를 생성하지 않는 다(S16).
또한, 구체적으로 도 7 및 도 8 을 참조하여 제S20 단계를 세부적으로 살피면 아래와 같다. 먼저, 프로파일링을 통해 도출한 타겟 구조체 접근 주소를 이용하여 구조체 필드들의 부분집합에 대해 캐쉬 시뮬레이션을 수행한다(S22).
이어서, 구조체를 파티션한 각 부분집합들을 이용하여 각각 재배치된 레이아웃을 조합함과 아울러 각 부분집합들의 시뮬레이션 결과를 함께 조합하여, 모든 가능한 재배치된 레이아웃의 시뮬레이션 결과 추정치를 조합한다(S24).
그리고, 모든 가능한 재배치된 레이아웃의 캐쉬 시뮬레이션 결과를 이용하여 캐쉬 성능을 계산하고, 각각의 레이아웃에 따른 명령어 오버헤드를 더하여 전체 성능 오버헤드를 구한 뒤, 서로 비교하여 가장 좋은 성능을 갖는 레이아웃을 선택한다(S26).
도 9 를 참조하여 보다 구체적으로 살피면, 도 9 (a) 에 도시된 바와 같이 프로파일링을 통해 얻은 메모리 접근 주소를 기존의 프로그램을 인스트루멘텐이션(instrumentation)을 통해 얻은 구조체 동적 할당 정보를 통해 타겟 구조체 접근 주소인지 여부를 판별하고 할당 정보를 얻는다.
이 할당 정보를 이용하여 정확도를 해치지 않는 범위로 도 9 (b) 와 같은 가정을 사용하여 각 부분집합에 대해 시뮬레이션을 수행할 주소를 생성한다. 즉, 풀 메모리에 있는 각 그룹(필드들의 부분집합)들은 서로 캐쉬 충돌이 나지 않기 때문에 각 그룹들은 풀 메모리의 첫 번째 그룹이라고 가정해도 틀리지 않는다(가정 1).
또한, 캐쉬 시뮬레이션은 상대적인 주소 차이만 영향을 주므로 풀 메모리의 시작 주소는 0으로 하여도 캐쉬 시뮬레이션에 영향을 주지 않는다.
상기와 같은 가정을 이용하여 도 9 (c) 에 도시된 바와 같이 각 부분집합에 따른 시뮬레이션 주소를 생성할 수 있다. 할당 정보로부터 Node 구조체가 301번째로 할당되었다는 것과, 풀 메모리 크기와 구조체 크기를 통해 풀 메모리에 들어갈 최대 구조체 수가 292개라는 것을 알 수 있기 때문에, 현재 접근한 필드가 포함된 그룹이 몇 번째 풀 메모리에 들어가는지(301/292)를 계산하고 풀 메모리 안에서 몇 번째인지를 계산(301%292)하여 해당 그룹의 주소를 계산할 수 있다.
한편, 도 9 (d) 는 전체 부분집합에 대한 시뮬레이션 주소를 나타낸다. {key}, {data}, {key, data} 그룹에 대해서는 next 필드가 포함되지 않기 때문에 시뮬레이션 하지 않아도 되며 나머지 그룹에 대해서는 생성한 시뮬레이션 주소로 캐쉬 시뮬레이션을 수행하게 된다.
또한, 도 10 은 상기 도 9 를 통해 각 부분집합에 대해 시뮬레이션 한 결과(도 10 (a))를 조합하여 모든 재배치 가능한 레이아웃에 대해 캐쉬 시뮬레이션 결과를 생성하고, 기계에 종속적인 메모리 오버헤드 정보와 명령어 오버헤드 정보(도 10 (b))를 이용하여 각각의 레이아웃에 따른 메모리 접근 오버헤드와 명령어 오버헤드를 계산하며, 이를 토대로 전체 오버헤드를 구하고(도 10 (c)) 이를 비교하여 가장 좋은 레이아웃 배치를 찾을 수 있다.
앞서 설명한 것처럼 첫 번째 그룹은 명령어 오버헤드가 발생하지 않기 때문에 첫 번째 그룹의 순서에 따라 명령어 오버헤드가 달라지게 된다.
도 11 에서는 상기 도 2 에서 설명한 각 레이아웃에 따른 본 발명에서 제안 한 조합적 캐쉬 시뮬레이션의 정확도를 보여준다. 즉, 조합적 캐쉬 시뮬레이션으로 추정한 캐쉬 미스 수를 해당 레이아웃으로 변경하고, 실제로 캐쉬 시뮬레이션을 수행하여 얻은 캐쉬 미스 수로 나눈 값을 그래프로 표시한 것으로 1에 가까울 수로 추정값이 실제값과 비슷하다는 것이다.
도 11 (a) 는 direct-mapped cache 구조일 경우의 정확도 이고, 도 11 (b) 는 4-way set associative cache 구조일 경우의 정확도를 나타낸다.
본 조합적 캐쉬 시뮬레이션에서는 풀 메모리 내부에서는 구조체끼리 캐쉬 충돌이 나지 않지만 풀 메모리 외부의 구조체와 데이터끼리는 캐쉬 충돌이 발생하기 때문에 이런 현상을 줄여주는 4-way set associative cache 구조에서는 10% 내의 오차 범위를 보여준다.
요즘 대부분의 캐쉬 구조가 4-way set associative 이상이므로 이러한 환경에서는 본 조합적 캐쉬 시뮬레이션이 실제 캐쉬 시뮬레이션과 비슷한 결과를 낼 수 있다고 말할 수 있겠다.
그리고, 도 12 에서는 타겟 구조체의 레이아웃을 변화시킬 때 다른 데이터의 캐쉬 행동 양식은 어떻게 변하는지를 나타낸 표이다. 표에서 알 수 있듯이 타겟 구조체의 레이아웃을 변화시키더라도 다른 데이터의 캐쉬 미스 수는 5% 안에서 변화하므로 전체 프로그램의 성능이 가장 좋은 경우를 찾을 때 타겟 구조체의 성능이 가장 좋은 레이아웃을 고르는 방식이 타당성을 가진다.
전술한 바와 같은 본 발명의 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법은, 동적으로 할당하는 구조체의 레이아웃을 재배치할 때 가장 좋은 성능을 낼 수 있는 레이아웃을 캐쉬 성능과 명령어 오버헤드를 고려하여 선택할 수 있도록 함으로써, 기존의 많은 구조체를 동적 할당하는 프로그램의 성능을 향상시킬 수 있고 새로운 프로그램을 개발할 때에도 참고하여 활용할 수 있다.
또한, 구조체 재배치를 위해 개발된 종래의 방법들과 비교하여 보다 좋은 성능을 내는 구조체 재배치 방법을 찾을 수 있다는 특징적인 장점을 갖는다.
이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등 물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.
도 1 은 일반적으로 많이 사용되는 구조체의 연결 리스트에서 구조체의 key 필드값을 비교하여 일치할 경우 data 필드값을 리턴하고 그렇지 않은 경우 next 필드값을 통해 다음 구조체로 넘어가는 프로그램 예시도.
도 2 는 도 1에 나오는 구조체 레이아웃을 재배치하는 다양한 방법으로 (a)는 풀 메모리라는 큰 메모리를 먼저 할당한 후 Node 구조체 인스턴스를 연속적으로 할당하는 방법이고, (b)는 한 인스턴스의 다른 필드들을 고정 간격을 띄며 할당하여 같은 필드들을 연속적으로 할당하는 방법이며, (c)는 서로 같이 접근되는 key 필드와 next 필드를 연속적으로 할당하는 방법을 나타낸 예시도.
도 3 은 구조체 재배치를 위한 기존 기술인 필드 친밀도 그래프를 사용하여 자주 사용되는 필드들을 그룹으로 묶는 방법을 나타내는 예시도.
도 4 는 본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법을 나타낸 순서도.
도 5 는 프로파일링을 통해 타겟 구조체의 메모리 접근 주소들을 추출하고 구조체의 부분집합들에 대해 캐쉬 시뮬레이션을 수행하고, 그 결과들을 조합하여 그 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과 추정을 통해 가장 좋은 성능의 레이아웃을 찾아 구조체의 레이아웃을 자동으로 변환해주는 방법을 나타낸 흐름도.
도 6 은 본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법의 제S10 단계의 세부과정을 나타낸 순서도.
도 7 은 본 발명에 따른 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법의 제S20 단계의 세부과정을 나타낸 순서도.
도 8 은 구조체의 부분집합들에 대한 캐쉬 시뮬레이션을 수행하고 그 결과들을 조합하여 그 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과를 추정할 수 있게 하는 방법의 세부 흐름도.
도 9 는 구조체의 부분집합들에 대한 캐쉬 시뮬레이션을 수행할 때 (a) 메모리 접근 주소로부터 타겟 구조체 접근인지를 필터링하고 할당 정보를 얻는 방법과 (b) 각각의 부분집합들을 캐쉬 시뮬레이션할 때 필요한 주소를 생성하기 위해 사용한 가정들과 (c) 주소를 생성하는 구체적인 예제와 (d) (a)에서 접근한 구조체의 모든 부분집합들에 대해 생성한 시뮬레이션 주소를 보여주는 예시도.
도 10 은 (a) 구조체의 모든 부분 집합들에 대한 캐쉬 시뮬레이션 결과와 (b) 캐쉬 미스 오버헤드와 명령어 오버헤드와 같은 아키텍쳐 관련 오버헤드를 나타내는 표와 (c) 이로부터 계산할 수 있는 모든 가능한 구조체 레이아웃에 대한 메모리 오버헤드와 명령어 오버헤드를 포함하는 전체 성능 오버헤드 추정치를 나타내는 도면.
도 11 은 본 발명의 조합적 캐쉬 시뮬레이션 방법으로 추정하여 구한 결과와 실제 해당 레이아웃을 변환한 뒤 캐쉬 시뮬레이션한 결과를 비교한 그래프를 도시한 도면.
도 12 는 타겟 구조체의 레이아웃을 변환할 때 그 외의 다른 데이터에서 나는 캐쉬 성능의 변화정도를 나타내는 표를 나타낸 도면.

Claims (4)

  1. 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법에 있어서,
    (a) 타겟 구조체 판별과 타겟 구조체를 접근하는 메모리 주소들을 추출하는 프로파일링 단계;
    (b) 상기 타겟 구조체의 모든 재배치 가능한 레이아웃에 대한 캐쉬 시뮬레이션 결과와 오버헤드를 추정하여 가장 좋은 성능을 갖는 레이아웃을 도출하는 캐쉬 시뮬레이션 단계; 및
    (c) 프로그램내의 구조체를 재배치된 레이아웃으로 자동 변환하는 구조체 재배치 변환 단계; 를 포함하되,
    상기 (a) 단계는, 상기 구조체의 필드들에 접근 주소가 포함되는지 여부를 판단하는 (a-1) 단계; 및 상기 구조체의 필드들에 접근 주소가 포함되는 경우, 상기 구조체의 필드 접근 주소에 대해 각각의 부분집합에 속하는 필드의 캐쉬 시뮬레이션 주소를 생성하는 (a-2) 단계; 를 포함하는 것을 특징으로 하는 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 (a-1) 단계의 판단결과,
    (a-3) 상기 구조체의 필드들에 접근 주소가 포함되지 않는 경우, 부분집합에 속하는 필드의 캐쉬 시뮬리이션 주소를 생성하지 않는 단계; 를 포함하는 것을 특징으로 하는 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계는,
    (b-1) 상기 프로파일링 단계를 통해 도출한 타겟 구조체 접근 주소를 이용하여 구조체 필드들의 부분집합에 대해 캐쉬 시뮬레이션을 수행하는 단계;
    (b-2) 구조체를 파티션한 각 부분집합들을 이용하여 각각 재배치된 레이아웃을 조합함과 아울러 각 부분집합들의 시뮬레이션 결과를 함께 조합하여, 모든 가능한 재배치된 레이아웃의 시뮬레이션 결과 추정치를 조합하는 단계; 및
    (b-3) 모든 가능한 재배치된 레이아웃의 캐쉬 시뮬레이션 결과를 이용하여 계산한 캐쉬 성능과, 각각의 레이아웃에 따른 명령어 오버헤드를 더하여 도출한 전체 성능 오버헤드를 취합하여 가장 좋은 성능을 갖는 레이아웃을 선택하는 단계; 를 포함하는 것을 특징으로 하는 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조 체 레이아웃 재배치 방법.
KR1020090110617A 2009-11-17 2009-11-17 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법 KR101102530B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090110617A KR101102530B1 (ko) 2009-11-17 2009-11-17 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090110617A KR101102530B1 (ko) 2009-11-17 2009-11-17 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법

Publications (2)

Publication Number Publication Date
KR20110054103A KR20110054103A (ko) 2011-05-25
KR101102530B1 true KR101102530B1 (ko) 2012-01-04

Family

ID=44363357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090110617A KR101102530B1 (ko) 2009-11-17 2009-11-17 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법

Country Status (1)

Country Link
KR (1) KR101102530B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030036971A (ko) * 2001-11-01 2003-05-12 엘지엔시스(주) C/c++의 구조체 크기 최적화 방법
US20060129997A1 (en) 2004-12-13 2006-06-15 Stichnoth James M Optimized layout for managed runtime environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030036971A (ko) * 2001-11-01 2003-05-12 엘지엔시스(주) C/c++의 구조체 크기 최적화 방법
US20060129997A1 (en) 2004-12-13 2006-06-15 Stichnoth James M Optimized layout for managed runtime environment

Also Published As

Publication number Publication date
KR20110054103A (ko) 2011-05-25

Similar Documents

Publication Publication Date Title
Abella et al. On the comparison of deterministic and probabilistic WCET estimation techniques
Ogilvie et al. Minimizing the cost of iterative compilation with active learning
US20100287536A1 (en) Profiling application performance according to data structure
US20020144244A1 (en) Compile-time memory coalescing for dynamic arrays
JP6149595B2 (ja) キャッシュメモリ制御プログラム,キャッシュメモリを内蔵するプロセッサ及びキャッシュメモリ制御方法
JP7164733B2 (ja) データ記憶
US20040128661A1 (en) Automatic data locality optimization for non-type-safe languages
US20090037690A1 (en) Dynamic Pointer Disambiguation
JPH04213118A (ja) プログラム翻訳装置およびプログラム翻訳方法
JPH1069389A (ja) ブランチの再配置によるタグなしブランチ予測キャッシュを活用する装置
Lesage et al. On the analysis of random replacement caches using static probabilistic timing methods for multi-path programs
Giamblanco et al. A dynamic memory allocation library for high-level synthesis
KR101102530B1 (ko) 조합적 캐쉬 시뮬레이션을 활용한 동적 할당 구조체 레이아웃 재배치 방법
JP2007206806A (ja) キャッシュ観測装置、プロセッサの解析方法およびキャッシュメモリ
US9244828B2 (en) Allocating memory and using the allocated memory in a workgroup in a dispatched data parallel kernel
US7469404B2 (en) Bank assignment for partitioned register banks
JP6519228B2 (ja) データ配置決定装置、データ配置決定プログラム及びデータ配置決定方法
Wess Minimization of data address computation overhead in DSP programs
Tran et al. Instruction cache in hard real-time systems: modeling and integration in scheduling analysis tools with AADL
Barik et al. A decoupled non-SSA global register allocation using bipartite liveness graphs
CN113703846A (zh) 一种面向tage分支预测器的新表项分配方法
Mannarswamy et al. Variable granularity access tracking scheme for improving the performance of software transactional memory
Allande et al. A performance model for openMP memory bound applications in multisocket systems
US10140135B2 (en) Method for executing a computer program with a parameterised function
Li et al. C3: Cooperative code positioning and cache locking for WCET minimization

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
FPAY Annual fee payment

Payment date: 20140514

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160425

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161226

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181022

Year of fee payment: 8