KR950012293B1 - 정보처리장치 및 이를 이용한 정보처리방법 - Google Patents

정보처리장치 및 이를 이용한 정보처리방법 Download PDF

Info

Publication number
KR950012293B1
KR950012293B1 KR1019910019629A KR910019629A KR950012293B1 KR 950012293 B1 KR950012293 B1 KR 950012293B1 KR 1019910019629 A KR1019910019629 A KR 1019910019629A KR 910019629 A KR910019629 A KR 910019629A KR 950012293 B1 KR950012293 B1 KR 950012293B1
Authority
KR
South Korea
Prior art keywords
interruption
processor
external
application
handler
Prior art date
Application number
KR1019910019629A
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
Priority claimed from JP2299943A external-priority patent/JPH04172551A/ja
Priority claimed from JP2311633A external-priority patent/JPH0795276B2/ja
Application filed by 가부시키가이샤 도시바, 아오이 죠이치 filed Critical 가부시키가이샤 도시바
Application granted granted Critical
Publication of KR950012293B1 publication Critical patent/KR950012293B1/ko

Links

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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

내용 없음.

Description

정보처리장치 및 이를 이용한 정보처리방법
제1도는 종래의 정보처리장치의 일례를 나타낸 블록도.
제2도는 제1도에 나타낸 정보처리장치에서의 응용프로그램(1,2,3)과 시스템프로그램의 시분할적인 실행을 나타낸 타이밍챠트.
제3도는 종래의 정보처리장치의 다른 예를 나타낸 블록도.
제4도는 제3도에 나타낸 정보처리장치에서의 범용타스크와 외부인터럽션핸들러 사이의 응용프로그램의 교환을 나타낸 타이밍챠트.
제5도는 본 발명의 제1관점의 제1실시예에 따른 정보처리장치의 블록도.
제6도는 제5도에 나타낸 정보처리장치에서의 시스템프로세서와 응용프로세서의 동작을 나타낸 타이밍챠트.
제7도는 제5도에 나타낸 정보처리장치에서의 로드과정의 동작을 나타낸 플로우트.
제8도는 제5도에 나타낸 정보처리장치에서의 저장과정의 동작을 나타낸 플로우챠트.
제9도는 본 발명의 제1관점의 제2실시예에 따른 정보처리장치의 블록도.
제10도는 본 발명의 제2관점의 제1실시예에 따른 정보처리장치의 블록도.
제11도는 제10도에 나타낸 정보처리장치에서의 시스템인터럽션핸들러의 실행과정을 나타낸 타이밍챠트.
제12도는 본 발명의 제2관점의 제2실시예에 따른 정보처리장치의 블록도.
제13도는 제12도에 나타낸 정보처리장치에서의 시스템인럽션핸들러의 실행과정을 나타낸 타이밍챠트.
제14도는 제12도에 나타낸 정보처리장치에서의 시스템인터럽션핸들러의 실행과정을 나타낸 플로우챠트.
제15도는 본 발명의 제2관점의 제3실시예에 다른 정보처리장치의 블록도.
제16도는 시스템인터럽션핸들러의 실행과정을 나타낸 타이밍챠트.
제17도는 제15도에 나타낸 정보처리장치에서의 시스템인터럽션핸들러의 실행과정을 나타낸 플로우챠트.
제18도는 본 발명의 제2관점의 제4실시예에 따른 정보처리장치의 블록도.
제19도는 본 발명의 제2관점의 제5실시예에 따른 정보처리장치의 블록도.
제20도는 제19도에 나타낸 정보처리장치에서의 시스템인터럽션핸들러의 실행과정을 나타낸 타이밍챠트.
제21도는 제19도에 나타낸 정보처리장치에서의 시스템인터럽션핸들러의 실행과정을 나타낸 플로우챠트.
제22도는 본 발명의 제2관점의 제6실시예에 따른 정보처리장치의 블록도이다.
* 도면의 주요부분에 대한 부호의 설명
17, 17a∼17c : 스택포인터 16, 16a, 16c : 레지스터
21a∼21e : 컨텍스트블록 18, 18a∼18c : 프로그램카운터
31 : 정보처리장치 33 : 시스템프로세서
34 : 시스템 지원유니트 35 : 응용프로세서
36 : 버스 37 : 로드포인터
38, 38a∼38c : 컨텍스트블록 베이스레지스터
39 : 응용 지원유니트 40 : 내부상태메모리
41 : 스웝―인라인 42 : 스웝―아웃라인
45 : 정보처리장치 46 : 메모리
47 : 시스템프로세서 48a∼48c : 응용프로세서
49 : 버스 50 : 로드포인터
51a∼51c : 스웝―인라인 52a∼52c : 스웝―아웃라인
55 : 정보처리장치 56 : 메인프로세서
57 : 인터럽션프로세서 58 : 공통메모리
59 : 버스 61 : 정보처리장치
62 : 인터럽션프로세서 63 : 공통메모리
64 : 타이머 63 : 메인프로세서
66 : 버스 71 : 정보처리장치
72 : 인터럽션프로세서 73 : 공통메모리
74 : 타이머 75 : 메인프로세서
76 : 버스 81 : 정보처리장치
82a∼82d : 인터럽션프로세서 83 : 공통메모리
84 : 메인프로세서 85 : 버스
86 : 정보처리장치 87 : 인터럽션레지스터
88 : 공통메모리 89 : 메인프로세서
90 : 버스 91 : 정보처리장치
92 : 인터럽션프로세서 93 : 로컬메모리
94 : 공통메모리
[산업상의 이용분야]
본 발명은 폐쇄결합 멀티프로세서시스템(close coupling multiprocessor system)을 구성하는 정보처리장치에 관한 것으로, 특히 동작효율이 개선되고 인터럽션처리를 효율적으로 실행할 수 있는 정보처리장치에 관한 것이다. 또한, 본 발명은 상기한 정처리수단을 이용하여 정보를 처리하는 정보처리방법에 관한 것이다.
[종래의 기술 및 그 문제점]
제1도에 도시된 바와 같이, 정보처리장치(11)는 응용프로그램과 시스템프로그램을 처리하기 위한 메인프로세서(12)와, 상기 응용프로그램과 시스템프로그램을 저장하기 위한 메모리(13) 및, 상기 메인프로세서(12)와 메모리(13) 사이에서 응용프로그램과 시스템프로그램을 전송하기 위한 버스(14)를 포함하여 구성되어 있다.
또한, 상기 메인프로세서(12)는 레지스터(16)와 스택포인터(17) 및 프로그램카운터(18)를 갖춘 내부상태메모리(15)와, 상기 응용프로그램의 실행을 지원하는 응용 지원유니트(19) 및, 상기 시스템프로그램의 실행을 지원하는 시스템 지원유니트(20)를 포함하여 구성되어 있다.
특히, 상기 응용 지원유니트(19)는 메모리제어회로나 부동소숫점 산술유니트이고, 시스템 지원유니트(20)는 시스템프로그램특정 명령을 실행하기 위한 실행유니트이다.
상기 응용프로그램은 주목적으로서 정보처리장치(11)를 동작시키기 위한 주동작프로그램이고, 시스템프로그램은 정보처리장치(11)에서의 동작을 제어하기 위한 제오프로그램인데, 이 시스템프로그램은 응용프로그램이 실행중에 있을 때 인터럽션처리로서 실행된다.
더욱이, 상기 메모리(13)는 내부상태메모리(15)의 내용을 저장하기 위한 복수의 컨텍스트블록(contextblock) (21; 21a,21b,21c)을 포함하고 있는 바, 여기서 상기 내부상태메모리(15)에 저장된 내용을 컨텍스트라 칭하고 있다. 즉, 컨텍스트는 레지스터(16), 스택포인터(17) 및 프로그램카운터(18)를 갖춘 메인프로세서(12)에서의 레지스터(16), 스택포인터(17) 및 프로그램카운터(18)의 내용이다.
컨텍스트블록(21)의 수는 메인프로세서(12)에 실행되는 응용프로그램의 수와 동일하다. 즉, 각 컨텍스트블록(21)은 응용프로그램에 대응한다.
상기한 구성의 정보처리장치에 있어서, 메인프로세서(12)에서 하나의 응용프로그램이 실행되면, 그 응용프로그램의 명령에 따라 내부상태메모리(15)의 내용이 갱신된다. 즉, 응용프로그램이 실행되면 응용지원유니트(19)에 의해 지원되고 있는 레지스터(16)와 스택포인터(17) 및 프로그램카운터(18)의 내용이 갱신된다. 그러므로, 내부상태 메모리(15)의 내용은 메인프로세서(12)에서 무엇이 실행되었는가를 반영하게 즉, 내부상태메모리(15)에서의 실행이 중지되고 시각 T에서 그 내부상태메모리(15)의 내용이 대응하는 컨텍스트블록(21)에 저장된 경우에는, 그 대응하는 컨텍스트블록(21)에 저장된 상기 실행이 중지된 내용이 내부상태메모리(15)에 재저장된 후, 소정 시각에서 그 내용의 중지된 상태로부터 실행이 개재될 수 있다.
또, 복수의 응용프로그램이 메인프로세서(12)에서 시분할적으로 각각 실행되는 경우에는, 다른 응용프로그램이 메인프로세서(12)에서 실행될 때 하나의 응용프로그램의 내용이 대응하는 컨텍스트블록(21)에 저장된다.
제2도는 응용프로그램 1과 응용프로그램 2, 응용프로그램 3 및 시스템프로그램의 시분할적인 처리를 나타낸 타이밍챠트의 일례이다.
제1도에 도시된 바와 같이, 상기한 실행중에 응용프로그램(AP1)의 내용인 컨텍스트(CTX1)는 컨텍스트블록(21a)에 저장될 수 있다. 마찬가지로, 응용프로그램(AP2)의 내용인 컨텍스트(CTX2)는 컨텍스트블록(21b)에, 응용프로그램(AP3)의 내용인 컨텍스트(CTX3)는 컨텍스트블록(21c)에 저장될 수 있다.
제2도에 나타낸 바와 같이, 응용프로그램(AP1)이 메인프로세서(12)에서 실행중일 때 응용프로그램(AP1)과 다른 응용프로그램을 변경하기 위한 요구가 발생한 경우에는, 응용프로그램(AP1)의 특정 명령의 실행이 중지되고, 지원유니트(20)에 의해 지원되고 있는 동안 요구를 처리하기 위한 시스템프로그램(SP)이 실행된다. 그리고, 이 시스템프로그램(SP)의 실행에 의해 실행될 다음의 응용프로그램이 결정된다.
응용프로그램(AP1)의 실행이 응용프로그램(AP2)의 실행으로 변경된 경우에는, 컨텍스트(CTX1)가 내부상태메모리(15)로부터 컨텍스트블록(21a)으로 전송되어 응용프로그램(AP1)의 실행이 중지된다. 그리고 이때 이 시스템프로그램(SP)의 실행에 의해 컨텍스트블록 (21b)에 저장된 컨텍스트(CTX2)가 내부상태메모리(15)로 전송되어 응용프로그램(AP2)이 실행된다.
응용프로그램(AP1)의 실행이 그 프로그램(AP1)의 중지된 상태로부터 재개되는 경우에는, 시스템프로그램의 제어하에 컨텍스트(CTX)가 내부상태메모리(15)로부터 컨텍스트블록(21b)으로 전송되고 컨텍스트블록(21a)에 저장된 컨텍스트(CTX1)가 내부상태메모리(15)로 전송된다. 그러므로, 응용프로그램(AP1)에서 시스템프로그램에 의해 중지되었던 특정 명령이 실행되게 된다.
요약하면 복수의 응용프로그램은 메인프로세서에서 시분할적으로 각각 실행되고, 요구(request)를 처리하기 위해 시스템프로그램이 실행된다.
따라서, 종래의 정보처리장치(11)에 있어서는 복수의 응용프로그램 및 시스템프로그램이 메인프로세서(12)에서 시분할적으로 각각 실행되게 된다.
그러나, 상술한 종래의 정보처리장치에 있어서는, 시스템프로그램이 실행될 때는 응용 지원유니트(19)가 이용되지 않고, 마찬가지로 응용프로그램이 실행될 때는 시스템 지원유니트(20)가 이용되지 않는다. 즉, 시스템프로그램이 실행될 때는 응용프로그램이 실행되지 않는다. 따라서, 메인프로세서(12)에 부착된 지원유니트(19,20)의 동작효율이 열화한다.
다음에 제3도 및 제4도를 참조하여 종래의 정보처리장치의 다른 예를 설명한다.
상술한 종래의 정보처리장치(11)에서는 응용프로그램의 변경요구가 내부유니트로부터 공급되고 있는데 반해, 제3도에 나타낸 종래의 정보처리장치(31)에 있어서는 외부인터럽션신호가 정보처리장치(31)의 외부로부터 공급되고 있다.
제3도에 나타낸 바와 같이, 메인프로세서(32)는 외부인터럽션신호가 전송되는 신호선과 접속되어 있다. 따라서, 외부인터럽션신호가 메인프로세서(32)에 공급되지 않는 경우에는, 응용프로그램군에 속하는 범용타스크가 메인프로세서(32)에서 실행된다. 한편, 외부인터럽션신호가 메인프로세서(32)에 공급되는 경우에는, 범용타스크의 실행이 중지되고 응용프로그램군에 속하는 외부인터럽션핸들러가 그 외부인터럽션신호에 의해 지정된 내용을 처리하기 위해 메인프로세서(32)에서 실행되게 된다.
외부인터럽션핸들러의 내용은 통상 범용타스크의 내용보다도 간단하므로, 메인프로세서(32)에서 외부인터럽션핸들러의 실행이 종료한 후에 범용타스크의 실행이 재개되게 된다. 응용프로그램의 교환은 제4도에 도시되어 있다.
제4도는 범용타스크와 외부인터럽션핸들러 사이의 응용프로그램의 교환을 도시해 놓은 타이밍챠트이다.
그러나, 상술한 종래의 정보처리장치에 있어서는, 제4도에 도시된 바와 같이 외부인터럽션핸들러를 실행하기 위해 사용되는 레지스터에 관해서는, 외부인터럽션핸들러가 실행되는 경우에는 그 레지스터에 저장된 내용이 어딘가에 세이브(save)되도록 전송되어야 한다. 더욱이, 외부인터럽션핸들러의 실행이 종료한 경우에는 그 레지스터의 세이브된 내용이 그 레지스터에 재저장(restore)되어야 한다. 즉, 외부인터럽션핸들러의 처음 명령은 "SAVE"명령이 되고, 마지막 명령은 "RESTORE"명령이 되어야 한다.
따라서, 외부인터럽션핸들러를 처리하기 위한 처리시간이 길어지고, 더욱이 외부인터럽션핸들러의 각 동작에 대해 "SAVE" 및 "RESTORE"명령이 실행되어야 하므로, 외부인터럽션핸들러가 효율적으로 실행되지 못하게 된다.
또, 각 외부인터럽션신호의 공급시에 범용타스크의 실행이 중지되기 때문에, 범용타스크의 실행시간이 외부인터럽션신호의 공급주기에 영향을 받게 된다.
더욱이, 외부인터럽션핸들러는 용이하게 처리된다. 한편, 메인프로세서에는 부동소숫점기능이나 파이프라인기능 등과 같은 고도의 기능이 요구되므로, 외부인터럽션핸들러의 실행에 불필요한 많은 기능들이 메인프로세서(32)에 존재하게 된다.
따라서, 상술한 종래의 정보처리장치에 있어서는, 외부인터럽션핸들러를 실행하는 경우에 외부인터럽션핸들러에 의해 메인프로세서가 독점되어 메인프로세서에서의 고도한 기능의 이용이 제한을 받게 된다.
[발명의 목적]
본 발명은 상기한 종래의 정보처리장치의 결점을 고려하여 이루어진 것으로, 그 제1목적은 지원유니트의 동작효율을 향상시킬 수 있는 정보처리장치 및 이를 이용한 정보처리방법을 제공함에 있다.
또, 본 발명의 제2목적은 메인프로세서에서의 고도한 기능을 효율적으로 이용할 수 있는 정보처리장치 및 이를 이용한 정처리방법을 제공함에 있다.
[발명의 구성 및 작용]
상기 제1목적을 실현하기 위해 본 발명에 따른 정보처리장치는, 시스템프로그램의 제어하에 응용프로그램을 실행하는 정보처리장치에 있어서, 시스템프로그램을 저장하는 메모리수단과, 응용프로그램의 내용과 동일한 콘텍스트를 저장함과 더불어, 각각이 컨텍스트에 대응하는 컨텍스트블록, 시스템 지원유니트에 의해 지원됨과 더불어, 시스템프로그램의 실행에 의해 실행될 다음의 응용프로그램이 결정된 후에 대응하는 컨텍스트블록에 저장된 응용프로그램의 실행을 제어하는 시스템제어수단, 상기 시스템제어수단에서 실행되는 시스템프로그램의 제어하에 상기 컨텍스트블록의 어드레스를 지정하는 로드지정수단 및, 응용 지원유니트에 의해 지원됨과 더불어, 상기 로드지정수단에 의해 어드레스가 기정되어 있는 대응하는 컨텍스트블록에 저장된 응용프로그램을 실행하는 응용프로그램실행수단을 구비하여 구성되고, 상기 로드지정수단에 의해 지정된 컨텍스트블록의 어드레스는 상기 시스템 제어수단에서 실행된 시스템프로그램의 제어하에 다음의 응용프로그램이 결정된 때에 변경되고, 상기 응용프로그램은 시스템제어수단에서 다음의 응용프로그램이 결정되어 다음의 응용프르그램으로 변경될 때까지 실행되도록 되어 있다.
상기한 구성에 있어서, 응용프로그램실행수단에서의 응용프로그램의 실행중에 응용프로그램을 변경하기 위한 요구가 시스템제어수단에 공급되면, 응용프로그램실행수단에서 실행될 다음의 응용프로그램이 시스템제어수단에서 실행되는 시스템프로그램에 의해 결정된다.
이 경우, 다음의 응용프로그램을 결정하기 위한 시스템프로그램의 실행중에는 응용 지원유니트에 의해 지원되고 있는 동안에도 응용프로그램이 실행이 계속된다. 즉, 응용프로그램의 실행이 시스템제어수단에서의 시스템프로그램의 실행에 의해 방해받지 않게 된다.
또, 응용프로그램실행수단에서 실행될 다음의 응용프로그램이 시스템에저수단에 의해 결정되면, 로드지정수단에 의해 지정된 컨텍스트블록의 어드레스가 시스템제어수단의 결정에 따라 다른 컨텍스트블록의 어드레스로 변경된다. 이때, 응용프로그램실행수단에서 실행되고 있는 응용프로그램은 상기 로드지정수단에 의해 어드레스가 지정되어 있는 대응하는 컨텍스트블록에 저장된 다른 응용프로그램으로 변경된다.
그러므로, 응용프로그램실행수단에서의 응용프로그램의 실행은 응용프로그램이 변경된 때에 중지되지만, 응용프로그램의 실행을 중지하는데 필요한 시간은 응용프로그램실행수단에서 실행될 다음의 응용프로그램을 결정하기 위한 시간에 비해 아주 짧다.
응용프로그램실행수단에서 응용프로그램이 다음의 응용프로그램으로 변경된 후, 시스템제어수단에서 실행된 시스템프로그램의 제어하에 응용프로그램의 실행이 재개된다.
따라서, 응용 지원유니트가 시스템 지원유니트의 동작과 무관하게 동작하도록 배열되므로, 응용프로그램실행수단은 시스템제어수단의 실행에 의한 영향을 받지 않고 동작할 수 있게 되어 실질적으로 연속하여 실행할 수 있게 된다. 그러므로, 응용프로그램실행수단은 물론 응용 전원유니트도 효율적으로 이용할 수 있게 된다.
더욱이, 응용프로그램실행수단과 응용 지원유니트를 효율적으로 이용할 수 있기 때문에, 처리되는 응용프로그램의 양이 증가하여 시스템제어수단은 물론 시스템 지원유니트를 효율적으로 이용할 수 있게 된다.
상기 로드 지정수단은 복수의 컨텍스트블록의 어드레스를 지정하는 복수의 로드포인터로 구성되고, 상기 응용프로그램실행수단은 각각이 상기 로드포인터에 대응함과 더불어, 그 로드포인터에 의해 어드레스가 지정된 컨텍스트블록에 저장된 응용프로그램을 실행하는 복수의 응용프로세서로 구성되어 있다.
상기한 구성에 있어서, 복수의 응용프로그램은 독립적으로 실행된다. 즉, 저장된 응용프로그램에 대응하는 컨텍스트블록의 어드레스는 로드포인터에 기록되고, 이때 그 응용프로그램은 로드포인터에 대응하는 소정의 응용프로세서로 전송된다.
따라서, 복수의 응용프로그램을 복수의 응용프로세서에서 동시에 실행할 수 있게 된다. 그러므로, 시스템 지원유니트와 응용 지원유니트를 효율적으로 이용할 수 있게 된다.
더욱이, 상기 응용프로그램실행수단은, 다음의 응용프로그램이 결정된 후에 스웝-아웃요구신호가 상기 시스템제어수단으로부터 응용프로그램실행수단으로 공급되면, 상기 로드지정수단에 의해 지정된 컨텍스트블록의 어드레스를 격납하는 레지스터와, 상기 스웝-아웃요구신호가 공급된 후에 스웝-인요구신호가 상기 시스템제어수단으로부터 응용프로그램실행수단으로 공급되면, 상기 레지스터에 격납된 어드레스의 컨텍스트블록에 저장되어 있는 컨텍스트를 저장함과 더불어, 응용지원유니트에 의해 지원되고 있는 동안 컨텍스트를 실행하는 내부상태메모리를 포함하여 구성되고, 상기 내부상태메모리는 다음의 스웝-아웃요구신호가 상기 시스템제어수단으로부터 응용프로그램실행수단으로 공급되면, 상기 레지스터에 어드레스가 격납되어 있는 대응하는 컨텍스트블록에 컨텍스트를 공급하도록 되어 있다.
상기한 구성에 있어서, 스웝-아웃요구신호는 다음의 응용프로그램이 시스템제어수단에서 실행되는 시스템프로그램에 의해 결정된 후에 시스템제어수단으로부터 응용프로그램실행수단으로 공급된다. 상기 스웝-아웃요구신호가 응용프로그램실행수단만에 의해 수신되면, 응용프로그램의 실행이 중지된다. 이후, 내부상태메모리에서 실행된 상기 중지된 컨텍스트가 레지스터에 어드레스가 격납되어 있는 대응하는 컨텍스트블록으로 공급된다.
이때, 어드레스, 컨텍스트블록의 지정 및 로드지정수단에서의 기록은 시스템제어수단의 제어에 따라 새로운 어드레스로 변경된다. 그후, 스웝-인요구신호가 시스템제어수단으로부터 응용프로그램실행수단으로 공급되면, 그 새로운 어드레스가 레지스터에 격납되고, 이 새로운 어드레스에 의해 지정된 컨텍스트블록에 저장된 새로운 응용프로그램이 내부상태메모리로 전송된다. 이후, 그 새로운 응용프로그램의 실행이 재개된다.
또, 상기 시스템 지원유니트는 시스템프로그램의 특정 명령을 실행하기 위한 실행유니트이고, 응용 지원유니트는 메모리제어회로나 부동소숫점 산술유니트이다.
상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리장치는, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 인터럽션처리수단에서 실행되는 외부인터럽션핸들러 등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요되는 처리의 간단한 부분을 처리함과 더불어, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 메모리수단에 저장된 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 인터럽션처리수단, 상기 인터럽션처리수단에 의해 출력되는 wake파라미터를 저장하기 위한 wake어드레스, 일정한 간격으로 타이머인터럽션신호를 발생하는 타이머수단 및, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되지 않는 경우에는 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되는 경우에는 상기 wake어드레스의 내용을 독출함으로써 wake파라미터가 wake어드레스에 저장되어 있는지의 여부를 판정하기 위해 메모리수단에 저장된 시스템 인터럽션핸들러를 실행하고, 상기 wake파라미터가 wake어드레스에 저장되어 있는 것으로 판정된 경우에는 상기 메모리수단에 저장된 인터럽션타스크의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 처리하는 메인프로세스수단을 구비하여 구성되었다.
상기한 구성에 있어서, 인터럽션처리수단만의 실행에 의해 용이하게 처리될 수 있는 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는, 외부인터럽션은 그 인터럽션처리수단만에 의해 처리될 수 있다. 그러나, 인터럽션처리수단의 실행만으로 처리될 수 없는 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는 그 외부인터럽션의 간단한 부분이 인터럽션처리수단에서 외부인터럽션핸들러의 실행에 의해 처리되고, 그 인터럽션에 의해 요구되는 나머지 부분은 메인프로세스수단에서의 범용타스크의 실행에 의해 처리된다.
구체적으로는, 외부인터럽션이 인터럽션처리수단에 공급되면, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake파라미터가 wake어드레스에 전송되어, 외부인터럽션에 의해 요구되는 처리의 간단한 부분이 인터럽션처리수단에서 처리되는 동안 외부인터럽션에 의해 요구되는 그 처리의 나머지 부분을 처리하게 된다.
메인프로세서수단에 있어서는, 외부인터럽션이 인터럽션처리수단에 공급되지 않는 경우에는 범용타스크가 통상적으로 실행되고, 타이머인터럽션신호가 메인프로세서수단에 공급되면 범용타스크가 인터럽트된 후에 시스템인터럽션핸들러가 실행된다. 따라서, 시스템인터럽션핸들러의 실행이 종료되었을 때 범용타스크의 실행이 재개되게 된다.
한편, 외부인터럽션이 외부인터럽션처리수단에 공급된 경우에는, wake파라미터의 내용을 독출함으로써 외부인터럽션의 존재가 검출된다. 따라서, 시스템인터럽션핸들러가 인터럽션핸들러가 인터럽트된 후에 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하기 위해 인터럽션타스크가 빠르게 실행되게 된다.
따라서, 인터럽션처리수단만의 실행에 의해 처리될 수 없는 외부인터럽션이 인터럽션처리수단에 공급되는 경우에도, 외부인터럽션을 효율적으로 처리할 수 있게 된다.
상기한 바와 같은 구성을 이용하여 실현되는 상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리방법은, 정보처리장치에서의 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 공통메모리에 저장하는 단계와, 상기 공통메모리에서 wake어드레스를 배열하는 단계, 타이머를 이용하여 일정한 간격으로 타이머인터럽션신호를 발생시키는 단계, 상기 공통메모리에 저장된 외부인터럽션핸들러의 실행에 의해 인터럽션프로세서에서의 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션프로세서로부터 wake어드레스로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계, 상기 wake어드레스에 인터럽션프로세서에 의해 출력되는 wake파라미터를 저장하는 단계, 상기 타이머로부터 타이머인터럽션신호가 공급되지 않는 경우에는 범용타스크를 실행하고, 상기 타이머로부터 인터럽션신호가 공급되는 경우에는 wake어드레스의 내용을 독출함으로써 공통메모리에 배열된 wake파라미터가 wake어드레스에 저장되어 있는지의 여부를 판정하기 위해 시스템인터럽션핸들러를 실행하는 단계, 및 wake파라미터가 wake어드레스에 저장되어 있는 것으로 판정된 경우에는 상기 공통메모리에 저장된 인터럽션타스크의 실행에 의해 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 단계를 구비하여 이루어져 있다.
더욱이, 상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리장치는, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리함과 더불어 소정의 시스템호출을 실행하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크 및 외부인터럽션핸들러 등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션을 처리함과 더불어, 외부인터럽션의 내용에 따라 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행함으로써 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터를 출력하는 인터럽션처리수단, 상기 인터럽션처리수단에 의해 출력되는 시스템호출파라미터를 저장하기 위한 시스템호출어드레스, 일정한 간격으로 타이머인터럽션신호를 발생하는 타이머수단 및, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되지 않는 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되는 경우에는 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 시스템인터럽션핸들러의 실행중에 시스템호출어드레스에 저장된 시스템호출파라미터의 내용을 독출함으로써 시스템호출의 형태를 판정함과 더불어 그 시스템호출의 형태에 따라 시스템호출을 실행하는 메인프로세스수단을 구비하여 구성되어 있다.
상기한 바와 같은 구성에 있어서는 인터럽션처리수단에 공급되는 외부인터럽션의 내용에 따라 소정의 시스템호출이 메인프로세스수단에서 실행되는 한편, 외부인터렵션의 다른 내용들은 인터럽션처리수단에 실행된다.
구체적으로는, 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는 시스템호출과 관련된 내용을 제외한 외부인터럽션의 내용들이 외부인터럽션핸들러를 실행함으로써 처리된다. 시스템호출과 관련된 외부인터럽션의 내용을 처리하기 위해서, 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터가 외부인터럽션의 내용에 따라 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행함으로써 메모리수단에 배열된 시스템호출어드레스로 전송된다.
그후, 타이머인터럽션신호가 타이머장치로부터 메인프로세스수단에 공급되면, 시스템인터럽션핸들러가 메인프로세스수단에서 실행되어 시스템호출피라미터가 시스템호출어드레스로부터 독출된다. 시스템호출피라미터가 독출된 후에, 시스템호출파라미터에 대응하는 시스템호출의 형태가 판단되어 시스템호출이 실행된다.
따라서, 시스템호출의 내용이 복잡하여 시스템호출이 인터럽션처리수단에서 실행될수 없더라도, 소정의 시스템호출이 정보처리장치에서 용이하게 실행될 수 있게 된다. 그러므로, 인터럽션처리수단의 소형화를 도모할 수 있게 된다.
또한, 상기한 구성을 이용하여 실현되는 상기 제2목적을 달성하기 위해 본 발명을 따른 정보처리방법은, 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리함과 더불어, 정보처리장치에서의 소정의 시스템호출을 실행하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크 및 외부인터럽션핸들러 등의 응용프로그렘을 공통메모리에 저장하는 단계와, 상기 공통메모리에서 시스템호출어드레스를 배열하는 단계, 인터럽션프로세서의 외부인터럽션핸들러의 실행에 의해 외부인터럽션을 처리하는 단계, 외부인터럽션의 내용에 따라 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행함으로써 인터럽션프로세서로부터의 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터를 출력하는 단계, 상기 인터럽션프로세서에 의해 출력되는 시스템호출파라미터를 시스템호출어드레스에 저장하는 단계, 타이머에 의해 일정한 간격으로 타이머인터럽션신호를 발생시키는 단계, 메인프로세서에 의해, 상기 타이머로부터 타이머인터럽션신호가 공급되지 않는 경우에는 공통메모리에 저장된 범용타스크를 실행하고 타이머로부터 타이머인터럽션신호가 공급되는 경우에는 공통메모리에 저장된 시스템인터럽션핸들러를 실행하는 단계, 상기 시스템인터럽션핸들러가 메인프로세서에서 실행되는 경우에 시스템호출어드레스에 저장된 시스템호출파라미터를 독출하는 단계, 메인프로세서에 의해 상기 시스템호출의 형태를 판정하는 단계 및, 메인프로세서에 의해 시스템호출파라미터에 대응하는 시스템호출을 실행하는 단계를 구비하여 이루어져 있다.
더욱이, 상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리장치는, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 상기 메모리수단에 저장된 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하기 위한 인터럽션처리수단 및, 지연인터럽션레지스터를 갖춤과 더불어, 이 지연인터럽션레지스터에 저장된 내용이 초기값인 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 인터럽션처리수단에서의 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 상기 메모리수단에 격납된 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 상기 메모리수단에 저장된 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 메인프로세스수단을 구비하여 구성되어 있다.
상기한 구성에 있어서, 인터럽션처리수단만의 실행에 의해 용이하게 처리될 수 있는 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는, 그 외부인터럽션은 인터럽션처리수단만에 의해 처리될 수 있게 된다. 그러나, 인터럽션처리수단만에 의해 처리될 수 없는 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는, 그 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 인터럽션처리수단의 외부인터럽션핸들러의 실행에 의해 처리하고, 외부인터럽션에 의해 요구되는 처리의 나머지 부분들은 메인프로세스수단에서의 인터럽션타스크의 실행에 의해 처리하게 된다.
구체적으로, 외부인터럽션이 인터럽션처리수단에 공급되면, 외부인터럽션에 의해 요구되는 처리의 간단한 부분은 인터럽션처리수단에 처리되는 한편, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하는 wake파라미터가 지연인터럽션레지스터에 전송되어 그 외부인터럽션에 의해 요구되는 처리의 나머지 부분들을 처리하게 된다.
메인프로세스수단에 있어서는, 외부인터럽션이 인터럽션처리수단에 공급되지 않는 경우에는 범용타스크가 통상적으로 실행된다. 한편, 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는, wake파라미터가 메인프로세스수단에 배열된 지연인터럽션레지스터에 기록되기 때문에, 외부인터럽션의 존재가 바로 검출되게 된다.
그러므로, 시스템인터럽션핸들러가 인터럽트된 후에 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 처리하기 위해 인터럽션타스크가 빠르게 실행되게 된다.
따라서, 외부 인터럽션이 인터럽션처리수단에 공급되기 때문에 인터럽션타스크의 실행요구가 발생한 경우에는, 그 요구가 메인프로세스수단에 빠르게 전송될 수 있다. 즉, 인터럽션타스크는 외부인터럽션에 의해 요구되는 동작의 나머지 부분을 처리하기 위해 빠르게 실행될 수 있다.
더욱이, 상기한 구성을 이용하여 실현되는 상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리방법은, 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 공통메모리에 저장하는 단계와, 메인프로세서로 지연인터럽션레지스터를 배열함과 더불어, 그 지연인터럽션레지스터의 내용을 초기값으로 설정하는 단계, 인터럽션프로세서에서의 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션프로세서로부터 지연인터럽션레지스터로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계 및, 상기 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 메인프로세서에 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 메인프로세서에 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 단계를 구비하여 이루어져 있다.
더욱이, 상기 제2목적을 달성하기 위해 본 발명에 따른 정보처리장치는, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 등의 응용프로그램을 저장하는 메모리수단과, 응용프로그램에 속하는 외부인터럽션핸들러를 저장함과 더불어, 상기 메모리수단에 비해 아주 작은 크기로 설치되어 로컬메모리수단, 상기 로컬메모리수단으로부터 독출된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 인터럽션처리수단, 지연인터럽션레지스터를 갖춤과 더불어, 이 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 상기 인터럽션처리수단에서의 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 상기 메모리수단에 저장된 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 실행하는 메인프로세스수단 및, 상기 메모리수단과 메인프로세스수단 사이에서 시스템인터럽션핸들러와 범용타스크 및 인터럽션타스크를 전송하는 프로그램전송수단을 구비하여 구성되어 있다.
상기한 구성에 있어서, 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는, 외부인터럽션핸들러는 프로그램전송수단을 통과하지 않고 로컬메모리장치로부터 독출되어 인터럽션처리수단에서의 외부인터럽션에 의해 요구된 처리의 간단한 부분을 처리하기 위한 인터럽션처리수단에서 실행된다.
외부인터럽션핸들러의 실행중에는, 외부인터럽션핸들러에 프로그램된 "WAKE"명령이 실행되어 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 메인프로세스수단에 배열된 지연인터럽션레지스터로 전송한다.
메인프로세스수단에 있어서는, 외부인터럽션이 인터럽션처리수단에 공급되지 않는 경우에는 범용타스크가 통상적으로 실행된다. 한편, 외부인터럽션이 인터럽션처리수단에 공급되는 경우에는 지연인터럽션레지스터에 기록된 wake파라미터에 의해 외부인터럽션의존재가 즉시 검출된다.
그러므로, 외부인터럽션에 의해 요구된 처리의 나머지 부분이 메인프로세스수단에서 인터럽션타스크를 실행함으로써 처리된다.
따라서, 외부인터럽션핸들러가 프로그램전송수단을 통과하지 않고 인터럽션처리수단에 독출되기 때문에, 프로그램전송수단에 전송된 프로그램이 충돌하지 않게 된다. 그 결과, 메인프로세스수단과 인터럽션처리수단에서 동작이 서로 방해받는 것을 방지할 수 있게 된다.
더욱이, 상기한 구성을 이용하여 실현되는 상기 제2목적을 달성하기 위한 본 발명에 따른 정보처리방법은, 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 등의 응용프로그램을 공통메모리에 저장하는 단계와, 응용프로그램에 속하는 외부인터럽션핸들러를 상기 공통메모리에 비해 아주 작은 크기로 설치되어 있는 로컬메모리에 저장하는 단계, 메인프로세서로, 지연인터럽션레지스터를 배열함과 더불어, 그 지연인터럽션레지스터의 내용을 초기값으로 설정하는 단계, 상기 외부인터럽션핸들러의 실행에 의해 상기 인터럽션프로세서에서의 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션프로세서로부터 상기 지연인터럽션레지스터로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계 및, 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 범용타스크를 실행하고, 상기 지연인터럽션레지스터에 격납된 내용이 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 시스템인터럽션핸들러를 실행하며, 이 시스템인터럽션핸들러가 실행된 경우에는 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 실행하는 단계를 구비하여 이루어져 있다.
[실시예]
이하, 제5도 내지 제9도를 참조하여 본 발명의 제1관점을 따른 실시예들을 상세히 설명한다.
제5도는 제1관점의 제1실시예에 따른 정보처리장치의 블록도이다.
제5도에 나타낸 바와 같이, 정보처리장치(31)는 응용프로그램과 시스템프로그램을 저장하는 메모리(32)와, 시스템 지원유니트(34)에 의해 지원되는 동안 메모리(32)에 저장된 시스템프로그램을 실행하는 시스템프로세서(33), 메모리(32)에 저장된 응용프로그램을 실행하는 응용프로세서(35) 및, 시스템프로세서(33)로부터[또는 시스템프로세서(33)로] 시스템프로그램을 전송하고 응용프로세서(35)로부터[또는 응용프로세서(35)로] 응용프로그램을 전송하는 버스(36)를 포함하여 구성되어 있다.
상기 메모리(32)는, 종래의 정보처리장치(11)와 마찬가지로 응용프로그램(AP1,AP2,AP3)의 내용과 동일한 컨텍스트(context)를 저장하는 컨텍스트블록(21)과, 시스템프로그램의 제어하에 응용프로세서에 컨텍스트블록(21)의 어드레스를 지정하는 로드포인터(37)를 포함하여 구성되고, 상기 특정의 컨텍스트블록(21)에는 응용프로세서(35)에서 실행되는 컨텍스트가 저장된다.
상기 응용프로세서(35)는, 로드포인터(37)에 의해 어드레스가 지정된 후에 응용프로세서(35)에서 실행될 컨텍스트가 저장되는 컨텍스트블록(21)의 어드레스를 격납하는 컨텍스트블록 베이스레지스터(38)와, 응용프로그램(AP1,AP2 또는 AP3)의 실행을 지원하는 응용 지원유니트(39) 및, 이 응용 지원유니트(39)에 의해 지원됨과 더불어, 상기 컨텍스트블록 베이스레지스터 (38)에 어드레스가 격납되어 있는 컨텍스트블록(21)에 저장된 컨텍스트를 실행하고, 또한 종래의 정보처리장치(11)와 마찬가지로 레지스터(16), 스택포인터(17) 및 프로그램카운터(18)를 같춘 내부상태메모리 (40)를 포함하여 구성되어 있다.
상기 응용 지원유니트(39)는, 예컨대 종래의 정보처리장치(11)와 마찬가지로 메모리 제어회로나 부동소숫점 산술유니트이다. 그리고, 시스템 지원유니트(34)는 시스템프로그램의 특별한 명령을 실행하는 실행유니트이다. 상기 응용지원유니트(39)는 시스템프로세서(33)를 지원하는 시스템 지원유니트(34)와 무관하게 응용프로세서(35)를 지원하도록 동작한다.
상기 시스템프로세서(33)와 응용프로세서(35)는 스웝-인라인(swap-in line; 41)과 스웝-아웃라인(swap-out line;42)에 의해 접속되어 있는데, 여기서 스웝-인라인(41)에서는 스웝-인요구신호가 시스템프로세서(33)로부터 응용프로그램세서(35)로 전송되고, 스웝-아웃라인(42)에서는 스웝-아웃요구신호가 시스템프로세서(33)로부터 응용프로세서(35)로 전송된다. 시스템프로그램의 제어하에 스웝-아웃요구신호가 응용프로세서(35)로 공급되면, 응용프로세서(35)에서 실행되고 있는 컨텍스트는 소정의 컨텍스트블록(21)으로 스웝-아웃된다. 한편, 시스템프로그램의 제어하에 스웝-인신호가 응용프로세서(35)로 공급되면, 예컨대 이전의 컨텍스트를 스웝-아웃한 후에 응용프로세서(35)에서 실행될 컨텍스트가 로드포인터(37)에 의해 지정된 컨텍스트블록(21)으로부터 응용프로세서(35)로 스웝된다.
상기한 구성의 정보처리장치(31)에 있어서, 컨텍스트블록(21a)에 저장된 응용프로그램(AP1), 컨텍스트블록(21b)에 저장된 응용프로그램(AP2) 및 컨텍스트블록(21c)에 저장된 응용프로그램(AP3)을 시분할로 실행하는 동작을 제6도를 참조하여 설명한다.
제6도는 제1관점의 제1실시예에 따른 시스템프로세서(33)와 응용프로세서(35)에서의 동작을 나타낸 타이밍챠트이다.
제6도에 나타낸 바와 같이, 정보처리장치(31)가 초기에 동작을 개시하면, 시스템 지원유니트(34)에 의해 지원되고 있는 동안 소정의 시스템프로그램이 시스템프로세서(33)에서 실행된다. 이때, 응용프로세서(35)에서의 동작은 응용프로세서(35)에서 실행될 응용프로그램이 존재하지 않으므로 중단된다.
그후, 시스템프로그램의 제어하에 예컨대 개시상태로 설정되어 있는 응용프로그램(AP1)의 내용과 동일한 컨텍스트가 컨텍스트블록(21a)에 저장된다. 즉, 레지스터(16), 스택포인터(17) 및 프로그램카운터(18)를 초기화하기 위한 초기조건이나 값이 컨텍스트블록(21a)에 저장된다. 그리고 나서, 컨텍스트블록(21a)의 어드레스가 응용프로세서(35)의 동작을 준비하기 위한 로드포인터(37)에 기록된다.
그후, 시스템프로그램의 제어하에 스웝-인요구신호가 스웝-인라인(41)을 통해서 시스템프로세서(33)로부터 응용프로그램(35)로 전송된다. 이 스웝-인요구신호가 응용프로세서(35)로 수신되면, 컨텍스트블록(21a)로 로드하기 위한 로드과정이 인터럽션처리로서 동작하게 된다.
제7도는 상기 로드과정의 동작을 나타낸 플로우챠트이다.
제7도는 나타낸 바와 같이, 로드과정이 시작될 때 로드포인터(37)에 기록된 어드레스가 단계 111에서 시스템프로그램의 제어하에 컨텍스트블록 베이스레지스터(38)로 전송된다.
단계 112에서는, 컨텍스트블록 베이스레지스터(38)로 전송된 어드레스에 대응하는 컨텍스트블록(21a)에 저장된 컨텍스트가 내부상태메모리(40)로 스웝-인된다. 따라서 레지스터(16)와 스택포인터(17) 및 프로그램카운터(18)로 초기상태로 설정된다.
단계 113에서는, 프로그램카운터(18)에 의해 지정된 첫번째 어드레스에 존재하는 명령이 처음에 실행되고, 나머지 명령들이 순서대로 실행된다. 즉, 응용 지원유니트(39)에 의해 지원되고 있는 동안 응용프로세서에서 응용프로그램(AP1)이 순서대로 실행되게 된다.
그 다음에, 응용프로세서(35)에서 응용프로그램(AP1)이 실행되고 있는 동작중에 예컨대 응용프로그램(AP2)의 실행으로 변경되는 동작을 설명한다. 이러한 변경은 어떤 이유로 인하여 변경동작이 내부적으로 요구되었을 때 수행된다. 따라서, 소정의 시스템프로그램이 실행되게 된다.
처음에, 시스템프로그램의 제어하에 스웝-아웃요구신호가 스웝-아웃라인(42)을 통해서 시스템프로세서(33)로부터 응용프로세서(35)로 전송된다. 이 스웝-아웃요구신호가 응용프로세서(35)에 수신되면, 응용프로세서(35)에서 실행되고 있는 컨텍스트를 컨텍스트블록(21a)에 저장하는 저장과정이 인터럽션처리로서 동작하게 된다.
제8도에 그 저장과정의 동작을 나타낸 플로우챠트이다.
제8도에 나타낸 바와 같이, 저장과정이 시작될 때 단계 121에서 시스템프로그램의 제어하에 응용프로그램(AP1)의 내용이 컨텍스트블록(21A)으로 전송된다. 컨텍스트블록(21a)은 컨텍스트블록 베이스레지스터(38)에 기록된 어드레스에 대응하는 특정 블록이다. 응용프로그램(AP1)의 내용은 그것이 실행중일때 컨텍스트가 필연적으로 중지되기 때문에 초기상태가 아닌 중지상태에 있게 된다. 따라서, 중지상태에서의 컨텍스트는 프로그램카운터(18)와 그 실행이 중지될 때 사용되는 것에 의해 지정된 값들과 동일하게 된다. 또, 이미 컨텍스트블록(21a)에 저장되어 있는 이전의 컨텍스트는 중지된 컨텍스트로 변경된다. 더욱이, 그 중지된 컨텍스트는 그것이 다시 내부상태메모리(40)로 전송될 때 실행된다.
단계 122에서는, 응용프로세서(35)에서의 동작이 중지된다.
단계 123에서는, 시스템프로그램의 제어하에 컨텍스트블록(21b)의 어드레스가 로드포인터(37)에 기록되고, 시스템프로그램의 제어하에 스웝-인요구신호가 스웝-인라인(41)을 통해서 시스템프로세서(33)로부터 응용프로세서(35)로 전송된다. 스웝-인요구신호가 응용프로세서(35)가 수신되면, 제7도를 참조하여 앞으로 설명한 로드와 마찬가지로 로드과정이 인터럽션처리로서 개시된다.
그 결과, 응용 지원유니트(39)에 의해 지원되고 있는 동안 응용프로세서(35)에서 응용프로그램(AP2)이 실행되게 된다.
마찬가지로, 제6도에 나타낸 바와 같이 응용프로그램(AP1,AP2,AP3)이 시스템프로그램의 실행에 의한 실행시간을 방해하지 않고 순차적으로 실행하게 된다.
따라서, 시스템프로세서(33)에서는 응용 지원유니트(39)에 의해 지원되고 있는 동안에 응용프로세서(35)에서 실행되는 응용프로그램의 실행과는 무관하게 시스템 지원유니트(33)에 의해 지원되고 있는 동안에 응용프로세서(35)에서 실행될 다음의 응용프로그램을 결정하기 위하여 시스템프로그램이 실행될 수 있다.
즉, 내부인터럽션이 발생할 때 응용프로세서(35)에서 실행되고 있는 응용프로그램의 실행을 중지하지 않고 응용프로세서(35)에서 실행되도록 다음의 응용프로그램의 결정을 위하여 시스템프로그램이 실행된다. 그리고 나서, 다음에 응용프로그램을 결정한 후에 프로그램을 대응하는 컨텍스트블록(21)에 스윕-아웃하고, 다음의 프로그램을 대응하는 컨텍스트블록(21)으로부터 내부상태메모리(40)로 스윕-인하기 위해, 응용프로세서(35)에서 실행되고 있는 응용프로그램의 실행을 중지한다.
스윕-아웃동작과 스윕-인동작 사이의 처리시간은 내부인터럽션이 발생한 후에 다음의 응용프로그램의 결정되기 까지의 처리시간보다 훨씬 짧다.
따라서, 시스템 지원유니트(34)가 응용 지원유니트(39)와 무관하게 동작하므로, 응용프로그램의 실행이 시스템프로그램의 실행에 의해 실제적으로 방해받지 않게 된다.
또, 응용프로그램의 총 실행시간을 크게 개선할 수 있고, 응용 지원유니트(39)가 시스템 지원유니트(34)에 의해 지원되고 있는 동안 시스템프로그램의 실행에 의해 방해받지 않고 항상 실제적으로 동작할 수 있기 때문에 응용 지원유니트(39)를 효율적으로 이용할 수 있게 된다.
더욱이, 응용 지원유니트(39)를 효율적으로 사용할 수 있기 때문에, 정보처리장치(31)의 동작량이 증가하여 시스템 지원유니트(34)를 효율적으로 사용할 수 있게 된다.
다음에는 제9도를 참조하여 본 발명의 첫번째 목적을 달성하기 위한 본 발명의 제1관점에 따른 제2실시예를 설명한다.
제9도는 제1관점의 제2실시예에 따른 정보처리장치의 블록도이다.
제9도에 나타낸 바와 같이, 정보처리장치(45)는 응용프로그램과 시스템을 저장하기 위한 메모리(46)와, 시스템 지원유니트(34)에 의해 지원되고 있는 동안 메모리(46)에 저장된 시스템프로그램을 실행하는 시스템프로세서(47), 메모리(46)에 저장된 응용프로그램을 실행하는 복수의 응용프로세서(48; 48a,48b,48c) 및 시스템프로세서(47)로부터 또는 시스템프로세서(47)로] 시스템프로그램을 전송하고 응용프로세서(48)로부터[또는 응용프로세서(48)로]응용프로그램을 전송하는 버스(49)를 포함하여 구성되어 있다.
상기 메모리(46)는, 종래의 정보처리장치(11)와 마찬가지로 응용프로그램의 내용과 동일한 컨텍스트를 저장하는 커텍스트블록(21; 21a,21b,21c,21d,21e)과, 시스템프로그램의 제어하에 대응하는 응용프로세서(48)에 컨텍스트블록(21)의 어드레스를 지정하는 복수의 로드포인터(50; 50a,50b,50c)로 구성되어 있다.
각 컨텍스트블록(21a,21b,21c,21d,21e)에는 대응히는 응용프로그램(AP1,AP2,AP3,AP4,AP5)이 저장된다. 또, 컨텍스트블록(21)의 어드레스는 로드포인터(50)에 저장되고, 각 로드포인터(50a,50b,50c)는 응용프로세서(48a,48b,48c)에 대응한다.
각 응용프로세서(48,48b,48c)는, 대응하는 로드포인터(50a,50b,50c)에 의해 어드레스가 지정된 후에 저장되고, 응용프로세서(48)에서 실행될 컨텍스트가 존재하는 컨텍스트블록(21)의 어드레스를 기록하는 컨텍스트블록 베이스레지스터(38; 38a,38b,38c)와, 응용프로그램의 실행을 지원하는 응용 지원유니트(39; 39a,39b,39c) 및, 종래의 정보처리장치(11)와 마찬가지로 레지스터(16; 16a,16b,16c), 스택포인터(17; 17a,17b,17c) 및 프로그램카운터(18; 18a,18b,18c)를 갖추고서 응용 지원유니트(39)에 의해 지원되고 있는 동안 컨텍스트블록 베이스레지스터(38)에 어드레스가 격납된 컨텍스트블록(21)에 저장된 컨텍스트를 실행하는 내부상태메모리(40; 40a,40b,40c)로 구성되어 있다.
시스템프로세서(47)와 각 응용프로세서(48a,48b,48c)는, 시스템프로세서(47)로부터 응용프로세서(48)와 스웝-인요구신호를 전송하는 스웝-인라인(51:51a,51b,51c)과, 시스템프로세서(33)로부터 응용프로세서(38)로 스웝-아웃요구신호를 전송하는 스웝-아웃라인(52)에 의해 접속되어 있다. 시스템프로그램의 제어하에 스웝-아웃요구신호가 응용프로세서(48)에 공급되면, 응용프로세서(48)에서 실행되고 있는 컨텍스트는 지정된 컨텍스트블록(21)으로 스웝-아웃된다. 한편, 시스템프로그램의 제어하에 스웝-인요구신호가 응용프로세서에 공급되면, 응용프로세서(48)에서 실행될 컨텍스트는, 예컨대 이전의 컨텍스트를 스웝-아웃한후에 로드포인터(50)에 의해 응용프로세서(48)에 지정된 컨텍스트블록(22)으로부터 응용프로세서로 스웝-인된다.
상기한 구성의 정보처리장치(45)에 있어서, 컨텍스트블록(21)에 저장된 응용프로그램(AP1,AP2,AP3,AP4,AP5)을 실행하는 동작을 설명한다.
처음에 구성의 정보처리장치(45)을 동작을 개시하면, 시스템 지원유니트(34)에 의해 지원되고 있는 동안 시스템프로세서(47)에서 소정의 시스템프로그램이 실행된다. 이때, 응용프로세서(47)에서 실행될 응용프로그램이 존재하지 않기 때문에, 응용프로세서(48)에서의 동작은 중단된다.
그후, 예컨대 시스템프로그램의 제어하에 응용프로세서(48a)에서 응용프로그램(AP1)이 실행되는 경우에, 개시상태로 설정되어 있는 응용프로그램(AP1)의 내용과 동일한 컨텍스트가 컨텍스트블록(21a)에 저장된다. 구체적으로는, 레지스터(16), 스택포인터(17) 및 프로그램카운터(18)를 초기화하기 위한 초기상태 또는 값이 저장된다.
그 다음에, 컨텍스트블록(21a)의 어드레스가 응용프로세서(48a)에서의 동작을 준비하는 로드포인터(50a)에 기록된다.
그후, 시스템프로그램의 제어하에 스웝-인요구신호가 스웝-인라인(51a)을 통해서 시스템프로세서(47)로부터 응용프로세서(48a)로 전송된다. 스웝-인요구신호가 응용프로세서(48a)에 수신되면, 컨텍스트블록(21a)에 저장된 컨텍스트를 컨텍스트블록 베이스레지스터(38a)로 로드하기 위한 로드과정이 제1실시예와 마찬가지로 인터럽션처리로서 동작하게 된다.
즉, 로드과정이 시작될 때 로드포인터(50a)에 기록된 어드레스가 시스템프로그램의 제어하에 컨텍스트블록 베이스레지스터(38a)로 전송된다. 그 다음에, 컨텍스트블록 베이스레지스터(38a)로 전송된 어드레스에 대응하는 컨텍스트블록(21a)에 저장된 컨텍스트는 내부상태메모리(40a)로 스웝-인된다. 따라서 레지스터(16)와 스택포인터(17) 및 프로그램카운터(18)는 초기상태로 설정된다.
프로그램카운터(18a)에 의해 지정된 첫번째 어드레스에 존재하는 명령이 실행되고, 다른 명령들이 순서대로 실행된다. 즉, 응용 지원유니트(47)에 의해 지원되고 있는 동안 응용프로세서(48a)에서 응용프로그램(AP1)이 순서대로 실행되게 된다.
마찬가지로, 다른 응용프로그램(AP2,AP3,AP4,AP5)이 응용프로세서(48a,48b)에서 동시에 설명한다.
다음에는 응용프로세서(48)에서 실행되고 있는 응용프로그램이 변경되는 동작을 설명한다.
일례로서, 응용프로세서(48b)에서 실행되고 있는 응용프로그램(AP2)이 앞으로 실행될 응용프로그램(AP5)으로 변경되는 동작을 설명한다.
이 변경은, 응용프로그램(AP2)을 응용프로그램(AP5)으로 변경하기 위한 요구가 시스템프로세서(47)에 공급되고 시스템프로세서(47)에서 시스템프로그램이 실행될 때 수행된다. 처음에, 시스템프로그램의 제어하에 스웝-아웃요구신호가 스웝-아웃라인(52b)을 통해서 시스템프로세서(47)로부터 응용프로세서(48b)로 전송된다. 스웝-아웃요구신호가 응용프로세서(48b)에 수신되면, 응용프로세서(48b)에서 실행중인 컨텍스트를 컨텍스트블록(21b)에 저장하는 저장과정이 제1실시예와 마찬가지로 인터럽션처리로서 동작하게 된다.
즉, 저장과정이 시작될 때 응용프로그램(AP2)의 내용은 시스템프로그램의 제어하에 컨텍스트블록 베이스레지스터(38b)에 기록된 어드레스에 대응하는 컨텍스트블록(21b)으로 전송된다. 응용프로그램(AP2)의 내용은 그것이 실행중일때 컨텍스트가 필연적으로 중지되기 때문에 초기상태가 아닌 중지 상태에 있게된다. 따라서, 중지상태에서의 컨텍스트는 프로그램카운터(18b)와 실행이 중지될 때 사용되는 것에 의해 지정된 값과 동일하게 된다. 또, 이미 컨텍스트블록(21a)에 저장되어 있는 이전의 컨텍스트는 중지된 컨텍스트로 변경된다. 그리하여 응용프로세서(48b)에서의 동작이 중지되게 된다.
그후, 컨텍스트블록(21e)의 어드레스는 시스템프로그램의 제어하에 로드포인터(37)에 기록되고, 스웝-인요구신호가 시스템프로그램의 제어하에 스웝-인라인(51b)를 통해서 시스템프로세서(47)로부터 응용프로세서(48b)로 전송된다. 스웝-인요구신호가 응용프로세서(48b)에 수신되면, 제7도를 참조하여 앞에서 설명한 로드와 마찬가지로 로드과정이 인터럽션처리로서 개시된다.
그 결과, 응용 지원유니트(39b)의해 지원되고 있는 동안 응용프로세서(48b)에 응용프로그램(AP5)이 실행되게 된다.
따라서, 각 응용프로세서(48)가 응용 지원유니트(39)를 공급하여 응용프로세서(48)가 독립적으로 동작하기 때문에, 다수의 응용프로그램이 독립적이면서 동시에 정보처리장치(45)에서 실행될 수 있게 된다.
더욱이, 시스템프로세서(47)가 응용 유니트(48)에서의 동작과 무관하게 시스템 지원유니트(34)에 의해 지원되고 있는 동안 동작할 수 있기 때문에, 응용프로세서(48)는 시스템프로세서(47)에서의 시스템프로그램의 실행에 의해 방해받지 않고 동작할 수 있다.
또, 응용 지원유니트(39)가 시스템 지원유니트(34)에 의해 지원되고 있는 동안 시스템프로그램의 실행에 의해 방해받지 않고 실제적으로 항상 동작할 수 있기 때문에, 응용프로그램의 총 실행시간을 크게 개선할 수 있다. 따라서, 응용 지원유니트(39)가 효율적으로 이용할 수 있게 된다.
더욱이, 응용 지원유니트(39)를 효율적으로 이용할 수 있기 때문에, 정보처리장치(45)의 동작량이 크게 증가하여 시스템 지원유니트(34)를 효율적으로 이용할 수 있게 된다.
다음에는 제10도 내지 제21도를 참조하여 본 발명의 제2목적을 달성하기 위한 제2관점에 따른 제1실시예를 설명한다.
제10도는 제2관점의 제1실시예에 따른 정보처리장치의 블록도이다.
제10도에 나타낸 바와 같이, 정보처리장치(55)는 내부인터럽션이 발생하지 않은 경우에는 응용프로그램군에 속하는 범용타스크를 실행하고, 내부인터럽션이 발생한 경우에는 내부인터럽션을 처리하는 메인프로세서(56)와; 외부인터럽션을 처리하기 위해 응용프로그램군에 속하는 외부인터럽션핸들러를 실행하여 외부인터럽션이 정보처리장치(55)의 외부로부터 공급된 경우에는 외부인터럽션의 발생을 통지하고, 외부인터럽션이 공급되지 않은 경우에는 모든 실행을 중지하는 인터럽션프로세서(57); 범용타스크와 외부인터럽션핸들러 등의 시스템프로그램과 응용프로그램, 메인프로세서(56) 및 인터럽션프로세서(57)에서 실행되는 응용프로그램을 저장하는 공통메모리(58) 및; 메인프로세서 (56)와 인터럽션프로세서(57)로부터 [또는 메인프로세서(56)와 인터럽션프로세서(57)로]시스템프로그램과 응용프로그램을 전송하는 버스(59)를 포함하여 구성되어 있다.
상기한 구성의 정보처리장치(55)에 있어서, 정보처리장치(55)에서의 동작을 제11도를 참조하여 설명한다.
제11도에 나타낸 바와 같이, 특징적인 동작으로서 외부인터럽션이 인터럽션프로세서(57)에 공급되지 않은 경우에는 범용타스크는 메인프로세서(56)에서 실행되고 인터럽션프로세서(57)에서의 실행은 중지된다.
외부인터럽션이 인터럽션프로세서(57)에 공급된 경우에는, 메모리(58)에 저장된 외부인터럽션핸들러가 인터럽션프로세서(57)로 전송되어 외부인터럽션핸들러의 실행이 인터럽션프로세서(57)에서 개시된다. 외부인터럽션핸들러의 실행이 종료된 경우에는, 인터럽션프로세서(57)는 다시 중지된다.
이 경우, 인터럽션프로세서(57)는 메인프로세서(57)에서의 동작에 상관없이 동작하게 된다. 따라서, 인터럽션프로세서(57)에서의 동작중에도 메인프로세서(57)에서의 동작은 계속되게 된다.
따라서, 외부인터럽션핸들러가 독립된 인터럽션프로세서(57)에서 실행되기 때문에, 외부인터럽션핸들러의 내용을 인터럽션프로세서(57)에 배열된 레지스터에 언제든지 저장하는 것이 가능하게 된다. 그러므로, 외부인터럽션핸들러를 실행하기 위하여 사용되는 레지스터에 관해서는, 외부인터럽션핸들러의 실행이 시작될 때 레지스터에 저장된 내용을 세이브할 필요가 없게 된다. 또, 외부인터럽션핸들러의 실행이 끝났을 때 세이브된 레지스터의 내용을 레지스터로 복귀시킬 필요도 없게 된다. 즉, "SAVE"명령을 외부인터럽션핸들러의 처음부분에 셋트할 필요가 없게 된다. 그리고, "RESTORE"명령을 외부인터럽션핸들러의 마지막 부분에 셋트할 필요도 없게 된다.
또, 외부인터럽션핸들러가 범용타스크의 실행과 동시에 실행되기 때문에, 외부인터럽션이 인터럽션프로세서(57)에 공급된다고 해도 범용타스크의 실행은 중단되지 않게 된다.
더욱이, 외부인터럽션핸들러가 메인프로세서(57)에서의 실행과 상관없이 실행되기 때문에, 우수한 기능을 가진 메인프로세서를 효율적으로 이용할 수 있게 된다.
따라서, 종래의 정보처리장치(31)에서의 결점을 모두 해결할 수 있으므로 본 발명의 제2목적이 달성된다.
그런데, 외부인터럽션이 인터럽션프로세서(57)에 공급되는 경우에는, 외부인터럽션을 처리하기 위한 동작이 간단하기 때문에 인터럽션프로세서(57)만을 동작시키는 것으로도 충분하다. 그러나, 특별한 외부인터럽션이 인터럽션프로세서(57)에 공급되는 경우에는 외부인터럽션핸들러를 이용하여 간단한 내용을 처리하는외에, 부동소숫점 산술유니트 등과 같은 복잡한 내용을 처리할 필요가 있는 경우가 있다.
이 경우, 정보처리장치(55)에 있어서는, 메인프로세서(56)에서 실행되는 범용타스크는 인터럽트되어야 하고 응용프로그램군에 속하는 인터럽션타스크는 그 복잡한 내용을 처리하기 위해 실행되어야 한다.
따라서, 상기한 복잡한 내용을 처리하기 위한 방법과 그 방법을 구현하기 위한 정보처리장치를 본 발명의 제2관점에 따른 제2실시예로서 제12도 내지 제14도를 참조하여 설명한다.
제12도는 본 발명의 제2관점의 제2실시예에 따른 정보처리장치의 블록도이다.
제12도에 나타낸 바와 같이, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치(61)는, 외부인터럽션이 공급되었을때 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구된 처리의 간단한 부분을 처리하고, 외부인터럽션이 공급되지 않았을 때 모든 실행을 중지하고 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 인터럽션프로세서(62)와; 인터럽션프로세서에서 실행되는 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크, 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 저장하고 인터럽션프로세서(62)에 의해 출력된 wake파라미터를 wake어드레스에 저장하는 공통메모리(63); 일정한 간격으로 타이머인터럽션신호를 발생하는 타이머(64); 타이머(64)로부터 타이머인터럽션신호가 공급되지 않았을 때 공통메모리(63)에 저장된 범용타스크를 실행하고, 타이머(64)로부터 타이머인터럽션신호가 공급되었을때 wake어드레스의 내용을 독출함으로써 wake파라미터가 공통메모리(63)에 배열된 wake어드레스에 저장되어 있는지의 여부를 판정하기 위해 공통메모리(63)에 저장된 시스템인터럽션핸들러를 실행하며, wake어드레스에 wake파라미터가 저장되어 있는 것으로 판정된 경우에는 공통메모리(63)에 저장된 인터럽션타스크의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 나머지 부분들을 처리하는 메인프로세서(65) 및; 공통메모리(63)와 메인프로세서(65) 및 인터럽션프로세서(62) 사이에서 시스템프로그램과 응용프로그램을 전송하는 버스(66)를 포함하여 구성되어 있다.
상기한 구성에 있어어, 정보처리장치(61)에서의 동작을 설명하면 다음과 같다.
제13도는 시스템인터럽션핸들러를 실행하는 과정을 나타낸 타이밍챠트이다.
제13도에 나타낸 바와 같이, 외부인터럽션이 인터럽션프로세서(62)에 공급되지 않은 경우에는, 범용타스크가 메인프로세서(65)에서 처음에 실행되게 된다. 이 경우, 타이머부(64)로부터 메인프로세서(65)로 타이머인터럽션신호가 일정한 간격으로 공급된다. 따라서, 타이머인터럽션신호가 메인프로세서(65)에 공급되는 각 시각에 범용타스크의 실행이 인터럽트되어 시스템인터럽션핸들러가 시각 T0에 메인프로세서(65)에서 실행되게 된다.
시스템인터럽션핸들러가 실행될 때, 시스템인터럽션핸들러를 실행하기 위해 소정의 과정이 프로그램되어 있는 소정의 프로그램에 따라 메인프로세서(65)가 동작하게 된다.
제14도는 시스템인터럽션핸들러를 실행하는 과정을 나탄낸 플로우챠트이다.
제14도에 나타낸 바와 같이, 시스템인터럽션핸들러가 메인프로세서(65)에서 실행될 때, wake어드레스에 저장된 내용은 단계 131에서 메인프로세서(65)에 의해 독출된다. 그후, 그 내용이 처음에 "0"으로 설정되고 외부인터럽션이 인터럽션프로세서(62)에 공급되지 않았기 때문에, 그 내용이 "0"이 되고, 처리는 단계 134로 이어지게 된다.
단계 134에서는, 메인프로세서(65)에서 실행될 응용프로그램에서의 다음의 타스크를 결정하기 위한 시스템호출의 하나인 "RET INT"명령이 소정의 스케줄에 따라 실행되고, 그 과정이 시각 T1에서 종료하게 된다.
메인프로세서(65)에 있어서는, 범용실시간동작시스템이 동작한다. 그러므로, "RET INT"명령이 범용동작시스템에 통보되어 실행하게 된다.
그 동작시스템에 관한 상세한 설명은 본 발명에서 중요한 사항이 아니므로 생략하기로 한다. 동작시스템에 관한 상세한 설명은 레퍼런스(ITRON specifications ITRON2 Ver. 2. 02. 00. 00" published by TRON corporation of corporate juridical person)에 기재되어 있다.
상기한 동작중에 인터럽션프로세서(62)는 동작하지 않는다.
한편, 외부인터렵션이 인터럽션프로세서(62)에 공급된 경우에는, 시각 T2에서 외부인터럽션핸들러의 실행이 인터럽션프로세서(62)에서 개시된다. 외부 인터럽션핸들러의 실행에 의해, 외부인터럽션핸들러에 프로그램된 "WAKE"명령이 시각 T3에서 실행되어 wake어드레스에 저장된 내용이 "0"으로부터 "1"로 변경된다. 즉, 외부인터럽션의 존재를 지정하는 정보가 공통메모리(63)에 저장된다. 그후, 인터럽션에 의해 요구된 처리의 간단한 부분이 외부인터럽션핸들러에 의해 실행될 때 인터럽션프로세서(62)에서의 동작이 중지되어 외부인터럽션핸들러의 실행이 시각 T4에서 끝나게 된다.
상기한 바와 같이, 인터럽션프로세서(62)는 메인프로세서(65)에서의 동작과 무관하게 동작과 무관하게 동작하게 된다. 더욱이, 인터럽션프로세서(62)에서의 동작중에도 메인프로세서(65)에서의 동작은 계속되게 된다.
타이머인터럽션신호가 시각 T5에서 타이머(64)로부터 메인프로세서(65)로 공급되면, 메인프로세서(65)에서의 범용타스크의 실행이 중지되어 시스템인터럽션핸들러가 실행된다. 시스템인터럽션핸들러가 실행된 경우, 메인프로세서(65)는 제14도에 나타낸 바와 같이 소정의 과정에 따라 동작하게 된다.
단계 131에서는, wake어드레스에 저장된 내용이 메인프로세서(65)에 의해 독출된다. 그 내용이 인터럽션프로세서(62)로부터 공급된 wake파라미터에 의해 "1"로 변경되기 때문에, 처리는 단계 132로 이어지게 된다.
단계 132에서는, 인터럽션타스크를 실행하는 시스템호출의 하나인 "statsk"명령이 시각 T6에서 실행된다. 그 결과, 범용타스크가 인터럽트된 상태에서 격납될 뿐만 아니라 인터럽션타스크가 실시간동작시스템에서의 인터럽션타스크의 실행을 고려하기 위한 메인프로세서(65)에 격납되게 된다. 단계 133에서는, wake어드레스에 저장된 내용이 "0"으로 복귀되고, 단계 134로 어어지게 된다.
단게 134에서는, "RET INT"명령이 실행되어 모든 격납된 타스크에서의 우선순위를 서로 비교하게 된다. 타스크들을 비교한 후에, 제1우선순위가 주어진 타스크가 선택된다. 이 경우, 격납된 타스크들은 범용타스크와 인터럽션타스크이고 본 실시예에서는 예컨데 인터럽션타스크에 제1우선순위가 주어져 있기 때문에, 인터럽션타스크가 선택된다.
우선순위를 지정하는 방법은 각 실시간동작시스템마다 다르고, 그 방법은 중요하지 않으므로, 그 방법에 관한 상세한 설명은 생략하기로 한다.
제1우선순위가 주어진 인터럽션타스크가 선택된 후에, 시스템인터럽션핸들러의 실행이 각각 T7에서 끝나게 된다. 그리고 나서, 범용타스크의 실행이 인터럽트된 상태에 유지되고 있는 동안에 메인프로세서(65)에서 외부인터럽션에 의해 요구된 처리의 나머지 부분들을 처리하기 위해 인터럽션타스크가 실행되게 된다.
메인프로세서(65)에서의 인터럽션타스크 실행중에 타이머인터럽션신호가 타이머(64)로부터 메인프로세서(65)로 공급되는 경우에는, 제14도에 나타낸 바와 같이 인터럽션타스크의 실행이 시각 T8에서 중지되고, 시스템인터럽션핸들러가 실행되고 시각 T9에서 끝나게 된다.
시스템인터럽션핸들러의 실행이 끝난 후에는 인터럽션타스크가 다시 실행된다.
인터럽션타스크의 마지막 부분에서는 인터럽션타스크의 등록을 삭제하도록 동작시스템을 지시하기 위한 시스템호출의 하나인 "est tsk"명령이 프로그램된다. 따라서, 인터럽션타스크의 실행이 "ext tsk"명령의 실행에 의해 종료된 경우에는, 인터럽션타스크의 등록이 실제동작시스템에 의해 삭제되게 된다. 그후, 인터럽션된 범용타스크의 실행이 시각 T10에서 재개되게 된다.
따라서, 외부인터럽션이 간단한 내용만을 포함하는 경우에는, 메인프로세서(65)에서 시스템인터럽션핸들러를 실행하지 않고 인터럽션프로세서(62)에서 외부인터럽션핸들러를 실행하게 된다. 즉, 인터럽션프로세서(62)는 메인프로세서(65)와 무관하게 동작하게 된다. 한편, 외부인터럽션이 간단한 내용뿐만 아니라 복잡한 내용도 포함하기 때문에 정보처리장치(61)에서 복잡한 내용이 처리되어야만 하는 경우에는, 인터럽션프로세서(62)에서 외부인터럽션핸들러를 실행함으로써 간단한 내용을 먼저 처리하고, 그 다음에 메인프로세서에서 범용타스크의 실행이 인터럽트된 후에 메인프로세서(65)에서 인터럽션타스크를 실행함으로써 복잡한 내용을 처리할 수 있게 된다.
또한, 인터럽션프로세서(62)를 간단한 구성으로 만들 수 있다. 그러므로, 인터럽션프로세서(62)의 회로영역을 작게할 수 있고, 인터럽션프로세서(62)를 구성하는데 드는 비용도 절감할 수 있다.
다음에는 제15도와 제16도를 참조하여 본 발명에 따른 제2관점의 제3실시예를 설명한다.
본 실시예에서는, 외부인터럽션이 인터럽션프로세서(64)에 공급되었다는 조건하에서, 특정의 시스템호출(SC)이 메인프로세서(65)에서 동작되는 동작시스템에 실행된다.
제15도는 본 발명의 제 2관점의 제3실시예에 따른 정보처리장치의 블록도이다.
제15도에 나타낸 바와 같이, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급된 외부인터럽션을 처리함과 더불어 소정의 시스템호출을 실행하는 정보처리장치(71)는, 외부인터럽션핸들러의 실행에 의해 외부인터럽션을 처리하고, 외부인터럽션의 내용에 따라 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행함으로써 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터를 출력하며, 외부인터럽션이 공급되지 않은 경우에 모든 실행을 중지하는 인터럽션프로세서(72)와; 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크 및 인터럽션프로세서(72)에서 실행되는 외부인터럽션핸들러 등의 응용프로그램을 저장하고, 인터럽션프로세서(72)에 의해 출력되는 시스템호출파라미터를 시스템호출어드레스에 저장하는 공통메모리(73); 일정한 간격으로 타이머인터럽션신호를 발생하는 타이머부(74); 타이머인터럽션신호가 타이머부(74)로부터 공급되지 않은 경우에는 공통메모리(73)에 저장된 범용타스크를 실행하고, 타이머인터럽션신호가 타이머부(74)로부터 공급된 경우에는 공통메모리(73)에 저장된 시스템인터럽션핸들러를 실행하며, 시스템인터럽션핸들러의 실행중에 시스템호출어드레스에 저장된 시스템호출파라미터의 내용을 독출함으로써 시스템호출의 형태가 판정되고, 이 시스템호출의 형태에 대응하여 시스템호출을 실행하는 메인프로세서(75) 및; 시스템인터럽션핸들러와 범용타스크를 메인프로세서(75)로부터 메인프로세서(75)로]전송하고, 외부인터럽션핸들러를 인터럽션프로세서(72)로부터[인터럽션프로세서(72)로] 전송하는 버스(76)를 포함하여 구성되어 있다.
상기한 구성에 있어서, 정보처리장치(71)에서의 동작에 대해 설명하면 다음과 같다.
제16도는 본 발명의 제2관점의 제3실시예에 따른 시스템인터럽션핸들러를 실행하는 과정을 나타낸 타이밍챠트이다.
제16도에 나타난 바와 같이, 외부인터럽션이 인터럽션프로세서(72)에 공급되지 않은 경우에는, 범용타스크가 메인프로세서(75)에서 처음에 실행된다. 이 경우, 타이머인터럽션신호가 일정한 간격으로 타이머부(74)로부터 메인프로세서(75)로 공급된다. 따라서, 타이머인터럽션신호가 메인프로세서(75)에 공급되는 각 시각에 범용타스크의 실행이 인터럽트되어 시스템인터럽션핸들러가 시각 T0에서 메인프로세서에서 실행되게 된다.
시스템인터럽션핸들러가 실행되면, 시스템인터럽션핸들러를 실행하도록 소정의 과정이 프로그램되어 있는 소정의 프로그램에 따라 메인프로세서(75)가 동작한다.
제17도는 시스템인터럽션핸들러를 실행하기 위한 처리과정을 도시해 놓은 플로우챠트이다.
제17에 나타낸 바와 같이, 메인프로세서(75)에서 시스템인터럽션핸들러가 실행되는 경우에는, 단계 141에서 메인프로세서(75)에 의해 공통메모리(73)의 시스템호출어드레스에 저장된 내용이 독출된다. 그후, 그 내용이 초기에 "0"으로 설정되고 외부인터럽션이 인터럽션프로세서(72)에 공급되지 않기 때문에 그 내용은 아직 "0"으로 유지되고, 처리는 144로 이행하게 된다.
단계 144에서는, 메인프로세서(75)에서 실행될 응용프로그램에서 다음의 타스크를 결정하기 위한 시스템호출중의 하나인 "RET INT"명령이 소정의 스케줄에 따라 실행되고, 이 처리는 시각 T1에서 종료하게 된다. 상기한 동작중에는 인터럽션프로세서는 동작하지 않는다.
한편, 외부인터럽션이 인터럽션프로세서(72)에 공급되는 경우에는, 시각 T2에서 외부인터럽션핸들러의 실행이 인터럽션프로세서(72)에서 개시된다. 이 외부인터럽션핸들러의 실행에 의해 이 외부인터럽션핸들러에 프로그램된 "SCAL"명령이 T3에서 실행되어 특정의 시스템호출파라미터를 SCAL어드레스에 저장한다.
이 시스템호출파라미터 내용은 외부인터럽션의 내용에 따라 결정된다. 예컨대, 시스템호출파라미터는 "1","2",…, 또는 "n"이다. 이 시스템호출파라미터의 각 내용은 이후에 설명하는 바와 같이 특정 형태의 시스템호출의 실행을 지정한다.
그후, 외부인터럽션핸들러의 실행이 시각 T4에서 종료한 때에 인터럽션프로세서(72)에서의 동작이 중지된다.
상술한 바와 같이, 인터럽션프로세서(72)는 메인프로세서(75)의 동작과 무관하게 동작한다. 또, 메인프로세서(75)의 동작은 인터럽션프로세서(75)의 동작중에도 계속되게 된다.
시각 T5에서 타이머인터럽션신호가 타이머부(74)로부터 메인프로세서(75)로 공급되면, 메인프로세서(75)에서의 범용타스크의 실행이 인터럽트되고 시스템인터럽션핸들러가 실행된다. 이 시스템인터럽션핸들러가 실행되면, 메인프로세서는 제17도에 나타낸 바와 같이 소정의 과정에 따라 동작하게 된다.
단계 141에서는, 공통메모리(73)에 배열된 시스템호출어드레스에서의 내용이 독출된다. 이 경우, 그 내용은 "0"이고 특정의 시스템호출파라미터가 저장되어 있기 때문에, 처리는 단계 142로 이행하게 된다.
단계 142에서는, 공통메모리(73)의 시스템호출어드레스에 저장된 특정의 시스템호출파라미터의 형태에 따라 특정의 시스템호츨(SC)의 실행을 지시하기 위한 실행명령이 실행된다. 그러므로, 특정의 시스템호출(SC)이 메인프로세서(75)에서 동작되는 운영시스템에서 실행되게 된다.
단계 143에서는, 특정의 시스템호출파라미터가 소거되고 그 시스템호출어드레스에 저장된 내용이 "0"으로 복귀하게 된다.
단계 144에서는, "RET IN"명령이 실행되고, 그 처리가 시각 T6에서 종료하게 된다. 그후, 인터럽트된 상태에서 범용타스크의 실행이 재개된다.
따라서, 외부인터럽션이 간단한 내용만을 포함하고 있는 경우에는, 메인프로세서(75)에서 시스템인터럽션핸들러를 실행하지 않고 인터럽션프로세서(72)에서 외부인터럽션핸들러를 실행하게 된다. 즉, 인터럽션프로세서(72)는 메인프로세서(75)와 무관하게 동작하게 된다. 한편, 특정의 시스템호출(SC)이 메인프로세서(75)에서 동작되는 운영시스템에서 실행되어야 하는 경우에는, 메인프로세서(75)에서의 범용타스크의 실행이 인터럽트된 후에 메인프로세서(75)에서 시스템인터럽트핸들러를 실행함으로써 특정의 시스템호출(SC)을 실행할 수 있다.
일반적으로 메인프로세서는 매년 복잡화되고 있다. 한편, 외부인터럽션핸들러의 실행은 인터럽션프로세서(72)에서 용이하게 수행된다. 그러므로, 인터럽션핸들러(72)를 간단한 구성으로 만들 수 있게 되어, 인터럽션프로세서(72)의 회로 영역을 작게할 수 있고, 그 제조비용을 절감할 수 있게 된다.
다음에는 제18도를 참조하여 본 발명의 제2관점에 따른 제4실시예를 설명한다.
제18도는 본 발명의 제2관점에 따른 제4실시예의 정보처리장치를 도시해 놓은 블록도이다.
제18도에 도시된 바와 같이, 정보처리장치(81)는 복수의 인터럽션프로세서(82;82a,82b,82c,82d)와, 공통메모리(83), 타이머부(74), 메인프로세서(84) 및, 버스(76)를 포함하여 구성되어 있다.
각 인터럽션프로세서(82;82a,82b,82c 또는 82d)에 있어서는, 제3실시예와 마찬가지로, 대응하는 외부인터럽션(EI1,EI2,EI3 또는 EI4)은 대응하는 외부인터럽션핸들러(EIH1,EIH2,EIH3또는 EIH4)의 실행에 의해 처리되고, 대응하는 시스템호출파라미터(SCP1,SCP2,SCP3 또는 SCP4)는 외부인터럽션의 내용에 따라 외부인터럽션핸들러에 프로그램된 대응하는 "SCAL"명령을 실행함으로써 대응하는 소정의 시스템호출(SC1,SC2,SC3 또는 SC4)의 실행을 요구하기 위한 출력이다. 더욱이, 각 인터럽션프로세서(82)는 외부인터럽션이 공급되지 않을 때 모든 실행을 중지한다.
공통메모리(83)에는 시스템인터럽션핸들러 등의 시스템프로그램과 범용타스크 등의 응용프로그램 및 인터럽션프로세서(82)에서 실행되는 외부인터럽션핸들러가 저장된다. 또, 복수의 시스템호출어드레스는 인터럽션프로세서(82)에 의해 출력되는 대응하는 시스템호출파라미터를 저장하기 위해 공통메모리(83)에 배열된다.
메인프로세서(84)에 있어서는, 타이머부(74)로부터 타이머인터럽션신호가 공급되지 않은 경우에는 공통메모리(83)에 저장된 범용타스크가 실행되고, 타이머부(74)로부터 타이머인터럽션신호가 공급되는 경우에는 공통메모리(73)에 저장된 시스템인터럽션핸들러가 실행된다.
시스템호출의 각 형태는 시스템인터럽션핸들러의 실행중에 대응하는 시스템호출어드레스에 저장된 대응하는 시스템호출파라미터를 독출함으로써 판정되고, 각 시스템호출은 시스템호출의 형태에 따라 시스템호출어드레스에 기록된 순서로 실행된다.
상기한 구성에 있어서, 각 외부인터럽셥은 상술한 제3실시예와 마찬가지로 다른 인터럽션프로세서(82)와 무관하게 각 인터럽션프로세서(82)에서 처리된다. 그후, 각 시스템호출이 소정의 순서에 따라 메인프로세서(84)에서 실행된다.
따라서, 각 인터럽션프로세서(82)는 다른 인터럽션프로세서(82)와 무관하게 동작하기 때문에, 인터럽션프로세서(82)는 다른 외부인터럽션에 의해 방해받지 않고 빠르게 동작할 수 있게 된다.
각 외부인터럽션은 "WAKE"명령을 포함하고, 인터럽션프로세서에 의해 출력되는 각 wake파라미터는 제2실시예와 마찬가지로 공통메모리에 배열된 대응하는 wake어드레스에 공급된다. 이 경우, 외부인터럽션에 의해 요구되는 처리의 나머지 부분이 인터럽션타스크의 실행에 의해 처리된다.
상술한 바와 같이 제4실시예에 있어서는, 타이머인터럽션신호가 시스템인터럽션핸들러를 실행하기 위한 메인프로세서(65,75 또는 84)에 공급되어 인터럽션프로세서(62,72 또는 82)와 메인프로세서(65,75 또는 84)사이의 통신이 수행된다. 그러므로, 외부인터럽션이 인터럽션프로세서에 미리 공급되어 있더라도 타이머인터럽션신호가 메인프로세서에 공급될 때까지 시스템인터럽션핸들러의 실행이 지연된다는 결점이 있다. 즉, 이 큰 지연시간은 타이머인터럽션신호의 발생 사이의 시간간격이다.
상기한 결점을 해결하기 위한 본 발명의 제2관점에 따른 제5실시예를 제19도 및 제20도를 참조를 설명한다.
제19도는 본 발명의 제2관점에 따른 제5실시예의 정보처리장치를 도시해 놓은 블록도이다.
제19도에 도시된 바와 같이, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하기 위한 정보처리장치는, 외부인터션이 공급된 경우에는 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake 파라미터를 출력하는 한편, 외부인터럽션이 공급되지 않은 경우에는 모든 실행을 중지하는 인터럽션프로세서(87)와; 시스템인터럽션핸들러 등의 시스템프로그램과 범용타스크 등의 응용프로그램, 인터럽션타스크 및 인터럽션프로세서(87)에서 실행되는 외부인터럽션핸들러를 저장하는 공통메모리(88); 초기에 "1"로 셋트되는 지연인터럽션레지스터를 갖추고, 이 지연인터럽션레지스터에 격납된 내용이 "1"인 경우에는 상기 공통메모리(88)에 저장된 범용타스크를 실행하는 한편, 상기 인터럽션프로세서(87)에서의 "WAKE"명령의 실행에 의해 상기 지연인터럽션레지스터에 격납된 내용이 "0"으로 변경된 경우에는 상기 공통메모리(88)에 저장된 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 상기 공통메모리(88)에 저장된 인터럽션타스크의 실행에 의해 처리된 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 메인프로세서(89) 및; 공통메모리(88)와 메인프로세서(89) 및 인터럽션프로세서(87) 사이에서 시스템프로그램 및 응용 프로그램을 전송하는 버스(90)를 포함하는 구성되어 있다.
상기한 구성으로 된 정보처리장치의 동작을 제20도 참조하여 설명하면 다음과 같다.
제20도는 시스템인터럽션핸들의 처리동작을 도시해 놓은 타이밍챠트이다.
제20도에 나타낸 바와 같이, 외부인터럽션이 인터럽션프로세서(87)에 공급되지 않은 경우에는 메인프로세서(89)에서는 초기에 범용타스크가 실행된다. 또, 이러한 동작중에는 인터럽션프로세서(62)는 동작하지 않는다.
외부인터럽션이 인터럽션프로세서(87)에 공급되면, 시각 T0에서 외부인터럽션핸들러의 실행이 인터럽션프로세서(87)에서 개시된다. 이 외부인터럽션핸들러의 실행에 의해 외부인터럽션핸들러에 프로그램된 "WAKE"명령이 시각 T1에서 실행되어 메인프로세서(89)에 배열된 지연인터럽션레지스터에 격납된 내용이 "1"에서 "0"으로 변경된다. 즉, 외부인터럽션의 존재를 저장하는 정보가 메인프로세서(89)로 전송된다.
그후, 메인프로세서프로세서(87)에 있어서는, 외부인터럽션에 의해 요구되는 처리의 간단한 부분이 외부인터럽션핸들러에 의해 실행될 때 그 동작이 중지되고, 외부인터럽션핸들러의 실행은 시각 T2에서 종료된다.
상술한 바와 같이, 인터럽션프로세서(87)는 메인프로세서(89)에서의 동작과 무관하게 동작하게 된다. 또, 메인프로세서(89)의 동작은 인터럽션프로세서(87)의 동작중에 계속되게 된다.
한편, 시각 T1에서는 지연인터럽션레지스터의 내용이 "0"으로 변경되면, 메인프로세서(89)에서의 범용타스크의 실행이 인터럽트되어 시스템인터럽션핸들러가 실행된다.
지연인터럽션기술은 본 발명에 있어서 중요한 사항이 아니기 때문에 그 상세한 설명을 생략한다. 이 지연인터럽션기술에 관한 상세한 설명은 레퍼런스(Specification of the Chip Based on the TRON Architecture Ver. 1.00..00..00" published by tron corporation of corporate juridical person)에 기술되어 있다.
시스템인터럽션핸들러가 실행되면, 메인프로세서(89)는 제21도에 나타낸 바와 같이 소정의 과정에 따라 동작하게 된다.
제21도는 시스템인터럽션핸들러를 실행하기 위한 처리를 도시해 놓은 플로우챠트이다.
제21도에 나타낸 바와 같이, 단계 151에서 지연인터럽션레지스터에 저장된 내용이 메인프로세서(89)에 독출된다. 이 내용은 인터럽션프로세서(87)에서 실행되는 "WAKE"명령에 의해 "1로"변경되기 때문에, 처리는 단계 152로 이행하게 된다.
단계 152에서는, 인터럽션타스크를 실행하기 위한 시스템호출중의 하나인 "STA TSK"명령이 실행된다.
그 결과, 범용타스크가 인터럽트된 상태로 격납되고, 또 실시간동작시스템에서의 인터럽션타스크의 실행을 고려하기 위해 인터럽션타스크가 메인프로세서(89)에 격납된다.
단계 153에서는, 지연인터럽션레지스터에 저장된 내용이 "1"로 복귀되고, 처리는 단계 154로 이행하게 된다.
단계 154에서는, 본 발명의 제2관점에 따른 제2실시예와 마찬가지로, 소정의 스케줄에 따라 "RET INT"명령이 실행되어 모든 격납된 타스크에서의 우선순위를 서로 비교하게 된다. 타스크를 비교한 후에 제1우선순위가 주어지 타스크가 선택된다. 이 경우, 격납된 타스크는 범용타스크와 인터럽션타스크이고, 본실시예에서는, 예컨대 인터럽션타스크에 제 1우선순위가 주어지기 때문에 인터럽션타스크가 선택된다.
제1우선순위가 주어진 인터럽션타스크가 선택된 후, 시각 T3에서 시스템인터럽션핸들러의 실행이 종료된다. 그후, 범용타스크의 실행이 인터럽트된 상태에 유지되어 있는 동안 외부, 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 처리하기 위해 메인프로세서(89)에서 인터럽션작업이 실행된다.
인터럽션타스크의 마지막 부분에서는 인터럽션타스크의 등록을 삭제하도록 운영시스템을 지시하기 위한 시스템호출중의 하나인 "EXT TSK"가 프로그램된다. 그러므로, 인터럽션 타스크의 실행이 "EXT TSK"명령의 실행에 의해 종료되면 실제동작시스템(real operating system)에 의해 인터럽션타스크의 등록이 삭제된다. 그후, 시각 T4에서 인터럽트된 범용타스크의 실행이 재개된다.
따라서, 인터럽션프로세서의 크기가 작어라도 상기 제2관점의 제2실시예와 마찬가지로 외부인터럽션을 효율적으로 처리할 수 있게 된다.
더욱이, 외부인터럽션이 인터럽션프로세서(87)에 공급되어 있기 때문에 인터럽션타스크를 실행하기 위한 요구가 발생한 경우에는, 그 요구는 메인프로세서(89)에 빠르게 전송되게 된다. 즉 인터럽션타스크가 빠르게 실행되어 그 외부인터럽션에 의해 요구된 동작의 나머지 부분을 처리할 수 있게 된다.
또한, 제2관점의 제4실시예와 마찬가지로 정보처리장치는 복수의 인터럽션프로세서를 갖추면 좋다.
상술한 바와 같이, 제5실시예에 있어서는, 인터럽션프로세서와 메인프로세서 등의 복수의 프로세서가 동일한 버스에 접속되는 한편, 프로세서는 독립적으로 동작하게 된다. 따라서, 버스로 전송되는 데이터 및 명령이 충돌하게 된다. 그 결과, 프로세서의 동작이 다른 프로세서의 동작에 의해 방해되는 문제가 있다.
상술한 문제를 해결하기 위한 본 발명의 제2관점에 따른 제6실시예를 제22도를 참조하여 설명한다.
제22도는 제2관점의 제6실시예에 따른 정보처리장치를 도시해 놓은 블록도이다.
제22도에 도시된 바와 같이, 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치는, 외부인터럽션이 공급되는 경우에는 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 상기 외부인터럽션핸들러에 프로그램된 "WAKE" 명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 한편, 외부인터럽션이 공급되지 않는 경우에는 모든 처리를 중지하는 인터럽션프로세서(92)와; 인터럽션프로세서(92)에서 실행된 외부인터럽션핸들러를 저장하는 로컬메모리(93); 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크 및 인터럽션타스크 등의 응용프로그램을 저장하는 공통메모리(94); 초기에 "1"로 셋트되는 지연인터럽션레지스터를 갖춘 메인프로세서(89) 및; 버스(90)를 포함하여 구성되어 있다.
상기한 구성에 있어서, 외부인터럽션이 인터럽션프로세서(92)에 공급되지 않는 경우에는 초기에 메인프로세서(89)에서 범용타스크가 실행된다. 이러한 동작중에는 인터럽션프로세서(92)는 동작하지 않는다.
상기 인터럽션프로세서(92)에 외부인터럽션이 공급되면, 버스(90)를 통과하지 않고 로컬메모리(93)로부터 인터럽션프로세서(92)에 외부인터럽션핸들러가 독출된다. 그후, 외부인터럽션핸들러의 실행이 인터럽션프로세서(92)에서 개시된다. 이 외부인터럽션핸들러의 실행에 의해 외부인터럽션 핸들러에 프로그램된 "WAKE"명령이 실행됨과 더불어, 상술한 제5실시예에서의 정보처리장치(86)와 마찬가지로 소정의 처리가 실행된다.
외부인터럽션핸들러의 실행이 종료되면, 그 외부인터럽션핸들러는 버스(90)를 통과하지 않고 로컬메로리(93)에 기록된다.
일반적으로, 외부인터럽션핸들러의 크기는 작고, 소정의 데이터는 외부인터럽션핸들러에 억세스된다. 그러므로, 외부인터럽션핸들러는 크기가 작은 로컬메모리(93)에 저장될 수 있고, 외부인터럽션에 의해 요구된 동작의 간단한 부분만이 외부인터럽션핸들러에의해 처리될 수 있게 된다.
따라서, 외부인터럽션핸들러는 인터럽션프로세서(92)에 독출되어 버스(90)를 통과하지 않고 로컬메모리(93)에 기록되기 때문에, 버스(90)의 사용주기를 감소시킬 수 있다. 즉, 버스(90)로 전송되는 데이터 및 명령이 충돌하지 않게 된다. 그 결과, 메인프로세서(89) 및 인터럽션프로세서(92)의 동작이 방해되지 않게 된다.
또한 외부인터럽션핸들러에 의해 억세스되는 스택영역 및 데이터영역은 로컬메모리(93)에 배열하는 것이 바람직하다.
더욱이, 정보처리장치(91)는 상술한 제2관점의 제4실시예와 마찬가지로 복수의 인터럽션프로세서를 갖추면 좋다.
더욱이, 상기 실시예를 모두 결합한 정보처리장치도 이용가능하다.
또한, 본 발명은 상기 실시예에 한정되지 않고, 본 발명의 기술적 요지를 벗어나지 않는 범위내에서 여러 가지로 변형하여 실시할 수 있다.
[발명의 효과]
이상 설명한 바와 같이 본 발명에 의하면, 자원유니트의 동작효율을 향상시킴과 더불어, 메인프로세서에서의 고도한 기능을 효율적으로 이용할 수 있는 정보처리장치 및 이를 이용한 정보처리방법을 제공할 수 있게 된다.

Claims (18)

  1. 시스템프로그램에 제어하에 응요프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 인터럽션처리수단에서 실행하는 시스템인터럽션핸들러 등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간다한 부분을 처리함과 더불어, 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 상기 메모리수단에 저장된 인터럽션타스크의 실행을 요구하기 위한 wake 파라미터를 출력하는 인터럽션처리수단, 상기 인터럽션처리수단에 의해 출력되는 wake 파라미터를 저장하기 위한 wake 어드레스, 일정한 간격으로 타이머인터럽션신호를 발생하는 타이머수단 및 상기 타이머수단으로부터 타이머인터럽션신호가 공급되지 않는 경우에는 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되는 경우에는 상기 wake어드레스의 내용을 독출함으로써 상기 wake파라미터가 wake어드레스에 저장되어 있는지의 여부를 판정하기 위해 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 상기 wake파라미터가 상기 wake어드레스에 저장되어 있는 것으로 판정된 경우에는 상기 메모리수단에 저장된 인터럽션타스크의 실행에 의해 외부인터럽션에 의해 요구되는 처리 나머지 부분을 처리하는 메인프로세스수단을 구비하여 구성된 것을 특징으로 하는 정보처리장치.
  2. 제1항에 있어서, 상기 인터럽션처리수단은, 각각이 독립적으로 외부인터럽션를 처리함과 더불어 독립적으로 상기 메모리수단에 파라미터를 출력하는 복수의 인터럽션프로세서로 구성되고, 상기 메모리수단은, 각각이 하나의 파라미터에 대응하며, 상기 인터럽션프로세서로부터 공급되는 파라미터를 저장하기 위한 복수의 어드레스를 갖추고 있는 것을 특징으로 하는 정보처리장치.
  3. 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로 공급되는 외부인터럽션을 처리함과 더불어, 소정의 시스템호출을 실행하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과 범용타스크 및 외부인터럽션핸들러등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션을 처리함과 더불어, 외부인터럽션의 내용에 따라 상기 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행함으로써 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터를 출력하는 인터럽션처리수단, 상기 인터럽션처리수단만에 위해 출력되는 시스템호출파라미터를 저장하기 위한 시스템호출어드레스, 일정간 간격으로 타이머인터럽션신호를 발생하는 타이머수단 및, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되지 않는 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 타이머수단으로부터 타이머인터럽션신호가 공급되는 경우에는 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 시스템인터럽션핸들러의 실행중에 시스템호출어드레스에 저장된 시스템호출파라미터의 내용을 독출함으로써 시스템호출의 형태를 판정함과 더불어 그 시스템호출의 형태에 따라 시스템호출을 실행하는 메모리프로세스수단을 구비하여 구성된 것을 특징으로 하는 정보처리장치.
  4. 제3항에 있어서, 상기 인터럽션처리수단은, 각각이 독립적으로 외부인터럽션을 처리함과 더불어 독립적으로 상기 메모리수단에 파라미터를 출력하는 복수의 인터럽션프로세서로 구성되고, 상기 메모리수단은, 각각이 하나의 파라미터에 대응하며, 상기 인터럽션프로세서로부터 공급되는 파라미터를 저장하기 위한 복수의 어드레스를 갖추고 있는 것을 특징으로 하는 정보처리장치.
  5. 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 저장하는 메모리수단과, 상기 메모리수단에 저장된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 상기 외부인터럽션핸들에 프로그램된 "WAKE"명령을 실행함으로써 상기 메모리수단에 저장된 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 인터럽션처리수단 및, 지연인터럽션레지스터를 갖춤과 더불어, 이 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 인터럽션처리수단에서의 "WAKE"명령이 실행에 의해 wake파라미터의 값으로 변경된 경우에는 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 상기 메모리 수단에 저장된 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 메인프로세스수단을 구비하여 구성된 것을 특징으로 하는 정보처리장치.
  6. 시스템프로그램의 제어하에 응용프로그램을 이용하여 그 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 등의 응용프로그램을 저장하는 메모리수단과, 상기 응용프로그램에 속하는 외부인터럽션핸들러를 저장함과 더불어, 상기 메모리수단에 비해 아주 작은 크기로 설치되어 있는 로컬메모리수단과, 상기 로컬메모리수단으로부터 독출된 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리함과 더불어, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 인터럽션처리수단, 지연인터럽션레지스터를 갖춤과 더불어, 이 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 상기 메모리수단에 저장된 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 상기 인터럽션처리수단에서의 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 상기 메모리수단에 저장된 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 상기 메모리수단에 저장된 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 실행하는 메인프로세서수단 및, 상기 메모리수단과 메인프로세스수단 사이에서 상기 시스템인터럽션핸들러와 범용타스크 및 인터럽션타스크를 전송하는 프로그램전송수단을 구비하여 구성된 것을 특징으로 하는 정보처리장치.
  7. 정보처리장치에서의 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 공통메모리에 저장하는 단계와, 상기 공통메모리에서 wake어드레스를 배열하는 단계, 타이머를 이용하는 일정한 간격으로 타이머인터럽션 신호를 발생새키는 단계, 상기 공통메모리에 저장된 외부인터럽션핸들러의 실행에 의해 인터럽션프로세서에서의 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 인터럽션프로세서로부터 wake어드레스로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계, 상기 wake어드레스에 인터럽션프로세서에 의해 출력되는 wake파라미터를 저장하는 단계, 상기 타이머로부터 타이머인터럽션신호가 공급되지 않는 경우에는 범용타스크를 실행하고, 상기 타이머로부터 인터럽션신호가 공급되는 경우에는 상기 wake어드레스의 내용을 독출함으로써 공통메모리에 배열된 wake파라미터가 wake어드레스에 저장되어 있는지의 여부를 판정하기 위해 상기 시스템인터럽션핸들러를 실행하는 단계 및, 상기 wake파리미터가 wake어드레스에 저장되어 있는 것으로 판정된 경우에는 상기 공통메모리에 저장된 인턴럽션타스크의 실행에 의해 외부인터럽션에 의해 요구된 처리의 나머지부분을 처리하는 단계를 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  8. 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리함과 더불어, 정보처리장치에서의 소정의 시스템호출을 실행하는 정보처리장치에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크 및 외부인터럽션핸들러 등의 응용프로그램을 공통메모리에 저장하는 단계와, 상기 공통메모리에서 시스템호출어드레스를 배열하는 단계, 인터럽션프로세서에서의 상기 외부인터럽션핸들러의 실행에 의해 외부인터럽션을 처리하는 단계, 상기 외부인터럽션의 내용에 따라 상기 외부인터럽션핸들러에 프로그램된 "SCAL"명령을 실행하므로써 상기 인터럽션프로세서로부터의 소정의 시스템호출의 실행을 요구하기 위한 시스템호출파라미터를 출력하는 단계, 상기 인터럽션프로세서에 의해 출력되는 시스템호출파라미터를 시스템호출어드레스에 저장하는 단계, 타이머에 의해 일정한 간격으로 타이머인터럽션신호를 발생시키는 단계, 메인프로세서에 의해, 상기 타이머로부터 타이머인터럽션신호가 공급되지 않는 경우에는 상기 공통메모리에 저장된 범용타스크를 실행하고, 상기 타이머로부터 타이머인터럽션신호가 공급되는 경우에는 상기 공통메모리에 저장된 시스템인터럽션핸들러를 실행하는 단계, 상기 시스템인터럽션핸들러가 상기 메인프로세서에서 실행되는 경우에 시스템호출어드레스에 저장된 시스템호출파라미터를 독출하는 단계, 상기 메인프로세서에 의해 상기 시스템호출파라미터에 대응하는 시스템호출을 실행하는 단계를 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  9. 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과, 범용타스크와 인터럽션타스크 및 외부인터럽션핸들러 등의 응용프로그램을 공통메모리에 저장하는 단계와, 메인프로세서로 지연인터럽션레지스터를 배열함과 더불어, 그 지연인터럽션레지스터의 내용을 초기값으로 설정하는 단계, 인터럽션프로세서에서의 상기 외부인터럽션핸들러의 실행에 의해 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 상기 인터럽션프로세서로부터 상기 지연인터럽션레지스터로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계 및, 상기 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 상기 메인프로세서에서 범용타스크를 실행하는 한편, 상기 지연인터럽션레지스터에 격납된 내용이 "WAKE"명령이 실행에 의해 wake파라미터의 값으로 변경된 경우에는 상기 메인프로세서에서 시스템인터럽션핸들러를 실행하고, 이 시스템인터럽션핸들러가 실행된 경우에는 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구된 처리의 나머지 부분을 처리하는 단계를 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  10. 시스템프로그램의 제어하에 응용프로그램을 이용하여 정보처리장치의 외부로부터 공급되는 외부인터럽션을 처리하는 정보처리방법에 있어서, 시스템인터럽션핸들러 등의 시스템프로그램과 범용타스크와 인터럽션타스크 등의 응용프로그램을 공통메모리에 저장하는 단계와, 상기 응용프로그램에 속하는 외부인터럽션핸들러를 상기 공통메모리에 비해 아주 작은 크기로 설치되어 있는 로컬메모리에 저장하는 단계 : 메인프로세서로 지연인터럽션레지스터를 배열함과 더불어, 그 지연인터럽션레지스터의 내용을 초기값으로 설정하는 단계, 상기 외부인터럽션핸들러의 실행에 의해 상기 인터럽션프로세서에서의 외부인터럽션에 의해 요구되는 처리의 간단한 부분을 처리하는 단계, 상기 외부인터럽션핸들러에 프로그램된 "WAKE"명령을 실행함으로써 상기 인터럽션프로세서로부터 상기 지연인터럽션레지스터로 인터럽션타스크의 실행을 요구하기 위한 wake파라미터를 출력하는 단계 및, 상기 지연인터럽션레지스터에 격납된 내용이 초기값인 경우에는 범용타스크를 실행하고, 상기 지연인터럽션레지스터에 격납된 내용이 "WAKE"명령의 실행에 의해 wake파라미터의 값으로 변경된 경우에는 시스템인터럽션핸들러를 실행하며, 이 시스템인터럽션핸들러가 실행된 경우에는 인터럽션타스크의 실행에 의해 처리되는 외부인터럽션에 의해 요구되는 처리의 나머지 부분을 실행하는 단계를 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  11. 시스템프로그램의 제어하에 복수의 응용프로그램을 실행하는 정보처리장치에 있어서, 상기 시스템프로그램을 저장하는 메모리수단과, 각각이 상기 복수의 응용프로그램중 하나의 컨텍스트에 대응하는 복수의 컨텍스트블록을 저장하는 컨텍스트블록 저장수단, 시스템프로그램 실행수단을 갖추고서 상기 복수의 응용프로그램의 실행을 제어하는 시스템제어수단, 상기 시스템제어수단에 실행되는 상기 시스템프로그램의 제어하에 상기 복수의 컨텍스트블록중 하나의 어드레스를 지정하는 로드지정수단 및, 응용 지원유니트에 의해 지원됨과 더불어, 스웝-인라인과 스웝-아웃라인을 통해서 상기 시스템프로그램 실행수단에 접속되어 상기 로드지정수단만에 의해 어드레스가 지정되어 있는 상기 컨텍스트블록에 대응하는 상기 응용프로그램을 실행하는 응용프로그램 실행수단을 구비하여 구성되고, 상기 로드지정수단만에 의해 지정된 상기 컨텍스트블록중 하나의 어드레스는, 상기 시스템제어수단에서 실행된 상기 시스템프로그램의 제어하에 상기 응용프로그램중 다음의 것에 실행되도록 결정된 때에 상기 응용프로그램중 다음의 것에 대응하는 컨텍스트블록의 어드레스로 변경되며, 상기 응용프로그램은, 상기 응용프로그램중 다음의 것이 상기 시스템제어수단에 결정되어 상기 응용프로그램중 다음의 것으로 변경될 때가지 실행되고, 상기 응용프로그램 실행수단은, 상기 로드지정수단만에 의해 지정된 상기 컨텍스트블록의 어드레스를 격납하는 레지스터와, 상기 레지스터에 어드레스가 격납되어 있는 상기 컨텍스트블록에 저장된 상기 컨텍스트를 저장하는 내부상태메모리를 포함하여 구성되며, 상기 시스템제어수단은, 상기 스웝-인라인과 스웝-아웃라인을 따라서 상기 로드지정수단만에 의해 지정된 상기 컨텍스트블록에 저장된 컨텍스트를 상기 내부상태메모리에 기록하기 위한 요구를 지시하는 스웝-인요구신호와, 상기 내부상태메모리에 저장된 컨텍스트를 상기 로드지정수단만에 의해 지정된 상기 컨텍스트블럭에 기록하기 위한 요구를 지시하는 스웝-아웃요구신호를 각각 발생하는 것을 특징으로 하는 정보처리장치.
  12. 제11항에 있어서, 상기 로드지정수단은, 복수의 컨텍스트블록의 어드레스를 지정하는 복수의 로드포인터를 포함하여 구성되고, 상기 응용프로그램 실행수단은, 각각이 상기 로드포인터의 각각에 대응함과 더불어, 로드포인터에 대응하는 것에 의해 어드레스가 지정된 컨텍스트블록에 대응하는 응용프로그램을 실행하는 복수의 응용프로세서를 포함하여 구성된 것을 특징으로 하는 정보처리장치.
  13. 제11항에 있어서, 상기 응용 지원유니트는 메모리제어회로인것을 특징으로 하는 정보처리장치.
  14. 제11항에 있어서, 상기 응용 지원유니트는 부동소숫점 산술유니트인 것을 특징으로 하는 정보처리장치.
  15. 복수의 응용프로그램을 병렬로 실행하는 정보처리장치에 있어서, 상기 복수의 응용프로그램의 실행을 감시하도록 가능한 시스템프로그램을 실행하는 시스템프로세서와, 스웝-인라인과 스웝-아웃라인을 통해서 상기 시스템프로세서에 접속되어 응용프로그램을 실행하는 응용프로세서 및, 버스라인을 통해서 상기 시스템프로세서 및 상기 응용프로세서에 접속되고, 복수의 컨텍스트블록과 상기 복수의 컨텍스트블록중 하나를 지지하는 로드포인터를 포함하고 있는 메인메모리를 구비하여 구성되고, 상기응용프로세서에서 현재 실행되고 있는 제1응용프로그램이 상기 응용프로세서에서 실행된 제2응용프로그램으로 절체된 경우에, 상기 시스템프로세서가 상기 스웝-아웃라인을 통해서 상기 응용프로세서에 스웝-아웃요구신호를 출력하며, 상기 응용프로세서가 상기 시스템프로세서로부터 스웝-아웃요구신호를 수신한 경우에, 상기 응용프로세서가 상기 로드포인터에 의해 지시된 상기 컨텍스트블록중 하나에서 실행되고 있는 상기 제1응용프로그램의 컨텍스트를 저장하고, 상기 제1응용프로그램의 컨텍스트가 상기 로드포인터에 의해 지시된 상기 컨텍스트블록중 하나에 저장된 경우에, 상기 시스템프로세서가 상기 스웝-인라인을 통해서 상기 응용프로세서에 스웝-인요구신호를 출력하며, 상기 응용프로세서가 상기 시스템프로세서로부터 상기 스웝-인요구신호를 수신한 경우에, 상기 응용프로세서는 상기 스웝-인요구신호에 따라 상기 제2응용프로그램의 컨텍스트가 새로운 현재의 응용프로그램으로 상기 제2응용프로그램의 실행을 개시하게 하는 것을 특징으로 하는 정보처리장치.
  16. 시스템프로세서, 스웝-인라인과 스웝-아웃라인을 통해서 상기 시스템프로세서에 접속된 응용프로세서 및, 상기 시스템프로세서와 상기 응용프로세서에 접속된 메모리를 포함하여 구성된 정보처리장치에서의 복수의 응용프로그램의 실행을 제어하는 정보처리방법에 있어서, 상기 메모리에 복수의 컨텍스트블록을 공급하는 단계와, 상기 복수의 응용프로그램에 각각 대응하는 프로세서상태정보로 이루어진 컨텍스트정보를 상기 복수의 컨텍스트블록 각각에 저장하는 단계, 상기 시스템프로세서의 제어하에 실행될 특유의 응용프로그램에 대응하는 특유컨텍스트블록을 지시하는 단계, 상기 시스템프로세서로부터 스웝-인명령에 따라 상기 특유의 컨텍스트블록에 저장된 특유의 컨텍스트정보를 상기 응용프로세서의 내부메모리로 로드하는 단계, 상기 응용프로세서에서 상기 특유의 응용프로그램을 실행하는 단계, 상기 시스템프로세서의 제어하에 실행될 새로운 응용프로그램에 대응하는 새로운 컨텍스트블록을 지정하는 단계, 상기 시스템프로세서로부터 스웝-아웃명령에 따라서 상기 내부메모리에 저장된 현재의 컨텍스트정보를 스웝-아웃하여 상기 특유의 컨텍스트블록에 저장된 컨텍스트정보를 중지된 컨텍스트정보로서 상기 현재의 컨텍스트정보와 바꾸는 단계 및, 상기 새로운 컨텍스트블록으로부터 새로운 컨텍스트정보를 상기 내부메모리로 로드하여 실행될 상기 새로운 응용프로그램을 처리하는 단계를 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  17. 제16항에 있어서, 상기 스웝-아웃단계 이후에 실행될 새로운 응용프로그램에 대응하는 상기 특유의 컨텍스트블록을 지시하는 단계와, 상기 내부메모리에 현재 유지된 컨텍스트정보를 스웝-아웃하는 단계 및, 상기 특유의 응용프로그램의 실행을 재개하기 위해서 상기 중지된 컨텍스트정보를 상기 특유의 컨텍스트블록으로부터 상기 내부메모리로 로드하는 단계를 더 구비하여 이루어진 것을 특징으로 하는 정보처리장치.
  18. 제16항에 있어서, 상기 특유의 응용프로그램을 실행하는 상기 실행단계는, 상기 시스템프로세서가 상기 지정단계를 제어하는 동안에도 상기 특유의 응용프로그램의 실행을 계속하는 것을 특징으로 하는 정보처리장치.
KR1019910019629A 1990-11-07 1991-11-06 정보처리장치 및 이를 이용한 정보처리방법 KR950012293B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP90-299943 1990-11-07
JP2299943A JPH04172551A (ja) 1990-11-07 1990-11-07 情報処理装置
JP90-311633 1990-11-19
JP2311633A JPH0795276B2 (ja) 1990-11-19 1990-11-19 情報処理装置

Publications (1)

Publication Number Publication Date
KR950012293B1 true KR950012293B1 (ko) 1995-10-16

Family

ID=26562148

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019910019629A KR950012293B1 (ko) 1990-11-07 1991-11-06 정보처리장치 및 이를 이용한 정보처리방법
KR1019910019629D KR920010431A (ko) 1990-11-07 1991-11-06 정보처리장치 및 이를 이용한 정보처리방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1019910019629D KR920010431A (ko) 1990-11-07 1991-11-06 정보처리장치 및 이를 이용한 정보처리방법

Country Status (2)

Country Link
US (1) US5349680A (ko)
KR (2) KR950012293B1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548745A (en) * 1993-01-19 1996-08-20 Canon Kabushiki Kaisha Method and apparatus for designating context in a windowing environment
DE69418916T2 (de) * 1993-02-26 2000-03-23 Denso Corp Multitaskingverarbeitungseinheit
US6601081B1 (en) * 1995-06-30 2003-07-29 Sun Microsystems, Inc. Method and apparatus for context maintenance in windows
US5825770A (en) * 1996-06-06 1998-10-20 Northern Telecom Limited Multiple algorithm processing on a plurality of digital signal streams via context switching
KR100247467B1 (ko) * 1997-11-07 2000-03-15 윤종용 엠엠씨 커맨드를 이용한 교체 블록 로딩 방법
US6408325B1 (en) 1998-05-06 2002-06-18 Sun Microsystems, Inc. Context switching technique for processors with large register files
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6275749B1 (en) 1998-12-22 2001-08-14 Philips Electronics North America Corporation Interrupt-controlled thread processing
US6401155B1 (en) 1998-12-22 2002-06-04 Philips Electronics North America Corporation Interrupt/software-controlled thread processing
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6892237B1 (en) 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US6728962B1 (en) * 2000-06-28 2004-04-27 Emc Corporation Context swapping in multitasking kernel
JP3813930B2 (ja) * 2002-01-09 2006-08-23 松下電器産業株式会社 プロセッサ及びプログラム実行方法
US20040034858A1 (en) * 2002-08-14 2004-02-19 Kushlis Robert J. Programming a multi-threaded processor
JP4542308B2 (ja) * 2002-12-16 2010-09-15 株式会社ソニー・コンピュータエンタテインメント 信号処理用デバイス及び情報処理機器
JP4750350B2 (ja) * 2003-03-13 2011-08-17 パナソニック株式会社 タスク切換装置、方法及びプログラム
US7076616B2 (en) 2003-03-24 2006-07-11 Sony Corporation Application pre-launch to reduce user interface latency
US20070074013A1 (en) * 2003-08-25 2007-03-29 Lonnie Goff Dynamic retention of hardware register content in a computer system
DE10353268B3 (de) * 2003-11-14 2005-07-28 Infineon Technologies Ag Paralleler Multithread-Prozessor (PMT) mit geteilten Kontexten
US7318125B2 (en) * 2004-05-20 2008-01-08 International Business Machines Corporation Runtime selective control of hardware prefetch mechanism
JP4190476B2 (ja) * 2004-09-22 2008-12-03 株式会社ソニー・コンピュータエンタテインメント グラフィックプロセッサ、制御用プロセッサおよび情報処理装置
GB0422086D0 (en) * 2004-10-05 2004-11-03 Symbian Software Ltd Navigating applications in a computing device
US7793160B1 (en) 2005-03-29 2010-09-07 Emc Corporation Systems and methods for tracing errors
US7707362B2 (en) * 2005-06-30 2010-04-27 Seagate Technology Llc Context-free data transactions between dual operating systems embedded within a data storage subsystem
JP4011082B2 (ja) * 2005-11-08 2007-11-21 株式会社ソニー・コンピュータエンタテインメント 情報処理装置、グラフィックプロセッサ、制御用プロセッサおよび情報処理方法
WO2011161893A1 (ja) 2010-06-25 2011-12-29 パナソニック株式会社 計算機システム
US10423424B2 (en) * 2012-09-28 2019-09-24 Nvidia Corporation Replicated stateless copy engine
JP7249968B2 (ja) * 2020-03-09 2023-03-31 株式会社東芝 情報処理装置およびストレージ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3530438A (en) * 1965-12-13 1970-09-22 Sperry Rand Corp Task control
US3984817A (en) * 1973-11-08 1976-10-05 Honeywell Information Systems, Inc. Data processing system having improved program allocation and search technique
US4189771A (en) * 1977-10-11 1980-02-19 International Business Machines Corporation Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4750116A (en) * 1985-10-11 1988-06-07 International Business Machines Corporation Hardware resource management
US5179715A (en) * 1987-03-11 1993-01-12 Toyo Communication Co., Ltd. Multiprocessor computer system with process execution allocated by process managers in a ring configuration
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
DE68925376T2 (de) * 1988-04-20 1996-09-05 Sanyo Electric Co In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
JPH0259937A (ja) * 1988-08-26 1990-02-28 Hitachi Maxell Ltd Icカード
US5089956A (en) * 1988-11-29 1992-02-18 International Business Machines Corporation Method of distributing related documents to identified end users in an information processing system
US5170340A (en) * 1990-09-28 1992-12-08 Xerox Corporation System state controller for electronic image processing systems
US5175679A (en) * 1990-09-28 1992-12-29 Xerox Corporation Control for electronic image processing systems

Also Published As

Publication number Publication date
KR920010431A (ko) 1992-06-26
US5349680A (en) 1994-09-20

Similar Documents

Publication Publication Date Title
KR950012293B1 (ko) 정보처리장치 및 이를 이용한 정보처리방법
US5168566A (en) Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks
JPS6040067B2 (ja) 分散制御型多重処理システム
JP2002533807A (ja) 割込み/ソフトウエア制御スレッド処理
EP0637802A2 (en) Interrupt vector method and apparatus
US5504869A (en) High speed processing system capable of executing strings of instructions in order without waiting completion of previous memory access instruction
US20210232430A1 (en) Processor zero overhead task scheduling
JPH01310441A (ja) データ処理装置
JPH03233630A (ja) 情報処理装置
US20030172215A1 (en) Interrupt- controller
US6092153A (en) Subsettable top level cache
EP1227401B1 (en) Task management device, method and program therefor
JP2927102B2 (ja) 命令列切り替え方法及びそれを用いた演算プロセッサ
KR102339278B1 (ko) 계산 유닛 작동 방법
CN113778640A (zh) 任务执行方法、装置、电子设备及存储介质
JP2853460B2 (ja) データロード方法及びそれを用いた演算プロセッサ
WO2022034063A1 (en) Processing apparatus
JPS62194559A (ja) 仮想記憶システムにおけるプログラムのメモリスケジユ−ル方式
JPH11296471A (ja) データ転送方法およびdmaコントローラ
JPS58225469A (ja) マルチプロセツサ制御方式
JPH10171509A (ja) プロセス制御装置
JPH06222935A (ja) 情報処理装置および情報処理装置によるタスク切替方法
JPH0432422B2 (ko)
KR19990079125A (ko) 단일 중앙처리부를 이용한 수치제어장치의 구현방법
JPS6146545A (ja) 入出力命令制御方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20030930

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee