KR100498233B1 - 선입선출 메모리 회로 및 그 구현 방법 - Google Patents
선입선출 메모리 회로 및 그 구현 방법 Download PDFInfo
- Publication number
- KR100498233B1 KR100498233B1 KR10-2002-0066844A KR20020066844A KR100498233B1 KR 100498233 B1 KR100498233 B1 KR 100498233B1 KR 20020066844 A KR20020066844 A KR 20020066844A KR 100498233 B1 KR100498233 B1 KR 100498233B1
- Authority
- KR
- South Korea
- Prior art keywords
- memory
- read
- write
- memories
- address
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Dram (AREA)
Abstract
본원발명은 저속의 복수개 메모리를 이용하여 고속의 선입선출 동작을 수행하는 선입선출 메모리 회로는 표준 라이브러리 메모리를 이용한 선입선출 메모리 회로에 관한 것으로, N(N>1) 개의 동기식 듀얼 포트 메모리들로 구성된 메모리 블록과, N 개의 동기식 듀얼 포트 메모리들의 읽기 어드레스를 지정하는 단일 읽기 포인터와, N 개의 메모리들의 쓰기 어드레스를 지정하는 단일 쓰기 포인터와, 읽기/쓰기 어드레스에 따라 N 개의 메모리들 중에서 어느 하나의 메모리를 선택하고, 소스 클럭 신호를 n(n=N, n>1) 분주된 n 개의 읽기/쓰기 클럭 신호로 생성하며, 1/n 주기 차이를 갖는 n 개의 읽기/쓰기 클럭 신호를 상기 선택된 메모리부터 해당 메모리에 직접 분배하여 데이터를 입출력시키는 메모리 제어부를 포함한다.
이와 같이, 본 발명은 주문형 반도체 설계에 있어서 표준 라이브러리(standard cell library)를 이용하여 생성된 저속 메모리로 고속의 선입선출 메모리 구성이 가능하므로, 메모리와 일반 로직 회로의 속도 격차에 따른 선입선출 메모리의 비효율성을 제거하고, 간단하면서도 효율적인 제어회로를 통하여 설계시간의 단축과 공정/설계 변경에 따른 설계 비용을 최소화 할 수 있다.
Description
본 발명은 선입선출 메모리에 관한 것으로, 특히 선입선출 메모리의 입출력 속도를 향상시키기 위한 선입선출 메모리 회로와 그 구현 방법에 관한 것이다.
통상적인 메모리에서 선입선출이라 함은 데이터를 저장하고 회수하는 방법을 지칭하는 용어로서 메모리에 먼저 저장된 데이터가 먼저 회수되는 방법을 일컫는다.
이하, 첨부된 도면을 이용하여 종래 기술에 의한 선입선출 메모리 회로에 대해서 설명한다.
도 1은 종래 기술에 의한 선입선출 메모리 회로를 도시한 블록도이고, 도 2는 종래의 선입선출 메모리 회로의 입출력 상태를 도시한 도면이다.
도 1에 도시된 바와 같이, 선입선출 메모리 회로는 비트 n 비트 ×m 워드(word)의 메모리(60), 메모리(60)의 선입선출 동작을 제어하기 위한 메모리 제어부(20), 읽기 위치와 쓰기 위치를 위한 읽기 및 쓰기 포인터(30, 40) 및 플래그 발생기(50)를 포함한다.
상기와 같은 구조를 갖는 선입선출 메모리 회로에서 메모리 제어부(20)는, 도 2에 도시된 바와 같이, 입력 기준 클록 신호(Clk)의 에지(edge) 부분에 동기 되어 쓰기 신호(WR)에 따라 입력 데이터(DI0∼DIn-1)를 메모리(60)에 저장하고, 저장된 데이터를 읽기 신호(RD)에 따라 순차적으로 데이터를 출력한다.
다시말해서, 메모리 제어부(20)는 1st, 2nd, 3rd, …, nth의 입력 데이터(DI0∼DIn-1)를 쓰기 신호(WR)의 입력에 따라 클럭 신호의 에지 부분과 동기 되어 메모리(60)에 순차적으로 기록되고, 읽기 신호(RD)의 입력에 따라 클럭 신호의 에지 부분과 동기 되어 메모리(60)에 입력된 데이터를 순차적으로 출력한다.
상기와 같은 선입선출 메모리 회로는 내부 메모리의 구성이 비트의 폭으로 고정되어 있어 입출력 데이터 비트폭의 확장이 어려우며, 선입선출 메모리 회로의 동작 속도가 전적으로 내부에 사용된 메모리의 동작 속도에 제한되기 때문에 속도 향상에 어려움이 있다.
최근에는 반도체 제조 기술의 발달로 트랜지스터의 크기가 점차적으로 소형화됨에 따라 메모리의 동작 속도가 빨라져 전체적인 동작 속도가 향상되고 있으나, 전체 반도체 회로의 동작은 더욱 고속화되어 가고 있어서, 전체 반도체 회로의 동작 속도가 메모리 속도에 의해서 제한되고 있다.
특히, 표준 라이브러리(standard cell library)를 이용하는 ASIC 회로의 경우에 사용되는 메모리는 메모리 컴파일러(memory compiler)를 사용하여 생성됨으로, 합성된 메모리는 동일 공정의 논리 회로 라이브러리의 동작 속도보다 매우 늦어지는 문제점이 있다. 설계하고자 하는 시스템에 사용되는 선입선출 메모리의 동작 속도가 생성된 메모리의 동작 속도보다 빠른 동작을 요구할 경우, 기존의 ASIC 회로 설계에서는 사용하는 공정을 상향 조정하여 메모리의 속도를 올려야한다. 이에 따라 설계 및 비용이 증가되는 문제점이 있다.
상기와 같은 문제점을 해결하기 위한 선행 특허에 대해서 살펴보면, 먼저 삼성 전자에서 출원한 특허등록번호가 “10-0223626”인 선입선출 메모리 회로에 대해서 간략하게 설명하면 아래와 같다.
선입선출 메모리 회로는 비트폭을 두 배로 늘려 사용할 수 없는 메모리를 두 배의 비트폭으로 늘려서 사용할 수 있도록 하는 선입선출(FIFO) 메모리 구조를 갖는다. 다시 말해서, 선입선출 메모리 회로는 바이트 단위의 비트폭을 갖는 메모리(DRAM)를 2개 사용하며, 제어 로직부를 두어 바이트 모드에 응답하여 하나의 메모리에 먼저 읽기/쓰기를 수행하도록 제어하고, 하나의 메모리 사용이 끝나면 다른 메모리를 사용하도록 제어한다. 제어 로직부는 바이트 모드뿐만 아니라 워드 모드에 대응되는 2개의 메모리에 읽기/쓰기를 가능하도록 한다. 읽기 및 쓰기 포인트는 바이트/워드 모드에 대응하여 각 메모리에 어드레스를 지정하고, 데이터 분배부와 결합부는 각 모드에 해당하는 형식으로 입력 데이터에 대해서 읽기/쓰기 동작을 수행한다.
그러나, 상기와 같은 선입선출 메모리 회로는 메모리의 데이터 폭을 확장할 수 있는 있으나, 여전히 주어진 공정에서 선입선출 속도는 내부 메모리의 동작 속도에 제한되는 문제점이 있다.
다음으로, 일본 전기에서 출원한 특허출원번호가 “4-201659”인 FIFO 메모리에 대해서 간략하게 설명하면 아래와 같다.
본 일본 특허는 선입선출 메모리의 전체 속도를 향상시키면서 고속화시키기 위한 방법으로 외부에서의 읽기 신호의 시간 간격을 줄임으로써 메모리의 속도를 고속화시키기 위한 방법과 이를 위한 하드웨어로써, 그 구성은 내부의 메모리로서 램을 사용하지 않고 8비트의 비트폭을 가지는 두개의 쉬프트 레지스터(ISR : Indicator Shift Register, DSR : Data Shift Register) 블록을 사용하며 입력 전환 회로, 출력 전환 회로, 입력 전환 타이밍 발생기 및 출력 전환 타이밍 발생기로 이루어진다. 상기와 같은 구조를 갖는 선입선출 메모리의 동작은 입력되는 데이터를 입력 전환 회로의 제어에 의해서 두개의 쉬프트 레지스터에 교대로 저장한 후, 저장된 데이터를 다시 출력 전환 회로의 제어에 의해 두개의 쉬프트 레지스터로부터 교대로 출력한다.
그러나, 상기와 같은 선입선출 메모리는 비트폭 확장보다는 속도 향상을 위해 램 대신 두개의 쉬프트 레지스터를 사용하였으나, 일반적으로 쉬프트 레지스터를 데이터의 저장 회로로 사용할 경우 설계가 복잡해지고, 동일 저장용량을 사용할 경우 일반 메모리에 비해 회로의 면적이 커지기 때문에 고용량 회로 구현이 어려운 문제점이 있다.
또한, 램을 이용한 선입선출 메모리는 큐(Queue) 동작이 가능하나 쉬프트 레지스터로 이루어진 선입선출 메모리는 큐의 동작이 불가능하며 처음 입력된 데이터는 쉬프트레지스터의 깊이에 해당되는 만큼의 지연시간을 가지게되므로, 지연시간의 해소와 큐 동작의 구현을 위해 별도의 회로를 부가하여 하는 문제점이 있다.
다음으로, 텍사스 인스트루먼트(Texas Instrument)에서 출원한 특허등록번호가 “5,255,242”인 순차 메모리(sequential memory)는 복수개의 인터리브된(interleaved) 메모리 셀을 사용하여 데이터의 입출력 속도를 향상시킨다.
그 구조는 단일 비트폭을 가지는 N개의 저장 메모리 셀을 가지는 2개의 메모리와, 데이터 접근 제어 회로 및 출력 버퍼 회로를 포함하며, 연속적인 메모리의 동작은 미리 지정된 순서로 메모리 셀에 고속으로 데이터의 읽기/쓰기를 수행하는 신호를 발생하고, 출력 버퍼 회로를 제어하여 고속의 읽기/쓰기 순차 메모리 동작을 구현한다.
상기와 같은 연속적인 메모리는 내부의 데이터 저장 장치로서 특화된 메모리 셀을 사용하고 있으며, 단일 비트폭을 가지는 N개의 독립적인 메모리셀 블록을 사용함으로 복수개 데이터 비트폭을 구현할 경우 선입선출 회로가 복잡해지는 문제점이 있다.
본 발명의 목적은 이와 같은 종래 기술의 문제점을 해결하기 위한 것으로, 저속의 복수개 메모리를 이용하여 고속의 선입선출 동작을 수행하는 선입선출 메모리 회로와 그 구현 방법을 제공하고자 한다.
상기와 같은 목적을 달성하기 위하여 본 발명은, 표준 라이브러리의 동기식 듀얼 포트 메모리를 이용한 선입선출 메모리 회로에 있어서, N(N>1) 개의 동기식 듀얼 포트 메모리들로 구성된 메모리 블록과, 상기 N 개의 동기식 듀얼 포트 메모리들의 읽기 어드레스를 지정하는 단일 읽기 포인터와, 상기 N 개의 동기식 듀얼 포트 메모리들의 쓰기 어드레스를 지정하는 단일 쓰기 포인터와, 상기 읽기/쓰기 어드레스에 따라 상기 N 개의 메모리들 중에서 어느 하나의 메모리를 선택하고, 소스 클럭 신호를 n(n=N, n>1) 분주된 n 개의 읽기/쓰기 클럭 신호로 생성하며, 상기 1/n 주기 차이를 갖는 n 개의 읽기/쓰기 클럭 신호를 상기 선택된 메모리부터 해당 메모리에 직접 분배하여 데이터를 입출력시키는 메모리 제어부를 포함한다.
또한, 본 발명은 N 개의 동기식 듀얼 포트 메모리를 선입선출 동작시키는 선입선출 메모리 회로의 동작 방법에 있어서, 상기 선입선출 메모리 회로에 입력되는 소스 클럭 신호를 n 분주된 n 개의 클럭 신호로 생성하는 단계와, 상기 읽기/쓰기 포인터로부터 읽기/쓰기 어드레스를 입력받는 단계와, 상기 읽기/쓰기 어드레스에 따라 상기 N 개의 메모리들 중에서 어느 하나를 선택하는 단계와, 상기 읽기/쓰기 어드레스에 따라 1/n 주기 차이를 가지도록 상기 각각의 n 개 클럭 신호를 상기 선택된 메모리부터 해당 메모리까지 분배하여 출력하는 단계와, 상기 출력된 클럭 신호에 동기하여 데이터를 입출력시키는 단계를 포함한다.
본 발명의 실시 예는 다수개가 존재할 수 있으며, 이하에서 첨부한 도면을 참조하여 바람직한 실시 예를 통해 본 발명의 목적, 특징 및 이점들에 대하여 상세히 설명하기로 한다.
도 3은 본 발명의 바람직한 실시 예에 따른 선입선출 메모리 회로의 구조를 나타내는 블록도이고, 도 4는 본 발명에 따른 선입선출 메모리 회로에서 메모리 제어부의 내부 구조를 도시한 블록도이고, 도 5는 본 발명에 따른 선입선출 메모리의 데이터 입출력 상태도이고, 도 6은 본 발명의 선입선출 메모리에서 클럭 분배 과정을 도시한 흐름도이고, 도 7은 본 발명에 따른 선입선출 메모리 회로의 확장한 예를 도시한 예시도이다.
도 3에 도시된 바와 같이, 선입선출 메모리 회로는 메모리 블록(100), 메모리 제어부(200), 쓰기/읽기 포인터(300, 400), 출력 다중화기(500) 및 플래그 발생기(600)를 포함한다.
메모리 블록(100)은 복수개의 동기식 듀얼 메모리들로 구성되는데, 그 예로서 인터리브하게 구성된 저속 싱크러너스(synchronous) 제 1, 2메모리(110, 120)로 이루어지며, 제 1, 2메모리(110, 120)는 읽기/쓰기 어드레스의 최하위비트(LSB, least significant bit)를 사용하여 짝수번지 메모리와 홀수번지 메모리로 구분된다.
이러한 제 1, 2메모리(110, 120)에는 메모리 제어부(200)로부터 1/2 주기 차이를 갖는 각각의 쓰기 클럭 신호들에 동기되어 입력된 데이터들을 저장하거나, 저장된 데이터를 1/2 주기 차이를 갖는 각각의 읽기 클럭 신호에 동기시켜 출력시킨다. 본 발명의 바람직한 실시 예에서는 메모리 블록(100)을 두개의 메모리를 이용하여 구성하였지만, N 개의 메모리를 이용하여 메모리 블록을 구성할 수 도 있다.
쓰기 포인터(300)는 제 1, 2 메모리(110, 120)들의 쓰기 어드레스를 지정하고, 읽기 포인터(400)는 제 1,2 메모리(110, 120)들의 읽기 어드레스를 지정한다.
메모리 제어부(200)는 읽기/쓰기 포인터(300, 400)에서 출력된 읽기/쓰기 어드레스에 따라 제 1, 2 메모리(110, 120)들 중에서 어느 하나의 메모리를 선택하고, 입력되는 소스 클럭 신호를 2 분주된 2 개의 읽기/쓰기 클럭 신호로 생성하며, 1/2 주기 차이를 갖는 각각의 2 개의 읽기/쓰기 클럭 신호를 선택된 메모리부터 해당 메모리에 출력하여 데이터를 입출력시킨다. 다시 말해서, 메모리 제어부(100)는, 도 5에 도시된 바와 같이, 소스 클럭 신호(Clk)를 입력받아 2 분주 된 두개의 읽기/쓰기 클럭 신호(RCk0, RCk1, WCk0, WCk1)를 발생시키고, 읽기/쓰기 신호의 활성상태에 따라 데이터를 두개의 읽기/쓰기 클럭 신호에 동기시켜 제 1, 2 메모리(110, 120)에 입출력시킨다. 이때 각각의 두개의 읽기/쓰기 클럭 신호는, 도 5에 도시된 바와 같이, 1/2 주기 차이를 가지기 때문에 제 1 메모리(110)에서 데이터가 입출력되는 중간 시점에서, 동시에 제 2 메모리(120)의 데이터가 입출력된다. 이후, 제 2 메모리(120)에 두개의 읽기/쓰기 클럭 신호 중에 어느 하나에 동기되어 데이터가 입력되는 중간시점에서, 동시에 제 1 메모리(110)에 다른 하나의 읽기/쓰기 클럭 신호에 동기되어 데이터가 입력된다. 이와 같은 과정을 통해 저속의 메모리를 이용하여 선입선출 메모리의 입출력 속도를 향상시킬 수 있다. 메모리 제어부(200)는 읽기/쓰기 포인터(300, 400)에서 지정한 어드레스가 홀수일 때 홀수번지 메모리를 선택하고, 짝수인 경우에는 짝수번지를 갖는 메모리를 선택한다. 먼저 선택된 메모리를 억세스하기 위한 읽기/쓰기 클럭 신호는 다른 읽기/쓰기 클럭 신호와 1/2주기 차이가 있다. 이러한 두개의 읽기/쓰기 클럭 신호의 주기차이는 입출력되는 데이터들의 충돌을 방지하며 입출력 속도를 향상시킬 수 있다.
메모리 제어부(200)의 구성은, 도 4에 도시된 바와 같이, 소스 클럭 신호(Clk)를 2 분주시켜 두개의 클럭 신호(Ck0, Ck1)를 생성시키는 클럭 분주기(210)와, 읽기/쓰기 포인터(300, 400)에서 지정한 읽기/쓰기 어드레스(RPTR, WPTR)의 홀수 또는 짝수 여부에 따라 두개의 클럭 신호를 읽기/쓰기 클럭 신호(RCk0, RCk1, WCk0, WCk1)로 분배하여 메모리 블록(100)에 출력시키는 클럭 분배기(220)와, 읽기 포인터(400)에서 지정한 읽기 어드레스를 기 설정된 만큼 감산시키는 감산기(230)와, 읽기 클럭 신호에 따라 메모리들에서 출력되는 데이터들 중에서 어느 하나를 선택하기 위한 선택 신호(SEL)를 출력하는 선택기(240)를 포함한다.
클럭 분주기(210)에서 2분주된 읽기/쓰기 클럭 신호들은 서로 반전된 신호로써, 하나의 읽기/쓰기 클럭 신호(Ck0)가 다른 하나의 읽기/쓰기 클럭 신호(Ck1)보다 1/2 주기가 빠르다.
클럭 분배기(220)는 읽기/쓰기 어드레스가 짝수인 경우에 1/2주기가 빠른 읽기/쓰기 클럭 신호(RCk0, WCk0)를 제 1, 2 메모리(110, 120)들 중에서 짝수번지를 갖는 메모리에 출력하고 다른 읽기/쓰기 클럭 신호(RCk1, WCk1)를 홀수번지를 갖는 메모리에 출력하며, 읽기/쓰기 어드레스가 홀수인 경우에 1/2주기가 클럭 신호를 빠른 읽기/쓰기 클럭 신호(RCk0, WCk0)를 제 1, 2 메모리(110, 120)들 중에서 홀수번지를 갖는 메모리에 출력하고 다른 읽기/쓰기 클럭 신호(RCk1, WCk1)를 짝수번지를 갖는 메모리에 출력한다.
감산기(230)는 메모리에서 데이터를 출력하는 경우에 저속 메모리 사용에 의한 초기 시간이 지연되는데, 이를 방지하기 위하여 읽기 포인터(400)에서 지정한 읽기 어드레스 값(RPTR)에 “1”을 감산시킨 후에 감산된 어드레스(RPTR_M)를 클럭 분배기(220)와 선택기(230)에 출력한다. 이러한 감산기(230)를 이용하여 저속 메모리 사용에 따른 초기 시간 지연을 방지할 수 있다.
선택기(240)는 읽기 신호(RD), 제어 신호(CS) 및 감산된 읽기 어드레스(RPTR_M)에 응답하여 선택 신호를 발생시켜 출력 다중화기(500)에 출력한다.
출력 다중화기(500)는 선택 신호에 응답하여 읽기 클럭 신호(RCk0, RCk1)에 동기되어 제 1, 2메모리(110, 120)에서 출력되는 데이터들 중에서 어느 하나를 선택하여 출력한다. 다시 말해서, 읽기 클럭 신호(RCk0, RCk1)에 동기되어 제 1, 2 메모리(110, 120)에서 클럭 신호의 한 주기동안 데이터가 출력되는데, 출력 다중화기(500)는 선택 신호에 의해서 선택된 메모리(예, 제 1메모리)에서 출력되는 한 주기의 데이터 중에 반주기의 데이터만을 출력한 후에 다음 메모리(예, 제 2메모리)에서 출력되는 한 주기의 데이터 중에 반주기 데이터만을 출력한다.
상기와 같은 구성을 갖는 선입선출 메모리 회로에서 읽기/쓰기 동작 시에 클럭을 분배하는 과정은 도 6을 참조하여 설명한다.
먼저, 클럭 분배기(220)는 제어 신호를 확인하여 선입선출 메모리 회로가 선입선출 동작이 있는지의 여부를 판단한다(S700, S702). 단계 S702의 판단 결과, 선입선출 동작이 있는 경우에 클럭 분배기(220)는 읽기(RD)와 쓰기(WR) 신호를 이용하여 회로의 수행중인 동작이 읽기 또는 쓰기 동작인지의 여부를 판단하고(S704), 그렇지 않은 경우에 단계 S700으로 돌아가 제어 신호의 입력 여부를 확인한다.
단계 S704의 판단 결과, 읽기 신호가 입력된 경우에, 클럭 분배기(220)는 감산기(230)를 통해 입력된 감산된 읽기 어드레스 값(RPTR_M)이 짝수인지를 판단하고(S706), 단계 S706의 판단 결과 짝수인 경우에 클럭 분주기(210)에서 출력된 2개의 클럭 신호들 중에서 반 주기가 빠른 클럭 신호(Ck0)를 제 1 메모리(110)의 읽기 클럭 신호(RCk0)로 분배하고, 다른 클럭 신호(Ck1)를 제 2 메모리(120)의 읽기 클럭 신호(RCk1)로 분배한다(S708).
단계 S706의 판단 결과 홀수인 경우에 클럭 분배기(220)는 클럭 분주기(210)에서 출력된 2개의 클럭 신호들 중에서 반 주기가 빠른 클럭 신호(Ck0)를 제 2 메모리(120)의 읽기 클럭 신호(RCk1)로 분배하고, 다른 클럭 신호(Ck1)를 제 1 메모리(110)의 읽기 클럭 신호(RCk0)로 분배한다(S710).
이후, 클럭 분배기(220)는 제어 신호가 유효한지의 여부를 판단한 후에 제어 신호의 입력이 없으면 클럭 신호들 분배 동작을 종료한다(S712).
단계 S704의 판단 결과, 쓰기 신호가 입력된 경우에, 클럭 분배기(220)는 쓰기 포인터(300)에서 입력된 쓰기 어드레스 값(WPTR)이 짝수인지를 판단하고(S714), 단계 S714의 판단 결과 짝수인 경우에 클럭 분주기(210)에서 출력된 2개의 클럭 신호들 중에서 반 주기가 빠른 클럭 신호(Ck0)를 제 1 메모리(110)의 쓰기 클럭 신호(WCk0)로 분배하고, 다른 클럭 신호(Ck1)를 제 2 메모리(120)의 쓰기 클럭 신호(WCk1)로 분배한다(S716).
단계 S714의 판단 결과 홀수인 경우에 클럭 분배기(220)는 클럭 분주기(210)에서 출력된 2개의 클럭 신호들 중에서 반 주기가 빠른 클럭 신호(Ck0)를 제 2 메모리(120)의 쓰기 클럭 신호(WCk1)로 분배하고, 다른 클럭 신호(Ck1)를 제 1 메모리(110)의 쓰기 클럭 신호(WCk0)로 분배한다(S718).
이후, 클럭 분배기(220)는 단계 S712로 진행하여 제어 신호가 유효한지의 여부를 판단한 후에 제어 신호의 입력이 없으면 클럭 신호들 분배 동작을 종료한다.
플래그 발생기(600)는 메모리 블록(100)의 메모리 상태에 따른 신호를 발생시키는데, 메모리의 용량이 비어있는 경우에 EF 신호를 발생시키고, 메모리 용량이 가득찬 경우에 FF 신호를 발생시키고, 메모리 용량이 중간 정도 찬 경우에 HF 신호를 발생시킨다.
본 발명에서는 설명의 편의를 위하여 메모리 블록(100)을 인터리브하게 배치된 두개의 메모리로 구성하여 메모리의 동작 속도에 두배에 해당되는 선입선출 속도를 얻는 것을 예로 들어 설명하였지만, 도 7에 도시된 바와 같이, 메모리 블록을 복수개(N) 램(100/1, 100/2 … ,100/n)(또는, 메모리)으로 인터리브(interleave)하게 배치하여 구성함으로써 N배의 선입선출 속도를 얻을 수 있다.
이때 출력 다중화기는 선택 신호에 따라 N 개의 메모리에서 출력되는 데이터들 중에서 어느 하나를 선택하고, 메모리 제어부(200)는 읽기/쓰기 어드레스에 따라 N 개의 램들 중에서 어느 하나의 램을 선택하고, 소스 클럭 신호를 n(n=N, n>1) 분주된 n 개의 읽기/쓰기 클럭 신호로 생성하며, 1/n 주기 차이를 갖는 각각의 n 개의 읽기/쓰기 클럭 신호를 선택된 램부터 해당 램에 출력하여 데이터를 입출력시킨다.
다시 말해서, 메모리 제어부의 클럭 분주기는 소스 클럭 신호를 이용하여n(n=N, n>1) 개의 클럭 신호를 발생시키고, 클럭 분배기는 읽기/쓰기 어드레스에 따라 n 개의 클럭 신호를 이용하여 적절하게 분배된 n 개의 읽기/쓰기 클럭 신호를 발생시킨다. 이때 n 개의 읽기/쓰기 클럭 신호는 1/n 주기 차이 두고 선택된 램부터 해당 램까지 출력된다.
이상 설명한 바와 같이, 본 발명은 표준 라이브러리(standard cell library)를 이용하는 ASIC 설계에서 제공 라이브러리를 사용하여 생성되는 저속 동기식 듀얼 포트 메모리를 인터리브하게 배열하고, 이들 저속 메모리를 제어하여 선입선출 메모리의 입출력 속도를 개선하는 방법이다.
또한, 본 발명은 주문형 반도체 설계에 있어서 저속 메모리 공정에서 생산된 메모리를 이용하여 고속의 선입선출 메모리 구성이 가능하므로, 메모리와 일반 로직 회로의 속도 격차에 따른 선입선출 메모리의 비효율성을 제거하고, 간단하면서도 효율적인 제어회로를 통하여 설계시간의 단축과 공정/설계 변경에 따른 설계 비용을 최소화 할 수 있다.
도 1은 종래 기술에 의한 선입선출 메모리 회로를 도시한 블록도이고,
도 2는 종래의 선입선출 메모리 회로의 입출력 상태를 도시한 도면이고,
도 3은 본 발명의 바람직한 실시 예에 따른 선입선출 메모리 회로의 구조를 나타내는 블록도이고,
도 4는 본 발명에 따른 선입선출 메모리 회로에서 메모리 제어부의 내부 구조를 도시한 블록도이고,
도 5는 본 발명에 따른 선입선출 메모리의 데이터 입출력 상태도이고,
도 6은 본 발명의 선입선출 메모리에서 클럭 분배 과정을 도시한 흐름도이고,
도 7은 본 발명에 따른 선입선출 메모리 회로의 확장한 예를 도시한 예시도이다.
<도면의 주요부분에 대한 부호의 설명>
100 : 메모리 블록 200 : 메모리 제어부
210 : 클럭 분주기 220 : 클럭 분배기
230 : 감산기 240 : 선택기
300 : 쓰기 포인터 400 : 읽기 포인터
500 : 출력 다중화기 600 : 플래그 발생기
Claims (9)
- 표준 라이브러리의 동기식 듀얼 포트 메모리를 이용한 선입선출 메모리 회로에 있어서,N(N>1) 개의 동기식 듀얼 포트 메모리들로 구성된 메모리 블록과,상기 N 개의 동기식 듀얼 포트 메모리들의 읽기 어드레스를 지정하는 단일 읽기 포인터와,상기 N 개의 동기식 듀얼 포트 메모리들의 쓰기 어드레스를 지정하는 단일 쓰기 포인터와,상기 읽기/쓰기 어드레스에 따라 상기 N 개의 메모리들 중에서 어느 하나의 메모리를 선택하고, 소스 클럭 신호를 n(n=N, n>1) 분주된 n 개의 읽기/쓰기 클럭 신호로 생성하며, 상기 1/n 주기 차이를 갖는 n 개의 읽기/쓰기 클럭 신호를 상기 선택된 메모리부터 해당 메모리에 직접 분배하여 데이터를 입출력시키는 메모리 제어부를 포함하는 선입선출 메모리 회로.
- 제 1 항에 있어서,상기 메모리 제어부는,상기 소스 클럭 신호를 n 분주시켜 n 개의 클럭 신호를 생성시키는 클럭 분주기와,상기 n 개의 클럭 신호를 상기 어드레스에 따라 n 개의 읽기/쓰기 클럭 신호로 분배시키는 클럭 분배기와,상기 읽기 어드레스를 기 설정된 만큼 감산시키는 감산기와,상기 읽기 클럭 신호에 따라 메모리들에서 출력되는 데이터들 중에서 어느 하나를 선택하기 위한 선택 신호를 출력하는 선택기를 포함하는 선입선출 메모리 회로.
- 제 2 항에 있어서,상기 선입선출 메모리 회로는,상기 선택 신호에 응답하여 상기 메모리 블록에서 출력되는 데이터들 중 선택하여 출력하는 출력 다중화기를 포함하는 선입선출 메모리 회로.
- 제 2 항에 있어서,상기 n 개의 클럭 신호들은,서로 1/n 주기 차를 갖는 것을 특징으로 하는 선입선출 메모리 회로.
- 제 2 항에 있어서,상기 감산기는,상기 읽기 어드레스 값을 “1”만큼 감산시켜 출력시키는 것을 특징으로 하는 선입선출 메모리 회로.
- 제 2 항에 있어서,상기 클럭 분배기는,상기 읽기/쓰기 어드레스 값에 따라 상기 클럭 분주기에서 생성된 n 개의 클럭 신호를 인터리브된 메모리 블록의 메모리들에게 직접 분배시키는 것을 특징으로 하는 선입선출 메모리 회로.
- 제 1 항에 있어서,상기 메모리 블록은,N 개의 동기식 듀얼 포트 메모리들이 적어도 하나 이상의 짝수 번지 메모리와 홀수번지 메모리로 인터리브하게 이루어지며, 상기 읽기/쓰기 어드레스의 최하위비트를 사용하여 각각의 메모리를 선택할 수 있도록 하는 것을 특징으로 하는 선입선출 메모리 회로.
- N 개의 동기식 듀얼 포트 메모리를 선입선출 동작시키는 선입선출 메모리 회로의 동작 방법에 있어서,상기 선입선출 메모리 회로에 입력되는 소스 클럭 신호를 n 분주된 n 개의 클럭 신호로 생성하는 단계와,상기 읽기/쓰기 포인터로부터 읽기/쓰기 어드레스를 입력받는 단계와,상기 읽기/쓰기 어드레스에 따라 상기 N 개의 메모리들 중에서 어느 하나를 선택하는 단계와,상기 읽기/쓰기 어드레스에 따라 1/n 주기 차이를 가지도록 상기 각각의 n 개 클럭 신호를 상기 선택된 메모리부터 해당 메모리까지 분배하여 출력하는 단계와,상기 출력된 클럭 신호에 동기하여 데이터를 입출력시키는 단계를 포함하는 선입선출 메모리 회로의 구현 방법.
- 제 8 항에 있어서,상기 선입선출 메모리 회로의 읽기 동작 시에,상기 읽기 어드레스 값을 기 설정된 값으로 감소시킨 후에, 상기 감소된 어드레스 값을 이용하여 상기 각각의 n 개의 클럭 신호를 상기 선택된 메모리부터 해당 메모리까지 분배시키는 것을 특징으로 하는 선입선출 메모리 회로의 구현 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066844A KR100498233B1 (ko) | 2002-10-31 | 2002-10-31 | 선입선출 메모리 회로 및 그 구현 방법 |
US10/631,763 US6853588B2 (en) | 2002-10-31 | 2003-08-01 | First-in first-out memory circuit and method for executing same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066844A KR100498233B1 (ko) | 2002-10-31 | 2002-10-31 | 선입선출 메모리 회로 및 그 구현 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040037989A KR20040037989A (ko) | 2004-05-08 |
KR100498233B1 true KR100498233B1 (ko) | 2005-07-01 |
Family
ID=32171565
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0066844A KR100498233B1 (ko) | 2002-10-31 | 2002-10-31 | 선입선출 메모리 회로 및 그 구현 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6853588B2 (ko) |
KR (1) | KR100498233B1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100518566B1 (ko) * | 2003-04-15 | 2005-10-04 | 삼성전자주식회사 | 독출 동작과 기입 동작이 동시에 수행되는 집적 회로의동작 제어 방법 |
KR100518567B1 (ko) * | 2003-04-15 | 2005-10-04 | 삼성전자주식회사 | 독출 동작과 기입 동작이 동시에 수행되는 메모리 셀어레이 구조를 가지는 집적 회로 |
US7872454B2 (en) * | 2003-08-21 | 2011-01-18 | Marvell World Trade Ltd. | Digital low dropout regulator |
US7760525B2 (en) * | 2003-08-21 | 2010-07-20 | Marvell World Trade Ltd. | Voltage regulator |
US6956775B1 (en) | 2003-12-31 | 2005-10-18 | Intel Corporation | Write pointer error recovery |
US8324872B2 (en) * | 2004-03-26 | 2012-12-04 | Marvell World Trade, Ltd. | Voltage regulator with coupled inductors having high coefficient of coupling |
US7190152B2 (en) * | 2004-07-13 | 2007-03-13 | Marvell World Trade Ltd. | Closed-loop digital control system for a DC/DC converter |
US7901710B2 (en) * | 2005-08-04 | 2011-03-08 | Vertical Pharmaceuticals, Inc. | Nutritional supplement for use under physiologically stressful conditions |
US7535242B2 (en) * | 2006-05-03 | 2009-05-19 | Rambus Inc. | Interface test circuit |
KR102029806B1 (ko) | 2012-11-27 | 2019-10-08 | 삼성전자주식회사 | 선입선출 버퍼를 포함하는 시스템 온 칩, 응용 프로세서 및 그것을 포함하는 모바일 장치 |
US9395924B2 (en) * | 2013-01-22 | 2016-07-19 | Seagate Technology Llc | Management of and region selection for writes to non-volatile memory |
CN113360423A (zh) * | 2020-03-03 | 2021-09-07 | 瑞昱半导体股份有限公司 | 数据储存系统及操作数据储存系统的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5663910A (en) * | 1994-07-22 | 1997-09-02 | Integrated Device Technology, Inc. | Interleaving architecture and method for a high density FIFO |
KR100275183B1 (ko) * | 1990-12-17 | 2000-12-15 | 윌리엄 비. 켐플러 | 순차 메모리 및 데이타 유니트를 순차적으로 기억시키는 방법 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4839866A (en) * | 1987-05-29 | 1989-06-13 | Texas Instruments Incorporated | Cascadable first-in, first-out memory |
JPH0652677A (ja) | 1992-07-29 | 1994-02-25 | Nec Ic Microcomput Syst Ltd | Fifoメモリ |
US5878273A (en) * | 1993-06-24 | 1999-03-02 | Discovision Associates | System for microprogrammable state machine in video parser disabling portion of processing stages responsive to sequence-- end token generating by token generator responsive to received data |
US5655113A (en) * | 1994-07-05 | 1997-08-05 | Monolithic System Technology, Inc. | Resynchronization circuit for a memory system and method of operating same |
KR100223626B1 (ko) | 1994-11-19 | 1999-10-15 | 윤종용 | 선입선출 메모리 회로 |
-
2002
- 2002-10-31 KR KR10-2002-0066844A patent/KR100498233B1/ko not_active IP Right Cessation
-
2003
- 2003-08-01 US US10/631,763 patent/US6853588B2/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100275183B1 (ko) * | 1990-12-17 | 2000-12-15 | 윌리엄 비. 켐플러 | 순차 메모리 및 데이타 유니트를 순차적으로 기억시키는 방법 |
US5663910A (en) * | 1994-07-22 | 1997-09-02 | Integrated Device Technology, Inc. | Interleaving architecture and method for a high density FIFO |
Also Published As
Publication number | Publication date |
---|---|
US6853588B2 (en) | 2005-02-08 |
US20040085817A1 (en) | 2004-05-06 |
KR20040037989A (ko) | 2004-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5596540A (en) | Serial to parallel and parallel to serial architecture for a RAM based FIFO memory | |
KR100498233B1 (ko) | 선입선출 메모리 회로 및 그 구현 방법 | |
JP2010160653A (ja) | リングバッファ回路及びその制御回路 | |
US5406518A (en) | Variable length delay circuit utilizing an integrated memory device with multiple-input and multiple-output configuration | |
EP1402340B1 (en) | First-in, first-out memory system and method thereof | |
US5416749A (en) | Data retrieval from sequential-access memory device | |
KR19980018726A (ko) | 데이터를 동시에 입력 및 출력하는 2포트 반도체기억장치 (two port memory for simultaneously inputting and outputting data) | |
US20060018177A1 (en) | Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system | |
JP2646032B2 (ja) | Lifo方式の半導体記憶装置およびその制御方法 | |
JPH09265777A (ja) | 同期型dram | |
KR100343831B1 (ko) | 반도체메모리 | |
JP4019757B2 (ja) | 記憶装置 | |
US5404564A (en) | High speed data train generating system with no restriction on length of generated data train | |
JP2014071929A (ja) | Fifo回路 | |
EP1585024B1 (en) | An improved on-chip storage memory for storing variable data bits | |
JP3559299B2 (ja) | バッファメモリ装置 | |
US5732011A (en) | Digital system having high speed buffering | |
JP4217208B2 (ja) | Fifoメモリ | |
JP4060270B2 (ja) | 送信装置と受信装置の間においてビデオのライン・データを遅延させる装置および方法 | |
JP3761962B2 (ja) | タイムスイッチメモリのデータ制御装置 | |
JP2006012235A (ja) | 記憶装置 | |
JP2003196972A (ja) | メモリ装置 | |
CN118606233A (zh) | 基于双端口ram的寄存器输出的fifo电路、方法、芯片及设备 | |
KR0176641B1 (ko) | 역 dct코아에서 전치 메모리의 워드수 절약회로 | |
JP3935152B2 (ja) | バッファメモリ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20130527 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140529 Year of fee payment: 10 |
|
LAPS | Lapse due to unpaid annual fee |