throbber
ARM_VPT_IPR_00000488
`
`ARM Ex. 1012
`IPR Petition - USP 5,463,750
`
`

`

`
`
`US. Patent
`
`Nhuth 30,1976
`
`Sheet] ofS
`
`3,947,823
`
`
`
`
`S
`P
`IPL
`
`'
`
`I
`
`
`-—-
`
`-——-
`
`ON
`
`- “L
`
`INSTRUCTION
`
`UNIT
`CIRCUITS
`
`EXEC UNIT
`
`I
`I
`I
`
`3
`
`RECIII
`
`.__.
`.
`
`
`I0
`
`(SEE FIC2)
`
`HANDLING
`|
`I
`I
`I
`I
`:
`I
`I
`I
`400
`I
`CPU A_I
`
`|
`I
`| ”MO
`I
`CIRCUITS
`m
`I
`I—
`:
`“a 6”
`12+
`‘
`.CUNTRDL
`I
`I = m CONTROL
`I
`| L
`CIRCUITS
`1
`I
`I05
`I0?
`109
`I
`W =
`READDH
`I
`L_ -n IIO
`40
`
`
`_.‘
`
`_\
`
`30
`
`{BIA
`
`_
`
`“J“
`
`E
`RUS
`
`
`CONTROL
`c
`
`v
`D
`E
`R
`
`I
`:
`
`*——|
`[—
`I
`I
`(STII
`I _ I
`I = |
`I
`|
`I
`PACEIARLEzIPer
`I = I
`I
`I
`I
`PAGETABLEIIPTI) I—
`I
`I‘-2II
`'iHARED MAIN STORE
`
`__
`
`I
`
`
`
`—
`
`ARM_VPT_IPR_00000489
`ARM_VPT_IPR_OOOOO489
`
`CPUB
`
`l
`I
`I
`I
`L——r——'
`I
`.
`I
`'
`II
`“L“7
`I
`I
`I
`.
`"1______I
`
`
`
`I
`
`

`

`
`
`US. Patent March 30, 1976
`
`Sheet 2 of5
`
`3,947,823
`
`(AAB comm CIRCUITS)
`
`
`.18
`
`
`
`
`
`{SIDDD
`S VALID“)
`
`22
`
`QPIII‘I VA.
`REE].
`5*
`
`_
`
`' f ‘1
`23
`
`1517000 SEL.
`
`52"
`n S
`R
`
`2NDEUEN
`VALID
`
`H)
`TGR c
`l}
`
`52
`
`OPDZVA
`
`34
`
`34
`II
`
`82
`
`55
`
`72
`4?
`
`'1' I
`
`70
`
`42
`
`Ill
`
`
`
`ARM_VPT_IPR_00000490
`ARM_VPT_IPR_OOOOO490
`
`
`
`
`
`
`
`
`
`
`
`
`ENBEVEN BEL
`
`zunonn
`SVAHD{H
`
`In
`45
`
`
`
`3
`9
`103
`
`w
`
`MODE mm
`STORE
`
`5
`
`G
`
`I!
`a film
`n M
`41
`
`44
`an
`‘13/ Izuoonn SEL.
`74
`' 75
`prmm)
`II n
`
`73
`TRANSLATION REG.)
`75
`(xwmm.
`
`52
`'
`MWLL
`1047
`__
`
`
`PL
`50’7‘éfi‘ifléfilmm ' mm mm H
`
`ADDRESS OUT)
`LINE'
`
`
`
`~ Mflfiffis
`DAT" 393-
`
`____..(IHCLUDES TLB GIRLS}
`
`pL
`,PTLUDKUPCTRLS)
`MAINSTURE
`
`lstAcE BUS
`ADDHINVAR {
`
`L
`._____.__..
`'
`.__
`_A_
`
`SARHU
`(Tam-15mm: EXCF m cwm CANCEL INST & TAKE ENTR'PJ
`‘01
`
`

`

`US. Patent March 30, 1976
`
`Sheet 3 of5
`
`3,947,823
`
`FIG.3 (summon or PAGE FRAME mvnunmou BY ANY CPU)
`
`THS CPU
`MVAUDATES ENTRY
`
`
`
`PUHGE TLB FOR
`THIS CPU
`
`
`
`
`INHYALIZE CCUHDIHATTON
`COUNT FIELDLCCF)
`
`
`
`
`
`30L
`
`302
`
`
`
`ISSUE SIGNAL PROCESSOR
`INSTRUCTION TO EACH
`OTHER CPU
`
`
`
`
`
`305
`
`THIS CPU RETURNS T0
`INTERRUPTED PROGRAM
`
`34 ——————— ?,.,,a-~----232930 31
`me ////ll
`
`ST ENTRY
`
`PT INVAUD FLAG
`
`0 ----------- H, 42,13, 44,15
`FIG-7 _I%I PFUNASSIGNEDFLRG
`PT EMT
`P_F
`INVALID FLAG
`
`
`
`F|G,3
`
`s
`
`P
`
`PFADDR
`
`TLB ENTRY
`
`INVAUD FLAG
`
`ARM_VPT_IPR_00000491
`ARM_VPT_IPR_OOOOO491
`
`

`

`
`
`US. Patent March 30,1976
`
`Sheet4 ot'S
`
`3,947,823
`
`FIG.4 (RESPONSE BY EACH OTHER CPU IN STSTEN)
`
`{NTERRUPTION CAUSED B'I’ SICP
`INSTRUCTION FROM INITIATINC CPU
`
` COMPARE
`
`Rl & CCF
`
`
`
`PLACE PACE FRAME ADDR.
`1N ALLOCATION TABLE
`
`
`
`
`COHPARE & SNAP
`INSTRUCTION
`(DETAILED VIEW}
`
`
`
` RETURN TO
`INTERRUPTED
`PROGRAM
`
`ARM_VPT_IPR_00000492
`ARM_VPT_IPR_OOOOO492
`
`

`

`US. Patent March 30. 1976
`
`Sheets of5
`
`3,947,823
`
`
`mo2253525
`
`8.5.23.20-2%.32:
`
`zEEEEEE:8
`
`
`
`EMEES:3sz
`
`
`3.2952153
`
`
`
`35.0.5.2m-=n_o:5:
`
`zofinsmxfizfiE:
`
`
`
`Emacsmid—zoo
`
`fizm
`
`33:3;
`
`2.2on
`
`8:223z_E555;.a“soEmzwmomo3P5Sq.—82._
`
`
`«a:z“m:3E:3sz
`
`:25
`
`mew
`
`EzmmEE
`
`“:5memmumoS:35.3,mgpmwm=m
`
`3%2+5ES:
`
`omEzmmEEEzmamm+0.2198newa.m5%E.53+é32:2.
`
`2.;on
`
`
`
`:35E53.2%azfihw—mfim—fim
`
`
`
`*Z:5m:35;SE::25.
`
`0.2%
`
`m-=n_o
`
`£7210
`
`I..I_l
`
`I-—
`
`
`
`$5258.8.235292:2:
`
`0.0.“.
`
`ARM_VPT_IPR_00000493
`ARM VPT IPR 00000493
`
`

`

`
`
`1
`
`3,947,823
`
`MEANS FOR COORDINATING ASYNCHRONOUS
`MAIN STORE ACCESSES IN A
`MULTIPROCESSING SYSTEM USING VIRTUAL
`STORAGE
`
`BACKGROUND OF THE INVENTION
`
`This invention relates to apparatus and-methodology
`which facilitates interaction among central processing
`units [CPUs) in a multiprocessing system in the control
`of page frames. The invention enables each CPU to
`complete its current use of operands in a page frame
`even though the page frame has been marked by an-
`other CPU in the multiprocessing system as not avail-
`able for subsequent use. The invention does this by
`maintaining the addressability to each required page
`frame for the duration of each instruction regardless of
`any changes in the translation tables in storage and
`regardless of any changes in the translation lookaside
`buffer during that instruction.
`The invention can be applied where plural CPUs
`independently contend for main store resources in a
`multiprocessing system using demand-paging and vir-
`tual storage operations. A page frame is a hardware
`component of main store in which a page can be copied
`from an U0 device. The number of page frame compo-
`nents in a main store are limited. Whenever an Operand
`is required by the current instruction in any CPU, and
`the operand is not in main store, a page-demand inter-
`rupt is generated by the CPU so that the system can
`transfer the page containing the operand from an [[0
`device into a page frame component in main store. lfall
`page frame components are then in use, the system can
`deallocate one of the page frames and reallocate it for
`the new page having the required operand. The deal-
`located page may also have been used by one or more
`other CPUs. If the deallocation occurs in the middle of
`execution of a current instruction in another CPU hav-
`ing incomplete results obtained thus far, a cessation of
`execution for that instruction may leave incorrect re-
`sults. In this manner. incorrect data may be provided in
`a CPU output, clue to the asynchronous interference of
`CPUs in the multiprocessing system. Furthermore if the
`system should recognize the incomplete execution. and
`later
`retry the instruction alter the page is again
`brought back into main store. a reduction in efficiency
`occurs for
`the multiprocessing system due to the
`thrashing of this page in regard to the instruction sup-
`pressed at some intermediate point in its execution.
`OBJECTS AND BRIEF SUMMARY OF THE
`INVENTION
`
`It is therefore a general object of this invention to
`prevent incorrect results in the execution of instruc-
`tions due to asynchronous operations among the CPUs
`in a multiprocessing system.
`It is another object of this invention to improve the
`efficiency of multiprocessor Operations by eliminating
`the necessity for reexecution of an instruction as a
`result of asynchronous operations of CPUs in a multi—
`processing system.
`It is a further object of this invention to eliminate one
`of the causes of interference among plural CPUs in a
`multiprocessing system.
`It is a more specific object of this invention to force
`a multiprocessing system to continue the addressability
`to and the availability ofa page frame until completion
`of execution of current instructions in all of its CPUs.
`
`l0
`
`[5
`
`20
`
`25
`
`30
`
`35
`
`4o
`
`45
`
`SD
`
`55
`
`60
`
`65
`
`ARM_VPT_IPR_00000494
`ARM_VPT_IPR_OOOOO494
`
`2
`even though the page frame may be invalidated for
`deallocation so that it can be allocated to another CPU
`which has an asynchronous requirement for a page
`frame.
`
`This invention provides a unique control circuit with
`Special buffer hardware to assure the addressability of
`operands needed for completing the execution of cur-
`rent instructions in the reSpective CPUs of a multiprov
`cessing system which found the operands accessible at
`the beginning of execution of the current instructions,
`even though the addressability to the operands is lost
`elsewhere in the system. such as by asynchronous inval-
`idation of the add ressability in a translation table entry
`for these operands. As a result. the invention avoids the
`practice of simultaneously suSpending processing on all
`CPU whenever a page demand interrupt occurs, and
`thus permits the invalidation and subsequent rollout of
`a deallocated page to be handled as a coordinated
`activity in the system after the current instruction activ-
`ity is completed in all CPUs.
`The “current instruction" of any CPU is defined
`herein as the instructioa having its operandts) ad
`dressed by the use of an AAB register(s).
`DESCRIPTION OF THE DRAWINGS
`
`The foregoing and other objects, features and advan-
`tages of the invention will be more apparent from the
`following more particular description of the preferred
`embodiment of the invention illustrated in the accom-
`panying drawings of which:
`FIG. 1 illustrates a conventional virtual address type
`of multiprocessing system including novel address
`availability buffer (AAB) control circuits in each of the
`CPUs.
`
`FIG. 2 is a circuit draWing of AAB control circuits.
`FIG. 3 is a flow diagram of operations by any CPU
`initiating a page frame invalidation in a multiprocessing
`system containing this invention.
`FIG. 4 is a flow diagram of operations by other C PUs
`in a multiprocessing system responding to a page frame
`invalidation initiated by a CPU executing the opera-
`tions shewn in FIG. 3.
`
`FIG. Sis a timing diagram showing a particular exam—
`ple of CPU coordination when using the invention in a
`multiprocessing system.
`FIG. 6 shows a format for a segment table (ST) entry.
`FIG. 7 shows a format for a page table ( PT} entry and
`a table Iookaside buffer (TLB) entry.
`THE PRIOR SYSTEM USED BY THE PREFERRED
`EMBODIMENT
`
`FIG. I shows how the subject invention generally fits
`into otherwise commercially available multiprocessing
`systems, such as IBM Systemf3‘70 and OSIVS2 Release
`2. FIG. 1 includes a plurality of CPUs A. B .
`.
`. N con—
`nected to a shared main store 2] 1. Each CPU includes
`
`conventional components, such as an instruction han-
`dling unit, an execution unit, a virtual address register
`(VAR) 100, a storage address register {SAR} 110, a
`control register I II, and a dynamic address translation
`mechanism (DATM) which includes a translation
`lookaside buffer (TLB). The Operation of each of these
`units is well known. and they combine to provide what
`is commonly known in the digital computer arts as a
`virtual address demand —paging system.
`The invention incorporates address availability buf-
`fer (AAB) control circuits 400 into this combination of
`well known circuits comprising each CPU. That is. the
`
`

`

`3,947,823
`
`3
`invention integrates the AAB control circuits with the
`DATM. which is the demand-paging mechanism nor-
`mally found with virtual addressable computer systems.
`Because of the dependency of this invention on the
`prior system. a substantial effort is made herein to
`describe the related features and characteristics of the
`
`prior system which are used by this invention. In de-
`mand-paging systems, a unit of data measure, called a
`page.
`is read from an ”0 device into a page frame
`hardware component of a main store: (I) in response
`to a demand for a next instruction by the CPU when the
`instruction is not in main store, or {2) in response to a
`demand for an operand by a current instruction begin-
`ning its execution in a CPU when the operand is not
`then available in main store. A brief description of
`demand-paging is next provided in order to aid a better
`understanding of the background to this invention.
`In commercial CPUs which can be virtual addressing,
`the addresses of storage operands in machine instruc-
`tions are provided as virtual addresses. sometimes
`called logical addresses. when the CPU is in virtual
`address mode. Virtual address demand—paging mecha-
`nisms are currently in public use in commercial IBM
`computer systems. such as in the Si370 M [58 or M I68
`for example. See the “IBM Systemf370 Principles of
`Operation," form number GA22-7000-3 published
`February l973. which supports 8,1370 CPUs such as the
`IBM 3158 and 3168. Before the machine can access an
`
`operand with a virtual address. the machine must trans-
`late the virtual address into a main store address, some—
`times called a real address. Commercial machines can
`usually operate in either virtual address mode or real
`address mode. which is determined by the setting ofa
`mode bit in the current program status word (PSW) of
`the CPU.
`
`As previously mentioned. a demand-paging opera—
`tion is used to bring a required Operand or instruction
`into main store from an Iz‘O device when demanded by
`a CPU. To do this. the system locates the page on an
`IIO device and uses entries in a segment table (ST) and
`a page table (PT) to store addressability to the page
`after it is put in main store. This involves the assign-
`ment of a page frame address in main store, putting the
`page frame address into a PT entry, and transferring
`the page from the Iz'O device into the assigned page
`frame. The address of the assigned page frame is also
`transferred from the PT entry into a TLB entry in
`DATM which is used for subsequently addressing that
`page frame. If there is no free page frame available
`when one is needed. the system deallocates a least—fre-
`quently used page frame. and assigns it to receive the
`page.
`In more detail, whenever an operand is required that
`cannot be accessed through any valid page frame ad—
`dress in a current TLB or PT entry, 3 page-demand
`interrupt signal is generated to initiate a demand-pag-
`ing operation. This interrupt signal initiates the page
`frame allocation program to assign a page frame in the
`main store. moves the page into that page frame. and
`sets up a PT entry with the assigned page frame address
`and sets its flag bits to valid and assigned; see FIG. 7.
`That is. the PT entry selected to contain the new PF
`address has its unassigned flag bit and its invalidity flag
`bit both set off to indicate the PT entry is assigned and
`contains a valid pagc frame address. At a time thereaf-
`ter. DATM hardware copies the PT entry into a TLB
`entry in the respective CPU.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`ARM_VPT_IPR_00000495
`ARM_VPT_IPR_OOOOO495
`
`||||l
`
`4
`In order to speed the allocation of page frames to
`pages.
`the memory allocation program attempts to
`keep a list of free page frames. However. there are far
`fewer page frames in main store than there are pages
`located on [3'0 devices, and there are times when there
`are no free page frames. i.e.. all have been alloeated to
`the different CPUs. As a result of this continuing CPU
`contention for page frames.
`the allocation of page
`frames to pages must be offset by deallocation of the
`lesser-used page frames to best satisfy the contention
`conflicts. The deallocation of a page frame requires
`making the page that occupies the page frame inacces-
`sible for further translation; and then the contained
`page. if changed. must be stored on an IfO device for
`future use.
`
`Upon deallocation, the PT entry for a page is flagged
`as invalid and unassigned by setting on its invalidity and
`unassigned flag bits; see FIG. 7. A demand-paging re-
`quest occurs for any operand or instruction using a PT
`entry that has its invalidity flag bit set on.
`In commercial multiprocessing systems. the invalida—
`tion indication ofa page frame (i.e. by setting on its PT
`entry invalidity bit) is communicated to all CPUs using
`that page. To do this. four things are done (1) each
`CPU in the system must be signalled to temporarily
`discontinue using any page frame which may be sub-
`jected to invalidation. and each CPU must wait until all
`others have signalled back that they have complied
`with the request; (2} the invalid flag bit for the page
`frame is set in such a way that any subsequent instruc—
`tion using the page frame is cancelled; {3) each CPU
`purges its TLB of all entries; and (4) if the page is
`changed, it is read out onto an IfO device.
`The overall operation of the conventional DATM is
`next described briefly in order to better understand its
`relationship to the invention. In response to a virtual
`address from its CPU. DATM substitutes the assigned
`page frame address in main store for the corresponding
`segment and page virtual address components. In FIG.
`1, the virtual address is supplied to a virtual address
`register (VAR) 100 from the execution unit. which
`generates the virtual address in the well known manner
`from the operand address components in the current
`instruction supplied by the instruction handling unit.
`The DATM apparatus uses the segment tables and page
`tables which reside in the shared main store 2“.
`In each CPU. the content of control register lll
`addresses the location of the segment table currently
`being used by that CPU. Each entry in the segment
`table (ST) has the form shown in FIG. 6, which in-
`cludes a field containing an address of a page table
`(PT). The PT address in a ST entry is valid only if the
`PT invalid flag bit is set to O to indicte a PT is assigned
`to that ST entry. If the PT invalid flag is set to l; the PT
`address is invalid. and a segment exception is generated
`to signal that no page table exists for the 81‘ entry. The
`PT entry and TLB entry format are shown in FIGS. 7
`and 8; they include an address of a page frame. The
`page frame (PF) address in the PT entry is valid if the
`PF invalid bit is set to 0. If this PF bit is set to l. the
`contained page frame address is not valid. which means
`that the related page frame cannot be used.
`Each DATM also includes the translation lookaside
`buffer (TLB) which is used by DATM to maintain the
`main store addresses corresponding to virtual addresses
`that have been most recently referenced. which en-
`hances the speed of obtaining the most frequently used
`main store addresses. Hence the TLB hardware entity
`
`

`

`
`
`3,947,823
`
`5
`speeds up the storage accessing operations. The TLB is
`used in the referencing of all types of virtual addresses,
`including both operand and non-operand types of ad—
`dresses. As a result of the general use of the TLB and
`the overlapped nature of the CPU, the operation of
`replacing entries in the TLB is such that a particular
`entry may be replaced at any time during the execution
`of an instruction within IBM Systeml370 CPUs.
`As shown in FIG. 1, VAR 100 contains the virtual
`address fur an operand, or for a non-operand such as
`the next instruction to be fetched from main store. To
`do this the virtual address is first translated into a main
`
`store address. A virtual address (VA) is comprised of a
`segment address component 8, a virtual page address
`component P. and a byte displacement D in the page.
`The VA translation begins with the segment table (ST)
`located by the main store address in control register
`11]. First the segment address component S is used as
`an index in the ST to locate the required ST entry. The
`ST entry contains the main store address which locates
`the required page table (PT). The virtual page address
`component P is used as an index in the PT to locate the
`required PT entry; and the PT entry. if marked valid
`and assigned, contains the address of the page frame
`(PF) in main memory containing the operand or in-
`struction. The PT entry contains the high order 12 bits
`of the main store address, and the low order bits of the
`address are all zeros. The displacement D is a byte
`index in both the virtual page and the page frame to the
`location of the required operand or instruction.
`The assigned flag bit in the PT entry in FIG. 7, if set
`to 1, indicates that the addressed page frame is allo-
`cated to a CPU. If the assigned flag bit is set to 0, the
`PT entry is not assigned and it therefore can be as-
`signed to any CPU. Further detail on the DATM opera—
`tion may be found in the published literature for the
`commercially available IBM 8,870 virtual storage sys-
`tems.
`
`FIG. 8 shows the TLB entry format. which include
`the S and P components needed to perform the search
`of the TLB to find any existing associated TLB.
`GENERAL DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`In FIG. 1, the illustrated embodiment of this inven-
`tion contains address availability bufl‘er (AAB) control
`circuits in each CPU of the multiprocessing system.
`The AAB control circuits contain four AAB registers
`10, 20, 30 and 40 which receive and maintain the main
`store addresses corresponding to the virtual addresses
`required for the current instruction in execution. The
`AAB registers are updated synchronously with the
`instruction stream executed by the respective CPU
`during the pretest portion of the instruction execution.
`The AAB control circuits can improve the efficiency
`of the multiprocessing system whenever a page frame is
`invalidated at a time unexpected by the execution state
`of any CPU.
`AAB registers 10, 20, 30 and 40 are used to hold the
`page frame addresst’esljoif operand{s) needed by the
`instruction currently being executed.
`An instruction access does not require any AAB
`register, since execution of an instruction is easily can-
`celled if all, or a portion of the instruction. lies in an
`unavailable page. Thus the page frame address for an
`instruction is only put into SAR [10 in the conven—
`tional manner.
`
`5
`
`IO
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`65
`
`ARM_VPT_IPR_00000496
`ARM_VPT_IPR_OOOOO496
`
`6
`However, each operand has a pair of AAB registers
`available, i.e. registers 10 and 20 comprise a pair for
`use by one operand, and registers 30 and 40 comprise
`a pair for use by another operand.
`the instruction
`Depending on the instruction type.
`may have zero. one. or two Operands, which may use
`zeroI one. two, three or four of the AAB registers.
`The illustrated two pairs of AAB registers support
`instructions having up to two Operands in the main
`store, in which each operand can cross a page bound-
`ary. That is. each pair of registers support one operand
`which may be located, for example. in two page frames
`in main store. This arrangement can support any oper-
`and starting at any location, provided it does not ex-
`ceed one page in length. This is sufficient since the
`operands of most instructions are limited to lengths less
`than this, and those instructions which have longer
`operands are designed to be resumahle at any point in
`the execution after an interruption. The two AAB reg-
`isters in a pair may be designated an even register and
`an odd register, in relation to the parts of an operand
`found in sequential virtual pages having even and odd
`page addresses, or odd and even page addresses.
`The loading of AAB registers with an operand PF
`address is done by the CPU at the time it transfers the
`PF address from a required PT entry to a TLB entry;
`which is also the time during which the addressed oper-
`and is initially accessed using the PF address in the
`required PT and TLB entries. Thereafter the ope—
`rand(s) is accessed with the PF address in the AAB
`register{s).
`The crossing of a page frame boundary is indicated
`by the changing of the low-order bit PL in the page
`virtual address component P in VAR 100. The crossing
`occurs when the VA for the next page is placed into
`VAR 100 while the CPU continues to signal the same
`Operand request. Then the main store address for the
`second page frame is placed into the other AAB regis—
`ter of the pair. If the operand‘s PF address cannot be
`obtained because an exception signal is encountered
`during the operation of DATM, the instruction execu—
`tion is cancelled and none of its results is permitted to
`be stored.
`
`As previously mentioned, after the AAB registers are
`loaded, only the valid PF addresses contained in the
`AAB are used in the execution of the current instruc—
`tion, and no references are then made through the ST,
`PT or TLB as long as the same content validly remains
`in VAR 100.
`
`The loading of the operand PF address(es) into the
`AAB assures the availability of the main store operand
`address(es) for the using CPU for the duration of the
`current instruction ‘s execution, even though during the
`execution another CPU may make the corresponding
`PT entry invalid.
`It is noted that the TLB entry is not marked invalid at
`the instant that the corresponding PT entry is marked
`invalid, because the marking of the TLB entry awaits
`the actuation of CPU hardware to perform the opera-
`tion. Hence the addressability in the TLB might appear
`valid for a period after the corresponding addressability
`in the PT is lost. But the TLB entry's addressability can
`not be relied upon. because it may be made invalid at
`any time during the execution of the current instruc-
`tion. However, the AAB addressability can be relied
`upon to be maintained throughout the current instruc-
`tion‘s execution period. Hence the AAB avoids any
`unpredicatability in the results of the instruction's exe—
`
`

`

`
`
`3,947,823
`
`7
`cution that would be caused by invalidation of the PT
`or TLB entry at a time during execution when use is
`made of the page frame designated by those table
`entries.
`1 and 2
`The entries in the AAB registers in FIGS.
`(like the PT and TLB entries) contain only a page-
`frame address, which is the high—order part of the main
`store address, e.g., on the high-order [2 bits of a 24 bit
`address. The low—order part of the main store address is
`directly transferred to the SAR 110 from the byte dis—
`placement (D) ficld in the VAR 100. The page frame
`address and the D field are combined in the main store
`address register {SAR) 110 in FIGS.
`1 and 2 to gener—
`ate the main store address of the operand or instruc—
`tion, which is provided to the main store address hard-
`ware in order to access the operand.
`DETAILED DESCRIPTION OF THE PREFERRED
`EMBODIMENT
`
`The AAB control circuits are shown in FIG. 2. They
`are organized in such a way that they require a mini-
`mum amount of control lines from the CPU. In present
`commercial systems without any AAB, the CPU con—
`tains, among other things, the lines 3 through 60 shown
`in FIG. 1 provided by the CPU execution unit. The
`AAB - is connected to lines 3 through 60 which are
`shown in detail in FIG. 2 as input control lines 60, 61.
`62, 50 and 3. The end 0]) line 60 is electrically pulsed
`when the execution of the current instruction is ended.
`
`The OPDl VA request line 61 is pulsed when the cur-
`rent instruction makes its first operand (OPDl) request
`while the CPU is operating in virtual address mode, i.e.
`the execution unit is then outputting the first operand‘s
`virtual address to VAR 100. The 0pD2 VA request line
`62 is pulsed when the current instruction makes its
`second operand request while the CPU is operating in
`virtual address mode.
`
`The non—OPD VA request line is pulsed when the
`CPU is requesting a non-Operand store access, such as
`an instruction fetch; it uses DATM but does not use any
`AAB register. The main-store address request line 3 is
`pulsed when the address provided to VAR 100 is a
`main store address; and it therefore can be directly put
`into SAR [00, without using either the DATM or the
`AAB circuits. Whenever a main store access request
`signal is received on line 3 from the CPU. the signal on
`line 3 is applied to a gate 9 which causes the S and P
`fields in VAR 100 to be gated directly into the PF field
`in SAR 100.
`In FIG. 2, a virtual address in register 100 comprises
`the segment address component 8, the page address
`component P, and the page displacement field D, how-
`ever a real address in VAR [00 provides the page
`frame address in the S and P fields.
`The content of register 100 is not affected by address
`translation, and it provides the input to a conventional
`address translation operation. Field D in VAR 100 is
`transferred directly into the D field of main store ad-
`dress register (SAR) 100 with no gating therebetween.
`The segment address S and page address P components
`of the virtual address are inputted to the dynamic ad-
`dress translation mechanism (DATM) 120 which trans-
`lates them into a corresponding main-store page—frame
`address, which is outputted on main store PF address
`out line 12] to AAB register gates 16, 26, 36 and 46.
`The AAB circuits include validity triggers ll, 2]. 31
`and 41 which are respectively associated with the four
`registers 10, 20. 30 and 40. Each trigger is reset by an
`
`8
`end 0p signal on line 60 upon the completion of execu—
`tion of the current instruction. the reset state indicates
`that the associated AAB register does not contain a
`valid PF address.
`The CPU activates required signals on control lines 3
`through 60 at the beginning of the execution of the
`current instruction, so that if any address translation
`exception interrupt signal is generated by the DATM
`on its output line 101, it must occur early enough to
`permit all results of the current instruction to be can-
`celled. The translation exception interrupt signal
`is
`generated by DATM when a particular VA cannot be
`translated because no assigned or available PF address
`is found in the PT or TLB. This early portion of the
`instruction execution is conventionally called “pretest—
`mg."
`During pretesting the CPU translates by means of the
`ST, PT and TLB entries all virtual addresses to be used
`in the instruction execution, and the AAB registers are
`used for operand accessing after pretesting for the
`remainder of the instruction execution.
`
`Therefore the page frame address for an Operand is
`provided by DATM to the AAB in the early portion of
`execution for the current instruction.
`
`The choice of which AAB register in a pair is selected
`to be loaded with a currently provided address on line
`121 is determined by whether the virtual page address
`in VAR 100 is even or odd, which is indicated by the
`signal on PL line '71 provided from the lowest-order bit
`position in the P field of register 100. The line ‘72 out-
`put of inverter 70 is activated by an even P field con-
`tent since the PL bit is then set to the 0 current level;
`but line 7] is activated by an odd P field content which
`sets PL to the 1 current level.
`A non-operand differs from an operand in that the
`non—operand either uses a main store address, e.g. its
`addres does not require translation, or it is an instruc-
`tion which is fetched prior to Operand pretest and
`hence its execution can be terminated at any time dur-
`ing its fetch which is before any results have been
`stored for the instruction.
`
`When an instruction (or other non-operand) is to be
`accessed in VA mode, the CPU pulses a non-operand
`virtual address (NON-OPD VA) request signal on a
`line 50 through an OR circuit 51 to actuate the address
`translation mechanism 120.
`
`Whenever a virtual address is put into VAR 100, the
`DATM 120 outputs on line 12] the main store page
`frame address corresponding to the S and P compo-
`nents of the virtual address in register 100, when a
`corresponding page frame has been assigned. This is
`indicated by a translation available signal being pro—
`vided on a line 102. If no page frame was assigned, a
`translation exception signal is provided on line lfll to
`the CPU, so that the CPU can provide a page demand
`interrupt signal.
`The virtual storage operand access request signals on
`line 61 and 62 are mparately provided by the CPU to
`distinguish whether the address in VAR 100 is for a
`first or a second operand of the current instruction.
`Line 6] is activated for the first operand and enables a
`selection by the PL line 72 or ’71 in the first pair of AAB
`registers l0 and 20. Line 62 is activated for the second
`operand and enables a selection by the PL line 72 or 7]
`in the second pair of AAB registers 30 and 40.
`The following example illustrates the internal Opera-
`tion of the AAB circuits:
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`ARM_VPT_IPR_00000497
`ARM_VPT_IPR_OOOOO497
`
`Illli
`
`

`

`3,947,823
`
`9
`Assume that an end op signal has just Occurred on
`line 60 indicating completion of the last instruction
`execution. It resets all of the validity triggers ll, 21, 31
`and 41.
`
`Now assume that. the CPU has just pulsed a signal on
`OPDl VA line 61, and that the PL bit in virtual address
`register 100 is 0 indicating an even—numbered content
`in virtual page field P. The 0 signal on line 71 to in-
`verter 70 activates its output line 72. AND circuit 12 is
`therefore enabled by active lines 61 and 72, and its
`output line 13 provides a first even selection signal to
`condition AND circuits 1?, 14 and 15.
`Since trigger 11 is now in a reset state, its comple-
`mentary output (c) enables the AND circuit 14 to
`energize line 73 to provide an operand translation re-
`quest signal through OR circuit 51 to DATM 120. If the
`translation is available, line 102 is activated; but if it is
`not available, the CPU is signalled on line 101 to gener—
`ate a page demand interruption. Assuming that the
`translation is available, line 102 and line 73 activates an
`AND circuit 74; and its output line 75 activates AND
`circuit 15 which then conditions gate 16 to transfer the
`main store PF address provided on bus 121 into the
`first even AAB register 10. The signal from AND cir-
`cuit 74 is also delayed through delay circuit 76 and
`shortly thereafter enables AND circuit 17 to set the
`first even validity trigger 11 to its valid state, indicating
`the content of register 10 is valid. This activates the (t)
`output of trigger 11 (and deactivates its (c) output} to
`enable AND circuit 18 and therefore gate 19 transfers
`the valid content of the AAB register 10 into the PF
`field in SAR register 110.
`When the current instruction completes its execu—
`tion, the execution unit activates the end op line 60,
`which resets trigger 11 to indicate an invalidity state for
`the content of AAB register 10, and AND 18 deacti-
`vates gate 19 to block the connection between register
`10 and SAR 110.
`
`10
`
`IS
`
`20
`
`25
`
`30
`
`35
`
`10
`ment. Then field P in VAR 100 is changed by the CPU
`to the next page; and DATM 120 provides another
`main store page frame address on line 121 correspond-
`ing to the new S and Pcombination in VAR 100. Hence
`the reversal in the state of the PL bit signal on line 71
`puts the new page frame address

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket