KR100249523B1 - An arbitor logic for the communication between cpu and multi i/o controllers - Google Patents
An arbitor logic for the communication between cpu and multi i/o controllers Download PDFInfo
- Publication number
- KR100249523B1 KR100249523B1 KR1019970040480A KR19970040480A KR100249523B1 KR 100249523 B1 KR100249523 B1 KR 100249523B1 KR 1019970040480 A KR1019970040480 A KR 1019970040480A KR 19970040480 A KR19970040480 A KR 19970040480A KR 100249523 B1 KR100249523 B1 KR 100249523B1
- Authority
- KR
- South Korea
- Prior art keywords
- input
- output
- counter
- clock
- bus
- Prior art date
Links
Images
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/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/20—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits characterised by logic function, e.g. AND, OR, NOR, NOT circuits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K3/00—Circuits for generating electric pulses; Monostable, bistable or multistable circuits
- H03K3/02—Generators characterised by the type of circuit or by the means used for producing pulses
- H03K3/027—Generators characterised by the type of circuit or by the means used for producing pulses by the use of logic circuits, with internal or external positive feedback
- H03K3/037—Bistable circuits
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Bus Control (AREA)
Abstract
본 발명은 메모리를 공유하는 여러 소자들에 대해서 메모리와 연결된 버스 사용을 중재해 주기 위한 조정 회로에 대한 것으로서,The present invention relates to an adjustment circuit for mediating the use of a bus connected to a memory for various devices sharing a memory.
전원을 이네이블 입력으로 하고, 클럭 B에 동기되어 있으며, Q0, Q1, Q2 3비트 출력을 가지는 카운터와; 클럭 A에 동기된 CPU와, 클럭 B에 동기된 4개의 입/출력 제어기로부터 나오는 버스 사용 요구 신호인 BRx와 상기 Q0, Q1, Q2를 입력으로 하며, 각 소자에 대한 버스 사용 승인 신호인 BG0 ,BG1, BG2, BG3, BG4를 각각 출력하는 5개의 논리 합 게이트와; 상기 각각의 논리 합 게이트로부터 나오는 BG0 ,BG1, BG2, BG3, BG4를 입력으로 하며, 출력이 상기 카운터의 CAI 단자와 연결된 논리 곱 게이트과; 상기 Q0와 Q2를 입력으로 하며, 출력이 상기 카운터의 클리어 단자와 연결된 논리 곱 게이트를 포함하여 구성된 것을 특징으로 한다.A counter having a power supply as an enable input, synchronized with clock B, and having a 3-bit output of Q0, Q1, and Q2; A bus use request signal from the CPU synchronized with clock A, four input / output controllers synchronized with clock B, and BRx and Q0, Q1, and Q2 are input. BG0, which is a bus use approval signal for each device, is input. Five logic sum gates respectively outputting BG1, BG2, BG3, and BG4; A logic product gate input to BG0, BG1, BG2, BG3, and BG4 from the respective logic sum gates, the output of which is connected to the CAI terminal of the counter; Q0 and Q2 are input, and an output includes a logic product gate connected to a clear terminal of the counter.
Description
본 발명은 중앙 처리 장치(Central Processing Unit: CPU)와 입/출력 제어기(Input/Output Controller)들간의 통신을 위한 조정 회로(Arbitor Circuit)에 관한 것으로서, 특히 하나의 시스템 내에서 CPU 및 여러개의 입/출력 소자가 버스 마스터(Bus Master)로서 동작하여 공통 메모리를 통하여 서로 데이터를 주고 받을 때, 상기 버스 마스터들간의 버스 중재를 위한 회로에 관한 것이다.The present invention relates to an Arbitor Circuit for communication between a Central Processing Unit (CPU) and Input / Output Controllers, in particular a CPU and multiple inputs within a system. The present invention relates to a circuit for bus arbitration between bus masters when an output element operates as a bus master to exchange data with each other through a common memory.
여러개의 프로세서와 메모리 및 입/출력 제어기를 포함하는 다중 처리 시스템에 있어서, 각 프로세서와 입/출력 제어기는 공통의 메모리를 이용하여 데이터를 주고 받는다.In a multiple processing system including several processors, memory, and input / output controllers, each processor and input / output controller exchange data using a common memory.
시스템 외부로부터 데이터가 입력되면, 입/출력 제어기가 메모리에 데이터를 써넣게 되고 프로세서에서 데이터를 읽어간다. 반대로 프로세서가 메모리에 데이터를 써넣게 되면 입/출력 제어기는 메모리로부터 데이터를 읽어가서 외부로 출력한다.When data is input from outside the system, the input / output controller writes the data into memory and reads data from the processor. On the contrary, when the processor writes data to the memory, the input / output controller reads the data from the memory and outputs the data to the outside.
상기의 과정에서 메모리는 한번에 하나의 소자만을 액세스할 수 있다.In the above process, the memory can access only one device at a time.
따라서 프로세서 및 여러 소자들간에는 데이터 버스를 사용하도록 허락을 내리기 위한 버스 조정(Arbitration)이 필요하다.Therefore, bus arbitration is required to allow the use of the data bus between the processor and the various devices.
다중 처리 시스템에서 사용되는 메모리 액세스 방식의 가장 간단한 구조는 공통 버스(Common Bus) 방식이다. 이 기법에서 공동 버스는 본질적으로 수동적 장치이며, 각종 소자간의 정보 전송은 그 장치들 자신의 버스-인터페이스에 의하여 제어된다.The simplest structure of the memory access method used in multiple processing systems is the common bus method. In this technique, a common bus is essentially a passive device, and the transfer of information between the various devices is controlled by the device's own bus interface.
데이터의 전송을 원하는 CPU 또는 입/출력 제어기는 우선 버스와 상대방 장치를 사용할 수 있는 가를 검사해야 하며, 상대방 장치에 그 자료의 처리 방법을 알린 다음 실제 데이터를 전송한다.The CPU or I / O controller wishing to transfer data must first check whether the bus and the counterpart device can be used. Inform the counterpart device how to process the data and then transmit the actual data.
데이터를 전송받는 장치는 버스에 실린 메시지들이 자신에게 오는 정보임을 알 수 있어야 하며, 전송 장치로부터 제어 신호들을 인식하고 그에 따를 수 있어야 한다.The device receiving the data should be able to know that the messages on the bus are information coming to it and be able to recognize and follow the control signals from the transmitting device.
하나의 교신로만을 가지는 상기와 같은 구조는 새로운 장치들을 손쉽게 버스에 연결시킴으로써 추가시킬 수 있으며, 어떤 장치가 버스를 사용하고 있는지를 알기 위해서는 소프트웨어적인 방법을 사용한다.The above structure, which has only one communication path, can be added by easily connecting new devices to the bus, and a software method is used to know which device is using the bus.
그러나 상기의 방식은 버스에 이상이 생기게 되면 전체 시스템이 가동할 수 없게 되며, 시스템의 전체 교신량이 버스의 전송률에 의해 제한을 받게 되고, 규모가 큰 다중 처리 시스템에서는 버스 사용을 위한 경쟁이 시스템 전체의 효율을 심각하게 저하시킬 수 있다는 문제점을 가진다.However, in the above method, when the bus fails, the entire system becomes inoperable, the total communication amount of the system is limited by the transfer rate of the bus, and in a large multiprocessing system, the competition for bus use is the whole system. There is a problem that can significantly reduce the efficiency of.
상기와 같은 문제점을 해결하기 위하여 버스의 수를 메모리의 수만큼 증가시킨 방식의 크로스바 교환 행렬(Cross-bar Switch Matrix) 방식이다.In order to solve the above problems, a cross-bar switch matrix method is used in which the number of buses is increased by the number of memories.
이 방법에서는 두 개의 서로 다른 소자가 충돌되는 경우가 없으며 시스템 전체 전송율이 매우 높아진다는 장점이 있으나, 시스템의 구조가 커지고 복잡해진다는 단점이 있다.This method has the advantage that two different devices do not collide with each other and the overall transmission rate is very high. However, the structure of the system becomes large and complicated.
메모리 액세스를 위한 또 한가지 방법은 다중 포트 메모리(Multiport Storage) 방식이다. 이 방식은 여러 소자들간에 각기 고유한 기억장치 포트를 가지고 기억장치를 참조할 수 있도록 하는 방식이다.Another method for memory access is multiport storage. This is a way to refer to a storage device with its own storage port among several devices.
이러한 다중 포트 메모리 방식에서 사용되는 메모리 포트들은 보통 영구적인 우선 순위를 할당받아, 동시에 같은 메모리를 참조하려 하는 각종 소자들간의 충돌을 해결할 수 있다.Memory ports used in such a multi-port memory scheme are usually assigned permanent priorities, and can resolve conflicts between various devices that try to refer to the same memory at the same time.
그러나 어떤 경우라도 다중 포트 시스템에 포함되어 각 소자들간의 연결에 소요되는 케이블은 상기의 다른 방법들에서보다 훨씬 많다.In any case, however, the cables involved in the multi-port system and the connections between the elements are much higher than in the other methods.
상기된 바와 같은 세가지 방법들은 모두 각각의 단점들을 가지고 있다.All three methods as described above have their respective disadvantages.
또한 상기의 방법들은 모두 해당 시스템에만 적용될 수 있는 연결 구조를 가지고 있으므로, 소자의 수나 구조가 다른 시스템들에 적용되려면 버스의 구조 자체를 바꿔야 한다는 번거로움이 발생된다.In addition, since all of the above methods have a connection structure that can be applied only to the corresponding system, it is troublesome to change the structure of the bus itself so that the number of devices or the structure can be applied to other systems.
따라서, 본 발명은 상기된 바와 같은 문제점을 해결하기 위하여,Therefore, in order to solve the problems as described above,
카운터를 사용하여 CPU 및 입/출력 제어기들 간에 우선 순위를 정해 데이터 버스를 사용한 소자는 카운터에 의해 자신의 차례가 돌아왔을 때 버스의 사용을 허가받도록 함으로써, 어떤 종류의 다중 처리 시스템에도 적용할 수 있는 중앙 처리 장치와 입/출력 제어기들간의 통신을 위한 조정 회로를 구성하는 것을 목적으로 한다.Using counters to prioritize CPUs and input / output controllers, devices using data buses can be applied to any kind of multiprocessing system by allowing the bus to be licensed when its turn is returned. It is an object of the present invention to configure an adjustment circuit for communication between a central processing unit and input / output controllers.
도 1 은 본 발명을 적용한 조정 회로를 포함하는 시스템의 구성도.1 is a block diagram of a system including an adjustment circuit to which the present invention is applied.
도 2 는 본 발명에 의한 조정 회로의 내부 구성도.2 is an internal configuration diagram of an adjustment circuit according to the present invention.
도 3 은 조정 회로 내부의 BRx에 대한 세부 처리 과정.3 is a detailed process of BRx inside the adjustment circuit.
도 4 는 각 소자의 요구신호에 따른 조정 회로의 상태 변화도.4 is a state change diagram of an adjustment circuit according to a request signal of each element.
도 5 는 도 4 에 의한 각 상태의 변화를 나타낸 도표.FIG. 5 is a table showing changes in each state according to FIG. 4. FIG.
도 6 은 조정 회로의 이상 동작에 대한 타이밍 도.6 is a timing diagram for an abnormal operation of an adjustment circuit.
도 7 은 D 플립 플롭을 사용한 조정 회로 내부의 구성도.Fig. 7 is a schematic diagram showing the inside of an adjustment circuit using a D flip flop.
도 8 은 D 플립 플롭을 사용한 조정 회로의 동작을 나타낸 타이밍 도.8 is a timing diagram showing operation of an adjustment circuit using a D flip flop.
<도면의 주요부분에 대한 부호의 설명><Description of the code | symbol about the principal part of drawing>
100 : CPU 200 : 메모리100: CPU 200: Memory
300 : 조정 회로 310 : 3비트 카운터300: regulating circuit 310: 3-bit counter
320 : 논리 합 게이트 330 : 논리 곱 게이트320: logical sum gate 330: logical product gate
340 : 논리 곱 게이트 410 : 입/출력 제어기 #1340: logical product gate 410: input /
420 : 입/출력 제어기 #2 430 : 입/출력 제어기 #3420: input /
440 : 입/출력 제어기 #4440 input /
상기와 같은 목적을 달성하기 위하여 창안된 본 발명은,The present invention was created to achieve the above object,
전원을 이네이블(enable) 입력으로 하고, 클럭 B에 동기되어 있으며, Q0, Q1, Q2의 3비트 출력을 가지는 카운터와; 클럭 A에 동기된 CPU와, 클럭 B에 동기된 4개의 입/출력 제어기로부터 나오는 버스 사용 요구 신호인 BRx와 상기 Q0, Q1, Q2를 입력으로 하며, 각 소자에 대한 버스 사용 승인 신호인 BG0 ,BG1, BG2, BG3, BG4를 각각 출력하는 5개의 논리 합 게이트와; 상기 각각의 논리 합 게이트로부터 나오는 BG0 ,BG1, BG2, BG3, BG4를 입력으로 하며, 출력이 상기 카운터의 CAI 단자와 연결된 논리 곱 게이트과; 상기 Q0와 Q2를 입력으로 하며, 출력이 상기 카운터의 클리어 단자와 연결된 논리 곱 게이트를 포함하여 구성된다.A counter having a power supply as an enable input, synchronized with clock B, and having a 3-bit output of Q0, Q1, and Q2; A bus use request signal from the CPU synchronized with clock A, four input / output controllers synchronized with clock B, and BRx and Q0, Q1, and Q2 are input. BG0, which is a bus use approval signal for each device, is input. Five logic sum gates respectively outputting BG1, BG2, BG3, and BG4; A logic product gate input to BG0, BG1, BG2, BG3, and BG4 from the respective logic sum gates, the output of which is connected to the CAI terminal of the counter; The Q0 and Q2 are input, and the output includes a logic product gate connected to the clear terminal of the counter.
본 발명은, 프로세서와 입/출력 제어기들이 메모리를 공유하는 다중 처리 시스템에서, 프로세서 및 여러 개의 입/출력 제어기들간의 버스 사용을 중재해주기 위한 조정 회로를 사용한다.The present invention uses coordination circuitry to mediate bus usage between a processor and several input / output controllers in a multiple processing system in which the processor and input / output controllers share memory.
시스템 내에서 상기 소자들중의 하나가 메모리를 액세스하기 위하여 데이터 버스를 사용하고자 하면, 해당 소자는 조정 회로에게 버스의 사용을 요구하기 위하여 BRx(Bus Request) 신호를 보낸다.If one of the devices in the system wants to use the data bus to access the memory, the device sends a bus request (BRx) signal to the coordinating circuit to request the use of the bus.
조정 회로는 여러 소자들로부터 입력된 BRx 신호들을 받아 조정을 수행한 뒤, 어느 한 소자에게 버스의 사용을 승인하는 BGx 신호를 보낸다.The adjustment circuit receives the BRx signals input from several devices, performs the adjustment, and then sends a BGx signal to one device to approve the use of the bus.
BGx 신호를 수신한 소자는 메모리를 액세스 하게 되고, 그외에 BRx 신호를 송신한 소자들은 자기 차례가 되어 BGx 신호가 수신될 때까지 BRx를 송신한 상태를 유지한채 기다리게 된다.The device receiving the BGx signal accesses the memory, and the other devices transmitting the BRx signal wait for the transmission of the BRx until the BGx signal is received.
본 발명에서 상기 BRx 및 BGx 신호들은 로우 액티브(Low Active)로 동작한다. 즉 조정 회로는 각 신호들이 '0'으로 송신되었을 때, 동작 요구로 판단한다.In the present invention, the BRx and BGx signals operate low active. In other words, the adjustment circuit determines that the operation request is made when each signal is transmitted as '0'.
도 1 은 본 발명을 적용한 조정 회로를 포함하는 시스템의 구성도를 나타낸 것이다.1 shows a configuration diagram of a system including an adjustment circuit to which the present invention is applied.
도시된 바와 같이, CPU(100)와; 상기 CPU(100)와 버스를 사용하여 데이터를 주고 받는 메모리(200)와; 상기 CPU(100) 및 각 입/출력 제어기로부터 BR0, BR1, BR2, BR3, BR4를 받아 조정을 수행한 후, 상기 CPU(100) 및 각 입/출력 제어기로 BG0, BG1, BG2, BG3, BG4를 전송하는 조정 회로(300)와; 상기 메모리(200)와 버스를 사용하여 데이터를 주고 받으며, 상기 조정 회로(300)와 클럭을 공유하는 4개의 입/출력 제어기(410)(420)(430)(440)로 구성되어 있다.As shown, the
상기 시스템에서는 2개의 클럭이 사용되는데, 클럭 A는 CPU(100)를 위한 클럭이고, 클럭 B는 조정 회로(300) 및 4개의 입/출력 제어기(410)(420)(430)(440)를 위한 클럭이다.In this system, two clocks are used, clock A being the clock for the
즉, 입/출력 제어기(410)(420)(430)(440)와 조정 회로는 클럭 B에 동기되어 동작하게 되며, CPU는 클럭 B와는 비동기로 동작한다.That is, the input /
이하 조정 회로를 이용한 시스템내 CPU 및 입/출력 제어기들간의 동작에 대하여 상세히 설명하면 다음과 같다.Hereinafter, the operation between the CPU and the input / output controller in the system using the adjustment circuit will be described in detail.
예를 들어, CPU(100)에서 메모리를 액세스하고자 할 경우, CPU(100)는 조정 회로(300)로 BR0 = 0 이라는 신호를 보내게 된다.For example, when the
이때, 입/출력 제어기 #1(410)과 입/출력 제어기 #2(420)도 동시에 메모리를 액세스 하고자 하여 조정 회로(300)로 BR1, BR2 = 0 신호를 보낼 수 있다.At this time, the input /
그렇게 되면 조정 회로(300)는 상기 세 신호, BR0, BR1, BR2 = 0 를 수신하여 조정을 수행한 후, CPU(100)과 입/출력 제어기 #1(410)에게는 BR0, BR1 = 1 신호를 보내어 대기시키고, 입/출력 제어기 #2(420)에게 버스의 사용을 승인한다는 BG2 = 0 신호를 보낸다.Then, the
BG2 = 0 신호를 받은 입/출력 제어기 #2(420)는 데이터 버스를 사용하여 메모리를 액세스하게 된다. BR0, BR1 = 1을 받은 CPU(100)와 입/출력 제어기 #1(410)은 다시 조정 회로(300)로 BR0, BR1 = 0을 보내어 버스 사용을 요구하게 된다.다.Input /
상기와 같은 동작을 수행하기 위한 조정 회로의 내부적인 구성에 대하여 설명하면 다음과 같다.An internal configuration of an adjustment circuit for performing the above operation will be described below.
도 2 는 본 발명에 의한 조정 회로의 내부 구성도를 나타낸 것이다.2 shows an internal configuration diagram of an adjustment circuit according to the present invention.
도시된 바와 같이, 전원을 이네이블 입력으로 하며, 클럭 B를 클럭으로 하고, Q0, Q1, Q2 3비트 출력을 가지는 3비트 카운터(310)와; 각 소자로부터 나오는 BRx와 상기 Q0, Q1, Q2를 입력으로 하는 5개의 논리 합 게이트(Or Gate)(320)와; 상기 각각의 논리 합 게이트(320)로부터 나오는 BG0 ,BG1, BG2, BG3, BG4를 입력으로 하며, 출력이 상기 3 비트 카운터의 CAI 단자와 연결된 논리 곱 게이트(And Gate)(330)과; 상기 Q0와 Q2를 입력으로 하며, 출력이 상기 3비트 카운터의 클리어 단자와 연결된 논리 곱 게이트(340)로 구성되어 있다.As shown, a 3-
상기의 CAI 입력은 카운터(310)를 정지시키기 위한 것이다. CAI로 입력되는 BG0, BG1, BG2, BG3, BG4 중에 하나라도 '0'가 있으면 CAI 입력이 '0'가 되어 카운터(310)는 정지된다.The CAI input above is for stopping the
상기와 같은 3비트 카운터(310)는, 초기 출력은 모두 0이므로 Q0,Q1,Q2 = 000부터 하나씩 카운트되기 시작한다.The 3-
000, 001, 010, 011, 101까지 카운트 되면 클리어 단자로 1이 입력되기 때문에 카운터(310)는 다시 000부터 카운트를 시작하게 된다. 그러므로 상기 카운터(310)는 5단 카운터이다.When counting to 000, 001, 010, 011, 101, 1 is input to the clear terminal, the
상기의 3비트 출력은 각각 BR0, BR1, BR2, BR3, BR4 와 논리 곱이 수행된 후 각각 BG0, BG1, BG2, BG3, BG4 로 입력된다.The 3-bit output is input to BG0, BG1, BG2, BG3, and BG4, respectively, after performing a logical product with BR0, BR1, BR2, BR3, and BR4.
도 3 은 조정 회로 내부의 BRx에 대한 세부 처리 과정을 도시한 것이다.3 shows a detailed process for BRx inside the adjustment circuit.
도시된 바와 같이, BR0는 D 플립 플롭(Delay Flip-Flop)을 거쳐 지연되어 Q0, Q1, Q2와 논리 합이 수행된 후 BG0로 입력된다. 그러므로 BR0는 카운터의 출력이 000일 때 BG0를 0으로 만들 수 있다.As shown, BR0 is delayed through a D flip-flop, and a logic sum with Q0, Q1, and Q2 is performed and then input to BG0. Therefore, BR0 can zero BG0 when the counter output is 000.
BR1는 D 플립 플롭을 거쳐 지연된 뒤, 조정 회로의 클럭이 입력될때, Q0', Q1, Q2와 논리 곱이 수행된 후 BG1로 입력된다. 그러므로 BR1는 카운터의 출력이 001일 때 BG0를 1으로 만들 수 있다.BR1 is delayed via the D flip-flop, and when the clock of the adjusting circuit is input, the logic product with Q0 ', Q1, Q2 is performed and then input to BG1. Therefore, BR1 can make
BR2는 D 플립 플롭을 거쳐 지연되어, 조정 회로의 클럭이 입력될때, Q0, Q1', Q2와 논리 곱이 수행된 후 BG2로 입력된다. 그러므로 BR2는 카운터의 출력이 010일 때 BG2를 0으로 만들 수 있다.BR2 is delayed via the D flip-flop, and when the clock of the adjusting circuit is inputted, it is input to BG2 after performing a logical product with Q0, Q1 'and Q2. Therefore, BR2 can zero BG2 when the counter's output is 010.
BR3는 D 플립 플롭을 거쳐 지연되어, 조정 회로의 클럭이 입력될때, Q0', Q1', Q2와 논리 곱이 수행된 후 BG3로 입력된다. 그러므로 BR3는 카운터의 출력이 011일 때 BG3를 0으로 만들 수 있다.BR3 is delayed via the D flip-flop, and when the clock of the adjusting circuit is inputted, it is input to BG3 after performing a logical product with Q0 ', Q1' and Q2. Therefore, BR3 can zero BG3 when the counter's output is 011.
BR4는 D 플립 플롭을 거쳐 지연되어, 조정 회로의 클럭이 입력될때, Q0, Q1, Q2'와 논리 곱이 수행된 후 BG4로 입력된다. 그러므로 BR4는 카운터의 출력이 100일 때 BG4를 0으로 만들 수 있다.BR4 is delayed via the D flip flop, and when the clock of the adjusting circuit is inputted, it is input to BG4 after performing a logical product with Q0, Q1, and Q2 '. Therefore, BR4 can zero BG4 when the counter outputs 100.
상기와 같이 구성된 조정 회로에 의한 각 소자의 선택 방법에 대하여 설명하면 다음과 같다.The selection method of each element by the adjustment circuit comprised as mentioned above is as follows.
어느 소자도 메모리를 액세스하고 있지 않은 대기 상태에서는, 모든 소자의 BRx는 '1'로 유지된다.In the standby state in which neither device is accessing the memory, the BRx of all devices is kept at '1'.
그러면 BGx도 1이므로 카운터(310)의 CAI 입력도 '1'이 되어, 카운터(310)는 000부터 101까지의 카운트를 계속해서 수행하게 된다. 그리고 모든 소자는 계속해서 대기 상태를 유지하게 된다.Then, since the BGx is also 1, the CAI input of the
특정 소자가 메모리를 액세스하고자 할 때, 해당 소자는 BRx = 0를 조정 회로로 입력한다. 그러면 해당 BRx에 해당하는 카운터 조건이 일치 되었을 때, BGx = '0'가 조정 회로로부터 해당 소자로 출력된다.When a particular device wants to access the memory, that device feeds BRx = 0 into the regulating circuit. Then, when the counter condition corresponding to the corresponding BRx is met, BGx = '0' is output from the adjusting circuit to the corresponding device.
그러면 카운터(310)의 CAI 입력이 '0'가 되어 카운터(310)의 출력값이 더 이상 카운트되지 않고 그대로 유지된다. 또한 BGx = 0을 수신한 해당 소자는 메모리를 액세스하기 위하여 버스를 사용하게 된다.Then, the CAI input of the
상기와 같은 상태에서 해당 소자가 메모리의 액세스를 끝내기 위하여 BRx = 1 을 다시 조정 회로로 입력하면 BGx도 '1'이 되고, BGx = 1 을 수신한 해당 소자는 메모리의 액세스를 끝내게 된다.In the above state, when the corresponding device inputs BRx = 1 to the adjusting circuit again to terminate the memory access, BGx becomes '1' and the corresponding device receiving BGx = 1 ends the access of the memory.
도 4 는 각 소자의 요구신호에 따른 조정 회로의 상태 변화도를 나타낸 것이다.4 shows a state diagram of the adjustment circuit according to the request signal of each element.
시스템은 초기에 모든 BRx, BGx = 1로서 대기 상태이다.The system is initially idle with all BRx, BGx = 1.
이 상태에서 예를 들어, 입/출력 제어기 #2(420)가 메모리를 액세스하기 위해서 BR2 = 0를 조정 회로로 입력하였다면, 조정 회로내의 카운터(310)의 출력 Q0, Q1, Q2가 010이 되었을 때 BG2가 0이 되어 입/출력 제어기 #2(420)로 출력된다.In this state, for example, if the input /
그러면 입/출력 제어기 #2(420)은 이때부터 메모리를 액세스하기 시작하여, 액세스가 끝나면 BR2 = 1을 조정 회로로 입력한다.Input /
조정 회로가 BR2 = 1을 입력 받으면, 모든 BGx가 1이 되므로 조정 회로는 모든 소자를 대기 상태로 유지시킨다.When the regulating circuit receives BR2 = 1, all BGxs are equal to 1, so the regulating circuit keeps all devices in standby.
도 5 은 도 4 에 의한 각 상태의 변화를 나타낸 도표이다.FIG. 5 is a diagram showing a change in each state according to FIG. 4.
도시된 바와 같이, BG0, BG1, BG2, BG3, BG4가 모두 1이면 시스템은 모든 소자가 메모리를 액세스하지 않는 대기 상태이다.As shown, if BG0, BG1, BG2, BG3, and BG4 are all 1, the system is in a standby state where all devices do not access the memory.
BG0 = 0이고, BG1, BG2, BG3, BG4 = 1이면 CPU(100)가 메모리를 액세스하게 되고, 다른 모든 입/출력 제어기들은 CPU(100)의 메모리 액세스가 끝나서 대기 상태로 전환될때까지 기다린다.When BG0 = 0 and BG1, BG2, BG3, BG4 = 1, the
마찬가지로 BG1 만 0 이면, 입/출력 제어기 #1(410)이 메모리를 액세스하게 되고, 다른 모든 소자들은 입/출력 제어기 #1(410)의 메모리 액세스가 끝나서 대기 상태로 전환될때까지 기다린다.Similarly, if only BG1 is zero, input /
다른 모든 소자들에 대해서도 마찬가지 상태 전환을 수행한다.The same state transition is performed for all other devices.
그러나 만약, 카운터(310)에서 Q2,Q1,Q0 값이 000에서 001로 변하기 직전에 BR0가 조정 회로로 입력된다면, BG0가 조정 회로로부터 해당 소자로 입력된다.However, if BR0 is input into the adjustment circuit just before the Q2, Q1, Q0 value is changed from 000 to 001 at the
그러므로 카운터(310)의 CAI 입력이 '0'이 되지만 CAI의 셋업 시간이 만족되지 않았기 때문에 Q2, Q1, Q0가 001로 넘어가게 되고 BG0가 곧 다시 1로 변환된다.Therefore, the CAI input of the
따라서 전압의 순간적인 이상 현상인 글리치 형태의 BGO 신호가 나타나게 된다.This results in a glitch-shaped BGO signal that is a transient anomaly in voltage.
이러한 현상은 CPU(100)는 클럭 A에 동기되어 있는 반면 조정 회로(300)내의 카운터(310)는 클럭 B에 동기되어 동작되기 때문에, 상기와 같은 형상이 발생할 수 있다.This phenomenon can occur because the
도 6 은 조정 회로의 이상 동작에 대한 타이밍 도를 나타낸 것이다.6 shows a timing diagram for an abnormal operation of the adjustment circuit.
도시된 바와 같이, 클럭 B의 상승 에지(rising edge)에서 조정 회로(300) 내 카운터(310)의 출력 Q2, Q1, Q0가 000에서 001로 카운트 된다.As shown, at the rising edge of clock B, the outputs Q2, Q1, Q0 of the
그러나 001로 카운트 되기 이전 (가)의 시점에서 BR0가 조정 회로로 입력되면, BG0는 잠시 '0'으로 변했다가 곧 '1'로 다시 변한다.However, if BR0 is input to the adjustment circuit at the time before the count to 001, BG0 changes to '0' for a while and then changes back to '1'.
이것은 카운터의 출력이 이미 001로 변해서, 카운터의 CAI 입력이 될 BGx가 0이 되지 않아 카운터가 고정되지 않기 때문이다.This is because the output of the counter has already changed to 001, so that the BGx, which will be the CAI input of the counter, does not become zero, so the counter is not fixed.
상기와 같은 경우, BG0가 1인 상태이므로 CPU(100)는 메모리를 액세스하지 않지만, BR0는 계속해서 0인 상태이다. 그러므로 CPU(100)는 카운터 출력이 다시 000이 될 때까지 메모리를 액세스하지 못하고 기다려야 한다.In this case, the
그러므로 상기와 같은 현상을 방지하기 위하여 각 소자로부터 입력되는 BRx를 D 플립 플롭에 잠시 저장해두었다가, 조정 회로와 동기된 클럭 B가 들어올 때마다 카운터의 출력들과 논리 합을 수행하도록 한다.Therefore, in order to prevent such a phenomenon, the BRx input from each device is temporarily stored in the D flip flop, and the logic sum with the counter outputs is performed whenever the clock B synchronized with the adjustment circuit comes in.
도 7 는 D 플립 플롭을 사용한 조정 회로 내부의 구성도를 나타낸 것이다.Fig. 7 shows a schematic diagram of an internal control circuit using a D flip flop.
도시된 바와 같이, CPU(100) 및 4개의 입/출력 제어기(410)(420)(430)(440)로부터 나오는 5개의 신호 BR0, BR1, BR2, BR3, BR4 신호는, 조정 회로(300) 및 입/출력 제어기(410)(420)(430)(440)와 동기된 클럭 B가 들어올 때마다 논리 합 게이트로 입력되어 Q0, Q1, Q2와 논리 합이 수행된다.As shown, the five signals BR0, BR1, BR2, BR3, and BR4 signals from the
그러므로 BGx는 클럭 B의 상승 에지에서 해당 소자의 액세스 여부를 결정한다.Therefore, BGx determines whether the device is accessible on the rising edge of clock B.
도 8 은 D 플립 플롭을 사용한 조정 회로의 동작을 나타낸 타이밍 도이다.8 is a timing diagram showing an operation of an adjustment circuit using a D flip flop.
도시된 바와 같이, 클럭 B의 상승 에지에서 카운터(310)의 출력 Q2, Q1, Q0가 000에서 001로 카운트 되었다.As shown, the outputs Q2, Q1, Q0 of the
카운트 되기 직전에 조정 회로로 입력된 BR0는 D 플립 플롭에 저장되었다가 다음 클럭이 들어올 때 카운터의 출력 001과 논리 합이 수행된다.BR0, which is input to the adjustment circuit just before counting, is stored in the D flip-flop and is logically summed with the counter's
도 8 에 도시된 (1)의 경우는, BR0는 클럭 B가 '1'이 되기 직전에 입력되었지만 클럭 B의 상승 시간이 D 플립 플롭의 셋업 시간을 만족시킬만큼 길지 못한 경우이다.In the case of (1) shown in FIG. 8, BR0 is input just before clock B becomes '1', but the rise time of clock B is not long enough to satisfy the setup time of D flip-flop.
이 경우, BR0는 클럭 B의 다음 상승 에지에서 조정 회로에 '0'으로 입력된다.In this case, BR0 is input to '0' into the adjustment circuit at the next rising edge of clock B.
도 8 에 도시된 (2)의 경우는, BR0가 입력된 후, 클럭 B의 상승 시간이 D 플립 플롭의 셋업 시간을 만족시킨 경우다.In the case of (2) shown in Fig. 8, after the BR0 is input, the rise time of the clock B satisfies the setup time of the D flip-flop.
이 경우, BR0는 클럭 B의 상승 에지 바로 다음에 조정 회로에 '0'으로 입력된다.In this case, BR0 is input to '0' into the adjustment circuit immediately after the rising edge of clock B.
따라서 상기와 같이 BRx가 입력되었을 경우, 카운터의 출력 Q2, Q1, Q0가 변화되는 시점에서는 클럭 B에 의하여 D 플립 플롭의 출력이 언제나 '1'로 고정되므로 입력된 BRx가 무시되는 경우를 방지할 수 있다.Therefore, when BRx is input as described above, the output of the D flip-flop is always fixed to '1' by the clock B at the time when the counter outputs Q2, Q1, and Q0 change, so that the input BRx is ignored. Can be.
상기와 같은 구조를 사용하게 되면, 여러 소자들이 동시에 메모리 액세스를 요구하더라도, 카운터의 동작에 의하여 먼저 카운트 조건이 일치하는 소자가 먼저 메모리를 액세스할 수 있게 된다.Using the above structure, even if several devices require memory access at the same time, the device that first meets the count condition can access the memory first by the operation of the counter.
즉, 어느 하나의 소자가 버스 마스터인 동안(BGx = 0)에는, 다른 소자들이 버스의 사용을 요구하더라도 카운터 값이 변하지 않고 있으므로, 다른 소자들은 버스 사용 승인 신호(BGx)를 받지 못하게 된다.That is, while one device is the bus master (BGx = 0), the counter value does not change even if other devices require the use of the bus, so that other devices do not receive the bus use approval signal (BGx).
그러므로 각 소자들이 충돌하지 않고 우선 순위에 따라 메모리를 액세스 할 수 있다.Therefore, each device can access memory in priority order without conflict.
상기와 같이 동작하는 본 발명에 의한 조정 회로는,The adjustment circuit according to the present invention operating as described above,
메모리를 공유하는 CPU 및 입/출력 소자를 사용하고 있는 어떠한 다중 처리 시스템에서도 적용할 수 있는 구조로서, 간단한 논리 회로로서 구현될 수 있다는 효과를 얻을 수 있다.As a structure that can be applied to any multiprocessing system using a CPU and input / output devices sharing a memory, an effect that can be implemented as a simple logic circuit can be obtained.
Claims (7)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040480A KR100249523B1 (en) | 1997-08-25 | 1997-08-25 | An arbitor logic for the communication between cpu and multi i/o controllers |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970040480A KR100249523B1 (en) | 1997-08-25 | 1997-08-25 | An arbitor logic for the communication between cpu and multi i/o controllers |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990017524A KR19990017524A (en) | 1999-03-15 |
KR100249523B1 true KR100249523B1 (en) | 2000-03-15 |
Family
ID=19518334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970040480A KR100249523B1 (en) | 1997-08-25 | 1997-08-25 | An arbitor logic for the communication between cpu and multi i/o controllers |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100249523B1 (en) |
-
1997
- 1997-08-25 KR KR1019970040480A patent/KR100249523B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR19990017524A (en) | 1999-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4380798A (en) | Semaphore register including ownership bits | |
US7305510B2 (en) | Multiple master buses and slave buses transmitting simultaneously | |
US4841178A (en) | Asynchronous processor arbitration circuit | |
US4237534A (en) | Bus arbiter | |
US20070255882A1 (en) | I/O and memory bus system for DFPS and units with two- or multi-dimensional programmable cell architectures | |
KR0133236B1 (en) | Shared memory system and arbitration method and system | |
Yun et al. | A high-performance asynchronous SCSI controller | |
US5307466A (en) | Distributed programmable priority arbitration | |
WO1996035996A1 (en) | Master oriented buffer | |
KR100249523B1 (en) | An arbitor logic for the communication between cpu and multi i/o controllers | |
EP0130471A2 (en) | Interface controller for connecting multiple asynchronous buses and data processing system including such controller | |
CN101446820B (en) | Data communication and interrupt dispatch method and device for motion controller | |
KR101276837B1 (en) | Apparatus for communicating between processor systems operating with different operating frequencies | |
JP2807269B2 (en) | Interface unit used for multi-drop access method | |
JPS5852264B2 (en) | Multi-unit system | |
KR100304723B1 (en) | Microprocessor Board with Master Mode and Slave Mode Selection | |
KR960001270B1 (en) | Communication control circuit with redundancy | |
RU2058041C1 (en) | Device for data exchange for two processors through shared memory | |
KR20000033265A (en) | Device and method for interfacing chip embedded bus | |
KR940010136B1 (en) | Circuit for generating signals that inform taking the bus | |
Kessels et al. | Designing an asynchronous bus interface | |
KR0152225B1 (en) | Access right control apparatus of shared memory | |
JP2906805B2 (en) | Memory sharing type multiprocessor system | |
KR100243868B1 (en) | Arbiter logic in main computer system | |
KR930003448B1 (en) | Dual-port memory interface circuit |
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: 20071109 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |