KR20060071344A - 정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터프로그램 - Google Patents

정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터프로그램 Download PDF

Info

Publication number
KR20060071344A
KR20060071344A KR1020050126663A KR20050126663A KR20060071344A KR 20060071344 A KR20060071344 A KR 20060071344A KR 1020050126663 A KR1020050126663 A KR 1020050126663A KR 20050126663 A KR20050126663 A KR 20050126663A KR 20060071344 A KR20060071344 A KR 20060071344A
Authority
KR
South Korea
Prior art keywords
processor
processing
instruction
executed
emulation
Prior art date
Application number
KR1020050126663A
Other languages
English (en)
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 KR20060071344A publication Critical patent/KR20060071344A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • 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
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

컴파일 메소드 에뮬레이션(compile method emulation)의 수행을 위해 요구되는 프로세서를 사용하여 인터프리터 메소드 에뮬레이션(interpreter method emulation)을 실현하는 정보처리장치를 제공한다.
선결 처리를 실행하기 위한 주 프로세서(1) 및 주 프로세서(1)로부터의 명령에 따라 에뮬레이션을 실행하기 위한 보조 프로세서(2)를 포함하는 정보처리장치가 사용된다. 보조 프로세서(2)는, 에뮬레이션의 실행이 주 프로세서(1)로부터 명령받았을 때, 에뮬레이션에 따라 실행될 처리가 보조 프로세서(2)에 의하여 실행되어도 좋은지 여부를 결정한다.
보조 프로세서(2)는, 상기 처리가 보조 프로세서(2)에 의하여 실행되어도 되는 경우에는 상기 처리를 실행하지만, 상기 처리가 실행될 수 없는 경우에는 상기 처리의 실행을 주 프로세서(1)에 남겨둔다.
주 프로세서, 보조 프로세서, 입력인터페이스, 출력인터페이스,보조프로세서 인터페이스부, 보조프로세서 파이프라인,표적프로세서 파이프라인,실행지시테이블,파이프라인제어기, 실행시각테이블,시각카운터,보조프로세서지시복호기,데이터획득부,데이터처리부,데이터기록부,표적프로세서지시복호기,데이터판독부,데이터처리부

Description

정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터 프로그램{Information processing device, Information processing method, Semiconductor device, and Computer program}
도 1은 본 실시 예의 정보처리장치의 블록 도이고,
도 2는 본 실시 예에 따른 에뮬레이터의 일반블록 도이고,
도 3은 보조 프로세서(coprocessor) 지시 형태의 예시 도이고,
도 4는 표적 프로세서 지시 형태의 예시 도이고,
도 5는 실행지시 테이블의 예시 도이고,
도 6은 실행시각 테이블의 예시 도이고,
도 7은 본 실시 예에 따른 에뮬레이션 처리의 흐름을 나타내는 예시 도이고,
도 8은 보조 프로세서 지시가 에뮬레이션 실행을 지시하지 않았을 때의 데이터의 흐름을 설명하는 예시 도이고,
도 9는 보조 프로세서에 의해 실행될 수 없는 에뮬레이션 실행이 지시되었을 때의 데이터의 흐름을 설명하는 예시 도이고,
도 10은 보조 프로세서에 의해 에뮬레이션이 실행되었을 때의 데이터의 흐름을 설명하는 예시 도이다.
<도면의 주요부분의 부호에 대한 설명>
1; 주 프로세서(host processor) 2; 보조 프로세서(coprocessor)
3;프로세서(processor)
4;입력인터페이스(input interface) 5;출력인터페이스(output interface)
6; RAM (Random Access Memory) 7; ROM (Read Only Memory)
10; 입력부(input portion) 11; 처리부(processing portion)
12; 보조 프로세서 인터페이스부(coprocessor interface portion)
13; 출력부(output portion) 14; 제어부(control portion)
15, 26; 레지스터(register)
20; 보조 프로세서 파이프 라인(coprocessor pipeline)
21; 표적 프로세서 파이프라인(target processor pipeline)
22; 실행지시 테이블(execution instruction table)
23; 파이프라인 제어기(pipeline controller)
24; 실행시각 테이블(execution clock table)
25; 시각카운터(clock counter)
201; 보조 프로세서 지시 복호기(coprocessor instruction decoder)
202; 데이터 획득부(data obtaining portion)
203; 데이터 처리부(data processing portion)
204, 214; 데이터 기록부(data write portion)
211; 표적 프로세서 지시 복호기(target processor instruction decoder)
212; 데이터 판독부(data read portion)
213; 데이터 처리부(data processing portion)
본 발명은 정보처리장치에 관한 것으로, 특히 복수의 프로세서(processor)를 사용하여 에뮬레이션(emulation)과 같은 처리를 실행하기 위한 정보처리장치에 관한 것이다.
범용 서버시스템 또는 고성능 개인 컴퓨터와 같은 몇몇 정보처리장치들은 각각 복수의 프로세서를 구비한 다중프로세서 시스템(multiprocessor system)을 포함한다. 정보처리장치가 다중프로세서 시스템을 사용하는 경우에, 일반적으로 복수의 프로세서에 의한 분산처리가 수행된다. 분산처리의 경우에, 각 프로세서는 최적화되어 작동하도록 구성된다.
예를 들어, 주 프로세서 및 보조 프로세서를 포함하는 하나의 프로세서 시스템은 복수의 프로세서를 사용하기 때문에 넓은 의미에서 다중프로세서 시스템이라고 불릴 수 있다. 상기 보조프로세서는 일반적으로 특정 처리에 특정되거나 주 프 로세서의 수행을 활성화하는데 사용된다. 주 프로세서 및 보조프로세서는 단시간에 많은 양의 데이터를 송/수신할 수 있는 외부버스에 의해 서로 연결(보조프로세서 연결) 되기 때문에, 보조프로세서 시스템은 정확한 시간제어를 요구하는 데이터처리에 적합하다.
이러한 다중 프로세서 시스템을 사용함으로써 에뮬레이션(emulation)이 수행될 수 있다. 에뮬레이션을 수행하기 위한 에뮬레이터(emulator)의 기본 기능은 본래 다른 정보처리장치 상에서 응용소프트웨어의 실행이 계획되고 소프트웨어, 하드웨어, 또는 소프트웨어와 하드웨어의 결합에 의하여 실현되는 정보처리장치의 실행환경을 형성한다. 에뮬레이션을 수행하기 위한 정보처리장치의 프로세서의 경우에, 에뮬레이션 시에 응용 소프트웨어가 실행되는 정보처리장치의 프로세서(이하, '표적 프로세서'(target processor)라 한다.)와 같은 기능은 응용소프트웨어를 실행하도록 구성된다. 이 경우에 상기 프로세서는 에뮬레이터로서 기능 한다.
다중 프로세서 시스템에 의한 에뮬레이션을 수행하는 경우에, 에뮬레이션을 전담하는 프로세서는 에뮬레이터로서 하나의 정보처리장치 안에 고정된다. 비용이 증가하고 개발주기가 오래 걸리기 때문에 이것은 대단히 현실적이지 않다. 에뮬레이션은 또한 주변장치가 정보처리장치에 연결되어 있어야 할 필요가 있고 개발단계에서 어떤 용량의 프로세서가 필요한지를 아는 것이 어렵다.
임의의 에뮬레이션 시스템은 일반적으로, 응용소프트웨어를 구성하거나 또는 연속적으로 하나씩 프로세싱을 수행하는 다수의 처리지시(이하, 표적 처리 지시(target processor instruction)라 한다.)에 의존하는 컴파일 메소드(compile method)와 인터프리터 메소드(interpreter method)로 나누어진다.
상기 컴파일 메소드에 의하여, 다수의 지시로 구성되는 지시블록을 하나의 유닛(unit)으로 전환하고 지시블록마다 처리를 수행한다. 따라서, 상기 컴파일 메소드는 자주 반복하여 고성능 처리를 실현할 수 있다. 그러나 컴파일 메소드에 있어서, 에뮬레이터에 의해 요구되는 기억용량은 증가하고 자체 수정 코드에 대한 반응은 어렵다. 더욱이, 수행의 굴곡은 반복실행의 주기에 크게 의존하기 때문에, 시간제어가 어렵다고 하는 문제점이 있다.
인터프리터 메소드는 지시마다 전환을 수행하기 때문에, 컴파일 메소드의 경우에 비하여 자체-수정 코드에 대한 반응이 쉽고, 수행의 굴곡이 작고 시간제어가 쉽다. 따라서, 인터프리터 메소드는 실시간 시스템용 프로세서 에뮬레이션에 적합하고 높은 적응성이 기대될 수 있다. 또한, 에뮬레이터에 의해 요구되는 기억용량이 컴파일 메소드의 경우에 비하여 적다. 그렇지만, 인터프리터 메소드는 처리속도와 같은 수행이 컴파일 메소드의 경우에 비하여 실험적으로 1/2 내지 1/3 정도 열등하다는 문제점이 있다.
상기 인터프리터 메소드의 문제점을 해결하기 위하여, 컴파일 메소드에 의한 에뮬레이션을 수행하기 위해 프로세서를 사용하는 경우에 비하여 처리속도를 2배 내지 3배 만큼 증가시킬 필요가 있다. 그러나. 실제로는, 그러한 고속 프로세서는 존재하지 않으며, 그러한 프로세서가 존재한다고 하더라도 가격이 비싸거나 소모전력이 크다는 문제가 자주 발생한다.
또한, 실시간 시스템을 위한 프로세서가 에뮬레이션에 의해 실현될 때, 논리 적으로 정확한 결과가 얻어지거나 처리시간을 최적화하지 않는다면 고 적응성을 담보하는 것은 불가능하다.
본 발명의 목적은 다수의 프로세서를 함께 이용하여 처리하는 정보처리장치, 예를 들어, 다수의 프로세서가 함께 에뮬레이션(emulation)을 수행하는 정보처리장치를 제공하는 것이다.
본 발명은 상기 목적을 해결하기 위하여 구성되었으며, 본 발명의 또 다른 목적은 컴파일 메소드 에뮬레이션(compile method emulation)을 위한 요구를 수행하는 프로세서를 사용하여 인터프리터 메소드 에뮬레이션(interpreter method emulation)을 위해 요구되는 수행을 실현하기 위한 정보처리장치를 제공하는 것이다.
상기 목적을 해결하기 위한 본 발명의 정보처리장치는 선결 지시를 획득하기 위한 제 1 프로세서와 상기 제 1 프로세서로부터의 지시에 따라 선결 처리를 실행하기 위한 제 2 프로세서를 포함한다. 상기 제 1 프로세서는 상기 제 2 프로세서가 선결 지시에 따라 선결 처리를 수행하도록 구성된다. 상기 제 2 프로세서는 제 1 프로세서로부터 지시된 선결 처리가 실행되어도 좋은지 여부를 결정하기 위한 결정수단을 포함하며, 상기 선결 처리가 실행될 수 없는 경우는, 선결처리가 실행되어서는 안 된다는 통지(notice)를 상기 제 1 프로세서로 전송한다. 상기 제 1 프로세서는 상기 통지가 제 2 프로세서로부터 전송되는 때 선결처리를 실행하도록 구성된 다. 상기 정보처리 장치는 상기 제 1 프로세서와 제 2 프로세서가 선결지시에 따라 상기 처리를 함께 수행하도록 구성된다.
본 발명의 정보처리장치의 경우에, 상기 제1 프로세서 및 제 2 프로세서는 함께 처리(예를 들어, "에뮬레이션(emulation)")를 수행한다. 따라서, 제1 프로세서가 컴파일 메소드 에뮬레이션을 위한 요구만을 수행하더라도, 상기 정보처리장치는 인터프리터 메소드 에뮬레이션을 수행하여도 된다.
본 발명의 정보처리방법은 선결 지시를 얻기 위한 제 1 프로세서와 상기 제 1 프로세서로부터의 지시에 따라 선결 처리를 실행하기 위한 제 2 프로세서를 포함하는 정보처리장치에 의하여 실행되며, 상기 제 1 프로세서와 제 2 프로세서는 지시에 따라 함께 처리를 실행한다. 상기 방법은 제 1 프로세서가 제 2 프로세서로 하여금 선결지시에 따라 선결처리를 실행하도록 지시하는 단계, 제 1 프로세서로부터 지시된 상기 선결처리가 제 2 프로세서에 의하여 수행되어도 되는지 여부를 제 2 프로세서가 결정하는 단계, 선결처리가 제 2 프로세서에 의하여 실행되어도 되는 경우 제 2 프로세서가 선결 처리를 실행하는 단계, 상기 선결처리가 제 2 프로세서에 의해 실행될 수 없는 경우는 상기 선결처리가 상기 제 2 프로세서에 의하여 실행되어서는 안 된다고 제 2 프로세서가 제 1 프로세서에 통지하는 단계, 및 제1 프로세서가 제 2 프로세서로부터 상기 선결처리가 제 2 프로세서에 의해 실행되어서는 안 된다는 통지를 수신받은 때에 상기 선결처리를 실행하는 단계를 포함한다.
본 발명의 반도체장치는 선결지시를 획득하기 위한 제 1 프로세서 및 상기 제 1 프로세서로부터의 지시에 따른 선결처리를 실행하기 위한 제 2 프로세서를 포함하며, 제 1 프로세서는 제 2 프로세서에 선결지시에 따라 선결처리를 실행할 것을 명령하도록 구성되고, 제2 프로세서는 제 1 프로세서로부터 지시된 선결처리가 실행되었는지 여부를 결정하고 선결처리가 실행되지 않았을 때는 선결처리가 실행되어서는 안 된다는 통지(notice)를 제 1 프로세서로 전송하는 결정수단과, 선결처리가 실행될 수 있을 때 선결처리를 실행하기 위한 제 2 처리수단을 포함하며, 제 1 프로세서는 상기 통지가 제 2 프로세서로부터 수신되었을 때 선결처리를 실행하도록 구성되고, 제 1 프로세서 및 제 2 프로세서는 선결지시에 따라 함께 처리를 실행한다.
본 발명의 컴퓨터 프로그램은 컴퓨터 시스템에 처리를 수행하라고 명령하는 컴퓨터 프로그램으로서, 상기 컴퓨터 시스템은 선결지시를 획득하기 위한 제 1 프로세서 및 제 1 프로세서로부터의 지시에 따라 선결처리를 실행하기 위한 제 2 프로세서를 포함하며, 제 1 프로세서 및 제 2 프로세서는 상기 지시에 따라 함께 처리를 실행하고, 상기 처리는 제 1 프로세서가 제 2 프로세서에 선결지시에 따라 선결처리를 실행하도록 명령하는 처리와, 제 1 프로세서로부터 명령받은 선결처리가 제 2 프로세서에 의해 처리되었는지 여부를 제 2 프로세서가 결정하는 처리와, 상기 선결처리가 제 2 프로세서에 의해 실행될 수 있을 때 제 2 프로세서가 선결처리를 실행하는 처리와, 상기 선결처리가 제 2 프로세서에 의해 실행되어서는 안 된다고 제 2 프로세서가 제 1 프로세서에 통지하는 처리와, 상기 선결처리가 제 2 프로 세서에 의해 실행되어서는 안 된다는 것을 나타내는 통지(notice)를 제 1 프로세서가 제 2 프로세서로부터 수신하였을 때 선결처리를 실행하는 처리를 포함한다. 상기 컴퓨터 프로그램은, 예를 들어, 컴퓨터 판독가능한 기록매체에 기록된다.
본 발명의 일 실시 예가 이하에서 상세히 기술된다.
도 1은 본 실시 예의 정보처리장치의 블록 도이다. 상기 정보처리장치는, 주 프로세서(host processor)(1)와 보조 프로세서(coprocessor)(2)를 포함하여 정보처리장치 내에서 다른 컴퓨터들의 동작을 제어하는 프로세서(3), 키보드 및 마우스와 같은 입력유닛(unit)으로 인터페이스를 제어하여 입력부분으로부터 입력데이터를 수신하기 위한 입력 인터페이스(4), 디스플레이 및 스피커와 같은 출력유닛(unit)으로 인터페이스를 제어하여 출력부분으로부터 처리결과 같은 출력데이터를 출력 인터페이스(5), 상기 정보처리장치 및 지시에 의한 처리를 실행하기 위해 사용된 다양한 유형의 데이터를 저장하기 위한 RAM (Random Access Memory)(6), BIOS같은 기본 프로그램 및 에뮬레이션 수행용 프로그램을 저장하기 위한 ROM (Read Only Memory)(7)을 포함한다. 각 구성요소는 데이터가 버스(B)를 통하여 전송되고 수신되도록 연결된다.
정보처리장치에서, 선결처리 환경은 상기 프로세서(3)가 ROM(7)으로부터 필요한 기본 프로그램을 판독하고 그 기본 프로그램을 실행할 때 형성된다. 선결처리 환경이 실현될 때, 상기 프로세서(3)는 입력유닛(unit)으로부터의 입력데이터에 따라 처리를 실행하고 출력인터페이스(5)를 통하여 출력유닛(unit)으로 처리결과를 출력한다.
정보처리장치에서, 에뮬레이터는 프로세서(3)에 의하여 본 발명의 특성 형태로서 구성된다. 프로세서(3)는 주 프로세서(1) 및 보조 프로세서(2)에 의하여 에뮬레이터를 구성하여 ROM(7)에 저장된 에뮬레이션 수행용 프로그램을 실행한다. 프로세서(3) 내의 주 프로세서(1) 및 보조 프로세서(2)는 보조프로세서-연결(coprocessor-connected)되어 있어서 일반적인 IO(입출력) 연결의 경우보다 훨씬 높은 속도로 많은 데이터가 송수신 될 수 있다. 이러한 경우에, 보조 프로세서를 이용한 시스템이 아니라 일반적인 다중 프로세서 시스템을 실현하는 것이 허용될 수 있다.
주 프로세서(1)가 입력 인터페이스(4) 또는 RAM(6)을 통하여 출력 측으로부터 지시를 획득하는 때에, 주 프로세서는 그 지시에 따른 처리를 실행한다. 상기 지시는 주 프로세서(1)에 의하여 실행될 지시 및 보조 프로세서(1)에 의하여 실행될 지시를 포함한다. 소정의 지시가 주 프로세서(1)에 의하여 실행되는 때, 주 프로세서는 직접적으로 지시를 실행한다. 소정의 지시가 보조 프로세서(1)에 의하여 실행되는 때, 상기 지시는 주 프로세서(1)로부터 보조 프로세서(2)로 보내진다.
지시는 오직 주 프로세서(1)로부터 보조 프로세서(2)로 입력된다. 지시는 주 프로세서(1) 이외의 다른 구성요소로부터 직접적으로 입력되지 않는다. 보조 프로세서(2)는 주 프로세서(1)로부터의 지시 입력에 따라 처리를 실행하고, 주 프로세서(1)로 처리결과를 회송한다. 일반 다중 프로세서 시스템과 같이 설정되어 있는 때에도 지시는 주 프로세서(1) 이외의 다른 구성요소로부터 보조 프로세서(2)로 입력되지 않는다.
도 2는 에뮬레이터가 구성되는 때의 프로세서(3)의 상세 블록 도이다. 상기 프로그램을 실행함으로써 상기 에뮬레이터를 구성할 수 있다. 그러나. 반도체 칩과 같은 하드웨어를 이용하여 주 프로세서(1) 및 보조 프로세서(2) 안의 구성요소를 구성하는 것 또한 가능하다. 예를 들어, 주 프로세서(1)용 반도체 칩 및 보조 프로세서(2)용 반도체 칩을 이용하여 에뮬레이터를 구성하거나, 또는 하나의 반도체 칩으로서 주 프로세서(1) 및 보조 프로세서(2)를 이용하여 에뮬레이터를 구성하는 것이 허용된다. 프로세서(3)에 의하여 구성된 에뮬레이터가 이하에서 자세히 기술된다.
프로세서(3)는 보조 프로세서(2)와 컴파일 메소드 에뮬레이션(compile method emulation)을 위해 요구되는 효율을 구비한 주 프로세서(1)와의 협력하의 에뮬레이션에 따라 처리를 실행함으로써 인터프리터 메소드 에뮬레이션(interpreter method emulation)을 수행하도록 구성된다. 이러한 구성에 따르면, 고성능프로세서를 사용하지 않고도 인터프리터 메소드 에뮬레이션을 실현할 수 있다. 프로세서(3)는 보조프로세서(2)에 의한 실행 고주파를 갖는 기본동작 지시를 실행하고, 다른 구성요소로부터/에 입/출력 지시와 같은 또 다른 기타 지시를 실행하며, 이러한 지시는 긴 실행시간 및 주 프로세서(1)에 의한 복잡한 지시를 구비한다.
주 프로세서(1)는 입력부(10), 처리부(11), 보조 프로세서 인터페이스부(12), 출력부(13), 제어부(14) 및 레지스터(15)를 포함한다.
상기 입력 부(10)는 버스(B)를 통하여 RAM(6) 및 ROM(7)과 같은 다른 구성요소로부터 데이터, 지시 및 프로그램을 획득하도록 하기 위해 버스(B)에 연결된다.
상기 처리부(11)는 입력부(10)로부터 획득된 데이터, 지시 및 프로그램에 상응하는 처리를 실행한다. 특히, 처리부(11)는 주 프로세서(1)에서 에뮬레이션에 따른 처리를 실행할 때 표적 프로세서 지시(target processor instruction)에 따라 처리를 실행하도록 구성된다.
상기 보조 프로세서 인터페이스 부(12)는 보조 프로세서(2)로부터 및 보조 프로세서(2)로 데이터 및 지시를 전송하고 수신받는다. 출력 부(13)는 처리결과와 같은 출력을 버스(B)를 통하여 다른 구성요소들로 출력하도록 하기 위해 버스(B)에 연결된다.
제어부(14)는 주 프로세서(1) 내의 구성요소들의 동작을 제어한다. 제어부(14)는 입력부(10)로부터 획득된 지시에 따라 주 프로세서(1) 또는 보조 프로세서(2)에서 처리를 실행할지 여부를 결정하기 위한 결정부, 처리부(11) 또는 보조 프로세서(2)로 하여금 결정부의 결정결과에 따라 처리를 실행하도록 하기 위한 지시부를 포함한다. 상기 결정부에 의한 결정의 결과로서 주 프로세서(1) 내에서 처리 가 실행되는 때에 상기 지시부는 상기 지시에 따라 처리의 실행을 지시한다. 보조 프로세서(2)에서 처리가 실행될 때, 상기 지시 및 관련 데이터는 보조 프로세서 인터페이스부(12)를 통하여 지시부로부터 보내진다. 상기 지시가 주 프로세서(1) 또는 보조 프로세서(2)에 의하여 처리되는지 여부는 상기 지시가 진행됨으로써 표현되는 정보를 상기 지시가 포함하도록 함으로써 해결된다. 더욱이, 제어부(14)는 지시의 유형에 따라 결정할 수도 있다.
레지스터(15)는 종래의 프로세서의 레지스터로서 기능 할 뿐만 아니라 보조프로세서(2)가 처리를 실행할 때 사용되는 데이터를 저장하기도 한다. 입력부(10)에 의해 획득된 상기 데이터, 지시, 및 프로그램은 상기 레지스터(15)에 저장된다.
상기 구성을 갖는 주 프로세서(1)는 보조 프로세서(2)가 선결 처리를 실행하도록 하기 위한 지시(이하, 보조 프로세서 지시(coprocessor instruction)라 한다) 및 상기 처리를 실행할 때 사용되는 데이터(이하, 보조 프로세서 데이터(coprocessor data)라 한다)를 보조 프로세서(2)가 상기 처리를 실행하도록 할 때 보조 프로세서 인터페이스부(12)로부터 보낸다. 상기 보조 프로세서 지시 및 보조 프로세서 데이터는 보조 프로세서(2)가 보조 프로세서(2)에 의해 실행될 일반적인 처리에 더하여 인터프리터 메소드 에뮬레이션을 실행하도록 하는데 사용된다. 보조 프로세서(2)가 상기 에뮬레이션을 실행하도록 할 때, 주 프로세서(1)는 보조 프로세서(2)에 보조 프로세서 지시에 따라 에뮬레이션을 실행하라고 지시하며, 상기 처리가 보조 프로세서 데이터에 따라 에뮬레이션을 통하여 실행되도록 지시한다. 특히, 상기 보조 프로세서(2)가 에뮬레이션을 실행하도록 할 때 상기 보조 프로세서 데이터는 표적 프로세서 지시로서 간주한다.
주 프로세서(1)는 보조 프로세서(2)에 의한 에뮬레이션을 위해서 제어부(14)에 의해 실제로 요구되는 시간을 측정하고, 평균 에뮬레이션 실행 시간을 얻고, 보조 프로세서(2)에 의해 상기 에뮬레이션 시간을 최적화한다.
따라서, 주 프로세서(1)는 필요시까지 선결 시간 내에 에뮬레이션을 통하여 실행될 처리개수를 나타내는 값(이하, 확정 값)을 보조 프로세서(2)에 확정한다. 상기 확정 값을 포함하는 데이터(이하, 시간 데이터)를 보조 프로세서 인터페이스부(12)로부터 보조 프로세서(2)로 전송함으로써, 상기 확정 값은 보조 프로세서(2)에 고정된다. 상기 시간 데이터를 입력한 후 에뮬레이션이 완료되었음을 나타내는 통지를 수신하기까지의 시간이 보조 프로세서(2)에 의한 에뮬레이션을 위해 요구되는 실제 시간이다.
보조 프로세서(2)는 주 프로세서(1)로부터의 보조 프로세서 지시입력에 대응하는 처리를 실행한다. 이 실시 예의 경우에, 보조 프로세서(2)는 에뮬레이션에 따른 처리 및 에뮬레이션을 제외한 다른 처리를 실행하도록 구성된다. 보조 프로세서(2)는 보조프로세서 파이프 라인(20), 표적 프로세서 파이프라인(21), 실행지시 테이블(22), 파이프라인 제어기(23), 실행시각 테이블(24), 시각카운터(25) 및 레지스터(26)를 포함한다.
보조 프로세서 파이프라인(20)은 보조프로세서(2)에 의하여 실행될 에뮬레이션을 제외한 다른 모든 처리를 수행한다. 보조 프로세서 파이프라인(20)은 보조 프로세서 지시 복호기(201), 데이터 획득부(202), 데이터 처리부(203) 및 데이터 기 록부(204)를 포함한다.
보조 프로세서 지시 복호기(201)는 주 프로세서(1)로부터 전송된 보조 프로세서 지시를 해독(decode)하고, 보조 프로세서 지시가 어떤 처리를 지시할지를 결정한다. 소정의 결정결과는 파이프라인 제어기(23)로 전달된다. 특히, 보조 프로세서 지시가 에뮬레이션을 명령할 때, 파이프라인 제어기(23)에 보조 프로세서 지시가 에뮬레이션을 명령한다는 것을 통지함으로써 표적 프로세서 파이프라인(21)에 의하여 에뮬레이션이 수행된다.
도 3은 보조 프로세서(coprocessor) 지시 형태의 예시 도이다. 상기 보조 프로세서 지시는 상기 처리가 보조프로세서(2)에 의하여 실행되어도 좋다는 즉 에뮬레이션이 수행된다는 명령을 위한 특정 코드를 포함한다. 그에 의하여, 보조 프로세서 지시 복호기(201)는 보조 프로세서 지시가 에뮬레이션을 명령하는지 여부를 결정할 수 있다. 더욱이 상기 보조 프로세서 지시는 보조 프로세서 파이프라인(20)에 의하여 실제로 실행될 정보의 콘텐츠(content)를 나타내는 정보(처리 콘텐츠)를 포함한다. 상기 처리 콘텐츠는 처리를 위해 사용된 데이터의 획득 행선지, 처리 결과의 출력 행선지, 처리 유형 등을 포함한다.
데이터 획득 부(202)는 실제로 에뮬레이션 이외의 처리를 실행할 때 주 컴퓨터로부터 보조 프로세서 데이터를 획득하거나 레지스터(26)로부터 처리를 위해 필요한 데이터를 획득하고, 상기 보조 프로세서 데이터 또는 상기 필요 데이터를 데이터 처리부(203)로 전송한다. 처리를 위해 필요한 데이터의 행선지를 획득하는 것은 해독된 보조 프로세서 지시에 의해 명령된다.
데이터 처리부(203)는 데이터 획득부(202)로부터 획득된 데이터를 사용함으로써 선결처리를 실행한다. 상기 처리 콘텐츠는 보조 프로세서 지시 복호기(201)에 의하여 해독된 보조 프로세서 지시에 따라 관리된다.
데이터 기록부(204)는 처리결과를 데이터 처리부(203)에 의해 레지스터(26) 내에 기록하거나 또는 처리결과를 주 프로세서(1)로 돌려보낸다. 레지스터(26) 내에 처리결과를 기록할 것인지 또는 처리결과를 주 프로세서(1)로 돌려보낼 것인지 여부는 보조 프로세서 지시에 의하여 미리 지시된다. 상기 데이터 기록부(204)는 처리결과를 레지스터(26) 내에 기록하거나 처리결과를 주 프로세서(1)로 돌려보낼 수 있다.
에뮬레이션이 파이프 라인 제어기(23)로부터 지시되었을 때 표적 프로세서 파이프라인(21)은 에뮬레이션을 수행하고 표적 프로세서와 동일한 기능을 실현한다. 따라서, 표적 프로세서 파이프라인(21)은 표적 프로세서 지시 복호기(211), 데이터 판독부(212), 데이터 처리부(213) 및 데이터 기록부(214)를 포함한다.
표적 프로세서 지시 복호기(211)는 주 프로세서(1)로부터 전송된 보조 프로세서 데이터를 표적 프로세서 지시로서 획득하고, 파이프라인 제어기(23)으로부터 에뮬레이션이 지시되었을 때 표적 프로세서 지시를 복호화한다. 복호화 결과, 표적 프로세서 지시 복호기(211)는 실제 처리 콘텐츠와 그 복호화 결과 값(decoding result value)을 획득한다. 상기 복호화 결과 값은 표적 프로세서에 의하여 지시받은 처리가 무엇인지(처리유형)를 나타내는 값이다. 예를 들어, 복호화 결과 값은 기본 연산동작(덧셈, 뺄셈 등)에 대해서는 "00"부터 "31", 논리적 동작(논리동작, 이동동작 등)에 대해서는 "32"부터 "63", 복합동작(곱셈, 나눗셈 등)에 대해서는 "64"부터 "67", 저장에 대해서는 "68"부터 "77", 분기(점프, 조건분기, 링크된 분기 등)에 대해서는 "78"부터 "91", 다른 지시에 대해서는 "92"부터 "98", 규정되지 않은 지시에 대해서는 "99"를 취한다.
표적 프로세서 지시 복호기(211)는 상기 복호화 결과 값을 실행지시 테이블(22)과 비교하여 상기 지시가 표적 프로세서 파이프라인(21)에 의해 실행될 수 있는 처리를 명령하는지 여부를 결정하고 결정결과를 파이프 라인 제어기(23)로 전송한다. 또한, 복호화 결과 값은 파이프라인 제어기(23)를 경유하여 또는 직접 시각카운터(25)로 전송된다.
도 4는 표적 프로세서 지시 형태의 예시 도이다. 상기 표적 프로세서 지시는 처리유형 및 그 처리 콘텐츠를 나타내는 처리코드를 포함한다. 표적 프로세서 지시 복호기(211)는 보조 프로세서 데이터로 처리코드를 복호화함으로써 복호화 결과 값을 획득한다. 처리 콘텐츠는 처리를 위해 사용된 데이터의 획득 행선지, 처리 결과의 출력 행선지, 처리 유형 등을 포함한다.
데이터 처리부(213)는 데이터 판독 부(212)에 의해 판독된 데이터를 사용하여 예정처리를 실행한다. 처리 콘텐츠는 상기 표적 프로세서 지시 복호기(211)에 의해 복호화된 표적 프로세서 지시에 의해 명령된다.
데이터 기록부(214)는 레지스터(26) 내의 데이터 처리부(213)에 의해 처리결과를 기록하거나 주 프로세서(1)로 처리결과를 회신한다. 레지스터(26)에서 처리결과를 기록할 것인지 또는 주 프로세서(1)로 처리결과를 회신할 것인지 여부는 표적 프로세서 지시에 의하여 명령된다. 데이터 기록부(214)는 처리결과를 레지스터(26)에 기록해도 되고 처리결과를 주 프로세서(1)로 회신해도 된다.
실행지시 테이블(22)은 표적 프로세서(21)에 의하여 실행될 수 있는 지시를 나타내는 테이블(table)이다. 실행지시 테이블(22)은 표적 프로세서 지시 복호기(211)에 의하여 조회되어 표적 프로세서 지시 복호기(211)로부터 획득된 복호결과 값이 표적 프로세서(21)에 의하여 실행될 수 있는 지시를 나타내는지 여부를 알린다. 실행지시 테이블(22)은 다시쓰기(rewritable)가 가능한 메모리로 제공되는 것이 바람직하다. 실행지시 테이블(22)을 다시 쓰기 가능한 메모리에 제공함으로써, 표적 프로세서 파이프 라인(21)에 의하여 실행될 지시유형을 변화시키고 주 프로세서(1)를 이용한 처리량의 할당을 최적화하여 처리량을 최적화하거나, 또는 디자인 에러가 보조 프로세서(2)의 몇몇 지시 과정에서 나타날 때 실행 지시 테이블(22)에 해당하는 지시 값을 다시 쓰기 하는 것이 가능하다.
도 5는 실행지시 테이블(23)의 예시 도이다. 이 테이블에서, "값"은 해당 복호결과값이 표적 프로세서 파이프라인(21)에 의하여 실행될 수 있는 처리인지 여부를 나타낸다. 도 5에서, '값'이 '0'인 경우, 보조 프로세서(2)는 전적으로 처리를 실행해도 된다. '값'이 '1'인 경우, 보조 프로세서(2)는 메모리 주소를 계산해도 되지만, 보조 프로세서(2)는 버스(B)를 통하여 주 프로세서(1)에 연결된 RAM(6)에 접속해서는 안 된다. 따라서, 보조 프로세서(2) 대신에, 주 프로세서(1)가 RAM(6)에 접속한다. '값'이 '2'일 때는, 보조 프로세서(2)가 분기-행선지 주소를 계산해 도 되고 분기할지 여부를 결정해도 된다. 그러나 보조 프로세서(2)는 분기 행선지의 지시를 획득해서는 안 된다. '값'이 3일 때, 보조 프로세서(2)는 모든 처리를 실행해서는 안 된다. 도 5의 실시 예의 경우에, 표적 프로세서 파이프라인(21)은 전적으로 기본 연산동작 및 논리연산을 실행하고, 부하/저장의 메모리 접속 이외의 처리를 실행하고, 분기의 분기명령에 대한 지시획득 이외의 처리를 실행해도 된다. 주 프로세서(1)는 다른 지시 및 규정되지 않은 지시에 따라 복합동작 및 처리를 수행한다.
파이프라인 제어기(23)는, 상기 에뮬레이션이 수행된다는 것을 나타내는 통지가 보조프로세서 복호기(201)로부터 전송되었을 때, 표적 프로세서 파이프라인(21)의 표적 프로세서 지시 복호기(211)에 에뮬레이션을 실행하도록 지시한다. 그에 의하여, 표적 프로세서 파이프라인(21)은 에뮬레이터(emulator)로서 기능한다. 파이프라인 제어기(23)는, 에뮬레이션을 제외한 처리가 수행된다는 것을 나타내는 통지가 보조프로세서 복호기(201)로부터 전송되었을 때, 보조 프로세서 파이프라인(20)의 보조 프로세서 지시 복호기(201)에 처리를 실행하도록 지시한다.
또한, 파이프라인 제어기(23)는 처리가 표적 프로세서 파이프라인(21)에 의하여 실행되어도 좋은지 여부를 나타내는 결정결과를 표적 프로세서 지시 복호기(211)로부터 통지받을 때, 파이프라인 제어기(23)는 상기 통지에 해당하는 상태 데이터를 주 프로세서(1)로 전송한다. 주 프로세서(1)는 상태 데이터에 따라 표적 프로세서 지시가 보조 프로세서(2)에 의하여 실행될 수 있는지 여부를 인식할 수도 있다.
실행시각 테이블(24)은 표적 프로세서가 표적 프로세서 파이프라인(21)에 의하여 에뮬레이션에 따라 실행될 처리를 실행할 때 요구되는 필요시간을 나타내며, 시각 카운터(25)에 의하여 조회된다.
도 6은 실행시각 테이블의 예시도이다. 이 테이블에서 "필요 시간"은, 각각 한 주기를 필요로 하는 기본연산동작 및 논리동작과 같은 하나의 단위(unit)로서 동작시각의 한 주기를 사용한다.
시각 카운터(25)는 에뮬레이션의 실행시간을 최적화한다.
시각 카운터(25)는 주 프로세서로부터의 시각데이터에 따라 설정값(set value)을 설정한다. 시각 카운터(25)는 표적 프로세서가 복호결과값에 대응하는 처리를 실행할 때, 파이프라인 제어기(23)를 통하여 획득된 복호결과값을 사용하여 실행시각 테이블(24)을 조회하면서, 필요시간을 획득한다. 또는 시각 카운터(25)는 표적 프로세서 지시 복호기(211)로부터 직접 필요시간을 획득한다. 연속하여 시각 카운터(25)는 실행시각 테이블(24)로부터 획득된 필요시간을 상기 설정값으로부터 추출하고, 선결 필요시간이 "0" 또는 음(negative)이 되는 때에 주 프로세서(1)에 파이프라인 제어기(23)를 통하여 선결 필요시간이 "0" 또는 음(negative)이 되는 것을 통지한다.
레지스터(26)는 보조 프로세서 파이프라인(20)에 의한 처리결과 및 표적 프로세서 파이프라인(21)에 의한 에뮬레이션 처리결과를 저장한다. 레지스터(26)에 저장된 상기 처리결과는 보조 프로세서 파이프라인(20) 및 표적 프로세서 파이프라 인(21)에 의해 실행될 또다른 처리의 처리대상을 위한 데이터로 된다. 또한, 레지스터(26)는 처리결과를 주 프로세서(1)로 직접 출력할 수 있다.
상기 구성을 갖는 정보처리장치는 다음과 같은 동작을 수행한다.
도 7은 프로세서(3)에 의한 에뮬레이션 처리의 흐름을 나타내는 예시도이다.
주 프로세서(1)는 입력부(10)에 의해 정보처리장치 내의 또다른 구성요소로부터 지시를 획득한다(단계 S 10). 주 프로세서(1)는 상기 지시가 제어부(14)에 의해 보조 프로세서(2)를 위해 사용되는지 여부를 결정한다(단계 S 20). 상기 지시가 보조 프로세서(2)를 위하여 사용되지 않으면, 주 프로세서(1)는 처리부(11)에 의해 지시에 따른 처리를 실행한다(단계 S 20; N, 단계 S 30).
상기 지시가 보조 프로세서(2)를 위하여 사용될 때, 주 프로세서(1)는 보조프로세서 지시, 보조 프로세서 데이터 및 시간 데이터를 보조 프로세서(2)에 입력한다(단계 S 20; Y, 단계 S 40). 보조 프로세서 지시는 보조 프로세서 파이프 라인(20)에 입력되고, 보조 프로세서 데이터는 보조 프로세서 파이프 라인(20) 및 표적 프로세서 파이프 라인(21)에 입력되고, 시간 데이터는 파이프 라인 제어기(23)를 통하여 또는 직접 시각 계수기(25)에 입력된다.
시간 데이터는 언제나 보조 프로세서 지시 및 보조 프로세서 데이터와 동일한 시간에 입력되는 것은 아니며, 시간 데이터는 예정 시간 간격으로 입력된다.
보조 프로세서 파이프 라인(20)의 보조 프로세서 지시 복호기(201)는 주 프로세서(1)로부터 입력된 보조 프로세서 지시가 에뮬레이션(단계 S 50)의 실행을 명령했는지 여부를 결정한다. 보조 프로세서 지시가 도 3에 도시된 형태를 갖기 때문 에, 보조 프로세서 지시 복호기(201)는 에뮬레이션의 실행이 보조 프로세서 지시의 특정 코드를 확인함으로써 명령받았는지 여부를 확인한다.
보조 프로세서 지시가 에뮬레이션의 실행을 명령하지 않을 때, 보조 프로세서 지시는 에뮬레이션을 제외한 처리의 실행을 명령하며, 이것은 보조 프로세서(2)에 의하여 실행된다. 이 경우에, 보조 프로세서 처리는 보조 프로세서 파이프 라인(20)에 의하여 실행된다(단계 S 50; N, 단계 S 60). 예를 들어, 보조 프로세서 지시가 에뮬레이션의 실행을 명령하지 않은 때 보조 프로세서(2)의 데이터 흐름은 도 8에서의 흐름으로 된다.
보조 프로세서 지시 복호기(201)는, 보조 프로세서 지시가 보조 프로세서 지시 복호기(201)에 의한 에뮬레이션의 실행을 명령하지 않는다는 것을 확인하면, 보조 프로세서 지시가 에뮬레이션의 실행을 명령하지 않는다는 것을 데이터 획득부(202)에 통지한다. 또한, 보조 프로세서 지시 복호기(201)는 보조 프로세서 지시를 복호화함으로써 획득된 처리 콘텐츠를 데이터 획득부(202)로 전송한다. 데이터 획득부(202)는 보조 프로세서 지시 복호기(201)로부터 전송된 처리 콘텐츠에 따라 처리하는데 필요한 데이터를 주 프로세서(1) 및/또는 레지스터(26)로부터 획득한다. 획득된 데이터는 처리 콘텐츠와 함께 데이터 처리부(203)로 전송된다. 데이터 처리부(203)는 전송된 데이터를 처리 콘텐츠에 따라 처리하고 처리 결과 획득된 데이터를 데이터 기록부(204)로 전송한다. 데이터 기록부(204)는 처리결과로서 획득된 데이터를 처리 콘텐츠의 명령에 따라 레지스터(26)에 기록한다. 데이터 기록부(204)는 처리 콘텐츠에 따라 처리결과를 주 프로세서(1)로 되돌려 보내도 된다.
보조 프로세서 지시가 에뮬레이션의 실행을 명령할 때(단계 S 50; Y), 보조 프로세서 지시 복호기(201)는 파이프라인 제어기(23)에 에뮬레이션의 실행이 명령받았음을 통지한다. 에뮬레이션의 실행이 통지되면, 파이프라인 제어기(23)는 표적 프로세서 파이프라인(21)의 표적 프로세서 지시 복호기(211)에 에뮬레이션을 실행하라고 명령한다.
에뮬레이션의 실행이 명령되면, 표적 프로세서 지시 복호기(211)는 주 프로세서(1)로부터 제공된 보조 프로세서 데이터를 표적 프로세서 지시로서 수신한다. 표적 프로세서 지시 복호기(211)는 수신된 표적 프로세서 지시가 표적 프로세서 파이프라인(21)의 에뮬레이션에 따라 실행되어도 좋은 처리를 명령하는지 여부를 결정한다(단계 S 70). 표적 프로세서 지시 복호기(211)는 도 4에 도시된 형태를 갖는 표적 프로세서 지시를 복호화(decode)하여 복호 결과값을 획득한다. 표적 프로세서 지시 복호기(211)는 상기 복호 결과값과 실행지시 테이블(22)을 비교함으로써 표적 프로세서 지시에 의한 처리 콘텐츠가 보조 프로세서(2)에 의하여 실행되어도 좋은지 여부를 확인할 수 있다.
표적 프로세서 지시가 표적 프로세서 파이프라인(21)의 에뮬레이션에 따라 실행될 수 있는 처리를 명령하지 않은 경우(단계 S 70; N), 표적 프로세서 지시 복호기(211)는 파이프라인 제어기(23)를 통하여 주 프로세서(1)에 표적 프로세서 지시가 처리를 명령하지 않는다는 것을 통지한다. 주 프로세서(1)는 보조 프로세서로부터의 통지에 따라 에뮬레이션을 통하여 처리를 실행한다(단계 S 90).
도 9는 본 실시예에서 데이터의 흐름을 도시한 예시도이다. 주 프로세서(1)에 대한 통지는 도 5에서의 '값(value)'에 해당하는 콘텐츠를 포함한다. 즉, 상기 콘텐츠는 모든 처리 또는 몇몇 처리를 주 프로세서(1)에 남겨둘지 여부를 포함하는 콘텐츠이다. 상기 통지를 주 프로세서(1)에 보내는 때, 보조 프로세서(2)는 복호된 표적 프로세서 지시에 관한 정보를 주 프로세서(1)로 전송해도 된다. 또한, 보조 프로세서(2)는 복호 결과를 직접 전송하거나 또는 표적 프로세서 지시가 나뉘어져 전송되도록 하여 주 프로세서에 의한 복호화 부하(load)를 줄이도록 할 수 있다. 그에 따라, 주 프로세서에 의해 표적 프로세서 지시를 다시 복호할 필요가 없어진다.
표적 프로세서 지시가 표적 프로세서 파이프라인(21)의 에뮬레이션에 따라 실행될 수 있는 처리를 지시한 경우, 표적 프로세서 파이프라인(21)은 표적 프로세서 지시에 의하여 명령받은 처리를 실행한다(단계 S 70: Y, 단계 S 100). 도 10은, 이 경우의 데이터의 흐름을 도시한 예시도이다.
표적 프로세서 지시가 보조 프로세서(2)에 의하여 실행될 수 있음을 확인하면, 표적 프로세서 지시 복호기(211)는 표적 프로세서 지시를 복호화함으로써 회득된 처리내용을 데이터 판독부(212)로 전송한다. 데이터 판독부(212)는 표적 프로세서 지시 복호기(211)로부터 전송된 처리콘텐츠에 따라 처리하는데 필요한 데이터를 레지스터(26)로부터 획득한다. 획득된 데이터는 처리콘텐츠와 함께 데이터 처리부(213)로 전송된다. 데이터 처리부(213)는 전송된 데이터를 처리 콘텐츠에 따라 처 리하고 처리결과로서 얻어진 데이터를 데이터 기록부(214)로 전송한다. 데이터 기록부(214)는 처리 콘텐츠의 명령에 따라 처리 결과를 레지스터(26)에 기록한다. 데이터 기록부(214)는 처리 콘텐츠에 의존하여 주 프로세서(1)로 처리결과를 되돌려 보내도 된다.
보조 프로세서(2)에 의하여 표적 프로세서 지시를 실행하면, 복호화 결과값이 표적 프로세서 지시 복호기(211)로부터 시각계수기(25)로 통보된다. 시각계수기(25)는 표적 프로세서 지시에 의한 처리유형을 확인하고 복호결과값을 이용하여 실행시각 테이블(24)을 조회함으로써 필요 시간을 확인한다. 시각계수기(25)는 실행시각 테이블(24)에 의하여 확인된 필요시간을 시간 데이터에 의해 설정된 필요시간으로부터 뺀다. 뺄셈결과값이 "0" 또는 음(negative)이 되면, 시각계수기(25)는 뺄셈결과가 "0" 또는 음(negative)이라는 것을 파이프라인 제어기(23)를 통하여 또는 직접 주 프로세서(1)에 통지한다. 주 프로세서(1)는 시간데이터의 출력으로부터 시각계수기(25)로부터의 통지까지의 시간을 측정함으로써 보조 프로세서(2)에 의한 실제 에뮬레이션 시간을 탐지할 수 있다. 에뮬레이션은 상기 처리과정에 따라 수행된다. 주 프로세서(1)는 보조 프로세서 지시가 완성될 때마다 보조 프로세서 지시를 보조 프로세서(2)로 하나씩 전송할 수 있다. 예를 들어, 주 프로세서(1)는 보조 프로세서 지시의 완성이 파이프라인 제어기(23)로부터 통보되기를 기다림으로써 다음 보조 프로세서 지시를 보조 프로세서(2)로 전송한다.
또한, 에뮬레이션이 표적 프로세서 파이프라인(21)에 의하여 수행되면, 주 프로세서(1)는 다음 보조 프로세서 지시를 보조 프로세서(2)로 전송한다. 보조 프 로세서(2)는 보조 프로세서 지시를 에뮬레이션과는 별도로 복호화할 수 있기 때문에, 보조 프로세서(2)는 보조 프로세서 지시가 이 시간에 전송되는 경우에도 문제없이 처리를 수행할 수 있다.
본 발명의 경우에, 주 프로세서(1) 및 보조 프로세서(2)는 함께 에뮬레이션을 수행한다. 따라서, 주 프로세서(1)가 컴파일 메소드 에뮬레이션만을 위하여 작동되는 경우에도, 프로세서(3)는 인터프리터 메소드 에뮬레이션을 수행할 수 있다. 예를 들어, 보조 프로세서(2)에 의하여 실행될 수 있는, 실행지시 테이블(22)의 콘텐츠 변경 및 에뮬레이션에 대한 지시횟수 증가에 의하여, 에뮬레이션으로 인한 주 프로세서(1)에 대한 부하를 감소시킬 수 있다.

Claims (11)

  1. 선결지시 획득용 제 1 프로세서 및 상기 제 1 프로세서로부터의 명령에 따른 선결처리 실행용 제 2 프로세서를 포함하는 정보처리장치로서,
    상기 제 1 프로세서는 상기 제 2 프로세서가 선결 지시에 따라 선결 처리를 수행하도록 구성되고,
    상기 제 2 프로세서는,
    제 1 프로세서로부터 지시된 선결 처리가 실행되어도 좋은지 여부를 결정하고 상기 선결 처리가 실행될 수 없는 경우는 선결처리가 실행되어서는 안 된다는 통지(notice)를 상기 제 1 프로세서로 전송하기 위한 결정수단 및
    선결처리가 실행될 수 있을 때 선결처리를 실행하기 위한 제 2 처리수단을 포함하며,
    상기 제 1 프로세서는 상기 통지가 제 2 프로세서로부터 수신되었을 때 선결처리를 실행하도록 구성되고, 제 1 프로세서 및 제 2 프로세서는 선결지시에 따라 함께 처리를 실행하는 것을 특징으로 하는 정보처리장치.
  2. 제 1항에 있어서,
    상기 제 1 프로세서는,
    선결 지시에 따라 처리를 실행할 수 있는 제 1 처리수단;
    상기 선결 지시가 제 2 프로세서에 의하여 실행되어야 할 지시인지 여부를 결정하고, 상기 선결 지시가 제 2 프로세서에 의하여 실행되어야 할 지시가 아닌 경우에는 제 1 처리수단이 지시에 따라 처리를 실행하도록 하고, 상기 선결지시가 제 2 프로세서에 의하여 실행되어야 할 지시인 경우에는 제 2 프로세서가 선결처리를 실행하도록 명령하는 제어수단; 및
    상기 제어수단은 상기 통지가 제 2 프로세서로부터 전송되는 때에 상기 제 1 처리 수단이 상기 선결처리를 실행하도록 구성되는 것을 특징으로 하는 정보처리장치.
  3. 제 1항에 있어서,
    상기 제 2 프로세서는 제 2 프로세서에 의하여 실행될 수 있는 처리를 나타내는 테이블(table)을 보유하고,
    제 1 프로세서로부터 명령받은 선결 처리가 상기 테이블을 조회함으로써 상기 제 2 프로세서에 의하여 실행될 수 있는지 여부를 결정하도록 결정수단이 구성되는 것을 특징으로 하는 정보처리장치.
  4. 제 1항에 있어서,
    상기 제 1 프로세서로부터 명령받은 선결처리는 에뮬레이션(emulation)에 의 하여 실행되고,
    제 1 프로세서 또는 제 2 프로세서는 에뮬레이션에 따라 선결처리를 실행하도록 구성되는 것을 특징으로 하는 정보처리장치.
  5. 제 2항에 있어서,
    상기 제 1 프로세서는 선결지시에 따라 상기 처리를 위해 사용되는 데이터를 획득하도록 구성되고;
    상기 선결 지시는 에뮬레이션의 실행을 포함하여 제 1 프로세서에 의한 처리의 실행 또는 제 2 프로세서에 의한 처리의 실행 중 하나를 명령하고;
    상기 데이터는 상기 선결지시가 주 프로세서에 의한 처리 또는 제 2 프로세서에 의한 에뮬레이션을 제외한 처리의 실행을 명령하기 위한 지시인 경우에 처리를 위해 사용되고, 상기 데이터는 상기 선결지시가 에뮬레이션의 실행을 위한 지시인 경우에 에뮬레이션에 의해 실행될 처리를 명령하고;
    상기 제 1 프로세서의 제어수단은 상기 선결지시가 제 1 프로세서에 의한 처리의 실행을 명령하는 지시인 경우에 그 지시에 따라 제 1 처리수단이 데이터를 이용하여 처리를 실행하도록 구성되고, 상기 제어수단은 상기 선결지시가 제 2 프로세서에 의한 처리의 실행을 명령하는 지시인 경우에 상기 선결지시 및 상기 데이터를 제 2 프로세서로 전송하도록 구성되고;
    제 2 프로세서는, 상기 제어수단으로부터 전송된 선결지시가 제 2 프로세서 에 의한 에뮬레이션을 제외한 처리의 실행을 명령하는 경우, 상기 데이터를 사용하여 상기 지시에 따라 처리를 실행하기 위한 제 3 처리수단을 더 포함하고;
    상기 결정수단은 상기 제어수단으로부터 전송된 선결지시가 에뮬레이션의 실행을 명령하는 경우 상기 데이터에 의해 명령받은 처리가 에뮬레이션에 따라 제 2 프로세서에 의하여 실행되어도 좋은지 여부를 결정하도록 구성되고;
    제 2 처리수단은, 데이터에 의해 명령받은 처리가 제 2 프로세서에 의한 에뮬레이션에 따라 실행될 수 있는 경우, 에뮬레이션에 따라 처리를 실행하도록 구성되고;
    상기 제 1 프로세서의 제어수단은 상기 통지가 상기 결정수단으로부터 전송되었을 때 상기 제 1 처리수단이 데이터에 의해 명령받은 처리를 에뮬레이션에 따라 실행하도록 구성되고;
    상기 제 1 프로세서 및 제 2 프로세서는 함께 에뮬레이션을 실행하는 것을 특징으로 하는 정보처리장치.
  6. 제 3항에 있어서,
    상기 제 1 프로세서는 에뮬레이션에 따라 실행될 처리개수를 나타내는 설정 값을 필요시간까지 선결시간 간격으로 제 2 프로세서에 설정하도록 구성되고;
    상기 제 2 프로세서는
    원래 제 2 처리수단에 의한 에뮬레이션에 따라 실행될 수 있는 처리를 실행하는 표적 프로세서가 처리를 실행하는 경우에 요구되는 필요시간을 나타내는 실행시각 테이블;
    제 2 처리수단을 이용하여 상기 실행시각 테이블로부터 에뮬레이션에 따라 실행되는 처리의 필요시간을 판독하고, 이어서 상기 제 1 프로세서에 의하여 설정된 설정값으로부터 상기 필요시간을 감산하고, 상기 감산결과가 0 또는 그 이하이면 감산결과가 0 또는 그 이하라는 통지를 상기 제 1 프로세서로 전송하는 시각 카운터; 를 더 포함하며,
    상기 제 1 프로세서는 제 1 프로세서가 제 2 프로세서에 설정값을 설정한 후 시각카운터로부터 통지를 수신하기까지의 시간을 측정하고 제 2 프로세서에 의한 에뮬레이션의 처리시간을 측정하도록 구성되는 것을 특징으로 하는 정보처리장치.
  7. 제 1항에 있어서,
    제 2 프로세서는 제 1 프로세서의 보조 프로세서이고 제 1 프로세서 및 제 2 프로세서는 보조 프로세서-연결(coprocessor-connected)되는 것을 특징으로 하는 정보처리장치.
  8. 선결지시 획득용 제 1 프로세서 및 상기 제 1 프로세서로부터의 명령에 따른 선결처리 실행용 제 2 프로세서를 포함하는 정보처리장치에 의해 실행될 정보처리방법으로서,
    상기 제 1 프로세서와 제 2 프로세서는 지시에 따라 함께 처리를 실행하고;
    제 1 프로세서가 제 2 프로세서로 하여금 선결지시에 따라 선결처리를 실행하도록 지시하는 단계;
    제 1 프로세서로부터 지시된 상기 선결처리가 제 2 프로세서에 의하여 수행되어도 되는지 여부를 제 2 프로세서가 결정하는 단계;
    선결처리가 제 2 프로세서에 의하여 실행되어도 되는 경우 제 2 프로세서가 선결 처리를 실행하는 단계;
    상기 선결처리가 제 2 프로세서에 의해 실행될 수 없는 경우는 상기 선결처리가 상기 제 2 프로세서에 의하여 실행되어서는 안 된다고 제 2 프로세서가 제 1 프로세서에 통지하는 단계; 및
    제1 프로세서가 제 2 프로세서로부터 상기 선결처리가 제 2 프로세서에 의해 실행되어서는 안 된다는 통지를 수신받은 때에 상기 선결처리를 실행하는 단계를 포함하는 것을 특징으로 하는 정보처리방법.
  9. 선결지시를 획득하기 위한 제 1 프로세서 및 상기 제 1 프로세서로부터의 지시에 따른 선결처리를 실행하기 위한 제 2 프로세서를 포함하는 반도체장치로서, 제 1 프로세서는 제 2 프로세서에 선결지시에 따라 선결처리를 실행할 것을 명령하도록 구성되고;
    제 2 프로세서는
    제 1 프로세서로부터 지시된 선결처리가 실행되었는지 여부를 결정하고 선결처리가 실행되지 않았을 때는 선결처리가 실행되어서는 안 된다는 통지(notice)를 제 1 프로세서로 전송하는 결정수단과,
    선결처리가 실행될 수 있을 때 선결처리를 실행하기 위한 제 2 처리수단을 포함하며,
    제 1 프로세서는 상기 통지가 제 2 프로세서로부터 수신되었을 때 선결처리를 실행하도록 구성되고;
    제 1 프로세서 및 제 2 프로세서는 선결지시에 따라 함께 처리를 실행하는 것을 특징으로 하는 반도체장치.
  10. 컴퓨터 시스템에 처리를 수행하라고 명령하는 컴퓨터 프로그램이 기록된 기록매체로서,
    상기 컴퓨터 시스템은 선결지시를 획득하기 위한 제 1 프로세서 및 제 1 프로세서로부터의 지시에 따라 선결처리를 실행하기 위한 제 2 프로세서를 포함하며,
    제 1 프로세서 및 제 2 프로세서는 상기 지시에 따라 함께 처리를 실행하고, 상기 처리는
    제 1 프로세서가 제 2 프로세서에 선결지시에 따라 선결처리를 실행하도록 명령하는 처리;
    제 1 프로세서로부터 명령받은 선결처리가 제 2 프로세서에 의해 처리되었는지 여부를 제 2 프로세서가 결정하는 처리;
    상기 선결처리가 제 2 프로세서에 의해 실행될 수 있을 때 제 2 프로세서가 선결처리를 실행하는 처리;
    상기 선결처리가 제 2 프로세서에 의해 실행되어서는 안 된다고 제 2 프로세서가 제 1 프로세서에 통지하는 처리;
    상기 선결처리가 제 2 프로세서에 의해 실행되어서는 안 된다는 것을 나타내는 통지(notice)를 제 1 프로세서가 제 2 프로세서로부터 수신하였을 때 선결처리를 실행하는 처리를 포함하는 것을 특징으로 하는 컴퓨터 프로그램이 기록된 기록매체.
  11. 제 10항에 있어서,
    상기 컴퓨터 프로그램은 컴퓨터가 판독가능한 기록매체에 기록되는 것을 특징으로 하는 컴퓨터 프로그램이 기록된 기록매체.
KR1020050126663A 2004-12-21 2005-12-21 정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터프로그램 KR20060071344A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004369637A JP3938580B2 (ja) 2004-12-21 2004-12-21 情報処理装置、情報処理方法、半導体装置、コンピュータプログラム
JPJP-P-2004-00369637 2004-12-21

Publications (1)

Publication Number Publication Date
KR20060071344A true KR20060071344A (ko) 2006-06-26

Family

ID=35583337

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050126663A KR20060071344A (ko) 2004-12-21 2005-12-21 정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터프로그램

Country Status (6)

Country Link
US (1) US7818162B2 (ko)
EP (1) EP1674989B1 (ko)
JP (1) JP3938580B2 (ko)
KR (1) KR20060071344A (ko)
CN (1) CN1794168A (ko)
DE (1) DE602005019019D1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080048291A (ko) * 2006-11-28 2008-06-02 (주)엠텍소프트 복수의 프로세서를 포함하는 디지털 처리 장치 및 복수의프로세서의 연결 방법
US9703562B2 (en) 2013-03-16 2017-07-11 Intel Corporation Instruction emulation processors, methods, and systems

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7490223B2 (en) * 2005-10-31 2009-02-10 Sun Microsystems, Inc. Dynamic resource allocation among master processors that require service from a coprocessor
US7702885B2 (en) * 2006-03-02 2010-04-20 Atmel Corporation Firmware extendable commands including a test mode command for a microcontroller-based flash memory controller
US8433777B1 (en) 2007-09-26 2013-04-30 Emc Corporation Communication with multiple storage processors via direct connections
US8819104B1 (en) * 2007-09-26 2014-08-26 Emc Corporation Communication with multiple storage processors using network infrastructure
WO2012035699A1 (ja) * 2010-09-15 2012-03-22 日本電気株式会社 情報処理装置、情報処理方法、設計支援システム、及びプログラムが格納された非一時的なコンピュータ可読媒体
US9329870B2 (en) 2013-02-13 2016-05-03 International Business Machines Corporation Extensible execution unit interface architecture with multiple decode logic and multiple execution units
US20140281398A1 (en) * 2013-03-16 2014-09-18 William C. Rash Instruction emulation processors, methods, and systems
CN103257885A (zh) * 2013-05-20 2013-08-21 深圳市京华科讯科技有限公司 媒体虚拟化处理方法
CN103257884A (zh) * 2013-05-20 2013-08-21 深圳市京华科讯科技有限公司 设备虚拟化处理方法
CN103281365B (zh) * 2013-05-20 2016-12-28 深圳市京华科讯科技有限公司 分布式虚拟化架构
CN103309725A (zh) * 2013-05-20 2013-09-18 深圳市京华科讯科技有限公司 网络虚拟化处理方法
JP6103541B2 (ja) 2014-03-18 2017-03-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation バイナリコードの実行を制御する装置及び方法
WO2017009996A1 (ja) * 2015-07-16 2017-01-19 三菱電機株式会社 情報処理装置、情報処理方法及びプログラム
CN108647009A (zh) * 2018-03-22 2018-10-12 中钞信用卡产业发展有限公司杭州区块链技术研究院 区块链信息交互的装置、方法和存储介质
US10776125B2 (en) * 2018-12-05 2020-09-15 Apple Inc. Coprocessor memory ordering table

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4638427A (en) * 1984-04-16 1987-01-20 International Business Machines Corporation Performance evaluation for an asymmetric multiprocessor system
US5077657A (en) * 1989-06-15 1991-12-31 Unisys Emulator Assist unit which forms addresses of user instruction operands in response to emulator assist unit commands from host processor
US6018797A (en) * 1996-12-09 2000-01-25 Allen-Bradley Company, Llc Integrated relay ladder language, reduced instruction set computer
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6247113B1 (en) * 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
US6882968B1 (en) * 1999-10-25 2005-04-19 Sony Computer Entertainment Inc. Method of measuring performance of an emulator and for adjusting emulator operation in response thereto
US7222064B1 (en) * 2003-10-10 2007-05-22 Unisys Corporation Instruction processor emulation having inter-processor messaging accounting
US7200723B1 (en) * 2004-08-06 2007-04-03 Xilinx, Inc. Access to a bank of registers of a device control register interface using a single address

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080048291A (ko) * 2006-11-28 2008-06-02 (주)엠텍소프트 복수의 프로세서를 포함하는 디지털 처리 장치 및 복수의프로세서의 연결 방법
US9703562B2 (en) 2013-03-16 2017-07-11 Intel Corporation Instruction emulation processors, methods, and systems

Also Published As

Publication number Publication date
JP3938580B2 (ja) 2007-06-27
DE602005019019D1 (de) 2010-03-11
US7818162B2 (en) 2010-10-19
CN1794168A (zh) 2006-06-28
EP1674989B1 (en) 2010-01-20
JP2006178646A (ja) 2006-07-06
US20060161420A1 (en) 2006-07-20
EP1674989A1 (en) 2006-06-28

Similar Documents

Publication Publication Date Title
KR20060071344A (ko) 정보처리장치, 정보처리방법, 반도체장치 및 컴퓨터프로그램
US5430862A (en) Emulation of CISC instructions by RISC instructions using two pipelined stages for overlapped CISC decoding and RISC execution
EP0528585B1 (en) Data processing system with internal instruction cache
US9507688B2 (en) Execution history tracing method
US7783867B2 (en) Controlling instruction execution in a processing environment
KR101738640B1 (ko) 트레이스 데이터 압축 장치 및 방법
US4742466A (en) System for measuring path coverage represented by the degree of passage of execution paths in a program
KR101874416B1 (ko) 주변 디바이스들의 유니버셜 시리얼 버스 에뮬레이션
WO2023107789A1 (en) Deterministic replay of a multi-threaded trace on a multi-threaded processor
US6968410B2 (en) Multi-threaded processing of system management interrupts
US20190294571A1 (en) Operation of a multi-slice processor implementing datapath steering
JPH07334483A (ja) データ駆動型情報処理装置
JPH07141176A (ja) コマンドリトライ制御方式
CN109960637A (zh) 一种分析网卡cpu占用率的方法和系统
US8271981B2 (en) Detecting an extraordinary behavior
CN116415599A (zh) Ic卡读取方法、写入方法、装置、电子设备及存储介质
JP3892873B2 (ja) プログラマブルコントローラ
JP2525492B2 (ja) プログラマブルコントロ―ラ
JP2002163126A (ja) デバッグ用cpuに内蔵のイベント検出回路、イベント検出方法および外部周辺回路
CN111045665B (zh) 一种基于uml的gpu命令处理器
JP2009223861A (ja) 論理検証システム
JP2967741B2 (ja) Cpu互換性テスト装置
JP2000250779A (ja) プログラマブルコントローラ
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
CN117155209A (zh) 一种数字信号处理单元及电机控制设备

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid