4 DMS (Data Management Software) Technology Background
DMS Overview
DMS is brok en up into four layers: the application layer , the cell layer , the block layer , and the
device layer. These layers interact with each other, maintaining a minimum level of coupling
and a maximum lev el of data abstraction. This simpli f ies the integration process by requiring
the system soft ware to only acces s one layer of DMS, hiding all complex data management
tasks in t he other layers of DMS. (See Figure 1.)
The applica tion inter face layer handles all
communication between the DMS libr ary and
the user’ s application. From an object oriented
perspe ctive this is the public interfac e to t he
DMS object. A vendor or integr ator can
perform all necessary DMS operations by
calling the routines in this layer.
The cell layer provides an interface to DMS
that is similar to an EEPROM. Each cell is
composed of one or more data blocks. The
data blocks are read from the data block layer
and combined to form a cell. To prevent cell
corr uption, a compile time switch is provide d
that assures cell integrity at the e xpense of
restrictions on cell si ze and fr ee s pace. If the c ompile time cell integrity switch is not utilize d,
cell data may be corrupted during a po wer outage. F or example, if po wer was lost during a cell
update operation, the cell may be corrupted. Half of the blocks in the cell may contain new
data, while the other half contain old data. While these blocks all contain va lid data, this
hy brid cell does not contain va lid cell data. (See Figure 2). When re-i nitializ ed (cell inte grity
switch acti ve), DMS detects the corrupted cell and reverts all data in the cell to old cell data.
The data block laye r is responsible for most of the f ile structure functionality of DMS. An ID
number uniquely identifies each data block. Cells consist of data blocks linked by ID
numbers. To increase performance, data block information is sorted upon initialization and
cached in an external memory table. If po wer is terminated while a data block is being written,
the data block will re vert to the previous v ersion of itself. To provide wear leveling of the
de vice , each data block is mo ved to a different location when written.
Figure 1. DMS Block Diagram