10.07.2015 Views

A formal description of SYSTEM/360

A formal description of SYSTEM/360

A formal description of SYSTEM/360

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

memoly accessoperationmemoly accesspriorityThe MAC operation, which occurs in the instruction fetch andthroughout the EXC operation, serves to fetch from or storein memory a specified number <strong>of</strong> bytes beginning at a specifiedaddress. Because it incorporates certain tests and other functions,it warrants a detailed scrutiny.The general form <strong>of</strong> the MAC operation is MACi (j; k), wherei specifies one <strong>of</strong> nine identical but independent MAC programs,i = 9 for the CPU memory-access, i = 8 for the interval timer,and i = 0-6 for the channels; where k is the vector involvedin the transfer to or from memory; and where j is a four-componentvector specifying the address in memory (jo), the number<strong>of</strong> bytes transferred (jl), the performance <strong>of</strong> a fetch (j, = f)or store (j2 = s), and the type <strong>of</strong> address being treated (j3 = dfor data address, i for instruction address, g for a machinegenerated[;.e., fixed] address, and h for hold, which preventsany <strong>of</strong> the other MAC’ programs from operating until the currentMACi program has been used again with j, # h).Since the several MAC’ programs all use the same memory,they must observe a queue discipline. It is controlled by thequeue vector q and the request vector r. When MAC’ is invokedby any system program (e.g., MAC’ in CPU line 3), then a requestfor service is entered (line 0) by setting ri to 1. If the queueis empty, the request is also entered in qi. In any case, the MAC’program dwells on line 1 until i is recognized as the “first” nonzeroentry in the queue. The queue discipline is not first-in firstout,but is in order by position in a permutation <strong>of</strong> q specifiedby the vector rank, which gives priority according to the index i,except that i = 0 (the multiplexor channel) may be assigned out <strong>of</strong>order. This implies that the channels have priority over the intervaltimer which has priority over the CPU.Any request for service which is not entered dircctly in q online 0 is entered from r by line 24. If j3 # h, then q is respecifiedby Y (with ri already set to zero by line 2) except that a CPU requestis entered in qD only if w = 0. The variable w is controlled(line 2) only by MAC’, the timer update memory-access, and itremains at 0 or 1 according to whether the last use <strong>of</strong> MAC8 wasfor a store or for a fetch. This excludes the CPU from memoryduring the updating <strong>of</strong> the interval counter (TU lines 1, 3) andprevents the inadvertent overwriting (by TU line 3) <strong>of</strong> a newsetting <strong>of</strong> the interval timer counter by a CPU “store” instruction.However, the use <strong>of</strong> memory by 1/0 is not excluded by w.If j3 = h, line 24 leaves q unchanged and therefore preventsany other MAC from being executed until after the next use <strong>of</strong> thesame MAC with j, # h. The use <strong>of</strong> j, = h occurs only in theinstruction TS (test and set) as follows (EXC lines a29, 30)MACg(a,, 1, f, h; u)MAC’(a1, I, S, d; e (8)).Thus, the addressed byte is set immediately following a test <strong>of</strong>its value, before any other access to memory can occur.208 A. D. FALKOFF. K. E. IVERSON. AND E. H. SUSSENGUTH

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!