Browse Prior Art Database

Optimized Memory Mapping Mechanism

IP.com Disclosure Number: IPCOM000116266D
Original Publication Date: 1995-Aug-01
Included in the Prior Art Database: 2005-Mar-30
Document File: 6 page(s) / 161K

Publishing Venue

IBM

Related People

Andrews, LP: AUTHOR [+5]

Abstract

Disclosed is a Mapping mechanism and Method to optimally allocate memory pages and Lookup Table areas that are different sizes used in a multiprocessing DSP system operating on multiple channels. In the prior art, there are unusable memory regions. 1. Permanent Area used to allow memory segment areas to be mapped such as to avoid the Unusable memory regions of the Prior art. 2. The Permanent Area also allows certain key variables to always be available regardless of current page register setting. 3. A method is presented so that the size and number of segments can be tailored to meet the requirements of any particular implementation.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 41% of the total text.

Optimized Memory Mapping Mechanism

      Disclosed is a Mapping mechanism and Method to optimally
allocate memory pages and Lookup Table areas that are different sizes
used in a multiprocessing DSP system operating on multiple channels.
In the prior art, there are unusable memory regions.
  1.  Permanent Area used to allow memory segment areas to be mapped
       such as to avoid the Unusable memory regions of the Prior art.
  2.  The Permanent Area also allows certain key variables to always
be
       available regardless of current page register setting.
  3.  A method is presented so that the size and number of segments
can
       be tailored to meet the requirements of any particular
       implementation.

      The actual size and number of the various segments can be
chosen to meet the requirements of a particular implementation.  The
method used to determine the segment numbers and sizes for this
particular implementation is described below:
  1.  The permanent area must be large enough to accommodate the
       communications buffers for all 16 channels.
       (0x10 channels)*(0x400 bytes/channel) = 0x4000 bytes (8kw)
       along with the Memory-Mapped I/O area, and the DSP Kernel
       variables i.e., Interrupt and DMA Queues, LCB's, SPOS
variables,
       etc. (0x3000 bytes (6kw)).
  2.  Global Areas must be large enough so that protocol Lookup
Tables
       (0x2B00 bytes), and the Trace Buffer (0x1000 bytes) may all be
       present at one time.
  3.  Channel Areas must be  at least 0x2800 bytes.
  4.  Logical memory space is 32K Words.
  5.  Physical memory space is 128K Words.
  6.  There must be 16 channels.
  7.  There must be enough global storage for 0x6700 bytes.

Example Calculations
  c    size of each paged Channel area
  g    size of each paged Global area
  p    size of the Permanent area
  C sub g Number of Global areas
  C sub c Number of Channel areas
  S sub L Logical Memory Size
  S sub P Physical Memory Size

      The following values represent the number of bytes in hex.
Note that since the channel areas will take up the largest portion of
the physical memory available, c will be set to it's minimum value
and not permitted to exceed it.
  <%%%%% p here ge '0x7000 ' %%%%%%% Requirement.1 > vhabove
  <%%%%% g here ge '0x3B00 ' %%%%%% Requirement.2 > vhabove
  <%%%%% c here = '0x02800 ' %%%%% Requirement.3 > vhabove
  <%%%%% S sub L here = '0x10000 ' %%%%% Requirement.4 > vhabove
  <%%%%% S sub P here = '0x40000 ' %%%%% Requirement.5 > vhabove
  <%%%%% C sub c here = ' 16 ' %%%%%%%%%%%%%% Requirement.6 > vhabove
  <%%%%% C sub g g here ge '0x6700 ' %%%%%%% Requirement.7 >
  <%%%%% c + g + p here = S sub L > vhabove
  <%%%%% C sub c c + C sub g g + p here =  S sub p >

Therefore:
  <%%%%%%% g here = '0xA800' over (C sub g - 1)> vhabove
  <%%%%%%% p here = '0xD800' - g>

  'Thus, for' %%...