WO1996037821A1 - Non-arithmetical circular buffer cell availability status indicator circuit - Google Patents
Non-arithmetical circular buffer cell availability status indicator circuit Download PDFInfo
- Publication number
- WO1996037821A1 WO1996037821A1 PCT/US1996/007589 US9607589W WO9637821A1 WO 1996037821 A1 WO1996037821 A1 WO 1996037821A1 US 9607589 W US9607589 W US 9607589W WO 9637821 A1 WO9637821 A1 WO 9637821A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- cell
- signal
- circular buffer
- availability status
- available
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/764—Masking
-
- 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
-
- 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
- G06F5/12—Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
-
- 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/12—Indexing scheme relating to groups G06F5/12 - G06F5/14
- G06F2205/126—Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag
Definitions
- the present invention relates to status indicator circuits for use with circular buffers and, in particular, to a status indicator circuit that indicates which cells of a circular buffer are available for access, without the need for complicated arithmetic logic.
- Circular buffers are well known in the art.
- An example of a ten-cell circular buffer 10 (i.e., an N- cell circular buffer, where N is equal to 10) is shown in Fig. 1.
- Circular buffers such as circular buffer 10 are typically accessed sequentially. For example, CB -, is accessed after CBCg. After the last circular buffer cell is accessed, a "wrap-around" occurs such that the next circular buffer cell to be accessed is the first circular buffer cell. That is, referring to circular buffer 10, CBCQ is accessed after CBC 0 is accessed.
- each circular buffer cell, CBC ⁇ is accessed after CBC// ⁇ _ j + - - j j yj jy i -
- "REM" is a function that yields, in a division operation, the number that is the undivided part of the dividend (i.e., the remainder).
- Circular buffers are of particular utility in data communications devices. For example, in a data receiver, received data would typically be inserted sequentially into a circular buffer. Once data is inserted into a particular cell of the circular buffer, this cell becomes unavailable for access until the received data is processed. At that point, this cell again becomes available for access.
- the circular buffer 10, of Fig. 1 has a ten-cell availability status circuit 20, associated with it.
- the state of a particular status cell, CAS ⁇ , of the availability status circuit 20 indicates whether the corresponding circular buffer cell, CBC ⁇ , is available for access.
- the states of the status cells, CAS ⁇ , of the cell availability status circuit 20 are determined by CAS determination logic 30.
- the CAS determination logic 30 responds to an available address indicator signal, AV ADD, that indicates which of the circular buffer cells is the first circular buffer cell available for access; and to an unavailable address indicator signal, UNAV_ADD, that indicates which of the circular buffer cells is the first circular buffer cell unavailable for access.
- CAS determination logic 30 sets cell availability status circuits CAS 2 , CAS3, and CAS 4 to indicate that corresponding circular buffer cells CBC2, CBC3, and CBC 4 are available for access.
- cell availability status circuits CAS 0 , CASJ, CAS5, CASg, CAS 7 , CASg, and CAS 9 to indicate that corresponding circular buffer cells CBC Q , CBC j , CBC 5 , CBCg, CBC ? , CBCg, and CBCQ are not available for access.
- Conventional CAS determination logic circuits employ arithmetic circuitry to determine how to set the availability status circuits.
- arithmetic circuitry is complicated.
- circular buffers "wrap-around"
- the arithmetic circuitry of conventional CAS determination logic circuits must perform complicated modular arithmetic. Therefore, what is desired is an availability status indicator circuit with CAS determination logic circuitry that can determine, without complex arithmetic circuitry or high-overhead masking logic, how to set availability status circuits.
- N cell status circuits are provided that correspond to the separate circular buffer cells.
- Each cell status circuit includes an output terminal at which a cell availability status signal is provided to indicate the availability status of the corresponding circular buffer cell.
- a first input terminal of the cell status circuit is connected to receive the cell availability status signal from the previous cell status circuit.
- the ceil availability status signal is generated in response to the cell availability status signal of the previous cell, to an available address indicator signal that indicates whether the corresponding circular buffer ceil is a first circular buffer cell available to be accessed, and to an unavailable address indicator signal that indicates whether the corresponding circular buffer cell is a last circular buffer cell available to be accessed.
- the cell availability status signal has a first state if the corresponding circular buffer cell is available for access and has a second state if the corresponding circular buffer cell is not available for access.
- Fig. 1 schematically illustrates a circular buffer circuit and an associated cell availability status circuit, with cell availability status determination logic for setting the cell availability status circuit.
- Fig. 2 is a block diagram showing a cell determination logic circuit in accordance with the present invention.
- Fig. 3 schematically illustrates a first embodiment, in accordance with the present invention, of a cell status circuit of the cell determination logic circuit of Fig. 2.
- Fig. 4 schematically illustrates a second embodiment, in accordance with the present invention, of a cell status circuit of the cell determination logic circuit of Fig. 2.
- Fig. 5 schematically illustrates a third embodiment, in accordance with the present invention, of a cell status circuit of the ceil determination logic circuit of Fig. 2.
- Fig. 2 is a block diagram showing a cell determination logic circuit 130 in accordance with the present invention.
- the cell determination logic circuit 130 shown in Fig. 2 indicates the availability of the cells of a four cell circular buffer (i.e., N equals 4).
- a first decoder (AV_DECODE) 132 receives a two bit start address signal
- First decoder (AV_DECODE) 132 operates in a conventional manner. That is, first decoder (AV_DECODE) 132 asserts one of its output bits, AV_ADD_DEC [0..3], in response to the available address signal, AV_ADD.
- Each cell status circuit, CSC ⁇ provides the corresponding cell availability status signal, CAS ⁇ , at its output.
- a second decoder (UNAV_DECODE) 134 receives a two bit end address signal (U AV_ADD [0..1]) that indicates which of the N corresponding circular buffer cells is the first circular buffer cell unavailable for access. For example, if circular buffer cell 3 is the first circular buffer cell unavailable for access, then UNAV_ADD has the value of 03h.
- Second decoder (U AV DECODE) 134 operates in a conventional manner.
- second decoder (UNAV_DECODE) 134 asserts one of its outputs, UNAV_ADD_DEC ⁇ , in response to the unavailable address signal, UNAV_ADD.
- the separate bits of the second decoder (UNAV_DECODE) 134 output, UNAV_ADD_DEC, are provided to the separate corresponding cell status circuits, CSC ⁇ .
- each cell status circuit, CSC ⁇ is additionally connected to receive the cell availability status signal generated by the "previous" cell status circuit.
- Previous is meant in the “circular” sense. That is, each cell status circuit, CSC ⁇ , is connected to receive CAS// ⁇ .
- CSC ⁇ is configured such that the cell availability status signal, CAS ⁇ , that it provides to its output, is identical to the cell availability status signal, CAS// ⁇ _ j ⁇ + js j ⁇ REM N. P rov 'ded by the "previous" cell availability status circuit, CSC (( ⁇ . 1 ⁇ + N RE M N , unless:
- UNAV_ADD_DEC ⁇ does not indicate that the CBC ⁇ is the first circular buffer cell unavailable for access. Otherwise, if AV_ADD_DEC ⁇ does indicate that CBC ⁇ is the first circular buffer cell available for access in which case the cell availability status signal, CAS ⁇ , provided by the cell status circuit, CSC ⁇ , has a first state, to indicate that CBC ⁇ is available for access. Finally, if UNAV_ADD_DEC ⁇ does indicate that the CBC ⁇ is the last circular buffer cell available for access, the cell availability status signal, CAS ⁇ , provided by the cell status circuit, CSC ⁇ , has a second state to indicate that CBC ⁇ is unavailable for access.
- Figs. 3-5 illustrates different embodiments (300, 400, and 500, respectively) of a cell status circuit, CSC ⁇ , of the cell determination logic circuit 130.
- the cell availability status signal indicates availability with a "high” level and indicates non ⁇ availability with a “low” level.
- the decoded available and unavailable address indicators, AV_ADD_DEC ⁇ and UNAV_ADD_DEC ⁇ are active low.
- a first two-to-one data selector 310 has its first data input "DO” connected to receive a constant signal having a level at ground, and its second data input “Dl” connected to receive the cell availability signal, CAS v ⁇ . n + N REM N' Se nerated bv the "previous" cell availability status circuit, CSC ⁇ _ n + N) REM N-
- One of the signals provided to first data input "DO” and second data input "Dl” of the first data selector 310 is selected to be provided to the output "Q" of data selector 310 under the control of AV_ADD_DEC ⁇ , provided to the select input "S" of data selector 310.
- a second two-to-one data selector 320 has its first input "DO” connected to receive a constant signal having a level at V cc , and its second input “Dl” connected to receive the signal output from the output "Q" of the first data selector 310.
- One of the signals provided to first data input “DO” and second data input “Dl” of the second data selector 320 is selected to be provided to the output "Q" of data selector 320 under the control of UNAV_ADD_DEC ⁇ , provided to the select input "S” of data selector 310.
- the signal provided to the output "Q" of data selector 320 is the cell availability signal, CAS ⁇ .
- Fig. 4 illustrates a further embodiment 400 of a cell status circuit, CSC ⁇ , of the cell determination logic circuit 130.
- a first two-input NAND device 410 is connected to receive UNAV_ADD_DEC ⁇ at its first input "DO" and is connected to receive the cell availability signal, CAS / ⁇ _ i + N*) REM ] 8 enerated by the "previous" cell availability status circuit,
- a second two-input NAND device 420 is connected to receive AV_ADD_DEC ⁇ at its first data input "DO" and is connected to receive the signal output from the "Q" output of the first two-input
- the second two-input NAND device 420 subjects the signal provided to the inputs "DO" and “Dl” to a NAND logic function, and the result of the NAND logic function is provided to the output "Q" of the second two-input NAND device 420 as the cell availability signal, CAS ⁇ .
- the Fig. 4 embodiment 400 has an advantage over the Fig. 3 embodiment 300 that there is less "ripple" delay through the two NAND devices 410, 420 of the Fig. 4 embodiment 400 than there is through the two data selectors 310, 320 of the Fig. 3 embodiment 300.
- Fig. 5 illustrates a still further embodiment 500 of a cell status circuit, CSC ⁇ , of the cell determination logic circuit 130.
- a four-to-one data selector 510 has its first and second data inputs, "DO" and “Dl” connected to receive a constant signal having a level at V...
- the four-to-one data selector 510 has its third data input, "D2" connected to receive a constant signal having a level at ground.
- the four-to-one data selector 510 has its fourth data input, "D3" connected to receive the cell availability signal, CAS, .
- the Fig. 5 embodiment 500 has an even further advantage over the Fig. 3 embodiment 300 than the Fig. 4 embodiment 400.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Logic Circuits (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
Description
Claims
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019970700557A KR970705066A (en) | 1995-05-26 | 1996-05-23 | Non-arithmetic circular buffer cell availability status indicator circuit (Non-Arithmetic Circular Buffer Cell Availability Status Indicator Circuit) |
EP96920448A EP0772810A1 (en) | 1995-05-26 | 1996-05-23 | Non-arithmetical circular buffer cell availability status indicator circuit |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/451,535 | 1995-05-26 | ||
US08/451,535 US5617543A (en) | 1995-05-26 | 1995-05-26 | Non-arithmetical circular buffer cell availability status indicator circuit |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1996037821A1 true WO1996037821A1 (en) | 1996-11-28 |
Family
ID=23792616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1996/007589 WO1996037821A1 (en) | 1995-05-26 | 1996-05-23 | Non-arithmetical circular buffer cell availability status indicator circuit |
Country Status (4)
Country | Link |
---|---|
US (1) | US5617543A (en) |
EP (1) | EP0772810A1 (en) |
KR (1) | KR970705066A (en) |
WO (1) | WO1996037821A1 (en) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6094729A (en) * | 1997-04-08 | 2000-07-25 | Advanced Micro Devices, Inc. | Debug interface including a compact trace record storage |
DE59810778D1 (en) * | 1997-09-18 | 2004-03-25 | Infineon Technologies Ag | Arrangement with a circulating memory and with a device which executes a program which accesses the circulating memory |
US6314485B1 (en) * | 1997-11-14 | 2001-11-06 | Agere Systems Guardian Corp. | Automatic status register |
KR100331330B1 (en) * | 1998-09-05 | 2002-09-05 | 삼성전자 주식회사 | How and where reference information is stored |
US6539467B1 (en) * | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
US6453405B1 (en) * | 2000-02-18 | 2002-09-17 | Texas Instruments Incorporated | Microprocessor with non-aligned circular addressing |
US7415580B2 (en) * | 2005-08-01 | 2008-08-19 | Hewlett-Packard Development Company, L.P. | System for determining the position of an element in memory |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0533337A1 (en) * | 1991-09-20 | 1993-03-24 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5276853A (en) * | 1987-05-18 | 1994-01-04 | Fujitsu Limited | Cache system |
US5204953A (en) * | 1989-08-04 | 1993-04-20 | Intel Corporation | One clock address pipelining in segmentation unit |
US5259006A (en) * | 1990-04-18 | 1993-11-02 | Quickturn Systems, Incorporated | Method for substantially eliminating hold time violations in implementing high speed logic circuits or the like |
US5189319A (en) * | 1991-10-10 | 1993-02-23 | Intel Corporation | Power reducing buffer/latch circuit |
US5254888A (en) * | 1992-03-27 | 1993-10-19 | Picopower Technology Inc. | Switchable clock circuit for microprocessors to thereby save power |
US5404473A (en) * | 1994-03-01 | 1995-04-04 | Intel Corporation | Apparatus and method for handling string operations in a pipelined processor |
-
1995
- 1995-05-26 US US08/451,535 patent/US5617543A/en not_active Expired - Lifetime
-
1996
- 1996-05-23 EP EP96920448A patent/EP0772810A1/en not_active Withdrawn
- 1996-05-23 WO PCT/US1996/007589 patent/WO1996037821A1/en not_active Application Discontinuation
- 1996-05-23 KR KR1019970700557A patent/KR970705066A/en not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0533337A1 (en) * | 1991-09-20 | 1993-03-24 | Advanced Micro Devices, Inc. | Apparatus and method for resolving dependencies among a plurality of instructions within a storage device |
Non-Patent Citations (1)
Title |
---|
HOLDSWORTH B.: "DIGITAL LOGIC DESIGN", 1993, BUTTERWORTH-HEINEMANN, OXFORD, GB, XP002010434, 21445 * |
Also Published As
Publication number | Publication date |
---|---|
US5617543A (en) | 1997-04-01 |
KR970705066A (en) | 1997-09-06 |
EP0772810A1 (en) | 1997-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5598362A (en) | Apparatus and method for performing both 24 bit and 16 bit arithmetic | |
US5381360A (en) | Modulo arithmetic addressing circuit | |
US6049858A (en) | Modulo address generator with precomputed comparison and correction terms | |
US5541935A (en) | Integrated circuit with test signal buses and test control circuits | |
EP0776504A2 (en) | Integrated circuit with multiple functions sharing multiple internal signal buses according to distributed bus access and control arbitration | |
US5752273A (en) | Apparatus and method for efficiently determining addresses for misaligned data stored in memory | |
US5652718A (en) | Barrel shifter | |
EP0080901A2 (en) | Data processing apparatus | |
KR100351527B1 (en) | Code breakpoint decoder | |
US5682339A (en) | Method for performing rotate through carry using a 32 bit barrel shifter and counter | |
US5617543A (en) | Non-arithmetical circular buffer cell availability status indicator circuit | |
US5983333A (en) | High speed module address generator | |
US6047364A (en) | True modulo addressing generator | |
EP0917048B1 (en) | Address generator and method for single-cycle indirect addressing | |
US5546353A (en) | Partitioned decode circuit for low power operation | |
US5831877A (en) | Bit searching through 8, 16, or 32 bit operands using a 32 bit data path | |
US5655139A (en) | Execution unit architecture to support X86 instruction set and X86 segmented addressing | |
US5659712A (en) | Pipelined microprocessor that prevents the cache from being read when the contents of the cache are invalid | |
US5754460A (en) | Method for performing signed division | |
US7039789B2 (en) | Circular addressing algorithms providing increased compatibility with one or more higher-level programming languages | |
US5583453A (en) | Incrementor/decrementor | |
US5649147A (en) | Circuit for designating instruction pointers for use by a processor decoder | |
US5815736A (en) | Area and time efficient extraction circuit | |
US5687102A (en) | Double precision (64 bit) shift operations using a 32 bit data path | |
RU2040038C1 (en) | Processor of uniform computing structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): DE KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1019970700557 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1996920448 Country of ref document: EP |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 1996920448 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
WWP | Wipo information: published in national office |
Ref document number: 1019970700557 Country of ref document: KR |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 1996920448 Country of ref document: EP |
|
WWR | Wipo information: refused in national office |
Ref document number: 1019970700557 Country of ref document: KR |