KR20010055463A - 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법 - Google Patents

하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법 Download PDF

Info

Publication number
KR20010055463A
KR20010055463A KR1019990056677A KR19990056677A KR20010055463A KR 20010055463 A KR20010055463 A KR 20010055463A KR 1019990056677 A KR1019990056677 A KR 1019990056677A KR 19990056677 A KR19990056677 A KR 19990056677A KR 20010055463 A KR20010055463 A KR 20010055463A
Authority
KR
South Korea
Prior art keywords
task
data
context data
data memory
clock pattern
Prior art date
Application number
KR1019990056677A
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 서평원
Priority to KR1019990056677A priority Critical patent/KR20010055463A/ko
Publication of KR20010055463A publication Critical patent/KR20010055463A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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

Abstract

본 발명은 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의 스케쥴링 방법에 관한 것으로, 특히 하드웨어적인 버스 스위칭에 따라 각 태스크에 해당되는 데이터 메모리를 선택 및 연결하여 문맥 데이터에 대한 적재 및 저장 동작을 수행함으로써, 실시간 처리 가능하도록 한 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의 스케쥴링 방법에 관한 것이다.
종래의 소프트웨어 태스크 스케쥴러에서는 태스크 처리를 위한 메모리 액세스 횟수가 많아 메모리 액세스시의 부하가 상승하고, 이로 인해 실시간 처리시의 시간 지연이 발생하는 단점이 있었다.
본 발명은 각각의 태스크에 대해 데이터 메모리가 하나씩 할당되도록 하고, 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호와 각 태스크에 해당되는 데이터 메모리 선택을 위한 스위치 클럭신호를 발생시켜 각 태스크의 문맥 데이터에 대한 적재 및 저장 동작을 순차적으로 반복 수행함으로써, 메모리 액세스시의 부하 및 이로 인한 시간 지연이 최소화되어 실시간 처리가 가능해진다.

Description

하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의 스케쥴링 방법{Hardwired Task Scheduler And Scheduling Method In That Task Scheduler}
본 발명은 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의 스케쥴링 방법에 관한 것으로, 특히 하드웨어적인 버스 스위칭에 따라 각 태스크에 해당되는 데이터 메모리를 선택 및 연결하여 문맥 데이터에 대한 적재 및 저장 동작을 수행함으로써, 실시간 처리 가능하도록 한 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의 스케쥴링 방법에 관한 것이다.
일반적으로, 운영체제(Operating System)는 배치 모드와 다중 프로그래밍 모드로 구분되고, 해당 다중 프로그래밍 모드에서 수행되는 루틴 또는 수행 내용은 각각의 태스크(Task)로 구분되며, 실시간 운영체제에서는 프로그램의 다중 처리를 위해 사용자 인터럽트에 직접적으로 연결되어 있지 않은 작업의 처리를 조직화하고 스케쥴하는 다중 태스킹을 수행한다.
그리고, 해당 태스크를 개별로 또는 그룹 단위로 활성화, 종료, 지연 또는 준비하는 기능은 태스크 스케쥴러(Task Scheduler)에 의해 수행되고, 해당 태스크 스케쥴러는 활성화 단계에서 태스크가 동작하는 주변 환경을 정의하는 식별자, 우선순위, 프로그램 변수를 갖도록 하며, 활성화된 태스크들을 준비 상태 큐에 넣어주면 사용자가 정해준 우선순위에 따라서 태스크들이 수행된다.
한편, 종래 운영체제에서의 태스크 스케쥴링 방식으로는 우선순위 스케쥴링과 대기순 스케쥴링 및 시분할 스케쥴링이 있는데, 해당 우선순위 스케쥴링은 태스크 기동시에 결정된 실행 우선순위가 가장 높은 태스크를 선택하는 방식이고, 해당 대기순 스케쥴링은 다수의 태스크에 동일 실행 우선순위를 부여하고 이들 태스크 사이에서는 태스크가 입출력 완료 대기 등의 대기상태에서 실행 상태로 옮긴 순으로 다음에 실행해야 할 태스크를 선택하는 방식이다. 그리고, 해당 시분할 스케쥴링은 다수의 태스크를 하나의 그룹으로 하고, 해당 그룹의 태스크에 대해 일정한 중앙처리장치 주기시간을 적용하여 그 시간내에 대기 상태로 되지 않는 태스크는 강제적으로 실행이 중단되고, 다른 대기상태의 태스크가 선택되는 방식이다.
그런데, 전술한 바와 같은 태스크 스케쥴링은 모두 소프트웨어적으로 처리되는 것으로, 이를 위한 종래의 소프트웨어 태스크 스케쥴러의 개략적인 구조는 첨부된 도면 도 1에 도시된 바와 같이, 중앙처리장치(11)와 하나의 메모리(12)가 연동하는 구조를 갖되, 해당 메모리(12)는 각 태스크에서 공통으로 사용하는 프로그램 메모리 영역과, 각 태스크에 할당되는 다수의 데이터 메모리 영역과, 각 데이터 메모리 영역에 대한 위치값을 저장하고 있는 테이블 영역 및 해당 데이터 메모리 영역의 실제적인 검색을 위한 소프트웨어를 저장하고 있는 검색 소프트웨어 영역으로 구분된다.
이와 같은 구조를 갖는 소프트웨어 태스크 스케쥴러의 스케쥴링은 중앙처리장치(11)에서 메모리(12)의 테이블 영역을 검색하여, 현재 수행하고자 하는 태스크에 해당되는 데이터 메모리 영역의 위치값을 판독한 후, 해당 위치값에 대응하는 데이터 메모리 영역을 검색 소프트웨어 영역에 저장된 소프트웨어를 이용하여 검색함으로써, 해당 데이터 메모리 영역에 저장된 현재 태스크의 문맥 데이터를 레지스터(11-1)로 복원하여 해당되는 태스크의 주 기능을 수행하게 된다.
이후, 해당 태스크의 주 기능이 종료되는 경우 해당 중앙처리장치(11)는 레지스터(11-1)의 문맥 데이터를 전술한 동작과 동일한 방법으로 해당되는 데이터 메모리 영역에 저장하게 된다.
따라서, 종래의 소프트웨어 태스크 스케쥴러에서는 태스크 처리를 위한 메모리 액세스 횟수가 많아 메모리 액세스시의 부하가 상승하고, 이로 인해 실시간 처리시의 시간 지연이 발생하는 단점이 있었다.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로 그 목적은, 각각의 태스크에 대해 데이터 메모리가 하나씩 할당되도록 하고, 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호와 각 태스크에 해당되는 데이터 메모리 선택을 위한 스위치 클럭신호를 발생시켜 각 태스크의 문맥 데이터에 대한 적재 및 저장 동작을 순차적으로 반복 수행하도록 함으로써, 메모리 액세스시의 부하 및 이로 인한 시간 지연을 최소화시켜 실시간 처리가 가능하도록 하는데 있다.
도 1은 종래의 소프트웨어 태스크 스케쥴러의 개략적인 구조를 도시한 도면.
도 2는 본 발명에 따른 하드와이어드 태스크 스케쥴러의 구성 블록도.
도 3은 본 발명에 따른 하드와이어드 태스크 스케쥴러의 인터럽트 및 스위치 클럭 타이밍도.
도 4는 본 발명에 따른 하드와이어드 태스크 스케쥴러의 스케쥴링 동작 순서도.
도 5는 본 발명에서 인터럽트 신호에 의한 인터럽트 처리루틴의 기본적인 처리 절차를 의사 명령어로 구현한 도면.
* 도면의 주요 부분에 대한 부호의 설명 *
21 : 중앙처리장치 22 : 카운터
23 : 클럭 패턴 발생부 24 : 버스 스위치
25 : 프로그램 메모리 26-1~26-n : 데이터 메모리
상술한 바와 같은 목적을 해결하기 위한 본 발명의 특징은, 각각의 태스크에 대해 하나씩 할당되어 해당되는 태스크의 문맥 데이터를 저장하는 다수의 데이터 메모리와; 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호와 각 태스크에해당되는 상기 데이터 메모리 선택을 위한 스위치 클럭신호를 발생시키는 클럭 패턴 발생부와; 상기 클럭 패턴 발생부의 스위치 클럭신호에 따라 다음 태스크에 필요한 데이터 메모리를 선택해서 연결하는 버스 스위치와; 상기 클럭 패턴 발생부의 인터럽트 신호에 따라 현재 태스크에 해당되는 데이터 메모리를 액세스하여 문맥 데이터에 대한 적재 및 저장 동작을 수행하는 중앙처리장치를 포함하는데 있다.
나아가, 상기 중앙처리장치에 의해 리셋되어 각 태스크의 수행시간을 조절하기 위해 상기 클럭 패턴 발생부의 클럭 패턴 발생을 리셋시키는 카운터를 더 포함하는 것을 특징으로 한다.
본 발명의 다른 특징은, 문맥 데이터 적재를 위한 인터럽트 신호를 발생시켜 현재 태스크의 문맥 데이터를 레지스터로 복원하는 과정과; 인터럽트 처리루틴의 상태를 저장 상태로 천이하는 과정과; 문맥 데이터 저장을 위한 인터럽트 신호를 발생시켜 상기 현재 태스크의 문맥 데이터를 해당되는 데이터 메모리에 저장하는 과정과; 다음 태스크의 문맥 데이터 처리를 위해 해당되는 데이터 메모리를 선택 및 연결하는 과정과; 상기 인터럽트 처리루틴의 상태를 적재 상태로 천이하는 과정을 포함하는데 있다.
그리고, 상기 현재 태스크의 문맥 데이터를 레지스터로 복원하는 과정은, 카운트 리셋신호를 발생시켜 현재 태스크의 수행시간을 조절하기 위한 카운트를 시작하게 하는 단계와; 클럭 패턴 발생을 리셋시켜 현재 태스크의 문맥 데이터 적재를 위한 인터럽트 신호를 발생시키는 단계와; 인터럽트 처리루틴의 상태가 적재 상태인 경우 현재 태스크의 문맥 데이터를 레지스터로 복원하는 단계를 더 포함하는 것을 특징으로 한다.
또한, 상기 다음 태스크의 문맥 데이터 처리를 위해 해당되는 데이터 메모리를 선택 및 연결하는 과정은, 현재 태스크의 문맥 데이터를 해당되는 데이터 메모리에 저장한 후, 현재 태스크가 최종 태스크인지를 확인하는 단계와; 현재 태스크가 최종 태스크가 아닌 경우 다음 태스크의 문맥 데이터 처리를 위해 현재 태스크의 값을 '1' 증가시켜 다음 태스크에 해당되는 데이터 메모리를 선택 및 연결하는 단계를 더 포함하는 것을 특징으로 한다.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세하게 설명하면 다음과 같다.
본 발명에서는 하드와이어드(Hardwired) 태스크 스케쥴러를 구현하여 소프트웨어적인 태스크 스케쥴링으로 인한 메모리 액세스시의 부하 상승 및 실시간 처리시의 시간 지연을 최소화시킨 것으로, 해당 하드와이어드 태스크 스케쥴러는 첨부한 도면 도 2에 도시한 바와 같이, 중앙처리장치(21)와, 카운터(22)와, 클럭 패턴 발생부(23)와, 버스 스위치(24)와, 프로그램 메모리(25) 및 다수의 데이터 메모리(26-1~26-n)를 구비하여 이루어진다.
해당 중앙처리장치(21)는 각 태스크의 수행시간을 조절하는 카운터(22)의 리셋을 제어하고, 클럭 패턴 발생부(23)의 인터럽트 신호(INT)에 따라 현재 태스크에 해당되는 데이터 메모리(26-1~26-n)를 어드레스 버스(A-BUS) 및 데이터 버스(D-BUS)를 통해 액세스하여 문맥 데이터(Context Data)에 대한 적재(LOAD) 및저장(SAVE) 동작을 수행한다.
해당 카운터(22)는 중앙처리장치(21)에 의해 리셋되어 각 태스크의 수행시간을 조절하기 위해 클럭 패턴 발생부(23)의 클럭 패턴(clock pattern) 발생을 리셋시키게 된다.
해당 클럭 패턴 발생부(23)는 카운터(22)에 의해 리셋되어 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호(INT)를 발생시키며, 각 태스크에 해당되는 데이터 메모리 선택을 위한 스위치 클럭신호(SwClk)를 발생시킨다.
해당 버스 스위치(24)는 클럭 패턴 발생부(23)의 스위치 클럭신호(SwClk)에 따라 중앙처리장치(21)에 의한 각 태스크의 데이터 메모리 액세스를 위한 데이터 메모리 선택(DM_Sel)을 수행하여, 다음 태스크에 필요한 데이터 메모리(26-1~26-n)를 선택해서 연결한다.
해당 프로그램 메모리(25)는 각 태스크에서 공통으로 사용되는 프로그램과 루틴 및 서브루틴을 저장하며, 해당 각 데이터 메모리(26-1~26-n)는 각각의 태스크에 대해 하나씩 할당되어 해당되는 태스크의 문맥 데이터를 저장한다.
이와 같이 구성된 본 발명에 따른 하드와이어드 태스크 스케쥴러의 스케쥴링 동작을 첨부한 도면 도 3 및 도 4를 참조하여 설명하면 다음과 같다.
여기서, 도 3은 본 발명에 따른 하드와이어드 태스크 스케쥴러의 인터럽트 및 스위치 클럭 타이밍도를 도시한 도면이고, 도 4는 본 발명에 따른 하드와이어드 태스크 스케쥴러의 스케쥴링 동작 순서도를 도시한 도면이다.
그리고, 해당 하드와이어드 태스크 스케쥴러의 스케쥴링 동작은 현재 태스크의 문맥 데이터에 대한 적재 및 저장 동작과, 다음 태스크의 문맥 데이터 처리(적재 및 저장)를 위한 데이터 메모리 선택 및 연결 동작으로 구분되는데, 먼저, 중앙처리장치(21)가 카운트 리셋신호(CNTReset)를 발생시켜 카운터(22)의 카운트 동작을 리셋시키게 되면, 해당 카운터(22)는 현재 태스크의 수행시간을 조절하기 위해 카운트를 시작하게 되고(스텝 S41), 클럭 패턴 발생부(23)의 클럭 패턴 발생을 리셋시키기 위해 클럭 패턴 발생부 리셋신호(CPGReset)를 발생시켜 해당 클럭 패턴 발생부(23)로 전달하게 된다.
그러면, 해당 클럭 패턴 발생부(23)는 현재 태스크의 문맥 데이터에 대한 적재 동작을 시작할 수 있도록 인터럽트 신호(INT)를 발생시켜 중앙처리장치(21)로 전달하게 되고(스텝 S42), 해당 중앙처리장치(21)는 클럭 패턴 발생부(23)에 의해 인터럽트 신호(INT)가 전달됨에 따라 인터럽트 처리루틴의 상태가 적재 상태인지를 확인하게 된다(스텝 S43).
이때, 인터럽트 처리루틴의 상태가 적재 상태인 경우 해당 중앙처리장치(21)는 현재 태스크에 해당되는 데이터 메모리(26-1~26-n)에 저장된 문맥 데이터를 버스 스위치(24)를 통해 레지스터로 복원(Restore)하여(스텝 S44), 해당 태스크의 주 기능을 수행함과 동시에 해당 인터럽트 처리 루틴의 상태를 저장 상태로 천이하게 된다(스텝 S45).
여기서, 해당 버스 스위치(24)는 중앙처리장치(21)에서 첫번째 태스크를 실행하고 있는 상태이므로 자동으로 첫번째 데이터 메모리(26-1)를 선택하여 연결하고 있는 상태이다.
한편, 해당 클럭 패턴 발생부(23)는 중앙처리장치(21)에서 현재 태스크의 주 기능을 위해 할당된 시간을 기다렸다가 현재 태스크의 문맥 데이터에 대한 저장 동작을 시작할 수 있도록 인터럽트 신호(INT)를 발생시켜 중앙처리장치(21)로 전달하게 되고(스텝 S46), 해당 중앙처리장치(21)는 클럭 패턴 발생부(23)에 의해 인터럽트 신호(INT)가 전달됨에 따라 스텝 S43으로 귀환하여 인터럽트 처리루틴의 상태가 적재 상태인지를 확인하게 된다.
이때, 해당 인터럽트 처리루틴의 상태는 스텝 S45에서 저장 상태로 천이되었으므로 적재 상태가 아닌 저장 상태로 확인되고, 이에 따라, 해당 중앙처리장치(21)는 레지스터에 저장된 현재 태스크의 문맥 데이터를 버스 스위치(24)를 통해 해당되는 데이터 메모리(26-1~26-n)에 저장한 후(스텝 S47), 현재 태스크가 최종 태스크(MAX_TASK)인지 즉, 모든 태스크의 수행이 종료되었는지를 확인하게 된다(스텝 S48).
만약, 모든 태스크의 수행이 종료된 경우에는 중앙처리장치(21)에서의 태스크 스케쥴링 동작을 종료하게 된다.
하지만, 모든 태스크의 수행이 종료되지 않은 경우 즉, 현재 태스크가 최종 태스크가 아닌 경우에는 다음 태스크의 문맥 데이터를 처리할 수 있도록 현재 태스크의 값을 '1' 증가시켜 다음 태스크에 해당되는 데이터 메모리(26-1~26-n)를 선택 및 연결하게 한 후(스텝 S49), 해당 인터럽트 처리루틴의 상태를 적재 상태로 천이시키게 된다(스텝 S50).
즉, 해당 클럭 패턴 발생부(23)는 중앙처리장치(21)에서 현재 태스크의 문맥데이터에 대한 저장 동작이 종료되기를 기다렸다가 다음 태스크에 해당되는 데이터 메모리(26-1~26-n)를 액세스할 수 있도록 버스 스위치(24)의 데이터 메모리 선택(DM_Sel)을 제어하게 되는데, 이는 현재 태스크에 필요한 레지스터 숫자와 점프 명령어(jump instuction)에 따라 소정 시간(Δt)이 경과한 후, 해당 중앙처리장치(21)에서 다음 태스크에 해당되는 데이터 메모리(26-1~26-n)를 액세스할 수 있도록 스위치 클럭신호(SwClk)를 발생시켜 해당 버스 스위치(24)로 전달함으로써, 해당 버스 스위치(24)에서 다음 태스크에 해당되는 데이터 메모리(26-1~26-n)를 선택해서 연결하는 버스 스위칭을 수행하게 된다.
그리고, 스텝 S50에서 해당 중앙처리장치(21)는 인터럽트 처리루틴의 상태를 적재 상태로 천이시킨 후, 스텝 S41로 귀환하여 반복 동작을 수행하게 되는데, 이로써, 다음 태스크의 문맥 데이터에 대한 적재 및 저장 동작을 수행할 수 있게 되고, 이러한 동작은 모든 태스크의 수행이 종료되기까지 순차적으로 반복 수행하게 된다.
한편, 본 발명에서 상술한 인터럽트 신호에 의한 인터럽트 처리루틴의 기본적인 처리 절차를 의사 명령어(Pseudo-code)로 구현하면 첨부한 도면 도 5와 같은데, 이는 종래의 소프트웨어에 의한 동작보다 매우 적은 명령어를 사용하므로 실시간 처리에 유용하게 응용될 수 있다.
여기서, 변수로 사용되는 'State'는 현재 인터럽트 처리루틴의 상태를 나타내되, 적재 상태를 나타내는 'LOAD' 또는 저장 상태를 나타내는 'SAVE'의 값을 갖게 되며, 'Task'는 현재 수행되고 있는 태스크의 식별자(IDentifier)를 나타내되,최초 태스크의 식별자인 '0'부터 최종 태스크의 식별자인 'MAX_TASK'를 나타낸다.
그리고, 현재 인터럽트 처리루틴의 상태 'State'가 적재 상태를 나타내는 'LOAD'인 경우 현재 태스크에 해당되는 데이터 메모리에 기저장된 레지스터 값을 복원하고, 해당 인터럽트 처리루틴의 상태 'State'를 저장 상태인 'SAVE'로 천이시키게 된다.
또한, 현재 인터럽트 처리루틴의 상태 'State'가 저장 상태를 나타내는 'SAVE'인 경우 현재 태스크의 레지스터 값을 해당되는 데이터 메모리에 저장하고, 해당 태스크 값을 '1' 증가시켜 다음 태스크를 수행할 수 있도록 한 후, 해당 인터럽트 처리루틴의 상태 'State'를 저장 상태인 'LOAD'로 천이시키게 된다.
이때, 클럭 패턴 발생부의 하드웨어적인 스위치 클럭신호(SwClk)에 의해 버스 스위치의 소정 데이터 메모리 선택을 위한 버스 스위칭이 제어되어, 중앙처리장치에서 다음 태스크에 해당되는 데이터 메모리를 액세스할 수 있게 된다.
따라서, 본 발명에서는 영상신호나 음성신호 등과 같은 실시간 처리를 요구하는 실시간 신호 처리의 다채널 구현이 가능해지고, 실시간 운영체제의 메모리 액세스 과부하를 최소화시킬 수 있게 된다.
또한, 본 발명에 따른 실시예는 상술한 것으로 한정되지 않고, 본 발명과 관련하여 통상의 지식을 가진자에게 자명한 범위내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.
이상과 같이, 본 발명은 각각의 태스크에 대해 데이터 메모리가 하나씩 할당되도록 하고, 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호와 각 태스크에 해당되는 데이터 메모리 선택을 위한 스위치 클럭신호를 발생시켜 각 태스크의 문맥 데이터에 대한 적재 및 저장 동작을 순차적으로 반복 수행함으로써, 메모리 액세스시의 부하 및 이로 인한 시간 지연이 최소화되어 실시간 처리가 가능해진다.

Claims (5)

  1. 각각의 태스크에 대해 하나씩 할당되어 해당되는 태스크의 문맥 데이터를 저장하는 다수의 데이터 메모리와; 각 태스크의 적재/저장 동작 절체를 위한 인터럽트 신호와 각 태스크에 해당되는 상기 데이터 메모리 선택을 위한 스위치 클럭신호를 발생시키는 클럭 패턴 발생부와; 상기 클럭 패턴 발생부의 스위치 클럭신호에 따라 다음 태스크에 필요한 데이터 메모리를 선택해서 연결하는 버스 스위치와; 상기 클럭 패턴 발생부의 인터럽트 신호에 따라 현재 태스크에 해당되는 데이터 메모리를 액세스하여 문맥 데이터에 대한 적재 및 저장 동작을 수행하는 중앙처리장치를 포함하는 것을 특징으로 하는 하드와이어드 태스크 스케쥴러.
  2. 제 1항에 있어서,
    상기 중앙처리장치에 의해 리셋되어 각 태스크의 수행시간을 조절하기 위해 상기 클럭 패턴 발생부의 클럭 패턴 발생을 리셋시키는 카운터를 더 포함하는 것을 특징으로 하는 하드와이어드 태스크 스케쥴러.
  3. 문맥 데이터 적재를 위한 인터럽트 신호를 발생시켜 현재 태스크의 문맥 데이터를 레지스터로 복원하는 과정과; 인터럽트 처리루틴의 상태를 저장 상태로 천이하는 과정과; 문맥 데이터 저장을 위한 인터럽트 신호를 발생시켜 상기 현재 태스크의 문맥 데이터를 해당되는 데이터 메모리에 저장하는 과정과; 다음 태스크의 문맥 데이터 처리를 위해 해당되는 데이터 메모리를 선택 및 연결하는 과정과; 상기 인터럽트 처리루틴의 상태를 적재 상태로 천이하는 과정을 포함하는 것을 특징으로 하는 하드와이어드 태스크 스케쥴러의 스케쥴링 방법.
  4. 제 3항에 있어서,
    상기 현재 태스크의 문맥 데이터를 레지스터로 복원하는 과정은, 카운트 리셋신호를 발생시켜 현재 태스크의 수행시간을 조절하기 위한 카운트를 시작하게 하는 단계와; 클럭 패턴 발생을 리셋시켜 현재 태스크의 문맥 데이터 적재를 위한 인터럽트 신호를 발생시키는 단계와; 인터럽트 처리루틴의 상태가 적재 상태인 경우 현재 태스크의 문맥 데이터를 레지스터로 복원하는 단계를 더 포함하는 것을 특징으로 하는 하드와이어드 태스크 스케쥴러의 스케쥴링 방법.
  5. 제 3항에 있어서,
    상기 다음 태스크의 문맥 데이터 처리를 위해 해당되는 데이터 메모리를 선택 및 연결하는 과정은, 현재 태스크의 문맥 데이터를 해당되는 데이터 메모리에 저장한 후, 현재 태스크가 최종 태스크인지를 확인하는 단계와; 현재 태스크가 최종 태스크가 아닌 경우 다음 태스크의 문맥 데이터 처리를 위해 현재 태스크의 값을 '1' 증가시켜 다음 태스크에 해당되는 데이터 메모리를 선택 및 연결하는 단계를 더 포함하는 것을 특징으로 하는 하드와이어드 태스크 스케쥴러의 스케쥴링 방법.
KR1019990056677A 1999-12-10 1999-12-10 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법 KR20010055463A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990056677A KR20010055463A (ko) 1999-12-10 1999-12-10 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990056677A KR20010055463A (ko) 1999-12-10 1999-12-10 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법

Publications (1)

Publication Number Publication Date
KR20010055463A true KR20010055463A (ko) 2001-07-04

Family

ID=19624980

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990056677A KR20010055463A (ko) 1999-12-10 1999-12-10 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법

Country Status (1)

Country Link
KR (1) KR20010055463A (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100401613B1 (ko) * 2000-12-26 2003-10-11 현대자동차주식회사 범용 운영체제의 실시간 처리방법
KR100428673B1 (ko) * 2001-12-22 2004-04-28 엘지전자 주식회사 클럭디바이스의 인터럽트 세분화 방법
KR100663709B1 (ko) * 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
KR100679050B1 (ko) * 2005-12-12 2007-02-06 삼성전자주식회사 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
KR100728899B1 (ko) * 2005-10-27 2007-06-15 한국과학기술원 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서
CN1322705C (zh) * 2003-12-23 2007-06-20 华为技术有限公司 一种转发设备的数据平面复位方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100401613B1 (ko) * 2000-12-26 2003-10-11 현대자동차주식회사 범용 운영체제의 실시간 처리방법
KR100428673B1 (ko) * 2001-12-22 2004-04-28 엘지전자 주식회사 클럭디바이스의 인터럽트 세분화 방법
CN1322705C (zh) * 2003-12-23 2007-06-20 华为技术有限公司 一种转发设备的数据平面复位方法
KR100728899B1 (ko) * 2005-10-27 2007-06-15 한국과학기술원 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서
KR100679050B1 (ko) * 2005-12-12 2007-02-06 삼성전자주식회사 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
KR100663709B1 (ko) * 2005-12-28 2007-01-03 삼성전자주식회사 재구성 아키텍처에서의 예외 처리 방법 및 장치
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치

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
US7412590B2 (en) Information processing apparatus and context switching method
JP2002533807A (ja) 割込み/ソフトウエア制御スレッド処理
JPH02267634A (ja) 割込み処理装置
US5968159A (en) Interrupt system with fast response time
JPS6364144A (ja) 記憶装置間デ−タ転送方式
KR20010055463A (ko) 하드와이어드 태스크 스케쥴러 및 그 태스크 스케쥴러의스케쥴링 방법
US5809335A (en) Data transfer apparatus capable of handling DMA block transfer interruptions
US5241676A (en) Method for controlling process priority in semaphore operation
JP2004516547A (ja) 中断制御装置
JP2001256062A (ja) 割込処理方法およびその方法を用いた演算処理装置
US20010039558A1 (en) Cache memory management method for real time operating system
JP2003345406A (ja) 制御装置
EP2256631A2 (en) Task management device, method and program therefor
KR20040101260A (ko) 가상 직접 메모리 액세스를 위한 방법 및 장치
JPH07114518A (ja) マルチプロセッサシステムにおけるタスクスケジューリング方式
JPH06259115A (ja) プログラマブルコントローラ
CA1217566A (en) Real-time data processing system for processing time period commands
JPS63636A (ja) タスク制御方式
JPS6212535B2 (ko)
WO2005085994A2 (en) Multi-tasking data processing system
JPH0821027B2 (ja) A/d変換装置内蔵マイクロコンピュータ
JPH03156536A (ja) マイクロプロセッサ
JPH07219788A (ja) タスク切替え管理装置

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination