previous | contents | next

that the T(general purpose interface) output, Bin, holds the number of the current bin being filled. T is used to detect whether random or sequential addressing is used to input since it holds the old value of the ID switches.

The control part for the controller process is shown in Figure BIN-7. Note the register, temporary\T, holds the physical number of the conveyor cell being considered. The controller waits for the Advance-Conveyor-Flag signal from the conveyor, then \decrements the CHP and inserts the item number in the cell corresponding to that of the conveyor. It then checks all 63 conveyor positions to find those parts that may be ejected into each bin. New items enter the conveyor at the position. marked by the CHP. A count is kept of the items in M[OJ that could not be binned and the Over-30-alarm-f lag is set when this number reaches 30.

ADDITIONAL PROBLEMS

1. Carry out a study to determine parameters for specifying a class of conveyor-bin systems.

2. What is the approximate rate at which the conveyor can move and not be limited by the controller?

MEMORIES

This section introduces three new memories, namely M(queue), M(stack), and M(content addressable), into the set of those that have already been introduced as primitive RTM components: DM(flag) - a single bit Boolean; M(transfer), M(byte), and M(constants) - sixteen bit registers; and M(scratchpad) and M(array). In the primitive memories, a particular piece of data is accessed explicitly. The new memories use the following accessing schemes: M(queue) - the first item placed in the memory is the first item removed (FIFO); M(stack) - the last item placed in the memory is the first item removed (LIFO); M(content addressable) - an item of data is accessed by its value rather than by name, a form of associative memory.

The M(queue) presents an interesting synchronization problem. This memory has two independent processes: one for input (called Put), and one for output (called Get). These theoretically could be used simultaneously, but since one physical memory is used to hold the data, it is necessary to synchronize the usage requests. The extended RTM, K(arbiter), previously described, solves this synchronization problem.

With both the M(queue) and M(stack), items are not addressed explicitly; rather the "next" item is accessed. The M(content addressable), though, implies that some searching technique must be used to retrieve data.

An excellent description of queues, stacks and other types of memories is given in Chapter 2 of Knuth (1968).

M(QUEUE) FIRST-IN FIRST-OUT MEMORY

KEYWORDS: Queue, FIFO, put, get, clear, memory, synchronization

Queues appear in many different systems ranging from barber shops and grocery store check-out stations to components within computers and their programs. For information processing systems, an M(queue)\Mq is usually a fixed-size array memory with the following basic operations: Put(write) - for entering items into the queue; Get(read) - for taking items out of the queue.

273

previous | contents | next