GB2184580A - External memory controller - Google Patents
External memory controller Download PDFInfo
- Publication number
- GB2184580A GB2184580A GB08630540A GB8630540A GB2184580A GB 2184580 A GB2184580 A GB 2184580A GB 08630540 A GB08630540 A GB 08630540A GB 8630540 A GB8630540 A GB 8630540A GB 2184580 A GB2184580 A GB 2184580A
- Authority
- GB
- United Kingdom
- Prior art keywords
- external memory
- processor
- data
- output buffer
- input
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Abstract
An external memory controller 13 controls an external memory 4 constructed so as to be simultaneously accessible from a plurality of processor subsystems 1, 2 and can maintain the integrity of the contents of the input/output buffer areas 1c, 2c of the plurality of processor systems 1, 2. The controller 13 has therein a table 13a for managing existence states of all data blocks 4a of the external memory 4, a function of instructing each processor subsystem 1, 2 to invalidate a specified data block within the input/output buffer area 1c, 2c thereof, and a function of instructing each processor subsystem 1, 2 to send the specified data block within the input/output buffer area back to the external memory controller 13. Therefore, the input/output buffer areas can be set in the respective processor subsystems 1, 2 without causing contradictions in their update so that independent exclusive control mechanisms between electronic computers are not required. <IMAGE>
Description
SPECIFICATION
External memory controller
BACKGROUND OF THE INVENTION
This invention relates to an external memory
controller in an electronic computer system. More
particularly, it relates to an external memorycontrol- lerwhich controls an external memory constructed so
asto be simultaneously accessiblefrom a plurality of
processor subsystems and which can maintain the
contents ofthe input/output buffer areas of the plurality of processor systems without any contradic
tions.
Fig. 2 is a block diagram showing the arrangement
of an electronic computer system comprising a
plurality of processor subsystems, an external mem ory which is accessed from these processorsubsys- tems, and a prior-art external memory controller which serves to control the external memory. Refer
ring to the figure, one processor subsystem shown at
numeral 1 consists of a central processor unit 1 a and a
main memory unit 1 b. This main memory unit 1 b has an input/outputbufferarea 1 c. Likewise, another
processor subsystem 2 has a central processor unit 2a, a main memory unit 2b and an input'output buffer area 2c.The external memory controller 3 is con nected to the processorsubsytems 1 and 2, and has an occupancycontrolflag3a.Theextenal memory 4 is connected to the external memory controller3, and one of the data blocks in this external memory is denoted by symbol 4a. Acommon memory 5 is shared by both the processor subsystems 1 and 2.
The electronic computer system employing the prior-artexternal memory controller3 is arranged as described above. Therefore, when a request seeking to alterthe data block4a in the external memory4is made by the processor subsystem 1,the data block 4a is loaded into an empty block (not shown) within the input/outputbufferarea 1 c of the main memory unit 1 b of the processor subsystem 1 through the external memory controllor3, and the content thereof is referred to and altered.Herein, in orderto reduce the numberofinputsto and outputsfrom the external memory 4, the altered data block4a within the input/outputbufferarea lcisnotwritten back into the external memory 4 until the input/output buffer area 1 c has no empty block.
On the other hand, if a request to referto and alter the identical data block 4a is made by the processor subsystem 2 in the meantime and the data block4a within the external memory 4 is loaded into the input/output buffer area 2c, the content of the data will be the old content prior to the alteration by the processor subsystem 1. Therefore, a a so-called update contradiction ofthe data content arises, and the electronic computersystem will not operate properly.
In orderto avoid this problem, either of the following methods have heretofore been adopted: (1) In the first method, when the processor su bsystem 1 first accesses the external memory 4, it requests that the occupancy control flag 3a within the external memory controller 3 be set. The occupancy control flag 3a is reset after a series of data input/output processes have ended and all data blocks within the input/output buffer area 1 c have been written back into the external memory4again. With this measure, the contradiction in updating data can be prevented.
However, this lengthens the period of time during which the other processor subsystem 2 waits for its access to the external memory 4 adversely affecting the efficiency of the electronic computer system.
(2) In the second method a resource exclusivemanagement mechanism is provided between a plurality of processor subsystems, such as the common memory 5 which can be shared by both the processor subsystems 1 and 2. Each processor subsystem 1 or2givesthecommon memory 5 a request of registration to the effect of occupying the data block4a, prior to accessing the data of the external memory 4, and it actually accesses the data block 4a after waiting forthe acceptance of the request. This measure provides an efficiency higher than that of the first method in which the external memory 4 is entirely occupied. However, a resource exclusive-management mechanism such as common memory 5 is required besides the external memory 4, and a data management program must access it frequently.
Withtheprior-artexternal memory controller, in either case, unless one processor subsystem writes the modified data block stored in the internal input/ output buffer area thereof, back into the original location of the external memory, the same data cannot be accessed from the other processor subsystem.
Conversely, forthe purpose of shortening the period of time during which the other processor subsystem is kept waiting, the altered data block needs to be immediately written from the input/output buffer area into the external memory. This incurs the problem that the essential intention of the input/output buffer area to reduce the number of inputs/outputs between the processor subsystem and the external memory is reduced to half.
SUMMARY OF THE INVENTION
This invention has been made in order to solve the problem as mentioned above, and has for its objectto provide an external memory controllerwhich permits each processor subsystem to hold an input/output bufferareaforreducingthenumberofinputs/outputs, without causing any contradictions in the update of data when an identical external memory has been accessed from a plurality of processor subsystems.
The external memory controller according to this invention has therein a table which manages existence states of all data blocks of the external memory, a function for instructing each processor subsystem to invalidate a specified data block within the internal input/output buffer area, and a function for instructing each processor subsystem to send a specified data blockwithin the input/output buffer area back to the external memory controller.
Accordingtothisinvention,incompliancewith a requestfordata from a specified one ofthe processor
subsystems, the existence of the latest data of the corresponding data block is detected by the use ofthe data block management table. If the data exists within the external memory, it is immediately transferred to the input/output buffer area of the specified processor
subsystem, whereas if the data does not exist, the
corresponding latest data block is transferred from
another processor subsystem to the processor subsystem making the request. In addition, when the
request accompanies an alteration, the other processor subsystem is caused to invalidate the data block stored in the input/output buffer area thereof.
BRIEF DESCRIPTION OF THE DRAWINGS
Fig. 1 is block diagram showing an electronic computer system which uses an embodiment ofthis invention; and
Fig. 2 is block diagram showing an electronic computer system which uses an external memory controller in the prior art.
PREFERRED EMBODIMENT OF THE INVENTION
Now, an embodiment of this invention will be described with reference to Fig. 1. Fig. lisa block diagram showing the arrangement of an electronic computer system which comprises the external mem ory controller ofthis invention. As in the system of Fig.
2, processor subsystems 1 and 2 have central processor units la and 2a and main memory units 1 band 2b, respectively. The main memory units 1 and 2b have input/output buffer areas 1c and 2c, respectively. The external memory controller 13 of this invention has a data block existence managementtable 1 3a. As in the system of Fig 2, and external memory 4 has data blocks, one of which is denoted by symbol 4a.
In the electronic computer system arranged as described above, the operation of access to the external memory 4 is divided into the transfer operation of sending data from the external memory 4 to the processor subsystem 1 or 2, and the return operation of bringing a data blockfrom the corresponding processor subsystem in a case where the latest data block does not existwithin the external memory 4. Further, there is the operation of invalidating data in which when a read request premised on the alteration of the content of data has been received, all the processor subsystems 1 and 2 are caused to delete parts of predetermined data blocks within the internal input/output buffer areas 1c and 2cthereof.
Thetransferoperation is subdivided in two; a copying mode in which the state of the data block existence managementtable 1 3a is not changed even afterthe completion of transfer, and a shifting mode in which a corresponding entry in the data block existence managementtable 1 3a is changed into nonexistence afterthe completion of transfer. Here, the expression "nonexistence" signifies a case where the pointer of a corresponding entry in the data block existence managementtable 13a designates any subsystem other than the external memory 4 itself.
Likewise, the return operation also included a copying mode which does not accompany the change ofthe data block existence managementtable 13a, and a shifting mode which accompanies the change of the corresponding entry of the existence management table 13a.
The operation ofthis invention will hereinafter be
described in more detail.
In the data block existence managementtable 1 3a,
there are pointers which correspond to all the data
blocks ofthe external memory 4 and which designate
the existence states thereof. In the initial state of the
management table, the pointers designate that all the
data items exist in the external memory4 itself.
(1) It is now assumed thata read requestforthe data
block4a has been received by the external memory controller 13 in a read-only mode from the processor subsystem 1. Then, the external memory controller 13 detects the existence ofthe data block 4a in the external memory 4 in view of the data block existence managementtable 13a and immediately starts the transfer operation. Since the read request is in the read-only m ode, th is tra nsfe r operation is in the copying mode. That is, the data block 4a ofthe external memory 4 is transferred to the processor subsystem 1, and the content of the data block existence managementtable 13a does not change even after the completion of the transfer.The processor subsystem 1 holds therein the transferred data until all the blocks of the input/output buffer area 1 c are filled up. In the meantime, the processorsubsystom 1 does not alter the contents of data.
(2) Subsequently, when a read request in a modification mode has been received by the external memory controller 13 from the processor subsystem 2 underthe above state, the external memory controller 13 detects the existence ofthe pertinent data block 4a in the external memory4and immediatelystartsthe transfer operation. In this case, the transfer is performed in a shifting mode because ofthe read request in the modification mode. That is, the external memory controller 13 begins to transferthe data block 4a of the external memory4 and also gives all the processor subsystems 1 and 2 the invalidation instructions of deleting the data block 4a from the input/ output buffer areas 1 c and 2c.In addition, after the completion ofthetransfer, the pointer ofthat entry of the data block existence managementtable 1 3a which corresponds to the data block 4a is changed into nonexistenceso as to designate the p rocessor su bsys tem 2. In the processor subsystem 2, the data block4a is kept stored in the input/output buffer area 2c along with a flag which designate that the operation is in the modification mode.
(3) Next, there will be explained a case where the content of the entry corresponding to the data block4a in the existence management table 13a indicates nonexistence.
When, subsequently to the result of above item (2), a read requestforthe data block4a has been again transmitted from the processor subsystem 1 to the external memory controller 13 in the read-only mode, the external memory controller 13 starts the return operation upon detecting thatthe data block 4a does not exist in the external memory4 but in the processor subsystem 2. That is, a copying mode return request forthe data block 4a is sent to the processor subsystem 2. The processor subsystem 2 writes the data block4a into the external control memory 13.
Next, the external memory controller 13 executes the copying modes transfer to the processor subsystem 1.
The data block 4a transferred bythe copying mode is once loaded intothe input/output bufferarea 1c, and it is invalidated immediately after use.
(4) Lastly, there will be explained a case where, when the data block4alieswithin the processor subsystem 2 and is nonexistent in the external memory 4, a read request in the modification mode is also generated by the processor subsystem 1.
As in the case ofthe above item (3), the external memory controller 13 detects the nonexistence of the data block4a and starts the return operation. Since, however, the read request in the modification mode is received in this case, a return request in the shifting mode is sent to the processor subsystem 2. This processor subsystem 2 transfers the pertinent data to the external memory controller 13, and invalidates the entry of the data block 4a within the input(output buffer area 2c.
Subsequently, the content of that entry in the data block existence managementtable 13a within the external memory controller 13 which corresponds to the data block 4a temporarily indicates existence.
However, when the shifting modetransferto the processor subsystem 2 has been completed im mediately thereafter, the co ntent of the afo remen tioned entry comes to designate the processor sub- system 1 and to indicate the nonexistence of the data block4a.
In the above example, the processor subsystem 2 has been described as unconditionally complying with the shifting mode return request from the external memory controller 13. Actually, however, the processorsubsystem 2 can be locked in order to exclusively occupythe pertinent data block 4a for a fixed period oftime,to rejecttheshifting mode return requestfrom the external memory controller 13 orto keep it standing-by.
Thus, an access control mechanism in a more logical file unit can be realized with a program management layer of higher priority.
In the specification, the case of the two processor subsystems has been referred to. However, even when three or more processor subsystems are
included, they can be operated quite similarly within a
range where they can be designated by the pointers in the data block existence managementtable.
Further, although the entries of the data block existence managementtable have been the pointers which designate the corresponding processorsubsys- tems, they may well be replaced with flag which merely designate whether or not data blocks exist in the external memory, whereupon in case nonexist
ence, a return request is sentto all the processor
subsystems and is respondedto bythe corresponding
processor subsystem.
Further, the read requestforthe nonexistent data block has been keptstanding-byuntilthecompletion of reading through the return of the data block. This
operation, however, may well be replaced with an
operation in which the read requestforthe nonexistent data is once broughtto an error end, and
thereafter, when the return of the data is over, an
interrupt is applied from the external memory control
lerto the processor subsystem, and the processor
subsystem can be retried.
As described above, according to this invention, in sharing an identical external memory with a plurality of processor subsystems, a mechanism for monitoring the existence situation of data and the update contradictions thereof is provided in an external memory controller. Therefore, the input/output buffer areas can be set in the respective processor su bsystems without causing contradictions in the update of data without requiring independent exclusive control mechanisms between electronic computers.
Claims (2)
1. An external memorycontrollerforcontrolling an external memoryarrangedsoastobesimul- taneously accessible from a plurality of processor subsystems each of which includes a central processor unit and a main memory unit having an in putt output buffer area;;
wherein said external memory controller has an existence management table for data blocks, a func- tion of requesting each of said processor subsystems to return a data block stored in said external memory, and a function of requesting said each processor subsystem to invalidate a specified data block within the input/output buffer area thereof, thereby to comply with a data transfer request from any of said processor subsystems to bring the latest data of the request from the corresponding processor subsystem and to transfer it to the requesting processor subsystem, and also to give the corresponding processor subsystem an instruction for invalidating the same data block in said input/output buffer area in a case where a data request from any of said processor subsystems accompanies an alteration of a data content, whereby contents of said input/output buffer areas in said plurality of processorsubsystems can be maintained without any contradictions.
2. An external memory controllerfor controlling an external memory substantially as described herein with reference to Figure 1 ofthe accompanying drawing.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP60287965A JPS62147548A (en) | 1985-12-23 | 1985-12-23 | External storage controller |
Publications (2)
Publication Number | Publication Date |
---|---|
GB8630540D0 GB8630540D0 (en) | 1987-02-04 |
GB2184580A true GB2184580A (en) | 1987-06-24 |
Family
ID=17724042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB08630540A Withdrawn GB2184580A (en) | 1985-12-23 | 1986-12-22 | External memory controller |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPS62147548A (en) |
GB (1) | GB2184580A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0343343A2 (en) * | 1988-03-25 | 1989-11-29 | Nec Corporation | Lock circuit for extended buffer memory |
EP0486194A2 (en) * | 1990-11-15 | 1992-05-20 | International Business Machines Corporation | Memory system |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6476345A (en) * | 1987-09-18 | 1989-03-22 | Fujitsu Ltd | Disk cache control system |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3581291A (en) * | 1968-10-31 | 1971-05-25 | Hitachi Ltd | Memory control system in multiprocessing system |
US3618040A (en) * | 1968-09-18 | 1971-11-02 | Hitachi Ltd | Memory control apparatus in multiprocessor system |
GB1343375A (en) * | 1971-08-25 | 1974-01-10 | Ibm | Data processing systems |
GB2011667A (en) * | 1977-12-29 | 1979-07-11 | Fujitsu Ltd | Method for carrying out buffer memory coincidence in multiprocessor system |
EP0009938A1 (en) * | 1978-10-02 | 1980-04-16 | Sperry Corporation | Computing systems having high-speed cache memories |
GB1586847A (en) * | 1977-11-28 | 1981-03-25 | Ibm | Data processing apparatus |
EP0049387A2 (en) * | 1980-10-06 | 1982-04-14 | International Business Machines Corporation | Multiprocessor system with cache |
-
1985
- 1985-12-23 JP JP60287965A patent/JPS62147548A/en active Pending
-
1986
- 1986-12-22 GB GB08630540A patent/GB2184580A/en not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3618040A (en) * | 1968-09-18 | 1971-11-02 | Hitachi Ltd | Memory control apparatus in multiprocessor system |
US3581291A (en) * | 1968-10-31 | 1971-05-25 | Hitachi Ltd | Memory control system in multiprocessing system |
GB1343375A (en) * | 1971-08-25 | 1974-01-10 | Ibm | Data processing systems |
GB1586847A (en) * | 1977-11-28 | 1981-03-25 | Ibm | Data processing apparatus |
GB2011667A (en) * | 1977-12-29 | 1979-07-11 | Fujitsu Ltd | Method for carrying out buffer memory coincidence in multiprocessor system |
EP0009938A1 (en) * | 1978-10-02 | 1980-04-16 | Sperry Corporation | Computing systems having high-speed cache memories |
EP0049387A2 (en) * | 1980-10-06 | 1982-04-14 | International Business Machines Corporation | Multiprocessor system with cache |
Non-Patent Citations (1)
Title |
---|
WO A1 82/03480 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0343343A2 (en) * | 1988-03-25 | 1989-11-29 | Nec Corporation | Lock circuit for extended buffer memory |
EP0343343A3 (en) * | 1988-03-25 | 1991-04-03 | Nec Corporation | Lock circuit for extended buffer memory |
EP0486194A2 (en) * | 1990-11-15 | 1992-05-20 | International Business Machines Corporation | Memory system |
EP0486194A3 (en) * | 1990-11-15 | 1994-01-26 | Ibm |
Also Published As
Publication number | Publication date |
---|---|
JPS62147548A (en) | 1987-07-01 |
GB8630540D0 (en) | 1987-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Needham et al. | The Cambridge CAP computer and its protection system | |
EP0283628B1 (en) | Bus interface circuit for digital data processor | |
US5113514A (en) | System bus for multiprocessor computer system | |
US7024525B2 (en) | Distributed background track processing | |
US6189078B1 (en) | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency | |
KR100704089B1 (en) | Using an l2 directory to facilitate speculative loads in a multiprocessor system | |
EP0022829B1 (en) | Data processing system | |
US8255591B2 (en) | Method and system for managing cache injection in a multiprocessor system | |
JPH0743670B2 (en) | Store-through cache management system | |
US20070260839A1 (en) | Migrating Data that is Subject to Access by Input/Output Devices | |
KR20040012812A (en) | Method and apparatus for facilitating speculative stores in a multiprocessor system | |
US6473845B1 (en) | System and method for dynamically updating memory address mappings | |
EP0533427A1 (en) | Computer memory control system | |
CA1303229C (en) | Bus adapter unit for digital data processing system | |
CN116745752A (en) | Migrating memory pages accessible by an input-output device | |
GB2184580A (en) | External memory controller | |
KR20030054110A (en) | Method and apparatus of caching multiple Java-database connectivity | |
EP0587370A1 (en) | Method and apparatus for software sharing between multiple controllers | |
JPH0719222B2 (en) | Store buffer | |
JP2746189B2 (en) | File access control system | |
JP3162459B2 (en) | Data processing device | |
EP0271187A2 (en) | Split instruction and operand cache management | |
JPH07234819A (en) | Cache memory | |
JP2511146B2 (en) | Data processing device | |
JPS5922977B2 (en) | Page memory recall method using input/output device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WAP | Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1) |