KR0154616B1 - 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법 - Google Patents

실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법

Info

Publication number
KR0154616B1
KR0154616B1 KR1019950033701A KR19950033701A KR0154616B1 KR 0154616 B1 KR0154616 B1 KR 0154616B1 KR 1019950033701 A KR1019950033701 A KR 1019950033701A KR 19950033701 A KR19950033701 A KR 19950033701A KR 0154616 B1 KR0154616 B1 KR 0154616B1
Authority
KR
South Korea
Prior art keywords
register window
register
window
stored
contents
Prior art date
Application number
KR1019950033701A
Other languages
English (en)
Other versions
KR970022738A (ko
Inventor
정영식
최완
이병선
Original Assignee
양승택
한국전자통신연구소
이준
한국전기통신공사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양승택, 한국전자통신연구소, 이준, 한국전기통신공사 filed Critical 양승택
Priority to KR1019950033701A priority Critical patent/KR0154616B1/ko
Publication of KR970022738A publication Critical patent/KR970022738A/ko
Application granted granted Critical
Publication of KR0154616B1 publication Critical patent/KR0154616B1/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
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • G06F9/30127Register windows

Landscapes

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

Abstract

본 발명은 실시간 병행 처리 운영 체계(CROS)의 실시간 처리 동작을 호스트 시스템에서 실행시켜 주기 위한 레지스터윈도우 스위칭 방법에 관한 것으로, 실시간 병행 처리를 위하여 여러개의 프로세스들이 사용하는 각각의 레지스터윈도우를 독자적으로 운영할 수 있는 레지스터윈도우 스위칭 방법을 제공하기 위하여, 주 프로세스를 생성 및 초기화하고 스케쥴링 지점의 레지스터윈도우의 내용을 저장하는 제1단계(201, 202); 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되면 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제2단계(203 내지 207, 209); 및 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되지 않았으면 현재 스케쥴링되어 실행중인 프로세스의 레지스터윈도우를 저장하고 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제3단계(203 내지 209)를 포함하여 실시간 처리 동작을 호스트 시스템에서 실행시키는 환경을 제공할 수 있는 효과가 있다.

Description

실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법
제1도는 본 발명이 적용되는 하이웨어의 구성도.
제2도는 본 발명에 따른 레지스터윈도우 스위칭(저장 및 복구)에 대한 전체 처리 흐름도.
제3도는 본 발명에 따른 레지스터윈도우 저장에 대한 상세한 처리 흐름도.
제4도는 본 발명에 따른 스케쥴된 레지스터윈도우 복구에 대한 상세 처리 흐름도.
제5도는 본 발명에 따른 스케쥴링 지점의 레지스터윈도우 복구에 대한 상세 처리 흐름도.
* 도면의 주요부분에 대한 부호의 설명
101 : 메인 메모리 보드 102 : 중앙 처리 보드
103 : 범용 운영 체계 104 : 보조 기억 장치
105 : 입/출력 장치 106 : 시스템 버스
본 발명은 스파크(SPARC) 또는 슈퍼스파크(SuperSPARC) 프로세서를 장착하고 선 운영 체계(SunOS) 4.1.X 또는 솔라리스(Solaris) 2.3 운영 체계의 제어를 받는 호스트 시스템에서 실시간 병행 처리 운영 체계(CROS:Concurrent Real-time Operating System)의 실시간 처리 동작을 호스트 시스템에서 실행시켜 주기 위한 레지스터윈도우 스위칭 방법에 관한 것이다.
레지스터윈도우란 스파크 RISC(Reduced Instruction Set Computer) 프로세서에서 채택한 방식으로, 24개의 범용 레지스터를 가진 8개의 윈도우를 운용하여 프로시듀어 호출과 복귀시의 인자를 전달, 사용중인 레지스터의 내용 저장 및 복구 등을 지연없이 효율적으로 처리하기위한 방식이다. 레지스터윈도우는 프로시듀어 호출이 발생할 때마다 순차적으로 사용하고 프로시듀어에서 복귀시 사용중인 윈도우를 제거하는 방식으로 수행된다.
일반적인 CISC(Complex Instruction Set Computer) 프로세서들이 프로시듀어 호출시 전달하는 인자와 사용하던 레지터의 내용을 저장하는 방식은 스택을 통하여 처리하도록 되어 있다.
따라서, 이러한 종래 기술은 프로시듀어 호출 시간이 지연되어 실시간 처리 시스템에 이용할 수 없는 문제점이 있었다.
따라서, 실시간 병행 처리를 위해서는 여러개의 프로세스(컴퓨터가 처리해야 할 단위 작업)들이 사용하는 각각의 스택과 레지스터윈도우를 독자적으로 운영할 수 있는 방법이 제공되어야 한다.
그러나, 레지스터윈도우는 하나의 프로세스에 대한 스택과 레지스터의 내용을 운영할 수 있도록 되어 있어서 여러개의 프로세스에 대한 레지스터윈도우를 운영할 수 있는 방법이 필요하게 된다.
상기 문제점을 해결하기 위하여 안출된 본 발명은 실시간 병행 처리를 위하여 여러개의 프로세스들이 사용하는 각각의 레지스터윈도우를 독자적으로 운영할 수 있는 레지스터윈도우 스위칭 방법을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위하여 본 발명은, 범용 컴퓨터에 적용되는 레지스터윈도우 스위칭 방법에 있어서, 주 프로세스를 생성 및 초기화하고 스케쥴링 지점의 레지스터윈도우의 내용을 저장하는 제1단계; 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되면 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제2단계; 및 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되지 않았으면 현재 스케쥴링되어 실행중인 프로세스의 레지스터윈도우를 저장하고 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제3단계를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 일실시예를 상세히 설명한다.
제1도는 본 발명이 적용되는 하드웨어의 구성도로서, 101은 메인 메모리 보드, 102는 중앙 처리 보드, 103은 범용 운영 체계, 104는 보조 기억 장치, 105는 입/출력 장치, 106은 시스템 버스를 각각 나타낸다.
도면에 도시한 각 블록들의 기능을 살펴보면, 호스트 시스템의 메인 메모리(101)는 실시간 병행 처리를 위한 레지스터윈도우 처리 프로그램이 탑재되는 보드이고, 중앙 처리 보드(102)는 메인 메모리에 탑재된 프로그램을 실행시키는 보드이다. 보조 기억 장치(104)는 실시간 병행 처리를 위한 프로그램을 저장하는 장치로 메인 메모리 보드(101)에 탑재되지 않은 파일과 도구들이 저장된다. 입/출력 장치(105)는 실시간 병행처리를 위하여 필요한 파일 및 데이타, 수행중에 발생하는 출력 메시지 및 오류 메시지를 입/출력하는 장치이다. 범용 운영 체계(103)는 상기 프로그램 및 장치를 제어하며, 각 장치간에 주고 받는 메시지는 시스템 버스(106)를 통하여 이루어진다.
제2도는 본 발명에 따른 실시간 병행 처리를 위한 레지스터윈도우 스위칭(저장 및 복구)에 대한 전체 처리 흐름도이다.
사용자가 병행 처리 프로그램을 실행시키면 주 프로세스를 생성 및 초기화시키고(201) 그 다음 지점을 스케쥴링 지점으로 잡아 이 상태의 레지스터윈도우를 저장한다(202). 다음에 주 프로세스를 포함하여 실행을 위해 대기중인 다른 스로세스가 있는지의 여부를 검사하여(203)없는 경우에는 종료하게 되며, 있는 경우에는 스케쥴링을 수행한다(204). 스케쥴링에 의해 선택된 프로세스는 레지스터윈도우를 복구하여(205) 실행 시킨다(206).
이하, 선택된 프로세스의 실행 종료인지를 판단하여(207) 선택된 프로세스가 실행이 종료되지 않고 대기 상태로 들어가게 되면 그때 상태의 레지스터윈도우를 저장하고(208) 다음에 스케쥴링을 위하여 스케쥴링 지점의 레지스터윈도우를 복구한 후에(209) 프로세스가 존재하는지를 판단하는 과정(203)부터 반복 수행하고, 정상적인 실행을 종료하면 다음 스케쥴링을 위하여 스케쥴링 지점의 레지스터윈도우를 복구한 후에(209) 프로세스가 존재하는지를 판단하는 과정(203)부터 반복 수행한다.
제3도는 본 발명에 따른 레지스터윈도우 저장(202, 208)에 대한 상세 처리 흐름도이다.
먼저, 현재 레지스터윈도우와 스택의 내용을 저장한 후에(301) 주 프로세스 초기화시 저장된 프레임 포인터(fp) 값과 현재 레지스터윈도우의 프레임 포인터 값을 비교하여(302) 같으면 종료하고, 같지 않으면 레지스터윈도우 계수기를 0으로 초기화한다(303).
다음으로 현재 레지스터윈도우를 제거하고(304) 다음 레지스터윈도우와 스택의 내용을 저장한 후에(305) 레지스터윈도우 계수기를 1증가시키고(306), 주 프로세스 초기화시 저장된 프레임 포인터 값과 현재 레지스터윈도우의 프레임 포인터 값을 비교하여(307) 같지 안으면 상기 과정(304, 305, 306, 307)을 반복하여 수행한다. 주 프로세스 초기화시 저장된 프레임 포인터 값과 현재 레지스터윈도우의 프레임 포인터 값이 같아지면 레지스터윈도우 계수기의 값을 현재 프로세스에서 저장한 레지스터윈도우의 개수로 저장한다(308).
이후, 지금까지 제거된 레지스터윈도우와 스택의 내용을 다시 시작시의 원래 상태로 복구(309, 310, 311, 312)한 후 레지스터윈도우 저장을 종료한다. 즉, 레지스터윈도우를 생성하여(309) 레지스터윈도우 및 스택 내용을 복구한 후에(310) 레지스터윈도우 계수기를 1감소시킨 후에 (311) 레지스터윈도우 계수기 값이 0보다 크면(312) 상기 레지스터윈도우 생성 과정(309)부터 반복 수행하고, 레지스터윈도우 계수기 값이 0보다 크지 않으면(312) 종료한다.
제4도는 본 발명에 따른 스케쥴되어 선택된 프로세스를 실행시키기 위하여 선택된 프로세스의 레지스터윈도우 복구(205)에 대한 상세 처리 흐름도이다.
스케쥴되어 선택된 프로세스의 레지스터윈도우 저장 영역에서, 저장된 레지스터윈도우의 개수를 계산한다(401). 계산한 값을 검사하여(402) 0이면 저장되어 있는 레지스터윈도우와 스택의 내용을 복구하고(407) 종료하며, 0이 아니면 개수만큼 반복하여 레지스터윈도우를 생성하고 레지스터윈도우와 스택의 내용을 복구(403, 404, 405, 406, 407)하고 종료한다. 즉, 레지스터윈도우 및 스택의 내용을 복구하고(403) 레지스터윈도우를 생성한 후에(404) 저장된 레지스터윈도우 개수를 1감소시키고(405) 저장된 레지스터윈도우의 개수를 검사하여(406) 0보다 크면 상기 레지스터윈도우 및 스택의 내용을 복구하는 과정(403)부터 반복 수행하고, 0보다 크지 않으면 레지스터윈도우 및 스택 내용을 복구하고(407) 종료한다.
제5도는 본 발명에 따른 스케쥴링 지점의 레지스터윈도우 복구(209)에 대한 상세 처리 흐름도이다.
제3도에서 저장된 레지스터윈도우 계수기 값(308)을 검사하여(501) 0이면 따로 저장된 스케쥴링 지점의 레지스터윈도우와 스택의 내용을 복구하고(505) 종료하며, 0이 아니면 저장된 레지스터윈도우 개수 만큼 레지스터윈도우를 제거(502, 503, 504)한 후, 따로 저장된 스케쥴링 지점의 레지스터윈도우와 스택의 내용을 복구하고(505) 종료한다.
상기와 같은 본 발명은 하나의 프로세스에 대하여 처리하도록 되어있는 레지스터윈도우를 여러개의 프로세스에 대하여 처리할 수 있도록 함으로서, 실시간 병행 처리 운영 체계의 제어를 받는 목적 시스템의 실시간 처리 동작을 호스트 시스템에서 실행시키는 환경을 제공할 수 있는 효과가 있다.

Claims (5)

  1. 범용 컴퓨터에 적용되는 레지스터윈도우 스위칭 방법에 있어서, 주 프로세스를 생성 및 초기와하고 스케쥴링 지점의 레지스터윈도우의 내용을 저장하는 제1단계(201, 202); 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되면 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제2단계(203 내지 207, 209); 및 프로세스가 존재할 경우에 스케쥴링을 수행하여 선택된 프로세스의 레지스터윈도우를 복구하여 실행한 후에 실행이 종료되지 않았으면 현재 스케쥴링되어 실행중인 프로세스의 레지스터윈도우를 저장하고 스케쥴링 지점의 레지스터윈도우를 복구하는 과정을 반복하는 제3단계(203 내지 209)를 포함하는 것을 특징으로 하는 레지스터윈도우 스위칭 방법.
  2. 제1항에 있어서, 제1단계(201, 202)또는 제3단계(203 내지 209)의 레지스터윈도우 저장 과정은, 현재 레지스터윈도우와 스택의 내용을 저장한 후에 주 프로세스 초기화시 저장된 프레임 포인터(fp) 값과 현재 레지스터윈도우의 프레임 포인터 값을 비교하여 같으면 종료하고, 같지 않으면 레지스터윈도우 계수기를 초기화하는 단계(301 내지 303); 주 프로세스 초기화시 저장된 프레임 포인터 값과 현재 레지스터윈도우의 프레임 포인터 값이 같아질때까지 현재 레지스터윈도우를 제거하고 다음 레지스터윈도우와 스택의 내용을 저장한 후에 레지스터윈도우 계수기를 증가시키는 과정을 반복 수행하는 단계(304 내지 307); 주 프로세스 초기화시 저장된 프레임 포인터 값과 현재 레지스터윈도우의 프레임 포인터 값이 같아지면 레지스터윈도우 계수기의 값에 현재 프로세스에서 저장된 레지스터윈도우의 개수를 저장하는 단계(308); 및 제거된 레지스터윈도우와 스택의 내용을 다시 시작시의 원래 상태로 복구한 후 레지스터윈도우 저장을 종료하는 단계(309 내지 312)를 포함하는 것을 특징으로 하는 레지스터윈도우 스위칭 방법.
  3. 제2항에 있어서, 상기 단계(309 내지 312)는, 레지스터윈도우를 생성하는 단계(309); 레지스터윈도우 및 스택 내용을 복구한 후에 레지스터윈도우 계수기를 1감소시키는 단계(310, 311); 및 레지스터윈도우 계수기 값이 0 보다 크면 상기 레지스터윈도우 생성 단계(309)부터 반복 수행하고, 레지스터윈도우 계수기 값이 0 보다 크지 않으면 종료하는 단계(312)를 포함하는 것을 특징으로 하는 레지스터윈도우 스위칭 방법.
  4. 제1항에 있어서, 상기 제2단계(203 내지 207, 209) 또는 제3단계(203 내지 209)의 선택된 프로세스의 레지스터윈도우 복구 과정은, 스케쥴되어 선택된 프로세스의 레지스터윈도우 저장 영역에서 저장된 레지스터윈도우의 개수를 계산하여 계산한 값을 검사하는 단계(401 내지 403); 상기 단계(401 내지 403)의 검사 결과, 저장된 레지스터윈도우가 없으면 저장되어 있는 레지스터윈도우와 스택의 내용을 복구하고 종료하는 단계(407); 및 상기 단계(401 내지 403)의 검사 결과, 저장된 레지스터윈도우가 있으면 개수만큼 반복하여 레지스터윈도우를 생성하고 레지스터윈도우와 스택의 내용을 복구하고 종료하는 단계(403 내지 407)를 포함하는 것을 특징으로하는 레지스터윈도우 스위칭 방법.
  5. 제1항에 있어서, 상기 제2단계(203 내지 207, 209) 또는 제3단계(203 내지 209)의 스케쥴링 지점의 레지스터윈도우 복구 과정은, 저장된 레지스터윈도우 계수기의 개수를 검사하는 단계(501); 상기 단계(501)의 검사 결과, 저장된 레지스터윈도우가 없으면 따로 저장된 스케쥴링 지점의 레지스터윈도우와 스택의 내용을 복구하고 종료하는 단계(505); 및 상기 단계(501)의 검사결과, 저장된 레지스터윈도우가 있으면 저장된 레지스터윈도우 개수만큼 레지스터윈도우를 제거한 후에 따로 저장된 스케쥴링 지점의 레지스터윈도우와 스택의 내용을 복구하고 종료하는 단계(502 내지 505)를 포함하는 것을 특징으로 하는 레지스터윈도우 스위칭 방법.
KR1019950033701A 1995-10-02 1995-10-02 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법 KR0154616B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950033701A KR0154616B1 (ko) 1995-10-02 1995-10-02 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950033701A KR0154616B1 (ko) 1995-10-02 1995-10-02 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법

Publications (2)

Publication Number Publication Date
KR970022738A KR970022738A (ko) 1997-05-30
KR0154616B1 true KR0154616B1 (ko) 1998-11-16

Family

ID=19429068

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950033701A KR0154616B1 (ko) 1995-10-02 1995-10-02 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법

Country Status (1)

Country Link
KR (1) KR0154616B1 (ko)

Also Published As

Publication number Publication date
KR970022738A (ko) 1997-05-30

Similar Documents

Publication Publication Date Title
EP0331372A2 (en) Method of and apparatus using floating point execption signals for controlling several processors
CN110851246A (zh) 一种批量任务处理方法、装置、系统及存储介质
GB2281986A (en) Logging program counter on reset.
KR0154616B1 (ko) 실시간 병행 처리 시스템을 위한 레지스터윈도우 스위칭 방법
Fu et al. Run-time compilation for parallel sparse matrix computations
Roch et al. On-line adaptive parallel prefix computation
US5586320A (en) High speed synchronous processing system for executing parallel processing of programs having loops
AU1490888A (en) Apparatus and method for synchronization of arithmetic exceptions in parallel pipelined execution units
JP3039450B2 (ja) スタック領域の切替方法、方式およびスタック領域切替プログラムを記録した記憶媒体
JPH0675957A (ja) 編集中障害の復旧機構
JP2738360B2 (ja) マルチタスクプログラムのデバッグ方法およびデバッグシステム
JP2510691B2 (ja) 演算処理方法
Cortés et al. Applying load balancing in data parallel applications using DASUD
JPH05224953A (ja) 割込み制御装置及び方法
CN118363897A (zh) 基于risc-v架构的中断延迟电路、控制方法及设备
JP2001229033A (ja) ファイル障害時のジョブネット再実行装置
CN114218008A (zh) 一种内存泄漏异常的处理方法、装置和终端设备
CN111694597A (zh) 一种中断修复方法、装置、设备及介质
CN117216140A (zh) 用于数据集成平台的etl任务处理方法、系统、介质及设备
JPH0883195A (ja) 並行プログラム検証装置
JPH0816431A (ja) 利用者プログラムのデバッグ処理システム
JPH0784786A (ja) プログラム実行制御方法
Naik et al. IUF Scheduling Algorithm for Improving the Schedulability, Predictability and Sustainability of the Real Time System
JPH0348984A (ja) データフロー型計算機のセルフクリーニング方式
CN115237578A (zh) 一种批量作业处理方法及装置

Legal Events

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

Payment date: 20100701

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee