KR20050066207A - 파이프라인 구조를 갖는 선입선출 메모리 장치 - Google Patents
파이프라인 구조를 갖는 선입선출 메모리 장치 Download PDFInfo
- Publication number
- KR20050066207A KR20050066207A KR1020030097459A KR20030097459A KR20050066207A KR 20050066207 A KR20050066207 A KR 20050066207A KR 1020030097459 A KR1020030097459 A KR 1020030097459A KR 20030097459 A KR20030097459 A KR 20030097459A KR 20050066207 A KR20050066207 A KR 20050066207A
- Authority
- KR
- South Korea
- Prior art keywords
- fifo
- data
- fifo memory
- memories
- memory
- Prior art date
Links
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/08—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, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
본 발명은 파이프라인 구조를 갖는 FIFO 메모리 장치를 개시한다.
본 발명의 FIFO 메모리 장치는 라이트 포인터 및 리드 포인터를 이용해 데이터를 선입선출 방식으로 리드/라이트하는 복수개의 FIFO 메모리들이 파이프라인 구조로 병렬 연결되며, 특정 FIFO 메모리에 데이터가 모두 라이트되면 라이트된 데이터를 이웃하는 FIFO 메모리로 순차적으로 전파하는 FIFO 메모리 블럭; 데이터 리드 억세스 발생시 FIFO 선택신호에 따라 상기 병렬 연결된 FIFO 메모리들의 데이터를 선택적으로 출력하는 출력 선택부; 및 상기 데이터 리드 억세스 발생시 상기 FIFO 메모리들의 데이터 상태를 확인하여 상기 FIFO 선택신호를 상기 출력 선택부로 출력하는 출력 제어부를 구비함으로써, 기존에 설계된 FIFO 메모리의 사이즈를 증가시키지 않으면서 보다 많은 데이터를 저장할 수 있어 FIFO 메모리 사이즈의 증가에 따른 각 FIFO 메모리의 입출력 인터페이스 로직을 변화시키지 않으면서 주변 인터페이스 및 CPU의 속도 증가에 적절히 대응할 수 있게 된다.
Description
본 발명은 FIFO(First In First Out) 메모리 장치에 관한 것으로서, 보다 상세하게는 직렬 FIFO를 파이프라인식의 병렬로 구현한 FIFO 메모리 장치에 관한 것이다.
근래에 반도체 집적회로는 SOC(System On Chip)화 되어가고 있으며 SOC 내에는 여러 가지의 IP(Intellectual Property) 블록들, 즉 여러 가지의 기능블록들이 포함된다. 대표적인 기능블록으로는 DMA(Direct Memory Access), UART(Universal Asynchronous Receiver/Transmitter), 및 RCV(Remocon Receiver) 등이 있으며 이러한 기능블록들은 일반적으로 데이터를 일시 저장하는 FIFO 메모리를 포함한다.
FIFO 메모리는 그 응용이 다양해 짐에 따라 메모리 깊이(Memory depth)가 커져가고 있다.
도 1은 종래의 FIFO 메모리의 구성을 간략하게 나타낸 구성도이다.
종래의 FIFO 메모리는 소정의 기능 블럭으로부터 데이터가 입력되면, 라이트 포인터(Write Pointer)가 라이트 제어신호에 응답하여 복수개의 단위 FIFO 메모리들 FIFO 0 ∼ FIFO 15을 순차적으로 선택하고 선택된 단위 FIFO 메모리에 데이터를 라이트한다.
즉, 첫 번째 데이터가 입력되면 그 데이터는 FIFO 0에 라이트되고 라이트 포인터가 FIFO 메모리에 대한 어드레스를 하나 증가시킨다. 따라서, 두 번째 데이터가 입력되면 그 데이터는 FIFO 1에 라이트된다. 이와 같이 데이터가 입력될 때마다 라이트 포인터는 어드레스를 하나씩 증가시켜 데이터를 순차적으로 단위 FIFO 메모리들 FIFO 0 ∼ FIFO 15에 라이트한다. 모든 단위 FIFO 메모리들 FIFO 0 ∼ FIFO 15에 데이터가 라이트 되면, 인터럽트(Full-interrupt)를 발생시켜 외부의 중앙처리장치(CPU)가 데이터를 리드할 수 있게 한다.
인터럽트(Full-interrupt)가 발생되면 리드 포인터(Read pointer)가 리드 제어신호에 응답하여 단위 FIFO 메모리들 FIFO 0 ∼ FIFO 15을 FIFO 0부터 순차적으로 선택하고 선택된 단위 FIFO 메모리로부터 리드되는 데이터를 데이터 버스(Data Bus)로 출력한다.
그런데, 기 설계되어 사용되던 FIFO 메모리가 주변 인터페이스 및 CPU의 속도 증가 등의 이유로 FIFO 메모리의 사이즈를 증가 또는 축소할 필요가 있을 경우, FIFO 입출력 인터페이스 로직이 변경되어야 하며, 메모리 깊이가 "N"인 경우에는 "N"개의 리드/라이트 포인터가 필요하게 된다.
따라서, 상술된 문제를 해결하기 위한 본 발명의 목적은 FIFO 메모리를 파이프라인식의 병렬구조로 개선시킴으로써 인터페이스 블럭간의 처리속도 변화에 따른 FIFO 사이즈의 변경을 보다 효율적으로 구현할 수 있도록 하는데 있다.
위와 같은 목적을 달성하기 위한 본 발명의 파이프라인 구조를 갖는 FIFO 메모리 장치는 라이트 포인터 및 리드 포인터를 이용해 데이터를 선입선출 방식으로 리드/라이트하는 복수개의 FIFO 메모리들이 파이프라인 구조로 병렬 연결되며, 특정 FIFO 메모리에 데이터가 모두 라이트되면 라이트된 데이터를 이웃하는 FIFO 메모리로 순차적으로 전파하는 FIFO 메모리 블럭; 데이터 리드 억세스 발생시 FIFO 선택신호에 따라 상기 병렬 연결된 FIFO 메모리들의 데이터를 선택적으로 출력하는 출력 선택부; 및 상기 데이터 리드 억세스 발생시 상기 FIFO 메모리들의 데이터 상태를 확인하여 상기 FIFO 선택신호를 상기 출력 선택부로 출력하는 출력 제어부를 구비한다.
이하, 첨부된 도면들을 참조하여 본 발명의 바람직한 실시예를 보다 상세하게 설명한다.
도 2는 본 발명에 따른 FIFO 메모리 장치의 구성을 나타내는 구성도이다.
본 발명의 FIFO 메모리 장치는 FIFO 메모리 블럭(10), 출력 선택부(20) 및 출력 제어부(30)를 구비한다.
FIFO 메모리 블럭(10)은 라이트 포인터 및 리드 포인터를 이용해 데이터를 선입선출(First In First Out) 방식으로 리드/라이트하는 복수개의 FIFO 메모리들 FIFO(0) ∼ FIFO(m)이 파이프라인 구조로 병렬 연결되며, 어느 한 FIFO 메모리 FIFO(0)에 데이터가 모두 라이트되면 이 데이터들은 병렬 연결된 이웃하는 FIFO 메모리 FIFO(1)로 순차적으로 전파된다.
각 FIFO 메모리들 FIFO(0) ∼ FIFO(m)은 복수개의 단위 FIFO 메모리들 [FIFO(0,0) ∼ FIFO(0,n)] ∼ [FIFO(m,0) ∼ FIFO(m,n)]을 구비하며, 각 단위 FIFO 메모리들[FIFO(0,0) ∼ FIFO(m,n)]은 데이터를 저장하는 데이터 필드와 해당 데이터 필드에 저장된 데이터가 유효(valid)한 데이터인지 여부를 나타내는 유효비트(valid bit)가 기록되는 유효비트필드를 구비한다.
즉, 유효비트가 "1"인 경우는 해당 단위 FIFO 메모리의 데이터 필드에 유효한 데이터가 저장되어 있음을 나타내며, 유효비트가 "0"인 경우에는 해당 단위 FIFO 메모리의 데이터 필드에 저장된 데이터가 없거나 이미 리드 억세스(Read Access)가 발생하여 해당 데이터를 새로운 데이터로 업데이트하여도 무방한 경우를 나타낸다. 따라서, 이웃하는 FIFO 메모리의 유효비트가 "1"로 되어 있는 경우에는 해당 FIFO 메모리로의 데이터 전파는 이루어지지 않으며, 데이터를 수신하는 FIFO 메모리의 유효비트가 모두 "0"인 경우에만 데이터 전파가 가능하다.
출력 선택부(20)는 데이터 리드 억세스 발생시 FIFO 선택신호 FIFO_SEL에 따라 병렬 연결된 FIFO 메모리들 FIFO(0) ∼ FIFO(m)의 데이터를 선택적으로 출력한다. 즉, 데이터가 최종 FIFO 메모리 FIFO(m)까지 전파된 후에 외부의 중앙처리장치(CPU)로 리드되는 경우에는 최종 FIFO 메모리 FIFO(m)의 데이터 만을 리드하면 되지만, 본 발명에서는 데이터가 최종 FIFO 메모리 FIFO(m)까지 전파되기 이전에도 리드될 수 있기 때문에 출력 선택부(20)를 이용하여 병렬 연결된 FIFO 메모리들 FIFO(0) ∼ FIFO(m)의 데이터를 선택적으로 출력한다.
출력 제어부(30)는 데이터 리드 억세스가 발생시 각 FIFO 메모리들 FIFO(0) ∼ FIFO(m)의 유효비트를 확인하여 FIFO 선택신호 FIFO_SEL를 생성한 후 출력 선택부(20)로 출력한다. 즉, 출력 제어부(30)는 데이터 리드 억세스가 발생시 유효비트가 "1"로 설정되어 있는 FIFO 메모리들 중 가장 후단에 있는 FIFO 메모리를 선택하는 FIFO 선택신호 FIFO_SEL를 출력 선택부(20)로 출력한다. 따라서, 최종 FIFO 메모리 FIFO(m) 까지 데이터가 전파되지 않은 상태에서도 데이터 리드 억세스가 가능하게 된다.
상술된 구성을 갖는 본 발명의 FIFO 메모리 장치의 동작을 간략하게 설명하면 다음과 같다.
소정의 기능 블럭으로부터 데이터(Capture-data)가 입력되면, 라이트 포인터는 라이트 제어신호(Capture-write)에 응답하여 첫번째 FIFO 메모리 FIFO(0)를 구성하는 복수개의 단위 FIFO 메모리들 FIFO(0,0) ∼ FIFO(0,n)을 순차적으로 선택하여 데이터(Capture-data)를 저장한다.
즉, 첫 번째 데이터가 입력되면 그 데이터는 단위 FIFO 메모리 FIFO(0,0)의 데이터 필드에 라이트되고, 단위 FIFO 메모리 FIFO(0,0)의 유효비트는 "1"로 설정된다. 단위 FIFO 메모리 FIFO(0,0)에 데이터가 라이트되면, 라이트 포인터는 FIFO 메모리(0)에 대한 어드레스를 하나 증가시킨다. 따라서, 두 번째 데이터가 입력되면 그 데이터는 단위 FIFO 메모리 FIFO(0,1)의 데이터 필드에 라이트되고 단위 FIFO 메모리 FIFO(0,0)의 유효비트는 "1"로 설정된다.
이와 같이 데이터가 입력될 때마다 라이트 포인터는 어드레스를 하나씩 증가시켜 데이터를 순차적으로 FIFO 메모리(0)에 라이트한다.
FIFO 메모리 FIFO(0)의 모든 단위 FIFO 메모리들 FIFO(0,0) ∼ FIFO(0,n)에 데이터가 라이트되면, 인터럽트(Full-interrupt)를 발생시켜 FIFO 메모리 FIFO(0)의 데이터를 이웃하는 FIFO 메모리 FIFO(1)로 전파시키고 FIFO 메모리 FIFO(0)의 유효비트를 "0"으로 설정한다. 이때, FIFO 메모리 FIFO(1)의 유효비트는 "1"로 설정된다.
다음에, 다시 새로운 데이터가 인가되어 FIFO 메모리 FIF(0)에 라이트되면 FIFO 메모리 FIFO(1)의 데이터는 FIFO 메모리 FIFO(2)로 전파된 후 FIFO 메모리 FIFO(1)의 유효비트는 "0"으로 설정되고, FIFO 메모리 FIFO(2)의 유효비트는 "1"로 설정된다. FIFO 메모리 FIFO(1)의 유효비트가 "0"으로 설정됨에 따라 FIFO 메모리 FIFO(0)의 데이터는 FIFO 메모리(1)로 전파된다.
이러한 FIFO 메모리들 FIFO(0) ∼ FIFO(0) 간의 데이터 전파는 순차적으로 최종 FIFO 메모리 FIFO(m) 까지 이루어진다. 이때, 이웃하는 FIFO 메모리 FIFO(1)의 유효비트 중 하나라도 "1"로 설정되어 있으면 해당 FIFO 메모리 FIFO(1)에 아직 유효한 데이터가 저장되어 있다는 것을 의미하므로 FIFO 메모리 FIFO(1)로의 데이터 전파는 이루어지지 않는다.
데이터의 전파 도중 아직 최종 FIFO 메모리 FIFO(m)까지 데이터가 전파되지 않은 상황에서 데이터 리드 억세스가 발생하게 되면, 출력 제어부(30)는 각 FIFO 메모리 FIFO(0) ∼ FIFO(0)의 유효비트를 확인하여 유효비트가 하나로도 "1"로 설정된 FIFO 메모리들을 찾아낸 후 이들 중 가장 후단에 있는 FIFO 메모리를 선택하기 위한 FIFO 선택신호 FIFO_SEL을 출력 선택부(20)로 출력한다.
출력 선택부(20)는 FIFO 선택신호 FIFO_SEL에 따라 유효비트가 "1"로 설정된 최종 FIFO 메모리의 데이터를 데이터 버스로 출력한다.
이처럼, 동일한 사이즈의 FIFO 메모리들 FIFO(0) ∼ FIFO(m)을 병렬로 연결시켜 하나의 FIFO 메모리에 데이터가 모두 라이트되면 병렬 연결된 이웃하는 FIFO 메모리들로 순차적으로 데이터를 전파시킴으로써, 각 FIFO 메모리들 FIFO(0) ∼ FIFO(m)의 사이즈를 종래와 같이 유지시키면서 보다 많은 데이터를 저장할 수 있게 되어 FIFO 메모리 사이즈의 증가에 따른 각 FIFO 메모리의 입출력 인터페이스 로직을 변화시키지 않아도 된다.
상술한 바와 같이, 본 발명의 FIFO 메모리 장치는 복수개의 FIFO 메모리들을 파이프라인 구조로 병렬 연결시켜 데이터를 저장함으로써, 기존에 설계된 FIFO 메모리의 사이즈를 증가시키지 않으면서 보다 많은 데이터를 저장할 수 있어 FIFO 메모리 사이즈의 증가에 따른 각 FIFO 메모리의 입출력 인터페이스 로직을 변화시키지 않으면서 주변 인터페이스 및 CPU의 속도 증가에 적절히 대응할 수 있게 된다.
도 1은 종래의 FIFO 메모리의 구성을 간략하게 나타낸 구성도.
도 2는 본 발명에 따른 FIFO 메모리 장치의 구성을 나타내는 구성도.
Claims (4)
- 라이트 포인터 및 리드 포인터를 이용해 데이터를 선입선출 방식으로 리드/라이트하는 복수개의 FIFO 메모리들이 파이프라인 구조로 병렬 연결되며, 특정 FIFO 메모리에 데이터가 모두 라이트되면 라이트된 데이터를 이웃하는 FIFO 메모리로 순차적으로 전파하는 FIFO 메모리 블럭;데이터 리드 억세스 발생시 FIFO 선택신호에 따라 상기 병렬 연결된 FIFO 메모리들의 데이터를 선택적으로 출력하는 출력 선택부; 및상기 데이터 리드 억세스 발생시 상기 FIFO 메모리들의 데이터 상태를 확인하여 상기 FIFO 선택신호를 상기 출력 선택부로 출력하는 출력 제어부를 구비하는 파이프라인 구조를 갖는 FIFO 메모리 장치.
- 제 1항에 있어서, 상기 FIFO 메모리들은인가된 데이터를 저장하는 데이터 필드 및 상기 데이터 필드에 저장된 데이터의 유효(valid)여부를 나타내는 유효비트가 기록되는 유효비트필드를 구비하는 복수개의 단위 FIFO 메모리들을 구비하는 것을 특징으로 하는 파이프라인 구조를 갖는 FIFO 메모리 장치.
- 제 2항에 있어서, 상기 FIFO 메모리 블럭은상기 유효비트 값에 상기 이웃하는 FIFO 메모리의 데이터가 모두 유효하지 않은 경우에만 상기 이웃하는 FIFO 메모리로의 데이터 전파를 수행하는 것을 특징으로 하는 파이프라인 구조를 갖는 FIFO 메모리 장치.
- 제 3항에 있어서, 상기 출력 제어부는데이터 리드 억세스 발생시, 각 FIFO 메모리의 유효비트 값들을 이용하여 각 FIFO 메모리들의 데이터 상태를 확인하고, 유효한 데이터를 가지는 FIFO 메모리들 중 가장 후단에 있는 FIFO 메모리를 선택하는 FIFO 선택신호를 출력하는 것을 특징으로 하는 파이프라인 구조를 갖는 FIFO 메모리 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030097459A KR20050066207A (ko) | 2003-12-26 | 2003-12-26 | 파이프라인 구조를 갖는 선입선출 메모리 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030097459A KR20050066207A (ko) | 2003-12-26 | 2003-12-26 | 파이프라인 구조를 갖는 선입선출 메모리 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20050066207A true KR20050066207A (ko) | 2005-06-30 |
Family
ID=37257312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030097459A KR20050066207A (ko) | 2003-12-26 | 2003-12-26 | 파이프라인 구조를 갖는 선입선출 메모리 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20050066207A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201431A (zh) * | 2015-05-28 | 2016-12-07 | 株式会社东芝 | 半导体装置 |
-
2003
- 2003-12-26 KR KR1020030097459A patent/KR20050066207A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201431A (zh) * | 2015-05-28 | 2016-12-07 | 株式会社东芝 | 半导体装置 |
CN106201431B (zh) * | 2015-05-28 | 2020-03-24 | 东芝存储器株式会社 | 半导体装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10282343B2 (en) | Semiconductor device | |
US6802036B2 (en) | High-speed first-in-first-out buffer | |
US10133497B1 (en) | SPI command censoring method and apparatus | |
US8909833B2 (en) | Systems, methods, and articles of manufacture to stream data | |
US6941434B2 (en) | Self-synchronous FIFO memory device having high access efficiency, and system provided with interface for data transfer using the same | |
JP2006507555A (ja) | コントローラプログラミングによるハードウェアへのデータマスクマッピング | |
KR100476895B1 (ko) | 가변 가능한 데이터 전송 모드를 갖는 인터페이스 장치 및그것의 동작 방법 | |
US6883041B2 (en) | Direct memory access device | |
US7783804B2 (en) | Bus relay device and bus control system including plurality of bus masters, bus slave, interconnect section, and bridge section | |
US20080320178A1 (en) | DMA transfer apparatus | |
KR20050066207A (ko) | 파이프라인 구조를 갖는 선입선출 메모리 장치 | |
US20140297906A1 (en) | Buffer circuit and semiconductor integrated circuit | |
US20210157759A1 (en) | Data Transmission System Capable of Transmitting a Great Amount of Data | |
US7228367B2 (en) | Direct memory access controller for carrying out data transfer by determining whether or not burst access can be utilized in an external bus and access control method thereof | |
US6681273B1 (en) | High performance, variable data width FIFO buffer | |
US8131893B2 (en) | Memory device that mediates mutual communication among a pluraliity of CPUs | |
JP2009086830A (ja) | メモリコントローラ | |
KR100891508B1 (ko) | 가상 디엠에이를 포함하는 시스템 | |
CN111625411A (zh) | 半导体装置及调试系统 | |
KR20030073992A (ko) | 멀티 액세스 fifo 메모리 | |
KR100664009B1 (ko) | 메모리 억세스 제어기 | |
KR100955122B1 (ko) | 집적 회로 장치 및 오디오 처리 장치 | |
TWI720565B (zh) | 記憶體控制器與資料儲存裝置 | |
JP2002050172A (ja) | Fifo制御回路 | |
JP3760933B2 (ja) | 計算機システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITB | Written withdrawal of application |