EP0752800A2

Apparatus and method for data packing through addition

Abstract

A scalable packing circuit used to byte pack data transferred from a first storage element to a second storage element. The packing circuitry comprises a word packing circuit which receives data packets of a first bit width and stores them as data packets of a second bit width equivalent to the bit width of the second storage element. Concurrently, the word packing circuit eliminates invalid words included within the data packets from the first storage element. The packing circuit also includes a byte packing circuit which removes invalid bytes within the data packets of the second bit width before transferring the data to the second storage element for contiguous storage.

EP0752800A2, drawing sheet 1
Sheet 1 of 20

Term

Term ended

Projected expiry passed 3 July 2016, 10.2 years ago.

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

21 claims: 7 independent, 14 dependent

  1. 1
    A circuit for packing data transferred between a first memory element and a second memory element, the circuit comprising:a word packing circuit configured to receive a first sequence of data words each having a first bit width and to serially transfer a second sequence of data words each having a second bit width;anda byte packing circuit, coupled to the word packing circuit, configured to (i) receive in serial the second sequence of data words and (ii) produce a third sequence of data words each having the second bit width to be stored in the second memory element, the third sequence of data words including only valid data provided by the second sequence of data words.
  2. 6
    The circuit according to claims 1 or 2 or 5, wherein said byte packing circuit includes an input storage element configured to receive from the read storage element (i) a first data word of the second sequence of data words in a first cycle and (ii) a second data word of the second sequence of data words in a second cycle;a save storage element, coupled to the input storage element, configured to receive the first data word of the second sequence of data words in the second cycle;a selecting element, coupled to said input storage element and said save storage element, configured to route at least one byte data of the first data word of the second sequence of data words to an output storage element;andsaid output storage element, coupled to said selecting element, configured to transfer a first data word of the third sequence of data words to said second memory element in a third cycle.
  3. 10
    A network interface circuit coupling a host system to a network media, the network interface circuit comprising:a transmit buffer memory configured with a second bit width;a system bus interface configured to establish a connection with a data bus of the host system, said data bus having a first bit width;a system and ATM layer core, coupled to the transmit buffer memory and the system bus interface, configured to receive a first sequence of data words placed on the data bus and to pack valid data provided by the first sequence of data words prior to storing the data within said transmit buffer memory, the system and ATM layer core including a word packing circuit configured to receive the first sequence of data words and to serially transfer a second sequence of data words each having the second bit width, anda byte packing circuit, coupled to the word packing circuit, configured to (i) receive in serial the second sequence of data words and (ii) produce a third sequence of data words each having the second bit width to be stored in the transmit buffer memory, the third sequence of data words including only valid data provided by the second sequence of data words.
  4. 15
    The network interface circuit according to claims 10, wherein said byte packing circuit includes an input storage element configured to receive from the read storage element (i) a first data word of the second sequence of data words in a first cycle and (ii) a second data word of the second sequence of data words in a second cycle;a save storage element, coupled to the input storage element, configured to receive the first data word of the second sequence of data words in the second cycle;a selecting element, coupled to said input storage element and said save storage element, configured to route at least one byte data of the first data word of the second sequence of data words to an output storage element;andsaid output storage element, coupled to said selecting element, configured to transfer a first data word of the third sequence of data words to said second memory element in a third cycle.
  5. 19
    A method of data packing comprising the steps of:providing a word packing circuit to receive a first sequence of data words each having a first bit width and to serially transfer a second sequence of data words each having a second bit width, wherein each data word of the second sequence of data words contains valid words;andproviding a byte packing circuit, coupled to the word packing circuit, to receive in serial the second sequence of data words and then produce a third sequence of data words each having the second bit width to be stored in the second memory element, the third sequence of data words exclusively containing valid bytes.
  6. 20
    A network comprising:a network media;anda host system, coupled to said network media, to transfer data through said network media, said host system including a circuit for packing the data for transmission, said circuit including a word packing circuit configured to receive a first sequence of data words and to serially transfer a second sequence of data words each having a second bit width, anda byte packing circuit, coupled to the word packing circuit, configured to (i) receive in serial the second sequence of data words and (ii) produce a third sequence of data words each having the second bit width, the third sequence of data words including only valid data provided by the second sequence of data words.
  7. 21
    A network interface circuit comprising:a local buffer memory configured with a second bit width;anda core circuit, coupled to said local buffer memory, configured to receive a first sequence of data words each having a first bit width and to store valid data of the first sequence of data words into said local buffer memory, said core circuit including a word packing circuit configured to receive the first sequence of data words and to serially transfer a second sequence of data words each having the second bit width, anda byte packing circuit, coupled to the word packing circuit, configured to (i) receive in serial the second sequence of data words and (ii) produce a third sequence of data words each having the second bit width to be stored in the transmit buffer memory, the third sequence of data words including only valid data provided by the second sequence of data words.