KR20000018296A - Memory covalent device between plural processors - Google Patents

Memory covalent device between plural processors Download PDF

Info

Publication number
KR20000018296A
KR20000018296A KR1019980035826A KR19980035826A KR20000018296A KR 20000018296 A KR20000018296 A KR 20000018296A KR 1019980035826 A KR1019980035826 A KR 1019980035826A KR 19980035826 A KR19980035826 A KR 19980035826A KR 20000018296 A KR20000018296 A KR 20000018296A
Authority
KR
South Korea
Prior art keywords
signal
memory
gate
processor
output
Prior art date
Application number
KR1019980035826A
Other languages
Korean (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 KR1019980035826A priority Critical patent/KR20000018296A/en
Publication of KR20000018296A publication Critical patent/KR20000018296A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)

Abstract

PURPOSE: A memory covalent device between the plural processors is provided to covalent the common memory of single port by eliminating the elements of the program and using a pure hardware. CONSTITUTION: The memory covalent device comprises: a first processor(110) for operating an activated state or a waiting state by a first bus cycle waiting signal and for generating the a first memory reading/writing request signal in the activated state; a second processor(120) for operating in an activated state or a waiting state by a second bus cycle waiting signal opposite to a first bus cycle waiting signal and for generating the a first memory reading/writing request signal in the activated state: a first decoder(170) for generating a first memory select request signal by the request of the first processor; a second decoder(180) for generating a second memory select request signal by the request of the second processor; a single port memory(130) for being selected by a memory select signal and performing the operation of reading or writing the data by reading/writing signal; a first gate buffer(150) for controlling the course of the data bus connecting the first processor with the memory by a first gate select signal; and a second gate buffer(160) for controlling the course of the data bus connecting the second processor with the memory by a second gate select signal opposite to the first gate select;. Thereby, it is possible to improve the processing speed.

Description

복수 프로세서간의 메모리 공유장치Memory sharing device between multiple processors

본 발명은 프로세서 응용 및 주변 제어장치에 관한 것으로, 특히 복수의 프로세서에서 단일 포트(Single Port)를 가지는 메모리를 공유하기 위한 메모리 공유장치에 관한 것이다.The present invention relates to a processor application and a peripheral control device, and more particularly, to a memory sharing device for sharing a memory having a single port in a plurality of processors.

통상적으로 단일 보드(Single Board) 내에 혹은 두 시스템 사이에 각각 2개의 프로세서가 존재하는 경우에는 각 프로세서들간의 데이터 교류를 위해 임의의 장치를 필요로 하게 되는데, 이는 여러 형태의 하드웨어(Hardware) 설계를 통하여 가능해질 수 있다. 그 대표적인 예로 복수의 프로세서들이 로컬 버스(Local Bus)를 상호 공유하는 구조상에서 데이터의 공유 영역이 넓고, 고속의 처리 속도를 요하는 경우 종종 공유 메모리(Common Memory)를 두어 그 기능을 구현한다. 이때 공유 메모리는 이중 포트를 가진 상용 메모리를 사용하여 설계하거나 단일 포트의 상용 메모리를 이용하여 각 프로세서가 공유 메모리 영역을 제어하고자 할 경우에는 인터럽트(Interrupt), 프로세싱 중지신호 혹은 특정 프로세서의 마스터/슬레이브(Master/Slave) 기능 등을 사용하여 프로그램 제어를 통해 프로세서의 제어권을 이양하거나 받는 구조를 취한다.In general, when two processors are present in a single board or between two systems, an arbitrary device is required for data exchange between the processors. This is a type of hardware design. It can be made possible. For example, in a structure in which a plurality of processors share a local bus, a shared area of data is large, and when a high processing speed is required, a common memory is often provided to implement the function. In this case, the shared memory is designed using dual-port commercial memory, or if each processor wants to control the shared memory area using a single port of commercial memory, an interrupt, a processing stop signal, or a master / slave of a specific processor. It takes a structure to transfer or receive control of the processor through program control using the (Master / Slave) function.

하지만 상술한 바와 같이 공유 메모리로 이중 포트를 갖는 상용 메모리를 사용하여 설계하는 경우에는 단일 포트를 갖는 메모리를 사용하는 경우에 비해 동일 저장 용량에 대비하여 가격 폭이 매우 크다는 문제점이 있다. 반면에 단일 포트 상용 메모리를 사용하는 경우에는 동일 저장 용량에 대비하여 가격 폭을 절감할 수는 있으나 처리 속도, 성능 및 소프트웨어(software)의 부담 등을 고려해 볼 때 시스템의 전반적인 성능 저하를 야기할 수 있는 문제점이 있다.However, as described above, in the case of using a commercial memory having a dual port as the shared memory, there is a problem in that the price range is very large compared to the case of using the memory having a single port compared to the same storage capacity. On the other hand, using single port commodity memory can reduce the price range for the same storage capacity, but it can cause the overall performance degradation of the system considering the processing speed, performance and software burden. There is a problem.

상기한 종래 복수개의 프로세서가 하나의 메모리를 공유하기 위한 방법은 이중 포트를 가진 메모리를 채용하거나 각 프로세서가 프로그램에 의해 제어 가능한 인터럽트 라인 또는 프로세서 내에 이미 갖추어진 마스터/슬레이브 기능을 이용하여 임의의 프로세서를 액세스할 시에는 다른 프로세서에게 통보하여 복수의 프로세서가 동시에 공유 메모리를 억세스하지 않도록 대기상태가 되도록 하였다. 이때 프로세서간의 제어권 이양에 대한 모든 사항은 프로그램에 종속된다.The conventional method for sharing a single memory among a plurality of processors employs a memory having a dual port, or any processor by using a master / slave function already installed in a processor or an interrupt line each processor can be controlled by a program. When accessing the system, other processors are notified so that a plurality of processors are in a standby state so as not to access the shared memory at the same time. At this time, all the matters about the transfer of control right between processors are dependent on the program.

따라서 본 발명의 목적은 프로그램에 의한 요소들을 모두 제거하고 순수 하드웨어만을 이용하여 단일 포트의 상용 메모리를 공유하도록 하는 제어장치를 제공함에 있다.Accordingly, an object of the present invention is to provide a control device that removes all of the program elements and shares a single port of commercial memory using only pure hardware.

본 발명의 다른 목적은 하드웨어에 의해 제어권을 부여하여 우선 순위에 따라 프로세서가 억세스되도록 하는 장치를 제공함에 있다.Another object of the present invention is to provide an apparatus for allowing a processor to be accessed according to priority by granting control by hardware.

상기한 목적을 달성하기 위하여 본 발명은 제1버스 사이클 대기신호에 의해 활성상태 또는 대기상태로 동작하고 상기 활성상태에서 제1메모리 독출/기록 요구신호를 발생하는 제1프로세서와, 상기 제1버스 사이클 대기신호에 반하는 제2버스 사이클 대기신호에 의해 활성상태 또는 대기상태로 동작하고 상기 활성상태에서 제2메모리 독출/기록 요구신호를 발생하는 제2프로세서와, 상기 제1프로세서의 요구에 의해 제1메모리 선택 요구신호를 발생하는 제1디코더와, 상기 제2프로세서의 요구에 의해 제2메모리 선택 요구신호를 발생하는 제2디코더와, 메모리 선택신호에 의해 선택되고 독출/기록신호에 의해 데이터를 독출하거나 기록하는 동작을 수행하는 단일 포트 메모리와, 제1게이트 선택신호에 의해 상기 제1프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제1게이트 버퍼와, 상기 제1게이트 선택신호에 반하는 제2게이트 선택신호에 의해 상기 제2프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제2게이트 버퍼와, 상기 버스 선택신호에 의해 상기 제1프로세서의 어드레스 버스와 상기 제2프로세서의 어드레스 버스를 선택하여 상기 메모리로 연결하는 멀티플렉서와, 상기 제1메모리 선택 요구신호와 상기 제2메모리 선택 요구신호의 입력 순위에 의해 상기 제1 및 제2버스 사이클 대기신호, 제1 및 제2게이트 선택신호, 메모리 선택신호 및 버스 선택신호를 출력하고, 상기 제1 및 제2메모리 독출/기록 요구신호에 의해 메모리 독출/기록신호를 출력하는 제어회로로 구성한 복수 프로세서의 메모리 공유장치를 구현하였다.In order to achieve the above object, the present invention provides a first processor which operates in an active state or a standby state by a first bus cycle wait signal and generates a first memory read / write request signal in the active state, and the first bus. A second processor operating in an active state or a standby state by a second bus cycle wait signal against the cycle wait signal and generating a second memory read / write request signal in the active state; A first decoder for generating a one memory selection request signal, a second decoder for generating a second memory selection request signal at the request of the second processor, and a data selected by a read / write signal selected by the memory selection signal. A single port memory for reading or writing, and connecting the first processor and the memory by a first gate selection signal. A first gate buffer for controlling a path of a data bus, a second gate buffer for controlling a path of a data bus connecting the second processor and the memory by a second gate selection signal that is opposed to the first gate selection signal; A multiplexer for selecting an address bus of the first processor and an address bus of the second processor and connecting the selected memory to the memory by the bus selection signal, and inputting the first memory selection request signal and the second memory selection request signal; Outputting the first and second bus cycle wait signals, the first and second gate selection signals, the memory selection signal, and the bus selection signal according to the order, and reading the memory by the first and second memory read / write request signals. A memory sharing device of a plurality of processors including control circuits for outputting / recording signals is implemented.

상기한 목적을 달성하기 위하여 보다 바람직하기로는 본 발명에 따른 제어회로를 소정 클럭에 의해 입력신호를 래치 하여 제2게이트 선택신호로 출력하는 제1래치부와, 상기 클럭에 의해 입력신호를 래치 하는 제2래치부와, 상기 두 개의 프로세서 중 제1프로세서로부터 제공되는 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 논리 연산한 로직 레벨을 상기 제1래치부의 입력신호로 출력하는 제1입력신호 발생부와, 상기 두 개의 프로세서 중 제2프로세서로부터 제공되는 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 상기 제1입력신호 발생부의 출력에 반하는 로직 레벨을 얻을 수 있도록 논리 연산하여 상기 제2래치부의 입력신호로 출력하는 제2입력신호 발생부와, 상기 제2게이트 선택신호를 인버팅 하여 제1게이트 선택신호와 상기 제1프로세서의 상태를 제어하는 제1버스 사이클 대기신호로 출력하는 제1인버터와, 상기 제2래치부의 출력을 인버팅 하여 상기 제2프로세서의 상태를 제어하는 제2버스 사이클 대기신호로 출력하는 제2인버터와, 상기 제2게이트 선택신호가 프리-셋단으로 제공되고 상기 클럭에 의해 접지 레벨을 래치 하여 버스 선택신호로 출력하는 제3래치부와, 상기 버스 선택신호에 의해 상기 제1메모리 선택 요구신호와 상기 제2메모리 선택 요구신호 중 어느 한 신호를 메모리 선택신호로 선택하여 상기 메모리로 출력하는 제1선택부와, 상기 버스 선택신호를 제어신호로 하여 상기 제1프로세서의 메모리 독출/기록 요구신호와 상기 제2프로세서의 메모리 독출/기록 요구신호 중 어느 한 신호를 독출/기록신호로 선택하여 상기 메모리로 출력하는 제2선택부로 구현한다.In order to achieve the above object, more preferably, the control circuit according to the present invention latches an input signal by a predetermined clock and outputs it as a second gate selection signal, and latches the input signal by the clock. A second latch unit and a logic level obtained by performing a logic operation on an output of the second gate selection signal and the second gate selection signal provided from a first processor of the two processors and the second latch unit; A first input signal generator for outputting a signal; and outputting a first memory selection request signal provided from a second processor of the two processors, an output of the second gate selection signal, and the second latch unit; A second input signal generator for performing a logic operation so as to obtain a logic level contrary to the negative output, and outputting it as an input signal of the second latch unit; and the second gate A first inverter for inverting the tack signal and outputting the first gate selection signal and a first bus cycle wait signal for controlling the state of the first processor, and inverting the output of the second latch unit to invert the output of the second processor. A second inverter outputting a second bus cycle wait signal for controlling a state, and a third latch unit providing the second gate selection signal to a pre-set end and latching a ground level by the clock to output the bus selection signal; A first selector configured to select one of the first memory selection request signal and the second memory selection request signal as a memory selection signal and output the selected memory signal to the memory by the bus selection signal; As a control signal, any one of a memory read / write request signal of the first processor and a memory read / write request signal of the second processor is selected as a read / write signal. To implement the second selection portion for outputting to the memory.

도 1은 본 발명의 일 실시 예에 따른 복수 프로세서의 메모리 공유장치의 구성을 도시한 도면.1 is a diagram illustrating a configuration of a memory sharing apparatus of a plurality of processors according to an embodiment of the present invention.

도 2는 도 1에 도시한 제어회로의 상세 구성을 도시한 도면.FIG. 2 is a diagram showing a detailed configuration of the control circuit shown in FIG.

도 3은 도 2의 입력 및 출력 클럭을 도시한 도면.3 illustrates the input and output clock of FIG. 2;

이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명의 일 실시 예에 따른 복수 프로세서의 메모리 공유장치의 구성은 도 1에 도시한 바와 같은 구성을 가지며, 여기서 버스 사이클 대기신호(READY A, B), 메모리 독출/기록 요구신호(RW_A, RW_B) 및 해당 메모리 선택 요구신호(CS_A, CS_B)들이 필수적이고 상기한 제어신호들을 이용하여 공유 제어에 필요한 신호들을 생성시킨다.A memory sharing apparatus of a plurality of processors according to an embodiment of the present invention has the configuration as shown in FIG. 1, where the bus cycle wait signals READY A and B and the memory read / write request signals RW_A and RW_B ) And corresponding memory selection request signals CS_A and CS_B are essential and generate the signals necessary for the shared control using the control signals.

상기 도 1을 참조하면, 제어회로 100은 프로세서 110 또는 120의 요구에 의해 공유 메모리 130의 제어권을 부여한다. 디코더 170 및 180은 해당 프로세서 110 및 120으로부터 어드레스 버스를 통해 제공되는 어드레스를 디코딩(Decoding)하여 메모리 선택 요구신호 CS_A 및 CS_B를 상기 제어회로 100으로 제공한다. 게이트 버퍼(GATE Buffer) 150 및 160은 상기 제어회로 100으로부터 제공되는 게이트 선택신호 GATE_A 및 GATE_B에 의해 해당 프로세서 110 또는 120과 공유 메모리 130 간의 데이터를 버퍼링(buffering)한다. 상기 프로세서 110 및 120은 데이터를 기록(write) 및 독출(read) 상황이 발생하면 메모리 기록/독출 요구신호 RW_A 및 RW_B를 상기 제어회로 100으로 제공하며, 상기 제어회로 100으로부터 제공되는 버스 사이클 대기신호 READY_A 및 READY_B에 의해 대기상태가 되거나 공유 메모리 130을 액세스할 수 있는 활성상태(active)가 된다. 멀티플렉서(MUX) 140은 상기 제어회로 100으로부터 제공되는 버스 선택신호 BUS_SEL에 의해 어드레스 버스를 통해 상기 프로세서 110 및 120으로부터 제공되는 어드레스를 먹싱(muxing)하여 공유 메모리 130으로 제공한다. 공유 메모리 130은 상기 제어회로 100으로부터 제공되는 공유 메모리 선택신호 MEM_SEL과 독출/기록신호 RW에 의해 상기 프로세서 110 또는 120에 의해 억세스 된다.Referring to FIG. 1, the control circuit 100 grants the control right of the shared memory 130 at the request of the processor 110 or 120. The decoders 170 and 180 decode the addresses provided through the address buses from the processors 110 and 120, and provide memory selection request signals CS_A and CS_B to the control circuit 100. The gate buffers 150 and 160 buffer data between the processor 110 or 120 and the shared memory 130 by the gate selection signals GATE_A and GATE_B provided from the control circuit 100. The processors 110 and 120 provide memory write / read request signals RW_A and RW_B to the control circuit 100 when a data write and read condition occurs, and the bus cycle wait signal provided from the control circuit 100. By READY_A and READY_B, the standby state becomes active or the shared memory 130 can be accessed. The multiplexer (MUX) 140 muxes the addresses provided from the processors 110 and 120 through the address bus by the bus select signal BUS_SEL provided from the control circuit 100 and provides them to the shared memory 130. The shared memory 130 is accessed by the processor 110 or 120 by the shared memory selection signal MEM_SEL and the read / write signal RW provided from the control circuit 100.

상기한 구성을 가지는 복수 프로세서의 메모리 공유장치는 두 개의 프로세서 110, 120은 도시한 바와 같이 단일 포트 메모리, 즉 공유메모리 130를 데이터 및 어드레스 버스를 통하여 공유한다. 이때 각 프로세서 110, 120의 디코더 170, 180으로부터 나오는 메모리 선택 요구신호 CS_A, CS_B를 기준으로 하여 메모리 제어권을 해당 프로세서에게 부여하며, 프로세서 110, 120이 공유메모리 130을 억세스할 수 있도록 제반 제어신호들을 제어회로 100을 통해 출력한다. 상기 제반 제어신호로는 메모리 독출/기록 요구신호(RW_A, RW_B), 메모리 선택 요구신호(CS_A, CS_B), 게이트 선택신호(GATE_A, GATE_B), 버스 선택신호(BUS_SEL) 및 버스 사이클 대기신호(READY A, B) 등이 있다. 상기 버스 사이클 대기신호 READY A, B는 각 프로세서 110, 120에 인가하여 제어권을 가진 프로세서에게는 "활성상태"가 되도록 하며, 차 순위의 프로세서에게는 "대기상태"가 되도록 하여 동일 버스상에서 충돌이 일어나지 않도록 해 준다. 또한 두 프로세서 110, 120으로부터 동시에 공유메모리 130의 사용 요청이 들어오는 경우에는 임의 프로세서가 우선 순위를 갖도록 미리 고려해 둔다.In the memory sharing apparatus of the plurality of processors having the above-described configuration, the two processors 110 and 120 share a single port memory, that is, the shared memory 130 through a data and address bus, as shown. In this case, a memory control right is granted to the processor based on the memory selection request signals CS_A and CS_B from the decoders 170 and 180 of the processors 110 and 120, and the control signals are transmitted to allow the processors 110 and 120 to access the shared memory 130. Output through control circuit 100. The control signals include memory read / write request signals RW_A and RW_B, memory select request signals CS_A and CS_B, gate select signals GATE_A and GATE_B, bus select signals BUS_SEL and bus cycle wait signals READY. A, B), etc. The bus cycle wait signals READY A and B are applied to each of the processors 110 and 120 so as to be "active" to the processor having the control right, and to be "standby" to the next higher processor so that a collision does not occur on the same bus. Do it. In addition, when a request for the use of shared memory 130 is simultaneously received from two processors 110 and 120, an arbitrary processor is considered to have priority.

이때 각각의 프로세서 110과 120이 독립적으로 공유메모리 130을 억세스 가능하도록 하기 위해서는 적절한 제어로직을 필요로 하는데, 상기 도 1에 도시한 제어회로의 상세 구성의 일 예는 도 2에 도시한 바와 같이 구성할 수 있다. 상기 도 2를 참조하면, CS_B와 제1지연 플립플럽(D F/F) 218의 출력은 제1논리곱 게이트 210에 의해 논리곱 되며, 상기 CS_B와 제2D F/F 232의 출력은 제2논리곱 게이트 212에 의해 논리곱 되고, 상기 제2D F/F 232 출력 및 CS_A를 반전한 신호와 상기 제1D F/F 218의 출력은 제2논리곱 게이트 214에 의해 논리곱 된다. 한편 상기 제1, 제2, 제3논리곱 게이트 210∼214의 출력은 제1논리합 게이트 226에 의해 논리합 되어 상기 제1D F/F 218의 입력으로 인가된다.In this case, in order for each of the processors 110 and 120 to independently access the shared memory 130, an appropriate control logic is required. An example of a detailed configuration of the control circuit shown in FIG. 1 is shown in FIG. can do. Referring to FIG. 2, the output of the CS_B and the first delayed flip-flop (DF / F) 218 is ANDed by the first logical gate 210, and the output of the CS_B and the 2D F / F 232 is the second logic. The result of the multiplication by the product gate 212, the signal inverting the 2D F / F 232 output and CS_A and the output of the 1D F / F 218 is ANDed by the second logical gate 214. On the other hand, the outputs of the first, second, and third logical gates 210 to 214 are ORed by the first logical sum gate 226 and applied to the input of the first D F / F 218.

CS_A와 제2D F/F 232의 출력은 제4논리곱 게이트 224에 의해 논리곱 되며, 상기 CS_A와 제1D F/F 218의 출력은 제5논리곱 게이트 226에 의해 논리곱 되고, CS_B와 상기 제2D F/F 232의 출력은 제6논리곱 게이트 228에 의해 논리곱 된다. 한편 상기 제4, 제5, 제6논리곱 게이트 224∼228의 출력은 제2논리합 게이트 230에 의해 논리합 되어 상기 제2D F/F 232의 입력으로 인가된다.The outputs of CS_A and 2D F / F 232 are ANDed by a fourth logical gate 224, and the outputs of CS_A and 1D F / F 218 are ANDed by a fifth logical gate 226. The output of the 2D F / F 232 is logically multiplied by the sixth logical gate 228. On the other hand, the outputs of the fourth, fifth and sixth logical gates 224 to 228 are logically coupled by the second logical sum gate 230 and applied to the input of the 2D F / F 232.

상기 제1D F/F 218은 클럭단 C로 인가되는 클럭신호 CLK에 의해 입력단 D로 인가되는 상기 제1논리합 게이트 226의 출력을 래치 한다. 상기 래치에 의한 출력을 게이트 선택신호 GATE_B로 사용하며, 상기 출력을 인버터 222를 통해 인버팅 하여 게이트 선택신호 GATE_A로 사용한다. 또한 상기 제1D F/F 218의 출력은 상기 제1, 제3, 제5논리곱 게이트 210, 214, 226으로 궤환되며, 스위칭 소자 220을 제어하는 신호로 사용된다. 상기 스위칭 소자 220의 일 측은 접지 시키고 다른 일 측으로는 저항 R1을 거쳐 풀-업 전압 Vpu가 인가되며, 상기 제1D F/F 218의 출력에 의해 스위칭 되어 버스 사이클 대기신호 READY_A가 발생된다.The 1D F / F 218 latches the output of the first logic gate 226 applied to the input terminal D by the clock signal CLK applied to the clock terminal C. The output by the latch is used as the gate selection signal GATE_B, and the output is inverted through the inverter 222 and used as the gate selection signal GATE_A. The output of the 1D F / F 218 is fed back to the first, third, and fifth logical gates 210, 214, and 226, and is used as a signal for controlling the switching element 220. One side of the switching element 220 is grounded and a pull-up voltage Vpu is applied to the other side via a resistor R1, and is switched by the output of the 1D F / F 218 to generate a bus cycle standby signal READY_A.

한편, 상기 제2D F/F 232는 클럭단 C로 인가되는 클럭신호 CLK에 의해 입력단 D로 인가되는 상기 제2논리합 게이트 230의 출력을 래치 한다. 상기 래치에 의한 출력은 상기 제2, 제3, 제4, 제6논리곱 게이트 212, 214, 224, 228로 궤환되며, 스위칭 소자 234를 제어하는 신호로 사용된다. 상기 스위칭 소자 234의 일 측은 접지 시키고 다른 일 측으로는 저항 R2를 거쳐 풀-업 전압 Vpu가 인가되며, 상기 제2D F/F 232의 출력에 의해 스위칭 되어 버스 사이클 대기신호 READY_B가 발생된다.Meanwhile, the 2D F / F 232 latches the output of the second logic gate 230 applied to the input terminal D by the clock signal CLK applied to the clock terminal C. The output by the latch is fed back to the second, third, fourth, and sixth logical gates 212, 214, 224, and 228, and is used as a signal for controlling the switching element 234. One side of the switching element 234 is grounded, and a pull-up voltage Vpu is applied to the other side through a resistor R2, and is switched by the output of the second D F / F 232 to generate a bus cycle wait signal READY_B.

또한 상기 제1D F/F 218의 출력, 즉 상기 GATE_B는 상기 클럭신호 CLK에 의해 접지 전압을 래치 하는 제3D F/F 240의 프리-셋(PRE단)으로 인가되고 상기 제3D F/F 240의 출력은 버스 선택신호 BUS_SEL로 사용된다. 한편, 상기 제3D F/F 240의 출력은 제1, 제2멀티플렉서 236과 238의 제어신호로 사용된다. 상기 제1멀티플렉서 236은 상기 제어신호에 의해 상기 CS_A 또는 CS_B를 먹싱하여 공유메모리 선택신호 MEM_SB를 출력하며, 상기 제2멀티플렉서 238은 상기 제어신호에 의해 상기 RW_A 또는 RW_B를 먹싱하여 독출/기록신호 RW를 출력한다.In addition, the output of the 1D F / F 218, that is, the GATE_B is applied to the pre-set (PRE stage) of the 3D F / F 240 latching the ground voltage by the clock signal CLK and the 3D F / F 240 The output of is used as the bus select signal BUS_SEL. The output of the 3D F / F 240 is used as a control signal of the first and second multiplexers 236 and 238. The first multiplexer 236 muxes the CS_A or CS_B by the control signal to output a shared memory selection signal MEM_SB, and the second multiplexer 238 muxes the RW_A or RW_B by the control signal to read / write the signal RW. Outputs

상기한 도 1과 도 2의 구성에서 사용하는 입력 및 출력 신호의 파형은 도 3에 도시한 바와 같다.The waveforms of the input and output signals used in the above-described configuration of FIGS. 1 and 2 are as shown in FIG. 3.

이하 본 발명의 바람직한 일 실시 예로 상기 도 1 및 도 2에 도시한 구성이 도 3에 도시한 입력 신호 파형이 인가됨에 의해 수행하는 동작을 상세히 설명한다. 우선 이하 설명되어질Hereinafter, an operation performed by applying the input signal waveform shown in FIG. 3 to the configuration shown in FIGS. 1 and 2 will be described in detail. First, the following description

첫 번째로 CS_A가 단독으로 입력되는 도 3의 310∼312 구간에서와 같이 프로세서 110이 단독으로 공유메모리 130의 사용을 요구한 경우를 설명한다.First, a case in which the processor 110 requests the use of the shared memory 130 by itself, as in the section 310 to 312 of FIG. 3 in which CS_A is input by itself, will be described.

도 3에 도시한 310∼312 구간에서 프로세서 110의 요구에 의해 디코더 170이 공유메모리 130의 사용을 요구하는 CS_A를 발생한다. 상기 공유메모리 130의 사용을 요구하는 CS_A는 현재의 레벨을 다른 레벨로 천이 시키는 것을 의미하는데, 예를 들면 하이 레벨에서 로우 레벨로 천이 하여 로우 레벨을 유지하거나 로우 레벨에서 하이 레벨로 천이 하여 하이 레벨을 유지하도록 할 수 있다. 도 3의 310∼312 구간에서는 하이 레벨을 로우 레벨로 천이 하여 로우 레벨을 유지하는 경우로 도시하였다.The decoder 170 generates CS_A requesting the use of the shared memory 130 at the request of the processor 110 in the sections 310 to 312 shown in FIG. CS_A, which requires the use of the shared memory 130, means that the current level is shifted to another level. For example, CS_A transitions from a high level to a low level to maintain a low level or a high level by transitioning from a low level to a high level. Can be maintained. In FIG. 3, the high level is changed to the low level to maintain the low level.

따라서 상기 310 시점에서 CS_A는 로우 레벨로 천이 되고, CS_B는 하이 레벨을 유지한다. 이로 인해 각 논리곱 게이트의 출력은 다음과 같다. 상기 하이 레벨의 CS_B와 하이 레벨의 GATE_B가 인가되는 제1논리곱 게이트 210과 상기 하이 레벨의 CS_B와 하이 레벨의 D F/F 232 출력이 인가되는 제2논리곱 게이트 212는 하이 레벨을 출력하게 된다. 논리곱 게이트 224와 226은 상기 로우 레벨의 CS_A에 의해 로우 레벨을 출력하며, 상기 하이 레벨의 CS_A가 인버팅 되어 인가되는 논리곱 게이트 228 또한 로우 레벨을 출력한다.Therefore, at time 310, CS_A transitions to a low level and CS_B maintains a high level. Because of this, the output of each AND gate is The first logical gate 210 to which the high level CS_B and the high level GATE_B are applied and the second logical gate 212 to which the high level CS_B and the high level DF / F 232 output are applied output a high level. . The AND gates 224 and 226 output the low level by the low level CS_A, and the AND gate 228 to which the high level CS_A is inverted and also outputs the low level.

상기한 각 논리곱 게이트들의 출력으로 인해 상기 논리곱 게이트 210 내지 214의 출력을 입력으로 하는 논리합 게이트 226은 논리곱 게이트 214의 출력에 관계없이 하이 레벨을 출력하며, 상기 논리곱 게이트 224 내지 228의 출력을 입력으로 하는 논리합 게이트 230은 로우 레벨을 출력한다. 따라서 상기 논리합 게이트 226의 출력을 입력으로 하고 시스템 클럭 CLK를 클럭신호로 하는 D F/F 218은 상기 클럭신호가 상승 에지 하는 도 3의 326 시점에서 하이 레벨을 출력하여 로우 레벨의 GATE_A 및 READY_A와 하이 레벨의 GATE_B를 얻게 된다. 한편 상기 논리합 게이트 230의 출력을 입력으로 하고 시스템 클럭 CLK를 클럭신호로 하는 D F/F 232는 상기 클럭신호가 상승 에지 하는 도 3의 326 시점에서 로우 레벨을 출력하여 하이 레벨의 READY_B를 얻게 된다.The OR gate 226 having the output of the AND gates 210 to 214 as the input due to the output of the AND gates outputs a high level irrespective of the output of the AND gate 214 and outputs the AND gates 224 to 228. The OR gate 230 that takes an output as an output outputs a low level. Therefore, the DF / F 218 which uses the output of the OR gate 226 as the input and the system clock CLK as the clock signal, outputs a high level at the time point 326 of FIG. 3 at which the clock signal rises and outputs a low level of GATE_A and READY_A. You get a GATE_B of the level. Meanwhile, the D F / F 232 having the output of the OR gate 230 as the clock signal and the system clock CLK as the clock signal outputs a low level at the time point 326 of FIG. 3 when the clock signal rises to obtain a high level READY_B.

다음으로 상기 CS_A가 하이 레벨로 천이 하는 312 시점에서는 논리곱 게이트 226으로 하이 레벨의 GATE_B와 하이 레벨의 CS_A가 입력됨에 따라 상기 D F/F 232의 입력으로 하이 레벨이 인가된다. 상기 하이 레벨은 도 3의 328 시점에서 인가되는 클럭신호에 의해 래치 되어 출력되며, 상기 출력되는 하이 레벨은 스위칭 소자 234를 온 시켜 READY_B를 로우 레벨로 전이시킨다.Next, at time 312 when the CS_A transitions to the high level, the high level is applied to the input of the D F / F 232 as the high level GATE_B and the high level CS_A are input to the AND gate 226. The high level is latched and output by a clock signal applied at time 328 of FIG. 3, and the output high level turns on the switching element 234 to transition READY_B to a low level.

따라서 상기 READY_B는 프로세서 120으로 제공되며, 상기 READY_B가 하이 레벨에서 로우 레벨로 천이될 때까지 상기 프로세서 120은 공유메모리 130을 억세스할 수 없는 대기상태가 유지된다. 이때 프로세서 110으로 제공되는 READY_A는 로우 레벨을 유지하므로 상기 프로세서 110은 공유메모리 130의 억세스가 가능한 활성상태가 된다. 또한 데이터 버스의 경로를 연결하는 게이트 선택신호 GATE_A, GATE_B는 도 3의 310∼312 구간에서 각각 로우 레벨과 하이 레벨을 출력하며, 상기 로우 레벨의 GATE_A에 의해 게이트 버퍼 150은 제어되어 상기 프로세서 110과 상기 공유메모리 130 간의 데이터 버스 경로를 연결한다. 한편 상기 하이 레벨의 GATE_B에 의해 게이트 버퍼 160은 제어되어 상기 프로세서 120과 상기 공유메모리 130 간의 데이터 버스 경로를 차단한다.Accordingly, the READY_B is provided to the processor 120, and the processor 120 maintains a standby state in which the shared memory 130 cannot be accessed until the READY_B transitions from the high level to the low level. In this case, since the READY_A provided to the processor 110 maintains a low level, the processor 110 is in an active state in which the shared memory 130 can be accessed. In addition, the gate selection signals GATE_A and GATE_B connecting the paths of the data bus output low and high levels, respectively, in sections 310 to 312 of FIG. 3, and the gate buffer 150 is controlled by the low level GATE_A to control the processor 110. The data bus path between the shared memories 130 is connected. The gate buffer 160 is controlled by the high level GATE_B to block the data bus path between the processor 120 and the shared memory 130.

한편 D F/F 240은 상기 GATE_B를 프리셋 신호로 제공받아 활성상태의 프로세서와 공유메모리 130의 데이터 버스의 경로를 연결하기 위한 버스 선택신호 BUS_SEL을 출력한다. 즉, 도 3S의 310∼312 구간에서는 상기한 동작에 의해 하이 레벨의 GATE_B가 출력됨에 따라 상기 D F/F 240은 입력 데이터와 클럭신호에 관계없이 프리셋 되어 하이 레벨의 BUS_SEL을 출력한다. 또한 상기 BUS_SEL은 멀티플렉서 236과 238의 제어단인 S0으로 제공되어 상기 멀티플렉서 236과 238의 먹싱 동작을 제어함에 따라 공유메모리 선택신호 MEM_SEL과 공유메모리 독출/기록신호 RW에 영향을 미치게 된다. 이를 상기 멀티플렉서 236과 238이 로우 레벨의 제어신호에 의해 입력단 D0의 입력을 먹싱하여 출력하고, 하이 레벨의 제어신호에 의해 입력단 D0의 입력을 먹싱 하여 출력하는 것으로 예를 들어 설명한다. 상기 멀티플렉서 236의 입력단 D0으로는 상기 CS_B, 입력단 D1로는 CS_A가 제공되며, 상기 하이 레벨의 제어신호에 의해 상기 도 3에도 도시한 바와 같이 310∼312 구간에서 입력단 D1로 제공되는 로우 레벨의 CS_A를 MEM_SEL로 출력한다. 또한 상기 멀티플렉서 238의 입력단 D0으로는 RW_B, 입력단 D1로는 RW_A가 제공되며, 상기 하이 레벨의 제어신호에 의해 입력단 D1로 제공되는 RW_A를 RW로 출력한다.Meanwhile, the D F / F 240 receives the GATE_B as a preset signal and outputs a bus select signal BUS_SEL for connecting a path of an active processor and the data bus of the shared memory 130. That is, in the sections 310 to 312 of FIG. 3S, as the high level GATE_B is output by the above operation, the D F / F 240 is preset regardless of the input data and the clock signal to output the high level BUS_SEL. In addition, the BUS_SEL is provided to S0 which is a control terminal of the multiplexers 236 and 238 to control the muxing operation of the multiplexers 236 and 238 to affect the shared memory selection signal MEM_SEL and the shared memory read / write signal RW. For example, the multiplexers 236 and 238 mux and output the input of the input terminal D0 by the low level control signal, and mux the input of the input terminal D0 by the high level control signal. CS_B is provided to the input terminal D0 of the multiplexer 236 and CS_A is provided to the input terminal D1. The low level CS_A provided to the input terminal D1 is provided in a section 310 to 312 as shown in FIG. 3 by the high level control signal. Output to MEM_SEL. In addition, RW_B is provided as an input terminal D0 of the multiplexer 238, and RW_A is provided as an input terminal D1. The RW_A provided to the input terminal D1 is outputted to RW by the high level control signal.

따라서 상기 프로세서 110이 활성상태에 있는 310∼312 구간에서 출력되는 하이 레벨의 BUS_SEL에 따라 상기 프로세서 110과 공유메모리 130 간의 데이터 버스를 연결하도록 먹스(MUX) 140이 제어된다. 또한 상기 프로세서 110으로부터 인가되는 상기 CS_A에 따른 상기 MEM_SEL로 상기 프로세서 110의 억세스가 있을 것임을 상기 공유메모리 130에 알리게 되며, 상기 프로세서 110으로부터 인가되는 RW_A에 따른 RW로 상기 프로세서 110의 독출 또는 기록이 있을 것임을 상기 공유메모리 130에 알린다.Therefore, the MUX 140 is controlled to connect the data bus between the processor 110 and the shared memory 130 according to the high level BUS_SEL output in the sections 310 to 312 in which the processor 110 is active. In addition, the MEM_SEL according to the CS_A applied from the processor 110 informs the shared memory 130 that the processor 110 will be accessed, and the RW according to RW_A applied from the processor 110 may read or write the processor 110. To the shared memory 130.

두 번째로 CS_B가 단독으로 입력되는 도 3의 314∼316 구간에서와 같이 프로세서 120이 단독으로 공유메모리 130의 사용을 요구한 경우를 설명한다.Second, the case where the processor 120 requests the use of the shared memory 130 by itself as in the section 314 to 316 of FIG. 3 in which CS_B is input by itself is described.

도 3에 도시한 314∼316 구간에서 프로세서 120의 요구에 의해 디코더 180이 공유메모리 130의 사용을 요구하는 CS_B를 발생한다. 상기 공유메모리 130의 사용을 요구하는 CS_B는 상기한 CS_A와 동일하게 현재의 레벨을 다른 레벨로 천이 시키는 것을 의미한다. 도 3의 314∼316 구간에서는 하이 레벨을 로우 레벨로 천이 하여 로우 레벨을 유지하는 경우로 도시하였다.The decoder 180 generates CS_B requesting the use of the shared memory 130 at the request of the processor 120 in the sections 314 to 316 shown in FIG. CS_B requesting the use of the shared memory 130 means that the current level is changed to another level in the same manner as the CS_A. In FIG. 3, the high level transitions to the low level to maintain the low level.

따라서 상기 314 시점에서 CS_B는 로우 레벨로 천이 되고, CS_A는 하이 레벨을 유지한다. 이로 인해 각 논리곱 게이트의 출력은 다음과 같다. 상기 하이 레벨의 CS_A와 하이 레벨의 D F/F 232 출력이 인가되는 논리곱 게이트 224, 상기 하이 레벨의 CS_A와 하이 레벨의 GATE_B가 인가되는 논리곱 게이트 226, 상기 로우 레벨의 CS_B를 인버팅한 하이 레벨과 하이 레벨의 D F/F 232 출력이 인가되는 논리곱 게이트 228은 모두 하이 레벨을 출력하게 된다. 반면 논리곱 게이트 210과 212는 상기 로우 레벨의 CS_B에 의해 로우 레벨을 출력하며, 논리곱 게이트 214는 상기 하이 레벨의 CS_A가 인버팅 되어 인가되는 로우 레벨과 상기 하이 레벨의 D F/F 232 출력이 인버팅되어 인가되는 로우 레벨에 의해 로우 레벨을 출력한다.Therefore, at time 314, CS_B transitions to a low level, and CS_A maintains a high level. Because of this, the output of each AND gate is Logical gate 224 to which the high level CS_A and high level DF / F 232 output are applied, Logical gate 226 to which the high level CS_A and high level GATE_B are applied, and High that inverts the low level CS_B The AND gate 228 to which the DF / F 232 output of the level and the high level are applied both outputs a high level. On the other hand, the AND gates 210 and 212 output the low level by the low level CS_B, and the AND gate 214 outputs the low level to which the high level CS_A is inverted and the high level DF / F 232 output. The low level is output by the low level being inverted and applied.

상기한 각 논리곱 게이트들의 출력으로 인해 상기 논리곱 게이트 210 내지 214의 출력을 입력으로 하는 논리합 게이트 226은 로우 레벨을 출력하며, 상기 논리곱 게이트 224 내지 228의 출력을 입력으로 하는 논리합 게이트 230은 하이 레벨을 출력한다.Due to the output of the AND gates, the OR gate 226 which receives the output of the AND gates 210 to 214 outputs a low level, and the OR gate 230 which uses the output of the AND gates 224 to 228 as an input. Output a high level.

따라서 상기 D F/F 232는 상기 클럭신호가 상승 에지 하는 도 3의 330 시점에서 하이 레벨을 출력하여 로우 레벨의 READY_B를 얻게 된다. 한편 상기 D F/F 218은 상기 클럭신호가 상승 에지 하는 도 3의 330 시점에서 로우 레벨을 출력하여 GATE_A 및 READY_A가 하이 레벨로 천이 되며, 로우 레벨의 GATE_B가 하이 레벨로 천이 된다.Accordingly, the D F / F 232 outputs a high level at a time point 330 of FIG. 3 when the clock signal rises to obtain a low level READY_B. On the other hand, the D F / F 218 outputs a low level at the time point 330 of FIG. 3 when the clock signal rises, so that GATE_A and READY_A transition to a high level, and GATE_B of a low level transitions to a high level.

다음으로 상기 CS_B가 하이 레벨로 천이 하는 도 3의 316 시점에서는 논리곱 게이트 212로 하이 레벨의 D F/F 232의 출력과 하이 레벨의 CS_B가 입력됨에 따라 상기 D F/F 218의 입력으로 하이 레벨이 인가된다. 상기 하이 레벨은 도 3의 334 시점에서 인가되는 클럭신호에 의해 래치 되어 출력되며, 상기 출력되는 하이 레벨은 상기 GATE_A와 READY_A를 로우 레벨로 상기 READY_B를 하이 레벨로 천이 시킨다.Next, at time 316 of FIG. 3, when the CS_B transitions to the high level, the high level is inputted to the DF / F 218 as the output of the high level DF / F 232 and the high level CS_B are input to the AND gate 212. Is approved. The high level is latched and output by the clock signal applied at time 334 of FIG. 3, and the output high level transitions the GATE_A and READY_A to the low level and the READY_B to the high level.

따라서 도 3의 330 시점에서 334 시점까지 하이 레벨의 READY_A가 프로세서 110으로 제공되며, 상기 하이 레벨의 READY_A가 제공되는 동안 상기 프로세서 110은 공유메모리 130을 억세스할 수 없는 대기상태를 유지한다. 이때 프로세서 120으로 제공되는 READY_B는 로우 레벨을 유지하므로 상기 프로세서 120은 공유메모리 130의 억세스가 가능한 활성상태가 된다. 또한 데이터 버스의 경로를 연결하는 게이트 선택신호 GATE_A, GATE_B는 상기 READY_A가 하이 레벨을 유지하는 구간에서 각각 하이 레벨과 로우 레벨을 출력하며, 상기 하이 레벨의 GATE_A에 의해 게이트 버퍼 150은 제어되어 상기 프로세서 110과 상기 공유메모리 130 간의 데이터 버스 경로를 차단한다. 한편 로우 레벨의 GATE_B에 의해 게이트 버퍼 160은 제어되어 상기 프로세서 120과 상기 공유메모리 130 간의 데이터 버스 경로를 연결한다.Accordingly, the high level READY_A is provided to the processor 110 from the time point 330 to the time 334 of FIG. 3, and the processor 110 maintains a standby state in which the shared memory 130 cannot be accessed while the high level READY_A is provided. In this case, since the READY_B provided to the processor 120 maintains a low level, the processor 120 is in an active state in which the shared memory 130 can be accessed. In addition, the gate selection signals GATE_A and GATE_B connecting the paths of the data bus output high and low levels, respectively, in the period where the READY_A maintains the high level, and the gate buffer 150 is controlled by the high level GATE_A to control the processor. Blocks the data bus path between 110 and the shared memory 130. The gate buffer 160 is controlled by the low level GATE_B to connect the data bus path between the processor 120 and the shared memory 130.

이때 상기 로우 레벨의 GATE_B가 프리셋단 PRE로 인가되는 D F/F 240은 상기 GATE_B가 로우 레벨로 천이된 후 클럭신호가 최초 상승 에지하는 도 3의 332 시점에서 접지 레벨(로우 레벨)을 래치 하여 로우 레벨의 BUS_SEL을 출력한다. 또한 상기 BUS_SEL은 멀티플렉서 236과 238의 제어단인 S0으로 제공되어 상기 멀티플렉서 236과 238의 먹싱 동작을 제어하게 된다. 예컨대 상기 멀티플렉서 236과 238이 로우 레벨의 제어신호에 의해 입력단 D0의 입력을 먹싱하여 출력하는 경우 상기 멀티플렉서 236과 238은 상기 제어신호가 로우 레벨로 천이 되는 시점인 도 3의 332 시점에서 상기 CS_B와 RW_B를 각각 MEM_SEL과 RW로 출력한다.In this case, the low level GATE_B is applied to the preset stage PRE, and the DF / F 240 latches the ground level (low level) at 332 of FIG. 3 when the clock signal first rises after the GATE_B transitions to the low level. Outputs the level BUS_SEL. In addition, the BUS_SEL is provided to S0 which is a control terminal of the multiplexers 236 and 238 to control the muxing operation of the multiplexers 236 and 238. For example, when the multiplexers 236 and 238 mux the input of the input terminal D0 by a low level control signal, the multiplexers 236 and 238 are connected to the CS_B at a time point 332 of FIG. 3 when the control signal transitions to a low level. Output RW_B to MEM_SEL and RW, respectively.

따라서 상기 프로세서 120이 활성상태에 있는 330∼334 구간에서 출력되는 로우 레벨의 BUS_SEL에 따라 상기 프로세서 120과 공유메모리 130 간의 데이터 버스를 연결하도록 먹스(MUX) 140이 제어된다. 또한 상기 MEM_SEL로 상기 프로세서 120의 억세스가 있을 것임을 상기 공유메모리 130에 알리게 되며, 상기 RW로 상기 프로세서 120의 독출 또는 기록이 있을 것임을 상기 공유메모리 130에 알린다.Therefore, the MUX 140 is controlled to connect the data bus between the processor 120 and the shared memory 130 according to the low-level BUS_SEL output in the period 330 to 334 when the processor 120 is active. In addition, the MEM_SEL notifies the shared memory 130 that the processor 120 is to be accessed, and informs the shared memory 130 that there is a read or write of the processor 120 to the RW.

세 번째로 CS_A와 CS_B가 같이 입력되는 도 3의 318∼324 구간에서와 같이 프로세서 110과 120이 같이 공유메모리 130의 사용을 요구한 경우를 설명한다.Third, a case in which the processors 110 and 120 require the use of the shared memory 130 as in the sections 318 to 324 of FIG. 3 in which CS_A and CS_B are input together will be described.

먼저 도 3의 318 시점에서 CS_A의 상태가 천이되면 도 2의 상세 구성을 가지는 제어회로 100은 상술한 310 시점에서 이루어진 바와 같은 동작을 수행하여 프로세서 110이 활성상태, 프로세서 120이 대기상태가 되도록 각종 신호를 발생한다. 이때의 동작은 상기 첫 번째의 경우에서 상세히 설명하였으므로 더 이상 언급하지 않는다.First, when the state of CS_A transitions at the time point 318 of FIG. 3, the control circuit 100 having the detailed configuration of FIG. 2 performs the same operation as described above at time 310 so that the processor 110 is in the active state and the processor 120 is in the standby state. Generate a signal. The operation at this time has been described in detail in the first case and will not be described anymore.

이때 상기 프로세서 110이 상기 공유메모리 130을 억세스하고 있는 동안 상기 프로세서 120으로부터 상태가 천이된 CS_B가 제공된다고 하여도 상기 프로세서 110은 상기 공유메모리 130을 계속 억세스 한다. 이를 도 3에 도시한 320 시점을 참조하여 보다 상세히 설명하면 다음과 같다.The processor 110 continues to access the shared memory 130 even if the CS_B transitioned from the processor 120 is provided while the processor 110 is accessing the shared memory 130. This will be described in more detail with reference to the time point 320 illustrated in FIG. 3.

상기 프로세서 110의 활성상태(CS_A가 로우 레벨인 상태)에 따라 현재 GATE_B, READY_B는 하이 레벨을 유지하고 있으며, GATE_A, READY_A는 로우 레벨을 유지하고 있게 된다. 상기와 같은 상태에서 CS_B가 로우 레벨로 천이되더라도 논리곱 게이트 214가 하이 레벨을 출력함에 따라 논리합 게이트 226 또한 하이 레벨을 출력하게 된다. 따라서 상기 CS_B의 상태가 로우 레벨로 천이되더라도 D F/F 218은 하이 레벨을 출력하게 되어 GATE_A, READY_A, GATE_B가 상기한 상태를 그대로 유지하게 된다. 또한 상기 로우 레벨의 CS_B가 논리곱 게이트 228에 입력된다고 하여도 상기 논리곱 게이트 228은 로우 레벨의 D F/F 232의 출력에 의해 계속 로우 레벨을 출력하게 됨에 따라 논리합 게이트 230 또한 로우 레벨을 출력하게 된다. 따라서 상기 CS_B의 상태가 로우 레벨로 천이되더라도 D F/F 232는 로우 레벨을 출력하게 되어 READY_B 또한 상기한 상태인 로우 레벨을 그대로 유지하게 된다. 상기한 바와 같이 상기 CS_B의 상태가 로우 레벨로 천이되더라도 상기 프로세서 110의 공유메모리 130을 억세스 하는데 요구되는 신호에는 변화가 없다. 또한 BUS_SEL, RW 및 MEM_SEL은 상기 GATE_B의 상태가 유지됨에 따라 이전 상태를 그대로 유지한다.According to the active state of the processor 110 (the state where CS_A is at a low level), the current GATE_B and READY_B are kept at a high level, and the GATE_A and READY_A are at a low level. In this state, even if CS_B transitions to the low level, the AND gate 226 also outputs a high level as the AND gate 214 outputs a high level. Therefore, even if the state of the CS_B transitions to a low level, the D F / F 218 outputs a high level so that the GATE_A, READY_A, and GATE_B maintain the above state. In addition, even if the low-level CS_B is input to the AND gate 228, the AND gate 228 continues to output the low level by the output of the low-level DF / F 232, so that the OR gate 230 also outputs the low level. do. Therefore, even if the state of the CS_B transitions to a low level, the D F / F 232 outputs a low level so that the READY_B also maintains the low level. As described above, even when the state of the CS_B transitions to a low level, there is no change in the signal required to access the shared memory 130 of the processor 110. In addition, BUS_SEL, RW, and MEM_SEL maintain the previous state as the state of GATE_B is maintained.

다음으로 상기 CS_B가 로우 레벨을 그대로 유지하고 있고, 공유메모리 130을 억세스하고 있던 프로세서 110으로부터 하이 레벨로 천이된 CS_A가 제공되는 322 시점의 동작을 설명한다.Next, an operation at time 322 where the CS_B maintains the low level and the CS_A transitioned to the high level from the processor 110 that is accessing the shared memory 130 is provided.

상기 CS_A가 하이 레벨로 상태가 천이되면 논리곱 게이트 214가 로우 레벨을 출력하게 됨에 따라 논리합 게이트 226 또한 로우 레벨을 출력하게 된다. 따라서 상기 로우 레벨을 입력으로 하는 D F/F 218은 338 시점에서 상승 에지 하는 클럭신호에 의해 로우 레벨을 출력하게 됨에 따라 GATE_A, READY_A가 하이 레벨로 천이 되며, GATE_B가 로우 레벨로 천이 된다. 또한 상기 하이 레벨의 CS_A는 논리곱 게이트 226으로 입력되어 상기 논리곱 게이트 226은 하이 레벨을 출력하게 됨에 따라 논리합 게이트 230 또한 하이 레벨을 출력하게 된다. 따라서 상기 하이 레벨을 입력으로 하는 D F/F 232는 상기 도 3의 338 시점에서 상기 하이 레벨을 래치 하게 되며, 상기 하이 레벨에 의해 스위칭 소자 234가 스위칭 되어 로우 레벨로 상태가 천이된 READY_B가 출력된다.When the state of the CS_A transitions to the high level, the OR gate 214 outputs the low level, so that the OR gate 226 also outputs the low level. Therefore, the D F / F 218 inputting the low level outputs the low level by the clock signal rising edge at 338, so that the GATE_A and READY_A transition to the high level, and the GATE_B transitions to the low level. In addition, the CS_A of the high level is input to the AND gate 226 so that the AND gate 226 outputs a high level, and thus the AND gate 230 also outputs a high level. Therefore, the DF / F 232 which inputs the high level latches the high level at the time point 338 of FIG. 3, and the READY_B is outputted when the switching element 234 is switched by the high level, and the state transitions to the low level. .

한편 BUS_SEL은 상기 GATE_B의 상태가 로우 레벨로 천이된 후 클럭신호가 최초로 상승 에지 하는 340 시점에서 로우 레벨로 천이 된다. MEM_SEL은 322 시점에서 D1로 제공되는 CS_A의 상태인 하이 레벨로 천이 되며, 상기 340 시점에서 상기 BUS_SEL의 상태가 로우 레벨로 천이됨에 따라 CS_B의 상태인 로우 레벨로 천이하게 된다. 또한 RW는 322 시점에서 D1로 제공되는 RW_A의 상태인 하이 레벨로 천이 되며, 상기 340 시점에서 상기 BUS_SEL의 상태가 로우 레벨로 천이됨에 따라 RW_B의 상태인 하이 레벨을 유지하게 된다.On the other hand, BUS_SEL transitions to the low level at 340 when the clock signal first rises after the state of the GATE_B transitions to the low level. The MEM_SEL transitions to the high level, which is the state of CS_A provided to D1 at 322, and transitions to the low level of the state of CS_B as the state of the BUS_SEL transitions to the low level, at 340. In addition, the RW transitions to the high level, which is the state of RW_A, which is provided to D1 at time 322, and maintains the high level of the RW_B state as the state of BUS_SEL transitions to the low level at time 340.

상술한 동작에 의해 발생되는 각종 신호에 의해 공유메모리 130을 프로세서 110이 점유한 상태에서 프로세서 120이 점유하는 상태로 전환이 이루어진다.By the various signals generated by the above-described operation, the shared memory 130 is switched from the state occupied by the processor 110 to the state occupied by the processor 120.

상기 프로세서 120이 공유메모리 130을 점유하는 것은 CS_B의 상태가 하이 레벨로 천이되는 도 3의 324 시점까지 유지된다. 상기 324 시점에서 이루어지는 일련의 동작은 앞에서 상세히 설명되어진 316 시점의 동작과 동일함에 따라 중복 설명을 하지 않는다.The occupation of the shared memory 130 by the processor 120 is maintained until point 324 of FIG. 3 in which the state of CS_B transitions to a high level. The series of operations performed at the time point 324 is the same as the operation at the time point 316 described in detail above, and thus will not be repeated.

상기한 바와 같이 본 발명에 의해 구현되어지는 제어회로 100은 각 프로세서 110과 120 및 해당 디코더 170과 180으로부터 입력되는 메모리 선택 요구신호 CS_A, CS_B를 수용하고, 상기 신호를 먼저 발생한 프로세서에게 공유메모리 130의 사용 우선권을 부여한다. 이때 우선권을 가진 프로세서가 공유메모리 130을 억세스할 수 있도록 상기 제어회로 100은 공유메모리 130 제어에 필요한 신호들(공유메모리 선택신호 MEM_SB, 메모리 독출/기록신호 RW)을 생성하고,해당 프로세서가 점유하고 있는 데이터 버스의 게이트 버퍼와 어드레스 버스의 경로를 연결한다.As described above, the control circuit 100 implemented by the present invention accepts the memory selection request signals CS_A and CS_B input from each of the processors 110 and 120 and the corresponding decoders 170 and 180 and shares the signal to the processor that first generated the signal. Give priority to use. In this case, the control circuit 100 generates signals (shared memory selection signal MEM_SB, memory read / write signal RW) necessary for controlling the shared memory 130 so that the processor having priority accesses the shared memory 130, and the processor occupies the same. Connect the gate buffer of the data bus and the path of the address bus.

또한 현재 버스를 점유하고 있는 프로세서의 버스 사이클이 종료되면 다음 프로세서에게 제어권이 부여되는데, 이때에도 상기 제어회로 100은 해당 프로세서의 메모리 억세스에 필요한 신호들을 생성하며, 상대측 프로세서의 어드레스 및 데이터 버스의 경로를 막고 동시에 상기 제어권이 부여된 프로세서가 점유하는 어드레스 및 데이터 버스를 연결한다.In addition, when the bus cycle of the processor occupying the current bus is terminated, control is given to the next processor. In this case, the control circuit 100 generates signals necessary for accessing the memory of the corresponding processor, and the address of the other processor and the path of the data bus. And at the same time connect the address and data buses occupied by the processor granted the control right.

이외에도 상기 제어회로 100이 행하는 중요한 기능은 제어에 우선권을 갖게된 프로세서가 버스 사이클을 진행하고 있을 때 다음 순위의 프로세서가 메모리 억세스 사이클을 진행할 수 없도록 하는 것이다. 상기 기능은 프로세서의 버스 사이클 대기신호 READY_A, READY_B를 이용하여 구현하는데, 상기 제어회로 100은 우선 순위의 프로세서에게 "활성상태", 차순위의 프로세서에게 "대기상태"의 신호를 가하여 두 개의 프로세서가 버스상에서 충동하지 않도록 한다.In addition, an important function of the control circuit 100 is to prevent a processor of the next rank from performing a memory access cycle when a processor having priority to control is in a bus cycle. The function is implemented by using the bus cycle wait signals READY_A and READY_B of the processor. The control circuit 100 applies a signal of "active state" to a priority processor and a "wait state" to a next processor so that two processors are bused. Do not urge on the stomach.

상기한 바와 같이 본 발명은 다음과 같은 효과가 있다.As described above, the present invention has the following effects.

첫 번째로 각 프로세서의 공유메모리 억세스 요구에 의해 각각의 프로세서가 독립적으로 단일포트 메모리를 억세스할 수 있도록 하는 각종 제어신호들을 순수한 하드웨어만을 이용하여 생성하므로 소프트웨어를 이용하는 경우 보다 처리 속도를 향상시킬 수 있다.First of all, various control signals are generated using pure hardware to allow each processor to independently access a single port memory according to the shared memory access request of each processor. Therefore, the processing speed can be improved when using software. .

두 번째로 각 프로세서의 공유메모리 억세스 요구에 의해 각각의 프로세서가 독립적으로 단일포트 메모리를 억세스할 수 있도록 하는 제어를 위한 별도의 소프트웨어 구성이 필요 없이 순수한 하드웨어만을 이용하여 구현함에 따라 비용 절감의 효과가 있다.Secondly, the cost savings can be achieved by using pure hardware without the need for a separate software configuration for controlling each processor to independently access a single port of memory due to the shared memory access requirement of each processor. have.

세 번째로 각 프로세서의 공유메모리 억세스 요구에 의해 각각의 프로세서가 독립적으로 단일포트 메모리를 억세스하기 위해 각종 제어신호를 발생하는 제어회로의 구성을 동작 안정성이 높은 로직으로 구현함에 따라 시스템의 전반적인 성능을 향상시키는 효과가 있다.Third, the overall performance of the system can be improved by implementing the control circuit configuration that generates various control signals for each processor to access the single port memory independently by the request of shared memory access of each processor. There is an effect to improve.

Claims (15)

메모리 공유장치에 있어서,In the memory sharing device, 제1버스 사이클 대기신호에 의해 활성상태 또는 대기상태로 동작하고 상기 활성상태에서 제1메모리 독출/기록 요구신호를 발생하는 제1프로세서와,A first processor operating in an active state or a standby state by a first bus cycle wait signal and generating a first memory read / write request signal in the active state; 상기 제1버스 사이클 대기신호에 반하는 제2버스 사이클 대기신호에 의해 활성상태 또는 대기상태로 동작하고 상기 활성상태에서 제2메모리 독출/기록 요구신호를 발생하는 제2프로세서와,A second processor operating in an active state or in a standby state by a second bus cycle wait signal against the first bus cycle wait signal and generating a second memory read / write request signal in the active state; 상기 제1프로세서의 요구에 의해 제1메모리 선택 요구신호를 발생하는 제1디코더와,A first decoder for generating a first memory selection request signal at the request of the first processor; 상기 제2프로세서의 요구에 의해 제2메모리 선택 요구신호를 발생하는 제2디코더와,A second decoder for generating a second memory selection request signal at the request of the second processor; 메모리 선택신호에 의해 선택되고 독출/기록신호에 의해 데이터를 독출하거나 기록하는 동작을 수행하는 단일 포트 메모리와,A single port memory selected by the memory selection signal and performing an operation of reading or writing data by the read / write signal; 제1게이트 선택신호에 의해 상기 제1프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제1게이트 버퍼와,A first gate buffer controlling a path of a data bus connecting the first processor and the memory by a first gate selection signal; 상기 제1게이트 선택신호에 반하는 제2게이트 선택신호에 의해 상기 제2프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제2게이트 버퍼와,A second gate buffer controlling a path of a data bus connecting the second processor and the memory by a second gate selection signal that is opposed to the first gate selection signal; 상기 버스 선택신호에 의해 상기 제1프로세서의 어드레스 버스와 상기 제2프로세서의 어드레스 버스를 선택하여 상기 메모리로 연결하는 멀티플렉서와,A multiplexer configured to select an address bus of the first processor and an address bus of the second processor and connect the address bus of the first processor to the memory based on the bus selection signal; 상기 제1메모리 선택 요구신호와 상기 제2메모리 선택 요구신호의 입력 순위에 의해 상기 제1 및 제2버스 사이클 대기신호, 제1 및 제2게이트 선택신호, 메모리 선택신호 및 버스 선택신호를 출력하고, 상기 제1 및 제2메모리 독출/기록 요구신호에 의해 메모리 독출/기록신호를 출력하는 제어회로로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.Outputting the first and second bus cycle wait signals, the first and second gate selection signals, the memory selection signal, and the bus selection signal according to the input order of the first memory selection request signal and the second memory selection request signal; And a control circuit for outputting a memory read / write signal in response to the first and second memory read / write request signals. 제1항에 있어서, 상기 제어회로는,The method of claim 1, wherein the control circuit, 소정 클럭에 의해 입력신호를 래치 하여 상기 제2게이트 선택신호로 출력하는 제1래치부와,A first latch unit which latches an input signal by a predetermined clock and outputs the second gate selection signal; 상기 클럭에 의해 입력신호를 래치 하는 제2래치부와,A second latch unit for latching an input signal by the clock; 상기 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 논리 연산한 로직 레벨을 상기 제1래치부의 입력신호로 출력하는 제1입력신호 발생부와,A first input signal generator for outputting a logic level obtained by performing a logic operation on the output of the first memory selection request signal, the second gate selection signal, and the second latch unit as an input signal of the first latch unit; 상기 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 상기 제1입력신호 발생부의 출력에 반하는 로직 레벨을 얻을 수 있도록 논리 연산하여 상기 제2래치부의 입력신호로 출력하는 제2입력신호 발생부와,Outputs the first memory selection request signal, the second gate selection signal, and the output of the second latch unit to a logic level that is opposite to the output of the first input signal generator, and outputs the result as an input signal of the second latch unit. A second input signal generator for performing 상기 제2게이트 선택신호를 인버팅 하여 상기 제1게이트 선택신호와 상기 제1버스 사이클 대기신호로 출력하는 제1인버터와,A first inverter for inverting the second gate selection signal and outputting the first gate selection signal and the first bus cycle standby signal; 상기 제2래치부의 출력을 인버팅 하여 상기 제2버스 사이클 대기신호로 출력하는 제2인버터와,A second inverter for inverting the output of the second latch unit and outputting the second bus cycle standby signal; 상기 제2게이트 선택신호를 프리-셋 신호로 사용하고 상기 클럭에 의해 접지 레벨을 래치 하여 상기 버스 선택신호로 출력하는 제3래치부와,A third latch unit which uses the second gate selection signal as a preset signal and outputs the bus selection signal by latching a ground level by the clock; 상기 버스 선택신호에 의해 상기 제1메모리 선택 요구신호와 상기 제2메모리 선택 요구신호 중 어느 한 신호를 상기 메모리 선택신호로 출력하는 제1선택부와,A first selector configured to output one of the first memory select request signal and the second memory select request signal as the memory select signal by the bus select signal; 상기 버스 선택신호를 제어신호로 하여 상기 제1메모리 독출/기록 요구신호와 상기 제2메모리 독출/기록 요구신호 중 어느 한 신호를 독출/기록신호로 선택하여 출력하는 제2선택부로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a second selector configured to select and output any one of the first memory read / write request signal and the second memory read / write request signal as a read / write signal using the bus selection signal as a control signal. A memory sharing device of multiple processors. 제2항에 있어서, 상기 제1입력신호 발생부는,The method of claim 2, wherein the first input signal generator, 상기 제2메모리 선택 요구신호와 상기 제2게이트 선택신호를 논리곱 하는 제1논리곱 게이트와,A first logical gate that logically multiplies the second memory selection request signal by the second gate selection signal; 상기 제2메모리 선택 요구신호와 상기 제2래치부의 출력을 논리곱 하는 제2논리곱 게이트와,A second logical gate that ANDs the output of the second memory selection request signal and the second latch unit; 상기 제2게이트 선택신호와 상기 제1메모리 선택 요구신호를 인버팅한 신호와 상기 제2래치부의 출력을 인버팅한 신호를 논리곱 하는 제3논리곱 게이트와,A third logical gate that logically multiplies the signal inverting the second gate selection signal, the first memory selection request signal and the signal inverting the output of the second latch unit; 상기 제1논리곱 게이트 내지 상기 제3논리곱 게이트의 출력을 논리합 하여 상기 제1래치부의 입력신호로 출력하는 제1논리합 게이트로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a first logical sum gate configured to perform an OR of the outputs of the first logical gate and the third logical gate to output an input signal of the first latch unit. 제3항에 있어서, 상기 제2입력신호 발생부는,The method of claim 3, wherein the second input signal generator, 상기 제1메모리 선택 요구신호와 상기 제2래치부의 출력을 논리곱 하는 제4논리곱 게이트와,A fourth logical gate that logically multiplies the output of the first memory selection request signal by the second latch unit; 상기 제1메모리 선택 요구신호와 상기 제2게이트 선택신호를 논리곱 하는 제5논리곱 게이트와,A fifth logical gate that ANDs the first memory selection request signal and the second gate selection signal; 상기 제1게이트 선택신호를 인버팅한 신호와 상기 제2래치부의 출력을 논리곱 하는 제6논리곱 게이트와,A sixth logical gate that logically multiplies the signal inverting the first gate selection signal by the output of the second latch unit; 상기 제4논리곱 게이트 내지 상기 제6논리곱 게이트의 출력을 논리합 하여 상기 제2래치부의 입력신호로 출력하는 제2논리합 게이트로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a second logical sum gate configured to perform an OR operation on the outputs of the fourth to sixth logical gates and to output the input signal of the second latch unit. 2. 제4항에 있어서, 상기 제1래치부 내지 상기 제3래치부를 각각 지연 플립플럽으로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.The apparatus of claim 4, wherein each of the first latch portion to the third latch portion comprises a delay flip flop. 6. 제5항에 있어서, 상기 제1선택부와 상기 제2선택부를 각각 멀티플렉서로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.6. The apparatus of claim 5, wherein the first selector and the second selector each comprise a multiplexer. 제6항에 있어서, 상기 제1인버터는,The method of claim 6, wherein the first inverter, 상기 제2게이트 선택신호를 인버팅 하여 상기 제1게이트 선택신호로 출력하는 인버터와, 상기 제2게이트 선택신호에 의해 스위칭 하여 상기 제1버스 사이클 대기신호의 레벨을 결정하는 스위치로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And an inverter for inverting the second gate selection signal and outputting the first gate selection signal, and a switch for switching the second gate selection signal to determine the level of the first bus cycle standby signal. A memory sharing device of multiple processors. 제7항에 있어서, 상기 제2인버터를 상기 제2래치부의 출력에 의해 스위칭 하여 상기 제2버스 사이클 대기신호의 레벨을 결정하는 스위치로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.The memory sharing apparatus of claim 7, wherein the second inverter is configured to be switched by an output of the second latch unit to determine a level of the second bus cycle standby signal. 두 개의 프로세서가 하나의 단일 포트 메모리를 공유할 수 있도록 제어하는 장치에 있어서,An apparatus for controlling two processors to share one single port of memory, 소정 클럭에 의해 입력신호를 래치 하여 제2게이트 선택신호로 출력하는 제1래치부와,A first latch unit for latching an input signal by a predetermined clock and outputting the second gate selection signal; 상기 클럭에 의해 입력신호를 래치 하는 제2래치부와,A second latch unit for latching an input signal by the clock; 상기 두 개의 프로세서 중 제1프로세서로부터 제공되는 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 논리 연산한 로직 레벨을 상기 제1래치부의 입력신호로 출력하는 제1입력신호 발생부와,A first memory outputting a logic level obtained by performing a logic operation on a first memory selection request signal provided from a first processor of the two processors, the second gate selection signal, and an output of the second latch unit, as an input signal of the first latch unit; An input signal generator, 상기 두 개의 프로세서 중 제2프로세서로부터 제공되는 제1메모리 선택 요구신호와 상기 제2게이트 선택신호와 상기 제2래치부의 출력을 상기 제1입력신호 발생부의 출력에 반하는 로직 레벨을 얻을 수 있도록 논리 연산하여 상기 제2래치부의 입력신호로 출력하는 제2입력신호 발생부와,Logic operation to obtain a logic level that is opposite to the output of the first input signal generator from the first memory selection request signal, the second gate selection signal, and the output of the second latch unit provided from a second processor among the two processors. A second input signal generator for outputting an input signal of the second latch unit; 상기 제2게이트 선택신호를 인버팅 하여 제1게이트 선택신호와 상기 제1프로세서의 상태를 제어하는 제1버스 사이클 대기신호로 출력하는 제1인버터와,A first inverter for inverting the second gate selection signal and outputting the first gate selection signal and a first bus cycle wait signal for controlling a state of the first processor; 상기 제2래치부의 출력을 인버팅 하여 상기 제2프로세서의 상태를 제어하는 제2버스 사이클 대기신호로 출력하는 제2인버터와,A second inverter for inverting the output of the second latch unit and outputting the second bus cycle wait signal for controlling the state of the second processor; 상기 제2게이트 선택신호가 프리-셋단으로 제공되고 상기 클럭에 의해 접지 레벨을 래치 하여 버스 선택신호로 출력하는 제3래치부와,A third latch unit providing the second gate selection signal to a pre-set end and latching a ground level by the clock to output a bus selection signal; 상기 버스 선택신호에 의해 상기 제1메모리 선택 요구신호와 상기 제2메모리 선택 요구신호 중 어느 한 신호를 메모리 선택신호로 선택하여 상기 메모리로 출력하는 제1선택부와,A first selector configured to select one of the first memory select request signal and the second memory select request signal as a memory select signal and output the selected signal to the memory by the bus select signal; 상기 버스 선택신호를 제어신호로 하여 상기 제1프로세서의 메모리 독출/기록 요구신호와 상기 제2프로세서의 메모리 독출/기록 요구신호 중 어느 한 신호를 독출/기록신호로 선택하여 상기 메모리로 출력하는 제2선택부와,Selecting one of the memory read / write request signal of the first processor and the memory read / write request signal of the second processor as a read / write signal as the control signal and output the read / write signal to the memory; With 2 choices, 상기 제1게이트 선택신호에 의해 상기 제1프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제1게이트 버퍼와,A first gate buffer controlling a path of a data bus connecting the first processor and the memory by the first gate selection signal; 상기 제2게이트 선택신호에 의해 상기 제2프로세서와 상기 메모리를 연결하는 데이터 버스의 경로를 제어하는 제2게이트 버퍼와,A second gate buffer controlling a path of a data bus connecting the second processor and the memory by the second gate selection signal; 상기 버스 선택신호에 의해 상기 제1프로세서의 어드레스 버스와 상기 제2프로세서의 어드레스 버스 중 어느 하나를 선택하여 상기 메모리로 연결하는 멀티플렉서로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a multiplexer configured to select one of an address bus of the first processor and an address bus of the second processor by the bus selection signal, and connect the selected bus to the memory. 제9항에 있어서, 상기 제1입력신호 발생부는,The method of claim 9, wherein the first input signal generator, 상기 제2메모리 선택 요구신호와 상기 제2게이트 선택신호를 논리곱 하는 제1논리곱 게이트와,A first logical gate that logically multiplies the second memory selection request signal by the second gate selection signal; 상기 제2메모리 선택 요구신호와 상기 제2래치부의 출력을 논리곱 하는 제2논리곱 게이트와,A second logical gate that ANDs the output of the second memory selection request signal and the second latch unit; 상기 제2게이트 선택신호와 상기 제1메모리 선택 요구신호를 인버팅한 신호와 상기 제2래치부의 출력을 인버팅한 신호를 논리곱 하는 제3논리곱 게이트와,A third logical gate that logically multiplies the signal inverting the second gate selection signal, the first memory selection request signal and the signal inverting the output of the second latch unit; 상기 제1논리곱 게이트 내지 상기 제3논리곱 게이트의 출력을 논리합 하여 상기 제1래치부의 입력신호로 출력하는 제1논리합 게이트로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a first logical sum gate configured to perform an OR of the outputs of the first logical gate and the third logical gate to output an input signal of the first latch unit. 제10항에 있어서, 상기 제2입력신호 발생부는,The method of claim 10, wherein the second input signal generator, 상기 제1메모리 선택 요구신호와 상기 제2래치부의 출력을 논리곱 하는 제4논리곱 게이트와,A fourth logical gate that logically multiplies the output of the first memory selection request signal by the second latch unit; 상기 제1메모리 선택 요구신호와 상기 제2게이트 선택신호를 논리곱 하는 제5논리곱 게이트와,A fifth logical gate that ANDs the first memory selection request signal and the second gate selection signal; 상기 제1게이트 선택신호를 인버팅한 신호와 상기 제2래치부의 출력을 논리곱 하는 제6논리곱 게이트와,A sixth logical gate that logically multiplies the signal inverting the first gate selection signal by the output of the second latch unit; 상기 제4논리곱 게이트 내지 상기 제6논리곱 게이트의 출력을 논리합 하여 상기 제2래치부의 입력신호로 출력하는 제2논리합 게이트로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a second logical sum gate configured to perform an OR operation on the outputs of the fourth to sixth logical gates and to output the input signal of the second latch unit. 2. 제11항에 있어서, 상기 제1래치부 내지 상기 제3래치부를 각각 지연 플립플럽으로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.12. The apparatus of claim 11, wherein each of the first latch portion to the third latch portion comprises a delay flip flop. 제12항에 있어서, 상기 제1선택부와 상기 제2선택부를 각각 멀티플렉서로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.13. The apparatus of claim 12, wherein the first selector and the second selector each comprise a multiplexer. 제13항에 있어서, 상기 제1인버터는,The method of claim 13, wherein the first inverter, 상기 제2게이트 선택신호를 인버팅 하여 상기 제1게이트 선택신호를 출력하는 인버터와,An inverter for inverting the second gate selection signal and outputting the first gate selection signal; 상기 제2게이트 선택신호에 의해 스위칭 하여 상기 제1버스 사이클 대기신호의 레벨을 결정하는 스위치로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.And a switch configured to determine the level of the first bus cycle wait signal by switching by the second gate selection signal. 제14항에 있어서, 상기 제2인버터를 상기 제2래치부의 출력에 의해 스위칭 하여 상기 제2버스 사이클 대기신호의 레벨을 결정하는 스위치로 구성함을 특징으로 하는 복수 프로세서의 메모리 공유장치.15. The memory sharing apparatus of claim 14, wherein the second inverter is configured to be switched by an output of the second latch unit to determine a level of the second bus cycle standby signal.
KR1019980035826A 1998-09-01 1998-09-01 Memory covalent device between plural processors KR20000018296A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980035826A KR20000018296A (en) 1998-09-01 1998-09-01 Memory covalent device between plural processors

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980035826A KR20000018296A (en) 1998-09-01 1998-09-01 Memory covalent device between plural processors

Publications (1)

Publication Number Publication Date
KR20000018296A true KR20000018296A (en) 2000-04-06

Family

ID=19549140

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980035826A KR20000018296A (en) 1998-09-01 1998-09-01 Memory covalent device between plural processors

Country Status (1)

Country Link
KR (1) KR20000018296A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464036B1 (en) * 2002-09-07 2005-01-03 엘지전자 주식회사 Information exchange apparatus for multiprocessor
KR100888427B1 (en) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 Device having shared memory and method for displaying data
KR101285883B1 (en) * 2006-12-08 2013-07-11 엘지전자 주식회사 signal processing method and apparatus for transmitting multiful processor signals to a shared memory

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464036B1 (en) * 2002-09-07 2005-01-03 엘지전자 주식회사 Information exchange apparatus for multiprocessor
KR100888427B1 (en) * 2006-09-15 2009-03-11 엠텍비젼 주식회사 Device having shared memory and method for displaying data
KR101285883B1 (en) * 2006-12-08 2013-07-11 엘지전자 주식회사 signal processing method and apparatus for transmitting multiful processor signals to a shared memory

Similar Documents

Publication Publication Date Title
JP2601951B2 (en) Semiconductor integrated circuit
US7349285B2 (en) Dual port memory unit using a single port memory core
US5631577A (en) Synchronous dual port RAM
US5226134A (en) Data processing system including a memory controller for direct or interleave memory accessing
US5375089A (en) Plural port memory system utilizing a memory having a read port and a write port
CN1965282A (en) Delay line synchronizer apparatus and method
JPH1092169A (en) Memory module
US6163500A (en) Memory with combined synchronous burst and bus efficient functionality
JPH02259866A (en) Memory of multi-processor system
US4610004A (en) Expandable four-port register file
GB2123189A (en) Communication between computers
US5535343A (en) Method and apparatus for generating write signals
US5095428A (en) Cache flush request circuit flushes the cache if input/output space write operation and circuit board response are occurring concurrently
KR100224718B1 (en) Internal clock generator for synchronous memory device
KR100323158B1 (en) A data processing system and method for implementing a multi-port memory cell
KR20000018296A (en) Memory covalent device between plural processors
US6781919B2 (en) Address selection circuit and semiconductor memory device with synchronous and asynchronous address signal paths
US6324122B1 (en) RAM synchronized with a signal
US6034545A (en) Macrocell for data processing circuit
EP0471932A2 (en) Virtual multi-port ram
KR100361865B1 (en) The device for strobing address
US5870349A (en) Data processing system and method for generating memory control signals with clock skew tolerance
KR910000184B1 (en) A control system and a method for arbitrating high-speed access of ram among micro processors
KR100813133B1 (en) Dual port memory apparatus, memory system and method for adaptive using shared memory area of dual port memory apparatus
KR950015372A (en) Serial access memory and data transfer method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E601 Decision to refuse application