KR20090076782A - 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체 - Google Patents

성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR20090076782A
KR20090076782A KR1020080133542A KR20080133542A KR20090076782A KR 20090076782 A KR20090076782 A KR 20090076782A KR 1020080133542 A KR1020080133542 A KR 1020080133542A KR 20080133542 A KR20080133542 A KR 20080133542A KR 20090076782 A KR20090076782 A KR 20090076782A
Authority
KR
South Korea
Prior art keywords
performance evaluation
processing unit
basic processing
throughput
software
Prior art date
Application number
KR1020080133542A
Other languages
English (en)
Other versions
KR100986784B1 (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 후지쯔 가부시끼가이샤
Publication of KR20090076782A publication Critical patent/KR20090076782A/ko
Application granted granted Critical
Publication of KR100986784B1 publication Critical patent/KR100986784B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3457Performance evaluation by simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2117/00Details relating to the type or aim of the circuit design
    • G06F2117/08HW-SW co-design, e.g. HW-SW partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치에 있어서, 설계 초기에 SW/HW 분할을 알맞게 행하며, SW/HW 분할의 타당성을 판단하는 것을 과제로 한다.
성능 평가 시뮬레이션 장치는 실행 로그에 기초하여 기본 처리 단위로 분할하며, 실행 로그에 유지되는 정보로부터 기본 처리 단위의 처리량을 산출하여, 산출한 처리량이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 하드웨어 모델로 배치 구성을 변경하고, 이 하드웨어 모델과, 소프트웨어 모델의 성능 평가 시뮬레이션을 실행하여, 성능 평가의 기초가 되는 통계 정보를 작성한다.
Figure P1020080133542
소프트웨어, 하드웨어, 시뮬레이션, 성능 평가

Description

성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및 성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체{PERFORMANCE EVALUATION SIMULATION}
본 발명은 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치에 관한 것이다.
종래부터, 전자 기기 등에 이용되는 프로세서, 버스 및 메모리 등은 1개의 LSI(Large Scale Integration) 상에 탑재되며, 이들을 탑재하는 LSI(시스템 LSI) 상에서 복수의 처리가 실행된다. 이 1개의 LSI 상에 복수의 처리가 탑재되는 것은, LSI의 소형화, 저비용화 및 저소비 전력화 등을 목적으로 하고 있지만, LSI의 하드웨어나 아키텍쳐 등을 한번 결정하면, 용이하게 변경하는 것이 곤란하기 때문에, 이 LSI의 기능 설계의 어려움을 증대시키고 있다.
특히, LSI의 소형화나 저비용화 등을 추진하기 위해서는, LSI의 처리 부하를 경감하는 것이 중요하며, 이 LSI에 탑재되는 각 처리를 소프트웨어(이하, 「SW」라고 한다) 혹은 하드웨어(이하, 「HW」라고 한다)의 각각에 알맞게 분할해야 한다. 그래서, LSI 상에서 실행하여야 할 기능을 SW/HW의 어느 쪽에서 실현할지를 LSI 설계 초기 단계에 가결정하고 나서, 이 SW/HW의 성능 검증을 행하고 있다.
상기 성능 검증에 대해서, 예컨대, 소프트웨어는 C 언어나 어셈블리 언어 등으로 기술하며, 성능 검증의 대상이 되는 LSI에 탑재된 프로세서인 타겟 프로세서를 포함하는 실제 기계 모델 또는 타겟 프로세서용 ISS(Instruction Set Simulator) 상에서 실행함으로써, 이 소프트웨어의 동작을 시뮬레이션한다. 또한, 예컨대, 하드웨어는 하드웨어를 기술하기 위한 언어인 RTL(Register Transfer Level)이나 TLM(Transaction Level Model) 등, 또는, 이 RTL 및 TLM을 혼합시킨 것으로 기술함으로써, 이 하드웨어의 동작을 시뮬레이션한다.
이 성능 검증에 있어서, 시스템 LSI 설계 초기 단계에 SW/HW로 분할하는 경우에는, 애플리케이션 프로그램의 소스 코드나 시스템 LSI의 사양 등을 사람 손에 의해 해석하여 분할하며, 이 분할의 타당성을 실행되는 사이클 수 등으로부터 검증하고 있었다. 그리고, 최근에서는, 이 검증을 자동으로 행하는 여러 가지 기술이 개시되어 있다.
예컨대, 특허문헌 1(일본 특허 공개 제2001-142927호 공보)에서는, 어느 정도 완성된 소스 코드를 해석하며, 각 처리부의 클록 사이클 수로부터 산출한 처리량 및 함수의 기술부로부터 산출한 소비 전력 등의 값을 판단 재료로 하여 각 처리부를 SW/HW에 분할한다.
또한, 예컨대, 특허문헌 2(일본 특허 공개 평성 제11-259552호 공보)에서는, 시스템 LSI의 아키텍쳐 기술을 실행 단위로 모듈화하여 SW/HW 분할을 행하며, 벤치 마크 프로그램에 기초하여 시뮬레이션을 실행하여 얻어진 각 모듈의 실행 시간을 비교함으로써, SW/HW 분할의 타당성을 판단한다.
[특허문헌 1] 일본 특허 공개 제2001-142927호 공보
[특허문헌 2] 일본 특허 공개 평성 제11-259552호 공보
그러나, 상기 종래의 기술은, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 곤란하며, SW/HW 분할의 타당성을 판단할 수 없다고 하는 과제가 있었다.
구체적으로는, 특허문헌 1에서는, 애플리케이션 프로그램의 소스 코드가 어느 정도 완성되지 않으면 해석할 수 없기 때문에, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 곤란하다. 또한, 특허문헌 2에서는, 각 실행 단위의 처리 시간을 비교할 뿐이며, 시스템의 캐쉬 해석으로부터 얻어지는 CPU(Central Processing Unit)의 통계 정보를 검토할 수 없기 때문에, SW/HW 분할의 타당성을 판단할 수 없다.
그래서, 본 발명은 전술한 종래 기술의 과제를 해결하기 위해 이루어진 것으로, LSI 상에 탑재되는 처리를 SW/HW에 분할하여 시뮬레이션을 실행하는 데 있어서, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하며, SW/HW 분할의 타당성을 판단하는 것이 가능한 성능 평가 시뮬레이션 장치를 제공하는 것을 목적으로 한다.
전술한 과제를 해결하여, 목적을 달성하기 위해, 본원의 개시하는 성능 평가 시뮬레이션 장치는, 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치로서, 상기 소프트웨 어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 수단과, 상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 수단과, 상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 수단과, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 수단을 구비한 것을 요건으로 한다.
본원의 개시하는 성능 평가 시뮬레이션 장치에 의하면, 설계 초기에 SW/HW 분할을 알맞게 행한다고 하는 효과를 가져오며, SW/HW 분할의 타당성을 판단한다고 하는 효과를 가져온다.
이하에 첨부 도면을 참조하여, 본 발명에 따른 성능 평가 시뮬레이션 장치의 실시예를 상세하게 설명한다. 또한, 이하에서는, 본 발명에 따른 성능 평가 시뮬레 이션 장치의 개요 및 특징, 성능 평가 시뮬레이션 장치의 구성 및 처리의 흐름을 순서대로 설명하며, 마지막으로 본 실시예에 따른 효과를 설명한다.
<실시예 1>
[개요 및 특징]
우선 먼저, 도 1을 이용하여, 실시예 1에 따른 성능 평가 시뮬레이션 장치의 개요 및 특징을 설명한다. 도 1은 실시예 1에 따른 성능 평가 시뮬레이션 장치의 개요 및 특징을 도시하는 도면이다.
이 성능 평가 시뮬레이션 장치는 시스템 LSI의 사양으로부터 소프트웨어 모델과 하드웨어 모델로 분할하여, 분할된 소프트웨어 모델을 실제 기계 상 또는 ISS 등을 이용한 타겟 CPU 상에서 실행한 결과로부터 얻어지는 실행 이력인 실행 로그(명령열)를 입력으로 하여, 성능 평가 시뮬레이션을 실행한다.
이러한 구성에 있어서, 성능 평가 시뮬레이션 장치는 시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델로 구성되며, 이 소프트웨어 모델과 하드웨어 모델의 성능을 평가하는 것을 개요로 하는 것으로, 특히, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하며, SW/HW 분할의 타당성을 판단하는 것이 가능하다는 점을 주된 특징으로 한다.
이 주된 특징에 대해서 구체적으로 설명하면, 성능 평가 시뮬레이션 장치는 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 소프트웨어 모델에서 실행되는 처리의 실행 단위 인 기본 처리 단위로 분할한다[도 1의 (1) 참조].
구체적으로 예를 들면, 성능 평가 시뮬레이션 장치는 시스템 LSI의 사양으로부터 소프트웨어 모델과 하드웨어 모델로 분할하여, 실제 기계 상 또는 ISS 등을 이용하여 타겟 CPU 상에서 실행한 결과로부터 얻어지는 실행 이력인 실행 로그가 입력된다. 그리고, 성능 평가 시뮬레이션 장치는 입력된 실행 로그에 기초하여소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할된다. 이 기본 처리 단위의 분할에 있어서, 예컨대, 통신 처리 소프트웨어의 경우는 주기 처리의 패턴으로부터 OS(Operating System)의 태스크 기동점을 찾아 내고 나서, 이 태스크 단위로 분할된다. 또한, 예컨대, 명령 어드레스열에서 오브젝트 파일 간의 처리의 흐름을 추적하고 나서, 태스크의 단락을 찾아 내어 분할한다.
그리고, 성능 평가 시뮬레이션 장치는 분할된 기본 처리 단위의 처리량을, 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출한다[도 1의 (2) 참조]. 상기한 예로부터 구체적으로 예를 들면, 성능 평가 시뮬레이션 장치는 분할된 기본 처리 단위의 처리량을, 실행 로그가 유지하고 있는 처리 실행 시의 분기처 어드레스 정보인 명령 어드레스열의 수나 데이터 베이스에 액세스하기 위한 액세스처 어드레스 정보인 데이터 액세스의 어드레스열의 수 등을 기본 처리 단위의 처리량으로서 산출한다.
계속해서, 성능 평가 시뮬레이션 장치는 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경한다[도 1의 (3) 참조]. 상기한 예로부 터 구체적으로 예를 들면, 성능 평가 시뮬레이션 장치는 산출된 처리량과 소정의 임계값의 처리량을 비교한다. 그리고, 성능 평가 시뮬레이션 장치는 비교 결과, 소정의 임계값의 처리량을 넘는 처리량인 실행 로그를 갖는 기본 처리 단위를, 소프트웨어 처리에서 직접 버스에 접속하도록 하드웨어처리로 배치 구성을 변경하여 하드웨어화한다.
그 후, 성능 평가 시뮬레이션 장치는, 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성한다[도 1의 (4) 참조]. 상기한 예로부터 구체적으로 예를 들면, 성능 평가 시뮬레이션 장치는, 하드웨어 모델로 배치 구성을 변경하여 하드웨어화된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 소프트웨어 모델에 대하여, 명령 캐쉬, 데이터 캐쉬를 경유하여 버스 액세스를 실행함으로써 성능 평가 시뮬레이션을 실행한다. 그리고, 성능 평가 시뮬레이션 장치는, 명령 실행 시간, 명령 펫치 시간 및 데이터 액세스 시간을 계측하여, CPU 부하율 등의 성능 평가의 기초가 되는 통계 정보를 작성한다. 이 성능 평가 시뮬레이션 장치에 의해 작성된 통계 정보는 최적의 SW/HW 분할의 타당성의 판단에 이용된다. 또한, 성능 평가 시뮬레이션은 복수회 실행함으로써 고정밀도의 시뮬레이션 결과를 얻을 수 있다.
이러한 것으로부터, 실시예 1에 따른 성능 평가 시뮬레이션 장치는 소프트웨 어 모델을 실제 기계 또는 ISS 등을 이용하여 타겟 CPU 상에서 실행한 결과로부터 얻어지는 실행 로그에 기초하여, 성능 평가 시뮬레이션을 실행하는 경우에, 실행 로그에 유지되는 정보에 기초하여 분할한 기본 처리 단위의 처리량이 많은 기본 처리 단위를 하드웨어화하여 시뮬레이션을 실행할 수 있는 결과, 상기한 주된 특징과 같이, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하며, SW/HW 분할의 타당성을 판단하는 것이 가능하다.
즉, 성능 평가 시뮬레이션 장치는 실행 로그에 유지되는 정보를 이용하여, 각 처리의 SW/HW 분할을 행하기 때문에, 종래 기술과 같이 LSI 상에 탑재되는 각 처리의 완성도에 의존하여 SW/HW 분할을 행하는 것과 비교하여, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하다. 또한, 성능 평가 시뮬레이션 장치는, 명령 실행 시간, 명령 펫치 시간, 데이터 액세스 시간을 계측하면서, 명령 캐쉬, 데이터 캐쉬를 경유하여 버스 액세스를 실행함으로써 시뮬레이션을 실행하여, CPU 부하율 등의 고정밀도의 통계 정보를 출력하기 때문에, 종래 기술과 같이 각 실행 단위의 처리 시간을 비교하는 것과 비교하여, SW/HW 분할의 타당성을 판단하는 것이 가능하다.
[실시예 1에 따른 성능 평가 시뮬레이션 장치의 구성]
다음에, 도 2를 이용하여, 실시예 1에 따른 성능 평가 시뮬레이션 장치의 구성을 설명한다. 도 2는 실시예 1에 따른 성능 평가 시뮬레이션 장치의 구성을 도시하는 도면이다. 도 2에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는, 기능 모듈(11-1∼11-n), 스케쥴러부(20) 및 액세스 처리부(21)로 구성된다.
또한, 성능 평가 시뮬레이션 장치(10)는 외부 RAM 상에 존재하는 명령의 취득 시간을 짧게 하기 위한 명령 캐쉬인 I-cache, 또는, 데이터 액세스의 시간을 짧게 하기 위한 데이터 캐쉬인 D-cache로부터 버스(30)를 통해, 성능 평가 시뮬레이션 장치(10)의 외부에 접속되는 RAM인 외부 RAM과, 외부 I/F나 특정 용도 전용 하드웨어등인 주변 HW와 접속되어 있다. 또한, 예컨대, 기본 처리 실행 로그의 입력을 제외한 부분은, 전자 회로 설계에의 사용을 목적으로 한 하드웨어기술 언어의 하나인 SystemC 언어 등을 이용한 트랜잭션 레벨로 구축되며, 각 모듈 간의 송수신은 함수콜에 의해 주고 받는다. 또한, 버스(30)에의 접속은 모듈 공통의 인터페이스(예컨대, TLM-I/F 등)를 이용함으로써, RTL과 같은 신호 레벨의 통신과는 달리, 각 모듈의 배치나 재편성 등을 자유롭게 행한다.
기능 모듈(11-1∼11-n)은 액세스 처리부(21)에 의해 실행 로그에 기초하여 분할된 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위를 말한다. 예컨대, 기능 모듈(11-1)(Fn[1])은 도 3에 도시하는 바와 같이, 어드레스(「E050D6E0」)와, 명령/데이터 액세스(「I/D」)와, 데이터 액세스의 경우의 로드(독입)/스토어(기록)(「R/W」)를 유지하고 있다. 성능 평가 시뮬레이션 장치(10)에 입력되는 실행 로그로부터 취득된 이들의 정보는, 액세스하는 어드레스를 알 수 있으면, 각 HW의 어드레스와 데이터를 저장하고 있는 RAM으로부터 어떤 어드레스에 액세스하고 있는지를 알 수 있다. 그리고, 성능 평가 시뮬레이션 장치(10)가 이 어드레스 정보로부터 어떤 HW에 명령 또는 데이터 액세스하고 있는지를 알 수 있으며, 데이터 액세스의 경우에는, 로드 또는 스토어하고 있는지를 알 수 있다. 또한, 실 행 로그 전체로서는, 「xxx.o」나 「yyy.o」나 「zzz.o」(오브젝트 파일) 간에서 각 어드레스에 액세스하고 있으며, 각 오브젝트 파일 간의 액세스의 시점에서 종점까지를 1개의 단락으로 함으로써 상기한 기본 처리 단위(Fn[1])로서 선발된다. 또한, 도 3은 실시예 1에 따른 실행 로그 전체의 각 어드레스에의 액세스와 기본 처리 단위의 관계를 도시하는 도면이다.
액세스 처리부(21)는 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어지는 실행 이력인 실행 로그에 기초하여, 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할한다. 그리고, 액세스 처리부(21)는 분할된 기본 처리 단위의 처리량을, 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출한다. 계속해서, 액세스 처리부(21)는 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경한다. 그 후, 액세스 처리부(21)는 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행한다.
구체적으로 예를 들면, 액세스 처리부(21)는 실행 로그에 기초하여 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할한다. 그리고, 액세스 처리부(21)는 분할된 기본 처리 단위의 처리량을, 실행 로그가 유지하고 있는 처리 실행 시의 분기처 어드레스 정보인 명령 어드레스열의 수나 데이터 베이스에 액세스하기 위한 액세스처 어드레스 정보인 데이터 액세스의 어드레스열의 수 등을 기본 처리 단위의 처리량으로서 산출한다.
계속해서, 액세스 처리부(21)는 산출된 처리량과 소정의 임계값의 처리량을 비교하여, 소정의 임계값의 처리량을 넘는 처리량인 실행 로그를 갖는 기본 처리 단위를, 소프트웨어 처리로부터 직접 버스(30)에 접속하도록 하드웨어처리로 배치 구성을 변경하여 하드웨어화한다. 그 후, 액세스 처리부(21)는 스케쥴러부(20)에 의해 프로세스 처리의 의뢰를 접수하면, 하드웨어 모델로 배치 구성을 변경하여 하드웨어화된 기본 처리 단위에 대하여, 명령 실행 시간, 명령 펫치 시간 및 데이터 액세스 시간을 계측하면서, 명령 캐쉬(I-cache), 데이터 캐쉬(D-cache)를 경유하여 버스 액세스를 실행함으로써 성능 평가 시뮬레이션을 실행한다.
스케쥴러부(20)는 액세스 처리부(21)에 의해 실행된 시뮬레이션 처리로부터 성능 평가의 기초가 되는 통계 정보를 작성한다. 상기한 예로부터 구체적으로 설명하면, 스케쥴러부(20)는 발생한 이벤트를 트리거로 하여, 대응하는 기능 모듈(기본 처리 단위)에 프로세스 처리를 의뢰한다. 그리고, 스케쥴러부(20)는 액세스 처리부(21)에 의해 실행된 시뮬레이션 결과로부터, CPU 부하율 등의 성능 평가의 기초가 되는 통계 정보를 작성한다. 이 통계 정보는 예컨대 도 4에 도시하는 바와 같이, 기본 처리 단위(「Fn[1]」)마다 명령 실행 시간(「100 나노초」), 명령 펫치 시간(「3 나노초」), 데이터 액세스 시간(「2 나노초」), CPU 부하율(「30%」) 등의 정보가 저장되어 있다. 또한, 이 액세스 처리부(21)는 외부 RAM이나 주변 HW 등과 버스(30)를 통해 접속되는 인터페이스의 포트 ID와, 기능 모듈(11-1∼11-n)의 블록 ID를 일괄 관리하고 있으며, 액세스 처리부(21)에 프로세스 처리를 의뢰하는 기능 모듈의 순서와 그 배치를 파악하고 있다. 또한, 도 4는 실시예 1에 따른 통계 정보의 예를 도시하는 도면이다.
[LSI의 개발 플로우]
다음에, 도 5를 이용하여, LSI의 개발 플로우를 설명한다. 도 5는 LSI의 개발 플로우를 설명하기 위한 도면이다. 또한, 이 LSI는 실시예 1에 따른 성능 평가 시뮬레이션 장치의 처리를 포함하는 LSI 전체의 설계를 행하는 것이다.
도 5에 도시하는 바와 같이, 사양이 작성되면(단계 S601 긍정), 작성된 사양으로부터 시스템 요구를 분석한다(단계 S602). 그리고, 분석한 시스템 요구로부터 알고리즘을 검토하는 방식 설계를 행하여(단계 S603), 성능 평가나 SW/HW 분할의 검토 등에 의해 아키텍쳐 설계를 행한다(단계 S604). 계속해서, 하드웨어부분에 있어서 RTL의 논리 설계를 행하며(단계 S605), 이 하드웨어의 물리 설계를 행한다(단계 S606). 또한, 소프트웨어 부분에 있어서 소프트웨어 개발을 행한다(단계 S607). 그 후, 하드웨어와 소프트웨어를 조합하여 실제 기계 모델을 작성하여(단계 S608), 제품을 출하하게 된다(단계 S609).
[실시예 1에 따른 성능 평가 시뮬레이션 장치에 의한 처리]
다음에, 도 6을 이용하여, 실시예 1에 따른 성능 평가 시뮬레이션 장치(10)에 의한 시뮬레이션 처리를 설명한다. 도 6은 실시예 1에 따른 성능 평가 시뮬레이션 장치(10)에 의한 시뮬레이션 처리를 도시하는 흐름도이다. 또한, 도 6에서 설명하는 처리는 도 5에서 도시한 단계 S604의 아키텍쳐 설계의 부분이다.
도 6에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 사양이 작성되면(단계 S101 긍정), 소프트웨어의 처리와 하드웨어의 처리로 분할하여(단계 S102), 소프트웨어 모델인 임시 소프트웨어와, 하드웨어 모델인 동작 모델을 출력하며(단계 S103 및 단계 S104), 출력한 임시 소프트웨어를 실제 기계 상 또는 ISS 등을 이용하여 타겟 CPU 상에서 실행한 결과로부터 얻어지는 실행 이력인 실행 로그가 출력되면(단계 S105 및 단계 S106), 이 실행 로그에 기초하여 소프트웨어 모델에서 실현되는 처리의 실행 단위인 기본 처리 단위로 분할한다(단계 S107).
그리고, 성능 평가 시뮬레이션 장치(10)는 분할된 기본 처리 단위의 처리량을, 실행 로그가 유지하고 있는 처리 실행 시의 분기처 어드레스 정보인 명령 어드레스열의 수나 데이터 베이스에 액세스하기 위한 액세스처 어드레스 정보인 데이터 액세스의 어드레스열의 수 등을 기본 처리 단위의 처리량으로서 산출한다(단계 S108).
계속해서, 성능 평가 시뮬레이션 장치(10)는 산출된 처리량과 소정의 임계값의 처리량을 비교한다(단계 S109). 그 후, 성능 평가 시뮬레이션 장치(10)는, 비교한 결과, 소정의 임계값의 처리량을 넘는 처리량인 실행 로그를 갖는 기본 처리 단위를, 소프트웨어 처리에서 직접 버스에 접속하도록 하드웨어처리로 배치 구성을 변경하여 하드웨어화한다(단계 S110). 또한, 성능 평가 시뮬레이션 장치(10)는, 기본 처리 단위를 하드웨어로 배치 구성을 변경하는 경우에, 소정의 임계값의 처리량을 넘는 기본 처리 단위에 해당하는 기능 모듈을, 블록 ID를 바탕으로 검색하여 이 기능 모듈의 배치 구성을 변경한다. 즉, 성능 평가 시뮬레이션 장치(10)는 CPU 내 에서 직접 버스에 접속할 수 있는 포트로 이동시킴으로써, 기능 모듈의 작업을 CPU의 소프트웨어 처리로부터 하드웨어화한다.
그리고, 성능 평가 시뮬레이션 장치(10)는 하드웨어 모델로 배치 구성을 변경하여 하드웨어화된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 실행 시간, 명령 펫치 시간 및 데이터 액세스 시간을 계측하면서, 명령 캐쉬, 데이터 캐쉬를 경유하여 버스 액세스를 실행함으로써 성능 평가 시뮬레이션을 실행한다. 계속해서, 성능 평가 시뮬레이션 장치(10)는, 명령 실행 시간, 명령 펫치 시간, 데이터 액세스 시간으로부터 CPU 부하율 등의 성능 평가의 기초가 되는 통계 정보를 작성한다(단계 S111).
다음에, 도 7을 이용하여, 실시예 1에 따른 성능 평가 시뮬레이션 장치(10)에 의한 SW/HW 분할 처리에 대해서 설명한다. 도 7은 실시예 1에 따른 성능 평가 시뮬레이션 장치(10)에 의한 SW/HW 분할 처리에 대해서 설명하기 위한 도면이다.
도 7에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 SW/HW의 분할 조건인 기본 처리 단위에 대한 처리량의 임계값(소정의 임계값)을 결정한다(단계 S201). 그리고, 성능 평가 시뮬레이션 장치(10)는 기본 처리 단위로 분할한 실행 로그에 유지되어 있는 명령 어드레스열이나 데이터 액세스의 어드레스열의 수 등을 카운트하여, 이들의 카운트 수 중 어느 하나(또는 합계)로부터 기본 처리 단위의 처리량을 산출한다(단계 S202∼단계 S204).
계속해서, 성능 평가 시뮬레이션 장치(10)는 산출한 처리량이 소정의 임계값을 넘는 경우에(단계 S205 긍정), 이 임계값을 넘는 실행 로그에 대응하는 기본 처 리 단위를 블록 ID에 의해 검색한다(단계 S206). 그 후, 성능 평가 시뮬레이션 장치(10)는 검색한 기본 처리 단위를, 직접 버스 접속 가능한 포트에 할당하며, 기본 처리 단위의 하드웨어로의 배치 구성의 변경에 맞추어 포트 ID를 변경한다(단계 S207 및 단계 S208).
그리고, 성능 평가 시뮬레이션 장치(10)는 하드웨어화된 기본 처리 단위의 캐쉬 액세스가 불필요하게 되며, RAM에 직접 액세스하는 것이 필요하게 되지만, 실행 로그도 명령 펫치가 불필요하게 되기 때문에 명령 어드레스열을 삭제하여, 시뮬레이션 실행에 있어서 데이터 액세스만 추출하게 된다(단계 S209 및 단계 S210).
[실시예 1에 따른 효과]
이와 같이 하여, 실시예 1에 따르면, 성능 평가 시뮬레이션 장치(10)는 실행 로그에 유지되는 정보를 이용하여, 각 처리의 SW/HW 분할을 행하며, 명령 실행 시간, 명령 펫치 시간, 데이터 액세스 시간을 계측하면서, 명령 캐쉬, 데이터 캐쉬를 경유하여 버스 액세스를 실행함으로써 시뮬레이션을 실행하기 때문에, 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하고, SW/HW 분할의 타당성을 판단하는 것이 가능하다.
예컨대, 성능 평가 시뮬레이션 장치(10)는 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수 중 어느 하나, 또는 합계에 의해 기본 처리 단위의 처리량을 산출하여, 이 처리량이 소정의 임계값을 넘는 기본 처리 단위를 하드웨어 모델로 배치 구성을 변경한다. 그리고, 성능 평가 시뮬레이션 장치(10)는, 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨 어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 명령 실행 시간, 명령 펫치 시간 및 데이터 액세스 시간 등의 통계 정보를 작성한다. 이 결과, 성능 평가 시뮬레이션 장치(10)는 설계 초기에 SW/HW 분할을 알맞게 행하는 것이 가능하며, SW/HW 분할의 타당성을 판단하는 것이 가능하다.
<실시예 2>
그런데, 상기 실시예 1에서는, 실행 로그에 기초하여 분할되는 기본 처리 단위를 1개의 실행 단위로서 구성하는 경우에 대한 하드웨어화에 대해서 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, 이 기본 처리 단위를 제1 블록과 제2 블록으로 구성하여 하드웨어화를 검토할 수도 있다.
그래서, 이하의 실시예 2에서는, 도 8 내지 도 12를 이용하여, 실시예 2에 따른 기본 처리 단위를 제1 블록과 제2 블록으로 구성한 경우의 하드웨어화의 상세에 대해서 설명한다. 또한, 도 8은 CPU 모델이 주기적으로 이벤트를 행할 때의 시간과 CPU 처리량의 관계를 도시하는 도면이며, 도 9는 실시예 2에 따른 CPU 내의 기능 모듈의 일부를 하드웨어화한 경우의 이벤트 처리를 도시하는 도면이고, 도 10은 실시예 2에 따른 UML 클래스의 예를 도시하는 도면이며, 도 11은 실시예 2에 따른 SystemC 언어에 의한 기술예를 도시하는 도면이고, 도 12는 실시예 2에 따른 하드웨어 모델의 추상도와 시뮬레이션 처리의 관계를 도시하는 도면이다. 또한, 실시예 2에 따른 성능 평가 시뮬레이션 장치(10)의 구성이나 기능 등은, 실시예 1과 마찬가지이기 때문에 그 설명을 생략한다.
[CPU 모델이 주기적으로 이벤트를 행할 때의 시간과 CPU 처리량의 관계]
실시예 2에서, 도 8을 이용하여, CPU 모델이 주기적으로 이벤트를 행할 때의 시간과 CPU 처리량의 관계를 설명한다. 도 8에서, 각 기본 처리 단위는, 기본 처리 단위를 복수 조합한 프로세스 처리 단위에 따라 각 기본 처리 단위 고유의 기능을 기술하는 whitebox부와, 통계 정보를 수집하기 위한 처리를 행하는 blackbox부로 구성된다. 또한, 프로세스 처리란, 기본 처리 단위를 복수 조합하여 실행하는 처리이며, 이벤트란, 기본 처리 단위만의 처리를 포함하는 프로세스 처리의 조합으로 이루어지는 것이다. 또한, 도 8에 도시하는 도면의 종축을 「CPU 처리량」, 횡축을 「시간」으로 하여 CPU 처리량과 시간의 관계에 대해서도 설명한다.
도 8에 도시하는 바와 같이, 예컨대, 성능 평가 시뮬레이션 장치(10)는 주기 이벤트(A)가 발생하면, 이 이벤트(A)를 트리거로 하여 기본 처리 단위(Fn[1], Fn[2])를 계속해서 호출한다. 그리고, 성능 평가 시뮬레이션 장치(10)는 주기 이벤트(B)가 발생하면, 이 이벤트(B)를 트리거로 하여 기본 처리 단위(Fn[2], Fn[3], Fn[1])를 계속해서 호출한다. 그 후, 성능 평가 시뮬레이션 장치(10)는 주기 이벤트(C)가 발생하면 이 이벤트(C)를 트리거로 하여 기본 처리 단위(Fn[1])를 호출한다.
이 기본 처리 단위인 기능 모듈은, whitebox부에 의해 각 프로세스 처리에 따라 blackbox부의 호출이 행하여지고 나서, blackbox부에 의해 명령 실행 시간, 명령 펫치 시간 및 데이터 액세스 시간 등의 통계 정보가 수집된다. 또한, 기본 처리의 처리 시간은 「whitebox+blackbox×호출 횟수」에 의해 결정되며, 많은 처리 시간이 걸리면 CPU 처리량도 증가한다. 또한, 이벤트나 기본 처리 단위에는, 우선 순위를 부여하여 시간적으로 충돌하는 것을 피하여 처리가 행하여진다.
[CPU 내의 기능 모듈의 일부를 하드웨어화한 경우의 이벤트 처리]
다음에, 도 9를 이용하여, CPU 내의 기능 모듈의 일부를 하드웨어화한 경우의 이벤트 처리를 설명한다. 도 9에서, 각 기본 처리 단위의 구성 등은 도 8에 도시한 것과 마찬가지이기 때문에 그 설명을 생략하여, 처리량이 많은 기본 처리 단위를 하드웨어화할 때의 이벤트 처리에 대해서 설명한다.
도 9에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 처리량이 소정의 임계값을 넘는 기본 처리 단위(Fn[3])를, 하드웨어로 배치 구성을 변경한다. 기본 처리 단위의 하드웨어화에 있어서는, 도 9에 도시하는 바와 같이, 하드웨어화된 기본 처리 단위(Fn[3])의 처리 시간이 단축되며, 이벤트(B) 전체의 CPU 처리량이 감소한다.
즉, 성능 평가 시뮬레이션 장치(10)는 부하가 큰 기능 모듈을 하드웨어화하기 때문에, CPU 처리량을 삭감하는 것이 가능하다. 또한, 하드웨어화한 기능 모듈은 직접 RAM에 액세스하기 때문에, 명령 실행열이 불필요하게 되며, 또한, 데이터 액세스하는 어드레스의 범위도 한정되기 때문에, D-cache(데이터 액세스 시에 이용되는 캐쉬)에 액세스하는 것보다도 시간이 단축되는 결과, blackbox부의 처리 시간이 단축되어, 프로세스 처리 전체에서의 처리 시간을 단축하는 것이 가능하다. 또한, SW/HW 분할의 임계값의 설정은, 하드웨어화하는 기능 모듈이 증가하는 것에 따라, 이 하드웨어화를 위한 실장 면적의 증대나 소비 전력의 증대나 버스 점유율의 상승 등을 고려하여 설정하여야 한다.
[하드웨어 모델의 추상도와 시뮬레이션 처리의 관계]
다음에, 도 10, 도 11을 이용하여, 실시예 2에 따른 UML 클래스의 예와 SystemC 언어에 의한 기술예를 설명하며, 도 12를 이용하여, 실시예 2에 따른 하드웨어 모델의 추상도와 시뮬레이션 처리의 관계를 설명한다. 또한, 도 10 또는 도 11에 도시하는 「Fn_*」은 각 기능 모듈을 나타내며, 「Fn_if」는 각 기능 모듈 공통 인터페이스를 나타내고, 「Fn_*.h」는 각 기능 모듈의 헤더부를 나타내며, 「Fn_*.cpp」는 소스 코드를 나타내고, 「Fn_if.h」는 기능 모듈 공통 인터페이스의 헤더부를 나타내며, 「Fn_if.cpp」는 소스 코드를 나타내고 있다.
기능 모듈을 구성하는 whitebox와 blackbox 중, 통계 정보를 수집하기 위한 처리를 행하는 blackbox부를 기능 모듈 공통 인터페이스에 배치한다. 또한, 성능 검증의 목적이나 하드웨어 모델의 완성도에 따라 각 모듈 고유의 기능을 기술하는 whitebox부를 각 기능 모듈의 프로세스 처리(「do_ process()」) 내에 배치한다.
그리고, 스케쥴러부로부터 프로세스 처리(「do_ process()」)가 지시된 각 기능 모듈(「Fn_*」)은 whitebox부를 실행한다. 계속해서, whitebox부는 각 모듈 고유의 기능을 실행한 후, 미리 모듈마다 정해진 인수(「x」)를 부여하여 함수(「blackbox()」)를 호출한다. 그 후, blackbox부는 인수(「x」)를 기초로 하여, 기본 처리 단위의 실행 로그를 취득하고, 이 실행 로그로부터 명령 펫치 및/또는 데이터 액세스의 처리 횟수를 지정하여 CPU에 부하를 발생시키며, 명령 실행 시간 등의 통계 정보를 수집한다.
[실시예 2에 따른 효과]
이와 같이 하여, 실시예 2에 따르면, 성능 평가 시뮬레이션 장치(10)는 각 기본 처리 단위 고유의 기능의 실행과는 무관하게 CPU 부하를 부여하기 때문에, 각 기본 처리 단위의 완성도에 의존하지 않고 캐쉬 해석이나 CPU 통계 정보 등의 취득이 가능하다.
즉, 성능 평가 시뮬레이션 장치(10)는 도 12에 도시하는 바와 같이, whitebox부에 기술한 각 기능 모듈 고유의 기능의 실행과는 무관하게, LSI 설계의 진척에 따라 하드웨어 모델의 추상도를 변경하여도, 성능 평가 시뮬레이션 및 SW/HW 분할의 최적의 검토가 가능하다.
<실시예 3>
[기본 처리 단위로 임계값을 결정]
여기서, 상기 실시예 1에서는, SW/HW 분할에 있어서의 기본 처리 단위의 소정의 임계값과 처리량을 비교하여 시뮬레이션을 실행하는 경우를 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, CPU 부하율에 의해 SW/HW 분할에 있어서의 기본 처리 단위의 소정의 임계값을 변경하여, 이 소정의 임계값과 처리량을 비교하여 시뮬레이션을 실행할 수도 있다.
그래서, 이하의 실시예 3에서는, 도 13을 이용하여, 실시예 3에 따른 성능 평가 시뮬레이션 처리에 대해서 설명한다. 도 13은 실시예 3에 따른 성능 평가 시뮬레이션 처리에 대해서 설명하기 위한 도면이다. 여기서, 실시예 3에서는, 미리 타겟 프로세서 내에 기능 모듈을 전부 내포한 상태로 성능 평가 시뮬레이션을 행하 며, 실행 로그의 명령 실행 수, 데이터 로드 수 및 데이터 스토어 수와, CPU의 판정 조건(예컨대, CPU 부하율이나 버스 점유율 등)의 상관을 취해 둔다.
도 13에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 CPU 부하율 등으로부터 CPU 성능의 판정 임계값을 설정하여(단계 S301), SW/HW 분할 조건인 기본 처리 단위에 대한 소정의 임계값을 결정한다(단계 S302). 그리고, 성능 평가 시뮬레이션 장치(10)는 실시예 1과 마찬가지로, 기본 처리 단위로 분할한 실행 로그에 유지되어 있는 명령 어드레스열이나 데이터 액세스의 어드레스열의 수 등을 카운트하여, 이들의 카운트 수 중 어느 하나(또는 합계)로부터 기본 처리 단위의 처리량을 산출한다(단계 S303∼단계 S305).
계속해서, 성능 평가 시뮬레이션 장치(10)는 산출한 처리량이 소정의 임계값을 넘는 경우에(단계 S306 긍정), 이 임계값을 넘는 실행 로그에 대응하는 기본 처리 단위를 블록 ID에 의해 검색한다(단계 S307). 그 후, 성능 평가 시뮬레이션 장치(10)는 검색한 기본 처리 단위를, 직접 버스 접속 가능한 포트에 할당하며, 기본 처리 단위의 하드웨어로의 배치 구성의 변경에 맞추어 포트 ID를 변경한다(단계 S308 및 단계 S309).
그리고, 성능 평가 시뮬레이션 장치(10)는 하드웨어화된 기본 처리 단위의 캐쉬 액세스가 불필요하게 되며, RAM에 직접 액세스하는 것이 필요하게 되지만, 실행 로그도 명령 펫치가 불필요하게 되기 때문에 명령 어드레스열을 삭제하여, 시뮬레이션 실행에 있어서 데이터 액세스만 추출하게 된다(단계 S310 및 단계 S311). 그 후, 성능 평가 시뮬레이션 장치(10)는 CPU 성능의 판정 조건을 만족하지 않는 경우에(단계 S312 긍정), 단계 S302로 되돌아가, 기본 처리 단위의 처리량의 임계값을 결정(수정)한다. 또한, 기본 처리 단위의 처리량의 임계값의 수정폭으로서는, 미리 구하고 있는 실행 로그의 처리량과 CPU 성능의 판정 조건의 상관으로부터 계산하거나, 또는, 기본 처리 단위가 큰(또는 작은) 순으로 기능 모듈을 1개씩 하드웨어화하여 시뮬레이션을 실행하여, 이 CPU 성능의 판정 조건을 만족할 때까지 처리를 반복한다.
[실시예 3에 따른 효과]
이와 같이 하여, 실시예 3에 따르면, 성능 평가 시뮬레이션 장치(10)는 성능 평가 결과의 CPU 성능 판정 조건을 만족할 수 없는 경우에, 기본 처리 단위의 판정 임계값을 변경하기 때문에, 보다 고정밀도의 시뮬레이션을 실행하여 SW/HW 분할의 타당성을 판단하는 것이 가능하다.
<실시예 4>
[프로세스 처리 단위로 임계값을 결정]
여기서, 상기 실시예 1에서는, SW/HW 분할에 있어서의 기본 처리 단위의 소정의 임계값과 처리량을 비교하여 시뮬레이션을 실행하는 경우를 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, CPU 부하율에 의해 SW/HW 분할에 있어서의 프로세스 처리 단위의 소정의 임계값을 변경하여, 이 소정의 임계값과 처리량을 비교하여 시뮬레이션을 실행할 수도 있다.
그래서, 이하의 실시예 4에서는, 도 14, 도 15를 이용하여, 실시예 4에 따른 성능 평가 시뮬레이션 처리에 대해서 설명한다. 도 14는 실시예 4에 따른 성능 평 가 시뮬레이션 처리에 대해서 설명하기 위한 도면이며, 도 15는 실시예 4에 따른 CPU 내의 프로세스 처리의 일부를 하드웨어화한 경우의 이벤트 처리를 설명하기 위한 도면이다. 여기서, 실시예 4에서는, 미리 실행 로그의 명령 실행 수 및 데이터 액세스 수와, CPU의 판정 조건(예컨대, CPU 부하율 등)의 상관을 취해 둔다.
도 14에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 CPU 부하율 등으로부터 CPU 성능의 판정 임계값을 설정하여(단계 S401), SW/HW 분할 조건인 프로세스 처리 단위에 대한 소정의 임계값을 결정한다(단계 S402). 그리고, 성능 평가 시뮬레이션 장치(10)는 실시예 1과 마찬가지로, 기본 처리 단위로 분할한 실행 로그에 유지되어 있는 명령 어드레스열이나 데이터 액세스의 어드레스열의 수 등을 카운트하여, 이들의 카운트 수 중 어느 하나(또는 합계)로부터 프로세스 처리 단위의 처리량을 산출한다(단계 S403∼단계 S405).
계속해서, 성능 평가 시뮬레이션 장치(10)는 산출한 처리량이 소정의 임계값을 넘는 경우에(단계 S406 긍정), 이 임계값을 넘는 실행 로그에 대응하는 기본 처리 단위를 블록 ID에 의해 검색한다(단계 S407). 그 후, 성능 평가 시뮬레이션 장치(10)는 검색한 기본 처리 단위를, 직접 버스 접속 가능한 포트에 할당하며, 프로세스 처리 단위의 하드웨어로의 배치 구성의 변경에 맞추어 포트 ID를 변경한다(단계 S408 및 단계 S409).
그리고, 성능 평가 시뮬레이션 장치(10)는 하드웨어화된 프로세스 처리 단위의 캐쉬 액세스가 불필요하게 되며, RAM에 직접 액세스하는 것이 필요하게 되지만, 실행 로그도 명령 펫치가 불필요하게 되기 때문에 명령 어드레스열을 삭제하여, 시 뮬레이션 실행에 있어서 데이터 액세스만 추출하게 된다(단계 S410 및 단계 S411). 그 후, 성능 평가 시뮬레이션 장치(10)는 CPU 성능의 판정 조건을 만족하지 않는 경우에(단계 S412 긍정), 단계 S402로 되돌아가, 프로세스 처리 단위의 처리량의 임계값을 결정(수정)한다. 또한, 프로세스 처리 단위의 처리량의 임계값의 수정폭으로서는, 미리 구하고 있는 실행 로그의 명령 실행 수 및 데이터 액세스 수와, CPU의 판정 조건의 상관으로부터 계산하거나, 또는, 프로세스 처리 단위가 큰(또는 작은) 순으로 기능 모듈을 1개씩 하드웨어화하여 시뮬레이션을 실행하여, 이 CPU 성능의 판정 조건을 만족할 때까지 처리를 반복한다.
또한, 도 15에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 처리량이 소정의 임계값을 넘는 프로세스 처리 단위(Fn[3] 및 Fn[1])를, 하드웨어로 배치 구성을 변경한다. 프로세스 처리 단위의 하드웨어화에 있어서는, 도 15에 도시하는 바와 같이, 하드웨어화된 프로세스 처리 단위(Fn[3] 및 Fn[1])의 처리 시간이 단축되며, 이벤트(B) 전체의 CPU 처리량이 감소한다.
즉, 성능 평가 시뮬레이션 장치(10)는 부하가 큰 기능 모듈을 프로세스 처리 단위로 하드웨어화하기 때문에, CPU 처리량을 삭감하는 것이 가능하다. 또한, 하드웨어화한 기능 모듈은 직접 RAM에 액세스하기 때문에, 명령 실행열이 불필요하게 되며, 또한, 데이터 액세스하는 어드레스의 범위도 한정되기 때문에, D-cache(데이터 액세스 시에 이용되는 캐쉬)에 액세스하는 것보다도 시간이 단축되는 결과, blackbox부의 처리 시간이 단축되어, 프로세스 처리 전체에서의 처리 시간을 단축하는 것이 가능하다.
[실시예 4에 따른 효과]
이와 같이 하여, 실시예 4에 따르면, 성능 평가 시뮬레이션 장치(10)는 성능 평가 결과의 CPU 성능 판정 조건을 만족할 수 없는 경우에, 프로세스 처리 단위의 판정 임계값을 변경하기 때문에, 보다 고정밀도의 시뮬레이션을 실행하여 SW/HW 분할의 타당성을 판단하는 것이 가능하다.
<실시예 5>
[실행 로그의 파일 사이즈를 이용]
또한, 상기 실시예 1에서는, SW/HW 분할에 있어서의 기본 처리 단위의 소정의 임계값을 미리 결정하여 시뮬레이션을 실행하는 경우를 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, SW/HW 분할에 있어서의 기본 처리 단위의 소정의 임계값을 실행 로그의 파일 사이즈를 이용하여 결정할 수도 있다.
그래서, 이하의 실시예 5에서는, 도 16을 이용하여, 실시예 5에 따른 SW/HW 분할의 임계값에 실행 로그의 파일 사이즈를 이용하는 경우를 설명한다. 도 16은 실시예 5에 따른 SW/HW 분할의 임계값에 실행 로그의 파일 사이즈를 이용하는 경우를 설명하기 위한 도면이다.
도 16에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치(10)는 기본 처리 단위로 분할한 실행 로그에 유지되어 있는 명령 어드레스열이나 데이터 액세스의 어드레스열의 수 등을 카운트하여, 타겟 프로세서 내에 기능 모듈을 전부 내포한 상태로 시뮬레이션을 실행하여 얻어지는 통계 정보로부터 CPU 처리량을 산출한다(단계 S501∼단계 S504).
그리고, 성능 평가 시뮬레이션 장치(10)는 산출한 CPU 처리량을 이용하여, 실행 로그의 명령 실행 수, 데이터 로드 수 및 데이터 스토어 수와, CPU의 판정 조건(예컨대, CPU 부하율 등)의 상관을 취한다(단계 S505). 계속해서, 성능 평가 시뮬레이션 장치(10)는 기본 처리 단위로 분할한 실행 로그의 각 파일 사이즈와, 파일 내의 명령 실행 수 및/또는 데이터 액세스 수의 상관을 취한다(단계 S506). 그 후, 성능 평가 시뮬레이션 장치(10)는 단계 S505와 단계 S506의 결과로부터, CPU 처리량과 기본 처리 단위의 실행 로그의 파일 사이즈의 상관을 구한다(단계 S507). 상기한 처리에 기초하여, 성능 평가 시뮬레이션 장치(10)는 SW/HW 분할의 임계값을 실행 로그의 파일 사이즈로 행하게 된다.
[실시예 5에 따른 효과]
이와 같이 하여, 실시예 5에 따르면, 성능 평가 시뮬레이션 장치(10)는 SW/HW 분할의 임계값에 실행 로그의 파일 사이즈를 이용하기 때문에, 보다 고정밀도의 시뮬레이션을 실행하는 것이 가능하다.
<실시예 6>
[애드온 CPU의 이용에 의한 멀티 코어화의 검토]
또한, 상기 실시예 1에서는, 성능 평가 시뮬레이션의 실행에 의해 최적의 SW/HW 분할의 타당성을 판단하는 경우를 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, SW/SW 분할에 의한 멀티 코어화를 검토할 수도 있다.
그래서, 이하의 실시예 6에서는, 도 17을 이용하여, 실시예 6에 따른 애드온 CPU의 이용에 의한 멀티 코어화의 검토에 대해서 설명한다. 도 17은 실시예 6에 따 른 애드온 CPU의 이용에 의한 멀티 코어화의 검토에 대해서 설명하기 위한 도면이다. 여기서는, 성능 평가의 대상인 성능 평가 시뮬레이션 장치의 외부에 새롭게 버스 모델을 구성하며, 이 버스 상에 ADDON-CPU, I-cache, D-cache, 필요에 따라 주변부의 HW를 배치하는 성능 평가 시뮬레이션 환경을 구축한다. 또한, ADDON-CPU, I-cache, D-cache의 구성은 CPU와 동일한 것이며, 각 모듈의 배치 및 처리 순서를 관리하기 위한 포트 ID와 블록 ID는, 중복되는 일이 없도록 하여 실행한다.
도 17에 도시하는 바와 같이, 예컨대, 성능 평가 시뮬레이션 장치(10)는 SW/HW 분할의 소정의 임계값에 따라, 해당하는 기능 모듈(Fn[n])을 CPU 모듈 내로부터 분리하여 ADDON-CPU 내의 인터페이스에 배치하며, 이 기능 모듈(Fn[n])의 포트 ID를 변경한다. 그리고, 시뮬레이션 실행 결과로부터 얻어지는 통계 정보는 CPU와 ADDON-CPU에서 개별로 수집하여, 소프트웨어 처리를 복수의 CPU에 분할한 경우의 효과를 캐쉬 해석한다.
즉, 성능 평가 시뮬레이션 장치(10)는 CPU에 있어서 임계값에 의해 하드웨어화되어야 하는 기능 모듈을 ADDON-CPU에 분배하여 출력하는 결과, 소프트웨어×소프트웨어의 형태로 출력되게 된다.
[실시예 6에 따른 효과]
이와 같이 하여, 실시예 6에 따르면, 성능 평가 시뮬레이션 장치(10)는 CPU에 있어서 SW/HW 분할의 임계값으로부터 하드웨어화되어야 하는 기능 모듈을 ADDON-CPU에 분배하여 출력하기 때문에, 1개의 CPU 내에 복수의 CPU 코어가 존재하는 멀티 코어화를 검토하는 것이 가능하다.
<실시예7>
그런데, 지금까지 본 발명의 실시예에 대해서 설명하였지만, 본 발명은 전술한 실시예 이외에도 여러 가지의 다른 형태로서 실시되어도 좋다. 그래서, (1) 성능 평가 시뮬레이션 장치의 구성, (2) 성능 평가 시뮬레이션 장치를 1개의 설계 프로세스로서 포함하는 전자 장치, (3) 프로그램에 있어서 다른 실시예를 설명한다.
(1) 성능 평가 시뮬레이션 장치의 구성
또한, 상기 문서 중이나 도면 중에서 도시한 처리 단계, 제어 단계, 구체적 명칭, 각종의 데이터나 파라미터를 포함하는 정보(예컨대, 도 2에 도시하는 「통계 정보」 등이 기억하고 있는 정보)에 대해서는, 특기하는 경우를 제외하고 임의로 변경할 수 있다.
또한, 도시한 각 장치의 각 구성 요소는 기능 개념적인 것으로, 반드시 물리적으로 도시한 바와 같이 구성되어 있는 것을 요하지 않는다. 즉, 각 장치의 분산·통합의 구체적 형태는 도시한 것에 한정되지 않고, 예컨대, 액세스 처리부(21)를, 실행 로그에 기초하여 기본 처리 단위로 분할하는 기본 처리 단위 분할부와, 기본 처리 단위의 처리량을 산출하는 처리량 산출부와, 기본 처리 단위를 하드웨어로 배치 구성을 변경하는 배치 구성 변경부와, 성능 평가 시뮬레이션을 실행하는 시뮬레이션 실행부로서 분산하는 등, 그 전부 또는 일부를, 각종의 부담이나 사용 상황 등에 따라, 임의의 단위로 기능적 또는 물리적으로 분산·통합하여 구성할 수 있다. 또한, 각 장치에서 행하여지는 각 처리 기능은, 그 전부 또는 임의의 일부가, CPU 및 이 CPU에서 해석 실행되는 프로그램으로서 실현되며, 혹은, 와이어드 논리에 의한 하드웨어로서 실현될 수 있다.
(2) 성능 평가 시뮬레이션 장치를 1개의 설계 프로세스로서 포함하는 전자 장치
또한, 상기 실시예에서는, 소프트웨어 모델과 하드웨어 모델을 알맞게 SW와 HW에 분할하기 위한 성능 평가 시뮬레이션 장치로서 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, 이 성능 평가 시뮬레이션 장치를 1개의 설계 프로세스로서 포함하는 전자 장치로서 처리할 수도 있다.
예컨대, 전자 장치는 시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델을 접수하여, 접수한 소프트웨어 모델과 하드웨어 모델을 이용하여, 상기한 성능 평가 시뮬레이션을 실행하여 작성된 통계 정보에 기초하여 재분할된 소프트웨어와 하드웨어를 LSI에 탑재한다.
(3) 프로그램
그런데, 상기 실시예에서는, 하드웨어논리에 의해 각종의 처리를 실현하는 경우를 설명하였지만, 본 발명은 이에 한정되는 것이 아니며, 미리 준비된 프로그램을 컴퓨터에서 실행함으로써 실현하도록 하여도 좋다. 그래서, 이하에서는, 도 18을 이용하여, 상기 실시예에 나타낸 성능 평가 시뮬레이션 장치와 동일한 기능을 갖는 성능 평가 시뮬레이션 프로그램을 실행하는 컴퓨터의 일례를 설명한다. 도 18은 성능 평가 시뮬레이션 프로그램을 실행하는 컴퓨터를 도시하는 도면이다.
도 18에 도시하는 바와 같이, 성능 평가 시뮬레이션 장치로서의 컴퓨터(110) 는, HDD(130), CPU(140), ROM(150) 및 RAM(160)을 버스(180) 등으로 접속하여 구성된다.
ROM(150)에는, 상기 실시예 1에 나타낸 성능 평가 시뮬레이션 장치(10)와 동일한 기능을 발휘하는 성능 평가 시뮬레이션 프로그램, 즉, 도 18에 도시하는 바와 같이 기본 처리 단위 분할 프로그램(150a)과, 처리량 산출 프로그램(150b)과, 배치 구성 변경 프로그램(150c)과, 통계 정보 작성 프로그램(150d)이 미리 기억되어 있다. 또한, 이들의 프로그램(150a∼150d)에 대해서는, 도 2에 도시한 성능 평가 시뮬레이션 장치(10)의 각 구성 요소와 마찬가지로, 적절하게 통합 또는, 분산하여도 좋다.
그리고, CPU(140)가 이들의 프로그램(150a∼150d)을 ROM(150)으로부터 독출하여 실행함으로써, 도 18에 도시하는 바와 같이, 프로그램(150a∼150d)은 기본 처리 단위 분할 프로세스(140a)와, 처리량 산출 프로세스(140b)와, 배치 구성 변경 프로세스(140c)와, 통계 정보 작성 프로세스(140d)로서 기능하게 된다. 또한, 프로세스(140a∼140d)는 도 2에 도시한, 스케쥴러부(20)와 액세스 처리부(21)에 대응한다.
그리고, CPU(140)는 RAM(160)에 기록된 데이터에 기초하여 성능 평가 시뮬레이션 프로그램을 실행한다.
또한, 상기한 각 프로그램(150a∼150d)에 대해서는, 반드시 처음부터 ROM(150)에 기억시켜 둘 필요는 없으며, 예컨대, 컴퓨터(110)에 삽입되는 플렉시블 디스크(FD), CD-ROM, DVD 디스크, 광자기 디스크, IC 카드 등의 「가반용의 물리 매체」, 또는 컴퓨터(110)의 내외에 구비되는 HDD 등의 「고정용의 물리 매체」, 또한 공중 회선, 인터넷, LAN, WAN 등을 통해 컴퓨터(110)에 접속되는 「다른 컴퓨터(또는 서버)」 등에 각 프로그램을 기억시켜 두어, 컴퓨터(110)가 이들로부터 각 프로그램을 독출하여 실행하도록 하여도 좋다.
(부기 1)
시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치로서,
상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 수단과,
상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 수단과,
상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 수단과,
상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션 을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 수단과,
를 구비한 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
(부기 2)
상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 소정의 횟수분 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 3)
상기 기본 처리 단위는, 이 기본 처리 단위를 복수 조합한 프로세스 처리 단위에 따라 각 기본 처리 단위 고유의 기능을 기술하는 제1 블록과, 상기 통계 정보를 수집하기 위한 처리를 행하는 제2 블록으로 구성되는 것으로서,
상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위를 복수 조합한 프로세스 처리에 있어서, 상기 제1 블록에 의해 각 기본 처리 단위 고유의 기능이 실행되어 제2 블록을 호출하며, 호출된 제2 블록에 있어서 이 프로세스 처리에 부하를 걸어, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해 석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 4)
상기 성능 평가 시뮬레이션을 실행하는 타겟 프로세서의 성능 평가 결과의 판정 조건을 설정하는 판정 조건 설정 수단을 더 구비하고,
상기 배치 구성 변경 수단은 상기 성능 평가 시뮬레이션 실행 후에 얻어진 통계 정보가 상기 판정 조건 설정 수단에 의해 설정되는 판정 조건을 만족하지 않는 경우에, 소정의 임계값을 변경하며, 상기 처리량 산출 수단에 의해 산출된 처리량과 이 변경된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하고,
상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 5)
상기 성능 평가 시뮬레이션을 실행하는 타겟 프로세서의 성능 평가 결과의 판정 조건을 설정하는 판정 조건 설정 수단을 더 구비하고,
상기 처리량 산출 수단은 상기 기본 처리 단위 분할 수단에 의해 분할된 기 본 처리 단위를 복수 조합한 프로세스 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하며,
상기 배치 구성 변경 수단은 상기 성능 평가 시뮬레이션 실행 후에 얻어진 통계 정보가 상기 판정 조건 설정 수단에 의해 설정되는 판정 조건을 만족하지 않는 경우에, 소정의 임계값을 변경하며, 상기 처리량 산출 수단에 의해 산출된 처리량과 이 변경된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하고,
상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 프로세스 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 프로세스 처리 단위에 대하여 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 6)
상기 배치 구성 변경 수단에 있어서 이용되는 소정의 임계값은, 상기 통계 정보 작성 수단으로부터 얻어지는 통계 정보로부터 산출하는 기본 처리 단위마다의 성능 평가 결과와, 이 기본 처리 단위의 각 실행 로그의 파일 사이즈에 기초하여 결정되는 것으로서,
상기 배치 구성 변경 수단은, 상기 처리량 산출 수단에 의해 산출된 처리량 과 상기 결정된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 7)
상기 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치와 동등한 기능을 갖는 제2 성능 평가 시뮬레이션 장치를 배치한 성능 평가 시뮬레이션 장치로서,
상기 배치 구성 변경 수단은 상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 제2 성능 평가 시뮬레이션 장치로 배치 구성을 변경하는 것을 특징으로 하는 부기 1에 기재된 성능 평가 시뮬레이션 장치.
(부기 8)
시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치의 성능 평가 시뮬레이션 방법으로서,
상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 공정과,
상기 기본 처리 단위 분할 공정에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 공정과,
상기 처리량 산출 공정에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 공정과,
상기 배치 구성 변경 공정에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 공정과,
를 포함한 것을 특징으로 하는 성능 평가 시뮬레이션 방법.
(부기 9)
시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 방법을 컴퓨터에 실행시키는 성능 평가 시뮬레이션 프로그램으로서,
상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 단계와,
상기 기본 처리 단위 분할 단계에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 단계와,
상기 처리량 산출 단계에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 단계와,
상기 배치 구성 변경 단계에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 단계와,
를 컴퓨터에 실행시키는 것을 특징으로 하는 성능 평가 시뮬레이션 프로그램.
(부기 10)
시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리에 대하여 시뮬레이션을 행하는 성능 평가 시뮬레이션 장치를 구비하며, 상기 성능 평가 시뮬레이션 장치에 의해 얻어진 성능 평가에 기초하여 LSI를 설계하는 전자 장치로서,
상기 소프트웨어 모델과 하드웨어 모델을 접수하는 접수 수단과,
상기 접수 수단에 의해 접수한 상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 수단과,
상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 수단과,
상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 수단과,
상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 수단과,
상기 통계 정보 작성 수단에 의해 작성된 통계 정보에 기초하여, 소프트웨어와 하드웨어를 LSI에 분할하여 탑재시키는 LSI 생성 수단과,
를 구비한 것을 특징으로 하는 전자 장치.
(부기 11)
시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리에 대하여 시뮬레이션을 행하는 성능 평가 시뮬레이션 장치를 구비하며, 상기 성능 평가 시뮬레이션 장치에 의해 얻어진 성능 평가에 기초하여 LSI를 설계하는 전자 장치의 LSI 설계 방법으로서,
상기 소프트웨어 모델과 하드웨어 모델을 접수하는 접수 공정과,
상기 접수 공정에 의해 접수한 상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 공정과,
상기 기본 처리 단위 분할 공정에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 공정과,
상기 처리량 산출 공정에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 공정과,
상기 배치 구성 변경 공정에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 공정과,
상기 통계 정보 작성 공정에 의해 작성된 통계 정보에 기초하여, 소프트웨어와 하드웨어를 LSI에 분할하여 탑재시키는 LSI 생성 공정과,
를 포함한 것을 특징으로 하는 LSI 설계 방법.
(부기 12)
시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리에 대하여 시뮬레이션을 행하는 성능 평가 시뮬레이션 장치를 구비하며, 상기 성능 평가 시뮬레이션 장치에 의해 얻어진 성능 평가에 기초하여 LSI를 설계하는 방법을 컴퓨터에 실행시키는 LSI 설계 프로그램으로서,
상기 소프트웨어 모델과 하드웨어 모델을 접수하는 접수 단계와,
상기 접수 단계에 의해 접수한 상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 단계와,
상기 기본 처리 단위 분할 단계에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 단계와,
상기 처리량 산출 단계에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 단계와,
상기 배치 구성 변경 단계에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 단계와,
상기 통계 정보 작성 단계에 의해 작성된 통계 정보에 기초하여, 소프트웨어와 하드웨어를 LSI에 분할하여 탑재시키는 LSI 생성 단계와,
를 컴퓨터에 실행시키는 것을 특징으로 하는 LSI 설계 프로그램.
도 1은 실시예 1에 따른 성능 평가 시뮬레이션 장치의 개요 및 특징을 도시하는 도면이다.
도 2는 실시예 1에 따른 성능 평가 시뮬레이션 장치의 구성을 도시하는 도면이다.
도 3은 실시예 1에 따른 실행 로그 전체의 각 어드레스에의 액세스와 기본 처리 단위의 관계를 도시하는 도면이다.
도 4는 실시예 1에 따른 통계 정보의 예를 도시하는 도면이다.
도 5는 LSI의 개발 플로우를 도시하는 도면이다.
도 6은 실시예 1에 따른 성능 평가 시뮬레이션 장치에 의한 시뮬레이션 처리를 도시하는 흐름도이다.
도 7은 실시예 1에 따른 성능 평가 시뮬레이션 장치에 의한 SW/HW 분할 처리에 대해서 설명하기 위한 도면이다.
도 8은 CPU 모델이 주기적으로 이벤트를 행할 때의 시간과 CPU 처리량의 관계를 도시하는 도면이다.
도 9는 실시예 2에 따른 CPU 내의 기능 모듈의 일부를 하드웨어화한 경우의 이벤트 처리를 도시하는 도면이다.
도 10은 실시예 2에 따른 UML 클래스의 예를 도시하는 도면이다.
도 11은 실시예 2에 따른 SystemC 언어에 의한 기술예를 도시하는 도면이다.
도 12는 실시예 2에 따른 하드웨어 모델의 추상도와 시뮬레이션 처리의 관계 를 도시하는 도면이다.
도 13은 실시예 3에 따른 성능 평가 시뮬레이션 처리에 대해서 설명하기 위한 도면이다.
도 14는 실시예 4에 따른 성능 평가 시뮬레이션 처리에 대해서 설명하기 위한 도면이다.
도 15는 실시예 4에 따른 CPU 내의 프로세스 처리의 일부를 하드웨어화한 경우의 이벤트 처리를 설명하기 위한 도면이다.
도 16은 실시예 5에 따른 SW/HW 분할의 임계값에 실행 로그의 파일 사이즈를 이용하는 경우를 설명하기 위한 도면이다.
도 17은 실시예 6에 따른 애드온 CPU의 이용에 의한 멀티 코어화의 검토에 대해서 설명하기 위한 도면이다.
도 18은 성능 평가 시뮬레이션 프로그램을 실행하는 컴퓨터를 도시하는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
10: 성능 평가 시뮬레이션 장치
11-1∼11-n: 기능 모듈
20: 스케쥴러부
21: 액세스 처리부
30: 버스

Claims (10)

  1. 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치로서,
    상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 수단과,
    상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 수단과,
    상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 수단과,
    상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 수단
    을 구비한 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  2. 제1항에 있어서, 상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 소정의 횟수분 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  3. 제1항에 있어서, 상기 기본 처리 단위는, 이 기본 처리 단위를 복수 조합한 프로세스 처리 단위에 따라 각 기본 처리 단위 고유의 기능을 기술하는 제1 블록과, 상기 통계 정보를 수집하기 위한 처리를 행하는 제2 블록으로 구성되는 것으로서,
    상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위를 복수 조합한 프로세스 처리에 있어서, 상기 제1 블록에 의해 각 기본 처리 단위 고유의 기능이 실행되어 제2 블록을 호출하며, 호출된 제2 블록에 있어서 이 프로세스 처리에 부하를 걸어, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  4. 제1항에 있어서, 상기 성능 평가 시뮬레이션을 실행하는 타겟 프로세서의 성능 평가 결과의 판정 조건을 설정하는 판정 조건 설정 수단을 더 구비하고,
    상기 배치 구성 변경 수단은 상기 성능 평가 시뮬레이션 실행 후에 얻어진 통계 정보가 상기 판정 조건 설정 수단에 의해 설정되는 판정 조건을 만족하지 않는 경우에, 소정의 임계값을 변경하며, 상기 처리량 산출 수단에 의해 산출된 처리량과 이 변경된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하고,
    상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  5. 제1항에 있어서, 상기 성능 평가 시뮬레이션을 실행하는 타겟 프로세서의 성능 평가 결과의 판정 조건을 설정하는 판정 조건 설정 수단을 더 구비하며,
    상기 처리량 산출 수단은 상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위를 복수 조합한 프로세스 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하 고,
    상기 배치 구성 변경 수단은 상기 성능 평가 시뮬레이션 실행 후에 얻어진 통계 정보가 상기 판정 조건 설정 수단에 의해 설정되는 판정 조건을 만족지 않는 경우에, 소정의 임계값을 변경하며, 상기 처리량 산출 수단에 의해 산출된 처리량과 이 변경된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하고,
    상기 통계 정보 작성 수단은, 상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 프로세스 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 프로세스 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하여, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  6. 제1항에 있어서, 상기 배치 구성 변경 수단에 있어서 이용되는 소정의 임계값은, 상기 통계 정보 작성 수단으로부터 얻어지는 통계 정보로부터 산출하는 기본 처리 단위마다의 성능 평가 결과와, 이 기본 처리 단위의 각 실행 로그의 파일 사이즈에 기초하여 결정되는 것으로서,
    상기 배치 구성 변경 수단은, 상기 처리량 산출 수단에 의해 산출된 처리량과 상기 결정된 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  7. 제1항에 있어서, 상기 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치와 동등한 기능을 갖는 제2 성능 평가 시뮬레이션 장치를 배치한 성능 평가 시뮬레이션 장치로서,
    상기 배치 구성 변경 수단은 상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 제2 성능 평가 시뮬레이션 장치로 배치 구성을 변경하는 것을 특징으로 하는 성능 평가 시뮬레이션 장치.
  8. 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 성능 평가 시뮬레이션 장치의 성능 평가 시뮬레이션 방법으로서,
    상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 공정과,
    상기 기본 처리 단위 분할 공정에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 공정과,
    상기 처리량 산출 공정에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 공정과,
    상기 배치 구성 변경 공정에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 공정
    을 포함한 것을 특징으로 하는 성능 평가 시뮬레이션 방법.
  9. 시스템의 사양으로부터 소프트웨어와 하드웨어를 이용하여 각각 실행되는 처리를 가결정한 소프트웨어 모델과 하드웨어 모델에 대하여, 시뮬레이션을 실행하여 성능을 평가하는 방법을 컴퓨터에 실행시키는 성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체로서, 상기 성능 평가 시뮬레이션 프로그램은,
    상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 단계와,
    상기 기본 처리 단위 분할 단계에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 단계와,
    상기 처리량 산출 단계에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 단계와,
    상기 배치 구성 변경 단계에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 단계
    를 컴퓨터에 실행시키는 것을 특징으로 하는 성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체.
  10. 시스템의 사양으로부터 소프트웨어와 하드웨어에서 각각 실행되는 처리에 대하여 시뮬레이션을 행하는 성능 평가 시뮬레이션 장치를 구비하며, 상기 성능 평가 시뮬레이션 장치에 의해 얻어진 성능 평가에 기초하여 LSI를 설계하는 전자 장치로서,
    상기 소프트웨어 모델과 하드웨어 모델을 접수하는 접수 수단과,
    상기 접수 수단에 의해 접수한 상기 소프트웨어 모델을 실제 기계 또는 시뮬레이션 소프트웨어에서 실행하여 얻어진 실행 이력인 실행 로그에 기초하여, 상기 소프트웨어 모델에서 실행되는 처리의 실행 단위인 기본 처리 단위로 분할하는 기본 처리 단위 분할 수단과,
    상기 기본 처리 단위 분할 수단에 의해 분할된 기본 처리 단위의 처리량을, 상기 실행 로그에 유지되는 명령 어드레스열의 수 또는 데이터 액세스의 어드레스열의 수로부터 산출하는 처리량 산출 수단과,
    상기 처리량 산출 수단에 의해 산출된 처리량과 소정의 임계값을 비교하여, 이 소정의 임계값을 넘는 처리량을 갖는 기본 처리 단위를 소프트웨어 모델에서 하드웨어 모델로 배치 구성을 변경하는 배치 구성 변경 수단과,
    상기 배치 구성 변경 수단에 의해 하드웨어 모델로 배치 구성이 변경된 기본 처리 단위와, 소프트웨어 모델에 배치 구성되어 있는 기본 처리 단위에 대하여, 명령 캐쉬와 데이터 캐쉬를 경유하여 버스 액세스를 실행하는 성능 평가 시뮬레이션을 실행하며, 상기 시스템의 동작 해석에 필요한 데이터를 계측하여, 성능 평가의 기초가 되는 통계 정보를 작성하는 통계 정보 작성 수단과,
    상기 통계 정보 작성 수단에 의해 작성된 통계 정보에 기초하여, 소프트웨어와 하드웨어를 LSI에 분할하여 탑재시키는 LSI 생성 수단
    을 구비한 것을 특징으로 하는 전자 장치.
KR1020080133542A 2008-01-08 2008-12-24 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체 KR100986784B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008001606A JP5034955B2 (ja) 2008-01-08 2008-01-08 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JPJP-P-2008-001606 2008-01-08

Publications (2)

Publication Number Publication Date
KR20090076782A true KR20090076782A (ko) 2009-07-13
KR100986784B1 KR100986784B1 (ko) 2010-10-12

Family

ID=40497579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080133542A KR100986784B1 (ko) 2008-01-08 2008-12-24 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체

Country Status (5)

Country Link
US (1) US8214189B2 (ko)
EP (1) EP2081116A1 (ko)
JP (1) JP5034955B2 (ko)
KR (1) KR100986784B1 (ko)
CN (1) CN101482891B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101266267B1 (ko) 2006-10-05 2013-05-23 스플렁크 인코퍼레이티드 시계열 검색 엔진
JP5034955B2 (ja) 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体
KR101080974B1 (ko) * 2009-11-24 2011-11-09 한국과학기술정보연구원 계산 시뮬레이션 모사 시스템 및 그 방법
JP5790431B2 (ja) 2011-11-18 2015-10-07 富士通株式会社 設計支援装置、設計支援方法および設計支援プログラム
JP6056453B2 (ja) * 2012-12-20 2017-01-11 富士通株式会社 プログラム、データ管理方法および情報処理装置
US10997191B2 (en) 2013-04-30 2021-05-04 Splunk Inc. Query-triggered processing of performance data and log data from an information technology environment
US10346357B2 (en) 2013-04-30 2019-07-09 Splunk Inc. Processing of performance data and structure data from an information technology environment
US10353957B2 (en) 2013-04-30 2019-07-16 Splunk Inc. Processing of performance data and raw log data from an information technology environment
CN104426945B (zh) * 2013-08-27 2019-08-13 腾讯科技(深圳)有限公司 一种获取应用性能数据的方法、设备和系统
CN103455412B (zh) * 2013-09-23 2016-10-19 扬州大学 一种基于随机进程代数的并发系统性能模拟方法
KR102017284B1 (ko) 2015-05-26 2019-09-02 삼성전자주식회사 부팅 디바이스 및 그 동작 방법
US10303832B2 (en) 2015-09-18 2019-05-28 Mitsubishi Electric Corporation Architecture generating device
TWI627521B (zh) 2017-06-07 2018-06-21 財團法人工業技術研究院 時序估算方法與模擬裝置
CN109685089B (zh) * 2017-10-18 2020-12-22 北京京东尚科信息技术有限公司 评估模型性能的系统及方法
JP6752393B1 (ja) 2019-11-19 2020-09-09 三菱電機株式会社 設計支援システムおよび設計支援プログラム
CN112825058A (zh) * 2019-11-21 2021-05-21 阿里巴巴集团控股有限公司 处理器性能评估方法及装置
CN111274109B (zh) * 2020-01-20 2023-06-02 国网甘肃省电力公司信息通信公司 一种基于请求处理模拟的系统软硬件拓扑的评估方法及系统
CN112486765B (zh) * 2020-11-25 2022-11-11 山东中创软件商用中间件股份有限公司 java应用接口管理方法、系统、装置及计算机可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05158740A (ja) 1991-12-09 1993-06-25 Matsushita Electric Ind Co Ltd 計算機性能評価装置
JPH11259553A (ja) 1998-03-13 1999-09-24 Omron Corp ハードウエアとソフトウエアの混在するシステムの設計支援方法
JPH11259552A (ja) 1998-03-13 1999-09-24 Omron Corp システム仕様記述のシミュレーション方法
KR20010006983A (ko) 1999-06-26 2001-01-26 양세양 신속 프로토타이핑 장치와 그것의 입출력 탐침방법 및그것을 이용한 혼합 검증 방법
JP2001142927A (ja) * 1999-11-16 2001-05-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法,回路の消費電力解析方法及び消費電力解析装置
JP2001318812A (ja) * 2000-05-11 2001-11-16 Nec Corp 性能評価モデル生成装置および性能評価モデル生成方法
JP2001344287A (ja) * 2000-06-02 2001-12-14 Nec Microsystems Ltd アルゴリズム記述におけるバスの性能評価方法
US7069204B1 (en) * 2000-09-28 2006-06-27 Cadence Design System, Inc. Method and system for performance level modeling and simulation of electronic systems having both hardware and software elements
JP2002215423A (ja) 2001-01-22 2002-08-02 Hitachi Ltd ソフトウェアモデル作成方法
US20030121010A1 (en) * 2001-12-21 2003-06-26 Celoxica Ltd. System, method, and article of manufacture for estimating a potential performance of a codesign from an executable specification
FR2838844B1 (fr) * 2002-04-23 2005-07-08 France Telecom Procede de generation d'un modele de performance a partir d'un modele fonctionnel
JP4100630B2 (ja) * 2004-05-14 2008-06-11 インターナショナル・ビジネス・マシーンズ・コーポレーション Uml設計方法
KR100921314B1 (ko) 2004-07-12 2009-10-13 양세양 검증결과 재활용 기법을 채용한 고성능 설계검증 장치 및이를 활용한 신속한 설계검증 방법
JP2006059108A (ja) 2004-08-19 2006-03-02 Mitsubishi Electric Corp 情報システム開発試験支援システム
CN100347683C (zh) * 2005-04-15 2007-11-07 清华大学 结构无关的微处理器验证及评测方法
JP2007018313A (ja) * 2005-07-08 2007-01-25 Fujitsu Ltd 回路設計プログラム、回路設計装置、回路設計方法
US8781808B2 (en) 2005-10-10 2014-07-15 Sei Yang Yang Prediction-based distributed parallel simulation method
US20090150136A1 (en) 2005-10-10 2009-06-11 Sei Yang Yang Dynamic-based verification apparatus for verification from electronic system level to gate level, and verification method using the same
JP2007310449A (ja) 2006-05-16 2007-11-29 Fujitsu Ltd ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法
JP4634525B2 (ja) 2007-10-15 2011-02-16 富士通株式会社 シミュレート方法、シミュレートプログラムおよびシミュレーション装置
JP5034955B2 (ja) 2008-01-08 2012-09-26 富士通株式会社 性能評価シミュレーション装置、性能評価シミュレーション方法および性能評価シミュレーションプログラム
JP5200675B2 (ja) * 2008-06-11 2013-06-05 富士通株式会社 シミュレーション装置,シミュレーション方法,シミュレーションプログラム及び同プログラムを記録したコンピュータ読取可能な記録媒体

Also Published As

Publication number Publication date
CN101482891A (zh) 2009-07-15
KR100986784B1 (ko) 2010-10-12
US8214189B2 (en) 2012-07-03
CN101482891B (zh) 2011-12-28
JP2009163576A (ja) 2009-07-23
US20090204380A1 (en) 2009-08-13
JP5034955B2 (ja) 2012-09-26
EP2081116A1 (en) 2009-07-22

Similar Documents

Publication Publication Date Title
KR100986784B1 (ko) 성능 평가 시뮬레이션 장치, 성능 평가 시뮬레이션 방법 및성능 평가 시뮬레이션 프로그램을 저장한 컴퓨터 판독 가능 매체
US8229723B2 (en) Performance software instrumentation and analysis for electronic design automation
US7558719B1 (en) System and method for runtime analysis of system models for variable fidelity performance analysis
TW539965B (en) Automated processor generation system for designing a configurable processor and method for the same
WO2007066321A1 (en) Transaction-based power model in circuit designs
Cai et al. Retargetable profiling for rapid, early system-level design space exploration
US10579341B2 (en) Generation of workload models from execution traces
US6856951B2 (en) Repartitioning performance estimation in a hardware-software system
KR101076348B1 (ko) 시뮬레이션 장치, 시뮬레이션 방법, 및 시뮬레이션 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
Onnebrink et al. Black box ESL power estimation for loosely-timed TLM models
López-Paradís et al. Gem5+ rtl: A framework to enable rtl models inside a full-system simulator
TWI604326B (zh) 基於fpga之系統功率評估裝置與方法
US8452581B2 (en) Technique using power macromodeling for register transfer level power estimation
US20230056423A1 (en) Processor core simulator including trace-based coherent cache driven memory traffic generator
Wolf et al. Execution cost interval refinement in static software analysis
Plyaskin et al. A method for accurate high-level performance evaluation of MPSoC architectures using fine-grained generated traces
US7051301B2 (en) System and method for building a test case including a summary of instructions
Uddin et al. Signature-based high-level simulation of microthreaded many-core architectures
Cornaglia et al. JIT-based context-sensitive timing simulation for efficient platform exploration
US5818850A (en) Speed coverage tool and method
Shaw et al. Assessing and improving current practice in the design of application-specific signal processors
Niar et al. Rapid performance and power consumption estimation methods for embedded system design
Brandolese et al. Measurement, analysis and modeling of rtos system calls timing
Blume et al. Performance analysis of soc communication by application of deterministic and stochastic petri nets
Abdel-Haleem et al. TLM virtual platform for fast and accurate power estimation

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130924

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee