← Back to Patent Explorer
US3902163A Expired / Lapsed US ⏱️ 0.0 years remaining

Buffered virtual storage and data processing system

Assignee: Fujitsu IT Holdings Inc
•
Filing: 1973-11-21
•
Granted: 1975-08-26
•
Expires: 1993-11-21
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Disclosed is a data processing system which operates with multiprogramming and virtual storage. Logical addresses are translated to real addresses by use of translation tables stored in main storage. Each program has its own unique translation table. A buffer memory, including a high-speed logical translation store, stores real addresses which have been translated from logical address by use of the tables. A program identifier store identifies what programs have translated information within the buffer memory. At least one location within the identifier store is maintained empty so as to be available for any new program. In one embodiment, the identifier store is a redundantly addressed memory with less than all locations valid at any one time. In another embodiment, the buffer memory includes N levels of primary/alternate stores, each store having an index portion and a data portion and each portion having a primary and an alternate section.

Inventors

  • 👤 Gene M Amdahl
  • 👤 Takashi Chiba
  • 👤 Richard J Tobias

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-23 15:53
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F12/1045; G06F12/1063; G06F12/0802; G06F12/0864

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 327 words
A data processing system including storage for storing information utilized by a plurality of programs where each program is identified by unique program identity data, where said programs identify locations in said storage using logical addresses and where each program is associated with a unique table in said storage for translating logical addresses to real addresses, including means for translating logical addresses to real addresses, including means for addressing said storage with said real addresses to fetch and store information in connection with the execution of instructions derived from said plurality of programs and including storage control means, said storage control means comprising, program identifier store means including a plurality of name locations storing program identifier names for identifying programs having information stored in said storage control, including means for maintaining at least one of said name locations empty and available for use by one of said programs not having information stored in said storage control, and including means for addressing said program identifier store means to output a program identifier name in response to an input address formed by said program identity data for one of said programs in control of said system, logical translation store means including means for storing program identifier names, logical addresses and real addresses of information in said storage control and including means for addressing said logical translation store means to output a real address in response to an input address formed by said program identifier name output from said program identifier store and by a logical address from said one of said programs in control of said system, buffer data store means including means for storing information fetched from or to be stored in said storage at locations specified by real addresses stored in said logical translation store means and including means for addressing said buffer data store means to output information in response to an input address formed by said real address output from said logical translation store means.
Claim 2
Dependent Claim 327 words
A data processing system including storage for storing information utilized by a plurality of programs where each program is identified by unique program identity data, where said programs identify locations in said storage using logical addresses and where each program is associated with a unique table in said storage for translating logical addresses to real addresses, including means for translating logical addresses to real addresses, including means for addressing said storage with said real addresses to fetch and store information in connection with the execution of instructions derived from said plurality of programs and including storage control means, said storage control means comprising, program identifier store means including a plurality of name locations storing program identifier names for identifying programs having information stored in said storage control, including means for maintaining at least one of said name locations empty and available for use by one of said programs not having information stored in said storage control, and including means for addressing said program identifier store means to output a program identifier name in response to an input address formed by said program identity data for one of said programs in control of said system, logical translation store means including means for storing program identifier names, logical addresses and real addresses of information in said storage control and including means for addressing said logical translation store means to output a real address in response to an input address formed by said program identifier name output from said program identifier store and by a logical address from said one of said programs in control of said system, buffer data store means including means for storing information fetched from or to be stored in said storage at locations specified by real addresses stored in said logical translation store means and including means for addressing said buffer data store means to output information in response to an input address formed by said real address output from said logical translation store means.
Claim 3
Dependent Claim 118 words
The system of claim 1 wherein said program identifier store means further includes, a redundantly addressed memory stack addressed by said program identity data, said stack having a plurality of locations each for storing a segment base field for uniquely identifying a program, a name field for storing a name assigned to the program identified in the segment base field, and a priority field for establishing a replacement priority for the program identified in the segment base field, data out means for storing information read out from said memory stack, data in means for loading information into said memory stack, memory stack control means for controlling said memory stack said data in means and said data out means.
Claim 4
Dependent Claim 51 words
The system of claim 2 wherein said addressing means for addressing said program identifier store means includes a hash table for mapping a first field of address bits formed by said program identity data into a second field of address bits where said second field is smaller than said first field.
Claim 5
Dependent Claim 57 words
The system of claim 1 wherein said program identifier store means, said logical translation store means and said buffer data store means each includes an index portion and an associated data portion where the index portion and the data portion in each of said store means are addressed by the same one of said input addresses, respectively.
Claim 6
Dependent Claim 153 words
The system of claim 4 wherein each of said index portions and each of said data portions includes a primary section and an alternate section and wherein said addressing means for each of said store means includes primary and alternate comparator means for receiving the contents of an addressed location in said primary and alternate sections of the index portion for comparison with a respective one of said input addresses and means for selecting the primary or alternate section of the data portion as a function of a comparison in the primary or alternate comparator means, respectively, said system including means for connecting the selected output from the data portion of the program identifier store means to the comparator means for the logical translation store means and means for connecting the selected output from the data portion of the logical translation store means to the comparator means for the buffer data store means.
Claim 7
Dependent Claim 30 words
The system of claim 2 wherein said memory stack further includes means for storing a validity field in each of said locations for identifying valid entries within said memory stack.
Claim 8
Dependent Claim 71 words
The system of claim 2 wherein said memory stack includes a first number of said locations and wherein said name field for each of said locations includes a number of bits which uniquely specifies a second number of said names where said second number is less than said first number whereby the number of valid entries in said memory stack is less than the number of locations in said memory stack.
Claim 9
Dependent Claim 24 words
The system of claim 7 wherein for each of said locations the size of the priority field equals the size of the name field.
Claim 10
Dependent Claim 53 words
The system of claim 6 wherein said data out means includes for each of said fields a free-running register for storing the output of said memory stack each time said memory stack is addressed and includes a controlled register for storing selected outputs from said memory stack under control of said control means.
Claim 11
Dependent Claim 161 words
The system of claim 1 wherein said program identity data is formed as segment base information associated with system programs and said program identifier store means further includes, a redundantly addressed memory stack addressed by said segment base information, said memory stack having a plurality of locations each including a segment base field for uniquely identifying a program, including a name field for storing a name assigned to the program identified in the segment base field, including a priority field for establishing a replacement priority for the program identified in the segment base field, and including a validity field for identifying if said name field in valid, data out means for storing information accessed from addressed locations in said memory stack, data in means for loading information into addressed locations in said memory stack, memory stack control means for controlling said memory stack, said data in means and said data out means for accessing validity, segment base, name and priority information.
Claim 12
Dependent Claim 63 words
The system of claim 10 wherein said memory stack control means further includes means for assigning names, up to a maximum number of names, for entry into said name fields and further includes means for invalidating a previously used name, when said maximum number of names are assigned, so as to make said previously used name available for association with a new program.
Claim 13
Dependent Claim 45 words
The system of claim 11 wherein said data out means includes means for storing said previously used name whereby said previously used name is available for addressing said logical translation store means and for purging said previously used name from said logical translation store means.
Claim 14
Dependent Claim 63 words
The system of claim 10 wherein said memory stack control means further includes means for setting valid a number, less than said maximum number of said valId fields whereby at least one of said valid fields is not set valid so that the associated name field is available for receiving a name associated with a new segment base and an associated new program.
Claim 15
Dependent Claim 267 words
A data processing system including storage for storing information utilized by a plurality of programs where each program is identified by unique program identity data, addressed by real addresses, including a processing unit for addressing said storage for fetching and storing information in connection with the execution of instructions where the instructions are received from a plurality of system programs, where said programs identify locations in said storage using logical addresses and where each program is associated with a unique table in storage for translating logical addresses to real addresses, including means for translating logical addresses to real addresses, and including storage control, said storage control comprising, logical translation store means for storing a program identifier name and associated logical addresses and for storing corresponding translated real addresses, buffer data store means for storing information accessed from said real addresses, program identifier store means having a plurality of name locations each for storing a name identifying a different program which has information in said logical translation store means, said program identifier store means including means for maintaining at least one of said locations empty and available for use by a new program not having information in said logical translation store, means for addressing said logical translation store means, to obtain one of said real addresses, with a logical address provided by a particular system program and with a name from said program identifier store associated with said particular system program, and means for addressing said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses.
Claim 16
Dependent Claim 267 words
A data processing system including storage for storing information utilized by a plurality of programs where each program is identified by unique program identity data, addressed by real addresses, including a processing unit for addressing said storage for fetching and storing information in connection with the execution of instructions where the instructions are received from a plurality of system programs, where said programs identify locations in said storage using logical addresses and where each program is associated with a unique table in storage for translating logical addresses to real addresses, including means for translating logical addresses to real addresses, and including storage control, said storage control comprising, logical translation store means for storing a program identifier name and associated logical addresses and for storing corresponding translated real addresses, buffer data store means for storing information accessed from said real addresses, program identifier store means having a plurality of name locations each for storing a name identifying a different program which has information in said logical translation store means, said program identifier store means including means for maintaining at least one of said locations empty and available for use by a new program not having information in said logical translation store, means for addressing said logical translation store means, to obtain one of said real addresses, with a logical address provided by a particular system program and with a name from said program identifier store associated with said particular system program, and means for addressing said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses.
Claim 17
Dependent Claim 125 words
The system of claim 14 wherein said program identifier store means further includes, a redundantly addressed memory stack having a plurality of locations each for storing a segment base field for uniquely identifying a program, a name field for storing a name assigned to the program identified in the segment base field, and a priority field for establishing a replacement priority for the program identified in the segment base field, addressing means for addressing the locations in said memory stack with said program identity data, data out means for storing information read out from said memory stack, data in means for loading information into said memory stack, memory stack control means for controlling said addressing means, said data in means and said data out means.
Claim 18
Dependent Claim 63 words
The apparatus of claim 15 wherein said memory stack control means further includes means for assigning names, up to a maximum number of names, for entry into said name fields and further includes means for invalidating a previously used name, when said maximum number of names are assigned, so as to make said previously used name available for association with a new program.
Claim 19
Dependent Claim 83 words
The apparatus of claim 16 wherein said data out means includes means for storing said previously used name whereby said previously used name is available to said means for addressing said logical translation store means, and wherein said means for addressing said logical translation store means includes means for sequentially addressing all logical translation store locations, includes means for detecting said previously used name in any addressed location, and includes means for purging said previously used name when detected in any addressed location.
Claim 20
Dependent Claim 496 words
A data processing system having system storage addressed by real addresses, having a processing unit for addressing said system storage to fetch and store information in connection with the execution of instructions and to carry oUt dynamic address translations when the instructions are received from a plurality of system programs, when each program identifies locations in system storage using logical addresses which are not unique to a program, and when each program is associated with a unique table in the storage for dynamically translating non-unique logical addresses to unique real addresses, and having a storage control, said storage control comprising, logical translation store means having an index portion with a plurality of locations for storing program identifier names and for storing associated logical addresses and having a data portion having a plurality of locations for storing corresponding real addresses translated from logical addresses by said processing unit, buffer data store means having an index portion for storing real addresses and having a data portion for storing information accessed from said system storage at said real addresses, program identifier store means including a redundantly addressed memory stack having a plurality of addressable locations each including a segment base field for uniquely identifying a program, including a name field for storing a name assigned to the program identified in the segment base field, including a priority field for establishing a replacement priority for the program identified in the segment base field, and including a validity field for identifying if the name field entry is valid, said program identifier store means including data out means for storing information accessed from addressed locations in said memory stack, said program identifier store means including memory stack control means for controlling said addressing means, said data in means and said data out means for accessing validity, segment base, name and priority information, said memory stack control means including means for assigning names, up to a maximum number of names, for entry into said name fields and including means for invalidating a previously used name, when said maximum number of names are assigned, and for storing said previously used name in said data out means, means for addressing said program identifier store means with segment base information associated with a particular program currently in control of said data processing system to obtain a name identifying said particular program, means for addressing said logical translation store means to obtain one of said real addresses using a logical address from said particular program and using a name from said program identifier store means which identifies said particular program, said means for addressing said logical translation store means also including means for sequentially addressing all logical translation store locations when not addressed by a logical address for detecting and purging said previously used name from said logical translation store means, means for addressing said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses.
Claim 21
Dependent Claim 496 words
A data processing system having system storage addressed by real addresses, having a processing unit for addressing said system storage to fetch and store information in connection with the execution of instructions and to carry oUt dynamic address translations when the instructions are received from a plurality of system programs, when each program identifies locations in system storage using logical addresses which are not unique to a program, and when each program is associated with a unique table in the storage for dynamically translating non-unique logical addresses to unique real addresses, and having a storage control, said storage control comprising, logical translation store means having an index portion with a plurality of locations for storing program identifier names and for storing associated logical addresses and having a data portion having a plurality of locations for storing corresponding real addresses translated from logical addresses by said processing unit, buffer data store means having an index portion for storing real addresses and having a data portion for storing information accessed from said system storage at said real addresses, program identifier store means including a redundantly addressed memory stack having a plurality of addressable locations each including a segment base field for uniquely identifying a program, including a name field for storing a name assigned to the program identified in the segment base field, including a priority field for establishing a replacement priority for the program identified in the segment base field, and including a validity field for identifying if the name field entry is valid, said program identifier store means including data out means for storing information accessed from addressed locations in said memory stack, said program identifier store means including memory stack control means for controlling said addressing means, said data in means and said data out means for accessing validity, segment base, name and priority information, said memory stack control means including means for assigning names, up to a maximum number of names, for entry into said name fields and including means for invalidating a previously used name, when said maximum number of names are assigned, and for storing said previously used name in said data out means, means for addressing said program identifier store means with segment base information associated with a particular program currently in control of said data processing system to obtain a name identifying said particular program, means for addressing said logical translation store means to obtain one of said real addresses using a logical address from said particular program and using a name from said program identifier store means which identifies said particular program, said means for addressing said logical translation store means also including means for sequentially addressing all logical translation store locations when not addressed by a logical address for detecting and purging said previously used name from said logical translation store means, means for addressing said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses.
Claim 22
Dependent Claim 359 words
A data processing system having storage addressed by real addresses, having a processing unit for addressing storage for fetching and storing information in connection with the execution of instructions and for translating logical addresses to real addresses where the instructions are received from a plurality of system programs, where the programs identify locations in storage using logical addresses and where each program is associated with a unique table in storage utilized by said processing unit for translating logical addresses to real addresses, and having a storage control, said storage control comprising, logical translation store means having an index portion divided into primary and alternate sections for storing program identifier names and associated logical addresses and having a data portion divided into primary and alternate sections for storing corresponding translated real addresses, buffer data store means having an index portIon divided into primary and alternate sections for storing real addresses and having a data portion divided into primary and alternate sections for storing information accessed from said real addresses, program identifier store means having a plurality of name locations each for storing a name identifying a different program which has information in said logical translation store means, said program identifier store means including means for maintaining at least one of said locations empty and available for use by a new program not having information in said logical translation store means, means for simultaneously addressing said primary and alternate sections of said index portion and said data portion of said logical translation store means with a logical address provided by a particular system program and with a name from said program identifier store associated with said particular system program for obtaining one of said real addresses from said primary or alternate section, respectively, of said data portion of said logical translation store means, means for simultaneously addressing said primary and alternate sections of said index portion and said data portion of said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses from said primary or alternate section, respectively, of said data portion of said buffer data store means.
Claim 23
Dependent Claim 359 words
A data processing system having storage addressed by real addresses, having a processing unit for addressing storage for fetching and storing information in connection with the execution of instructions and for translating logical addresses to real addresses where the instructions are received from a plurality of system programs, where the programs identify locations in storage using logical addresses and where each program is associated with a unique table in storage utilized by said processing unit for translating logical addresses to real addresses, and having a storage control, said storage control comprising, logical translation store means having an index portion divided into primary and alternate sections for storing program identifier names and associated logical addresses and having a data portion divided into primary and alternate sections for storing corresponding translated real addresses, buffer data store means having an index portIon divided into primary and alternate sections for storing real addresses and having a data portion divided into primary and alternate sections for storing information accessed from said real addresses, program identifier store means having a plurality of name locations each for storing a name identifying a different program which has information in said logical translation store means, said program identifier store means including means for maintaining at least one of said locations empty and available for use by a new program not having information in said logical translation store means, means for simultaneously addressing said primary and alternate sections of said index portion and said data portion of said logical translation store means with a logical address provided by a particular system program and with a name from said program identifier store associated with said particular system program for obtaining one of said real addresses from said primary or alternate section, respectively, of said data portion of said logical translation store means, means for simultaneously addressing said primary and alternate sections of said index portion and said data portion of said buffer data store means with said one of said real addresses to access information associated with said one of said real addresses from said primary or alternate section, respectively, of said data portion of said buffer data store means.

References Cited (Backward Citations)

US3351917A Cited
US3533075A Cited
US3665487A Cited
US3720920A Cited
US3675215A Cited
US3693165A Cited
US3761881A Cited
US3723976A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1978-08-25 1979-02-24 1979-08-26 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1982-08-25 1983-02-24 1983-08-26 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1986-08-25 1987-02-24 1987-08-26 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag