KR20180096780A - 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 - Google Patents
코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR20180096780A KR20180096780A KR1020187021601A KR20187021601A KR20180096780A KR 20180096780 A KR20180096780 A KR 20180096780A KR 1020187021601 A KR1020187021601 A KR 1020187021601A KR 20187021601 A KR20187021601 A KR 20187021601A KR 20180096780 A KR20180096780 A KR 20180096780A
- Authority
- KR
- South Korea
- Prior art keywords
- trace
- core
- processing system
- gene function
- derived
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000007418 data mining Methods 0.000 title claims description 30
- 230000006870 function Effects 0.000 claims abstract description 206
- 108090000623 proteins and genes Proteins 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims abstract description 83
- 238000013461 design Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims description 6
- 238000005065 mining Methods 0.000 abstract 1
- 238000004088 simulation Methods 0.000 description 19
- 230000006399 behavior Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000000872 buffer Substances 0.000 description 5
- 230000002068 genetic effect Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000001343 mnemonic effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007728 cost analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
-
- G06F17/30539—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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 for performance assessment
- G06F11/3433—Recording 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 for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3438—Recording 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 monitoring of user actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
- G06F11/348—Circuit details, i.e. tracer hardware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Debugging And Monitoring (AREA)
Abstract
본 발명은 코어 트레이스가 처리 시스템 내에서 실행되는 명령들의 시퀀스인 처리 시스템에서, 처리 시스템 내의 코어 트레이스(1402)를 검출하는 단계를 포함하는, 무선 베이스밴드 설계를 위한 처리 시스템에서의 코어 트레이스로부터 데이터 마이닝 방법이 제공된다. 상기 코어 트레이스 내의 명령 어드레스는 복수의 어플리케이션 또는 운영 시스템 함수(1404)에 맵핑된다. 맵핑된 함수는 계층적 포맷(1406)으로 정렬된다. 유전자 함수는 처리 시스템에 의해 실행되는 기본 함수며, 계층적 포맷(1408)에서 식별된다. 유전자 함수에 대한 속성은 계층적 포맷(1410)으로부터 도출된다. 상기 속성은 유전자 함수 라이브러리 데이터 베이스(1412)에 저장된다.
Description
본 출원은 2015년 12월 30일 자로 출원된 미국 정규 특허 출원 제14/983,934호 "코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치"의 우선권을 청구하며, 이 특허 출원의 전체 내용이 원용에 의해 본 명세서에 포함된다. 본 발명은 일반적으로 컴퓨터 시스템 거동 분석에 관한 것으로, 특히 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치에 관한 것이다.
차세대 무선 시스템 설계는, 신뢰성있고 정확한 시스템의 성능 및 거동을 요구한다. 5G 시스템과 같은 차세대 시스템을 설계하기 위하여, 현재의 시스템 동작을 이해함에 있어서 현재 시스템의 거동과 관련된 정보를 수집하는 것과 분석은 중요하고, 필수적이다. 시스템 거동 및 성능 분석에 대한 현재의 기술은, 5G 시스템의 개발 및 구현에 적용하기 위해 필요한 정확한 시스템 거동 및 성능 파라미터를 얻기에는 불충분하다.
전술한 바에 따라, 통상의 기술자는 차세대 설계를 위한 시스템 거동을 분석하기 위한 기술에 대한 필요성을 인식할 수 있다. 본원에 따르면, 시스템 거동 분석의 현재 코딩 기술과 연관된 단점과 문제점들을 상당히 감소시키거나 실질적으로 제거하는 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치를 제공한다.
일 실시예에 따라, 무선 베이스밴드(wireless baseband) 설계를 위한 처리 시스템에서의 코어 트레이스(core trace)로부터 데이터 마이닝을 하기 위한 방법은 상기 처리 시스템에서 코어 트레이스를 검출하는 단계를 포함하고, 여기서 상기 코어 트레이스는 상기 처리 시스템에서 실행되는 명령들의 시퀀스이다. 상기 코어 트레이스 내의 명령 어드레스들은 복수의 어플리케이션 또는 운영 시스템 함수들에 매핑된다. 상기 매핑된 함수들은 계층적 포맷(hierarchical format)으로 배치한다. 상기 계층적 포맷에서 유전자 함수(gene function)을 식별하는 단계로서, 상기 유전자 함수는 상기 처리 시스템에 의해 실행되는 기본 함수(fundamental function)이다. 상기 유전자 함수에 대한 속성들은 상기 계층적 포맷으로부터 도출된다. 상기 속성들은 유전자 함수 라이브러리 데이터베이스에 저장된다.
본 개시는 종래의 시스템 거동 및 성능 분석 기술에 비해 많은 기술적 이점들을 설명한다. 예를 들어, 한가지 기술적 이점은 정확한 시스템 성능 파라미터의 하부 구조를 구축하는 것이다. 다른 기술적 이점은 시스템에서 실행되는 코어 함수들의 개별 거동을 식별하는 것이다. 다른 기술적 이점은 이하의 도면, 발명의 설명 및 청구범위로부터 통상의 기술자에게 쉽고 명백하게 실행될 수 있다.
본 발명 및 그 이점들을 보다 완전하게 이해하기 위해서, 첨부된 도면을 참조하여 다음의 설명을 참조하며, 유사한 참조 번호는 유사한 부분을 나타낸다.
도 1은 처리 장치의 예시를 도시한다.
도 2a-2b는 처리 장치에 대한 캐시 모델을 사용하여 데이터 입력으로부터의 예시적인 그래프 결과를 도시한다.
도 3은 명령-정확성 트레이스(Instruction-Accurate trace)로부터 순환-정확성 트레이스(cycle-Accurate trace)를 생성하기 위한 예시적인 시스템을 도시한다.
도 4는 처리 장치의 처리량 포인트를 도시한다.
도 5는 코어 트레이스로부터의 검출된 선점 시나리오(preemption scenario)를 도시한다.
도 6은 2-루프 선점 시나리오를 도시한다.
도 7은 선점 비용을 평가하는데 사용되는, 선점 이벤트를 포함하는 트레이스 흐름을 도시한다.
도 8은 코어 트레이스의 예시를 도시한다.
도 9는 코어 트레이스로부터 생성된 계층적 포맷의 예를 도시한다.
도 10은 유전자 함수와 연관된 코어 트레이스의 예를 도시한다.
도 11은 최상위 레벨 설계에서의 데이터 흐름도의 예를 도시한다.
도 12는 계층적 포맷에서 유전자 함수의 예를 도시한다.
도 13은 트레이스 기반 시뮬레이션에 대한 유전자 함수 라이브러리 데이터베이스의 어플리케이션을 도시한다.
도 14는 코어 트레이스로부터 데이터 마이닝 과정을 도시한다.
도 15은 본원에 개시된 하나 이상의 실시예를 구현하기에 적합한 컴퓨팅 컴포넌트의 예를 도시한다.
도 1은 처리 장치의 예시를 도시한다.
도 2a-2b는 처리 장치에 대한 캐시 모델을 사용하여 데이터 입력으로부터의 예시적인 그래프 결과를 도시한다.
도 3은 명령-정확성 트레이스(Instruction-Accurate trace)로부터 순환-정확성 트레이스(cycle-Accurate trace)를 생성하기 위한 예시적인 시스템을 도시한다.
도 4는 처리 장치의 처리량 포인트를 도시한다.
도 5는 코어 트레이스로부터의 검출된 선점 시나리오(preemption scenario)를 도시한다.
도 6은 2-루프 선점 시나리오를 도시한다.
도 7은 선점 비용을 평가하는데 사용되는, 선점 이벤트를 포함하는 트레이스 흐름을 도시한다.
도 8은 코어 트레이스의 예시를 도시한다.
도 9는 코어 트레이스로부터 생성된 계층적 포맷의 예를 도시한다.
도 10은 유전자 함수와 연관된 코어 트레이스의 예를 도시한다.
도 11은 최상위 레벨 설계에서의 데이터 흐름도의 예를 도시한다.
도 12는 계층적 포맷에서 유전자 함수의 예를 도시한다.
도 13은 트레이스 기반 시뮬레이션에 대한 유전자 함수 라이브러리 데이터베이스의 어플리케이션을 도시한다.
도 14는 코어 트레이스로부터 데이터 마이닝 과정을 도시한다.
도 15은 본원에 개시된 하나 이상의 실시예를 구현하기에 적합한 컴퓨팅 컴포넌트의 예를 도시한다.
이하에서 논의되는 도 1 내지 도 15, 및 본원에서 본 개시의 원리를 설명하기 위해 사용된 다양한 실시예들은 단지 설명을 위한 것이고, 본 발명의 범위를 제한하는 어떠한 방식으로도 해석되어서는 안된다. 통상의 기술자는 본 발명의 원리가 임의의 유형의 적절히 구성된 장치 또는 시스템에 구현될 수 있다는 것을 이해할 것이다. 하나의 도면에 도시되고 논의된 특징들은 하나 이상의 다른 도면에서 적절하게 구현될 수 있다.
코어 트레이스로부터 '데이터 마이닝'에 대한 접근은, 시스템의 거동 및 성능에 관한 정보를 도출하고 획득하기 위해 제공된다. 도출된 정보는 일부 분석 모델(예를 들어, 캐시 미스 카운트를 얻기 위한 캐시 모델, 캐시로부터 메모리로의 처리량, 등)에 트레이스를 공급한 후에 얻어지는 반면, 획득된 정보는 '로드'(즉, '읽기') 및 '저장'(즉, '쓰기') 카운트와 같은 코어 트레이스로부터 직접적으로 얻어진다. 코어 트레이스들은 명령들의 시퀀스의 실행의 기록, 명령에 의해 영향을 받는 메모리 어드레스, 및 메모리 어드레스에 포함된 값을 제공한다. 코어 트레이스로부터 데이터 마이닝은 차세대 시스템 설계의 개선에 도움이 되는 시스템 정보를 제공한다. 코어 트레이스 기반의 하부 구조는 현재 시스템의 정확하고 안정적인 시스템 성능 및 거동을 획득하고, 차세대 시스템 설계에 대한 통찰력을 얻기 위해 구축되었다. 시스템 성능 및 거동과 연관된 예시적인 속성으로는, 로드/저장 밀도, 캐시 미스 카운트, 메모리 프로파일링(profiling), 데이터 처리량, 코어 작업 로드 추정, 전력 사용량 추정, 및 선점 검출 및 비용 분석을 포함한다.
본 발명은, 데이터 위치 (예를 들어, 레벨 2(L2) 메모리 및/또는 캐시, 레벨 3(L3) 메모리 및/또는 캐시, 및 이중 데이터 레이트(double data rate, DDR) 메모리)와 메모리의 데이터 크기를 포함하는 코어 트레이스로부터 데이터 로드/저장 동작을 분석하는 기술을 제공한다. 캐시 모델은 데이터 로드/저장 정보에 기반하여 캐시 미스 카운트를 평가하기 위해 구현된다. 메모리 프로파일링, 데이터 처리량, 작업 로드, 전력 사용량 등은 데이터 로드/저장 동작 및 캐시 미스 카운트로부터 수집된 정보로부터 평가된다. 선점 이벤트는 검출되고, 관련 비용들은 분석된다.
데이터 마이닝은 시스템 거동 및 성능의 분석에 사용된다. 캐시 트레이스, 데이터 전송 트레이스, 및 직접 메모리 접근 트레이스를 포함하는 코어 트레이스는 분석을 위해 검출되고, 저장된다. 캐시 트레이스는 명령 어드레스, 명령 실행의 타임 스탬프, 로드(읽기) 및 저장(쓰기) 작업, 데이터 위치, 데이터 크기에 대한 정보 뿐만 아니라 시스템 성능과 관련된 기타 정보를 제공한다. 데이터 전송 트레이스는, 데이터가 하드웨어 가속기로 전송되거나 전송받을 때, 로드 및 저장 작업, 데이터 위치 및 크기, 및 타임 스탬프에 대한 정보를 제공한다. 직접 메모리 접근 트레이스는 소스 데이터 어드레스, 목적 데이터 어드레스, 데이터 크기 및 타임 스탬프에 대한 정보를 제공한다.
도 1은 컴퓨팅 시스템(100)의 예시를 도시한다. 컴퓨팅 시스템(100)은 복수의 처리 장치(101)를 포함한다. 각 처리 장치(101)는 처리 코어(102)를 포함한다. 처리 코어(102)는 전용 L1 명령 캐시(104), L1 데이터 캐시(106), 및 L2 캐시(108)을 가진다. 또한, 컴퓨팅 시스템(100)은 처리 장치(101)에 의해 공유되는 L3 메모리(110)를 포함하거나, 원하는 대로 각 처리 장치(101)의 전용인 L3 메모리를 분리할 수 있다. 각 처리 장치(101)는 처리 장치(101) 내 캐시 메모리에 접근을 제어하기 위한 메모리 제어기(112) 및 L3 메모리(110)와 DDR 메모리(114)와 같은 처리 장치(101)에 결합된 외부 메모리를 포함한다. 트레이스 누적기(116)는 컴퓨팅 시스템(100)에 포함되어, 각 처리 장치(101)에 의한 명령의 실행 시에, 코어 트레이스를 검출하고 저장한다. 트레이스 누적기(116)는 트레이스 분석기(118)에 코어 트레이스를 제공하여 이하에 논의되는 바와 같이 데이터 마이닝을 수행한다.
메모리 공간 매핑 표는 처리 장치(101)에 의해 접근 가능한 메모리의 양에 따라 시스템 설계 컴파일러(도시되지 않음)에 의해 생성된다. 상기 메모리 공간 매핑 표는 (L2 캐시(108), L3 메모리(110), 및 DDR 메모리(114)에 의해 제공되는)메모리 공간의 크기와 어드레스 범위를 설명하므로, 상기 어드레스에 따라 어디에서 데이터가 왔는지에 대한 결정이 내려질 수 있다. 메모리 공간 매핑 표는 데이터 마이닝 분석기(118)에 대한 입력이다. 메모리 공간 테이블의 예가 표 1에 제공된다.
메모리 공간 | 어드레스 범위 |
L2 | 0x08000000 - 0x0807ffff |
L3 | 0x9a000000 - 0x9bfffffff |
DDR | 0xa0000000 - 0xdffffffff |
함수 심볼 표는 또한 시스템 설계 컴파일러에 의해 생성되고, 데이터 마이닝 분석기(118)에 대한 입력으로서 제공된다. 함수 심볼 표는 트레이스 내의 각 명령 어드레스를 어플리케이션 또는 운영 시스템(OS) 함수에 매핑한다. 데이터 마이닝 분석기(118)는, 처리 장치(101)에 의해 수행되는 명령 처리의 분석을 위해 트레이스 누적기(116)로부터 수신된 트레이스와 함수 심볼 표를 사용한다. 예시적인 함수 심볼 표는 표 2에 도시된다.
심볼 이름 | 심볼 어드레스 | 크기 |
DAGC | 0x091a62a0 | 0x0000002d |
RUUInv | 0x0923a1e0 | 0x000004c8 |
FFTDataIn | 0x0903a13b | 0x000002d1 |
캐시 모델(120)은 트레이스의 분석 및 합성을 위해 데이터 마이닝 분석기(118)에서 구현될 수 있다. 캐시 모델(120)은 캐시 미스 분석, 프리-캐시(pre-cache) 데이터 흐름, 포스트-캐시(post-cache) 데이터 흐름, 및 코어 작업 로드 분석을 제공한다. 캐시 모델을 특정하는데 사용되는 파라미터들은 라인 크기(바이트), 라인 수, 웨이 수, 프리-페치 모드(pre-fetch mode)(온 또는 오프), 프리-페치 버퍼 크기, 및 쓰기 정책(라이트-스루(write-through), 라이트-백(write-back), 라이트-백 할당 없음(write-back no allocation))을 포함할 수 있다.
각 처리 장치(101)는 디지털 신호 프로세서로서 구현될 수 있다. 무선 통신에서 디지털 신호 프로세서(DSP) 코어를 위한 캐시 모델의 전형적인 예는 라인 크기가 128바이트이고 4개 웨이인, 총 128개 라인을 가지는 전체 데이터의 크기가 64K 바이트인 캐시의 거동을 모델링한 것이다. 이 경우, 로드 미스가 일어날 때, 캐시 라인을 교체하기 위해 가장 최근에 사용되지 않은 정책(replace least recently used, RPL_LRU)이 사용된다. 라이트-백 할당 없음(write back no allocation, WBNA) 정책은 저장 동작을 하기 위해 사용된다. 처리 장치(101)의 설계에 따라 다른 캐시 모델의 예들이 사용될 수 있다. 데이터 마이닝 분석기(118)는 트레이스 누적기(116)에 의해 획득한 트레이스를 처리 및 분석하기 위해 처리 장치(101)에 사용되는 캐시의 모델을 통합한다.
캐시 모델(120)에 대한 입력은 트레이스 누적기(116)로부터 트레이스 내의 명령들을 포함하고, 각 트레이스 누적기(116)는 데이터 어드레스 및 크기를 제공한다. 출력에는 캐시 미스 또는 적중이 포함된다. 캐시 미스의 경우, 출력은 또한 캐시에 로드된 데이터의 크기 및 어드레스를 포함하는데, 만약 '프리-페치' 모드가 온인 경우에는 프리-페치 버퍼에 페치된 데이터의 크기 및 어드레스, 만약 그것이 더러워지면(즉, 덮어쓰기 된 경우) 메모리에 라이트-백 되는 (추출된 캐시 라인으로부터의)데이터의 크기 및 어드레스를 포함한다. 캐시 모델은 L1 데이터 캐시(D-캐시)(106), L1 명령 캐시(I-캐시)(104), L2 캐시(108), 및 L3 메모리(110)의 거동을 시뮬레이션하는데 사용될 수 있다. 도 1은 다중 처리 장치(101)를 도시하지만, 컴퓨팅 시스템(100)은 단지 하나의 처리 장치(101)만을 포함할 수 있다.
도 2a-2b는 데이터 입력으로부터 캐시 모델로의 데이터 마이닝 분석기(118)에 의해 생성된 분석 결과의 예시적인 그래프를 도시한다. 도 2a는 주어진 처리 장치(101)에 대한 로드 밀도 곡선(204)을 제공하는 그래프(202)를 도시한다. 로드 밀도 곡선(204)은 일정 시간동안 1000개의 코어 명령 당 데이터 로드(읽기) 동작의 밀도의 백분율에 대응한다. 로드 밀도는 로드 연산의 수를 코어 명령들에 연관된 수로 나눈 값이다. 로드 밀도 곡선(204)의 각 데이터 포인트는 이전의 2-마이크로초 간격 기간동안 발생된 로드 밀도의 백분율을 제공한다. 도 2b는 주어진 처리 장치(101)에 대한 캐시 미스 곡선(214)을 제공하는 그래프(212)를 도시한다. 캐시 미스 곡선(214)은 시간 간격에 걸친 1000 코어 명령 당 로드(읽음) 동작의 캐시 미스 카운트를 나타낸다. 캐시 미스 곡선(214)의 각 데이터 포인트는 이전의 2-마이크로초 간격 기간동안 발생된 캐시 미스의 수를 제공한다. 그래프(202)와 그래프(212)는 코어가 주어진 처리 장치(101)에 대한 계산 및/또는 데이터 처리에 관여하는 시기 및 강도를 나타낸다.
트레이스 누적기(116)는 명령-정확성(Instruction Accurate, IA)트레이스로서 알려진 처리 장치(101)로부터 트레이스를 얻는다. IA 트레이스는 어떤 명령들이 연관된 타이밍 정보없이 처리 장치(101)에 의해 수행되었는지를 기록한다. IA 트레이스는 순환-정확성(Cycle-Accurate, CA)트레이스 시뮬레이션 및 분석에 직접 사용될 수 없다. CA 트레이스는 처리 장치(101)에 의해 무슨 명령이 수행되는지, 언제(어느 사이클에서) 명령이 수행되는지를 기록한다. CA 트레이스는 IA 트레이스 정보를 처리 코어 모델에 입력하여 IA 트레이스와 연관된 타이밍 정보를 생성함으로써 IA 트레이스로부터 도출될 수 있다. 상기 타이밍 정보는 IA 트레이스 정보와 결합되어 CA 트레이스를 생성한다. 추가 분석을 위해 코어 모델의 마이크로-아키텍쳐 효과(Micro-architecture effect)를 고려할 수도 있다. 상기 코어 모델의 마이크로-아키텍쳐 효과는 레지스터 인터록(register interlock), 페치 버퍼(fetch buffer), 명령 리플레이, 및 브렌치 지연을 포함한다. 결과적으로, CA 트레이스 정보는 코어 모델의 마이크로-아키텍쳐와 함께 IA 트레이스의 조합으로부터 도출될 수 있으므로, IA 트레이스는 정확하고 관련성이 높은 시스템 정보에 필요한 CA 트레이스로 전환될 수 있다.
도 3은 IA 트레이스로부터 CA 트레이스를 생성하는 예를 도시한다. 트레이스 누산기(116)로부터 얻어진 IA 트레이스 정보는 처리 코어 모델(302)에 입력된다. 처리 코어 모델(302)은 처리 코어(102)의 동작을 시뮬레이션하고, IA 트레이스 정보에 존재하지 않는 타이밍 정보를 생성한다. 동기화된 타이밍 모듈(304)은 타이밍 정보를 IA 트레이스 정보에 동기화하여, CA 트레이스를 생성한다. CA 트레이스는 분석을 위해 데이터 마이닝 분석기(118)에, IA 트레이스 뿐만 아니라 입력으로서 제공된다.
코어 트레이스의 데이터 마이닝을 통해 획득한 정보를 이용하여, 분석을 위해 메모리 프로파일링의 속성, 데이터 흐름의 처리량, 작업 로드, 선점 및 전력 사용량에 관한 시스템 정보를 추정할 수 있다. 메모리 프로파일링 및 데이터 흐름의 처리량은 IA 트레이스로부터 도출된다. 작업 로드, 선점 및 전력 사용량은 CA 트레이스로부터 도출된다. 이러한 시스템 정보는 처리 장치(101)가 동작 중에 어떻게 수행하는지를 제공함으로써 차세대 아키텍쳐 탐색을 위한 통찰력있는 미래상을 산출한다. 현재 시스템 설계로부터의 메모리 프로파일링, 데이터 흐름 처리량, 작업 로드, 선점 및 전력 사용량 분석은 보다 효율적인 차세대 아키텍쳐 설계와 통합된다.
메모리 프로파일링 속성에 대해, 코어 IA 트레이스로부터 가능한 로드/저장 정보를 이용하여, 메모리 사용량의 정확한 정보가 L2, L3, 및 DDR을 포함하는 다양한 메모리 공간에 대해 도출될 수 있다. 데이터가 어떻게 사용되는지에 대한 표시는 데이터를 검색하거나 쓰기 위해 어떤 캐시/메모리가 접근하는지에 대한 정보로부터 얻는다. 메모리 프로파일링 분석은 또한 이하에 논의된 유전자 함수에 개별적으로 적용될 수 있다.
도 4는 처리 장치(101)에서의 처리량 포인트를 도시한다. 도 4는 데이터 상호 접속을 도시하는 도 1의 요소 중 일부를 도시한다. 처리량 속성의 경우, 데이터 흐름에 대한 정확한 정보는 IA 트레이스로부터 도출될 수 있다. 데이터 흐름 정보는 처리 코어(102)와 대응하는 L1 I-캐시(104), L1 D-캐시(106), 및 L2 캐시(108) 간 처리량을 포함한다. 데이터 흐름 정보는 또한 L3 메모리(110)와 DDR 메모리(114)와 같은 메모리 서브-시스템과 캐시들 간의 처리량을 포함한다. 전형적으로, 처리 코어(102)는 L1 I-캐시(104)와 L1 D-캐시(106)에 직접 접근한다. L1 I-캐시(104) 및 L1 D-캐시(106)에서 요청되었지만 발견되지 않은 정보는, 만약 존재한다면 먼저 L2캐시(108)로부터, 다음으로 L3 메모리(110), 마지막으로 DDR 메모리(114)로부터 순차적으로 검색된다. 처리량 정보는, 어떻게 캐시와 메모리 간에 데이터 흐름을 주고받는지, 상기 데이터 흐름의 강도 및 시스템 성능에 대응하는 영향을 식별하기 때문에, 최상위-레벨 토큰-기반(즉, IA 트레이스)시뮬레이션 및 분석에 매우 유용할 수 있다. 처리량 정보는 데이터 흐름 강도를 조정하기 위해 차세대 설계에서 다른 배선 방식을 구현하도록 안내할 수 있다. 데이터 흐름 정보는 또한 이하에 논의된 유전자 함수에 개별적으로 적용될 수 있다.
작업 로드 속성의 경우, 각 코어에 대한 작업 로드에 대한 추정은 CA 트레이스로부터 도출될 수 있다. 작업 로드를 평가할 때의 요인으로는, CA 트레이스로부터 코어의 기준 작업 로드, L1 I-캐시(104)와 L1 D-캐시(106) 미스 카운트, 및 L2 캐시(108), L3 메모리(110), DDR 메모리(114)와 같은 다양한 메모리 공간 방문으로부터의 레이턴시 정보가 있다. 작업 로드의 추정은 또한 이하에 논의된 유전자 함수에 개별적으로 적용될 수 있다.
전력 사용량 속성에 대해, 전력 사용량의 추정은 로드/저장의 카운트, 및 (스칼라 및 벡터) 덧셈, 곱셈 등과 같은 논리 연산 장치(Arithmetic Logic Unit, ALU)의 동작에 기반한 CA 트레이스로부터 도출될 수 있다. 전력 사용량의 추정은 또한 이하에 논의된 유전자 함수에 개별적으로 적용될 수 있다.
선점 속성은 다른 일을 수행하기 위해 하나의 일을 방해하는 컨텍스트 스위치(context switch)와 연관된다. 선점은 주로 타이밍 요구를 충족시키기 위해 실제 통신 시스템에서 일어난다. 선점과 관련된 정보는 현실적인 통신 관행에서 선점의 빈도, 얼마나 오래, 및 비용 효과를 배우는데 매우 유용하고 통찰력있다.
도 5는 선점 시나리오(500)가 어떻게 코어 트레이스로부터 검출되었는지를 도시한다. 시작하려면, 특정 작업, 작업 1(502)이 처리된다. 'osTskSchedule'(504), 'osThreadContextSwitch'(506), 및 'SwitchToNewTask'(508) 와 같은 사용자 레벨에서 운영 시스템(OS) 함수는, 트레이스에 나타나서 작업 1(502)이 완료되기 전에 작업을 중단시키는 컨텍스트 스위치를 불러오는 것이다. 이러한 함수는 한 작업이 다른 우선순위가 높은 작업에 의해 언제 선점되는지를 식별한다. 함수 'osTskSchedule'(504)는 현재 작업이 완료되기 전에 어떤 작업이 수행되도록 스케줄 되어 있는지, 새로운 높은 우선순위 또는 타이밍 중요한 작업이 스케줄 되어야 하는지를 지시한다. 함수 'SwitchToNewTask'(508)은 스케줄링에 따라 현재 작업을 완료하기 전에 새로운 작업이 수행될 것이라는 것을 처리 코어(102)에 알린다. 함수 'osThreadContextSwitch'(506)은 새로운 작업으로의 컨텍스트 스위치를 수행하고, 메모리 및 현재 작업이 선점하는 포인트에 데이터를 저장한다. 그 다음으로, 선점 이벤트를 만족시키기 위해 새로운 작업 2(510)가 실행된다. 작업 2(510) 완료 시 트레이스에 'osTskSchedule'(512), 'osThreadContextSwitch'(514), 및 'SwitchToNewTask'(516)와 유사한 OS 함수가 나타나서, 컨텍스트 스위치를 지시하고 프로세스를 작업 1(502)로 되돌린다. 트레이스에서 이러한 함수들을 식별함으로써, 작업 선점의 발생, 길이, 및 빈도가 추적될 수 있다.
도 6은 2-루프 선점 시나리오(600)를 도시한다. 시작하려면, 특정 작업, 작업 1(602)이 처리된다. 제1 선점 이벤트에서, 'osTskSchedule'(604), 'osThreadContextSwitch'(606), 및 'SwitchToNewTask'(608)의 운영 시스템(OS) 함수는, 트레이스에 나타나서 작업 1(602)이 완료되기 전에 작업을 중단시키는 것이다. 그 다음, 제1 선점 이벤트를 만족시키기 위해 새로운 작업 2(610)가 실행된다. 작업 2(510) 중에, 트레이스에 'osTskSchedule'(612), 'osThreadContextSwitch'(614), 및 'SwitchToNewTask'(616) OS 함수가 나타나서, 작업이 완료되기 전에 작업 2(610)를 중단시킨다. 그 다음, 제2 선점 이벤트를 만족시키기 위해 작업 3(618)이 실행된다. 작업 3(618) 완료 시 트레이스에 'osTskSchedule'(620), 'osThreadContextSwitch'(622), 및 'SwitchToNewTask'(624) OS 함수이 나타나서, 프로세스를 작업 2(610)로 되돌린다. 작업 2(610)는 제1 선점 이벤트를 만족시키기 위해 그 실행을 완료하고, 완료를 위하여 OS 함수 'SwitchToNewTask'(626)을 통해 작업 1(602)로 복귀한다. 상기 동작은 다른 다중-루프 선점 시나리오로 쉽게 확장될 수 있다.
도 7은 선점 비용을 평가할 때, 선점 이벤트를 포함하는 트레이스 흐름(700)을 도시한다. 제1 작업(702)은 제2 작업(704)에 의해 선점되기 전에 처리된다. 제2 작업(704)이 완료되면, 제1 작업(702)은 제3 작업(706)에 의해 선점되기 전에 처리가 재개된다. 제3 작업(706)이 완료되면, 제1 작업(702)은 제4 작업(708)에 의해 선점되기 전에 처리가 재개된다. 제4 작업(708)이 완료되기 전에, 제5 작업(710)이 발생하고, 제4 작업(708)을 선점하며, 2-루프 선점 이벤트를 생성한다. 제5 작업(710)이 완료되면, 제4 작업(708)은 완료로 재개한 후, 제1 작업(702) 처리를 재개한다. 제1 작업(702)은 추가 선점 작업을 조건으로 하여 완료로 진행한다. 선점 이벤트를 조건으로 하여 10ms 간격으로 수백 또는 수천개의 작업이 수행될 수 있다.
선점 이벤트의 비용은 선점 작업과 오버헤드의 크기의 합에 의해 정해진다. 크기는 명령 또는 사이클의 수로 정의된다. 오버헤드는 시작 및 종료 선점에 사용되는 OS 함수 명령들을 포함한다. 오버헤드 명령은 선점 이벤트를 식별하는데 도움을 주며 코어 트레이스로부터 도출된다. 선점 비용에 대한 정보는 선점이 실제로 필요한지 여부를 결정하고, 필요한 경우에, 선점된 작업에 미치는 영향(도입된 지연)을 정하는데 유용하다. 각 선점 이벤트에 대한 선점 비용을 기반으로 하여, 트레이스의 선점 백분율은 모든 선점 이벤트에 대해 선점 작업과 오버헤드 크기의 합을 트레이스의 크기로 나눈 값의 합으로 정의된다. 특정 임계값을 초과하는 선점 비용은, 선점 비용을 줄이기 위해 명령 시퀀스가 변경을 유도할 것이다. 자동화된 계획은 선점 비용 및 사이클 수의 백분율을 추정하는데 사용될 수 있다. 코어 트레이스는, 연관된 오버헤드 함수 명령들을 통해 선점 이벤트를 식별하고 선점 비용의 추정 및 백분율의 결정을 시작하기 위해 분석된다. 그 다음, 선점 이벤트를 분석하여 선점 이벤트가 왜 발생했는지, 선점 이벤트가 필요한지 여부, 및 시스템 성능에 미치는 영향을 식별할 수 있다.
코어 트레이스의 데이터 마이닝은 시스템에서 실행되는 개별 함수에 적용될 수 있다. 함수 라이브러리 데이터베이스는 본 명세서에서 유전자 함수로 명명된 명령의 실행 동안, 처리 장치(101)에 의해 수행되는 주요 기본 함수의 목록으로 생성될 수 있다. 아래에 명시된 유전자 함수는 최상위-레벨 시스템 설계 데이터 흐름에서 함수 블록으로 표시된다. 유전자 함수 라이브러리 데이터베이스는 차세대 시스템 설계를 위한 체계적이고, 효율적이며, 자동화된 설계 환경을 위한 토대를 설립하는데 사용된다.
일반적으로, 유전자 함수 라이브러리 데이터베이스는 명령 레벨에서의 코어 트레이스로부터의 수집한 정보, 명령-레벨 트레이스를 계층적 함수 포맷으로 변환한 것, 계층적 함수 포맷에서 유전자 함수를 식별한 것, 유전자 함수 라이브러리 데이터베이스에 들어가기 위해 유전자 함수에 대해 도출된 속성에 따라, 데이터 마이닝 분석기(118)에 의해 생성된다. 유전자 함수 라이브러리 데이터베이스에 포함되기 위한 유전자 함수의 속성은 계층적 함수 포맷과 코어 트레이스로부터 도출된다. 이러한 속성들은 메모리 사용량, 데이터 처리량, 작업 로드, 선점, 전력 사용량 등 상기 논의된 것들을 포함한다.
유전자 함수 라이브러리-코어 트레이스 및 함수 심볼 표를 확립하기 위해 다음의 데이터가 수집된다. 코어 트레이스는 명령 어드레스, 명령의 타임 스탬프, 로드(읽기) 및 저장(쓰기) 동작, 데이터 위치, 및 데이터 크기에 대한 정보를 제공한다. 함수 심볼 표는 트레이스의 각 명령 어드레스를 어플리케이션 또는 OS 함수에 매핑한다.
도 8은 부분적인 코어 트레이스(800)의 예를 도시한다. 일반적으로, 코어 트레이스는 명령 레벨 상에서 생성된다. 코어 트레이스(800)는 처리 장치(101)에서 실행되는 예시적인 명령들(802-812)을 포함한다. 각 명령은 시퀀스 번호(820), 명령 어드레스(822), 명령어 니모닉(command mnemonic)(824), 및 대응 카운트 값(828)을 갖는 사이클 카운트(CCount)(826)를 포함한다. 명령(802)은 또한 어드레스(832) 및 거기에 쓰인 저장 값(834)을 식별하는, 저장 동작(830)을 포함한다. 명령(806)은 어드레스(842) 및 이로부터 읽은 로드 값(844)을 식별하는, 로드 동작(840)을 포함한다. 명령은 실시간으로 수집되어 사후 처리 및 분석에 사용 가능하다. 함수 심볼 표를 사용하면, 트레이스는 명령 레벨로부터 APP/OS 함수 레벨로 변환할 수 있다. 트레이스에서 명령의 수에 대한 함수의 수의 비율은 대략 1에서 100이다. 설명하기 위한 목적으로, 비록 다른 수의 함수와 명령이 가능하다 할지라도, 코어 트레이스(800)는 단일 함수와 6개의 명령을 가지는 것으로 도시된다. 또한, 명령(802)에서 '입력', 명령(812)에서 (호출된 함수로/에서)'리턴'과 같은 트레이스로부터의 명령의 'mne' 명령어 니모닉을 사용하여 개별 함수들이 식별되고 트레이스는 계층적 함수 포맷으로 변환될 수 있다.
도 9는 도 8의 코어 트레이스(800)와 같은 코어 트레이스로부터 데이터 마이닝 분석기(118)에 의해 생성된 부분적인 계층적 함수 포맷(900)의 예를 도시한다. 코어 트레이스는 처리 장치(101)에 의해 처리된 개별적인 함수를 식별하기 위해 데이터 마이닝 분석기(118)에 의해 분석된다. 각 명령에서 제공되는 명령어 니모닉으로부터, 함수는 식별되고 계층적 함수 포맷(900)에 추가된다. 계층적 함수 포맷(900)은 각 개별적인 함수를 나타내는 복수의 함수 선들(901)을 포함한다. 각 함수 선들(901)은 그 함수의 특정 양상을 나타내는 아이템 목록을 갖는다. 계층적 함수 포맷(900)에서, 각 라인의 제1 필드(902)는 함수의 레벨을 나타낸다. 예를 들어, 함수 'LBB_ULDSP_PuschMainProc'는 레벨 4이고, 'LBB_ULDSP_PuschMainProc'에 의해 호출되는 'LBB_ULDSP_PuschSym9Proc'는 레벨 5이다. 더하기(+) 기호는 현재 함수가 다른 함수를 호출하는 것을 의미한다. 마이너스(-) 기호는 호출하는 함수로 돌아오는 것을 나타낸다. 제2 필드(904)는 함수의 명칭을 나타낸다. 제3 필드(905)는 함수의 타입을 나타낸다. APP와 OS라는 용어는 함수가 '어플리케이션' 또는 'OS' 함수라는 것을 의미한다. 제4 필드(906)는 함수와 연관된 명령의 수를 나타내는 명령 번호이다. 제5 필드(908)는 트레이스에서 함수의 순차적인 순서를 나타내는 순서 번호이다. 예를 들어, 제1 함수 선(901)은 6,224번째 함수으로서 'LBB_ULDSP_PuschMainProc'(904)를 나타낸다. 제6 필드(910)는 함수가 호출되기 전 누적된 명령 수를 나타내는 누적 값이다. 예를 들어, 함수 'LBB_ULDSP_PuschMainProc'(904)이 호출되기 전에는, 총 663,376개의 명령이 있었다. 제7 필드(912)는 함수가 시작(및 종료)되는 위치가 어디인지를 쉽게 찾을 수 있는 원래 트레이스의 시작 명령 번호를 나타내는 시작 번호이다. 유전자 함수는 계층적 함수 포맷(900)과 일치하고, 유전자 함수에 대한 속성은 코어 트레이스와 유전자 함수 라이브러리 데이터베이스에 들어가기 위한 계층적 함수 포맷으로부터 도출된다.
도 10은 예시적인 유전자 함수와 연관된 코어 트레이스(1000)의 예를 도시한다. 이하에 논의된 시스템 레벨 설계 데이터 흐름도에서, 함수 'LBB_ULDSP_PuschMainProc'은 유전자 함수로 식별된다. 유전자 함수는 도 9의 계층적 함수 포맷(900)의 함수 선(901)과 일치한다. 이 예시에서, 유전자 함수 'LBB_ULDSP_PuschMainProc'은 도 9의 상부 함수 선(901)에서 찾을 수 있다. 코어 트레이스(1000)의 명령들(1002-1010)은 유전자 함수 'LBB_ULDSP_PuschMainProc'에 대응한다. 유전자 함수는 주로 유전자 함수의 이름, 유전자 함수와 연관된 전력 사용량, 로드와 저장의 수, 메모리 사용량, 데이터 흐름, 작업 로드, 및 선점에 의해 정의된다. '시작'과 '종료' 명령에 의해 정의된 원래 트레이스의 대응하는 명령의 부분은 트레이스-기반(CA) 시뮬레이션에 대한 유전자 함수와 연관된 트레이스를 유일하게 정의한다. 유전자 함수 'LBB_ULDSP_PuschMainProc'은 원래 트레이스에서 제공한대로 명령 1002의 '176018361', 명령 1010의 '176018365'으로 색인된 '시작'과 '종료'명령을 가진다. 코어 트레이스(1000)은 유전자 함수 'LBB_ULDSP_PuschMainProc'에 대한 유전자 함수 라이브러리 데이터베이스에 입력을 생성하고, 그와 연관된 속성을 도출하는데 사용된다. 다양한 무선 통신 시나리오로 인해 동일한 어플리케이션 함수와 연관된 하나 이상의 유전자 함수가 있을 수 있다.
도 11은 처리 장치(101)에 의해 실행되는 명령과 연관된 전형적인 무선 통신 장치의 표준 최상위-레벨 시스템 설계에서의 데이터 흐름도(1100)의 예를 도시한다. 데이터 흐름도(1100)는 무선 통신 장치(101)의 표준 시스템 설계에서 수행되는 특정 함수 또는 유전자 함수를 도시한다. 데이터 흐름도(1100)에서 도시된 유전자 함수는 공공 무선 인터페이스(CRPI) 함수(1102), 시간 영역 처리(TDP) 하드웨어 가속기(HAC) 구성 함수(1104), TDP 및 고속 푸리에 변환(FFT) 함수(1106), 및 디지털 자동 이득 제어(DAGC) 함수(1108)를 포함한다. 이들 유전자 함수에 의해 수행된 계산, 그들 각각의 상호 작용 및 메모리 버퍼(1110)들은 각각의 유전자 함수와 연관된 트레이스의 유전자 함수 라이브러리를 구축하는데 사용될 수 있다. 유연하고 조정 가능한 세분화된 이러한 유형의 함수 블록들은 시스템 아키텍쳐의 기본요소이자 중요한 요소이며, 새로운 시스템 아키텍쳐를 체계적으로 탐색하기 위한 기본 및 기반 역할을 하는, 대응하는 유전자 함수의 정의로 이어진다. 상기에서 도시된 바와 같이, 데이터 흐름도(1100)와 같은 시스템 레벨 설계 데이터 흐름에서 결정된 것과 같은 유전자 함수들은 데이터 마이닝 분석기(118)에 의해 계층적 함수 포맷(900)으로 일치되고, 그 곳으로부터 추출되어 유전자 함수 라이브러리 데이터베이스에 배치된다. 각 유전자 함수는 분석의 세분성을 높이기 위해 하나 이상의 유전자 함수 서브-그룹으로 나눌 수 있다. 코어 트레이스로부터, 상술한 속성들과 연관된 각 유전자 함수에 대한 정보는 유전자 함수 라이브러리 데이터베이스에 삽입하기 위해 도출된다. 각 유전자 함수에 대해, 유전자 함수 라이브러리 데이터베이스는 유전자 함수에 의해 얼마나 많은 데이터가 사용되는지, 유전자 함수와 연관된 데이터 처리량, 유전자 함수의 작업 로드, 유전자 함수에 의해 얼마 만큼의 전력이 소비되는지, 및 유전자 함수 처리 중 선점 이벤트의 발생과 같은 정보를 포함한다.
도 12는 특정 유전자 함수(이 예에서는 Ruu)이 발견되는 횟수만을 가르키는, 부분 계층적 함수 포맷(1200)의 예를 도시한다. 설명하기 위한 목적으로, 예시로서, Ruu 함수 블록은 코어 트레이스로부터 도출된 APP 'LBB_ULDSP_PUSCH_RuuMainProc' 함수와 관련된다. 따라서, Ruu 유전자 함수를 정의하기 위해 유전자 함수 라이브러리 데이터베이스 입력을 생성하는 것은, 트레이스에서 상기 유전자 함수가 언제 발생하는지에 상관없이 코어 트레이스에서 계층적 함수 포맷으로 변환된 'LBB_ULDSP_PUSCH_RuuMainProc' 유전자 함수의 모든 발생의 목록화에서 시작한다. 계층적 함수 포맷으로부터, 이 유전자 함수를 호출하는 시기, 장소와 방법 뿐 아니라 수행하는 모든 함수 동작을 도출할 수 있다. 이러한 방식으로, 특정 유전자 함수를 개별적으로 분석할 수 있다.
유전자 함수 라이브러리 데이터베이스는 토큰-기반(IA 트레이스), 트레이스-기반(CA 트레이스) 시스템 시뮬레이션 및 탐색을 위해 구축될 수 있다. 시스템의 토큰-기반 시뮬레이션에 대해, 의미있는 시뮬레이션 결과를 얻기 위해서는 데이터 흐름, 작업 로드, 대응하는 유전자 함수들의 전력 사용량, 및 메모리 사용량의 정확한 정보가 반드시 필요하다. 토큰-기반 시뮬레이션은 토큰이라고 하는 간단한 심볼들의 세트로서, 추상적으로 데이터 전송을 나타내는 시스템 아키텍쳐의 성능 모델을 제공한다. 실제의 어플리케이션 데이터나 변환은 시간 상 일련의 사건들을 제어하는데 필요한 것 이외에 설명되어 있지 않다. 토큰-기반 시뮬레이션은 프로그램 실행과 아키텍쳐 시뮬레이션을 인터리빙(interleaving)함으로써 많은 트레이스 저장 요구 사항을 피한다. 어플리케이션 데이터는 모델링되지 않으며 제어 정보만 모델링된다. 전형적으로, 토큰-기반 시뮬레이션은 멀티프로세서 네트워크 시스템이 주요 시스템 함수를 수행하는 시간을 해결한다. 토큰-기반 시뮬레이션은 메모리 버퍼 공간, 통신 연결 및 프로세서 유닛과 같은 리소스(resource)의 사용을 계속 추적한다. 네트워크 구조는 네트워크 노드 레벨까지 이하에서 설명된다. 네트워크 노드는 프로세서 요소, 네트워크 스위치, 공유된 메모리, 및 I/O 유닛을 포함한다. 네트워크 노드의 내부 구조는 토큰-기반 시뮬레이션에 설명되지 않는다.
도 13은 트레이스-기반 시뮬레이션에 대한 유전자 함수 라이브러리 데이터베이스의 어플리케이션을 위한 최상위 레벨 시스템 설계 데이터 흐름(1302), 계층적 함수 포맷(1304), 및 명령(1306)의 코어 트레이스 사이의 관계를 도시한다. 트레이스 기반 시뮬레이션은 성능 예측의 목적을 위해 사이클 마다 주기적으로 프로그램 실행 또는 시스템 구성 요소 접근의 트레이스를 조사함으로써 수행되는 시스템 시뮬레이션을 의미한다. 트레이스-기반 시뮬레이션은 매우 큰 컴퓨터 클러스터(cluster)에서 메시지 전달 성능을 분석하는 것을 포함하여 다양한 어플리케이션에서 사용될 수 있다. 트레이스-기반 시뮬레이터에는 보통 두가지 컴포넌트: 동작을 실행하고 결과를 저장하는 것(즉, 트레이스)과 트레이스의 로그 파일을 읽고 그것을 새로운(종종 더 복잡한) 시나리오로 보간하는 것이 있다. 예를 들어, 큰 컴퓨터 클러스터 설계의 경우, 적은 수의 노드에서 실행되고, 로그 파일에 트레이스가 남는다. 시뮬레이터는 그러한 로그 파일을 읽고 더 많은 수의 노드에서 성능을 시뮬레이션하므로, 따라서 훨씬 적은 수의 노드에서 실행 트레이스에 기반하여 매우 큰 어플리케이션의 성능을 보도록 제공한다.
명령들(1306)의 코어 트레이스는 IA 트레이스 정보 및 도출된 CA 트레이스 정보로부터 도출된다. 계층적 함수 포맷(1304)은 명령들(1306)의 코어 트레이스의 분석을 통해 생성된다. 최상위 레벨 시스템 설계 데이터 흐름(1302)은 유전자 함수 데이터베이스에 포함시키기 위한 유전자 함수를 식별한다. 최상위 레벨 시스템 설계 데이터 흐름(1302)으로부터의 유전자 함수는 계층적 함수 포맷(1304)의 함수와 일치된다. 각 유전자 함수와 연관된 특정 명령은 유전자 함수 데이터베이스에 포함시키기 위한 속성을 도출하는데 사용된다. 유전자 함수와 연관된 트레이스는 시스템 설계의 CA(Cycle-Accurate) 시뮬레이션에 사용된다. 상술한 메모리 사용량, 데이터 처리량, 작업 로드, 선점 및 전력 사용량은 최상위 레벨 분석 및 시뮬레이션을 위해 개별적으로 각 유전자 함수에 대해 도출되고, 평가될 수 있다. 유전자 함수의 선점이 검출될 수 있으며, 특정 유전자 함수와 연관된 선점 비용과 백분율은 상술한 방식으로 결정될 수 있다.
도 14는 상술한 특징들에 기초하여 코어 트레이스로부터 데이터 마이닝을 하기 위한 프로세스(1400)를 도시한다. 프로세스(1400)는 하나 이상의 코어 트레이스가 명령 실행의 시퀀스를 식별하도록 검출하는 블록(1402)에서 시작된다. 블록(1404)에서, 코어 트레이스 내의 명령 어드레스는 적절한 어플리케이션 및 OS 함수에 매핑된다. 매핑된 함수는 블록(1406)에서 계층적 포맷으로 정렬된다. 하나 이상의 유전자 함수는 블록(1408)에서 계층적 포맷으로부터 식별된다. 각각의 유전자 함수에 대해, 블록(1410)에서, 계층적 포맷과 코어 트레이스로부터 속성이 도출된다. 유전자 함수 라이브러리 데이터베이스는 블록(1410)에서 도출된 속성을 포함하는 각 유전자 함수에 대한 입력으로 블록(1412)에서 덧붙여진다. 특정 유전자 함수에 대한 선점 이벤트의 추가 검출은 블록(1414)에서 수행될 수 있다. 선점 이벤트를 검출하면, 선점 비용 및 선점된 유전자 함수와 연관된 백분율이 블록(1416)에서 결정된다.
도 15는 본원에 개시된 하나 이상의 실시예를 구현하는데 있어서, 트레이스 누적기(116) 및 데이터 마이닝 분석기(118)에 적합한 범용 컴퓨팅 컴포넌트(1500)의 단순화된 예를 도시한다. 유전자 함수 라이브러리 데이터베이스의 생성을 통해 코어 트레이스를 검출하기 위한 상기 기술된 특징들은 충분한 처리 능력, 메모리 리소스, 및 필요한 작업 로드를 다루기 위한 네트워크 처리량 함수를 가지는, 컴퓨터 또는 네트워크 컴포넌트와 같은 범용 컴퓨터 컴포넌트에서 구현될 수 있다. 컴퓨팅 컴포넌트(1500)는 본원에 설명된 특징을 수행할 수 있도록 트레이스 누적기(116) 및 데이터 마이닝 분석기(118)에서 구현될 수 있다. 컴퓨팅 컴포넌트(1500)는 보조 저장 장치(1504), 읽기 전용 메모리(Read only memory, ROM)(1506), 랜덤 액세스 메모리(Random access memory, RAM)(1508), 입/출력(I/O) 장치(1510), 및 네트워크/컴포넌트 접속 장치들(1512)를 포함하는 메모리 장치와 통신하는 프로세서(1502) (이는 중앙 처리 유닛 또는 CPU로 지칭될 수 있다)를 포함한다. 상기 프로세서(1502)는 하나 이상의 CPU 칩으로 구현될 수 있거나, 또는 하나 이상의 주문형 집적 회로(ASICs)의 일부일 수 있다.
보조 저장 장치(1504)는 전형적으로 하나 이상의 디스크 드라이브 또는 테이프 드라이브로 구성되며, 만약 RAM(1508)이 모든 작업 데이터를 보유하기에 충분히 크지 않은 경우에는 데이터의 비 휘발성 저장 및 오버-플로우 데이터 저장 장치로 사용된다. 보조 저장 장치(1504)는 어떤 프로그램이 실행을 위해 선택될 때, RAM(1508)에 로드되는 프로그램을 저장하는데 사용될 수 있다. ROM(1506)은 프로그램 실행 중에 읽히는 명령들 및 아마도 데이터를 저장하는데 사용된다. ROM(1506)은 전형적으로 보조 저장 장치(1504)의 더 큰 메모리 용량에 비해 상대적으로 작은 메모리 용량을 갖는 비 휘발성 메모리 장치이다. RAM(1508)은 휘발성 데이터, 아마도 명령을 저장하는데 사용된다. ROM(1506) 및 RAM(1508) 모두에 대한 접근은 전형적으로 보조 저장 장치(1504) 보다 빠르다. 유전자 함수 라이브러리 데이터베이스는 보조 저장 장치(1504) 또는 RAM(1508)에 유지될 수 있다. 추가의 프로세서 및 메모리 장치는 트레이스 누적기(116) 또는 데이터 마이닝 분석기(118) 내의 각 컴포넌트의 함수에 기반하여 통합될 수 있다.
본 발명의 다른 실시예에서, 무선 베이스밴드 설계를 위한 처리 시스템에서의 코어 트레이스로부터 데이터 마이닝을 하기 위한 장치는 처리 시스템 내의 코어 트레이스를 검출하기 위한 검출 수단을 포함하고, 상기 코어 트레이스는 처리 시스템에서 실행되는 명령의 시퀀스이다. 또한, 상기 장치는 상기 복수의 어플리케이션 또는 운영 시스템 함수들에 상기 코어 트레이스 내의 명령 어드레스들을 매핑하는 매핑 수단과 매핑된 함수를 계층적 포맷으로 배치하기 위한 포맷 수단을 포함한다. 상기 장치는 계층적 포맷 내의 유전자 함수를 식별하기 위한 식별 수단과 계층적 포맷으로부터의 유전자 함수에 대한 속성을 도출하는 속성 도출 수단을 더 포함하는데, 상기 유전자 함수는 처리 시스템에 의해 실행되는 기본 함수다. 또한, 상기 장치는 유전자 함수 라이브러리 데이터베이스에 상기 속성을 저장하는 저장 수단을 포함한다.
검출 수단에 의해 검출되는 코어 트레이스는 명령 어드레스, 타임 스탬프, 로드/저장 동작, 데이터 위치 및 데이터 크기를 포함한다. 검출 수단은 하나 이상의 명령 어드레스, 타임 스탬프, 로드/저장 동작, 데이터 위치 및 데이터 크기를 추출하도록 구성된다. 속성 도출 수단은 다음 속성:
명령 실행 중에 다양한 메모리 공간에 관하여 상기 처리 시스템에 의해 이용되는 메모리 사용량으로서, 상기 메모리 사용량은 코어 트레이스 내의 로드/저장 명령 정보로부터 도출된 메모리 사용량;
명령 실행 중에 처리 시스템 내의 처리량으로서, 상기 처리량은 중앙 처리 코어와 캐시 간 교환되는 데이터 흐름 정보와 캐시와 메모리 서브-시스템 간 교환되는 데이터 흐름 정보로부터 도출된 처리량;
명령 실행 중에 처리 시스템 내의 작업 로드로서, 상기 작업 로드는 순환-정확성 트레이스로부터의 코어의 기준 작업 로드, 캐시 미스 카운트, 및 다양한 메모리 공간 방문으로부터의 레이턴시 정보로부터 도출된 작업 로드; 및
명령 실행 중에 처리 시스템의 전력 사용량으로서, 상기 전력 사용량은 로드/저장 및 논리 연산 장치(ALU) 동작의 카운트로부터 도출된 전력 사용량;
중 하나 이상을 도출하도록 구성된다.
일부 실시예에서, 하나 이상의 장치의 함수 또는 프로세스 중 일부 또는 전부는, 컴퓨터 판독 프로그램 코드로 형성되고 컴퓨터 판독 가능 매체에 구현되는 컴퓨터 프로그램에 의해 지원되거나 구현된다. "코드"라는 문자는 소스 코드, 개체 코드 및 실행 코드를 비롯한 모든 종류의 컴퓨터 코드를 포함한다. "컴퓨터 판독 가능 매체"라는 문자는 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브, 콤팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 다른 유형의 메모리 등과 같은 컴퓨터에 의해 접근할 수 있는 임의의 유형의 매체를 포함한다. 실행 시, 컴퓨터 프로그램은 코어 트레이스를 검출하고, 상기 코어 트레이스를 계층적 포맷으로 전환하고, 유전자 함수 데이터베이스를 생성하며, 상기 유전자 함수와 연관된 선점 비용을 결정할 수 있다.
이는 본 특허 명세서 전체에 걸쳐 사용된 특정 단어 및 문자의 정의를 제시하는 것이 바람직할 수 있다. "포함" 및 "이루다"는 그 파생물 뿐만 아니라, 제한없이 포함하는 것을 의미한다. "또는"이라는 용어는 포함한다는 것으로, 및/또는 을 의미한다. 본원에서 사용된 "연관된", "그것과 연관된" 뿐만 아니라 그에 의해 파생된 문구인, 포함하거나, ~내에 포함하거나, 상호 연결하거나, 들어있다, ~내에 들어있다, 연결하거나 ~와 연결하다, 결합하거나 ~와 결합하다, ~와 통신할 수 있거나, ~와 협력하다, 병치하거나, 나란히 놓거나, 근접시키거나, 묶거나 ~와 묶다, 갖다, 소유하는 등의 행위를 의미한다.
본 개시는 특정 실시예와 일반적으로 연관된 방법을 기술하였지만, 이들의 실시예 및 방법의 변경 및 치환은 통상의 기술자에게 명백하고 용이하게 인식 가능할 것이다. 따라서, 예시적인 실시예들의 상기 설명은 본 개시를 한정하거나 제한하지 않는다. 다음의 청구범위에 의해 정의된 바와 같은 본 개시의 범위를 벗어나지 않으면서 다른 변경, 대체 및 변화가 가능하다.
Claims (14)
- 무선 베이스밴드(wireless baseband) 설계를 위한 처리 시스템에서의 코어 트레이스(core trace)로부터 데이터 마이닝을 하기 위한 방법으로서,
상기 처리 시스템에서 코어 트레이스를 검출하는 단계 - 상기 코어 트레이스는 상기 처리 시스템에서 실행되는 명령들의 시퀀스임-;
상기 코어 트레이스 내의 명령 어드레스들을 복수의 어플리케이션 또는 운영 시스템 함수들에 매핑하는 단계;
상기 매핑된 함수들을 계층적 포맷(hierarchical format)에 배치하는 단계;
상기 계층적 포맷에서 유전자 함수(gene function)를 식별하는 단계 - 상기 유전자 함수는 상기 처리 시스템에 의해 실행되는 기본 함수(fundamental function)임-;
상기 계층적 포맷으로부터 상기 유전자 함수에 대한 속성을 도출하는 단계; 및
유전자 함수 라이브러리 데이터베이스에 상기 속성을 저장하는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 코어 트레이스는 명령 어드레스, 타임 스탬프, 로드/저장 동작, 데이터 위치 및 데이터 사이즈를 포함하는, 방법. - 제1항 또는 제2항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 다양한 메모리 공간에 대한 상기 처리 시스템에 의해 이용되는 메모리 사용량(memory usage)이고,
상기 메모리 사용량은 코어 트레이스 내의 로드/저장 명령 정보로부터 도출되는, 방법. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템 내의 처리량(throughput)이고,
상기 처리량은, 중앙 처리 코어와 캐시 사이에 교환되는 데이터 흐름 정보 및 캐시와 메모리 서브 시스템 사이에 교환되는 데이터 흐름 정보로부터 도출되는,방법. - 제1항 내지 제4항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템의 작업 로드(workload)이고,
상기 작업 로드는 순환-정확성 트레이스(Cyclic-Accurate traces)로부터의 코어의 기준 작업 로드(baseline workload), 캐시 미스 카운트(cache miss counts), 및 다양한 메모리 공간에의 방문으로부터의 레이턴시 정보(latency information)로부터 도출되는, 방법. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템의 전력 사용량이고,
상기 전력 사용량은 논리 연산 장치(Arithmetic Logic Unit, ALU) 동작과 로드/저장의 카운트로부터 도출되는, 방법. - 제1항 내지 제6항 중 어느 한 항에 있어서,
유전자 함수의 실행 동안, 선점 이벤트(preemption event)를 검출하는 단계; 및
상기 선점 이벤트로 인한 비용을 결정하는 단계를
더 포함하는 방법. - 무선 베이스밴드 설계를 위한 처리 시스템에서의 코어 트레이스로부터 데이터 마이닝을 하기 위한 장치로서,
데이터와 명령 코드를 저장하도록 구성된 메모리; 및
상기 명령 코드를 실행하는 때
상기 처리 시스템에서 코어 트레이스를 검출하고 - 상기 코어 트레이스는 처리 시스템에서 실행되는 명령들의 시퀀스임-;
상기 코어 트레이스 내의 명령 어드레스들을 복수의 어플리케이션 또는 운영 시스템 함수들에 매핑하며;
상기 매핑된 함수들을 계층적 포맷으로 배치하고;
상기 계층적 포맷에서 유전자 함수를 식별하고 - 상기 유전자 함수는 상기 처리 시스템에 의해 실행되는 기본 함수임-;
상기 계층적 포맷으로부터 유전자 함수에 대한 속성을 도출하고; 및 유전자 함수 라이브러리 데이터베이스에 상기 속성을 저장하도록 구성된, 프로세서; 를 포함하는 장치. - 제8항에 있어서,
상기 코어 트레이스는 명령 어드레스, 타임 스탬프, 로드/저장 동작, 데이터 위치 및 데이터 사이즈를 포함하는, 장치. - 제8항 또는 제9항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 다양한 메모리 공간에 대해 상기 처리 시스템에 의해 이용되는 메모리 사용량이고,
상기 메모리 사용량은 코어 트레이스 내의 로드/저장 명령 정보로부터 도출되는, 장치. - 제8항 내지 제10항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템 내의 처리량이고,
상기 처리량은, 중앙 처리 코어와 캐시 사이에 교환되는 데이터 흐름 정보 및 캐시와 메모리 서브 시스템 사이에 교환되는 데이터 흐름 정보로부터 도출되는, 장치. - 제8항 내지 제11항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템의 작업 로드이고,
상기 작업 로드는 순환-정확성 트레이스로부터의 코어의 기준 작업 로드, 캐시 미스 카운트, 및 다양한 메모리 공간에의 방문으로부터의 레이턴시 정보로부터 도출되는, 장치. - 제8항 내지 제12항 중 어느 한 항에 있어서,
상기 도출된 속성 중 하나는, 명령을 실행하는 동안 처리 시스템의 전력 사용량이고,
상기 전력 사용량은 논리 연산 장치(Arithmetic Logic Unit, ALU) 동작과 로드/저장의 카운트로부터 도출되는, 장치. - 제8항 내지 제13항 중 어느 한 항에 있어서,
상기 프로세서는, 유전자 함수의 실행 동안, 선점 이벤트를 검출하고;
상기 선점 이벤트로 인한 비용을 결정하도록 구성된, 장치.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/983,934 | 2015-12-30 | ||
US14/983,934 US11636122B2 (en) | 2015-12-30 | 2015-12-30 | Method and apparatus for data mining from core traces |
PCT/CN2016/113076 WO2017114472A1 (en) | 2015-12-30 | 2016-12-29 | Method and apparatus for data mining from core traces |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180096780A true KR20180096780A (ko) | 2018-08-29 |
KR102161192B1 KR102161192B1 (ko) | 2020-09-29 |
Family
ID=59224591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187021601A KR102161192B1 (ko) | 2015-12-30 | 2016-12-29 | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11636122B2 (ko) |
EP (1) | EP3391224B1 (ko) |
KR (1) | KR102161192B1 (ko) |
CN (1) | CN108885579B (ko) |
WO (1) | WO2017114472A1 (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10635769B1 (en) * | 2015-12-08 | 2020-04-28 | Xilinx, Inc. | Hardware and software event tracing for a system-on-chip |
KR102353859B1 (ko) * | 2017-11-01 | 2022-01-19 | 삼성전자주식회사 | 컴퓨팅 장치 및 비휘발성 듀얼 인라인 메모리 모듈 |
US11023442B2 (en) | 2018-02-23 | 2021-06-01 | Accenture Global Solutions Limited | Automated structuring of unstructured data |
CN110275670B (zh) * | 2018-03-16 | 2021-02-05 | 华为技术有限公司 | 控制存储设备中数据流的方法、装置、存储设备及存储介质 |
US11231987B1 (en) * | 2019-06-28 | 2022-01-25 | Amazon Technologies, Inc. | Debugging of memory operations |
CN116719643B (zh) * | 2023-07-17 | 2024-04-05 | 合芯科技有限公司 | 一种优化三级缓存访问延迟的多核处理器调度方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223186B1 (en) * | 1998-05-04 | 2001-04-24 | Incyte Pharmaceuticals, Inc. | System and method for a precompiled database for biomolecular sequence information |
US20050080791A1 (en) * | 2003-10-09 | 2005-04-14 | Ghatare Sanjay P. | Translating data access requests |
KR20110084458A (ko) * | 2008-11-14 | 2011-07-22 | 콸콤 인코포레이티드 | 무선 네트워크에 대한 용량 모니터링과 권장되는 액션을 촉진하기 위한 시스템 및 방법 |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140337A1 (en) | 2001-12-21 | 2003-07-24 | Celoxica Ltd. | System, method, and article of manufacture for data transfer reporting for an application |
US7401057B2 (en) * | 2002-12-10 | 2008-07-15 | Asset Trust, Inc. | Entity centric computer system |
US20050065969A1 (en) * | 2003-08-29 | 2005-03-24 | Shiby Thomas | Expressing sequence matching and alignment using SQL table functions |
US7779238B2 (en) | 2004-06-30 | 2010-08-17 | Oracle America, Inc. | Method and apparatus for precisely identifying effective addresses associated with hardware events |
US8010337B2 (en) * | 2004-09-22 | 2011-08-30 | Microsoft Corporation | Predicting database system performance |
CN100356341C (zh) | 2005-11-08 | 2007-12-19 | 北京大学 | 基于模拟器的嵌入式软件运行时能耗估算方法 |
US8543367B1 (en) | 2006-02-16 | 2013-09-24 | Synopsys, Inc. | Simulation with dynamic run-time accuracy adjustment |
US7502777B2 (en) * | 2006-02-28 | 2009-03-10 | Red Hat, Inc. | System and method for self tuning object-relational mappings |
US7984336B2 (en) | 2006-05-24 | 2011-07-19 | Freescale Semiconductor, Inc. | Method and system for storing data from a plurality of processors |
CN101246449B (zh) | 2008-02-25 | 2011-08-10 | 华为技术有限公司 | 跟踪函数调用轨迹的方法和装置 |
CN103425565B (zh) | 2012-05-16 | 2016-01-06 | 腾讯科技(深圳)有限公司 | 获取程序运行信息的方法及*** |
CN103530471B (zh) | 2013-10-23 | 2017-03-08 | 中国科学院声学研究所 | 一种基于模拟器的关键路径分析方法 |
US9965279B2 (en) * | 2013-11-29 | 2018-05-08 | The Regents Of The University Of Michigan | Recording performance metrics to predict future execution of large instruction sequences on either high or low performance execution circuitry |
AU2015311866B2 (en) * | 2014-09-03 | 2018-06-07 | Nant Holdings Ip, Llc | Synthetic genomic variant-based secure transaction devices, systems and methods |
US20180329873A1 (en) * | 2015-04-08 | 2018-11-15 | Google Inc. | Automated data extraction system based on historical or related data |
-
2015
- 2015-12-30 US US14/983,934 patent/US11636122B2/en active Active
-
2016
- 2016-12-29 WO PCT/CN2016/113076 patent/WO2017114472A1/en active Application Filing
- 2016-12-29 CN CN201680077507.4A patent/CN108885579B/zh active Active
- 2016-12-29 KR KR1020187021601A patent/KR102161192B1/ko active IP Right Grant
- 2016-12-29 EP EP16881261.8A patent/EP3391224B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6223186B1 (en) * | 1998-05-04 | 2001-04-24 | Incyte Pharmaceuticals, Inc. | System and method for a precompiled database for biomolecular sequence information |
US20050080791A1 (en) * | 2003-10-09 | 2005-04-14 | Ghatare Sanjay P. | Translating data access requests |
KR20110084458A (ko) * | 2008-11-14 | 2011-07-22 | 콸콤 인코포레이티드 | 무선 네트워크에 대한 용량 모니터링과 권장되는 액션을 촉진하기 위한 시스템 및 방법 |
US20140195480A1 (en) * | 2010-12-13 | 2014-07-10 | Fusion-Io, Inc. | Persistent memory management |
Also Published As
Publication number | Publication date |
---|---|
US20170193055A1 (en) | 2017-07-06 |
KR102161192B1 (ko) | 2020-09-29 |
CN108885579A (zh) | 2018-11-23 |
EP3391224B1 (en) | 2020-03-25 |
WO2017114472A1 (en) | 2017-07-06 |
US11636122B2 (en) | 2023-04-25 |
CN108885579B (zh) | 2020-11-27 |
EP3391224A1 (en) | 2018-10-24 |
EP3391224A4 (en) | 2019-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102161192B1 (ko) | 코어 트레이스로부터 데이터 마이닝을 하기 위한 방법 및 장치 | |
US8457943B2 (en) | System and method for simulating a multiprocessor system | |
US20110197174A1 (en) | Method, System and Computer Readable Medium for Generating Software Transaction-Level Modeling (TLM) Model | |
US7779393B1 (en) | System and method for efficient verification of memory consistency model compliance | |
US8428927B2 (en) | Simulation method and simulation apparatus | |
JP3608915B2 (ja) | マルチプロセッシングシステムの性能評価方法および装置並びにマルチプロセッシングシステムの性能評価プログラムを格納した記憶媒体 | |
CN113196243A (zh) | 使用编译器生成的仿真优化元数据改进仿真和跟踪性能 | |
CN109964207A (zh) | 用于时间行程调试和分析的基于高速缓存的跟踪 | |
Nilakantan et al. | Synchrotrace: synchronization-aware architecture-agnostic traces for light-weight multicore simulation | |
US10564992B2 (en) | Simulation apparatus and storage medium | |
Feljan et al. | Towards a model-based approach for allocating tasks to multicore processors | |
Wang et al. | Software performance simulation strategies for high-level embedded system design | |
Bobrek et al. | Stochastic contention level simulation for single-chip heterogeneous multiprocessors | |
Ottlik et al. | Context-sensitive timing simulation of binary embedded software | |
US8340952B2 (en) | Power estimation method and device therefor | |
Daoudi et al. | somp: Simulating openmp task-based applications with numa effects | |
Lu et al. | Fast cache simulation for host-compiled simulation of embedded software | |
CN115858092A (zh) | 时序仿真方法、装置及*** | |
Zhao et al. | Host-compiled reliability modeling for fast estimation of architectural vulnerabilities | |
Davis et al. | The RASE (rapid, accurate simulation environment) for chip multiprocessors | |
Badr et al. | A high-level model for exploring multi-core architectures | |
CN110998540A (zh) | 调试器中的跟踪代码的聚焦的执行 | |
Grüttner et al. | A timed-value stream based ESL timing and power estimation and simulation framework for heterogeneous MPSoCs | |
Posadas et al. | Static Write Buffer Cache Modeling to Increase Host-Compiled Simulation Accuracy | |
Plauth et al. | Assessing NUMA Performance Based on Hardware Event Counters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |