Multimedia research in the last few years has concentrated on transporting isochronous data across the network and through the workstation while retaining the real-time characteristics to enable smooth display. However, the next range of multimedia applications will be those that do more than just present the data to a human user. They will require some processing to be done on the arriving streams in addition to, or instead of, simply passing the data to the output device.
One common theme that is seen in both multimedia end-system design and the ATM style of networking is a separation of data and control paths. This is frequently done to simplify and optimize the hardware and software involved in the parts of the system where large volumes of data flow. Often in these systems, the video information passes directly from the network interface to the display without intervention by the CPU; it is only relatively rare events with more relaxed time constraints, such as repositioning the window on the screen, that need processing power. This mechanism is highly effective at providing a support mechanism for multimedia applications without either the high bandwidth data streams taking all the CPU time, or execution of other tasks inserting unacceptable jitter in the servicing of the isochronous data.
However, the requirement to keep the CPU out of the data path has led to machines where the processor is never able to access the multimedia data. This approach is unfortunate in that it precludes an interesting range of applications. We believe that a better architecture would keep the data away from the CPU when no processing is required but still enable high speed access by the CPU when the application demands it.
This paper presents the advantages of providing the CPU access to multimedia data by delivery of the stream directly into the CPU cache. This avoids the data passing through main memory and also prevents unnecessary traversal of the machine's interconnect. We refer to a cache used in this way as a ``stream cache'' (or s-cache).
The desire behind the s-cache is not only to get multimedia data into the processing element fast, but also get rid of it fast; that is, the desire it to process data and then flush it as soon as possible, making use of the fact that the data is known to be a stream.
The stream cache mechanism fits well with the Desk Area Network (DAN) architecture , which uses an interconnect based on the Asynchronous Transfer Mode (ATM). A machine based on the DAN was used to gain experience with using a stream cache.