al - Audio Library Functions gDP - DP GBI Macros gdSP - General GBI Macros gSP - SP GBI Macros gt - Turbo Microcode RDP gu - Graphics Utilities Math - Math Functions nuSys - NuSystem os - N64 Operating System sp - Sprite Library Functions uh - Host to Target IO 64DD - N64 Disk Drive Demos and Sample Code Miscellaneous Tools Emulator 2.0 INDY Device Microcode
|
N64 System Terminology2-way set associative cacheA system used to split the cache memory into groups and place the data currently at a specific address in main memory into the "associated" position in the split-out area of the cache. If the cache is split in two, the system is called "2-way set associative." If the cache is split into a number of areas equal to the number of blocks in the data area, the system is called "full associative." By using a 2-way set associative system, you can change the contents of one cache while keeping the contents of the other cache intact.64-bit aligned A data format that requires data to be aligned to 64-bit boundries in memory (such as 0x00000040, 0x00000080, and so on).Active page register The register that specifies the page position of each bank of RDRAM. The banks of RDRAM are separated into four banks of one megabyte each. When using the framebuffer and the Z-Buffer, you use the active page register to store the buffers in separate memory banks. You should do this for faster execution speed.Address conversion buffer Usually called TLB (translation lookaside buffer), this buffer holds the address conversion table containing the virtual to physical address conversion information. You can use it to convert from the virtual to physical addresses at a high rate of speed.Address space identifier (ASID) The 8-bit value used for expanding the virtual address when you provide the virtual addressing through the TLB (translation lookaside buffer).Alignment rule The alignment shows the relationship between the information stored in memory and the memory boundary. The N64 system has a rule that says you must align the memory area to the 16-byte boundary so that it becomes a multiple of a cache line.API Application Programming Interface. The programming interface composed of functions, commands, and tools that the operating system supplies for the application program.Aspect ratio The width-to-height ratio of a television screen.Atomic primitive mode The mode you can use to avoid the span buffer coherence problem. But this mode seriously reduces the fill-rate.Bss Block Started by Symbol. The uninitialized data section of a segment. Before using the Bss section, you must clear it to 0.Bucket sort A sorting method that divides numeric values, which you want to sort, into buckets and then does all sorting in the buckets.Buffer The temporary memory area used to adjust between different system transfer rates when data is transferred from one place to another.Device driver A control program used for controlling the peripheral equipment connected to the computer.Device independent system interface The interface that has common I0 functions (protecting, blocking, and buffering) for various devices. You can operate it without knowing the details about the configuration of device.Device manager The N64 high-priority thread used for device control. After registering the event, event message queue, and message, the device manager controls the execution of I0 operations sequentially from the input command queue.DP command buffer The buffer that stores the RDP display list.Entry Hi register A readable and writeable register used to gain access to the highest bit of the built-in TLB. It stores the address of the information that caused an exception if a TLB exception occurs.Entry Lo-0 and Lo-1 register A readable and writeable register used to gain access to the lowest bit of the built-in TLB. The entry Lo registers hold both the even virtual pages (Lo-0) and the odd virtual pages (Lo-1).Error PC The exception program counter. It holds the virtual address value of the command that directly caused the exception or the virtual address value of the last branch or the jump command.Event The exception handler built into the N64 operating system decodes interrupts and other exceptions and maps them to system events. If the system event is one that may be handled by the game itself, a message is sent to an associated event mailbox and the game application is notified. In this way, the game designer can provide an interrupt handler to deal with the exception as required by the game requirements.Event flag A flag that indicates the occurrence or the end of an event.Full associative cache A system used to split the cache memory into groups and place the data currently at a specific address in main memory into the "associated" position in the split-out area of the cache. If the cache is split in two, the system is called "2-way set associative." If the cache is split into a number of areas equal to the number of blocks in the data area, the system is called "full associative."Game preamble code The code added by makerom that clears (initializes) the Bss (uninitialized) section, sets the stack pointer, and jumps to the boot entry routine.Gcc The GNU C compiler.Global data area The global data area that can be used by all functions, not just local functions.Game note To allow the Controller Pak to be shared among different applications, the Controller Pak Library creates a file system which it uses for managing the memory areas. Intuitively, this system can be regarded as a greatly simplified version of the file system used in PC operating systems. In the Controller Pak, files are called game notes or simply notes. Up to 16 game notes can be created in one Controller Pak.gvd The SGI debugger that operates on the developmental workstation in the host and communicates with the emulator board through the dbgif program.Heap The area of memory that is dynamically allocated to meet the changing needs of the application.Idle thread The lowest priority thread. It does nothing except when the other threads are not operating. The N64 operating system hangs if there is no idle thread.In-line model A method that directly includes the concluded commands in the main routine without using subroutines.Input/Output (I/O) subsystem The system in the operating system that hides device-specific details in device drivers through which the operating system transfers data and control to provide a fair and safe access scheme to the devices. It is needed because most of the devices are shared resources. It provides a consistent, uniform, and flexible interface to all devices so that programs can reference devices by name and perform high-level operations without knowing the device configuration.Instruction address The effective address of the program command.Instruction cache A cache that temporarily holds the program commands. It improves the performance of the command call.Interval timer A timer that sends a signal at each constant interval.Kernel The core of the operating system. The N64 runs under a small, real-time, preemptive kernel. Unlike many popular real-time kernels, no semaphores or event flags are provided. All synchronization is provided by sending and receiving messages. The N64 kernel is supplied as a set of run-time library functions, so that only those portions that are actually used are included in the game�s run-time image. The N64 kernel is so minimal that it has no official name. The kernel can be considered as being layered into core functionality and higher-level system services.Latency The delay that occurs between the time an address is input to memory and the time when the actual data is fetched.LBA The abbreviation for logical block address.Map To place data from ROM to main memory and from main memory to cache, and associate them.Memory Management The process of managing all the available memory. All memory management is left up to the game. That is, the N64 operating system provides no heap or dynamic memory allocation mechanism for the game. Because the game has direct access to the entire memory map, it has total control on how memory is partitioned and used. The operating system simply runs in the kernel mode (kseg0) with cache and direct mapping enabled. In this mode, the virtual address 0x80000000 is mapped directly to physical address 0x0. Translation Lookaside Buffer (TLB) is not used by the operating system to provide virtual memory support. However, low-level routines are available for game developers to program the TLBs directly. Furthermore, a region library is provided to simplify the task of allocating and de-allocating fixed-size memory buffers.Messages Information sent or received by the system and threads. The N64 operating system is message-based, so messages are extremely important. Unlike many popular real-time kernels, no semaphores or event flags are provided. All synchronization is accomplished by sending and receiving messages. This has deliberately been made very efficient, and the lack of other synchronization primitives should not be a problem. In fact, there are advantages to using only messages. The operating system code itself is smaller and less intrusive on game space than it would be if it had to provide multiple facilities for thread synchronization. Also, because information must frequently be transferred when threads synchronize, you can get more use out of a single operation. Of course, messages are also useful in simply transferring information from one thread to another. In the N64 operating system, messages are also used to transfer information when a system event occurs.Microcode Software that defines the functionality of the RSP. Nintendo provides a number of different microcodes for different purposes, some for audio and some for graphics. A game may use many different microcodes during the rendering of a single frame.MIPS The abbreviation of millions of instructions per second. It is a unit of measure of processor performance.Mutual exclusion Protect a device's I/0 process by excluding other I/O processes.Non-Maskable Interrupts (NMI) An N64 interrupt. When the N64 Control Deck's RESET switch is pushed by the game user, the hardware generates an HW2 interrupt to the R4280 CPU. The interrupt is serviced by the OS event handler which sends a message of type OS_EVENT_PRENMI to the message queue associated with that event to announce that the HW2 interrupt (known as the PRE-NMI event) will be followed in 0.5 seconds by a non-maskable interrupt (NMI) to the R4280 CPU (unless the RESET switch is pushed and held for more than 0.5 seconds, in which case the NMI will occur when the switch is released).Overhead Processing time that is not directly related to the user program. It is the time used by the operating system to allocate or manage system resources and control processes.Page For easy management of the Controller Pak, memory is delimited by 256-byte boundaries and managed in 256-byte units. Each 256 bytes is called a "page" and, beginning with memory area 0x0000 ~ 0x00ff, the pages are named Page 0, Page 1, Page 2, and so on up to Page 127. For a 256K-bit Controller Pak (256K-bit capacity = 32K bytes = 128 pages), 5 pages (Pages 0-4) are reserved by the system for game note management. This reserved area totals 1,280 bytes. Consequently, the number of pages that can actually be used by the game is reduced by 5 pages.Page mask register A register to set the page sizes (4K, 16K, 64K, 256K, 1M, 4M, 16M) of each TLB (translation lookaside buffer) entry.Paging By splitting a program into 256-byte pieces called pages and loading only the required pages, you can use the memory area most effectively.Pipeline structure A technique that speeds up execution by overlapping processes in the CPU. That is, mixed component elements from various processes are piped in to the CPU continuously from the pipeline. No time is wasted.Pop An operation that removes (pops) a data element from the current stack. The stack is a LIFO (last in first out) structure, so you are popping the data element that was last pushed onto the stack.Preemptive system When a process that has a higher priority than the executing one is encountered, the current process yields CPU for the higher priority process. The higher-priority process preempts the lower priority process.PRE-NMI A heads-up notification that the N64 reset switch was pressed by the game user and an NMI (non-maskable interrupt) will occur in half a second. When a PRE-NMI occurs, you need to save the currently executing process to prepare for the NMI.Profiler A tool that measures performance information such as the number of times a resource was called and the execution time.Push The act of storing (pushing) a data element onto the current stack. The stack is a LIFO (last in first out) structure.RAM Random-access memory. This is memory that can be written to and read from dynamically at any location. The N64 main memory (RAM) has a total of 4 megabytes of RDRAM.RAMROM The gload tool loads games for the N64 development system for IRIX. Specifically, it downloads a prepared ROM image into the "Game Pak memory" on the Nintendo 64 emulator board. Nintendo calls this RAMROM memory because it is RAM memory that occupies 16 megabytes of space where a Game Pak's ROM would ordinarily reside on the real N64 Game Pak hardware.RDP port The port that couples the SGI Indy with the N64 emulator board.RDRAM Rambus Dynamic RAM. This unique RAM from Rambus, Inc. combines high-speed access with the low cost of dynamic RAM. The N64 main memory has a total of 4 megabytes of RDRAM.Resource Something used by a thread or a task. For example, the CPU, memory, an I/O device, and the RCP are all resources.ROM Read-only memory where the game is stored in the N64 Game Pak.ROM spec file The file that describes the segment configuration of objects or unprocessed data files. It is referred to when the ROM image is created.Scheduler The manager (thread) that decides the execution order of several threads or the allocation order of system resources.Segment address The RDRAM address for the segment under the current control of the RSP (reality signal processor). The RSP microcode can control 16 segments. The segment address contains the segment ID and the offset, so the physical address is found by adding the segment offset to the base address, which is found by using the segment ID to serch the segment base register.Segment base register A register related to the segment table. It holds the segment base address for a specific segment ID.Segment table A table used for calculating the physical address of a program that is split into segments.Semaphore An integer argument used for controlling the synthesis process in a multitasking system. It is similar to an event flag in that it controls the synthesis by using signals (integer flags) to flag the beginning and ending of processes to ensure that no synchronization problems occur.Stack Temporary memory that has a LIFO (last in first out) structure. You pop the stack to remove a data element and push the stack to add a data element.System fault (exception) handler The system that manages interrupts and other exceptions. In the N64 operating system when an exception occurs, this handler sends a message to the appropriate message queue after looking up the message queue and message from the corresponding event table.System thread Threads that control DMA or I/O operations in the same way that device manager threads such as the PI Manager or VI Manager manage devices.Thread The Basic unit of CPU execution.Timers The operating system provides convenient functions to start and stop both countdown and interval timers. These timers are expressed in CPU count register cycles, which depend on the video clock. That is, a counter tick in a PAL system occurs more frequently than the one in a NTSC system. Developers can also set and get the real time counter value.TLB The translation lookaside buffer. This buffer holds the address conversion table containing the virtual to physical address conversion information. You can use it to convert from the virtual to physical addresses at a high rate of speed.Topology The geometric Shape.Vertical retrace The vertical synthesis of scan lines on the TV screen. Specifically, it refers to the time interval when the phosphor gun of the TV is turned off in order to move the gun to the top of the screen. This time interval occurs every 1/60th of a second for NTSC. It is during this time interval that it is safe to write to the frame buffer.Writeback cache When data writing occurs, this system first writes data to the cache memory and then writes back to main memory as the cache memory overflows. Also, it refers to the cache memory of the system itself.Z-Buffer A rendering technique where the distance from the viewer (Z) for each pixel is stored during rendering and used to determine which objects are displayed. If for instance, a pixel representing the dashboard of a car has already been drawn in a given location on the screen, then by comparing the distance from the viewer to the bumper to that of the dashboard, the program knows that the bumper should not be drawn over the top (in front) of the dashboard. This feature is implemented in the N64 RCP graphics hardware.
|