SCA DesignSpec Sep83

Order Number: XX-D522A-64

This document, dated September 21, 1983, is a design specification for the Systems Communications Architecture (SCA), specifically detailing its TOPS-20 implementation through two main components: SCAMPI (Monitor SYSAP support) and SCSJSY (User mode SYSAP support). It aims to provide a high-level overview ("map of major highways") of the architecture rather than a detailed routine-by-routine description.

SCAMPI (Monitor SYSAP support)

SCAMPI forms the core implementation of the SCA protocol within the TOPS-20 monitor. Its primary responsibilities include:

  1. Major Data Structures: Defines key structures like System Blocks (per-remote system data, including work queues) and Connect Blocks (per-connection database, managed entirely by SCA, linked to system blocks and user forks).
  2. Request Handling: Processes requests from System Service Access Points (SYSAPs), emphasizing the use of interlock mechanisms (CION/CIOFF, SCON/SCOFF macros) to protect connection state and other shared data from concurrent access by interrupt handlers. SYSAPs are generally assumed to be trustworthy.
  3. Interrupt Handling: Manages various interrupt-level entry points from the port driver (e.g., for new virtual circuit establishment, circuit closure, buffer transfer completion, and all incoming packets). It carefully handles connection state changes with interlocks to prevent race conditions.
  4. Periodic Functions: Executes scheduled tasks like:
    • Idle Chatter: Polling remote nodes with open connections by sending credit requests to determine their online status.
    • Buffer Allocation Level Management: Oversees SCA's internal buffer pools (for messages and datagrams), handling allocation requests, deferring large requests if buffer thresholds are breached, and ensuring accurate buffer counts.
    • Connection Data Deletion (SC.RAP): Periodically reclaims resources for aborted or disconnected connections after ensuring all outbound traffic has completed.
  5. Buffer Management Routines: Details the allocation and return of buffers to SCA's free pools, including checks for buffer availability and mechanisms to replenish pools when levels fall below thresholds.
  6. General Support Routines: Includes mechanisms like SC.SON/SC.SOF for managing connection state interlocks and SC.PON/SC.POF for controlling CI interrupts.

SCSJSY (User mode SYSAP support)

SCSJSY provides the user-mode interface to the Communications Interconnect (CI) through SCA. Its key aspects are:

  1. Overview: Translates user application requests into SCA SYSAP handler calls and converts SCA callbacks into Program Status Interrupts (PSIs) for the relevant user fork. A critical function is the rigorous validation of user arguments, as SCA's monitor-level components assume trustworthy SYSAPs and could crash or fail catastrophically with invalid input.
  2. Traffic Handling: Manages both inbound and outbound traffic. Inbound traffic is placed on fork/connection lists, triggering a PSI for the owning fork. Outbound traffic is placed on hardware command queues, and the SCSJSY call blocks until the send confirmation is received.
  3. Major Data Structures: Extends connect blocks with user buffer counts and pointers for per-connection lists, which are also linked to fork-wide lists, allowing flexible data access.
  4. Service Request Handlers: Routines that check and translate user arguments, call SCA, and generate events or return information. Notably, it avoids copying packet data from user space to monitor space for performance by mapping packets into an SCA virtual memory section.
  5. Interrupt Event Handlers: Describes a complex, multi-stage process for handling interrupt events. Interrupts initially record minimal data on a system-wide queue. This data is then progressively processed through scheduler loops (SCSCLK, PIRQ) to transition into process context, allowing the SCSPSI routine to scan the queue, place entries onto fork/connection queues, and generate PSIs to notify user applications. Users then employ SCS% functions to retrieve event data.

In essence, SCAMPI is the lower-level, monitor-resident implementation of the SCA protocol, managing core communications, resources, and concurrency. SCSJSY is the higher-level, user-mode component that bridges user applications to SCAMPI, handling argument validation, traffic flow, and interrupt notification delivery to applications.

XX-D522A-64
May 1983
15 pages
Quality

Original
0.8MB

Site structure and layout ©2025 Majenko Technologies