KR100287396B1 - 버퍼 메모리 제어 장치 - Google Patents
버퍼 메모리 제어 장치 Download PDFInfo
- Publication number
- KR100287396B1 KR100287396B1 KR1019980022516A KR19980022516A KR100287396B1 KR 100287396 B1 KR100287396 B1 KR 100287396B1 KR 1019980022516 A KR1019980022516 A KR 1019980022516A KR 19980022516 A KR19980022516 A KR 19980022516A KR 100287396 B1 KR100287396 B1 KR 100287396B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- buffer memory
- address
- circuit
- write
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/06—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
- G06F5/10—Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
- G06F5/14—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
본 발명에 따르면, 버퍼 메모리를 임의의 데이터 단위의 메모리 영역으로 분할하여, 데이터 단위마다 데이터를 전송함으로써 데이터의 손실을 방지함과 동시에 오버플로우 및 엠프티를 제어한다.
버퍼 메모리(1)를 임의의 데이터 단위마다의 메모리 영역으로 분할하고, 데이터 단위마다 기입 및 판독을 제어하기 위한 플래그 신호(22, 23, 24)를 이용하여 데이터 판별 회로(29)에 의해 버퍼 메모리(1)의 엠프티를 검출하고, 판독을 제어함으로써 데이터 단위마다 데이터를 전송하여, 데이터의 손실을 방지할 수 있다. 또한, 플래그 신호(22, 23, 24)에 의해 오버플로우도 제어할 수 있다.
Description
본 발명은 데이터를 일시 버퍼 메모리에 축적한 후 데이터를 전송하는 버퍼 메모리 제어 장치에 관한 것이다.
일반적으로, 버퍼 메모리는 데이터 전송 속도가 서로 다른 2개의 통신계 사이에 설치되어 데이터의 전송 속도를 조정하는 것으로서, 예를 들면 데이터 전송원의 버퍼 메모리로의 기입 속도가, 데이터 전송 목적지의 버퍼 메모리로부터의 판독 속도보다 빠른 경우 등에 이용된다.
도 8은 종래의 데이터를 일시 버퍼 메모리에 축적한 후, 데이터를 전송하는 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도이다. 도 8에 있어서, 참조부호 (1)은 3개의 셀(1 셀 = 53 바이트, 1 바이트 = 8 비트) 용량을 갖는 버퍼 메모리(8 비트 데이터 입력/출력, 8 비트 판독/기입 어드레스 입력, 판독/기입 인에이블 입력), 참조부호 (2)는 이 버퍼 메모리(1)의 기입 어드레스를 생성하는 기입 어드레스 생성 회로, 참조부호 (3)은 이 기입 어드레스 생성 회로(2)에 의해 생성된 기입 어드레스, 참조부호 (4)는 버퍼 메모리(1)에 기입되는 기입 데이터, 참조부호 (5)는 버퍼 메모리(1)를 기입 가능하게 하는 기입 인에이블, 참조부호 (6)은 버퍼 메모리(1)의 판독 어드레스를 생성하는 판독 어드레스 생성 회로, 참조부호 (7)은 판독 어드레스 생성 회로(6)에 의해 생성된 판독 어드레스, 참조부호 (8)는 버퍼 메모리(1)로부터 판독되는 판독 데이터, 참조부호 (9)는 버퍼 메모리(1)를 판독 가능하게 하는 판독 인에이블, 참조부호 (149)는 버퍼 메모리(1)의 기입 어드레스(3)와 판독 어드레스(7)를 비교하는 어드레스 비교 회로이며, 이것은 가산기를 2개 이용하여 2의 보수를 취하여 감산하는 것이다. 참조부호 (150)은 어드레스 비교 회로(149)에 의해 기입 어드레스(3)로부터 판독 어드레스(7)를 감산하여 얻어진 감산 결과이며, 참조부호 (151)은 이 감산 결과(150)가 -1에서 0으로 변화했을 때 버퍼 메모리(1)에 오버플로우가 발생한 것을 검출하는 오버플로우 발생 통지 회로, 참조부호 (152)는 이 감산 결과(150)가 +1에서 0으로 변화했을 때 버퍼 메모리(1)에 엠프티(empty)가 발생한 것을 검출하는 엠프티 발생 통지 회로이다.
또한, 도 10a, 도 10b, 도 10c는 도 8의 어드레스 비교 회로, 오버플로우 발생 통지 회로, 엠프티 발생 통지 회로의 구성을 각각 도시하는 것이며, 도 10a에 있어서, EX1, EX2, EX11, EX12, …, EXn1, EXn2는 배타적 논리합 회로, AD1, AD2, AD11, AD12, …, ADn1, ADn2는 논리곱 회로, OR1, OR11, …, ORn1은 논리합 회로이다. 또, A0, A1, …, An은 기입 어드레스의 각 비트, B0, B1, …, Bn은 판독 어드레스의 각 비트, S0, S1, …, Sn은 감산 결과의 각 비트, C0, C1, …, Cn은 자릿수 올림의 각 비트이다.
또한, 도 10b에 있어서, 참조부호 (51a)는 어드레스 비교 회로의 감산 결과가 0인 것을 디코드하는 디코더, 참조부호 (51b)는 어드레스 비교 회로의 감산 결과가 -1인 것을 디코드하는 디코더, 참조부호 (51c)는 이 디코더(51b)가 -1을 검출하였을 때 세트되는 플래그 레지스터, 참조부호 (51d)는 디코더(51a)와 플래그 레지스터(51c)의 출력이 모두 H로 되었을 때 오버플로우의 발생을 통지하는 논리곱 회로이다.
또한, 도 10c에 있어서, 참조부호 (52a)는 어드레스 비교 회로의 감산 결과가 0인 것을 디코드하는 디코더, 참조부호 (52b)는 어드레스 비교 회로의 감산 결과가 +1인 것을 디코드하는 디코더, 참조부호 (52c)는 이 디코더(52b)가 +1을 검출하였을 때 세트되는 플래그 레지스터, 참조부호 (52d)는 디코더(52a)와 플래그 레지스터(52c)의 출력이 모두 H로 되었을 때 오버플로우의 발생을 통지하는 논리곱 회로이다.
이상과 같이 구성된 버퍼 메모리 제어 장치에 대한 동작을 이하에서 설명한다. 도 8에 도시하는 바와 같이, 버퍼 메모리(1)는 기입 인에이블(5)이 로우(LOW) 레벨(이하, "L 레벨"이라 함)일 때, 기입 어드레스 생성 회로(2)가 출력하는 기입 어드레스(3)에 기입 데이터(4)를 기입 클럭에 동기하여 기입한다. 기입 어드레스 생성 회로(2)는, 기입 인에이블(5)이 L 레벨일 때 기입 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하고, 이를 반복한다.
한편, 버퍼 메모리(1)는 판독 인에이블(9)이 L 레벨일 때, 판독 어드레스 생성 회로(6)가 출력하는 판독 어드레스(7)로부터 판독 데이터(8)를 판독 클럭에 동기하여 판독한다. 판독 어드레스 생성 회로(6)는 판독 인에이블(9)이 L 레벨일 때 판독 클럭에 동기하여 O∼158의 어드레스를 0부터 순차적으로 출력하며, 이를 반복한다.
이 버퍼 메모리 제어 장치에 있어서, 버퍼 메모리(1)의 오버플로우 발생을 검출하기 위해서는, 어드레스 비교 회로(149)에 의해 기입 어드레스(3)로부터 판독 어드레스(7)를 감산하고, 그 감산 결과(150)를 오버플로우 발생 통지 회로(151)와 엠프티 발생 통지 회로(152)에 출력한다. 이 감산 결과는, 통상 동작의 경우에는 기입 어드레스가 판독 어드레스보다도 큰 값을 취하기 때문에 포지티브의 값을 취하지만, 오버플로우가 발생하는 경우에는 도 9a에 도시하는 바와 같이 기입 어드레스 WAD가 판독 어드레스 RAD보다 먼저 메모리 영역의 최상위 어드레스에 도달하며, 일단 메모리 영역의 최하위 어드레스로 되돌아간 후 여기에서 판독 어드레스 RAD를 향해 어드레스가 증가해 가는 경우이므로, 오버플로우 발생 통지 회로(151)는 감산 결과(150)가 -1에서 0으로 변화했을 때 오버플로우를 검출한다. 또한 엠프티가 발생하는 경우에는, 반대로, 도 9b에 도시하는 바와 같이 기입 어드레스 WAD 다음에 판독 어드레스 RAD가 따라 붙는 경우이므로, 엠프티 발생 통지 회로(152)는 +1에서 0으로 변화했을 때 엠프티를 검출하고, 판독을 정지시킨다.
이 종래의 기술에 의한 버퍼 메모리 제어 장치에서는, 복수의 데이터를 단위로 한 데이터의 집합인 셀을 단위로 하는 데이터를 버퍼 메모리에 기입하는 도중에 기입 데이터의 전송이 중지된 경우, 기입된 데이터까지 판독하기 위해서 셀의 도중이더라도 그 이후의 데이터에 대하여 의사 데이터를 삽입하여 데이터를 전송하지만, 수신측에서는 의사 데이터가 포함되는 셀 단위를 폐기해 버리기 때문에, 송신한 셀 데이터에 손실이 생긴다.
또한, 버퍼 메모리의 오버플로우 또는 엠프티를, 도 10a에 도시하는 바와 같은 어드레스 비교 회로를 이용하여 검출하지만, 이 어드레스 비교 회로는 기입 어드레스 A로부터 판독 어드레스 B를 감산할 때 A+(B의 2의 보수)+1을 실행하는 감산 회로로 이루어지기 때문에, 어드레스의 비트수가 증가하면 회로 규모가 커지게 된다. 또한, 이 감산 회로 외에도, 도 10b에 도시하는 바와 같은 2개의 디코더와 플래그 레지스터 및 논리곱 회로를 각각 1개씩 필요로 하고, 감산 결과가 -1로 된 후에 0으로 되는 것을 검출함으로써 오버플로우를 검출하는 오버플로우 발생 통지 회로나, 도 10c에 도시하는 바와 같은 2개의 디코더와 플래그 레지스터 및 논리곱 회로를 1개씩 필요로 하고, 감산 결과가 +1가 된 후에 0으로 되는 것을 검출함으로써 엠프티를 검출하는 엠프티 발생 통지 회로도 마련할 필요가 있다.
또한, 버퍼 메모리의 오버플로우가 발생한 후, 기입 데이터의 전송 중지를 통지하기 위하여, 전송 중지까지의 기입 데이터를 재차 송신할 필요가 있기 때문에, 전송 중지까지의 기입 데이터의 손실이나, 또는 버퍼 메모리로의 오버라이트(overwrite)에 의한 데이터의 손실이 발생한다고 하는 문제점이 있었다.
그런데, 이러한 문제를 해결할 수 있는 것으로서, 종래 일본 특허 공개 평성 제 8-223168 호 공보의 셀 버퍼 제어 회로가 이미 개발되어 있으며, 도 11에 이것을 전재하고 있다.
도 11은 이 일본 특허 공개 평성 제 8-223168 호 공보에 개시된 셀 버퍼 제어 회로의 구성을 나타낸 것으로서, 도면에 있어서 기입측 뱅크 어드레스(101)를 디코드하는, 인에이블이 부가된 디코더(105)와, 판독측 뱅크 어드레스(103)를 디코드하는, 인에이블이 부가된 디코더(106)와, 각 뱅크에 대응하여 그 뱅크에 셀 데이터가 존재하는지 여부를 나타내는 정보를 유지하는 정보 유지 수단(1091∼109n)과, 기입측 뱅크 어드레스(101)의 값에 1을 가산하는 가산 회로(112)와, 그 가산 회로(112)의 값에 의해 정보 유지 수단(1091∼109n)으로부터의 출력(1101∼110n)을 선택하는 선택기(114)와, 판독측 뱅크 어드레스(103)의 값에 1을 가산하는 가산 회로(113)와, 그 가산 회로의 값에 의해 정보 유지 수단(1091∼109n)으로부터의 출력(1101∼110n)을 선택하는 선택기(115)와, 셀 버퍼의 이상(異常) 상태를 검출하는 이상 상태 검출 수단(116)을 구비하여 구성되어 있다.
도 11에 도시하는 셀 버퍼 제어 회로는, 도시하지 않은 셀 버퍼 전체를 n개의 뱅크로 나누어 구성하고, 기입측 또는 판독측의 어드레스를 각 뱅크에 대응시켜 뱅크수만큼 구비된 정보 유지 수단(1091∼109n)에 대하여, 디코더(105)가 기입측 뱅크 어드레스(101)와 뱅크 기입 종료 신호(102)를 이용하여 각 뱅크로의 셀 데이터의 기입 종료를 검출한 시점에서, 해당하는 뱅크에 대응한 정보 유지 수단에 기입 종료가 입력되고, 이에 따라 셀 데이터의 존재를 나타내는 플래그를 설정한다. 또한, 디코더(106)가 판독측 뱅크 어드레스(103)와 뱅크 판독 종료 신호(104)를 이용하여 각 뱅크로부터의 셀의 판독 종료 시점에서 해당 뱅크에 대응한 정보 유지 수단에 유지되어 있는 플래그를 해제하는 처리를 행함으로써, 각 정보 유지 수단이 대응하는 각 뱅크에 셀 데이터가 기입되어 존재하고 있는지, 혹은 판독되어 셀 데이터가 존재하지 않는지를 나타낼 수 있다.
또한, 가산 회로(112)에 의해 기입측 뱅크 어드레스(101)에 1을 더한 값을 선택기(114)의 제어 신호로 하여, 선택기(114)는 정보 유지 수단(1091∼109n)의 출력(1101∼110n)을 선택하기 때문에, 선택기(114)는 현재 기입하고자 하는 뱅크보다 1개 이전의 뱅크에 대응한 정보 유지 수단을 선택하게 된다. 따라서, 선택기(114)의 출력 신호(117)가 H일 때에는 셀 버퍼가 오버플로우하고 있는 것으로 되고, 이 때문에 이 신호를 셀 버퍼로의 기입 금지 신호로서 이용할 수 있다.
또한, 가산 회로(113)에 의해 판독측 뱅크 어드레스(103)에 1을 더한 값을 선택기(115)의 제어 신호로 하여, 선택기(115)는 정보 유지 수단(1091∼109n)의 출력(1101∼110n)을 선택하기 때문에, 선택기(115)는 현재 판독하고자 하는 뱅크보다 1개 이전의 뱅크에 대응한 정보 유지 수단을 선택하게 된다. 따라서, 선택기(115)의 출력 신호(117)가 L일 때에는 셀 버퍼가 엠프티로 되어 있는 것으로 되고, 이 때문에 이 신호의 반전 신호를 셀 버퍼로부터의 판독 금지 신호로서 이용할 수 있다.
그러나, 이 종래의 셀 버퍼 제어 회로는, 현재 기입중인 뱅크의 다음 정보 유지 수단의 정보를 검사함으로써, 오버플로우, 언더플로우를 제어하도록 하고 있고, 이 때문에 현재 기입중인 뱅크는 기입을 개시한 시점에서, 곧바로 오버플로우, 언더플로우가 발생하고 있다는 검사 결과를 출력해 버린다. 이 때문에, 뱅크의 수가 적어질수록 셀 버퍼의 용량을 유효하게 이용할 수 없도록 오버플로우, 언더플로우의 검출 결과를 출력해 버리며, 예를 들면 뱅크의 수가 2개인 경우에는 셀 버퍼 전체 용량의 절반밖에 활용할 수 없다. 따라서, 이 셀 버퍼 제어 회로가 출력하는 오버플로우, 언더플로우의 검출 결과를 이용하여 데이터 전송을 제어한 경우, 전송 효율이 불량하다고 하는 문제가 있었다.
또한, 이 종래의 셀 버퍼 제어 회로는 고정 길이의 뱅크 영역밖에는 대응할 수 없다고 하는 문제가 있었다.
본 발명의 목적은 상기한 종래의 문제점을 해결하기 위해 이루어진 것으로, 데이터의 전송 제어에 이용한 경우에 전송 효율이 양호하고, 회로 규모를 크게 하는 일 없이 버퍼 메모리의 오버플로우를 검출하는 것이 가능하거나, 또는 버퍼 메모리의 오버플로우를 미리 검출하여, 이를 상대측에 전달할 수 있는 버퍼 메모리 제어 장치를 제공하는 것이다.
도 1은 본 발명의 실시예 1에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도,
도 2는 본 발명의 실시예 1에 있어서의 버퍼 메모리 제어 장치의 디코더의 구성을 나타내는 블럭도,
도 3은 본 발명의 실시예 2에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도,
도 4는 본 발명의 실시예 3에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도,
도 5는 본 발명의 실시예 3에 있어서의 버퍼 메모리 제어 장치의 다른 구성예를 나타내는 블럭도,
도 6은 본 발명의 실시예 4에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도,
도 7은 본 발명의 실시예 4에 있어서의 버퍼 메모리 제어 장치의 다른 구성예를 나타내는 블럭도,
도 8은 종래의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도,
도 9는 종래의 버퍼 메모리 제어 장치의 오버플로우, 언더플로우의 검출 동작을 나타내는 모식도,
도 10은 종래의 버퍼 메모리 제어 장치의 어드레스 비교 회로, 오버플로우 발생 통지 회로, 엠프티 발생 통지 회로의 구성을 나타내는 모식도,
도 11은 종래의 셀 버퍼 제어 회로의 구성예를 나타내는 모식도.
도면의 주요 부분에 대한 부호의 설명
1 : 버퍼 메모리 1a, 1b, 1c : 메모리 영역
2 : 기입 어드레스 생성 회로 3 : 기입 어드레스
4 : 기입 데이터 5 : 기입 인에이블
6 : 판독 어드레스 생성 회로 7 : 판독 어드레스
8 : 판독 데이터 9 : 판독 인에이블
10∼12 : 기입 어드레스 디코더 13∼15 : 플래그 레지스터
16∼18 : 판독 어드레스 디코더 19∼21 : 플래그 리세트 레지스터
22∼24 : 플래그 신호 25∼27 : 플래그 리세트 신호
28 : 오버플로우 발생 통지 회로(논리곱)
29 : 데이터 판별 회로 30 : 오버플로우 발생 검출 회로
31 : 의사 데이터 생성 회로 32 : 의사 데이터
33 : 의사 데이터 선택 신호 34 : 선택 회로
35 : 전송 데이터 36∼41 : 일치 검출 회로
42∼44, 49∼51 : 어드레스 설정 레지스터
45∼47 : 설정 데이터 48 : 외부 입력 데이터
본 발명은 상기한 과제를 해결하기 위하여 이루어진 것으로, 본원의 청구항 1에 관한 발명에 의한 버퍼 메모리 제어 장치는, 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와, 상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와, 상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와, 상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터 기입이 종료되기 전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와, 상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와, 상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와, 상기 플래그 신호에 의해 버퍼 메모리의 오버플로우 발생을 통지하는 오버플로우 발생 통지 회로를 가지며, 상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하여, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하고, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하도록 하였기 때문에, 버퍼 메모리를 임의의 셀 단위로 분할하고, 셀 단위마다 데이터를 전송하여 오버플로우 및 엠프티를 제어함으로써 셀 데이터의 손실을 방지할 수 있다. 또한, 버퍼 메모리의 오버플로우를 비교 회로를 이용하지 않고 검출하기 때문에 회로 규모를 작게 구성할 수 있다.
또한, 본원의 청구항 2에 관한 발명에 의한 버퍼 메모리 제어 장치는, 청구항 1에 기재된 버퍼 메모리 제어 장치에 있어서, 플래그 신호를 입력으로 하여, 버퍼 메모리에 셀 단위의 데이터가 없는 경우에 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와, 상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖도록 하였기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아, 셀 데이터의 손실을 막을 수 있다.
또한, 본원의 청구항 3에 관한 발명에 의한 버퍼 메모리 제어 장치는, 청구항 1에 기재된 버퍼 메모리 제어 장치에 있어서, 외부로부터 어드레스값을 설정할 수 있는 레지스터와, 상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와, 상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며, 버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 하였기 때문에, 임의의 단위로 분할한 버퍼 메모리의 메모리 영역의 오버플로우를 검출할 수 있다.
또한, 본원의 청구항 4에 관한 발명에 의한 버퍼 메모리 제어 장치는, 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와, 상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와, 상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와, 상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터 기입이 종료된 시점 또는 그보다 이전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와, 상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와, 상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와, 플래그 신호와 기입 어드레스를 입력으로 하여, 상기 플래그 신호와 상기 기입 어드레스에 의해 오버플로우가 발생하기 전에 기입 데이터의 전송 정지를 통지하는 오버플로우 발생 검출 회로를 가지며, 상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하고, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하며, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하도록 하였기 때문에, 버퍼 메모리를 임의의 셀 단위로 분할하고, 셀 단위마다 데이터를 전송하여 오버플로우 및 엠프티를 제어함으로써 셀 데이터의 손실을 방지할 수 있다. 또한, 버퍼 메모리의 오버플로우를 미리 검출할 수 있다.
또한, 본원의 청구항 5에 관한 발명에 의한 버퍼 메모리 제어 장치는, 청구항 4에 기재된 버퍼 메모리 제어 장치에 있어서, 플래그 신호를 입력으로 하여, 버퍼 메모리에 셀 단위의 데이터가 없는 경우에 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와, 상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖도록 하였기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아, 셀 데이터의 손실을 막을 수 있다.
또한, 본원의 청구항 6에 관한 발명에 의한 버퍼 메모리 제어 장치는, 청구항 4에 기재된 버퍼 메모리 제어 장치에 있어서, 외부로부터 어드레스값을 설정할 수 있는 레지스터와, 상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와, 상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며, 버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 하였기 때문에, 임의의 단위로 분할한 버퍼 메모리의 메모리 영역의 오버플로우를 검출할 수 있다.
본 발명의 상기 및 그 밖의 목적, 특징, 국면 및 이익 등은 첨부 도면을 참조로 하여 설명하는 이하의 상세한 실시예로부터 더욱 명백해질 것이다.
발명의 실시예
이하, 본 발명의 각 실시예에 대하여 도 1 내지 도 5를 이용하여 설명한다.
(실시예 1)
본 실시예 1은, 버퍼 메모리의 기입 어드레스 및 판독 어드레스를 디코더에 의해 디코드하여 셀에 대응하는 복수의 플래그 레지스터를 세트 혹은 리세트하고, 이들 플래그 레지스터 출력의 논리곱을 취함으로써, 버퍼 메모리의 오버프로우를 작은 회로 규모로 검출할 수 있도록 한 것이다.
도 1은 본 발명의 실시예 1에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도이다. 도 1에 있어서, 참조부호 (1)은 3개의 셀(1 셀 = 53 바이트, 1 바이트 = 8 비트)에 상당하는 용량을 갖는 버퍼 메모리(8 비트 데이터 입력/출력, 8 비트 판독/기입 어드레스 입력, 판독/기입 인에이블 입력)이며, 이것은 1개의 메모리로 구성하여도 좋지만, 복수의 메모리로 구성하여도 무방하다.
또한, 참조부호 (2)는 버퍼 메모리(1)의 기입 어드레스를 생성하는 기입 어드레스 생성 회로, 참조부호 (3)은 이 기입 어드레스 생성 회로(2)에 의해 생성된 기입 어드레스, 참조부호 (4)는 버퍼 메모리(1)에 기입하는 기입 데이터, 참조부호 (5)는 버퍼 메모리(1)를 기입할 수 있는 상태로 설정하기 위한 기입 인에이블, 참조부호 (6)은 버퍼 메모리(1)의 판독 어드레스를 생성하는 판독 어드레스 생성 회로, 참조부호 (7)은 이 판독 어드레스 생성 회로(6)에 의해 생성된 판독 어드레스, 참조부호 (8)은 버퍼 메모리(1)로부터 판독된 판독 데이터, 참조부호 (9)는 버퍼 메모리(1)를 판독할 수 있는 상태로 설정하는 판독 인에이블이며, 이들은 상기 종래예의 도 6과 마찬가지이다.
다음에, 참조부호 (10∼12)는 기입 어드레스 생성 회로(2)에 의해 생성된 기입 어드레스를 디코드하여, 이것이 버퍼 메모리(1)의 셀 단위의 메모리 영역(1a∼1c)의 최상위 어드레스와 일치하는지 여부를 검출하는 기입 어드레스 디코더, 참조부호 (13∼15)는 기입 어드레스 디코더(10∼12)에 의해 세트되는 플래그 레지스터, 참조부호 (16∼18)은 판독 어드레스 생성 회로(6)에 의해 생성된 판독 어드레스를 디코드하여, 이것이 버퍼 메모리(1)의 메모리 영역(1a∼1c)의 최상위 어드레스와 일치하는지 여부를 검출하는 판독 어드레스 디코더, 참조부호 (19∼21)은 판독 어드레스 디코더(16∼18에) 의해 세트되고, 세트되었을 때 해당하는 메모리 영역(1a∼1c)이 비어 있다는 것을 나타내는 플래그 리세트 레지스터, 참조부호 (22∼24)는 플래그 레지스터(13∼l5)로부터 출력되고, H 레벨일 때 해당하는 메모리 영역(1a∼1c)이 채워져 있다는 것을 나타냄과 동시에, L 레벨일 때 플래그 리세트 레지스터를 리세트하는 플래그 신호, 참조부호 (25∼27)은 플래그 리세트 레지스터(19∼21)로부터 출력되어, H 레벨일 때 해당하는 메모리 영역(1a∼1c)이 비어 있다는 것을 나타냄과 동시에, 플래그 레지스터(13∼15)를 리세트하는 플래그 리세트 신호, 참조부호 (28)은 3 입력 논리곱 회로로 이루어지고, 플래그 신호(22∼24)가 모두 H로 되었을 때 버퍼 메모리(1)에 오버플로우가 발생한 것을 통지하는 오버플로우 발생 통지 회로, 참조부호 (29)는 플래그 신호(22∼24) 중 적어도 1개가 H로 된 것을 판별하여, 그 때 판독 인에이블(9)을 발생하는 데이터 판별 회로이며, 이는 배타적 논리합 회로에 의해 구성할 수 있다.
또한, 도 2는 도 1의 디코더의 구성예를 도시하는 회로도이며, 여기서는 52, 105, 158을 디코드하는 경우를 예로 들어 나타내고 있다.
도 2a에 있어서, 참조부호 (101)은 데이터 "1"과 기입 어드레스(3)의 제 5 비트(35)의 논리곱을 취하는 논리곱 회로, 참조부호 (102)는 데이터 "1"과 기입 어드레스(3)의 제 4 비트(34)의 논리곱을 취하는 논리곱 회로, 참조부호 (1O3)은 데이터 "0"과 기입 어드레스(3)의 제 3 비트(33)의 논리곱을 취하는 논리곱 회로, 참조부호 (104)는 데이터 "1"과 기입 어드레스(3)의 제 2 비트(32)의 논리곱을 취하는 논리곱 회로, 참조부호 (105)는 데이터 "0"과 기입 어드레스(3)의 제 1 비트(31)의 논리곱을 취하는 논리곱 회로, 참조부호 (106)은 데이터 "0"과 기입 어드레스(3)의 제 0 비트(30)의 논리곱을 취하는 논리곱 회로, 참조부호 (107)은 논리곱 회로(101) 내지 논리곱 회로(106)의 논리곱을 취하는 논리곱 회로이다.
이 디코더 회로는, 기입 어드레스(3)에 입력된 데이터가 52와 일치하는 경우, 이것을 2진수로 전개한 "1", "1", "0", "1", "0", "0"이 논리곱 회로(101내지 106)의 기입 어드레스(3)의 제 5 비트(35), 제 4 비트(34), 제 3 비트(33), 제 2 비트(32), 제 1 비트(31), 제 O 비트(30)에 입력되고, 이것과 논리곱 회로(101내지 106)에 미리 인가되어 있는 데이터 "1", "1", "0", "1", "0", "0"이 모두 일치하기 때문에, 논리곱 회로(101내지 106)의 출력이 모두 H로 되고, 이에 따라 논리곱 회로(107)의 출력이 H로 되어, 기입 어드레스(3)에 입력된 데이터가 52에 일치하는 것을 검출할 수 있다.
도 2b는 도 2a와 마찬가지의 구성에 의해, 기입 어드레스(3)에 입력된 데이터가 105와 일치하는 것을 검출할 수 있는 디코더이며, 도 2b에 있어서, 참조부호 (111)은 데이터 "1"과 기입 어드레스(3)의 제 6 비트(36)의 논리곱을 취하는 논리곱 회로, 참조부호 (112)는 데이터 "1"과 기입 어드레스(3)의 제 5 비트(35)의 논리곱을 취하는 논리곱 회로, 참조부호 (113)은 데이터 "0"과 기입 어드레스(3)의 제 4 비트(34)의 논리곱을 취하는 논리곱 회로, 참조부호 (114)는 데이터 "1"과 기입 어드레스(3)의 제 3 비트(33)의 논리곱을 취하는 논리곱 회로, 참조부호 (115)는 데이터 "0"과 기입 어드레스(3)의 제 2 비트(32)의 논리곱을 취하는 논리곱 회로, 참조부호 (116)은 데이터 "0"과 기입 어드레스(3)의 제 1 비트(31)의 논리곱을 취하는 논리곱 회로, 참조부호 (117)은 데이터 "1"과 기입 어드레스(3)의 제 0 비트(30)의 논리곱을 취하는 논리곱 회로, 참조부호 (118)은 논리곱 회로(111내지 117)의 논리곱을 취하는 논리곱 회로이다.
도 2c는 도 2a와 마찬가지의 구성에 의해, 기입 어드레스(3)에 입력된 데이터가 158과 일치하는 것을 검출할 수 있는 디코더이며, 도 2c에 있어서, 참조부호 (121)은 데이터 "1"과 기입 어드레스(3)의 제 7 비트(37)의 논리곱을 취하는 논리곱 회로, 참조부호 (122)는 데이터 "0"과 기입 어드레스(3)의 제 6 비트(36)의 논리곱을 취하는 논리곱 회로, 참조부호 (123)은 데이터 "0"과 기입 어드레스(3)의 제 5 비트(35)의 논리곱을 취하는 논리곱 회로, 참조부호 (124)는 데이터 "1"과 기입 어드레스(3)의 제 4 비트(34)의 논리곱을 취하는 논리곱 회로, 참조부호 (125)는 데이터 "1"과 기입 어드레스(3)의 제 3 비트(33)의 논리곱을 취하는 논리곱 회로, 참조부호 (126)은 데이터 "1"과 기입 어드레스(3)의 제 2 비트(32)의 논리곱을 취하는 논리곱 회로, 참조부호 (127)은 데이터 "1"과 기입 어드레스(3)의 제 1 비트(31)의 논리곱을 취하는 논리곱 회로, 참조부호 (128)은 데이터 "0"과 기입 어드레스(3)의 제 0 비트(30)의 논리곱을 취하는 논리곱 회로, 참조부호 (129)는 논리곱 회로(121내지 128)의 논리곱을 취하는 논리곱 회로이다.
이상과 같이 구성된 버퍼 메모리 제어 장치에 대한 동작을 이하에서 설명한다.
도 1에 도시하는 바와 같이, 버퍼 메모리(1)는 기입 인에이블(5)이 L 레벨일 때, 기입 어드레스 생성 회로(2)가 출력하는 기입 어드레스(3)에 도시하지 않은 기입 클럭에 동기하여 기입 데이터(4)를 기입한다.
기입 어드레스 생성 회로(2)는, 기입 인에이블(5)이 L 레벨일 때 기입 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하며, 이를 반복한다.
기입 어드레스 디코더(10, 11, 12)는 기입 어드레스(3)를 디코드하고, 이것이 버퍼 메모리(1)의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때, H 레벨 신호를 출력한다. 따라서, 기입 어드레스 디코더(10, 11, 12)는 각각 버퍼 메모리(1)에 1 셀분의 데이터가 기입되었을 때, 즉 기입 어드레스(3)가 나타내는 어드레스가 0부터 기입을 개시하여, 52, 105, 158의 어드레스로의 기입이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 레지스터(13, 14, 15)로 출력한다. 그리고, 플래그레지스터(13, 14, 15)는 각각의 플래그 신호(22, 23, 24)를 H 레벨로 한다.
한편, 버퍼 메모리(1)는 판독 인에이블(9)이 L 레벨일 때, 판독 어드레스 생성 회로(6)가 출력하는 판독 어드레스(7)로부터 도시하지 않은 판독 클럭에 동기하여 판독 데이터(8)를 판독한다.
판독 어드레스 생성 회로(6)는 판독 인에이블(9)이 L 레벨일 때 판독 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하며, 이를 반복한다.
판독 어드레스 디코더(16, 17, 18)는 판독 어드레스(7)를 디코드하여 이것이 버퍼 메모리(1)의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때, H 레벨 신호를 출력한다. 따라서, 판독 어드레스 디코더(16, 17, 18)는, 각각 버퍼 메모리(1)로부터 1 셀분의 데이터를 판독했을 때, 즉 판독 어드레스(7)가 나타내는 어드레스가 0부터 판독을 개시하여, 52, 105, 158의 어드레스까지의 판독이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 리세트 레지스터(19, 20, 21)로 출력한다.
그리고, 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트하기 위한 플래그 리세트 신호(25, 26, 27)를 H 레벨로 한다. 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트할 때까지 플래그 리세트 신호(25, 26, 27)를 H 레벨로 출력하고, 플래그 레지스터(13, 14, 15)를 리세트한 후 L 레벨로 된다.
플래그 레지스터(13, 14, 15)로부터 출력되는 플래그 신호(22, 23, 24)는 이것이 H 레벨이면 버퍼 메모리(1)가 대응하는 메모리 영역(1a, 1b, 1c)에 데이터 기입이 종료되어 있기 때문에, 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)가 판독 인에이블(9)을 출력한다.
이와 같이, 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)에서 버퍼 메모리(1)의 데이터를 판독할 수 있게 함으로써, 셀 단위로 데이터를 전송할 수 있게 된다. 이 때문에, 셀을 전송하는 도중에 버퍼 메모리(1)의 데이터가 도중에서 끊긴 경우, 전송원에서 도중에 끊긴 데이터 뒤에 의사 데이터를 삽입하여 셀을 구성하기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아, 셀 데이터의 손실을 막을 수 있다.
또한, 플래그 신호(22, 23, 24)가 모두 H 레벨이면, 버퍼 메모리(1)가 대응하는 메모리 영역(1a, 1b, 1c)에 데이터 기입이 종료되어 있기 때문에, 오버플로우 발생 통지 회로(28)를 3 입력 논리곱에 의해 구성하여 버퍼 메모리(1)의 오버플로우를 검출할 수 있다.
따라서, 예를 들면 ATM에 본 버퍼 메모리 제어 장치를 적용하는 경우, 기입 어드레스 디코더(10, 11, 12)가 디코드하는 값을 전술한 52, 105, 158보다 작은 값, 즉 도 1에 도시하는 바와 같이 동기 회로로 본 버퍼 메모리 제어 장치를 구성하는 경우에는 이들보다 5씩 작은 47, 100, 153으로 설정하고, 또한 비동기 회로로 본 버퍼 메모리 제어 장치를 구성하는 경우에는, 전술한 52, 105, 158보다 4씩 작은 48, 101, 154로 설정함으로써, 버퍼 메모리(1)의 오버플로우를 미리 검출할 수 있다.
이와 같이, 본 실시예 1에 따르면, 버퍼 메모리에 입력하는 기입 어드레스를 셀 단위로 디코드하여 플래그 레지스터를 세트하고, 버퍼 메모리에 입력하는 판독 어드레스를 셀 단위로 디코드하여 플래그 리세트 레지스터를 세트하며, 이 플래그 리세트 레지스터의 출력에 의해 플래그 레지스터를 리세트하고, 플래그 레지스터의 출력이 버퍼 메모리의 모든 셀에 상당하는 만큼 H 레벨로 됨에 따라 오버플로우로 된 것을 검출하도록 하였기 때문에, 데이터의 전송 제어에 이용한 경우 전송 효율이 양호하고, 또한 어드레스 디코더와 레지스터 및 논리곱 회로에 의해 회로를 구성할 수 있기 때문에, 종래예가 기입 어드레스와 판독 어드레스를 비교하여 이들의 차가 -1에서 0으로 변화하는지 +1에서 0으로 변화하는지를 검출하는데 비해 회로 규모를 작게 구성할 수 있으며, 또한 셀을 단위로 하여 버퍼 메모리의 데이터의 유무를 검지할 수 있다. 또한, 기입 어드레스 디코더가 디코드하는 어드레스를 셀의 최상위 어드레스보다 바로앞의 어드레스로 설정해 놓음으로써, 오버플로우가 실제로 발생하기도 전에 이를 검출하는 것이 가능해진다.
(실시예 2)
이 실시예 2는, 버퍼 메모리의 기입 어드레스 및 판독 어드레스를 디코더에 의해 디코드하여 메모리 영역에 대응하는 복수의 플래그 레지스터를 세트 혹은 리세트하고, 이들 플래그 레지스터의 출력이 1개를 제외하고는 모두 H로 되며, 또한 나머지 1개의 플래그 레지스터에 대응하는 메모리 영역의 기입 어드레스가 오버플로우하기 시작하고 있는 것을 디코더로 검지함으로써, 버퍼 메모리의 오버플로우를 이것이 실제로 발생하는 것보다도 미리 검출할 수 있도록 한 것이다.
도 3은 본 발명의 실시예 2에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도이다. 도 3에 있어서, 버퍼 메모리(1), 기입 어드레스 생성 회로(2), 기입 어드레스(3), 기입 데이터(4), 기입 인에이블(5), 판독 어드레스 생성 회로(6), 판독 어드레스(7), 판독 데이터(8), 판독 인에이블(9), 기입 어드레스 디코더(10∼12), 플래그 레지스터(13∼15), 판독 어드레스 디코더(16∼18), 플래그 리세트 레지스터(19∼21), 플래그 신호(22∼24), 플래그 리세트 신호(25∼27), 데이터 판별 회로(29)의 구성은 실시예 1에서 나타낸 도 1의 대응하는 부분과 실질적으로 동일하다. 또한, 참조부호 (30)은 도 2와 마찬가지의 디코더에 의해 구성되어, 플래그 신호(22∼24)가 기입중인 1개를 제외하고 H 레벨로 되고, 또한 그 1개에 대응하는 메모리 영역의 기입 어드레스가 해당 메모리 영역의 최상위 어드레스에 가까운 소정의 어드레스로 된 것을 디코드했을 때, 버퍼 메모리(1)에 오버플로우가 발생한 것을 미리 통지하는 오버플로우 발생 검출 회로이다.
이상과 같이 구성된 버퍼 메모리 제어 장치에 대한 동작을 이하에서 설명한다.
도 3에 도시하는 바와 같이, 버퍼 메모리(1)는 기입 인에이블(5)이 L 레벨일 때, 기입 어드레스 생성 회로(2)가 출력하는 기입 어드레스(3)에 도시하지 않은 기입 클럭에 동기하여 기입 데이터(4)를 기입한다.
기입 어드레스 생성 회로(2)는 기입 인에이블(5)이 L 레벨일 때 기입 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하고, 이를 반복한다.
기입 어드레스 디코더(10, 11, 12)는 기입 어드레스(3)를 디코드하여, 이것이 버퍼 메모리의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때 H 레벨 신호를 출력한다. 따라서, 기입 어드레스 디코더(10, 11, 12)는 각각 버퍼 메모리(1)에 1 셀분의 데이터가 기입되었을 때, 즉 기입 어드레스(3)가 나타내는 어드레스가 0부터 기입을 개시하여, 52, 105, 158의 어드레스로의 기입이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 레지스터(13, 14, 15)로 출력한다.
그리고, 플래그 레지스터(13, 14, 15)는 각각의 플래그 신호(22, 23, 24)를 H 레벨로 한다.
한편, 버퍼 메모리(1)은 판독 인에이블(9)이 L 레벨일 때, 판독 어드레스 생성 회로(6)가 출력하는 판독 어드레스(7)로부터 판독 데이터(8)를 판독 클럭에 동기하여 판독한다.
판독 어드레스 생성 회로(6)는 판독 인에이블 신호(9)가 L 레벨일 때, 판독 어드레스 생성 회로(6)가 생성하는 판독 어드레스(7)로부터 도시하지 않은 판독 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하며, 이를 반복한다.
판독 어드레스 디코더(16, 17, 18)는 판독 어드레스(7)를 디코드하여, 이것이 버퍼 메모리(1)의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때 H 레벨 신호를 출력한다. 따라서, 판독 어드레스 디코더(16, 17, 18)는 각각 버퍼 메모리(1)로부터 1 셀분의 데이터를 판독했을 때, 즉 판독 어드레스가 나타내는 어드레스가 0부터 판독을 개시하여, 52, 105, 158의 어드레스까지의 판독이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 리세트 레지스터(19, 20, 21)로 출력한다.
그리고, 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트하기 위한 플래그 리세트 신호(25, 26, 27)를 H 레벨로 한다. 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트할 때까지 플래그 리세트 신호(25, 26, 27)를 H 레벨로 출력하고, 플래그 레지스터(13, 14, 15)를 리세트한 후 L 레벨로 된다.
플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)가 판독 인에이블(9)을 출력한다.
이와 같이, 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)에서 버퍼 메모리(1)의 데이터를 판독할 수 있게 함으로써, 셀 단위의 데이터 전송이 가능해진다. 이 때문에, 셀을 전송하는 도중에 버퍼 메모리(1)의 데이터가 도중에서 끊긴 경우, 전송원에서 도중에 끊긴 데이터 뒤에 의사 데이터를 삽입하여 셀을 구성하기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아, 셀 데이터의 손실을 막을 수 있다.
또한, 오버플로우 발생 검출 회로(30)에 의해, 플래그 신호(22, 23, 24) 중 어느 2개가 H 레벨일 때, 현재 기입중인 메모리 영역의 임의의 어드레스값이 해당하는 메모리 영역내의 최상위 어드레스에 도달하기 전이라는 것을 디코드함으로써, 버퍼 메모리(1)가 오버플로우를 일으키기 전에 오버플로우 통지를 발생시킬 수 있고, 이에 따라 기입 데이터의 전송을 중지할 수 있기 때문에 기입 데이터에 손실이 발생하는 것을 없앨 수 있다.
이 때문에, 예를 들면 플래그 신호(23, 24)가 H 레벨일 때, 기입 어드레스가 현재 기입중인 메모리 영역(1a)의 최상위 어드레스 52보다 5 이전의 47에 도달하였을 때, 이 상태를 디코드할 수 있도록, 디코더로 이루어지는 오버플로우 발생 검출 회로(30)를 도 2에 도시하는 바와 같이 설정해 놓음으로써, 오버플로우의 발생을 미리 검출할 수 있어 기입 데이터에 손실이 발생하는 것을 없앨 수 있다.
이와 같이, 본 실시예 2에 따르면, 버퍼 메모리에 입력하는 기입 어드레스를 셀 단위로 디코드하여 플래그 레지스터를 세트하고, 버퍼 메모리에 입력하는 판독 어드레스를 셀 단위로 디코드하여 플래그 리세트 레지스터를 세트하며, 이 플래그 리세트 레지스터의 출력에 의해 플래그 레지스터를 리세트하여, 플래그 레지스터의 출력이 버퍼 메모리의 모든 셀보다 1개 적은 만큼 H 레벨로 되고, 또한 나머지 1개의 셀에 대응하는 기입 어드레스가 해당하는 어드레스의 최대값에 도달하는 것보다 이전의 값인 것을 디코드함으로써, 오버플로우로 된 것을 검출하도록 하였기 때문에, 셀을 단위로 하여 버퍼 메모리의 데이터 유무를 검지할 수 있고, 데이터의 전송 제어에 이용한 경우 전송 효율이 양호하며, 또한 오버플로우를 미리 검출하는 것이 가능해진다.
(실시예 3)
본 실시예 3은, 버퍼 메모리의 기입 어드레스 및 판독 어드레스를 디코더에 의해 디코드하여 메모리 영역에 대응하는 복수의 플래그 레지스터를 세트 혹은 리세트하여, 이들 플래그 레지스터의 출력이 1개를 제외하고 모두 H로 되고, 또한 나머지 1개의 플래그 레지스터에 대응하는 메모리 영역의 기입 어드레스가 오버플로우하기 시작한 것을 디코더로 검지함과 동시에, 이들 플래그 레지스터의 출력이 모두 L인 경우에는 전송 목적지에서 폐기되는 의사 데이터를 송출함으로써 버퍼 메모리의 오버플로우를 이것이 실제로 발생하는 것보다도 미리 검출할 수 있으며, 또한 오(誤)데이터의 송신을 방지할 수 있도록 한 것이다.
도 4는 본 발명의 실시예 3에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도이다. 도 4에 있어서, 버퍼 메모리(1), 기입 어드레스 생성 회로(2), 기입 어드레스(3), 기입 데이터(4), 기입 인에이블(5), 판독 어드레스 생성 회로(6), 판독 어드레스(7), 판독 데이터(8), 판독 인에이블(9), 기입 어드레스 디코더(10∼l2), 플래그 레지스터(13∼15), 판독 어드레스 디코더(16∼18), 플래그 리세트 레지스터(19∼21), 플래그 신호(22∼24), 플래그 리세트 신호(25∼27), 오버플로우 발생 검출 회로(30)의 구성은 실시예 2에서 나타낸 도 3의 대응 부분과 실질적으로 동일하며, 참조부호 (31)은 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 판독 인에이블(9)을 출력하여, 데이터 판독을 가능하게 함과 동시에, 플래그 신호(22, 23, 24) 모두가 L 레벨인 경우에만 전송 목적지에서 폐기되는 의사 데이터를 생성하는 의사 데이터 생성 회로, 참조부호 (32)는 이 의사 데이터 생성 회로(31)에 의해 생성되는 의사 데이터, 참조부호 (34)는 버퍼 메모리(8)로부터의 판독 데이터(8)와 의사 데이터(32)를 선택하는 선택 회로, 참조부호 (33)은 이 선택 회로(34)를 선택시키는 의사 데이터 선택 신호, 참조부호 (35)는 선택 회로(34)에 의해 선택되어 전송 목적지로 전송되는 전송 데이터이다.
이상과 같이 구성된 버퍼 메모리 제어 장치에 대한 동작을 이하에서 설명한다.
도 4에 도시하는 바와 같이 버퍼 메모리(1)은 기입 인에이블(5)이 L 레벨일 때, 기입 어드레스 생성 회로(2)가 출력하는 기입 어드레스(3)에 도시하지 않은 기입 클럭에 동기하여 기입 데이터(4)를 기입한다.
기입 어드레스 생성 회로(2)는, 기입 인에이블(5)이 L 레벨일 때 기입 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하고, 이를 반복한다.
기입 어드레스 디코더(10, 11, 12)는 기입 어드레스(3)를 디코드하여, 이것이 버퍼 메모리(1)의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때, H 레벨 신호를 출력한다. 따라서, 기입 어드레스 디코더(10, 11, 12)는 각각 버퍼 메모리(1)에 1 셀분의 데이터가 기입되었을 때, 즉 기입 어드레스(3)가 나타내는 어드레스가 0부터 기입을 개시하여, 52, 105, 158의 어드레스로의 기입이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 레지스터(13, 14, 15)로 출력한다. 그리고, 플래그 레지스터(13, 14, 15)는 각각의 플래그 신호(22, 23, 24)를 H 레벨로 한다.
한편, 버퍼 메모리(1)는 판독 인에이블(9)이 L 레벨일 때, 판독 어드레스 생성 회로(6)가 출력하는 판독 어드레스(7)로부터 도시하지 않은 판독 클럭에 동기하여 판독 데이터(8)를 판독한다.
판독 어드레스 생성 회로(6)는 판독 인에이블(9)이 L 레벨일 때, 판독 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하고, 이를 반복한다.
판독 어드레스 디코더(16, 17, 18)는 판독 어드레스(7)를 디코드하여 이것이 버퍼 메모리(1)의 1 셀의 최상위 어드레스를 나타내는 값 52, 105, 158과 각각 일치했을 때, H 레벨 신호를 출력한다. 따라서, 판독 어드레스 디코더(16, 17, 18)는 각각 버퍼 메모리(1)로부터 1 셀분의 데이터를 판독했을 때, 즉 판독 어드레스(7)가 나타내는 어드레스가 0부터 판독을 개시하여, 52, 105, 158의 어드레스까지의 판독이 종료하고나서 비로소, 디코드한 H 레벨 신호를 각각 대응하는 플래그 리세트 레지스터(19, 20, 21)로 출력한다.
그리고, 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트하기 위한 플래그 리세트 신호(25, 26, 27)를 H 레벨로 한다. 플래그 리세트 레지스터(19, 20, 21)는 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트할 때까지 플래그 리세트 신호(25, 26, 27)를 H 레벨로 출력하고, 플래그 레지스터(13, 14, 15)를 리세트한 후 L 레벨로 된다.
플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 의사 데이터 생성 회로(31)는 판독 인에이블(9)을 출력하여, 데이터의 판독을 가능하게 한다.
이와 같이, 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 버퍼 메모리(1)의 데이터를 판독함으로써 셀 단위의 데이터 전송이 가능해진다. 이 때문에, 셀을 전송하는 도중에 버퍼 메모리(1)의 데이터가 도중에서 끊긴 경우, 전송원에서 도중에 끊긴 데이터 뒤에 의사 데이터를 삽입하여 셀을 구성하기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아, 셀 데이터의 손실을 막을 수 있다.
그리고, 플래그 신호(22, 23, 24) 모두가 L 레벨인 경우에는, 예를 들면 ATM(Asynchronous Transfer Mode : 비동기 전송 모드) 통신 등에 있어서 사용되는, 비어있는 셀이라고 불리우는 의사 데이터, 즉 전송 목적지에서 폐기되는 셀 단위의 의사 데이터(32)를 의사 데이터 생성 회로(31)에 의해 출력함과 동시에 의사 데이터 선택 신호(33)를 출력하고, 선택 회로(34)에 의해 전송 데이터(35)를 판독 데이터(8)로부터 의사 데이터(32)로 전환함으로써, 의사 데이터(32)를 전송 목적지로 출력한다.
의사 데이터 생성 회로(31)는 비어있는 셀을 전송한 후, 재차 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인지 여부를 검출하여, H 레벨인 경우에는 버퍼 메모리(1)로부터 데이터를 판독하고, 모두 L 레벨인 경우에는 다시 비어있는 셀을 전송하며, 이 동작을 반복한다. 이에 따라 오(誤)데이터의 전송을 막을 수 있다.
또한, 오버플로우 발생 검출 회로(30)에 의해, 플래그 신호(22, 23, 24) 중 어느 2개가 H 레벨일 때, 현재 기입중인 메모리 영역의 임의의 어드레스값이 해당하는 메모리 영역내의 최상위 어드레스에 도달하기 전이라는 내용을 디코드함으로써, 버퍼 메모리(1)가 오버플로우를 일으키기 전에 오버플로우의 통지를 발생하는 것이 가능하고, 이에 따라 기입 데이터의 전송을 중지할 수 있기 때문에, 기입 데이터에 손실이 발생하는 것을 없앨 수 있다.
이 때문에, 예를 들면 플래그 신호(23, 24)가 H 레벨일 때, 기입 어드레스가, 현재 기입중인 메모리 영역(1a)의 최상위 어드레스 52보다 5 이전의 47에 도달하였을 때, 이 상태를 디코드할 수 있도록, 디코더로 이루어지는 오버플로우 발생 검출 회로(30)를 도 2에 도시하는 바와 같이 설정해 놓음으로써, 오버플로우의 발생을 미리 검출할 수 있어 기입 데이터에 손실이 발생하는 것을 없앨 수 있다.
이와 같이, 본 실시예 3에 따르면, 버퍼 메모리에 입력하는 기입 어드레스를 셀 단위로 디코드하여 플래그 레지스터를 세트하고, 버퍼 메모리에 입력하는 판독 어드레스를 셀 단위로 디코드하여 플래그 리세트 레지스터를 세트하며, 이 플래그 리세트 레지스터의 출력에 의해 플래그 레지스터를 리세트하여, 플래그 레지스터의 출력이 버퍼 메모리의 모든 셀보다 1개 적은 만큼 H 레벨로 되고, 또한 나머지 1개의 셀에 대응하는 기입 어드레스가 해당하는 어드레스의 최대값에 도달하는 것보다 이전의 값인 것을 디코드함으로써 오버플로우로 된 것을 검출함과 동시에, 플래그 레지스터의 출력이 모두 L 레벨로 된 경우, 의사 데이터를 전송 목적지로 전송하도록 하였기 때문에, 셀을 단위로 하여 버퍼 메모리의 데이터 유무를 검지할 수 있고, 데이터의 전송 제어에 이용한 경우에 전송 효율이 양호하며, 잘못된 데이터 전송을 방지할 수 있음과 동시에 오버플로우를 미리 검출하는 것이 가능해진다.
또, 도 5에 도시하는 바와 같이 오버플로우 발생 통지 회로를 도 1에 도시하는 바와 같은 논리곱 회로(28)로 구성하도록 하여도 좋으며, 이 경우 기입 어드레스 디코더(10, 11, 12)를 각 메모리 영역(1a, 1b, 1c)의 최상위 어드레스, 예를 들면 52, 105, 158로 설정하면, 오버플로우를 미리 검출할 수는 없지만, 셀을 단위로 하여 버퍼 메모리의 데이터 유무를 검지할 수 있고, 잘못된 데이터의 전송을 방지할 수 있다. 따라서, 이보다, 예를 들면 5씩 이전의 47, 100, 153으로 설정해 놓으면, 오버플로우를 미리 검출하는 것이 가능해지고, 또한 3개의 메모리 영역(1a, 1b, 1c) 중의 2개에 대응하는 플래그 레지스터의 출력이 H 레벨일 때에 한하여 1개의 메모리 영역으로부터 데이터를 판독할 수 있다.
(실시예 4)
본 실시예 4는, 버퍼 메모리의 기입 어드레스 및 판독 어드레스와, 어드레스 설정 레지스터에 설정한 임의의 설정 데이터의 일치를 검출함으로써 메모리 영역에 대응하는 복수의 플래그 레지스터를 세트 혹은 리세트하여, 이들 플래그 레지스터의 출력이 1개를 제외하고 모두 H가 되고, 또한 나머지 1개의 플래그 레지스터에 대응하는 메모리 영역의 기입 어드레스가 오버플로우하기 시작한 것을, 이것과 어드레스 설정 레지스터에 설정한 설정 데이터를 디코드함으로써 검지함과 동시에, 이들 플래그 레지스터의 출력이 적어도 1개 이상 H인 경우에 버퍼 메모리를 판독할 수 있도록 함으로써, 버퍼 메모리의 오버플로우를 이것이 실제로 발생하는 것보다도 미리 검출할 수 있으며, 이와 더불어 버퍼 메모리를 임의의 수의 셀로 분할하고, 또한 그 분할한 셀을 단위로 하여 버퍼 메모리의 데이터 유무를 검지할 수 있도록 한 것이다.
도 6은 본 발명의 실시예 4에 있어서의 버퍼 메모리 제어 장치의 구성을 나타내는 블럭도이다. 도 6에 있어서, 버퍼 메모리(1), 기입 어드레스 생성 회로(2), 기입 어드레스(3), 기입 데이터(4), 기입 인에이블(5), 판독 어드레스 생성 회로(6), 판독 어드레스(7), 판독 데이터(8), 판독 인에이블(9), 플래그 레지스터(13∼15), 플래그 리세트 레지스터(19∼21), 플래그 신호(22∼24), 플래그 리세트 신호(25∼27), 데이터 판별 회로(29), 오버플로우 발생 검출 회로(30)의 구성은 실시예 2에서 나타낸 도 2의 대응 부분과 실질적으로 동일하며, 참조부호 (36∼38)은 배타적 논리합 회로 등으로 이루어지고, 기입 어드레스(3)와 어드레스 설정 레지스터에 설정된 어드레스의 일치를 검출하는 일치 검출 회로, 참조부호 (39∼41)은 배타적 논리합 회로 등으로 이루어지고, 판독 어드레스(7)와 어드레스 설정 레지스터에 설정된 어드레스의 일치를 검출하는 일치 검출 회로, 참조부호 (42∼44)는 일치 검출 회로(36∼41)에 의해 일치가 검출되는 어드레스가 설정되는 어드레스 설정 레지스터, 참조부호 (45∼47)은 어드레스 설정 레지스터(42∼44)에 설정되는 설정 데이터, 참조부호 (49∼51)은 오버플로우 검출 회로(30)에 설정되는 어드레스가 설정되는 어드레스 설정 레지스터, 참조부호 (48)은 이들 어드레스 설정 레지스터(42∼44 및 49∼51)에 설정되는 설정 데이터로 이루어지는 외부 입력 데이터, 참조부호 (55)는 CPU 등으로 이루어지고, 이 외부 입력 데이터를 설정하는 어드레스 설정 수단이다.
이상과 같이 구성된 버퍼 메모리 제어 장치에 대한 동작을 이하에서 설명한다.
도 6에 도시하는 바와 같이, 버퍼 메모리(1)는 기입 인에이블(5)이 L 레벨일 때, 기입 어드레스 생성 회로(2)가 출력하는 기입 어드레스(3)에 도시하지 않은 기입 클럭에 동기하여 기입 데이터(4)를 기입한다.
기입 어드레스 생성 회로(2)는 기입 인에이블(5)이 L 레벨일 때 기입 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하고, 이를 반복한다.
어드레스 설정 레지스터(42, 43, 44)는 각각 어드레스 설정 수단(55)으로부터의 외부 입력 데이터(48)에 의해 설정되고, 각 메모리 영역(1a, 1b, 1c)의 최상위 어드레스를 나타낸다. 따라서, 일치 검출 회로(36, 37, 38)는 각각 어드레스 설정 레지스터(42, 43, 44)에 설정된 설정 데이터(45, 46, 47)와 기입 어드레스(3)가 일치하여, 그 메모리 영역(1a, 1b, 1c)의 최상위 어드레스까지의 기입이 종료되었을 때, H 레벨 신호를 각각 대응하는 플래그 레지스터(13, 14, 15)로 출력한다. 그리고, 플래그 레지스터(13, 14, 15)는 각각의 플래그 신호(22, 23, 24)를 H 레벨로 한다.
한편, 버퍼 메모리(1)는 판독 인에이블(9)이 L 레벨일 때 판독 어드레스 생성 회로(6)가 출력하는 판독 어드레스(7)로부터 도시하지 않은 판독 클럭에 동기하여 판독 데이터(8)를 판독한다.
판독 어드레스 생성 회로(6)는 판독 인에이블(9)이 L 레벨일 때 판독 클럭에 동기하여 0∼158의 어드레스를 0부터 순차적으로 출력하며, 이를 반복한다.
어드레스 설정 레지스터(42, 43, 44)에는, 상술한 바와 같이 각 메모리 영역(1a, 1b, 1c)의 최상위 어드레스, 예를 들면 40, 110, 158이 설정되어 있으며, 일치 검출 회로(39, 40, 41)는 각각 대응한 어드레스 설정 레지스터(42, 43, 44)에 설정된 설정 데이터(45, 46, 47)와 판독 어드레스(7)가 일치하여, 그 메모리 영역(1a, 1b, 1c)의 최상위 어드레스까지의 판독이 종료되었을 때, H 레벨 신호를 각각 대응하는 플래그 리세트 레지스터(19, 20, 21)로 출력한다.
그리고, 이에 따라 플래그 리세트 레지스터(19, 20, 21)가 세트되면, 각각 대응하는 플래그 레지스터(13, 14, 15)를 리세트할 때까지 플래그 리세트 신호(25, 26, 27)를 H 레벨로 출력하고, 플래그 레지스터(13, 14, 15)를 리세트한 후 L 레벨로 된다.
플래그 신호(22, 23, 24)는 그 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)가 판독 인에이블(9)을 출력한다.
이와 같이, 플래그 신호(22, 23, 24) 중 1개 이상이 H 레벨인 경우에만 데이터 판별 회로(29)에서 버퍼 메모리(1)의 데이터를 판독함으로써, 외부로부터 어드레스 설정 레지스터에 42∼44로 설정하는 임의의 셀 단위로의 전송이 가능해져, 셀 데이터의 손실을 막을 수 있다.
또한, 오버플로우 발생 검출 회로(30)는 플래그 신호(22, 23, 24) 중 어느 2개가 H 레벨일 때 현재 기입중인 메모리 영역의 임의의 어드레스값이 해당하는 메모리 영역내의 최상위 어드레스에 도달하기 전이라는 것을 디코드하도록, 2개가 H 레벨이고, 또한 기입중인 기입 어드레스가 외부 입력 데이터(48)에 의해 어드레스 설정 레지스터(49∼51)와 일치하도록, 디코더로 이루어지는 해당 오버플로우 발생 검출 회로(30)를 설정하며, 또한 어드레스 설정 레지스터(49∼51)에 버퍼 메모리(1)의 메모리 영역(1a, 1b, 1c)의 최상위 어드레스보다 이전의 어드레스를 설정해 놓음으로써, 버퍼 메모리(1)의 오버플로우를 미리 검출할 수 있다.
예를 들면, 설정 데이터(52∼54)를, 버퍼 메모리(1)의 메모리 영역(1a, 1b, 1c)의 최상위 어드레스가 40, 110, 158인 경우, 이보다 5 이전의 35, 105, 153으로 설정해 놓음으로써, 오버플로우 발생 검출 회로(디코더)(30)에 의해 버퍼 메모리(1)의 오버플로우를 미리 임의의 셀 단위로 검출할 수 있게 된다.
이와 같이, 본 실시예 4에 따르면, 버퍼 메모리의 기입 어드레스 및 판독 어드레스와 어드레스 설정 레지스터에 설정한 임의의 설정 데이터의 일치를 검출함으로써 메모리 영역에 대응하는 복수의 플래그 레지스터를 세트 혹은 리세트하여, 이들 플래그 레지스터의 출력이 1개를 제외하고 모두 H가 되고, 또한 나머지 1개의 플래그 레지스터에 대응하는 메모리 영역의 기입 어드레스가 오버플로우하기 시작한 것을, 이것과 어드레스 설정 레지스터에 설정한 설정 데이터를 디코드함으로써 검지함과 동시에, 이들 플래그 레지스터의 출력이 적어도 1개 이상 H인 경우에 버퍼 메모리를 판독할 수 있도록 하였기 때문에, 버퍼 메모리의 오버플로우를 이것이 실제로 발생하는 것보다도 미리 검출할 수 있어, 데이터의 전송 제어에 이용한 경우 전송 효율이 양호하다는 효과를 얻을 수 있음과 동시에, 버퍼 메모리를 임의의 수의 셀로 분할하고, 또한 그 분할한 셀을 단위로 하여 버퍼 메모리의 데이터 유무를 검지하는 것이 가능하다.
또, 도 7에 도시하는 바와 같이 오버플로우 발생 통지 회로를 도 1에 도시하는 바와 같은 논리곱 회로(28)로 구성하도록 하여도 무방하며, 이 경우 어드레스 설정 레지스터(49, 50, 51)를 각 메모리 영역(1a, 1b, 1c)의 최상위 어드레스, 예를 들면 40, 110, 158로 설정하면, 버퍼 메모리의 오버플로우를 미리 검출하는 것은 불가능하지만, 임의의 셀을 단위로 하여 오버플로우를 검출할 수 있다. 따라서, 어드레스 설정 레지스터(49, 50, 51)를, 그보다, 예를 들면 5씩 이전인 35, 105, 153으로 설정해 놓으면, 오버플로우를 미리 검출하는 것이 가능해져 상기 실시예 4와 마찬가지의 효과를 나타낸다.
또한, 이 버퍼 메모리 제어 장치는, 플래그 레지스터와 플래그 리세트 레지스터와 일치 검출 회로 및 어드레스 설정 레지스터의 수를 증가시킴으로써 더욱 세밀하게 버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있어, 그 분할된 셀 단위에 의한 데이터의 전송이나 오버플로우의 사전 검출이 가능해진다.
또한, 일치 검출 회로의 검출값을, 예를 들면 모두 158로 설정한 경우, 버퍼 메모리를 분할하지 않고, 전체를 1개의 메모리 영역으로 하여 그 오버플로우 유무를 검출할 수 있다.
이상과 같이, 본원의 청구항 1에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와, 상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와, 상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와, 상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터의 기입이 종료되기 전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와, 상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와, 상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와, 상기 플래그 신호에 의해 버퍼 메모리의 오버플로우의 발생을 통지하는 오버플로우 발생 통지 회로를 가지며, 상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하여, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하고, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하도록 하였기 때문에, 버퍼 메모리를 임의의 셀 단위로 분할하고, 셀 단위마다 데이터를 전송하여 오버플로우 및 엠프티를 제어함으로써 셀 데이터의 손실을 방지할 수 있다. 또한, 버퍼 메모리의 오버플로우를 비교 회로를 이용하지 않고 검출하기 때문에 회로 규모를 작게 구성할 수 있는 효과가 있다.
또한, 본원의 청구항 2에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 청구항 1에 기재된 버퍼 메모리 제어 장치에 있어서, 플래그 신호를 입력으로 하고, 버퍼 메모리에 셀 단위의 데이터가 없는 경우 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와, 상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖도록 하였기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하지 않아 셀 데이터의 손실을 막을 수 있는 효과가 있다.
또한, 본원의 청구항 3에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 청구항 1에 기재된 버퍼 메모리 제어 장치에 있어서, 외부로부터 어드레스값을 설정할 수 있는 레지스터와, 상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와, 상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며, 버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 하였기 때문에, 임의의 단위로 분할한 버퍼 메모리의 메모리 영역의 오버플로우를 검출할 수 있는 효과가 있다.
또한, 본원의 청구항 4에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와, 상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와, 상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와, 상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터의 기입이 종료된 시점 또는 그보다 이전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와, 상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와, 상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와, 플래그 신호와 기입 어드레스를 입력으로 하여, 상기 플래그 신호와 상기 기입 어드레스에 의해 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하는 오버플로우 발생 검출 회로를 가지며, 상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하여, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하고, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하도록 하였기 때문에, 버퍼 메모리를 임의의 셀 단위로 분할하고, 셀 단위마다 데이터를 전송하여 오버플로우 및 엠프티를 제어함으로써 셀 데이터의 손실을 방지할 수 있다. 또한, 버퍼 메모리의 오버플로우를 미리 검출할 수 있는 효과가 있다.
또한, 본원의 청구항 5에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 청구항 4에 기재된 버퍼 메모리 제어 장치에 있어서, 플래그 신호를 입력으로 하고, 버퍼 메모리에 셀 단위의 데이터가 없는 경우 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와, 상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖도록 하였기 때문에, 전송 목적지에서 이 셀 전체가 폐기되어 버린다고 하는 불량이 발생하는 일이 없어 셀 데이터의 손실을 막을 수 있는 효과가 있다.
또한, 본원의 청구항 6에 관한 발명에 의한 버퍼 메모리 제어 장치에 따르면, 청구항 4에 기재된 버퍼 메모리 제어 장치에 있어서, 외부로부터 어드레스값을 설정할 수 있는 레지스터와, 상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와, 상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며, 버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 하였기 때문에, 임의의 단위로 분할한 버퍼 메모리의 메모리 영역의 오버플로우를 검출할 수 있는 효과가 있다.
이상 본 발명자에 의해서 이루어진 발명을 상기 실시예에 따라 구체적으로 설명하였지만, 본 발명은 상기 실시예에 한정되는 것이 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
Claims (6)
- 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와,상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와,상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와,상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터 기입이 종료되기 전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와,상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와,상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와,상기 플래그 신호에 의해 버퍼 메모리의 오버플로우 발생을 통지하는 오버플로우 발생 통지 회로를 가지며,상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하여, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하고, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하는 것을 특징으로 하는 버퍼 메모리 제어 장치.
- 제 1 항에 있어서,플래그 신호를 입력으로 하여, 버퍼 메모리에 셀 단위의 데이터가 없는 경우에 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와,상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖는 것을 특징으로 하는 버퍼 메모리 제어 장치.
- 제 1 항에 있어서,외부로부터 어드레스값을 설정할 수 있는 레지스터와,상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와,상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며,버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 한 것을 특징으로 하는 버퍼 메모리 제어 장치.
- 어드레스에 의해 복수의 데이터 단위인 셀 단위의 메모리 영역으로 분할된 버퍼 메모리와,상기 버퍼 메모리의 기입 어드레스를 출력하는 기입 어드레스 생성 회로와,상기 버퍼 메모리의 판독 어드레스를 출력하는 판독 어드레스 생성 회로와,상기 기입 어드레스를 디코드함으로써 셀 단위마다의 데이터 기입이 종료된 시점 또는 그보다 이전의 기입 어드레스를 나타내는 플래그 신호를 출력하는 제 1 레지스터와,상기 플래그 신호에 의해 상기 버퍼 메모리내에 셀 단위의 데이터 유무를 판별하여 상기 버퍼 메모리의 판독을 제어하는 데이터 판별 회로와,상기 판독 어드레스를 디코드함으로써 셀 단위마다의 데이터의 판독 종료를 나타내고, 상기 플래그 신호를 리세트하는 플래그 리세트 신호를 출력하는 제 2 레지스터와,플래그 신호와 기입 어드레스를 입력으로 하여, 상기 플래그 신호와 상기 기입 어드레스에 의해 오버플로우가 발생하기 전에 기입 데이터의 전송 정지를 통지하는 오버플로우 발생 검출 회로를 가지며,상기 데이터 판별 회로에 의해 상기 버퍼 메모리의 판독을 제어하고, 버퍼 메모리의 오버플로우가 발생하기 전에 기입 데이터의 전송 중지를 통지하며, 또한 셀 단위로 데이터를 전송하여 데이터의 손실을 방지하는 것을 특징으로 하는 버퍼 메모리 제어 장치.
- 제 4 항에 있어서,플래그 신호를 입력으로 하여, 버퍼 메모리에 셀 단위의 데이터가 없는 경우에 버퍼 메모리의 판독을 제어함과 동시에 의사 데이터 선택 신호와 셀 단위의 의사 데이터를 출력하는 의사 데이터 생성 회로와,상기 의사 데이터 선택 신호에 의해 상기 의사 데이터와 상기 버퍼 메모리의 판독 데이터 중 어느 하나를 선택하는 선택 회로를 갖는 것을 특징으로 하는 버퍼 메모리 제어 장치.
- 제 4 항에 있어서,외부로부터 어드레스값을 설정할 수 있는 레지스터와,상기 레지스터의 값과 기입 어드레스의 일치를 검출하는 제 1 일치 검출 회로와,상기 레지스터의 값과 판독 어드레스의 일치를 검출하는 제 2 일치 검출 회로를 가지며,버퍼 메모리의 메모리 영역을 임의의 단위로 분할할 수 있도록 한 것을 특징으로 하는 버퍼 메모리 제어 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15883697 | 1997-06-16 | ||
JP97-158836 | 1997-06-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR19990007025A KR19990007025A (ko) | 1999-01-25 |
KR100287396B1 true KR100287396B1 (ko) | 2001-04-16 |
Family
ID=15680467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019980022516A KR100287396B1 (ko) | 1997-06-16 | 1998-06-16 | 버퍼 메모리 제어 장치 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6112268A (ko) |
KR (1) | KR100287396B1 (ko) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6163819A (en) * | 1998-07-21 | 2000-12-19 | Micron Technology, Inc. | Sequential data transfer circuit |
US20060242335A1 (en) * | 1998-11-03 | 2006-10-26 | Poisner David I | Race free data transfer algorithm using hardware based polling |
US7389374B1 (en) * | 2000-05-17 | 2008-06-17 | Marvell International Ltd. | High latency interface between hardware components |
US7281065B1 (en) * | 2000-08-17 | 2007-10-09 | Marvell International Ltd. | Long latency interface protocol |
KR100448071B1 (ko) * | 2002-03-14 | 2004-09-10 | 한국과학기술원 | 컴퓨터 시스템의 버퍼 메모리 제어장치 |
US7219333B2 (en) * | 2002-11-22 | 2007-05-15 | Texas Instruments Incorporated | Maintaining coherent synchronization between data streams on detection of overflow |
CN100463071C (zh) * | 2005-01-19 | 2009-02-18 | 义隆电子股份有限公司 | 具有自我判断重置的缓冲存储器控制方法及装置 |
KR100613464B1 (ko) * | 2005-07-06 | 2006-08-22 | 주식회사 하이닉스반도체 | 반도체 장치의 데이터 출력장치 및 출력방법 |
US8037259B2 (en) | 2007-06-01 | 2011-10-11 | General Dynamics Advanced Information Systems, Inc. | System and method for managing addresses in a computing system |
DE102008001548B4 (de) * | 2008-05-05 | 2017-03-02 | Robert Bosch Gmbh | Teilnehmerknoten eines Kommunikationssystems, Kommunikationssystem und Verfahren zum Übertragen einer Nachricht in dem Kommunikationssystem |
JP5675278B2 (ja) * | 2010-11-01 | 2015-02-25 | オリンパス株式会社 | データ処理装置および画像処理装置 |
JP5784299B2 (ja) | 2010-11-01 | 2015-09-24 | オリンパス株式会社 | データ処理装置および画像処理装置 |
US9081966B2 (en) | 2012-12-21 | 2015-07-14 | International Business Machines Corporation | System and method for protection from buffer overflow vulnerability due to placement new constructs in C++ |
WO2020118713A1 (zh) * | 2018-12-14 | 2020-06-18 | 深圳市汇顶科技股份有限公司 | 位宽匹配电路、数据写入装置、数据读出装置和电子设备 |
KR102544783B1 (ko) | 2021-12-06 | 2023-06-16 | 티티전자 주식회사 | 적층식 높이 조절 스마트 베개 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5533282A (en) * | 1978-08-31 | 1980-03-08 | Fujitsu Ltd | Buffer control system |
JPS58161191A (ja) * | 1982-03-19 | 1983-09-24 | Fuji Xerox Co Ltd | 記憶装置 |
US4692894A (en) * | 1984-12-18 | 1987-09-08 | Advanced Micro Devices, Inc. | Overflow/Underflow detection for elastic buffer |
JPS61234149A (ja) * | 1985-04-09 | 1986-10-18 | Nec Corp | 受信バツフア装置 |
US4975858A (en) * | 1987-12-28 | 1990-12-04 | Minolta Camera Kabushiki Kaisha | Controller for a printer for printing data received from an external data processor |
US5648777A (en) * | 1993-12-16 | 1997-07-15 | Lucent Technologies Inc. | Data converter with FIFO |
JP2699872B2 (ja) * | 1994-06-01 | 1998-01-19 | 日本電気株式会社 | データ受信装置およびバッファ管理方法 |
JPH08223168A (ja) * | 1995-02-09 | 1996-08-30 | Hitachi Ltd | セルバッファの制御方式 |
-
1998
- 1998-06-12 US US09/097,079 patent/US6112268A/en not_active Expired - Fee Related
- 1998-06-16 KR KR1019980022516A patent/KR100287396B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
US6112268A (en) | 2000-08-29 |
KR19990007025A (ko) | 1999-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100287396B1 (ko) | 버퍼 메모리 제어 장치 | |
US4507760A (en) | First-in, first-out (FIFO) memory configuration for queue storage | |
EP0116047B1 (en) | Multiplexed first-in, first-out queues | |
US5124977A (en) | Switching system for switching cells having error detection apparatus | |
JPS61156954A (ja) | バツフアメモリシステム | |
US4815039A (en) | Fast real-time arbiter | |
US5594743A (en) | Fifo buffer system having an error detection and correction device | |
US5459743A (en) | Address decision system having address check system | |
JP2873229B2 (ja) | バッファメモリ制御装置 | |
US5825204A (en) | Apparatus and method for a party check logic circuit in a dynamic random access memory | |
CN115221082B (zh) | 一种数据缓存方法、装置及存储介质 | |
TW202147325A (zh) | 資料存取系統及操作資料存取系統的方法 | |
USRE36716E (en) | Switching system for switching cells having error detection apparatus | |
JPH11219321A (ja) | データモニタ回路 | |
JPS62141875A (ja) | 復号誤り伝播防止方式 | |
EP0570877A1 (en) | Tributary ambiguity resolution for elastic store control | |
US4771402A (en) | Address comparator | |
CN113808642B (zh) | 数据存取***和操作数据存取***的方法 | |
KR100380601B1 (ko) | 아이피씨용 에프아이에프오의 번지 관리 시스템 및 방법 | |
CN1328668C (zh) | 弹性缓冲器的初始装置及其方法 | |
JPH03254240A (ja) | セル送受信装置 | |
KR100267277B1 (ko) | 통신시스템의 셀 경계 식별 장치 | |
JP2919212B2 (ja) | セルシーケンス同期回路の遅延減少方式 | |
SU1136216A1 (ru) | Асинхронный последовательный регистр | |
SU1161994A1 (ru) | Запоминающее устройство с автономным контролем |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20050121 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |