KR970002399B1 - 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) - Google Patents
안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) Download PDFInfo
- Publication number
- KR970002399B1 KR970002399B1 KR1019940012743A KR19940012743A KR970002399B1 KR 970002399 B1 KR970002399 B1 KR 970002399B1 KR 1019940012743 A KR1019940012743 A KR 1019940012743A KR 19940012743 A KR19940012743 A KR 19940012743A KR 970002399 B1 KR970002399 B1 KR 970002399B1
- Authority
- KR
- South Korea
- Prior art keywords
- state
- interrupt
- arbitration
- bus
- multiprocessor
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
내용없음.
Description
제1도는 본 발명에 있어서 다중프로세서 인터럽트 요청기의 연결도.
제2도는 다중프로세서 인터럽트 요청기의 내부레지스터 구성도.
제3도는 다중프로세서 인터럽트 요청기의 내부상태 천이의 개략도.
제4도는 본 발명에 따른 내부상태 할당을 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
1 : 프로세서 2 : 프로세서 인터페이스 회로
3 : 다중프로세서 인터럽트 요청기 4 : 인터럽트 버스 인터페이스
5 : 인터럽트 버스 6 : TMR
7 : CSR
본 발명은 다중프로세서 인터럽트 요청기에서 안정적인 버스중재 정보구동을 위한 상태 할당방법에 관한 것으로서, 구체적으로 다중프로세서 인터럽트 요청기에서 프로세서간 인터럽트의 전송을 위하여 프로세서 버스의 사용권을 얻는 중재과정에서 프로세서 버스 중래정보를 글리치(glitch)없이 안정적으로 구동하기 위한 상태할당 방법에 관한 것이다.
본 발명의 근간이 되는 프로세서간 인터럽트의 전송규칙(protocol) 및 다중프로세서 인터럽트 요청기의 하드웨어 구성은 종래의 다중프로세서 컴퓨터 시스템과는 상이한 것이다.
이에 따른 본 발명은 다중프로세서 인터럽트 요청기(multiprocessor interrupt requester)에서 안정적인 버스중재 정부구동을 위한 상태할당 방법을 제공하는데 목적이 있다.
상기 목적을 달성하기 위하여 본 발명에서는 첨부된 도면에 의거하여 그 상세한 설명을 한다.
먼저, 제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 Register)(6)는 읽기와 쓰기가 가능하고, 다른 하나인 제어 및 상태 레지스터(이하, CSR(Control and State Register)(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) 내부의 상태천이(stater 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)를 유지한다.
상기 인터럽트 버스의 사용권을 얻는 중재는 ARB1 상태(ARBitration 1)(17), ARB2 상태(18), ARB3 상태(19), ARB4 상태(20) 및 ARB5 상태(21)의 다섯 단계를 거쳐 수행한다.
실제적인 중재동작은 다중프로세서 인터럽트 요청기(3)로부터 중재정보를 받아서 인터럽트 버스 인터페이스(4)에서 수행한다. 상기 중재동작이 완료되면 인터럽트 버스 인터페이스(4)는 중재의 성공 및 실패 여부를 다중프로세서 인터럽트 요청기(3)에게 알려준다.
상기 인터럽트 버스의 중재가 성공하여 인터럽트 비스의 사용권을 얻으면 TMR(6)에 저장되어 있는 전송 메세지를 인터럽트 버스 인터페이스(4)와 인터럽트 버스(5)를 통하여 전송한다.
상기 중재가 실패하면(arbitration fail) ARB5 상태(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 상태(24)는 이미 전송된 프로세서간 인터럽트를 수신하는 측에서 회신으로 보낸 응답정보를 받는 단계이다.
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) ARB1 상태(17)로 천이하고, 인터럽트를 사용중이면 (interrupt bus busy) RETRY 상태(26)를 유지한다.
제4도는 본 발명에 따른 다중프로세서 인터럽트 요청기(3)의 내부상태 할당의 예를 나타낸 상태천이도이다.
제4도에서와 같이, 11개의 상태가 존재하므로 이를 코드화(coding)하는데 4비트가 필요하게 된다.
상술한 다중프로세서 요청기(3)는 인터럽트 버스의 사용권을 얻기 위하여 다섯 단계의 중재과정을 거치게 된다.
상기 다섯 단계동안 다중프로세서 인터럽트 요청기(3)는 인터럽트 버스 인터페이스(4)를 통하여 인터럽트 버스(5)에 중재정보를 글리치(glitch : 펄스주기의 급격한 변화)없이 안정적으로 구동하여야 한다.
따라서, 다섯 단계의 중재과정을 나타내는 각 상태(ARB1, ARB2, ARB3, ARB4, ARB5) 사이의 천이가 발생하는 과도상태에서 순간적으로라도 원치 않는 상태에 있어서는 안된다.
제4도의 ARB1 상태(28)에서 ARB2 상태(29)로, ARB2 상태(29)에서 ARB3 상태(30)로, ARB3 상태(30)에서 ARB4(31)로, 그리고 ARB4(31)에서 ARB5(32)로 천이되는 각각의 과정에서 순간적으로라도 원치않는 상태에 있어서는 안된다.
예를 들어, 제4도에서 IDLD 상태(27)를 0000으로, ARB1 상태(28)를 0001로 할당하고, ARB2 상태(29)를 0010으로 할당하고 0011이 SEND 상태(33)에 할당되었다고 가정하면, ARB1 상태에서 ARB2 상태로의 천이는 0001에서 0011을 거쳐서 0010으로 천이될 수 있다.
즉, 짧은 기간동안 0011 상태(SEND 상태)에 있게 된다. 이럴 경우 순간적으로 중재를 나타내는 상태가 아니므로 중재정보의 구동이 중지되어 글리치(glitch)가 발생한다.
중재도중에 중재정보에 원치않는 글리치가 포함되면 인터럽트 버스 인터페이스(4) 중재 회로의 오동작을 유발할 수 있다.
따라서 다섯단계의 중재과정을 나타내는 각 상태(ARB1, ARB2, ARB3, ARB4, ARB5) 사이의 천이에서는 이와 같은 현상이 발생하지 않도록 상태를 효과적으로 할당하여야 한다.
즉, 과도적인 전후 상태의 상태천이가 일어나도록 해야 하는데, 천이되는 전후 상태의 코드가 한 비트만 다르도록 할당하면 과도적인 중간상태 없이 상태천이가 일어난다.
예를 들면, 먼저 IDLE 상태(27)를 0000으로 할당한다.
이 상태(27)에서는 인터럽트가 완료 또는 인터럽트 버스가 사용중이면 다시 반복하여 수행하며, 인터럽트 송신요구가 있고 인터럽트 버스 유휴상태이면 중재과정을 수행한다.
이 중재과정을 수행하는 조건에 만족된다면 먼저 ARB1 상태(28)로 상태가 천이되고 이때 할당비트의 값은 0001이 된다.
다음의 중재는 상기 ARB1 상태(28)에서 ARB2 상태(29)로 천이되며, 이 상태에 대한 할당비트의 값은 0001로서 0001과 한 비트 다르게 할당된다.
다음 ARB3 상태(30)의 할당비트의 값은 0010로서 한 비트 다르게 할당된다.
상기 ARB3 상태(30)의 할당비트의 값 0010과 한 비트 다르게 ARB4 상태(31)의 할당비트 값은 0110로 할당하여 중재를 수행한다.
그리고, 상기 ARB4 상태(31)의 할당비트 값 0110과 한 비트 다르게 ARB5 상태(32)의 할당비트 값을 0111로 할당하여 중재를 수행한다.
상기 ARB5 상태(32)의 중재가 성공하면 메시지 송신 또는 메세지 전송완료를 실행하는 SEND 상태(33)로 진행하고, 반면에, 중재가 실패하면, 상기 IDLE 상태(27)로 천이한다.
제4도는 이상과 같은 방법으로 중재과정인 ARB1 상태(28), ARB2 상태(29), ARB3 상태(30), ARB4 상태(31) 및 ARB5 상태(32)를 천이 전후에 오직 한 비트만 다르게 할당한 예를 나타낸 것이다.
IDLE 상태(27)에서 ARB1 상태(28)로 천이되는 과정과, RETRY 상태(37)에서 ARB1 상태(28)로 천이되는 과정 및 중재를 마치고 ARB5 상태(32)에서 SEND 상태(33)나 IDLE 상태(27)로 천이되는 과정은 순간적으로 글리치가 발생하여도 무방하다.
또한, 그 이외의 상태에서도 하나의 동작이 연속되지 않으므로 순간적으로 글리치가 발생하여도 무방하다.
Claims (1)
- 프로세서간 인터럽트의 전송을 위하여 인터럽트 버스의 사용권을 얻는 중재과정에서, 인터럽트 버스중재 정보를 글리치 없이 안정적으로 구동하기 위하여 다섯단계의 중재과정을 나타내는 각 상태 사이에서 천이가 일어나는 전후 상태의 코드가 한 비트만 다르게 상태를 할당하는 것을 특징으로 하는 안정적인 버스중재 정보 구동을 위한 상태 할당방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940012743A KR970002399B1 (ko) | 1994-06-07 | 1994-06-07 | 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940012743A KR970002399B1 (ko) | 1994-06-07 | 1994-06-07 | 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960001994A KR960001994A (ko) | 1996-01-26 |
KR970002399B1 true KR970002399B1 (ko) | 1997-03-05 |
Family
ID=19384794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019940012743A KR970002399B1 (ko) | 1994-06-07 | 1994-06-07 | 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR970002399B1 (ko) |
-
1994
- 1994-06-07 KR KR1019940012743A patent/KR970002399B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR960001994A (ko) | 1996-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU620318B2 (en) | Arbitration technique for a split transaction bus in a multiprocessor computer system | |
US4864496A (en) | Bus adapter module for interconnecting busses in a multibus computer system | |
US4720784A (en) | Multicomputer network | |
US4979097A (en) | Method and apparatus for interconnecting busses in a multibus computer system | |
EP0196911B1 (en) | Local area networks | |
US4609995A (en) | Priority controller | |
EP0013739B1 (en) | Communication controller in a data processing system | |
EP0374521A2 (en) | Least recently used arbiter with programmable high priority mode and performance monitor | |
US4630041A (en) | Enhanced reliability interrupt control apparatus | |
JP2561759B2 (ja) | マルチプロセッサシステムおよびそのメッセージ送受信制御装置 | |
EP0786726A2 (en) | Interrupt sharing technique for PCMCIA cards | |
US4384322A (en) | Asynchronous multi-communication bus sequence | |
US4858234A (en) | Method and apparatus for error recovery in a multibus computer system | |
EP0731583A1 (en) | Method and system for routing messages in a multi-node data communication network | |
US4837767A (en) | Bus adapter module with improved error recovery in a multibus computer system | |
US4433376A (en) | Intersystem translation logic system | |
KR970002399B1 (ko) | 안정적인 버스 중재정보 구동을 위한 상태 할당방법(State assignment for stable drive of bus arbirtation information) | |
GB1595471A (en) | Computer system | |
EP0180299B1 (en) | Error detection system for a data processing apparatus | |
KR970002400B1 (ko) | 다중프로세서 인터럽트 요청기에서의 인터럽트 송신 및 완료 제어방법(Control scheme of interrupt go and done in a multiprocessor interrupt requester) | |
KR960015586B1 (ko) | 다중프로세서 인터럽트 요청기에서의 전송 실패 인터럽트의 구동방법 | |
CN1143779A (zh) | 使用改进型自编码分配中断仲裁技术的多处理机系统 | |
KR950010947B1 (ko) | 버스 프로토콜 맵핑 회로 | |
KR930004903B1 (ko) | 데이타 버스를 이용한 프로세서간 병렬 데이타 통신시스팀 및 통신방법 | |
KR100199029B1 (ko) | 펜티엄 프로세서를 위한 인터럽트 제어기 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
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: 20080303 Year of fee payment: 12 |
|
LAPS | Lapse due to unpaid annual fee |