KR20000064491A - Task Scheduling for Command Handlers - Google Patents

Task Scheduling for Command Handlers Download PDF

Info

Publication number
KR20000064491A
KR20000064491A KR1019980704692A KR19980704692A KR20000064491A KR 20000064491 A KR20000064491 A KR 20000064491A KR 1019980704692 A KR1019980704692 A KR 1019980704692A KR 19980704692 A KR19980704692 A KR 19980704692A KR 20000064491 A KR20000064491 A KR 20000064491A
Authority
KR
South Korea
Prior art keywords
signal
processor
command processor
job
command
Prior art date
Application number
KR1019980704692A
Other languages
Korean (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 에를링 블로메, 타게 뢰브그렌
Publication of KR20000064491A publication Critical patent/KR20000064491A/en

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/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

Abstract

처리 시스템(120, 220)에서, 신호처리기(124, 224)가 하나 이상의 명령처리기(122, 222)에 의해 실행하도록 작업을 스케줄하고 명령처리기가 작업을 실행할 때 작업과 연관된 신호를 명령처리기로 송신한다. 현재의 목록(150)은 명령처리기(122)에 의해 메모리에 유지된다. 명령처리기에 의해 실행된 현재의 작업이 명령처리기로 하여금 실행되는 새로운 작업과 연관되는 버퍼된 신호를 발생시키도록 하고, 상기 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 선택적으로 저장되도록 한다. 현재의 목록에서 버퍼된 신호의 선택적인 저장은 현재의 작업의 우선순위 레벨에 따른다. 그 버퍼된 신호를 발생시키는 현재의 작업에서의 명령이 현재의 작업내에서 미리 정해진 순서라면 새로운 작업이 현재의 작업의 종료시 즉시 실행된다. 명령처리기가 버퍼된 신호와 연관된 작업의 실행을 끝마칠 때, 명령처리기는 선택적으로 (1) [버퍼된 신호와 연관된 작업이 미리 정해진 우선순위 레벨을 가지거나 현재의 목록이 비어있다면] 출구신호를 신호처리기에 보내는 것과; (2) [신호처리기가 인터럽트를 명령처리기에 발생시키면] 현재의 목록에서 모든 나머지의 작업을 신호처리기에 보내는 것과; (3) 부가적인 작업을 현재의 목록으로 페치 및 실행한다.In processing systems 120 and 220, signal processors 124 and 224 schedule tasks for execution by one or more command processors 122 and 222 and send signals associated with the job to the command processor when the command processor executes the jobs. do. The current list 150 is maintained in memory by the command processor 122. The current job executed by the command processor causes the command processor to generate a buffered signal associated with the new job to be executed, which causes the command processor to selectively generate a buffered signal associated with the new job. To be stored. Selective storage of buffered signals in the current list depends on the priority level of the current task. If the instruction in the current task that generates the buffered signal is in a predetermined order within the current task, the new task is executed immediately at the end of the current task. When the command processor finishes executing a job associated with a buffered signal, the command processor may optionally (1) issue an exit signal if the job associated with the buffered signal has a predetermined priority level or the current list is empty. Sending to a signal processor; (2) [if the signal processor issues an interrupt to the command processor] sending all remaining work in the current list to the signal processor; (3) Fetch and execute additional tasks into the current list.

Description

명령처리기용 작업 스케줄링Job Scheduling for Command Processors

에릭슨사의 APZ 212 20 등의 처리 시스템은 명령 프로세서에 의한 실행용 스케줄 작업에 신호처리기를 사용하여, 명령처리기에 의해 실행된 작업들간에 매우 빠른 문맥(context) 스위칭을 가능하게 한다. 문맥 스위칭 시간이 대개 다른 시스템에 비교된 시스템에서 매우 빠르다.A processing system such as Ericsson's APZ 212 20 uses a signal processor for scheduling tasks for execution by the instruction processor, enabling very fast context switching between tasks executed by the instruction processor. The context switching time is usually very fast in a system compared to other systems.

그런 시스템에서, 각 작업은 그것에 연관된 신호를 갖는다. 신호는 어떤 코드 블록(예를 들어, 프로그램 저장에서)이 작업과 연결해서 명령처리기에 의해 실행되는 지에 관해 명령처리기에 충고하는 정보와, 그런 실행에서 사용되는 데이터를 포함한다. 작업이 명령처리기에 의해 실행될 때, 새로운 신호(새로운 작업과 연관된)는 신호처리기에 의해 얻어지고 명령처리기로 전송된다. 새로운 신호는 신호처리기의 복수의 작업 버퍼중 선택된 하나로부터 신호처리기에 의해 얻어지고, 새로운 신호는 우선 순위로 얻어진다.In such a system, each task has a signal associated with it. The signal contains information that advises the instruction processor about which code block (e.g., in program storage) is executed by the instruction processor in conjunction with the task, and the data used in such execution. When a job is executed by the command processor, a new signal (associated with the new job) is obtained by the signal processor and sent to the command processor. The new signal is obtained by the signal processor from a selected one of the plurality of work buffers of the signal processor, and the new signal is obtained in priority.

신호처리기로부터 얻어진 새로운 작업은 오래된 작업에 전체적으로 관련되지 않고, 따라서 전적으로 다른 데이터를 사용한다. 더구나, 다른 작업은 외부 소스(예를 들어, 다른 처리 시스템)로부터 도착하고, 더 높은 우선순위일 때, 오래된 작업전의 오래된 작업의 작업 인터럽트 실행이 출구(EXIT)한다.The new task obtained from the signal processor is not entirely related to the old task and therefore uses entirely different data. Moreover, other jobs arrive from external sources (e.g., other processing systems) and, at higher priorities, job interrupt execution of older jobs before older jobs exits.

그러므로, 상설된 처리 시스템에서, 코드 및 데이터는 문맥을 매우 종종 변화시킨다. 그것은 문맥이 분실되는 것을 의미하고 그러므로 문맥을 보존하기 위해 빠른 메모리(예를 들어, 캐시 메모리)를 사용함에 의해 얻어지는 것이 종종 아무것도 없다. 그런 시스템에서, 사용되는 문맥 보존만이 레지스터에서 데이터를 저장하고, 그것은 하나의 작업 실행동안만 행해질 수 있다.Therefore, in the permanent processing system, the code and data change the context very often. It means that the context is lost and therefore often nothing is obtained by using fast memory (eg cache memory) to preserve the context. In such a system, only the context preservation used saves data in registers, and it can only be done during one task execution.

그런 시스템을 더 상세하게 고려해서, 도 1은 중앙처리 유니트(20) 부분을 도시하고, 특히 명령처리기 유니트(IP)(22)와; 신호처리(SP) 유니트(24)와; 프로그램 저장(PS)(26)과; 데이터 및 참조 저장(DRS)(28)과; 복수의 영역 처리기 버스 핸들러(RPHs)(301,....n)와; "다른" 처리기 버스 핸들러(IPH)(31)와; 유지 유니트(MAU)(32)를 도시한다. 각 명령처리기(22), 신호처리기(24), IPHB(31), 및 RPHs(30)는 독립적인 처리기이다. 명령처리기(22)는 작업을 실행하고, 각 작업은 프로그램 저장(PS)(26)에 저장된 명령 블록에 대응한다. 신호처리기(24)는 명령처리기(22)용 작업의 스케줄러로서 역할한다. 그런 스케줄링과 연결해서, 각 작업에 대해 신호처리기(24)는 예를 들어 외부로부터 또는 명령처리기(22)로부터 "신호"를 수신한다. 신호는 명령 텔링(telling)이고 거기에서 명령 블록의 특정한 부분에서 실행하기 위해, 신호는 블록 실행에서 사용되는 데이터를 포함한다. 신호처리기(24)는 들어오는 신호를 분석 및 준비하고, 그들이 명령처리기(22)에 보내기 전에 우선순위를 상기 신호에 할당한다. 데이터 및 참조 저장(28)의 참조부는 시스템에서 신호, 블록, 및 변수를 설명하는 정보를 포함한다.In more detail in consideration of such a system, FIG. 1 shows a central processing unit 20 portion, in particular a command processor unit (IP) 22; A signal processing (SP) unit 24; Program storage (PS) 26; Data and reference storage (DRS) 28; A plurality of region handler bus handlers (RPHs) 30 1,... N ; An " other " processor bus handler (IPH) 31; The holding unit (MAU) 32 is shown. Each command processor 22, signal processor 24, IPHB 31, and RPHs 30 are independent processors. The command processor 22 executes a job, and each job corresponds to a command block stored in the program storage (PS) 26. The signal processor 24 serves as a scheduler for the job for the command processor 22. In connection with such scheduling, the signal processor 24 receives, for example, a "signal" from the outside or from the command processor 22 for each task. The signal is command telling and the signal contains data used in the block execution for execution in a particular portion of the command block. The signal processor 24 analyzes and prepares the incoming signal and assigns priority to the signal before sending it to the command processor 22. References to data and reference storage 28 include information describing signals, blocks, and variables in the system.

어떤 구성에서, 도 1의 중앙처리 시스템(20)은 2개의 명령처리기(22)와, 2개의 처리기(24)와, 하나 또는 다른 처리기 버스 핸들러(IPHs)(31)와, 부가적인 복수의 영역 처리기 버스 핸들러(30)를 포함하고, 그 모두는 MAU(32) 및 버스(34 및 36)를 경유해서 도 1의 미러 영상에 연결된다. 그런 구성에서, 각 명령처리기(22)는 그 자체의 프로그램 저장(26) 및 그 자체의 데이터 및 참조 저장(28)을 구비하고 있다.In some configurations, the central processing system 20 of FIG. 1 may include two command processors 22, two processors 24, one or other processor bus handlers (IPHs) 31, and additional multiple regions. Processor bus handler 30, all of which are connected to the mirror image of FIG. 1 via MAU 32 and buses 34 and 36. FIG. In such a configuration, each command processor 22 has its own program store 26 and its own data and reference store 28.

영역 처리기 버스 핸들러(RPHs)(301,...n)는 대응하는 영역 처리기 버스에 의해 예시안된 영역 처리기에 연결된다. 비슷하게, 하나 이상의 다른 처리기 버스 핸들러(31)는 알맞은 버스(39)에 연결하기 위해 또한 제공될 수 있다. 명령처리기(22)가 프로그램 저장(26)에 저장된 응용 소프트웨어를 실행할 때 포함됨에 따라, 신호처리기(24)뿐만 아니라 영역 처리기 버스 핸들러(RPHs)(301,...n) 및 다른 처리기 버스 핸들러 모두는 부하를 명령처리기(22)상에서 감소시키는 역할을 한다.Area handler bus handlers (RPHs) 30 1,... N are connected to an area handler, not illustrated by the corresponding area handler bus. Similarly, one or more other processor bus handlers 31 may also be provided to connect to the appropriate bus 39. As command processor 22 is included when executing application software stored in program store 26, not only signal processor 24, but also area processor bus handlers (RPHs) 30 1, ... n and other processor bus handlers. All serve to reduce the load on command processor 22.

도 2는 더 상세하게 중앙처리 시스템(20)의 명령처리기(22), 신호처리기(24), 다른 처리기 버스 핸들러(31), 및 영역 처리기 버스 핸들러(RPHs)(301,...n)와, 그들간의 상호동작을 도시한다. 특히, 도 2는 작업 스케줄러(40) 및 또한 버퍼(A∼D) 각각으로 공지된 복수의 작업 버퍼(42A∼42D)를 구비하는 신호처리기(24)를 도시한다.2 shows in more detail the command processor 22, the signal processor 24, the other processor bus handlers 31, and area processor bus handlers (RPHs) 30 1,... N of the central processing system 20. And the interaction between them. In particular, FIG. 2 shows a signal processor 24 having a job scheduler 40 and also a plurality of job buffers 42A-42D known as buffers A-D, respectively.

중앙처리 시스템(20)에서, 명령처리기(22)가 작업(출구신호를 신호처리기(24)에 보냄에 의해 표시했듯이)을 완료할 때, 신호처리기(24)는 최고 우선순위를 갖고 아직 비어있지 않은 버퍼(42A∼42D)중 하나로부터 실행되기 위해 다음 작업을 검색한다. 또한, 신호처리기(24)는 다음에 실행되는 작업과 연관된 신호를 명령처리기(22)에 보낸다. 그런 신호의 수신이 명령처리기(22)를 프롬프트시켜서 그 실행을 신호에 의해 특정화된 새로운 코드 블록에서 시작한다.In the central processing system 20, when the command processor 22 completes the task (as indicated by sending an exit signal to the signal processor 24), the signal processor 24 has the highest priority and is not yet empty. The next job is searched to be executed from one of the unbuffered buffers 42A to 42D. The signal processor 24 also sends a signal to the command processor 22 associated with the task to be executed next. The receipt of such a signal prompts the command processor 22 to begin its execution in a new block of code specified by the signal.

수시로, 명령처리기(22)에 의해 실행된 명령이 명령처리기(22) 자체를 프롬프트시켜서 새로운 신호를 발생시킨다. 명령처리기로 발생된 신호는 각종 형태: 결합된 신호, RP신호, 다른 명령처리기 신호, 및 버퍼된 신호이다. 결합된 신호는 서브루틴 호출과 매우 비슷하고, 결과적으로 명령처리기(22)로 하여금 그 결합된 신호를 즉시 실행시키도록 하고 그 결합된 신호가 발생되는 작업을 실행하기 위해 복귀한다.From time to time, the command executed by the command processor 22 prompts the command processor 22 itself to generate a new signal. The signals generated by the command processor are of various forms: combined signals, RP signals, other command processor signals, and buffered signals. The combined signal is very similar to a subroutine call, and consequently causes the command processor 22 to immediately execute the combined signal and return to execute the task in which the combined signal is generated.

명령처리기(22)에 의해 발생된 RP신호 및 다른 명령처리기 신호들은 영역 처리기(RP신호의 경우에) 또는 다른 명령처리기(IP신호의 경우에서)에 의해 실행되는 작업과 연관된 신호이다. RP신호 또는 다른 IP신호는 신호처리기(24)에 의해 수신되고 영역 처리기 버스 핸들러(30)(다른 IP신호의 경우에서)중 알맞은 하나 또는 다른 처리기 버스 핸들러(31)(RP신호의 경우에서)에 보내진다.The RP signal and other command processor signals generated by the command processor 22 are signals associated with the work executed by the area processor (in the case of the RP signal) or another command processor (in the case of the IP signal). The RP signal or other IP signal is received by the signal processor 24 and sent to the appropriate one of the area processor bus handlers 30 (in the case of other IP signals) or to another processor bus handler 31 (in the case of RP signals). Is sent.

명령처리기(22)에 의해 발생된, 결합된 신호를 제외한, IP-발생된 신호는 "버퍼된 신호"로서 언급된다. 종래 기술에 따라, 상기 버퍼된 신호가 신호처리기(24)에 보내진다(도 2의 라인(54)에 표시했듯이). 명령처리기(22)에 의한 실행은 블록에서 계속되고 명령처리기(22)가 현재 실행한다. 명령처리기(22)로부터 방출하는 버퍼된 신호의 수신시, 신호처리기(24)는 수신되어 버퍼된 신호의 우선순위 레벨에 따르는 2개의 포텐셜 동작중 하나를 얻는다. 특히, 수신되어 버퍼된 신호의 우선순위 레벨이 명령처리기(22)에 의해 현재 실행되는 작업(즉, 버퍼된 신호를 발생시키는 작업)의 우선순위 레벨보다 크다면, 신호처리기(24)는 인터럽트를 명령처리기(22)에 보내서 현재의 작업을 인터럽트시킨다(도 2의 라인(56)에 의해 표시했듯이). 그렇치 않으면, 신호처리기(24)는 버퍼된 신호와 같은 우선순위를 갖는 작업 버퍼(42A∼42D)중 하나에 버퍼된 신호를 마지막 작업으로 넣는다. 그런 방법에서, 버퍼된 신호는 버퍼된 신호와 같은 우선순위의 어떤 다른 신호로서 실행된다(도 2에서 라인(58)에 의해 표시했듯이).Except for the combined signal generated by the command processor 22, the IP-generated signal is referred to as a "buffered signal". According to the prior art, the buffered signal is sent to the signal processor 24 (as indicated by line 54 in FIG. 2). Execution by command processor 22 continues in the block and command processor 22 is currently executing. Upon receipt of the buffered signal emitted from the command processor 22, the signal processor 24 obtains one of two potential operations in accordance with the priority level of the received and buffered signal. In particular, if the priority level of the received and buffered signal is greater than the priority level of the task currently executed by the command processor 22 (ie, generating the buffered signal), then the signal processor 24 will interrupt. Send to command processor 22 to interrupt the current job (as indicated by line 56 in FIG. 2). Otherwise, the signal processor 24 puts the buffered signal into one of the job buffers 42A to 42D having the same priority as the buffered signal as the last job. In such a manner, the buffered signal is executed as any other signal of the same priority as the buffered signal (as indicated by line 58 in FIG. 2).

그러므로, 상설했듯이 종래 기술에서, 출구 명령이 작업 종료에서 명령처리기(22)에 의해 실행되고, 명령처리기(22)는 다음 작업의 스케줄링용 신호처리기(24)를 항시 조사한다. 그런 스케줄링에서, 신호처리기(24)는 작업 버퍼(42A∼42D)로부터 다음 작업을 우선순위로 페치시킨다. 그러나, 상기 종래 기술의 스케줄링 체제를 설정하면, 페치된 작업은 이전의 작업에 전체적으로 관련되지 않는다. 비관련된 작업과 비슷하게 대개 다른 데이터가 사용된다. 또한, 작업이 더 높은 우선순위로써 도착하면, 그들은 출구명령이 도달하기전에 작업 실행을 인터럽트한다.Therefore, as mentioned above, in the prior art, the exit command is executed by the command processor 22 at the end of the job, and the command processor 22 always checks the signal processor 24 for scheduling of the next job. In such scheduling, signal processor 24 fetches the next job in priority from job buffers 42A-42D. However, setting up the prior art scheduling scheme, the fetched job is not entirely related to the previous job. Similar to unrelated tasks, other data is usually used. Also, when a job arrives with higher priority, they interrupt the job execution before the exit instruction arrives.

중앙처리 시스템(20)은 예를 들어 전화 스위칭 시스템용 제어 시스템으로서 포함하는 수많은 실시를 갖는다. 상기 언급했듯이, 그런 실시의 한 예는 본원에서 참고로 결부되는 "APZ 21220--The New High end Processor for AXE 10", Ericsson Review, No. 1, 1995, pp.5∼12에서 Egeland, Terje에 의해 설명되듯이 Ericsson AXE 10용 APZ 21220 제어 시스템이다.The central processing system 20 has a number of implementations, including as a control system for a telephone switching system, for example. As mentioned above, one example of such an embodiment is described in "APZ 21220--The New High end Processor for AXE 10", Ericsson Review, No. 1, 1995, pp. 5-12, described by Egeland, Terje, APZ 21220 control system for Ericsson AXE 10.

중앙처리 시스템에서 문맥을 종종 변화시키지 않는 방법이 필요로 하고, 그럼으로써 캐시 메모리 등의 매우 빠른 메모리를 효과적으로 사용한다. 다른 소망된 개선점은 신호처리기로 하여금 그 작업을 경감시킨다.In a central processing system, there is a need for a method that often does not change context, thereby effectively using very fast memory, such as cache memory. Another desired improvement is that the signal processor alleviates the task.

본 발명은 중앙처리 시스템에서 포함된 명령처리기에 의한 실행용 작업의 스케줄링에 관한 것이다.The present invention relates to the scheduling of jobs for execution by the command processor included in the central processing system.

본 발명의 앞서고 다른 목적, 특징, 및 장점은 참조 문자가 여러 도면을 통해 같은 부분으로 언급되는 첨부 도면에서 예시했듯이 양호한 실시예의 다음의 더 특정한 설명으로부터 명백해진다. 도면들은 본 발명의 원리를 예시할 때 위치되게 하는 대신에 축적으로 그려지는 데 중점을 둘 필요는 없다.The foregoing and other objects, features, and advantages of the present invention will become apparent from the following more specific description of the preferred embodiments, as illustrated in the accompanying drawings, in which reference characters refer to the same parts throughout the several views. The drawings need not be focused on being drawn instead of being positioned when illustrating the principles of the invention.

도 1은 중앙처리 유니트의 적어도 일부의 개략 다이어그램.1 is a schematic diagram of at least a portion of a central processing unit;

도 2는 종래기술에 따라 중앙처리 시스템용으로 구비된 각종 구성요소를 도시하는 개략 다이어그램.2 is a schematic diagram illustrating various components provided for a central processing system in accordance with the prior art;

도 3은 본 발명의 일 실시예에 따라 중앙처리 시스템용으로 구비된 각종 구성 요소를 도시하는 개략 다이어그램.3 is a schematic diagram illustrating various components provided for a central processing system in accordance with one embodiment of the present invention.

도 4는 도 3의 중앙처리 시스템용으로 구비된 명령처리기의 구성중 하나의 예시를 도시하는 개략 다이어그램.4 is a schematic diagram illustrating one example of a configuration of a command processor provided for the central processing system of FIG.

도 5는 본 발명의 다른 실시예에 따라 다수의 명령을 토대로한 중앙처리 시스템용으로 구비된 각종 구성 요소를 도시하는 개략 다이어그램.5 is a schematic diagram illustrating various components provided for a central processing system based on a number of instructions in accordance with another embodiment of the present invention.

도 6은 도 3의 중앙처리 시스템의 신호처리기에 의해 생기게 된 상태 및 발생된 이벤트(event)를 도시하는 개략 다이어그램.FIG. 6 is a schematic diagram showing events generated by a signal processor of the central processing system of FIG. 3 and events generated. FIG.

도 7은 도 3의 중앙처리 시스템의 명령처리기에 의해 생기게 된 상태 및 발생된 이벤트(event)를 도시하는 개략 다이어그램.FIG. 7 is a schematic diagram illustrating events generated and states caused by the command processor of the central processing system of FIG. 3; FIG.

도 8(1)은 명령처리기로부터 출구 신호를 발생할 때 신호처리기에 의해 실행된 단계를 도시하는 흐름도.8 (1) is a flowchart showing the steps executed by the signal processor when generating an exit signal from the command processor.

도 8(2)은 명령처리기로부터 (비-출구 ) 신호를 발생할 때 신호처리기에 의해 실행된 단계를 도시하는 흐름도.8 (2) is a flowchart showing the steps performed by the signal processor when generating a (non-exit) signal from the command processor.

도 8(3)은 시간 종료 이벤트를 발생시킬 때 신호처리기에 의해 실행된 단계를 도시하는 흐름도.8 (3) is a flow chart showing the steps executed by the signal processor when generating a timeout event.

도 8(4)은 영역 처리기(RP) 또는 다른 명령처리기로부터 신호를 발생할 때 신호처리기에 의해 실행된 단계를 도시하는 흐름도.Fig. 8 (4) is a flowchart showing the steps executed by the signal processor when generating a signal from the area processor RP or another command processor.

도 9(1) 내지 도 9(3)는 액션(A(SP)1 내지 A(SP)3) 각각을 수행하는 명령처리기에 의해 실행된 단계를 도시하는 개략도.9 (1) to 9 (3) are schematic diagrams showing the steps executed by the command processor performing each of the actions A (SP) 1 to A (SP) 3.

도 9(4)는 액션(A(SP)4)을 수행하는 명령처리기에 의해 실행된 단계를 도시하는 흐름도.Fig. 9 (4) is a flowchart showing the steps executed by the command processor performing the action A (SP) 4;

도 9(5) 내지 도 9(10)는 액션(A(SP)5 내지 A(SP)10) 각각을 수행하는 명령처리기에 의해 실행된 단계를 도시하는 개략도.9 (5) to 9 (10) are schematic diagrams showing steps executed by a command processor for performing each of actions A (SP) 5 to A (SP) 10.

도 9(11)는 액션(A(SP)11)을 수행하는 명령처리기에 의해 실행된 단계를 도시하는 흐름도.Fig. 9 (11) is a flowchart showing the steps executed by the command processor performing the action A (SP) 11;

도 10은 본 발명에 의해 사용된 신호 포맷의 개략도.10 is a schematic diagram of a signal format used by the present invention.

명령처리기에 의한 실행용 신호 스케줄링은 신호처리기에 의해 기본적으로 수행된다. 본 발명에 따라, 신호처리기는 유일한 스케줄링 기술을 갖고 명령처리기는 신호처리기를 방해하지 않고 자체의 스케줄링중 일부를 수행한다("현재의 목록" 메모리를 사용해서).Signal scheduling for execution by the command processor is basically performed by the signal processor. According to the invention, the signal processor has a unique scheduling technique and the command processor performs some of its scheduling without interrupting the signal processor (using the "current list" memory).

신호처리기는 신호의 할당된 우선순위에 따른 4개의 버퍼, 예를 들어 스케줄링 버퍼(A), 스케줄링 버퍼(B), 스케줄링 버퍼(C), 또는 스케줄링 버퍼(D)중 하나로 실행되도록 신호를 할당한다. 일반적으로, 명령처리기가 신호처리기로부터 실행용 새로운 신호를 필요로 할 때(명령처리기로부터 출구신호를 수신시 발생하듯이), 신호가 오래됨(가장 오래됨) 및 우선순위 레벨(즉, 레벨A,B,C, 또는 D)에 따라 버퍼(A∼D)로부터 페치된다. (본원에서 사용했듯이, "최고" 우선순위 레벨의 지정은 트레이스(trace) 레벨을 고려하지 않는다).The signal processor allocates the signal to be executed in one of four buffers according to the signal's assigned priority, for example scheduling buffer (A), scheduling buffer (B), scheduling buffer (C), or scheduling buffer (D). . In general, when the command processor needs a new signal for execution from the signal processor (as occurs when receiving an exit signal from the command processor), the signal is old (oldest) and priority level (i.e. levels A, B). Are fetched from the buffers A to D according to C, or D). (As used herein, the designation of the "highest" priority level does not take into account the trace level).

페치된 작업의 우선순위 레벨이 "C" 우선순위 레벨 또는 "D" 우선순위 레벨이면, 신호처리기는 비슷한 우선순위 레벨의 작업이 현재 인터럽트되는 지를 결정하고, 그러면, 페치된 작업을 그 버퍼중 알맞은 하나로 되돌려서 보내는 동안 그 인터럽트된 작업의 실행을 재개한다. 또한, 명령처리기는 신호처리기가 (예를 들어 명령처리기로부터, 영역 처리기로부터, 또는 "다른" 명령처리기로부터) 더 높은 우선순위의 신호를 수신하는 시간에 레벨 D신호를 실행하면, 명령처리기에 의한 레벨 D신호의 실행이 즉시 인터럽트된다.If the priority level of a fetched job is a "C" priority level or a "D" priority level, the signal processor determines if jobs of similar priority levels are currently interrupted, and then dispatches the fetched jobs to the appropriate Resumes execution of the interrupted task while sending back. Also, the command processor may execute a level D signal at a time when the signal processor receives a higher priority signal (e.g., from the command processor, from the area processor, or from an "other" command processor). Execution of the level D signal is interrupted immediately.

명령처리기(IP)에 의한 신호의 실행은 새로운 신호를 발생한다. 그런 명령처리기로 발생된 신호는 신호의 출구명령 방금전에 통상적으로 발생된다. 그런 명령처리기로 발생된 신호는 결합된 신호 또는 버퍼된 신호(그 모두는 명령처리기에 의해 실행됨)이거나 다른 처리기(영역 처리기 또는 "다른" 명령처리기)로 향하게 된 신호일 수 있다. 결합된 신호가 서브루틴 호출과 매우 비슷하고, 결과적으로 명령처리기로 하여금 결합된 신호를 즉시 실행시키도록 하고 그 결합된 신호가 발생되는 신호를 실행하기 위해 복귀한다.Execution of the signal by the command processor IP generates a new signal. The signal generated by such a command processor is typically generated just before the exit command of the signal. The signal generated by such a command processor may be a combined signal or a buffered signal (all of which are executed by the command processor) or a signal directed to another processor (area processor or "other" command processor). The combined signal is very similar to the subroutine call, and consequently causes the command processor to immediately execute the combined signal and return to execute the signal from which the combined signal is generated.

버퍼된 신호가 명령처리기에 의해 발생될 때, 명령처리기는 "현재의 목록"으로서 공지된 특정한 레지스터 또는 큐에 그 버퍼된 신호를 넣는다. 버퍼된 신호가 현재 실행하는 작업의 출구 직전에 발생되면, 최저 우선순위 레벨만으로 되고, 인터럽트가 세트되지 않으면, 버퍼된 신호와 연관된 작업은 버퍼된 신호가 발생되는 작업으로부터 출구시 실행된다.When a buffered signal is generated by the command processor, the command processor puts the buffered signal in a particular register or queue known as the "current list." If the buffered signal is generated just before the exit of the currently executing job, then only the lowest priority level is set, and if no interrupt is set, the job associated with the buffered signal is executed on exit from the job where the buffered signal is generated.

연속해서, 명령처리기가 버퍼된 신호의 발생 결과로서 실행된 작업으로부터 출구할 때, 명령처리기는 버퍼된 신호의 우선순위 레벨에 따라 및 인터럽트가 세트되는 지에 따라 몇 개의 대안적인 단계들중 어느 하나를 수행할 수 있다. 제1의 대안책은 현재의 목록으로부터 제1(다음)작업을 얻고 동일하게 실행하는 것을 포함한다. 제2의 대안적인 단계는 버퍼된 신호가 최저 우선순위 레벨일 때 발생하듯이 스케줄링 제어를 신호처리기에 복귀시키는 것을 포함한다. 제3의 대안적인 단계는 인터럽트가 발생할 때 발생하듯이 현재의 목록의 내용 전체를 신호처리기로 이동시키는 것을 포함한다. 제1대안과 연결되어, 현재의 목록상에서 연속적인 작업이 현재의 목록상의 작업이 출구하듯이 연속적으로 실행될 수 있다.Subsequently, when the command processor exits a job executed as a result of the generation of the buffered signal, the command processor takes one of several alternative steps depending on the priority level of the buffered signal and whether an interrupt is set. Can be done. The first alternative involves getting the first (next) task from the current list and doing the same. The second alternative step includes returning scheduling control to the signal processor as occurs when the buffered signal is at the lowest priority level. A third alternative step involves moving the entire contents of the current list to the signal processor as occurs when an interrupt occurs. In conjunction with the first alternative, a continuous task on the current list can be executed continuously as if the task on the current list exits.

버퍼된 신호와 연관된 작업은 버퍼된 신호를 발생시키는 작업이 설정된 명령 형태(예를 들어, 출구명령) 직전에 발생되는 지에 따르게 한 직후 실행되는 지, 아닌지이다. 그러므로, 버퍼된 신호를 발생시키는 명령이 작업 종료 즉시 실행되는 버퍼된 신호를 갖도록 작업내에서 미리설정된 순서로 되야 한다. 그렇치 않으면, 버퍼된 신호와 연관된 작업이 현재의 목록에 남게 되고, 다른 버퍼된 신호와 연관된 작업으로 연속 실행되고, 또는 신호처리기로 이동되기조차한다.The task associated with the buffered signal is executed immediately after having caused the task of generating the buffered signal to be triggered immediately before the set instruction type (eg exit command). Therefore, the instructions that generate the buffered signals must be in a predetermined order within the task to have the buffered signals executed immediately upon completion of the task. Otherwise, the task associated with the buffered signal will remain in the current list, run continuously with the task associated with the other buffered signal, or even move to the signal processor.

명령처리기에 의한 작업 실행이 인터럽트될 때마다, 현재의 목록의 전체 내용이 신호처리기로 이동된다. 신호처리기는 그 이동된 신호의 우선순위 레벨에 따라 현재의 목록으로부터 그 버퍼들중 알맞은 것으로 신호를 넣는다.Each time a task execution is interrupted by the command processor, the entire contents of the current list are moved to the signal processor. The signal processor puts the signal from the current list into the appropriate one of the buffers according to the priority level of the moved signal.

신호처리기는 신호를 현재의 목록에 보내는 능력을 갖는다. 신호처리기가 신호를 실행용 명령처리기에 보낼 때, 신호처리기는 그 버퍼를 서치하고 명령처리기에 이동되는 신호와 같은 쓰레드(thread) 식별을 갖는 그 버퍼(들)의 다른 신호를 현재의 목록으로 이동시킨다. 외부 발생된 신호(예를 들어 영역 처리기 버스 핸들러 또는 처리기 버스 핸들러중 어느 하나를 경유해서 수신된)의 쓰레드 ID가 명령처리기에 의해 처리되는 CurrentThreadID이나 결과적으로 인터럽트 플래그의 세팅 또는 인터럽트되지 않게 되는 것을 신호처리기가 결정할 때 현재의 목록상에서 신호의 비슷한 포스팅(posting)이 발생한다.The signal processor has the ability to send signals to the current list. When a signal processor sends a signal to a command processor for execution, the signal processor searches the buffer and moves another signal in its buffer (s) with the same thread identification as the signal moved to the command processor to the current list. Let's do it. Signals that the thread ID of an externally generated signal (e.g., received via either the area handler bus handler or the handler bus handler) will not be interrupted or set by the CurrentThreadID processed by the command processor or consequently the interrupt flag. When the processor decides, a similar posting of the signal occurs on the current list.

도 3의 중앙처리 시스템(120)은, 명령처리기 유니트(IP)(122)와; 신호처리(SP) 유니트(124)와; 프로그램 저장(PS)(126)과; 데이터 및 참조 저장(DRS)(128)과; 복수의 영역 처리기 버스 핸들러(RPHs)(1301,....n)와; "다른" 처리기 버스 핸들러(IPH)(131)를 포함한다. 그렇지 않게 명백하게 또는 함축적으로 언급하지 않으면, 시스템(120)의 비슷한 이름의 소자는 도 2의 시스템(20)의 상기 언급된 소자와 같다. 시스템(120) 및 시스템(20)간의 차이는 명령처리기(122)에 의해 액세스용 명령처리기(122)의 일련의 레지스터에 저장되는 현재의 목록 메모리(150)이다. 또한, 신호처리기(124)는 타이머(141)를 갖는다.The central processing system 120 of FIG. 3 includes a command processor unit (IP) 122; A signal processing (SP) unit 124; Program storage (PS) 126; Data and reference storage (DRS) 128; A plurality of region handler bus handlers (RPHs) 130 1,... N ; "Other" handler bus handler (IPH) 131. Unless otherwise explicitly or implicitly mentioned, similarly named elements of system 120 are the same as those mentioned above of system 20 of FIG. 2. The difference between system 120 and system 20 is the current list memory 150 that is stored by the command processor 122 in a series of registers of the access command processor 122. The signal processor 124 also has a timer 141.

도 3의 중앙처리 시스템(120)은 공유된 메모리로 작동하는 2개의 처리기를 구비하는 Sun Ultra 2 워크스테이션을 사용해서 예시된 실시예에서 실현된다. 당업자는 공유된 메모리 기술을 통해 2개의 처리기간에 신호를 어떻게 보내는 지를 이해한다.The central processing system 120 of FIG. 3 is realized in the illustrated embodiment using a Sun Ultra 2 workstation having two processors operating with shared memory. Those skilled in the art understand how to send signals in two processing periods through a shared memory technology.

명령처리기(122) 및 신호처리기(124)는 종래 기술의 대응하는 처리기에 행하는 것과 다른 방법으로 동작한다. 특히, 이하에서 더 상세하게 알 수 있듯이, 명령처리기(122)는 그것이 현재의 목록(150)상에서 발생하는 버퍼된 신호를 선택적으로 저장하여, 신호처리기(124)를 우회시키고 양호한 문맥 보호를 제공한다. 시간 제한이 초과하지 않는 동안 신호처리기(124)는 현재의 목록(150)에서 하나 이상의 버퍼된 신호들을 실행되도록 한다. 또한, 신호처리기(124)가 더 높은 우선순위 레벨의 작업을 가질 때, 신호처리기(124)는 작업실행 중간에 명령처리기(122)에 의해 "D" 우선순위 레벨 작업을 항시 인터럽트시킨다. 신호처리기(124)는 "A" 우선순위 레벨 작업으로 하여금 신호 송신시 다른 작업을 또한 인터럽트하도록 한다.The command processor 122 and the signal processor 124 operate in a different way than that done to the corresponding processor of the prior art. In particular, as will be discussed in more detail below, the command processor 122 selectively stores the buffered signals it generates on the current list 150, bypassing the signal processor 124 and providing good context protection. . The signal processor 124 allows one or more buffered signals to be executed in the current list 150 while the time limit is not exceeded. Also, when signal processor 124 has a higher priority level job, signal processor 124 always interrupts the " D " priority level job by command processor 122 in the middle of job execution. The signal processor 124 causes the "A" priority level task to also interrupt other tasks upon signal transmission.

도 4는 명령처리기(122)의 하나의 구성을 도시한다. 도 4의 구성에서, 명령처리기(122)는 중앙처리 유니트(CPU)(160)와; 레지스터 메모리(162)와; 빠른 메모리(164)와; 메모리 액세스/인터페이스(166)와; 복수의 캐시 메모리(168A∼168C)와; 복수의 메모리 카드(170A∼170G)와; 메모리 액세스/인터페이스(166)를 카드(170)에 연결하는 메모리 버스(172)를 갖는다. 도 4에 도시된 구성에서, 캐시 메모리(168B)는 16바이트 액세스를 갖고, 캐시 메모리(168C)는 4바이트 액세스를 갖는다. 카드(170A∼170F)는 DRAM메인 메모리 카드이다. 카드(170G)는 디스크 드라이브 제어기 등의 주변 장치에 IOB버스에 의해 연결된 직접 메모리 액세스(DMA) 카드이고, 디스크 등의 다른 메모리 장치를 사용하는 것이 가능하게 된다.4 shows one configuration of the command processor 122. In the configuration of FIG. 4, the command processor 122 includes a central processing unit (CPU) 160; Register memory 162; Fast memory 164; Memory access / interface 166; A plurality of cache memories 168A to 168C; A plurality of memory cards 170A to 170G; It has a memory bus 172 that connects memory access / interface 166 to card 170. In the configuration shown in FIG. 4, cache memory 168B has 16 byte access and cache memory 168C has 4 byte access. The cards 170A to 170F are DRAM main memory cards. The card 170G is a direct memory access (DMA) card connected by an IOB bus to a peripheral device such as a disk drive controller, and it is possible to use another memory device such as a disk.

도 4의 명령처리기 구성에서, 빠른 메모리(164)는 디스크 버퍼의 트랙을 로크(lock)하고 유지하는 데이터 구조 등의 매우 자주 사용되는 변수에 액세스하기 위해 사용된다. 특정한 메모리 형태에 대한 변수의 할당이 컴파일러를 통해 또는 설계자에 의해 수행될 수 있다. 캐시 메모리(168A∼168C)는 변하는 라인 크기를 가져서 유연성을 제공한다. 캐시되어야 하는 변수가 블록 파라미터 또는 변수 형태로서 또한 특정화될 수 있다.In the command processor configuration of FIG. 4, fast memory 164 is used to access very frequently used variables, such as data structures that lock and maintain tracks of disk buffers. The assignment of variables to specific memory types can be done through the compiler or by the designer. Cache memories 168A-168C have varying line sizes to provide flexibility. The variable to be cached can also be specified as a block parameter or variable form.

도 10은 본 발명의 일 실시예에 의해 사용된 신호 포맷을 도시한다. 도 10에 도시했듯이, 신호는 신호가 속해있는 쓰레드를 나타내는 제1필드 "ThreadID"와; 신호의 우선순위를 나타내는 제2필드 "JobLevel"와; 신호의 마지막 필드에서 데이터 아이템수로 나타내어진 제3필드 "FORMAT"와; 신호의 시퀀스수를 나타내는 제4필드 "SignalNumber"와; 수신하는 블록수인 제6필드 "RecBlock"와; 보내는 블록수인 제7필드 "SendBlock"과; 신뢰성을 목적으로해서 사용된 식별인 제8필드 "Forlopp Id"와; 제1데이터값을 포함하는 제9필드 "RegPRO"와; 하나 이상의(24와 동수인) 다른 데이터값을 포함하는 제10필드 "DataList"를 포함한다.10 illustrates a signal format used by one embodiment of the present invention. As shown in Fig. 10, the signal includes a first field " ThreadID " representing a thread to which the signal belongs; A second field "JobLevel" indicating the priority of the signal; A third field " FORMAT " represented by the number of data items in the last field of the signal; A fourth field "SignalNumber" indicating the number of sequences of the signal; A sixth field "RecBlock" that is the number of blocks to receive; A seventh field "SendBlock" which is the number of blocks to send; An eighth field "Forlopp Id" which is an identification used for reliability purposes; A ninth field "RegPRO" containing a first data value; And a tenth field "DataList" containing one or more other data values (equivalent to 24).

쓰레드는 외측 시스템으로부터(예를 들어, 영역 처리기 또는 "다른" 명령처리기로부터) 수신된 메시지에 응답해서 실행할 필요가 있는 일련의 작업 인지를 포함한다. 쓰레드에서, 몇 개의 작업이 동시에 실행될 수 있고, 외측 시스템과의 통신은 쓰레드의 일부로서 발생될 수 있다.A thread contains a set of tasks that need to be executed in response to a message received from an external system (eg, from a region handler or "other" command processor). In a thread, several tasks can run concurrently, and communication with the external system can occur as part of the thread.

동작action

신호처리기(124)에 의해 인지된 이벤트 및 얻어진 액션이 도 6에 도시된다. 명령처리기(122)에 의해 인지된 이벤트 및 얻어진 액션이 도 7에 도시된다. 신호처리기에 의해 인지된 이벤트가 폼(form) "E(SP)x"의 식별자로써 표시되고; 명령처리기(122)에 의해 인지된 이벤트가 폼 "E(IP)x"의 식별자로써 표시된다. 신호처리기(124)에 의해 얻어진 액션이 폼 "A(SP)x"의 식별자로써 표시되고; 명령처리기(122)에 의해 얻어진 액션이 폼 "A(IP)x"의 식별자로써 표시된다. 모든 그런 식별자에서, "x"는 이벤트 또는 액션 번호로 언급된다.The events recognized by the signal processor 124 and the actions taken are shown in FIG. 6. The events recognized by the command processor 122 and the actions taken are shown in FIG. 7. The event recognized by the signal processor is indicated as an identifier of form "E (SP) x"; The event acknowledged by command processor 122 is indicated as an identifier of form "E (IP) x". The action obtained by the signal processor 124 is represented as an identifier of the form "A (SP) x"; The action obtained by the command processor 122 is displayed as an identifier of the form "A (IP) x". In all such identifiers, the "x" is referred to as the event or action number.

도 6에 도시했듯이, 신호처리기(124)는 3개의 상태: 휴지상태; 작동상태; 및 큐된 상태를 갖는다. 상태 변화는 도 6에서 볼드체 활자(boldface) 라인에 의해 도시된다. 도 6은 신호처리기(124)가 특정한 이벤트(E(SP) 1 내지 E(SP)4)에서 4개의 "SP"이벤트를 발생시키는 것을 도시한다. 신호처리기(124)는 그것이 SP이벤트를 발생할 때, 3개의 상태중 어느 하나에 있을 수 있다. 상기 이유로 인해, 도 6의 각 SP이벤트가 각 상태로 들어가는 것을 도시한다(점선으로).As shown in Fig. 6, the signal processor 124 has three states: an idle state; Operating state; And a queued state. The state change is illustrated by bold face lines in FIG. 6. 6 shows that the signal processor 124 generates four "SP" events at specific events (E (SP) 1 to E (SP) 4). Signal processor 124 may be in any of three states when it generates an SP event. For this reason, it is shown that each SP event of FIG. 6 enters each state (in dashed lines).

도 6의 각 SP이벤트에 대해, 신호처리기(124)가 대응하는 액션에 응답한다. 본원에서 사용했듯이, "액션"이 하나 이상의 단계를 포함할 수 있고, 그 단계들은 대안적으로 또는 연속적으로 실행될 수 있다. 신호처리기(124)에 의해 수행된 액션 및 각 액션을 구성하는 단계는 도 8(1) 내지 8(4) 각각에서 예시된다. 시간에서, 액션을 따라 실행된 단계는 신호처리기(124)의 "상태"에 따른다.For each SP event in FIG. 6, the signal processor 124 responds to the corresponding action. As used herein, an "action" may comprise one or more steps, which steps may alternatively or continuously be executed. The actions performed by the signal processor 124 and the steps of configuring each action are illustrated in each of FIGS. 8 (1) to 8 (4). In time, the steps performed along the action depend on the "state" of the signal processor 124.

도 7에서 도시했듯이, 명령처리기(122)는 3개의 상태: 휴지상태; 작동상태; 및 결합된/작동상태를 갖는다. 각 상태가 독립적으로 되므로, 명령처리기(122) 및 신호처리기(124)의 비슷한 이름의 상태가 혼란되지 않는다. 도 6에서처럼, 상태 변화는 도 7에서 볼드체 활자(boldface) 라인에 의해 도시된다. 도 7은 신호처리기(124)가 특정한 이벤트(E(SP)1 내지 E(SP)11)에서 11개의 "IP" 이벤트를 발생시키는 것을 도시한다. IP이벤트(E(IP)1, E(IP)3, E(IP)9)를 예로 하는 상기 IP이벤트중 일부가 신호처리기(124)에 의해 수행된 액션과 연결해서 발생한다.As shown in Fig. 7, the command processor 122 has three states: an idle state; Operating state; And a combined / operational state. Since each state is independent, similarly named states of the command processor 122 and the signal processor 124 are not confused. As in FIG. 6, the state change is illustrated by boldface lines in FIG. 7. 7 shows that the signal processor 124 generates eleven "IP" events at specific events (E (SP) 1 to E (SP) 11). Some of these IP events, taking IP events E (IP) 1, E (IP) 3, and E (IP) 9 as examples, occur in connection with the action performed by the signal processor 124.

신호처리기(124) 및 명령처리기(122)는 상관되어 소정의 IP이벤트는 명령처리기(124)가 그 상태중 하나 이상의 특정한 것일때만 발생한다. 상기 관계에서, 명령처리기(122)에 의해 수행된 액션은 액션이 발생하는 상태를 도시하는 원내에서 도시된다. IP이벤트가 발생할 수 있는 상태는 도 7에서 점선 연결에 의해 표시된다. IP 액션(E(IP)1 내지 E(IP)11)으로써 포함된 단계는 도 9(1)-9(11) 각각에서 더 상세하게 도시된다. 상설했듯이 도 9(1)-9(11)에 대해 이해했듯이, 명령처리기(122)에 의해 수행된 각종 액션이 도 6에 도시된 SP이벤트(E(SP)1-E(SP)2)를 만든다.The signal processor 124 and the command processor 122 are correlated such that certain IP events occur only when the command processor 124 is one or more of its states. In this relationship, the action performed by command processor 122 is shown in a circle showing the state in which the action occurs. The state in which the IP event may occur is indicated by the dotted line in FIG. The steps involved as IP actions E (IP) 1 through E (IP) 11 are shown in more detail in each of FIGS. 9 (1) -9 (11). As mentioned above, as understood with respect to Figs. 9 (1) -9 (11), various actions performed by the command processor 122 are performed by the SP events E (SP) 1-E (SP) 2 shown in Fig.6. Make.

A. 신호처리기 동작A. Signal Processor Operation

신호처리기(124)는 그 타이머(141)과 결부시켜 동작한다(도 3 참조). 설정된 시간값(예를 들어 값 "X" 또는 "Y")으로써 로드할 때, 시간값에 대응하는 시간 간격이 만기할 때 타이머(141)는 신호처리기(124)에 고지한다. 시간값의 만기, 예를 들어, 타이머(141)에 의한 고지는 도 8(3)를 참고로 더 상세하게 설명된 시간 종료 이벤트를 발생시킨다[이벤트 E(SP)3]. 시간 종료 이벤트는 신호처리기(124)로 하여금 명령처리기(122)의 액션이 더 많은 시간을 걸리게 하는 지를 알 수 있게 한다. 상기 관계에서, 소정의 동작(예를 들어, 명령처리기(122)에 의해 실행용 신호처리기(124)의 버퍼(142)로부터 새로운 신호를 송신하는)의 초기화시 타이머(141)는 "X"값(예를 들어, 1ms)으로 세트된다. 시간 종료가 "X"값으로 세트되는 타이머(141)없이 발생한다면, 신호처리기(124)는 명령처리기(122)가 하나의 시간 간격동안 같은 쓰레드 ID의 작업을 실행하는 것을 인지하기 위해 플래그 SP_인터럽트를 세트시킨다. 타이머(141)는 제2시간값 "Y"(예를 들어, 3ms)로써 로드된다. 얻어진 액션이 시간값 "Y"의 만기후 제2시간 종료를 발생하고, 실행하는 작업의 우선순위 레벨에 따른다. 실행하는 작업이 "C" 또는 "D" 우선순위 레벨이라면, 실행하는 작업이 인터럽트된다. 실행하는 작업이 "A" 또는 "B" 우선순위 레벨이라면, 에러 상태는 인지되고 KILL신호는 발생된다.The signal processor 124 operates in conjunction with the timer 141 (see FIG. 3). When loading with a set time value (for example, the value "X" or "Y"), the timer 141 notifies the signal processor 124 when the time interval corresponding to the time value expires. Expiry of a time value, for example, notification by the timer 141, generates a time-out event described in more detail with reference to FIG. 8 (3) (event E (SP) 3). The timeout event allows the signal processor 124 to know if the action of the command processor 122 takes more time. In this relationship, the timer 141 at initialization of a predetermined operation (e.g., transmitting a new signal from the buffer 142 of the execution signal processor 124 by the command processor 122) has a value of "X". (For example, 1 ms). If the timeout occurs without a timer 141 set to a value of " X ", then the signal processor 124 may flag flag SP_ to recognize that the instruction processor 122 executes the same thread ID for one time interval. Set the interrupt. The timer 141 is loaded with the second time value "Y" (eg 3 ms). The obtained action generates a second time end after the expiration of the time value "Y" and depends on the priority level of the task to be executed. If the task being executed is at the "C" or "D" priority level, the task to execute is interrupted. If the task being executed is an "A" or "B" priority level, an error condition is acknowledged and a KILL signal is generated.

SP이벤트의 수신시 신호처리기(124)에 의해 수행된 액션이 하기와 같이 설명된다.The action performed by the signal processor 124 upon receipt of the SP event is described as follows.

(1) SP에 의한 비-출구신호의 수신(1) reception of non-outlet signals by the SP

작업 실행과 연결해서, 명령처리기(122)는 비-출구 신호를 발생시키고 그 발생된 신호에 대해 우선순위 레벨을 할당한다. 그런 신호가 신호처리기(124)에 전달되는 경우에, 신호처리기(124)는 이벤트(E(SP)2)를 도 6에 도시한대로 된다. 이벤트(E(SP)2)의 수신시, 신호처리기(124)는 액션(A(SP)2)을 수행하고, 그 단계는 도 8(2)에 예시된다.In connection with job execution, command processor 122 generates a non-exit signal and assigns a priority level to the generated signal. In the case where such a signal is transmitted to the signal processor 124, the signal processor 124 becomes an event E (SP) 2 as shown in FIG. Upon receipt of event E (SP) 2, signal processor 124 performs action A (SP) 2, the steps of which are illustrated in FIG. 8 (2).

각 단계(8(2)-1 및 8(2)-2)에서, 신호처리기(124)는 명령처리기(122)가 영역 처리기 또는 "다른" 명령처리기중 하나에 대해 향하게 되는 지를 식별한다. 명령처리기(122)로부터 수신된 신호가 영역 처리기중 하나에 대해 향하게 되면, 단계(8(2)-3)에서 신호는 알맞은 영역 처리기 버스 핸들러(130)로 보내진다. 명령처리기(122)로부터 수신된 신호가 "다른" 명령처리기중 하나에 대해 향하게 되면, 단계(8(2)-4)에서 신호는 "다른" 명령처리기 버스 핸들러(131)로 보내진다.In each step 8 (2)-1 and 8 (2)-2, the signal processor 124 identifies whether the command processor 122 is directed to either the area processor or the " other " command processor. If the signal received from the command processor 122 is directed to one of the area processors, then at step 8 (2) -3 the signal is sent to the appropriate area processor bus handler 130. If the signal received from the command processor 122 is directed to one of the "other" command processors, then at step 8 (2) -4 the signal is sent to the "other" command processor bus handler 131.

명령처리기(122)로부터 얻어진 비-출구신호가 외부적으로 향하지 않으면, 명령처리기(122)에 의해 현재 실행되는 신호의 우선순위 레벨이 단계(8(2)-5)에서 검사된다. 현재 실행하는 신호의 우선순위 레벨이 "D"레벨을 제외하면, 단계(8(2)-6)에서 그 수신된 신호는 그 우선순위에 따라 알맞은 작업 버퍼(42A∼42D)에 마지막으로 놓여진다. 그렇지 않으면, 현재 실행하는 신호의 우선순위 레벨이 "D"레벨이면, 단계(8(2)-7)는 실행된다. 단계(8(2)-7)에서, 스위치 시간-종료는 "X"값으로 세트되고; 플래그 작업_인터럽트된_레벨(D)은 활성되게 세트되고(우선순위 레벨(D)의 작업이 인터럽트되는 것을 표시하기 위해); 현재의 ("D"레벨) 작업 실행이 인터럽트된다. 명령처리기(122)는 작업 인터럽트를 이벤트(E(IP)8)로서 보고, 도 9(8)에 설명했듯이 액션(A(IP)8)으로써 응답한다. 단계(8(2)-3, 8(2)-4, 8(2)-6, 또는 8(2)-7)의 완료시, 액션(A(SP)2)은 심벌(8(2)-8)로 표시했듯이 종료한다.If the non-exit signal obtained from the command processor 122 is not directed externally, the priority level of the signal currently executed by the command processor 122 is checked in step 8 (2) -5. If the priority level of the currently executing signal excludes the "D" level, then at step 8 (2) -6 the received signal is finally placed in the appropriate working buffers 42A-42D according to its priority. . Otherwise, if the priority level of the currently executing signal is the "D" level, steps 8 (2) -7 are executed. In step 8 (2) -7, the switch time-out is set to an "X" value; The flag task_interrupted_level D is set to be active (to indicate that the task of the priority level D is interrupted); The current ("D" level) job execution is interrupted. Command processor 122 sees the job interrupt as event E (IP) 8 and responds with action A (IP) 8 as described in FIG. 9 (8). Upon completion of steps 8 (2) -3, 8 (2) -4, 8 (2) -6, or 8 (2) -7, action A (SP) 2 is a symbol 8 (2). Exit as indicated by -8).

(2) SP에 의한 출구신호의 수신(2) Reception of exit signal by SP

명령처리기(122)로부터 출구 신호를 수신하는[이벤트 E(SP)1] 신호처리기(124)는 액션(A(SP)1)을 트리거하고, 그것의 단계는 도 8(1)에 도시된다. 출구 신호는 명령처리기(122)로부터 수신되고, 따라서 액션(A(SP)1)은 버퍼된 신호의 발생으로부터 나타나지 않는 작업의 실행을 완성하는 명령처리기(122)의 인스턴스에서 트리거된다. 대안적으로, 명령처리기(122)가 버퍼된 신호로부터 나타나는 작업 또는 작업의 시퀀스를 완성할 때 출구 신호는 수신된다[도 9(4)의 단계(9(4)-6, 9(4)-9, 및 9(4)-4)와; 도 9(7)의 단계(9(7)-3)와; 도 9(3)의 단계(9(3)-3)를 참조).Signal processor 124 receiving an exit signal from command processor 122 (event E (SP) 1) triggers action A (SP) 1, the steps of which are shown in FIG. 8 (1). The exit signal is received from the command processor 122, so action A (SP) 1 is triggered at an instance of the command processor 122 completing the execution of a task that does not appear from the generation of the buffered signal. Alternatively, the exit signal is received when the command processor 122 completes the task or sequence of tasks appearing from the buffered signal (steps 9 (4) -6, 9 (4)-of FIG. 9 (4)-). 9, and 9 (4) -4); Step 9 (7) -3 in Fig. 9 (7); See step 9 (3) -3 of FIG. 9 (3)).

명령처리기(122)로부터 출구신호의 수신시[이벤트 E(SP)1], 신호처리기(124)는 비지 않은 버퍼(142A∼142D)로부터 제1작업을 최고 우선순위로써 페치시킨다[단계8(1)-1]. 단계(8(1)-2)에서, 신호처리기(122)는 각종의 플래그(에러_시간종료 및 SP_인터럽트)를 클리어하고 스위치 시간_종료를 "X"값으로 세트한다. 단계(8(1)-3) 및 단계(8(1)-4)에서, 단계(8(1)-1)에서 페치된 작업의 우선순위 레벨은 우선순위 레벨이 "C"(단계 8(1)-3) 또는 "D"(단계 8(1)-4)인지를 결정하기 위해 검사된다.Upon receipt of the exit signal from the command processor 122 [Event E (SP) 1], the signal processor 124 fetches the first job at the highest priority from the non-empty buffers 142A to 142D [step 8 (1 )-One]. In step 8 (1) -2, the signal processor 122 clears various flags (error_timeout and SP_interrupt) and sets the switch time_end to the value "X". In steps 8 (1) -3 and 8 (1) -4, the priority level of the job fetched in step 8 (1) -1 has a priority level of " C " 1) -3) or " D " (step 8 (1) -4).

그 페치된 작업이 우선순위 레벨 "C"을 가진다면, 단계(8(1)-5)에서 플래그 작업_인터럽트된_레벨[C]이 플래그가 활성화되는 지, 즉 우선순위 레벨(C)의 다른 작업의 명령처리기(122)에 의한 실행이 이미 신호처리기에 의해 인터럽트되는 지를 결정하기 위해 참고로 된다. 단계(9(1)-5)에서 결정이 확정적이면, 단계(8(1)-6)는 실행된다. 단계(8(6)-1)에서, 단계(8(1)-1)에서 페치된 작업이 페치되는 버퍼로 되돌아서 놓여지고; 플래그 작업_인터럽트된_레벨(C)은 활성화되지 않도록 세트되고(이전에 인터럽트된 레벨 "C" 작업이 현재 실행되고 그러므로 인터럽트되지 않기 때문에); 플래그 활성화_우선순위는 "C"로 세트되고(이전에 인터럽트된 작업의 우선순위 레벨을 재설정하기 위해); 그 인터럽트된 작업이 재개된다. 신호처리기(124)에 의해 인터럽트된 작업 실행의 재개는 도 9(2)를 참고로 이해된 IP이벤트(E(IP)2)를 만든다. 액션(A(SP)1)은 종료된다(심벌(8(1)-9)에 의해 표시했듯이).If the fetched job has a priority level "C", then at step 8 (1) -5 the flag job_interrupted_level [C] is activated, i.e. of priority level C. Reference is made to determine if execution by the command processor 122 of another task is already interrupted by the signal processor. If the determination is final in step 9 (1) -5, step 8 (1) -6 is executed. In step 8 (6) -1, the job fetched in step 8 (1) -1 is placed back into the buffer to be fetched; The flag task_interrupted_level C is set not to be active (because the previously interrupted level "C" task is currently executed and therefore not interrupted); The flag activation_priority is set to "C" (to reset the priority level of a previously interrupted job); The interrupted task is resumed. Resumption of job execution interrupted by the signal processor 124 generates the IP event E (IP) 2, which is understood with reference to FIG. 9 (2). Action A (SP) 1 ends (as indicated by symbol 8 (1) -9).

그 페치된 작업이 우선순위 레벨 "C"를 가지나, 플래그 작업_인터럽트된_레벨[C]는 활성화되지 않고(즉, 우선순위 "C"의 작업이 현재 인터럽트되지 않으면), 단계(8(1)-7 및 8(1)-8)는 실행된다. 단계(8(1)-7)에서, 플래그 활성화_우선순위는 단계(8(1)-1)에서 페치된 작업의 우선순위로 되도록 세트되고; 페치된 작업과 연관된 신호가 IP이벤트(E(IP)1)로서 명령처리기(122)에 보내지고(도 9(1) 참조); CurrentThreadID는 페치된 작업의 쓰레드 ID로 세트된다. 단계(8(1)-8)에서, 우선순위 레벨 "C" 또는 더 높은 것의 작업 버퍼에서 모든 작업의 쓰레드 IDs는 검사되고, 작업의 쓰레드 ID가 CurrentThreadID(즉, 페치된 작업의 쓰레드 ID)와 같다면, 각 작업과 연관된 신호가 명령처리기(122)에서 현재의 목록(150)에 보내진다. 환원해서, IP이벤트(E(IP)11)는 CurrentThreadID와 같은 쓰레드 ID를 갖는 (레벨 "C" 또는 그 이상의) 작업 버퍼에서 각 작업에 대해 발생된다. IP이벤트(E(IP)11)에 응답해서 명령처리기(122)에 의해 얻어진 액션이 도 9(11)를 참고로 설명된다. 액션(A(SP)1)은 종료된다(심벌(8(1)-9)에 의해 표시했듯이).The fetched job has a priority level of "C", but the flag job_interrupted_level [C] is not active (that is, if a job of priority "C" is not currently interrupted), then step 8 (1 ) -7 and 8 (1) -8) are executed. In step 8 (1) -7, the flag activation_priority is set to be the priority of the job fetched in step 8 (1) -1; A signal associated with the fetched job is sent to the command processor 122 as an IP event E (IP) 1 (see FIG. 9 (1)); CurrentThreadID is set to the thread ID of the fetched job. In step 8 (1) -8, the thread IDs of all jobs in the job buffer of priority level "C" or higher are checked and the thread ID of the job is equal to the CurrentThreadID (that is, the thread ID of the fetched job). If so, a signal associated with each task is sent from the command processor 122 to the current list 150. In return, IP event E (IP) 11 is generated for each job in the job buffer (level "C" or higher) with a thread ID equal to CurrentThreadID. The action obtained by the command processor 122 in response to the IP event E (IP) 11 is described with reference to Fig. 9 (11). Action A (SP) 1 ends (as indicated by symbol 8 (1) -9).

페치된 작업이 우선순위 레벨"D"을 가지면(단계(8(1)-4)에서 결정했듯이), 단계(8(1)-10)에서 플래그 작업_인터럽트된_레벨[C] 및 작업_인터럽트된 레벨[C]은 우선순위 레벨 "C" 또는 "D"의 작업의 명령처리기(122)에 의한 실행이 신호처리기(124)에 의해 현재 인터럽트되는 지를 결정하기 위해 고려된다. 단계(8(1)-10)에서 검사가 확정적이면(즉, 어떤 플래그가 활성화되면), 단계(8(1)-1)에서 페치된 작업이 버퍼에서 되돌아서 놓여지고[단계8(1)-1] 부가적인 검사는 단계(8(1)-12)에서 수행된다. 특히, 단계(8(1)-12)에서, 플래그 작업_인터럽트된_레벨[C]이 활성화되는 지를 알기위해 부가적인 차별이 행해진다. 단계(8(1)-12)의 결과가 확정적이면, 단계(8(1)-13)에서 플래그 작업_인터럽트된_레벨[C]은 활성화되지 않도록 세트되고 플래그 활성화_우선순위는 "C"값으로 할당된다. 단계(8(1)-12)의 결과가 네가티브이면, 단계(8(1)-14)에서 플래그 작업_인터럽트된_레벨[D]은 활성화하지 않도록 세트되고 플래그 활성화_우선순위는 "D"값으로 할당된다. 단계(8(1)-13 및 8(1)-14)중 어느 하나의 완료시, 단계(8(10-15)에서 신호처리기(124)는 명령처리기(122)에게 발생하는 IP이벤트(E(IP)2)에 의해 최고 우선순위의 인터럽트된 작업의 실행을 재개하도록 지시한다. 그후, 액션(A(SP)1)은 심벌(8(1)-16)에 의해 표시했듯이 종료한다.If the fetched job has a priority level "D" (as determined in step 8 (1) -4), the flag job_interrupted_level [C] and job_ in step 8 (1) -10). Interrupted level [C] is taken into account to determine if execution by command processor 122 of a job of priority level "C" or "D" is currently interrupted by signal processor 124. If the check is determinate in step 8 (1) -10 (i.e. any flag is activated), the job fetched in step 8 (1) -1 is placed back in the buffer [step 8 (1)]. Additional checks are carried out in step 8 (1) -12. In particular, in step 8 (1) -12, an additional discrimination is made to see if the flag task_interrupted_level [C] is activated. If the result of step 8 (1) -12 is deterministic, then at step 8 (1) -13 the flag job_interrupted_level [C] is set not to be activated and the flag activation_priority is "C". Assigned by value. If the result of step 8 (1) -12 is negative, in step 8 (1) -14 the flag operation_interrupted_level [D] is set not to activate and the flag activation_priority is "D". Assigned by value. Upon completion of any of steps 8 (1) -13 and 8 (1) -14, in step 8 (10-15) the signal processor 124 generates an IP event (E) that occurs to the command processor 122. It is instructed to resume execution of the interrupted job of the highest priority by (IP) 2) Then action A (SP) 1 ends as indicated by the symbol 8 (1) -16.

단계(8(1)-10)에서 플래그 작업_인터럽트된_레벨[C] 또는 작업_인터럽트된_레벨[D]이 활성화되는 것으로 결정되면, 단계(8(1)-17 및 8(1)-18)는 액션(A(SP)1)의 종료에 앞서서 실행된다. 단계(8(1)-18)에서, 플래그 활성화_우선순위는 단계(8(1)-1)에서 페치된 작업의 우선순위로 되기위해 세트되고; CurrentThreadID는 그 페치된 작업의 쓰레드 ID로 세트되고; 그 페치된 작업과 연관된 신호가 단계(8(1)-7)와 비슷한 방법으로 명령처리기(122)에 IP이벤트(E(IP)1)로서 보내진다(도 9(1) 참조). 단계(8(1)-18)에서, 작업 버퍼("C" 또는 그 이상의 우선순위 레벨을 갖는)에서 모든 작업의 쓰레드(IDs)는 검사되고, 작업의 쓰레드(ID)가 CurrentThreadID(즉, 페치된 작업의 쓰레드(ID))와 같다면, 각 작업과 연관된 신호가 명령처리기(122)에서 현재의 목록(150)에 보내진다. 환언해서, IP이벤트(E(IP)11)가 CurrentThreadID와 같은 쓰레드 ID를 갖는 작업 버퍼에서 각 작업에 대해 발생된다. 이전에 표시했듯이, IP이벤트(E(IP)11)에 응답해서 명령처리기(122)에 의해 얻어진 액션이 도 9(11)를 참고로 설명된다.If it is determined in step 8 (1) -10 that the flag job_interrupted level [C] or job_interrupted level [D] is activated, steps 8 (1) -17 and 8 (1) -18) is executed prior to the end of the action A (SP) 1. In steps 8 (1) -18, the flag activation_priority is set to be the priority of the job fetched in step 8 (1) -1; CurrentThreadID is set to the thread ID of the fetched job; The signal associated with the fetched job is sent to the command processor 122 as an IP event E (IP) 1 in a similar manner to steps 8 (1) -7 (see Fig. 9 (1)). In steps 8 (1) -18, the threads (IDs) of all jobs in the job buffer (with a "C" or higher priority level) are examined and the thread IDs of the job are CurrentThreadIDs (ie, fetches). If it is equal to the number of threads (ID) of the jobs that have been processed, a signal associated with each job is sent from the command processor 122 to the current list 150. In other words, an IP event (E (IP) 11) is generated for each job in the job buffer with a thread ID equal to CurrentThreadID. As indicated previously, the action obtained by command processor 122 in response to IP event E (IP) 11 is described with reference to FIG.

페치된 작업이 "C" 또는 "D"을 제외한 우선순위 레벨을 가진다면, 단계(8(1)-19 및 8(1)-20)는 액션(A(SP)1)의 종료에 앞서서 실행된다. 단계(8(1)-19 및 8(1)-20)는 단계(8(1)-17 및 8(1)-18)와 비슷하고, 필수적으로 명령처리기의 현재 목록(150)에 보내지는 CurrentThreadID와 비슷한 쓰레드 ID를 갖는 버퍼의 모든 작업에서 끝난다. 액션(A(SP)1)의 종료는 심벌(8(1)-21)에 의해 표시된다.If the fetched job has a priority level except "C" or "D", steps 8 (1) -19 and 8 (1) -20 are executed prior to the end of action A (SP) 1. do. Steps 8 (1) -19 and 8 (1) -20 are similar to steps 8 (1) -17 and 8 (1) -18) and are essentially sent to the current list 150 of the command processor. End all work on the buffer with a thread ID similar to CurrentThreadID. The end of action A (SP) 1 is indicated by symbols 8 (1) -21.

(3) SP에 의한 RP 또는 다른 것으로부터의 신호 수신(3) Signal reception from RP or others by SP

신호처리기(124)가 영역 처리기 버스 핸들러(30) 및 "다른" 명령처리기 버스 핸들러(31)에 신호를 보낼수 있는 것과 마찬가지로, 신호처리기(124)는 도 6에서 이벤트(E(SP)4)에 의해 표시했듯이 그 핸들러로부터 외부적으로 발생된 신호를 수신할 수 있다. 외부적으로 발생된 신호의 수신시, 액션(A(SP)4)이 수행된다. 액션(A(SP)4)의 단계는 도 8(4)에서 예시된다.Just as signal processor 124 can send signals to region processor bus handler 30 and the " other " command processor bus handler 31, signal processor 124 is configured for event E (SP) 4 in FIG. As indicated by this, you can receive externally generated signals from the handler. Upon reception of the externally generated signal, action A (SP) 4 is performed. The step of action A (SP) 4 is illustrated in FIG. 8 (4).

액션(A(SP)4)에서, 외부적으로 발생된 신호가 쓰레드 ID를 포함하지 않는 다면(단계(8(4)-1)에서 결정했듯이), 신호처리기(124)는 쓰레드 ID를 할당한다[단계8(4)-2]. 예를 들어, 신호처리기(124)는 처리기 ID 및 내부 카운터를 연결함에 의해 새로운 쓰레드 ID가 할당할 때 마다 증가되는 쓰레드 ID를 할당할 수 있다.In action A (SP) 4, if the externally generated signal does not contain a thread ID (as determined in step 8 (4) -1), the signal processor 124 assigns a thread ID. [Step 8 (4) -2]. For example, the signal processor 124 may assign a thread ID that is incremented each time a new thread ID is assigned by concatenating the processor ID and the internal counter.

단계(8(4)-3 및 8(4)-4)에서, 신호처리기(124)는 외부적으로 발생된 신호의 우선순위 레벨을 검사한다. 단계(8(4)-3) 또는 단계(8(4)-4)중 어느것의 상태가 만족되지 않으면, 단계(8(4)-5)의 쓰레드 ID상태가 검사된다. 단계(8(4)-5)의 쓰레드 ID상태가 검사된다. 단계(8(4)-5)의 쓰레드 ID상태가 만족되지 않으면, 단계(8(4)-6)가 실행된다.In steps 8 (4) -3 and 8 (4) -4, the signal processor 124 checks the priority level of the externally generated signal. If the state of either step 8 (4) -3 or step 8 (4) -4 is not satisfied, the thread ID state of step 8 (4) -5 is checked. The thread ID status of step 8 (4) -5 is checked. If the thread ID status of step 8 (4) -5 is not satisfied, step 8 (4) -6 is executed.

단계(A(SP)4-3)에서, 외부적으로 발생된 신호의 우선순위 레벨이 명령처리기(122)에 의해 현재 실행되는 작업의 우선순위 레벨보다 크다면, 명령처리기(122)에 의해 실행되는 작업이 최저("D") 레벨 우선순위를 갖고, 신호처리기(124)는 단계(8(4)-7)를 수행한다. 단계(8(4)-7)에서, 신호처리기(124)는 스위치 시간 종료를 "X"값으로 세트하고; 플래그 작업_인터럽트된_레벨[D]를 활성화하기 위해 세트하고(우선순위 레벨 "D"의 작업이 인터럽트되는 것을 표시하기 위해); 인터럽트를 명령처리기(122)에 보낸다. 명령처리기(122)는 그 인터럽트를 IP이벤트(E(IP)8)로서 뷰(views)하고, 액션(A(SP)8)에 대해 이해되는 응답이 도 9(8)에서 설명된다.In step A (SP) 4-3, if the priority level of the externally generated signal is greater than the priority level of the job currently executed by the command processor 122, it is executed by the command processor 122. The task to be has the lowest ("D") level priority, and signal processor 124 performs steps 8 (4) -7. In step 8 (4) -7, the signal processor 124 sets the switch timeout to the value "X"; Set to activate the flag task_interrupted_level [D] (to indicate that the task at the priority level "D" is interrupted); Send an interrupt to the command processor 122. The command processor 122 views the interrupt as an IP event E (IP) 8, and the response understood to the action A (SP) 8 is described in FIG. 9 (8).

단계(8(4)-4)에서, 외부적으로 발생된 신호의 우선순위 레벨이 최고 레벨(예를 들어, "A"레벨 우선순위)이고 명령처리기(122)에 의해 현재 실행하는 작업의 우선순위 레벨보다 크다면, 단계(8(4)-8)에서 신호처리기(124)는 플래그 SP_인터럽트(명령처리기(122)로 하여금 현재 실행되는 작업의 종료시 새로운 신호를 실행시키는)를 세트시킨다. 또한, 단계(8(4)-7)에서, 신호처리기(124)는 스위치 시간-종료를 "Y"로 세트시킨다.In step 8 (4) -4, the priority level of the externally generated signal is the highest level (e.g., "A" level priority) and the priority of the job currently executed by the command processor 122. If greater than the rank level, then at step 8 (4) -8 the signal processor 124 sets a flag SP_interrupt (which causes the command processor 122 to execute a new signal at the end of the currently executed job). Also in step 8 (4) -7, the signal processor 124 sets the switch time-out to " Y ".

외부적으로 발생된 신호가 결과적으로 인터럽션 또는 세팅하는 플래그 SP_인터럽트되지 않는 다고 가정하면, 단계(8(SP)4-5)에서 그럼에도 불구하고 신호처리기(124)는 외부적으로 발생된 신호(영역 처리기 버스 핸들러(30) 또는 처리기 버스 헨들러(31)중 어느것을 경유해 수신된)의 쓰레드 ID가 명령처리기(122)에 의해 처리되는 CurrentThreadID인지 및 외부적으로 발생된 신호의 우선순위 레벨이 D-레벨보다 큰지를 결정한다. 그렇다면, 단계(8(4)-9)에서 외부적으로 발생된 신호가 현재의 목록(150)으로 엔트리하기 위해 명령처리기(122)로 보내진다. 신호 수신시[이벤트 E(IP)9], 명령처리기(122)는 외부적으로 발생된 신호를 마지막 엔트리로서 현재의 목록(150)에 넣는다(도 9(9) 참조).Assuming that the externally generated signal does not result in interruption or setting the flag SP_interruption, then at step 8 (SP) 4-5 the signal processor 124 nevertheless causes the externally generated signal Whether the thread ID (received via the area handler bus handler 30 or the handler bus handler 31) is the CurrentThreadID processed by the command handler 122 and the priority level of the externally generated signal Determine if greater than D-level. If so, the externally generated signal in step 8 (4) -9 is sent to command processor 122 to enter the current list 150. Upon receiving a signal (event E (IP) 9), the command processor 122 puts the externally generated signal into the current list 150 as the last entry (see Fig. 9 (9)).

단계(8(4)-3 내지 8(4)-5)중 어느 것도 실행하지 않는 다면, 단계(8(4)-6)에서 신호처리기(124)는 외부적으로 발생된 신호의 우선순위 레벨에 따라 작업 버퍼(142A∼142D)중 알맞은 하나에 외부적으로 발생된 신호를 넣는다. 단계(8(4)-7,8(4)-8, 8(4)-9, 또는 8(4)-6)중 어떤 것의 완료시, 액션(A(SP)4)은 심벌(8(4)-10)에 표시했듯이 종료한다.If none of steps 8 (4) -3 to 8 (4) -5 are performed, then at step 8 (4) -6 the signal processor 124 may have a priority level of the externally generated signal. In response, an externally generated signal is put into a suitable one of the work buffers 142A to 142D. Upon completion of any of steps 8 (4) -7,8 (4) -8, 8 (4) -9, or 8 (4) -6, action A (SP) 4 is a symbol 8 (4). End as shown in 4) -10).

(4) SP에 대한 시간 종료(4) timeout for SP

스위치 시간-종료용으로 저장된 값이 타이머(41)에 의해 제로로 클록 다운될 때 타이머(41)는 시간 종료할 수 있다. 타이머(141)가 시간 종료할 때, 신호처리기(124)는 시간 종료를 이벤트(E(SP)3)로서 알수 있고(도 6 참조), 액션(A(SP)3) 및 특히 도 8(3)에 도시된 단계를 수행한다. 시간 종료할 때, 신호처리기(124)는 플래그 SP_인터럽트가 세트되는 지를 처음에 단계(8(3)-1)에서 검사한다. 플래그가 세트되지 않으면, 단계(8(3)-2)에서 타이머(141)(시간-종료)는 "Y"값으로 세트되고 액션(A(SP)3)이 종료되기전에(심벌(8(3)-3)에 의해 표시했듯이) 플래그 SP_인터럽트는 세트된다. 플래그가 세트되지 않으면, 단계(8(3)-4)는 다음에 실행된다.The timer 41 may time out when the value stored for switch time-out is clocked down to zero by the timer 41. When the timer 141 times out, the signal processor 124 may know the time out as an event E (SP) 3 (see FIG. 6), and the action A (SP) 3 and in particular FIG. 8 (3). Perform the steps shown in). At the end of the time, the signal processor 124 first checks in step 8 (3) -1 whether the flag SP_interrupt is set. If the flag is not set, in step 8 (3) -2 the timer 141 (time-end) is set to a value of " Y " and before the action A (SP) 3 ends (symbol 8 ( As indicated by 3) -3)), the flag SP_interrupt is set. If the flag is not set, step 8 (3) -4 is executed next.

단계(8(3)-4)에서 플래그 SP_인터럽트는 클리어된다. 그후, 단계(8(3)-5)에서 작업이 "C" 또는 "D"의 우선순위 레벨을 갖는 지가 결정된다. 단계(8(3)-5)에서 그 결정이 확정적이면, 단계(8(3)-6, 8(3)-7, 및 8(3)-8)는 액션(A(SP)3)의 종료에 앞서서 연속 실행된다. 단계(8(3)-6)에서, 신호처리기(124)는 최고 우선순위를 갖는 버퍼(142A∼142D)중 비지 않은 하나로부터 제1(최고 오래된) 작업을 페치시킨다. 그후, 단계(8(3)-7)에서, 플래그 작업_인터럽트된_레벨(활성화_우선순위)은 활성화되도록 세트된다. 환언해서, 신호처리기(124)는 시간 종료가 (우선순위 레벨" 활성화_우선순위"를 갖는) 현재 실행하는 작업의 인터럽션을 야기하고, 따라서 플래그 작업_인터럽트된 레벨이 그 인터럽트된 작업의 우선순위 레벨로 세트되어야 하는 것을 인지한다. 단계(8(3)-8)에서, 명령처리기(122)에 의해 현재 실행되는 작업이 인터럽트된다(및 그 실행동안 시간 종료가 발생된다). 그런 인터럽션이 명령처리기(122)에 의해 IP이벤트(E(IP)8)로서 보여지고, 그것에 대한 응답이 도 9(8)에 설명했듯이 액션(A(IP)8)과 연결해서 이해된다.In step 8 (3) -4, the flag SP_interrupt is cleared. Then, in step 8 (3) -5 it is determined whether the job has a priority level of "C" or "D". If the determination is deterministic in step 8 (3) -5, then steps 8 (3) -6, 8 (3) -7, and 8 (3) -8 are determined by the action A (SP) 3. It runs continuously before exiting. In step 8 (3) -6, the signal processor 124 fetches the first (oldest) job from the non-empty one of the highest priority buffers 142A-142D. Then, in step 8 (3) -7, the flag task_interrupted_level (activation_priority) is set to be activated. In other words, the signal processor 124 causes the interruption of the current running task (with the priority level "Activation_Priority") to time out, so that the flag task_interrupted level is the priority of the interrupted task. Note that it should be set to the rank level In step 8 (3) -8, the job currently executed by command processor 122 is interrupted (and a timeout occurs during its execution). Such interruption is seen by the command processor 122 as an IP event E (IP) 8, and the response to it is understood in connection with the action A (IP) 8 as described in Fig. 9 (8).

단계(8(3)-5)에서 결정이 네가티브이면, 즉, 명령처리기(122)에 의해 현재 실행되는 작업의 우선순위 레벨이 "C"레벨보다 높으면, 단계(8(3)-10)에서 신호 킬 _신호는 명령처리기(122)로 보내진다. 명령처리기는 신호 킬(KILL)_신호를 IP이벤트(E(IP)3)로서 뷰하고, 도 9(3)에 도시했듯이 응답 액션(A(IP)3)을 발생시킨다. 단계(8(3)-8 및 8(3)-10)의 종료시에, 액션(A(SP)3)은 심벌(8(3)-3)에 의해 표시했듯이 종료된다.If the determination in step 8 (3) -5 is negative, i.e., the priority level of the job currently executed by the command processor 122 is higher than the "C" level, then in step 8 (3) -10 Signal kill _ signal is sent to the command processor 122. The command processor views the signal KILL signal as an IP event E (IP) 3 and generates a response action A (IP) 3 as shown in Fig. 9 (3). At the end of steps 8 (3) -8 and 8 (3) -10, action A (SP) 3 ends as indicated by symbol 8 (3) -3.

B. 명령처리기 동작B. Command Processor Operation

이전에 언급했듯이, 도 7에 도시했듯이 여러 상태의 작업을 실행하는 과정에서, 명령처리기(122)는 신호를 발생할 수 있다. 그런 IP-발생된 신호들은 영역 처리기 또는 다른 명령처리기, 결합된 신호들로 향하게 된 신호를 포함한다. IP-발생된 신호에 의해 발생된 이벤트가 도 7에서 도시되고, 버퍼된 신호의 발생에 대응하는 이벤트(E(IP)11)와; 결합된 신호 또는 급한 신호의 발생에 대응하는 이벤트(E(IP)10)와; 영역 처리기 또는 "다른" 명령처리기용 신호의 발생에 대응하는 이벤트(E(IP)6)를 포함한다. 급한 신호는 신호처리기(124)를 고려하지 않고 명령처리기(122)에 의해 즉시 실행되고, 새로운 블록으로 변화하고 그 새로운 블록에서 실행을 시작하는 명령처리기(122)를 포함한다. 그러므로, 결합된 신호와 달리, 급한 신호는 호출 블록에 복귀하지 않고 출구를 의미한다.As mentioned previously, as shown in FIG. 7, the command processor 122 may generate a signal in the course of executing tasks in various states. Such IP-generated signals include a signal directed at a region processor or other command processor, combined signals. An event generated by the IP-generated signal is shown in FIG. 7 and corresponds to an event E (IP) 11 corresponding to the generation of the buffered signal; An event (E (IP) 10) corresponding to the generation of the combined signal or the urgent signal; Event (E (IP) 6) corresponding to the generation of a signal for the area processor or " other " The urgent signal is immediately executed by the command processor 122 without considering the signal processor 124, and includes a command processor 122 that changes to a new block and starts execution at that new block. Therefore, unlike a combined signal, an urgent signal means an exit without returning to the calling block.

IP이벤트에 응답해서 명령처리기(122)에 의해 수행된 액션이 다음과 같다.The action performed by the command processor 122 in response to the IP event is as follows.

(1) SP로부터의 IP수신신호(1) IP reception signal from SP

그 휴지상태에서 명령처리기(122)는 도 9(1)에 도시된 액션(A(IP)1)을 수행한다. 특히, 단계(9(1)-1)에서 명령처리기(122)는 휴지로부터 작동상태로 변화한다(도 7 참조). 그후, 단계(9(1)-2)에서, 명령처리기(122)는 그 연관된 프로그램 저장(126)에서 새로운 블록으로 변화하고 그 새로운 블록에서 실행을 시작한다.In the idle state, the command processor 122 performs the action A (IP) 1 shown in Fig. 9 (1). In particular, in step 9 (1) -1, command processor 122 changes from a rest state to an operating state (see FIG. 7). Then, in step 9 (1) -2, the instruction processor 122 changes to a new block in its associated program store 126 and starts execution at that new block.

(2) 인터럽트된 IP실행(2) Interrupted IP Execution

인터럽트의 수신시[이벤트 E(IP)8], 명령처리기(122)는 도 9(8)에 도시된 액션(A(IP)8)을 얻는 다. 단계(9(8)-1)에서, 명령처리기(122)는 그 문맥을 저장한다. 즉, 명령처리기는 (예를 들어, 레지스터 메모리(162)에서) 인터럽트시 인터럽트되는 블록, 그것의 프로그램 카운터, 및 그것의 레지스터의 내용물을 저장한다. 그후, 단계(9(8)-2)에서, 명령처리기(122)는 현재의 목록(150)에 저장된 각 작업에 대해 신호를 신호처리기(122)로 보내어, 현재의 목록(150)의 내용물을 신호처리기(124)에 효과적으로 이동시킨다. 그후, 단계(9(8)-3)에서 명령처리기(122)는 인터럽팅 신호의 새로운 우선순위 레벨로 변화시키고 인터럽팅 신호와 연관된 작업을 실행한다.Upon receipt of the interrupt (event E (IP) 8), the instruction processor 122 obtains the action A (IP) 8 shown in Fig. 9 (8). In step 9 (8) -1, the command processor 122 stores the context. That is, the instruction processor stores a block that is interrupted upon interruption (eg, in register memory 162), its program counter, and the contents of its register. Then, in step 9 (8) -2, the command processor 122 sends a signal to the signal processor 122 for each job stored in the current list 150 to send the contents of the current list 150. Effectively move to the signal processor 124. Thereafter, in step 9 (8) -3, the instruction processor 122 changes to the new priority level of the interrupting signal and executes the task associated with the interrupting signal.

(3) 인터럽트된 작업을 재개하는 IP(3) IP to resume interrupted operation

명령처리기(122)가 인터럽트된 작업의 실행을 재개할 때, 이벤트(E(IP)2)가 발생된다. 이벤트(E(IP)2)에 응답해서 얻어진 액션(A(SP)2)이 도 9(2)에 도시된다. 단계(9(2)-1)에서, 명령처리기(122)는 (앞서로부터 이해하듯이 레지스터 메모리(162)로부터) 인터럽트된 작업의 문맥을 반환한다.When command processor 122 resumes execution of the interrupted task, event E (IP) 2 is generated. The action A (SP) 2 obtained in response to the event E (IP) 2 is shown in FIG. 9 (2). In step 9 (2) -1, instruction processor 122 returns the context of the interrupted task (from register memory 162, as understood above).

그후, 단계(9(2)-2)에서, 명령처리기(122)는 반환된 작업의 우선순위 레벨로 변화하고 그 반환된 작업과 연관된 신호의 실행을 재시작한다.Then, in step 9 (2) -2, the command processor 122 changes to the priority level of the returned task and restarts execution of the signal associated with the returned task.

(4) 신호를 RP 또는 다른 IP로 보내는 IP(4) IP sending signal to RP or other IP

명령처리기(122)에 의해 실행된 코드가 영역 처리기 또는 "다른" 명령처리기로 향하게 된 신호의 발생을 요구할 때, 이벤트(E(IP)6)는 발생한다. IP이벤트(E(IP)6)에 응답해서 명령처리기(122)에 의해 얻어진 액션이 도 9(6)에 도시된다. 액션(A(IP)6)에서, 명령처리기(122)는 그런 발생된 신호를 신호처리기(124)로 단지 보내고 현재 실행하는 블록(예를 들어, 영역 처리기 또는 "다른" 명령처리기 신호중 어느 하나가 발생되는 블록)에서 실행을 계속한다.Event E (IP) 6 occurs when the code executed by command processor 122 requires the generation of a signal directed to an area processor or " other " command processor. The action obtained by the command processor 122 in response to the IP event E (IP) 6 is shown in FIG. 9 (6). In action A (IP) 6, command processor 122 merely sends such a generated signal to signal processor 124 and the currently executing block (e.g., a region processor or " other " Execution continues in the generated block).

(5) 결합되거나 급한 신호를 보내는 IP(5) IP sending combined or urgent signals

명령처리기(122)에 의해 실행된 코드가 결합된 신호 또는 급한 신호를 요구할 때[이벤트E(IP)10], 명령처리기(122)는 즉시 그 상태를 결합된 상태로 세트한다(도 7 및 도 9(10)의 단계(9(10)-1) 참조). 그후, 단계(9(10)-2)에서 명령처리기(122)는 호출하는 블록(즉, 결합되거나 급한 신호가 발생되는 명령의 블록)을 저장하고 호출하는 블록용 복귀 어드레스를 그 스택의 상부상에 넣는다. 단계(9(10)-3)에서 명령처리기(122)는 결합되거나 급한 신호에 의해 실행용으로 요구된 새로운 블록으로 변화하고 그 새로운 블록의 시작에서 실행을 시작한다.When the code executed by the command processor 122 requires the combined signal or the urgent signal [Event E (IP) 10], the command processor 122 immediately sets the state to the combined state (Fig. 7 and Fig.). Step 9 (10) (see 9 (10) -1). Thereafter, in step 9 (10) -2, the instruction processor 122 stores the calling block (i.e., the block of instructions for which a combined or urgent signal is generated) and returns the return address for the calling block on top of the stack. Put it in. In step 9 (10) -3, the instruction processor 122 changes to a new block required for execution by a combined or urgent signal and starts execution at the beginning of that new block.

(6) 결합되거나 급한 신호를 출구하는 IP(6) IP exiting combined or urgent signal

명령처리기(122)가 결합되거나 급한 신호의 출구명령을 발생할 때, 이벤트(E(IP)5)가 발생된다. 이벤트(E(IP)5)의 발생시, 도 9(5)에서 설명했듯이 액션(A(IP)5)이 얻어진다. 단계(9(5)-1)에서 명령처리기(122)는 호출하는 블록(즉, 결합되거나 급한 신호가 발생되는 블록)을 반환하고 명령처리기(122)의 스택으로부터 호출하는 블록에서 실행용 다음 명령의 어드레스를 복귀한다. 단계(9(5)-2)에서 명령처리기(122)는 플래그 "마지막 결합된_신호_복귀"가 스택이 비어 있다는 것을 표시하기 위해 세트되는 지를 검사하고, 그렇다면 명령처리기(122)의 상태를 작동상태로 세트한다. 그후, 단계(9(5)-3)에서, 명령처리기(122)는 스택 어드레스에 의해 지정된 명령에서 호출하는 블록의 실행을 재개한다.Event E (IP) 5 occurs when command processor 122 is coupled or issues an exit command of an urgent signal. Upon occurrence of event E (IP) 5, action A (IP) 5 is obtained as described in FIG. 9 (5). In step 9 (5) -1, the instruction processor 122 returns the calling block (i.e., the block in which the combined or urgent signal is generated) and the next instruction for execution in the calling block from the stack of the instruction processor 122. Returns the address of. In step 9 (5) -2 the instruction processor 122 checks whether the flag " last combined signal_return " is set to indicate that the stack is empty, and if so, checks the state of the instruction processor 122. Set to working state. Then, in step 9 (5) -3, the instruction processor 122 resumes execution of the block calling in the instruction specified by the stack address.

(7) 버퍼된 신호를 보내는 IP(7) IP sending buffered signal

명령처리기(122)에 의해 실행된 명령이 버퍼된 신호의 발생을 호출할 때[이벤트(E(IP)11], 명령처리기(122)는 도 9(11)에 도시된 액션(A(IP)11)으로써 응답한다. 단계(9(11)-1)에서 현재 실행하는 작업의 우선순위 레벨은 그것이 최저("D") 레벨인지를 결정하기 위해 평가된다. 그렇다면, 단계(9(11)-2)에서, 그 버퍼된 신호가 신호처리기(124)에 이벤트(E(SP)2)로서 보내지고(도 6 참조) 액션(A(IP)11)이 종료함에 따라(심벌(9(11)-4)에 의해 표시했듯이) 버퍼-신호 발생 블록에서 실행은 계속된다(단계(9(11)-3)에 의해 표시했듯이).When the command executed by the command processor 122 invokes the generation of the buffered signal [event (E (IP) 11), the command processor 122 is executed by the action A (IP) shown in Fig. 9 (11). 11) The priority level of the task currently executing in step 9 (11) -1 is evaluated to determine if it is the lowest ("D") level. At 2), the buffered signal is sent to signal processor 124 as event E (SP) 2 (see FIG. 6) and as action A (IP) 11 ends (symbol 9 (11)). Execution continues in the buffer-signal generating block (as indicated by -4) (as indicated by step 9 (11) -3).

현재 실행하는 작업의 우선순위 레벨이 최저 우선순위 레벨을 제외한 우선순위 레벨을 가지면, 실행되는 다음 명령이 출구명령인지 및 플래그 SP_인터럽트가 세트되지 않는 지가 단계(9(11)-5)에서 결정된다. 단계(9(11)-5)의 조건 모두가 확정적이면, (단계(9(11)-6)에 의해 표시했듯이) 출구명령이 신호 송신 명령의 부분으로서 명령처리기(122)와 합쳐지고 명령처리기(122)에 의해 수행된다. 그렇지 않으면, 단계(9(11)-5)의 조건중 어느 하나가 네가티브이면, 명령처리기(122)는 마지막 작업으로서 버퍼된 신호와 연관된 작업을 현재의 목록상에 넣는다(단계(9(11)-7). 단계(9(11)-6 또는 9(11)-7)중 어느 하나의 완료시, 액션(A(IP)11)은 심벌(9(11)-4)에 의해 표시했듯이 종료한다.If the priority level of the currently executing job has a priority level other than the lowest priority level, it is determined in step 9 (11) -5 whether the next command executed is an exit command and whether the flag SP_interrupt is not set. do. If all of the conditions in step 9 (11) -5 are deterministic, the exit command (as indicated by step 9 (11) -6) is combined with the command processor 122 as part of the signal transmission command and the command processor Performed by 122. Otherwise, if either of the conditions of step 9 (11) -5 is negative, the command processor 122 puts the job associated with the buffered signal as the last job on the current list (step 9 (11)). Upon completion of any of steps 9 (11) -6 or 9 (11) -7, action A (IP) 11 ends as indicated by symbol 9 (11) -4. do.

(8) 버퍼된 신호를 출구시키는 IP(8) IP to exit buffered signal

명령처리기(122)는 버퍼된 신호와 연관된 작업을 실행함에 따라, 명령처리기(122)는 출구명령을 결국 발생시킨다[이벤트(E(IP)4]. 작업에 연관된 버퍼 신호의 출구명령을 발생시킬 때, 명령처리기(122)는 도 9(4)에서 그려진 액션(A(SP)4)을 수행한다. "버퍼된 신호"는 상기 언급된 방법으로 명령처리기(122)에 의해 발생된 신호를 포함할 뿐만 아니라 명령처리기(122)에 대해 신호처리기(124)에 의해 스케줄된 신호 모두를 포함한다.As the command processor 122 executes a task associated with the buffered signal, the command processor 122 eventually issues an exit instruction (event E (IP) 4). At this time, the command processor 122 performs the action A (SP) 4 depicted in Fig. 9 (4), " buffered signal " includes the signal generated by the command processor 122 in the above-mentioned manner. In addition, it includes all of the signals scheduled by the signal processor 124 with respect to the command processor 122.

액션(A(IP)4)과 연결해서, 명령처리기(122)는 단계(9(4)-3)에 의해 표시된 검사를 행하고, 그런 모든 검사가 네가티브이면, 액션(A(IP)4)이 종료하기전에 단계(9(4)-4)를 실행한다(심벌(9(4)-5)에 의해 표시했듯이).In conjunction with action A (IP) 4, command processor 122 performs the check indicated by step 9 (4) -3, and if all such checks are negative, action A (IP) 4 Step 9 (4) -4 is executed before completion (as indicated by symbol 9 (4) -5).

단계(9(4)-1)에서, 명령처리기(122)는 실행되는 작업이 최저 우선순위 레벨("D") 레벨인지를 결정한다. 그렇다면, 단계(9(4)-6)에서 명령처리기(122)는 그 상태를 휴지상태로 세트하고 그후 출구신호를 신호처리기(124)로 보내고 신호처리기(124)에 의해 취급된다(도 6의 이벤트(E(SP)1) 참조). 현재의 목록(150)상에 저장된 나머지의 신호들은 상기 포인트에서 실행되지 않는다.In step 9 (4) -1, the command processor 122 determines whether the job being executed is at the lowest priority level ("D") level. If so, in step 9 (4) -6, the instruction processor 122 sets the state to the idle state and then sends an exit signal to the signal processor 124 and is handled by the signal processor 124 (Fig. 6). See event (E (SP) 1)). The remaining signals stored on the current list 150 are not executed at that point.

단계(9(4)-2)에서, 명령처리기(122)는 플래그 SP_인터럽트가 세트되는 지를 검사한다. 외부적으로 발생된 신호가 최고 레벨 우선순위를 갖고 현재 실행하는 작업이 행해질 때 또는 시간 종료가 발생할 때 SP_인터럽트는 단계(8(4)-7)에서 세트될 수 있다[액션(A(SP)3), 단계(8(3)-2)]. 단계(9(4)-2)에서 결정이 확정적이면, 단계(9(4)-7 내지 9(4)-9)는 액션(A(IP)4)의 종료전에 실행된다.In step 9 (4) -2, the instruction processor 122 checks whether the flag SP_interrupt is set. The SP_interrupt can be set in step 8 (4) -7 when an externally generated signal has the highest level priority and the currently executing job is done or a timeout occurs (action A (SP 3), step 8 (3) -2)]. If the determination is final in step 9 (4) -2, steps 9 (4) -7 to 9 (4) -9 are executed before the end of action A (IP) 4.

단계(9(4)-7)에서, 명령처리기(122)는 그 상태를 휴지상태로 세트한다. 그후, 현재의 목록(150)에 저장된 각 작업에 대해, 명령처리기(122)는 신호를 신호처리기(124)에 보낸다([제1로부터 마지막까지의 순서]에서 현재의 목록(150)으로부터 신호처리기(124)로 작업을 효과적으로 이동하는). 현재의 목록(150)으로부터 각 신호의 이동은 이벤트(E(SP)2)로서 신호처리기(124)에 의해 보여진다[도 6 및 액션(A(SP)2) 참조). 단계(9(4)-9)에서, 명령처리기(122)는 출구신호를 신호처리기(124)로 보내고, 그 출구신호는 이벤트(E(SP)1)로서 뷰되고 신호처리기(124)에 의해 액션(A(SP)1)에 응답된다.In step 9 (4) -7, the instruction processor 122 sets the state to the idle state. Then, for each job stored in the current list 150, the command processor 122 sends a signal to the signal processor 124 (the signal processor from the current list 150 in [first to last order]). 124 to move the work effectively). The movement of each signal from the current list 150 is shown by signal processor 124 as event E (SP) 2 (see FIG. 6 and action A (SP) 2). In step 9 (4) -9, command processor 122 sends an exit signal to signal processor 124, which exit signal is viewed as event E (SP) 1 and is processed by signal processor 124. Respond to action A (SP) 1.

단계(9(4)-1 및 9(4)-2)의 검사가 네가티브이면, 단계(9(4)-1-3)에서, 명령처리기(122)는 현재의 목록(150)이 비지 않는 지를 결정한다. 단계(9(4)-10)에서 명령처리기(122)는 현재의 목록(150)에서 제1작업과 연관된 신호를 페치시키고 그 제1작업을 실행하기 시작한다. 단계(9(4)-10)후, 액션(A(IP)4)은 심벌(9(4)-5)에 의해 표시했듯이 종료한다.If the checks in steps 9 (4) -1 and 9 (4) -2 are negative, then in step 9 (4) -1-3, the command processor 122 does not allow the current list 150 to be empty. Decide if In step 9 (4) -10 the instruction processor 122 fetches the signal associated with the first task in the current list 150 and starts executing the first task. After step 9 (4) -10, action A (IP) 4 ends as indicated by symbol 9 (4) -5.

상설된 단계(9(4)-1, 9(4)-2, 또는 9(4)-3)중 어느 것도 확정적으로 되지 않으면, 단계(9(4)-4)에서 명령처리기(122)는 그 상태를 휴지상태로 세트하고 출구신호를 신호처리기(124)로 보내어, 현재의 목록(150)에서 실행을 대기하는 더 이상의 작업이 없다는 것을 표시한다. 출구신호는 신호처리기(124)에 의해 이벤트(E(SP)1)로서 보여지고 신호처리기(124)에 의해 액션(A(SP)1)에 응답된다. 단계(9(4)-4)후, 액션(A(IP)4)은 심벌(9(4)-5)에 의해 표시했듯이 종료한다.If none of the existing steps 9 (4) -1, 9 (4) -2, or 9 (4) -3 is deterministic, then at step 9 (4) -4 the instruction processor 122 The state is set to the idle state and an exit signal is sent to the signal processor 124 to indicate that there are no more jobs waiting to be executed in the current list 150. The exit signal is viewed by the signal processor 124 as an event E (SP) 1 and is responded by the signal processor 124 to the action A (SP) 1. After step 9 (4) -4, action A (IP) 4 ends as indicated by symbol 9 (4) -5.

실행은 현재의 목록(150)에서 모든 작업이 실행될 때까지 현재의 목록(150)에서 버퍼된 신호가 실행됨에 따라 알맞은 인스턴스에서 루핑 동작을 계속할 수 있는 것으로 앞선 설명으로부터 이해된다.Execution is understood from the foregoing description that the looping operation can continue in the appropriate instance as the buffered signal in the current list 150 is executed until all tasks in the current list 150 have been executed.

(9) 신호를 SP로부터 현재의 목록에 넣기 위해 수신하는 IP(9) IP receiving signal from SP to list current

상기 언급했듯이, 명령처리기(122)는 현재의 목록(150)에 넣어지는 신호처리기(124)로부터 신호를 수신할 수 있다. 그러한 것이 액션A(SP)1[예를 들어, 단계8(1)-8, 및 8(1)-18, 및 8(1)-20] 및 A(SP)4[예를 들어, 단계 8(4)-9 참조]의 신호처리기(124)에 의한 성능을 특히 발생시키고, 명령처리기(122)에 의해 이벤트E(IP)9로서 뷰된다. 이벤트E(IP)9에 응답해서, 명령처리기(122)는 도 9(9)에서 도시했듯이 현재의 목록(150)상에서 마지막 신호로서 단지 신호의 포스팅인 액션A(IP)9를 수행한다(단계9(9)-1).As mentioned above, the command processor 122 may receive a signal from the signal processor 124 that is put in the current list 150. Such may be the action A (SP) 1 (eg, steps 8 (1) -8, and 8 (1) -18, and 8 (1) -20) and A (SP) 4 [eg, step 8 (4) -9] specifically generates the performance by the signal processor 124 and is viewed by the command processor 122 as event E (IP) 9. In response to event E (IP) 9, command processor 122 performs action A (IP) 9, which is only a posting of the signal as the last signal on current list 150, as shown in FIG. 9 (9) (step 9 (9) -1).

(10) SP로부터 킬 신호를 수신하는 IP(10) IP receiving kill signal from SP

이전에 표시했듯이, "킬" 신호는 (예를 들어) 시간 주기 만기동안 발생하듯이 신호처리기(124)에 의해 발생될 수 있다(액션A(SP)3, 예를 들어, 단계8(3)-10 참조). 그런 킬 신호는 명령처리기(122)에 의해 이벤트E(IP)3로서 보여지고, 도 9(3)에 도시했듯이 액션A(IP)3에 응답된다. 킬 신호의 수신시, 단계9(3)-1에서 명령처리기(122)는 그 상태를 휴지상태로 세트한다. 그런 후, 시간 주기 만료(예를 들어, 시간 종료)의 결과로서, 단계9(3)-2에서 명령처리기(122)는 현재의 쓰레드를 본질적으로 버린다. 단계9(3)-3에서, 명령처리기(122)는 출구신호를 신호처리기(124)에 보낸다. 그런 출구신호는 신호처리기(124)처럼 이벤트E(SP)1로서 보여지고, 이전에 논의된 방법으로 액션A(SP)1에 응답된다[도 8(1) 참조].As indicated previously, the "kill" signal may be generated by the signal processor 124 as it occurs during (e.g.) a time period expiration (action A (SP) 3, e.g., step 8 (3)). -10). Such a kill signal is seen by command processor 122 as event E (IP) 3 and responds to action A (IP) 3 as shown in FIG. 9 (3). Upon receipt of the kill signal, the instruction processor 122 sets the state to the idle state in step 9 (3) -1. Then, as a result of the time period expiration (e.g., timeout), in step 9 (3) -2, the instruction processor 122 essentially discards the current thread. In step 9 (3) -3, the command processor 122 sends an exit signal to the signal processor 124. Such an exit signal is shown as event E (SP) 1 like signal processor 124 and responds to action A (SP) 1 in the manner previously discussed (see FIG. 8 (1)).

(11) 버퍼된 신호의 IP강제출구(11) IP forced exit of the buffered signal

응용 프로그래머는 출구가 정말로 존재하게하는 것을 확정하게 필요가 있을 때 버퍼된 신호의 강제 출구명령은 발생한다. 즉, 적은 지연이 삽입되야 하므로 다른 쓰레드는 실행할 가능성을 갖는다. 버퍼된 신호의 강제 출국가 발생하지 않을 때, 명령처리기(122)는 이벤트E(IP)7를 발생시키고 액션A(IP)7에 응답한다. 그것의 단계는 도 9(7)에 그려진다. 단계9(7)-1에서, 명령처리기(122)는 현재의 목록(150)에서 남아있는 각 작업용 신호를 신호처리기(124)에 보내어, 현재의 목록(150)의 내용물을 신호처리기(124)에 효과적으로 이동시킨다. 그후, 명령처리기(122)는 그 상태를 휴지상태로 세트한다(단계9(7)-2). 그후, 단계9(7)-3에서 명령처리기(122)는 출구신호를 신호처리기(124)로 보낸다. 그런 출구신호는 신호처리기(124)처럼 이벤트E(SP)1로서 보여지고, 이전에 논의된 방법으로 액션A(SP)1에 응답된다[도 8(1) 참조].When the application programmer needs to confirm that the exit really exists, a forced exit command of the buffered signal is issued. That is, a small delay must be inserted, so other threads have the potential to run. When no forced departure of the buffered signal occurs, command processor 122 generates event E (IP) 7 and responds to action A (IP) 7. Its step is depicted in Fig. 9 (7). In step 9 (7) -1, the command processor 122 sends a signal for each task remaining in the current list 150 to the signal processor 124, and sends the contents of the current list 150 to the signal processor 124. To move effectively. Thereafter, the instruction processor 122 sets the state to the idle state (step 9 (7) -2). The command processor 122 then sends an exit signal to the signal processor 124 in step 9 (7) -3. Such an exit signal is shown as event E (SP) 1 like signal processor 124 and responds to action A (SP) 1 in the manner previously discussed (see FIG. 8 (1)).

도 9(7)에 도시된 단계에 대안적으로, 강제 출구에 비교할 수 있는 액션이 대신해서 시간 지연을 갖는 신호를 보냄으로써 수행될 수 있다.Alternatively to the step shown in Fig. 9 (7), an action comparable to a forced exit may instead be performed by sending a signal with a time delay.

도 5는 본 발명의 다른 실시예를 도시하고, 특히 신호처리기(224), 버스 핸들러(230), 및 공유된 메모리(227)(프로그램 저장 및 데이터 저장 모두를 갖는)에 부가해서 복수의 명령처리기(2221,2222, ..., 222n)를 포함하는 중앙처리 시스템(220)을 특징으로 한다. 도 5의 실시예의 각 명령처리기(222)는 도 4를 참고로 상기에서 논의된 구성을 갖는다.5 illustrates another embodiment of the present invention, in particular a plurality of instruction processors in addition to signal processor 224, bus handler 230, and shared memory 227 (with both program storage and data storage). (222 1 , 222 2 ,..., 222 n ). Each command processor 222 of the embodiment of FIG. 5 has a configuration discussed above with reference to FIG. 4.

도 5 등의 멀티-IP 환경에서 실행하는 블록은 블록내에서 몇 개의 동시적인 실행을 취급할 수 있어야 하나, 그렇지 않으면 하나만의 처리기가 동시에 블록에서 실행하는 것이 입증가능해야 한다(예를 들어, 신호장치 또는 동기하는 다른 쓰레드의 어떤 수단이 필요하다). 도 5에 도시된 것과 같은 시스템(220)에서, 소정의 블록을 명령처리기(222)중 오직 하나에 할당하는 것이 가능하다. 그런 구성에서, 그런 할당된 명령처리기(222)는 특정한 빠른 메모리에서 그 데이터의 일부를 가져서, 소정의 작업을 매우 능률적으로 실행하는 것이 가능하다. 그러나, 트레이드-오프로서, 다른 명령처리기(222)는 문맥을 변화시켜야한다.A block executing in a multi-IP environment such as FIG. 5 must be able to handle several simultaneous executions within the block, but otherwise only one processor should be able to prove that it executes simultaneously in the block (eg, signal Some means of device or other thread that synchronizes). In a system 220 such as that shown in FIG. 5, it is possible to assign a block to only one of the command processors 222. In such a configuration, such an assigned command processor 222 can take part of its data in a particular fast memory, making it possible to execute certain tasks very efficiently. However, as a trade-off, the other instruction processor 222 must change the context.

그러므로, 본 발명의 명령처리기가 기본적으로 버퍼된 신호와 연관된 작업을 현재의 목록(150)상으로 들어가게 하는 명령처리기에 의해 실행하는 작업의 스케줄링에 포함되는 것을 앞선 설명으로부터 보여진다(예를 들어, 액션A(IP)11의 단계9(11)-7에서 발생하듯이[도 9(11) 참조]). 버퍼된 신호가 현재 실행하는 작업의 출구하기 직전에 발생되도록 하고, 최저 우선순위 레벨을 제외한 것이라면, 및 인터럽트가 세트되지 않으면, 버퍼된 신호와 연관된 작업은 버퍼된 신호가 발생되는 작업으로부터 출구시 실행된다[도 9(11)에서 액션A(IP)11의 단계9(11)-6 참조).Therefore, it is seen from the foregoing description that the command processor of the present invention is included in the scheduling of a job executed by the command processor which basically enters a job associated with the buffered signal onto the current list 150 (e.g., As occurs in step 9 (11) -7 of action A (IP) 11 (see Fig. 9 (11)). If the buffered signal is to be generated just before exiting the currently executing job, except for the lowest priority level, and if no interrupt is set, then the job associated with the buffered signal is executed on exit from the job where the buffered signal is generated. (See step 9 (11) -6 of action A (IP) 11 in Fig. 9 (11)).

계속적으로, 명령처리기가 버퍼된 신호의 발생 결과로서 실행된 작업으로부터 출구할 때, 명령처리기는 버퍼된 신호의 우선순위 레벨에 따라 및 어떤 인터럽트가 세트되는 지에 따라 몇 개의 대안적인 단계들중 어느 하나를 수행할 수 있다. 제1의 대안은 현재의 목록으로부터 제1(다음) 작업을 얻는 것과 동일한 것을 실행하는 것을 포함한다[도 9(4)에서 액션A(IP)4의 단계9(4)-10 참조]. 제2의 대안적인 단계는 버퍼된 신호가 최저 우선순위 레벨일 때 발생하듯이 복귀하는 스케줄링 제어를 신호처리기(124)에 포함시킨다. 제3의 대안적인 단계는 인터럽트가 발생할 때 발생하듯이 현재의 목록의 전체 내용물을 신호처리기(124)에 이동하는 것을 포함한다[도 9(4)에서 액션A(IP)4의 단계9(4)-8 참조].Subsequently, when the command processor exits from the job executed as a result of the generation of the buffered signal, the command processor may take one of several alternative steps depending on the priority level of the buffered signal and which interrupt is set. Can be performed. The first alternative involves performing the same as obtaining the first (next) task from the current list (see step 9 (4) -10 of action A (IP) 4 in FIG. 9 (4)). The second alternative step includes in the signal processor 124 scheduling control that returns as occurs when the buffered signal is at the lowest priority level. The third alternative step involves moving the entire contents of the current list to the signal processor 124 as occurs when an interrupt occurs (step 9 (4) of action A (IP) 4 in FIG. 9 (4). ) -8].

제1의 대안과 연결해서, 현재의 목록상에서 연속 작업이 현재의 목록상의 작업이 출구됨에 따라 연속 실행될 수 있다. 즉, 현재의 목록(150)으로부터(단계9(4)-10에서처럼) 페치된 작업이 완료될 때, 그 출구명령이 우선순위 레벨 및 인터럽트 상태에 따라 현재의 목록(150)상에서 다음 신호의 실행으로 유도될 수 있는 (다른)이벤트E(IP)4를 만든다.In connection with the first alternative, the continuous task on the current list may be executed continuously as the task on the current list exits. That is, when the fetched job from the current list 150 (as in step 9 (4) -10) completes, the exit instruction executes the next signal on the current list 150 according to the priority level and interrupt status. Create an (other) event E (IP) 4 that can be derived as:

도 9(11)의 단계9(11)-5로부터 특히 이해하듯이, 버퍼된 신호와 연관된 작업이 버퍼된 신호를 발생시키는 작업직후 실행되는 지의 여부는 버퍼된 신호가 설정된 명령 형태(예를 들어, 출구명령) 직전에 발생되는 지에 따른다. 그러므로, 버퍼된 신호의 발생을 야기하는 명령이 작업 종료 즉시 실행되는 버퍼된 신호를 갖도록 작업내에서 기설정된 순서로 되야 한다. 그렇지 않으면, 버퍼된 신호와 연관된 작업이 현재의 목록(150)상에 남아있게 되고 다른 버퍼된 신호와 연관된 작업에 계속해서 실행되고, 또는 신호처리기(124)로 이동된다.As is particularly understood from step 9 (11) -5 of Fig. 9 (11), whether or not the task associated with the buffered signal is executed immediately after the task of generating the buffered signal is determined by the type of command (e.g., Or exit command). Therefore, the instructions causing the generation of the buffered signal must be in a predetermined order within the job so that the instructions have a buffered signal that is executed immediately upon completion of the job. Otherwise, the task associated with the buffered signal remains on the current list 150 and continues to run on the task associated with the other buffered signal, or is moved to the signal processor 124.

명령처리기에 의한 작업 실행이 인터럽트될 때, 현재의 목록(150)의 전체 내용물이 신호처리기(124)에 이동된다. 신호처리기(124)는 현재의 목록(150)으로부터의 신호를 그 이동된 신호의 우선순위 레벨에 따라 그 버퍼들(142)중 알맞은 것으로 넣는다.When job execution by the command processor is interrupted, the entire contents of the current list 150 are moved to the signal processor 124. The signal processor 124 puts the signal from the current list 150 into one of the buffers 142 according to the priority level of the shifted signal.

일반적으로, 명령처리기가 신호처리기로부터 실행용 새로운 신호를 필요로 할 때(출구신호를 명령처리기로부터 수신할 때 발생하듯이), 신호는 오래됨(최고 오래됨) 및 우선순위 레벨(즉, 레벨 A, B, C, 또는 D)에 따라 버퍼(142A∼142B)로부터 페치된다(도 8(1)의 액션A(SP)1 참조). 플래그스 "활성화_우선순위" 및 CurrentThread_ID는 페치된 신호의 우선순위 레벨 및 쓰레드 ID에 따라 설정되고, 그 페치된 신호가 명령처리기로 보내진다[도 8(1)에서 단계8(1)-19 참조]. 또한, 신호처리기는 페치된 작업과 같은 쓰레드ID를 갖는 버퍼(142A-142B)에서 어떤 작업을 현재의 목록(150)에 보내져서[도 8(1)에서 단계8(1)-20 참조], 같은 쓰레드 ID를 갖는 작업이 근접해서 실행될 수 있다.In general, when the command processor needs a new signal for execution from the signal processor (as occurs when receiving an exit signal from the command processor), the signal is old (oldest) and priority level (i.e., level A, Fetched from the buffers 142A to 142B in accordance with B, C, or D (see action A (SP) 1 in Fig. 8 (1)). The flags "Activation_Priority" and CurrentThread_ID are set according to the priority level and thread ID of the fetched signal, and the fetched signal is sent to the command processor (steps 8 (1) -19 in Fig. 8 (1)). Reference]. In addition, the signal processor sends a job to the current list 150 in the buffers 142A-142B having the same thread ID as the fetched job (see steps 8 (1) -20 in FIG. 8 (1)), Jobs with the same thread ID can run in close proximity.

그러므로, 신호처리기(124)는 신호를 현재의 목록(150)에 보내는 능력을 또한 갖는다. 그런 것은 상설했듯이 신호처리기가 명령처리기에 이동되는 신호와 같은 쓰레드 식별을 갖는 적어도 하나의 버퍼에서 다른 신호를 현재의 목록으로 이동할 때 특히 발생한다. 신호처리기(124)는 외부적으로 발생된 신호(영역 처리기 버스 핸들러(30) 또는 처리기 버스 핸들러(31)중 하나를 경유해서 수신된)의 쓰레드 ID가 명령처리기(122)에 의해 처리되는 CurrentThreadID인 것을 결정할 때 현재의 목록(150)상에서 신호의 비슷한 포스팅이 발생한다(도 8(4)에서 단계A(SP)4-5 참조).Therefore, the signal processor 124 also has the ability to send a signal to the current list 150. This is especially true when the signal processor moves another signal from the at least one buffer with the same thread identification as the signal being moved to the command processor to the current list. The signal processor 124 is configured such that the thread ID of the externally generated signal (received via either the area processor bus handler 30 or the processor bus handler 31) is the CurrentThreadID processed by the command processor 122. A similar posting of the signal occurs on the current list 150 when determining that (see step A (SP) 4-5 in FIG. 8 (4)).

상설했듯이 페치된 작업의 우선순위 레벨이 "C" 우선순위 레벨 또는 "D" 우선순위 레벨중 하나이면, 신호처리기는 비슷한 우선순위 레벨의 어떤 작업이 현재 인터럽트되는 지를 결정하고, 그렇다면, 인터럽트된 작업의 실행을 재개하는 반면에 페치된 작업을 버퍼들(142C 또는 142D)중 알맞은 하나로 되돌아서 보낸다. 액션A(SP)1를 참조하시오.As mentioned above, if the priority level of a fetched job is one of the "C" priority level or "D" priority level, the signal processor determines which jobs of similar priority level are currently interrupted, and if so, the interrupted job. While resuming execution, the fetched job is sent back to the appropriate one of the buffers 142C or 142D. See action A (SP) 1.

명령처리기가 (예를 들어, 명령처리기로부터, 영역 처리기로부터, 또는 "다른 "명령처리기로부터) 더 높은 우선순위의 신호를 수신하는 시간에서 레벨 D신호를 실행해야 한다면, 명령처리기에 의한 레벨 D신호의 실행이 즉시 인터럽트된다. [예를 들어, 도 8(2)에서 단계8(2)-7 및 도 8(4)에서 단계8(4)-8 참조].If the command processor should execute a level D signal at a time of receiving a higher priority signal (e.g., from a command processor, from an area processor, or from another "command processor"), the level D signal by the command processor. The execution of is interrupted immediately. (See, for example, steps 8 (2) -7 in Fig. 8 (2) and steps 8 (4) -8 in Fig. 8 (4)).

다른 실시예에서, 명령처리기(122)는 복수의 현재의 목록(150A∼150D)으로써 구비되고, 복수의 현재의 목록중 각 하나는 대응하는 우선순위 레벨과 연관된다. 예를 들어, "A" 우선순위 레벨을 갖는 작업이 현재의 목록(150A)상에서 알맞은 곳에서 위치되고; "B" 우선순위 레벨을 갖는 작업이 현재의 목록(150B)상에서 알맞은 곳에서 위치되고; 등등이다.In another embodiment, command processor 122 is provided as a plurality of current lists 150A-150D, each one of the plurality of current lists being associated with a corresponding priority level. For example, a job with priority level "A" is placed in place on the current list 150A; A job with a "B" priority level is placed in place on the current list 150B; And so on.

앞선 설명의 변화는 특히 소망된 통신 설계를 검토해서 수행되는 것이 이해되야한다. 예를 들어, 이벤트E(SP)1[명령처리기(122)로부터의 출구신호의 수신] 및 액션A(SP)1을 참조로 해서, 안정된 대안적인 절차는 수행된다. 하나의 그런 예에서 명령처리기(122)로부터 출구신호를 기대하는 동안, 신호처리기(124)는 앞서 갈수 있고 미리 명령처리기(122)용 신호를 준비한다. 그후, 명령처리기(122)가 출구 포인트(신호처리기(124)로부터 정보를 요청하게 되는 것에서)로 올 때, 명령처리기(122)는 그것에 대해 대기하는 준비된 메시지가 있는 지를 검사할 수 있다. 그런 절차에서, 명령처리기(122)는 출구 상황에서 신호처리기(124)에 대해 대기하지 않는다.It should be understood that changes to the foregoing descriptions can be made, in particular, by examining the desired communication design. For example, with reference to event E (SP) 1 (receipt of the exit signal from command processor 122) and action A (SP) 1, a stable alternative procedure is performed. In one such example, while expecting an exit signal from command processor 122, signal processor 124 may go ahead and prepare a signal for command processor 122 in advance. Then, when command processor 122 comes to an exit point (from which to request information from signal processor 124), command processor 122 may check whether there is a ready message waiting for it. In such a procedure, the command processor 122 does not wait for the signal processor 124 in an exit situation.

이롭게도, 현재의 목록(150) 등의 특징을 제공함에 의해, 본 발명에 따른 중앙처리 시스템은 매우 빠른 메모리(예를 들어, 캐시 메모리)를 효과적으로 사용할 수 있는 데, 왜냐하면 본 발명의 중앙처리 시스템은 빠른 메모리의 효과를 무효화하기 위한 비율로 문맥을 변화시키지 않기 때문이다. 특히, 본 발명의 명령처리기는 "캐시된" 데이터를 재사용할 수 있다. 그것은 쓰레드에서 이전에 액세스된 데이터가 재사용될 수 있다는 것을 의미한다. 또한, 기본적인 메모리(예를 들어, DRAM)로부터 데이터를 페치함에 의해, 하나 이상의 데이터 워드의 버퍼는 한번에 페치될 수 있다. 그러므로, 많은 주요 메모리 액세스는 캐시 액세스로서 수행될 수 있어, 명령처리기상에서 로드를 감소시킨다.Advantageously, by providing features such as the current list 150, the central processing system according to the present invention can effectively use very fast memory (e.g. cache memory), because the central processing system of the present invention This is because the context does not change at a rate to negate the effect of fast memory. In particular, the command processor of the present invention may reuse "cached" data. That means that previously accessed data in the thread can be reused. In addition, by fetching data from basic memory (eg DRAM), buffers of one or more data words can be fetched at a time. Therefore, many major memory accesses can be performed as cache accesses, reducing the load on the instruction processor.

더구나, 본 발명에 따른 중앙처리 시스템은 버퍼된 신호와 연관된 작업을 현재의 목록(150)에서 명령처리기(122)자체 스케줄로서 그 작동의 일부를 신호처리기(124)로 하여금 경감시킨다. 어떤 정상적인 트래픽 합성 수행에서(1ms 시간 종료로써), 상당한 작동 로드 감소는 신호처리기(124)에 대해 실현된다.Moreover, the central processing system in accordance with the present invention causes the signal processor 124 to mitigate some of its operations as the command processor 122 itself schedules from the current list 150 for jobs associated with buffered signals. In any normal traffic synthesis performance (with a 1 ms timeout), significant operational load reduction is realized for the signal processor 124.

또한, 본 발명에서 버퍼된 신호가 그들이 발생시 즉시 종종 실행되기 때문에, 전달 로드를 신호처리기(124)로써 감소시켜서, 명령처리기(122)는 작동 로드를 감소시킨다.In addition, in the present invention, the buffered signals are often executed immediately when they occur, thereby reducing the transfer load with the signal processor 124, so that the instruction processor 122 reduces the operating load.

본 발명에 따라 구성된 시스템에서, 명령처리기(122)의 클록 주파수는 신호처리기(124)의 클록 주파수에 의해 제한될 필요가 없다.In a system configured in accordance with the present invention, the clock frequency of the command processor 122 need not be limited by the clock frequency of the signal processor 124.

본 발명의 중앙처리 시스템은 설명된 종래 기술의 방법보다 빠른 버퍼된 신호 스케줄을 취급한다. 주요 메모리 액세스수가 본 발명에 따라 감소할 지라도, 명령처리기(122)가 각 주요 메모리 액세스에서 더 큰 데이터 블록을 페치하기 때문에 메모리 대역폭은 증가한다.The central processing system of the present invention handles the buffered signal schedule faster than the described prior art method. Although the number of primary memory accesses decreases in accordance with the present invention, the memory bandwidth increases because the instruction processor 122 fetches a larger block of data in each primary memory access.

본 발명에 따라, 신호처리기에 의해 작업 버퍼(142A-142D)로부터 작업의 페칭간에 더 많은 시간이 걸리기 때문에, 신호처리기는 그 작업을 준비하기 위해 많은 시간을 걸리게 한다. 따라서, 명령처리기는 다음 쓰레드를 페치하기 위해 제어를 신호처리기에 남길 때 더 짧은 시간동안 휴지상태로 머문다.In accordance with the present invention, the signal processor takes a lot of time to prepare for the job since it takes more time between the fetching of the job from the job buffers 142A- 142D by the signal processor. Thus, the instruction processor stays idle for a shorter time when it leaves control to the signal processor to fetch the next thread.

본 발명은 영역 처리기와 자주 상호동작하지 않는 예를 들어 CCITT No.7 시그널링, 홈 로케이션 레지스터(HLRs), 서비스 제어 포인트(SCPs)를 토대로 해서 스위치를 통과하는 실행-집중 임무에 특히 좋다. 그런 응용을 지지하기 위해, 본 발명은 외부적으로 발생된 신호에 쓰레드 IDS를 유리하게 제공하여[도 6A에서 단계A(SP)4-1 참조), 동일한 쓰레드에 속하는 작업이 하나의 쓰레드로서 실행되어, 문맥 스위치간에 실행하는 작업수를 증가시킨다.The present invention is particularly well suited for execution-intensive tasks that pass through switches based on, for example, CCITT No. 7 signaling, home location registers (HLRs), service control points (SCPs) that do not frequently interact with the region handler. To support such an application, the present invention advantageously provides thread IDS for externally generated signals (see step A (SP) 4-1 in FIG. 6A), so that jobs belonging to the same thread are executed as one thread. To increase the number of tasks executed between context switches.

본 발명은 RISC 워크스테이션에서 특히 그 워크스테이션이 캐시 메모리로써 구비되기 때문에, 에릭슨 AXE 10 스위치의 중앙처리기등의 소정의 장치의 에뮬레이션을 실행가능하게 한다.The present invention enables emulation of certain devices, such as a central processor of an Ericsson AXE 10 switch, in particular because the workstation is provided as a cache memory in a RISC workstation.

그러나, 본 발명의 원리는 신호처리기 및 명령처리기용으로 분리된 처리기를 반드시 요구하지 않는 것으로 이해되야 한다. 상기 관계에서, 본 발명은 신호처리기 및 명령처리기 모두로 본원에서 설명된 것과 다른 기능을 에뮬레이트하는 단일 처리기를 포함한다.However, it should be understood that the principles of the present invention do not necessarily require separate processors for the signal processor and command processor. In this regard, the present invention encompasses a single processor that emulates functions other than those described herein, both as signal processors and as command processors.

본 발명은 그 양호한 실시예를 참고로 특히 도시 및 설명되는 동안, 당업자는 본 발명의 정신 및 범위로부터 벗어남이 없이 본원에서 각종의 형태 변화가 이루어진다.While the invention has been particularly shown and described with reference to the preferred embodiments thereof, those skilled in the art can make various changes herein without departing from the spirit and scope of the invention.

구성 요소(1410-13)의 표Table of Components (1410-13)

명령처리기 유니트(IP)(22).........................3Command Processor Unit (22) ... 3

신호처리(SP) 유니트(24)...........................3Signal processing unit (24) ..................................... 3

프로그램 저장(PS)(26).............................3Program storage (PS) (26) ......................... 3

데이터 저장(DRS)(28)..............................3Data Storage (DRS) (28) ............. 3

복수의 영역 처리기 버스 핸들러(RPHs)(301,...n)......3Multiple Zone Handler Bus Handlers (RPHs) (30 1, ... n ) ... 3

"다른" 처리기 버스 핸들러(IPB)(31)................3"Other" handler bus handler (IPB) (31) ... 3

유지 유니트(MAU)(32)..............................3Retention unit (MAU) (32) ........................ 3

버스(34 및 36)....................................3Buses (34 and 36) .....................

버스(39)..........................................4Bus (39) ... 4

작업 스케줄러(40).................................4Task Scheduler (40) ........................ 4

작업 버퍼(42A∼42D)...............................4Job Buffers (42A to 42D) ......................... 4

라인(52)..........................................5Line (52) ... 5

라인(54)..........................................7Line (54) ... 7

라인(56)..........................................8Line (56) ... 8

라인(58)..........................................8Line (58) ... 8

명령처리기 유니트(IP)(122).......................13Command Processor Unit (IP) (122) ... 13

신호처리(SP) 유니트(124).........................13Signal Processing Unit (124) ... 13

프로그램 저장(PS)(126)............................13Program storage (PS) (126) ... 13

데이터 저장(DRS)(128).............................13Data Storage (DRS) (128) ... 13

복수의 영역 처리기 버스 핸들러(RPHs)(1301,...n).....13Multiple Zone Handler Bus Handlers (RPHs) (130 1, ... n ) ..... 13

"다른" 처리기 버스 핸들러(IPB)(131)...............13"Other" handler bus handler (IPB) (131) ......... 13

현재의 목록 메모리(150)...........................14Current list memory (150) ........................... 14

중앙처리 유니트(CPU)(160).........................14Central Processing Unit (CPU) (160) ... 14

RM(이것이 무엇인가?)(162)........................14RM (What Is It?) (162) ........................ 14

빠른 메모리(164)..................................14Quick Memory (164) .....................

메모리 액세스/인터페이스(166).....................14Memory Access / Interface (166) ... 14

캐시 메모리(168A∼168C)...........................14Cache Memory (168A to 168C) ... 14

메모리 카드(170A-170G)............................14Memory Card (170A-170G) ... 14

메모리 버스(172)..................................17Memory Bus (172) ... 17

라인(154).........................................17Line (154) ... 17

라인(152).........................................22Line (152) ... 22

중앙처리 시스템(220)..............................23Central Processing System (220) ............. 23

신호처리기(224)...................................23Signal Processor (224) ... 23

버스 핸들러(230)..................................23Bus handler (230) ... 23

공유된 메모리(227)................................23Shared Memory (227) ... 23

Claims (41)

신호처리기가 명령처리기에 의해 실행하도록 작업을 스케줄하고 명령처리기가 실행용 다음 작업을 요구할 때 작업에 연관된 신호를 명령처리기로 송신하는 처리 시스템에 있어서,A processing system for scheduling a job to be executed by a command processor and transmitting a signal associated with the job to the command processor when the command processor requests the next job for execution, 현재의 목록 메모리는 명령처리기에 의해 유지되고, 명령처리기에 의해 실행된 현재의 작업이 명령처리기로 하여금 실행되는 새로운 작업과 연관되는 버퍼된 신호를 발생시키도록 하고, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 저장되도록 하는 것을 특징으로 하는 처리 시스템.The current list memory is maintained by the command processor, causing the current job executed by the command processor to cause the command processor to generate a buffered signal associated with the new job being executed, and the command processor is associated with the new job. And cause the buffered signal to be stored in the current list. 제1항에 있어서, 명령처리기는 버퍼된 신호를 발생되게 하는 현재의 작업의 우선순위 레벨에 따라 현재의 목록에서 새로운 작업과 연관되는 버퍼된 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the command processor selectively stores a buffered signal associated with a new task in the current list according to a priority level of the current task causing the buffered signal to be generated. 제1항에 있어서, 명령처리기는 신호처리기가 명령처리기에 인터럽트를 발생하는 지에 따라 현재의 목록에서 새로운 작업과 연관되는 버퍼된 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the command processor selectively stores a buffered signal associated with the new task in the current list depending on whether the signal processor generates an interrupt in the command processor. 제1항에 있어서, 버퍼된 신호를 발생시키는 현재의 작업에서의 명령이 현재의 작업내에서 미리 정해진 순서로 있다면 새로운 작업이 즉시 실행되는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the new job is executed immediately if the instructions in the current job that generate the buffered signal are in a predetermined order within the current job. 제4항에 있어서, 버퍼된 신호를 발생시키는 현재의 작업에서의 명령이 현재의 작업의 출구명령을 즉시 먼저 발생하면 새로운 작업이 즉시 실행되는 것을 특징으로 하는 처리 시스템.5. The processing system according to claim 4, wherein a new task is executed immediately if the instruction in the current task that generates the buffered signal immediately precedes the exit instruction of the current task. 제1항에 있어서, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 미리 정해진 위치에 저장되도록 하는 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the command processor causes a buffered signal associated with the new job to be stored at a predetermined location in the current list. 제6항에 있어서, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 마지막 작업으로서 저장되도록 하는 특징으로 하는 처리 시스템.7. The processing system of claim 6, wherein the command processor causes a buffered signal associated with the new job to be stored as the last job in the current list. 제1항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 버퍼된 신호와 연관된 작업이 미리 정해진 우선순위 레벨을 가지면 명령처리기는 출구신호를 신호처리기에 보내는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the command processor finishes executing a task associated with the buffered signal, and the command processor sends an exit signal to the signal processor if the task associated with the buffered signal has a predetermined priority level. . 제8항에 있어서, 미리 정해진 우선순위 레벨이 최저 우선순위 레벨인 것을 특징으로 하는 처리 시스템.9. The processing system of claim 8, wherein the predetermined priority level is the lowest priority level. 제1항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 신호처리기가 인터럽트를 명령처리기에 발생시키면 명령처리기는 현재의 목록에서 모든 나머지의 작업을 신호처리기에 보내는 것을 특징으로 하는 처리 시스템.The method of claim 1, wherein the command processor finishes executing the task associated with the buffered signal, and when the signal processor generates an interrupt to the command processor, the command processor sends all remaining tasks in the current list to the signal processor. Processing system. 제1항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 명령처리기는 부가적인 작업을 현재의 목록으로부터 페치 및 실행하는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the command processor finishes executing the job associated with the buffered signal, and the command processor fetches and executes additional jobs from the current list. 제1항에 있어서, 명령처리기가 버퍼된 신호와 연관된 작업의 실행을 끝마치고, 명령처리기는 다음, 즉The method of claim 1, wherein the command processor finishes executing the task associated with the buffered signal, and the command processor then: (A) 버퍼된 신호와 연관된 작업이 미리 정해진 우선순위 레벨을 가지면 출구신호를 신호처리기에 보내는 것과;(A) sending an exit signal to the signal processor if the task associated with the buffered signal has a predetermined priority level; (B) 신호처리기가 인터럽트를 명령처리기에 발생시키면 현재의 목록에서 모든 나머지의 작업을 신호처리기에 보내는 것과;(B) if the signal processor issues an interrupt to the command processor, send all remaining work in the current list to the signal processor; (C) 부가적인 작업을 현재의 목록으로 페치 및 실행하는 것중 하나를 선택적으로 행하는 것을 특징으로 하는 처리 시스템.(C) optionally, one of fetching and executing additional tasks into the current list. 제1항에 있어서, 신호처리기는 신호처리기에 의해 스케줄된 작업을 수행하는 명령처리기에 의해 에뮬레이트되는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the signal processor is emulated by a command processor that performs tasks scheduled by the signal processor. 제1항에 있어서, 신호처리기는 현재의 목록상에 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein the signal processor selectively stores signals on a current list. 제14항에 있어서, 신호처리기는 신호들이 명령처리기에 페치 및 전달되는 적어도 하나의 버퍼를 구비하고, 신호처리기가 신호를 명령처리기로 전달할 때, 신호처리기는 명령처리기에 이동되는 신호와 같은 쓰레드 식별을 갖는 적어도 하나의 버퍼에서 현재의 목록에 다른 신호를 이동시키는 것을 특징으로 하는 처리 시스템.15. The processor of claim 14, wherein the signal processor has at least one buffer in which signals are fetched and passed to the command processor, and when the signal processor passes the signal to the command processor, the signal processor identifies a thread, such as a signal that is moved to the command processor. And move another signal from the at least one buffer to the current list. 제1항에 있어서, 복수의 현재의 목록 메모리가 명령처리기에 의해 유지되는 것을 특징으로 하는 처리 시스템.2. The processing system of claim 1, wherein a plurality of current list memories are maintained by an instruction processor. 제16항에 있어서, 각 복수의 현재의 목록 메모리가 대응하는 우선순위 레벨과 연관되는 것을 특징으로 하는 처리 시스템.17. The processing system of claim 16, wherein each of a plurality of current list memories is associated with a corresponding priority level. 신호처리기가 명령처리기에 의해 실행되도록 작업을 스케줄하고 명령처리기가 작업을 실행할 때 작업과 연관된 신호를 명령처리기에 전달하고, 신호처리기는 처리 시스템없이 명령처리기로부터 외부 발생된 신호를 수신하기 위해 동작할 수 있는 처리 시스템에 있어서,The signal processor schedules the task to be executed by the command processor, and when the command processor executes the task, it passes signals associated with the task to the command processor, and the signal processor is operable to receive externally generated signals from the command processor without the processing system. In the processing system which can 명령처리기로부터 또는 처리 시스템없이 외부적으로 신호를 수신할 때, 수신된 신호의 우선순위 레벨이 최고 우선순위 레벨이고 명령처리기에 의해 실행되는 현재의 작업의 우선순위 레벨을 초과할 경우에 명령처리기에 인터럽트를 세팅하는 신호처리기를 구비하는 것을 특징으로 하는 처리 시스템.When receiving a signal from the command processor or externally without a processing system, the command processor receives a signal whose priority level is the highest priority level and exceeds the priority level of the current job executed by the command processor. And a signal processor for setting interrupts. 제18항에 있어서, 현재의 목록 메모리는 명령처리기에 의해 유지되고, 명령처리기에 의해 실행된 현재의 작업이 명령처리기로 하여금 실행되는 새로운 작업과 연관되는 버퍼된 신호를 발생되도록 할 때, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에 저장되도록 하고, 외부적으로 발생된 신호의 우선순위 레벨이 최고 우선순위 레벨이고 명령처리기에 의해 실행되는 현재의 작업의 우선순위 레벨을 초과할 때, 현재의 목록의 내용물이 신호처리기에 이동되는 것을 특징으로 하는 처리 시스템.19. The command processor of claim 18, wherein the current list memory is maintained by the command processor and when the current job executed by the command processor causes the command processor to generate a buffered signal associated with the new job being executed. Causes the buffered signals associated with the new job to be stored in the current list, and the priority level of the externally generated signal is the highest priority level and exceeds the priority level of the current job executed by the command processor. When the contents of the current list are moved to the signal processor. 제18항에 있어서, 명령처리기에 의해 실행된 현재의 작업이 최저 우선순위이고 외부적으로 발생된 신호가 최저 레벨 우선순위보다 높은 우선순위 레벨을 가질 때 신호처리기는 명령처리기에 의해 실행되는 현재의 작업을 인터럽트시키는 것을 특징으로 하는 처리 시스템.19. The signal processor of claim 18, wherein the signal processor is executed by the command processor when the current job executed by the command processor has a lowest priority and the externally generated signal has a higher priority level than the lowest level priority. A processing system for interrupting a job. 제18항에 있어서, 신호처리기는 신호처리기에 의해 스케줄된 작업을 수행하는 명령처리기에 의해 에뮬레이트되는 것을 특징으로 하는 처리 시스템.19. The processing system of claim 18, wherein the signal processor is emulated by a command processor that performs tasks scheduled by the signal processor. 신호처리기가 명령처리기에 의해 실행되도록 작업을 스케줄하고 명령처리기가 신호처리기에 의해 스케줄된 작업을 실행할 때 작업과 연관된 신호를 명령처리기에 전달하는 처리 시스템의 동작방법에 있어서,A method of operating a processing system in which a signal processor schedules a task to be executed by a command processor and delivers a signal associated with the task to the command processor when the command processor executes a task scheduled by the signal processor, the method comprising: 명령처리기에 의해 실행되는 현재의 작업이 명령처리기로 하여금 실행되는 새로운 작업과 연관되는 버퍼된 신호를 발생시키도록 하고, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에 저장되도록, 현재의 목록을 유지하는 명령처리기를 구비하는 것을 특징으로 하는 처리 시스템의 동작방법.The current job executed by the command processor causes the command processor to generate a buffered signal associated with the new job being executed, and the command processor causes the buffered signal associated with the new job to be stored in the current list, And a command processor for maintaining a current list. 제22항에 있어서, 명령처리기는 버퍼된 신호를 발생되게 하는 현재의 작업의 우선순위 레벨에 따라 현재의 목록에서 새로운 작업과 연관되는 버퍼된 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템의 동작방법.23. The operation of a processing system of claim 22, wherein the command processor selectively stores a buffered signal associated with a new task in the current list according to a priority level of the current task causing the buffered signal to be generated. Way. 제22항에 있어서, 명령처리기는 신호처리기가 명령처리기에 인터럽트를 발생하는 지에 따라 현재의 목록에서 새로운 작업과 연관되는 버퍼된 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the command processor selectively stores a buffered signal associated with the new task in the current list depending on whether the signal processor generates an interrupt in the command processor. 제22항에 있어서, 버퍼된 신호를 발생시키는 현재의 작업에서의 명령이 현재의 작업내에서 미리 정해진 순서로 있다면 새로운 작업이 즉시 실행되는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein if a command in the current job that generates the buffered signal is in a predetermined order within the current job, the new job is executed immediately. 제23항에 있어서, 버퍼된 신호를 발생시키는 현재의 작업에서의 명령이 현재의 작업의 출구명령을 즉시 먼저 발생하면 새로운 작업이 즉시 실행되는 것을 특징으로 하는 처리 시스템의 동작방법.24. The method of claim 23, wherein the new task is executed immediately if the instruction in the current task that generates the buffered signal immediately precedes the exit instruction of the current task. 제22항에 있어서, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 미리 정해진 위치에 저장되도록 하는 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the command processor causes a buffered signal associated with the new task to be stored at a predetermined location in the current list. 제27항에 있어서, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에서 마지막 작업으로서 저장되도록 하는 특징으로 하는 처리 시스템의 동작방법.28. The method of claim 27, wherein the command processor causes a buffered signal associated with the new task to be stored as the last task in the current list. 제22항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 버퍼된 신호와 연관된 작업이 미리 정해진 우선순위 레벨을 가지면 명령처리기는 출구신호를 신호처리기에 보내는 것을 특징으로 하는 처리 시스템의 동작방법.23. The processing system of claim 22, wherein the command processor finishes executing the task associated with the buffered signal, and the command processor sends an exit signal to the signal processor if the task associated with the buffered signal has a predetermined priority level. How to operate. 제29항에 있어서, 미리 정해진 우선순위 레벨이 최저 우선순위 레벨인 것을 특징으로 하는 처리 시스템의 동작방법.30. The method of claim 29, wherein the predetermined priority level is the lowest priority level. 제22항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 신호처리기가 인터럽트를 명령처리기에 발생시키면 명령처리기는 현재의 목록에서 모든 나머지의 작업을 신호처리기에 보내는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the command processor finishes executing the task associated with the buffered signal, and when the signal processor issues an interrupt to the command processor, the command processor sends all remaining tasks in the current list to the signal processor. Method of operation of processing system. 제22항에 있어서, 명령처리기는 버퍼된 신호와 연관된 작업 실행을 끝마치고, 명령처리기는 부가적인 작업을 현재의 목록으로부터 페치 및 실행하는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the instruction processor finishes executing the task associated with the buffered signal, and the instruction processor fetches and executes additional tasks from the current list. 제22항에 있어서, 명령처리기가 버퍼된 신호와 연관된 작업의 실행을 끝마치고, 명령처리기는 다음, 즉23. The method of claim 22, wherein the command processor finishes executing the task associated with the buffered signal, the command processor then: (A) 버퍼된 신호와 연관된 작업이 미리 정해진 우선순위 레벨을 가지면 출구신호를 신호처리기에 보내는 단계와;(A) sending an exit signal to the signal processor if the job associated with the buffered signal has a predetermined priority level; (B) 신호처리기가 인터럽트를 명령처리기에 발생시키면 현재의 목록에서 모든 나머지의 작업을 신호처리기에 보내는 단계와;(B) when the signal processor issues an interrupt to the command processor, sending all remaining work in the current list to the signal processor; (C) 부가적인 작업을 현재의 목록으로 페치 및 실행하는 단계중 하나를 선택적으로 행하는 것을 특징으로 하는 처리 시스템의 동작방법.(C) optionally performing one of the steps of fetching and executing additional tasks into the current list. 제22항에 있어서, 신호처리기는 신호처리기에 의해 스케줄된 작업을 수행하는 명령처리기에 의해 에뮬레이트되는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the signal processor is emulated by a command processor that performs tasks scheduled by the signal processor. 제22항에 있어서, 신호처리기는 현재의 목록상에 신호를 선택적으로 저장하는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein the signal processor selectively stores signals on a current list. 제33항에 있어서, 신호처리기는 신호들이 명령처리기에 페치 및 전달되는 적어도 하나의 버퍼를 구비하고, 신호처리기가 신호를 명령처리기로 전달할 때, 신호처리기는 명령처리기에 이동되는 신호와 같은 쓰레드 식별을 갖는 적어도 하나의 버퍼에서 현재의 목록에 다른 신호를 이동시키는 것을 특징으로 하는 처리 시스템의 동작방법.34. The processor of claim 33, wherein the signal processor has at least one buffer in which signals are fetched and passed to the command processor, and when the signal processor passes the signal to the command processor, the signal processor identifies a thread, such as a signal that is moved to the command processor. And moving another signal from the at least one buffer to the current list. 제22항에 있어서, 복수의 현재의 목록 메모리가 명령처리기에 의해 유지되는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein a plurality of current list memories are maintained by an instruction processor. 제22항에 있어서, 각 복수의 현재의 목록 메모리가 대응하는 우선순위 레벨과 연관되는 것을 특징으로 하는 처리 시스템의 동작방법.23. The method of claim 22, wherein each of a plurality of current list memories is associated with a corresponding priority level. 신호처리기가 명령처리기에 의해 실행되도록 작업을 스케줄하고 명령처리기가 작업을 실행할 때 작업과 연관된 신호를 명령처리기에 전달하고, 처리 시스템은 처리 시스템없이 명령처리기로부터 외부 발생된 신호를 수신하기 위해 동작할 수 있는 처리 시스템의 동작방법에 있어서,The signal processor schedules the job to be executed by the command processor, and when the command processor executes the job, it passes signals associated with the job to the command processor, and the processing system is operable to receive externally generated signals from the command processor without the processing system. In the operation method of the processing system, 명령처리기로부터 또는 처리 시스템없이 외부적으로 신호를 수신할 때, 외부적으로 발생된 신호의 우선순위 레벨이 최고 우선순위 레벨이고 명령처리기에 의해 실행되는 현재의 작업의 우선순위 레벨을 초과할 경우에 명령처리기에 인터럽트를 세팅하는 신호처리기를 구비하는 것을 특징으로 하는 처리 시스템의 동작방법.When receiving a signal externally from the command processor or without a processing system, the priority level of the externally generated signal is the highest priority level and exceeds the priority level of the current job executed by the command processor. And a signal processor for setting interrupts in the command processor. 제39항에 있어서, 명령처리기가 현재의 목록 메모리를 유지하고, 명령처리기에 의해 실행된 현재의 작업이 명령처리기로 하여금 실행되는 새로운 작업과 연관되는 버퍼된 신호를 발생되도록 할 때, 명령처리기는 새로운 작업과 연관되는 버퍼된 신호로 하여금 현재의 목록에 저장되도록 하고, 외부적으로 발생된 신호의 우선순위 레벨이 최고 우선순위 레벨이고 명령처리기에 의해 실행되는 현재의 작업의 우선순위 레벨을 초과할 때, 현재의 목록의 내용물이 신호처리기에 이동되는 것을 특징으로 하는 처리 시스템의 동작방법.40. The command processor of claim 39 wherein the command processor maintains a current list memory and causes the current job executed by the command processor to cause the command processor to generate a buffered signal associated with a new job executed. The buffered signals associated with the new job are stored in the current list, and the priority level of the externally generated signal is the highest priority level and exceeds the priority level of the current job executed by the command processor. When the contents of the current list are moved to the signal processor. 제39항에 있어서, 명령처리기에 의해 실행된 현재의 작업이 최저 우선순위이고 외부적으로 발생된 신호가 최저 레벨 우선순위보다 높은 우선순위 레벨을 가질 때 신호처리기는 명령처리기에 의해 실행되는 현재의 작업을 인터럽트시키는 것을 특징으로 하는 처리 시스템의 동작방법.40. The signal processor of claim 39, wherein the signal processor is executed by the command processor when the current job executed by the command processor has a lowest priority and the externally generated signal has a priority level that is higher than the lowest level priority. A method of operating a processing system comprising interrupting a job.
KR1019980704692A 1995-12-19 1996-12-19 Task Scheduling for Command Handlers KR20000064491A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US57497795A 1995-12-19 1995-12-19
US8/574,977 1995-12-19
PCT/SE1996/001706 WO1997022927A1 (en) 1995-12-19 1996-12-19 Job scheduling for instruction processor

Publications (1)

Publication Number Publication Date
KR20000064491A true KR20000064491A (en) 2000-11-06

Family

ID=24298404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980704692A KR20000064491A (en) 1995-12-19 1996-12-19 Task Scheduling for Command Handlers

Country Status (7)

Country Link
EP (1) EP0868690A1 (en)
JP (1) JP2000502202A (en)
KR (1) KR20000064491A (en)
CN (1) CN1209207A (en)
AU (1) AU714853B2 (en)
CA (1) CA2240778A1 (en)
WO (1) WO1997022927A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355295B1 (en) * 2006-08-29 2014-02-07 엔에이치엔엔터테인먼트 주식회사 Method and Device for Controlling Message Transmission in Online Game

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000029942A1 (en) 1998-11-16 2000-05-25 Telefonaktiebolaget Lm Ericsson Concurrent processing for event-based systems
SE9803901D0 (en) * 1998-11-16 1998-11-16 Ericsson Telefon Ab L M a device for a service network
JP2001022600A (en) * 1999-07-06 2001-01-26 Matsushita Electric Ind Co Ltd Digital signal processor
ATE497224T1 (en) * 2001-07-12 2011-02-15 Dxo Labs METHOD AND SYSTEM FOR IMPROVING THE QUALITY OF IMAGES
CN103246591B (en) * 2013-04-26 2016-01-27 华为技术有限公司 The method and apparatus of signal transacting
CN111078387B (en) * 2017-12-25 2024-01-23 贵阳忆芯科技有限公司 Interrupt aggregation device and method thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4286322A (en) * 1979-07-03 1981-08-25 International Business Machines Corporation Task handling apparatus
DE3676497D1 (en) * 1985-10-15 1991-02-07 Unisys Corp SPECIAL CALCULATOR FOR SEPARATE VERSION OF SOME OPERATING SYSTEM FUNCTIONS IN A LARGE DATA PROCESSING SYSTEM.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355295B1 (en) * 2006-08-29 2014-02-07 엔에이치엔엔터테인먼트 주식회사 Method and Device for Controlling Message Transmission in Online Game

Also Published As

Publication number Publication date
CA2240778A1 (en) 1997-06-26
CN1209207A (en) 1999-02-24
AU714853B2 (en) 2000-01-13
EP0868690A1 (en) 1998-10-07
AU1218897A (en) 1997-07-14
WO1997022927A1 (en) 1997-06-26
JP2000502202A (en) 2000-02-22

Similar Documents

Publication Publication Date Title
US5390329A (en) Responding to service requests using minimal system-side context in a multiprocessor environment
JP3573546B2 (en) Parallel process scheduling method for parallel computer and processing device for parallel computer
US5448698A (en) Inter-processor communication system in which messages are stored at locations specified by the sender
US5613114A (en) System and method for custom context switching
US5944778A (en) Periodic process scheduling method
US5452452A (en) System having integrated dispatcher for self scheduling processors to execute multiple types of processes
US7873964B2 (en) Kernel functions for inter-processor communications in high performance multi-processor systems
US5875329A (en) Intelligent batching of distributed messages
US6820155B1 (en) Interruption managing device and interruption managing method
US20090271549A1 (en) Interrupt handling using simultaneous multi-threading
US20020103847A1 (en) Efficient mechanism for inter-thread communication within a multi-threaded computer system
KR20140021433A (en) Method and apparatus for processing the message between processors
US20020052911A1 (en) Finite state machine in a portable thread environment
KR100617228B1 (en) method for implementation of transferring event in real-time operating system kernel
KR20000064491A (en) Task Scheduling for Command Handlers
WO2004061663A2 (en) System and method for providing hardware-assisted task scheduling
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
WO1992003794A1 (en) Dual level scheduling of processes
JP3653176B2 (en) Process execution control method
Ford et al. Low level architecture features for supporting process communication
WO1992003783A1 (en) Method of implementing kernel functions
KR100241356B1 (en) Multilevel scheduling structure for dynamic synchronization in distributed system
Barman Dynamic time quantum in round robin algorithm (DTQRR) depending on burst and arrival time of the processes
JPH03241442A (en) Store buffer control system
Samaka Real-Time Multitasking Kernel For IBM-Based Microcomputers

Legal Events

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