KR0165505B1 - 공유메모리를 사용한 통신장치 - Google Patents

공유메모리를 사용한 통신장치 Download PDF

Info

Publication number
KR0165505B1
KR0165505B1 KR1019950000767A KR19950000767A KR0165505B1 KR 0165505 B1 KR0165505 B1 KR 0165505B1 KR 1019950000767 A KR1019950000767 A KR 1019950000767A KR 19950000767 A KR19950000767 A KR 19950000767A KR 0165505 B1 KR0165505 B1 KR 0165505B1
Authority
KR
South Korea
Prior art keywords
data
signal
central processing
shared memory
control signal
Prior art date
Application number
KR1019950000767A
Other languages
English (en)
Other versions
KR960030009A (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 KR1019950000767A priority Critical patent/KR0165505B1/ko
Publication of KR960030009A publication Critical patent/KR960030009A/ko
Application granted granted Critical
Publication of KR0165505B1 publication Critical patent/KR0165505B1/ko

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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits

Abstract

본 발명은 공유메모리를 사용한 통신장치를 공개한다. 그 장치는 소정의 비트들로 구성된 제1주소를 발생하고, 제1대기신호가 제1레벨인 경우에만 데이터를 전송 및 수신하는 제1중앙처리수단과, 소정의 비트들로 구성된 제2주소를 발생하고, 제2대기신호가 제1레벨인 경우에만 데이터를 전송 및 수신하는 제2중앙처리 수단과, 제1제어신호가 제2레벨이면 제1중앙처리 수단과 데이터를 엑세스 할 수 있고, 제2제어신호가 제2레벨이면 제2중앙처리 수단과 데이터를 엑세스 할 수 있고, 제2중앙처리 수단과 엑세스 할 경우, 제1상태 신호를 발생하고, 제1중앙처리 수단과 엑세스 할 경우, 제2상태 신호를 발생하는 공유 메모리 수단과, 제1 및 제2주소와 제1 및 제2상태 신호를 입력하여, 주소들이 같은 경우, 제1중앙처리 수단과 제2중앙처리 수단사이의 테이터 전송을 원할히 하기 위해서 제1 및 제2제어 신호들과, 제1 및 제2대기 신호들을 발생하는 통신 제어수단을 구비하는 것을 특징으로 하고, 데이터 통신 방식에 있어서, 8비트 데이터 버스를 통해 16비트 이상의 데이터를 주고 받기 위해서는 플레그(Flag)를 이용한 프로토콜(Protocol) 또는 어떠한 형태의 프로토콜이 필요없이 프로토콜을 사용하지 않고도 16비트 크기의 데이터를 두 중앙처리 장치간에 데이터의 충돌이나 오류없이 주고 받을 수 있는 효과가 있다.

Description

공유 메모리를 사용한 통신장치
제1도는 인터럽트 신호를 이용하여 두 중앙 처리장치들 간에 통신을 수행하는 종래의 인터럽트(Interrupt) 통신장치를 설명하기 위한 블록도이다.
제2도는 비지신호를 이용하여 두 중앙 처리장치들 간에 통신을 수행하는 종래의 비지 통신장치를 설명하기 위한 블록도이다.
제3a-제3d도는 제2도에 도시된 공유 메모리의 각 단자들에 인가되는 신호의 타이밍도이다.
제4a-제4d도는 제2도에 도시된 종래의 비지통신장치에서, 8비트의 데이터버스를 통해 16비트의 데이터가 통신될 경우에 발생하는 오류를 설명하기 위한 타이밍도이다.
제5도는 본 발명에 의한 공유메모리를 사용한 통신장치의 블록도이다.
제6도는 제5도에 도시된 본 발명에 의한 공유 메모리를 사용한 통신장치의 세부적인 블록도이다.
제7a-7i도는 제6도에 도시된 제1중앙처리부에서 제2중앙처리부로 16비트의 데이터를 8비트 데이터버스를 통해 전송시, 데이터의 충돌이 발생하지 않은 상황에서 각 신호들의 타이밍도이다.
제8a-8i도는 제6도에 도시된 공유 메모리에 데이터가 저장되어 있다고 할 때, 제1중앙처리부가 데이터 엑세스시에 제2중앙처리부가 데이터를 엑세스 하려고 할 경우 각 신호들의 타이밍도이다.
제9a-9i도는 제6도에 도시된 공유 메모리에 데이터가 저장되어 있다고 할 때, 제2중앙처리부가 데이터 엑세스시에 제1중앙처리부가 데이터를 엑세스 하려고 할 경우 각 신호들의 타이밍도이다.
본 발명은 공유 메모리(Memory)를 사용한 통신장치에 관한 것으로, 특히 소정비트의 데이터 버스를 가진 공유 메모리를 사용하여 두 처리장치들이 소정 비트 보다 긴 길이의 데이터를 오류없이 주고 받도록 하는 장치에 관한 것이다.
램(RAM)이 어드레스 버스와 데이터 버스를 각각 하나씩 가진 기억장치임에 비해 공유 메모리는 어드레스 버스와 데이터 버스를 각각 두 개씩 가진 두 개의 포트를 가진 기억장치로서, 다중 프로세서 시스템에서 중앙 처리장치들 간의 데이터 통신에서 메인 메모리의 역할을 담당한다.
종래의 공유 메모리는 두 개의 중앙처리장치들이 공유 메모리 내에 있는 같은 주소를 비슷한 시기에 엑세스 할 경우, 원할한 데이터의 전송을 할 수 없고, 두 중앙 처리장치들의 워드형 데이터를 쓰기 시간과 읽기 시간의 차이로 인하여 공유 메모리의 데이터 버스보다 큰 데이터의 전송 시에는 잘못된 데이터가 전송될 문제점이 있다.
본 발명의 목적은 상기와 같은 문제점을 해결하기 위하여 공유 메모리의 데이터 버스보다 큰 데이터의 통신시, 데이터의 충돌 및 오류가 없는 공유 메모리를 사용한 통신장치를 제공하는 데 있다.
상기 목적을 달성하기 위하여 본 발명에 의한 공유 메모리를 사용한 통신장치는 소정의 비트들로 구성된 제1주소를 발생하고, 제1레벨의 제1대기신호가 입력되면 데이터를 전송 및 수신하는 제1중앙처리 수단과, 소정의 비트들로 구성된 제2주소를 발생하고, 상기 제1레벨의 제2대기신호가 입력되면 상기 데이터를 전송 및 수신하는 제2중앙처리 수단과, 제1제어신호가 제2레벨이면 상기 제1중앙처리 수단과 상기 데이터를 엑세스 할 수 있고, 제2제어신호가 상기 제2레벨이면 상기 제2중앙처리수단과 상기 데이터를 엑세스 할 수 있고, 상기 제2중앙처리 수단과 엑세스 할 경우, 제1상태신호를 발생하고, 상기 제1중앙처리 수단과 엑세스 할 경우, 제2상태 신호를 발생하는 공유 메모리 수단과, 상기 제1 및 제2주소와, 상기 제1 및 제2상태신호를 입력하여, 상기 주소들이 같은 경우, 상기 제1중앙처리 수단과, 상기 제2중앙처리 수단사이의 데이터 전송을 원할히 하기 위해서 상기 제1 및 제2제어신호들과, 상기 제1 및 제2대기 신호들을 발생하는 통신제어 수단을 구비하는 것을 특징으로 한다.
본 발명을 설명하기 전에 도면을 참조하여 종래의 공유 메모리를 사용한 통신장치의 동작을 다음과 같이 먼저 살펴본다.
제1도는 인터럽트(INTERRUPT) 신호를 이용하여 두 중앙처리 장치(이하 CPU)들간에 통신을 수행하는 종래의 인터럽트(Interrupt) 통신장치를 설명하기 위한 블록도로서, 제1CPU(200), 제2CPU(202), 공유메모리(204), 제1주소 디코더(206), 제2주소 디코더(208)로 구성된다.
제2도는 비지(BUSY) 신호를 이용하여 두 중앙처리 장치들간에 통신을 수행하는 종래의 비지 통신장치를 설명하기 위한 블록도로서, 제1CPU(400), 제2CPU(402), 공유메모리(404), 제1주소 디코더(406), 제2주소 디코더(408)로 구성된다.
제3a도는 제2도에 도시된 공유메모리의 CE-L단자에 인가되는 신호의 타이밍도이다.
제3b도는 제2도에 도시된 공유메모리의 CE-R단자에 인가되는 신호의 타이밍도이다.
제3c도는 제2도에 도시된 공유+메모리의 BUSY-R단자에 인가되는 신호의 타이밍도이다.
제3d도는 제2도에 도시된 공유메모리의 BUSY-L단자에 인가되는 신호의 타이밍도이다.
제4a-4b도는 제2도에 도시된 종래의 비지통신장치에서, 제1CPU(400)에서 제2CPU(402)로 8비트 데이터 버스를 통해 16비트의 데이터가 통신될 경우에 발생하는 오류를 설명하기 위한 타이밍도이다.
제4c 및 제4d도는 제2도에 도시된 종래의 비지통신장치에서, 제2CPU(402)에서 제1CPU(400)로 8비트의 데이터 버스를 통해 16비트의 데이터가 통신될 경우에 발생하는 오류를 설명하기 위한 타이밍도이다.
도면 제1 및 제2도에 도시된 공유 메모리들(204 및 404)은 기억 저장공간이 하나이지만, 데이터 버스(212 및 412) 및 어드레스 버스(214 및 414)가 각각 두 개씩이므로 두 CPU가 동시에 공유 메모리의 서로 다른 어드레스를 엑세스 할 때는 문제가 되지 않으나, 같은 어드레스를 비슷한 시기에 엑세스하는 경우, 데이터 충돌 또는 데이터 오류현상이 발생하게 된다. 이 현상을 막기 위해 대개의 공유메모리는 하드웨어적으로 인터럽트 신호와 비지 신호를 가지고 있다.
한편, 도면 제1 및 제2도에서 각 단자의 기능을 다음과 같이 설명한다.
제2도에 도시된 각 CPU의 레이디(READY)단자(414)로 저 레벨의 신호가 인가될 경우, 각 CPU는 대기 상태에 있게 되며, 신호적으로 어드레스버스(210 및 410), 데이터 버스(212 및 412), 읽기, 쓰기신호등의 길이는 그 만큼 늘어난다.
각 CPU내의 인터럽트단자(이하 INT)(214)로 저레벨의 신호가 인가될 경우, 각 CPU는 공유 메모리로부터 데이터를 읽거나 쓸 수 있다.
공유메모리(404 및 204)의 칩 인에이블(CHIP ENABLE 이하 CE) 단자로 저레벨의 신호가 인가될 경우, 공유메모리의 동작은 가능한 상태로 된다.
제1 및 제2도에 도시된 제1 및 제2주소 디코더들(206, 208, 406 및 408)은 각 CPU로부터 어드레스 신호를 받아서 공유 메모리들(204 및 404)의 동작을 가능하게 하도록 각 CPU의 CE-L 및 CE-R 단자에 저레벨 신호를 인가하여 준다.
상기 각 단자의 기능과 구성을 통하여 종래의 인터럽트 및 비지통신장치들의 동작을 도면 제1 및 제2를 통하여 다음과 같이 설명한다.
먼저, 제1도에 도시된 인터럽트 통신장치의 동작을 다음과 같이 설명한다.
제1CPU(200)에서 제2CPU(202)로 데이터가 전송된다고 할 때, 제1CPU(200)는 전송할 데이터가 저장될 공유메모리(204)의 주소를 결정하고, 제1주소 디코더(206)는 결정된 주소를 입력하여 공유 메모리(204)의 CE-L 단자에 저 레벨신호를 인가하여 공유 메모리(204)를 동작 가능하게 하고, 어드레스 버스(210)를 통해 공유 메모리(204)의 주소를 지정하고, 데이터 버스(212)를 통해 데이터를 공유메모리(204)에 저장한다. 상기 주소에 데이터가 쓰여지고 난 후에 공유메모리(204)는 INT-R단자(214)를 통해 저레벨의 인터럽트 신호를 제2CPU(202)의 INT에 인가하여 제2CPU(202)가 공유메모리(204)에 쓰여진 데이터를 읽도록 허용한 다음 제2CPU(202)는 상기 데이터를 읽기 위해 공유 메모리(204)를 엑세스하고, 제2주소디코더(208)를 통해 공유 메모리(204)의 CE-R단자에 저 레벨신호를 인가하여 공유 메모리를 동작 가능한 상태로 하는 한편 어드레스 버스(210)를 통해 데이터가 쓰여진 주소를 지정하고, 데이터 버스(212)를 통해 공유 메모리(204)로부터 데이터를 읽어옴으로써 결과적으로 제1CPU(200)에서 제2CPU(202)로 데이터 통신이 행하여진다. 한편, 제2CPU(202)에서 제1CPU(200)로 데이터 통신은 상술한 동작의 역으로 행하여진다.
상술한 동작의 인터럽트 통신장치는 두 CPU간 통신규약의 설정이 필요하고, 통신에 사용되는 인터럽트 신호가 필요하다. 따라서, 통신규약을 새롭게 정하는 것이 어렵거나, 적용하고자 하는 시스템이 인터럽트 신호가 부족하거나 없는 경우에 이 장치를 이용한 통신방식은 부적합하다.
제1CPU(400) 및 제2CPU(402)가 공유메모리(404)의 다른 주소를 각각 엑세스 할 경우에는 문제가 되지 않으나 비슷한 시기에 두 CPU가 같은 주소를 엑세스 할 경우 제2도에 도시된 종래의 비지통신장치의 동작을 상술한 구성과 도면 제3a-3d 및 제4a-4d를 참조하여 다음과 같이 상세히 설명한다.
제1CPU(400)에서 제2CPU(402)로 데이터를 전달할 경우, 제1CPU(400)는 공유메모리(404)에 저장할 데이터의 주소를 결정하고, 제1주소디코더(406)는 상기 결정된 주소를 입력하여 공유메모리(404)의 CE-L 단자에 제3a도에 도시된 바와 같이 저레벨신호를 공급하여 공유메모리(404)가 동작 가능하도록 엑세스하며, 어드레스 버스(410)를 통해 주소를 지정하여, 데이터 버스(412)를 통해 저장할 데이터를 공유 메모리(404)의 지정된 주소에 저장한다. 상기의 동작과정 중에 제2CPU(402)가 제3b도에 도시된 바와 같이 저레벨신호로 공유메모리(404)를 엑세스 하는 경우, 공유메모리(404)는 제3c도에 도시된 저레벨의 비지(BUSY) 신호(602)를 발생하여 제2CPU(402)의 READY 단자에 공급함으로서 제1CPU(400)의 동작이 완료될 때까지 제2CPU(402)가 잠시 대기 상태에 있도록 한다. 공유 메모리(404)에 데이터가 저장된 후에 제1CPU(400)는 동작을 완료하고, 제3c도에 도시된 비지신호는 고레벨로 상태를 바꾸고, 제2CPU(402)는 공유 메모리(404)에 엑세스가 허용되며, 제2CPU(402)는 상기 주소를 결정하고, 제2주소디코더(408)는 이를 입력으로 공유 메모리(404)의 CE-R단자에 저레벨 신호를 인가하여 공유메모리(404)를 동작 가능한 상태로 한 후에 어드레스 버스(410)를 통해 주소를 지정하고, 데이터버스(412)를 통해 데이터를 읽어옴으로서, 데이터 전송이 완료하게 된다.
상기 비지신호를 이용한 통신장치는 제1도에 도시된 인터럽트 신호를 이용한 통신장치의 문제를 해결할 수 있으나, 데이터버스의 크기보다 큰 데이터 통신을 해야하는 경우, 인터럽트 방식처럼 각기 다른 CPU를 가지고 있는 시스템간의 통신규약을 설정해야 한다. 통신규약을 설정하지 못하는 시스템에서는 공유 메모리의 데이터 버스 크기의 데이터 통신만이 가능하다.
공유 메모리의 데이터버스의 크기가 8비트이고, 이 데이터 버스를 통해 16비트의 데이터를 전송하고자 할 경우, 제2도에 도시된 공유메모리(404)의 임의의 제1 및 제2번지에 16진수로 데이터 55가 각각 쓰여져 있고, 제1CPU(400)로부터 제2CPU(402)로 임의의 16진수의 데이터 2222를 전송하고자 할 때, 제1CPU(400)는 먼저 제1주소디코더(406)를 통해 공유 메모리(404)를 동작 가능한 상태로 한 다음, 어드레스 버스(410)를 통해 공유 메모리(404)의 제1 및 제2번지를 지정하고, 데이터 버스(412)를 통해 2222를 상기 제1 및 제2번지에 쓴다.
제2CPU(402)는 데이터를 읽을 때 제1 및 제2번지에 저장된 5555란 데이터를 읽다가 제1CPU(400)가 2222를 쓰고 나면 2222를 읽어야 원할한 통신이 이루어지지만, 제4a도에 도시된 바와 같이 저레벨(800)의 기간동안 제1CPU(400)가 전송할 데이터의 하위비트만 공유메모리(404)에 저장하고, 상위 비트는 미처 저장하기(802)도 전에 제4b도에 도시된 바와 같이 제2CPU(402)가 공유메모리(404)를 엑세스하여 데이터를 읽어들일[참조부호 804는 하위비트를 읽는 기간이고, 806은 상위비트를 읽는 기간이다] 경우, 하위비트는 갱신된 값이지만 상위비트는 갱신이 되지 않았으므로 제2CPU(402)는 이전값인 55를 읽혀진다. 따라서, 제2CPU(402)에서 읽은 값은 5522가 된다. 마찬가지로 제2CPU(402)에서 제1CPU(400)로 데이터가 전송될 경우에는 제4c 및 제4d도에 도시된 바와 같이 2255가 된다.
제5도는 본 발명에 의한 공유 메모리를 사용한 통신장치의 블록도로서, 제1중앙처리부(1000), 공유메모리(1002), 제2중앙처리부(1004) 및 통신제어부(1006)로 구성된다.
제6도는 제5도에 도시된 본 발명에 의한 공유 메모리를 사용한 통신장치의 세부적인 블록도로서, 제1중앙처리부(1200), 공유 메모리(1202), 제2중앙처리부(1204) 및 제5도에 도시된 통신제어부(1006)를 구성하는 주소 비교부(1206), 신호발생부(1208), 제1디코더(1210), 제1상태부(1212), 제2디코더(1214) 및 제2상태부(1216)로 구성된다.
제7a-7i도는 제6도에 도시된 제1중앙처리부(1200)에서 제2중앙처리부(1204)로 16비트의 데이터를 8비트 데이터버스를 통해 전송시, 데이터의 충돌이 발생하지 않은 상황에서 각 신호들의 타이밍도이다.
제8a-8i도는 제6도에 도시된 공유메모리(1202)에 데이터가 저장되어 있다고 할 때, 제1중앙처리부(1200)가 데이터 엑세스시에 제2중앙처리부(1204)가 데이터를 엑세스 하려고 할 경우 각 신호들의 타이밍도이다.
제9a-9i도는 제6도에 도시된 공유 메모리(1202)에 데이터가 저장되어 있다고 할 때, 제2중앙처리부(1204)가 데이터 엑세스시에 제1중앙처리부(1200)가 데이터를 엑세스 하려고 할 경우 각 신호들의 타이밍도이다.
제7a, 8a 및 제9a도는 제3제어신호의 타이밍도이고, 제7b, 8b 및 제9b도는 제4제어신호의 타이밍도이고, 제7c, 8c 및 제9c도는 제5제어 신호의 타이밍도이고, 제7d, 8d 및 제9d도는 제1제어신호의 타이밍도이고, 제7e, 8e 및 제9e도는 제2제어신호의 타이밍도이고, 제7f, 8f 및 제9f도는 제1대기신호의 타이밍도이고, 제7g, 8g 및 제9g도는 제2대기 신호의 타이밍도이고, 제7h, 8h 및 제9h도는 제3상태신호의 타이밍도이고, 제7i, 8i 및 제9i도는 제4상태신호의 타이밍도이다.
이하 본 발명에 의한 공유메모리를 사용한 통신장치의 동작을 상기 구성을 통한 도면 제5 및 제6도와 제7a-9i도의 타이밍도를 참조하여 다음과 같이 상세히 설명한다.
제6도에 도시된 제1중앙처리부(1200)와 제2중앙처리부(1204)는 다를 수 있으며, 본 발명의 설명을 쉽게 하기 위해서 먼저, 제1중앙처리부(1200)로부터 제2중앙처리부(1204)로 16비트의 데이터가 데이터의 충돌없이 전송된다고 가정한다.
제1디코더(1210)는 데이터가 저장될 공유메모리(1202)의 제1주소를 제1중앙처리부(1200)로부터 입력하여 제7b도에 도시된 바와 같이 제4제어신호를 발생하여 신호발생부(1208)에 인가하고, 제1상태부(1212)는 제1주소의 최하위 비트인 제1비트를 입력후 제4제어신호에 의해 제어되어 제7h도에 도시된 제3상태신호(1324)를 발생하여 신호발생부(1208)에 인가한다. 공유메모리(1202)는 제2중앙처리부(1204)가 공유메모리(1202)를 엑세스 했는가를 검사한 후 엑세스 하지 않았다면 제1상태신호를 고레벨로 발생하고, 제1중앙처리부(1200)가 공유메모리(1202)를 엑세스 하였으므로, 공유 메모리(1202)는 제2상태신호를 저 레벨로 발생하여 신호발생부(1208)에 인가한다. 한편, 제3상태신호는 제1중앙처리부(1200)가 전송할 데이터의 하위 비트를 공유메모리(1202)에 쓴 다음 상위비트를 쓰기 까지의 기간에 저레벨로 된다.
신호발생부(1208)는 제1, 2, 3 및 4 상태신호 및 제3 및 제4제어신호를 입력 후 제7d도에 도시된 제1제어신호를 발생하여 공유 메모리(1202)에 인가하여 공유 메모리(1202)가 제1중앙처리부(1200)로부터 데이터를 받을 수 있도록 공유메모리(1202)를 동작가능한 상태로 한다. 즉, 저 레벨의 제1제어신호가 인가되면, 공유 메모리(1202)는 제1주소에 데이터의 하위 비트를 저장하며, 이와 같은 동작으로 데이터의 상위 비트들도 공유 메모리(1202)에 저장한다.
제2중앙처리부(1204)가 공유메모리(1202)의 제1주소에 저장된 데이터를 엑세스 하여 읽어서 가져올 때의 동작은 다음과 같다.
제2디코더(1318)는 읽을 데이터가 저장된 공유 메모리(1202)의 제2주소(여기서는 제1주소와 같다)를 제2중앙처리부(1204)로부터 입력하여 제7c도에 도시된 바와 같이 제5제어신호를 발생하여 신호발생부(1208)에 인가하고, 제2상태부(1216)는 제2주소의 최하위 비트인 제2비트를 입력 후 제5제어신호에 의해 제어되어 제7i 도에 도시된 제4상태신호(1326)를 발생하여 신호발생부(1208)에 인가한다. 제4상태신호는 제2중앙처리부(1200)가 전송할 데이터의 하위 비트를 공유메모리(1202)로부터 읽은 다음 상위비트를 다 읽기 까지의 기간에 저 레벨로 된다. 공유메모리(1202)는 제1중앙처리부(1200)가 공유메모리(1202)를 엑세스 했는가를 검사한 후 엑세스 하지 않았다면 제2상태 신호를 고 레벨로 발생하고, 제2중앙처리부(1204)가 공유메모리(1202)를 엑세스 하였으므로 공유메모리(1202)는 제1상태 신호를 저 레벨로 발생하여 신호발생부(1208)에 인가한다.
신호발생부(1208)는 제1상태신호, 제4상태신호 및 제5제어신호를 입력 후 제7e도에 도시된 제2제어신호를 발생하여 공유메모리(1202)에 인가하여 제2중앙처리부(1204)가 공유메모리(1202)로부터 데이터를 읽을 수 있도록 공유메모리(1202)를 동작 가능한 상태로 한다. 즉, 저 레벨의 제2제어신호가 인가되면 공유메모리(1202)는 어드레스 버스(1302)를 통해 제2중앙처리부(1200)로부터 지정된 제2주소의 데이터 하위비트를 제2중앙처리부(1204)로 보내는 한편, 제2제어신호는 제3제어신호와 제3상태신호가 같이 저 레벨인 경우에는 고 레벨로 되고, 제1제어신호는 제3제어신호와 제4상태신호가 저 레벨인 경우에는 고 레벨로 된다.
이와 같은 동작으로 데이터의 상위 비트들도 공유메모리(1202)로부터 제2중앙처리부(1204)에 전송한다. 한편, 이러한 동작과정중에 제1 및 제2중앙처리부(1200 및 1204)들이 비슷한 시기에 공유메모리(1202)의 같은 주소를 엑세스 하지 않았으므로 주소비교부(1206)는 제7a도에 도시된 고레벨의 제2제어신호를 신호발생부(1208)에 인가하며, 또한 이 경우에 제3제어신호, 제4상태신호 및 제4제어신호가 저 레벨인 경우에만 저 레벨로 되는 제7f도에 도시된 제2대기신호와 제3제어신호, 제3상태신호 및 제5제어신호가 저레벨인 경우에만 저 레벨로 되는 제7g도에 도시된 제1대기신호는 평상시의 고 레벨을 유지한다.
두 번째로, 공유메모리(1202)에 데이터가 저장되어 있고, 제1중앙처리부(1200)가 데이터의 하위비트를 읽고 상위비트를 읽기 전에 제2중앙처리부(1204)가 같은 데이터를 엑세스하기 위해 공유메모리(1202)에 접근 할 때(1600), 본 발명에 의한 통신장치의 제어상황을 다음과 같이 상세히 설명한다.
제2중앙처리부(1204)로부터 발생된 제2주소를 입력하여 제2디코더(1214)는 제8c도에 도시된 저레벨의 제5제어신호를 발생하고, 이 때 주소 비교부(1206)도 마찬가지로 제2주소를 입력하여 제1주소와 같으므로 제8a도에 도시된 저레벨의 제3제어신호를 발생한다. 제3상태신호와 제3제어신호와 제5제어신호가 저 레벨이므로 제8g도에 도시된 제2대기신호(1310)는 저 레벨이 되어(1606) 제2중앙처리부(1204)가 대기상태에 있도록 제어하고, 계속적으로 제1중앙처리부(1200)는 데이터의 상위비트들을 읽은 후, 읽기가 끝나면 제1제어신호는 평상시의 저 레벨에서 고 레벨로 바뀌고(1602), 제2제어신호는 고 레벨에서 저 레벨로 바뀌며(1604), 제2대기신호는 저 레벨에서 고 레벨로 바뀌어(1608) 제2중앙처리부(1204)가 공유 메모리(1202)를 엑세스 할 수 있도록 대기 상태를 해체시킨다. 다음에 제2중앙처리부(1204)는 상술한 엑세스 과정과 동일하게 데이터의 하위 및 상위를 공유 메모리(1202)로부터 읽어가므로서, 16비트 데이터 전송시에 데이터의 충돌 및 오류현상을 없앨 수 있다.
세 번째로, 제2중앙처리부(1204)가 공유 메모리(1202)에 저장된 데이터의 하위비트를 읽은 다음 상위비트를 읽기도 전에 제1중앙처리부(1200)가 공유메모리(1202)를 엑세스 할 경우, 데이터의 충돌을 방지하는 본 발명에 의한 공유메모리를 사용한 통신장치의 동작은 상술한 동작과 동일하므로 생략한다.
결론적으로, 8비트 데이터 버스를 통해 16비트 이상의 데이터를 주고 받기 위해서는 플레그(Flag)를 이용한 프로토콜(Protocol) 또는 어떠한 형태의 프로토콜이 필요하지만 이상에서 살펴본 바와 같이 데이터 통신 방식에 있어서, 본 발명에 의한 공유 메모리를 사용한 통신장치는 프로토콜을 사용하지 않고 16비트 크기의 데이터를 데이터의 충돌이나 오류없이 두 중앙처리 장치간에 주고 받을 수 있는 효과가 있다.

Claims (6)

  1. 공유 메모리를 사용한 통신장치에 있어서, 소정의 비트들로 구성된 제1주소를 발생하고, 제1대기신호가 제1레벨인 경우에만 데이터를 전송 및 수신하는 제1중앙처리수단; 소정의 비트들로 구성된 제2주소를 발생하고, 제2대기신호가 상기 제1레벨인 경우에만 상기 데이터를 전송 및 수신하는 제2중앙처리수단; 제1제어신호가 제2레벨이면 상기 제1중앙처리수단과 상기 데이터를 엑세스 할 수 있고, 제2제어신호가 상기 제2레벨이면, 상기 제2중앙처리수단과 상기 데이터를 엑세스 할 수 있고, 상기 제2중앙처리수단과 엑세스 할 경우, 제1상태신호를 발생하고, 상기 제1중앙처리수단과 엑세스 할 경우, 제2상태신호를 발생하는 공유 메모리 수단; 상기 제1 및 제2주소와, 상기 제1 및 제2상태신호로 입력하여, 상기 주소들이 같은 경우, 상기 제1중앙처리 수단과 상기 제2중앙처리수단 사이의 데이터 전송을 원할히 하기 위해서 상기 제1 및 제2제어신호들과, 상기 제1 및 제2대기신호들을 발생하는 통신 제어 수단을 구비하는 것을 특징으로 하는 공유 메모리를 사용한 통신장치.
  2. 제1항에 있어서, 상기 통신제어수단은 상기 제1 및 제2주소를 입력하여 비교 후 같으면 제3제어신호를 발생하는 주소 비교 수단; 상기 제1주소를 입력하여 복호화한 후에 제4제어신호를 발생하는 제1디코더수단; 상기 제2주소를 입력하여 복호화한 후에 제5제어신호를 발생하는 제2디코더 수단; 상기 제4제어신호에 응답하여 상기 제1주소중 임의의 비트를 입력하여, 제3상태신호를 발생하는 제1상태수단; 상기 제5제어신호에 응답하여 상기 제2주소중 임의의 비트를 입력하여 제4상태 신호를 발생하는 제2상태수단; 상기 제1, 2, 3 및 4 상태신호와, 상기 제3, 4 및 제5제어신호를 입력하여 상기 제1 및 제2대기신호 및 상기 제1 및 제2제어신호들을 출력하는 신호 발생수단을 구비하는 것을 특징으로 하는 공유메모리를 사용한 통신장치.
  3. 제2항에 있어서, 상기 제1제어신호는 상기 제3제어신호와 상기 제4상태신호가 모두 상기 제2레벨인 경우에는 상기 제1레벨로 되는 것을 특징으로 하는 공유메모리를 사용한 통신장치.
  4. 제2항에 있어서, 상기 제2제어신호는 상기 제3제어신호와 상기 제3상태신호가 모두 상기 제2레벨인 경우에는 상기 제1레벨로 되는 것을 특징으로 하는 공유메모리를 사용한 통신장치.
  5. 제2항에 있어서, 상기 제1대기신호는 상기 제4제어신호와, 상기 제4상태신호와, 상기 제3제어신호가 상기 제2레벨인 경우에만 상기 제2레벨로 되는 것을 특징으로 하는 공유메모리를 사용한 통신장치.
  6. 제2항에 있어서, 상기 제2대기신호는 상기 제5제어신호와, 상기 제3상태신호와, 상기 제3제어신호가 상기 제2레벨인 경우에만 상기 제2레벨로 되는 것을 특징으로 하는 공유메모리를 사용한 통신장치.
KR1019950000767A 1995-01-18 1995-01-18 공유메모리를 사용한 통신장치 KR0165505B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950000767A KR0165505B1 (ko) 1995-01-18 1995-01-18 공유메모리를 사용한 통신장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950000767A KR0165505B1 (ko) 1995-01-18 1995-01-18 공유메모리를 사용한 통신장치

Publications (2)

Publication Number Publication Date
KR960030009A KR960030009A (ko) 1996-08-17
KR0165505B1 true KR0165505B1 (ko) 1999-01-15

Family

ID=19406874

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950000767A KR0165505B1 (ko) 1995-01-18 1995-01-18 공유메모리를 사용한 통신장치

Country Status (1)

Country Link
KR (1) KR0165505B1 (ko)

Also Published As

Publication number Publication date
KR960030009A (ko) 1996-08-17

Similar Documents

Publication Publication Date Title
EP0226950B1 (en) Memory access control circuit
US5343427A (en) Data transfer device
US5872940A (en) Programmable read/write access signal and method therefor
JP3563352B2 (ja) 書き込み読み出しメモリおよび該メモリの作動方法
KR0165505B1 (ko) 공유메모리를 사용한 통신장치
JP2505105B2 (ja) 通信システム
US6073227A (en) Circuit for moving data between remote memories and a computer
KR100298955B1 (ko) 데이타처리시스템
JPH0353363A (ja) バスアーキテクチャ変換回路
JPH07271654A (ja) コントローラ
KR100208276B1 (ko) 전전자 교환기의 데이터 이중화 장치
KR100243185B1 (ko) 공유 메모리를 통한 프로세서간의 데이터 통신 장치 및 방법
KR900009212Y1 (ko) 어드레스 제어장치
JPS6326753A (ja) メモリ−バス制御方法
JPH05120207A (ja) デ−タ転送方式
KR100303327B1 (ko) 교환 시스템에서의 메모리 이중화를 위한 장치 및 방법
JP3077992B2 (ja) データ伝送装置
JPS6258356A (ja) Dma制御装置
JPH04153984A (ja) ダイナミックメモリの制御方法
JPH04310161A (ja) データ読出回路
KR19990076182A (ko) 동기 동적 램 제어기 장치 및 이의 접속 방법
JPS617956A (ja) メモリの多重アクセス制御方式
JPH0652039A (ja) データ転送方式
JPH0241058B2 (ko)
JPS6383854A (ja) デ−タ転送回路

Legal Events

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

Payment date: 20060830

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee