FIFO implementation using standard RAMsFor implementation of large FIFOs it is advisable to use standard RAMs, thereby providing the maximum degree of integration. This involves replacing tie read-while-write memory in Fig. 3.11 by a two-port memory implemented ling standard RAMs as shown in Fig. 3.5. The resultant configuration is shown in Fig. 3.13.
Fig. 3.13 - FIFO implementation with standard RAMs.
Since it is not possible to read and write simultaneously with a normal RAM, these operations must be performed sequentially. Coordination is provided by an "arbiter" in the control logic. If data are to be entered while a read-out is in progress, the read cycle is first completed and the input delayed via a "wait" signal, and vice versa if an output is to take place while an input is in progress. The cycle that was first requested is executed first in each case. If the read and write clock pulses coincide, the arbiter makes a random decision. Owing to the possible "wait" delay, the access time can double under worst-case conditions. The control logic required to operate a RAM as a FIFO can be obtained in the form of an integrated circuit known as a FIFO RAM controller:
512 ... 64k words, 10 MHz, TTL: 674219, MMI
512 ... 64k words, 15 MHz, CMOS: ISP9119, Intersil
256 ... 16k words, 60 MHz, ECL: HXA241-141, Valvo (RTC)
Error detection and correction
When data are stored in RAMs, two different types of error can occur: permanent and transient errors. The permanent errors (hard errors) are caused by faults in the ICs themselves or in the associated controller circuits. The transient errors (soft errors) only occur randomly and are not therefore reproducible. They are mainly caused by a-radiation of the package. It may not only discharge memory capacitors in dynamic RAMs but also cause flip-flops in static RAMs to change state. Transient errors can also result from noise pulses generated inside or outside the circuit [3.7].
The occurrence of memory errors can have far-reaching consequences. Thus a single error in a computer memory might not only produce an incorrect result, but even cause the program to crash completely. Methods have therefore been developed to indicate the occurrence of errors. In order to do this, one or more check bits must be processed in addition to the actual data bits. The more check bits used, the more errors can be detected or even corrected.
Date: 2015-01-12; view: 1051
|