KR960015864B1 - 통신제어장치 - Google Patents

통신제어장치 Download PDF

Info

Publication number
KR960015864B1
KR960015864B1 KR1019930001901A KR930001901A KR960015864B1 KR 960015864 B1 KR960015864 B1 KR 960015864B1 KR 1019930001901 A KR1019930001901 A KR 1019930001901A KR 930001901 A KR930001901 A KR 930001901A KR 960015864 B1 KR960015864 B1 KR 960015864B1
Authority
KR
South Korea
Prior art keywords
data
buffer
state
communication
unit
Prior art date
Application number
KR1019930001901A
Other languages
English (en)
Other versions
KR930018895A (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 가부시키가이샤 도시바
Publication of KR930018895A publication Critical patent/KR930018895A/ko
Application granted granted Critical
Publication of KR960015864B1 publication Critical patent/KR960015864B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Small-Scale Networks (AREA)

Abstract

내용 없음.

Description

통신제어장치
제1도는 본 발명의 제1실시예에 따른 통신제어장치의 구성도.
제2도는 공유통신 데이터 메모리에서의 프레임 구조도.
제2도(a)는 프레임 버퍼(FB)의 데이터 구조를 나타낸 도면.
제2도(b)는 프레임 디스크립터(FD)의 데이터 구조를 나타낸 도면.
제2도(c)는 1개의 프레임 구성예를 나타낸 도면.
제2도(d)는 3개의 프레임이 링크된 구성예를 나타낸 도면
제3도는 제1실시예의 통신제어장치에서의 버퍼 관리부의 상세구성도.
제4도는 제1실시예의 통신제어장치에서의 제어블록의 구성도.
제5도는 제1실시예의 통신제어장치에서의 제어블록상태와 각 블록포인터의 관계를 설명하는 도면.
제6도는 제1실시예의 통신제어장치에서의 제어블록의 상태천이도.
제7도는 제1실시예의 통신제어장치에서의 데이터버퍼의 상세구성도.
제8도는 1개의 프레임데이터의 송신에 관한 제1실시예의 통신제어장치의 동작수순을 설명하는 도면.
제9도는 복수개의 프레임데이터의 송신에 관한 제1실시예의 통신제어장치의 동작수순을 설명하는 도면.
제10도는 제9도의 시각(T)에서의 데이터버퍼의 내용과 각 제어블록의 관계를 설명하는 도면.
제11도는 본 발명의 제2실시예에 따른 통신제어장치의 구성도.
제12도는 제2실시예의 통신제어장치에서의 버퍼관리부의 상세구성도.
제13도는 제2실시예의 통신제어장치에서의 제어블록의 상태천이도.
제14도는 제2실시예의 통신제어장치에서의 데이터버퍼의 상세구성도.
제15도는 본 발명의 제3실시예에 따른 통신제어장치의 구성도.
제16도는 본 발명의 제4실시예에 따른 통신제어장치의 일부구성도.
제17도는 본 발명의 제4실시예에 변형예에 따른 통신제어장치의 일부구성도.
제18도는 종래의 통신제어장치의 구성도.
제19도는 통신프로토콜의 계층도.
제19도(1)는 ISO의 OSI 7층 모델.
제19도(2)는 IEEE의 모델.
* 도면의 주요부분에 대한 부호의 설명
1, 1-2, 1-3, 501 : 통신제어장치 2 : 프로세서
3, 33 : 공유통신 데이터 메모리(송신원) 9, 21 : 헤더 검사부(검사수단)
10, 22 : 헤더 취입부 11 : 헤더 버퍼(제1버퍼 메모리)
12, 23 : 버퍼 관리부(버퍼 관리수단) 13, 24 : 데이터 취입부
14, 25 : 데이터 버퍼(제2버퍼 메모리) 15 : 송출부(송출수단)
16 : 상태 검사부
17 : 상태 기입복귀부(송신상태 기입복귀수단)
18 : 버스 제어부
12-1, 23-1 : 제어데이터블록(제어데이터 유지수단)
12-2, 23-2 : 빈 블록 포인터 12-3 : 프레임 기입부
12-4, 23-4 : 빈 블록 검출부 12-5 : 패치 블록 포인터
12-6 : FB 정보 독출부 12-7 : 종료상태 기입부
12-8 : 버퍼 어드레스 기입부 12-9, 23-9 : 페치요구 출력부
12-10 : 미송신블록 포인터 12-11 : 버퍼 어드레스 독출부
12-12 : 종료상태 독출/기입부, 12-13 : 송출요구 출력부
12-14 : 송신완료블록 포인터 12-15 : 상태 독출/기입부
12-16 : 상태검사 요구부 12-17 : 상태기입복귀블록 포인터
12-18 : FD 상태 독출부 12-19 : 상태기입복귀 요구부
14-1, 25-1 : 데이터 메모리 14-2 : 기입 어드레스 카운터
14-3 : 독출 어드레스 카운터 14-4 : 종료 어드레스 레지스터
14-5 : 종료 어드레스 선택부 14-6 : FIFO 사이즈판정부
41, 43 : 선택부 42, 44 : 기억부
401 : 관리 데이터 영역 402 : 다음 FB 어드레스
403 : 데이터 영역의 선두어드레스 404 : 데이터 길이
405, 416 : 제어코드 406 : 데이터 영역
411 : 다음 FD 어드레스
412 : FB 리스트의 선두 FB 어드레스
413 : FB 리스트의 말미 FB 어드레스
414 : 프레임 길이 415 : 상태
421 : 제어블록상태 422 : FD 상태 기입어드레스
423 : FD 상태 424 : 데이터취입 종료상태
425 : 송출종료상태 426 : FB 리스트 선두 어드레스
427 : FB 리스트 말미 어드레스 428 : 프레임길이
429 : 데이터 버퍼 개시어드레스 430 : 데이터 버퍼 종료어드레스
504 : 데이터 전송부 505 : 버퍼 메모리
506 : 검사 제어부 507: 송신 제어부
[산업상의 이용분야]
본 발명은 로컬 에리어 네트워크(Local Area Network ; 이하, LAN으로 한다)를 구성하는 통신제어장치에 관한 것으로, 특히 송신데이터의 내용검사와 버퍼링(buffering)을 위해 메모리를 2단계를 설치하고, 제1버퍼 메모리에서 통신데이터의 내용검사를 수행한 다음, 제2버퍼 메모리로 통신데이터를 다시 취입하여 버퍼링한 후 통신망(network)으로 데이터를 송출하도록 해서, 통신데이터의 내용검사와 데이터송출을 병행해서 동작시킴으로써 고속으로 연속적인 데이터송출을 가능하게 한 통신제어장치에 관한 것이다.
[종래의 기술 및 그 문제점]
컴퓨터간을 연결하는 통신방식은, 제19도(1)에 나타낸 바와 같이 ISO(국제표준화기구)에 의해 통신프로토콜(通信 protocol)의 계층화가 규정되어 있다. 더욱이, LAN에 있어서는 제19도(2)에 나타낸 바와 같이 IEEE 규격에 따른 하위층의 규격화가 의욕적으로 진행되고 있다. 이러한 배경으로부터, 특히 하위층에서 사용되는 통신제어장치는 근래 LSI화에 따른 소형화가 진행되고 있다. 특히, IEEE 규격에 의해 규정되어 있는 토큰링방식(tokenring 方式)에서는, MAC층(Medium Access Control layer)의 제어가 LSI화됨으로써, 널리 사용되어 오고 있다. 특히 이들 방식에서는, 1개의 토큰(송신의 권리를 나타내는 제어데이터)을 획득한 국(局)은 어느정도의 시간동안, 토큰을 유지하는 것이 허가되어 있어 그 동안에 복수개의 통신데이터를 송출할 수가 있다.
종래의 통신제어장치를 이용한 데이터 통신 시스템의 구성은, 제18도에 나타낸 바와 같이 크게 3개의 구성요소로 이루어져 있다. 프로세서(2)는, 예컨대 LLC층(Logical Link Control layer) 이상의 프로토콜을 실행하는 프로세서이고, 통신제어장치(501)는 MAC층 이하의 프로토콜을 실행하는 장치이며, 또 공유통신 데이터 메모리(3)는 프로세서(2)와 통신제어장치(501)가 공유하는 메모리이다. 프로세서(2)가 생성한 송신 데이터는 통신제어장치(501)가 수취해서 송신한다. 또 한편으로, 통신제어장치(501)는 송신완료후의 상태를 기입하고, 프로세서(2)가 이를 수취한다.
통신제어장치(501)에서는, 공유통신 데이터 메모리(3)로부터 취출한 송신데이터중 MAC 프로토콜 헤더(MAC protocol header)를 검사해서 정상이라고 판단된때에 비로소 통신망으로의 송출을 수행한다. 이검사를 수행한 다음, 또 공유통신 데이터 메모리(3)로의 액세스속도와 통신망으로의 송촐속도를 조정하기 위한 버퍼메모리(505)가 통신제어장치(501)에 구비되어 있다. 즉, 데이터 전송부(504)에 의해 공유통신 데이터 메모리(3)로부터 버퍼메모리(505)로 데이터를 전송하고, 검사 제어부(506)는 데이터의 선두에 있는 프로토콜 헤더를 검사하며, 송신 제어부(507)는 버퍼 메모리(505)로부터 통신망으로 데이터를 송출한다. 송출이 완료되면, 송신 제어부(507)는 종료상태를 검사 제어부(506)로 반환하고, 더욱이 데이터 전송부(504)를 이용하여 공유통신 데이터 메모리(3)로 기입한다. 프로세서(2)가 이 종료상태를 확인함으로써 1개의 통신데이터의 송출이 완료된다.
또한, 프로세서(2)와 통신제어자이(501)가 병행해서 동작할 수 있도록, 공뉴통신 데이터 메모리(3)에 격납되어 있는 통신데이터[이하, 프레임(frame)이라 한다]는, 제2도(a)∼제2도(d)에 나타낸 바와 같은 구조화되어 있고, 제2도(d)와 같이 복수개의 프레임이 리스트(list)모양으로 연결되어 있다. 즉, 제1프레임(A)을 프로세서(2)가 생성해서 통신제어장치(501)를 가동시키고, 더욱이 제2프레임(B) 이후의 생성을 개시한다. 기동된 통신제어장치(501)는 제1프레임(A)의 송출처리를 수행하고 나서, 더욱이 링크를 더듬어 가며 프레임(B)의 생성이 완료되어 있다면 그 송출처리를 수행할 수 있게 된다. 이와 같이 해서, 프로세서(2)의 프레임생성과 통신제어장치(501)의 송출처리가 동시에 진행될 수 있게 된다.
더욱이, 통신제어장치(501)의 내부에 있어서도, 복수개의 프레임을 연속적으로 처리할 수 있도록 이루어진 것이 있다. 이 시스템에서는, 제1프레임을 취입하고, 검사가 종료된 때에 버퍼 메모리(505)에 빈 곳이 있다면, 제1프레임의 송출완료를 기다리지 않고 제2프레임도 데이터 전송부(504)에 의해 취입해서 검사해버리는 것이다. 이러한 선행 취입은 버퍼 메모리(505)에 빈 곳이 있는한 차례차례 수행할 수가 있는 바, 송신 제어부(507)가 복수개의 프레임을 연속해서 송출할 수 있게 된다.
종래의 통신제어장치(501)에서는, 상술한 바와 같은 구성을 갖추고 있기 때문에, 버퍼 메모리(505)가 복수개의 프레임을 격납할 수 있는 정도의 충분한 메모리용량이 있는 경우에는 소망하는 성능을 기대할 수 있지만, 그렇지 않으면 선행하는 프레임이 어느 정도 송출될 때까지 후속 프레임의 취입을 대기하게 됨으로써 헤더 검사도 대기되게 된다. 더욱이, 검사 제어부(506)의 처리속도가 충분하지 않을 때에는 선행하는 프레임의 송출이 완료될 때까지 헤더 검사가 제때에 이루어지지 않기 때문에, 송신 제어부(507)로부터 연속해서 송출할 수 없게 된다는 문제가 있다.
또한, LAN에서 취급되는 프레임의 크기는 상위 프로토콜의 제어에 이용되는 수십바이트 이하의 짧은 프레임과 화상 데이터송신 등에 이용되는 수천바이트 이상의 긴 프레임이 혼재한다. 많은 시스템에서는 짧은 프레임쪽이 출현빈도가 높다. 따라서, 긴 프레임 다음에 짧은 프레임이 많이 링크된 상황에서는 긴 프레임의 송출중에는 다음 프레임의 선행처리가 이루어지지 않고, 또 긴 프레임의 송출완료간격으로 되어 버퍼 메모리(505)에 빈 곳이 생긴 경우에 후속프레임의 독출을 개시해도 제때에 이루어지지 않을 가능성이 높다. 예컨대, 16M 비트/초의 통신망에서는, 1K 바이트의 데이터는 불과 50㎲로 송출되어버리기 때문에, 1K 바이트의 버퍼 메모리를 사용한 경우에는 짧은 프레임의 취입 및 검사의 처리시간은 500㎲ 이하로 되지 않으면 안되고, 이 짧은 프레임이 40 바이트정도라고 하면, 이 프레임은 20㎲로 송출되어버리기 때문에, 제2후속프레임을 연속해서 송신하기 위해서는 평균해서 260㎲ 이하로 취입 및 검사의 처리를 종료하지 않으면 안된다. 즉, 많은 후속 프레임을 연속해서 송출하기 위해서는 요구되는 취입 및 검사시간이 매우 단시간으로 되기 때문에, 대단히 고속의 취입 및 검사를 수행하는 수단이 필요하게 된다.
이것을 회피하기 위한 한 수단으로서는 수천바이트 이상의 버퍼 메모리(501)를 설치하는 것이다. 그렇지만, 통신제어장치(501) 전체를 1개의 LSI에 집적화할 때에는, 거대한 버퍼 메모리는 칩사이즈의 거대화를 초래하게 되어 대단히 사정이 악화된다. 또한, 버퍼 메모리(505)에 빈 곳이 생길 때까지 후속의 프레임은 검사할 수 없으므로, 토근대기 등과 같은 빈 시간이 있어도 헤더 검사만 먼저 완료하는 선행처리를 할 수 없다. 결국 고속의 취입 및 검사를 수행하는 수단이 필요하게 된다.
이상과 같이 종래의 통신제어장치에서는,
(1) 버퍼 메모리에 복수개의 프레임을 격납할 수 있는 정도의 충분한 메모리 용량이 없는 경우에는 선행하는 프레임이 어느 정도 송출될 때까지 후속 프레임의 취입이 대기되어, 송신 제어부로부터 연속해서 송출할 수 없게 된다.
(2) 긴 프레임 다음에 많은 짧은 프레임이 연속하는 경우에는 긴 프레임의 송출중에는 다음 프레임의 선행처리를 할 수 없고, 또 긴 프레임 송출완료간격으로 되어 버퍼 메모리에 빈 곳이 생긴 경우에는 후속 프레임의 독출을 개시해도 제때에 이루어지지 않을 가능성이 높다.
(3) 통신제어장치 전체를 1개의 LSI에 집적화할 때에 거대한 버퍼 메모리를 구성하는 것은 칩사이즈의 거대화를 초래하고, 또 버퍼 메모리에 빈 곳이 생길때까지 후속의 프레임은 검사할 수 없기 때문에 선행처리가 이루어질 수 없게 된다는 등의 결점이 있었다.
[발명의 목적]
이에 본 발명은 상술한 문제점을 해결하기 위해 이루어진 것으로, 통신제어장치내의 버퍼 메모리의 용량을 가능한한 작게 억제하면서, 긴 프레임 다음에 복수개의 짧은 프레임이 연속해서 링크되는 바와 같은 불균일한 프레임 구조의 데이터를 송출하는 경우에도 고속처리가 가능한 통신제어장치를 제공하고자 함에 그 목적이 있다.
[발명의 구성]
상기와 같은 목적을 달성하기 위해 본 발명의 통신제어장치의 제1특징은, 제1도에 나타낸 바와 같이 당해 장치외부의 송신원(3)으로부터 송신되어 오는 통신데이터를 검사하는 검사수단(9)과, 상기 통신데이터를 유지하는 제1버퍼 메모리(11), 당해 장치외부의 통신망으로 송출하는 통신데이터를 취입해서 유지하는 제2버퍼 메모리(14), 상기 제2버퍼 메모리로부터 상기 통신망으로 통신데이터를 송출하는 송출수단(15), 송출종료시의 상태를 상기 송신원(3)에 되돌려 기입하는 송신상태 기입복귀수단(17) 및, 상기 검사수단(9)의 결과에 기초해서 정상적인 통신데이터만을 상기 제2버퍼 메모리(14)에 취입하고, 상기 송출수단(15)에 의한 송출처리 및 상기 송신상태 기입복귀수단(17)에 의한 기입복귀처리의 제어를 수행하는 버퍼 관리수단(12)을 구비하는 것이다.
또한, 본 발명의 제2특징은 제1도 및 제3도에 나타낸 바와 같이 청구범위 제1항에 기재된 통신제어장치에 있어서, 상기 버퍼 관리수단(12)이, 상기 검사수단(9)에서 정상이라고 판단된 통신데이터를 상기 제2버퍼 메모리(14)로 취입하기 위한 제어정보, 상기 송출수단(15)에 의한 그 통신데이터 송출에서의 송출종료시의 상태를 상기 송신원(3)으로 되돌려 기입하기 위한 제어정보 및 송출상태를 나타내는 데이터를 상기 송신원(3)으로부터 송출되는 복수개의 통신데이터의 각각에 대해 유지하는 제어데이터 유지수단(12-1)을 구비하고 있고, 상기 검사수단(9)에 의한 헤더 검사, 상기 제2버퍼 메모리(14)로의 통신데이터의 취입, 「상기 송출수단(15)에 의한 통신데이터의 송출 및 송신상태 기입복귀수단(17)에 의한 상기 송신원(3)으로의」 제어정보 및 종료상태 데이터의 기입복귀의 각각의 처리가 독립해서 수행되는 것이다.
또한, 본 발명의 제3특징은 청구범위 제1항 또는 제2항에 기재된 통신제어장치에 있어서, 상기 제2버퍼 메모리(14)가 상기 송신원(3)으로부터 송출되는 복수개의 통신데이터를 유지하는 것이다.
또한, 본 발명의 제4특징은 청구범위 제1항 또는 제2항에 기재된 통신제어장치에 있어서, 상기 검사수단(9)이, 상기 제2버퍼 메모리(14)에 검사해야 할 통신데이터를 취입할 여유가 있을 때에는 그 통신데이터를 제2버퍼 메모리(14)로 취입시키고, 여유가 없을 때에는 상기 제1버퍼 메모리(11)로 취입시키는 것이다.
더욱이, 본 발명의 제5특징은 청구범위 제1항 또는 제2항에 기재된 통신제어장치에 있어서, 상기 제1 및 제2버퍼 메모리(11, 14)가 1개의 버퍼 메모리로 구성되고, 상기 송신원(3)으로부터 송신되어 오는 통신데이터 및 상기 통신망으로 송출하는 통신데이터가 각각 다른 소정의 기억영역에 유지되는 것이다.
[작용]
본 발명의 제1특징의 통신제어장치에서는, 당해 장치외부의 송신원(3)으로부터 송신되어 오는 통신데이터를 검사수단(9)에 의해 검사한 다음, 제1버퍼 메모리(11)에 상기 통신데이터를 유지한다. 또한, 상기 검사수단(9)의 결과에 기초해서 정상적인 통신데이터에 대해서만 당해 장치외부의 통신망으로 송출하는 통신데이터를 송신원(3)으로부터 취입해서 제2버퍼 메모리에 유지한다. 또, 상기 제2버퍼 메모리로부터 상기 통신망으로 통신데이터를 송출수단(15)에 의해 송출하고, 송신상태 기입복귀수단(17)에 의해 송출종료시의 상태를 상기 송신원(3)으로 되돌려 기입한다.
「이와 같이, 송신하는 통신데이터의 내용겁사와 데이터의 버퍼링을 위해 메모리를 2단계로 설치하고, 제1버퍼 메모리(11)에서 통신데이터의 내용검사를 수행한 다음 제2버퍼 메모리(14)로 통신데이터를 다시 취입하여 버퍼링한 후 통신망으로 데이터를 송출하도록 해서, 통신데이터의 내용검사와 데이터송출을 병행해서 동작시킴으로써 고속임으로 연속적인 데이터송출이 가능하게 된다.」
또한, 본 발명의 제2 및 제3특징의 통신제어장치에서는, 상기 버퍼 관리수단(12)내에 상기 검사수단(9)에 의해 정상이라고 판단된 통신데이터를 상기 제2버퍼 메모리(14)로 취입하기 위한 제어정보, 상기 송출수단(15)에 의한 그 통신데이터 송출에서의 송출종료시의 상태를 상기 송신원(3)에 되돌려 기입하기 위한 제어정보 및 송출상태를 나타내는 데이터를 상기 송신원(3)으로부터 송신되는 복수개의 통신데이터의 각각에 대하여 유지하는 제어데이터 유지수단(12-1)을 구비하고, 상기 검사수단(9)에 의한 헤더 검사, 상기 제2버퍼 메모리(14)로의 통신데이터의 취입, 상기 송출수단(15)에 의한 통신데이터의 송출 및, 상기 송신상태 기입복귀수단(17)에 의한 상기 송신원(3)으로의 제어정보 및 종료상태 데이터의 기입복귀의 각각의 처리를 독립해서 수행하는 것이다.
따라서, 각 구성요소가 수행하는 처리를 병행해서 수행할 수가 있으므로, 고속으로 연속적인 데이터 송출이 가능하게 된다.
또한, 본 발명의 제4특징의 통신제어장치에서는, 상기 검사수단(9)이, 상기 제2버퍼 메모리(14)에 검사해야 할 통신데이터를 취입할 여유가 있을 때에는 그 통신데이터를 제2버퍼 메모리(14)로 취입시키고, 여유가 없을 때에는 상기 제1버퍼 메모리(11)로 취입시킴으로써, 충분한 메모리용량이 없는 경우에도 후속의 통신데이터의 취입을 대기하지 않고, 고속으로 연속적인 데이터송출이 가능하게 된다.
더욱이, 본 발명의 제5특징의 통신제어장치에서는, 상기 제1 및 제2버퍼 메모리(11, 14)가 1개의 버퍼 메모리로 구성되고, 상기 송신원(3)으로부터 송신되어 오는 통신데이터 및 상기 통신만으로 송출하는 통신데이터가 각각 다른 소정의 기억영역에 유지된다. 이에 따라, 버퍼 메모리 주변의 제어회로를 축소시킬 수가 있으므로, 통신제어장치 전체의 LSI화시에 유효하다.
[실시예]
이하, 본 발명에 따른 실시예를 도면에 기초해서 상세히 설명한다.
제1도에 본 발명의 제1실시예에 따른 통신제어장치의 구성도를 나타낸다. 제1도에 있어서, 제18도(종래예)와 중복되는 부분에는 동일한 참조부호를 병기하고, 그 설명은 간략하게 한다.
본 실시예의 통신제어장치를 이용한 데이터통신 시스템은, 제1도에 나타낸 바와 같이 종래와 마찬가지로 통신제어장치(1), 프로세서(2) 및 공유통신 데이터 메모리(3)의 구성요소로 이루어진다. 프로세서(2)는, 예컨대 LLC층 이상의 프로토콜을 실행하는 프로세서이고, 통신제어장치(1)는 MAC층 이하의 프로토콜을 실행하는 장치이며, 또 공유통신 데이터 메모리(3)는 프로세서(2)와 통신제어장치(1)가 공유하는 메모리이고, 프로세서(2)가 생성한 송신데이터를 통신제어장치(1)가 수취해서 송신한다. 또 한편으로 통신제어장치(1)는 송신완료후의 상태를 기입하고, 프로세서(2)가 이것을 수취한다.
공유통신 데이터 메모리(3)내의 데이터는, 프로세서(2)와의 데이터의 주고받음이 원활하게 이루어지도록 구조화된 데이터 구조를 갖추고 있다. 제2도(a)에 데이터 구조의 기본으로 되는 프레임 버퍼(Frame Buffer ; FB)의 데이터 구조, 제2도(b)에 프레임 구조의 기본으로 되는 프레임 디스크립터(Frame Descriptor ; FD)의 데이터 구조, 제2도(c)에 1개의 프레임을 프레임 디스크립터(FD) 및 프레임 버퍼(FB)로 구성한 예, 제2도(d)에 3개의 프레임이 링크되어 있는 예를 각각 나타낸다.
프레임 버퍼(FB)는 관리 데이터 영역(401)과 데이터 영역(406)을 1개의 단위로 하고 있다. 관리 데이터영역(401)에는 후속의 프레임 버퍼(FB)로의 링크를 나타내기 위한 다음 FB 어드레스(402), 데이터 영역의 선두 어드레스(403), 데이터 길이(404) 및 리스트의 말미를 나타내는 제어코드(405)가 격납되어 있다. 또, 데이터 영역(406)에는 통신망으로 송출되는 통신데이터가 격납되어 있다. 프레임의 데이터량이 1개의 프레임 버퍼(FB)의 데이터 영역(406)보다도 큰 경우에는, 복수개의 프레임 버퍼(FB)의 데이터 영역에 분할되어 격납되고, 제2도(c)에 나타낸 바와 같이 각 프레임 버퍼(FB1∼FB3)가 다음 FB 어드레스를 이용하여 링크된다.
또한, 프레임 디스크립터(FD)는 다음의 프레임 디스크립터(FD)로의 링크를 나타내는 다음 FD 어드레스(411), FB 리스트의 선두 FB 어드레스(412), FB 리스트의 말미 FB 어드레스(413), 프레임 길이(414), 송신 완료시의 상태를 나타내는 상태(415; status), 리스트의 말미를 나타내는 제어코드(16)로 이루어진다.
1개의 프레임은 1개의 프레임 디스크립터(FD)와 1개의 내지 그 이상의 프레임 버퍼(FB)로 구성된다. 복수개의 프레임은 다음 FD 어드레스를 이용하여 프레임 디스크립터(FD)를 링크함으로써 관리된다[제4도(4)참조]. FD 리스트와 FB 리스트는, 미리 프로세서(2)가 작성하고, 통신제어장치(1)로 통고한다. 또한, 프로세서(2)는 FD 리스트를 통신제어장치(1)에 통고한 후에도, 차례차례 프레임을 생성해서 앞의 FD 리스트에 추가해 둘 수도 있다.
이어서, 본 실시예의 통신제어장치(1)의 상세한 구성을 설명한다.
제1도에 있어서, 통신제어장치(1)는 헤더 검사부(9), 헤더 취입부(10), 헤더 버퍼(11), 버퍼 관리부(12), 데이터 취입부(13), 데이터 버퍼(14), 송출부(15), 상태 검사부(16), 상태기입복귀부(17) 및 버스 제어부(18)로 구성되어 있다. 이하, 각각의 구성요소를 상세히 설명한다.
(1) 헤더 검사부(9)
헤더 검사부(9)는 그 인터페이스(interface)로서, 프로세서(2)가 작성한 FD 리스트를 수취하는 신호선(100), 헤더 취입부(10)에 대하여 1개의 FD 어드레스를 지정하는 신호선(101), 버퍼 관리부(12)에 대하여 송신가능한 프레임을 통지하는 신호선(102) 및 검사결과를 상태기입복귀부(17)에 통지하는 신호선(103)을 갖추고 있다.
프로세서(2)로부터 통고된 FD 리스트의 선두 어드레스를 신호선(101)을 이용하여 헤더 취입부(10)에 통지해서 헤더 취입부(10)에 프레임 디스크립터(FD) 및 프레임 헤더를 취입시킨다. 취입완료통지가 반환되어 오면, 헤더 버퍼(11)에 취입된 프레임 디스크립터(FD) 및 프레임 헤더의 내용 및 헤더 취입부(10)의 상태를 검사하고, 검사결과 정상이면 신호선(102)을 이용하여 FD 상태 기입복귀 어드레스, FB 리스트의 선두 어드레스(412), 말미 어드레스(413) 및 프레임 길이(414)를 통지한다. 또한, 이상이 검출된 경우, 그것을 나타내는 상태를 생성해서 기입복귀 어드레스와 더불어 신호선(103)을 이용하여 상태기입복귀부(17)에 통지한다. 더욱이, 후속의 프레임 디스크립터(FD)에 대해서도 FD 리스트의 말미에 도달할 때까지 동일한 처리를 수행한다.
(2) 헤더 취입부(10)
헤더 취입부(10)는 그 인터페이스로서, 공유통신 데이터 메모리(3)로부터 데이터를 독출하기 위해서 버스제어부(18)와 교신하는 신호선(106) 및 헤더 버퍼(11)로 독출한 데이터를 기입하기 위한 신호선(105)을 갖추고 있다.
헤더 검사부(9)로부터 FD 어드레스가 통지되면, 지정된 프레임 디스크립터(FD)를 공유통신 데이터 메모리(3)로부터 독출해서 헤더 버퍼(11)의 FD 격납영역에 기입하고, 이 FD 내용으로부터 선두 FB를 취출하여 프레임의 헤더부분을 공유통신 데이터 메모리(3)로부터 독출해서 헤더 버퍼(11)의 헤더격납영역에 기입하며, 이들 독출·기입동작의 완료를 신호선(101)을 이용하여 헤더 검사부(9)에 통지한다. 한편, 취입시에 공유통신 데이터 메모리(3)로부터의 데이터에 패리티에러(parity error)등의 에러가 검출된 경우 혹은 정상적으로 종료한 경우의 정보가 헤더 버퍼(11)에 설치된 상태영역에 기입된다.
(3) 헤더 버퍼(11)
헤더 버퍼(11)는 그 인터페이스로서, 헤더 검사부(9)에 지정된 데이터를 독출해서 출력하기 위한 신호선(104) 및 헤더 취입부(10)로부터 데이터를 입력하기 위한 신호선(105)을 갖추고, 프레임 디스크립터(FD)의 데이터 및 프레임의 헤더부 및 헤더 취입부(10)의 상태를 유지한다.
(4) 버퍼 관리부(12)
버퍼 관리부(12)는 데이터 버퍼(14)로의 프레임 데이터의 입출력을 관리하는 주체로서 기능하는 것이다. 헤더 검사부(9)로부터는 신호선(102)을 매개하여 송신해야 할 프레임의 FD 상태 어드레서, FB 리스트의 선두 어드레스, FB 리스트의 말미 어드레스 및 프레임 길이가 통지된다. 데이터 취입부(13)에 대해서는 신호선(107)을 매개하여 취입해야 할 프레임의 FB 리스트의 선두 어드레스, FB리스트의 말미 어드레스 및 프레임 길이를 통지하고, 또 선페치종료, 페치완료 및 종료상태가 반환된다. 데이터 버퍼(14)에 대해서는, 프레임 데이터를 기입하는 어드레스, 독출 어드레스 및 종료 어드레스 및 그 유효신호를 신호선(108)을 매개하여 통지한다. 송출부(15)에 대해서는 신호선(109)을 매개하여 송출요구를 통지하고, 이에 따라 종료상태가 반환된다. 상태 검사부(16)에 대해서는 신호선(110)을 매개하여 데이터 취입부(13) 및 송출부(15) 각각의 종료상태가 통지되고, 이에 따라 프레임 디스크립터(FD)에 되돌려 기입하는 상태가 반환된다. 더욱이, 상태기입복귀부(17)에 대해서는 신호선(111)을 매개하여 FD 상태의 어드레스 및 상태 데이터가 통지되고, 그 기입완료가 보고된다.
버퍼 관리부(12)의 보다 상세한 구성을 제3도를 이용하여 설명한다.
제3도에 나타낸 바와 같이, 버퍼 관리부(12)는 제어 데이터 블록(12-1), 빈 블록 포인터(12-2), 프레임 기입부(12-3), 빈 블록 검출부(12-4), 페치 블록 포인터(12-5), FB 정보 독출부(12-6), 종료상태 기입부(12-7), 버퍼 어드레스 기입부(12-8), 페치 요구 출력부(12-9), 미송신블록 포인터(12-10), 버퍼 어드레스 독출부(12-11), 종료상태 독출/기입부(12-12), 송출요구 출력부(12-13), 송신완료블록 포인터(12-14), 상태 독출/기입부(12-15), 상태검사 요구부(12-16), 상태기입복귀 블록 포인터(12-17), FD 상태 독출부(12-18) 및 상태기입복귀 요구부(12-19)로 구성되어 있다.
제어 데이터 블록(制御 data block ; 12-1)은 복수개의 프레임을 병행해서 처리하기 위해 데이터를 격납하는 수단이다. 여기에서는 설명을 구체적으로 행하기 위해, 제어 데이터 블록(12-1)의 구조로서 제4도에 나타낸 데이터 구조를 1블록으로 하고, 그것이 8블록인 것으로 한다. 또 이들 8개의 제어블록(SCA∼SCH)은, 제5도에 나타낸 바와 같은 고리모양의 링버퍼(ring buffer)로 구성되어 FIFO(First In First Out) 제어에 따라 SCA로부터 SCH의 순으로 액세스되는 것으로 한다.
여기서, 제어블록(SCA∼SCH)의 구조는 제어블록상태(421), FD 상태 기입어드레스(422), FD 상태(423), 데이터 취입 종료상태(424), 송출종료상태(425), FB 리스트 선두 어드레스(426), FB 리스트 말미 어드레스(427), 프레임 길이(428), 데이터 버퍼 개시어드레스(429) 및 데이터 버퍼 종료어드레스(430)로 구성된다.
제어 데이터 블록(12-1)은 빈 블록 포인터(12-2), 페치 블록 포인터(12-5), 미송신 블록 포인터(12-10), 송신완료 블록 포인터(12-14) 및 상태기입복귀블록 포인터(12-17)의 총 5개의 블록 포인터를 이용하여 관리되고 있다.
각 제어블록(SCi ; i=A∼H)의 상태는, [DR, DP, DC, SR, SC]의 "0" 및 "1"의 값을 갖는 5개의 상태변수에 의해 관리되고, 제어블록상태(421)에 유지된다. 여기서, 각각의 상태변수의 값이 갖는 의미는 다음과 같다.
DR(Data Request) : 데이터 취입부(13)에 대하여 데이터 취입요구가 있는 것을 "1"로 나타낸다.
DP(Data Prefetched) : 통신망으로의 송신개시가 가능한 정도의 프레임이 데이터 버퍼(14)에 취입된 것을 "1"로 나타낸다.
DC(Data Completed) : 데이터 취입부(13)로부터 프레임의 취입완료가 통지된 것을 "1"로 나타낸다.
SR(Send Request) : 송신가능한 프레임이 있는 것을 "1"로 나타낸다.
SC(Send Completed) : 송신부(15)로부터 송출완료가 통지된 것을 "1"로 나타낸다.
한편, 초기상태에서는 상기 5개의 모든 블록 포인터는 제어블록을 가리키고, 또 각 제어블록의 상태는 [0, 0, 0, 0, 0](초기상태)으로 설정된다.
이하, 각 블록 포인터의 동작과 제어블록의 상태천이를, 제어블록상태(421)와 각 블록 포인터의 관계를 나타내는 제5도 및 제어블록의 상태천이를 나타내는 제6도를 이용하여 설명한다.
빈 블록 포인터(12-2)
빈 블록 포인터(12-2)가 가리키는 제어블록(SCi)의 상태변수가 [0, 0, 0, 0, 0][초기상태(S1)]인 경우에는 빈 블록이 있다는 것을 나타낸다. 만일, 상태변수가 초기상태가 아닌 경우에는 상태기입복귀부(17)로부터의 종료통지에 의해 상태변수가 초기상태로 리턴되기(제6도에 있어서, S7로부터 S8로 천이한다)때문에 그 통지를 대기한 후에 다시 상태변수를 검사해서 비어 있는 것을 확인한다. 이 처리는 빈 블록 검출부(12-4)에서 수행된다. 헤더 검사부(9)로부터 송신상태의 어드레스 및 FB 리스트 데이터와 프레임 길이가 통지되면, 그 데이터는 프레임 정보 기입부(12-3)를 이용하여 빈 블록 포인터가 가리키는 제어블록(SCi)의 FD 상태 기입어드레스(422), FB 리스트 데이터(426, 427) 및 프레임 길이(428)에 격납되고, 「제어블록(SCi)의 상태변수(DR)을 "1"로 설정함으로써 빈 블록 포인터(12-2)가 갱신된다. 이 결과,」 제어블록(SCi)의 제어블록 상태(421)는 [0, 0, 0, 0, 0][초기상태(S1)]로부터 [1, 0, 0, 0, 0][페치요구상태(S2)]로 천이한다.
페치 블록 포인터(12-5)
페치 블록 포인터(12-5)와 빈 블록 포인터(12-2)가 다른 제어블록을 가리키고 있는 경우에는, 프레임 취입요구가 있다는 것을 나타낸다. 이것은 페치 요구 출력부(12-9)에 의해 검사된다. 페치 요구 출력부(12-9)에서는 데이터 취입부(13)가 동작하고 있지 않은 것, 데이터 버퍼(14)에 프레임을 격납하는 빈 영역이 있는, 즉 만배(滿配)라는 것을 나타내는 신호(108-5)가 출력되고 있지 않은 것을 검사하고, 버퍼 어드레스 기입부(12-8)를 이용하여(후술할) 데이터 버퍼(14)의 기입 어드레스 카운터(14-2)의 값을 페치 블록 포인터(12-5)가 가리키는 제어블록(SCi)의 데이터 버퍼 개시 어드레스(429)에 설정하며, 또 FB 리스트 데이터(426, 427) 및 프레임 길이(428)를 FB 정보 독출부(12-6)를 이용하여 독출해서 데이터 취입부(13)에 통지해서 데이터 취입 요구를 출력한다.
데이터 취입부(13)로부터 프레임의 선페치가 종료했다는 취지의 통지를 수취하면, 제어블록(SCi)의 상태변수(DP)를 "1"로 설정한다. 즉, 제어블록(SCi)의 제어블록상태(421)는 [1, 0, 0, 0, 0][페치요구상태(S2)]로부터 [1, 1, 0, 0, 0][선페치 종료상태(S3)]로 천이한다.
더욱이, 데이터 취입부(13)로부터 페치 완료신호(108-6)의 통지를 받으면, 상태변수(DC)를 "1"로 설정하고, 버퍼 어드레스 기입부(12-8)를 이용하여 최후의 데이터가 격납된 데이터 버퍼(14)의 어드레스(종료 어드레스)를 제어블록(SCi)의 데이터 버퍼 종료 어드레스(430)에 기입해서 페치 블록 포인터(12-5)를 갱신한다. 또, 데이터 취입부(13)가 그 종료상태를 통지해 오기 때문에 종료상태 기입부(12-7)를 이용하여 제어블록(SCi)의 데이터 취입 종료상태(424)에 기입할 수 있게 된다.
이때, 제어블록(SCi)의 제어블록상태(421)는 [1, 1, 0, 0, 0][선패치 종료상태(S3)]로부터 [1, 1, 1, 0, 0][페치 완료상태(S4)]로 천이한다. 한편, 후술할 바와 같이 송신요구가 미리 이루어져, 제어블록(SCi)의 제어블록상태(421)가 [1, 1, 0, 0, 0][선페치 종료상태(S3)]로부터 [1, 1, 0, 1, 0][송신요구중 B상태(S5)]로 천이되어 있는 경우에는, 더욱이 [1, 1, 0, 1, 0][송신요구중 B상태(S5)]로부터 [1, 1, 1, 1, 0][송신요구중 A상태(S6)]로 천이한다.
미송신 블록 포인터(12-10)
미송신 블록 포인터(12-10)와 페치 블록 포인터(12-5)가 다른 제어블록을 가리키고 있는 경우에는 송신해야 할 데이터 버퍼(14)에 완전히 취입되어 있는 것을 나타낸다. 또, 동일한 제어블록을 가리키고 있는 경우에는 데이터 취입부(13)가 취입을 수행하고 있을 가능성이 있다. 이때, 제어블록(SCi)의 상태변수(DP)가 이미 "1"이라면 송신개시에 충분한 데이터가 취입되어 있다는 것을 나타내고, 또 상태변수(DP)가 "0"이라면 데이터 취입부(13)가 선페치 완료를 통지할 때까지 대기해야 한다는 것을 나타낸다. 이들 판단은 송신요구 출력부(12-13)에서 이루어진다.
송신해야 할 데이터가 모두 취입되어 있는 때에는, 버퍼 어드레스 독출부(12-11)를 이용하여 데이터 버퍼 개시 어드레스(429) 및 데이터 버퍼 종료 어드레스(430)가 그 제어블록(SCi)으로부터 독출되어 데이터 버퍼(14)에 설정되고, 더욱이 송신부(15)에 송신요구를 출력해서 제어블록(SCi)의 상태변수(SR)를 "1"로 한다. 이때, 제어블록(SCi)의 제어블록상태(421)는 [1, 1, 1, 0, 0][페치 완료상태(S4)]로부터 [1, 1, 1, 1, 0][송신요구중 A상태(S6)]로 천이한다.
여기서, 상태변수(DP)가 "1"이더라도 상태변수(DC)가 "0"인 때에는, 데이터 취입부(13)가 바로 송신하고자 하는 프레임에 대하여 취입동작중이기 때문에, 종료 어드레스 유효신호는 출력되지 않는다. 따라서, 데이터 취입부(13)가 페치완료를 통지해 왔을 때에 비로서 데이터 버퍼 종료어드레스(430)가 제어블록(SCi)으로부터 독출되어 데이터 버퍼(14)에 설정된다. 즉, 제어블록(SCi)의 제어블록상태(421)는 [1, 1, 0, 0, 0][선페치 종료상태(S3)]로부터 [1, 1, 0, 1, 0][송신요구중 B상태(S5)]로 천이한다.
송출부(15)가 송신의 완료상태를 출력해서 통지해 왔을 때에는 그 상태를 종료상태 기입부(12-12)를 이용하여 제어블록(SCi)의 송출종료상태(425)에 기입함과 더불어 제어블록(SCi)의 상태변수(SC)를 "1"로 하고, 더욱이 미송신 블록 포인터(12-10)를 갱신한다. 이때에는, 데이터 취입부(13)는 공유통신 데이터 메모리(3)로부터의 프레임 취입을 당연히 완료하고 있을 것이므로, 제어블록(SCi)의 제어블록상태(421)는 [1, 1, 1, 1, 0][송신중 A상태(S6)]로부터 [1, 1, 1, 1, 1][송신완료상태(S7)]로 천이한다.
송신완료 블록 포인터(12-14)와 미송신 블록 포인터(12-10)가 다른 제어블록을 가리키고 있는 경우에는, 송신완료된 제어블록이 존재한다는 것을 나타낸다. 이것은 상태검사 요구부(12-16)에 의해 검출되어 상태 검사부(16)에 통지된다. 상태 검사부(16)는 상태 독출부(12-15)를 이용하여 제어블록(SCi)내의 각 상태를 독출해서, 송신상태를 제어블록(SCi)의 송출종료상태(425)에 기입한다. 또, 처리완료가 통지되어 왔다면, 송신완료 블록 포인터(12-14)를 갱신한다.
상태 기입복귀 블록 포인터(21-17)
상태 기입복귀 블록 포인터(21-17)와 송신완료 블록 포인터(12-14)가 다른 제어블록을 가리키고 있는 경우에는 공유통신 데이터 메모리(3)의 프레임 디스크립터(FD)에 기입복귀해야 할 상태가 존재한다는 것을 나타낸다. 상태기입복귀부(12-17)는 FD 상태 독출부(12-18)를 이용하여 제어블록(SCi)으로부터 FD 상태를 기입하는 어드레스(422)와 상태(423)를 독출해서 상태기입복귀부(17)에 통지한다. 기입종료가 통지되었다면, 제어블록(SCi)의 제어블록상태(421)를 [0, 0, 0, 0, 0]로 설정하고, 상태기입복귀 블록 포인터(12-17)를 갱신한다.
(5)데이터 취입부(13)
데이터 취입부(13)는 그 인터페이스로서, 버퍼 관리부(12)로부터 FB 리스트 선두 어드레스(426), FB 리스트의 말미 어드레스(427) 및 프레임 길이(428)를 수취하고, 또 동작상태를 통지하는 신호선(107), 프레임 데이터를 독출·기입하기 위해서 버퍼 제어부(112)와 교신하는 신호선(112) 및, 독출 데이터를 기입하기 위해서 데이터 버퍼(14)와 교신하는 신호선(113)을 갖추고 있다.
데이터 버퍼(14)로부터 신호선(113)에 의해 버퍼영역에 빈 곳이 있다는 취지를 통지해 왔을 때, 데이터 취입부(13)는 버스 제어부(18)를 매개하여 공유통신 데이터 메모리(3)로부터 프레임 데이터를 독출해서 데이터 버퍼(14)에 기입한다. 여기서, 공유통신 데이터 메모리(3)로부터의 데이터의 독출은 프레임 버퍼(FB)의 리스트 구조에 따라 수행된다. 또, 이미 정해진 양, 예컨대 32바이트의 데이터를 데이터 버퍼에 기입한 때에는 선페치 완료를 나타내는 신호를, 또 모든 프레임 데이터를 기입한 때에는 페치완료신호를 신호선(107)에 의해 버퍼 관리부(12)에 통지한다. 더욱이, 공유통신 데이터 메모리(3)로부터 독출한 데이터에서 패리티에러 등의 에러를 검출한 때 또는 FB 리스트를 더듬어 가며 취출한 데이터량과 미리 설정된 프레임량이 다른 등의 에러의 통지, 혹은 정상종료했다는 취지의 통지도 신호선(107)에 의해 버퍼 관리부(12)에 통지된다.
(6) 데이터 버퍼(14)
데이터 버퍼(14)는 그 인터페이스로서, 프레임 데이터 기입을 위해서 데이터 취입부(13)와 교신하는 신호선(113), 프레임 독출을 위해서 송출부(15)와 교신하는 신호선(114) 및, 프레임의 개시 어드레스(429) 및 종료 어드레스(430)를 버퍼 관리부(12)와 교신하기 위한 신호선(108)을 갖추고 있다.
데이터 버퍼(14)는 데이터 취입부(13)와 송출부(15) 사이에서 프레임 데이터를 격납하기 위한 FIFO 제어의 버퍼로서 기능하지만, 동시에 복수개의 프레임을 격납할 수 있도록 제7도에 나타낸 바와 같은 구조를 갖추고 있다. 즉, 데이터 버퍼(14)는 데이터 메모리(14-1), 기입 어드레스 카운터(14-2), 독출 어드레스 카운터(14-3), 종료 어드레스 레지스터(14-4), 종료 어드레스 선택부(14-5), FIFO 사이즈 판정부(14-6)로 구성되어 있다. 이하, 그것을 상세히 설명한다.
데이터 메모리(14-1)는 프레임 데이터를 격납하는 수단으로서, 소위 RAM으로 구성된다. 기입 데이터는 데이터 취입부(13)에 의해 통신데이터 신호선(113-1)을 매개해서 입력되고, 그것이 유효하다는 것이 기입요구신호(113-2)에 의해 표시된다. 또, 독출 데이터는 송출부(15)에 대하여 통신데이터 신호선(114-1)을 매개해서 출력되고, 그 데이터는 독출요구신호(114-2)가 유효인 때에 독출된다.
기입 어드레스 카운터(14-2)는 데이터 메모리(14-1)에 데이터를 기입하기 위한 어드레스를 생성하는 수단으로서, 그 초기값은 버퍼 관리부(12)에 의해 기입 어드레스(108-1)를 매개해서 설정된다. 그 카운트업(count up)은 데이터 취입부(13)가 출력하는 기입요구신호(113-2)에 따른다.
독출 어드레스 카운터(14-3)는 프레임 데이터를 독출하기 위한 어드레스를 생성하는 수단으로서, 그 초기값은 버퍼 관리부(12)에 의해 독출 어드레스(108-2)를 매개해서 설정된다. 그 카운트업은 송출부(15)가 출력하는 독출요구신호(114-2)에 따른다.
여기서, 기입 어드레스 카운터(14-2) 및 독출 어드레스 카운터(14-3) 모두 데이터 메모리(14-1)를 고리모양의 버퍼로 해서 사용하도록 데이터 메모리(14-1)의 말미 어드레스에 도달했다면, 다음의 카운트업에서 데이터 메모리(14-1)의 선두 어드레스가 설정된다.
종료 어드레스 레지스터(14-4)는 송출중인 프레임의 종료 어드레스를 유지하고 있고, 그 값은 버퍼 관리부(12)로부터 종료 어드레스 신호(108-3)를 매개해서 설정된다.
종료 어드레스 선택부(14-5)는, 기입 어드레스 카운터(14-2)가 출력하는 어드레스와 종료 어드레스 레지스터(14-4)가 출력하는 어드레스중 어느 한쪽을 선택해서 FIFO 사이즈 판정부(14-6)에 출력한다. 선택제어는 버퍼 관리부(12)가 출력하는 종료 어드레스 유효신호(108-4)에 기초해서 이 신호가 액티브(active)인 때에 종료 어드레스(14-4)가 선택된다.
FIFO 사이즈 판정부(14-6)는 종료 어드레스 선택부(14-5)가 출력한 어드레스와 독출 어드레스 카운터(14-3)가 출력한 어드레스를 비교해서 이하의 동작을 수행하는 수단이다.
종료 어드레스 유효신호(108-5)가 액티브(active ; 活性)이고, 양자의 어드레스가 일치하는 경우에는 공백신호(empty signal ; 114-3)를 액티브로 한다.
종료 어드레스 유효신호(108-5)가 비액티브(nonactive ; 不活性)이고, 양자의 어드레스가 일치하는 경우에는 에러신호(114-4)를 액티브로 한다.
종료 어드레스 선택부(14-5)가 출력하는 어드레스가 독출 어드레스 카운터(14-3)가 출력하는 어드레스에 도달하기 직전에, 풀(full)신호(108-5, 113-3)를 액티브로 한다.
즉, 공백신호(114-3)는 프레임 데이터의 정상적인 독출종료를, 에러신호(14-4)는 프레임의 최후에 도달하기 전에 데이터 메모리(14-1)의 FIFO가 비었다는 취지의 에러를, 풀신호(108-5, 113-3)는 데이터 메모리(14-1)에 빈 영역이 없다는 것을 각각 나타낸다.
(7) 송출부(15)
송출부(15)는 그 인터페이스로서, 버퍼 관리부(12)로부터 데이터 버퍼(14)로 프레임 데이터가 입력됐다는 취지의 통지를 받거나 버퍼 관리부(12)에 종료상태를 송출하기 위한 신호선(109), 데이터 버퍼(14)와 교신해서 프레임 데이터를 독출하기 위한 신호선(114) 및, 통신망으로 송신하는 신호선(115)을 갖추고 있다.
송출부(15)는 프로토콜에 따라 통신망으로부터 토큰이 입력된 때에 데이터 버퍼(14)로부터 프레임 데이터를 독출해서 통신망으로 송출하고, 프레임 말미의 데이터가 독출된 것을 공백신호(114-3)에 의해 인식해서 송신을 종료한다. 더욱이, 종료상태를 버퍼 관리부(12)에 통지한다.
(8) 상태 검사부(16)
상태 검사부(16)는 데이터 취입부(13) 및 송출부(15) 각각이 생성한 종료상태로부터 프레임 디스크립터(FD)의 상태영역(415)에 기입해야 할 상태데이터를 생성한다.
(9) 상태기입복귀부(17)
상태기입복귀부(17)는 그 인터페이스로서, 헤더 검사부(9)로부터 어드레스와 상태 데이터를 수취하기 위한 신호선(103), 버퍼 관리부(12)로부터 어드레스와 상태 데이터를 취출하기 위한 신호선(111) 및, 상태 데이터를 기입하기 위해서 버스 제어부(18)와 교신하는 신호선(116)을 갖추고 있다. 그중 신호선(116)은 더욱이 상태기입이 종료한 것을 프로세서에 통지하는 수단으로서도 사용된다.
상태기입복귀부(17)는 기입이 종료한 것을 신호선(103, 111)을 매개해서 요구원에 통지한다.
(10) 버스 제어부(18)
버스 제어부(18)는 외부공유버스(117)를 매개해서 접속되는 공유통신 데이터 메모리(3) 혹은 프로세서(2)와 통신제어장치(1)내의 구성요소간의 데이터 전송의 제어를 수행한다.
버스 제어부(18)는 그 인터페이스로서, 프로세서(2)로부터 FD 리스트를 수취하고, 또 공유통신 데이터 메모리(3)에 대하여 데이터의 독출 또는 기입을 수행하기 위한 외부공유버스(117), FD 리스트를 헤더 검사부(9)에 송출하기 위한 신호선(100) 및, 헤더 취입부(10), 데이터 취입부(13) 및 상태기입복귀부(17) 사이에서 각각 어드레스 및 데이터를 교신하는 신호선(106, 112, 116)을 갖추고 있다.
신호선(106, 112, 116)은 각각 독립되어 동작하고 있지만, 외부공유버스(117)는 한번에 1개의 어드레스밖에 액세스할 수가 없다. 이 때문에, 버스 제어부(18)는 신호선(106, 112, 116) 사이에 우선순위를 부여하여 외부공유버스(117)에 액세스할 수 있는 신호선을 선택하는 기능을 구비하고 있다. 또, 외부공유버스(117)를 통한 액세스가 완료한 것을 신호선(106, 112, 116)을 매개해서 통지한다.
외부공유버스(117)는, 프로세서(2)와 통신제어장치(1)의 양자가 사용하기 때문에 배타적인 제어가 필요하고, 버스 액세스 요구신호 및 버스 액세스 수리신호에 의한 배타적인 제어 등과 같은 종래의 버스 제어기술에 기초한 제어를 수행하는 기능도 구비하고 있다. 또, 공유버스에는 상태기입이 수행된 것을 상태 기입복귀부(17)가 통지해 왔을 때에 프로세서(2)에 대하여 그 취지를 통지하는 수단도 포함되어 있고, 버스 제어부(18)에서 그 통지신호를 생성한다.
이상의 구성에 의해 통신제어장치(1)는 복수개의 프레임을 병행해서 동시에 처리하게 되는데, 먼저 1개의 프레임이 처리되는 과정을 제8도를 이용해서 설명한다.
제8도에 있어서, 프로세서(2), 헤더 검사부(9), 헤더 취입부(10), 프레임 취입부(13), 송출부(15), 상태 검사부(16) 및 상태기입복귀부(17)에 대해서는 사선부가 그 장치 또는 구성요소가 처리하고 있는 것을 나타내고, 버퍼 관리부(12)내의 빈 블록 포인터(12-2), 페치 블록 포인터(12-5), 미송신 블록 포인터(12-10), 송신완료 블록 포인터(12-14) 및 상태기입복귀 블록 포인터(12-17)는, 그 포인터가 가리키고 있는 제어데이터 블록(12-1)내의 제어블록을 나타낸다. 또한, O내의 번호는 이하에 나타내는 단계번호에 대응하고 있다.
단계(1) : 프레임을 송신함에 있어서, 프로세서(2)는 제2도(c)에 나타내어진 구조로 프레임을 작성하고, FD 리스트의 선두 어드레스를 헤더 검사부(9)에 통지한다.
단계(2) : 헤더 검사부(9)는 제1FD 어드레스를 헤더 취입부(10)에 통지해서 취입을 개시시킨다.
단계(3) : 헤더 취입부(10)는 최초에 FD 데이터를 헤더 버퍼(11)의 FD 격납영역에 취입한다. 이 데이터중에는 프레임이 격납된 FB 리스트의 어드레스(412, 413) 및 프레임 길이(414)가 포함되어 있기 때문에, 이 값을 이용하여 프레임을 헤더 버퍼(11)의 헤더 영역에 취입한다. 이때, 취입하는 데이터의 길이는 이미 정해진 헤더 길이와 프레임 길이(414)를 비교해서 짧은 쪽의 길이로 한다. 헤더 취입이 종료되면 헤더 검사부(9)로 완료를 통지한다. 한편, 데이터 독출·기입시에, 공유통신 데이터 메모리(3)로부터의 데이터에 패리티검사등에 의한 에러가 검출되었거나, [버스의 로크(lock) 등에 의해] 일정시간 내에 취입이 완료되지 않았거나, FB 리스트가 유지하는 데이터 길이가 프레임 길이보다 짧은 등의 이상 상태가 검출된 경우의 에러통지, 혹은 정상적으로 종료했다는 취지의 통지는 헤더 버퍼(11)에 설치된 취입상태 데이터 영역을 매개해서 헤더검사부(9)에 통지된다.
단계(4) : 헤더 검사부(9)는 취입종료상태 데이터를 검사하고, 이상이 발견된 경우에는 그 내용에 따른 대책을 수행한다. 이 대책에 관해서는 본 발명과 직접 관계가 없기 때문에 그 상세한 설명은 생략한다. 정상적인 취입이 수행되었다면, 프레임 디스크립터(FD) 및 헤더의 검사를 개시한다. 검사는 다음의 수순에 따라 진행된다.
단계(4-) : 프레임 디스크립터(FD)의 송신상태 데이터를 검사하여, 이미 송신이 완료되어 있는 프레임에서는 없다는 것을 확인한다.
단계(4-) : 프레임 길이가 프로토콜에 정의된 길이 이내인지 검사한다.
단계(4-) : 헤더의 내용을 검사한다. 일예를 들면, 프레임에 부착된 우선도의 허용범위, 원시 어드레스 필드(source address field)의 내용 등이다.
검사가 종료되면, 송신상태를 기입복귀해야 할 어드레스와 그 데이터, FB 리스트의 선두 및 말미의 어드레스, 프레임 길이 등을 버퍼 관리부(12)에 통지한다. 이상이 발견된 경우에는 그 에러를 나타내는 비트를 설정하고, 더욱이 송신완료의 비트를 상태에 설정하며, 상태기입복귀부(17)에 상기 어드레스와 상태를 통지한다. 즉, 통신망으로 송출가능한 프레임만이 버퍼 관리부(12)에 통지되고, 버퍼 관리부(12)는 헤더 검사부(9)로부터 통지된 내용을 빈 블록 포인터(12-2)가 가리키는 제어블록에 설정하여 그 포인터를 갱신하게 된다.
단계(5) : 버퍼 관리부(12)는 헤더 검사부(9)로부터 통지된 내용을 빈 블록 포인터(12-2)가 가리키는 제어블록에 설정하여 그 포인터를 갱신한다. 또, 페치 블록 포인터(12-5)를 검사해서 데이터 취입 대기의 제어블록이 존재하고, 또 데이터 버퍼(14)에 빈 영역이 있는 경우에는, 데이터 취입부(13)에 대하여 FB 리스트의 선두 어드레스 및 말미 어드레스 그리고 프레임 길이를 통지한다.
단계(6) : 데이터 취입부(13)는 버퍼 관리부(12)로부터 지시된 FB 리스트의 프레임을 공유통신 데이터 메모리(3)로부터 독출한다. 이미 정해진 데이터량을 데이터 버퍼(14)에 취입했다면, 선페치 종료를 버퍼 관리부(12)에 통지하고, 더욱이 모든 프레임을 취입할 때까지 데이터 취입을 계속한다. 한편, 이 과정에서 데이터 버퍼(14)에 빈 영역이 없어서 풀신호(108)가 출력된 경우에는 취입을 일시 정지하고 빈 영역이 생길 때에 취입을 재개한다. 취입이 완료되었다면, 버퍼 관리부(12)에 종료상태를 통지한다.
단계(7) : 버퍼 관리부(12)는 미송신 블록 포인터(12-10)를 검사해서 그것이 가리키는 제어블록에서 선페치가 종료되어 있다면, 데이터 버퍼(14)의 독출개시 어드레스를 제어블록의 개시 어드레스로부터 취출하여 데이터 버퍼(14)에 설정하고, 송출부(15)에 송신요구를 출력한다.
단계(8) : 송출부(15)는 버퍼 관리부(12)로부터 송신요구가 있으면, 프레임을 데이터 버퍼(14)로부터 취출하여 통신망 프로토콜에 따라 통신망으로 송신한다. 데이터 버퍼(14)로부터의 프레임의 말미를 나타내는 공백신호(114-3)가 액티브이면 송신을 종료하고, 버퍼 관리부(12)에 종료상태를 송출한다.
단계(9) : 버퍼 관리부(12)는 송신완료 블록 포인터(12-14)를 검사해서, 송신이 완료된 제어블록이 있다면, 이것을 상태 검사부(16)에 통지한다.
단계(10) : 상태 검사부(16)는 헤더 검사부(9), 데이터 취입부(13) 및 송출부(15)가 각각 작성한 상태로부터 최종적으로 프로세서(2)에 도달해야 할 상태를 합성한 다음, 그것을 버퍼 관리부(12)에 통지한다.
단계(11) : 버퍼 관리부(12)는 상태기입복귀 블록 포인터(12-17)을 검사해서 상태기입이 종료한 제어블록이 있다면, 기입복귀 어드레스와 상태 데이터를 상태기입복귀부(17)에 통지한다.
단계(12) : 상태기입복귀부(17)는 헤더 검사부(9) 또는 버퍼 관리부(12)가 어드레스와 상태 데이터를 출력했다면, 그 데이터를 어드레스에 의해 지시되는 공유통신 데이터 메모리(3)상의 프레임 디스크립터(FD)의 상태영역에 기입하고, 더욱이 프로세서(2)에 송신종료를 통지한다. 기입이 종료했다면, 종료통지를 버퍼 관리부(12)에 송출한다.
이상의 단계(1)로부터 단계(12)까지의 처리에 의해 1프레임분의 처리가 수행된다.
프레임 송출에 관한 검사처리, 데이터 취입처리 및 상태기입복귀처리는 서로 병행해서 수행하는 것이 가능하고, 또 버퍼 관리부(12)에 있어서도 복수개의 프레임을 동시에 관리하는 구조를 구지하고 있기 때문에, 복수개의 프레임을 병행해서 처리하는 것이 가능하다. 즉, 버퍼 관리부(12)에서 수행되는 단계(5, 7, 9, 11)의 판단은 병행해서 수행할 수가 있기 때문에, 계속해서 수행되는 단계(6, 8, 10, 12)의 처리는 병행해서 실행할 수 있게 된다.
7개의 프레임을 연속해서 송신하는 경우의 동작수순을 설명하는 타이밍차트를 제9도에 나타낸다.
헤더 검사처리에 있어서는, 상술한 1프레임의 헤더 검사처리가 종료된 후, 후속의 프레임에 관해서도 동일하게 헤더 검사처리를 진행하고, 그 결과는 수시로 버퍼 관리부(12)에 통지되고 있다. 또, 페치 블록 포인터(12-5)는 헤더 감사가 종료된 프레임에 대해 차례차례로 데이터 취입부(13)에 지시를 내려, 프레임 데이터를 데이터 버퍼(14)에 취입시키고 있다. 더욱이, 송출부(15)도 버퍼 관리부(12)의 지시로 프레임 데이터의 송신을 순차적으로 수행하고 있다.
제9도의 타이밍차트의 시간(T)에 있어서, 각 블록 포인터가 가리키는 제어블록의 상태를 제5도에 나타낸다. 먼저, 빈 블록 포인터(12-2)는 제어블록(SCH)을 가리키고 있고, 제어블록(SCA)으로부터 제어블록(SCG)에 대해서는 헤더 검사처리가 종료되어 있다는 것을 나타내고 있다. 또한, 페치 블록 포인터(21-5)는 제어블록(SCF)을 가리키고 있고, 제어블록(SCA)으로부터 제어블록(SCE)에 대해서는 데이터의 취입처리가 완료되어 있다는 것을 나타내고 있다. 또, 미송신 블록 포인터(12-10)가 제어블록(SCC)을 가리키고 있으므로, 그 제어블록(SCA, SCB)에 대해서는 송출처리가 완료되어 있다는 것을 알 수 있다.
또한, 송신완료 블록 포인터(12-14)는 제어블록(SCB)을 가리키고 있고, 이 제어블록의 상태를 상태 검사부(16)가 작성중이라는 것을 나타내고 있다. 더욱이, 상태기입복귀 블록 포인터(12-17)는 제어블록(SCA)을 가리키고 있고, 상태기입복귀부(17)에 상태의 기입복귀의뢰를 하고 있지만, 완료통지를 아직 받지 못했다는 것을 나타내고 있다.
또한, 제10도는 제9도의 타이밍차트의 시각(T)에 있어서, 데이터 버퍼(14)에 격납된 프레임 데이터의 상황을 나타내고 있다. 제10도에 있어서, 독출 어드레스 카운터(14-3)는 제어블록(SCC)이 갖는 개시 어드레스보다도 선행한 어드레스를 가리키고 있고, 그 선행한 부분의 데이터, 즉 개시 어드레스로부터 독출 어드레스 카운터(14-3)가 가리키는 어드레스까지의 데이터는 이미 통신망에 송출되어 있게 된다. 또한, 종료 어드레스 레지스터(14-4)는 제어블록(SCC)이 갖는 종료 어드레스가 설정되어 있고, 프레임의 최후를 나타내고 있다. 프레임 데이터의 취입이 왼료된 제어블록(SCD, SCE)에 대해서는 각각의 개시 어드레스 및 종료 어드레스는 결정되어 있고, 제10도에 나타낸 바와 같은 어드레스를 가리키고 있다. 또한, 데이터 취입중인 제어블록(SCF)에 대해서는 개시 어드레스는 결정되어 있지만 종료 어드레스는 결정되어 있지 않다. 이 제어블록(SCF)의 개시 어드레스로부터 기입 어드레스 카운터(14-2)가 가리키는 어드레스까지의 데이터가 제어블록(SCF)에서 취입되도록 하고 있는 프레임 데이터중 이미 취입된 부분이고, 후속 데이터는 이후 취입되게 된다. 여기서, 기입 어드레스 카운터(14-2)가 가리키는 어드레스로부터 독출 어드레스 카운터(14-3)가 가리키는 어드레스까지의 영역은 빈 영역이고, 이 빈 영역이 존재하는 한 데이터 취입부(13)는 데이터 취입을 수행하게 된다.
이와 같이, 헤더 검사가 데이터의 페치와 독립해서 수행됨으로써, 데이터 취입부(13)의 처리를 연속해서 수행할 수 있게 되고, 더욱이 송출부(15)로부터 통신망으로 연속해서 프레임을 송출할 수 있도록 되어 있다. 또, 상태의 기입복귀에 대해서도 병행해서 수행할 수가 있기 때문에, 각 처리를 수행하는 구성요소는 병행해서 동작할 수 있게 된다.
이어서, 제11도에 본 발명의 제2실시예에 따른 통신제어장치의 구성도를 나타낸다. 제11도에 있어서, 제1실시예 (제1도)와 동일한 기능을 갖춘 구성요소에는 동일한 참조부호를 병기하고, 그 설명은 생략한다.
본 실시예의 통신제어장치를 이용한 데이터 통신 시스템은, 제11도에 나타낸 바와 같이 통신제어장치(1-2), 프로세서(2) 및 공유통신 데이터 메모리(3)의 구성요소로 이루어지고, 공유통신 데이터 메모리(3)내의 데이터는 제1실시예와 동일한 데이터 구조(제2도 참조)를 갖추고 있다.
제11도에 있어서, 통신제어장치(1-2)는 헤더 검사부(21), 헤더 취입부(22), 헤더 버퍼(11), 헤더 관리부(23), 데이터 취입부(24), 데이터 버퍼(25), 송출부(15), 상태 검사부(16), 상태기입복귀부(17) 및 버스 제어부(18)로 구성되어 있다. 이하, 본 실시예의 특유의 구성요소를 상세히 설명한다.
(1) 헤더 검사부(21)
헤더 검사부(21)는 그 인터페이스로서, 제1실시예에서의 헤더 검사부(9)의 인터페이스에 더하여 버퍼 관리부(23)로부터의 헤더 취입이 가능하다는 취지의 통지를 수행하는 기능을 구비한 신호선(202) 및, 헤더 취입부(22)에 대하여 프레임 디스크립터(FD)의 어드레스를 지정해서 FD 데이터만을 취입하도록 통지하고, 또 프레임 디스크립터(FD)로 헤더의 양쪽을 취입하도록 통지하기 위한 신호선(201)을 갖추고 있다.
헤더 검사부(21)는 제1실시예에서의 헤더 검사부(9)의 기능에 더하여 이하의 기능을 갖추고 있다.
버퍼 관리부(23)로부터 신호선(202)에 의해 빈 블럭이 있다는 통지와 더불어 헤더 취입이 가능하다는 취지의 통지가 있는 때에는 헤더 취입부(22)에 대하여 FD 데이터만의 취입을 통지하고, 또 헤더 취입부(22)로부터 신호선(201)에 의해 FD 취입 완료통지가 통지됐다면, 헤더 버퍼(11)로부터 FD 정보를 취출하여 버퍼 관리부(23)에 대해 FB 리스트의 정보 및 프레임 길이를 통지함과 더불어 헤더 검사전이라는 취지를 신호선(202)을 매개해서 통지한다. 그후, 버퍼 관리부(23)가 헤더 취입을 완료하면 버퍼 관리부(23)로부터 개시 어드레스를 취출하고, 데이터 버퍼(25)로부터 신호선(204)을 매개하여 헤더를 독출해서 검사한다. 검사결과가 정상이면, 신호선(202)을 매개하여 버퍼 관리부(23)에 대하여 정상프레임이라는 취지를 통지한다. 이상이 검출되면, 버퍼 관리부(23)에 대하여 헤더 취입을 수행하고 있는 제어블록의 파기를 통지한다.
헤더의 취입이 가능하지 않은 빈 블록이 존재한다는 취지의 통지만을 받은 경우에는 헤더 취입부(22)에 FD 데이터 및 헤더의 양쪽을 취입하도록 통지해서 취입시키고, 그 내용을 검사해서 정상이라고 판단되면 제1실시예와 마찬가지로 신호선(202)을 매개해서 FB 리스트 정보 및 프레임 길이를 통지함과 더불어 헤더 검사가 정상이라는 취지를 통지한다.
(2) 헤더 취입부(22)
헤더 취입부(22)는 제1실시예에서의 헤더 취입부(10)의 기능에 더하여 이하의 기능을 갖추고 있다.
헤더 검사부(9)로부터 신호선(201)을 매개하여 프레임 디스크립터(FD)만의 취입이라는 취지의 통지를 받으면, FD 데이터만을 헤더 버퍼(11)에 기입하고, 헤더 검사부(9)에 완료를 통지한다. 또, 프레임 디스크립터(FD) 및 헤더의 양쪽의 취입을 지시해 왔다면, 양자의 취입을 완료한 때에 완료통지를 출력한다.
(3)버퍼 관리부(23)
버퍼 관리부(23)는 제1실시예에서의 버퍼 관리부(12)의 기능에 더하여 이하의 기능을 갖추고 있다.
제12도는 버퍼 관리부(23)의 보다 상세한 구성도이다. 제12도에 있어서, 제1실시예에서의 버퍼 관리부(12; 제3도)와 동일한 기능을 갖춘 구성요소에는 동일한 참조부호를 병기하고, 그 설명은 생략한다.
제12도에 나타낸 바와 같이, 버퍼 관리부(23)는 제어데이터 블록(32-1), 빈 블록 포인터(23-2), 프레임 기입부(12-3), 빈 블록 검출부(23-4), 페치 블록 포인터(12-5), FB 정보 독출부(12-6), 종료상태 기입부(12-7), 버퍼 어드레스 기입부(12-8), 페치 요구 출력부(23-9), 미송신 블록 포인터(12-10), 버퍼 어드레스 독출부(12-11), 종료상태 독출 기입부(12-12), 송출 요구 출력부(12-13), 송신완료 블록 포인터(12-14), 상태 독출 기입부(12-15), 상태 검사 요구부(12-16), 상태 기입복귀 블록 포인터(12-17), FD 상태 독출부(12-18) 및 상태 기입복귀 요구부(12-19)로 구성되어 있다.
제어데이터 블록(12-1)은 제4도에 나타낸 데이터 구조와 거의 동일하다. 다른 점은, 각 제어블록(SCi)의 제어블록상태(421)가, [HR, DR, DP, DC, SR, SC]의 "0" 및 "1"인 값을 갖는 6개의 상태변수에 의해 관리된다는 점이다. 여기에서, 상태변수 HR(Header Request)은 헤더 검사부(21)로부터 헤더 데이터의 취입을 의뢰한 것을 "1"로 나타낸다. 한편, 다른 상태변수의 값이 갖는 의미는 제1실시예와 동일하다.
이하, 각 블록 포인터의 동작과 제어블록의 상태천이를 제13도에 나타낸 제어블록의 상태천이 설명도를 이용하여 설명한다.
빈 블록 포인터(23-2)는 헤더 검사부(24)로부터 헤더 검사가 정상이라는 신호와 더불어 FB 리스트의 정보가 통지된 때에는, 제어블록(SCi)의 제어블록상태를 [1, 1, 0, 0, 0, 0]으로 설정하여 헤더 검사 종료상태(즉, 제13도중 S11로부터 S13)로 천이시켜 빈 블록 포인터(23-2)를 갱신한다.
또한, 헤더 검사부(24)로부터 헤더 검사전의 신호와 더불어 FB 리스트의 정보가 통지된 때에는, 제어블록(SCi)의 제어블록상태를 [1, 0, 0, 0, 0, 0]으로 설정해서 「헤더 페치 요구상태(S11로부터 S12)로 천이시킴으로써, 빈 블록 포인터(23-2)의 갱신은 수행되지 않는다. 그후, 헤더 검사종료를 나타내는 신호가 통지된 때에 제어블록(SCi)의 제어블록상태를 [1, 1, 0, 0, 0, 0]으로 설정해서」 헤더 검사 종료상태(S12로부터 S13)로 천이시켜 빈 블록 포인터(23-2)를 갱신한다.
만일, 헤더의 검사이상을 나타내는 신호가 통지된 때에는 제어블록(SCi)의 제어블록상태를 초기값[0, 0, 0, 0, 0, 0]으로 설정함으로써, 「빈 블록 포인터(23-2)의 갱신은 수행되지 않는다. 따라서, 헤더 검사가 정상인 때에만」 빈 블록 포인터(23-2)의 갱신이 수행되고, 이상이 검출되어 있을 때에는 빈 블록 포인터(23-2)는 변화하지 않는다.
빈 블록 검출부(23-4)에서는, 빈 블록 카운터(23-2)가 가리키는 제어블록(SCi)의 상태변수를 감시하고 있다. 제어블록(SCi)의 제어블록의 상태가 초기상태인 때에, 빈 블록이 있다고 판단하는 것은 제1실시예와 동일하다. 더욱이, 페치 요구 출력부(23-9)가 페치 요구가 없는 것을 나타내는 신호를 출력하고 있다면, 헤더 검사부(21)에 대하여 빈 블록이 있다는 통지와 더불어 헤더 취입이 가능하다는 취지를 신호선(202)을 매개하여 통지한다. 또한, 페치 요구가 없는 것을 타나내는 신호가 촐력되고 있지 않을 때에는 빈 블록이 있다는 통지만이 출력된다.
페치 요구 출력부(23-9)에서는 제1실시예와 마찬가지로, 페치 블록 포인터(12-5)와 빈 블록 포인터(23-2)의 차이를 검출하여, 데이터 취입부(24)에 대해서 페치 요구를 츨력한다. 단, 헤더 검사전이라는 것이 헤더 검사부(21)로부터 통지된 때에는, 페치 블록 포인터(12-5)가 빈 블록 포인터(23-2)와 동일한 제어블록을 가리키고 있어도 데이터 취입부(24)에 페치 요구를 출력하게 된다. 또한, 이 페치 요구신호가 출력되고 있지 않을 때에, 빈 블록 검출부(23-4)에 대하여 페치 요구가 없다는 취지의 신호를 출력한다.
데이터 취입부(24)로부터 프레임의 선페치가 종료했다는 취지의 통지를 수취하면, 제어블록(SCi)의 제어블록상태를 [1, 1, 1, 0, 0, 0]으로 설정하여, 선페치 종료상태(S14)로 천이시킨다.
이후의 처리는 제1실시예와 동일하다.
(4) 데이터 취입부(24)
데이터 취입부(24)는, 제1실시예에서의 데이터 취입부(3)의 기능에 더하여 이하의 기능을 갖추고 있다. 즉 공유통신 데이터 메모리(3)로부터 프레임 데이터를 취입하는 과정에서 미리 정해진 양의 헤더부분을 취입한 경우, 그것을 신호선(203)을 매개해서 버퍼 관리부(23)에 통지하는 기능을 구비하고 있다.
(5) 데이터 버퍼(25)
데이터 버퍼(25)의 상세한 구성은, 제14도에 나타낸 바와 같이 데이터 메모리(25-1), 기입 어드레스 카운터(14-2), 독출 어드레스 카운터(14-3), 종료 어드레스 레지스터(14-4), 종료 어드레스 선택부(14-5), FIFO 사이즈 판정부(14-6)로 이루어져 있다.
데이터 버퍼(25)는 제1실시예에서의 데이터 버퍼(14)의 기능에 더하여 이하의 기능을 갖추고 있다. 즉, 그 인터페이스로서, 헤더 검사부(21)가 헤더 내용을 검사하기 위해서 데이터 메모리(25-1)의 어드레스를 지시하고, 데이터를 독출하는 신호선(204)을 갖추고 있다.
이상의 구성에 의해, 통신제어장치(1-2)는 복수개의 프레임을 병행해서 동시에 처리하고 있지만, 그 동작은 이하의 점을 제외하고는 제1실시예와 거의 동일하다.
즉, 버퍼 관리부(25)는 빈 제어블록이 있고, 또 데이터 버퍼(25)의 데이터 메모리(25-1)에 이것으로부터 검사해야 할 프레임을 취입하는 빈 영역이 있는지 없는지의 여부를 판단하여 헤더 검사부(21)에 통지하고 있다. 이 때문에, 헤더 검사부(21)는 프레임의 헤더부를 헤더 버퍼(11)에 취입시키지 않고, 데이터 버퍼(25)에 취입시키도록 할 수가 있다. 즉, 헤더부가 데이터 버퍼(25)에 취입되고 그것을 직접 검사할 수가 있기 때문에 취입시키도록 할 수가 있다. 즉, 헤더부가 데이터 버퍼(25)에 취입되고 그것을 직접 검사할 수가 있기 때문에, 본 실시예에서는 헤더부를 2번에 걸쳐 공유통신 데이터 메모리(3)로부터 독출하는 것이 없어지게 되어, 결과적으로 보다 빠르게 송출부(15)로 프레임 데이터를 전달할 수 있게 된다.
한편, 데이터 버퍼(25)에 빈 영역이 없을 때에는 제1실시예와 동일하게 헤더 버퍼(11)로 헤더를 읽어 들여 처리할 수 있으므로, 헤더 검사의 선행실행에 지장을 초래하지 않게 된다. 즉, 본 실시예에 의하면, 긴 프레임 다음에 짧은 프레임이 연속하는 바와 같이 프레임이 링크되어 있는 경우에는 제1실시예와 동등한 처리성능을 갖고, 더욱이 짧은 프레임만이 연속해서 링크되어 있는 경우에는 그들 짧은 프레임은 직접 데이터 버퍼(25)로 취입되므로, 헤더를 2번 읽는 헛수고를 없앨 수 있게 되어 더 한층 고속의 처리가 가능하게 된다.
이상 설명한 제1 또는 제2실시예에서는, 공유통신 데이터 메모리(3)를 액세스하기 위해서 버스 제어부(18)와 헤더 취입부(10, 22)간의 헤더 취입을 위한 신호선(106)과, 버스 제어부(18)와 데이터 취입부(13, 24)간의 데이터 취입을 위한 신호선(112), 버스 제어부(18)와 상태기입복귀부(17)간의 상태기입복귀를 위한 신호선(116)의 사이에서 베타적인 제어를 수행하고 있지만, 각각이 독립해서 공유통신 데이터 메모리(3)와 교신할 수도 있다.
그 구체예로서, 제3실시예를 제15도에 나타낸다. 제15도는 본 발명의 제3실시예에 따른 통신제어장치의 구성도이다. 제15도에 있어서, 제1실시예(제1도) 및 제2실시예(제11도)와 동일한 기능을 갖춘 구성요소에는 동일한 참조부호를 병기하고, 그 설명은 생략한다.
본 실시예의 통신제어장치를 이용한 데이터 통신 시스템은, 제15도에 나타낸 바와 같이 통신제어장치(1-3), 프로세서(2) 및 공유통신 데이터 메모리(33)의 구성요소로 이루어진다.
제15도에 있어서, 통신제어장치(1-3)는 헤더 검사부(21), 헤더 취입부(22), 헤더 버퍼(11), 버퍼 관리부(23), 데이터 취입부(24), 데이터 버퍼(25), 송출부(15), 상태 검사부(16), 상태 기입복귀부(17) 및 버스 제어부(31)로 구성되어 있다.
본 실시예의 특징은, 공유통신 데이터 메모리(33)로서 듀얼포트 메모리(dual port memory)를 사용하고, 외부공유버스(117)를 제1액세스 포트에 접속시키고 데이터 취입부(24)로부터 공유통신 데이터 메모리(33)를 액세스하기 위한 전용신호선(301)을 제2액세스 포트에 접속시킨 점이다. 즉, 본 실시예의 버스 제어부(31)는 신호선(100, 106, 116) 사이에서 배타적인 제어를 수행함으로써, 외부공유버스(117)를 이용하여 공유통신 데이터 메모리(33)의 제1액세스 포트를 액세스하게 된다.
따라서, 본 실시예에 의하면, 매우 데이터 전송량이 많은 신호선(301)이 독립해서 공유통신 데이터 메모리(33)를 액세스할 수 있기 때문에, 다른 신호선에 의한 데이터 액세스와 경합하지 않게되어 보다 고속의 통신이 가능하게 된다.
더욱이, 본 실시예의 변형예로서, 공유통신 데이터 메모리(33)로서 3포트 메모리를 사용하고, 헤더 취입을 위한 신호선(106)을 독립시켜 제, 액세스 포트에 접속시키면, 프로세서(2)의 액세스와의 경합이 감소하여, 더욱더 고속의 통신이 가능하게 되는 것은 명백하다.
또한, 이상 설명한 제1, 제2 또는 제3실시예에서는 헤더 버퍼(11)와 데이터 버퍼(14; 또는 25)는 독립된 기억수단으로 구성하고 있지만, 양자를 겸한 기억수단으로 구성할 수도 있다.
그 구체예로서, 제4실시예에 따른 통신제어장치의 일부 구성도를 제16도에 나타낸다. 제16도에 있어서, 제1실시예(제1도) 및 제2실시예(제11도)와 동일한 기능을 갖춘 구성요소에는 동일한 참조부호를 병기하고, 그 설명은 생략한다.
제16도는 헤더 버퍼(11) 및 데이터 버퍼(14; 또는 25)를 겸한 기억수단의 주변의 구성을 나타낸다. 기억부(42)는 프레임 디스크립터(FD) 유지영역, 헤더 검사 데이터 유지영역 및 통신데이터 유지영역의 3개의 분리된 영역을 갖추고 있다.
선택부(41)는 그 인터페이스로서, 헤더 검사부와의 주고 받음을 수행하는 신호선(104; 또는 204), 헤더 취입과의 주고 받음을 수행하는 신호선(105), 통신데이터 신호(113-1, 114-1), 기입 어드레스(14-7) 및 독출 어드레스(14-8)를 갖추고 있고, 각 구성요소로부터의 액세스를 절환제어한다.
또한, 본 실시예의 변형예로서, 제17도에 나타낸 바와 같이 기억부(44)로 3포트 메모리를 사용하는 것도 가능하다.
본 실시예에 의하면, 특히 제2실시예와 조합시켜 실시하는 경우, 헤더 검사부(21)가 헤더 퍼버(11)를 사용하는지 데이터 버퍼(25)를 사용하는지의 구별이, 기억부(42; 또는 44)에 대하여 인가되는 어드레스의 구별에 의해 이루어지므로, 헤더 검사부(21)의 구조가 간단해지고, 또 통신제어장치를 구성하는 요소가 간소화된다.
또한, 본 발명의 실시예에서는 통신방식으로서 토큰링방식을 예로 들고 있지만, 다른 통신방식이더라도 본 발명의 주된 요지를 조금도 변화시키지 않고 적용할 수 있다는 것은 명백하다.
한편, 본원 발명의 청구범위의 각 구성요건에 병기한 도면의 참조번호는 본 발명의 이해를 용이하게 하기 위한 것으로, 본원 발명의 기술적 범위를 도면에 도시한 실시예에 한정할 의도로 병기한 것은 아니다.
[발명의 효과]
이상 설명한 바와 같이 본 발명에 의하면, 통신망으로 송출하는 통신데이터에 관한 제어정보 및 통신데이터의 프로토콜 헤더부분의 검사를 위한 취입 및 통신망 송출을 위한 통신데이터의 취입의 각각의 처리를 독립적으로 병행해서 수행함으로써, 긴 프레임 다음에 짧은 프레임이 통신데이터를 송출하는 경우에도 긴 프레임의 송출중에 후속 프레임의 헤더 검사를 수행할 수가 있고, 긴 프레임의 송출완료후 곧바로 이들 짧은 프레임을 송신할 수 있게 되어, 그 결과로서 고속으로 연속적인 데이터 송출이 가능한 통신제어장치를 제공할 수 있게 된다.
또한, 통신망으로 송출하기 위한 통신데이터의 취입에 있어서, 프로토콜 헤더의 검사결과가 정상인 통신데이터에 대해서는 취입에 필요한 제어데이터가 유지수단내에 설정되어 있기 때문에 송출에 필요한 통신데이터의 페치를 연속해서 수행할 수가 있고, 또 이상한 통신데이터가 배제되어 있기 때문에 헛된 취입을 하지 않고 데이터 페치 효율을 향상시킬 수가 있으며, 그 결과로서 고속으로 연속적인 데이터 송출이 가능한 통신제어장치를 제공할 수 있게 된다.
또한, 예컨대 제어데이터 유지수단내에 제2버퍼 메모리에 격납되어 있는 통신데이터의 개시 및 종료 어드레스를 격납하고, 송신개시시에 이들 정보에 따라 제2버퍼 메모리의 FIFO 제어를 수행함으로써, 제2버퍼 메모리내에 복수개의 통신데이터를 격납할 수가 있고, 토큰 대기 등에 의해 통신망으로 송신이 이루어지지 않은 상태이더라도 송신원으로부터의 복수개의 통신데이터의 취입을 계속해서 수행할 수가 있으므로, 연속적인 송신이 가능하게 된다. 긴 프레임을 송출하는 경우에도, 긴 프레임의 말미가 제2버퍼 메모리에 격납되고, 그것이 송신됨으로써 제2버퍼 메모리내에 빈 영역이 증가하게 되지만, 이 빈 영역에 대하여 후속의 프레임을 취입할 수 있으므로, 제2버퍼 메모리를 유효하게 사용할 수 있게 된다. 그 결과로서 종래보다도 현저히 작은 용량의 버퍼 메모리의 구성에 의해 고속으로 연속적인 데이터 송출이 가능한 통신제어장치를 제공할 수 있게 된다.
또한, 버퍼 관리수단에 있어서 통신처리의 진행에 맞취서 제어데이터 유지수단내의 제어데이터의 조작을 수행하고 각 구성요소가 수행하는 처리를 병행해서 수행함으로써, 고속임으로 연속적인 데이터 송출이 가능한 통신제어장치를 제공할 수 있게 된다.
또한, 제2버퍼 메모리에 검사해야 할 통신데이터를 취입할 여유가 있을 때에는 그 통신데이터를 제2버퍼 메모리에 취입시키고, 여유가 없을 때에는 상기 제1버퍼 메모리에 취입시킴으로써, 충분한 메모리 용량이 없는 경우에도 후속의 통신데이터의 취입을 대기하지 않고, 고속으로 연속적인 데이터 송출이 가능한 통신제어장치를 제공할 수 있게 된다.
더욱이, 제1 및 제2버퍼 메모리를 1개의 버퍼 메모리로 구성함으로써, 버퍼 메모리 주변의 제어회로를 축소시킬 수가 있고, 통신제어장치 전체의 LSI화에 부응한 통신제어장치를 제공할 수 있게 된다.

Claims (5)

  1. 당해 장치외부의 송신원(3, 33)으로부터 송출되어 오는 통신데이터를 검사하는 검사수단(9, 21)과, 상기 통신데이터를 유지하는 제1버퍼 메모리(11), 당해 장치외부의 통신망으로 송출하는 통신데이터를 취입해서 유지하는 제2버퍼 메모리(14, 25), 상기 제2버퍼 메모리로부터 상기 통신망으로 통신데이터를 송출하는 송출수단(15), 송출종료시의 상태를 상기 송신원으로 되돌려 기입하는 송신상태 기입복귀수단(17) 및, 상기 검사수단의 결과에 기초해서 정상적인 통신데이터만을 상기 제2버퍼 메모리에 취입하고, 상기 송출수단에 의한 송출처리 및 상기 송신상태 기입복귀수단에 의한 기입복귀처리의 제어를 수행하는 버퍼관리수단(12, 23)을 갖춘 것을 특징으로 하는 통신제어장치.
  2. 제1항에 있어서, 상기 버퍼 관리수단(12, 23)이, 상기 검사수단(9, 21)에서 정상이라고 판단된 통신데이터를 상기 제2버퍼 메모리(14, 25)로 취입하기 위한 제어정보, 상기 송출수단(15)에 의한 그 통신데이터 송출에서의 송출종료시의 상태를 상기 송신원(3, 33)으로 되돌려 기입하기 위한 제어정보 및 송출상태를 나타내는 데이터를 상기 송신원으로부터 송출되는 복수개의 통신데이터 각각에 대해 유지하는 제어데이터 유지수단(12-1, 23-1)을 갖추고 있고, 상기 검사수단(9, 21)에 의한 헤더 검사, 상기 제2버퍼 메모리(14, 25)로의 통신데이터의 취입, 상기 송출수단(15)에 의한 통신데이터의 송출 및, 상기 송신상태 기입복귀수단(17)에 의한 상기 송신원(3, 33)으로의 제어정보 및 종료상태 데이터의 기입복귀의 각각의 처리가 병행해서 수행되는 것을 특징으로 하는 통신제어장치.
  3. 제1항 또는 제2항에 있어서, 상기 제2버퍼 데이터(14, 25)가 상기 송신원(3, 33)으로부터 송출되는 복수개의 통신데이터를 유지하는 것을 특징으로 하는 통신제어장치.
  4. 제1항 또는 제2항에 있어서, 상기 검사수단(9, 21)이, 상기 제2버퍼 메모리(14, 25)에 검사해야 할 통신데이터를 취입할 여유가 있을 때에는 그 통신데이터를 제2버퍼 메모리(14, 25)에 취입시키고, 여유가 없을 때에는 상기 제1버퍼 메모리(11)에 취입시키는 것을 특징으로 하는 통신제어장치.
  5. 제1항 또는 제2항에 있어서, 상기 제1 및 제2버퍼 메모리(11; 14, 25)가 1개의 버퍼 메모리로 구성되고, 상기 송신원(3, 33)으로부터 송신되어 오는 통신데이터 및 상기 통신망으로 송출하는 통신데이터가 각각 다른 소정의 기억영역에 유지되는 것을 특징으로 하는 통신제어장치.
KR1019930001901A 1992-02-14 1993-02-12 통신제어장치 KR960015864B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP92-027879 1992-02-14
JP4027879A JPH0821971B2 (ja) 1992-02-14 1992-02-14 通信制御装置

Publications (2)

Publication Number Publication Date
KR930018895A KR930018895A (ko) 1993-09-22
KR960015864B1 true KR960015864B1 (ko) 1996-11-22

Family

ID=12233183

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930001901A KR960015864B1 (ko) 1992-02-14 1993-02-12 통신제어장치

Country Status (2)

Country Link
JP (1) JPH0821971B2 (ko)
KR (1) KR960015864B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2002065709A1 (ja) * 2001-02-14 2004-06-17 川崎マイクロエレクトロニクス株式会社 ネットワーク・スイッチング装置
JP4629775B2 (ja) * 2005-06-21 2011-02-09 エヌエックスピー ビー ヴィ PCIExpressデバイスのデータ完全性の並列検査方法

Also Published As

Publication number Publication date
JPH0821971B2 (ja) 1996-03-04
JPH0637852A (ja) 1994-02-10
KR930018895A (ko) 1993-09-22

Similar Documents

Publication Publication Date Title
US5592628A (en) Data communication system which guarantees at a transmission station the arrival of transmitted data to a receiving station and method thereof
CA1325286C (en) Method and apparatus for interfacing a system control unit for a multi-processor system with input/output units
US5313627A (en) Parity error detection and recovery
US7596641B2 (en) System and method for transmitting data packets in a computer system having a memory hub architecture
US6324597B2 (en) Host controller interface descriptor fetching unit
US5832310A (en) Serial I/O channel having dependent and synchronous sources of control data and user defined data
US5463762A (en) I/O subsystem with header and error detection code generation and checking
US5752076A (en) Dynamic programming of bus master channels by intelligent peripheral devices using communication packets
EP0379769A2 (en) Write-read/write-pass memory subsystem cycle
EP0442053A2 (en) Apparatus for high speed transfer of data
CN114615353B (zh) 一种基于axi总线的rmap目标方ip核及其命令响应方法
CN114661644B (zh) 辅助3d架构近存计算加速器系统的预存储dma装置
US5592685A (en) Synchronous/asynchronous partitioning of an asynchronous bus interface
KR960015864B1 (ko) 통신제어장치
US6473821B1 (en) Multiple processor interface, synchronization, and arbitration scheme using time multiplexed shared memory for real time systems
US6601150B1 (en) Memory management technique for maintaining packet order in a packet processing system
US4149245A (en) High speed store request processing control
US4914573A (en) Bus master which selectively attempts to fill complete entries in a cache line
US7007137B2 (en) Method and architecture capable of accessing data and instructions using store and forward
US4989210A (en) Pipelined address check bit stack controller
EP1111512A2 (en) Parallel transfer size calculation and annulment determination in transfer controller with hub and ports
EP0554819A1 (en) Transfer control unit, processor element and data transferring method
KR100450408B1 (ko) 유토피아 레벨 3 인터페이스와 공통 스위치 인터페이스간의 정합장치
EP0344915B1 (en) Apparatus and method for processing bit streams
JP2663667B2 (ja) メモリアクセス制御装置

Legal Events

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

Payment date: 20031030

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee