![]() |
![]() |
Synchronous I/O vs. Asynchronous I/O
Synchronous I/O and asynchronous are two fundamental methods of servicing I/O requests. In synchronous systems, the calling process is blocked after issuing an I/O request, thus allowing I/O to overlap with the execution of other processes. In asynchronous systems, the process is allowed to continue execution after initiating an I/O operation. Most systems implement the synchronous I/O method since it is easier to use and generally preferred by high-level language programmers.
However, in the Nintendo 64 environment, asynchronous I/O is the preferred choice, mainly because of the asynchronous nature of the real-time game environment. For example, a game might want to start paging in the next scene data in the background while working on the graphics task list. Therefore, asynchronous I/O has the potential to enhance the throughput on a thread basis. Furthermore, synchronous I/O can be easily implemented on top of the asynchronous facility by having the calling process blocks on a message queue immediately after initiating the I/O operation.
Therefore, all interrupt-based DMA operations are asynchronous operations and all asynchronous notification is handled via the message queue facility.
Copyright © 1999
Nintendo of America Inc. All Rights Reserved
Nintendo and N64 are registered trademarks of Nintendo
Last Updated January, 1999