The Sadram Architecture

The purpose of the Sadram Architecture is to impose a (voluntary) organization upon DRAM which can be exploited to optimize computations. The organizational structure used by Sadram is simple ordering, ie., storing data in sorted order versus chaotic order. The administration of this structure is performed by the DRAM itself or by the DRAM controller. Such ordering can be achieved with the simplest of all arithmetic operations, namely comparison, and there are a multitude of 'local optimizations' that lower the computational burden of this sort. The motivation for this strategy is simple: sort is our most fundamental organizational tool and makes dramatic improvements to the speed and burden of data access versus accessing data in a chaotic manner.

The structural elements feeding the sort may be pure keys, data records (including their keys), or a {key, pointer} combination where the pointer addresses the underlying user record. In the latter case (the most common organization) the user data is maintained in its original locations as dictated by the application itself. In effect this is a key-sort. The keys may comprise character strings, unicode strings, floats, doubles, unums, posits, or BCD's. The type and size of keys are declared at initialization and fixed thereafter.

Once the sorting hardware is initialized by the CPU, the operation of the sort is largely independent of the CPU itself. In some cases, it is completely free of CPU intervention so called 'free sort'. Conceptually, a block of data is written to DRAM and 'free sort' builds the sort structures as the write is performed. In other words, the memory self-organizes the data as it is written. When the block write is complete it is already sorted.

Sort itself is an extremely widely used algorithm. In the '60s Knuth discovered that something between 25% and 50% of all computer cycles were used for sort. The number of overt sorts is smaller today because the sort process has been incorporated into databases and other dynamic structures. However, the need for organizing data into a coherent order is unchanged. AI applications, for example, rely on the data being in a coherent order for which Sadram is the ideal pre-processor. However, Sadram finds many other applications. To list a few:

On this website you can explore the structure and operation of the Sadram Architecture.

Under Constrruction