KR0168832B1 - 반도체기억장치 - Google Patents
반도체기억장치 Download PDFInfo
- Publication number
- KR0168832B1 KR0168832B1 KR1019890012110A KR890012110A KR0168832B1 KR 0168832 B1 KR0168832 B1 KR 0168832B1 KR 1019890012110 A KR1019890012110 A KR 1019890012110A KR 890012110 A KR890012110 A KR 890012110A KR 0168832 B1 KR0168832 B1 KR 0168832B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- signal
- read
- write
- cell array
- Prior art date
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2205/00—Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F2205/10—Indexing scheme relating to groups G06F5/10 - G06F5/14
- G06F2205/106—Details of pointers, i.e. structure of the address generators
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
Abstract
내용 없음.
Description
제1도a는 본 발명에 관한 FIFO메모리를 포함한 통신제어장치의 수신측의 1실시예의 블록도.
제1도b는 본 발명에 관한 FIFO메모리를 포함한 통신제어장치의 송신측의 1실시예의 블록도.
제2도는 수신FIFO메모리의 단위기억영역 선택을 위한 상세한 예를 도시한 블록도.
제3도는 송신FIFO메모리의 단위기억영역 선택을 위한 상세한 예를 도시한 블록도.
제4도는 수신FIFO메모리에 포함되는 선택제어회로의 1예를 도시한 논리회로도.
제5도는 송신FIFO메모리에 포함되는 선택제어회로의 1예를 도시한 논리회로도.
제6도a∼c는 수신FIFO메모리로 부터의 데이타리드상태의 1예를 도시한 설명도.
제7도a∼c는 송신FIFO메모리로 부터의 데이타리드상태의 1예를 도시한 설명도.
제8도는 수신FIFO메모리에 포함되는 비트셀의 1예를 도시한 회로도.
제9도는 송신FIFO메모리에 포함되는 비트셀의 1예를 도시한 회로도.
제10도는 송신FIFO메모리에 있어서의 라이트카운터 및 리드카운터의 계수값과 축적데이타수의 관계의 1예를 도시한 설명도.
제11도a∼c는 수신FIFO메모리에 포함되는 연산부의 가산기의 1예를 도시한 논리회로도.
제12도는 플래그를 사용해서 축적데이타수를 연산하기 위한 1예의 블록도.
제13도는 본 발명에 관한 다른 실시예인 FIFO메모리의 블록도.
제14도는 제13도에 도시된 FIFO메모리를 1개의 반도체기판에 포함해서 이루어지는 프로세서의 주요부를 도시한 블록도.
제15도a, b는 FIFO메모리에 있어서의 클리어처리의 1예를 도시한 설명도.
제16도는 본 발명에 관한 또 다른 실시예인 FIFO메모리의 블록도.
제17도는 제16도에 도시된 FIFO메모리를 포함하는 시스템의 1예를 도시한 블록도.
본 발명은 내부에 어드레스생성수단을 포함하는 반도체기억장치, 특히 데이타를 선입선출형식으로 일시적으로 축적하는 FIFO메모리(first-in first-out memory)에 관한 것으로써, 예를들면 통신제어용 LSI나 통신제어시스템에 적용해서 유효한 기술에 관한 것이다.
데이타의 처리속도나 전송속도가 다른 여러개의 장치나 기능모듈사이에서 데이타의 전송을 실행하는 경우에 그와 같은 능력이나 속도가 다른 것을 흡수하기 위해 FIFO메모리등을 버퍼메모리로써 이용할 수 있다. 예를들면 통신제어용 LSI에 있어서, 통신회선과의 사이에서 데이타를 송수신하는 회선제어부와 상위장치에 접속되는 버스인터페이스부사이에 송신FIFO메모리나 수신FIFO메모리가 배치되어 있다. 수신FIFO메모리는 회선제어부에서 수신된 데이타를 순차적으로 축적하고, 축적된 데이타는 버스인터페이스부를 거쳐서 상위장치가 순차적으로 리드하여 데이타전송이나 데이타처리에 이용하게 된다. 상기 송신FIFO메모리는 버스인터페이스부를 거쳐서 상위장치에서 공급되는 송신데이타를 순차적으로 축적하고, 축적된 데이타는 회선제어부에 의해 순차적으로 리드되어 송신에 이용하게 된다.
그런데, 상기 수신FIFO메모리나 송신FIFO메모리에 있어서는 수신데이타의 오버런방지등의 관점이외에 상위시스템과의 사이에서의 데이타전송을 위한 오버헤드저감이나 상위시스템의 데이타처리능력과의 관계에 의해 데이타의 축적수를 자유롭게 제어하거나 더나아가서는 데이타축적수를 실시간으로 상위장치에 알릴 필요성을 본 발명자는 발견하였다. 이때, FIFO메모리의 데이타축적수를 얻기 위한 기술로써는 예를들면 일본국 특허공개공보 소화62-225050호에 기재되어 있는 바와 같이 FIFO메모리에 라이트동작이 지시될때마다 인크리먼트되고, 리드동작이 지시될때마다 디크리먼트되는 전용카운터를 사용하는 기술이 제공되고 있다.
또, 데이타송수신에 있어서의 프레임 또는 문자는 8비트를 최소단위로 해서 전송되는 것이 보통이므로, 종래의 송신FIFO메모리나 수신FIFO메모리는 회선제어부와의 사이에서 데이타를 8비트 단위로 전송하도록 되어 있다. 종래는 이것에 따라서 송수신FIFO메모리와 버스인터페이스부도 각각 8비트의 버스 1개로 접속되어 있을 뿐이었다. 이와 같은 FIFO메모리의 버스구조에 대해서 기재된 문헌의 예로써는 미국 인텔사82586(1984년3월발간, LAN Components Users Manual 2. 13)이 있다.
그러나, FIFO메모리의 데이타축적수를 얻기 위해서 라이트할때마다 인크리먼트되고, 리드할때마다 디크리먼트되는 1개의 전용카운터를 사용한 것으로는 라이트와 리드가 동시에 발생한 경우에 인크리먼트동작과 디크리먼트동작은 정확하게 실행하기 곤란하여 축적데이타수를 취득하는데 정확성을 기대하기 곤란하다는 문제점이 있었다.
또한, 본 발명자는 상위장치에서 송신FIFO메모리로 전송되고 남은 송신데이타의 축적데이타수에 따라 상위장치에 송신데이타의 전송을 요구하는 기술에 대해서 검토한 결과, 종래는 축적데이타의 잔류수에 따라 데이타전송을 요구하는 것에만 착안하고, 상위장치에서 송신FIFO메모리로 전송되는 데이타수를 제어하는 점에 대해서는 전혀 고려되어 있지 않았다. 이 때문에 다채널을 지원하는 회선 제어부의 각 채널에 대응해서 다수의 송신FIFO메모리가 마련되어 있는 경우에는 동작상 다수의 송신FIFO메모리에서 상위장치로 데이타전송이 요구되는 경우가 있고, 그와 같은 시간에 송신FIFO메모리로의 전송요구의 네게이트조건을 자유롭게 설정할 수 없는 종래의 구성에서는 송신FIFO메모리로의 데이타전송을 위해 무제한으로 버스가 점유되어 상위장치에 의한 그 이외의 필요한 처리가 저지될 염려가 있었다.
또, 통신제어장치에 있어서의 버스인터페이스부가 16비트와 같은 비트구성의 버스를 거쳐서 상위장치와 접속할 수 있게 되어 있는 경우 상위장치와 버스인터페이스부 사이에서 데이타를 16비트단위로 수수해도 종래와 같이 송신FIFO메모리나 수신FIFO메모리와 그 버스인터페이스부가 각각 8비트버스로 접속되어 있으면 송신FIFO메모리나 수신FIFO메모리와 버스인터페이스사이에서는 여러 회로로 분할해서 데이타전송을 실행해야하고, 이것에 의해서 FIFO메모리와 상위장치사이에서의 데이타전송효율이 저하되고 마는 문제가 있었다.
또, FIFO메모리는 데이타를 선입선출형식으로 축적하기 위해서 리드카운터 및 라이트카운터와 같은 어드레스카운터를 마련하고, 메모리셀어레이에 대한 액세스어드레스는 그 리드카운터나 라이트카운터가 지시하도록 되어 있다. 예를들면 데이타가 비어 있는 상태에서 리드카운터와 라이트카운터의 값은 일치되어 데이타의 라이트동작이 지시될때마다 라이트카운터의 값이 인크리먼트되고, 데이타의 리드동작이 지시될때마다 리드카운터의 값이 인크리먼트된다. 이와 같은 FIFO메모리에 대해서 기재된 문헌의 예로써는 니케이 맥그로힐사 발행의 니케이일렉트로닉스제423호(1987년6월15일 발행, pp. 181∼188)가 있다. 그러나, 종래의 FIFO메모리는 데이타의 리드와 라이트의 순서가 리드카운터나 라이트카운터와 같은 내장어드레스카운터에 의해서 유일하게 결정되어 있으므로, 메모리셀에 대한 랜덤액세스의 요구에는 일체 응답할 수가 없다. 예를들면 시스템동작상 FIFO메모리의 도중에 저장되어 있는 데이타를 검사할 필요가 있는 경우에는 그 필요한 데이타가 순차적으로 출력될때까지 대기하지 않으면 안된다. 또, 시스템동작상의 에러등에 의해서 도중에 불필요한 데이타가 발생한 경우게 이것을 클리어하기 위해서는 이 불필요한 데이타를 모두 순차적으로 리드해서 리드카운터의 값을 갱신해주지 않으면 안되고, 그 때문에 조작하는데 시간이 걸러 데이타의 실시간처리를 방해하는 것으로 되는 것이 본 발명자에 의해 명확하게 되었다.
본 발명의 목적은 외부와의 데이타전송효율을 향상시킬 수 있는 FIFO형식의 반도체기억장치를 제공하는 것이다.
본 발명의 다른 목적은 축적데이타수를 정확하게 파악할 수 있는 FIFO형식의 반도체기억장치를 제공하는 것이다.
본 발명의 다른 목적은 축적데이타수를 자유롭게 설정할 수 있는 FIFO형식의 반도체기억장치를 제공하는 것이다.
본 발명의 다른 목적은 메모리셀에 대한 데이타의 리드나 라이트의 순서가 내장어드레스카운터에 의해 규정되어 있어도 랜덤액세스가 가능한 반도체기억장치를 제공하는 것이다.
본 발명의 또 다른 목적은 메모리셀에 대한 데이타의 리드나 라이트의 순서가 내장어드레스 카운터에 의해 규정되어 있어도 데이타의 클리어처리를 간단하게 실행할 수 있는 반도체기억장치를 제공하는 것이다.
본 발명의 상기 및 그외의 목적과 새로운 특징은 본 명세서의 기술 및 첨부도면으로 명확하게 될 것이다.
본원에서 개시되는 발명중 대표적인 것의 개요를 간단히 설명하면 다음과 같다.
즉, 데이타의 병렬리드비트수와 병렬라이트비트수가 서로 2이상의 정수배의 관계를 갖도록 데이타의 입력신호선과 출력신호선을 비트셀 어레이에 포함되는 각각의 비트셀에 접속해서 FIFO메모리를 구성하는 것에 의해 소정의 여러개의 비트를 1단위로 하는 데이타를 선입선출형식으로 축적하는 경우에 FIFO메모리의 한쪽의 포트는 다른쪽의 포트에 비해 여러배의 단위데이타를 종합해서 수수가 가능하게 되고, 이것에 의해서 외부와의 데이타전송효율의 향상을 달성한다. 예를들면, FIFO메모리가 통신제어장치의 회선제어부와 버스인터페이스부사이에 배치되는 경우, FIFO메모리는 옥텟단위로 회선제어부와 데이타를 수수하는 한편, 여러배의 단위로 버스인터페이스부와 데이타를 수수한다.
이때, 데이타의 병렬리드 비트수와 병렬라이트 비트수의 관계를 동일 또는 2이상의 정수배로 선택제어하는 제어회로를 마련해두는 것에 의해, FIFO메모리와 데이타전송을 실행하는 회로블럭과의 버스접속구성에 범용성을 얻을 수 있고, 더나아가서는 외부회로를 이용하지 않고 버스교체를 용이하게 실행할 수 있음과 동시에 FIFO메모리사용의 편리성을 향상시킨다.
수신FIFO메모리의 축적데이타수를 취득하는 연산수단은 라이트카운터의 값과 리드카운터의 값을 실질적으로 대소비교하는 비교기수단을 포함하고, 이 비교수단에 의한 비교결과에 따라 라이트카운터의 값, 리드카운터의 값 및 단위기억영역의 기억단수에 따라서 축적데이타수를 산출한다. 이때, 리드카운터와 라이트카운터는 별도로 동작해서 각각의 계수값을 연산수단에 부여하고, 이와 같이 해서 양쪽의 카운터에서 별도로 부여되는 값을 연산수단이 처리하는 것에 의해 동시에 리드와 라이트가 발생해도 축적데이타수를 정확하게 취득하는 것을 달성한다.
상기 리드카운터 및 라이트카운터에 계수값이 초기값으로 되돌려질때마다 반전하는 상태를 마련해서 양쪽 상태의 일치, 불일치를 비교수단으로 판정하도록 해서 리드카운터의 값과 라이트카운터의 값의 대소비교를 실행하게 하는 것에 의해 축적데이타수를 연산취득할 때 라이트카운터의 값이 일순해서 초기값으로 되돌려진 이후의 대소판별을 용이하게 하는 것을 달성한다.
FIFO메모리의 기억단수가 비교적 적은 경우에는 단위기억영역에 1대 1로 대응하는 플래그를 마련함과 동시에 라이트카운터가 지시하는 위치에 따른 플래그를 세트상태로 함과 동시에 라이트카운터가 지시하는 위치에 따른 플래그를 리세트상태로 제어하는 제어수단과 각 플래그의 상태에서 비트셀어레이의 축적데이타수를 취득하기 위한 논리게이트어레이를 마련하는 것에 의해서도 상기와 마찬가지로 축적데이타수를 정확하게 취득하는 것을 달성한다.
이와 같이 해서 취득된 축적데이타수는 그대로 외부에 부여할 수도 있지만, 내부에서 취득된 축적데이타수를 이용해서 내부에 축적된 데이타수를 자유롭게 설정할 수 있도록 하기 위해서는, 즉 내부에 축적된 데이타수와의 관계에서 외부에 데이타전송을 지시하는 타이밍을 자유롭게 설정할 수 있도록 하기 위해서는 외부로 데이타전송을 지시하기 위한 전송준비신호의 어서트조건을 임의로 설정할 수 있는 레지스터의 설정값과 내부에서 취득되는 축적데이타수의 비교결과에 따라 어서트타이밍을 결정하도록 전송준비신호를 생성하면 좋다.
이때, FIFO메모리로의 데이타전송에 의한 버스점유기간이 길어져서 불편한 경우에는 전송준비신호의 네게이트조건을 임의로 설정할 수 있는 레지스터의 설정값과의 비교에 따라 전송준비신호의 네게이트타이밍도 자유롭게 제어하도록 해도 좋다.
이와 같이 전송준비신호의 어서트조건을 임의로 설정할 수 있는 제어레지스터, 더나아가서는 그 네게이트조건을 임의로 설정할 수 있는 제어레지스터를 마련하고, 이 레지스터의 설정값과 내부에서 취득되는 축적데이타수의 비교결과에 따라서 전송준비신호의 어서트타이밍이나 네게이트타이밍을 결정하는 것에 의해 FIFO메모리의 기억단수를 외관상 가변으로 제어할 수 있다.
이것에 의해, FIFO메모리의 데이타를 처리하는 장치의 부하가 작을때에는 FIFO메모리의 축적데이타수를 상대적으로 적게 하거나 부하가 클때에는 축적데이타수를 많게 하는 것이 가능하게 되어 용이하게 시스템동작의 유연성을 향상시킬 수 있고, 또한 고속동작시등에 있어서는 데이타전송요구의 빈도를 감소해서, 즉 데이타전송제어를 기동시키기 위한 오버헤드를 감소해서 시스템의 스루풋을 용이하게 향상시킬 수 있다.
또, 데이타의 리드나 라이트의 순서가 내장어드레스카운터에 의해 규정되는 반도체기억장치에 있어서, 어드레스카운터의 출력어드레스신호와 외부에서 공급되는 어드레스신호를 선택하는 선택수단을 마련하고, 이 선택수단에 의해 외부어드레스신호를 액세스어드레스신호로써 채용할때 상기 어드레스카운터의 갱신동작을 억제 제어할 수 있게 하는 것에 의해, 어드레스카운터가 지시하는 어드레스를 그대로 유지하면서 그 어드레스이외의 임의의 어드레스에서 필요한 데이타를 얻을 수 있다. 이것에 의해, 데이타의 리드나 라이트의 순서가 내장어드레스카운터에 의해 규정된 반도체기억장치라도 랜덤액세스가 가능하게 된다.
또한, 데이타의 리드나 라이트의 순서를 규정하는 내장어드레스카운터의 값을 외부에서 리라이트가능하게 하는 것에 의해 저장데이타의 도중에 불필요한 데이타가 발생한 경우 어드레스카운터를 외부에서 강제적으로 리라이트하는 것에 의해 데이타의 클리어처리를 간단히 실행하는 것을 달성하는 것이다. 이와 같이 구성된 반도체기억장치에 있어서, 랜덤액세스나 불필요한 데이타를 클리어처리할때 어드레스카운터의 값을 리라이트하는 경우 그 어드레스카운터의 상태를 외부에서 알 필요가 있는 경우를 고려하면 외부데이타 입출력단자를 거쳐서 어드레스카운터의 값을 외부로 리드할 수 있게 해두는 것이 바람직하다.
이하, 본 발명의 구성에 대해서 실시예와 함께 설명한다.
(통신제어장치(1))
제1도a에 수신측의 구성이 도시됨과 동시에 제1도b에 송신측의 구성이 도시된 본 발명의 1실시예인 통신제어장치는 특히 제한되지 않지만 공지의 반도체집적회로의 제조기술에 의해 실리콘과 같은 1개의 반도체기판에 형성되어 있다.
이 통신제어장치(1)은 특히 제한되지 않지만 수신회선RL에서 직렬비트로 전송되는 수신데이타를 받아서 옥텟단위(8비트단위)로 직렬 또는 병렬 변환하는 수신회로(2)나 송신해야할 병렬데이타를 옥텟단위로 병렬/직렬변환해서 송신회선TL로 송출하는 송신회로(3)등을 포함한 회선제어부(4) 및 상위장치와 인터페이스되는 버스인터페이스부(5)를 갖는다. 이 버스인터페이스부(5)와 수신회로(2)사이에는 병렬로 변환된 수신데이타를 옥텟단위로 순차로 일시적으로 축적하는 수신FIFO메모리(6)이 배치되고, 또 버스인터페이스부(5)와 송신회로(3)사이에는 송신해야할 데이타를 옥텟단위로 순차로 일시적으로 축적하는 송신FIFO메모리(7)이 마련되어 있다. 또한, 회선제어부(4)에서 직렬/병렬변환되는 단위는 8비트길이에 한정되지 않고 유한길이에서 일정하면 몇비트라도 좋다. 또, 직렬 데이타열의 최후의 트레인은 단위비트수에 꼭 맞는 것이나 남는 것이라도 좋다. 직렬데이타의 최초 및 최후의 인식은 미리 정해진 순서에 따라 수신회로(2)가 실행한다.
마찬가지로 송신회로(3)은 송신데이타의 최초나 최후를 인식하기 위한 정보를 부가한다. 이들의 제어순서는 통신제어장치가 지원하는 프로토콜에 따라 결정되며, 그 구체적인 내용은 한정되지 않는다.
상기 버스인터페이스부(5)는 특히 제한되지 않지만 16비트의 데이타버스나 어드레스버스등을 포함하는 시스템버스(8)을 거쳐서 시스템전체의 제어를 담당하는 CPU(Central Processing Unit)(9), 싱글어드레싱모드나 이중모드로 데이타의 블록전송제어를 실행할 수 있는 DMAC(Direct Memory Access Controller)(10) 및 데이타의 저장영역이나 CPU(9)의 작업영역등에 이용되는 RAM(Random Access Memory)(11)등의 상위장치에 결합되어 있다. 버스인터페이스부(5)에는 상위장치의 CPU(9)나 DMAC(10)등이 버스마스터모듈에서 출력되는 버스제어신호, 예를들면 데이타전송방향을 나타내는 리드/라이트신호R/W, 시스템버스(8)에 포함되는 데이타버스상의 데이타가 유효인 것을 나타내는 데이타스트로브신호 DS, 16비트 데이타버스의 상위 8비트가 유효인 것을 나타내는 버스하이신호BH, 16비트 데이타버스의 하위 8비트가 유효인 것을 나타내는 버스로우신호BL등이 공급된다.
수신회로(2)가 데이타를 수신하면 그 수신데이타는 순차로 수신FIFO메모리(6)에 라이트된다. 수신FIFO메모리(6)의 축적데이타가 소정수에 도달하면 수신FIFO메모리(6)은 상위장치측에 수신FIFO메모리(6)의 리드액세스를 지시하는 전송준비신호, 예를들면 DMA전송요구신호DREQ1을 DMAC(10)의 소정채널로 어서트한다. 이것에 의해, DMAC(10)은 수신FIFO메모리(6)의 저장데이타를 싱글어드레싱모드로 RAM(11)로 전송제어한다. RAM(11)된 전송된 데이타는 CPU(9)에 의한 소정의 프로토콜처리등에 사용하게 된다.
송신회로(3)은 송신FIFO메모리(7)에 축적되어 있는 데이타를 소정의 순서에 따라서 순차적으로 송신하지만 송신FIFO메모리(7)에 남아 있는 데이타수가 감소되면 송신FIFO메모리(7)은 상위장치측으로 송신해야할 데이타의 라이트를 지시하기 위한 전송준비신호, 예를들면 DMA전송요구신호DREQ2를 DMAC(10)의 소정채널로 어서트한다. 이것에 의해, DMAC(10)은 RAM(11)에 저장되어 있는 송신해야할 데이타를 싱글어드레싱모드로 송신FIFO메모리(7)로 전송제어한다.
통신제어장치(1)에 내장되어 있는 각종 제어용 레지스터는 특히 제한되지 않지만 CPU(9)에 의해 직접 액세스가능하게 되어 있다. 즉, CPU(9)에서 버스인터페이스부(5)로 어드레스신호가 공급되면 그 어드레스신호를 디코드하는 레지스터선택회로가 이 어드레스에 대응하는 레지스터를 선택하고, 이와 같이 해서 선택된 레지스터에 대해서 CPU(9)가 제어데이타의 초기설정등을 실행한다.
(수신FIFO메모리(6))
상기 수신FIFO메모리(6)은 특히 제한되지 않지만 8비트분의 비트셀을 1단위로 하는 여러개의 단위기억영역RE0∼REm을 포함하는 비트셀어레이(13), 단위기억영역의 선택제어등을 실행하는 FIFO제어부(14), 비트셀어레이(13)에 축적되어 있는 데이타수를 연산하기 위한 연산부(15), 연산부(15)에서 취득된 축적데이타수를 이용해서 상기 DMA전송요구신호DREQ1을 생성하는 전송준비생성부(16)등을 포함한다.
상기 비트셀어레이(13)은 특히 제한되지 않지만 제2도에 도시된 바와 같이 비트셀BC를 n행 8열로 매트릭스 배치되어 이루어지고, 각 행8개의 비트셀이 각각 8비트분의 단위기억영역RE0∼REm을 구성한다.
비트셀어레이(13)으로의 데이타라이트동작에 있어서의 단위기억영역의 지정은 라이트카운터(20)이 실행하고, 그 계수데이타RCOUNTw를 라이트어드레스디코더(21)이 해독하는 것에 의해 1개의 단위기억영역이 선택된다. 데이타리드동작에 있어서의 단위기억영역의 지정은 리드카운터(22)가 실행하고, 그 계수데이타RCOUNTr을 리드어드레스디코더(23)이 해독하는 것에 의해 소정의 단위기억영역이 선택된다. 수신FIFO메모리(6)의 초기상태에 있어서, 상기 라이트카운터(20) 및 리드카운터(22)의 값은 0으로 초기화된다.
(수신FIFO메모리(6). . .라이트카운터(20))
라이트카운터(20)은 라이트할 수 있는 선두의 단위기억영역의 위치를 지시하고, 그 정보는 라이트어드레스디코더(21)을 향해서 출력되고 있다. 수신회로(2)에서 수신데이타가 비트셀어레이(13)으로 출력되면 이것에 따라서 수신회로(2)는 스트로브신호RWS를 어서트한다. 이 스트로브신호RWS가 게이트(25)를 통과하면 처음에 라이트어드레스디코더(21)이 그 스트로브신호RWS의 어서트타이밍에 동기하여 라이트카운터(20)의 값을 디코드해서 단위기억영역을 선택하고, 선택된 단위기억영역에 수신데이타가 라이트된다. 계속해서 그 스트로브신호RWS의 네게이트 타이밍에 동기해서 라이트카운터(20)이 인크리먼트되고, 이것에 의해 라이트카운터(20)은 다음의 라이트위치를 보유한다.
또, 모든 단위기억영역RE0∼REm에 리드하기전의 데이타가 라이트되어 있는 풀상태, 즉 비트셀어레이(13)의 축적데이타수가 단위기억영역의 수(기억단수)와 같게 되어 있는 상태에서는 더 이상 새로운 수신데이타를 라이트할 수 없다. 이와 같은 상태에서 라이트를 저지하기 위해 상기 연산부(15)에서 연산된 축적데이타수를 받아서 비트셀어레이(13)이 풀상태인지를 판정하는 풀상태검출회로(26)이 마련되고, 이 검출결과신호RFS가 상기 게이트(25)에 부여되는 것에 의해, 풀상태일때에는 스트로브신호RWS가 라이트카운터(20) 및 라이트어드레스디코더(21)로 전달되지 않도록 되어 있다.
(수신FIFO메모리(6). . . 리드카운터(22))
상기 리드카운터(22)는 리드할 수 있는 선두의 단위기억영역의 위치를 지시하고, 그 정보는 리드어드레스디코더(23)을 향해서 출력되고 있다. 상위장치에서 출력되는 데이타스트로브신호DS, 리드/라이트신호R/W, 버스로우신호BL, 버스하이신호BH에 의해 수신FIFO메모리(6)의 리드동작이 지시되면 버스인터페이스부(5)는 리드/라이트신호R/W가 하이레벨과 같은 리드동작 지시레벨로 되어 있을때 데이타스트로브신호DS가 하이레벨로 어서트되는 타이밍에 동기해서 스트로브신호RRS를 어서트한다. 이 어서트타이밍에 동기해서 리드어드레스디코더(23)이 리드카운터(22)의 값을 디코드해서 단위기억영역에서 수신데이타가 리드된다. 그리고, 상기 스트로브신호의 네게이트타이밍에 동기해서 카운터컨트롤러(27)이 리드카운터(22)를 인크리먼트하고, 이것에 의해 리드카운터(22)는 다음의 리드위치를 보유한다. 카운터컨트롤러(27)에 의한 리드카운터의 인크리먼트동작은 버스로우신호BL 및 버스하이신호BH의 레벨에 따른 상태신호LDS, HDS에 의해 결정된다. 즉, 버스로우신호BL 및 버스하이신호BH가 모두 하이레벨로 어서트되어 양쪽의 상태신호LDS, HDS가 하이레벨로 되어 있을 때, 즉 16비트데이타버스의 하위 8비트 및 상위 8비트의 양쪽을 사용해서 데이타전송을 실행하는 것이 지시되어 있는 상태에서 카운터컨트롤러(27)은 카운트클럭RRC1, RRC2를 사용해서 리드카운터(22)를 2회 인크리먼트(2카운트업) 한다. 상위 장치에 의해 16비트 단위로 데이타가 리드될때에는 동시에 2개의 단위기억영역이 선택되게 되어 있기 때문이다. 또, 버스로우신호BL과 버스하이신호BH중 어느 한쪽만 어서트되어 있을 때, 즉 16비트데이타버스의 하위 8비트 또는 상위 8비트중 어느 한쪽을 사용해서 데이타전송을 실행하는 것이 지시되어 있는 상태에서 카운터컨트롤러(27)은 카운트클럭RRC1 또는 RRC2의 한쪽을 사용해서 리드카운터를 1회 인크리먼트(1카운트업) 한다.
또, 단위기억영역E0∼Em에 저장되어 있는 데이타가 모두 리드된 빈상태, 즉 비트셀어레이(13)의 축적데이타수가 0인 상태에서는 더 이상 리드해야할 정보가 존재하지 않는다. 이와 같은 상태에 있어서, 리드를 저지하기 위해 상기 연산부(15)에서 연산된 축적데이타수를 받아서 비트셀어레이(13)이 빈상태인지 아닌지를 판정하는 빈상태 검출회로(29)가 마련되고, 이 검출결과 신호RES가 리드어드레스디코더(23) 및 카운터컨트롤러(27)에 부여되는 것에 의해 스트로브신호RRS의 변화가 무시되도록 되어 있다.
(수신FIFO메모리(6) . . . 2바이트병렬리드)
비트셀어레이(13)에서 1바이트(8비트)단위의 수신데이타를 병렬로 2개씩 리드할 수 있게 하기 위해 각 비트셀BC는 특히 제한되지 않지만 제8도에 도시된 바와 같이 D형 플립플롭과 같은 래치회로(30)의 데이타입력단자D에 선택스위치(31)을 거쳐서 1개의 라이트데이타선Dwi(i=0∼7)가 결합되고, 래치회로(30)의 데이타출력단자Q에는 각각 선택스위치(32), (33)을 거쳐서 상위 리드데이타선HDri와 하위 리드데이타선LDri가 공통접속되어 있다. 상기 선택스위치(31)의 선택단자는 라이트워드선Wwj(j=0∼m)에 결합되고, 선택스위치(32), (33)의 선택단자는 상위 리드워드선HWrj, 하위 리드워드선LWrj에 각각 접속되어 있다. 제2도에 도시된 바와 같이 상기 라이트워드선Wwj, 상위 리드워드선HWrj, 하위 리드워드선LWrj는 1개의 단위 기억영역을 구성하는 1행 8개의 비트셀BC에 공통접속되고, 또 라이트데이타선Dwi, 상위 리드데이타선HDri, 하위 리드데이타선LDri는 1열 n개의 비트셀BC에 공통 접속되어 있다.
상기 라이트데이타선Dw0∼Dw7은 제1도a에 도시된 8비트의 내부버스(35)를 거쳐서 수신회로(2)의 데이타출력단자에 결합된다. 상기 하위 리드데이타선LDr0∼LDr7은 제1도a에 도시된 8비트의 내부버스(36)을 거치고, 상위 리드데이타선HDr0∼HDr7은 8비트의 내부버스(37)을 거쳐서 각각 버스인터페이스부(5)에 접속되고, 이것을 통해서 시스템버스(8)의 16비트데이타버스의 하위 8비트, 상위 8비트에 각각 인터페이스가능하게 되어 있다.
상기 라이트워드선Ww0∼Wwm은 라이트카운터(20)에서 부여되는 계수값을 디코드해서 선택신호RSw0∼RSwm을 형성하는 라이트어드레스디코더(21)의 출력단자에 순차로 접속되고, 라이트카운터(20)에서 부여되는 계수값의 디코드결과에 따라서 소정의 1개가 하이레벨과 같은 선택레벨로 제어된다. 1개의 라이트워드선Wwj가 선택레벨로 되면 이것에 접속한 1행 8개의 비트셀BC로 이루어는 단위기억영역Ej에 라이트데이타선Dw0∼Dwm에서 부여되는 8비트의 수신데이타가 라이트된다. 라이트타이밍은 래치회로(30)의 클럭입력단자CK에 공급된 신호의 클럭변화 또는 레벨에 따라 결정되며, 예를들면 라이트워드선Wwj의 신호를 그대로 클럭입력단자CK에 부여해도 좋다.
상기 하위 리드워드선LWr0∼LWrm, 상위 리드워드선HWr0∼HWrm의 선택동작은 리드어드레스디코더(23)에서 출력되는 선택신호RSr0∼RSrm을 받는 선택제어회로(40)이 실행한다.
리드어드레스디코더(23)은 리드카운터(22)에서 부여되는 계수값의 디코드결과에 따라 선택신호RSr0∼RSrm중 1개를 하이레벨과 같은 선택레벨로 한다.
상기 선택제어회로(40)은 리드어드레스디코더(23)에 의한 1회의 선택동작에 의해 2바이트의 데이타를 병렬리드가능하게 제어하는 것으로써, 단위기억영역RE0∼REm마다 마련된 셀렉터RSEL0∼RSELm으로 구성된다.
상기 셀렉터RSEL0∼RSELm은 서로 같은 논리게이트를 포함하고, 예를들면 셀렉터RSELj는 제4도에 도시된 바와 같이 버스로우신호BL에 대응하는 버스로우상태신호LDS와 선택신호RSrj를 2입력으로 해서 논리곱을 취하며, 그 결과를 하위 리드워드선LWrj로 출력하는 AND게이트(40), 인버터(41)에서 출력되는 버스로우상태신호LDS의 반전레벨신호, 버스하이신호BH에 대응하는 버스하이상태신호HDS 및 선택신호RSrj를 3입력으로 해서 논리곱을 취하는 AND게이트(42), 상기 버스하이상태신호HDS, 버스로우상태신호LDS 및 전단의 선택신호RSrj-1을 3입력으로 해서 논리곱을 취하는 AND게이트(43), 상기 2개의 AND게이트(42), (43)의 출력을 2입력으로 해서 논리합을 취하여 그 결과를 상위 리드워드선HWrj로 출력하는 OR게이트(44)로 이루어진다.
수신데이타를 2바이트병렬리드할때 버스로우상태신호LDS와 버스하이상태신호HDS는 모두 하이레벨로 된다. 이때, 예를들면 리드카운터(22)가 단위기억영역REj를 지시하고, 이것에 의해 선택신호RSrj가 선택레벨로 되면 이 선택신호RSrj를 받는 셀렉터RSELj의 AND게이트(40)과 다음단의 셀렉터RSELj+1의 AND게이트(43)이 하이레벨의 신호를 출력하고, 그 결과 제6도a에 도시된 바와 같이 단위기억영영REj의 수신데이타가 상위 리드데이타선HDr0∼HDr7에 리드됨과 동시에 단위기억영역REj+1의 수신데이타가 하위 리드데이타선LDr0∼LDr7에 리드된다.
수신데이타를 바이트단위로 상위 리드데이타선HDr0∼HDr7에 리드할때에는 버스하이상태신호HDS가 하이레벨로 된다. 이때, 예를들면 리드카운터(22)가 단위기억영역REj를 지시하고 있으면 선택레벨의 선택신호RSrj등 모든 입력신호가 하이레벨로 되는 셀렉터RSELj의 AND게이트(42)가 하이레벨의 신호를 출력해서 제6도b에 도시된 바와 같이 단위기억영역REj에서 상위 리드데이타선HDr0∼HDr7로 1바이트의 데이타가 리드된다.
수신데이타를 바이트단위로 하위 리드데이타선LDr0∼LDr7에 리드할때에는 버스로우상태신호LDS가 하이레벨로 된다. 이때, 예를들면 리드카운터(22)가 단위기억영역REj를 지시하고 있으면 선택레벨이 선택신호RSrj등 모든 입력신호가 하이레벨로 되는 셀렉터RSELj의 AND게이트(40)이 하이레벨의 신호를 출력해서 제6도c에 도시된 바와 같이 단위기억영역REj에서 하위 리드데이타선LDr0∼LDr7로 1바이트의 데이타가 리드된다.
(수신FIFO메모리(6) . . . 축적데이타수연산)
상기 연산부(15)는 라이트카운터(20) 및 리드카운터(22)의 계수동작에 따라서 수신FIFO메모리(6)의 축적데이타수를 연산한다. 리드카운터(22) 및 라이트카운터(20)은 계수값RCOUNTr, RCOUNTw가 0의 리세트상태를 기점으로 리드, 라이트동작에 따라 카운트업을 반복하여 n-1(n은 수신FIFO메모리(6)의 기억단수, 즉 단위기억영역RE0∼REm의 수)까지 카운트업한 다음, 재차0으로 되돌아간다. 이 라이트카운터(20) 및 리드카운터(22)는 특히 제한되지 않지만 계수값RCOUNTw, RCOUNTr이 0으로 되돌아갈때마다 반전하는 스테이터스RSTSw, RSTSr을 갖는다. 이 스테이터스RSTSw, RSTSr은 초기상태에 있어서 0으로 리세트되고, 계수값RCOUNTw, RCOUNTr이 0으로 되돌아갈때마다 0에서 1, 1에서 0으로 반전한다. 예를들면 라이트카운터(20), 리드카운터(22)가 이진카운터로 구성되고, 기억단수n이 2의 누승과 같을 때 스테이터스RSTSw, RSTSr은 계수값RCOUNTr, RCOUNTw의 최상위비트의 다음의 상위 자리수비트에 해당한다.
제10도에는 라이트, 리드동작에 따라 변화하는 라이트카운터(20), 리드카운터(22)의 값의 천이상태의 1예가 도시된다. 제10도에 도시된 상태는 수신FIFO메모리(6)의 기억단수가 4단인 경우로써, 이때 라이트카운터(20), 리드카운터(22)는 각각 3비트의 이진 카운터에 의해 구성된다. 제10도에서 명백한 바와 같이 스테이터스RSTSw와 RSTSr이 일치하고 있는 경우에는 라이트카운터(20)의 계수값RCOUNTw에서 리드카운터(22)의 계수값RCOUNTr을 감산한 값이 축적데이타바이트수로 되고, 또 스테이터스RSTSw와 RSTSr이 불일치한 경우에는 라이트카운터(20)의 계수값RCOUNTw에 기억단수를 가산한 값에서 리드카운터(22)의 계수값RCOUNTr을 감산한 값이 축적데이타바이트수로 된다.
제1도a에 도시된 연산부(15)는 그와 같은 방법을 사용해서 축적데이타수를 연산하는 것으로써, 상기 스테이터스RSTSw와 RSTSr의 일치, 불일치를 판정하는 비교기(50), 이 비교기(50)에 의해 일치가 검출되었을때는 라이트카운터(20)의 계수값RCOUNTw를 그대로 출력하고, 불일치가 검출되었을때는 그 계수값RCOUNTw에 기억단수n을 가산해서 출력하는 가산기(51) 및 이 가산기(51)의 출력값에서 리드카운터(22)의 계수값을 감산해서 축적데이타수를 출력하는 감산기(52)로 구성된다. 또, 상기 비교기(50)은 2입력형식의 배타적OR게이트 또는 배타적NOR게이트등에 의해 구성할 수 있고, 전자의 경우에는 2입력의 일치로 로우레벨을 출력하고, 후자의 경우에는 2입력의 일치로 하이레벨을 출력한다.
제11도a, b에는 상기 가산기(51)을 정수가산회로로 구성하는 경우의 1예가 도시되어 있다. 제11도a에 도시된 구성은 산술논리연산기(53)의 한쪽의 입력측에 라이트카운터(20)의 계수값RCOUNTw가 공급되고, 다른쪽의 입력측에는 수신FIFO메모리(6)의 기억단수n을 지정하는 데이타가 멀티플랙서(54)를 거쳐서 선택적으로 공급가능하게 되어 있다. 상기 멀티플랙서(54)는 기억단수n지정데이타의 각 비트대용으로 2개의 AND게이트(55), (56)과 1개의 OR게이트(57)로 이루어지는 복합게이트를 갖고, 예를들면 배타적NOR게이트로 구성되어 있는 비교기(50)의 출력이 로우레벨일때에는 기억단수n의 지정데이타를 산술논리연산기(53)으로 출력하고, 하이레벨인 경우에는 전체 비트0을 공급한다. 제11도b에 도시된 구성은 제11도a의 구성에 대해서 멀티플랙서(54)를 산술논리연산기(53)의 출력측에 배치하고, 비교기(50)의 출력에 따라서 라이트카운터(20)의 계수값 또는 산술논리연산기(53)의 출력값을 선택하도록 되어 있다.
제11도c에는 산술논리연산기를 사용하지 않고 구성한 가산기(51)의 예가 도시된다. 이와 같은 구성은 수신FIFO메모리(6)의 기억단수가 2의 누승과 같을때에 라이트카운터(20)이 이진카운터로 구성되고, 그 라이트카운터(20)의 계수값RCOUNTw를 풀디코드해서 단위기억영역의 지정에 사용하는 경우에 적용되는 것으로써, 라이트카운터(20)에서 출력되는 계수값RCOUNTw의 최상위비트의 다음에 상위 자리수비트Cu를 추가하고, 비교기(50)의 출력에 따라서 그 추가비트Cu의 값을 멀티플랙서(58)에 의해 비트0 또는 비트1로 선택제어하도록 되어 있다. 이 구성에 있어서, 추가비트Cu에 비트1을 부여하는 것은 계수값RCOUNTw에 기억단수를 가산한 것과 동일하다. 따라서, 산술논리연산기를 사용하는 경우에 비해 가산기(51)의 구성을 간단하게 할 수 있다. 또, 멀티플랙서(58)은 2개의 AND게이트(59), (60)과 1개의 OR게이트(61)로 이루어지고, 예를들면 배타적NOR게이트로 구성되어 있는 비교기(50)의 출력이 로우레벨일때는 추가비트Cu에 1을 부여하고, 하이레벨인 경우에는 0을 부여한다. 감산기(52)에 있어서의 추가비트Cu의 의의는 그 감산기(52)의 회로구성에 의해 다르게 되고, 예를들면 캐리로써 이용할 수도 있다.
(수신FIFO메모리(6) . . . 전송준비제어)
상기 전송준비생성부(16)은 특히 제한되지 않지만 DMA전송요구신호DREQ1의 어서트타이밍을 결정하기 위한 정보가 CPU(9)에 의해서 임의로 설정할 수 있는 제어레지스터(70), 상기 연산부(15)에서 출력되는 축적데이타수가 제어레지스터(70)의 설정값을 초월했는지 하지않았는지를 판정하는 비교기(71), 상기 빈상태검출회로(29) 및 비교기(71)의 출력이 세트단자S에 부여됨과 동시에 빈상태검출회로(29)의 출력이 리세트단자R에 부여되고, 출력단자Q에서 DMA전송요구신호DREQ1을 출력하는 세트, 리세트형의 RS플립플롭(72)를 포함해서 구성된다. 수신FIFO메모리(6)의 축적데이타수가 제어레지스터에 설정되어 있는 값을 초월하면 비교기(71)의 출력에 의해 RS플립플롭(72)가 세트상태로 되고, 이것에 의해서 DMA전송요구신호DREQ1이 어서트된다. DMA컨트롤러(10)이 이것을 받으면 버스인터페이스부(5)를 거쳐서 수신FIFO메모리(6)을 액세스하여 순차로 싱글어드레싱모드에서 수신데이타를 리드해서 전송한다. 이 데이타리드에 의해 축적데이타수가 0으로 되면 빈상태검출회로(29)가 RS플립플롭(72)를 리세트해서 DMA전송요구신호DREQ1이 네게이트되면 DMAC(10)은 해당 데이타전송 채널에 있어서의 데이타전송제어를 중단하고, 지금까지의 데이타전송단어수가 필요한 단어수에 도달하고 있지 않은 경우에는 재차 DMA전송요구신호DREQ1이 어스트되는 것을 기다려서 나머지의 데이타전송제어를 재개하게 된다. DMA전송요구신호DREQ1의 어서트타이밍은 제어레지스터(70)에 설정된 조건값에 따라 결정된다. 따라서, 제어레지스터(70)의 설정값을 변경하는 것에 의해 외관상 수신FIFO메모리(6)의 기억단수가 가변으로 되고, 이것에 의해서 상위시스템의 데이타처리능력 또는 데이타처리상황에 따라 시스템의 동작효율을 적합하게 하거나 더나아가서는 DMA전송기동을 위한 오버헤드를 적게 할 수 있다.
(송신FIFO메모리(7))
송신FIFO메모리(7)은 특히 제한되지 않지만 8비트분의 비트셀을 1단위로 하는 여러개의 단위기억영역을 포함하는 비트셀어레이(113), 단위기억영역의 선택제어등을 실행하는 FIFO제어부(114), 비트셀어레이(113)에 축적되어 있는 데이타수를 연산하기 위한 연산부(115), 연산부(115)에서 취득된 축적데이타수를 이용해서 상기 DMA전송요구신호DREQ2를 생성하는 전송준비생성부(116)등을 포함한다.
상기 비트셀어레이(113)은 특히 제한되지 않지만 수신FIFO메모리(6)과 마찬가지로 비트셀BC를 n행 8열로 매트릭스 배치해서 이루어지고, 각 행8개의 비트셀이 각각 8비트분의 단위기억영역TE0∼TEm을 구성한다.
비트셀어레이(113)으로의 데이타라이트동작에 있어서의 단위기억영역의 지정은 라이트카운터(120)이 실행하고, 그 계수데이타TCOUNTw를 라이트어드레스디코더(121)이 해독하는 것에 의해 소정의 단위기억영역이 선택된다. 데이타리드동작에 있어서의 단위기억영역의 지정은 리드카운터(122)가 실행하고, 그 계수데이타TCOUNTr을 리드어드레스디코더(123)이 해독하는 것에 의해 1개의 단위기억영역이 선택된다. 송신FIFO메모리(7)의 초기상태에서 상기 라이트카운터(120) 및 리드카운터(122)의 값은 0으로 초기화된다.
(송신FIFO메모리(7) . . . 라이트카운터(120))
상기 라이트카운터(120)은 라이트가능한 선두의 단위기억영역의 위치를 지시하고, 그 정보는 라이트어드레스디코더(121)을 향해서 출력되고 있다. 상위장치에서 출력되는 데이타스트로브신호DS, 리드/라이트신호R/W, 버스로우신호BL, 버스하이신호BH에 의해 송신FIFO메모리(7)의 라이트동작이 지정되면 버스인터페이스부(5)는 리드/라이트신호R/W가 로우레벨과 같은 라이트동작 지시레벨로 되어 있을 때 데이타스트로브신호DS가 하이레벨로 어서트되는 타이밍에 동기해서 스트로브신호TWS를 어서트한다. 이 어서트타이밍에 동기해서 라이트어드레스디코더(121)이 라이트카운터(120)의 값을 디코드해서 단위기억영역을 선택하고, 선택된 단위기억영역으로 송신해야할 데이타가 라이트된다. 그리고, 상기 스트로브신호TWS의 네게이트타이밍에 동기해서 카운터컨트롤러(127)이 라이트카운터(120)을 인크리먼트하고, 이것에 의해 라이트카운터(120)은 다음의 라이트위치를 보유한다. 카운터컨트롤러(127)에 의한 라이트카운터(120)의 인크리먼트동작은 수신FIFO메모리(6)과 마찬가지로 버스로우신호BL 및 버스하이신호BH의 레벨에 따른 상태신호LDS, HDS에 의해 결정된다. 즉, 버스로우신호BL 및 버스하이신호BH가 모두 하이레벨로 어서트되어 양쪽의 상태신호LDS, HDS가 하이레벨로 되어 있을 때, 즉 16비트 데이타버스의 하위 8비트 및 상위 8비트의 양쪽을 사용해서 데이타전송을 실행하는 것이 지시되어 있는 상태에서 카운터컨트롤러(127)은 카운트클럭TWC1, TWC2를 사용해서 라이트카운터(120)을 2회 인크리먼트(2카운트업)한다. 상위장치에 의해 16비트단위로 데이타가 라이트될때에는 동시에 2개의 단위기억영역이 선택되도록 되어 있기 때문이다. 또, 버스로우신호BL과 버스하이신호BH중 어느 한쪽만 어서트되어 있을 때, 즉 16비트데이타버스의 하위 8비트 또는 상위 8비트중 어느 한쪽을 사용해서 데이타전송을 실행하는 것이 지시되어 있는 상태에서 카운터컨트롤러(127)은 카운트클럭TWC1 또는 TWC2중 어느 한쪽을 사용해서 라이트카운터(120)을 1회 인크리먼트(카운트업) 한다.
또, 모든 단위기억영역TE0∼TEm으로 송신해야할 데이타가 라이트된 풀상태, 즉 비트셀어레이(113)의 축적데이타수가 단위기억영역의 수와 동일하게 되어 있는 상태에서는 더 이상 새로 송신해야할 데이타를 라이트할 수가 없다. 이와 같은 상태에서 라이트를 저지하기 위해 상기 연산부(115)에서 연산된 축적데이타수를 받아서 비트셀어레이(113)이 풀상태인지 아닌지를 판정하는 풀상태 검출회로(126)이 마련되고, 이 검출결과신호TES가 라이트어드레스디코더(121) 및 카운터컨트롤러(127)에 부여되는 것에 의해 스트로브신호TWS의 변화가 무시되도록 되어 있다.
(송신FIFO메모리(7)) . . . 리드카운터(122))
리드카운터(122)는 리드가능한 선두의 단위기억영역의 위치를 지시하고, 그 정보는 리드어드레스디코더(123)을 향해서 출력되고 있다. 송신회로(3)은 데이타를 송신하고자할 때 스트로브신호TRS를 어서트한다. 이 스트로브신호TRS가 게이트(125)를 통과하면 최초에 리드어드레스디코더(123)이 그 스트로브신호TRS의 어서트타이밍에 동기해서 리드카운터(122)의 값을 디코드하고, 이 디코드결과에 의해서 선택된 단위기억영역에서 송신해야할 데이타가 리드된다. 계속해서 그 스트로브신호TRS의 네게이트타이밍에 동기해서 리드카운터(122)가 인크리먼트되고, 이것에 의해 리드카운터(122)는 다음의 리드 위치를 보유한다.
또, 모든 단위기억영역TE0∼TEm에서 데이타가 리드된 빈상태에서는 더 이상 새로운 송신해야할 데이타를 리드할 수가 없다.
이와 같은 상태에 있어서 송신FIFO메모리(7)의 리드동작, 더나아가서는 송신기(3)에 의한 송신동작을 저지하기 위해 상기 연산부(115)에서 연산된 축적데이타수를 받아서 비트셀어레이(113)이 빈상태인지를 판정하는 빈상태검출회로(129)가 마련되고, 이 검출결과신호TES가 상기 게이트(125)에 부여되는 것에 의해 빈상태일때에는 스트로브신호TRS가 리드카운터(122) 및 리드어드레스디코더(123)에 전달되지 않게 되어 있다. 또, 빈상태 검출회로(129)에서 출력되는 신호TES와 실질적으로 동일한 신호가 송신회로(3)에도 부여되도록 되어 있고, 송신FIFO메모리(7)의 빈상태에 따라서 송신회로(3)의 동작도 디스에이블되도록 되어 있다.
(송신FIFO메모리(7) . . . 2바이트병렬라이트)
비트셀어레이(113)에 1바이트(8비트)단위의 송신데이타를 병렬로 2개씩 라이트가능하게 하기 위해 각 비트셀BC는 특히 제한되지 않지만 제9도에 도시한 바와 같이 D형 플립플롭과 같은 래치회로(130)의 데이타출력단자Q에 선택스위치(131)을 거쳐서 1개의 리드데이타선Dri(i=0∼7)가 결합되고, 래치회로(130)의 데이타입력단자D에는 각각 선택스위치(132), (133)을 거쳐서 상위 라이트데이타선HDwi와 하위 라이트데이타선LDwi가 공통 접속되어 있다. 상기 선택스위치(131)의 선택단자는 리드워드선Wrj(j=0∼m)에 결합되고, 선택스위치(132), (133)의 선택단자는 상위 라이트워드선HWwj, 하위 라이트워드선LWwj에 각각 접속되어 있다. 제3도에 도시된 바와 같이 상기 리드워드선Wrj, 상위 라이트워드선HWwj, 하위 라이트워드선LWwj는 1개의 단위 기억영역을 구성하는 1행 8개의 비트셀BC에 공통접속되고, 또 리드데이타선Dri, 상위 라이트데이타선HDwi, 하위 라이트데이타선LDwi는 1열 n개의 비트셀BC에 공통접속되어 있다. 상기 리드데이타선Dr0∼Dr7은 제1도b에 도시된 8비트의 내부버스(135)를 거쳐서 송신회로(3)의 데이타입력단자에 결합된다. 상기 하위 라이트데이타선LDw0∼LDw7은 제1도b에 도시된 8비트의 내부버스(36)을 거치고, 또 상위 라이트데이타선HDw0∼HDw7은 8비트의 내부버스(37)을 거쳐서 각각 버스인터페이스부(5)에 접속되고, 이것을 통해서 시스템버스(8)에 포함되는 16비트 데이타버스의 하위 8비트, 상위 8비트에 각각 인터페이스가능하게 되어 있다.
상기 리드워드선Wr0∼Wrm은 리드카운터(122)에서 부여되는 계수값을 디코드해서 선택신호TSr0∼TSrm을 형성하는 리드어드레스디코더(123)의 출력단자에 순차로 접속되고, 리드카운터(122)에서 부여되는 계수값의 디코드결과에 따라 소정의 1개가 하이레벨과 같은 선택레벨로 제어된다. 1개의 리드워드선Wrj가 선택레벨로 되면 이것에 접속하는 1행 8개의 비트셀BC로 이루어지는 단위기억영역TEj에서 8비트의 송신데이타가 리드데이타선Dr0∼Dr7로 출력된다.
상기 하위라이트워드선LWw0∼LWwm과 상위 라이트워드선HWw0∼HWwm의 선택동작은 라이트어드레스디코더(121)에서 출력되는 선택신호TSw0∼TSwm을 받는 선택제어회로(140)이 실행한다. 라이트어드레스디코더(121)은 라이트카운터(120)에서 부여되는 계수값의 디코드결과에 따라 선택신호TSw0∼TSwm중 1개를 하이레벨과 같은 선택레벨로 한다.
상기 선택제어회로(140)은 라이트어드레스디코더(121)에 의한 1회의 선택동작으로 2바이트의 데이타를 병렬라이트가능하게 제어하는 것으로써, 단위기억영역TE0∼TEm마다 마련된 셀렉터TSEL0∼TSELm으로 구성된다.
상기 셀렉터TSEL0∼TSELm은 서로 동일한 논리게이트를 포함하고, 예를들면 셀렉터TSELj는 제5도에 도시된 바와 같이 버스로우신호BL에 대응하는 버스로우상태신호LDS와 선택신호TSrj를 2입력해서 논리곱을 취하여 그 결과를 하위라이트워드선LWwj로 출력하는 AND게이트(140), 인버터(141)에서 출력되는 버스로우상태신호LDS의 반전레벨신호와 버스하이신호BH에 대응하는 버스하이상태신호HDS와 선택신호TSrj를 3입력해서 논리곱을 취하는 AND게이트(142), 상기 버스하이상태신호HDS와 버스로우상태신호LDS와 전단의 선택신호TSri1을 3입력해서 논리곱을 취하는 AND게이트(143), 상기 2개의 AND게이트(142), (143)의 출력을 2입력해서 논리합을 취하여 그 결과를 상위 리드워드선HWwi로 출력하는 OR게이트(144)로 이루어진다.
수신데이타를 2바이트병렬 라이트할때 버스로우상태신호LDS 및 버스하이상태신호HDS는 모두 하이레벨로 된다. 이때, 예를들면 라이트카운터(120)이 단위기억영역TEj를 지시하고, 이것에 의해서 선택신호TSrj가 선택레벨로 되면 이 선택신호TSrj를 받는 셀렉터TSELj의 AND게이트(140)과 다음단의 셀렉터TSELj+1의 AND게이트(143)이 하이레벨의 신호를 출력하고, 이 결과 제7도a에 도시된 바와 같이 상위 라이트데이타선HDw0∼HDw7에 서 1바이트의 송신데이타가 단위기억영역TEj로 라이트됨과 동시에 하위 라이트데이타선LDw0∼LDw7에서 또 1바이트의 송신데이타가 다음의 단위기억영역에 병렬적으로 라이트된다.
송신데이타를 바이트단위로 상위 라이트데이타선HDw0∼HDw7에서 라이트할때는 버스하이상태신호HDS가 하이레벨로 된다. 이때, 예를들면 라이트카운터(120)이 단위기억영역TEj를 지시하고 있으면 선택레벨의 선택신호TSrj등 모든 입력신호가 하이레벨로 되는 셀렉터TSELj의 AND게이트(142)가 하이레벨의 신호를 출력해서 제7도b에 도시된 바와 같이 단위기억영역TEj에 상위 라이트데이타선HDw0∼HDw7을 거쳐서 1바이트의 데이타수가 라이트된다.
송신데이타를 바이트단위로 하위 라이트데이타선LDw0∼LDw7에서 라이트할때는 버스로우상태신호LDS가 하이레벨로 된다. 이때, 예를들면 라이트카운터(120)이 단위기억영역TEj를 지시하고 있으면 선택레벨이 선택신호TSrj등 모든 입력신호가 하이레벨로 되는 셀렉터TSELj의 AND게이트(140)이 하이레벨의 신호를 출력해서 제7도c에 도시된 바와 같이 단위기억영역TEj에 하위 라이트데이타선LDw0∼LDw7을 거쳐서 1바이트의 데이타가 라이트된다.
(송신FIFO메모리(7) . . . 축적데이타수연산)
상기 연산부(115)는 라이트카운터(120) 및 리드카운터(122)의 계수이동에 따라서 송신FIFO메모리(7)의 축적데이타수를 연산한다. 리드카운터(122) 및 라이트카운터(120)은 계수값TCOUNTr, TCOUNTw가 0의 리세트상태를 기점으로 리드, 라이트동작에 따라 카운트업을 반복하여 n-1(n은 송신FIFO메모리(7)의 기억단수, 즉 단위기억영역TE0∼TEm의 수)까지 카운트업한후 재차 0으로 되돌아간다. 이 라이트카운터(120) 및 리드카운터(122)는 특히 제한되지 않지만 계수값TCOUNTw, TCOUNTr이 0으로 되돌아갈때마다 반전하는 스테이터스TSTSw, TSTSr을 갖는다. 이 스테이터스TSTSw, TSTSr은 초기상태에 있어서 0으로 리세트되고, 계수값TCOUNTw, TCOUNTr이 0으로 되돌아갈때마다 0에서 1, 1에서 0으로 반전한다. 예를들면, 라이트카운터(120), 리드카운터(122)가 이진카운터로 구성되고, 기억단수n이 2의 누승과 같을 때 스테이터스TSTSw, TSTSr은 계수값TCOUNTr, TCOUNTw의 최상위비트의 다음의 상위자리수비트에 해당한다.
라이트, 리드동작에 따라 변화하는 라이트카운터(120), 리드카운터(122)의 값의 천이상태는 기본적으로 제10도에 도시된 상태와 마찬가지로써, 스테이터스TSTSw와 TSTSr이 일치하고 있는 경우에는 라이트카운터(120)의 계수값TCOUNTw에서 리드카운터(122)의 계수값RTCOUNTr을 감산한 값이 축적데이타바이트수로 되고, 또 스테이터스TSTSw와 TSTSr이 불일치한 경우에는 라이트카운터(120)의 계수값TCOUNTw에 기억단수를 가산한 값에서 리드카운터(122)의 계수값TCOUNTr을 감산한 값이 축적데이타바이트수로 된다.
제1도b에 도시된 연산부(115)는 그와 같은 방법을 사용해서 축적데이타수를 연산하는 것으로써, 상기 스테이터스TSTSw와 TSTSr의 일치, 불일치를 판정하는 비교기(150), 이 비교기(150)에 의해 일치가 검출되었을때는 라이트카운터(120)의 계수값TCOUNTw를 그대로 출력하고, 불일치가 검출되었을때는 그 계수값TCOUNTw에 기억단수n을 가산해서 출력하는 가산기(151) 및 이 가산기(151)의 출력값에서 리드카운터(122)의 계수값을 감산해서 축적데이타수를 출력하는 감산기(152)로 구성된다. 또, 상기 비교기(150)이나 가산기(151)에는 상기 수신FIFO메모리(6)에서 설명한 것과 같은 회로구성을 사용할 수가 있다.
(송신FIFO메모리(7) . . . 전송준비제어)
상기 전송준비생성부(116)은 특히 제한되지 않지만 DMA전송요구신호DREQ2의 어서트타이밍을 결정하기 위한 정보가 CPU(9)에 의해 임의로 설정할 수 있는 제어레지스터(170), DMA전송요구신호DREQ2의 네게이트타이밍을 결정하기 위한 정보가 CPU(9)에 의해 임의로 설정할 수 있는 제어레지스터(173), 상기 연산부(115)에서 출력되는 축적데이타수가 제어레지스터(170)의 설정값이하로 되었는지 아닌지를 판정하는 비교기(171), 상기 빈상태검출회로(129)와 상기 연산부(115)에서 출력되는 축적데이타수가 제어레지스터(173)의 설정값 이상으로 되었는지 아닌지를 판정하는 비교기(174) 및 비교기(171)의 출력이 세트단자S에 부여됨과 동시에 비교기(174)의 출력이 리세트단자R에 부여되고, 출력단자Q에서 DMA전송요구신호DREQ2를 출력하는 세트, 리세트형의 RS플립플롭(172)를 포함해서 구성된다. 상기 제어레지스터(170)에는 DMA전송요구신호DREQ2의 어서트조건으로 되는 데이타축적수가 설정되고, 다른쪽의 제어레지스터(173)에는 그 신호DREQ2의 네게이트조건으로 되는 데이타축적수가 설정된다. 송신FIFO메모리(7)의 축적데이타수가 제어레지스터(170)에 설정되어 있는 값이하일때에는 비교기(171)의 출력에 의해 RS플립플롭(172)가 세트상태로 되고, 이것에 의해서 DMA전송요구신호DREQ2가 어서트된다. DMA컨트롤러(10)이 이것을 받으면 버스인터페이스부(5)를 거쳐서 송신FIFO메모리(7)을 라이트액세스하여 순차로 싱글어드레싱모드에서 송신데이타를 RAM(11)에서 송신FIFO메모리(7)로 전송한다.
이것에 의해 송신FIFO메모리(7)의 축적데이타수가 제어레지스터(173)에 설정되어 있는 네게이트조건 이상으로 되면 비교기(174)의 출력에 의해 RS플립플롭(172)가 리세트되어 DMA전송요구신호DREQ2가 네게이트된다. DMA전송요구신호DREQ2가 네게이트되면 DMAC(10)은 해당 데이타전송채널에 있어서의 데이타전송제어를 중단하여 시스템버스(8)에 대한 버스권을 일단 포기한다. 그 사이에 송신기(3)은 축적데이타수가 0으로 되지않는한 송신FIFO메모리(7)의 저장데이타를 순차로 송신할 수가 있다. DMA전송요구신호DREQ2의 어서트타이밍이나 네게이트타이밍은 제어레지스터(170), (173)에 설정된 조건값에 따라서 결정된다. 따라서, 제어레지스터(170), (173)의 설정값을 변경하는 것에 의해 외관상 송신FIFO메모리(7)의 기억단수가 가변으로 되고, 이것에 의해서 상위 시스템의 데이타처리능력 또는 데이타처리상황에 따라서 시스템의 동작효율을 최적화하거나 더나아가서는 DMA전송기동을 위한 오버헤드를 적게할 수 있게 된다.
(송신FIFO메모리(7)에 의해서 얻어지는 효과)
상기 수신FIFO메모리(6), 송신FIFO메모리(7)에 의하면 다음의 효과를 얻는다.
수신FIFO메모리(6)과 송신FIFO메모리(7)은 1문자의 단위로 되는 8비트단위로 회선제어부(4)와 데이타를 수수하는 한편, 각각 8비트의 내부버스(36), (37)에 의해 16비트단위로 데이타를 버스인터페이스부(5)와 수수할 수 있게 되어 있으므로, 수신데이타나 송신해야할 데이타를 CPU(9)등의 상위장치와의 사이에서 고속으로 데이타를 전송할 수 있다.
수신FIFO메모리(6)의 각 비트셀BC에는 1개의 라이트데이타선과 2개의 리드데이타선이 접속되고, 송신FIFO메모리(7)의 각 비트셀BC에는 2개의 라이트데이타선과 1개의 리드데이타선이 접속되어 버스인터페이스부(5)를 거치는 2바이트병렬 리드시에는 수신FIFO메모리(6)의 리드카운터(22)가 지시하는 단위기억영역과 다음의 단위기억영역을 선택제어회로(40)이 선택하고, 또 버스인터페이스부(5)를 거치는 2바이트병렬라이트시에는 송신FIFO메모리(7)의 라이트카운터(120)이 지시하는 단위기억영역과 다음의 단위기억영역을 선택제어회로(140)이 선택하도록 되어 있으므로, 8비트폭의 단위기억영역을 갖는 FIFO메모리(6), (7)을 비교적 간단한 논리에 의해 16비트의 시스템버스(8)과 인터페이스시킬 수 있다.
선택제어회로(40), (140)은 상위 장치측으로 부터의 버스제어신호로써의 버스로우신호BL과 버스하이신호BH에 따라서 2바이트단위의 병렬액세스와 1바이트단위의 액세스를 전환제어할 수 있는 논리를 포함하고 있으므로, 상위 CPU(9)의 상위에 의한 버스교체를 외부회로를 이용하지 않고 용이하게 실행할 수 있음과 동시에 FIFO메모리의 사용상의 편리성을 향상시킬 수 있다.
수신FIFO메모리(6)(송신FIFO메모리(7))의 축적데이타수를 취득하는 연산부(15), (115)는 라이트카운터(20), (120)의 값과 리드카운터(22), (122)의 값을 실질적으로 대소비교하는 비교기(50), (150)을 포함하고, 이 비교기(50), (150)에 의한 비교결과에 따라 라이트카운터(20), (120)의 값, 리드카운터(22), (122)의 값 및 단위기억영역RE0∼REm, TE0∼TEm의 기억단수에 따라서 축적데이타수를 산출한다. 이때, 리드카운터(22), (122)은 별도로 동작해서 각각의 계수값을 연산부(15), (115)에 부여하고, 이와 같이 해서 쌍방의 카운터에서 각각 부여되는 값을 연산부(15), (115)가 처리하는 것에 의해 동시에 리드와 라이트가 발생해도 축적데이타수를 정확하게 취득할 수가 있다.
상기 리드카운터(22), (122) 및 라이트카운터(20), (120)에 계수값이 초기값으로 되돌려질때마다 반전하는 스테이터스RSTSr, RSTSw(TSTSr, TSTSw)를 마련하고, 쌍방의 스테이터스의 일치, 불일치를 비교기(50), (150)으로 판정하도록 해서 리드카운터(22), (122)의 값과 라이트카운터(20), (120)의 값의 대소를 비교하도록 하는 것에 의해 축적데이타수를 연산취득할때 라이트카운터(20), (120)의 값이 일순해서 초기값으로 되돌려진 다음의 대소판별을 간단한 구성으로 용이하게 실행할 수 있다.
상위 장치에 데이타전송을 지시하기 위한 DMA전송요구신호DREQ1(DREQ2)과 같은 전송준비신호의 어서트조건을 임의로 설정할 수 있는 제어레지스터(70), (170), 더나아가서는 그 네게이트조건을 임의로 설정할 수 있는 제어레지스터(173)을 마련하고, 이 레지스터의 설정값과 내부에서 취득된 축적데이타수의 비교결과에 따라서 전송준비신호의 어서트타이밍이나 네게이트타이밍을 결정하는 것에 의해 FIFO메모리(6), (7)의 기억단수를 외관상 가변으로 제어할 수 있다. 이 효과에 의해 시스템동작상 CPU(9)등의 상위장치의 부하가 적을때에는 FIFO메모리(6), (7)의 축적데이타수를 상대적으로 적게하거나 부하가 클때에는 축적데이타수를 많게할 수 있게 되어 용이하게 시스템동작의 유연성을 향상시킬 수 있다.
특히, 송신FIFO메모리(7)에 있어서, 전송준비신호의 네게이트조건을 가변으로 제어할 수 있도록 해두는 것에 의해 시스템상승시등에 다채널의 각 채널에 대응하는 여러개의 송신FIFO메모리에 차례로 송신데이타를 전송할때 네게이트조건으로 되는 데이타수를 비교적 작게 해두면 송신FIFO메모리로의 데이타전송에 의한 버스점유기간이 길어지고 마는 불합리한 면을 용이하게 해소할 수 있다.
(플래그이용에 의한 축적데이타수의 취득)
FIFO메모리의 축적데이타수는 가감산을 실행하는 제1도a, b의 예이외에 제12도의 구성에 의해서도 얻을 수 있다. 제12도에는 4단의 단위기억영역E0∼E3을 갖는 FIFO메모리가 1예로써 도시되어 있다. 라이트카운터(200)은 라이트를 실행해야할 단위기억영역을 지시하는 값을 순차로 보유하고, 이 라이트카운터(200)의 값이 라이트어드레스디코더(201)에서 해독되는 것에 따라 그 디코더(201)에서 출력되는 선택신호Sw0∼Sw3에 의해서 1개의 단위기억영역이 선택되고, 이것에 데이타가 라이트된다. 또, 리드카운터(202)는 리드해야할 단위기억영역을 지시하는 값을 순차로 보유하고, 이 리드카운터(202)의 값이 리드어드레스디코더(203)에서 해독되는 것에 따라 그 디코더(203)에서 출력되는 선택신호Sr0∼Sr3에 의해서 하나의 단위기억영역이 선택되고, 이 단위기억영역에서 데이타가 리드된다. 또, 라이트카운터(200)이나 리드카운터(202)의 인크리먼트동작등은 제1도a, b의 설명과 마찬가지로 제어된다.
이와 같은 FIFO메모리의 축적데이타수를 취득하기 위해 단위기억영역E0∼E3에 1대1대응하는 플래그FLG0∼FLG3을 마련하고, 각 플래그FLG0∼FLG3을 상기 라이트어드레스디코더(201)의 출력신호Sw0∼Sw3으로 세트하고, 리드어드레스디코더(203)의 출력신호Sr0∼Sr3으로 리세트한다. 즉, 데이타의 라이트가 실행되는 단위기억영역에 대응하는 플래그가 세트상태로 제어되고, 그후 데이타가 리드된 단위기억영역에 대응하는 플래그가 리세트된다. 따라서, 축적데이타수는 세트상태인 플래그의 수에 따른다. 제12도에 있어서는 상기 플래그FLG0∼FLG3이 세트, 리세트형의 RS플립플롭에 의해 구성되고, 세트단자S에는 선택신호Sw0∼Sw3이 공급되며, 리세트단자R에는 선택신호Sr0∼Sr3이 공급되고 있다.
제12도에 있어서 상기 플래그FLG0∼FLG3의 출력에서 축적데이타수를 취득하기 위해서는 예를들면 AND면(204)와 OR면(205)를 포함하는 논리게이트어레이가 사용되고 있다. AND면(204)는 플래그FLG0∼FLG3의 출력신호선Y0∼Y3과 직교하는 데이타선X0∼X12를 배치하고, 0표로 나타내는 필요한 위치에 스위치소자를 개재시켜서 이루어진다. 각 스위치소자의 선택단자는 열마다 출력신호선Y0∼Y3에 공통접속되어 있다. 스위치소자는 플래그FLG0∼FLG3이 세트상태로 될 수 있는 경우의 모든 조합상태를 개별로 판정할 수 있는 배열로 되어 있고, 데이타선X0은 축적데이타수가 4개일 때 하이레벨과 같은 신호를 OR면(205)에 부여하고, 축적데이타수가 3개일 때 데이타선X1∼X4중의 어느 1개가 하이레벨과 같은 신호를 OR면(205)에 부여하고, 축적데이타수가 2개일 때 데이타선X5∼X8중의 어느 1개가 하이레벨과 같은 신호를 OR면(205)에 부여하며, 축적데이타수가 1개일 때 데이타선X9∼X12중의 어느 1개가 하이레벨과 같은 신호를 OR면(205)에 부여한다. OR면(205)는 상기 데이타선X0∼X12와 직교하는 3개의 출력데이타선D0∼D2를 배치하여 0표로 표시된 필요한 위치에 스위치소자를 개재시켜서 이루어진다. 각 스위치소자는 그 선택단자가 행마다데이타선X0∼X12에 접속되고, 데이타선X0∼X12의 상태에 따라서 축적데이타수를 출력데이타선D0∼D2로 3비트의 데이타로써 출력하도록 되어 있다. 이와 같이 해서 출력데이타선D0∼D2에 부여되는 축적데이타수는 상기 전송준비제어등에 이용된다. 이와 같이 플래그FLG0∼FLG3을 이용해서 축적데이타수를 취득하는 경우에도 각각 별도로 동작되는 리드카운터(202)와 라이트카운터(200)의 출력계수값이 기준으로 되므로 동시에 리드와 라이트가 발생해도 축적데이타수를 정확하게 취득할 수 있다.
(축적데이타수의 외부출력)
FIFO메모리의 축적데이타수는 전송준비제어에 이용될 뿐만아니라 직접 외부로 출력해도 좋다. 예를들면 제1도a, b의 구성에 따르면 연산부(15), (115)에서 취득된 축적데이타수를 각각 유지하는 레지스터를 마련하고, 이 레지스터를 버스인터페이스부(5)를 거쳐서 CPU(9)등의 상위장치가 직접 액세스가능하게 된다. 이것에 의해, CPU(9)는 수신FIFO메모리(6)이나 송신FIFO(7)의 축적데이타수를 필요한 타이밍에서 알 수 있다. 예를들면 HDLC(High-level Data Link Control)순서로 데이타의 송수신을 실행하는 경우에 제어필드의 제어정보를 수신FIFO메모리(6)에서 빨리 리드해서 처리하기 위해 축적데이타수를 감시하거나 프레임체크시 퀀스정보가 수신되었을때 정보필드의 데이타를 수신FIFO메모리(6)에서 몇 바이트리드해서 남아 있는지를 판정하거나해서 상위 CPU(9)가 효율적으로 프로토콜처리할 수 있도록 수신정보에 따라서 결정하여 상세한 제어를 실행할 수 있게 된다.
제13도에는 본 발명의 또 다른 실시예인 FIFO메모리가 도시 되어 있다. 제13도에 도시된 FIFO메모리(301)은 특히 제한되지 않지만 제14도에 도시된 마이크로컴퓨터 또는 프로세서(302)에 포함되는 1개의 기능모듈로 된다. 그 프로세서(302)는 특히 제한되지 않지만 공지의 반도체집적회로의 제조기술에 의해 실리콘기판과 같은 1개의 반도체기판에 형성되어 있다.
먼저, 상기 프로세서(302)를 개략적으로 설명한다.
제14도에는 FIFO메모리(301)이외에 중앙처리장치(303)과 직렬입력회로(304)가 대표적으로 도시되어 있다. 직렬입력회로(304)는 직렬비트에 공급되는 수신데이타RxD를 동기화 또는 복원해서 입력하고, 입력된 데이타를 병렬변환해서 출력한다.
FIFO메모리(301)은 직렬입력회로(304)에서 공급되는 데이타를 축적하는 버퍼메모리로써 이용된다. 이 FIFO메모리(301)은 직렬입력회로(304)측 및 중앙처리장치(303)측과 별도로 인터페이스되고 있다.
직렬입력회로(304)측의 인터페이스부에는 직렬입력회로(304)측에서 병렬변환된 수신데이타Drx가 공급됨과 동시에 이 수신데이타Drx의 라이트를 FIFO메모리(301)에 지시하는 푸시신호PUSH가 공급된다. FIFO메모리(301)의 직렬입력회로(304)측의 인터페이스부에서 직렬입력회로(304)에는 FIFO메모리(301)로 빈메모리가 없는 상태를 알리기 위한 풀신호FS가 공급된다.
중앙처리장치(303)측의 인터페이스부는 어드레스버스ABUS 및 데이타버스DBUS를 거쳐서 중앙처리장치(303)등과의 사이에서 데이타Di의 수수나 어드레스신호Ai의 공급을 받음과 동시에 어드레스신호Ai의 소정의 비트를 디코더(305)에서 디코드해서 생성된 제어신호AA, CA를 받고, 또 리드/라이트신호R/W를 받는다. 중앙처리장치(303)측의 인터페이스부에서 중앙처리장치(303)으로는 FIFO메모리(301)에 더 이상 리드해야할 데이타가 존재하지 않는 상태를 알리기 위한 빈신호ES 및 중앙처리장치(303)에 의한 FIFO메모리(301)의 액세스동작을 금지지시하기 위한 액세스금지상태신호INH가 공급된다.
중앙처리장치(303)은 특히 제한되지 않지만 프로세서전체의 제어를 담당함과 동시에 수신데이타RxD에 대한 프로토콜처리도 실행하도록 되어 있다.
다음에 제13도에 따라 FIFO메모리(301)에 대해서 상세히 설명한다. 이 FIFO메모리(301)은 기본적으로 선입선출형식으로 데이타의 입출력을 실행하지만 더나아가서는 중앙처리장치(303)에 의한 랜덤액세스 및 불필요한 데이타의 클리어처리가 가능하게 구성되어 있다.
제13도에 있어서, (310)은 리라이트가능한 여러개의 메모리셀, 예를들면 스테이틱형 메모리셀이 매트릭스 배치된 메모리셀어레이이다. 이 메모리셀어레이(310)에 포함되는 메모리셀의 선택단자는 열마다 워드선WL0∼WLn에 결합되고, 메모리셀의 데이타입출력단자는 행마다 상보비트선BL0, BL0∼BLn, BLn에 결합되어 이들 상보 비트선BL0, BL0∼BLn, BLn는 행선택회로(306)을 거쳐서 상보공통데이타선(307)에 접속되어 있다. 메모리셀어레이(310)에 포함되는 필요한 메모리셀의 어드레싱은 워드선선택디코더(311) 및 비트선선택디코더(312)가 실행한다. 즉, 워드선선택디코더(311)은 이것에 공급되는 어드레스신호를 해독하여 소정의 워드선을 선택레벨로 구동한다. 비트선 선택디코더(312)는 이것에 공급되는 어드레스신호를 해독해서 소정의 상보비트선을 상보공통데이타선(307)에 도통시키도록 행선택회로(306)을 제어한다. 이들 워드선선택디코더(311) 및 비트선선택디코더(312)에 의해 어드레싱된 메모리셀에 대한 데이타의 리드는 특히 제한되지 않지만 센스앰프(308a) 및 출력게이트(308b)를 포함하는 리드회로(308)에 의해 실행되고, 어드레싱된 메모리셀에 대한 데이타의 라이트는 특히 제한되지 않지만 2개의 입력게이트(309a), (309b) 및 라이트앰프(309c)를 포함하는 라이트회로(309)에 의해 실행된다.
중앙처리장치(303)에 의해 랜덤액세스를 하기 위한 어드레스신호Ai는 어드레스입력버퍼(315)에 공급된다. 또, FIFO메모리(301)은 액세스어드레스를 내부에서 생성하기 위한 이진카운터등으로 구성된 리드어드레스카운터(313) 및 라이트어드레스카운터(314)를 마련한다. 라이트어드레스카운터(314)는 선입형식에 의한 데이타라이트동작마다 순차로 라이트어드레스Aw를 출력한다. 이 라이트어드레스카운터(314)의 인크리먼트동작은 컨트롤러(317)에서 출력되는 제어신호Φwi가 어서트되는 것에 의해 지시된다. 리드어드레스카운터(313)은 선출형식에 의한 데이타리드동작마다 순차로 리드어드레스Ar을 출력한다. 이 리드어드레스카운터(313)의 인크리먼트동작은 컨트롤러(317)에서 출력되는 제어신호Φri가 어서트되는 것에 의해 지시된다.
상기 어드레스입력버퍼(315)에 의해 내부로 입력되는 어드레스신호Ai, 상기 리드어드레스카운터(313)에서 출력되는 어드레스신호Ar 및 라이트어드레스카운터(314)에서 출력되는 어드레스신호Aw는 셀렉터(316)에 의해 선택되어 상기 워드선선택디코더(311)과 비트선선택디코더(312)로 공급된다. 셀렉터(316)의 선택제어는 컨트롤러(317)에서 출력되는 다수비트의 제어신호Φs에 따라 실행된다.
상기 리드어드레스카운터(313)과 라이트어드레스카운터(314)의 값은 초기상태에서 일치되도록 되어 있고, 리드어드레스카운터(313)에서 출력되는 어드레스신호Ar과 라이트어드레스카운터(314)에서 출력되는 어드레스신호Aw는 비교판정회로(318)은 선입형식의 라이트동작시에 양자의 값Ar, Aw가 일치한 것을 검출하면 새로운 라이트를 실행할 수 없는 상태를 직렬입력회로(304)로 알리기 위해 풀신호FS를 하이레벨로 어서트하고, 선출형식의 리드동작시에 양자의 값Ar, Aw가 일치한 것을 검출하면 리드해야할 데이타가 더이상 존재하지 않는 상태를 중앙처리장치(303)에 알리기 위해 빈신호ES를 하이레벨로 어서트한다. 또, 비교판정회로(318)은 특히 제한되지 않지만 제어신호Φwi에 의한 라이트어드레스카운터(314)의 인크리먼트지시에 따라서 선입형식의 라이트동작을 검출하고, 또 제어신호Φri에 의한 리드어드레스카운터(313)의 인크리먼트지시에 따라서 선출형식의 리드동작을 검출한다.
상기 리드회로(308)에 포함되는 출력게이트(308a)의 출력단자와 라이트회로(309)에 포함되는 입력게이트(309a)의 입력단자는 중앙처리장치(303)에 의한 선출형식의 메모리리드액세스와 랜덤액세스에 이용되는 데이타입출력버퍼(320)을 거쳐서 데이타버스DBUS에 인터페이스되고, 또 라이트회로(309)에 포함되는 입력게이트(309b)의 입력단자는 직렬입력회로(304)에 의한 선입형식의 메모리라이트액세스에 이용되는 데이타입력버퍼(321)을 거쳐서 직렬입력회로(304)에 인터페이스된다. 데이타입출력버퍼(320)에 대한 데이타의 입출력제어는 리드/라이트신호R/W의 레벨에 따라서 컨트롤러(317)에서 출력되는 제어신호Φi, Φo에 의해 실행된다. 또, 데이타입력버퍼(321)에 의한 데이타의 입력제어는 컨트롤러(317)에서 출력되는 제어신호Φp에 의해 실행된다. 특히 제한되지 않지만, 중앙처리장치(303)에 의한 선출형식의 메모리리드액세스와 랜덤액세스시에 리드회로(308) 및 라이트회로(309)에 대한 리드/라이트제어는 리드/라이트신호R/W의 레벨에 따라서 컨트롤러(317)에서 출력되는 제어신호Φr, Φw에 의해 지시되고, 직렬입력회로(304)에 의한 선입형식의 메모리라이트액세스시에 라이트회로(309)의 라이트제어는 상기 제어신호Φp에 의해 지시된다. 또, 라이트앰프(309c)에 대한 동작지시는 특히 제한되지 않지만 제어신호Φp, Φw의 논리합을 취하는 OR게이트(309d)의 출력신호에 의해 부여된다.
상기 리드어드레스카운터(313) 및 라이트어드레스카운터(314)는 프리세트기능을 갖고 내부데이타버스(325)를 거쳐서 데이타입출력버퍼(320)에 결합되고, 그것이 유지하는 어드레스신호Ar, Aw를 중앙처리장치(303)이 리드하거나 그 값을 중앙처리장치(303)이 리라이트할 수 있게 되어 있다. 데이타입출력버퍼(320)에 결합되는 리드어드레스카운터(313)의 입출력게이트는 컨트롤러(317)에서 출력되는 제어신호Φrac에 의해 개폐제어된다. 마찬가지로 데이타입출력버퍼(320)에 결합되는 라이트어드레스카운터(314)의 입출력게이트는 컨트롤러(317)에서 출력되는 제어신호Φwac에 의해 개폐제어된다.
여기에서, 상기 디코더(305)에서 출력되는 제어신호AA는 그 하이레벨에 의해 FIFO메모리(301)을 어드레스신호Ai에 의해서 랜덤액세스하는 것을 지시하는 신호로 간주된다. 컨트롤러(317)은 제어신호AA가 하이레벨로 어서트되면 제어신호Φs에 의해 셀렉터(316)로 어드레스신호Ai를 선택출력시킨다. 이 랜덤액세스에 있어서의 리드, 라이트동작은 리드/라이트신호R/W에 의해 지시된다. 이것에 의해서 메모리리드동작이 지시되는 경우에는 제어신호Φr, Φo가 어스트됨과 동시에 또 제어신호Φw, Φi가 네게이트된다. 메모리라이트동작이 지시되는 경우에는 제어신호Φr, Φo가 네게이트됨과 동시에 또 제어신호Φw, Φi가 어서트된다.
디코더(305)에서 출력되는 상기 2비트의 제어신호CA는 리드어드레스카운터(313)이나 라이트어드레스카운터(314)의 액세스를 지시하가 위한 제어신호로 된다. 제어신호CA에 포함되는 소정의 1비트는 그 하이레벨에 의해 리드어드레스카운터(313)에 대한 액세스를 지시하는 비트로 간주되고, 다른 1비트는 그 하이레벨에 의해 라이트어드레스카운터(314)에 대한 액세스를 지시하는 비트로 간주된다. 제어신호CA에 의해 리드어드레스카운터(313)에 대한 액세스가 지시되면 컨트롤러(317)은 제어신호Φrac를 어서트해서 리드어드레스카운터(313)의 도시하지 않은 입출력게이트를 연다. 제어신호CA에 의해 라이트어드레스카운터(314)에 대한 액세스가 지시되면 컨트롤러(317)은 제어신호Φwac를 어서트해서 라이트어드레스카운터(314)의 도시하지 않은 입출력게이트를 연다. 이때의 리드, 라이트동작은 리드/라이트신호R/W에 의해 지시되고, 이것에 따라서 제어신호Φi, Φo중 어느 한쪽이 어서트되는 것에 의해서 데이타입출력버퍼(320)에 있어서의 데이타의 입출력방향이 제어된다. 또, 리드어드레스카운터(313)이나 라이트어드레스카운터(314)의 액세스시에 제어신호Φr, Φw는 쌍방 모두 네게이트된다.
상기 제어신호AA가 로우레벨로 네게이트되어 있을 때 리드, 라이트신호R/W에 의해서 리드동작이 지시되면 FIFO메모리(301)은 리드어드레스카운터(313)의 출력어드레스신호Ar에 따른 선출형식에 의한 리드동작모드로 된다. 이것에 의해 제어신호Φri가 어서트되는 것에 의해 리드어드레스카운터(313)이 인크리먼트되고, 인크리먼트된 리드어드레스카운터(313)에서 출력되는 어드레스신호Ar이 셀렉터(316)을 거쳐서 워드선선택디코더(311) 및 비트선선택디코더(312)에 공급된다.
직렬입력회로(304)에서 공급되는 푸시신호PUSH는 그 하이레벨에 의해 라이트어드레스카운터(314)의 출력어드레스신호Aw에 따른 선입형식에 의한 라이트동작모드를 지시하는 신호로 간주된다. 컨트롤러(317)은 그 푸시신호PUSH가 하이레벨로 어서트되면 제어신호Φwi를 어서트하고, 이것에 의해서 라이트어드레스카운터(314)가 인크리먼트되고, 이와 같이 해서 얻어진 어드레스신호Aw가 셀렉터(316)을 거쳐서 워드선선택디코더(311) 및 비트선선택디코더(312)가 공급된다.
본 실시예의 FIFO메모리(301)은 중앙처리장치(303) 및 직렬입력회로(304)의 양쪽에서 액세스가능하므로 양쪽에서의 액세스의 경합을 회피시키기 위해, 특히 제한되지 않지만 컨트롤러(317)은 중앙처리장치(303)에 의한 FIFO메모리(301)의 액세스를 금지지시하기 위해 액세스금지상태신호INH를 부여한다.
이 경합회피의 논리는 특히 제한되지 않지만 직렬입력회로(304)로 부터의 액세스요구를 우선시키도록 되어 있고, 액세스금지상태신호INH는 예를들면 푸시신호PUSH의 어서트기간에 따라서 어서트된다.
다음에 상기 FIFO메모리(301)의 동작을 설명한다.
직렬입력회로(304)는 풀신호FS가 네게이트되어 있는 것을 조건으로 푸시신호PUSH를 어서트해서 수신데이타Drx를 FIFO메모리(301)로 공급한다. 이것에 의해 FIFO메모리(301)은 라이트어드레스카운터(314)를 인크리먼트하면서 그 수신데이타Drx를 순차로 메모리셀어레이(310)에 저장한다.
중앙처리장치(303)은 빈신호ES 및 액세스금지상태신호INH가 네게이트되어 있는 것을 조건으로 FIFO메모리(301)에 대해서 선출형식에 의한 리드동작을 지시한다. 이것에 의해 FIFO메모리(301)은 리드어드레스카운터(313)을 인크리먼트하면서 메모리셀어레이(310)에 저장되어 있는 수신데이타를 순차로 리드한다.
여기에서, 시스템동작상의 에러등에 의해 메모리셀어레이(310)에 저장된 수신데이타의 도중에 불필요한 데이타가 발생한 경우에 이것을 클리어하는 동작을 설명한다. 예를들면 제15도a에 도시된 바와 같이 리드어드레스카운터(313)과 라이트어드레스카운터(314)가 어떤값Ar, Aw를 지시하고 있을 때 메모리셀어레이(310)의 어드레스공간에 있어서의 영역ED1 및 ED2의 데이타가 불필요하게 된 경우에 중앙처리장치(303)은 제15도b에 도시된 바와 같이 리드어드레스카운터(313)의 값을 Ar'로 리라이트하고, 또 라이트어드레스카운터(314)의 값을 Aw'로 리라이트해주면 좋다. 이와 같이 해서 리드어드레스카운터(313) 및 라이트어드레스카운터(314)의 값이 리라이트되면 그후 직렬입력회로(304)에서 부여되는 수신데이타Drx는 라이트어드레스카운터(314)에 의해 나타내는 값Aw'의 어드레스로 부터 순차로 라이트되어 영역ED2에 남아 있는 불필요한 데이타는 무시된다. 또, 그후 메모리셀어레이(310)에 저장되어 있는 수신데이타를 중앙처리장치(303)이 선출형식으로 리드하는 경우에는 리드어드레스카운터(313)에 의해 나타내는 값Ar'의 어드레스로 부터 순차로 리드되어 영역ED1에 남아 있는 데이타는 무시된다. 따라서, 불필요한 데이타를 모두 순차로 리드해서 리드어드레스카운터(313)의 값을 갱신해주지 않아도 중앙처리장치(303)이 리드어드레스카운터(313)이나 라이트어드레스카운터(314)의 값을 리라이트하는 처리를 실행하는 것만으로 불필요한 데이타에 대한 실질적인 클리어처리를 간단히 실행할 수 있다.
이 클리어처리에 있어서, 리드어드레스카운터(313) 및 라이트어드레스카운터(314)의 값을 리라이트할 때 그 어드레스카운터(313), (314)의 상태를 중앙처리장치(303)이 알 필요가 있는 경우에는 중앙처리장치(303)은 리드어드레스카운터(313) 및 라이트어드레스카운터(314)의 값을 리드액세스하여 리드한 값Ar, Aw에 따라서 리라이트해야할 값Ar', Aw'를 산출한다. 이와 같은 어드레스카운터(313), (314)의 리드액세스가 필요한 경우로써는 예를들면 중앙처리장치(303)이 불필요한 데이타의 패키트번호나 바이트수 또는 워드수밖에 인식하고 있지 않을때 메모리셀어레이(310)의 물리적인 어드레스공간이나 산출해야할 값Ar', Aw'의 기준으로 되어야할 값Ar, Aw를 얻지 않으면 안되는 경우가 상정된다.
다음에 시스템동작상 FIFO메모리(301)의 도중에 저장되어 있는 데이타를 검사할 필요가 생긴 경우에 중앙처리장치(303)은 어드레스신호Ai에 의해 FIFO메모리(301)을 랜덤액세스해서 필요한 데이타를 리드한다. 이때의 리드동작으로는 제어신호Φri가 어서트되지 않고, 이것에 의해 리드어드레스카운터(313)의 값은 그대로 유지된다. 이 랜덤액세스시에 중앙처리장치(303)이 FIFO메모리(301)의 물리적인 어드레스공간이나 액세스 대상으로 하는 필요한 어드레스의 기준이 되는 어드레스정보를 필요로 하는 경우, 이 중앙처리장치(303)은 리드어드레스카운터(313)이나 라이트어드레스카운터(314)를 리드액세스해서 그 값을 리드할 수가 있다.
상기 FIFO메모리(301)에 의하면 다음의 효과를 얻는 것이다.
셀렉터(316)에 외부어드레스신호Ai를 선택시키는 것에 의해 중앙처리장치(303)은 리드어드레스카운터(313) 및 라이트어드레스카운터(314)가 지시하는 어드레스를 그대로 한 상태에서 그들이 지시하는 어드레스이외의 임의의 필요한 어드레스에서 데이타를 얻을 수 있고, 이것에 의해 데이타의 리드, 라이트의 순서가 내장어드레스카운터(313), (314)의 값에 의해서 규정되어 있어도 랜덤액세스가 가능하게 된다.
메모리셀어레이(310)에 저장된 데이타의 도중에 불필요한 데이타가 발생한 경우에 리드어드레스카운터(313) 또는 라이트어드레스카운터(314)의 값을 중앙처리장치(303)의 제어로 리라이트 하는 것에 의해 FIFO메모리(301)에 있어서의 데이타의 실질적인 클리어처리를 간단히 실행할 수 있다.
상기 효과에 의해, 중앙처리장치(303)에 의한 랜덤액세스와 불필요한 데이타의 임의의 클리어처리가 가능한 FIFO메모리(301)을 직렬입력회로(304)의 버퍼메모리로써 이용하는 경우에 중앙처리장치(303)이 수신데이타에 대한 프로토콜처리를 실행하고자 할때 중앙처리장치(303)은 FIFO메모리(301)을 랜덤액세스해서 수신데이타에 포함되는 제어필드등의 정보를 임의로 얻어서 프로토콜처리를 실행할 수 있고, 그 결과 불필요하게 되는 수신데이타나 수신데이타에 포함되는 송신원 식별데이타와 같은 불필요한 데이타를 버퍼메모리로써의 FIFO메모리(301)상에서 간단히 클리어처리 할 수 있게 된다. 따라서, FIFO메모리(301)에 저장한 데이타를 일단 모두 로컬메모리등으로 전송하고나서 프로토콜처리를 실행할 필요는 없고, 이것에 의해서 프로토콜처리의 효율화, 더나아가서는 그를 위한 시스템의 간소화를 도모할 수 있다.
(FIFO메모리(331))
제16도에는 본 발명에 관한 또 다른 FIFO메모리(331)이 도시되어 있다. 제16도에 도시된 FIFO메모리(331)은 특히 제한되지 않지만 제17도에 도시되는 마이크로컴퓨터시스템에 포함되는 1개의 주변장치로 이루어지고, 공지의 반도체집적회로 제조기술에 의해서 실리콘기판과 같은 1개의 반도체기판에 형성된다.
제17도에는 FIFO메모리(331)이외의 버스마스터모듈로써의 프로세서(333) 및 직렬입력회로(334), 또 버스권조정을 실행하기 위한 버스아비터(332)가 대표적으로 도시되고, 그들은 데이타버스DBUS, 어드레스버스ABUS 및 제어버스CBUS에 결합되어 있다. 프로세서(333), 직렬입력회로(334)는 버스권을 요구하는 신호로써 버스요구신호BREQ1, BREQ2를 출력하고, 이들 버스요구신호BREQ1, BREQ2를 받는 버스아비터(332)는 프로세서(333) 또는 직렬입력회로(334)중 어느 한쪽으로 버스권을 인식하기 위한 버스확인신호BACK1, BACK2를 출력한다.
직렬입력회로(334)는 직렬비트에 공급되는 수신데이타RxD를 동기화 또는 복원해서 페치하고, 페치한 데이타를 병렬변환해서 출력한다. FIFO메모리(331)은 직렬입력회로(334)에서 공급되는 데이타를 축적하는 버퍼메모리로써 이용된다. 상기 프로세서(333)은 특히 제한되지 않지만 FIFO메모리(331)에 저장된 수신데이타에 대한 프로토콜처리등의 데이타처리도 실행하도록 되어 있다. FIFO메모리(331)은 싱글칩 또는 싱글펠릿에 의해 구성되고, 범용적으로 이용되는 단일의 인터페이스부를 마련한다. 이 인터페이스부는 상기 데이타버스DBUS, 어드레스버스ABUS 및 제어버스CBUS에 결합되어 있다. FIFO메모리(331)은 프로세서(333)이나 직렬입력회로(334)에서 출력되는 리드/라이트신호R/W를 제어버스CBUS를 거쳐서 받음과 동시에 FIFO메모리(331)에 빈메모리셀이 없는 상태를 외부, 특히 직렬입력회로(334)에 알리기 위한 풀신호FS를 제어버스CBUS로 출력하고, FIFO메모리(331)에 더 이상 리드해야할 데이타가 존재하지 않는 상태를 외부, 특히 프로세서(333)에 알리기 위한 빈신호ES를 제어버스CBUS로 출력한다. 그리고, FIFO메모리(331)은 프로세서(333)이나 직렬입력회로(334)에서 출력되는 어드레스신호Ai의 소정의 비트를 디코더(335)에서 디코드해서 생성된 제어신호AA, CA를 받는다.
다음에 제16도에 따라 FIFO메모리(331)을 상세히 설명한다. 이 FIFO메모리(331)은 기본적으로 선입선출형식으로 데이타의 입출력을 실행하지만 더나아가서는 프로세서(333)에 의한 랜덤액세스 및 불필요한 데이타의 클리어처리가 가능하게 구성되어 있다. 제16도에 있어서, (340)은 리라이트가능한 여러개의 메모리셀, 예를들면 스테이틱형의 메모리셀이 매트릭스로 배치된 메모리셀어레이이다. 이 메모리셀어레이(340)에 포함된 메모리셀의 선택단자는 열마다 워드선WL0∼WLn에 결합되고, 또 메모리셀이 데이타입출력단자는 행마다 상보비트선BL0, BL0∼BLn, BLn에 결합되고, 이들 상보비트선BL0, BL0∼BLn, BLn는 행선택회로(350)을 거쳐 상보공통데이타선(351)에 접속되어 있다. 메모리셀어레이(340)에 포함된 필요한 메모리셀의 어드레싱은 워드선선택디코더(352) 및 비트선선택디코더(353)이 실행한다. 즉, 워드선선택디코더(352)는 이들에 공급되는 어드레스신호를 해독해서 소정의 워드선을 선택레벨로 구동한다. 비트선선택디코더(353)은 이들에 공급되는 어드레스신호를 해독해서 소정의 상보비트선을 상보공통데이타선(351)에 도통시키도록 행선택회로(350)을 제어한다. 이들 워드선선택디코더(352) 및 비트선선택디코더(353)에 의해 어드레싱된 메모리셀에 대한 데이타의 리드는 특히 제한되지 않지만 센스앰프(354a) 및 출력게이트(354b)를 포함하는 리드회로(354)에 의해 실행되고, 또 어드레싱된 메모리셀에 대한 데이타의 라이트는 특히 제한되지 않지만 입력게이트(355a) 및 라이트앰프(355b)를 포함하는 라이트회로(355)에 의해 실행된다.
프로세서(333)에 의한 랜덤액세스를 위한 어드레스신호Ai는 어드레스입력버퍼(345)에 공급된다. 또, FIFO메모리(331)은 액세스어드레스를 내부에서 생성하기 위해 이진카운터등으로 구성된 리드어드레스카운터(343) 및 라이트어드레스카운터(344)를 마련한다. 라이트어드레스카운터(334)는 선입형식에 의한 데이타라이트동작마다 순차로 라이트어드레스Aw를 인크리먼트해서 출력한다. 이 라이트어드레스카운터(344)의 인크리먼트동작은 컨트롤러(347)에서 출력되는 제어신호Φwi가 어서트되는 것에 의해 지시된다. 리드어드레스카운터(343)은 선입형식에 의한 데이타리드동작마다 순차로 리드어드레스Ar을 인크리먼트해서 출력한다. 이 리드어드레스카운터(343)에 의한 인크리먼트동작은 컨트롤러(347)에서 출력되는 제어신호Φri가 어서트되는 것에 의해 지시된다.
상기 어드레스입력버퍼(345)에서 내부로 페치되는 어드레스신호Ai, 상기 리드어드레스카운터(343)에서 출력되는 어드레스신호Ar 및 라이트어드레스카운터(344)에서 출력되는 어드레스신호Aw는 셀렉터(346)에 의해 선택되어 상기 워드선선택디코더(354) 및 비트선선택디코더(354)에 공급된다. 셀렉터(346)의 선택제어는 컨트롤러(347)에서 출력되는 다수비트의 제어신호Φs에 따라 실행된다.
상기 리드어드레스카운터(343)과 라이트어드레스카운터(344)의 값은 초기상태에서 일치되도록 되어 있고, 리드어드레스카운터(343)에서 출력되는 어드레스신호Ar과 라이트어드레스카운터(344)에서 출력되는 어드레스신호Aw는 비교판정회로(348)에 공급되어 그 일치, 불일치가 항상 감시된다. 비교판정회로(348)은 선입형식의 라이트동작시에 양자의 값Ar, Aw가 일치한 것을 검출하면 새로운 라이트를 받을 수 없는 상태를 직렬입력회로(334)에 알리기 위한 풀신호FS를 하이레벨로 어서트하고, 선출형식의 리드동작시에 양자의 값Ar, Aw가 일치한 것을 검출하면 리드해야할 데이타가 더 이상 존재하지 않는 상태를 프로세서(333)에 알리기 위한 빈신호ES를 하이레벨로 어서트한다. 또, 비교판정회로(348)은 특히 제한되지 않지만 제어신호Φwi에 의한 라이트어드레스카운터(344)의 인크리먼트지시에 따라서 선입형식의 라이트동작을 검출하고, 또 제어신호Φri에 의한 리드어드레스카운터(343)의 인크리먼트지시에 따라서 선출형식의 리드동작을 검출한다.
상기 리드회로(354)에 포함되는 출력게이트(354b)의 출력단자와 라이트회로(355)에 포함되는 입력게이트(355a)의 입력단자는 데이타입출력버퍼(350)을 거쳐서 데이타버스DBUS에 인터페이스된다. 이 데이타입출력버퍼(350)에 대한 데이타의 입출력제어는 리드/라이트신호R/W의 레벨에 따라서 컨트롤러(347)에서 출력되는 제어신호Φi, Φo에 의해 실행된다. 또, 리드회로(354) 및 라이트회로(355)의 리드/라이트제어는 리드/라이트신호R/W의 레벨에 따라서 컨트롤러(347)에서 출력되는 제어신호Φr, Φw에 의해 지시된다.
상기 리드어드레스카운터(343) 및 라이트어드레스카운터(344)는 프리세트기능을 갖고 내부데이타버스(360)을 거쳐서 데이타입출력버퍼(350)에 결합되며, 그것이 유지하는 어드레스신호Ar, Aw를 프로세서(333)이 리드하거나 그 값을 프로세서(333)이 리라이트할 수 있도록 되어 있다. 데이타입출력버퍼(350)에 결합되는 리드어드레스카운터(343)의 입출력게이트는 컨트롤러(347)에서 출력되는 제어신호Φrac에 의해 개폐제어된다. 마찬가지로 데이타입출력버퍼(350)에 결합되는 라이트어드레스카운터(344)의 입출력게이트는 컨트롤러(347)에서 출력되는 제어신호Φwac에 의해 개폐제어된다.
여기에서, 상기 디코더(355)에서 출력되는 제어신호AA는 그 하이레벨에 의해 FIFO메모리(331)을 어드레스신호Ai에 의해서 랜덤액세스하는 것을 지시하는 신호로 간주된다. 컨트롤러(347)은 제어신호AA가 하이레벨로 어서트되면 제어신호Φs에 의해 셀렉터(346)으로 어드레스신호Ai를 선택출력시킨다. 이 랜덤액세스에 있어서의 리드/라이트동작은 프로세서(333)에서 출력되는 리드/라이트신호R/W에 의해 지시된다. 이것에 의해서 메모리리드동작이 지시되는 경우에는 제어신호Φr, Φo가 어서트됨과 동시에 또 제어신호Φw, Φi가 네게이트된다. 메모리라이트동작이 지시되는 경우는 제어신호Φr, Φo가 네게이트됨과 동시에 제어신호Φw, Φi가 어서트된다.
상기 디코더(335)에서 출력되는 상기 2비트의 제어신호CA는 리드어드레스카운터(343)이나 라이트어드레스카운터(344)의 액세스를 지시하기 위한 제어신호로 된다. 제어신호CA에 포함되는 소정의 1비트는 그 하이레벨에 의해 리드어드레스카운터(343)에 대한 액세스를 지시하는 비트로 간주되고, 다른 1비트는 그 하이레벨에 의해 라이트어드레스카운터(344)에 대한 액세스를 지시하는 비트로 간주된다. 제어신호CA에 의해 리드어드레스카운터(343)에 대한 액세스가 지시되면 컨트롤러(347)은 제어신호Φrac를 어서트해서 리드어드레스카운터(343)의 도시하지 않은 입출력게이트를 연다. 제어신호CA에 의해 라이트어드레스카운터(344)에 대한 액세스가 지시되면 컨트롤러(347)은 제어신호Φwac를 어서트해서 라이트어드레스카운터(344)의 도시하지 않은 입출력게이트를 연다. 이때의 리드/라이트동작은 리드/라이트신호R/W에 의해 지시되고, 이것에 따라 제어신호Φi, Φo중 어느 한쪽이 어서트되는 것에 의해 데이타입출력버퍼(350)에 있어서의 데이타의 입출력방향이 제어된다. 또한, 리드어드레스카운터(343)이나 라이트어드레스카운터(344)가 액세스할때에는 제어신호Φr, Φw가 양쪽 모두 네게이트된다.
상기 제어신호AA가 로우레벨로 네게이트되어 있을 때, 리드/라이트신호R/W에 의해 리드동작이 지시되면 FIFO메모리(331)은 리드어드레스카운터(343)의 출력어드레스신호Ar에 따른 선출형식에 의한 리드동작모드로 된다. 이것에 의해 제어신호Φri가 어서트되는 것에 의해 리드어드레스카운터(343)이 인크리먼트되고, 인크리먼트된 리드어드레스카운터(343)에서 출력되는 어드레스신호Ar이 셀렉터(346)을 거쳐서 워드선선택디코더(352) 및 비트선선택디코더(353)에 공급된다.
상기 제어신호AA가 로우레벨로 네게이트되어 있을 때, 리드/라이트신호R/W에 의해 라이트동작이 지시되면 FIFO메모리(331)은 라이트어드레스카운터(344)의 출력어드레스신호Aw에 따른 선입형식에 의한 리드동작모드로 된다. 이것에 의해 제어신호Φwi가 어서트되는 것에 의해 라이트어드레스카운터(344)가 인크리먼트되고, 인크리먼트된 라이트어드레스카운터(344)에서 출력되는 어드레스신호Aw가 셀렉터(346)을 거쳐서 워드선선택디코더(352) 및 비트선선택디코더(353)에 공급된다.
본 실시예의 FIFO메모리(331)은 프로세서(333) 및 직렬입력회로(334) 양쪽에서 공통의 인터페이스부를 거쳐서 액세스할 수 있게 되지만 프로세서(333)과 직렬입력회로(334)의 버스권은 버스아비터(332)에 의해 어느 한쪽에 인정되므로 FIFO메모리(331)에 대한 프로세서(333) 및 직렬입력회로(334) 양쪽에서의 액세스경합은 그 버스아비터(332)에 의한 버스권조정에 의해 방지되도록 되어 있다.
다음에 상기 FIFO메모리(331)의 동작을 설명한다.
직렬입력회로(334)는 풀신호FS가 어서트되어 있지 않을 때 버스요구신호BREQ2를 어서트하고, 이 요구에 대해서 버스권이 인정되면 제어신호AA를 로우레벨로 할 수 있는 어드레스신호Ai를 출력함과 동시에 리드/라이트신호R/W를 로우레벨로 해서 FIFO메모리(331)에 선입형식에 의한 라이트동작을 지시하고, 그후 수신데이타Drx를 데이타버스DBUS로 출력한다. 이것에 따라 FIFO메모리(331)은 라이트어드레스카운터(344)를 인크리먼트하면서 그 수신데이타Drx를 순차로 메모리셀어레이(340)에 저장한다.
프로세서(333)은 빈신호ES가 어서트되어 있지 않을 때 버스요구신호BREQ1을 어서트하고, 이 요구에 대해서 버스권이 인정되면 제어신호AA를 로우레벨로 할 수 있는 어드레스신호Ai를 출력함과 동시에 리드/라이트신호R/W를 하이레벨로 해서 FIFO메모리(331)에 선출형식에 의한 리드동작을 지시한다. 이것에 따라 FIFO메모리(331)은 리드어드레스카운터(343)을 인크리먼트하면서 메모리셀어레이(340)에 저장되어 있는 수신데이타를 순차로 리드한다.
여기에서, 시스템동작상의 에러등에 의해 메모리셀어레이(340)에 저장된 수신데이타의 도중에 불필요한 데이타가 발생한 경우, 이것을 클리어하는 동작은 상기 FIFO메모리(301)의 경우와 마찬가지로써 예를들면 제15도a에 도시된 바와 같이 리드어드레스카운터(343)과 라이트어드레스카운터(344)가 어떤 값Ar, Aw를 지시하고 있을 때 메모리셀어레이(340)의 어드레스공간에 있어서의 영역ED1, ED2의 데이타가 불필요하게 된 경우에 프로세서(333)은 제15도b에 도시된 바와 같이 리드어드레스카운터(343)의 값을 Ar'로 리라이트하고, 라이트어드레스카운터(344)의 값을 Aw'로 리라이트해준다. 이와 같이 해서 리드어드레스카운터(343) 및 라이트어드레스카운터(344)의 값이 리라이트되면 그후 직렬입력회로(334)에서 부여되는 수신데이타Drx는 라이트어드레스카운터(344)에 의해 지시되는 값Aw'의 어드레스에서 순차로 라이트되어 영역ED2에 잔류하고 있는 불필요한 데이타는 무시된다. 그후, 메모리셀어레이(340)에 저장되어 있는 수신데이타를 프로세서(333)이 선출형식으로 리드하는 경우에는 리드어드레스카운터(343)에 의해서 지시되는 값Ar'의 어드레스에서 순차로 리드되어 영역ED1에 잔류하고 있는 데이타는 무시된다. 따라서, 불필요한 데이타를 모두 순차로 리드해서 리드어드레스카운터(343)의 값을 갱신해주지 않아도 리드어드레스카운터(343)이나 라이트어드레스카운터(344)의 값을 프로세서(333)이 리라이트하는 것만으로 불필요한 데이타에 대한 실질적인 클리어처리를 간단히 실행할 수 있다.
이 클리어처리에 있어서, 리드어드레스카운터(343) 및 라이트어드레스카운터(344)의 값을 리라이트할때 그 어드레스카운터(343), (344)의 상태를 프로세서(333)이 알 필요가 있는 경우, 이 프로세서(333)은 리드어드레스카운터(343) 및 라이트어드레스카운터(344)의 값을 리드액세스하고, 리드한 값Ar, Aw에 따라서 리라이트해야할 값Ar', Aw'를 산출한다.
다음에 시스템동작상 FIFO메모리(331)의 도중에 저장되어 있는 데이타를 검사할 필요가 생긴 경우 프로세서(333)은 어드레스신호Ai에 의해서 FIFO메모리(331)을 랜덤액세스해서 필요한 데이타를 리드한다. 이때의 리드동작에서는 제어신호Φri가 어서트되지 않고, 이것에 의해서 리드어드레스카운터(343)의 값은 그대로 유지된다. 이 랜덤액세스시에 프로세서(333)이 FIFO메모리(331)의 물리적인 어드레스공간이나 액세스대상으로 하는 필요한 어드레스의 기준으로 되는 어드레스정보를 필요로 하는 경우, 이 프로세서(333)은 리드어드레스카운터(343)이나 라이트어드레스카운터(344)를 리드액세스해서 그 값을 리드할 수가 있다.
이 FIFO메모리(331)도 상기 FIFO메모리(301)과 마찬가지로 데이타의 리드/라이트의 순서가 내장어드레스카운터(343), (344)의 값에 의해서 규정되어 있어도 랜덤액세스가 가능하게 됨과 동시에 데이타의 실질적인 클리어처리를 간단히 실행할 수 있게 된다. 그리고, 이들에 의해 수신데이타에 대한 프로토콜처리를 프로세서(333)이 실행하고자 할 때에는 FIFO메모리(331)에 저장된 데이타를 일단 모두 로컬메모리등으로 전송하고나서 프로토콜처리를 실행할 필요가 없으므로 프로토콜처리의 효율화를 도모할 수 있다.
이상 본 발명자에 의해서 이루어진 발명을 실시예에 따라 구체적으로 설명했지만 본 발명은 상기 실시예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경가능한 것은 물론이다.
예를들면 1개의 LSI로써 구성되는 통신제어장치(1)에 CPU(9)등의 상위장치를 내장시켜도 좋다. 또, 수신회로(2)나 송신회로(3)은 멀티채널화할 수도 있고, 이 경우에는 각 통신채널마다 FIFO메모리를 마련할 수 있다. 또, 단위기억영역의 비트폭은 8비트에 한정되지 않는다. 또한, FIFO메모리(6), (7)에 있어서의 병렬리드비트수와 병렬라이트비트수의 관계는 상기 실시예와 같은 2배의 관계에 한정되지 않고, 4배등 그 이외에 2배이상의 정수배의 관계로 변경할 수 있다.
그리고, 상기 FIFO메모리(301), (331)을 액세스하는 기능모듈을 중앙처리장치, 프로세서, 직렬입력회로로써 설명했지만, 그것에 한정되지 않고, 다이렉트메모리액세스컨트롤러나 병렬입력회로등을 포함시키도록 해도 좋다. FIFO메모리(301), (331)의 동작모드를 결정하기 위한 제어신호는 상기 실시예에서 설명한 제어신호AA, CA에 한정되지 않고 적절히 변경할 수도 있고, 그 생성의 방법도 여러 가지로 변경할 수 있다. 또, FIFO메모리(301), (331)에 있어서의 클리어처리도 제15도a, b에 따라 설명한 내용에 한정되지 않고, 예를들면 제15도a의 영역ED1에만 불필요한 데이타가 있는 경우에는 라이트어드레스카운터의 값만을 리라이트해주면 된다.
이상의 설명에서는 주로 본 발명자에 의해서 이루어진 발명을 그 배경으로 된 이용분야인 통신제어장치나 수신데이타의 버퍼메모리에 적용한 경우에 대해서 설명했지만 본 발명은 그것에 한정되는 것은 아니고, 플로피디스크 컨트롤러나 하드디스크 컨트롤러, 더나아가서는 1개의 LSI로 구성되는 FIFO메모리 그 자체등에도 널리 적용할 수 있다.
Claims (17)
- 매트릭스형으로 배치되어 있는 여러개의 비트셀을 포함하는 비트셀어레이를 갖는 선입선출방식의 반도체기억장치로써, 라이트되어야 할 데이타의 라이트위치를 상기 비트셀어레이에서 선택하기 위한 라이트수단, 라이트된 데이타의 리드가 가능하고 단일의 리드위치 및 여러개의 리드위치중 어느 한쪽을 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선 및 상기 단일의 리드위치로 부터의 단일 데이타의 리드동작을 지시하는 제1신호 및 상기 여러개의 리드위치로 부터의 여러개의 데이타의 리드동작을 지시하는 제2신호를 선택적으로 출력하는 리드제어수단을 포함하며, 상기 단일 데이타는 상기 리드수단이 상기 제1신호에 응답해서 상기 여러개의 출력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되고, 상기 여러개의 데이타는 상기 리드수단이 상기 제2신호에 응답해서 상기 여러개의 출력신호선을 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되는 반도체기억장치.
- 제1항에 있어서, 상기 리드제어수단은 중앙처리장치로 부터의 제어신호에 응답해서 상기 제1 및 제2신호중 어느 한쪽을 선택적으로 출력하는 반도체기억장치.
- 매트릭스형으로 배치되어 있는 여러개의 비트셀을 포함하는 비트셀어레이를 갖는 선입선출방식의 정보제어LSI로써, 라이트되어야 할 데이타의 라이트위치를 상기 비트셀어레이에서 선택하기 위한 라이트수단, 라이트된 데이타의 리드가 가능하고 단일의 리드위치 및 여러개의 리드위치중 어느 한쪽을 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선, 상기 단일의 리드위치로부터의 단일 데이타의 리드동작을 지시하는 제1신호 및 상기 여러개의 리드위치로 부터의 여러개의 데이타의 리드동작을 지시하는 제2신호를 선택적으로 출력하는 리드제어수단, 비교결과신호를 출력하기 위해 상기 라이트수단의 값과 상기 리드수단의 값을 비교하기 위한 비교수단, 상기 비교결과에 따라서 상기 라이트수단의 값, 상기 리드수단의 값 및 상기 비트셀어레이중의 상기 여러개의 비트셀을 갖는 단위기억영역의 총수를 사용하는 것에 의해서 상기 비트셀어레이중의 축적데이타수를 연산하기 위한 연산수단, 외부메모리에서 상기 비트셀어레이에 데이타 전송동작을 요구할 때 상기 비트셀어레이중의 유효한 단위기억영역의 제1소정수에 해당하는 개시데이타를 축적하기 위한 제1레지스터, 상기 외부메모리에서 상기 비트셀어레이에 데이타전송동작의 정지를 요구할 때 상기 비트셀어레이중의 상기 유효한 단위기억영역의 제2소정수에 해당하는 정지데이타를 축적하기 위한 제2레지스터 및 상기 제1 및 제2레지스터와 상기 연산수단에 결합되고 상기 제1 및 제2레지스터중에 축적되어 있는 상기 개시데이타 및 상기 정지데이타와 상기 연산수단에 의해서 연산된 총수를 비교하고, 상기 비교결과에 따라서 상기 외부메모리에서 상기 비트셀어레이로의 상기 데이타전송동작을 제어하는 타이밍신호를 선택적으로 발생하기 위한 타이밍신호 발생수단을 포함하며, 상기 단일 데이타는 상기 리드수단이 상기 제1신호에 응답해서 상기 여러개의 출력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되고, 상기 여러개의 데이타는 상기 리드수단이 상기 제2신호에 응답해서 상기 여러개의 출력신호선을 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되는 정보제어LSI.
- 제3항에 있어서, 상기 라이트수단과 상기 리드수단의 각각은 상기 라이트수단과 상기 리드수단의 각각의 계수값이 초기값으로 되돌아갈 때마다 스테이터스가 반전하는 스테이터스인디게이터를 포함하고, 상기 비교수단은 상기 라이트수단 및 상기 리드수단의 각각의 상기 스테이터스의 일치/불일치상태에 따라서 상기 라이트수단 및 상기 리드수단의 각각의 계수값의 대소관계를 결정하는 정보제어LSI.
- 제4항에 있어서, 상기 연산수단은 상기 비교수단에 의해서 비교되는 상기 스테이터스의 일치상태에 따라서 축적된 데이타수를 상기 라이트수단의 계수값에서 상기 리드수단의 계수값을 감산하는 방법으로 획득하기 위한 제1수단 및 상기 비교된 스테이터스의 불일치상태에 따라서 축적된 데이타수를 상기 단위기억영역의 총수에 상기 라이트수단의 계수값을 가산한 값에서 상기 리드수단의 계수값을 감산하는 방법으로 획득하기 위한 제2수단을 포함하는 정보제어LSI.
- 제5항에 있어서, 상기 타이밍신호는 전송준비신호이고, 상기 개시데이타는 상기 데이타전송동작을 명령하기 위해 상기 전송준비신호의 어서트상태를 결정하기 위한 데이타이고, 상기 정지데이타는 상기 전송준비신호의 네게이트상태를 결정하기 위한 데이타이고, 상기 타이밍신호 발생수단은 상기 제1레지스터에 설정되어 있는 상기 어서트상태와 상기 연산수단에 의해서 계산되는 상기 축적된 데이타수의 비교결과에 따라서 어서트하는 타이밍을 결정하기 위해 상기 전송준비신호를 발생하기 위한 수단을 포함하는 정보제어LSI.
- 중앙처리장치, 다이렉트 메모리액세스컨트롤러 및 직렬로 전송해야 할 데이타를 축적하는 여러개의 단위기억영역을 갖는 비트셀 어레이를 포함하는 선입선출방식의 정보제어LSI로써, 라이트되어야 할 데이타의 라이트위치를 상기 비트셀어레이에서 선택하기 위한 라이트수단, 라이트된 데이타의 리드가 가능하고 단일의 리드위치 및 여러개의 리드위치중 어느 한쪽을 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선, 상기 중앙처리장치로부터의 제1제어신호에 응답하고, 상기 단일의 리드위치로 부터의 단일 데이타의 리드동작을 지시하는 제1신호 및 상기 중앙처리장치로 부터의 제2제어신호에 응답하고, 상기 여러개의 리드위치로부터의 여러개의 데이타의 리드동작을 지시하는 제2신호를 선택적으로 출력하는 리드제어수단, 비교결과신호를 출력하기 위해 상기 라이트수단의 선택된 값과 상기 리드수단의 선택된 값을 비교하기 위한 비교수단, 상기 비교결과에 따라서 상기 라이트수단의 선택된 값, 상기 리드수단의 선택된 값 및 상기 비트셀어레이중의 상기 여러개의 비트셀을 갖는 단위기억영역의 총수를 사용하는 것에 의해서 상기 비트셀어레이중의 축적데이타수를 연산하기 위한 연산수단, 외부메모리에서 상기 비트셀어레이에 데이타전송동작을 요구할 때 상기 비트셀어레이중의 유효한 단위기억영역의 제1의 소정수에 해당하는 개시데이타를 축적하기 위한 제1레지스터, 상기 외부메모리에서 상기 비트셀어레이에 데이타전송동작의 정지를 요구할 때 상기 비트셀어레이중의 상기 유효한 단위기억영역의 제2의 소정수에 해당하는 정지데이타를 축적하기 위한 제2레지스터 및 상기 제1 및 제2 레지스터와 상기 연산수단에 결합되고, 상기 제1 및 제2레지스터중에 축적되어 있는 상기 개시데이타 및 상기 정지데이타와 상기 연산수단에 의해서 연산된 총수를 비교하고, 상기 비교결과에 따라서 상기 다이렉트메모리액세스 컨트롤러에 타이밍신호를 선택적으로 발생하기 위한 타이밍신호 발생수단을 포함하며, 상기 단일 데이타는 상기 리드수단이 상기 제1신호에 응답해서 상기 여러개의 출력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되고, 상기 여러개의 데이타는 상기 리드수단이 상기 제2신호에 응답해서 상기 여러개의 출력신호선을 거쳐서 병렬적으로 상기 비트셀어레이에서 출력되고, 상기 다이렉트메모리 액서스컨트롤러는 상기 타이밍신호에 의해서 상기 외부메모리에서 상기 비트셀어레이로의 상기 데이타전송동작을 제어하는 정보제어LSI.
- 매트릭스형으로 배치되어 있는 여러개의 비트셀을 포함하는 비트셀어레이를 갖는 선입선출방식의 반도체기억장치로써, 단일 라이트위치와 여러개의 라이트위치의 한쪽을 상기 비트셀어레이에서 선택하기 위한 라이트수단, 상기 비트셀어레이에서 리드되어야 할 데이타의 리드위치를 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선 및 단일 데이타의 제1라이트동작을 나타내는 제1신호와 상기 여러개의 라이트위치중 여러개의 데이타의 제2라이트동작을 나타내는 제2신호를 선택적으로 출력하기 위한 라이트제어수단을 포함하며, 상기 단일 데이타는 상기 라이트수단이 상기 제1신호에 응답해서 상기 여러개의 입력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이에 입력되는 반도체기억장치.
- 제8항에 있어서, 상기 라이트제어수단은 중앙처리장치로 부터의 제어신호에 응답해서 상기 제1 및 제2신호중 어느 한쪽을 선택적으로 출력하는 반도체기억장치.
- 매트릭스형으로 배치되고, 제1의 여러개의 비트셀을 포함하는 제1비트셀어레이와 제2의 여러개의 비트셀을 포함하는 제2비트셀어레이를 갖는 선입선출방식의 반도체기억장치로써, 라이트되어야 할 데이타의 라이트위치를 상기 제1비트셀어레이에서 선택하기 위한 제1라이트수단, 단일 라이트위치와 여러개의 라이트위치의 한쪽을 상기 제2비트셀어레이에서 선택하기 위한 제2라이트수단, 라이트된 데이타의 리드가 가능하고 상기 제1비트셀어레이중의 단일 리드위치 및 여러개의 리드위치중 어느 한쪽을 선택하기 위한 제1리드수단, 상기 제2비트셀어레이에서 리드되어야 할 데이타의 리드위치를 선택하기 위한 제2리드수단, 상기 제1의 여러개의 비트셀에 결합되는 여러개의 제1입력신호선, 상기 제2의 여러개의 비트셀에 결합되는 여러개의 제2입력신호선, 상기 제1의 여러개의 비트셀에 결합되는 여러개의 제1출력신호선, 상기 제2의 여러개의 비트셀에 결합되는 여러개의 제2출력신호선, 제1의 단일 데이타의 제1리드동작을 나타내는 제1신호와 상기 여러개의 리드위치로 부터의 제1의 여러개의 데이타의 제2리드동작을 나타내는 제2신호를 선택적으로 출력하는 리드제어수단 및 제2의 단일 데이타의 제1라이트동작을 나타내는 제3신호와 상기 여러개의 라이트위치중의 제2의 여러개의 데이타의 제2의 라이트동작을 나타내는 제4신호를 선택적으로 출력하는 라이트제어수단을 포함하며, 상기 제1의 단일 데이타는 상기 제1리드수단이 상기 제1신호에 응답해서 상기 여러개의 제1출력신호선의 일부를 거쳐서 병렬적으로 상기 제1비트셀어레이에서 출력되고, 상기 제1의 여러개의 데이타는 상기 제1리드수단이 상기 제2신호에 응답해서 상기 여러개의 제1출력신호선을 거쳐서 병렬적으로 상기 제1비트셀어레이에서 출력되고, 상기 제2의 단일 데이타는 상기 제2라이트수단이 상기 제3신호에 응답해서 상기 여러개의 제2출력신호선의 일부를 거쳐서 병렬적으로 상기 제2비트셀어레이에서 출력되고, 상기 제2의 여러개의 데이타는 상기 제2라이트수단이 상기 제4신호에 응답해서 상기 여러개의 제2출력신호선을 거쳐서 병렬적으로 상기 제2비트셀어레이에서 출력되는 반도체기억장치.
- 제10항에 있어서, 상기 리드제어수단은 중앙처리장치로 부터의 제어신호에 응답해서 상기 제1 및 제2신호중 어느 한쪽을 선택적으로 출력하고, 상기 라이트제어수단은 상기 중앙처리장치로 부터의 제어신호에 응답해서 상기 제3 및 제4신호중 어느 한쪽을 선택적으로 출력하는 반도체기억장치.
- 직렬로 전송되어야 할 데이타를 축적하는 여러개의 단위축적영역을 포함하는 비트셀어레이를 갖는 선입선출방식의 정보제어LSI로써, 단일 라이트위치 및 여러개의 라이트위치의 한쪽을 상기 비트셀어레이에서 선택하기 위한 라이트수단, 상기 비트셀어레이에서 리드되어야 할 데이타의 리드위치를 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선, 상기 단일 라이트위치중의 단일 데이타의 제1라이트동작을 지시하는 제1신호 및 상기 여러개의 라이트위치중의 여러개의 데이타의 제2라이트동작을 지시하는 제2신호를 선택적으로 출력하는 라이트제어수단, 비교결과신호를 출력하기 위해 상기 라이트수단의 값과 상기 리드수단의 값을 비교하기 위한 비교수단, 상기 비교결과에 따라서 상기 라이트수단의 값, 상기 리드수단의 값과 상기 비트셀어레이중의 상기 여러개의 비트셀을 갖는 단위기억영역의 총수를 사용하는 것에 의해서 상기 비트셀어레이중의 축적데이타수를 연산하기 위한 연산수단, 외부메모리에서 상기 비트셀어레이에 데이타전송동작을 요구할 때 상기 비트셀어레이중의 유효한 단위기억영역의 제1의 소정수에 해당하는 개시데이타를 축적하기 위한 제1레지스터, 상기 외부메모리에서 상기 비트셀어레이에 데이타전송동작의 정지를 요구할 때 상기 비트셀어레이중의 상기 유효한 단위기억영역의 제2의 소정수에 해당하는 정지데이타를 축적하기 위한 제2레지스터 및 상기 제1 및 제2레지스터와 상기 연산수단에 결합되고, 상기 제1 및 제2레지스터중에 축적되어 있는 상기 개시데이타 및 상기 정지데이타와 상기 연산수단에 의해서 연산된 총수를 비교하고, 상기 비교결과에 따라서 상기 외부메모리에서 상기 비트셀어레이로의 상기 데이타전송동작을 제어하는 타이밍신호를 선택적으로 발생하기 위한 타이밍신호 발생수단을 포함하며, 상기 단일 데이타는 상기 라이트수단이 상기 제1신호에 응답해서 상기 여러개의 입력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이에 입력되고, 상기 여러개의 데이타는 상기 라이트수단이 상기 제2신호에 응답해서 상기 여러개의 입력신호선을 거쳐서 병렬적으로 상기 비트셀어레이에 입력되는 정보제어LSI.
- 제12항에 있어서, 상기 라이트수단과 상기 리드수단의 각각은 상기 라이트수단과 상기 리드수단의 각각의 계수값이 초기값으로 되돌아갈 때마다 스테이터스가 반전하는 스테이터스 인디케이터를 포함하고, 상기 비교수단은 상기 라이트수단 및 상기 리드수단의 각각의 상기 스테이터스의 일치/불일치상태에 따라서 상기 라이트수단 및 상기 리드수단의 각각의 계수값의 대소관계를 결정하는 정보제어LSI.
- 제13항에 있어서, 상기 타이밍신호는 전송준비신호이고, 상기 개시데이타는 상기 데이타전송동작을 명령하기 위해 상기 전송준비신호의 어서트상태를 결정하기 위한 데이타이고, 상기 정지데이타는 상기 전송준비신호의 네게이트상태를 결정하기 위한 데이타이고, 상기 타이밍신호 발생수단을 상기 제1레지스터에 설정되어 있는 상기 어서트상태와 상기 연산수단에 의해서 계산되는 상기 축적된 데이타수의 비교결과에 따라서 어서트하는 타이밍을 결정하기 위해 상기 전송준비신호를 발생하기 위한 수단을 포함하는 정보제어LSI.
- 중앙처리장치, 다이렉트메모리 액세스컨트롤러 및 직렬로 전송해야 할 데이타를 축적하는 여러개의 비트셀을 갖는 단위기억영역을 여러개 갖는 비트셀어레이를 포함하는 선입선출방식의 정보제어LSI로써, 단일 라이트위치 및 여러개의 라이트위치중의 한쪽을 상기 비트셀어레이에서 선택하기 위한 라이트수단, 상기 비트셀어레이에서 리드되어야 할 데이타의 리드위치를 선택하기 위한 리드수단, 상기 여러개의 비트셀에 결합되는 여러개의 입력신호선, 상기 여러개의 비트셀에 결합되는 여러개의 출력신호선, 상기 중앙처리장치로 부터의 제1제어신호에 응답해서 상기 단일 라이트 위치중의 단일 데이타의 제1라이트동작을 지시하는 제1신호 및 상기 중앙처리장치로부터의 제2제어신호에 응답해서 상기 여러개의 라이트위치중의 여러개의 데이타의 제2라이트동작을 지시하는 제2신호를 선택적으로 출력하는 라이트제어수단, 비교결과신호를 출력하기 위해 상기 라이트수단의 선택된 값과 상기 리드수단의 선택된 값을 비교하기 위한 비교수단, 상기 비교결과에 따라서 상기 라이트수단의 선택된 값, 상기 리드수단의 선택된 값과 상기 비트셀어레이중의 상기 단위기억영역의 총수를 사용하는 것에 의해서 상기 비트셀어레이중의 축적데이타수를 연산하기 위한 연산수단, 외부메모리에서 상기 비트셀어레이에 데이타전송동작을 요구할 때 상기 비트셀어레이중의 유효한 단위기억영역의 제1의 소정수에 해당하는 개시데이타를 축적하기 위한 제1레지스터, 상기 외부메모리에서 상기 비트셀어레이에 데이타전송동작의 정지를 요구할 때 상기 비트셀어레이중의 상기 유효한 단위기억영역의 제2의 소정수에 해당하는 정지데이타를 축적하기 위한 제2레지스터 및 상기 제1 및 제2레지스터와 상기 연산수단에 결합되고, 상기 제1 및 제2레지스터중에 축적되어 있는 상기 개시데이타 및 상기 정지데이타와 상기 연산수단에 의해서 연산된 총수를 비교하고, 상기 비교결과에 따라서 상기 다이렉트메모리 액세스컨트롤러에 타이밍신호를 선택적으로 발생하기 위한 타이밍신호 발생수단을 포함하며, 상기 단일의 데이타는 상기 라이트수단이 상기 제1신호에 응답해서 상기 여러개의 입력신호선의 일부를 거쳐서 병렬적으로 상기 비트셀어레이중에 입력되고, 상기 여러개의 데이타는 상기 라이트수단이 상기 제2신호에 응답해서 상기 여러개의 입력신호선을 거쳐서 병렬적으로 상기 비트셀어레이중에 입력되고, 상기 다이렉트메모리 엑세스컨트롤러는 상기 타이밍신호에 의해서 상기 외부메모리에서 상기 비트셀어레이로의 상기 데이타전송동작을 제어하는 정보제어LSI.
- 제15항에 있어서, 상기 라이트수단과 상기 리드수단의 각각은 상기 라이트수단과 상기 리드수단의 각각의 계수값이 초기값으로 되돌아갈 때마다 스테이터스가 반전하는 스테이터스 인디케이터를 포함하고, 상기 비교수단은 상기 라이트수단 및 상기 리드수단의 각각의 상기 스테이터스 일치/불일치상태에 따라서 상기 라이트수단 및 상기 리드수단의 각각의 계수값의 대소관계를 결정하는 정보제어LSI.
- 제16항에 있어서, 상기 타이밍신호는 전송준비신호이고, 상기 개시데이타는 상기 데이타전송동작을 명령하기 위해 상기 전송준비신호의 어서트상태를 결정하기 위한 데이타이고, 상기 정지데이타는 상기 전송준비신호의 네게이트상태를 결정하기 위한 데이타이고, 상기 타이밍신호 발생수단은 상기 제1레지스터에 설정되어 있는 상기 어서트상태와 상기 연산수단에 의해서 계산되는 상기 축적된 데이타수의 비교결과에 따라서 어서트하는 타이밍을 결정하기 위해 상기 전송준비신호를 발생하기 위한 수단을 포함하는 정보제어LSI.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019940020631A KR0182778B1 (ko) | 1988-09-08 | 1994-08-22 | 반도체기억장치 |
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63-224931 | 1988-09-08 | ||
JP63224931A JP2818418B2 (ja) | 1988-09-08 | 1988-09-08 | 半導体記憶装置 |
JP24400288 | 1988-09-30 | ||
JP63-244002 | 1988-09-30 | ||
JP1149241A JP2849115B2 (ja) | 1988-09-30 | 1989-06-12 | 半導体メモリデバイス,通信制御lsi及び通信制御システム |
JP1-149241 | 1989-06-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR900005437A KR900005437A (ko) | 1990-04-14 |
KR0168832B1 true KR0168832B1 (ko) | 1999-02-01 |
Family
ID=67739560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019890012110A KR0168832B1 (ko) | 1988-09-08 | 1989-08-25 | 반도체기억장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR0168832B1 (ko) |
-
1989
- 1989-08-25 KR KR1019890012110A patent/KR0168832B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR900005437A (ko) | 1990-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5426612A (en) | First-in first-out semiconductor memory device | |
US4967398A (en) | Read/write random access memory with data prefetch | |
JP3992874B2 (ja) | データプロセッサ、同期ram、周辺装置とシステムクロックを含むシステム | |
US4733346A (en) | Data processor with multiple register blocks | |
US4412286A (en) | Tightly coupled multiple instruction multiple data computer system | |
US4115854A (en) | Channel bus controller | |
CN1570907B (zh) | 多处理器系统 | |
US5859990A (en) | System for transferring data segments from a first storage device to a second storage device using an alignment stage including even and odd temporary devices | |
US4371924A (en) | Computer system apparatus for prefetching data requested by a peripheral device from memory | |
KR920008448B1 (ko) | 데이터 프로세서 | |
US5828891A (en) | Multilevel interrupt device | |
FI74158C (fi) | Kopplingsanordning foer givande av styrorder i ett mikrocomputersystem. | |
US20040068590A1 (en) | Data processor | |
JPH0264839A (ja) | チャネル装置 | |
KR920002831B1 (ko) | 데이타 전송 제어 시스템 | |
KR0168832B1 (ko) | 반도체기억장치 | |
KR0182778B1 (ko) | 반도체기억장치 | |
US20020004861A1 (en) | DMA controller in which bus access ratio can be set | |
EP0546354B1 (en) | Interprocessor communication system and method for multiprocessor circuitry | |
KR920010977B1 (ko) | 개선된 성능의 메모리 버스 아키텍쳐(memory bus architecture) | |
US7240144B2 (en) | Arbitration of data transfer requests | |
JP2849115B2 (ja) | 半導体メモリデバイス,通信制御lsi及び通信制御システム | |
EP0269370B1 (en) | Memory access controller | |
US5889966A (en) | Data processor having bus controller for controlling a plurality of buses independently of each other | |
US5845312A (en) | System for accessing dynamic random access memory where the logic/control circuit temporarily stops upon word line switching |
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 | ||
G170 | Publication of correction | ||
FPAY | Annual fee payment |
Payment date: 20060925 Year of fee payment: 9 |
|
LAPS | Lapse due to unpaid annual fee |