KR960015586B1 - 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법 - Google Patents

다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법 Download PDF

Info

Publication number
KR960015586B1
KR960015586B1 KR1019940012745A KR19940012745A KR960015586B1 KR 960015586 B1 KR960015586 B1 KR 960015586B1 KR 1019940012745 A KR1019940012745 A KR 1019940012745A KR 19940012745 A KR19940012745 A KR 19940012745A KR 960015586 B1 KR960015586 B1 KR 960015586B1
Authority
KR
South Korea
Prior art keywords
interrupt
condition
state
multiprocessor
requester
Prior art date
Application number
KR1019940012745A
Other languages
English (en)
Other versions
KR960002029A (ko
Inventor
모상만
원철호
윤석한
임기욱
오길록
Original Assignee
재단법인 한국전자통신연구소
양승택
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 재단법인 한국전자통신연구소, 양승택 filed Critical 재단법인 한국전자통신연구소
Priority to KR1019940012745A priority Critical patent/KR960015586B1/ko
Publication of KR960002029A publication Critical patent/KR960002029A/ko
Application granted granted Critical
Publication of KR960015586B1 publication Critical patent/KR960015586B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)

Abstract

내용없음

Description

다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법
제1도는 본 발명에 있어서 다중프로세서 인터럽트 요청기의 연결도.
제2도는 다중프로세서 인터럽트 요청기의 내부레지스터 구성도.
제3도는 다중프로세서 인터럽트 요청기의 내부상태 천이의 개략도.
제4도는 본 발명에 따른 흐름도.
* 도면의 주요부분에 대한 부호의 설명
1 : 프로세서 2 : 프로세서 인터패이스 회로
3 : 다중프로세서 인터럽트 요청기 4 : 인터럽트 버스 인터페이스
5 : 인터럽트 버스 6 : TMR
7 : CSR
본 발명은 다중프로세서 인터럽트 요청기에서의 전송실패 인터럽트의 구동방법에 관한 것으로, 구체적으로는 다중프로세서 인터럽트 요청기에서 프로세서간 인터럽트의 전송이 실패하였을 경우에 이를 인지하여 전송 실패 인터럽트를 구동하는 방법에 관한 것이다.
본 발명의 근간이 되는 프로세서간 인터럽트의 전송규칙(protocol) 및 다중프로세서 인터럽트 요청기의 하드웨어 구성은 종래의 다중프로세서 컴퓨터 시스템과는 상이한 것이다.
이에따른 본 발명은 다중프로세서 인터럽트 요청기(multipro-cessorinterrupt requester)에서 전송실패 인터럽트(Transfer failure interrupt)의 구동방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위하여 본 발명에서는 첨부된 도면에 의거하여 그 상세한 설명을 한다.
먼저, 제1도는 본 발명에 있어서 다중프로세서 인터럽트 요청기의 연결도를 나타낸 것으로서, 하나의 처리장치내에서의 단위 모듈(module)간 연결을 나타낸다.
본 발명에서의 다중프로세서 인터럽트 요청기는 다중프로세서 컴퓨터 시스템에서 프로세서간 인터럽트를 전송하는 기능을 수행한다.
상기 제1도의 구성은 프로세서(processor)(1)에 프로세서 인터페이스 회로(processor interface circuit)(2)가 연결되고, 이 프로세서 인터페이스 회로(2)에 다중프로세서 인터럽트 요청기(3)가 연결되며, 여기에 인터럽트 버스(interrupt bus)(5)와 연결되는 인터럽트 버스 인터페이스(4)가 연결되는 구성으로 이루어진다.
상기 구성에 따른 동작은 다음과 같다.
먼저, 프로세서 인터페이스 회로(2)는 프로세서(1)와 다중프로세서 인터럽트 요청기(3) 사이의 인터페이스를 제공한다.
인터럽트 버스 인터페이스(4)는 인터럽트 버스(5)와 다중프로세서 인터럽트 요청기(3) 사이의 인터페이스를 제공하며, 상기 다중프로세서 인터럽트 요청기(3)로부터 받은 중재정보를 이용하여 상기 인터럽트 버스(5)의 사용권을 중재하는 기능도 수행한다.
상기 다중프로세서 인터럽트 요청기(3)에는 두개의 레지스터가 있는데, 이에 대해서 제2도인 다중프로세서 인터럽트 요청기의 내부 레지스터의 구성도를 설명한다.
상기 두개의 레지스터는 모두 32비트로 구성되어 있으며, 프로그램에 의해서 접근이 가능한 레지스터이다.
상기 두개의 레기스터중 하나인 전송 메세지 레지스터(이하 TMR(Transfer Message Resister))(6)는 읽기와 쓰기가 가능하고, 다른 하나인 제어 및 상태 레지스터(이하, CSR(Control and State Resister))(7)에서는 오류비트(error bits)(10)와 전송오류(transfer error)(11)부분을 읽기만 가능하고, 최대 재시도 계수치(maximum retry count)(8), 현재 재시도 계수치(current retry count) (9), 유한 재시도 인에이블(finite retry enable)(13), 전송실패 인터럽트 인에이블(transfer failure interrupt enable)(14) 및 인터럽트 송신/완료(interrupt go/done)(15)부분을 읽기와 쓰기가 가능하다.
상기 TMR(6)에는 전송하고자 하는 메세지가 저장되며, 전송 메시지에는 수신처, 송신처, 인터럽트의 종류, 벡터(vector)의 형태, 벡터 등이 포함되어 있다.
또한, 상기 CSR(7)에는 최대 재시도 계수치[31:24](8), 현재 재시도 계수치[23:16](9), 오류비트[15:8](10), 전송오류[7](11), 유한 재시도 인에이블[2](13), 전송실패 인터럽트 인에이블[1](14) 그리고 인터럽트 송신/완료비트[0](15) 등이 저장되며, 비트 6에서 비트 3까지(CSR[6:3])(12)는 정의하지 않는다.
상기 최대 재시도 계수치(8)는 전송오류가 발생할 경우에 재시도 하는 회수를 나타내며, 프로그램에 의해서 최대 재시도 회수가 쓰여진다.
상기 현재 재시도 계수치(9)는 프로세서(1)로부터 전송요구를 받은 메시지에 대하여 전송오류에 의한 재시도를 수행한 회수를 나타내며, 최대 재시도 계수치에서부터 시작하여 재시도를 할 때마다 내림순으로 계수한다.
현재 재시도 계수치(9)의 값이 0이면 정해진 최대 재시도 회수만큼의 재시도를 하였음을 나타낸다.
상기 각각의 오류비트(10)는 전송중 발생한 오류를 나타내며, 전송오류(11)는 하나 이상의 오류비트(10)가 세트(set)되면 동시에 세트된다.
그리고, 상기 유한 재시도 인에이블비트(13)의 값이 0이면 최대 재시도 계수치(8)의 값에 상관없이 전송이 성공할 때까지 무한히 재시도를 수행하고, 유한 재시도 인에이블비트(13)의 값이 1이면 전송이 성공할 때까지 최대 재시도 계수치(8) 만큼의 재시도를 수행한다.
전송실패 인터럽트 인에이블 비트(14)의 값이 1이면 전송실패시 전송실패를 나타내는 인터럽트를 프로세서 인터페이스 회로(2)를 통하여 프로세서(1)에게 구동하고, 0이면 구동하지 않는다.
또한 상기 인터럽트 송신/완료비트(15)의 값이 1이면 프로세서(1)로부터 프로세서간 인터럽트의 전송이 요구되어 현재 전송을 시도하고 있음을 나타낸다.
인터럽트 송신/완료비트(15)의 값이 0이면 프로세서간 인터럽트의 전송이 완료되었음을 나타내며, 성공적으로 완료될 수 있고 또는 전송오류가 발생하여 실패로 완료될 수도 있다.
상기 제1도 및 제2도를 참조로하여, 제3도에서는 다중프로세서 인터럽트 요청기(3) 내부의 상태천이(state transition)를 개략적으로 설명한다.
설명에 앞서서 원은 각각의 상태(state)를 나타내고, 원안의 표기는 상태명(state name)을 나타낸다.
여개의 상태들간을 연결하는 화살표는 상태천이의 방향을 나타내며, 화살표상의 글자표기는 상태천이의 조건을 나타낸다.
화살표에 아무런 표기가 없으면 무조건 다음 클럭에서 화살표 방향으로 천이됨을 나타낸다.
상기 상태천이는 클럭의 상승에지(rising edge)에서 일어난다.
도면에서의 IDLE(아이들) 상태(16)는 초기상태이다.
프로그램에 의하여 인터럽트 송신/완료비트(15)에 1이 쓰여지고 인터럽트 버스(5)가 유휴상태이면(interrupt go and interrupt bus idle) 중재 상태로 천이한다.
반대로 인터럽트 송신/완료비트(15)가 0이거나 인터럽트 버스(5)가 사용중이면(interrupt done or interrupt bus busy) IDLE 상태(16)를 유지한다.
상기 인터럽트 버스의 사용권을 얻는 중재는 ARB 1 상태(ARBitration 1)(17), ARB 2 상태(18), ARB 3 상태(19), ARB 4 상태(20) 및 ARB 5 상태(21)의 다섯 단계를 거쳐 수행한다.
실제적인 중재동작은 다중프로세서 인터럽트 요청기(3)로부터 중재 정보를 받아서 인터럽트 버스 인터페이스(4)에서 수행한다.
상기 중재동작이 완료되면 인터럽트 버스 인터페이스(4)는 중재의 성공 및 실패 여부를 다중프로세서 인터럽트 요청기(3)에게 알려준다.
상기 인터럽트 버스의 중재가 성공하여 인터럽트 버스의 사용권을 얻으면 TMR(6)에 저장되어 있는 전송 메세지를 인터럽트 버스 인터페이스(4)와 인터럽트 버스(5)를 통하여 전송한다.
상기 중재가 실패하면(arbitration fail) ARB 5 상태(21)에서 IDLE 상태(16)로 천이하고, 중재가 성공하면(arbitration win) SEND 상태(22)도 천이한다.
상기 SEND 상태(22)에서는 TMR(6)에 저장되어 있는 전송 메세지를 인터럽트 버스 인터페이스(4)와 인터럽트 버스(5)를 통하여 송신하는 동작을 수행한다.
이 메시지 송신이 진행중이면(in sending message) 메세지 송신을 마칠 때까지 이 상태에 머물게 된다.
일련의 메세지 송신이 끝나면(message sended) DUMMY 상태(23)로 천이한다.
이 DUMMY 상태(24)는 프로세서간 인터럽트를 수신하는 측에서 수신한 정보를 디코딩(decoding)하는 단계로서, 다중프로세서 인터럽트 요청기(3)에서는 아무런 동작도 하지 않는다.
ACK 상태(25)는 이미 전송된 프로세서간 인터럽트를 수신하는 측에서 회신으로 보낸 응답정보를 받는 단계이다.
CHECK 상태(25)에서는 ACK 상태(24)에서 받은 응답정보를 검사하고, CSR(7)의 오류비트(10), 전송오류비트(11), 인터럽트 송신/완료비트(15)에 그 결과를 기록한다.
상기 응답정보를 검사한 결과 전송오류가 발생하고 무산 재시도이거나 재시도 회수가 만료되지 않았으면(error and(infinite retry or no retry out)) RETRY 상태(26)로 천이하고, 전송오류가 없거나 유한 재시도이고 재시도 회수가 만료되었으면(no error or(finite retry and retry out)) IDLE 상태(16)로 천이한다.
RETRY 상태(26)는 재시도를 준비하는 단계로서 유한 재시도 인에이블(13)이 1이면 CHECK 상태(25)에서 천이됨과 동시에 현재 재시도 계수치를 1만큼 감소시킨다.
인터럽트 버스가 유휴상태이면(interrupt bus idle) ARB 1 상태(17)로 천이하고, 인터럽트를 사용중이면(interrupt bus busy) RETRY 상태(26)를 유지한다.
제4도는 본 발명에 따른 다중프로세서 인터럽트 요청기(3)에서의 프로세서간 인터럽트의 전송실패를 알리는 인터럽트를 구동하는 방법을 나타낸 흐름도이다.
먼저, 다중프로세서 인터럽트 요청기(3)는 입력클럭이 상승에지(rising edge)인가를 판단하여(단계 27) 상승에지가 아니면 상승에지 상태가 될 때까지 반복하여 이 판단(단계 27)을 수행한다.
그러나, 상기 판단(단계 27)에 의해 상승에지이면 전송실패 인터럽트 신호인 TFINT(Transfer Failure INTerrupt)가 0이고 CHECK 상태이고 전송오류비트를 나타내는 CSR[7](11)이 1이고 유한 재시도 인에이블 비트를 나타내는 CSR[2](14)이 1이고 현재 재시도 계수치인 CSR[23:16](9)의 값이 0이고 전송 실패인터럽트 인에이블 비트를 나타내는 CSR[1](14)이 1이라고 판단되면(단계 28), 전송실패 인터럽트 신호 TFINT를 1로 구동하여(asserting) 전송실패 사실을 프로세서 인터페이스 회로(2)를 통하여 프로세서(1)에게 알리고(단계 29) 상기 단계 27로 복귀한다.
즉, 전송실패 인터럽트를 구동하는 조건(단계 28)은 전송실패 인터럽트(TFINT)가 구동되지 않았고 용답정보를 검사하는 CHECK 상태이며 전송 오류가 발생하였고 유한 재시도 조건에서 재시도 회수가 만료되었고 전송실패 인터럽트 구동이 허용되었을 경우이다.
상기 판단(단계 28)의 조건에 만족하지 않는다면 전송실패 인터럽트 신호 TFINT가 1이고 TMR 읽기나 CSR 읽기가 수행되는가를 판단한다(단계 30).
상기 판단(단계 30)의 조건에 만족한다면 구동한 상기 전송실패 인터럽트 신호를 철회(deassert)하고(단계 31) 상기 단계 27로 복귀한다.
또한, 상기 판단(단계 30)의 조건에 만족하지 않는다면 상기 단계 27로 복귀한다.
즉, 구동한 전송실패 인터럽트를 철회(deassert)하는 조건(30)은 전송실패 인터럽트가 이미 구동되어 있고 TMR 읽기나 CSR 읽기가 발생하는 경우이다.
프로세서(1)가 전송실패 인터럽트를 접수하면 어떤 이유로 전송이 실패하였는지를 판단하고 필요한 조치를 취하기 위하여 TMR(6)과 CSR(7)의 내용을 읽는 동작을 수행하는데, 이때 구동한 전송실패 인터럽트 신호를 철회한다.
상기 레지스터(예 : TMR 및 CSR) 읽기와 쓰기는 프로세서(1)로부터 프로세서 인터페이스 회로(2)를 경유하여 요구되는데, 어드레스 스트로우브(Address strobe)신호와 어드레스 신호, 바이트 인에이블(byte enable)신호, 읽기 및 쓰기 선택신호, 데이터버스(data bus) 및 응답신호를 이용하여 프로세서 인터페이스회로(2)와 다중프로세서 인터럽트 요청기(3) 사이의 읽기와 쓰기가 수행된다.
상기 프로세서 인터페이스 회로(2)에서 다중프로세서 인터럽트 요청기(3)로 구동하는 어드레스선의 폭은 5이며 TMR(6)의 어드레스는 00000이고 CSR(7)의 어드레스는 00001이다.
또한, 바이트 인에이블 신호선의 폭은 4인데 4개의 각 바이트에 1대 1로 대응되고, 데이터 버스의 폭은 내부 레지스터의 길이와 같은 크기의 32이다.
레지스터 읽기나 쓰기 수행후 다중프로세서 인터럽트 요청기(3)는 프로세서 인터페이스 회로(2)에게 응답신호를 구동하여 요구가 완료되었음을 알려준다.
이상과 같은 본 발명은 다중프로세서 인터럽트 요청기에서 프로세서간 인터럽트의 전송이 실패하였을 경우에 이를 인지하여 전송실패 인터럽트의 구동 및 철회를 제어할 수 있다.

Claims (1)

  1. 다중프로세서 인터럽트 요청기(3)로 입력되는 클럭이 상승에지인가를 판단하여(27) 아니면 상승에지 상태가 될 때까지 반복하여 수행하는 단계와, 상기 판단(27)으로 상기 클럭이 상승에지 상태이면 프로세서간 인터럽트의 전송실패 조건인 전송실패 인터럽트(TFINT)가 구동되지 않았고, 응답정보를 검사하는 CHECK 상태이고, 전송오류가 발생하였고 유한 재시도 조건에서 재시도 회수가 만료되었고 전송실패 인터럽트 구동이 허용(enable)되었는가를 판단하는(28) 단계와, 이 판단(28)의 조건에 만족된다면, 전송실패 인터럽트신호(TFINT)를 1로 구동하여 전송실패 사실을 프로세서 인터페이스 회로(2)를 통하여 프로세서(1)에게 알리는(29) 단계와, 상기 판단(28)의 조건에 만족되지 않는다면, 구동한 전송 실패 인터럽트 신호를 철회하는 조건인 상기 전송실패 인터럽트 신호(TFINT)가 이미 구동되어 있고, TMR(6) 읽거나 CSR(7) 읽기가 발생되었는가를 판단하는(30) 단계와, 이 판단(30)의 조건인 구동한 전송실패 인터럽트 신호 철회 조건에 만족되면, 상기 전송실패 인터럽트 신호(TFINT)를 0으로 하여 철회하고(31) 상기 단계 27로 복귀하며, 이 판단(30)의 조건에 만족되지 않는 경우에는 상기 단계 27로 복귀하는 단계들을 포함하는 다중프로세서 인터럽트 요청기에서의 전송실패 인터럽트의 구동방법.
KR1019940012745A 1994-06-07 1994-06-07 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법 KR960015586B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019940012745A KR960015586B1 (ko) 1994-06-07 1994-06-07 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019940012745A KR960015586B1 (ko) 1994-06-07 1994-06-07 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법

Publications (2)

Publication Number Publication Date
KR960002029A KR960002029A (ko) 1996-01-26
KR960015586B1 true KR960015586B1 (ko) 1996-11-18

Family

ID=19384796

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019940012745A KR960015586B1 (ko) 1994-06-07 1994-06-07 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법

Country Status (1)

Country Link
KR (1) KR960015586B1 (ko)

Also Published As

Publication number Publication date
KR960002029A (ko) 1996-01-26

Similar Documents

Publication Publication Date Title
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
US4979097A (en) Method and apparatus for interconnecting busses in a multibus computer system
US6202097B1 (en) Methods for performing diagnostic functions in a multiprocessor data processing system having a serial diagnostic bus
US4543628A (en) Bus for data processing system with fault cycle operation
US6766479B2 (en) Apparatus and methods for identifying bus protocol violations
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
EP0422103B1 (en) I/o bus to system bus interface
EP0013739B1 (en) Communication controller in a data processing system
GB1588807A (en) Power interlock system for a multiprocessor
US20080059683A1 (en) Method and Apparatus for Conditional Broadcast of Barrier Operations
US4858234A (en) Method and apparatus for error recovery in a multibus computer system
US4837767A (en) Bus adapter module with improved error recovery in a multibus computer system
US6189117B1 (en) Error handling between a processor and a system managed by the processor
KR960015586B1 (ko) 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법
KR970002400B1 (ko) 다중프로세서 인터럽트 요청기에서의 인터럽트 송신 및 완료 제어방법(Control scheme of interrupt go and done in a multiprocessor interrupt requester)
JP2589821B2 (ja) 情報処理システムの中央処理ユニット
US6292861B1 (en) Processor having interface with bus arbitration circuit
JP2007513394A (ja) ホスト・バス・アダプタからステータスを与えるための方法、装置、及びプログラム記憶装置
KR960012355B1 (ko) 다중프로세서 시스템에서의 캐쉬간 직접 데이타 전송 지원 제어장치
KR970002399B1 (ko) 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information)
EP0278263B1 (en) Multiple bus DMA controller
JP3630523B2 (ja) バス転送処理システム
KR0150068B1 (ko) 데이터 큐 모듈 및 그 제어방법
KR930004903B1 (ko) 데이타 버스를 이용한 프로세서간 병렬 데이타 통신시스팀 및 통신방법
CA1336459C (en) I/o bus to system bus interface

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20071024

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee