KR950014159B1 - Fifo register control method - Google Patents
Fifo register control method Download PDFInfo
- Publication number
- KR950014159B1 KR950014159B1 KR1019920026157A KR920026157A KR950014159B1 KR 950014159 B1 KR950014159 B1 KR 950014159B1 KR 1019920026157 A KR1019920026157 A KR 1019920026157A KR 920026157 A KR920026157 A KR 920026157A KR 950014159 B1 KR950014159 B1 KR 950014159B1
- Authority
- KR
- South Korea
- Prior art keywords
- flag
- fifo
- cpu
- controller
- signal
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Multi Processors (AREA)
Abstract
Description
제1도는 본 발명이 적용되는 선입선출(FIFO) 레지스터를 제어하기 위한 하드웨어 구성을 개략적으로 나타낸 블럭도,1 is a block diagram schematically showing a hardware configuration for controlling a first-in first-out (FIFO) register to which the present invention is applied;
제 2 도는 본 발명에 따른 선입선출(FIFO) 레지스터를 제어를 수행하는 일실시예 흐름도,2 is a flow diagram of an embodiment of performing control of a first-in first-out (FIFO) register according to the present invention;
제 3 도는 본 발명에 따른 선입선출(FIFO) 레지스터 제어를 수행하는 일실시예 상태 천이도.3 is an exemplary state transition diagram for performing first-in first-out (FIFO) register control in accordance with the present invention.
* 도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings
1 : 플래그 콘트롤러 2 : FIFO 콘트롤러.1: Flag controller 2: FIFO controller.
본 발명은 중앙처리장치(CPU) 및 메모리를 구비한 시스템에서 그들간의 인터폐이스를 위해 요구되는 선입선출(이하, 간단히 "FIFO"라 함) 기능을 당해 시스템의 특성 및 성능을 고리하여 최적으로 구현되도록하는 FIFO 레지스터 제어방법에 관한 것이다.The present invention optimizes the first-in, first-out (hereinafter simply referred to as "FIFO") function required for interfacing between them in a system having a central processing unit (CPU) and a memory. FIFO register control method to be implemented.
일반적으로 종래의 경우는, 스태틱 램(SRAM)을 FIFO 레지스터로 하고,3개의 링 카운터를 구비시켜,제어하는 방식을 주로 재용하였는 바, 여기에서 3개의 링 카운터라 함은 쓰기 포인터용 카운터와, 읽기 포인터용 카운터, 및 쓰기와 읽기의 두 포인터 사이의 상태를 나타내 주는 상태 포인터용 카운터를 의미한다.In general, in the conventional case, a static RAM (SRAM) is used as a FIFO register, three ring counters are provided, and a control method is mainly reused. Here, the three ring counters refer to a write pointer counter, A counter for a read pointer, and a counter for a status pointer indicating a state between two pointers of writing and reading.
그러나, 상기한 바와 같은 종래의 FIFO 제어방식은, 쓰기 포인터와 읽기 포인터가 항상 초소한의 포인터간격을 유지하도록 하면서 상기 두 포인터가 항상 이동되도록 하여야함에 기인하는 기술상의 문제점을 내포하고 있었을 뿐만 아니라, 대부분의 시스템에게서 원하는 FIFO 기능에 요구되는 용량보다 필요이상으로 큰용량의 SRAM을 사용할 수 밖에 없어, 고가인 SRAM의 낭비를 초래하는 문제점이 있었다.However, the conventional FIFO control scheme as described above not only implies a technical problem due to the fact that the two pointers are always moved while the write pointer and the read pointer always maintain a small pointer interval. In most systems, the use of a larger amount of SRAM than necessary for the desired FIFO function is required, resulting in a waste of expensive SRAM.
따라서, 본 발명은 상기한 바와 같은 종래의 제반 문제점을 해결하기 위해 안출된 것으로서,2개의 포인터 즉, 읽기 포인터 및 쓰기 포인터만을 사용하여 FIFO 레지스터를 효과적으로 구동가능하게 함으로써 FIFO 레지스터를 일반적인 플립플롭 회로로 구할 수 있도록 하여, CPU와 메모리를 구비한 각각의 시스템에서 원활한 인터폐이스를 위해 요구되는 용량에 맞추어 FIFO 기능을 용이하게 실현하는 FIFO 레지스터 제어방법을 제공함을 그 목적을 두고 있다.Accordingly, the present invention has been made to solve the conventional problems as described above, and by using only two pointers, that is, a read pointer and a write pointer, the FIFO register can be effectively driven to convert the FIFO register into a general flip-flop circuit. The purpose of the present invention is to provide a FIFO register control method for easily realizing the FIFO function in accordance with the capacity required for smooth interface in each system having a CPU and a memory.
본 발명은 상기 목적을 달성하기 위하여, 중앙처리장치(CPU) 및 메모리를 구비한 시스템에서 상기 CPU및 메모리간의 인터폐이스에 요구되는 선입선출(FIFO) 기능을 구현하기 위한 FIFO 레지스터 제어방법에있어서, 플래그 콘트롤러에서 발생되는 새로운 메모리 쓰기 신호 또는 CPU 쓰기 신호를 입력 받을 수 있도록 이전 신호들을 클리어시키는 제1단계 ; 상기 플래그 콘트롤러의 출력단에 연결된 FIFO 콘트롤러에서, 상기 플래그 콘트롤러로부터 새로 생성된 메모리 쓰기 신호 또는 CPU 쓰기 신호가 인가되었는가를 판단하는 제2단계 ; 상기 제2단계의 판단결과, 메모리 쓰기 신호가 인가되었으면, 현재의 FIFO 데이타를 시프트시키고 나서, 다운 카운터를 증가시켜 FIFO의 어드레스가 다음의 어드레스를 지시하도록 하고, 메모리 플래그를 제트시키는 제3단계 및 상기 제2단계의 판단결과 상기 플래그 콘트롤러로부터 CPU 쓰기 신호가 인가되었거나, 또는 상기 제3단계 수행후에 확인한 결과 상기 플래그 콘트롤러로부터 CPU 쓰기 신호가 인가된 것으로 확인되면, FIFO 데이타를 로드시키고, 엎 카운터를 증가시켜 FIFO의 어드레스가 다음위치를 가리키도록 하고, CPU 플래그를 제트시키는 제4단계를 포함하는 FIFO 레지스터 제어방법을 제공한다.In order to achieve the above object, the present invention provides a method for controlling a FIFO register for implementing a first-in first-out (FIFO) function required for the interface between the CPU and the memory in a system having a CPU and a memory. Clearing previous signals to receive a new memory write signal or a CPU write signal generated by the flag controller; Determining, by the FIFO controller connected to an output terminal of the flag controller, whether a newly created memory write signal or a CPU write signal is applied from the flag controller; A third step of shifting the current FIFO data, increasing the down counter so that the address of the FIFO indicates the next address, and jetting the memory flag if the memory write signal is applied as a result of the determination in the second step; If the CPU write signal is applied from the flag controller as a result of the determination in the second step, or if the CPU write signal is applied from the flag controller as a result of confirming after performing the third step, the FIFO data is loaded and the counter is set. And incrementing the address of the FIFO to point to the next location, and jetting the CPU flag.
이하, 첨부된 도면을 참조하여 본 발명의 열실시예를 상세히 설명하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
제1도는 본 발명이 적용되는 FIFO 레지스터를 제어하기 위한 하드웨어 구성을 개략적으로 나타낸 블럭도로서, 도면에서 1은 플래그 콘콘트롤러 2는 FIFO 콘트롤러를 각각 나타낸 것이다.FIG. 1 is a block diagram schematically showing a hardware configuration for controlling a FIFO register to which the present invention is applied. In FIG. 1, a flag controller 2 represents a FIFO controller.
먼저, 제1도에 도시된 바와 같이 CPU가 쓰기 동작을 수행하면, 플래그 콘트롤러(1)에서 CPU 쓰기 플래그(CPU_WR_ FLAG) 신호가 발생되며, 이 플래그 신호에 의해 후단의 FIFO 콘트롤러(2)에서는 로드(load) 신호에 이어 엎플래그(UP_FLAG) 신호가 순차적으로 클럭에 동기되어 생성된다·즉, 다시말하면로드(load) 신호에 의해 의부 FIFO에 데이타가 쓰여지며 이어서 발생되는 엎플래그(UP_ FLAG) 신호에 의해 FIFO의 어드레스(Addres)는 1증가한 위치를 가리키게 된다.First, as shown in FIG. 1, when the CPU performs a write operation, a CPU write flag (CPU_WR_FLAG) signal is generated in the flag controller 1, and the load is performed in the FIFO controller 2 at the rear end by this flag signal. Following the (load) signal, a UP_FLAG signal is sequentially generated in synchronization with the clock, i.e., the data is written to the pseudo FIFO by the load signal and then the UP_FLAG signal is generated. As a result, the address of the FIFO indicates an increased position.
이와 같은 루틴(Routine)으로 FIFO 레지스터에 데이타가 쓰여질 수 있도록 상기 플래그 콘트롤러(1) 및FIFO 콘트롤러(2)가 동작하는 것이다.In this routine, the flag controller 1 and the FIFO controller 2 operate so that data can be written to the FIFO register.
그리고 메모리 쓰기(MER_WR)시에는, 상기 플래그 콘트롤러(1)에서 메모리 쓰기 플래그(MEM _WR _FLAG)신호가 생성되며, 상기 FIFO 콘트롤러(2)는 이 신호를 받아서 홀드/시프트 토글(HOLD/SHIFT)신호와 다운플래그(DOWN_FLAG) 신호를 역시 클럭에 동기되게 순차적으로 생성한다.During memory write (MER_WR), a memory write flag (MEM _WR _FLAG) signal is generated by the flag controller 1, and the FIFO controller 2 receives this signal and holds a hold / shift toggle signal. And DOWN_FLAG signals are generated sequentially in synchronization with the clock.
그러므로, 상기 홀드/시프트 토클신호가 1 클럭 동안 로우로 액티브 되면, 외부의 FIFO 레지스터는 데이타를 이동시키며, 이후 발생하는 다운플래그⒧OWN_FLAG) 신호에 의해 카운터는 1 감소하여, FIFO의 어드레스는 직전상태보다 1작은 값을 갖게 되고, 다음 신호가 들어오기를 기다리게 된다.Therefore, when the hold / shift toggle signal is activated low for one clock, an external FIFO register moves data, and the counter is decremented by a subsequent down flag (OWN_FLAG) signal so that the address of the FIFO is in the previous state. It will have a smaller value and wait for the next signal.
상기 플래그 콘트롤러(1) 및 FIFO 콘트롤러(2)는 상기한 바와 같은 동작의 반복으로 FIFO 기능을 원활하게 수행할 수 있도록 하는 것이다.The flag controller 1 and the FIFO controller 2 can perform the FIFO function smoothly by repeating the above operation.
다음으로, 제2도를 참조하여, 본 발명에 따른 선입선출(FIFO) 레지스터 제어 수행과정을 상세히 살펴보기로 한다.Next, referring to FIG. 2, a process of performing first-in first-out (FIFO) register control according to the present invention will be described in detail.
전술한 바와 같이, CPU가 쓰기 동작을 수행될 때마다, 상기 플래그 콘트롤러(1)에서 CPU 쓰기 플래그(CPU_WR_FLAG) 신호가 발생되고 메모리 쓰기 동작이 수행되면, 상기 플래그 콘트롤러(1)에서 메모리쓰기 플래그(MEM _VR_ FLAG) 신호가 생성된다.As described above, every time the CPU performs a write operation, when the CPU write flag (CPU_WR_FLAG) signal is generated in the flag controller 1 and the memory write operation is performed, the memory write flag () in the flag controller 1 is performed. MEM _VR_FLAG) signal is generated.
따라서, 상기 플래그 콘트롤러(1)이 출력단에 연결된 FIFO콘트롤러(2)에서는 한 싸이클의 동작이 완료된때마다, 다시 새로운 메모리 쓰기(MEM_VR) 신호 또는 CPU 쓰기(CPU_VR)신호를 다시 입력 받을 있도록 이전 신호들을 클리어시킨 후, 대기한다(10).Therefore, in the FIFO controller 2 connected to the output of the flag controller 1, each time a cycle operation is completed, the previous signals are received so that a new memory write (MEM_VR) signal or a CPU write (CPU_VR) signal is input again. After clearing, it waits (10).
그리고 나서, 상기 FlFO 콘트롤러(2)에서 주기적으로, 상기 플래그 콘토롤러(1)에서 새로운 메모리 쓰기신호 또는 CPU 쓰기 신호가 생성되었는가를 판단(11,15)하는 바, 만약 메모리 쓰기(MEM_WR)신호 또는CPU 쓰기(CPU_ WR)신호중 그 어느것도 생성되지 않았으면, 계속 대기하면서 인가되는 신호를 주기적으로 확인한다.Then, the FlFO controller 2 periodically determines (11, 15) whether a new memory write signal or a CPU write signal is generated in the flag controller 1, if a memory write (MEM_WR) signal or If none of the CPU write (CPU_WR) signals are generated, the signal is periodically checked while waiting.
메모리 쓰기 신호가 생성되었으면(11) 현재의 FIFO 데이타를 시프트시키고 나서(12) 다운카운터(DOWN_ COUNTER)를 1감소시켜 FIFO의 어드레스가 현재보다 1만큼 작은 값의 어드레스를 갖도록 하고 메모리플래그(MEM_ FLAG)를 세트시키고 나서(13), 이어서 CPU 쓰기 신호가 인가되었는지를 확인하여(16), 인가되었으면 후술되는 바와 같은 CPU 쓰기 신호에 따른 처리를 수행하고, 상기 CPU 쓰기 신호가인가되지 않은 것으로 판단되면 곧바로 처음상태로 되돌아 가도록 한 싸이클을 종료한다.When the memory write signal is generated (11), the current FIFO data is shifted (12), then the down counter (DOWN_COUNTER) is decreased by 1 so that the address of the FIFO has an address smaller than 1 by the current value and the memory flag (MEM_ FLAG) (13), then check whether the CPU write signal has been applied (16), and if so, perform processing according to the CPU write signal as described below, and if it is determined that the CPU write signal has not been applied, End the cycle to return to the initial state immediately.
또한, 상기 두 판단과정(11,15)중 어느 하나에서, 상기 플래그 콘트롤러(1)로부터 CPU 쓰기 신호가 인가된 것으로 판단되면, FIFO 데이타를 로드(load)시키고(16), 엎카운터 (UP_COUNTER)를 1증가시켜 FlFO의 어드레스가 1만큼 증가한 위치를 가리키도록 하고, CPU 플래그(CP_FLAG)를 세트시키고(17),다시 처음상태로 되돌아 가도록 한 싸이클을 종료한다.In addition, in one of the two determination processes 11 and 15, if it is determined that the CPU write signal is applied from the flag controller 1, the FIFO data is loaded (16), and a counter (UP_COUNTER) is applied. Is increased by one to indicate the position where the address of the FlFO is increased by one, the CPU flag CP_FLAG is set (17), and the cycle to return to the initial state is terminated.
상기한 바와 같이 본 발명에 따른 선입선출(FIFO) 레지스터 제어 수행과정은 크기 CPU 쓰기 루틴과 메모리 쓰기 루틴으로 분류할 수 있는데, 상기 CPU 쓰기 플래그(CPU_WR_FLAG) 및 메모리 쓰기 플래그(MEM_ WR_ FLAG)는 각각 쓰기신호에 의해 생성만 되어지므로 이 신호를 FIAG 콘트롤러(2)에서 다시 원상태로 만들어 주는 신호가 필요하다.As described above, the process of performing the first-in first-out (FIFO) register control according to the present invention may be classified into a size CPU write routine and a memory write routine. The CPU write flag CPU_WR_FLAG and the memory write flag MEM_WR_ FLAG are respectively. Since it is only generated by the write signal, a signal is required to restore this signal back to the FIAG controller 2.
바로 이러한 기능을 수행해 주는 신호가 제2도의 흐름도에 포시된 CPU 플레그(CPU_ FLAG) 및 메모리플래그(MEM_ FLAG)이다. 이 신호들은 메모리쓰기와 CPU쓰기 루틴이 각각 끝나게 되면, 상기 FIFO 콘트롤러(2)로 하여금 다시 새로운 CPU 쓰기 플래그2와 메모리 쓰기 플래그 신호들은 입력받을 수 있도록 한다. 만일, 이렇게 하지 않으면, 상기 CPU 쓰기 플래그와 메모리 쓰기 플레그가 항상 세팅되어 있게 되어 되풀이 해서 FIFO에 데이타를 쓰거나 읽는 과정을 거듭하여 시스템을 오동작을 유발할 수 있다.Signals that perform this function are the CPU flag (CPU FLAG) and the memory flag (MEM_ FLAG) shown in the flowchart of FIG. These signals allow the FIFO controller 2 to receive new CPU write flag 2 and memory write flag signals once the memory write and CPU write routines are finished, respectively. If this is not done, the CPU write flag and memory write flag are always set, which may cause the system to malfunction by repeatedly writing or reading data to the FIFO.
제3도는 본 발명에 따른 선입선출(FIFO) 레지스터 제어를 수행하는 상태 천이도로서, 이를 참조하여 전술한 바와 같은 본 발명의 제어흐름을 살펴보면 다음과 같다.3 is a state transition diagram for performing a first-in first-out (FIFO) register control according to the present invention. Referring to this, the control flow of the present invention as described above is as follows.
이는 4비트 입출력변수(b3,b2,b1,b0바)에 의해 동작하는 것으로, 여기에서 상기 b3,는 RAS신호(메모리의"Row Address Strobe"신호)를, 상기 b2는 메모리 쓰기 플래그를, 상기 b1은 CPU 쓰기 플래그를, 그리고상기 b0는 CPU 쓰기 신호를 각각 의미한다.This 4-bit input and output variables to be operated by (b 3, b 2, b 1, b 0 bar), where the ( "Row Address Strobe" signal of the memory) the b 3, the RAS signal, wherein b 2 is A memory write flag, b 1 denotes a CPU write flag, and b 0 denotes a CPU write signal.
먼저, 루틴 1에서는 메모리 쓰기, 시프트, 다운 카운트, 및 홀드과정을 차례로 수행한다.First, routine 1 performs the memory write, shift, down count, and hold processes in sequence.
루틴 2에서는 메모리 쓰기, 시프트, 다운 카운트를 수행한 후, CPU 쓰기 신호를 확인하여 곧바로 로드,엎 카운트, 및 홀드과정을 차례로 수행한다.In routine 2, after performing memory write, shift, and down count, the CPU write signal is checked and the load, stop count, and hold processes are performed in sequence.
루틴 3에서는 CPU 쓰기, 로드, 엎 카운터, 및 홀드의 과정을 각각 차례로 수행한다.In routine 3, the CPU write, load, run counter, and hold procedures are performed in sequence.
그리고 도면에서, 더미상태(dummy)는 메모리 쓰기 가 연속될시, 데이타의 오버라이트(overwrite)를 막기위해, 메모리의 RAS신호가 풀린 다음에야 비로소 다음 데이타를 시프트 할 수 있도록 하는 대기상태이다.In the drawing, a dummy state is a standby state in which the next data can be shifted only after the RAS signal of the memory is released in order to prevent overwriting of data when memory writes are continued.
따라서, 상기한 바와 같은 본 발명은 읽기 포인터(메모리 쓰기 신호) 및 쓰기 포인터(CPU 쓰기 신호)두개의 포인터만을 사용하여 FIFO 레지스터를 원활하게 구동할 수 있도록 하므로써, FIFO 레지스터를 고가의 SRAM이 아닌 일반적인 플립플롭 회로로 쉽게 구현할 수 있도록 할 뿐만 아니라, CPU와 메모리를구비한 모든 시스템에서 원활한 인터폐이스를 위해 요구되는 용량에 최적상태로 맞추어 구현할 수 있도하는 효과를 갖는다.Accordingly, the present invention as described above allows the FIFO register to be smoothly driven using only two pointers, a read pointer (memory write signal) and a write pointer (CPU write signal), so that the FIFO register is not a expensive SRAM. Not only can it be easily implemented with a flip-flop circuit, but it can also be implemented in an optimal state to meet the required capacity for smooth interworking in all systems having a CPU and memory.
또한, 쓰기 포인터만을 이동시키면서 동작되도록 하여, 소요 카운터 수를 줄여 줌으로써, 전제적으로 게이트 수를 현저하게 줄여 주는 효과를 갖는다.In addition, it is possible to operate while moving only the write pointer, thereby reducing the number of required counters, thereby having an effect of significantly reducing the number of gates.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920026157A KR950014159B1 (en) | 1992-12-29 | 1992-12-29 | Fifo register control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019920026157A KR950014159B1 (en) | 1992-12-29 | 1992-12-29 | Fifo register control method |
Publications (2)
Publication Number | Publication Date |
---|---|
KR940015799A KR940015799A (en) | 1994-07-21 |
KR950014159B1 true KR950014159B1 (en) | 1995-11-22 |
Family
ID=19347299
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019920026157A KR950014159B1 (en) | 1992-12-29 | 1992-12-29 | Fifo register control method |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR950014159B1 (en) |
-
1992
- 1992-12-29 KR KR1019920026157A patent/KR950014159B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR940015799A (en) | 1994-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5365485A (en) | Fifo with fast retransmit mode | |
US4062059A (en) | Information processing system | |
US4694426A (en) | Asynchronous FIFO status circuit | |
US4423482A (en) | FIFO Register with independent clocking means | |
KR870001112B1 (en) | Data processing circuit | |
KR100902765B1 (en) | First-in, first-out memory system and method thereof | |
US5274600A (en) | First-in first-out memory | |
JPS607812B2 (en) | Data buffering device | |
KR950014159B1 (en) | Fifo register control method | |
US6374313B1 (en) | FIFO and method of operating same which inhibits output transitions when the last cell is read or when the FIFO is erased | |
US4238834A (en) | Apparatus for coordinating real time transfer of data from a processor to a magnetic media device | |
KR950001589B1 (en) | Automatic increasing control logic circuit for display data | |
JPH02181886A (en) | Straight line plotting controller | |
JP3592169B2 (en) | Asynchronous data transfer control device and asynchronous data transfer control method | |
JPH0222748A (en) | Non-volatile memory control circuit | |
JPH05265701A (en) | Fifo memory | |
JPH0462645A (en) | Storage device and overflow processing method | |
KR950001588B1 (en) | Control logic circuit for reloading the valve of the axle | |
JPS59189435A (en) | Data transfer control device | |
JPH0432922A (en) | Interface control circuit | |
JPH03100851A (en) | Fifo storage device | |
KR950007880B1 (en) | Fifo circuit interfacing with cpu | |
JPH02188826A (en) | Fifo circuit | |
JP2596196Y2 (en) | Roll display method of digital oscilloscope | |
JPH02287732A (en) | Register address generating device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
J2X1 | Appeal (before the patent court) |
Free format text: APPEAL AGAINST DECISION TO DECLINE REFUSAL |
|
G160 | Decision to publish patent application | ||
B701 | Decision to grant | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20021018 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |