Design Approach

Since Nintendo 64 operates in a real-time environment, its I/O subsystem is one of the most time-critical areas. Furthermore, the customized Nintendo 64 environment contains a well-known set of device interfaces that remains unchanged for some time to come. Therefore, its I/O subsystem is mainly designed for optimal throughput and response, and not for portability and generality. This design approach coincides with the main Nintendo 64 design philosophy, which has always been (and still is) to follow the minimal approach.

The Nintendo 64 I/O subsystem contains the following components:

- a device-dependent system interface
- a device manager for shared devices
- a system exception handler

These components represent a much trimmed-down version of the typical I/O layers. All overhead associated with device-independent interfaces (that is, naming and buffering) has been removed; protection is implemented only on shared devices. Low-level (raw) I/O interface is also available, allowing you to customize device interfaces based upon your specific needs. The result is a very lightweight and optimized interface that allows you to access (in most cases) the devices directly.

Each of these components is described further in other sections of this manual. However, first it is important to discuss some properties (such as synchrony and mutual exclusion) that the Nintendo 64 I/O subsystem should exhibit.

Copyright © 1999 Nintendo of America Inc. All Rights Reserved Nintendo and N64 are registered trademarks of Nintendo Last Updated January, 1999