EP0241129A2

Addressing arrangement for a RAM buffer controller.

Abstract

There is disclosed herein a RAM buffer controller for managing the address input lines of a RAM buffer to simulate the operation of two FIFO's therein. There is also disclosed apparatus for allowing random access by a node processor in a local area network node using the RAM buffer controller to manage transmit and receive FIFO's to have random access to any address in the address space of the buffer without restriction to FIFO boundaries. There is also disclosed appratus for transmitting packets from said buffer organized into one or two linked lists. Further, there is disclosed apparatus for allowing independent initialization of any of the pointers in the RAm buffer controller which are not currently selected, and for allowing software requests for read or write access by the node processor. Further, there is disclosed apparatus and a method for recording status and length information at the end of a packet instead of in front thereof and for allowing any incoming packet to be flushed without saving status information or to be flushed while saving its status information.

EP0241129A2, drawing sheet 1
Sheet 1 of 12

Term

Term ended

Projected expiry passed 3 March 2007, 19.6 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

47 claims: 40 independent, 7 dependent

  1. 1
    An apparatus for generating pointer addresses for guiding data operations with a memory comprising:first means for storing a plurality of pointer addresses;second means coupled to said first means for selecting one of said pointer addresses for output to said memory;third means coupled to said second means and to said first means for incrementing the selected pointer address and loading it back into said first means to replace the selected pointer address.
  2. 5
    An apparatus as defined in claim 4 further comprising a multiplexer having its output coupled to a data input of said first means and having an input coupled to an output of said fourth means for storing said starting address pointers and an input coupled to said initialization bus and having a control input and further comprising control means coupled to said control input and to said sixth means for receiving said end signal and for determining when the selected read pointer or write pointer has become equal to said end address and for causing said multiplexer to select the output of said fourth means such that the proper starting address pointer for the FIFO corresponding to the selected read or write pointer may be stored in said first means as the new value for the selected read or write pointer address.
  3. 6
    An apparatus as defined in claim 5 further comprising full/empty comparison means coupled to said first means for comparing said read and write pointers for receive packets and generating a first signal indicating whether said pointers are equal and for comparing said read and write pointers for said transmit packets and generating a second signal indicating whether said pointers are equal.
  4. 7
    An apparatus as defined in claim 6 further comprising means coupled to said full/empty comparison means for receiving said first and said second signals and for comparing these signals to the type of memory access that occurred in the memory access cycle just previous to the cycle that caused the compared pointers to become equal and to the type of memory access that occurred in the memory access cycle that caused the pointers to become equal and for making a determination in the case of said first signal indicating the status of the receive FIFO whether that FIFO is full or empty and for making a determination in the case of said second signal indicating the status of the transmit FIFO whether that FIFO is full or empty.
  5. 8
    An apparatus as defined in claim 1 further comprising means coupled to said first means for initializing separate write and read pointers for a first stack and for initializing separate write and read pointers for a second stack and for controlling said third means to manage the incrementing and decrementing of said write and read pointers such that a last in, first out memory access operation in said memory may be performed.
  6. 9
    An apparatus as defined in claim 4 wherein said fifth means includes means for allowing the end pointer addresses to be initialized or changed to any desired address within the address space of said memory.
  7. 10
    An apparatus as defined in claim 2 wherein said first means includes a plurality of registers each for storing one of said pointer addresses one of which is for storing the read address for transmit packets and further comprising linked list means for allowing the read pointer for transmit packets to be changed to a new arbitrary address within the address space of said memory during each memory access cycle for purposes of allowing linked lists of packets to be transmitted.
  8. 11
    An apparatus as defined in claim 10 further comprising an initialization bus for carrying the initial address for read pointer for transmit packets and a DBI bus for carrying linking addresses for storage in the register storing the read pointer address for transmit packets and wherein said linked list means includes an input multiplexer having its output coupled to the data input of said register for storing the read address for transmit packets and having an input coupled to initialization bus and having an input coupled to said DBI bus and having an input coupled to said third means and having a control input, and further comprising control means coupled to said control input for causing said multiplexer to select the input coupled to said DBI bus during transmission of a packet organized as a linked list in said memory such that linking addresses from said DBI bus will be loaded in the register storing the read pointer for transmit packets.
  9. 12
    An apparatus as defined in claim 10 wherein said first means includes at least two registers for storing separate and individual read address pointers for transmit packets organized into at least two linked lists and wherein said linked list means includes means for allowing separate linking addresses for said at least two linked lists to be stored in each of said at least two registers where each register and linking address correspond to one of said at least two linked lists.
  10. 13
    An apparatus as defined in claim 11 wherein said first means includes at least two registers for storing separate and individual read address pointers for transmit packets organized into at least two linked lists and wherein said linked list means includes means for allowing separate linking addresses for said at least two linked lists to be stored in each of said at least two registers where each register and linking address correspond to one of said at least two linked lists.
  11. 14
    An apparatus as defined in claim 1 wherein said first means is comprised of a plurality of registers for storing said pointers and further comprising a plurality of multiplexers each having an output coupled to a data input of one of said registers and each having a plurality of inputs, and further comprising an initialization bus coupled to selected ones of said inputs and wherein said third means is coupled to other selected ones of said inputs.
  12. 15
    An apparatus as defined in claim 14 wherein one said registers is a random access memory address register.
  13. 16
    An apparatus as defined in claim 5 further comprising a random access memory address register coupled to said initialization bus and wherein said control means ignores said end signal when said second means selects the output of said random access memory address register for output to said memory.
  14. 17
    An apparatus as defined in claim 1 wherein said first means includes a plurality of registers for storing said pointer addresses including a first register for storing a write pointer for receive packets and having an output coupled to said second means and a second register for storing a shadow write pointer for receive packets where said first and second registers have inputs and outputs, and further comprising first and second multiplexers having outputs coupled respectively to said inputs of said first and second registers, each said multiplexer having a plurality of inputs wherein one input of said first multiplexer is coupled to said third means for receiving the incremented value of said write pointer for receive packets when said second means selects the write pointer for receive packets for output to said memory and wherein the output of said second register is coupled to an input of each of said first and second multiplexers and wherein the output of said first register is coupled to an input of each of said first and second multiplexers.
  15. 18
    An apparatus as defined in claim 17 wherein said first and second multiplexers also have control inputs and further comprising control means coupled to said control inputs and having a first input for receiving a FLSHPKT signal indicating a received packet or portion thereof is to be flushed and having a second input for receiving a BRCVPKT signal indicating packet reception is beginning and having a third input for receiving a DWRREQ signal indicating that packet reception is occuring, said control means for causing said second multiplexer to select the input coupled to the output of said first register and for causing said first multiplexer to select the input coupled to said third means to cause said first register to load the write pointer for receive packets as incremented by said third means upon receiving said BRCVPKT signal and for causing said first multiplexer to continue to select said input coupled to said third means upon receiving said DWRREQ signal and for causing said first multiplexer to select the input coupled to the output of said second register and thereafter to cause said first multiplexer to select said input coupled to said third means upon receiving said FLSHPKT signal.
  16. 19
    An apparatus as defined in claim 17 wherein said first and second multiplexers also have control inputs and further comprising control means coupled to said control inputs, and having a first input for receiving a FLSHPKT signal indicating a received packet or portion thereof is to be flushed, and having a second input for receiving a BRCVPKT signal indicating packet reception is beginning, and having a third input for receiving a DWRREQ signal indicating that packet reception is occuring, and having a fourth input for receiving an ERCVPKT signal indicating a packet has been successfully received, said control means for causing said second multiplexer to select the input coupled to the output of said first register to cause the then existing write pointer for receive packets to be saved in the second register and for causing said first multiplexer to select the input coupled to said third means to cause said first register to load the write pointer for receive packets as incremented by said third means upon receiving said BRCVPKT signal and for causing said first multiplexer to continue to select said input coupled to said third means upon receiving said DWRREQ signal such that the write pointer for receive packets is incremented on every clock cycle during packet reception and, upon receiving said ERCVPKT signal, for causing said first multiplexer to select the input coupled to the output of said second register and for causing said second multiplexer to select the input coupled to the output of said first register such that the contents of these two register are exchanged, and for causing said second means to select the output of said first register for application to the address inputs of said memory, and further comprising data path controller means coupled to the data inputs of said memory for keeping track of the length of the received packet and its status and for writing this data into the location in memory pointer to by the current contents of said first register, said control means also for causing said first multiplexer to select the input coupled to the output of said register after said status and length data is written so as to cause said first register to load the contents of said second register to restore the write pointer for receive packets to its state as it existed at the time of receiving said ERCVPKT signal, said data path controller for writing a predetermined bit in the memory location addressed by the contents of said first register and for subsequently causing said first multiplexer to select the input coupled to the output of said first register until the next BRCVPKT signal is received.
  17. 20
    An apparatus as defined in claim 17 wherein said first and second multiplexers also have control inputs and further comprising control means coupled to said control inputs, and having a first input for receiving a FLSHPKT signal indicating a received packet or portion thereof is to be flushed, and having a second input for receiving a BRCVPKT signal indicating packet reception is beginning, and having a third input for receiving a DWRREQ signal indicating that packet reception is occuring, and having a fourth input for receiving an RCVABRT signal indicating packet that has been received or partially received is to be aborted but its status and length information is to be recorded, said control means for causing said second multiplexer to select the input coupled to the output of said first register to cause the then existing write pointer for receive packets to be saved in the second register and for causing said first multiplexer to select the input coupled to said third means to cause said first register to load the write pointer for receive packets as incremented by said third means upon receiving said BRCVPKT signal, and for causing said first multiplexer to continue to select said input coupled to said third means upon receiving said DWRREQ signal such that the write pointer for receive packets is incremented on every clock cycle during packet reception and, upon receiving said RCVABRT signal, for causing said first mulitplexer to select the input coupled to the output of said second register such that the contents of the second register is loaded in said first register, and for causing said second means to select the output of said first register for application to the address inputs of said memory, and further comprising data path controllers means coupled to the data inputs of said memory for keeping track of the length of the received packet and its status and for writing this data into the location in memory pointed to by the current contents of said first register, said control means also for causing said first multiplexer to select the input coupled to the output of said third means after said status and length data is written so as to cause said first register to reload the current write pointer for receive packets as incremented by said third means, said data path controller for writing a predetermined bit in the memory location addressed by the contents of said first register after its contents have been incremented and for subsequently causing said first multiplexer to select the input coupled to the output of said first register until the next BRCVPKT signal is received.
  18. 21
    An apparatus as defined in claim 11 further comprising a starting address register for storing a new link address pointing to the location in memory of a predetermined packet and having an input coupled to said initialization bus and having an output coupled at least to an input of the source multiplexer having its output coupled to the input of the register storing the read pointer for the transmit packets, said source multiplexer having a control input, and further comprising a control means coupled to said control input and having a control input for receiving a signal INICLBN indicating that said predetermined packet should be sent, said control means for causing said source multiplexer to select the input coupled to the output of said starting address register when said INICLBN signal is received.
  19. 22
    An apparatus as defined in claim 21 further comprising an end address register having an input and a second source multiplexer having an input coupled to the output of said register for storing the read address pointer for the transmit packets and having its output coupled to said input of said end address register and having a control input, and wherein said control means is also coupled to said control input of said second source multiplexer and wherein said control means is also for simultaneously causing said second source multiplexer to select said input coupled to the output of said register for storing the read address pointer for transmit packets simultaneously with the selection by said source multiplexer of its input coupled to the input of said starting address register upon receiving said INICLBN signal such that the link address is loaded in said register which is for storing the read pointer for transmit packets simultaneously with the loading of the current read pointer for transmit packets into the end address register.
  20. 23
    An apparatus as defined in claim 1 further comprising arbitration means coupled to said second means and having a plurality of service request signal inputs for receiving signals indicating that a particular pointer is desired to be selected, said arbitration means for arbitrating said request signals and selecting the currently asserted request with the highest priority.
  21. 24
    An apparatus as defined in claim 23 further comprising a clock input for receiving a clock signal and wherein said second means has a control input and wherein said first means comprises a plurality of registers for storing predetermined ones of said pointer addresses, each register having an input and an output and a clock input for receiving said clock signal for causing the data at said input to be latched into said register and to be available for output on said output, and further comprising a plurality of multiplexers each having its output coupled to a said input of one of said registers and each having at least one input coupled to the output of the register to which the multiplexer has its output coupled, and wherein said third means has an output carrying the incremented value of the pointer selected by said second means, said output of said third means coupled to another input of each said multiplexer, and each said multiplexer having a control input, and further comprising a control means coupled to said control inputs of said multiplexers and to said arbitration means and to a control input of said second means for sensing which request signal has received priority and for causing said second means to select the appropriate one of said pointers in accordance with the result of the arbitration and for causing said multiplexer coupled to the input of the register whose pointer contents have been selected for output by said second means to select its input coupled to the output of said third means for a first clock cycle and for causing said multiplexer coupled to the selected register to select the multiplexer input coupled to the output of the selected register during a second clock cycle.
  22. 26
    An apparatus as defined in claim 1 wherein said first means includes a plurality of registers for storing said pointers and further comprises an initialization bus coupled to an input of each register and wherein one of said registers is for storing a random access pointer address which can be set initially by data on said initialization bus and will be incremented by said third means when said random access pointer is selected for output by said second means.
  23. 27
    An apparatus as defined in claim 26 further comprising arbitration means having a plurality of inputs for coupling to conductors carrying request signals and coupled to said second means for arbitrating any simultaneously asserted requests and selecting the highest priority request and for causing said second means to select said random access pointer register output for output to said memory.
  24. 28
    An apparatus as defined in claim 26 further comprising instruction decoder means having an instruction bus input and coupled to said second means for decoding an instruction received at said instruction bus input and causing said random access pointer register output to be selected for output.
  25. 29
    An apparatus as defined in claim 27 further comprising means having an instruction bus input and coupled to said second means for decoding an instruction received at said instruction bus input and causing said random access pointer register output to be selected for output.
  26. 30
    An apparatus as defined in claim 28 wherein said instruction decoder means is also coupled to said third means in such a way that when a predetermined instruction is received, the third means can be stopped from incrementing the selected pointer.
  27. 31
    An apparatus as defined in claim 1 further comprising an initialization bus and wherein said first means is comprised of a plurality of registers each having an input and further comprising a plurality of multiplexers having their outputs coupled to said register inputs, each multiplexer having an input coupled to said third means for receiving the incremented value of the selected pointer and each multiplexer having an input coupled to said initialization bus.
  28. 32
    An apparatus as defined in claim 1 further comprising an initialization bus and wherein said first means is comprised of a plurality of registers each having an input and further comprising a plurality of input multiplexers having their outputs coupled to said register inputs, and further comprising a source multiplexer having an input coupled to said initialization bus and having an input coupled to said third means and having an output, each said input multiplexer having an input coupled to said output of said source multiplexer.
  29. 33
    A system comprising:a clock;a first system for reading and writing data coupled to said clock and having a first data bus and having a first output line for carrying a first memory access request signal;a second system for reading and writing data coupled to said clock and having a second data bus and having a second output line for carrying a second memory access request signal;a memory coupled to said clock and having a data port and an address port, said data port coupled to said first and second data buses;and a buffer controller means coupled to said clock and coupled to said address port and to said first and second memory access request signals for arbitrating said memory access requests and for generating pointer addresses at said address port for controlling access to data stored in said memory via said data buses.
  30. 34
    An apparatus as defined in claim 33 wherein said buffer controller means is for managing said pointer addresses such that said memory appears to each of said first and second systems as a pair of independently operating FIFO memories.
  31. 35
    A system comprising:a first system for reading and writing data having a first clock and having a first data bus and having a first output line for carrying a first memory access request signal;a second system for reading and writing data having a second clock and having a second data bus and having a second output line for carrying a second memory access request signal;a memory coupled to said first clock and having a data port and an address port, said data port coupled to said first data bus;a buffer controller means coupled to said first clock and coupled to said address port and to said first and second memory access request signals for arbitrating said memory access requests and for generating pointer addresses at said address port for controlling access to data stored in said memory via said data buses and having an enable output, said buffer controller means also for generating an enable signal at said enable output indicating when a pointer for said second system has been output to said memory port;and a latch having a data input coupled to said second data bus and having a data output coupled to said data port and having a clock input coupled to said second clock and having an output enable input coupled to said enable output of said buffer controller means for receiving said output enable signal to cause data stored in said latch by said second system to be applied to said data port of said memory.
  32. 36
    An apparatus as defined in claim 35 wherein said buffer controller means is for managing said pointer address such that said memory appears to each of said first and second systems as a pair of independently operating FIFO memories.
  33. 37
    An apparatus for generating pointer addresses at an output for coupling to an address port of a memory for controlling data operations of said memory comprising:a clock means for generating a periodic series of load signals;a first register having an input and having a load input coupled to said clock for causing said register to load and store the address at its input upon each occurrence of said load signal and having an output, said register for storing a read pointer for a transmit FIFO;a second register having an input and having a load input coupled to said clock for causing said register to load and store the address at its input upon each occurrence of said load signal and having an output, said register for storing a write pointer for a transmit FIFO;a third register having an input and having a load input coupled to said clock for causing said register to load and store the address at its input upon each occurrence of said load signal and having an output, said register for storing a read pointer for a receive FIFO;a fourth register having an input and having a load input coupled to said clock for causing said register to load and store the address at its input upon each occurrence of said load signal and having an output, said register for storing a write pointer for a receive FIFO;an output multiplexer having inputs coupled to said outputs of said first, second, third and fourth registers and having an output and having a control input for receiving a signal controlling which of said inputs is coupled to said output;an input multiplexer for each of said first through fourth registers, each input multiplexer having an output coupled to said input of its associated register and each input multiplexer having first and second inputs and having a control input for receiving a signal controlling which of said inputs is coupled to said outputs;an incrementing means having an input coupled to the output of said output multiplexer and an output coupled to each first input of each said input multiplexer for incrementing the pointer address stored in the selected register and supplying the incremented result to the inputs of said input multiplexers;an initialization bus coupled to each second input of said input multiplexers for allowing any of said registers to be loaded with an address placed on said bus;and control means having an instruction port and output signal lines coupled to said control inputs for said input multiplexers to cause any selected one to select its second input for coupling to said output of said input multiplexer when a predetermined instruction arrives at said instruction port;arbitration means having a plurality of memory access request inputs and having a plurality of control signal lines coupled to said control inputs of said input multiplexers and to said control input of said output multiplexer for arbitrating simultaneous memory access requests, selecting the highest priority current request and activating predetermined signal lines to cause said output multiplexer to select the output of the register storing the pointer selected as the current highest priority by said arbitration means for output to said memory and for causing the input multiplexer coupled to the selected register to select the input coupled to said incrementing means such the current pointer in the selected register will be incremented and the new value will be loaded on the next clock cycle.
  34. 38
    An apparatus as defined in claim 37 further comprising means coupled to said initialization bus and to said output of said output multiplexer and having a control output for storing an end address for each of said transmit FIFO and said receive FIFO and for comparing the address of the currently selected FIFO to the appropriate one of the end addresses and for generating a signal indicating whether or not the end address has been equalled.
  35. 39
    An apparatus as defined in claim 38 further comprising random access memory means coupled to said output multiplexer and said incrementing means and to said initialization bus and to said control means for allowing any address on said initialization bus to be stored in said random access memory means and output to said memory upon receipt of a predetermined instruction by said control means and to allow the address from the initialization bus to be incremented or not incremented and re-output depending upon the instruction received.
  36. 43
    A method of operating a RAM buffer controller for generating addresses for a memory, said controller including a first register, a second register, an incrementer and an output gate for gating the output of the first register to the address inputs of said memory comprising the steps of:storing an address in said first register;upon receipt of a first signal, storing the contents of said first register in said second register and incrementing the contents of said first register;upon receipt of a second signal, holding the contents of said second register constant while incrementing the contents of said first register once for every access to said memory;upon receipt of a third signal, simultaneously causing the contents of said first and second registers to be exchanged;gating the output of said first register to said address inputs and writing data into the location in memory addressed by the contents of said first register;causing the contents of said second register to be stored in said first register;gating the output of said first register to said address ports of said memory and writing a predetermined bit in the memory location addressed by the contents of said first register with predetermined data;holding the contents of said first register constant.
  37. 44
    A method of operating a RAM buffer controller for generating addresses for a memory, said controller including a first register, a second register, an incrementer and an output gate for gating the output of the first register to the address inputs of said memory comprising the steps of:storing an address in said first register;upon receipt of a first signal, storing the contents of said first register in said second register and incrementing the contents of said first register;upon receipt of a second signal, holding the contents of said second register constant while incrementing the contents of said first register once for every access to said memory;upon receipt of a third signal, causing the contents of said second register to be stored in said first register.
  38. 45
    A method of operating a RAM buffer controller for generating addresses for a memory, said controller including a first register, a second register, an incrementer and an output gate for gating the output of the first register to the address inputs of said memory comprising the steps of:storing an address in said first register;upon receipt of a first signal, storing the contents of said first register in said second register and incrementing the contents of said first register;upon receipt of a second signal, holding the contents of said second register constant while incrementing the contents of said first register once for every access to said memory;upon receipt of a third signal, causing the contents of said second register to be stored in said first register;gating the output of said first register through to said address inputs and writing predetermined data in the location in memory addressed by the contents of said first register;incrementing the contents of said first register;gating the output of said first register through to said address inputs and writing a predetermined data bit into the memory location addressed by the contents of said first register;and preventing the incrementing of the contents of said first register in preparation for the next memory access.
  39. 46
    A method of operating a RAM buffer controller controlling the address inputs of a memory, said RAM buffer controller having a first register for storing write pointer addresses for use in storing received packets from a network in a memory and having a second register for storing a shadow write pointer and having first and second multiplexers controlling the data which is input respectively to said first register and to said second register and having an incrementer having an input and having an output coupled to an input of said first multiplexer where said first multiplexer also has inputs coupled to the output of said first register and to the output of said second register and where said second register has inputs coupled to the output of said first register and to the output of said second register and having control logic with a plurality of input signal lines and a plurality of output control lines to control the operation of said first and second multiplexers where each of said first and second multiplexers has a clock input coupled to a clock generating load signals and having an output multiplexer with an input coupled to the output of said first register and an output coupled to the input of said incrementer comprising the steps of:generating signals upon receipt of a first signal by said control logic to cause said second multiplexer to select its input coupled to the output of said first register and to cause the contents of said first register to be stored in said second register and thereafter generating signals to cause said second multiplexer to select its input coupled to the output of said second register and generating control signals to cause said first multiplexer to select its input coupled to said incrementer and thereafter generating signals causing said first multiplexer to select its input coupled to the output of said first register;generating signals upon receipt of a second signal by said control logic to cause said output multiplexer to select the input coupled to the output of said first register once during every memory cycle and to cause said first multiplexer to again to select its input coupled to said incrementer on every memory access cycle and thereafter to hold the contents of said first register constant by selecting the input coupled to the output of said first register between memory cycles, and generating signals to cause said second multiplexer to select its input coupled to the output of said second register while said first multiplexer is selecting its input coupled to said incrementer;generating signals upon receipt by said control logic of a third signal to cause said second multiplexer to select its input coupled to the output of said first register and to cause the contents of said first register to be stored in said second register and to cause the contents of said second register to thereafter be held constant for a predetermined period and simultaneously with the loading of the contents of said first register into said second register to cause said first multiplexer to select its input coupled to the output of said second register and to cause the contents of said second register to be stored in said first register and thereafter to cause the contents of said first register to be held constant for a predetermined period;generating signals to cause said output multiplexer to select the input coupled to the output of said first register and writing status and length information into the memory location in said memory addressed by the contents of said first register;generating signals causing said first multiplexer to select its input coupled to the output of said second register so that the contents of said second register will be loaded into said first register and to cause the contents of said first register to be held constant;writing a predetermined bit into the memory location addressed by the contents of said first register;and generating signals causing said first multiplexer to select its input coupled to the output of said first register to hold the contents of said first register constant.
  40. 47
    A method of operating a RAM buffer controller controlling the address inputs of a memory, said RAM buffer controller having a first register for storing write pointer addresses for use in storing received packets from a network in a memory and having a second register for storing a shadow write pointer and having first and second multiplexers controlling the data which is input respectively to said first register and to said second register and having an incrementer having an input and having an output coupled to an input of said first multiplexer where said first multiplexer also has inputs coupled to the output of said first register and to the output of said second register and where said second register has inputs coupled to the output of said first register and to the output of said second register and having control logic with a plurality of input signal lines and a plurality of output control lines to control the operation of said first and second multiplexers where each of said first and second multiplexers has a clock input coupled to a clock generating load signals and having an output multiplexer with an input coupled to the output of said first register and an output coupled to the input of said incrementer comprising the steps of:generating signals upon receipt of a first signal by said control logic to cause said second multiplexer to select its input coupled to the output of said first register and to cause the contents of said first register to be stored in said second register and thereafter generating signals to cause said second multiplexer to select its input coupled to the output of said second register and generating control signals to cause said first multiplexer to select its input coupled to said incrementer and thereafter generating signals causing said first multiplexer to select its input coupled to the output of said first register;generating signals upon receipt of a second signal by said control logic to cause said output multiplexer to select the input coupled to the output of said first register once during every memory cycle and to cause said first multiplexer to again to select its input coupled to said incrementer on every memory access cycle and thereafter to hold the contents of said first register constant by selecting the input coupled to the output of said first register between memory cycles, and generating signals to cause said second multiplexer to select its input coupled to the output of said second register while said first multiplexer is selecting its input coupled to said incrementer;generating signals upon receipt by said control logic of a third signal to cause said first multiplexer to select its input coupled to the output of said second register and to cause the contents of said second register to be stored in said first register and thereafter to cause the contents of said first register to be held constant for a predetermined period.
Independent claims40