KR19990058732A - 하드웨어 실시간 멀티태스킹 장치 및 방법 - Google Patents

하드웨어 실시간 멀티태스킹 장치 및 방법 Download PDF

Info

Publication number
KR19990058732A
KR19990058732A KR1019970078886A KR19970078886A KR19990058732A KR 19990058732 A KR19990058732 A KR 19990058732A KR 1019970078886 A KR1019970078886 A KR 1019970078886A KR 19970078886 A KR19970078886 A KR 19970078886A KR 19990058732 A KR19990058732 A KR 19990058732A
Authority
KR
South Korea
Prior art keywords
task
hardware
memory
real
software
Prior art date
Application number
KR1019970078886A
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 KR1019970078886A priority Critical patent/KR19990058732A/ko
Publication of KR19990058732A publication Critical patent/KR19990058732A/ko

Links

Landscapes

  • Multi Processors (AREA)

Abstract

본 발명은 하드웨어 실시간 멀티태스킹 장치 및 방법에 관한 것으로, 종래의 방법에 있어서는 특별한 하드웨어의 제약 없이 임베디드 시스템의 내부 메모리와 프로세서 제어블럭을 통하여 소프트웨어적으로 이루어져 병행성 제어(Concurrency Control)시 자원에 대해 독점성을 부여하는 상호배제성이나, 서로 다른 프로세서가 서로의 자원을 공유하여 교착상태 등을 이용하나, 문제점 등을 배제하기 위한 규칙만 있을 뿐 하드웨어적인 기능은 추가되지를 않고 있을 뿐 아니라 운영체제까지 메모리영역에 포함되므로 전체적인 소프트웨어 코드가 길어져 고도의 기능을 가지는 복합단말기에서 메모리용량의 증대를 가져와 가격 상승요인이 되는 문제점이 있었다. 따라서, 본 발명은 소프트웨어로 이루어진 실시간 운영체제를 하드웨어로 대체함으로써 소프트웨어의 크기를 줄일 수 있어 임베디드 시스템 환경에서 메모리를 차지하는 프로그램 양이 줄어 비용을 절감시킬 뿐 아니라 상호 공유자원을 세마포 제어 레지스터가 제어를 함으로써 프로그래머는 이 레지스터만 참조하여 프로그램하게 되므로 상호배제, 교착상태 등의 문제를 근본적으로 피할 수 있게되고, 종랭의 하드웨어에 하드웨어 실시간 스캐쥴러와 세마포 제어 레지스터만 추가하면 종래의 메모리 영역을 그대로 이용하여 구현할 수 있으므로 시스템의 소형화 및 프로그램 설계를 용이하게 하는 효과가 있다.

Description

하드웨어 실시간 멀티태스킹 장치 및 방법
본 발명은 하드웨어 실시간 멀티태스킹 방법에 관한 것으로, 특히 임베디드 마이크로컴퓨터(Embedded Microcomputer)에서 사용하는 실시간 운영체제를 이용하여 멀티태스킹을 하드웨어로 구현하는데 적당하도록 한 하드웨어 실시간 멀티태스킹 장치 및 방법에 관한 것이다.
도1은 종래의 기술을 보인 도로서, 이에 도시된 바와 같이 종래의 운영체제는 거의 소프트웨어로 구현되며 운영체제가 관리하는 주요 공유 자원으로는 기억장치 공간과 처리시간이 있다. 이중 기억장치의 관리는 보통 가상 메모리를 관리하여 최소 두 레벨의 계층적 저장 장치로 운영체제가 프로그래머의 저장 영역 할당 없이도 기억공간을 효과적으로 분배하고, 실행되는 동안 사용된 메모리의 구성과 용량을 무관하게 하며, 메모리 계층화를 통하여 높은 접근율과 낮은 비트당 비용을 낮추도록 한다. 처리시간은 중앙처리 장치(CPU)에서의 처리와 입출력 단자에서의 일정이다.
멀티미디어 환경에서는 처리해야할 태스크(Task)의 수가 늘어나며, 다중 프로그래밍 환경하에서는 여러 가지의 태스크를 동시에 관리 해주어야 한다. 따라서, 운영체제는 응용 소프트웨어와 하드웨어를 직접 연결하여 중앙처리장치 운용시간, 기억장치 공간, 입출력 장치 등이 효율적으로 활용되도록 한다. 특히 공유자원에 대한 제어와 이벤트발생에 대한 신호 및 두 개의 태스크를 동기화시키는 문제를 위해 사용되는 세마포(Semaphore)를 구성하여 멀티태스킹을 가능하도록 한다. 대부분 소프트웨어적으로 구현되므로 스택 포인터, 범용레지스터 프로그램 카운터, 프로그램 상태어의 플래그를 참조하여 태스크의 관리와 일정관리를 한다.
종래의 임베디드 마이크로컴퓨터에 사용되는 실시간 운영체제는 주로 소프트웨어로 구현되며 임베디드 마이크로컴퓨터안에 있는 메모리모드를 수퍼바이저 모드로 전환하여 메모리에 상주하게 된다. 실시간 운영체제는 보통 3가지 상태인 준비, 실행, 보류의 단계를 가지고 동작을 한다. 또한 태스크 발생에 따라 생기는 각각의 프로세스들은 임베디드 마이크로컴퓨터안에 내장되어 있는 타이머가 생성한 인터럽트에 의해 실행이 중단될 수 있다. 프로세서가 여러개 발생되는 멀티태스킹 환경안에서는 운영체제는 한 프로세서에서 다른 프로세서로 제어를 이관하는 문맥전환을 한다. 커널(Kernel)또는 핵(Nucleus)은 각 프로세서의 최근 실행상태 또는 문맥을 정의하는 프로세서 제어블록(Process Control Block : PCB)이라는 데이터 세그먼크에 각 프로세서의 정보를 기록하고 있다. PCB는 주기억 장치에 저장되며, 각 프로세서의 실행과정에서 생기는 프로세서의 환경인 프로그램 카운터, 프로그램 상태어, 범용 주소/데이터 레지스터의 내용을 기록한다. 이러한 실시간 운영체제는 다수의 태스크간의 스캐쥴링이나 스위칭을 하여 멀티태스킹을 하능하게 한다. 또한 대부분의 멀티태스킹 커널에 제안되고 있는 프로토콜메카니즘인 세마포는 크게 3가지 동작을 하는데, 최기화(Initialize or Create), 보류(Wait or pend), 신호(Signal or post)를 수행한다. 커널의 상태에 따라 태스크는 우선순위가 높은 태스크의 세마포를 받아들이거나, 선입선출(First in First out : FIFO)대로 처음의 태스크를 받아들일 수 있는 세마포를 받아들인다.
그러나, 상기 종래의 방법에 있어서는 특별한 하드웨어의 제약 없이 임베디드 시스템의 내부 메모리와 프로세서 제어블럭을 통하여 소프트웨어적으로 이루어져 병행성 제어(Concurrency Control)시 자원에 대해 독점성을 부여하는 상호배제성이나, 서로 다른 프로세서가 서로의 자원을 공유하여 교착상태 등을 이용하나, 문제점 등을 배제하기 위한 규칙만 있을 뿐 하드웨어적인 기능은 추가되지를 않고 있을 뿐 아니라 운영체제까지 메모리영역에 포함되므로 전체적인 소프트웨어 코드가 길어져 고도의 기능을 가지는 복합단말기에서 메모리용량의 증대를 가져와 가격 상승요인이 되는 문제점이 있었다.
따라서, 본 발명은 상기와 같은 종래의 문제점을 해결하기 위하여 창출한 것으로, 현재의 복잡한 소프트웨어로 이루어지는 실시간 운영체제를 하드웨어로 대체함으로써 소프트웨어의 크기를 줄일뿐 아니라 임베디드 시스템 환경에서 메모리를 차지하는 프로그램 양이 줄어 비용을 절감할 수 있도록 하는 하드웨어 실시간 멀티태스킹 장치 및 방법을 제공 하는데 그 목적이 있다.
도1은 종래 소프트웨어에 의한 멀티태스킹 방법의 구성도.
도2는 본 발명에 의한 멀티태스킹 방법의 순서도.
도3은 본 발명에 의한 멀티태스킹 장치의 구성도.
***도면의 주요 부분에 대한 부호의 설명***
10 : 하드웨어 실시간 스케쥴러 20 : 세마포 제어 레지스터
30 : 태스크 실행 명령어 디코더 40 : 태스크 이벤트 레지스터
이와 같은 목적을 달성하기 위한 본 발명 하드웨어 실시간 멀티태스킹 장치 및 방법은, 태스크 명령어에 의해 메모리에 기록되는 프로그램 상태어 및 해당 태스크를 관리하는 하드웨어 실시간 스케쥴러와; 프로그램 상태어를 별도로 관리하는 세마포 제어 레지스터와; 발생된 태스크의 실행 명령어를 디코딩하여 우선순위를 결정하는 명령어 디코더와; 상기 명령어 디코더에서 결정된 우선순위에 따라 해당 태스크를 저장하는 태스크 이벤트 레지스터로 구성하여 된 것을 특징으로 한다.
도2는 본 발명 하드웨어 실시간 멀티태스킹 방법의 순서도로서, 이에 도시한 바와 같이 태스크 실행 명령어가 들어오면 태스크 실행 명령어 디코더(30)는 공유자원을 사용하는지를 결정하는 단계와; 공유자원이 사용된다면 세마포 제어 레지스터(20)에 PSW의 해당 플래그를 세트하는 단계와; 만약 공유 자원이 3개이상 동시에 사용되면 1/n비트 생성 블록에서 1개의 플래그를 동시에 n개의 서브 세마포 제어 레지스터로 나누는 단계와; 상기와 같이 나누어진 서브 세마포 제어 레지스터는 입출력 프로세스에서 참조 하여 프로세서의 대기에 쓰여지는 단계와; 또한 태스크 실행 명령어 디코더(30)에 의해 태스크의 우선 순위를 결정하는 단계와; 우선순위에 따라 세마포 제어 레지스터(20)에 해당하는 플래그를 세트시키고, 하드웨어 실시간 스케쥴러(10)가 태스크 실행을 스케쥴링 하는 단계와; 태스크 실행 명령어 디코더(30)에 따라 스택 크기를 결정하는 단계와; 결정된 스택 크기에 따라 태스크 이벤트 레지스터(40)에 메모리를 할당 하고 해당 태스크의 문맥을 만드는 단계로 이루어진다.
도3은 본 발명 하드웨어 실시간 멀티태스킹 장치 구성도로서, 이에 도시한 바와 같이 태스크 명령어에 의해 메모리에 기록되는 프로그램 상태어 및 해당 태스크를 관리하는 하드웨어 실시간 스케쥴러(10)와; 프로그램 상태어를 별도로 관리하는 세마포 제어 레지스터(20)와; 발생된 태스크의 실행 명령어를 디코딩하여 우선순위를 결정하는 명령어 디코더(30)와; 상기 명령어 디코더(30)에서 결정된 우선순위에 따라 해당 태스크를 저장하는 태스크 이벤트 레지스터(40)로 구성된다.
여기서 하드웨어 실시간 스케쥴러(10)는 상기 문맥을 제어하며 문맥간의 전환을 제어하며 상기의 공유자원 사용의 판단, 우선순위, 문맥의 할당을 하며, 여러개의 태스크간의 전환 등을 위한 참조는 세마포 제어 레지스터(20)를 참조하여 제어를 한다. 태스크 명령어는 우선순위 클래스와 태스크 클래스를 구성하였는데, 미리 정해진 클래스의 우선순위로 태스크 명령어 디코더(30)가 이를 분류한다. 이렇게 분류된 명령어의 제어는 태스크 상태 컨트롤러에 따라 태스크들이 제어 되도록 이루어짐으로써 달성되는 것으로, 이와 같이 구성한 본 발명의 동작 및 작용을 설명한다.
태스크 실행 명령어가 들어오면 태스크 실행 명령어 디코더(30)는 공유자원을 사용하는지를 결정을 한다. 공유자원이 사용된다면 세마포 제어 레지스터(20)에 PSW의 해당 플래그를 세트한다. 만약 공유 자원이 3개이상 동시에 사용되면 1/n비트 생성 블록에서 1개의 플래그를 동시에 n개로 나눈다. 1/n비트의 생성은 기존의 세마포가 바이너리 세마포, 카운터 세마포를 사용하는 것과 달리 서브 세마포 셀을 구성하여 1개의 세마포가 다시 n개의 세마포로 나누어 지도록 한다. 이렇게 나누어진 서브 세마포 제어 레지스터는 입출력 프로세스에서 참조를 하여 프로세서의 대기에 쓰여진다.
또한 태스크 실행 명령어 디코더(30)는 태스크의 우선 순위를 결정한다. 우선순위에 따라 세마포 제어 레지스터(20)에 해당하는 플래그를 세트시키고, 하드웨어 실시간 스케쥴러(10)가 태스크 실행을 스케쥴링 한다. 태스크 실행 명령어 디코더(30)에 따라 스택 크기를 결정한다. 결정된 스택 크기에 따라 태스크 이벤트 레지스터(40)에 메모리를 할당 하고 해당 태스크의 문맥을 만들고, 하드웨어 실시간 스케쥴러(10)가 이 문맥을 제어하며 문맥간의 전환도 이 하드웨어 실시간 스케쥴러가 제어를 한다.
이상에서 설명한 바와 같이 본 발명 하드웨어 실시간 멀티태스킹 장치 및 방법은 소프트웨어로 이루어진 실시간 운영체제를 하드웨어로 대체함으로써 소프트웨어의 크기를 줄일 수 있어 임베디드 시스템 환경에서 메모리를 차지하는 프로그램 양이 줄어 비용을 절감시킬 뿐 아니라 상호 공유자원을 세마포 제어 레지스터가 제어를 함으로써 프로그래머는 이 레지스터만 참조하여 프로그램하게 되므로 상호배제, 교착상태 등의 문제를 근본적으로 피할 수 있게되고, 종랭의 하드웨어에 하드웨어 실시간 스캐쥴러와 세마포 제어 레지스터만 추가하면 종래의 메모리 영역을 그대로 이용하여 구현할 수 있으므로 시스템의 소형화 및 프로그램 설계를 용이하게 하는 효과가 있다.

Claims (2)

  1. 태스크 명령어에 의해 메모리에 기록되는 프로그램 상태어 및 해당 태스크를 관리하는 하드웨어 실시간 스케쥴러와; 프로그램 상태어를 별도로 관리하는 세마포 제어 레지스터와; 발생된 태스크의 실행 명령어를 디코딩하여 우선순위를 결정하는 명령어 디코더와; 상기 명령어 디코더에서 결정된 우선순위에 따라 해당 태스크를 저장하는 태스크 이벤트 레지스터로 구성하여 된 것을 특징으로 하는 하드웨어 실시간 멀티태스킹 장치.
  2. 태스크 실행 명령어가 들어오면 태스크 실행 명령어 디코더는 공유자원을 사용하는지를 결정하는 단계와; 공유자원이 사용된다면 세마포제어 레지스터에 PSW의 해당 플래그를 세트하는 단계와; 만약 공유 자원이 3개이상 동시에 사용되면 1/n비트 생성 블록에서 1개의 플래그를 동시에 n개로 나누는 단계와; 상기와 같이 나누어진 서브 세마포 제어 레지스터는 입출력 프로세스에서 참조를 하여 프로세서의 대기에 쓰여지는 단계와; 또한 태스크 실행 명령어 디코더에 의해 태스크의 우선 순위를 결정하는 단계와; 우선순위에 따라 세마포 제어 레지스터에 해당하는 플래그를 세트시키고, 하드웨어 실시간 스케쥴러가 태스크 실행을 스케쥴링 하는 단계와; 태스크 실행 명령어 디코더에 따라 스택 크기를 결정하는 단계와; 결정된 스택 크기에 따라 태스크 레지스터에 메모리를 할당 하고 해당 태스크의 문맥을 만드는 단계로 이루어지는 것을 특징으로 하는 하드웨어 실시간 멀티태스킹 방법.
KR1019970078886A 1997-12-30 1997-12-30 하드웨어 실시간 멀티태스킹 장치 및 방법 KR19990058732A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970078886A KR19990058732A (ko) 1997-12-30 1997-12-30 하드웨어 실시간 멀티태스킹 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970078886A KR19990058732A (ko) 1997-12-30 1997-12-30 하드웨어 실시간 멀티태스킹 장치 및 방법

Publications (1)

Publication Number Publication Date
KR19990058732A true KR19990058732A (ko) 1999-07-15

Family

ID=66180082

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970078886A KR19990058732A (ko) 1997-12-30 1997-12-30 하드웨어 실시간 멀티태스킹 장치 및 방법

Country Status (1)

Country Link
KR (1) KR19990058732A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369799B1 (ko) * 2000-12-30 2003-01-30 삼성전자 주식회사 엠베드 시스템의 동적 메모리 관리방법 및 장치
KR100377165B1 (ko) * 2000-12-30 2003-03-26 주식회사 하이닉스반도체 억세스 시간의 선택적 조정 기능을 갖는 램 억세스 장치
KR20040079341A (ko) * 2004-04-28 2004-09-14 (주)신엠 화면공유방법 및 공유된 화면을 이용한 서비스 방법
KR100728899B1 (ko) * 2005-10-27 2007-06-15 한국과학기술원 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100369799B1 (ko) * 2000-12-30 2003-01-30 삼성전자 주식회사 엠베드 시스템의 동적 메모리 관리방법 및 장치
KR100377165B1 (ko) * 2000-12-30 2003-03-26 주식회사 하이닉스반도체 억세스 시간의 선택적 조정 기능을 갖는 램 억세스 장치
KR20040079341A (ko) * 2004-04-28 2004-09-14 (주)신엠 화면공유방법 및 공유된 화면을 이용한 서비스 방법
KR100728899B1 (ko) * 2005-10-27 2007-06-15 한국과학기술원 복수의 레지스터 집합과 하드웨어 작업 관리자를 가진고성능 멀티쓰레드 임베디드 프로세서

Similar Documents

Publication Publication Date Title
US8087020B2 (en) Method and system for performing real-time operation
US8171477B2 (en) Method and system for performing real-time operation
US7657890B2 (en) Scheduling system and method in which threads for performing a real-time operation are assigned to a plurality of processors
US7979680B2 (en) Multi-threaded parallel processor methods and apparatus
US5448732A (en) Multiprocessor system and process synchronization method therefor
US7685599B2 (en) Method and system for performing real-time operation
US8495651B2 (en) Method and system for performing real-time operation including plural chained tasks using plural processors
US4829425A (en) Memory-based interagent communication mechanism
US7356666B2 (en) Local memory management system with plural processors
US9052957B2 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
US7412590B2 (en) Information processing apparatus and context switching method
US20140115594A1 (en) Mechanism to schedule threads on os-sequestered sequencers without operating system intervention
EP1760580B1 (en) Processing operation information transfer control system and method
US20050066149A1 (en) Method and system for multithreaded processing using errands
US6052729A (en) Event-reaction communication protocol in an object oriented processor array
CA1272295A (en) Multi-channel shared resource processor
KR19990058732A (ko) 하드웨어 실시간 멀티태스킹 장치 및 방법
Quammen et al. Register window management for a real-time multitasking RISC
SU907551A1 (ru) Мультимикропроцессорна система
Anderson et al. The DASH Local Kernel Structure
Hoare Computer Science Department

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application