KR100249164B1 - Circular q addressing method - Google Patents

Circular q addressing method Download PDF

Info

Publication number
KR100249164B1
KR100249164B1 KR1019970021984A KR19970021984A KR100249164B1 KR 100249164 B1 KR100249164 B1 KR 100249164B1 KR 1019970021984 A KR1019970021984 A KR 1019970021984A KR 19970021984 A KR19970021984 A KR 19970021984A KR 100249164 B1 KR100249164 B1 KR 100249164B1
Authority
KR
South Korea
Prior art keywords
data
pointer
ptr
read
write
Prior art date
Application number
KR1019970021984A
Other languages
Korean (ko)
Other versions
KR19980085819A (en
Inventor
유기령
Original Assignee
김영환
현대반도체주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 김영환, 현대반도체주식회사 filed Critical 김영환
Priority to KR1019970021984A priority Critical patent/KR100249164B1/en
Publication of KR19980085819A publication Critical patent/KR19980085819A/en
Application granted granted Critical
Publication of KR100249164B1 publication Critical patent/KR100249164B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods 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/10Methods 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)

Abstract

본 발명은 써큘러 큐(Circular Q)에 관한 것으로, 특히 플래그(flag)를 이용하여 보다 효율적으로 어드레싱(adrressing)할 수 있도록한 써큘러 큐의 어드레싱 방법에 관한 것이다. 이와 같은 본 발명의 써큘러 큐의 어드레싱 방법은 데이터가 저장되지 않고 라이트 포인터와 리드 포인터의 위치가 동일하도록 초기화 시키는 제 1 단계와, 외부에서 데이터가 입력되면 라이트 포인터를 1씩 증가시켜 데이터를 기록 하는 제 2 단계와, 외부에서 데이터를 리드하면 리드 포인터를 1씩 증가시켜 데이터를 리드하는 제 3 단계와, 상기 제 2, 제 3 단계의 동작중 라이트 포인터와 리드 포인터의 위치가 동일하면 라이트 동작이 정지되고 리드 동작만 가능하도록 플래그를 셋팅하는 제 4 단계와, 상기 제 4 단계에서 리드 동작이 진행되어 라이트 포인터와 리드 포인터의 위치가 동일하지 않으면 제 2, 제 3 단계가 반복 되도록 플래그를 리셋팅하는 제 5 단계를 포함하여 이루어진 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to circular Q, and more particularly, to a method of addressing a circular queue, which enables addressing more efficiently by using a flag. According to the method of addressing the circular queue of the present invention, the first step of initializing the data to the same position as the write pointer and the read pointer without storing the data, and recording the data by incrementing the write pointer by one when data is input from the outside A second step of reading data from the outside; a third step of reading data by increasing the read pointer by one; and a write operation when the positions of the write pointer and the read pointer are the same during the operations of the second and third steps. Stops the flag and sets the flag to enable only the read operation; and if the write operation is performed in the fourth step and the positions of the write pointer and the read pointer are not the same, the flag is repeated so that the second and third steps are repeated. This includes the fifth step of setting.

Description

써쿨러 큐(Circular Q)의 어드레싱(addressing) 방법Addressing method of circular Q

본 발명은 써큘러 큐(Circular Q)에 관한 것으로, 특히 플래그(flag)를 이용하여 보다 효율적으로 어드레싱(adrressing)할 수 있도록한 써큘러 큐의 어드레싱 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to circular Q, and more particularly, to a method of addressing a circular queue, which enables addressing more efficiently by using a flag.

도 1은 종래의 써큘러 큐의 비어 있는 상태 설명도이고, 도 2는 종래 써큘러 큐의 풀 상태 설명도이다.1 is a diagram illustrating an empty state of a conventional circular queue, and FIG. 2 is a diagram illustrating a full state of a conventional circular queue.

일반적으로 써큘러 큐는 도 1과 같이 8개의 어드레스(address)를 갖는 FIFO가 원형으로 구성되고, 라이트 포인터(write pointer, wr-ptr)와 리드 포인터(read pointer, rd-ptr)가 먼저 기록된 데이터가 먼저 출력될 수 있도록 상기 원형의 써큘러에 데이터를 저장할 어드레스와 리드할 어드레스를 지정하도록 되어 있다.In general, a circular queue is composed of a circular FIFO having eight addresses, and a write pointer (wr-ptr) and a read pointer (rd-ptr) are written first as shown in FIG. In order to output data first, an address to store data and an address to be read are designated to the circular circular.

이와 같은 써큘러 큐에서 종래의 어드레싱 방법을 설명하면 다음과 같다.Referring to the conventional addressing method in such a circular queue as follows.

도 3은 종래 써큘러 큐의 어드레싱 동작 순서도이다.3 is a flowchart illustrating an addressing operation of a conventional circular queue.

외부에서 데이터가 입력되면 초기화 되어 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 동일 어드레스에 위치된다. 따라서 외부의 입력 데이터는 현재의 라이트 포인터(wr-ptr)의 위치에 데이터를 기록하고 라이트 포인터(wr-ptr)가 어드레스를 1씩 증가시켜 지정하므로 지정된 위치에 데이터를 기록한다. 그리고 다른 외부에서 기록된 데이터를 읽고자 할 때, 리드 포인터(rd-ptr)는 라이트 포인터(wr-ptr)의 뒤를 따라 어드레스를 하나씩 증가시켜 지정하므로 지정된 어드레스에 저장된 데이터를 읽는다.When data is input from the outside, the write pointer wr-ptr and the read pointer rd-ptr are located at the same address. Therefore, the external input data writes data at the position of the current write pointer wr-ptr, and writes the data at the designated position because the write pointer wr-ptr designates the address by incrementing by one. When reading data from another external source, the read pointer rd-ptr reads the data stored at the designated address because the read pointer rd-ptr increments the address one by one after the write pointer wr-ptr.

따라서, 데이터를 기록할 수 있는 조건은 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 같은 어드레스를 지정하고 있으면, 빈(empty)상태로 판단하여 데이터를 기록할 수 있도록 하고 곧이어 데이터를 리드할 수 있도록 한다.Therefore, the condition under which data can be written is that if the write pointer wr-ptr and the read pointer rd-ptr designate the same address, the data can be judged to be empty and the data can be written immediately. To lead.

이와 같이 데이터를 기록하고 리드하는 상태에서, 기록된 데이터를 리드하지 않았을 경우에는 그 어드레스에 데이터를 다시 기록할 수 없도록 하였다.In the state where data is recorded and read as described above, when the recorded data is not read, data cannot be written again to the address.

즉, 라이트 포인터(wr-ptr)의 속도가 리드 포인터(rd-ptr)의 속도보다 빠를 경우, 라이트 포인터가 한 바퀴 회전하여 리드 포인터(rd-ptr)의 뒤쪽에 위치하는 경우가 발생한다. 이러한 경우를 풀(full)상태라 한다.That is, when the speed of the write pointer wr-ptr is faster than the speed of the read pointer rd-ptr, the write pointer may be rotated once and positioned behind the read pointer rd-ptr. This case is called full.

이 때 FIFO는 먼저 기록된 데이터가 먼저 리드되어 출력되어야 하는 특성을 갖고 있기 때문에 라이트 포인터(wr-ptr)가 리드 포인터(rd-ptr)를 추월하게 되면 그 전에 기록된 데이터가 지워지고 다시 새로운 데이터가 기록되며 그 때 리드 포인터(rd-ptr)는 지금 막 기록된 데이터를 리드하게 되므로 FIFO기능을 하지 못한다.At this time, since the FIFO has the characteristic that the first recorded data must be read first and outputted, when the write pointer (wr-ptr) overtakes the read pointer (rd-ptr), the previously recorded data is erased and new data is rewritten. The read pointer (rd-ptr) will read the data just written, and will not function as a FIFO.

따라서 라이트 포인터(wr-ptr)의 속도가 리드 포인터(rd-ptr)의 속도보다 빠르더라도 라이트 포인터(wr-ptr)가 리드 포인터(rd-ptr)를 추월하지 못하도록 하며, 또한 라이트 포인터(wr-ptr)가 리드 속도 보다 빠를 경우 라이트 포인터(wr-ptr)가 리드 포인터(rd-ptr)를 추월하지 않더라도 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 같은 위치에 있게되면 빈 상태로 판단하게 되므로 최소한 리드 포인터(rd-ptr)가 위치된 어드레스의 바로 그전 어드레스에는 라이트 포인터(wr-ptr)가 위치되지 못하도록 제어하므로 풀 상태라고 해도 써큘러 큐에는 한 어드레스에 데이터를 기록하지 못한다.Therefore, even if the speed of the write pointer wr-ptr is faster than that of the read pointer rd-ptr, the write pointer wr-ptr does not overtake the read pointer rd-ptr, and also the write pointer wr-ptr. If ptr is faster than the read speed, it is empty if the write pointer (wr-ptr) and the read pointer (rd-ptr) are in the same position even if the write pointer (wr-ptr) does not overtake the read pointer (rd-ptr). Since the write pointer (wr-ptr) is controlled not to be located at the address immediately before the address where the read pointer (rd-ptr) is located, the data cannot be written to one address in the circular queue even in the full state. .

종래의 써큘러 큐의 어드레싱 방법에는 다음과 같은 문제점이 있었다.The conventional method for addressing circular queues has the following problems.

즉, 라이트 포인터(wr-ptr)의 속도가 리드 포인터(rd-ptr)의 속도 보다 빠를 경우, 라이트 포인터(wr-ptr)가 한 바퀴 이동하여 리드 포인터(rd-ptr)의 뒤쪽에 위치하는 풀 상태에서 리드 포인터(rd-ptr)가 지정하고 있는 어드레스 바로 전의 어드레스에는 데이터를 기록할 수 없기 때문에, 어드레스에 대한 사이즈가 상당히 크다고 가정하면 그 어드레스 크기만큼 데이터를 기록하지 못하므로 기록 효율이 저하된다.That is, when the speed of the write pointer wr-ptr is faster than the speed of the read pointer rd-ptr, the pool in which the write pointer wr-ptr moves one round and is located behind the read pointer rd-ptr In this state, since data cannot be written to the address immediately before the address designated by the read pointer rd-ptr, assuming that the size of the address is quite large, the data cannot be written as much as the address size, thereby reducing the recording efficiency. .

본 발명은 이와 같은 문제점을 해결하기 위하여 안출한 것으로, 플래그(flag)를 사용하여 모든 어드레스를 완전히 기록할 수 있도록 하여 기록 효율을 향상시키는 써큘러 큐의 어드레싱 방법을 제공하는데 그 목적이 있다.SUMMARY OF THE INVENTION The present invention has been made to solve such a problem, and an object thereof is to provide a method for addressing a circular queue that improves recording efficiency by allowing all addresses to be completely written using flags.

도 1은 종래의 써큘러 큐의 비어 있는 상태 설명도1 is an explanatory diagram of an empty state of a conventional circular queue

도 2는 종래 써큘러 큐의 풀 상태 설명도2 is a diagram illustrating a pull state of a conventional circular queue.

도 3은 종래 써큘러 큐의 어드레싱 동작 순서도3 is a flowchart illustrating an addressing operation of a conventional circular queue.

도 4은 본 발명 써큘러 큐의 비어 있는 상태 설명도4 is an empty state explanatory diagram of the circular queue of the present invention;

도 5는 본 발명 써큘러 큐의 풀 상태 설명도5 is an explanatory view of the pull state of the circular queue of the present invention;

도 6은 본 발명 써큘러 큐의 어드레싱 동작 순서도6 is a flowchart illustrating an addressing operation of the circular queue according to the present invention.

도면의 주요 부분에 대한 부호의 설명Explanation of symbols for the main parts of the drawings

wr-ptr : 라이트 포인터rd-ptr : 리드 포인터wr-ptr: write pointer rd-ptr: lead pointer

이와 같은 목적을 달성하기 위한 본 발명의 써큘러 큐의 어드레싱 방법은 데이터가 저장되지 않고 라이트 포인터와 리드 포인터의 위치가 동일하도록 초기화 시키는 제 1 단계와, 외부에서 데이터가 입력되면 라이트 포인터를 1씩 증가시켜 데이터를 기록 하는 제 2 단계와, 외부에서 데이터를 리드하면 리드 포인터를 1씩 증가시켜 데이터를 리드하는 제 3 단계와, 상기 제 2, 제 3 단계의 동작중 라이트 포인터와 리드 포인터의 위치가 동일하면 라이트 동작이 정지되고 리드 동작만 가능하도록 플래그를 셋팅하는 제 4 단계와, 상기 제 4 단계에서 리드 동작이 진행되어 라이트 포인터와 리드 포인터의 위치가 동일하지 않으면 제 2, 제 3 단계가 반복 되도록 플래그를 리셋팅하는 제 5 단계를 포함하여 이루어짐에 그 특징이 있다.The method of addressing the circular queue of the present invention for achieving the above object includes a first step of initializing the positions of the write pointer and the read pointer so that the data is not stored, and the write pointer by one when data is input from the outside. A second step of increasing data and writing data; a third step of reading data by increasing the read pointer by one when data is read externally; and positions of the write pointer and the read pointer during the operations of the second and third steps. Is equal to the fourth step of setting the flag to stop the write operation and only the read operation, and if the write operation is not performed at the fourth step and the positions of the write pointer and the read pointer are not the same, the second and third steps are performed. And a fifth step of resetting the flag to be repeated.

상기와 같은 본 발명의 써큘러 큐의 어드레싱 방법을 첨부된 도면을 참조하여 보다 상세히 설명하면 다음과 같다.Referring to the method of addressing the circular queue of the present invention as described above in more detail with reference to the accompanying drawings.

도 4은 본 발명 써큘러 큐의 비어 있는 상태 설명도이고, 도 5는 본 발명 써큘러 큐의 풀 상태 설명도이다.4 is an explanatory diagram of an empty state of the circular queue of the present invention, and FIG. 5 is a full state explanatory diagram of the circular queue of the present invention.

도 4와 같이 저장된 데이터가 없고 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 동일 어드레스에 있을 경우가 비어 있는 상태이다.As shown in FIG. 4, when there is no stored data and the write pointer wr-ptr and the read pointer rd-ptr are at the same address, the empty state.

그리고 도 5와 같이 데이터가 모두 저장되고 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 동일 위치에 있을 경우가 풀 상태이다.As shown in FIG. 5, when all data is stored and the write pointer wr-ptr and the read pointer rd-ptr are located at the same position, the full state.

따라서 제어부에서는 비어 있는 상태와 풀 상태를 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)의 위치에 의해 판단하게 되므로 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 동일 위치에 있더라도 이를 구별하기 위해 플래그를 셋팅한다.Therefore, the controller determines the empty state and the full state based on the positions of the write pointer wr-ptr and the read pointer rd-ptr. Set the flag to distinguish it even if

도 6은 본 발명 써큘러 큐의 어드레싱 동작 순서도이다.6 is a flowchart illustrating an addressing operation of the circular queue of the present invention.

즉, 도 6과 같이 초기에는 플래그가 리셋되고 라이트 포인터(wr-ptr)와 리드 포인터(rd-ptr)가 동일 위치에 있는다. 이 때 외부에서 데이터가 입력되어 기록 모드가 되었을 때 라이트 포인터(wr-ptr)는 하나씩 증가하면서 데이터가 기록될 어드레스를 지정한다.That is, as shown in Fig. 6, the flag is initially reset and the write pointer wr-ptr and the read pointer rd-ptr are at the same position. At this time, when data is input from the outside and the recording mode is entered, the write pointer wr-ptr increases by one to designate an address to which data is to be written.

이 때 외부에서 데이터를 리드하게 되면 마찬가지로 리드 포인터(rd-ptr)가 하나씩 증가하여 리드할 데이터의 어드레스를 지정한다.At this time, when data is read from the outside, the read pointer rd-ptr is increased one by one to designate the address of the data to be read.

이와 같은 과정에서 데이터는 계속 기록하고 있고 외부에서 데이터를 리드하는 것을 정지하던가, 아니면 기록 속도가 리드 속도 보다 빠를 경우, 라이트 포인터(wr-ptr)의 위치가 리드 포인터(rd-ptr)의 위치와 동일하게 되는 경우가 발생한다.In this process, data is continuously recorded and reading of data from the outside is stopped, or if the writing speed is faster than the reading speed, the position of the write pointer (wr-ptr) is equal to the position of the read pointer (rd-ptr). The same thing happens.

따라서 이와 같은 경우에는 플래그를 셋팅하여 더 이상 라이트 포인터(wr-ptr)의 동작이 진행되지 않도록 하고 리드 모드만 동작되도록 제어한다.Therefore, in this case, the flag is set so that the write pointer wr-ptr no longer proceeds and only the read mode is operated.

그리고 리드 동작만 진행되면 다시 리드 포인터(rd-ptr)와 라이트 포인터(wr-ptr)의 위치가 다르게 되면 플래그를 리세팅하여 다시 기록과 리드 동작이 병행될 수 있도록 한다.When the read operation is performed only, if the positions of the read pointer rd-ptr and the write pointer wr-ptr are different, the flag is reset so that the write and read operations can be performed again.

이상에서 설명한 바와 같은 본 발명의 써큘러 큐의 어드레싱 방법에 있어서는 다음과 같은 효과가 있다.As described above, the method for addressing the circular cue of the present invention has the following effects.

즉, 종래의 어드레싱 방법으로는 데이터를 풀로 기록한다고 해도 한 어드레스에는 데이터를 기록하지 못했지만, 본 발명의 어드레싱 방법에 있어서는 모든 어드레스에 데이터를 기록할 수 있으므로 최소한 종래에 비하여 1/8에 해당하는 데이터를 더 기록할 수 있다.In other words, even when data is recorded in the full address using the conventional addressing method, data cannot be written to one address. However, the addressing method of the present invention can record data at all addresses, so that at least one eighth of the data compared to the conventional addressing method. You can record more.

Claims (1)

데이터가 저장되지 않고 라이트 포인터와 리드 포인터의 위치가 동일하도록 초기화 시키는 제 1 단계;A first step of initializing the positions of the write pointer and the read pointer to be the same without storing data; 외부에서 데이터가 입력되면 라이트 포인터를 1씩 증가시켜 데이터를 기록 하는 제 2 단계;A second step of writing data by incrementing the write pointer by 1 when data is input from the outside; 외부에서 데이터를 리드하면 리드 포인터를 1씩 증가시켜 데이터를 리드하는 제 3 단계;A third step of reading data by increasing the read pointer by 1 when reading data from the outside; 상기 제 2, 제 3 단계의 동작중 라이트 포인터와 리드 포인터의 위치가 동일하면 라이트 동작이 정지되고 리드 동작만 가능하도록 플래그를 셋팅하는 제 4 단계;A fourth step of setting a flag to stop the write operation and to enable only the read operation when the positions of the write pointer and the read pointer are the same during the operation of the second and third steps; 상기 제 4 단계에서 리드 동작이 진행되어 라이트 포인터와 리드 포인터의 위치가 동일하지 않으면 제 2, 제 3 단계가 반복 되도록 플래그를 리셋팅하는 제 5 단계를 포함하여 이루어짐을 특징으로 하는 써큘러 큐의 어드레싱 방법.And a fifth step of resetting the flag so that the second and third steps are repeated if the read operation is performed in the fourth step and the positions of the write pointer and the read pointer are not the same. Addressing method.
KR1019970021984A 1997-05-30 1997-05-30 Circular q addressing method KR100249164B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019970021984A KR100249164B1 (en) 1997-05-30 1997-05-30 Circular q addressing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019970021984A KR100249164B1 (en) 1997-05-30 1997-05-30 Circular q addressing method

Publications (2)

Publication Number Publication Date
KR19980085819A KR19980085819A (en) 1998-12-05
KR100249164B1 true KR100249164B1 (en) 2000-03-15

Family

ID=19507915

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970021984A KR100249164B1 (en) 1997-05-30 1997-05-30 Circular q addressing method

Country Status (1)

Country Link
KR (1) KR100249164B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048878B2 (en) 2015-06-08 2018-08-14 Samsung Electronics Co., Ltd. Nonvolatile memory module and storage system having the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10048878B2 (en) 2015-06-08 2018-08-14 Samsung Electronics Co., Ltd. Nonvolatile memory module and storage system having the same
US10671299B2 (en) 2015-06-08 2020-06-02 Samsung Electronics Co., Ltd. Nonvolatile memory module having device controller that detects validity of data in RAM based on at least one of size of data and phase bit corresponding to the data, and method of operating the nonvolatile memory module

Also Published As

Publication number Publication date
KR19980085819A (en) 1998-12-05

Similar Documents

Publication Publication Date Title
WO2007063858A1 (en) Buffer control device and buffer memory
JPS5846428A (en) Processing system for power failure protection of document editing device
US20070106835A1 (en) Display controller and method of updating parameters of the same
KR100249164B1 (en) Circular q addressing method
US5051890A (en) Program/data memory employed in microcomputer system
US6215717B1 (en) Semiconductor memory device for reducing a time needed for performing a protecting operation
JPH07262162A (en) Microprocessor
JPH08306192A (en) Non-volatile memory writing device
US5151980A (en) Buffer control circuit for data processor
JP3028567B2 (en) Microcomputer with built-in EEPROM
JP2000276461A (en) Microcomputer
JPH0496122A (en) Information processor
KR960029969A (en) A data processor having a pipeline processing function
KR0134461B1 (en) First-in/first-out memory device
JPH07122045A (en) Magnetic recording and reproducing device
KR970000266B1 (en) Method for writing and reading a data in a memory
JPS63129432A (en) Program address tracing device
KR950001589B1 (en) Automatic increasing control logic circuit for display data
JPH0535411A (en) Cache memory circuit
JPS6027049A (en) Memory device
JPS60205751A (en) Instruction prefetching device
JPS6242237A (en) Loading system to instruction buffer
JPS60218146A (en) Storage device address control system
JPH07254290A (en) Eeprom circuit
JPS6047626B2 (en) Data buffer control method

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121121

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131118

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee