KR20050014636A - 멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크제어장치 - Google Patents

멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크제어장치

Info

Publication number
KR20050014636A
KR20050014636A KR1020040010460A KR20040010460A KR20050014636A KR 20050014636 A KR20050014636 A KR 20050014636A KR 1020040010460 A KR1020040010460 A KR 1020040010460A KR 20040010460 A KR20040010460 A KR 20040010460A KR 20050014636 A KR20050014636 A KR 20050014636A
Authority
KR
South Korea
Prior art keywords
stack
task
area
interrupt
cpu
Prior art date
Application number
KR1020040010460A
Other languages
English (en)
Inventor
마사요시 코다마
케이타 코바야시
Original Assignee
마쯔시다덴기산교 가부시키가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마쯔시다덴기산교 가부시키가이샤 filed Critical 마쯔시다덴기산교 가부시키가이샤
Publication of KR20050014636A publication Critical patent/KR20050014636A/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/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05CEMBROIDERING; TUFTING
    • D05C11/00Devices for guiding, feeding, handling, or treating the threads in embroidering machines; Machine needles; Operating or control mechanisms therefor
    • D05C11/18Shuttles ; Shuttle holders; Shuttle driving 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

Abstract

아이들 태스크 동작중에 인터럽트가 발생하면, 현재의 스택 영역에 CPU 레지스터의 값을 보존한 후 인터럽트 처리 전용의 스택 영역으로 전환한다. 이 때, 스택영역과 인터럽트 처리 전용의 스택영역이 겹쳐지도록 스택을 구성한다. 아이들 처리중에 인터럽트가 발생한 경우에는 CPU 레지스터의 값을 보존한 영역을 겹쳐쓰도록 인터럽트 처리의 스택을 사용한다. 따라서, 멀티태스크 시스템에 있어서 인터럽트 처리가 사용하는 스택을 아이들 처리가 사용하는 스택과 공유함으로써 RAM 사용량을 삭감한다.

Description

멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크 제어장치{MEMORY MANAGING SYSTEM AND TASK CONTROLLER IN MULTITASK SYSTEM}
본 발명은 소프트웨어의 스택 메모리의 관리방법에 관한 것으로, 특히 멀티태스크 시스템을 실행하는 경우의 스택 메모리 사용량을 삭감하는 프로그램 구조에 관한 것이다.
프로그램에서의 제어의 복잡화의 진전에 의해, 컴퓨터에 의한 작업의 단위인 태스크를 한번에 2개 이상 처리할 수 있는 멀티태스크 시스템이 일반적으로 사용되고 있다. 이 멀티태스크 시스템을 이용함으로써, 복수의 태스크를 효율적으로 전환하여 실행할 수 있다.
도 3은 종래의 멀티태스크 시스템에서의 RAM의 사용상황의 일예를 모식적으로 나타낸 도면이다. 도 3에서의 참조부호가 지정된 영역은 각 태스크에서 사용하는 스택 메모리 영역(이하, 스택이라 함)을 나타낸다. 특히, RAM위에는, 멀티태스크 시스템에 의해 실행되는 복수의 태스크1, 태스크2, …, 태스크 n의 복수의 스택과, 아이들 태스크용 스택, 인터럽트 처리 전용의 스택이 구축되어 있다.
스택은 각각 스택(301,311,321), 복귀 PC 보존영역(302,312,322), PSW 보존영역(303,313,323) 및 CPU 레지스터 보존영역(314,324,304)으로 구성되어 있다. 또한, 인터럽트 처리용 스택은 인터럽트 발생시의 태스크 SP를 보존하는 복귀 SP 보존영역(305)과, 인터럽트 처리 시퀀스에 사용하는 인터럽트 처리용 스택 영역(306)을 포함한다.
여기서, 인터럽트 처리는 태스크(통상처리)가 실행되어 있을 때에 이 태스크를 일시적으로 중단하여, 예를 들어 타이머의 제어에 의해 일정 시간마다 실행되는 처리나, 외부요인에 의해 실행되는 처리를 나타낸다.
예를 들면, 태스크 1가 동작하고 있을 때에 인터럽트가 발생한 경우에는 스택(311)을 이용하여 실행되고 있는 태스크 1는 일시적으로 중단된다. 이 때, 현재의 PC 레지스터의 값은 복귀 PC 보존영역(312)에 보존되고, 현재의 PSW 레지스터의 값은 PSW 보존영역(313)에 보전된다. 또한, 태스크 1에 사용되었던 CPU 레지스터의 값을 CPU 레지스터 보전영역(314)에 보존한다. 다음으로, 태스크 1의 SP 레지스터의 값을 인터럽트 전용 스택 영역내의 복귀 SP 보존영역(305)에 보존하고, SP 레지스터의 값을 SP 보존영역(305)과 인터럽트에 사용하는 스택 영역(306)의 경계, 즉 스택 영역(306)의 바텀 영역을 가리키도록 설정함으로써, 스택 영역을 태스크 스택에서 인터럽트 처리용 스택으로 전환한다.
인터럽트 처리가 종료하였을 때에는 SP 보존영역(305)에 보존되어 있던 값을 SP 레지스터에 설정함으로써 태스크 스택으로 전환된다. 그 후에는, CPU 레지스터보존영역(314)에 보존되어 있던 값을 각 CPU 레지스터로 설정하고, PSW 보존영역 (313)과 복귀 PC 보존영역(312)에 보존되어 있던 값도 마찬가지로 PSW 레지스터와 PC 레지스터로 복귀함으로써 원래의 태스크 1로 복귀할 수 있다. 이러한 구성으로 함으로써, 멀티태스크 시스템에 의해 복수의 태스크를 실행중에 소정의 인터럽트 처리를 행할 수 있다(예를 들면, 특허문헌 1 참조).
[특허문헌 1] 특개평 08-123698호 공보
그러나, 도 3에 나타낸 스택 구조에서는 인터럽트 발생시에 보존하는 CPU 레지스터의 퇴피용량이 태스크의 처리내용에 관계없이 주로 결정되고, 이 중에는 보존할 필요가 없는 레지스터도 많이 포함되어 있을 가능성이 있어 불필요하게 메모리를 소비하고 있다. 이것에 대해서는, 예를 들어 인터럽트 처리의 선두부분에서 보존하는 CPU 레지스터의 종류를 판별하는 방법이 있지만, 인터럽트 응답성능을 악화시켜 버린다는 문제점을 가지고 있다.
본 발명은 이러한 문제점을 해결하는 것으로, 멀티태스크 시스템을 실행하는 n개의 태스크 스택과, 상기 n개의 태스크 스택에 대하여 공유되어 기능하는 인터럽트 처리용 스택과, 인터럽트 처리가 발생하였을 때에 실행중의 태스크 스택으로 퇴피되는 PC, PSW, CPU 레지스터를 포함하고, 상기 인터럽트 처리용 스택 영역은 상기 n개의 태스크 스택의 어느 하나의 태스크 스택과 공유하여 사용된다. 상기 인터럽트 처리가 발생하였을 때에 현재의 태스크 스택에 PC, PSW, CPU 레지스터의 값을 퇴피한 후에 스택 포인터를 인터럽트 처리측으로 전환하고, 상기 인터럽트 처리가종료하였을 때에는 스택 포인터를 태스크 스택으로 전환한 후에 상기 태스크 스택상에 보존된 PC, PSW, CPU 레지스터의 값을 태스크 스택에서 복귀시켜 태스크의 동작을 재개시키도록 한다.
이상의 설명에 의해, 본 발명의 효과로서 리얼타임 OS를 이용한 시스템의 태스크 스택 영역과 인터럽트 스택 영역을 중복하여 사용함으로써 시스템 전체에서의 메모리 사용량을 삭감할 수 있는 것이다. 따라서, 소용량의 메모리로 멀티태스크 시스템을 가동시킬 수 있다는 이점이 있다.
도 1은 본 발명의 실시예의 스택 구조를 모식적으로 나타낸 도면.
도 2는 종래의 멀티태스크 시스템에서의 스택 구조를 모식적으로 나타낸 도면.
도 3은 종래의 멀티태스크 시스템에서의 스택 사용상황을 상세하게 나타낸 도면.
도 4는 본 발명의 멀티태스크 시스템에서의 스택 사용상황을 상세하게 나타낸 도면.
도 5는 종래의 멀티태스크 시스템에서 인터럽트 발생시의 스택전환 처리 내용을 나타낸 흐름도.
도 6은 본 발명의 멀티태스크 시스템에서 인터럽트 발생시의 스택 전환 처리 내용을 나타낸 흐름도.
도 7은 본 발명의 저소비 동작 모드로 이행시키는 경우의 스택 전환 처리내용을 나타낸 흐름도.
도 8은 인터럽트 종료시의 스택 전환 처리내용을 나타낸 흐름도.
도 9는 빈 루프의 경우의 아이들 태스크 처리내용을 나타낸 흐름도.
도 10은 저소비 동작모드로 이행하는 경우의 아이들 태스크 처리 내용을 나타낸 흐름도.
도 11은 저소비 동작모드로 이행시키는 경우의 아이들 태스크용 스택과 인터럽트 처리용 스택의 구조를 상세하게 나타낸 도면.
도 12는 실시예 1 및 2에서의 태스크 제어장치.
도 13은 실시예 3에서의 태스크 제어장치.
이하, 본 발명의 실시예에 대하여 도면을 참조하여 설명한다.
(실시예 1)
도 1은 본 발명의 멀티태스크 시스템에서의 스택의 사용방법을 나타낸 도면이다. 이 멀티태스크 시스템은 도 2에 나타낸 종래의 멀티태스크 시스템에 비하여 인터럽트 처리용 스택(107)의 배치장소에 특징이 있다.
도 2에 나타낸 종래의 멀티태스크 시스템은 3개의 태스크(102,104,106)와 1개의 인터럽트 처리 프로그램(108)이 운영체제(이하 OS라 함)(109)상에서 동작하고, 각각의 태스크나 프로그램에는 독립적으로 스택 영역(101,103,205,207)이 준비되어 있다. 또한, 3개의 태스크중 가장 우선도가 낮은 태스크를 아이들 태스크( 106)로 부르고, 이 아이들 태스크가 동작하고 있을 때에는 시스템이 처리할 태스크가 없는 상태이고 외부에서의 인터럽트 요구가 들어오는 것을 대기하는 상태를 나타낸다.
한편, 도 1에 나타낸 본 발명의 멀티태스크 시스템도 마찬가지로, 3개의 태스크(102,104,106)와 1개의 인터럽트 처리 프로그램(108)이 OS(109)상에서 동작하고, 각각의 태스크나 프로그램에는 독립적으로 스택 영역(101,103,105,107)이 준비되고 있다. 또한, 3개의 태스크중 가장 우선도가 낮은 아이들 태스크(106)도 동일하게 준비된다. 이 경우에, 인터럽트 처리용 스택(107)은 아이들 태스크용 스택영역(105)에 대하여 겹쳐지도록 배치되어 있고, 인터럽트 처리시의 스택 영역은 아이들 태스크 처리로 사용된 스택 영역을 겹쳐쓰기(스택 파괴)하면서 동작한다.
도 3은 종래의 멀티태스크 시스템에서 통상의 태스크 스택 영역이 2개, 아이들 태스크용 스택 영역이 1개, 인터럽트 처리용 스택영역이 1개인 경우의 스택 내용을 나타낸 도면이다.
도 3에서, 먼저 태스크 1가 동작하고 있을 때에는 스택 포인터(이하 SP)가 태스크 1 용의 스택 영역(311)을 가리키고, 태스크 1은 이 영역을 사용하면서 프로그램을 처리한다. 이 상태에서 인터럽트가 발생하고 CPU가 그 인터럽트를 수리하면, 하드웨어적으로 프로그램 카운터(이하, PC)와 프로세서 스테이터스 워드(이하, PSW)의 내용을 각각 스택 영역(312,313)에 보존한다. SP의 값은 자동적으로 PC와 PSW의 사이즈만큼 감산된다. 다음으로, CPU는 PC의 값을 인터럽트 처리 프로그램의 선두 위치로 이동시켜 OS 인터럽트 입구처리가 실행된다.
도 5는 종래의 멀티태스크 시스템에서의 태스크 동작중에 인터럽트를 수리하였을 때의 OS 인터럽트 입구처리의 흐름도이다. 이하에서는, 태스크 1의 동작중에 인터럽트가 발생한 경우에 대하여 설명한다. 먼저, 단계(S501)에서 CPU 레지스터의값을 스택 영역(314)에 보존한다. CPU 레지스터의 값은 CPU의 종류에 따라 다르지만, 가장 간단한 실장은 CPU가 탑재되어 있는 모든 CPU 레지스터를 보존하는 것이다. 다음으로, 단계(S502)에서, 현재의 SP의 값(이것은 해당하는 태스크 스택의 최종 어드레스와 동일함)을 인터럽트 처리용 스택영역의 바텀 위치에 있는 복귀 SP 보존영역(305)에 보전한다. 이것은 인터럽트 처리종료시에 SP가 가리키는 장소를 다시 태스크 스택으로 복귀시키는 데 필요한 처리이다. 다음으로, 단계(S503)에서는, 인터럽트 처리용 스택 영역(306)의 바텀 어드레스를 SP에 대입하여 스택을 태스크 스택 영역(314)에서 인터럽트 처리 전용 스택영역(306)으로 전환한다. 이 때, 태스크로의 복귀 SP 보존영역(305)을 겹쳐쓰지 않도록 SP의 값을 설정하는 것에 주의한다. 최후로, 단계(S504)에서, 애플리케이션에 의해 정의된 인터럽트 핸들러 함수를 콜하여 단계(S505)에서 애플리케이션의 인터럽트 핸들러 프로그램을 실행한다. 단계(S505)에서는 함수 리턴 형태로 OS 인터럽트 입구처리로 복귀하여 그 후에는 OS 인터럽트 출구처리로 이행한다.
도 8은 인터럽트 처리를 종료하고 태스크로 복귀할 때의 OS 인터럽트 출구처리의 흐름도이다. OS 인터럽트 출구처리에서는 먼저 단계(S801)에서 태스크로의 복귀 SP 보존영역(305)에 보존되어 있는 값을 SP로 복귀시킨다. 이것에 의해, 인터럽트 처리용 스택영역(306)은 미사용 상태로 된다. 일반적인 OS에서는, 단계(S802)에서 지연 디스패치 처리를 행한다. 이것은, 인터럽트 처리에서 태스크로 복귀할 때에 태스크가 전환될 필요가 있는지를 판정하고, 태스크가 전환될 필요가 있으면 SP의 값을 현재의 태스크 1에서 다른 태스크(예를 들면, 태스크 2)의 적당한 스택 번지를 가리키도록 변경하는 것이 행해진다. 또한, 본 발명에서는 지연 디스패치의 처리내용에 관해서는 본 발명의 주제로 선정하지 않았기 때문에 특별히 언급되지 않는다. 단계(S803)에서는 단계(S501)에서 보존하고 있던 CPU 레지스터의 값을 스택영역(314)에서 각 CPU 레지스터로 복귀하고, 최후로 단계(S804)에서 인터럽트에 의해 중단되어 있던 태스크 처리로 복귀한다. 이 때, CPU가 준비하고 있는 인터럽트 처리에서 복귀하는 명령을 실행함으로써 PC와 PSW의 내용을 스택에서 복귀한다.
태스크 동작중에 인터럽트를 수리하여 OS 인터럽트 입구처리에서 출구처리를 경유하여 태스크 복귀하는 단계는 상기에서 설명한 태스크 1에 없어도 도 3에 도시한 태스크 2 까지는 아이들 태스크에서도 모두 동일하다. 즉, 도 3에서 태스크 1가 사용하고 있는 (311~314)의 스택 영역을 그대로 (321~324), 또는 (301~304)의 스택 영역으로서 대체할 수 있다.
도 4는 본 발명의 멀티태스크 시스템에서 통상의 태스크 스택 영역이 2개, 아이들 태스크용의 스택영역이 1개인 경우의 스택 내용을 나타낸 도면이다.
도 4에서, 먼저 태스크 1가 동작하고 있을 때에는 SP가 (311)에 나타낸 태스크 1용의 스택영역을 가리키고, 태스크 1는 이 영역을 사용하면서 프로그램을 처리한다. 이 상태에서, 인터럽트가 발생하고 CPU가 그 인터럽트를 수리하면, 하드웨어적으로 PC와 PSW의 내용을 각각 스택영역(312,313)에 보존한다. 이 때, SP의 값은 자동적으로 PC와 PSW의 사이즈만큼 감산된다. 다음으로, CPU는 PC의 값을 인터럽트 처리 프로그램의 선두위치로 이동시켜 OS 인터럽트 입구 처리가 실행된다.
도 6은 태스크 동작중에 인터럽트를 수리하였을 때의 OS 인터럽트 입구처리의 흐름도를 나태내고 있다. OS 인터럽트 입구처리에서는 먼저 단계(S501)에서 CPU 레지스터의 값을 스택영역(314)에 보존한다. CPU 레지스터의 수는 CPU의 종류에 따라 다르지만, 가장 간단한 실장은 CPU가 탑재되어 있는 모든 CPU 레지스터를 보존하는 것이다. 다음으로, 단계(S602)에서 현재의 SP의 값(이것은 해당하는 태스크 스택의 최종 어드레스와 동일함)을 인터럽트 처리용 스택영역의 바텀 위치에 있는 복귀 SP 보존영역(405)에 보존한다. 이것은 인터럽트 처리종료시에 SP 처리가 가리키는 장소를 다시 태스크 스택으로 복귀시키는데 필요한 처리이다. 여기서, 주의를 요하는 것은 도 5에서의 종래 멀티태스크 시스템과 달리, 복귀 SP 보존영역(405)이 아이들 태스크의 CPU 레지스터 보존영역(404)에 겹쳐서 배치되어 있는 것이다. 다음으로, 단계(S603)에서는 인터럽트 처리용 스택영역(406)의 바텀 어드레스를 SP에 대입하여 스택을 태스크 스택에서 인터럽트 처리 전용 스택으로 전환한다. 이 때, 태스크로의 복귀 SP 보존영역(405)을 겹쳐쓰지 않도록 주의한다. 최후로, 단계(50 4)에서, 애플리케이션에 의해 정의된 인터럽트 핸들러 함수를 콜하여 단계(S505)에서 애플리케이션의 인터럽트 핸들러 프로그램을 실행한다. 단계(S505)에서는 함수 리턴 형태로 OS 인터럽트 출구처리로 이행한다. OS 인터럽트 출구처리에 대해서는 도 8에 의해 설명된 종래기술과 같은 처리이기 때문에 상세한 설명은 생략한다.
여기서, 태스크 동작중에 인터럽트를 수리하여 OS 인터럽트 입구처리에서 OS 인터럽트 출구 처리를 경유하여 태스크로 복귀하는 단계는 상기에서 설명한 태스크 1에 없어도 도 4에 나타낸 태스크 2에 대해서도 모두 동일하다. 즉, 도 4에서 태스크 1가 사용하고 있는 스택영역(311~314)을 그대로 스택영역(321~324)으로 대체할수 있다.
그러나, 아이들 스택이 사용하고 있는 스택 영역에 관해서는 사정이 다르다. 종래의 멀티태스크 시스템에서는 아이들 태스크가 사용하고 있는 스택영역(301~30 4)은 상기 태스크 1의 스택영역(311~314)에 그대로 치환할 수 있지만 본 발명의 경우는 도 4에 나타낸 스택영역(404), 복귀 SP 보존영역(405) 및 인터럽트 처리용 스택영역(406)이 겹쳐서 배치되어 있기 때문에 주의를 요한다. 이하에서는 아이들 태스크가 동작하고 있을 때에 인터럽트를 수리한 경우의 동작을 상세히 설명한다.
먼저, 아이들 태스크가 동작하고 있을 때에는 SP가 아이들 태스크 스택영역 (401)내의 번지를 가리키고, 아이들 태스크는 이 영역을 사용하면서 프로그램을 처리한다(그러나, 이 영역은 반드시 존재하는 것으로 한정되지 않고 제로 바이트인 경우도 있음). 이 상태에서, 인터럽트가 발생하고 CPU가 그 인터럽트를 수리하면, 하드웨어적으로 PC와 PSW의 내용을 각각 PC 보존영역(402), PSW 보존영역(403)에 보존한다. 여기서, SP의 값은 자동적으로 PC와 PSW의 사이즈만큼 감산된다. 즉, PC와 PSW가 각각 4 바이트인 경우, 스택은 8 바이트가 그것의 보존에 소비되어 SP를 8 바이트만큼 감산한 것과 같다. 다음으로, CPU는 PC의 값을 인터럽트 처리 프로그램의 선두번지로 이동시켜 OS 인터럽트 입구처리가 실행된다. 아이들 태스크가 동작하고 있을 때에 인터럽트를 수리한 경우의 OS 인터럽트 입구처리는 도 6에 나타낸 흐름도에 따라 동작한다.
한편, OS 할입 출구처리는 도 8에 설명한 종래기술과 같은 처리이지만 단계 (S803)에서 복귀하는 CPU 레지스터의 값은 미리 겹쳐쓰기되어 있기 때문에 OS 인터럽트 입구처리시에 보존하고 있던 값은 아니라는 것에 주의를 요한다.
도 9는 실시예 1에서의 아이들 태스크의 동작을 나타낸 흐름도이다. 실시예 1에서의 아이들 태스크는 도 9에 나타낸 것과 같이 자신으로의 무한 루프(S901)로 구성되도록 실행되어 있다. 따라서, 도 8에서의 단계(S803)에서, 인터럽트 처리내에서 PC와 PSW를 제외한 모든 CPU 레지스터가 부정 값으로 겹쳐쓰기되어도, 아이들 태스크의 프로그램이 CPU 레지스터를 사용하지 않고 동작하기 때문에 인터럽트 복귀후에도 어떠한 문제도 생기지 않는다.
도 12는 상기에서 설명한 본 발명의 멀티태스크 시스템을 실현하는 태스크 제어장치를 나타낸다. 이 태스크 제어장치는 PC(1205)가 현재실행중인 프로그램의 명령 어드레스(1209)를 가리키고, 이 값은 버스 컨트롤 유닛(이하 BCU)(1212)를 통하여 외부 메모리(ROM)(1213)에서 명령 데이터(1210)를 취득한다. 명령 데이터(12 10)는 명령 실행 제어부(1206)에서 디코드 처리되어 디코드된 명령의 종류에 따라 태스크 제어장치(1200) 전체의 동작을 결정한다. 명령 데이터가 외부 메모리로의 데이터 기록을 행하는 명령이 있는 경우, 명령 실행 제어부(1206)는 CPU 레지스터 (1201)에서 필요한 어드레스 값을 독출하여 연산 유닛(이하 ALU)(1204)에 전달하고, 오퍼랜드 어드레스(1207)를 BCU(1212)를 경유하여 외부 메모리(RAM)(1214)로 어드레스 데이터로서 전달한다. 동시에 CPU 레지스터(1201)에서 오퍼랜드 데이터( 1208)를 독출하여 BCU(1212)를 경유하여 외부 메모리(RAM)(1214)에 데이터를 기입한다. 또한, 이 태스크 제어장치는 인터럽트 제어부(1211)를 탑재하고 있고, 주변기능(1215)에서의 인터럽트 요구를 수리하여 명령실행 제어부(1206)로 통지하고 현재실행중인 프로그램을 중단하는 기능을 가지고 있다.
또한, 본 태스크 제어장치는 인터럽트 처리시의 스택 어드레스 제어를 위하여 SP 차분 정수(1250)를 구비하고 있다. 어느 태스크의 실행중에 인터럽트가 발생한 경우에는 SP(1202)의 값을 오퍼랜드 어드레스(1207)와 BCU(1212)를 경유하여 외부 메모리(RAM)(1214)로 태스크 스택의 어드레스로서 전달하고, PC(1205)와 PSW( 1203)의 값을 태스크 스택에 보존한 후, 그 만큼 SP의 값을 갱신한다. 이어서, 도 6의 흐름도에 나타낸 것과 같이 CPU 레지스터의 내용을 태스크 스택에 보존하여 그 만큼 SP의 값을 갱신한다.
다음으로, 이 최종 SP(1202)의 값을 인터럽트 처리 스택의 복귀 SP 보존영역 (405)에 보존한다. OS 인터럽트 입구처리 프로그램 또는 인터럽트 제어부(1211)에는 인터럽트 처리 스택의 중첩선으로서 아이들 태스크 스택의 CPU 레지스터 보존영역(404)의 선두 어드레스가 미리 제공된다. 또한, SP 차분 정수(1250)에는 아이들 태스크 스택의 CPU 레지스터 보존영역(404)의 선두 어드레스에 관한 인터럽트 처리 스택의 선두 어드레스의 어드레스 차분값이 제공된다.
인터럽트 처리 스택의 중첩선, 즉 아이들 태스크 스택의 CPU 레지스터 보존영역의 선두 어드레스가 OS 인터럽트 입구처리 프로그램 또는 인터럽트 제어부( 1211)에서 제공되고, 이것과 SP 차분 정수(1250)의 값을 ALU(1204)에서 연산하고, 이것을 오퍼랜드 어드레스(1207)와 BCU(1212)를 경유하여 외부메모리(RAM)(1214)로 어드레스로서 제공하여 상기 최종 SP의 값을 보존한다. 여기서, 본 실시예에서는 SP 차분 정수(1205)에 0을 제공함으로써, 인터럽트 처리 스택의 복귀 SP 보존영역(405)의 선두 어드레스를 아이들 태스크 스택의 CPU 레지스터 보존영역의 선두 어드레스에 일치시킨다. 이 선두 어드레스를 SP 보존영역만큼 갱신하여 SP에 세트함으로써, 인터럽트 처리 스택이 사용가능하게 되어 인터럽트 처리가 먼저 진행된다.
이상과 같이, 인터럽트 처리 스택을 아이들 태스크의 태스크 스택에 중첩함으로써, 아이들 태스크의 태스크 스택의 사용되지 않는 CPU 레지스터 보존영역을 효과적으로 활용할 수 있다.
(실시예 2)
본 발명의 실시예 1에서 설명한 멀티태스크 시스템은 도 9에 나타낸 것과 같은 단순한 무한 루프만으로 구성된 아이들 태스크 이외에도 도 10의 흐름도에 나타낸 것과 같은 다른 처리를 포함하는 아이들 태스크에서도 실현할 수 있다. 도 10에서, 아이들 태스크 프로그램은 단계(S1001)에 나타낸 것과 같이 CPU의 동작모드를 저소비 전력 모드로 이행하는 처리를 행한다. 여기서, CPU가 저소비 전력 모드로 이행한 후에는 인터럽트가 처리되기까지 그 후의 명령은 실행되지 않는다. CPU에 인터럽트 요구가 들어가고 저소비 전력 모드가 해제되면, CPU는 통상의 동작모드로 복귀하는 동시에 도 7의 흐름도에 나타낸 OS 인터럽트 입구처리를 실행한다.
여기서, CPU의 동작모드를 저소비 전력 모드로 이행시킬 때에 CPU 레지스터중 1개인 r0 레지스터를 사용하면 된다. 이 경우, 인터럽트 처리의 전후에도 r0 레지스터의 값은 보전되어야 한다.
도 11은 이 경우의 아이들 스택과 인터럽트 처리용 스택의 사용방법을 나타낸 도면이다. 먼저, 아이들 태스크가 동작하고 있을 때에는 SP가 아이들 태스크용의 스택영역(1101)을 가리키고, 아이들 태스크는 이 영역을 사용하면서 프로그램을 처리한다. 상기 프로그램이 r0 레지스터를 사용하는 중에 인터럽트가 발생하고 CPU가 그 인터럽트를 처리하면, 하드웨어적으로 PC와 PSW의 내용을 각각 스택영역( 1102,1103)에 보존한다. 이 때, SP의 값은 자동적으로 PC와 PSW의 사이즈만큼 감산된다. 그리고, CPU는 PC의 값을 인터럽트 처리 프로그램의 선두번지로 이동시켜 도 7에 나타낸 OS 인터럽트 입구처리가 실행된다.
도 7에서의 OS 인터럽트 입구처리에서는 먼저 단계(S701)에서 CPU 레지스터의 값을 스택영역(1107 및 1104)에 보존한다. 이 경우, 단계(S701)에서는 반드시 r0 레지스터를 PSW 보존영역(1103)의 바로 위에 있는 r0 레지스터 보존영역(1107)에 보존하도록 한다. 그 외의 CPU 레지스터에 관해서는 보존하는 번지는 관계없다. 다음으로, 단계(S702)에서, 현재의 SP의 값을 인터럽트 처리용 스택영역의 바텀 위치(1105)에 보존한다. 실시예 1과 달리, 복귀 SP 보존영역(1105)은 r0 레지스터 보존영역(1107)을 겹쳐쓰지 않는 위치에 있어야 되지만, 그것 이외의 CPU 레지스터를 보존하는 CPU 레지스터 보존영역(1104)에 대해서는 겹쳐지도록 배치되어 있다. 단계(S703)에서는, 인터럽트 처리용 스택영역(1106)의 바텀 어드레스를 SP에 대입하여 스택을 아이들 태스크 스택에서 인터럽트 처리용 스택영역(1106)으로 전환한다. 인터럽트 처리용 스택영역(1106)은 상기 CPU 레지스터 보존영역(1104)과 겹쳐져 스택 영역(1104)에 보존한 CPU 레지스터의 값은 실시예 1의 경우와 마찬가지로 겹쳐쓰기된다. 최후로, 단계(S504)에서, 애플리케이션에 의해 정의된 인터럽트 핸들러 함수를 콜하여 단계(S505)에서 애플리케이션의 인터럽트 핸들러 프로그램을 실행한다. 단계(S505)에서는 함수 리턴 형태로 도 8에 나타낸 OS 인터럽트 출구처리로 이행한다.
한편, OS 인터럽트 출구처리는 도 8에 의해 설명한 종래기술과 같은 처리가 되지만, 단계(S803)에서 복귀하는 CPU 레지스터의 값은 r0 레지스터 보존영역(110 7)을 제외하고 미리 겹쳐쓰기되어 있기 때문에, OS 인터럽트 입구처리시에 보존하고 있던 값과 다르다는 것에 주의를 요한다. 단, r0 레지스터의 값은 r0 레지스터 보존영역(1107)에 보존되어 있던 올바른 값이 복귀된다. 원래 발생된 인터럽트는 아이들 태스크내에서 r0 레지스터를 사용중에 수리된 것이지만, 인터럽트에서 복귀된 후에도 아이들 태스크 프로그램은 r0 레지스터의 내용을 사용하여 CPU를 저소비 동작 모드로 이행되는 것이 가능하다.
이상의 설명에서는 아이들 태스크의 실행중에 인터럽트가 발생된 경우의 OS 인터럽트 입구처리를 설명하였지만, 인터럽트 처리 스택이 아이들 태스크 스택에 중첩되어 있기 때문에 임의의 태스크의 실행중에 인터럽트가 발생한 경우에 OS 인터럽트 입구처리에서 실시예 1에서 설명한 것과 같은 처리가 행해진다. 즉, 인터럽트가 발생한 태스크의 CPU 레지스터의 내용을 태스크 스택에 보존한 후, 최종 SP (1202)의 값을 인터럽트 처리 스택의 복귀 SP 보존영역(1105)에 보존한다.
그 때문에, 인터럽트 처리 스택의 중첩선, 즉 아이들 태스크 스택의 CPU 레지스터 보존영역의 선두 어드레스가 OS 인터럽트 입구처리 프로그램 또는 인터럽트 제어부(1211)에서 제공되고, 이것과 SP 차분 정수(1250)의 값을 ALU(1204)로 연산하고, 이것을 오퍼랜드 어드레스(1207)와 BCU(1212)를 경유하여 외부 메모리(RAM)(1214)로 어드레스로서 제공함으로써, 상기 최종 SP의 값을 보존한다. 여기서, 본 실시예에서의 SP 차분정수(1250)에는 어드레스 차분치로서 r0 레지스터 보존영역 (1107)의 퇴피분을 고려한 값을 제공한다. 그 결과, 인터럽트 처리 스택의 SP 보존영역(1105)의 선두 어드레스를 아이들 태스크 스택에서의 r0 레지스터 보존영역 (1107)의 퇴피영역의 다음 어드레스로서 판단될 수 있다.
이상과 같이, 인터럽트 처리 스택을 아이들 태스크의 태스크 스택에 중첩함으로써, 아이들 태스크에서 일부의 CPU 레지스터를 사용하는 경우에도 아이들 태스크의 태스크 스택의 사용되지 않는 CPU 레지스터 보존영역을 효과적으로 활용할 수 있다.
(실시예 3)
실시예 1 및 실시예 2에서는 아이들 태스크에 주목하여 설명하였지만, 태스크가 사용하는 CPU 레지스터가 명확히 나누어져 있는 경우에는 아이들 태스크 이외의 통상의 태스크에서도 동일한 방법을 적용할 수 있다. 또한, 태스크가 사용하는 CPU 레지스터가 정적으로 결정되지 않는 경우에도 겹쳐쓰기할 수 있는 CPU 레지스터와 겹쳐쓰지 않아야 하는 CPU 레지스터를 태스크의 처리중에 변수 등으로 정보를 남김으로써 실시예 2에서 설명한 방법을 동일하게 적용할 수 있다. 또한, C 언어와 같은 고급언어를 사용하는 경우에도 컴파일러가 CPU 레지스터에 관한 정보를 변수 또는 CPU에 설치된 SP 차분 정보 격납레지스터에 보존하도록 함으로써 실시예 2에서 설명한 방법을 적용하는 것이 가능하다.
도 13은 이러한 멀티태스크 시스템을 실현하는 본 발명의 태스크 제어장치를나타낸다. 본 발명의 태스크 제어장치는 실시예 1 및 2에서의 태스크 제어장치에 비하여 SP 차분정보 격납 레지스터(1300)를 탑재하고 있는 점이 다르다. SP 차분정보 격납 레지스터(1300)의 사용방법은 임의이지만, 단계(S502)에서 참조하는 태스크 동작시의 최종 SP 값을 보존하는 어드레스 값을 컴파일러가 미리 산출하고 SP 차분정보 격납 레지스터(1300)에 보존할 수 있다. 이렇게 하면, 임의의 태스크의 실행중에 인터럽트가 수리된 경우에 OS 인터럽트 입구처리 프로그램 또는 인터럽트 제어부(1211)에 미리 제공된 인터럽트 처리 스택의 중첩선의 태스크 스택에서의 CPU 레지스터 보존영역의 선두 어드레스와, SP 차분정보 격납 레지스터(1300)에 의해 ALU(1204)에서 산출한 값을 오퍼랜드 어드레스(1207), BCU(1212)를 경유하여 외부 메모리(RAM)(1214)로 어드레스로서 공급하여 인터럽트가 발생한 태스크의 CPU 레지스터의 내용을 태스크 스택에 보존한 후의 최종 SP(1202)의 값을 오퍼랜드 데이터(1208)로 하여 외부 메모리(RAM)(1214)에 기입하는 것이 가능하다. 즉, 인터럽트 처리 스택의 스타트 번지를 컴파일러 등이 SP 차분정보 격납 레지스터(1300)에 설정하는 임의의 값으로 변경하는 것이 가능하다. 또한, SP 차분정보 격납 레지스터(1300)에 설정하는 것은 컴파일러 이외의 통상의 애플리케이션 등의 프로그램이어도 관계없고, 하드웨어로 설정하는 것도 가능하다. 설정방법은 본 발명의 범위를 넘지 않는 다양한 종류의 방법이 이용될 수 있다.
이상의 실시예에서, PC와 PSW의 값을 태스크 스택상에 보존하는 실시예를 설명하였지만, CPU의 종류에 따라 태스크 동작중 레지스터 뱅크와, 인터럽트 처리용의 레지스터 뱅크를 별도로 탑재할 수 있다. 이러한 CPU에서는 인터럽트 수리시에PC와 PSW의 값을 태스크 스택위에 보존시키지 않고 인터럽트 처리전용의 레지스터 뱅크내에 있는 보존영역에 카피하는 경우도 있다. 이 경우, 인터럽트 처리 전용의 레지스터 뱅크내에 보존된 PC와 PSW의 값을 소프트웨어적으로 태스크 스택상에 보존하도록 함으로써 이상의 실시예와 모두 동일한 효과를 얻는 것이 가능하다.
본 발명의 멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크 제어장치는 리얼타임 OS를 이용한 시스템의 태스크 스택 영역과 인터럽트 스택 영역을 중복하여 사용함으로써 시스템 전체에서의 메모리 사용량을 삭감할 수 있다. 따라서, 소용량의 메모리로 멀티태스크 시스템을 동작시킬 수 있는 이점이 있고, 소프트웨어의 스택 메모리의 관리방법, 특히 멀티태스크 시스템을 실행하는 경우의 스택 메모리 사용량을 삭감하는 프로그램 구조로서 유용하다.

Claims (19)

  1. 인터럽트 발생에 따라 CPU내 정보를 피인터럽트 태스크의 태스크 스택에 제 1 영역으로서 격납하는 단계;
    격납후의 스택 포인터의 값을 인터럽트 처리 스택의 소정의 제 1 위치에 격납하는 단계;
    스택 포인터를 상기 인터럽트 처리 스택의 소정의 제 2 위치에 세트하는 단계; 및
    인터럽트 처리를 개시하는 단계를 포함하는 멀티태스크 시스템의 스택 관리방법으로서:
    상기 인터럽트 처리 스택의 소정의 제 2 위치를 특정 태스크의 태스크 스택에서의 상기 제 1 영역내의 소정위치에 일치시키는 것을 특징으로 하는 스택 관리방법.
  2. 제 1항에 있어서,
    상기 제 1 영역은 인터럽트 처리에서의 복귀제어에 필수인 태스크 제어정보를 격납하는 제 2 영역과, 상기 제 2 영역의 직후에 배치되어 상기 태스크 제어정보 이외의 CPU내 정보를 격납하는 제 3 영역을 포함하고,
    상기 특정 태스크의 태스크 스택에서의 제 1 영역내의 소정위치는 제 1 영역에서의 상기 제 3 영역의 선두 어드레스에 일치하는 것을 특징으로 하는 스택 관리방법.
  3. 제 1항에 있어서, 상기 인터럽트 처리 스택의 소정의 제 1 위치는 인터럽트 처리 스택의 선두 어드레스인 것을 특징으로 하는 스택 관리방법.
  4. 제 1항에 있어서, 상기 인터럽트 처리 스택의 소정의 제 2 위치는 상기 인터럽트 처리 스택의 소정의 제 1 위치의 직후에 위치하는 것을 특징으로 하는 스택 관리방법.
  5. 제 1항에 있어서,
    상기 제 1 영역은 인터럽트 처리에서의 복귀제어에 필수인 태스크 제어정보를 격납하는 제 2 영역과, 상기 제 2 영역의 직후에 배치되어 상기 태스크 제어정보 이외의 CPU내 정보를 격납하는 제 3 영역을 포함하고,
    상기 특정 태스크의 태스크 스택에서의 제 1 영역내의 소정위치는 제 1 영역에서의 상기 제 3 영역의 선두 어드레스에 소정의 어드레스 차분치를 보정한 어드레스인 것을 특징으로 하는 스택 관리방법.
  6. 제 5항에 있어서, 상기 어드레스 차분치는 상기 특정 태스크에서 사용되는 CPU내 정보를 격납하기 위하여 필요한 영역을 지정하도록 제공되는 것을 특징으로 하는 스택 관리방법.
  7. 제 5항에 있어서, 상기 어드레스 차분치는 정수로서 제공되는 것을 특징으로 하는 스택 관리방법.
  8. 제 5항에 있어서, 상기 어드레스 차분치는 상기 특정 태스크의 실행에 의해 설정되는 것을 특징으로 하는 스택 관리방법.
  9. 제 2항에 있어서, 상기 태스크 제어정보는 적어도 프로그램 카운터와, CPU의 상태를 나타내는 프로그램 스테이터스 워드(PSW)를 포함하는 것을 특징으로 하는 스택 관리방법.
  10. 제 1항에 있어서, 상기 특정 태스크는 CPU내 정보를 사용하지 않고 자기 루프하는 아이들 태스크인 것을 특징으로 하는 스택 관리방법.
  11. 제 1항에 있어서, 상기 특정 태스크는 저소비 전력 모드로의 이행과 복귀를 제어하는 태스크인 것을 특징으로 하는 스택 관리방법.
  12. 제 2항에 있어서, 상기 제 2 영역을 설치하지 않고, 상기 태스크 제어정보 및 소정 범위의 상기 CPU내 정보는 피인터럽트 태스크의 태스크 스택에 격납시키지 않고 태스크 스택과 다른 메모리 영역에 격납하고, 상기 소정 범위의 CPU내 정보이외의 CPU내 정보는 상기 제 3 영역에 격납되는 것을 특징으로 하는 스택 관리방법.
  13. 인터럽트 발생에 따라 CPU내 정보를 피인터럽트 태스크의 태스크 스택에 격납하여 제 1 영역이 되고, 제 1 영역 격납후의 스택 포인터의 값을 인터럽트 처리 스택의 소정의 제 1 위치에 격납하고, 스택 포인터를 상기 인터럽트 처리 스택의 소정의 제 2 위치에 세트하여 인터럽트 처리를 개시하는 멀티태스크 시스템의 스택 제어장치로서, 상기 인터럽트 처리 스택의 선두 어드레스를 특정 태스크의 태스크 스택에서의 상기 제 1 영역내의 소정위치에 일치시키는 제어기구를 구비하는 것을 특징으로 하는 스택 제어장치.
  14. 제 13항에 있어서, 상기 제 1 영역은 인터럽트 처리에서의 복귀제어에 필수인 태스크 제어정보를 격납하는 제 2 영역과 제 2 영역의 직후에 배치되어 상기 태스크 제어정보 이외의 CPU내 정보를 격납하는 제 3 영역을 포함하고, 상기 특정 태스크의 태스크 스택에서의 제 1 영역내의 소정위치는 제 1 영역에서의 상기 제 3 영역의 선두 어드레스에 일치하는 것을 특징으로 하는 스택 제어장치.
  15. 제 13항에 있어서, 상기 제 1 영역은 인터럽트 처리에서의 복귀제어에 필수인 태스크 제어정보를 격납하는 제 2 영역과 제 2 영역의 직후에 배치되어 상기 태스크 제어정보 이외의 CPU내 정보를 격납하는 제 3 영역을 포함하고, 상기 특정 태스크의 태스크 스택에서의 제 1 영역내의 소정위치는 제 1 영역에서의 상기 제 3 영역의 선두 어드레스에 소정의 어드레스 차분치를 보정한 어드레스인 것을 특징으로 하는 스택 제어장치.
  16. 제 15항에 있어서, 상기 어드레스 차분치는 상기 특정 태스크에서 사용되는 CPU 정보를 격납하기 위하여 필요한 영역을 나타내는 어드레스 차분치 격납수단에 유지되는 것을 특징으로 하는 스택 제어장치.
  17. 제 15항에 있어서, 상기 어드레스 차분치는 정수로 제공되는 것을 특징으로 하는 스택 제어장치.
  18. 제 15항에 있어서, 상기 어드레스 차분치는 상기 특정 태스크의 실행에 의해 설정되는 것을 특징으로 하는 스택 제어장치.
  19. 청구항 5 내지 8중 어느 한 항에 따른 스택 관리방법, 또는 청구항 15 내지 18중 어느 한 항에 따른 스택 제어장치에서의 상기 어드레스 차분치를 자동적으로 생성하는 컴파일러.
KR1020040010460A 2003-07-30 2004-02-17 멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크제어장치 KR20050014636A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003282887A JP2005050208A (ja) 2003-07-30 2003-07-30 マルチタスクシステムにおけるメモリ管理方式およびタスク制御装置
JPJP-P-2003-00282887 2003-07-30

Publications (1)

Publication Number Publication Date
KR20050014636A true KR20050014636A (ko) 2005-02-07

Family

ID=34101031

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040010460A KR20050014636A (ko) 2003-07-30 2004-02-17 멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크제어장치

Country Status (4)

Country Link
US (1) US20050028159A1 (ko)
JP (1) JP2005050208A (ko)
KR (1) KR20050014636A (ko)
CN (1) CN1584840A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478956B2 (en) 2009-11-13 2013-07-02 Samsung Electronics Co., Ltd. Computing system and method controlling memory of computing system

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7694055B2 (en) * 2005-10-15 2010-04-06 International Business Machines Corporation Directing interrupts to currently idle processors
KR100679050B1 (ko) * 2005-12-12 2007-02-06 삼성전자주식회사 태스크간 빠른 문맥 교환을 위해 레지스터 문맥을 저장,복구하는 방법 및 장치
KR100681199B1 (ko) * 2006-01-11 2007-02-09 삼성전자주식회사 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치
US8032889B2 (en) * 2006-04-05 2011-10-04 Maxwell Technologies, Inc. Methods and apparatus for managing and controlling power consumption and heat generation in computer systems
JP2008178401A (ja) * 2006-12-27 2008-08-07 Kao Corp 容器詰飲料
KR101622266B1 (ko) 2009-04-22 2016-05-18 삼성전자주식회사 재구성 가능 프로세서 및 이를 이용한 인터럽트 핸들링 방법
KR101612780B1 (ko) * 2009-11-13 2016-04-18 삼성전자주식회사 컴퓨팅 시스템 및 컴퓨팅 시스템의 메모리 관리 방법
CN102289392A (zh) * 2011-09-08 2011-12-21 曙光信息产业股份有限公司 基于检查点的作业调度方法和系统
KR102006470B1 (ko) * 2011-12-28 2019-08-02 삼성전자 주식회사 사용자 디바이스에서 멀티태스킹 운용 방법 및 장치
JP6066807B2 (ja) * 2013-04-04 2017-01-25 三菱電機株式会社 計算機システム、計算機システムの割込み処理プログラム及び計算機システムの割込み処理方法
US11163572B2 (en) 2014-02-04 2021-11-02 Micron Technology, Inc. Memory systems and memory control methods
US9836318B2 (en) * 2014-02-21 2017-12-05 Infineon Technologies Ag Safety hypervisor function
CN106507401B (zh) * 2015-09-08 2019-10-22 大唐移动通信设备有限公司 一种告警持久化方法和设备
JP7095221B2 (ja) * 2016-12-28 2022-07-05 株式会社リコー 搬送装置、媒体排出装置及び画像形成装置
CN109426517B (zh) * 2017-08-30 2021-01-01 比亚迪股份有限公司 微控制单元及其控制方法和控制装置
CN112783652B (zh) * 2021-01-25 2024-03-12 珠海亿智电子科技有限公司 当前任务的运行状态获取方法、装置、设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386402A (en) * 1980-09-25 1983-05-31 Bell Telephone Laboratories, Incorporated Computer with dual vat buffers for accessing a common memory shared by a cache and a processor interrupt stack
US5966514A (en) * 1995-05-31 1999-10-12 Matsushita Electric Industrial Co., Ltd. Microprocessor for supporting reduction of program codes in size
JPH1091443A (ja) * 1996-05-22 1998-04-10 Seiko Epson Corp 情報処理回路、マイクロコンピュータ及び電子機器
US5893121A (en) * 1997-04-23 1999-04-06 Sun Microsystems, Inc. System and method for swapping blocks of tagged stack entries between a tagged stack cache and an untagged main memory storage
US5928321A (en) * 1997-05-30 1999-07-27 Sony Corporation Task and stack manager for digital video decoding
JP2000047883A (ja) * 1998-07-31 2000-02-18 Denso Corp タスク制御方法および記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478956B2 (en) 2009-11-13 2013-07-02 Samsung Electronics Co., Ltd. Computing system and method controlling memory of computing system

Also Published As

Publication number Publication date
US20050028159A1 (en) 2005-02-03
CN1584840A (zh) 2005-02-23
JP2005050208A (ja) 2005-02-24

Similar Documents

Publication Publication Date Title
KR20050014636A (ko) 멀티태스크 시스템에서의 메모리 관리 시스템 및 태스크제어장치
KR101782313B1 (ko) 예외 이벤트 처리 장치 및 방법
US9158574B2 (en) Handling interrupts in data processing
US7529917B2 (en) Method and apparatus for interrupt handling during loop processing in reconfigurable coarse grained array
KR0138468B1 (ko) 마이크로 컴퓨터
US10346195B2 (en) Apparatus and method for invocation of a multi threaded accelerator
US5574872A (en) Method and apparatus for controlling the saving of pipelines in pipelined processors during trap handling
WO2007035126A1 (fr) Procede d'organisation d'ordinateurs multiprocesseurs
KR100495240B1 (ko) 프로세서 시스템
KR100776608B1 (ko) 컴퓨팅 시스템
JP2005521937A (ja) コンピュータオペレーティングシステムにおけるコンテキスト切り替え方法及び装置
US20030110201A1 (en) VLIW instruction control
US7890740B2 (en) Processor comprising a first and a second mode of operation and method of operating the same
US8464040B2 (en) Systems and methods to control multiple peripherals with a single-peripheral application code
JP2753781B2 (ja) マイクロプロセッサ装置及び割込みと自動化入出力トラップ再始動を行う方法
JP3838182B2 (ja) プロセッサにおける割込み発生時のレジスタ退避方法および装置
JP2004348327A (ja) デジタル信号処理装置及びデジタル信号処理方法
JPS59167756A (ja) 仮想計算機のデイスパツチ制御方式
US5778207A (en) Assisting operating-system interrupts using application-based processing
JP2004287618A (ja) オペレーティングシステム起動制御方法、およびその方法をコンピュータに実行させるプログラム、ならびにオペレーティングシステム起動制御装置
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
JPS62276634A (ja) 仮想計算機システム
JPS61233838A (ja) 情報処理装置
CN115809121A (zh) 用于上下文切换的方法和装置
JP2004021610A (ja) タスク管理装置

Legal Events

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