KR920002388Y1 - Vector address generating circuit for interrupt processing - Google Patents

Vector address generating circuit for interrupt processing Download PDF

Info

Publication number
KR920002388Y1
KR920002388Y1 KR2019880020118U KR880020118U KR920002388Y1 KR 920002388 Y1 KR920002388 Y1 KR 920002388Y1 KR 2019880020118 U KR2019880020118 U KR 2019880020118U KR 880020118 U KR880020118 U KR 880020118U KR 920002388 Y1 KR920002388 Y1 KR 920002388Y1
Authority
KR
South Korea
Prior art keywords
interrupt
address
signal
cpu
buffer
Prior art date
Application number
KR2019880020118U
Other languages
Korean (ko)
Other versions
KR900012940U (en
Inventor
이상섭
Original Assignee
삼성전자 주식회사
안시환
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사, 안시환 filed Critical 삼성전자 주식회사
Priority to KR2019880020118U priority Critical patent/KR920002388Y1/en
Publication of KR900012940U publication Critical patent/KR900012940U/en
Application granted granted Critical
Publication of KR920002388Y1 publication Critical patent/KR920002388Y1/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/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)
  • Bus Control (AREA)

Abstract

내용 없음.No content.

Description

인터럽트 처리시 벡터 어드레스 발생회로Vector address generation circuit during interrupt processing

제 1 도는 본 고안의 회로도.1 is a circuit diagram of the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols on main parts of drawing

U1, U2 : 낸드게이트 U3 : 디코우더U1, U2: NAND gate U3: Decoder

U4 : D플립플롭 U5, U6 : 제1, 제2버퍼U4: D flip-flop U5, U6: 1st, 2nd buffer

U7 : 인코우더 U8 : 오아게이트U7: Encoder U8: Oagate

U9 : 앤드게이트 U10 : 인버터U9: Endgate U10: Inverter

본 고안은 마이크로 프로세서(microprocessor)의 벡터 어드레스(vector address)발생회로에 관한 것으로, 특히 벡터 어드레스 처리를 갖고 있지 않는 8비트 프로세서와 외부 디바이스(device)사이의 인터럽트(interrupt)처리를 하기위한 벡터 어드레스 발생회로에 관한 것이다.The present invention relates to a vector address generating circuit of a microprocessor, and in particular, a vector address for interrupt processing between an 8-bit processor and an external device that does not have vector address processing. It relates to a generation circuit.

일반적으로 사용되는 8비트 중앙처리 장치(Central Processor Unit : 이하 CPU라 칭함)로서 미합중국 Rockwell사의 R650X 시리즈의 하나인 6502 CPU의 경우 외부 디바이스의 인터럽트 처리를 위한 인터럽트 요구 단자가 있으나, Z8085계열과는 달리 벡터 어드레스 발생회로가 없었다. 이에 따라 여러개의 인터럽트가 걸릴 경우 그 성능이 떨어지는 경향이 있었다.The commonly used 8-bit central processor unit (hereinafter referred to as CPU) is an interrupt request terminal for interrupt processing of external devices in the case of the 6502 CPU, which is one of Rockwell's R650X series. However, unlike the Z8085 series, there was no vector address generation circuit. As a result, the performance tended to decrease when multiple interrupts were taken.

상기 8비트 CPU의 경우 인터럽트 처리를 위하여 다수의 외부 디바이스를 와이어드-오아(Wired-OR)형식으로 CPU의 인터럽트 요구단자에 연결한다.In the case of the 8-bit CPU, the interrupt request terminal of the CPU in a wired-OR format for a plurality of external devices for interrupt processing. Connect to

상기와 같은 상태에서 상기 6502 CPU가 외부 디바이스로 부터 인터럽트를 받으면 CPU는 서비스(service)를 위해서 그 인터럽터 처리를 위한 어드레스로 점프(jump)하는 것이 아니고, 지정된 어드레스인 "FFFE"(16진수값)와 "FFFF"(16진수값)로 순차적으로 점프하여 메모리(memory)에서 상기 어드레스에 있는 2바이트(byte)의 데이타(data)를 리드(read)하여 리드한 데이타 값의 어드레스로 점프한다.In the above state, when the 6502 CPU receives an interrupt from an external device, the CPU does not jump to the address for the interrupt processing for the service, but the designated address "FFFE" (hexadecimal value). And " FFFF " (hexadecimal value) are sequentially jumped to read the two bytes of data at the address from the memory and jump to the address of the read data value.

즉, "FFFE" 어드레스에 있는 1바이트의 데이타를 먼저 하나의 리드사이클에서 리드하고 "FFFF" 어드레스에 있는 1바이트의 데이타를 다음의 리드 사이클에서 리드한후, 상기 리드한 2바이트의 데이타 값에 해당하는 16비트의 어드레스로 점프하는 것이다.That is, one byte of data at the " FFFE " address is first read in one read cycle, and one byte of data at the " FFFF " address is read in the next read cycle. Jump to the corresponding 16-bit address.

이는 6502 CPU의 데이타 버스는 8비트인데 비하여 어드레스 버스는 16비트이기 때문이다.This is because the data bus of the 6502 CPU is 8 bits, whereas the address bus is 16 bits.

그리고 상기 어드레스로 점프하여 CPU에 인터럽트를 요청한 디바이스를 소프트웨어(software)에 의해서 폴링(polling)하여 인터럽트 처리를 하였다.The device that jumped to the address and requested an interrupt to the CPU was polled by software to interrupt processing.

상기한 바와 같이 벡터 어드레스 처리를 갖고 있지 않는 8비트 프로세서에서는 외부 디바이스로 부터 인터럽트 요구 발생시 소프트웨어에 의한 폴링방식으로 처리함에 따라서 본 고안의 목적은 벡터 어드레스 처리를 갖고 있지 않은 프로세서와 외부 디바이스 사이의 인터럽트 처리를 위한 벡터 어드레스 발생회로를 추가하여 처리속도를 향상시킬수 있도록 하는 회로를 제공함에 있다.As described above, in an 8-bit processor that does not have vector address processing, an interrupt is generated by software when an interrupt request is generated from an external device. The present invention provides a circuit for improving the processing speed by adding a vector address generating circuit for processing.

이하 본 고안을 도면을 참조하여 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.

제 2 도는 본 고안의 회로도로서, 외부디바이스(도시하지 않았음)로 부터 발생되는 인터럽트 신호를 CPU(도시하지 않았음)클럭 신호에 의해 래치(latch)하는 래치(D플립플롭)(U4)와, 상기 래치(U4)에 래치된 인터럽트 신호를 입력하여 해당 인터럽트 신호에 대응하여 설정된 우선순위에 따라 3비트의 어드레스를 발생하는 동시에 상기 CPU에 인터럽트 요구신호를 인가하는 인코우더(U7)와, 상기 인코우더(U7)의 인터럽트 요구에 응답하여 상기 CPU가 어드레스 버스상에 출력하는 인터럽트 점프 어드레스 중의 제1, 제 2 인터럽트 점프 어드레스와 상기 클럭신호에 의해 인에이블되어 제3 인터럽트 점프어드레스를 디코우딩하여 인터럽트 수행 신호를 발생하는 디코우더(U3)와 인터럽트가 없을 시 상기 CPU의 어드레스 버스상의 어드레스를 시스템어드레스 버스에 실어주기 위한 제 1 버퍼(U5)와, 인터럽트 발생시 다수의 스위치가 제공하는 어드레스와 상기 인코우더(U7)에서 발생되는 3비트의 어드레스와 상기 CPU가 어드레스 버스상에 출력하는 인터럽트 점프 어드레스 중의 제 4 인터럽트 점프 어드레스를 벡터 어드레스로서 시스템 어드레스 버스에 실어주기 위한 제 2 버퍼(U6)와, 상기 인코우더(U7)의 인터럽트 요구신호와 상기 디코우더(U3)의 인터럽트 수행신호를 논리합하여 상기 제 2 버퍼(U6)의 출력인에이블 단자에 인가하는 오아게이트(U8)와, 상기 오아게이트(U8)의 출력을 반전시켜 상기 제 1 버퍼(U5)의 출력 인에이블 단자에 인가하는 인버터(U10)로 구성되어 인터럽트가 없을시에는 상기 제 1 버퍼(U5)를 인에이블 시키며 인터럽트 발생시에는 상기 제 2 버퍼(U6)를 인에이블 시키는 제어수단과, 인터럽트 발생시 상기 CPU의 클럭신호와 상기 디코우더(U3)의 인터럽트 수행신호를 논리곱하여 상기 래치(U4)의 클럭 단자에 인가하여 인터럽트신호 래치 동작을 차단하는 앤드게이트(U9)로 구성된다.2 is a circuit diagram of the present invention, and a latch (D flip-flop) U4 for latching an interrupt signal generated from an external device (not shown) by a CPU (not shown) clock signal. An encoder (U7) for inputting an interrupt signal latched to the latch (U4) to generate an address of 3 bits according to a priority set corresponding to the interrupt signal, and to apply an interrupt request signal to the CPU; In response to the interrupt request of the encoder U7, the first and second interrupt jump addresses of the interrupt jump addresses output by the CPU on the address bus and the clock signal are enabled to decode the third interrupt jump address. Decoder U3, which generates the interrupt execution signal by coding, and the address on the address bus of the CPU are loaded on the system address bus when there is no interruption. A fourth buffer U5 for giving, an address provided by a plurality of switches when an interrupt occurs, a 3-bit address generated by the encoder U7, and an interrupt jump address output by the CPU on an address bus; A second buffer U6 for loading an interrupt jump address as a vector address on a system address bus, an interrupt request signal of the encoder U7, and an interrupt execution signal of the decoder U3; Output enable terminal of 2 buffer (U6) An output enable terminal of the first buffer U5 by inverting the output of the oragate U8 and the output of the oracle U8 Inverter (U10) to apply to the control unit to enable the first buffer (U5) when there is no interruption, and to enable the second buffer (U6) when an interrupt occurs, and the clock of the CPU when an interrupt occurs signal And an AND gate U9 that logically multiplies the interrupt performing signal of the decoder U3 by applying it to the clock terminal of the latch U4 to block the interrupt signal latching operation.

상술한 구성에 의거하여 본 고안을 첨부한 제 1 도를 참조하여 상세히 설명한다.Based on the above-described configuration will be described in detail with reference to FIG.

우선 제 1 도에서 도시하지 않은 CPU의 어드레스 버스상의 16 비트의 어드레스(AB0-AB15)는 제 1 버퍼(U5)의 입력단자(A0-A15)에 인가되고 있다.First, the 16-bit address AB0-AB15 on the address bus of the CPU (not shown in FIG. 1) is applied to the input terminals A0-A15 of the first buffer U5.

이와 동시에 상기 어드레스(AB0-AB15)중 최하위 1비트의 어드레스(AB0)는 제 2 버퍼(U6)의 입력단자(A0)에 인가되며, 3비트의 어드레스(AB1-AB3)는 디코우더(U3)의 입력단자(A-C)에 인가되며, 4비트의 어드레스(AB4-AB7)는 낸드게이트(U2)의 입력단자에 인가되며, 상위 8비트의 어드레스(AB8-AB15)는 낸드게이트(U1)의 입력단자에 인가되고 있다.At the same time, the address AB0 of the least significant bit of the addresses AB0-AB15 is applied to the input terminal A0 of the second buffer U6, and the address of the 3-bits AB1-AB3 is the decoder U3. Is applied to the input terminal (AC) of < RTI ID = 0.0 >), < / RTI > the 4-bit address AB4-AB7 is applied to the input terminal of the NAND gate U2, and the upper eight bits of the address AB8-AB15 are It is applied to the input terminal.

또한 상기 CPU의 클럭신호가 상기 디코우더(U3)의 인에이블단자(E)와 앤드게이트(U9)의 일입력 단자에 인가되고 있다.In addition, the clock signal of the CPU Is applied to the enable terminal E of the decoder U3 and one input terminal of the AND gate U9.

그리고 상기 디코우더(U3)는 미합중국 MOTOROLA사의 74LS137IC를 사용할수 있다.In addition, the decoder U3 may use 74LS137IC of MOTOROLA of the United States of America.

여기서 상기 CPU는 전술한 바와 같이 인터럽트에 대한 벡터 어드레스 처리를 가지지 않는 8비트 프로세서이며 인터럽트 요구단자에 인터럽트 요구신호가 인가되면 인터럽트 처리를 위하여 인터럽트 점프 어드레스인 "FFFE"와 "FFFF"를 순차적으로 어드레스 버스상에 출력한다.Here, the CPU is an 8-bit processor having no vector address processing for interrupts as described above, and an interrupt request terminal. When the interrupt request signal is applied, the interrupt jump addresses " FFFE " and " FFFF " are sequentially output on the address bus for interrupt processing.

즉 하나의 리드 사이클에서 "FFFE"를 출력한 후 다음의 리드 사이클에서 "FFFF"를 출력하는 것이다.That is, it outputs "FFFE" in one read cycle and then "FFFF" in the next read cycle.

또한 상기 낸드게이트(U1)는 입력되는 어드레스(AB8-AB15)가 모두 논리"하이" 일때 즉 "FF" 일때 논리 "로우"의 신호를 발생하여 디코우더(U3)의 입력단자(G2)를 인에이블 시키며, 상기 낸드게이트(U2)는 입력되는 어드레스(AB4-AB7)가 모두 논리 "하이" 일때 즉 "F" 일때 논리 "로우"의 신호를 발생하여 디코우더(U3)의 입력단자(G1)을 인에이블 시킨다.In addition, the NAND gate U1 generates a logic "low" signal when all of the input addresses AB8 to AB15 are logic "high", that is, "FF", to thereby input the input terminal G2 of the decoder U3. The NAND gate U2 generates a logic "low" signal when all of the input addresses AB4-AB7 are logic "high", that is, "F", and the input terminal of the decoder U3 ( Enable G1).

이에 따라 상기 디코우더(U3)는 CPU의 어드레스(AB0-AB15)가 "FFFE" "FFFF" 일때 CPU의 클럭신호의 논리 "하이"인 기간동안 인에이블 되어 입력단자(A-C)에 입력되는 모두 논리 "하이"인 어드레스(AB1-AB3)를 디코우딩 하여 출력단자(Y8)로 논리 "로우"의 신호를 인터럽트 수행을 나타내는 인터럽트 수행신호로서 출력한다.Accordingly, the decoder U3 generates a clock signal of the CPU when the address AB0-AB15 of the CPU is "FFFE" or "FFFF". The logic "high" period is enabled during the logic "high" period, and all the logic "high" addresses (AB1-AB3) input to the input terminal (AC) are decoded to interrupt the logic "low" signal to the output terminal (Y8). Output as an interrupt execution signal indicating performance.

그리고 상기 디코우더(U3)는 CPU의 어드레스(AB0-AB15)가 "FFFE" 또는 "FFFF"가 아닐 경우에는 출력단자(Y8)로 논리 "하이"의 신호를 출력한다.The decoder U3 outputs a logic "high" signal to the output terminal Y8 when the address AB0-AB15 of the CPU is not "FFFE" or "FFFF".

따라서 상기 디코우더(U3)는 인터럽트 발생시에는 논리 "로우"의 인터럽트 수행 신호를 발생하며 인터럽트가 없을시에는 논리 "하이"의 신호를 발생하는 것이다.Therefore, the decoder U3 generates an interrupt performing signal of logic "low" when an interrupt occurs and generates a logic "high" signal when there is no interrupt.

상기 디코우더(U3)의 출력 논리 "로우"의 인터럽트 수행신호는 앤드게이트(U9)에 입력되는 동시에 오아게이트(U8)에 입력된다.The interrupt execution signal of the output logic " low " of the decoder U3 is input to the AND gate U9 and to the or gate U8.

상기 앤드게이트(U9)는 상기 CPU의 클럭신호와 상기 디코우더 (U3)의 출력신호를 논리곱하여 D플립플롭(U4)의 클럭단자(CK)에 인가한다.The AND gate U9 is a clock signal of the CPU And the output signal of the decoder U3 are ANDed and applied to the clock terminal CK of the D flip-flop U4.

이에 따라 상기 D플립플롭(U4)은 상기 디코우더(U3)의 출력신호가 논리 "하이"일경우 즉, 인터럽트가 없을시에는 상기 CPU의 클럭신호의 상승 에지(rising edge)에서 입력단자(D0-D7)에 입력되는 신호를 래치하며, 상기 디코우더(U3)의 출력신호가 논리 "로우"의 인터럽트 수행신호일 경우 즉, 인터럽트 발생시에는 상기 앤드게이트(U9)의 출력이 논리"로우"가 되므로 상기 어드레스(AB0-AB15)가 "FFFE" 또는 "FFFF"인 기간동안에는 래치동작을 하지 않는다.Accordingly, the D flip-flop U4 is a clock signal of the CPU when the output signal of the decoder U3 is logic " high " Latches a signal input to the input terminals D0-D7 at a rising edge of the input signal, and when the output signal of the decoder U3 is an interrupt execution signal of logic " low " Since the output of the gate U9 becomes logic "low", the latch operation is not performed during the period in which the addresses AB0-AB15 are "FFFE" or "FFFF".

한편 상기 D플립플롭(U4)의 입력단자(D0-D7)에는 각각 외부 디바이스로 부터 발생되는 인터럽트 신호(INT0-INT7)가 인가되도록 되어 있다.On the other hand, an interrupt signal INT0-INT7 generated from an external device is applied to the input terminals D0-D7 of the D flip-flop U4, respectively.

상기와 같은 상태에서 지금 상기 외부 디바이스로 부터 인터럽트가 발생되지 않은 상태라고 가정하면, 인터럽트 신호(INT0-INT7)는 모두 논리 "하이" 상태로 D플립플롭(U4)에 인가되어 CPU의 클럭신호의 상승에지에서 상기 D플립플롭(U4)에 래치된다.Assuming that no interrupt is generated from the external device in the above state, the interrupt signals INT0-INT7 are all applied to the D flip-flop U4 in a logic " high " state to provide a clock signal of the CPU. The latch is latched to the D flip-flop U4 at the rising edge of.

그러므로 상기 D플립플롭(U4)의 래치된 신호를 입력단자(I0-I7)에 입력하여 인코우딩하는 인코우더(U7)의 출력단자(GS)에서는 논리 "하이" 의 신호가 출력되어 CPU의 인터럽트 요구단자에 인가된다.Therefore, the logic "high" signal is output from the output terminal GS of the encoder U7 which inputs and encodes the latched signal of the D flip-flop U4 to the input terminals I0-I7. Interrupt request terminal Is applied to.

이에따라 상기 CPU는 계속 정상동작을 하게 된다.As a result, the CPU continues to operate normally.

여기서 상기 인코우더(U7)는 미합중국 MOTOROLA사의 우선 순위 인코우더인 74LS148 IC를 사용할수 있다.Here, the encoder U7 may use 74LS148 IC, which is a priority encoder of MOTOROLA of the United States.

또한 이때 상기 인코우더(U7)의 출력단자(GS)에서 출력되는 논리 "하이"의 신호는 오아게이트(U8)를 거쳐 제 2 버퍼(U6)의 출력 인에이블 단자에 인가되는 동시에 인버터(U10)에 의해 반전되어 제 1 버퍼(U5)의 출력 인에이블 단자에 인가된다.At this time, the logic "high" signal output from the output terminal GS of the encoder U7 passes through the oragate U8 and output output terminal of the second buffer U6. Is applied to the inverter and is inverted by the inverter U10 to enable the output of the first buffer U5. Is applied to.

그러므로 상기 제 1 버퍼(U5)는 인에이블 되고 상기 제 2 버퍼(U6)는 디스에이블된다.Therefore, the first buffer U5 is enabled and the second buffer U6 is disabled.

따라서 어드레스 버스상에 어드레스(AB0-AB15)는 제 1 버퍼(U5)를 통하여 시스템의 어드레스 버스상에 어드레스(B0-B15)로 실림으로써 상기 CPU가 상기 시스템을 제어하게 된다.Therefore, the address AB0-AB15 on the address bus is loaded as the address B0-B15 on the address bus of the system through the first buffer U5 so that the CPU controls the system.

여기서 상기 CPU의 어드레스 버스와 상기 시스템의 어드레스 버스는 실제로는 동일한 어드레스 라인의 버스이며 단지 설명의 편의상 제 1, 제 2 버퍼(U5, U6)를 기준으로 하여 구분한 것이다.Here, the address bus of the CPU and the address bus of the system are actually buses of the same address line, and are merely divided based on the first and second buffers U5 and U6 for convenience of description.

한편 상기와 같이 정상동작을 하는 중에 지금 외부 디바이스중 어느 하나에서 인터럽트가 발생하였다고 가정하면, 인터럽트신호(INT0-INT7)중 상기 인터럽트가 발생한 외부 디바이스에 해당하는 인터럽트 신호가 논리 "로우"로 D플립플롭(U4)에 래치된다.On the other hand, assuming that an interrupt has occurred in any one of the external devices now during normal operation as described above, the interrupt signal corresponding to the external device having the interrupt among the interrupt signals (INT0-INT7) is logically "low". Latched to flop U4.

그러면 인코우더(U7)는 상기 래치된 인터럽트 신호에 대응하여 설정된 우선순위에 따라 결정되는 3비트의 어드레스를 출력단자(A0-A2)를 통하여 제 2 버퍼(U6)의 입력단자(A0-A3)로 출력한다.Encoder U7 then inputs an address A0-A3 of the second buffer U6 via an output terminal A0-A2 that has a 3-bit address determined according to the priority set in response to the latched interrupt signal. )

또한 이와 동시에 상기 인코우더(U7)는 출력단자(GS)로 논리 "로우"의 인터럽트 요구신호를 발생하여 CPU의 인터럽트 요구단에 인가함으로써 상기 CPU에 인터럽트 요구를 한다.At the same time, the encoder U7 generates a logic " low " interrupt request signal to the output terminal GS, thereby interrupting the CPU. An interrupt request is made to the CPU.

따라서 상기 CPU는 상기 인터럽트 요구를 인지하고 그전까지 실행중이었던 현행 명령을 완료하고 인터럽트 처리를 위하여 전술한 바와 같이 어드레스 버스상에 어드레스(AB0-AB15)를 인터럽트 점프 어드레스인 "FFFE" 와 "FFFF"로 순차적으로 출력한다.Therefore, the CPU recognizes the interrupt request, completes the current instruction that has been executed before, and sets the addresses AB0-AB15 on the address bus as interrupt jump addresses "FFFE" and "FFFF" as described above for interrupt processing. Output sequentially.

이에 따라 디코우더(U3)는 상기 인터럽트 점프 어드레스중에 상위 8비트의 어드레스(AB8-AB15)로서 낸드게이트(U1)에 인가되는 제 1 인터럽트 점프어드레스와 4비트의 어드레스(AB4-AB7)로서 낸드게이트(U2)에 인가되는 제 2 인터럽트 점프 어드레스에 의해 CPU의 클럭신호(2)의 "하이" 기간에서 인에이블 되어 3비트의 어드레스(AB1-AB3)로서 입력단자(A-C)에 입력되는 제 3 인터럽트 점프 어드레스를 디코우딩 한다.Accordingly, the decoder U3 is the NAND as the first interrupt jump address applied to the NAND gate U1 as the upper 8 bit addresses AB8-AB15 and the 4-bit address AB4-AB7 among the interrupt jump addresses. The clock signal of the CPU is applied by the second interrupt jump address applied to the gate U2. The third interrupt jump address, which is enabled in the " high " period 2) and is input to the input terminal AC as the 3-bit address AB1-AB3, is decoded.

즉 상기 디코우더 (U3)는 전술한 바와 같이 어드레스 버스상의 어드레스(AB0-AB15)가 "FFFE"로 출력되는 하나의 리드 사이클 "FFFF"로 출력되는 다음의 리드 사이클에서 CPU의 클럭신호가 논리 "하이"과인 상태에서 출력단자(Y8)를 통하여 인터럽트 수행신호 논리 "로우"를 출력한다.That is, the decoder U3, as described above, has the clock signal of the CPU in the next read cycle outputted in one read cycle " FFFF " in which the addresses AB0-AB15 on the address bus are outputted in " FFFE ". Outputs the interrupt execution signal logic " low " through the output terminal Y8 with " high "

상기 디코우더(U3)의 출력 논리 "로우"의 인터럽트 수행신호에 의해 앤드게이트(U9)의 출력신호가 논리 "로우"로 됨으로써 이미 인터럽트를 요구한 외부 디바이스가 인터럽트 서비스를 받을때까지는 D플립플롭(U4)이 인터럽트 신호를 래치하는 것을 차단한다.The output signal of the AND gate U9 becomes the logic "low" by the interrupt execution signal of the output logic "low" of the decoder U3, so that the D flip until the external device which has already requested an interrupt receives the interrupt service. Flop U4 blocks latching the interrupt signal.

한편 상기 인코우더(U7)에서 출력되는 논리 "로우"의 인터럽트 요구 신호를 일입력단자에 입력하는 오이게이트(U8)는 상기 디코우더(U3)에서 출력되는 논리 "로우"의 인터럽트 수행신호를 타입력 단자에 입력하여 논리합함으로써 논리 "로우"의 신호를 출력한다.On the other hand, the Oi gate U8 which inputs the logic "low" interrupt request signal output from the encoder U7 to one input terminal is an interrupt performing signal of the logic "low" output from the decoder U3. Is inputted to the type force terminal and the logical sum is outputted.

상기 오아게이트(U8)의 출력 논리 "로우"의 신호는 제2버퍼(U6)의 출력 인에이블 단자에 인가되는 동시에 인버터(U10)에 의해 반전되어 제1버퍼(U5)의 출력인에이블 단자(OE)에 인가된다.The output logic "low" signal of the oragate U8 is an output enable terminal of the second buffer U6. Is applied to the inverter and is inverted by the inverter U10 to enable the output of the first buffer U5. Is applied to (OE).

그러므로 상기 제 1 버퍼(U5)는 디스에이블되고 상기 제 2 버퍼(U6)는 인에이블 된다.Therefore, the first buffer U5 is disabled and the second buffer U6 is enabled.

이때 상기 제 2 버퍼(U6)의 입력단자(A4-A15)에는 12개의 스위치(SW4-SW15)가 각각 연결되어 있으므로 상기 스위치(SW4-SW15)에 의해 논리 "로우"또는 논리 "하이"로 각각 설정된 상위 12비트의 어드레스가 입력되며, 입력단자(A1-A3)에는 상기 인코우더(U7)로 부터 입력되는 3비트의 어드레스가 입력되며, 입력단자(A0)에는 어드레스 버스상의 최하위 비트의 어드레스(AB0)로서 제 4 인터럽트 점프어드레스가 입력되고 있는 상태이다.At this time, since 12 switches SW4-SW15 are connected to the input terminals A4-A15 of the second buffer U6, the switches SW4-SW15 may be used as logic "low" or logic "high", respectively. The set high-order 12-bit address is input, and the input terminals A1-A3 are input with 3 bits of address input from the encoder U7, and the input terminal A0 is the address of the least significant bit on the address bus. The fourth interrupt jump address is input as (AB0).

그러므로 상기 제2버퍼(U6)의 출력단자(B0-B15)에서는 16비트의 벡터어드레스가 출력되어 시스템의 어드레스 버스상에 어드레스 (B0-B15)로 실어준다.Therefore, at the output terminals B0-B15 of the second buffer U6, a 16-bit vector address is output and carried as an address B0-B15 on the address bus of the system.

즉, CPU가 인터럽트 처리를 위하여 "FFFE"와 "FFFF"를 어드레스 버스상에 출력하면 상기 "FFFE"와 "FFFF"가 시스템의 어드레스 버스상에 실리는 것이 아니라 상기 스위치(SW4-SW15)에 의해 결정되는 12비트의 어드레스와 상기 인코우더(U7)에서 발생는 3비트의 어드레스와 CPU의 어드레스(AB0-AB15)중 최하위 비트의 어드레스(AB0)로 이루어진 16비트의 벡터 어드레스가 시스템의 어드레스 버스상에 실리는 것이다.That is, when the CPU outputs "FFFE" and "FFFF" on the address bus for interrupt processing, the "FFFE" and "FFFF" are not loaded on the address bus of the system, but by the switches SW4-SW15. The 16-bit vector address consisting of the 12-bit address determined and the 3-bit address and the least significant bit address AB0 of the CPU addresses AB0-AB15 is generated on the address bus of the system. It is on.

이때 상기 최하위 비트의 어드레스 (AB0)는 상기 CPU가 "FFFE"즉, 2진수로 "1111 1111 1111 1110"을 출력할때는 "0"이 되며 "FFFE" 즉 2진수로 "1111 1111 1111 1111"을 출력할때는 "1"이 된다.At this time, the address (AB0) of the least significant bit becomes "0" when the CPU outputs "FFFE", that is, "1111 1111 1111 1110" in binary, and outputs "1111 1111 1111 1111" in "FFFE", that is, binary. Is "1".

여기서 상기 제 2 버퍼(U6)에서 발생될 수 있는 16비트의 벡터어드레스는 하기 (표 1)과 같다.Here, the 16-bit vector address that may be generated in the second buffer U6 is shown in Table 1 below.

[표 1]TABLE 1

[XXX : 돈 캐어(don't care)][XXX: don't care]

상기 (표1)에서 상위 12비트의 어드레스인 "XXX"는 스위치(SW4-SW15)에 의해 선택 가능한 어드레스로서 메모리의 64K바이트 범위내의 어느곳에라도 인터럽트 서비스 루틴에 해당하는 어드레스를 설정할 수 있다.In Table 1, the upper 12-bit address "XXX" is an address selectable by the switch SW4-SW15 and can set an address corresponding to the interrupt service routine anywhere in the 64K byte range of the memory.

그리고 하위 4비트의 어드레스인 "0"-"F" 는 인터럽트 신호(INT0-INT7)에 따라 인코우더 (U7)에서 발생되는 3비트의 어드레스와 인터럽트 점프 어드레스인 "FFFE" 또는 "FFFE"의 최하위 비트의 어드레스에 의해 결정된다.The lower four bits of the address "0" to "F" correspond to the three-bit address generated by the encoder U7 and the interrupt jump address "FFFE" or "FFFE" according to the interrupt signal (INT0-INT7). It is determined by the address of the least significant bit.

그러므로 상기 벡터 어드레스는 상기 (표1)과 같이 인터럽트 요구가 발생한 외부 디바이스의 인터럽트 신호에 따라 각각 다르게 발생되는 것이며, 하나의 인터럽트 요구에 대하여 각각 다른 두개의 16비트의 벡터어드레스가 순차적으로 발생되는 것이다.Therefore, the vector address is generated differently according to the interrupt signal of the external device that generated the interrupt request as shown in Table 1, and two different 16-bit vector addresses are sequentially generated for one interrupt request. .

이에 따라 CPU는 메모리에서 상기 두개의 벡터 어드레스에 각각 저장되어 있게되는 1바이트 씩의 데이타를 순차로 리드하고 리드한 2바이트의 데이타 값에 해당하는 어드레스로 점프하여 인터럽트를 수행하는 것이다.Accordingly, the CPU sequentially reads one-byte data stored in the two vector addresses in memory, jumps to an address corresponding to the read two-byte data value, and performs an interrupt.

따라서 각각의 외부 디바이스로 부터 발생하는 인터럽트에 응답하여 각각 다른 벡터어드레스를 발생함으로써 인터럽트 발생시 CPU에서는 종래와 달리 인터럽트를 요청한 디바이스를 소프트웨어에 의해 폴링하지 않고 곧바로 인터럽트 요구가 발생한 외부 디바이스에 해당하는 인터럽트 처리 루틴을 수행할 수 있게된다.Therefore, different vector addresses are generated in response to the interrupts from each external device. When an interrupt occurs, the CPU does not poll the device requesting the interrupt by software, but instead handles the interrupt corresponding to the external device that immediately generated the interrupt request. You can run routines.

상술한 바와 같이 본 고안은 벡터드(vectored) 인터럽트 방식을 채용하지 않고 있는 CPU에 벡터드 인터럽트 방식을 채용함으로써 개개의 인터럽트에 대한 고유 인터럽트 처리 루틴을 갖게하여 외부 디바이스의 인터럽트에 대한 처리속도를 향상시킬수 있는 이점이 있다.As described above, the present invention adopts the vectored interrupt method to the CPU which does not employ the vectored interrupt method, thereby having a unique interrupt processing routine for each interrupt, thereby improving the processing speed of the interrupt of the external device. There is an advantage to this.

Claims (1)

벡터 어드레스 발생을 하지 않는 중앙처리장치에서 외부 디바이스의 인터럽트를 처리하기 위한 회로에 있어서, 상기 외부디바이스로 부터 발생되는 인터럽트 신호를 상기 중앙처리장치의 클럭신호에 의해 래치하는 래치(U4)와, 상기 래치(U4)에 래치된 인터럽트 신호를 입력하여 해당 인터럽트 신호에 대응하여 설정된 우선순위에 따라 결정되는 3비트의 어드레스를 발생하는 동시에 상기 중앙처리장치에 인터럽트 요구신호를 인가하는 인코우더(U7)의 인터럽트 요구에 응답하여 상기 중앙처리장치가 어드레스 버스상에 출력하는 인터럽트 점프 어드레스 중의 제1, 제2인터럽트 점프 어드레스와 상기 클럭신호에 의해 인에이블되어 제3인터럽트 점프어드레스를 디코우딩하여 인터럽트 수행 신호를 발생하는 디코우더(U3)와, 인터럽트가 없을시 상기 CPU의 어드레스 버스상의 어드레스를 시스템 버스에 실어주기 위한 제 1 버퍼(U5)와, 인터럽트 발생시 다수의 스위치가 제공하는 어드레스와 상기 인코우더(U7)에서 발생되는 3비트의 어드레스와 상기 중앙처리장치가 어드레스 버스상에 출력하는 인터럽트 점프 어드레스 점프 어드레스중의 제 4 인터럽트 점프 어드레스를 벡터 어드레스로서 시스템 버스에 실어주기 위한 제2버퍼(U6)와, 상기 인코우더(U7)의 인터럽트 요구신호와 상기 디코우더(U3)의 인터럽트 수행신호에 따라 인터럽트가 없을시에는 상기 제 1 버퍼를 인에이블 시키며 인터럽트 발생시에는 상기 제 2 버퍼(U6)의 인에이블 시키는 제어수단으로 구성하는 것을 특징으로 하는 인터럽트 처리시 벡터 어드레스 발생회로.A circuit for processing an interrupt of an external device in a central processing unit that does not generate a vector address, comprising: a latch U4 for latching an interrupt signal generated from the external device by a clock signal of the central processing unit; An encoder (U7) for inputting an interrupt signal latched to the latch (U4) to generate an address of 3 bits determined according to the priority set in correspondence with the corresponding interrupt signal, and simultaneously applying an interrupt request signal to the CPU. In response to the interrupt request, the CPU 1 is enabled by the first and second interrupt jump addresses and the clock signal of the interrupt jump addresses output on the address bus to decode the third interrupt jump address. Decoder U3 for generating a signal, and when there is no interruption, A first buffer U5 for loading an address on the dress bus to the system bus, an address provided by a plurality of switches when an interrupt occurs, a 3-bit address generated by the encoder U7, and an address of the CPU Interrupt jump address output on the bus A second buffer U6 for loading the fourth interrupt jump address in the jump address as a vector address to the system bus, the interrupt request signal of the encoder U7, and the decoder. Control means for enabling the first buffer when there is no interrupt according to the interrupt execution signal of the U3 and for enabling the second buffer U6 when an interrupt occurs. Address generation circuit.
KR2019880020118U 1988-12-06 1988-12-06 Vector address generating circuit for interrupt processing KR920002388Y1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR2019880020118U KR920002388Y1 (en) 1988-12-06 1988-12-06 Vector address generating circuit for interrupt processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR2019880020118U KR920002388Y1 (en) 1988-12-06 1988-12-06 Vector address generating circuit for interrupt processing

Publications (2)

Publication Number Publication Date
KR900012940U KR900012940U (en) 1990-07-04
KR920002388Y1 true KR920002388Y1 (en) 1992-04-10

Family

ID=19281908

Family Applications (1)

Application Number Title Priority Date Filing Date
KR2019880020118U KR920002388Y1 (en) 1988-12-06 1988-12-06 Vector address generating circuit for interrupt processing

Country Status (1)

Country Link
KR (1) KR920002388Y1 (en)

Also Published As

Publication number Publication date
KR900012940U (en) 1990-07-04

Similar Documents

Publication Publication Date Title
EP0169565B1 (en) Microprocessor compatible with any software represented by different types of instruction formats
US4749354A (en) Interactive audio teaching aid
US3810118A (en) Programmable matrix controller
US4302820A (en) Dual language programmable controller
US4307447A (en) Programmable controller
CA1139002A (en) Microprogrammed programmable controller
US4972365A (en) Executing downloaded user programs in a programmable controller
US3810104A (en) Programmable magnetics for a numerical control system
US4326249A (en) Interrupt system and method
US5042002A (en) Programmable controller with a directed sequencer
US4158226A (en) Programmable controller with limit detection
US5063498A (en) Data processing device with direct memory access function processed as an micro-code vectored interrupt
KR890015142A (en) Direct Memory Access Control
US4503511A (en) Computing system with multifunctional arithmetic logic unit in single integrated circuit
US4037204A (en) Microprocessor interrupt logic
KR920002388Y1 (en) Vector address generating circuit for interrupt processing
US5553301A (en) Programmable sequencher having internal components which are microprocessor read/write interfacable
KR900005547B1 (en) Sequence controller
GB1596115A (en) Programmable controller
KR930006516B1 (en) Dta processing system
US5274775A (en) Process control apparatus for executing program instructions
JPS6310445B2 (en)
JPS6126158A (en) Transmitting device of information
JPS59123933A (en) Address comparison system
KR810001761B1 (en) Starting circuit in computer

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
REGI Registration of establishment
FPAY Annual fee payment

Payment date: 19970327

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee