CA2425278C

Packet buffer memory with integrated allocation/de-allocation circuit

Abstract

A buffer memory with a memory allocation and de-allocation circuit. Thebuffer memory has an address space divided into address blocks and a memoryaddress space divided into memory blocks. The circuit, in response to anallocation request for an allocation of a certain size buffer, allocates sufficientaddress blocks and memory blocks for the buffer. The circuit, in response to a de-allocation request to de-allocate a certain size of memory, de-allocates wholeunused address blocks and memory blocks.

CA2425278C, drawing sheet 1
Sheet 1 of 9

Term

Term ended

Expired 14 April 2023, 3.4 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

20 claims: 1 independent, 19 dependent

  1. 1
    CA 02425278 2003-04-14 -18What is claimed is:1. A memory circuit for buffering data, the memory circuit having an address input bus with an address space for receiving address data, a data input bus for 5 receiving data, and a data output bus for outputting data: comprising a buffer memory having a memory address space and memory address data, an address port for receiving the memory address data to address the buffer memory, a data input port to receive the data over the data input bus for storing in the buffer memory, and a data output port for outputting the data stored in the io buffer memory over the data output bus;an address translator to receive the address data for translation into the memory address data and providing the memory address data to the address port of the buffer memory;and a memory allocation circuit having an allocation/de-allocation signal line for 15 receiving allocation and de-allocation requests, a byte count bus for receiving a byte count with each of the allocation and de-allocation requests, an addressing bus for providing a first start address in response to an allocation request and receiving a second start address with a de-allocation request, and a control bus to load data to the address translator for translating the address data to the memory 20 address data;wherein the address space is divided into address blocks, the memory address space is divided into memory blocks, and each address block comprises a fixed number of memory blocks;wherein the memory allocation circuit, in response, to the allocation 25 request, allocates sufficient consecutive addresses in the address space in the address blocks and sufficient number of the memory blocks of the buffer memory to store the byte count amount of memory, provides the first start address over the address bus, and loads the data to the address translator for translating the address data to the memory address data;30 wherein the memory allocation circuit, in response, to the de-allocation request, de-allocates the address blocks starting at the first whole address block from the second start address for the whole address blocks of the byte count amount of memory and de-allocates the memory blocks corresponding to the deallocated address blocks;and CA 02425278 2003-04-14 -19wherein the address translator comprises an indirection memory to store the data for translating the address data to the memory address data where the data in the indirection memory comprises the memory address data stored at indirection memory addresses corresponding to the address data.
  2. 6
    7. The memory circuit of claim 6, wherein the special priority encoder comprises an instantiation of 18’b1x0xxxxxx ... xxxxxxx:begin out<= 4’d13;ok <= TbO;end io for (X+1 ) is the number of address blocks where the zero represent one free address block.
  3. 17
    19. The method of claim 17, wherein the special priority encoder comprises an instantiation of 18’b100xxxxxx ... xxxxxxx;begin out<= 4’d13;ok <= 1’bO;end for (X+2) is the number of address blocks where the zeroes represent two 20 consecutive free address blocks.