KR0162768B1 - 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로 - Google Patents

하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로 Download PDF

Info

Publication number
KR0162768B1
KR0162768B1 KR1019950054526A KR19950054526A KR0162768B1 KR 0162768 B1 KR0162768 B1 KR 0162768B1 KR 1019950054526 A KR1019950054526 A KR 1019950054526A KR 19950054526 A KR19950054526 A KR 19950054526A KR 0162768 B1 KR0162768 B1 KR 0162768B1
Authority
KR
South Korea
Prior art keywords
interrupt
queue
bus
signal
qmr0
Prior art date
Application number
KR1019950054526A
Other languages
English (en)
Other versions
KR970049675A (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 KR1019950054526A priority Critical patent/KR0162768B1/ko
Publication of KR970049675A publication Critical patent/KR970049675A/ko
Application granted granted Critical
Publication of KR0162768B1 publication Critical patent/KR0162768B1/ko

Links

Classifications

    • 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
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6022Using a prefetch buffer or dedicated prefetch cache

Abstract

본 발명은 HiPi+버스에서 인터럽트 처리기의 대기열 동기제어회로에 관한 것으로, 종래 인터럽트 메세지 대기열의 구성은 인터럽트 버스의 인터럽트 버스 클록(INT_CLK)과 상위 모듈의 클록이 비동기적으로 동작함으로 인하여 인터럽트 메세지 대기열의 갱신과 인터럽트 메세지를 상위 모듈에서 페치(Fetch)해가는 동작간의 비동기로 인한 데이타 페치 오류 및 대기열의 제어에 문제점과 또한 인터럽트 대기열을 갖지 못한 인터럽트 처리기의 경우에 사용중 응답을 인터럽트 요청기에 보냄으로 인하여 인터럽트 요청기로 하여금 불필요한 재시도가 발생하게 되어 HiPi+버스의 사용 빈도수를 증가하게 되고, 메세지 전송 시간의 증가를 일으키게 되는 문제점을 해결하기 위해 인터럽트 처리기에서 Q-형의 인터럽트 메세지 처리 속도를 향상시키기 위해 인터럽트 대기열을 두어 미처 처리되지 못한 메세지를 대기열에 저장시킴으로서 인터럽트 요청기에게 사용중 응답을 주지 않고 전송을 완료하게 함으로서 인터럽트 처리기의 처리속도를 증가시키기 위한 것이다.

Description

하이파이 플러스 버스(HiPi+ bus)에서 인터럽트 처리기의 대기열(Queue) 동기 제어 회로
제1도는 본 발명이 적용되는 하이파이 플러스 버스에서 인터럽트 요청기(IR)와 인터럽트 처리기(IH)의 연결 구성도.
제2도는 제1도에서 인터럽트 처리기(IH)의 상세 블록 구성도.
제3도는 본 발명의 하이파이 플러스 버스에서 인터럽트 처리기(IH)의 대기열(Queue) 동기 제어 회로도.
제4도는 본 발명에 의한 동기화된 신호의 파형도.
* 도면의 주요부분에 대한 부호의 설명
10, 20 : 모듈 11, 21 : 인터럽트 요청기
12, 22 : 인터럽트 처리기 30 : 인터럽트 버스
100 : HiPi+버스 200 : 대기열 제어기
210 : AND 게이트 220 : 제1SR플립플롭
230 : 제2SR플립플롭 300 : 제어 및 상태 레지스터
400 : 버스 구동 및 중재기 500 : 임시 저장 레지스터(TMR)
600 : 대기열 처리기 610∼613 : Q_VALID0 ∼ Q_VALID3
614∼617 : QMR0(Queuing Message Resister 0) ∼ QMR3
본 발명은 하이파이 플러스 버스(이하, 'HiPi+ 버스' 라 칭함)에서 인터럽트 처리기의 대기열(Queue) 동기제어 회로에 관한 것으로, 특히 HiPi+ 버스상에서 인터럽트 처리기의 대기열에 의한 동기제어에 의해 인터럽트 메세지 처리 속도를 향상시키기 위한 HiPi+ 버스에서 인터럽트 처리기의 대기열 동기제어 회로에 관한 것이다.
제1도는 본 발명이 적용되는 HiPi+버스상에서 인터럽트 요청기(Interrupt Requester; IR)와 인터럽트 처리기(Interrupt Handler; IH)의 위치 구성도이다.
그 구성은, 도시된 바와 같이, 인터럽트를 전송할 수 있는 인터럽트 요청기(11,21)와 인터럽트를 받아 처리하는 인터럽트 처리기(12,22)를 각각 포함하여 구성된 다수개의 모듈(10,...,20)과, HiPi+ 버스상에서 다수개의 모듈(Module)(10,...,20)간의 비동기적인 신호를 교환하는 통로인 인터럽트 버스(30)로 구성된 것이다.
이와같은 구성에 의한 동작을 설명하면 다음과 같다.
HiPi+ 버스(제2도에서 참조번호 100)에서 인터럽트 버스(30)를 통해 교환되는 신호는 HiPi+ 버스(100)상의 한 모듈(10)에서 다른 특정 모듈(20) 또는 다수개의 모듈에게 명령을 전달하고, 명령의 결과를 수신하는 형태로 운영된다.
이때, 상기 인터럽트 요청기(11, 21)는 HiPi+버스(100)상의 상위 한 모듈에서 HiPi+버스(100)상의 다른 모듈 또는 모든 모듈 메세지를 전달하기 위하여 벡터(Vector)를 전송한다.
이러한 인터럽트 요청기(11, 21)는 전달하는 메세지를 전달하고자 하는 모듈의 주소(SA : Source Address)와 인터럽트를 받을 모듈의 주소(DA : Destination Address), 벡터의 형태(VT : Vector Type)등을 전송한다.
그리고 인터럽트 처리기(12, 22)는 SA, DA, VT등을 디코딩하여 자신에게 보내진 메세지인가를 판단하여 자신에게 보내진 메세지이고 전송의 오류가 없고, 상위 모듈이 받을 수 있는 상태이면 이를 상위 모듈(프로세서)에게 전달한다.
이러한 인터럽트 처리기(12, 22)는 HiPi+버스(100)의 인터럽트 버스 클록(INT_CLK)에 동기되어 동작하며, 인터럽트 처리기(12, 22)외의 로직은 HiPi+버스(100)상의 보드를 구동하는 프로세서의 프로세서 클록에 동기되어 동작한다.
따라서 프로세서의 클록과 HiPi+버스의 인터럽트 버스 클록(INT_CLK)간에는 비동기 형태의 동작을 하게 된다.
상기 인터럽트 처리기(12, 22)의 상세한 동작을 설명하면, 인터럽트 벡터(메세지)를 간직하고 있다가 상위 모듈이 가져가면 인터럽트 메세지를 비우고, 새로운 인터럽트 메세지를 받기 위한 준비상태에 돌입한다.
이때 인터럽트 벡터를 저장하는 레지스터가 1개인 경우 상위 모듈 프로세서가 인터럽트 벡터를 가져가기 전까지 인터럽트 처리기(12, 22)는 계속 사용중(Busy) 상태를 유지하게 된다.
따라서 인터럽트 처리기는 새로운 인터럽트가 도착하더라도 처리할 수 없으므로 인터럽트 전송 주기중 인터럽트를 받을 수 없는 사용중 메세지를 인터럽트를 전송하고자 하는 모듈에게 알려줌으로써 인터럽트를 보내고자 하는 모듈은 인터럽트 메세지를 보내고자 하는 모듈이 사용중 상태임을 알고 다시 인터럽트 버스 사용을 위한 인터럽트 버스 중재 주기 부터 다시 참여하여 인터럽트 버스 사용권을 획득한 후 다시 메세지 전송을 수행하게 된다.
따라서 인터럽트를 전송하고자 하는 모듈(10, 20)은 인터럽트 처리기(12, 22)가 인터럽트 메세지 대기열(Queue) 처리를 하지 않으므로 인하여 인터럽트 버스(30)의 사용률을 저하시키고, 인터럽트의 전송속도의 지연을 초래한다.
그러므로 이러한 큐잉(Queueing) 동작은 벡터의 타입(VT)이 Q-형인 경우에만 해당된다.
이와는 다르게 인터럽트 발생순위가 높은 E-형(Type)인 경우는 현재의 메세지를 프로세서가 가져가지 않았더라도 인터럽트 메세지를 무조건 받도록 규약되어 있으므로 대기열을 제공할 필요는 없다.
따라서 대기열을 제공해야 하는 인터럽트 형태는 Q-형의 메세지에만 국한된다.
그러나 인터럽트 메세지 대기열의 구성은 인터럽트 버스의 인터럽트 버스클록(INT_CLK)과 상위 모듈의 클록이 비동기적으로 동작함으로 인하여 인터럽트 메세지 대기열의 갱신과 인터럽트 메시지를 상위 모듈에서 페치(Fetch)해가는 동작간의 비동기로 인한 데이타 페치 오류 및 대기열의 제어에 문제점이 있다.
그리고 상기 인터럽트 대기열을 갖지 못한 인터럽트 처리기의 경우의 예를 들면, 메세지를 수신한 경우, 인터럽트 메세지를 상위 모듈이 가져가지 않은 경우, 새로운 메세지가 도착한 경우가 있다.
그런데 이러한 경우들은 사용중 응답을 인터럽트 요청기에 보냄으로 인하여 인터럽트 요청기로 하여금 불필요한 재시도가 발생하게 되는 원인이 된다. 이와같은 불필요한 재시도는 HiPi+버스의 사용 빈도수를 증가하게 되고, 메세지 전송 시간의 증가를 일으키게 된다.
이에따라 본 발명은 인터럽트 처리기에서 Q-형의 인터럽트 메세지 처리속도를 향상시키기 위해 인터럽트 대기열을 두어 미처 처리되지 못한 메세지를 대기열에 저장시킴으로서 인터럽트 요청기에게 사용중 응답을 주지 않고 전송을 완료하게 함으로서 인터럽트 처리기의 처리속도를 증가시킬 필요성이 있다.
따라서, 본 발명은 인터럽트 처리기가 인터럽트 버스를 통해 받은 인터럽트 벡터를 프로세서에게 전달하기 위해서 프로세서의 클록과 HiPi+ 버스의 인터럽트 버스 클록간의 비동기 상태에서도 이상 없이 메세지를 프로세서에게 전달하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 기술적 특징은, HiPi+버스상에서 인터럽트 버스를 사용하여 모듈간의 메세지 전송을 전담하는 인터럽트 요청기와, 상기 HiPi+버스를 프로세서에서 전송된 제어신호에 따라 구동 및 중재하는 버스 구동 및 중재기와 상기 버스 구동 및 중재기로 부터 전송된 인터럽트 메세지를 임시 저장하는 임시 저장 레지스터(TMR)와 프로세서로 부터 전송된 프로세서 데이타를 제어하고 그 상태를 임시 저장하는 제어 및 상태 레지스터로 구성된 인터럽트 처리기를 포함하는 시스템에 있어서, 상기 인터럽트 처리기는 상기 임시 저장 레지스터에서 전송된 인터럽트 메세지를 상기 인터럽트 버스로 부터 전송된 한 주기의 인터럽트 버스 클록(INT_CLK) 동안 대기열의 상태와 프로세서의 읽기동작에 따라 이동시키는 대기열 처리수단과, 상기 대기열 처리수단에서 대기열의 채워진 상태에 따라 대기열의 억세스 동작의 충돌을 방지하기 위한 신호를 상기 인터럽트 버스 클록(INT_CLK)에 동기시켜 발생하는 대기열 제어수단을 포함하여 구성된 것이다.
이하, 본 발명을 첨부된 도면에 의거하여 상세히 설명하면 다음과 같다.
본 발명은 기본적인 4개의 인터럽트 메세지 대기열을 대상으로 하고, 데이타는 32비트인 경우를 대상으로 하며, 4개 이상의 대기열을 갖고 있는 경우에서의 적용에서도 동일하다.
제2도는 인터럽트 처리기(12, 22)의 상세 블록 구성을 나타낸 것으로서, 그 구성은, 데이타 버스, 어드레스 버스, 유틸리티 버스, 인터럽트 버스(30)를 포함하는 HiPi+버스(100)와 접속되어 상기 버스들을 구동 및 중재하는 버스 구동 및 중재기(400)와, 상기 버스 구동 및 중재기(400)로 부터 전송된 인터럽트 메세지 도착시 도착된 메세지를 임시 저장하기 위해 버퍼를 사용하는 임시 저장 레지스터(이하, TMR ; Temporary Message Resister 라 칭함)(500)와, 외부의 프로세서로 부터 전송된 프로세서 데이타를 제어하고 그 상태를 임시 저장하는 제어 및 상태 레지스터(300)와, 상기 TMR(500)에서 전송된 인터럽트 메세지를 상기 인터럽트 버스(30)로 부터 전송된 한 주기의 인터럽트 버스 클록(INT_CLK) 동안 대기열의 상태와 프로세서의 읽기동작에 따라 이동시키는 대기열 처리기(600)과, 상기 대기열 처리기(600)에서 대기열의 채워진 상태에 따라 대기열의 억세스 동작의 충돌을 방지하기 위한 신호를 상기 인터럽트 버스 클록(INT_CLK)에 동기시켜 발생하는 대기열 제어기(200)로 구성된 것이다.
상기한 대기열 제어기(200)는 상기 메세지 대기열의 상태를 표시하는 Q_VALID[3 : 0] 비트의 신호(610∼613)에 의해 대기열의 상태를 파악하여 대기열이 비어 있으면 Qup_date신호를 발생시켜 상위 모듈로 하여금 인터럽트 메세지 대기열(614∼617)의 QMR 0(Queuing Message Resister 0)를 읽어 대기열의 전이(Shift)를 방지하는 것이다.
상기 대기열 제어기(200)의 구성은 제3도에 도시된 바와 같이, 프로세서 클록에 동기된 W/R*신호, QMR0_F_EN(QMR0_Fetch_ENable)신호, Qup_date 신호 그리고 프로세서가 읽기를 시도한다는 QMR0_SEL신호를 논리곱하는 AND 게이트(210)와, 프로세서의 억세스가 읽기이고, QMR0_F_EN 신호가 유효하고, Qup_date 신호가 유효하지 않고, QMR0_SEL신호가 유효할 때 상기 AND 게이트(210)에 의해 논리곱된 결과와 궤환된 QMR0_Fetch신호를 래치하여 상기 인터럽트 버스 클록(INT_CLK)에 따라 QMR0_Fetch신호를 상기 대기열 처리기(600)에 입력하여 대기열의 메세지를 전이시키는 제1SR플립플롭(220)과, 인터럽트 대기열을 읽고 있음을 표시하는 프로세서 클록에 동기된 신호(QMR0_SEL)와 상기 제1SR플립플롭(220)에서 출력된 QMR0_Fetch신호를 래치하여 상기 인터럽트 버스 클록(INT_CLK)에 따라 QMR0_F_EN신호를 상기 대기열 처리기(600)에 입력하는 제2SR플립플롭(230)으로 구성된 것이다.
이와 동시에 상기 제1, 제2 SR플립플롭(220, 230)은 'R' 단자에 QMR0_Fetch신호를 입력하여 현재 '1'로 세트된 신호를 다음 인터럽트 버스 클록에 '0'으로 세트하여 한 주기의 인터럽트 버스 클록 동안 유효한 스텝 펄스(Step Pulse)를 생성한다.
이와같은 구성에 따라 본 발명의 동작을 설명하면 다음과 같다.
인터럽트 요청기(11, 21)는 인터럽트 버스(30)를 통하여 인터럽트를 전송하면 해당 인터럽트는 인터럽트 처리기의 대기열 제어기(200)에서 순차적인 제어에 의해 인터럽트 32비트의 인터럽트 메세지를 형성하여 TMR(500)에 저장한다.
상기 TMR(500)에 저장된 데이타는 큐잉(Queuing) 가능을 알리는 비트인 Q_VALID[3:0](610∼613)의 플래그(Flag) 비트의 내용에 의해 저장 여부 및 사용중 응답을 인터럽트 요청기에 전송할 것인가를 결정한다.
그리고 Q_VALID[3:0](610∼613)의 비트는 각각 4개의 대기열의 상태를 표시하고 있으며, 만일 비트의 값이 1이면 해당 대기열은 상위 모듈의 프로세서가 가져가지 않는 상태이므로 데이타를 기입할 수 없는 상태이고, 0이면 대기열이 비어있는 상태로서 새로 도착한 메세지를 기입할 수 있는 상태이다.
또한 상기 Q_VALID(610∼613)의 내용이 모두 1이면 더 이상의 메세지를 받을 수 없는 Q_FULL 상태가 된다.
이러한 상태에서 QMR0(614)의 레지스터 값을 프로세서가 읽어가면 Q_VALID(610∼613)의 상태는 111가 되고 QMR1(615)의 값이 QMR0(614)로 전이가 이루어지며, QMR2(616)의 값은 QMR1(615)으로, QMR3(617)는 QMR2(616)로 전이되고 QMR3(617)는 비어 있게 되어 새로운 메세지를 저장할 수 있는 상태로 된다.
이러한 동작은 대기열 처리기(Queue handler)(600)에서 인터럽트 버스 클록(INT_CLK)에 의해 한 주기의 클록에 수행한다.
프로세서가 QMR0(614)의 내용을 계속 읽어가면 레지스터의 내용은 또 다시 전이가 이루어지고 Q_VALID(614∼617)의 값은 빈 곳에 0을 기입하여 대기열이 비어 있음을 알리게 된다.
QMR0(614)의 값을 읽어 갈 때 새로운 인터럽트의 도착으로 인한 인터럽트 메세지의 저장과 인터럽트 메세지를 상위 모듈 프로세서가 읽어가는 동작이 근접하여 발생하는 경우와 프로세서 클록과 인터럽트 버스 클록간의 비동기로 인한 부정합(Miss match)현상이 일어나 정확한 동작을 위해서는 별도의 로직을 필요로 한다.
즉 프로세서가 QMR0(614)의 내용을 읽어가면 대기열(614∼617)의 내용을 전이시켜야 하는데, 이때 프로세서의 클록에 의한 억세스와 인터럽트 버스클록간의 비동기로 인한 전이시점을 포착해야 한다.
따라서, 대기열 처리기(600)에서 대기열(614∼617)의 동작은 인터럽트 버스 클록을 기준으로 하고 프로세서의 읽기 동작이 발생하였음을 알리는 펄스를 발생시키고 이 펄스를 이용하여 대기열의 선입선출(FIFO)동작을 인터럽트 버스 클록에 동기시켜 구동하는 것이다.
또한 이러한 대기열의 선입선출동작과 새로운 메세지의 동작에서 두 동작이 겹쳐지지 않도록 하기 위한 인터럽트 처리기의 대기열 제어기(200)는 제3도에 도시되어 있다.
인터럽트 처리기에서 인터럽트 메세지를 모두 받게 되는 대기열 제어기(200)의 상태 또는 DUMMY1 상태에서 전송의 오류가 없는 경우에 Qup_date 신호를 발생시켜 프로세서가 대기열의 데이타를 읽어감을 방지하는 신호를 발생시킨다.
또한 ACK 상태에서 Q_LOCK 신호를 구동하여 대기열의 내용을 추가할 수 있도록 한다.
따라서 프로세서가 대기열의 내용을 읽어감으로 인한 대기열의 전이동작은 Qup_date' 신호와 Q_LOCK신호가 어서트(Assert)되지 않은 상태에서만 가능하도록 한다.
즉, 4개의 메세지 대기열(614∼617)의 내용에 추가하는 것은 인터럽트 처리기(12, 22)의 대기열 제어기(200)가 우선권을 갖고 수행한다.
프로세서가 대기열의 내용을 읽어감으로서 발생한 대기열 메세지의 이동은 프로세서의 QMR0(614)의 읽기와 대기열 제어기(200)의 대기열의 추가 동작간에 발생하는 비동기로 인한 차이를 대기열 제어기(200)의 상태 DUMMY1 신호와 ACK 상태에서 방지하고 프로세서가 읽기를 시작했음을 제2SR플립플롭(230)에 래치하였다가 인터럽트 처리기의 대기열 추가 동작이 끝나는 시점에서 발생하도록 한다.
제3도에서 프로세서가 QMR0(614)의 읽기를 시도한다는 QMR0_SEL신호를 입력으로 제1, 2 SR플립플롭(220, 230)을 사용하여 래치한다. 래치된 신호는 QMR0_Fetch 라는 인터럽트 버스 클록에 동기된 펄스 생성을 위한 제1 SR플립플롭(220)에 입력이 된다.
상기 QMR0_Fetch 신호가 유효한 값(1)을 갖기 위해서는 입력 조건에서 현재의 억세스가 읽기이고 QMR0_F_EN 신호가 유효하지 않을 때, 또한 오동작을 방지하기 위하여 QMR0_SEL신호가 유효할 때 인터럽트 버스 클록(INT_CLK)에 의해 QMR0_Fetch신호를 1로 어서트 하고, QMR0_Fetch신호는 다음 클록에서 제1 SR플립플롭(220)의 리셋(R) 단자에 입력이 되어 QMR0_Fetch신호와 QMR0_F_EN신호를 모두 클리어시킨다.
따라서 QMR0_Fetch신호는 한 클록 주기만 발생하는 스텝 펄스의 파형이 된다.
인터럽트 처리기의 대기열 처리기(600)는 QMR0_Fetch신호와 Q_LOCK신호와 Q_VALID신호(610∼613)를 조합하여 새로이 추가되거나 대기열의 이동이 발생한 대기열을 생성하게 된다.
따라서 QMR0(614)를 읽어가는 동작과 대기열에 메세지를 추가하는 동작이 겹치는 경우 QMR0_Fetch신호가 참값(1)을 갖기 위해서는 Qup_date 신호가 없는 동안의 1주기를 필요로 하기 때문에 QMR0_Fetch신호는 항상 인터럽트 처리기에 의한 대기열의 추가 신호인 Q_LOCK신호의 다음 주기에 유효한 값을 갖게 된다.
제4도는 본 발명에 의한 동기화된 신호의 파형을 도시하고 있다.
도시된 바와같이, 프로세서의 QMR0 신호를 읽어가는 동작과 인터럽트 처리기의 Qup_date신호를 도시한 것으로서, 프로세서의 QMR0를 읽어가는 동작이 대기열의 내용을 추가하는 상태의 흐름과 비동기적으로 겹쳐지지 않는 구간은 문제가 되지 않으나 두개의 사건이 근접한 경우 비동기 처리의 신호 흐름을 상세히 설명하는 것이다.
즉, 프로세서의 QMR0(614) 신호인 QMR0_SEL신호가 발생하면 이 신호는 인터럽트 버스 클록(INT_CLK)에 의하여 래치된다.
이때부터 인터럽트 버스 클록에 동기된 QMR0_F_EN신호가 생성되며, 이 신호를 근간으로 Qup_date신호가 없는 주기에 인터럽트 버스 클록에 동기되어 래치된 QMR0_Fetch신호가 1주기 동안 유지하게 된다.
따라서 QMR0(614)의 내용을 프로세서가 읽어가는 동작과 대기열에 새로운 메세지를 추가하려는 동작이 충돌하는 경우 항상 새로운 대기열의 추가가 먼저 발생한 후 다음 주기에 프로세서가 QMR0(614)를 읽어감으로 인한 대기열의 이동이 발생하게 함으로써 충돌을 방지하고 충돌이 없는 경우에는 인터럽트 버스 클록과 비동기인 QMR0_SEL신호를 인터럽트 버스 클록에 따라 래치하여 동기화된 펄스를 생성하여 대기열의 동작을 인터럽트 버스 클록에 동기시킨다.
이상과 같은 본 발명은 인터럽트 처리기에서 Q-형의 인터럽트 메세지 처리 속도를 향상시키기 위해 인터럽트 대기열을 두어 미처 처리되지 못한 메세지를 대기열에 저장시킴으로서 인터럽트 요청기에게 사용중 응답을 주지 않고 전송을 완료하게 함으로서 인터럽트 처리기의 처리속도를 증가시키기 위한 것이다.
여기서, 인터럽트 대기열을 갖지 못한 인터럽트 처리기의 경우는 메세지를 수신한 경우, 인터럽트 메시지를 상위 모듈이 가져가지 않을 경우, 새로운 메세지가 도착한 경우로서, 사용중 응답을 인터럽트 요청기에 보냄으로써 인터럽트 요청기로 하여금 재시도를 하게 한다.
이렇게 함으로서 HiPi+버스의 사용 빈도수가 증가하게 되고 메세지 전송시간의 증대를 가져온다.
본 발명은 이와같은 전송의 재시도에 의한 시간소요를 줄이기 위해 인터럽트 대기열을 둠으로써 미처 처리되지 못한 인터럽트 메세지를 선입선출 대기열에 저장함으로서 인터럽트 요청기가 낭비적인 재시도를 하지 않고서도 전송률을 향상시킬 수가 있는 것이다.

Claims (4)

  1. HiPi+버스상에서 인터럽트 버스를 사용하여 모듈간의 메세지 전송을 전담하는 인터럽트 요청기와, 상기 HiPi+버스를 프로세서에서 전송된 제어신호에 따라 구동 및 중재하는 버스 구동 및 중재기와 상기 버스 구동 및 중재기로 부터 전송된 인터럽트 메세지를 임시 저장하는 임시 저장 레지스터(TMR)와 프로세서로 부터 전송된 프로세서 데이타를 제어하고 그 상태를 임시 저장하는 제어 및 상태 레지스터로 구성된 인터럽트 처리기를 포함하는 시스템에 있어서, 상기 인터럽트 처리기는 상기 임시 저장 레지스터에서 전송된 인터럽트 메세지를 상기 인터럽트 버스로 부터 전송된 한 주기의 인터럽트 버스 클록(INT_CLK) 동안 대기열의 상태와 프로세서의 읽기 동작에 따라 이동시키는 대기열 처리수단과, 상기 대기열 처리수단에서 대기열의 채워진 상태에 따라 대기열의 억세스 동작의 충돌을 방지하기 위한 신호를 상기 인터럽트 버스 클록(INT_CLK)에 동기시켜 발생하는 대기열 제어수단을 포함하여 구성된 것을 특징으로 하는 HiPi+ 버스에서 인터럽트 처리기의 대기열 동기 제어회로.
  2. 제1항에 있어서, 상기 대기열 처리수단은 다수개의 QMR(Queuing Message Resister)들로 구성되는 것을 특징으로 하는 HiPi+버스에서 인터럽트 처리기의 대기열 동기 제어회로.
  3. 제1항에 있어서, 상기 대기열 제어수단은 프로세서 클록에 동기된 W/R*신호, QMR0_F_EN 신호, Qup_date 신호 그리고 QMR0_SEL 신호를 논리곱하는 논리곱 소자와, 프로세서의 억세스가 읽기이고, QMR0_F_EN 신호가 유효하고, Qup_date신호가 유효하지 않고, QMR0_SEL신호가 유효할 때 상기 논리곱 소자에 의해 논리곱된 결과와 궤환된 QMR0_Fetch신호를 래치하여 상기 인터럽트 버스 클록(INT_CLK)에 따라 QMR0_Fetch 신호를 상기 대기열 처리수단에 입력하여 대기열의 메세지를 전이시키는 제1플립플롭과, 인터럽트 대기열을 읽고 있음을 표시하는 프로세서 클록에 동기된 신호(QMR0_SEL)와 상기 제1플립플롭에서 출력된 QMR0_Fetch 신호를 래치하여 상기 인터럽트 버스 클록(INT_CLK)에 따라 QMR0_F_EN신호를 상기 대기열 처리수단에 입력하는 제2플립플롭으로 구성된 것을 특징으로 하는 HiPi+버스에서 인터럽트 처리기의 대기열 동기 제어회로.
  4. 제3항에 있어서, 상기 제1, 제2 플립플롭은 QMR0_Fetch신호에 의해 '0'으로 세트되어 한 주기의 인터럽트 버스 클록 동안 스텝 펄스를 생성하는 것을 특징으로 하는 HiPi+버스에서 인터럽트 처리기의 대기열 동기 제어회로.
KR1019950054526A 1995-12-22 1995-12-22 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로 KR0162768B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950054526A KR0162768B1 (ko) 1995-12-22 1995-12-22 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950054526A KR0162768B1 (ko) 1995-12-22 1995-12-22 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로

Publications (2)

Publication Number Publication Date
KR970049675A KR970049675A (ko) 1997-07-29
KR0162768B1 true KR0162768B1 (ko) 1999-01-15

Family

ID=19443119

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950054526A KR0162768B1 (ko) 1995-12-22 1995-12-22 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로

Country Status (1)

Country Link
KR (1) KR0162768B1 (ko)

Also Published As

Publication number Publication date
KR970049675A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
US5365485A (en) Fifo with fast retransmit mode
US5448715A (en) Dual clock domain interface between CPU and memory bus
EP1745384B1 (en) Circuit with asynchronous/synchronous interface
US6161168A (en) Shared memory system
US5602878A (en) Method of delivering stable data across an asynchronous interface
US5502822A (en) Asynchronous data transmission system
JPH03175848A (ja) 2経路データ転送装置
US7197582B2 (en) Low latency FIFO circuit for mixed clock systems
JP2007525766A (ja) マルチポートメモリシステムにおける衝突検出
JPH0713926A (ja) バッファ制御回路及びその操作方法
EP0242879B1 (en) Data processor with wait control allowing high speed access
WO2007029168A2 (en) Asynchronous ripple pipeline
JP5230887B2 (ja) クロックフォワードシステムi/oのための効率的なクロック開始および停止装置
JPH06259225A (ja) データ転送同期装置
US20060047754A1 (en) Mailbox interface between processors
US5898895A (en) System and method for controlling data transmission rates between circuits in different clock domains via selectable acknowledge signal timing
US4240138A (en) System for direct access to a memory associated with a microprocessor
US5550780A (en) Two cycle asynchronous FIFO queue
US6286072B1 (en) System and method for synchronizing data communication between asynchronous buses
US4580243A (en) Circuit for duplex synchronization of asynchronous signals
KR0162768B1 (ko) 하이파이 플러스 버스에서 인터럽트 처리기의 대기열 동기 제어회로
US7027542B1 (en) Apparatus and method for providing data transfer between two digital circuits with different clock domains and for solving metastability problems
US5584028A (en) Method and device for processing multiple, asynchronous interrupt signals
US5249154A (en) Data access controller and method
EP1242897B1 (en) Method and apparatus for differential strobing in a communications bus

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070831

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee