KR101295673B1 - 임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템 - Google Patents

임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템 Download PDF

Info

Publication number
KR101295673B1
KR101295673B1 KR1020117012309A KR20117012309A KR101295673B1 KR 101295673 B1 KR101295673 B1 KR 101295673B1 KR 1020117012309 A KR1020117012309 A KR 1020117012309A KR 20117012309 A KR20117012309 A KR 20117012309A KR 101295673 B1 KR101295673 B1 KR 101295673B1
Authority
KR
South Korea
Prior art keywords
basic block
processing unit
simulation
program
embedded system
Prior art date
Application number
KR1020117012309A
Other languages
English (en)
Other versions
KR20110079856A (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42320354&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR101295673(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 인크론 지엠비에이치 filed Critical 인크론 지엠비에이치
Publication of KR20110079856A publication Critical patent/KR20110079856A/ko
Application granted granted Critical
Publication of KR101295673B1 publication Critical patent/KR101295673B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • 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/3409Recording 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/3419Recording 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 by assessing time
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

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

Abstract

본 발명은 임베디드 시스템에 대하여 시뮬레이션을 수행하는 컴퓨터에 의하여 지원되는 방법 및 데이터 처리 시스템에 관한 것이다. 소프트웨어를 구비한 다수의 하드웨어 구성요소들이 데이터 교환망을 경유하여 연결되어 데이터를 교환하며, 시뮬레이션 프로그램에서, 모든 구성요소가 프로세스의 양을 관리하는 처리유닛으로서 시뮬레이션되며, 상기 시뮬레이션 프로그램에 의하여, 시작시간이 모든 처리유닛에 동적으로 할당되며, 상기 처리유닛은 시작시간에 따라서 동적으로 소트(sort)되며, 다음 시작시간을 가진 처리유닛이 스케줄러에 의해서 선택되며, 처리유닛의 선택에 의하여, 각 활성 프로세스는 해당 베이직 블록 그래프로부터 생성된 프로그램 코드를 실행함으로써 시뮬레이션되며, 시뮬레이션 결과에 따라서, 상기 실행에 대하여 요구된 시간 및/또는 유효함수(function)에 대한 정보가 결정된다.

Description

임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템 {METHOD AND DATA PROCESSING SYSTEM FOR SIMULATING AN EMBEDDED SYSTEM}
본 발명은 임베디드 시스템을 시뮬레이션하는, 특히, 임베디드 시스템을 컴퓨터에 의하여 시뮬레이션을 하는 컴퓨터의 지원을 받는 또는 컴퓨터로 구현되는 방법 및 데이터 처리시스템에 관한 것이다.
임베디드 시스템이란 기술적인 정황상 통합되거나 임베디드된 컴퓨터를 의미 할 수 있으며, 특히 시스템을 작동, 제어, 또는 감시하는 컴퓨터 태스크를 의미할 수 있다. 임베디드 시스템은 주로 해결하고자 하는 기술적인 목적에 적응되도록 구현된다. 이를 위하여, 주로 하드웨어와 소프트웨어의 혼합된 형태로 구현되며, 그것의 일부는 데이터 버스를 통하여 서로 연결되어 데이터를 교환한다. 일반적으로, 그러한 하드웨어와 소프트웨어는 실시간으로 요구사항을 실행되도록 구현되어야 한다. 설계된 하드웨어/소프트웨어를 실제로 구현하기 전에 그것의 실시간 능력을 시뮬레이션하는 것은 경제적으로 상당한 이점이 있다. 그러한 임베디드 시스템이나 타겟 시스템의 시뮬레이션은 보통 호스트 컴퓨터에서 이루어진다.
임베디드 시스템을 하드웨어와 소프트웨어의 혼합된 형태로 구현하기 위하여는, 애플리케이션 프로그램을 실행시키는 하나 이상의 마이크로 프로세서, 상기 마이크로 프로세서와 기타 하드웨어 유닛과 연동하여 하드코드 태스크 (hard-coded task)를 동시에 실행하는 하나 이상의 하드웨어 장치가 구비되어야 한다. 상기 애플리케이션 프로그램은 주로 병행프로세스(concurrent process)를 통해 구현되며, 상기 환경이나 기타 마이크로 프로세서 또는 하드웨어 유닛에 의해서 트리거되는 인터럽트 루틴을 활용하여 구현된다. 마이크로 프로세서상에서의 병행프로세스의 실행순서는 오퍼레이팅 시스템(Operating System)의 스케줄러에 의해서 결정된다. 상기 스케줄러는 주어진 기준(우선순위, 시간제한 등)에 따라서 실행준비중인 프로세스(ready-for-execute processes)의 집합으로부터 실행될 다음 프로세스를 선택한다. 예를들어 타임 슬라이싱 방법(time-slicing method)을 가진 몇몇 애플리케이션 프로그램과 구별하기 위하여, 계층구조의 스케줄링 시스템의 사용이 증가하고 있다.
임베디드 시스템을 시뮬레이션하는 가장 간단한 방법은 소프트웨어를 이용한 시뮬레이션 방법이다. 이 경우, 소스코드는 호스트 컴퓨터의 프로세서의 작동에 적합한 기계코드로 변환 된 후 호스트 컴퓨터상에서 실행된다. 타겟 시스템의 환경 파라미터들, 예를 들어, 메모리 컨피규레이션(configuration) 파라미터, 가상 포트 상에서의 읽기동작 및 쓰기 동작에 의한 입력/출력 파라미터등이 고려될 수 있다.
그러나 많은 경우, 타겟 시스템의 하드웨어 또한 호스트 컴퓨터상에서 시뮬레이션 될 것이 요구된다. 이를 위하여, 최근에는 하드웨어 구성요소들, 예를 들어, 프로세서 및 컨트롤러 등이 명령어 시뮬레이터 (ISS: Instruction Set Simulators)로 시뮬레이션 되고 있다. 이러한 목적에 맞게, 상기 ISS는 호스트 컴퓨터상의 각 하드웨어 구성요소에 대하여 생성된 기계코드를 실행한다. 이렇게 하여, 임베디드 시스템용 소프트웨어의 기능이 확인될 수 있다.
현재 인터프리티브 ISS(Interpretive ISS)가 시뮬레이션에 주로 이용되고 있다. 그러나 그와 같은 ISS는 코드 변환시간이 있기 때문에 상대적으로 느리게 동작하여, 결과적으로는 임베디드 시스템의 실시간 능력을 정확하게 시뮬레이션하는데에는 부적합하다. 이러한 불리한 점을 극복하기 위한 방안으로, 종래기술에는 정적 컴파일 ISS(Static-compiled ISS)가 공지되어 있다. 정적 컴파일 ISS의 시뮬레이션 속도는 인터프리티브 ISS보다 상당히 높다. 그러나, 정적 컴파일 ISS는 동적 프로세스에 대하여 플렉서블(Flexible)하지 않다. 이것은 임베디드 시스템의 실시간 능력을 정확하게 시뮬레이션 하지 못하는 요인이 된다.
RSP'04(Rapid System Prototyping)에 대한 제15회 IEEE 국제 워크숍의 회의록 1074-6005/2004 IEEE에서 정무경 및 경종민에 의하여 발표된 "플렉서빌러티(Flexibility)를 증가 시키고 컴파일 시간을 줄임으로써 컴파일 ISS를 개선하는 방안 (Improvement of Compiled Instruction Set Simulator by Increasing Flexibility and Reducing Compile Time)" 에서 바이너리 포맷 대신 오브젝트 포맷이 시뮬레이션에 입력되는 방법이 개시되었다. 이 경우, 동적 스킵 핸들러(Dynamic skip handler)를 사용하여 상기 변환시간을 줄이고 플렉서빌러티를 개선할 수 있다.
국제특허 WO 01/35223 A1는 시뮬레이션이 수행된 하드웨어 상에서 애플리케이션 프로그램을 시뮬레이션하는 방법을 개시한다. 이 경우, 상기 애플리케이션 프로그램은 프로그램 세그먼트로 분류되며 태그가 할당된다. 상기 호스트 컴퓨터상에서 시뮬레이션을 수행하는 동안, 각 프로그램 세그멘트의 실행 시간은 상기 태그를 사용하여 예측될 수 있다. 상기 실행시간을 가산함으로써, 상기 애플리케이션 프로그램의 전체 실행시간을 예측할 수 있다.
Jianwen Zhu 와 Daniel D. Gajski는 "An Ultra-Fast Instruction Set Simulator"라는 제목으로 VLSI(Very Large Scale Integration) 시스템에 대한 IEEE 트랜스 잭션, Vol. 10, No. 3, June 2002, 1063-8210/2002 IEEE에서 시뮬레이션을 가속화시키는 방법을 개시한다. 정적변환 명령어 구조(static translated Instruction Set Architecture(ISA))를 이용하여, 기존 C-코드 대신 스페셜 로레벨 코드 생성 인터페이스(special low-level code generation interface)를 정의한다. 그렇게 생성된 중간 코드에 대하여 RISC 구조가 제안되었으며, 상기 RISC 구조는 사전 정의된 최소의 명령어 셋을 구비하지만, 무제한의 가상 레지스터를 구비한다. 동적-컴파일 ISS (Dynamic-compiled ISS)와 비교하면, 상기 제안된 중간 코드가 사용되어 타호스트 컴퓨터에 대한 휴대성이 가능하게 되며, 상기 호스트 컴퓨터의 자원을 직접 조작할 수 있다.
Jwahar R 과 Bammi 등은 샌디에고(San Diego)에서 열린 CODES 2000에서 ACM 2000 1-58113-268-9/00/05로서 발표된 "시스템 레벨 디자인 툴에서 소프트웨어 성능 예측 전략 (Software Performance Estimation Strategies in a System-Level Design Tool)" 에서 임베디드 시스템에서 실행시간을 예측하는 두 가지 방법을 개시하였다. 양 시스템에서, 상기 프로그램 코드는 실행시간에 대한 정보와 기타 시간 관련 정보(time-relevant information)를 포함한다.
미국 특허 제 US 6,230,114 B1는 동시-시뮬레이션 설계 시스템 (co-simulation design system)을 개시한다. 모델 중심 프로세스 시뮬레이터(Model-based process simulator)들은 인터페이스를 통하여 상호 연결되며 호스트 시스템상의 두 개의 시뮬레이터 사이의 통신을 시뮬레이션한다.
종래기술의 방법들은 다수의 협동 프로세서를 구비한 복잡한 시스템에 대해서는 시뮬레이션하지 못하는 단점들이 있다.
본 발명의 목적은 종래기술의 단점을 극복하기 위하여 제안된다. 특히, 임베디드 시스템을 시뮬레이션하는 방법에서, 복잡한 임베디드 시스템의 기능 및/또는 임시거동이 더욱 정확하게 시뮬레이션 될 수 있다. 본 발명의 또 다른 목적은 상기 호스트 컴퓨터상에 타겟 시스템을 가능한 한 간단하게 매핑할 수 있는 방법을 제안하는 것이다.
본 발명의 또 다른 목적은 계층적인 스케줄링 방법을 사용하여 복잡한 임베디드 시스템을 효과적으로 시뮬레이션하는 것이다.
본 발명에 따르면, 임베디드 시스템을 시뮬레이션하는 컴퓨터에 의하여 지원되는 방법이 제안되었다. 여기에서, 소프트웨어를 구비한 다수의 하드웨어 구성요소들이 데이터 교환 망을 경유하여 연결되어 데이터를 교환하며, 시뮬레이션 프로그램에서, 모든 구성요소가 프로세스의 양을 관리하는 처리유닛으로서 시뮬레이션 되며, 상기 시뮬레이션 프로그램에 의하여, 시작시간이 모든 처리유닛에 동적으로 할당되며, 상기 처리유닛은 시작시간에 따라서 동적으로 소트(sort)되며, 다음 시작시간을 가진 처리유닛이 스케줄러에 의해서 선택되며, 처리유닛의 선택에 의하여, 각 활성 프로세스는 해당 베이직 블록 그래프로부터 생성된 프로그램 코드를 실행함으로써 시뮬레이션되며, 시뮬레이션 결과에 따라서, 상기 실행에 대하여 요구된 시간 및/또는 유효함수(function)에 대한 정보가 결정된다.
본 발명에 따르면, 처리유닛(processing unit)은 각 구성요소의 하드웨어와 소프트웨어가 매핑되는 프로그램부이다. 모든 처리유닛은 일반적이 처리유닛 프로그램 구조로부터 생성된다. 그와 같은 처리유닛 프로그램 구조는 환경 파라미터 등이 소팅된 테이블을 포함한다.
시작시간(start time)이라는 용어는 상기 처리유닛이 제1 스케줄러에 의하여 선택되고 활성화되는 시점을 의미한다. 결과적으로, 처리유닛 상에 존재하는 활성상태에 있는 프로세스가 실행된다. 상기 시작시간은 시뮬레이션 프로그램의 알고리즘을 통하여 처리유닛에 동적으로 할당된다.
본 발명에 따르면, 프로세스는 예를 들어 시뮬레이션된 프로세서상의 시뮬레이션 프로그램에 의하여 시뮬레이션 되는 태스크, 쓰레드, 오퍼레이팅 시스템 프로세스, 인터럽트 서비스 루틴(ISR) 일 수 있다.
베이직 블록(Basic Block, BB)은 프로그램 명령어 시퀀스의 일부이다. 상기 베이직 블록에는 서브시퀀스 명령어들의 최대 시퀀스가 구비된다. 시퀀스는 제1명령어가 실행된 후 반드시 상기 시퀀스의 나머지 명령어들이 실행되는 것으로 정의된다.
시뮬레이션 프로그램을 설정(setting-up)하기 위하여, 상기 프로세스들이 베이직 블록 그래프의 형태로 표현된다. 모든 프로세스는 하나 이상의 베이직 블록들을 구비할 수 있다.
본 발명에 따르면, 시뮬레이션 프로그램이라는 용어는 시뮬레이션 될 임베디드 시스템과 다른 호스트 컴퓨터상에서 실행되는 컴퓨터 프로그램을 의미한다.
바람직한 실시예에 따르면, 모든 처리유닛은 클럭 시뮬레이션 프로그램을 할당 받으며, 프로세스를 실행하는데 요구되는 로컬시간이 상기 클럭 시뮬레이션 프로그램에 의하여 결정된다. 상기 클럭 시뮬레이션 프로그램과의 연동을 통하여 실질적인 시뮬레이션이 가능하게 된다. 모든 처리유닛은 그 자신의 시간-특성 환경(time-characteristic environment)에서 시뮬레이션 된다. 적절한 클럭 시뮬레이션 프로그램이 종래기술, WO 02/21261에 공지되어 있다. 각 처리유닛에 대하여 시뮬레이션된 클럭을 사용한 프로세스의 실행은 로컬시간 또는 시간 세그멘트를 제공한다. 바람직한 실시예에 따르면, 상기 로컬시간은 상기 시스템 시간에 근거하여 시작시간으로 변환된다. 따라서, 상기 시작시간은 상기 처리유닛의 로컬시간 환경을 고려하여 결정된다.
바람직한 실시예에 따르면, 임베디드 시스템의 계층적인 스케줄러의 구조는시뮬레이션 프로그램에서 스케줄러 프로그램 구조의 등가 계층에 의하여 매핑되며, 상기 스케줄러 프로그램 구조는 상기 임베디드 시스템의 프로세스의 할당된 프로그램 구조를 관리하며 임베디드 시스템 내에서 스케줄러와 같은 방법으로 스케줄링을 결정한다. 바람직하게는, 상기 스케줄러는 각 시뮬레이션 사이클 마다 할당된 처리유닛의 프로세스 리스트에 근거하여 결정을 새롭게 할 뿐만 아니라, 상기 스케줄러에 의하여 관리되는 프로세스의 상태 변화 시 및/또는 TDMA 스케줄링에 의하여 정의된 시간에 결정을 새롭게 한다.
바람직하게, 모든 프로세스는 상기 베이직 블록 그래프의 적어도 하나의 베이직 블록을 통하여 기술된다. 상기 베이직 블록은, 상기 베이지 블록을 실행하는데 필요한 시간을 결정할 수 있도록 하는 정보 및/또는 상기 베이직 블록의 실행에 의하여 생성된 함수(function)를 구비한다. 상기 시뮬레이션 프로그램을 생성하기 위하여, 상기 베이직 블록을 포함하는 상기 베이직 블록 그래프는 컴파일러에 의하여 연속하여 상기 프로그램 코드로 변환된다. 이것은 프로그램 코드가 이전에 첨가된 정보를 포함하고 있음을 의미한다. 따라서, 시뮬레이션 과정이 모든 프로세스에 대하여 정확하게 재현될 수 있다. 결론적으로, 시뮬레이션될 실행프로그램이 최적화될 수 있는지 여부와 만약 최적화된다면, 어디에서 최적화되는지를 신속하고 간단하게 알 수 있다. 베이직 블록에 대응하는 프로그램 코드를 생성한 후, 상기 스케줄러에 의해서 상기 처리유닛 리스트로부터 다음 처리유닛이 선택될지 및/또는 상기 활성상태에 있는 프로세스가 상기 선택된 처리유닛 상에서 계속하여 동작할 지가 주어진 파라미터를 근거로 확인된다.
본 발명의 바람직한 실시예에 따르면, 상기 시뮬레이션 프로그램은 상기 처리유닛을 구비하는 제1 시뮬레이션 프로그램부와 상기 실행시간 및/또는 상기 함수를 결정하는 제2 시뮬레이션 프로그램부를 갖는다. 상기 제1시뮬레이션 프로그램부는 시뮬레이션 될 임베디드 시스템에 대한 정보를 포함한다. 상기 제1시뮬레이션 프로그램부는 시뮬레이션 될 모든 임베디드 시스템에 대하여 새롭게 생성되어야 한다. 상기 제2 프로그램부는 상기 시뮬레이션 프로그램을 실행하고 제어하기 위해서 이용될 뿐만 아니라, 실행시간 및/또는 실행함수를 결정하기 위해서 이용된다. 상기 제2 프로그램부는 시뮬레이션이 수행될 모든 임베디드 시스템에 적용될 필요는 없다.
또한, 소프트웨어를 구비한 다수의 하드웨어 구성요소들이 데이터 교환망을 경유하여 연결되어 데이터를 교환하는 임베디드 시스템을 시뮬레이션하는 데이터 처리 시스템이 제공된다. 상기 데이터 처리 시스템은 모든 구성요소가 프로세스의 양을 관리하는 처리유닛으로서 시뮬레이션 되도록 하며, 시작시간을 모든 유닛에 동적으로 할당하도록 하는 시뮬레이션 프로그램, 시작시간에 따라서 상기 처리유닛을 동적으로 소팅하는 소팅유닛, 및 다음 시작시간을 가진 처리유닛을 선택하는 스케줄러를 구비하며, 상기 데이터 처리 시스템은 처리유닛을 선택하여 해당 베이직 블록 그래프로부터 생성된 프로그램 코드를 실행함으로써 상기 처리유닛에 할당된 활성 프로세스를 시뮬레이션하며, 시뮬레이션 결과에 따라서, 상기 실행에 요구되는 시간 및/또는 유효함수에 대한 정보가 결정된다.
상술한 바와 같이, 본 발명은 임베디드 시스템, 특히 복잡한 임베디드 시스템의 실시간 능력이 정확하게 예측될 수 있다.
시뮬레이션 프로그램을 실행하는 동안, 시작시간이 변경되어 각 처리유닛은 일련의 처리유닛 셋 내에서 다른 위치를 가질 수 있다.
본 발명은 더욱 정확성을 갖게 되며, 특히, 상기 임베디드 시스템이 상기 제안된 방법으로 시뮬레이션 되는 경우, 상기 임베디드 시스템의 실시간 능력이 정확하게 결정될 수 있다.
본 발명에서 시뮬레이션 프로그램은 호스트 컴퓨터상에서 실행되며, 상기 호스트 컴퓨터의 프로세서는 상기 임베디드 시스템의 프로세서와 같거나 유사하다. 이 경우, 상기 시뮬레이션 프로그램에 대한 베이스를 형성하는 시뮬레이션 모델은 시뮬레이션 될 애플리케이션 프로그램을 상기 호스트 컴퓨터상에서 변환함으로써 간단하게 생성될 수 있다. 본 발명의 방법이 호스트 컴퓨터상에서 실행될 수 있으며, 상기 호스트 컴퓨터의 프로세서는 상기 임베디드 시스템의 적어도 하나 이상의 프로세서와 다른 구조를 갖는 것은 당연하다.
본 발명에서 임베디드 시스템의 구성요소는 처리유닛에 매핑된다. 따라서, 본 발명은 지금까지 공지된 방법보다 상당히 빠르게 실행될 수 있다. 여기에서, 모든 구성요소가 다수의 시뮬레이션 프로그램부에 의하여 시뮬레이션 된다. 상기 시뮬레이션 프로그램부는 ISS와 제어부를 시뮬레이션하는 시뮬레이션 프로그램부이다. 시뮬레이션 프로그램부 사이에서 데이터를 상호 교환하면 실행속도가 감소될 수 있다. 따라서, 본 발명에 따르면, 그와 같은 데이터 상호 교환은 처리유닛에서 발생하지 않는다.
도 1 은 본 발명에 따른 시뮬레이션 프로그램의 필수 생성단계를 개괄하여 보여주는 도면이다.
도 2는 본 발명에 따른 시뮬레이션 프로그램의 구조를 개괄하여 보여주는 도면이다.
도 3은 본 발명에 따른 방법을 보여주는 도면이다.
도 4는 현재 동작 중인 프로세스에 의하여 프로세스의 활성화를 시뮬레이션하는 과정을 보여주는 도면이다.
이하에서, 본 발명의 실시예가 첨부된 도면을 참고하여 구체적으로 설명될 것이다.
도 1은 시뮬레이션 프로그램의 필수 생성단계를 보여준다.
예를 들어, 주어진 애플리케이션 프로그램(1-4)의 소스 리스팅(source listing), 처리유닛들(processing units)의 파라미터 파일(1-5), 임베디드 시스템에 구비된 하드웨어 구성요소(1-6)들의 거동모델, 및 시뮬레이션될 임베디드 시스템을 기술하는 프로젝트 파일(1-2)에 근거하여 호스트 시스템(1-1) 상에서 임베디드 시스템을 시뮬레이션하는 시뮬레이션 프로그램을 생성하기 위하여, 제1 시뮬레이션 프로그램 부 또는 오브젝트 코드의 형태를 갖는 시뮬레이션 모델(1-8)이 사전분석과정(1-3)에 있는 상기 호스트 시스템(1-1)에 제공된다. 상기 시뮬레이션 모델(1-8)은 고정 시뮬레이션 프로그램부(1-10)와 바인더(1-9)에 의하여 결합되어 실행가능한 프로그램(1-11)으로 전달되어 호스트 시스템(1-1)상에서 실행된다. 동작 중인 시물레이션(1-12)의 결과가 리포트부(1-13), 시뮬레이션 트레이스부(1-14) 또는 시스템 거동을 표시하는 그래픽 다이어그램부(1-15)에 제공될 수 있다. 상기 시뮬레이션 모델(1-8)은 대량의 정보, 기술블록(description blocks), 및 구성데이터로 구성되며, 이들은 상기 호스트 시스템(1-1)에 저장되어 있는 오브젝트의 리스트 또는 데이터 구조에 근거하여 사전분석과정 중 적합하게 생성된다. 상기 오브젝트들의 프로퍼티(property) 및 능력은 오브젝트들의 속성(attribute)과 방법으로 매핑될 수 있다.
도 2로부터 알 수 있는 바와 같이, 특히, 시뮬레이션 프로그램은 다음과 같은 요소들을 포함한다.
처리유닛 리스트(2-1)는 상기 임베디드 시스템의 모든 처리유닛들(2-2)을 포함한다. 상기 처리유닛 리스트(2-1)는 상기 프로젝트 파일 또는 상기 처리유닛들(2-2)의 파라미터들(2-3)에 나타나 있는 타겟시스템의 설명 및 활성상태에 있는 하드웨어 구성요소들의 거동모델에 근거하여 생성될 수 있다. 또한, 프로세스들은 상기 하드웨어 구성요소들의 거동모델로부터 유추되거나 보완될 수 있다. 현재 프로세스 이벤트(2-7)는 각 처리유닛(2-2)별로 결정된다.
처리유닛(2-2)의 모든 프로세스(2-6, 2-10, 2-11) 또는 다수의 프로세스에 대하여 대응하는 베이직 블록 그래프(2-8)가 존재한다. 상기 베이직 블록 그래프(2-8)는 어셈블러 코드 시퀀스를 분석함으로써 형성된다. 베이직 블록(2-12)은 버텍스(vertex)로 도시되어 있고, 상기 베이직 블록들 사이의 기능성 천이(functional transition)는 에지(edge)로 도시되어 있다. 베이직 블록 그래프(2-8)는 프로세스를 베이직 블록들로 분류한다. 베이직 블록(2-12)을 실행하기 위하여 요구되는 시간은 버텍스에 근거하여 통계적으로 결정된다. 프로세스의 동적거동은 상기 베이직 블록 그래프(2-8)의 에지에 근거하여 시뮬레이션 프로그램에 의하여 결정된다.
상기 베이직 블록 그래프(2-8)을 설정할 때, 프로세서의 각 실행시간의 정적 프로포션(static proportion)을 갖는 리스트(2-9)가 컴파일된다. 상기 프로세스의 분석된 어셈블러 코드로부터, 베이직 블록들(2-12)로 분류되는 기능적으로 동일한 호스트 소스 코드가 동시에 생성되며, 이 호스트 소스 코드는 호스트 컴파일러를 이용하여 오브젝트 코드로 변환되어 상기 시뮬레이션 프로그램의 기능적인 부분을 형성한다.
상기 처리유닛들의 프로퍼티(properties)(2-3)는 상기 임베디드 시스템에 대응하는 시뮬레이션 모델의 구성에 대한 데이터를 포함한다. 상기 데이터는 상기 스케줄러(2-4,2-5)의 계층적 구조, 스케줄링 타입, 및 선착우선처리방식(first come, first serve), 우선순위 처리방식(priority-based), 또는 라운드 로비(round-robin) 방식과 같은 스케줄링 방법과 관계한다. 또한, 상기 데이터는 메모리 구조 및 메모리 관리를 시뮬레이션하는 것에 대한 정보를 포함할 수 있다.
바람직한 실시예에 따르면, 시뮬레이션 모델은 애플리케이션 프로그램이 임베디드 시스템의 컴파일 ISS를 통하여 임베디드용 어셈블러 코드로서 실행되도록 생성될 수 있다. 여기에서, 환경 파라미터 리스트 형태를 갖는 임베디드 시스템의 변수들이 시뮬레이션 모델에서 고려될 수 있다. 또한, 상기 시뮬레이션 모델은 하드웨어 및 상기 하드웨어 상의 애플리케이션 프로그램의 개별적인 동작의 실행시간 또는 모든 부분적인 동작의 실행시간 정보를 가진 파일을 통해 보충될 수 있다. 이 파일에서, 상기 임베디드 시스템의 시간 거동(time behavior)은 상기 시뮬레이션으로부터 재구성되고 계산된다. 상기 ISS는 그것의 하드웨어 사양, VHDL 코드, 유사한 문서에 근거하여, 상기 임베디드 시스템의 데이터 시트의 기술정보에 근거하여 생성되는 가상 ISS에 의하여 대체될 수 있다. 상기 애플리케이션 프로그램은 상기 임베디드 시스템의 데이터 시트, 하드웨어 사양, VHDL 코드, 또는 유사한 문서에 근거하여 시뮬레이션 모델용 호스트 소스 코드로서 강제적으로 프로그램될 수 있다.
다른 실시예에 따르면, 상기 애플리케이션 프로그램은 다수의 임베디드 시스템상에서 실행될 수 있다. 이 경우, 상기 시뮬레이션 모델은, 다양한 애플리케이션 프로그램 모듈이 각 임베디드 시스템에 대응하는 ISS 상에서 복잡한 사전처리 프로그램(pre-processing program)에 의하여 실행될 수 있도록 생성될 수 있다. 상기 타겟 시스템과 상기 타겟 시스템과 연결된 통신 시스템의 변수들은 환경 파라미터들의 리스트에 의하여 시뮬레이션 모델에서 고려될 수 있다.
도 3은 시뮬레이션 사이클의 방법단계를 도시한다. 상기 시뮬레이션 코어(3-1)에서 동작하는 스케줄러(3-4)는 시작시간별로 소트된 처리유닛의 리스트(3-2)에서 다음 시작시간을 가진 처리유닛(3-3)를 선택한다 (단계 3-a). 이어서, 상기 선택된 처리유닛의 활성 프로세서가 실행되며, 상기 프로세스 결과모듈(3-5)에서 참조 된다 (단계 3-b,3-c).
상기 활성 프로세서(3-10)을 실행하기 위하여, 상기 해당 베이직 블록(3-7)의 프로그램 코드부는 베이직 블록 그래프(3-6)에서 실행된다 (단계 3-d,3-e). 상기 베이직 블록을 실행한 후에, 상기 프로세스 이벤트(3-5)의 다음 베이직 블록이 갱신된다 (단계 3-f). 이어서, 갱신된 스케줄링 프로세스가 변화된 시스템 상태와 타임 프로세스의 관점에서 필요한지를 테스트한다. 현재 시뮬레이션 중에 있는 프로세스를 비활성화시키거나, 같거나 다른 처리유닛(3-3) 상의 타 프로세스를 활성화하거나 비활성화시키는 상기 베이직 블록 그래프(3-6)를 실행시킬 때, 갱신 스케줄링 프로세스는 처리유닛(3-3) 상에서만 요구된다. 이 경우, 각 처리유닛의 시작시간이 갱신된다 (단계 3-g). 이후, 상기 시뮬레이션 사이클이 새로이 시작된다.
도 4는 현재 시뮬레이션이 수행중인 프로세스가 다른 프로세스를 활성화시킬 때 발생하는 방법단계를 더 구체적으로 보여주는 도면이다. 프로세스 이벤트(4-3)뿐만 아니라, 리스트(4-1)에 저장된 처리유닛(4-2)도 또한 스케줄러의 계층구조를 갖는다. 예에서 보는 바와 같이, 상기 처리유닛(4-2)은 종속 스케줄러(4-5) 및 프로세스(4-6)을 관리하는 스케줄러(4-4)로 구성되어 있다. 상기 종속 스케줄러(4-5)는 프로세스(4-7) 및 프로세서(4-8)를 관리한다. 현재 시물레이션 코어는 프로세스 이벤트(4-3)에 의해서 참조 되는 상기 프로세스(4-8)의 베이직 블록 그래프(4-9)의 버텍스(4-10)를 실행한다 (단계 4-a). 시뮬레이션 방법으로 활성화된 애플리케이션 프로그램이 이러한 시뮬레이션 단계에서 프로세스(4-6)를 활성화한다. 이러한 활성화는 프로세스(4-6)를 거쳐(단계 4-b), 차례로 스케줄러(4-4)에 보고된다 (단계 4-c). 스케줄러(4-4)는 활성상태에 있는 프로세스(4-8) 또는 그것의 종속 스케줄러(4-5)가 상기의 활성화에 의하여 선취 되어야 하는지 확인한다. 이러한 사항이 처리유닛(4-2)에 보고된다면 (단계 4-d), 새로운 프로세스(4-6)로 프로세스 이벤트(4-3)을 갱신한다. 만약, 스케줄러(4-4)가 어떠한 프로세스도 선취할 필요가 없다고 결정하면, 처리유닛(4-2)에 보고하지 않고 프로세스 이벤트(4-3)는 변경되지 않는다. 이것은 이전에 활성화된 프로세스(4-8)가 계속됨을 의미한다.
시뮬레이션 프로그램에서, 실제 시스템의 각 구성요소의 소프트웨어와 하드웨어사이의 상호작용에 대한 시뮬레이션이 상기 하드웨어 레지스터의 시뮬레이션 통해서 이루어진다. 이것은 타겟 시스템에서도 마찬가지로 발생한다. 그와 같은 접근은 상기 타겟 시스템에서의 하드웨어의 내부상태를 변화시킨다. 상기 시뮬레이션 프로그램에서, 하드웨어의 상태의 변화는 해당 프로세스의 활성화에 의하여 시뮬레이션 된다. 또한, 상기 시뮬레이션될 하드웨어의 임시 및 기능적 거동이 상기 시뮬레이션될 소프트웨어의 임시 및 기능적 거동과 독립적으로 실행될 수 있다.
타겟 시스템에서, 다수의 하드웨어 구성요소들 사이의 상호작용은 전기신호의 교환에 의하여 이루어진다. 상기 시뮬레이션 프로그램에서, 전기 측정기는 시뮬레이션 속도를 증가시키기 위해 추상화되고 복잡한 데이터 패키지의 형태로 매핑된다.
비록 본 발명이 도면을 참조하여 구체적으로 설명되고 기술되지만, 이러한 도시 및 상세한 설명은 단지 예시이며 본 발명을 한정하지 않는다. 발명이 속하는 분야에서 통상의 지식을 가진자가 본 청구항의 영역을 벗어나지 않는 범위에서 본 발명을 수정 및 변경할 수 있음은 당연하다. 특히 본 발명은 다양한 측면 및/또는 실시예들에 대하여 언급하였고 도시된 특징들의 조합을 가진 실시예들이 구비될 수 있다.
본 발명은 비록 도면이 다른 특징들과 연결되며 및/또는 상술되지 않았어도 도면에 있는 각각의 특징들을 포함한다.
또한, "구비하다"라는 용어 및 그것의 어원들은 다른 구성요소 및 단계들을 배제하지 않는다. 또한, 부정관사와 그것의 어원은 복수를 배제하지 않는다. 청구항에서 주장된 특징들의 몇몇 기능들은 한 장치에 의하여 실행될 수 있다. 특성 또는 값과 관계있는 "기본적으로", "약", "대략" 등의 용어는 정확하게 그 특성과 그 값을 정의한다. 청구항에 있는 모든 참조부호는 청구항의 범위를 떠나서 이해되어서는 안 된다.
1-1: 호스트 시스템 1-2: 프로젝트 파일
1-3: 사전분석 1-4: 애플리케이션 프로그램
1-5: 프로세서 모델 라이브러리
1-6: 하드웨어 컴포넌트 라이브러리
1-7: 컴파일러
1-8: 제1 시뮬레이션 프로그램부의 오브젝트 코드
1-9: 바인더 1-10: 시뮬레이터 코어의 라이브러리
1-11: 실행가능한 시뮬레이션 코드
1-12: 동작중인 시뮬레이션
1-13: 결과보고 1-14: 시뮬레이션 트레이스
1-15: 임베디드 시스템의 동적거동을 묘사한 도면
2-1: 처리유닛 리스트 2-2: 처리유닛
2-3: 처리유닛의 프로퍼티
2-4: 상위 스케줄러 2-5: 종속 스케줄러
2-6: 프로세스 2-7: 프로세스 이벤트
2-8: 베이직 블록 그래프
2-9: 베이직 블록 버텍스의 정적 실행시간을 가진 테이블
2-10,2-11 프로세스 2-12: 베이직 블록
3-1: 시뮬레이션 코어 3-2: 처리유닛 리스트
3-3: 처리유닛 3-4: 스케줄러
3-5: 프로세스 이벤트 3-6: 베이직 블록 그래프
3-7,3-8: 베이직 블록 3-9: 선택 처리유닛
3-10: 선택 프로세스
4-1: 처리유닛 리스트 4-2: 처리유닛
4-3: 프로세스 이벤트 4-4,4-5: 스케줄러
4-6,4-7,4-8 프로세스 4-9: 베이직 블록 그래프
4-10,4-11: 베이직 블록

Claims (22)

  1. 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법에 있어서,
    소프트웨어를 구비한 다수의 하드웨어 구성요소들이 데이터 교환망을 경유하여 연결되어 데이터를 교환하며,
    시뮬레이션 프로그램에서, 모든 구성요소가 프로세스를 관리하는 처리유닛으로서 시뮬레이션되며,
    상기 시뮬레이션 프로그램에 의하여, 시작시간이 모든 처리유닛에 동적으로 할당되며,
    상기 처리유닛은 상기 시작시간에 따라서 동적으로 소트(sort)되며,
    다음 시작시간을 가진 처리유닛이 스케줄러에 의해서 선택되며,
    상기 처리유닛의 선택에 의하여, 각 활성 프로세스는 해당 베이직 블록 그래프로부터 생성된 프로그램 코드를 실행함으로써 시뮬레이션되며, 시뮬레이션 결과에 따라서, 상기 실행시 요구되는 시간 및 유효함수(function)에 대한 정보 중 적어도 하나가 결정되는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  2. 제1항에 있어서,
    모든 처리유닛이 클럭 시뮬레이션 프로그램을 할당받으며, 프로세스를 실행하는데 요구되는 로컬시간이 상기 클럭 시뮬레이션 프로그램에 의하여 결정되는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  3. 제2항에 있어서,
    상기 로컬시간이 상기 시스템 시간에 근거하여 시작시간으로 변환되는 것을 특징으로 하는 임베디드 시스템에 대하여 시뮬레이션을 수행하는 컴퓨터의 지원을 받는 방법.
  4. 제1항에 있어서,
    모든 프로세스가 상기 베이직 블록 그래프의 적어도 하나의 베이직 블록에 의해서 기술되는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  5. 제4항에 있어서, 상기 베이직 블록은
    상기 베이직 블록을 실행하는데 필요한 시간을 결정할 수 있도록 하는 정보 및 상기 베이직 블록의 실행에 의하여 생성된 함수(function) 중 적어도 하나를 구비하는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  6. 제1항에 있어서,
    상기 베이직 블록을 포함하는 상기 베이직 블록 그래프는
    컴파일러에 의하여 상기 프로그램 코드로 변환되는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  7. 제1항에 있어서,
    상기 임베디드 시스템은 하나 이상의 계층구조를 갖는 스케줄러를 사용하는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  8. 제1항에 있어서,
    베이직 블록에 대응하는 프로그램 코드를 생성한 후, 주어진 파라미터에 근거하여 상기 스케줄러에 의해서 다음 처리유닛이 선택될지 및 상기 활성상태에 있는 프로세스가 상기 선택된 처리유닛 상에서 계속하여 동작할지 중 적어도 하나를 확인하는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  9. 제1항에 있어서,
    상기 시뮬레이션 프로그램은 상기 처리유닛을 구비하는 제1 시뮬레이션 프로그램 부와 상기 실행시 요구되는 시간 및 상기 함수 중 적어도 하나를 결정하는 제2 시뮬레이션 프로그램부를 갖는 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  10. 제1항에 있어서,
    상기 시뮬레이션 프로그램은 호스트 컴퓨터상에서 실행되며,
    상기 호스트 컴퓨터의 프로세서는 상기 임베디드 시스템의 프로세서와 같은 것을 특징으로 하는 임베디드 시스템을 시뮬레이션하며 컴퓨터의 지원을 받는 방법.
  11. 컴퓨터 프로그램이 컴퓨터상에서 실행되는 경우 청구항 제1 내지 제10항의 어느 한 항에 따른 모든 단계를 실행하기에 적합한 컴퓨터 프로그램 코드 수단을 구비하는 컴퓨터 프로그램이 기록된 컴퓨터 판독가능한 기록매체.
  12. 삭제
  13. 소프트웨어를 구비한 다수의 하드웨어 구성요소들이 데이터 교환망을 경유하여 연결되어 데이터를 교환하는 임베디드 시스템을 시뮬레이션하는 데이터 처리 시스템에 있어서,
    모든 구성요소가 프로세스를 관리하는 처리유닛으로서 시뮬레이션 되도록 하며, 시작시간을 모든 유닛에 동적으로 할당하는 시뮬레이션 프로그램;
    시작시간에 따라서 상기 처리유닛을 동적으로 소팅하는 소팅유닛; 및
    다음 시작시간을 가진 처리유닛을 선택하는 스케줄러를 구비하며,
    상기 데이터 처리 시스템은 처리유닛의 선택에 의하여, 해당 베이직 블록 그래프로부터 생성된 프로그램 코드를 실행함으로써 상기 처리유닛에 할당된 활성 프로세스를 시뮬레이션하며, 시뮬레이션 결과에 따라서, 상기 실행에 대하여 요구된 시간 및 유효함수에 대한 정보 중 적어도 하나를 결정하는 것을 특징으로 하는 데이터 처리 시스템.
  14. 제13항에 있어서,
    모든 처리유닛이 클럭 시뮬레이션 프로그램을 할당받으며, 프로세스를 실행하는데 요구되는 로컬시간이 상기 클럭 시뮬레이션 프로그램에 의하여 결정되는 것을 특징으로 하는 데이터 처리 시스템.
  15. 제14항에 있어서,
    상기 데이터 처리 시스템은 상기 시스템 시간을 이용하여 상기 로컬시간을 상기 시작시간으로 변환하도록 구성되는 것을 특징으로 하는 데이터 처리 시스템.
  16. 제13항에 있어서,
    모든 프로세스는 상기 베이직 블록 그래프에 있는 적어도 하나의 베이직 블록에 의하여 기술되는 것을 특징으로 하는 데이터 처리 시스템.
  17. 제16항에 있어서,
    상기 베이직 블록 각각은 상기 각각의 베이직 블록을 실행하는데 필요한 시간을 결정할 수 있도록 하는 정보 및 상기 각각의 베이직 블록의 실행에 의하여 생성된 함수(function) 중 적어도 하나를 구비하는 것을 특징으로 데이터 처리 시스템.
  18. 제13항에 있어서,
    상기 데이터 처리 시스템은 상기 베이직 블록을 포함하는 상기 베이직 블록 그래프를 상기 프로그램 코드로 변환하도록 구성되는 것을 특징으로 하는 데이터 처리 시스템.
  19. 제13항에 있어서,
    상기 임베디드 시스템은 하나 이상의 계층구조를 갖는 스케줄러를 사용하는 것을 특징으로 하는 데이터 처리 시스템.
  20. 제13항에 있어서,
    베이직 블록에 대응하는 프로그램 코드를 생성한 후, 주어진 파라미터에 근거하여 상기 스케줄러에 의해서 다음 처리유닛이 선택될지 및 상기 활성상태에 있는 프로세스가 상기 선택된 처리유닛 상에서 계속하여 동작할지 중 적어도 하나를 확인하도록 구성되는 것을 특징으로 하는 데이터 처리 시스템.
  21. 제13항에 있어서,
    상기 시뮬레이션 프로그램은 상기 처리유닛을 구비하는 제1 시뮬레이션 프로그램 부와 상기 실행시 요구되는 시간 및 상기 함수 중 적어도 하나를 결정하는 제2 시뮬레이션 프로그램부를 구비하는 것을 특징으로 데이터 처리 시스템.
  22. 제13항에 있어서,
    상기 시뮬레이션 프로그램은 호스트 컴퓨터상에서 실행되며,
    상기 호스트 컴퓨터의 프로세서는 상기 임베디드 시스템의 프로세서와 같은 것을 특징으로 하는 데이터 처리 시스템.
KR1020117012309A 2009-12-23 2009-12-23 임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템 KR101295673B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/067871 WO2011076278A1 (de) 2009-12-23 2009-12-23 Verfahren und datenverarbeitungssystem zur simulation eines eingebetteten systems

Publications (2)

Publication Number Publication Date
KR20110079856A KR20110079856A (ko) 2011-07-08
KR101295673B1 true KR101295673B1 (ko) 2013-08-20

Family

ID=42320354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117012309A KR101295673B1 (ko) 2009-12-23 2009-12-23 임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템

Country Status (7)

Country Link
US (1) US8543369B2 (ko)
EP (1) EP2366146B2 (ko)
JP (1) JP2012509546A (ko)
KR (1) KR101295673B1 (ko)
CA (1) CA2739155C (ko)
IL (1) IL213227A (ko)
WO (1) WO2011076278A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084110A1 (en) * 2010-10-05 2012-04-05 M3 Technology, Inc. System and method for smart oil, gas and chemical process scheduling
FR2971596B1 (fr) * 2011-02-15 2016-01-01 Commissariat Energie Atomique Dispositif pour accelerer l'execution d'une simulation systemc
US10482194B1 (en) * 2013-12-17 2019-11-19 EMC IP Holding Company LLC Simulation mode modification management of embedded objects
US9898388B2 (en) * 2014-05-23 2018-02-20 Mentor Graphics Corporation Non-intrusive software verification
US10445445B2 (en) * 2016-04-22 2019-10-15 Synopsys, Inc. Sliding time window control mechanism for parallel execution of multiple processor core models in a virtual platform simulation
CN108181834B (zh) * 2017-12-27 2021-07-30 中冶京诚工程技术有限公司 基于pscad/emtdc的半实物仿真的方法以及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120079A (ko) * 2003-11-10 2006-11-24 로베르트 보쉬 게엠베하 제어 시스템을 시뮬레이션하고 검증하기 위한 시뮬레이션시스템 및 컴퓨터 구현 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03244068A (ja) * 1990-02-22 1991-10-30 Nec Corp シミュレーション方式
JPH096646A (ja) * 1995-06-14 1997-01-10 Oki Electric Ind Co Ltd プログラムシミュレーション装置
US6766284B2 (en) * 1998-04-10 2004-07-20 Peter Finch Method and apparatus for generating co-simulation and production executables from a single source
US6230114B1 (en) 1999-10-29 2001-05-08 Vast Systems Technology Corporation Hardware and software co-simulation including executing an analyzed user program
US6973417B1 (en) 1999-11-05 2005-12-06 Metrowerks Corporation Method and system for simulating execution of a target program in a simulated target system
EP1325410A2 (de) 2000-09-06 2003-07-09 Friedrich-Alexander-Universität Erlangen-Nürnberg Verfahren zur herstellung von computergestützten echtzeitsystemen
US6882965B1 (en) * 2000-10-17 2005-04-19 Cadence Design Systems, Inc. Method for hierarchical specification of scheduling in system-level simulations
JP3951925B2 (ja) * 2003-01-31 2007-08-01 セイコーエプソン株式会社 ハードウェア/ソフトウェア協調検証方法
FR2882169B1 (fr) 2005-02-14 2007-05-25 Cofluent Design Sarl Procede de simulation d'un systeme complexe incluant une hierarchie d'ordonnanceurs, produit programme d'ordinateur et moyen de stockage correspondants
JP2008059192A (ja) * 2006-08-30 2008-03-13 Oki Electric Ind Co Ltd ハード・ソフト協調検証用シミュレータ
CN101013384A (zh) * 2007-02-08 2007-08-08 浙江大学 一种基于模型的实时系统的可调度性分析方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060120079A (ko) * 2003-11-10 2006-11-24 로베르트 보쉬 게엠베하 제어 시스템을 시뮬레이션하고 검증하기 위한 시뮬레이션시스템 및 컴퓨터 구현 방법

Also Published As

Publication number Publication date
CA2739155C (en) 2018-06-12
US8543369B2 (en) 2013-09-24
EP2366146B2 (de) 2016-10-12
EP2366146A1 (de) 2011-09-21
CA2739155A1 (en) 2011-06-23
JP2012509546A (ja) 2012-04-19
IL213227A (en) 2015-11-30
EP2366146B1 (de) 2012-09-05
US20120029899A1 (en) 2012-02-02
WO2011076278A1 (de) 2011-06-30
IL213227A0 (en) 2011-08-31
KR20110079856A (ko) 2011-07-08

Similar Documents

Publication Publication Date Title
De Micheli et al. Readings in hardware/software co-design
US9697020B2 (en) Execution and real-time implementation of a temporary overrun scheduler
KR101295673B1 (ko) 임베디드 시스템을 시뮬레이션하는 방법 및 데이터 처리시스템
Barbierato et al. Exploiting CloudSim in a multiformalism modeling approach for cloud based systems
CN102279766B (zh) 并行模拟多个处理器的方法及系统、调度器
US20220083706A1 (en) Systems and methods for creating model adaptors
CN109937418B (zh) 用于仿真的基于波形的重构
CN101231589A (zh) 用于原位开发嵌入式软件的系统和方法
US20110218795A1 (en) Simulator of multi-core system employing reconfigurable processor cores and method of simulating multi-core system employing reconfigurable processor cores
Bobrek et al. Modeling shared resource contention using a hybrid simulation/analytical approach
US6775810B2 (en) Boosting simulation performance by dynamically customizing segmented object codes based on stimulus coverage
CN102331961A (zh) 并行模拟多个处理器的方法及系统、调度器
do Nascimento et al. Modes: Embedded systems design methodology and tools based on mde
US11593540B1 (en) Systems and methods for performing concurrency analysis in simulation environments
Yoong et al. Efficient implementation of IEC 61499 function blocks
Soininen et al. Cosimulation of real-time control systems
US20220066824A1 (en) Adaptive scheduling with dynamic partition-load balancing for fast partition compilation
Mooney III Hardware/Software co-design of run-time systems
Hu et al. A performance prototyping approach to designing concurrent software architectures
Rajnak et al. Computer-aided architecture design & optimized implementation of distributed automotive EE systems
Han et al. Efficient multi-core software design space exploration for hybrid control unit integration
Castilhos et al. A framework for mpsoc generation and distributed applications evaluation
Chen et al. A source-level dynamic analysis methodology and tool for high-level synthesis
Hassan et al. Enabling RTOS simulation modeling in a system level design language
Mohamed HW/SW Co-Exploration and Co-Design

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160722

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180712

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 7