This document is an interoffice memorandum from Dan Sullivan, dated February 25, 1979, announcing a page-by-page review meeting for the MA30 Memory Subsystem Functional Specification, scheduled for March 8, 1979.
The MA30 Memory Subsystem Description:
The MA30 is a memory subsystem designed to interface with the Dolphin Bus, offering up to 4 Mwords of memory (32 or 36 bits wide, with byte addressing). It incorporates Single Error Correcting and Double Error Detecting (SEC/DED) code for both memory arrays and data paths to ensure data integrity. The MA30 operates as a server on the bus, responding to memory requests and logging detected errors.
Key Functional Areas:
- Commands: Supports various memory commands including Read Masked, Write Masked, Read/Write 4 Words, and masked lock/unlock operations.
- Error Handling: Categorizes errors as correctable (fixed internally) or uncorrectable (resulting in incorrect bus operations). It sets various flags (e.g., POISONED MEM) in Control and Status Registers (CSRs) to indicate error states. If memory is poisoned, responses for Primary Memory Addresses will have invalid data tags.
- Memory Organization: Features CSRs for configuration and observation, a queue for up to two memory requests, and a mechanism for mapping primary memory addresses to physical hardware addresses. It also provides a special "extra bit" per memory location not covered by ECC, accessible via CSRs.
- Operations: Processes one memory request at a time, prioritizing internal refresh requests. Includes locking mechanisms (READ MASKED LOCK, Write Masked Unlock) which involve comparing source IDs with the lock owner and asserting Bus Faults on mismatches. Group buffers are utilized in maintenance mode to provide valid data even if RAM contents are lost due to refresh issues (e.g., during single bus ticks).
- Performance: Specifies access times (e.g., 429ns for Read 1/4 Word Masked) and throughput (e.g., 2.5MHz for Read 1/4 Word Masked) based on a 33ns clock, assuming bus availability and no errors.
- Configurability: The MA30 hardware is software-configurable for either Dolphin or VAX systems, allowing for performance optimization, though this might lead to incompatibility between systems.
Key Discussion Points from the Memo:
Dan Sullivan highlights specific areas for review and discussion:
- IIL Interface Functions: These functions are not yet specified but will be defined as the design progresses.
- Memory Poisoning and Data Tags: A debate exists on whether the MA30 should send valid data tags (even for questionable data) when memory is poisoned, to allow disk controllers to complete transfers. Sullivan believes disk controllers should handle this, but offers to add functionality for selected IDs if his argument is rejected.
- READ LOCK WRITE UNLOCK Timeout: No timeout is specified or implemented for this sequence in the MA30 due to MCA pin limitations. Sullivan also states that the MA30 lacks the intelligence to determine when to unlock a database, and an unconditional lock reset by a timer could negatively affect database completion times if interrupts frequently access them.