Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS3839706 A
Publication typeGrant
Publication dateOct 1, 1974
Filing dateJul 2, 1973
Priority dateJul 2, 1973
Also published asDE2431520A1
Publication numberUS 3839706 A, US 3839706A, US-A-3839706, US3839706 A, US3839706A
InventorsBorchsenius E
Original AssigneeIbm
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Input/output channel relocation storage protect mechanism
US 3839706 A
Abstract
An input/output data channel operates in conjunction with a virtual memory computer. A channel operation is commenced with the execution of a start I/O instruction which transfers a channel address word (CAW) to the channel. The CAW contains a virtual command address pointing to the beginning of a virtual channel program. The virtual command address is presented to a channel look-aside buffer which translates the virtual command to a real memory address for accessing main storage. The virtual channel command words (CCW's) which comprise the channel program are successively translated by the channel look-aside buffer. A virtual address stack within the buffer holds active virtual data addresses and command addresses for each channel. Interlocking between this stack and a CPU translation mechanism is provided by an I/O bit array. The I/O bit array contains a count mechanism for each memory frame which may be addressed by the channel. Each time a memory frame is addressed by any of the channels, the corresponding count is incremented. Similarly, when any of the channels are through with the memory frame, the count is decremented. Thus, so long as there is an outstanding access to the memory frame, there is a non-zero count in the corresponding count position. The non-zero condition is transmitted to a CPU storage protect area to insure that the CPU does not try to use the same memory frame that the channel is accessing.
Images(16)
Previous page
Next page
Description  (OCR text may contain errors)

United States Patent Borchsenius Oct. 1, 1974 INPUT/OUTPUT CHANNEL RELOCATION STORAGE PROTECT MECHANISM [75] Inventor: Erik Borchsenius, Hopewell Junction, NY.

[73] Assignee: International Business Machines Corporation, Armonk, NY.

[22] Filed: July 2, 1973 [21] Appl. No.: 376,078

[52] US. Cl. 340/1725 [5 l] Int. Cl G06t 3/00, G061 13/00 [58] Field of Search 340/l72.5

[56] References Cited UNITED STATES PATENTS 3,573,736 4/!971 Schiaeppi 340/1725 3,675,209 7/l972 Trost et al, 340/1725 3,704,453 ll/l972 Blackwell et al. 340/1725 3,706,077 l2/l972 Mori et al. 340N725 3,725,864 4/l973 Clark 340/1725 Primary ExaminerGareth D. Shaw Assistant ExaminerJames D. Thomas Attorney, Agent, or FirmOwen L. Lamb [5 7] ABSTRACT An input/output data channel operates in conjunction with a virtual memory computer. A channel operation is commenced with the execution of a start l/O instruction which transfers a channel address word (CAW) to the channel. The CAW contains a virtual command address pointing to the beginning of a virtual channel program. The virtual command address is presented to a channel look-aside buffer which translates the virtual command to a real memory address for accessing main storage. The virtual channel command words (CCWs) which comprise the channel program are successively translated by the channel look-aside buffer. A virtual address stack within the buffer holds active virtual data addresses and com mand addresses for each channel. interlocking between this stack and a CPU translation mechanism is provided by an l/O bit array. The l/O bit array contains a count mechanism for each memory frame which may be addressed by the channel. Each time a memory frame is addressed by any of the channels. the corresponding count is incremented. Similarly, when any of the channels are through with the memory frame, the count is decremented. Thus, so long as there is an outstanding access to the memory frame, there is a non-zero count in the corresponding count position. The non-zero condition is transmitted to a CPU storage protect area to insure that the CPU does not try to use the same memory frame that the channel is accessing.

12 Claims, 17 Drawing Figures CHANNEL LDOKASIDE HUFFER-l4 VIRTUAL ADDRESS Z-BUS .C NEL PATENIEU 1974 3.839.706

sum 01 or 16 FIG. 4 MNIRTHAC ANN i A REAL H 4 "WWMMW CHAN NUMBER mm A CHANNEL DATA BUFFER B PACE FAULT (H62) 16 TTURN ON GL8 l CPU/ H 14 OLD STORAGE/ COM ML'MHJII ISK I {A K K KIP RIC vol I 0 CA F FACEfiEPfiCNA6H}\ 22 24 Csw PAOINO FAULT (BIT 6) vNNHH ADDRESS C 15 20 31 1/0 5X I BYTE NUMBER A CA/CA BIT /5O VIRTUAL w ADDRESS STAOK(F|G.4)

PROGRAM] CHECK BIT FIG.2 CHANNEL LOOKASIDE BUFFER-l4 lNOR/OECR 6 }CHANNELS ZERO COUNT MEMWRL DETECT XLA TE COMPARE OLD NEW COMP TO BRANCH OTRLS TRANSLATE RING 56 TO Y BUS L AODRE PMENTED 1974 3.839.706

SHEET 02 HF 16 REAL SAR F I G. 3 H1 STORAGE PRoTEcT KEY BTTS (0T, P0 0M J9 SAR BUS) T F SP STORAGE PRoTEcT PC PC HE VIOLATION T0 CPU) SP KEY BITS 00-06,P (T0 CPU-) F INCR /DECR MICRO'ORDER I 1 i: I lNGR/DECR 44 I I l I t I I 4 LOCAHON PER I i ARRAY ERAME OF REAL M EMORY l T 1/0 BITS (0-T0),P

PMLQLWBPL I/O BIT 1 REGISTER T I 1/0 SUMMARY RTT T0 CPU V I L. J

PATENTED I974 3.839.706

saw on or 16 IFETCH I l 1 s10 DECODED m IFET H9) & NINX TINES I i BRANCH C810 1 STORE PAGE FAULT ADDRESS i AT MAIN STR LOG A4 & PFI AT L00 85 I TBEGTTT 1/0 INSTRUCTION l j 100 A $10 DECODED S5 A FETCH SEGMENT TABLE ORIGIN (STU) FROM IOCA 102 T FETCH cm & PUT CA IN IOLS WORD 5 BHANEs To I N0 104 H PRIOR ART I YES /106 WHENTBREAK-TN IS 10 SET CPU REQUEST FOR A CHANNEL ALLOWED THE CHAN- MICRUCODE STARTS AT BREAK IN TO START THE CHANNEL THE IDLE WORDS IN W Ei#- v THE 05x1 ROUTINE WLJENTER THE COUNTDOWN LOOP Tb W %M. n

Q Em] MALEONTBREAN m TTEEREMENT TT CHECK COUNTERS SET SAR=000040 GATE CSW FROM UCW 1 LOCAL STORAGE T0 SDR TO WRITE mm STORAGE TEET 5 TTs i PATENTETJ 74 saw us or 1s FIG.6

FICH

FIG 44 ETC 8 FETCH THE CCW & PUT TT IN UCW LOCAL STORAGE WORDS 0 & 4

450 CHECK was an ccw l0 INSTRUCTION CHANNEL 'BEG IN I L IN FETCH THE CCW FIG 7 CHANGES TO PRIOR ART sTART INITIAL I SELECHON- BLMPX sET ADDRESS OUT SELECT DDT ALWAYS ACTIVE) sET HOLD ouT A wATT FOR SELECT m ,STATUS TR, DR ADDREss TA E ET CONDITION CODE= 5 L.MD,EM

i fff. L D. [5 ET CONDITION DDDE =1] y'ADDREss IN as ACTIVE RESET ADDREss OUT 1 Ln W W, I 150 H98 1 ALLOW CPU TD BRANCH DuT ADDREss IN (D m DDuRTDDwD LOOP A EQUAL ADDREss 'PUT CHANNEL m IDLE VIRTUAL DA m \/A J STACK sET DA PRE- TRANSLATED 1! J wATT FOR sTATus 166 I IN (STATUS IN Cm m H CAUSES HARDWARE TRANSLATE VIRTUAL I RESET 0F CMD'OUH DA m M STACK INTERFACE CTL CK A -TA TTD 8 T NU A DA PAGE CROSSING I 162 T YES A E DCKLLELQLTW T H 00 SET A PRE -TRANSLATE I I DRARDEs TD PRTDR ART PATENTEU 3,839,706

saw a"! nr 16 7' FIG. 8

a) FIG. 9 HG 7 N ANALYZE N :NmAL smus ///STATUS NO ETsfivmE OUT 0 WWW if mow CPU T0 BRANCH RETRY our 0F coumnowu LOOP SET SERVICE our. SET 5U c0 0|T|0N CONDITION CODE 0 CODE ALLOW CPU T0 BRANCH V N our 0F COUNTDOWN LOOP CPU MiCROPROGRAM RESET CDA & co mes OUT OF COUNTDOWN LOOP 472 N ms M PX ALLOW CPU T0 BRANCH OUT OF COUNTDOWN LOOP & PU? CHANNEL IN IDLE BLMPX N 9 H011 E H042 FIG +4 PMENTED I974 3.839.706

sRm 080F167 I? FIG.9

sIIIRI INIIIIII l W i V 204 I SE LECTION RINPx I I NIRxsIRIsEI MICRO sIIIRIs q I HARDWARE INIIIIII SELECTION 7 i NEE FIG III I SET IS 0,4=I,I

I I l l I l I MWQIIL TRANSLATE VIRTUAL CHANGES TO DA IN VA STACK A PRIOR ART ZIII w RII RIIRRRRIINIIRE I OPERATION TO END 2 m i ANALYZEM RESULTS OF r SEE FIG IR 9 H G 8 INITIAL SELECTION 2 4 2 /L\/244 I N 8 OF IN (0,0) RESPONSE VSIATUS IN II,I;II I L I I M (1/0 35m 0, W I CONN/INN ouI WAS EENI I WAIT FOR STATUS III I SELECT IN I W in, W191i I I n IsEI CONDITION CODE TI I SET coNIIIIIoN CODE= I 'AIIIIIII cRII T0 RRIINcR OUT OF COUNTDDWN LOOP & PUT CHANNEL IN IDLE 246 TIN FIG 44 PATENTED I374 3.839.706

sum 09 M16. FIG.I0

HARDWARE INITIAL SELECTION SET ADDRESS OUT SET HOLD OUT SET SELECT OUT SVELEQLINW STATUS 7 III I I RESET ADDRESS-"DDT R EsET AbnRE S OTJT Bus IN I STATUSITTOT I RESET 1/0 STAT m RESET HOLD ouT CHANNEL BUFFER RESET HOLD OUT RESET I SELECT DDT RESET I WAIT FOR ADDRESS m ADDRESS OUT RESET 1/0 STAT 4.

II I CDMPARE ADDRESS SENT WITH ADDRESS RECEIVED IMSWELTHCDOIIMAND ouT SETHITERTTG? CGMMAND ON BUS am an cm I LATCHES ..L W IT L L M WAIT FOR ADDRESS IN To DROP ESET 1/0 STATS D AND4 BREAK-IN I PATENTEDUBTI R 3.839.706

MET 10 0F 16 m 4 4 ms WEA FRAASFER BLMPX HARDWARE CONTROLS DATA TRANSFER OVER THE 1/0 INTERFACE A SIGNALS TO THE MICRO- PROGRAM WHEN THE 1/0 BUFFER LS NEEDS TO BE FILLED 0R EMPTTED (SISC 4 0R 8) TRANSFER DATA BETWEEN 178 MAIN STDRACE & I/D BUFFER LS BY 16 (DEC DECREMENT VALUE IN LWC REC UPDATE DATA ADDRESS DECREMENT CDUNT BY COUNT BY 46 (DEC TRANSLATE NEXT DA &

PUT VA IN VA STACK ITEJFIGIS IETH IIDLE ONANNEL CHECK THAT UP IN IS DOWN SET UP CHANNEL FDR IDLE 1 BYMPXEV V UHRDWARERESEIECHON REQUEST IN STARTS ECT OUT.

HARDWARE m.

RE-SELEGTION SET HOLD OUT I WAIT FOR HARDWARE OPERATION TO END REMAIN IN IDLE WAIT FOR UP IN II ADDRESS IN BUS IN (ADDRESSITD CHANNEL BUFFER RESET HOLD OUT RESET I/O STAT 4 SET COMMAND OUT IN OR STATUS IN PATENTED 3,839,706

sum 12% 16 F I G. 4 3

0m TRANSFER M if BYMPX WTRANSFER DAWTA Bfin] 228 MAIN STORAGE & 1/0

BUFFER LS I DECREMENT courn H COUNT=0 YES SET SEQUENCE CONTROLS EQUAL STOP 25s I UPDATE DATA ADDRESS SET SERVICE OUT TRANSLAT E N EXT DA & PUT VA m VA STACK PATENTED 3.839.706

SHEET 13 0f 16 F l G. 1 4

{ FIGH AANALYZE TERMJNAL A TUS & END

CH EL OPERATION CHE IF ANY PROGRAM 0 KS OR WA LENGTH RECO f I OECR I/O BlT ARRAY FOR C A & DA L WHICH ARE NO LONGER iN USE A COMMAND S, V

W mew ET RSERVICEV BUT l END VOFVCHANNEL OPERATION "if GHANNEL lDLE PATENTED 1 I374 5 0 P u REED-ON T2 E? YcEFflo rT CAUSED BY CHANNEL F I G. T 5

INTERRUPTION REQUEST T B, RT R2,L1L2 REDS SET UP FOR ENTRY INTO CHANNEL MICROOOOE TURN ON I/O MODE CPU ROAR IN l/O MODE 7 [RESET INTERRUPTION BUFFER STORE CSW AT MAIN STORAGE LOCATION 000040 CHANGES TO PRIOR ART 250 A A WW 9 l STORE PACE EXCEPTION l T T ADDRESS m IOCA I TURN OFF I/O MODE CPU ROAR IN CPU MODE K10 TNTERRUPTION K ROUTINE PATENIEU 3.839.706

saw 15 0f16 F 4 6 1/0 SUPERVISOR! SUBGHANN EL INTERLOGKING PAGE SUPERVISOR REQUIRES A PA GE TURN ON INVALID BIT V264 IN PAGE TABLE ENTRY PAGE IS RESET INVALID an FREE m PAGE TABLE ENTRY V v E 1! PAGE IS LOCKED PAIENIED 3,839,706

sum 15BF16 FBGJ? CXI T TR ANSLATE A 550 y DECR OLD 1 /0 an i (510) BAR sm 4 SEG V READ SEG TABLE ENTRY v 558 l TRANSLATE RING s a sso SAR STE 2 PG 562 SEG YES TABLE W TRANSLATE RING 7 {7" new 0/2 SELECTIVE 0mm REG (4 9 20 -54) & NEW REAL 42- 49/ 20) 572 i*, E E .v v 1 PAGE EECE EE IEJM IF PAGE 11mm HAVE BEEN USED F I RETURN TURN 0N FAG ING FAULT BIT 8 OF 05W INPUT/OUTPUT CHANNEL RELOCATION STORAGE PROTECT MECHANISM BACKGROUND OF THE INVENTION l. Field of the Invention The invention relates to data processing systems, and more specifically to a means of translating input/output channel programs in a virtual memory or paging environment.

Co-pending patent application Ser. No. 21 L913, filed Dec. 27, 1971, entitled Channel Program Translation" by L. E. Larson and co-pending patent application Ser. No. 274,77], filed July 24, 1972, entitled Virtual Memory System" by J. L. Burk, et al., describe, respectively, a programmed controlled method of address translation in the control program and a hardware translator for translating virtual addresses to real addresses by using a segment storage origin address and segment and page addresses to reference segment tables and page tables in main memory.

Relocation is a technique by which instructions are permitted to be executed in an area of main storage for which they were not written. This technique permits the creation of a virtual storage which appears to the programmer to have a capacity which is only limited by the length of the address field in the instruction and not by the number of places in main storage. This creation of a virtual storage allows several computer programs to be executed either by a single central processing unit or by a number of processing units which share the same memory. The time sharing of programs requires a total storage capacity which is larger than the capacity of the actual main storage. Program relocation allows each program to run as if it had access to the entire storage and the operation of the other programs is transparent to that program.

The present invention is concerned with the relocation of channel programs. Channel programs are comprised ofa series of channel command words (CCWs). CC Ws are instructions which are fetched by channels and are executed by a channel to control the flow of data between input/output devices and main storage.

In the past, channel relocation was desirable but could not be implemented in hardware and therefore a programming system such as that described in the above-identified Larson patent application was devised. In that system, command addresses and data addresses are translated by a program operating in the computer and by the use of an indirect data address list which is referenced by the CCW. That is, if a CCW string crosses page boundaries, an indirect address list is constructed for the CCW. The indirect list provides a series of beginning addresses for a discontinuous string of data storage. This list is referenced by an indirect address stored in the translated CCW. A flag is turned on in the CCW to indicate to the channel executing the channel program that the indirect address list is to be referenced.

In order to provide a hardware translator for the channel certain problems had to be solved. For example, communication is required between the channels and the CPU so that channels desiring to use a particular area of memory will not interfere with the CPU. Furthermore, when an l/O page fault occurs, there must be a way of recovering from this so that the channel can continue.

Therefore, it is a primary object of this invention to provide a channel program relocation mechanism which permits the channels to operate in a paged or virtual memory environment. It is a further object of this invention to provide a communication mechanism between a relocating channel and a relocating CPU to facilitate the I/O page interlocking function so that subchannels are able to lock and unlock the real storage frames associated with their data and command addresses.

lt is a further object of this invention to provide an apparatus by which a channel control word string in a virtual memory is translated to real storage addresses as the channel program is executed by the channel.

It is a further object of this invention to provide a hardware mechanism for mapping virtual storage areas associated with an input/output channel program into a non-continguous set of pages in real storage.

A further object of this invention is to provide a hardware means in the channel for translating virtual addresses to real addresses which is compatible with the input/output supervisor for translating addresses.

The above objects are accomplished in accordance with the invention by providing a dynamic address translation mechanism which is available to the input- /output channel. An input/output summary bit is generated and placed in the storage key to provide input/output page interlocking with the CPU. By using this, subchannels lock and unlock the real storage frames associated with their respective data and command addresses. Whenever a memory location within the frame is accessed by any of the subchannels, a counter in an [/0 bit array associated with that frame is incremented. Whenever a subchannel is through using that area within the frame, the counter is decremented. A zero detector indicates via the I/O summary bit that the count is zero and hence, the frame is available or unlocked for use by the CPU. Channel paging faults result in a channel program check which, by means of the channel status word and the interrupt mechanism, causes the control program to make the requested page available and restart the channel program by means of reissuing the start l/O command.

In accordance with an aspect of the invention, data addresses are translated after the command out tag is generated to reduce the risk of command overrun.

The invention has the advantage that by use of the [/0 summary bit. pages can be locked and unlocked and a number of subchannels can be handled.

Furthermore, program to subchannel communication is made possible by using the [/0 summary bit.

The invention has the advantage that the programming support for a channel designed in accordance with the present invention is required to do no pretesting for page faults thus reducing considerably the amount of programming overhead.

The invention has the further advantage of providing a storage protection mechanism wherein the subchannels carry their own segment table origins and strogae protect keys which is an improvement over the prior art channel program supervisor which has no hardware protection among subchannels since all channel programs operate under the same key.

The invention has the further advantage that it increases throughout by reducing the amount of instruction required to translate channel programs as is done in the prior art.

The invention has the further advantage that it is independent of the indirect data address list type of channel.

The invention has the further advantage that the apparatus is compatible with the CPU relocation mechanism and eliminates the need to purge the channel table look-aside buffer.

DESCRIPTION OF THE DRAWINGS The foregoing and other objects. features and advantages of the invention will be apparent from the following detailed description of a preferred embodiment of the invention as illustrated in the accompanying drawings wherein:

FIG. 1 is an overal block diagram of computer system which has been modified to practice the present invention;

FIG. 2 in a block diagram of the channel look-aside buffer portion of FIG. 1;

FIG. 3 is a block diagram of the I/O bit array of FIG. 2;

FIG. 4 is a block diagram of the necessary additional registers in the channel to perform relocation;

FIG. 5 is a flowchart of the hardware and microcode necessary to perform a start l/O operation showing the fetching of the segment table origin;

FIG. 6 is a continuation of the start l/O operation showing translation of the virtual command address and the data address in the virtual stack;

FIG. 7 is a continuation of the I/O operation showing the mechanism for handling the command address page crossing;

FIG. 8 is a continuation ofthe flow diagram showing the analysis of initial status;

FIG. 9 is a continuation ofthe flow diagram for a byte multiplex channel;

FIG. I0 is a block diagram of the hardware initial selection;

FIG. 11 is a flow diagram of the operation of a block multiplex channel;

FIG. 12 is a continuation of the flow diagram for a byte multiplex channel;

FIG. 13 is a flow diagram showing the data transfer operation of a byte multiplex channel including the translation function when the data address crosses a page;

FIG. 14 is a continuation of the operation flow diagram showing the end of a channel operation;

FIG. 15 is a flow diagram of a channel interruption request for a page exception;

FIG. 16 is a flow diagram of the 1/0 supervisor/subchannel interlocking mechanism; and

FIG. 17 is a flow diagram of the translate micro order.

DESCRIPTION Introduction The following terms are used in this specification:

Address Translation: The process of changing the address of an item of data or an instruction from its virtual address to its real storage address.

Basic Control (BC) Mode: A mode in which the features of a System/360 computing system and additional System/370 features. such as new machine instructions. are operational on a System/370 computing system.

Dynamic Address Translation (DAT): The change of a virtual storage address to a real storage address during execution of an instruction.

Frame: A 2K or 4K real section of memory.

Extended Control (EC) Mode: A mode in which all the features ofa System/370 computing system, including dynamic address translation, are operational.

Page: A fixed-length (2K or 4K virtual section of memory) block of instructions, data, or both, that can be transferred between real storage and external page storage.

Paging: Transferring instructions, data, or both, between real storage and external page storage.

Page Table: A table that indicates whether a page is in real storage, and correlates virtual addresses with real storage addresses.

Real Address: The address of a location in real storage.

Segment: A continuous 64K area of virtual storage. which is allocated to a job or system task.

Segment Table: A table used in dynamic address translation to control user access to virtual storage segments. Each entry indicates the length, location. and availability of a corresponding page table.

Virtual Address: An address that refers to virtual storage and must, therefore, be translated into a real storage address when it is used.

Relocation is a technique by which instructions are permitted to be executed in an area of main storage for which they were not written. This technique permits the creation of a virtual storage which appears to the programmer to have a capacity which is only limited by the length of the address field in the instruction and not by the number of places in main storage.

A virtual storage is divided into segments, each of which is divided into pages with each page consisting of a predetermined number of bytes. By fragmenting programs into page segments, main storage can be allocated in paged increments. Therefore, pages can be located randomly throughout main storage and swapped in and out of main storage as pages are needed. Random location of pages necessitates the construction of page tables that reflect the actual or real location of each page. Thus a single page table reflects the real locations of all pages of a particular segment. Other page tables reflect the real location of the pages associated with the other segments of the virtual storage.

Random location of the page tables necessitates the construction of a segment table that reflects the actual or real location of the page table. The segment table and the page tables for a user are maintained in main storage and are utilized in translating a users virtual address into a real address, i.e., an actual location in main storage. of the required page.

Address translation is the process of converting the virtual address into actual or real main storage addresses. Such a system of relocation is described in the above-identified Burk et al. patent application. Briefly. a 24 bit virtual address is divided into three fields: a segment field (SX) which occupies bits 8 15; a page field (PX) which occupies bits 16 20; and a byte field which occupies bits 21 3l. The virtual storage consists of 256 segments, with each segment consisting of up to 32 pages and each page consisting of up to 2,048 bytes.

The segment field serves as an index to an entry in the segment table. The segment table entry contains a value which represents the base address of the page table associated with the segment table designated by the segment field. The page field serves as an index to an entry in the page table. The page table entry contains a value which represents the actual or real address of the page. The byte field undergoes no change during translation and is concatenated with the translated page address to form the actual or real main storage address which is presented to the main storage address register for memory reference.

The translation process is a two level look-up procedure involving segment and page tables from main storage. The segment address portion (SX) of the virtual address is added to a segment table origin (STO) address stored in a control register in order to obtain a segment table entry from the segment table. The segment table entry contains a page table origin (PTO) address which is added to the page address portion (PX) of the virtual address to provide the address of a page table entry within the page table. The page table entry contains a real address which is combined with the byte portion of the virtual address to form the real address of a byte of data. To avoid repeating this translation process for every storage reference, a directory is maintained and updated to contain virtual and real page addresses of recently referenced pages. At the beginning of a translation, the virtual page address under translation is checked against the directory to see if the real address is already available. If it is, the directory provides a real page address thereby avoiding the translation described above.

General Description of Channel Relocation The above described address translation with respect to the CPU program. The present invention is concerned with the relocation of channel programs and will be described with respect to the IBM System/370 Model I55 ll Data Processing System which has in it the dynamic address translation facility which enables the system to use virtual addresses and to operate in a paged environment as described above. The following description referes to the above system as described in IBM Maintenance Library Manual System/370 Mod I55 ll, (TO/DM) Theory of Operation/Diagram Manual, Form No. ZZ2269l6-0, IBM System/370 Mod ISSII Dynamic Address Translation Facility, Form No. GA227017-0, IBM System/370 Principles of Operation. Form No. GA22-70000 and IBM System/360 Interface Channel to Control Unit, Form No. A2- 2-6843-3, copies of which may be obtained by contacting any IBM branch office.

Referring now to FIG. I, the data processing system in which the invention is embodied is illustrated. The system has been modified to practice the present invention by the addition of a channel lookaside buffer (block 14) and various control lines and control bits which will now be described. A channel is connected to a CPU and storage 12. A channel look-aside buffer I4 is provided in accordance with the present invention to provide for translating virtual addresses presented by the channel into real addresses for referencing the storage. The communication between the hardware and the software is accomplished by means of an l/O control area (IOCA) which holds control information which is needed by the channel to support the dynamic address translation function. This control information comprises a segment table origin word (STO) l6, translation control bits (TCR) l8 and a relocate mode bit 20 which is part of the channel address work (CAW) which is more fully described in the above referenced System/ 370 Principles of Operation.

During the presentation of primary status, all subchannels will pass to the IOCA and the channel status word (CSW) all the required translation information needed by the control program to support paging faults and translation exceptions. This comprises a page exception address 22 and a paging fault bit 24 which is bit 6 of the CSW.

An additional bit is required in the insert storage key (ISK). This bit is called the IO bit 24 and performs the function of locking and unlocking pages used by the channel program.

A channel operation is commenced with the execution of a start instruction (SIO) which transfers a channel address word (CAW) to the channel 10. The CAW contains a virtual command address 21 pointing to the beginning of a virtual channel program. The virtual command address is presented to a channel lookaside buffer 14 which translates the virtual command to a real memory address for accessing main storage. The virtual channel command words (CCWs) which comprise the channel program are successively translated by the channel look-aside buffer 14.

Referring to FIG. 2, the channel look-aside buffer is comprised of a virtual address stack 30 and an [/0 bit array 32. The virtual address stack holds the active virtual data address and command address for each of six channels. The corresponding real addresses are stored in Unit Control Words (UCW) for each ofsix channels. The [/0 bit array 32 provides interlocking between this stack and the CPU relocate mechanism. The U0 bit array contains a count for each of the memory frames which may be addressed by the channel. Each time a memory frame is addressed by any one of the channels, the corresponding count is incremented. Similarly. when any one of the channels are through with the memory frame, the count is decremented. Thus, so long as there is an outstanding request for access to the memory frame, there is a non-zero count in the corresponding count position. The value of the count will depend upon how many channels have accessed that memory frame. A zero count detector 34 detects a zero count and generates an I/O summary bit (24 of FIG. 1 which is transmitted to the insert storage key (ISK) in the storage protect area of memory.

As described on page 132 of the referenced TO/DM manual, the Model uses the standard System/360/370 storage protection scheme. Four additional bits a reference bit (R), a change bit (C), an I/O summary bit (110), and a parity bit (P), are appended to each storage protection key to accommodate reference. change, and I/O usage recording.

A protection exception occurs when the access to main storage is denied on the basis of the storage protection keys.

The reference and change bits are used by the supervisor program in the algorithm for dynamic paging. The reference, change. and I/O bits throughout the storage protection array are polled periodically by the supervisor program and their status is used to determine the frames in main storage that are candidates for paging activity.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3573736 *Jan 15, 1968Apr 6, 1971IbmInterruption and interlock arrangement
US3675209 *Feb 6, 1970Jul 4, 1972Burroughs CorpAutonomous multiple-path input/output control system
US3704453 *Feb 23, 1971Nov 28, 1972IbmCatenated files
US3706077 *Jan 6, 1971Dec 12, 1972Fujitsu LtdMultiprocessor type information processing system with control table usage indicator
US3725864 *Mar 3, 1971Apr 3, 1973IbmInput/output control
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US3938100 *Jun 7, 1974Feb 10, 1976Control Data CorporationVirtual addressing apparatus for addressing the memory of a computer utilizing associative addressing techniques
US4017839 *Jun 30, 1975Apr 12, 1977Honeywell Information Systems, Inc.Output multiplexer security system
US4053948 *Jun 21, 1976Oct 11, 1977Ibm CorporationLook aside array invalidation mechanism
US4057848 *Jun 9, 1975Nov 8, 1977Hitachi, Ltd.Address translation system
US4091445 *Jan 18, 1977May 23, 1978Honeywell Information Systems Inc.Program switching monitor
US4093986 *Dec 27, 1976Jun 6, 1978International Business Machines CorporationAddress translation with storage protection
US4188662 *Apr 14, 1977Feb 12, 1980Fujitsu LimitedAddress converter in a data processing apparatus
US4228504 *Oct 23, 1978Oct 14, 1980International Business Machines CorporationVirtual addressing for I/O adapters
US4231088 *Oct 23, 1978Oct 28, 1980International Business Machines CorporationAllocating and resolving next virtual pages for input/output
US4241401 *Dec 19, 1977Dec 23, 1980Sperry CorporationVirtual address translator utilizing interrupt level code
US4277826 *Oct 23, 1978Jul 7, 1981Collins Robert WSynchronizing mechanism for page replacement control
US4285040 *Jan 8, 1980Aug 18, 1981Sperry CorporationDual mode virtual-to-real address translation mechanism
US4300192 *Nov 14, 1978Nov 10, 1981Honeywell Information Systems Inc.Method and means for storing and accessing information in a shared access multiprogrammed data processing system
US4320456 *Jan 18, 1980Mar 16, 1982International Business Machines CorporationControl apparatus for virtual address translation unit
US4439830 *Nov 9, 1981Mar 27, 1984Control Data CorporationIn a data processing system
US4468729 *Jun 29, 1981Aug 28, 1984Sperry CorporationIn a data processing system
US4507781 *Sep 16, 1983Mar 26, 1985Ibm CorporationTime domain multiple access broadcasting, multipoint, and conferencing communication apparatus and method
US5278963 *Jun 21, 1991Jan 11, 1994International Business Machines CorporationPretranslation of virtual addresses prior to page crossing
US5321836 *Apr 9, 1990Jun 14, 1994Intel CorporationVirtual memory management method and apparatus utilizing separate and independent segmentation and paging mechanism
US5461721 *Apr 14, 1993Oct 24, 1995International Business Machines CorporationSystem for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs)
US5655146 *Jul 12, 1996Aug 5, 1997International Business Machines CorporationCoexecution processor isolation using an isolation process or having authority controls for accessing system main storage
US6249867 *Jul 31, 1998Jun 19, 2001Lucent Technologies Inc.Method for transferring sensitive information using initially unsecured communication
US6553477 *Nov 6, 2000Apr 22, 2003Fujitsu LimitedMicroprocessor and address translation method for microprocessor
US20130007406 *Jul 1, 2011Jan 3, 2013Gad SheafferDynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform
EP0010198A2 *Sep 24, 1979Apr 30, 1980International Business Machines CorporationDevice for page replacement control in a data processing system with a virtual memory
EP0010625A1 *Sep 28, 1979May 14, 1980International Business Machines CorporationHierarchical memory system
EP0032559A2 *Dec 12, 1980Jul 29, 1981International Business Machines CorporationVirtual storage data processing apparatus including i/o
EP0294499A1 *Jun 9, 1987Dec 14, 1988International Business Machines CorporationControl scheme for segmented buffers based on a shared reference count
EP0304348A2 *Jul 12, 1988Feb 22, 1989Centre National De La Recherche Scientifique (Cnrs)Access locking means for memory access management unit and access conflict management using such locking means
EP0766177A1 *Sep 16, 1996Apr 2, 1997International Business Machines CorporationInformation handling system including effective address translation for one or more auxiliary processors
Classifications
U.S. Classification711/207, 711/E12.61, 711/200
International ClassificationG06F9/46, G06F13/12, G06F12/10, G06F13/10
Cooperative ClassificationG06F9/52, G06F12/1027, G06F12/1081, G06F13/10
European ClassificationG06F9/52, G06F12/10L, G06F13/10