CA1077593A - Multiprocessor system with computer poller and memory poller - Google Patents

Multiprocessor system with computer poller and memory poller

Info

Publication number
CA1077593A
CA1077593A CA257,540A CA257540A CA1077593A CA 1077593 A CA1077593 A CA 1077593A CA 257540 A CA257540 A CA 257540A CA 1077593 A CA1077593 A CA 1077593A
Authority
CA
Canada
Prior art keywords
computer
memory
computers
polled
polling
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.)
Expired
Application number
CA257,540A
Other languages
French (fr)
Inventor
Geoffrey Probert Jr.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
Western Electric Co Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Western Electric Co Inc filed Critical Western Electric Co Inc
Application granted granted Critical
Publication of CA1077593A publication Critical patent/CA1077593A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Exchange Systems With Centralized Control (AREA)

Abstract

MULTIPROCESSOR SYSTEM WITH COMPUTER
POLLER AND MEMORY POLLER
Abstract of the Disclosure A multiprocessor system having a computer poller and a memory poller for controlling information transfer over a time multiplex bus between a plurality of computers and an interleaved memory comprising a plurality of sections.
Each poller comprises a counter and a clock so that as the counter is incremented by the clock, each computer or memory section, respectively, is sequentially interrogated to determined whether or not it requires access to a memory or computer, respectively.

Description

~L~'5~3 Probert - l 1 Back round o~ the Inventio~
g _ _ _
2 Field o~ the Invention
3 This invention relates to a multiprocessor
4 system, and~ in particular, to a time multiplexed ' 5 multiprocessing system having equipment, ~ polling 6 computer and memory requests.
7 Description o~- the Prior Art 8 Generally in multiprocessor systems, a plurality 9 o~ computers must compete with each other ~or access to a main memory since the maln memory can generally ll service only one computer at a g:lven time. One 12 techn:lque to mlnlmlze the problem o~ such slmu:Ltaneous 13 access ~s to physlcally construct the rna:ln memory lL, with a number o,;~ separate, independent, and relatively small memory sections. A centralized switch is 16 then provided that can connect any memory section to any 17 computer in accordance with the memory section access 18 needs o~ the computer.
19 To create the illusion o~ a single memory, address interleaving places each sequential address in a 21 d-lf~erent memory section. ~lth each rnemory sectlon operating 22 independently, inter~erence is greatly reduced between the 23 computers accessing the memory. It can be readily seen that 24 the more memory sections provided, the greater the probability that a bidding computer will obtain access ~J~, S~3 to a particular memory section. Address interleaving and the provision of a plurality of memory sections is utilized in part in the present invention.
Various approaches and technIques have been used to interconnect interleaved memory sections with the computers. Some prior art approaches utilize a space division switching arrangement wherein sufficient hard-wire interconnections are provided to provide access between each computer and each memory section.
In such arrangements, complicated control circuitry, perhaps including the provision of a controlling computer, is necessary to control -the space division switchlncJ. The ma~or advantage of space division switching is that many computers may simultaneously utilize different memory sections thereby reducing interference between the computers. However, the space division switching may be extremely expensive and the cost to provide such a network increases rapidly with the number of computers and/or memory sec-tions.
Other prior art approaches utilize a time multiplexed bus to interconnect the computers with the memory sections. Such an approach is low cost and the cost increases negligibly as the number of computers and memory sections are increased. In such an arrangement, interface logic having decoders must be provided for each computer and for each memory section. A major problem with time multiplex arrange-ments is that the system throughput becomes limited by the bus capacity as processors are added.
In time multiplexed multiprocessor systems, the control of data flow from the computers to the ~75g3 Probert - 1 1 memory sections~ and vice versa, also requires complex control 2 circuitry. This is especially true, when several processors 3 request simultaneous access to the same memory section. ~arious 4 prior art tie breaking and arbitration arrangements have been proposed ~o allocate such computer access.
6 Although prior art arrangements for arbitrating com-7 puter requests o~erate satisfactorily, the cost of such approach-8 es~ in both hardware and software, as well as subsequent main-9 tenance costs is expensive especially when additional computers and memory sections are added to the multiprocessor system.
11 Brief' Summary of the Invention 12 It is, therefore, an obJect of' the present lnvention 13 ~,o provlde an :Lmproved arrangement E'or provid:lng co-,nputer ~l~ acce~ l;o an lnterleaved memory :ln a mult.lproces~:lng system.
It is a f'urther obJect to provide a multiprocessing 16 system polling circuit having a minimum of cost and complexity.
17 Summary Description 18 Prior art multiprocessor system utilizing a time 19 multiplex bus interco~necting a plurality of compukers with a plurality of memory sections provide access control comprising 21 complicated control circuitry and generally include the re-22 quirement of an additional computer dedicated to controlling 23 access over a time division network. This invention provides 2L~ a polling arrangement f'or controlling processor requests to the memory sections in order to minimize cost and to provide 26 flexibility f'or low cost module growth.
27 This invention is disclosed as embodied in a multiprocessing system using identical microprogramed processors having access over a time multiplex bus to a plurality of identical memory sections.
In accordance with an embodiment of this invention, there is provided a computer polling circuit and a separate memory polling circuit for controlling, respectively, the computer access to the memory sections and the memory section access to the computers. Each poller comprises a binary counter and a clock for incrementing the counter. As the binary counter, for example, in the computer poller is incremented, each computer is sequentially interrogated to determine whether or not it requires access to a memory section. If a memory request is detected, the counter then provldes additional timing pulses and the requesting computer is given access to the re~uested memory section over the time multiplexed bus. The memory poller operates in a similar fashion.
In accordance with one aspect of the invention there is provided a multiprocessing system comprising: a plurality of computers, a plurality of memory sections, a time multiplexed bus system interconnecting said computers with said memory sections, computer polling means for repetitively and sequentially polling said computers to determine whether any one of said polled computers currently requires access to any one of said memory sections, computer gating means responsive to a determination that a polled computer currently requires said access for connecting said polled computer over said bus system to said one memory section for a time interval controlled by said computer polling means, means in said ~ ' .

", ,!

~07~75~3 polled computer for transmitting service request information to said one memory section over said bus system during said time interval, memory polling means for repetitively and sequentially polling saicl memory sections to determine whether any one of said polled memory sections currently requires access to any one of said computers, said memory polling means being asynchronously operated with respect to said computer polling means, memory gating means responsive to a determination that a polled memory section currently requires access to one of said computers for connecting said polled memory section over said bus system to said one computer for a time interval controlled by said memory polling means, and means for transmitting informat.ion over said bus system between sa1d polled memory section and said one com;puter during said last named time interval.
In accordance with another aspect of the invention there i5 provided a method of operating a multiprocessor system in which a plurality of computers exchange information with a plurality of memory sections over a time multiplexed bus system having a plurality of buses, said method comprising the steps o~: registering a service request in each computer that requires access to a first set of said buses for the transmission of information to one of said memory sections, repetitively and sequentially polling each of said computers for service requests one at a time, applying service request information including a memory section identity code from a polled computer to said first set of buses whenever the polled computer contains a registered service req~est, said service request information further including the ~7 ~

~77593 identity code of said polled computer as well as a read request signal and memory section address information specifying the memory location to be read, registering in said one memory section said service request information on said first set of buses except for the memory section identity code, repetitively and sequentially polling the memory sections asynchronously with respect to said computers, applying the identity code of one of said computers to a second set of said buses upon the pollin9 r of a memory section having registered service request inormation priorly received from said one computer, reading out information stored in said specified location of said polled memory section, applying said read out ~nEorm~tion to ~aid second set of buses, and regis~rlnc~
in said one computer the information read out of said specified memory location and applied to said seconcl set of buses from said polled memory section.
Features A feature of the present invention is the provision of an improved polling and timing facility for a computer requesting access to any one of a plurality of memory sections over a time multiplex bus in a multiprocessor system.
Another feature is the provision of facilities in a currently polled computer for transmitting information, including a READ or WRITE request, to a memory section specified by the polled computer.
Another feature is the provision of an improved polling and timing arrangement for a memory section re~uesting access to any one of a plurality of computers over a time multiplexed bus in a multiprocessing system.
Another feature is the provision of facilities - 4b -., ~....:

~775~3 Probert - 1 1 in a polled memory section for transmitting information to a ~ 2 specified computer in response to a READ or WRITE request 3 priorly received from the specified computer.
4 A further feature is the provision of facilities including a first timing arrangement controlled by a clock 6 and a binary counter ko allow access by a requesting computer 7 to any one of a plurality of memory sections over a time 8 multiplexed bus and a second timing arrangement comprising 9 a clock and second counter for providing access to a requesking memory section over a time multiplexed bus to any one of a 11 plurality of computers.
12 ra~ing :l3 'rhese and other obJects and features o:E' th~ lnven~
~ tion wlll become more apparent upon a reading of' the f'ollowlng description thereof taking in conjunction with the drawing in 16 which:
17 FIG. 1 discloses a multiprocessing system configured 18 in accordance with one illustrative embodiment of the invention:
19 FIG. 2 illustrates the interface logic comprising one o~ the plurality o~ computers as lllustrated in ~IG. l;
21 ~:CG. 3 dlscloses the logic lnter~ace compr-.l.slng 22 one plurality of memory sectlons of found in FIG. l;
23 FIG. 4 illustrates the timing sequence necessary 24 for activating the interface logic of FIG. 2; and FIG. 5 discloses the timing sequence necessary 26 for activating the interface logic control of FIG. 3.

~ ~ ~ Probert - 1 1 3~
2 FIG, 1 is a block diagram depicting a multiprocessor ~ 3 system having a plurality o~ computer modules 10, a plurality 4 of memory sections 20, and a timing control 30
5 In an e~fort to simpli~y the description as much
6 as possible consistent with the ~ull disclosure of this
7 invention, only three computer modules C0, Cl, Ci are
8 illustrated. Moreover, only three memory sections M0, Ml,
9 Mj are shown. However, in an actual multiprocessor system,
10 a greater number o~ such computers and memories could be
11 utll:Læed. For example, a typical mu:lt;:~processor system o~
~2 the preserlt :Lnventlon may compr:lse slxteen computer modu:les 13 ~0 and sixteen memory sectlons 20.
14 The operation o~ the depicted multiprocessor system fæq~ n ,~ 15 shown in FIG. 1 is described only to the extend~t~t a ~u~l 16 understanding o~ the invention ~s~ ~Rr~b~S~
17 As is well known in multiprocessor art, any computer 18 module 10 should be able to gain access to any memory section 19 20 providecl that the requested memory section is nok currently ~ being accessed by another cornputer moclule. I.Lkewlse, any 21 memory section 20 should be able to have access to any computer 22 module 10 in order to provide the requesting computer Probert - 1 1 data ~rom that memory section. me invention, there~ore, 2 provides access over the time multiplex memor~ bus 12 3 ~rom an~ computer module 10 to any memory section 20.
4 In a similar ~ashion, any memory section 20 ma~ access any computer module 10 over the time multiplex computer 6 bus 16. The memory bus 12 and the computer bus 16 7 permit the trans~er of in~ormation ~or identi~ying the 8 requested c~mputer module or memory section, the address 9 o~ the data within the requested memor~ section, and miscellaneous control commands. ~t~ is then exchanged 11 be~ween the computer modules 10 and the memory sections
12 20 over a time multiplex data bus 14.
13 The invention utilizes identical computers 10
14 and identical memory sections 20.
The use o~ time multiplex buses 12, 14, and 16 16 to interconnect the computer modules 10 with the 17 memory sections 20 is also conventional. When time 18 mul~iplexed buses are used in a multiprocessor system, 19 the identities o~ each computer module 10 and o~ each memory section 20 must be generated. In one embodiment 21 of the invention wherein si~teen computer modules lQ
22 and sixteen memory sections 20 are usedl the identity ~
23 o~ each computer module or of each memory section can be ~-24 uniquely identi~ied by separate groupings of ~our binary digits. m erefore, memory bus 12 and computer bus 16 26 must make provision ~or ~7759~ i delivery of the identity of the memory sections and the computer modules. The identity of the mernory section to be accessed is delivered over the MR leads of memory bus 12. Each memory section 20 has associated with it a decoder which constantly analyzes the data appearing on the MR leads of bus 12. When a requested memory section detects its code on the MR leads, it then handles the computer request. In so doing, the requested memory section 20 obtains access to a requesting computer module by applying the computer module's identity code to leacls CR of computer bus 16. Each computer module 10 also has a decoder associated with it to constantly analyze the information appearing on leads CR in order to detect its identity code. The foregoing use of identity codes for each computer mod~lle 10 and memory section 20 and the use of related decoders associated with each computer module 10 and each memory section 20 is conventional.
Other information must also be delivered to a memory section 20 when a computer module requests access to the memory section. The identity of the computer module requesting access is delivered to the requested memary section over leads CRM. This computer identity data is necessary, when, at a later time, the requested memory section delivers the data read from the appropriate address location of its memory to the requesting camputer module. The identity of the requesting computer module applied to the requested memory section over leads CRM is subsequently applied over leads CR of bus 16 so that the requesting computer module will recognize its own identity code in order to receive data from the requested memory section over data bus 14.

,.,~ ,~,i . .. . . . ..

1a~77593 When a requesting computer module desires to read information from a memory section, not only must it send ' the identity of the memory section over leads MR and deliver its own identity over leads CRM, the requesting computer module must also deliver the address of the data within the memory section over leads AD. It also indicates whether that address on leads AD is to be used for reading data from that location or for writing data into that location by applying the appropriate signal to the READ/WRITE lead RW. The RD and LFC* leads are used for signaling as will be more fully discussed hereinafter.
If the signal on ~EAD/WRITE lead RW specifies a WRITE
operation, the requested memory section recieves the data to be written into the specified address location over data bus 14. For this operation, the requesting computer module receives its own identity code from the memory section on leads CR and an indication on the LDRC lead from the memory section that the memory section is ready to receive the data to be written from the computer. The requesting computer module then transmits the data to be written into the specified address location over the data bus to the memory section.
The present invention utilLzes the concept of address interleaving in order to create the illusion that the plurality of computer modules 10 are addressing a single main memory rather than a plurality of separate and discrete memory sections. This concept is conventional.

77~;93 Consider that computer module Ci is interacting with a periphery, not shown, to process information signals. The program which computer module Ci must follow resides in the plurality of memory sections 20 wherein each memory section contains different segments of the program. For example, if the program is comprised of only sixteen words, each memory section would contain, in a typical system of sixteen memory sections, one program word. Therefore, as computer Ci processes its way down the program list, the first program word may reside in memory section M0, while the sixteenth program word may reside in memory section ~15.
The timing control 30, in a manner to be subse~u~ntly described in detail, controls the inter-action of computer modules 10 with memory sections 20.
The timing control 30 contains two separate and asynchronous clocks 22 and 28 each pulsing a polling counter 26 and 32, respectively. The CL clock 22 generates binary pulses over lead CLl to access the computer poller 26. Computer poller 26 in the present embodiment is a ~-bit binary counter which is continually incremented by the clock 22 over lead CI,1. The size of the counter is dependent on the number of computer modules, e.g. a -three-bit counter could service a maximum of eight computer modules. The outputs of compu-ter poller 26 generate the aforementioned computer module identity code which is delivered to the memory sections 20 over leads CRM. This identity code is also delivered over leads CRM to each of the computer modules 10.
As computer poller 26 is incremen-ted from a value of binary 0 to a value of binary 15, each of the computer modules 10 is interrogated in sequence, in a manner to be subsequently described, to determine whether an interrogated module desires access to any memory section. If that computer module does desire access to a memory section at that time then that computer module is given access over memory bus 12 to a requested memory section.
In a similar manner, the ML clock 28 applies binary timing pulses over lead MLl to a 4-bit binary memory poller 32. The memory poller 32 interrogates the status of each of the memory sections 20 to determine whether any section requires access to a requesting computer module.
If a memory seation requires such access, access is provided over bus 16 to the requesting computer. It is evident that CL clock 22 and ML clock 28 operate independently of each other and that it is possible for a memory section to be accessing a computer module during the same time interval another computer module is accessing another memory section.
It is apparent that the invention enables a plurality of computer modules 10 to access a plurality of memory sections 20 while at the same time allowing the plurality of memory sections 20 independent access to the plurality of computer modules 10 under supervision of a timing control 30 comprising a minimum of hardware.
Detailed Description FIG. 2 shows the detail of a computer module, such as module Ci, which comprises computer 100 and its J
;. ~,..~, associated interface logic.
With reference to FIG. 1, the interface logic of computer module Ci must perform control functions for what may be said to be three basic system interactions.
The first interaction concerns the recognition of a computer request and involves the interface between computer module Ci and timing control 30 over leads SCY* and C~l. The second and third interactions occur between computer module Ci and a requested memory section when data is either being read from or being written into that memory section. The latter two interactions re~uire inormation -transmittal over leads MR, AD, RW, D~'rA, RD, CR, and LDRC. Each of these interactions is discussed in the following paragraph.
The first interaction between timing control ~0 and computer module Ci occurs when the computer poller 26 interrogates each computer module lO to determine whether any module requires access to any memory section 20. When poller 26 contains the identity or code of computer module Ci, the comparator 50 on FIG. 2 outputs a high signal on lead 52 to partially enable gates 54 and 56.
Each comparator is nardwired with the code of the computer module of which it is a part. Thus, with reference to FIG. 2, when comparator 50 receives its . ~

~77~3 own code from the computer poller 26 over leads CRM, a comparison is detected by means of its internal hard-wiring, and this comparison results in an output signal being applied to conductor 52. The response of the circuitry on FIG. 2 to this output from the comparator on lead 52 depends upon the current state of the FIG.
2 circuitry and, in particular, depends upon whether or not the computer 100 has requested access to a memory module. The alternative circuit actions that may occur at this time in response to the comparator output pulse are described in detail in the following paragraphs.
FIG. 4 illustrakes the time wise re1ationship between the CLl, CL2, and CL3 outputs oE the clock 22 ancl the output oE a computer module comparator S0 at the time the comparator detects the receipt of its own identity code from computer poller 26. With reference to FIGS. 1, 2, and 4, -the leading edge of the CLl pulse advances the computer poller 26 one position. Let it be assumed that the position of the poller 26 a-t this time specifies and applies to leads CRM, -the identity of the computer module Ci shown on FIG. 2. This being the case, the comparator 50 generates an output pulse that is essentially coincident with the leading edge of the CLl pulse. This comparator output pulse is shown on FIG. 4 and it persists until the occurrence of the leading edge of the next CLl pulse, at which time the computer poller is advanced to ano-ther position to specify another computer module.
The CL2 and CL3 pulses occur in sequence following the CLl pulse. The time duration of a single sequence of these three pulses may vary depending upon ~7'75g3 whether or not the addressed computer module is at that time requesting access to a memory module. As shown on FIG. 4, for the first sequence of these three CL- pulses, a single sequence and -the output of the comparator 50 has a duration of 1,000 nanoseconds if the addressed computer module is requesting access to a memory module. A sequence of this duration is termed a long cycle as shown on FIG. 4. A sequence of three CL- pulses spans only 400 nanoseconds and is termed a short cycle if the addressed computer module is not at that time requesting access to a memory module. A
short cycle sequence is shown for the last sequence oE
CL- pulses on FXG. 4.
~ s is subsequently descr:Lbed in detall, the response of gate 56 to the comparator ou-tput signal on lead 52 determines whether or not the compu-ter poller 26 enters a long cycle or a short cycle. Flip-flop FF3 62 is in a reset state whenever the computer module is not requesting service. At that time, ou-tpu-t lead 66 is high extending into the lower input of gate 56, and the reception of a comparator output signal on -the upper input oE gate 56 turns the gate on and drives its outpu-t low which extends over lead SCY* back to the CL clock 22. This SCY* sighal indica-tes to the CL
clock that the addressed computer module is not currently requesting service. The CL clock -then generates a short cycle sequence of 400 nanoseconds.
Alternatively, flip-flop FF3 is in a preset state and conductor 66 is low whenever the computer module is requesting service. In this case, gate 56 does not turn on in response to -the reception of a 775~3 comparator output pulse and lead SCY* remains high.
This causes the CL clock 22 to generate a long cycle of output pulses as shown for the first cycle on FIG. 4.
Each computer element 100, such as element 100 on FIG. 2 for computer module Ci, operates independently of timing control 30 on FIG. 1 to perform its work function and to generate requests for access to a memory module. Requests for access to a memory module are for the purpose of either writing information supplied by the computer into the specified memory module or alternatively, for receiving information from the specified module for use by the computer.
~n perEorming lts various functions including the reeluest Eor acc~ss to a speciEied memory module, the computer generates the timing pulses shown on the bottom of elemen-t 100 on FIG. 2 with the pulses being generated in the order extending from left to right.
Specifically, the pulses are generated in order of Tl, T2, WAIT, and T3. As is subsequently described in detail, the Tl pulse gates the hiyher order 8-bits from bus 102 into register Rl, the T2 pulse gates the lower order 8-bits from this bus into register R2 11~.
The T2 pulse is also applied to the upper input of AND
gate 80 to partially enable it. If at this time, the computer 100 requires access to a memory section 20, a high signal appears on lead 82 to enable gate 80 and turn i-t on. The turn on of gate 80 sets the flip-flop FF2 7~ over lead 76. The setting of this flip-flop delivers a high signal over lead 72 to partially enable gate 70 so that a subsequent CL3 clock pulse from the timing control 30 will turn on gate 70 and preset flip-flop FF3 over lead 68. The presetting of this flip-flop drives lead 66 low and lead 64 hic3h. The high on lead 64 clears flip-flop FF2 and partially enables gate 54. The low c~n lead 66 holds gate 56 in a disabled state.
In partial summary of the foregoing, the preset state of flip-flop FF3 indicates that the eomputer 100 is currently requesting access to a memory module; alternatively, the normal state of fl.ip-flop FF3 indicates that the eomputer module .is not eurrently requestin~3 aeeess of the memory. The s~t state o.E the ~Lip-flop partially enables AND c3ate 54 so that it ean respond to a eompcl.rator output pulse on lead 52. The normal state of flip-flop FF3 partially enables AND gate 56 so that it responds to a comparator output pulse on lead 52 when eomputer module Ci is addressed by the eomputer poller 26.
Let it first be assumed that module Ci does not eurrently recluire aeeesss to a memory when it is addressed by eomputer poller 26. This being the case, flip-flop FF3 is in a normal state and gate 56 is partially enabled by the high on conductor 66. The comparator 50 deteets its identity code on leads CRM at this time and applies a high over conductor 52 to the upper inpu-t of gate 56. This turns the gate on and applies a low to lead SCY* which extends to the CL clock 22 on FIG. 1. This low causes the CL clock to enter its SHORT CYCLE mode and thereby shorten the clock pulses on leads CL2 and CL3 as shown on FIG. 4. This rapidly increments the Cl clock 22 -to the code of the ~ 16 -~077~93 - next computer module 10 so that it can be interrogated in the same manner as module Ci on FIG. 2.
It is known to provide clocks with both long and short cycle capabilities.
The interaction between timing control 30 and the computer modules 10 requires only five leads in the present embodiment: four leads are required for transmittal of, the computer identity code on leads CRM
and one lead is required for the retur~ of the SHORT
10 CYCLE signal on SCY*. Lead SCY* is normally held high so that the output of gate 56, which is wire-ORed with similar outputs from the remaining computer modules 10, goes low upon khe occurrence of a "no memory recluest"
slcJnal on lead 66 and detection of the module's identity on lead 52.
Let it next be assumed that computer 100 has loaded registers Rl and R2 and is in a WAIT state. It therefore requires access to memory section when it is addres-sed by computer poller 26. Flip-flop FF3 is currently in a preset state, as previously discussed, so that gate 54 is partially enabled by lead 64 and cJate 56 is disabled by lead 66. Gate 56 therefore maintains lead SC~* high when the comparator output signal is received over lead 52.
This causes the CL clock to provide LONG CYCLE timing pulses on leads CL2 and CL3 when it applies the code of module Ci to path CRM.
Also, since flip-flop FF3 is currently in a preset state, gate 54 is partially enabled by the high on lead 64 so that upon t~e appearance of the identity code of module Ci on leads CRM, gate 54 is fully enabled and applies a high signal to lead 60. This signal on lead 60 partially enables gates 112, ~C3775~3 118, and 122. The output of these gates, as will be discussed in the following, applies the identity code of the requested memory section to leads MR, the address of the data within that memory section to leads AD, ancl a signal to lead RW indicating whether the current memory request is a READ or a WRITE request. This information is applied to bus 12. The subsequent appearance of the CL2 timing control pulse from CL clock 22 at the input of gate 111 on FIG. 2, gates a signal to the memory section on lead LFC*. The timing sequence of CL2 is shown in FIG.
4. The output 52 of comparator 50 also accesses the clock input of flip-flop FF3; this causes flip-flop FF3 to be cleared on the lagging edge of the output o comparcltor 50 shown ~n FIG. ~.
In partial summary and in accordance with the invention, each of the computer modules 10 can be quickly interrogated to determine whether or not one requires access to any memory section 20. If a computer module 10 does require access to one of the memory sections 20, then that computer module is provided with a sequence of LONG
CYCLE CL clock pulses to enable that computer module access to the requested memory section over the time multiplex bus 12. It is evident that this access ls a dedicated access and that no other computer module 10 may gain access to the memory section during that time. At such times, the polled computer transmits a memory read or write request to a specified memory section. The computer then goes into and remains in its WAIT state until its memory request is honored.
The second and third interactions that the interface logic performs occur only when a requesting computer 100 '~ ,?
i,, ~" .

~77593 subsequently obtains access to one of the memory sections 20 for a READ or WRITE operation in response to the earlier generation of a request by the computer. The READ
interaction or operation will be discussed first and it involves a two step process which relies on the internal timing steps or signals Tl, T2, WAIT, and T3 of computer 100 .
Prior to the presetting of flip-flop FF3 to generate a memory request that has already been described, computer 100 loaded register R1 with data is applied to bus 102 (which is an 8-bit parallel bus). This was done by activating the gate-in lead 109 of Rl during the Tl state. During the T2 state, re~ister R2 received informatLon from data bus 102 in a similar manner.
Register ~1 received the identity code of the requested memory section in its higher four bits. This was applied to gates 118. The lower four bits of Rl were delivered to gates 112 and combined with the six most significant bits of register R2 to comprise the address of the desired data within the memory section. One bit in register R2 was applied to gate 122 and signifies whether the memory request is by the computer a READ or a WRITE.
Thus, during the Tl and T2 earlier described timing states, registers Rl and R2 were loaded with data for delivery over leads 110 and 116 respectively and into gates 112, 118, and 122. This information was transmitted to and stored in a specified memory section where it represents a read or write request by the computer to the memory. Registers Rl and R2 are conventional 8-bit binary registers.

,,.~,,,~

. . , The computer 100 carrently is in a WAIT state waiting for its request to be served by the memory. In a manner to be subsequently discussed, the requested memory section 20 received its identity code over the MR leads, received the address of the data word over the AD leads, received a signal indicating whether or not the interaction is a READ
or WRITE over the R~ lead, and received the identity of the processor making the request over the CRM leads.
When the computer's read request is honored by the memory and data is delivered by the requested memory section to the requesting computer module 10, the iclentity of the requesting computer Ci is placed on the CR l~ads o~
bu~ 16 by the memory and is sent to comparator 90 which ls similar to comparator 50 and which generates a high on lead 92 when its identity code is detected. A high on lead 92 partially enables gate 98. Gate 9~ is then activated by a high signal on lead LDRC from the requested memory section and a high input on READ/WRITE lead 120. A
high on lead 120 indicates that a READ interaction is occurring while a low indicates that a WRITE interaction is occurring. Gate 98 then outputs a high signal on lead 99 which extends through the OR gate 154 to the gate-in lead 156 of register R3.
The binary state of lead 120 from register R2 also controls the multiplexer 160. A READ indication on lead 120 (i.e., a high level) causes the multiplexer 160 to receive the data from the DATA bus 14 and enter it into register R3 158. A WRITE indication ~i.e., a low level) on lead 120 causes the multiplexer 160 to receive data from bus 102. Therefore, in my present example, the state of lead 120 is high, the multiplexer 160 re~eives the clata . . .

~7'75~3 from bus DATA and extends it over path 162 to register R3.
In summary, the requested memory section provides an indication on lead LDRC that is ready to transmit data over the DATA bus 14, and it further applies the identity code of computer module Ci to path CR. The high signal on lead LDRC enables gate 98 and loads register R3 with the data on bus 14 via multiplexer 160.
The output 92 of comparator 90 also partially enables gate 87 which receives the high LDRC signal and sets flip-flop RFF 84. Flip-flop RFF set indicates that the requested memory information has been gated into reyister R3 so that computer 100 can leave the WAIT timing state and enter the T3 timing state. This permits the data to be gated from register R3, through gate 10~, and int:o computer 100. This completes the READ interaction between computer module Ci and a memory section 20.
The last interaction performed by the interface logic of computer module Ci is the WRITE interaction. During the Tl and T2 timing states associated with the initial service request by the computer, registers Rl and R2 were loaded with the memory section identity code and the address data of the memory word to be read or written as well as a bit indicating whether the interaction is a READ
or a WRITE. The computer then remains in its WAIT state until its request for a WRITE operation is honored.
Subsequently, when the addressed memory section 20 is ready to receive the data to be written into it, the memory section transmits the identity code of the requesting computer module Ci over the CR leads and into comparator 90 whereupon lead 92 becomes high. The memory section then applies a high signal to lead LDRC which 1~77593 combined with the high on lead 92 causes flip-flop RFF to be set.
With flip-flop RFF set, computer 100 leaves the WAIT
timing state and enters timing state T3. The timing state T3 signal and the WRITE signal on lead 120 together activate gate 150 which generates a high signal on lead 152 to cause the data appearing on bus 162 to be gated into register R3. This information is received from bus 102 via multiplexer 160.
While computer 100 is still in state T3, flip-flop FF4, element 130, is set which over path 132 allows gate 134 to be subsequently enabled by an ML3 signal. The ML
clock 28 shown in FIG. 1, now controls the transmitt:al of data from register ~3 over path 106 and through gates l66 to the requested memory section. Upon the appearance of timing pulse ML3, (shown in FIG. 5) gate 134 generates a high condition on lead 136 to preset flip-flop FF5 140.
With flip-flop FF5 preset, a high signal appears on lead 142. The concurrent appearance of the computer module's identity on leads CR and the LDRC signal on path 16 from the memory causes gate 94 to be enabled and flip-flop FF4 to be cleared by gate 97 in order to reinitialize FF4 for the next WRITE interaction. The high signal on lead 142 also partially enables gates 164 and 166. The information to be written is now gated from computer module Ci into the requested memory section over leads DATA, since gates 166 and 164 were previously partially enabled by the high output on lead 96 of gate 94. A ready signal is also transmitted to the memory from gate 164 over lead RD.
Computer 100 now leaves the T3 timing state and continues normal data processing.

r ~77~;93 A typical memory section Mj is shown in FIG. 3 as comprising a memory 200 into which any computer module 10 may READ or WRITE data and a FIFO memory 190 which stores computer module requests. The interface logic shown can perform three different interactions. The first interaction occurs between the computer modules 10 and the memory section Mj when oné or more computer modules request access to the same memory section. These requests are stored in the FIFO memory 190 and are served on a first-in first-out basis. The second interaction occurs when data is being read from memory 200; the third interaction occurs when data is being written into rnemory 200. Each interaction will now be discussed ln detail.
In FIG. 1, when a computer module lO is allowed access to a memory section 20 by the timing control 30, the identity of the requested memory section is delivered over the MR leads of bus 12, the address of the location in the memory that is to be read or written into is delivered over the AD leads of bus 12, and an indication of whether data is to be read or written into the requested memory section is delivered over the RW lead of bus 12.

~i377593 In addition, the identity of the requesting computer is delivered over the CRM leads of bus 12.
On FIG. 3, when memory section Mj receives its identity code on leads MR, comparator 180 applies a high output to lead 182 to apply the identity of the requesting computer on leads CRM through gates 184 to the inputs of the FIFO memory 190. In a similar manner, the address appearing on leads AD is applied through gates 186 to the FIFO mernory 190, and the READ/WRITE information is delivered from lead RW through gate 188 to the FIFO memory 190. The subsequent appearance of a signal on lead LFC*, as previously d:Lscussed, causes the E':tFO to load thc above :Lnformation. The E':~FO memory 190 compr:ises two conventional 32 word by 8-bit memory paralleled elements.
The nature of the data stored within FIFO 190 is shown as indicated wherein bits 0 through 9 occupy the address AD, bit 10 is not used, bit 11 is the READ/WRITE bit RW and bits 12 through 15 are the computer identity bits CR.
FIFO 190, in the present embodiment, requires enough storage space to store requesting information Erom each of the computer modules 10. There.Eore, if there are slxteen computer modules, then there would be sixteen storage locatiohs in FIFO 190. It is evident that if all sixteen computer modules 10 concurrently require access to memory section Mj, then each of their requests would be stacked in the order of receipt by the FIFO 190. In such a case, as shown in FIG. 1, when the CL clock 22 1C~77S~3 advances the computer poller 26, the reqest from each computer section 10 would be sequentialLy loaded into the FIFO 190.
It is to be noted that the loading of FIFO 190 occurs independently of the remaining interactions in memory section M; and is wholly dependent upon the timing from the CL clock 22 in timing control 30.
The remaining interface logic for FIG. 3 is concerned only with the next computer request that is to be served. This is the computer request 191 occupying the bottom of the stack of FIFO 190. As shown in FIG. 3, the identlty o~ the computer module CR making the memory request is applied over leads 196 through gates 198 and over the CR leads of bus 16 back to the requestiny computer module when gates 198 are subsequently enabled by lead 242. The address AD of the information in the memory is directly delivered over leads 192 to the ADDRESS input of memory 200. The READ/WRITE bit RW is delivered to a variety of places which will be more thorauyhly discussed in -the followlng.
During a memory READ operation (.i.e., when RW is high), OR-ga-te 210 extends the high on lead 19~ over lead 211 to the START input of memory 200. Memory 200 comprises a conventional memory.
Upon completion of the memory READ operation under control of the address information appearing on leads 192, a DONE signal is applied over lead 201 -to gate 236. The DONE
signal in combination with a high from the READ/WRITE bit RW on lead 19~ and -the recognition ~97~75~3 by the memory section Mj of the receipt of its identity code on path MRC by comparator 202 (i.e., a high on lead 204), causes gate 236 to place a high on lead 237.
Therefore, when the ML clock 28 of FIG. 1 generates a timing pulse over lead MLl to increment the memory poller 32 to the identity code for memory section Mj, the high output of comparator 202 enables gate 236 to deliver a high output over lead 237 through OR-gate 240 and over lead 242 -to apply the identity code CR of the compu-ter module that made the READ request through gates 198 and over the CR leads of bus 16. In addition, -the high output of gate 236 i9 Eurther delivered over lead 237 to gate 222 to enable th~ cle~livery Oe the data read from the memory over leads 220 through gate 222 and over the DAT~ bus 14.
And finally, the enabling of gate 236 also causes gate 224 to be partially enabled which, when later strobed by the ML2 timing pulse from the ML clock 28, delivers a high signal from gate 224 over lead 230, through OR-gate 232, and over the LDRC lead to the requesting computer. The timing sequence oE the ML clock 28 pulses are illustrated in FIG. 5. The receipt of -th~
CR, the LDRC, and DAT~ information on bus 16 by the requesting computer module for a READ interaction was previously analyzed in the above discussion for computer module Ci.
It is -to be understood that memory poller 32 in FIG. 1 delivers the necessary timing signals via comparator 202 to allow memory sec-tion Mj a dedicated access over bus 16 to the requesting computer and ~77593 that, during this time interval, no other memory section 20 has access -to any computer over bus 16.
The interface logic just described performs the reading function and then it waits for its turn on the time division bus 16 as specified by the appearance of its identity code in comparator 202.
As soon as the data read from memory 200 is delivered to the computer, the next item in FIFO
memory 190, in a conventional manner, is delivered to memory position 191. If the next request is a WRITE
interaction, then information must be gated from the requesting computer module and into the interface logic of memory sect.ion Mj before any further act:Lon by the lnterEace logic can be c1One. Thercfore, when the RW bit is low (i.e., .indicating a WRITE interaction) a low appears on l~ad 194 and it is extended to the inversion inputs of gates 226 and 234. Upon the next receipt of the memory section Mj identity code by .
comparator 202, a high is generated on lead 204 which is delivered to gate 234 and which in combination with the low on lead 194 delivers a high over lead 238 through OR-gate 240 to enable gates 198 to transmit the identi-ty code CR of the requesting computer module from leads 196 over the CR leads of bus 16. Upon the appearance of the ML2 timing pulse from ML clock 28, gate 226 is activated to transmit a high over lead 228 through OR-gate 232 and over the LDRC lead of bus 16.
As previously mentioned in the discussion of FIC,. 2, when the interface logic of computer module Ci is processing a WRITE command, computer 100 is ~7~5~3 wa~ting for the return o a signal on lead LDRC.
When a hiyh i5 received on the LDRC lead of FIG. 2 and comparator 90 detects the identity code CR of the computer module, gate 87 becomes enabled to deliver a high over lead 89 to set theRRF flip-flop 84 and to bring the computer 100 out of the WAIT timing state.
In addition, gate 94 is enabled by the high on lead 92, the high on lead LDRC and the low appearing on the READ/WRITE lead 120. Gate 94 enabled causes gates 164 and 166 to deliver the ready signal on lead RD and the data to be written into the memory section Mj over leads DATA.
Referring now to FIG. 3, receipt of a high on ready lead RD enables gate 206 to provide a high over lead 208 which is delivered through OR-gate 210 over lead 211 to the START input of memory 200. At the same time, the data to be written is delivered from the computer module through the enabled gate 212 and over path 214 into register R4. Register R4 directly delivers the data over path 218 into the DATA IN input of memory 200. Therefore, the data appearing in register R4 is written into the memory location specified by the address AD on leads 192 upon the activation oE the START command appearing on lead 211.

Claims (27)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows:
1. A multiprocessing system comprising:
a plurality of computers, a plurality of memory sections, a time multiplexed bus system interconnecting said computers with said memory sections, computer polling means for repetitively and sequentially polling said computers to determine whether any one of said polled computers currently requires access to any one of said memory sections, computer gating means responsive to a determination that a polled computer currently requires said access for connecting said polled computer over said bus system to said one memory section for a time interval controlled by said computer polling means, means in said polled computer for transmitting service request information to said one memory section over said bus system during said time interval, memory polling means for repetitively and sequentially polling said memory sections to determine whether any one of said polled memory sections currently requires access to any one of said computers, said memory polling means being asynchronously operated with respect to said computer polling means, memory gating means responsive to a determination that a polled memory section currently requires access to one of said computers for connecting said polled memory section over said bus system to said one computer for a time interval controlled by said memory polling means, and means for transmitting information over said bus system between said polled memory section and said one computer during said last named time interval.
2. The system of claim 1 wherein said computer polling means comprises:
means for generating computer timing pulses, means responsive to the generation of said computer timing pulses for repetitively interrogating said computer sequentially one at a time, and means for enabling said computer gating means when an interrogated computer requires access to a memory section.
3. The system of claim 2 wherein said means for interrogating said computers comprises:
means responsive to said computer timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said computers, means for applying each generated code to all of said computers, and means in each of said computers responsive to the receipt of its identity code for activating its gating means.
4. The system of claim 3 wherein said memory polling means comprises:
means for generating memory timing pulses, means responsive to the generation of said memory timing pulses for repetitively interrogating said memory sections sequentially one at a time, and means for enabling said memory gating means when an interrogated memory section requires access to one of said computers.
5. The system of claim 4 wherein said means for interrogating said memory sections comprises:
means responsive to said memory timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said memory sections, means for applying each generated memory identity code to all of said memory sections, and means in each of said memory sections responsive to the receipt of its identity code for activating its gating means.
6. A multiprocessing system comprising:
a plurality of computers, a plurality of memory sections, a plurality of time multiplexed buses interconnecting said computers with said memory sections, computer polling means for repetitively and sequentially polling said computers to determine whether any one of said polled computers currently requires access to any one of said memory sections, computer gating means responsive to a determination that one of said polled computers currently requires access to one of said memory sections for gating service request information from said one computer onto a first set of said buses for transmission to said one memory section, said service request information including the identity codes of said one computer and said one memory section, means in said one memory section for storing said transmitted information except for said one memory section identity code, memory polling means for repetitively and sequentially polling said memory sections to determine whether any one of said polled memory sections currently requires access to any one of said computers, said memory polling means being asynchronously operated with respect to said computer polling means, memory gating means responsive to a determination that one of said memory sections currently requires access to one of said computers for gating information including said one computer identity code from said one memory section onto a second set of said buses for transmission to said one computer, and means effective upon the transmission of said identity code to said one computer for transmitting information over said second set of said buses between said one computer and said one memory section.
7. The system of claim 6 wherein said computer polling means comprises:
a means for generating computer timing pulses, means responsive to the generation of said computer timing pulses for repetitively interrogating said computers sequentially one at a time, and means for enabling said computer gating means when an interrogated computer requires access to one of said memory sections.
8. The system of claim 7 wherein said memory polling means comprises:
a means for generating memory timing pulses, means responsive to the generation of said memory timing pulses for repetitively interrogating said memory sections sequentially one at a time, and means for enabling said memory gating means when an interrogated memory section requires access to one of said computers.
9. The system of claim 8 wherein said means for interrogating said computers comprises:
means responsive to said computer timing pulses for repetitively generating a sequence of different identity codes each of which is unique to a different one of said computers, means for applying each generated code to all of said computers, and means in each of said computers responsive to the receipt of its identity code for activating its gating means.
10. The system of claim 9 wherein said means for interrogating said memory sections comprises:
means responsive to said memory timing pulses means for repetitively generating a sequence of different identity codes each of which is unique to a different one of said memory sections, means for applying each generated memory section identity code to all of said memory sections, and means in each of said memory sections responsive to the receipt of its identity code for activating its gating means.
11. A multiprocessing system comprising:
a plurality of computers, a plurality of memory sections, a time multiplexed bus system comprising a plurlity of buses interconnecting each of said computers with each of said memory sections, means for repetitively and sequentially polling said computers to determine whether any one of said polled computers currently requires access to one of said memory sections, means including gating means in each computer responsive to a determination that one of said polled computers currently requires access to one of said memory sections for connecting said one polled computer over a first set of said buses to said one memory section, means effective upon said connection for transmitting the identity code of said one memory section and service request information from said polled computer to said one memory section for storage therein, said service request information including the identity code of said one polled computer as well as a read or write request signal and memory address information, means for repetitively and sequentially polling said memory sections to determine whether any one of said polled memory sections currently requires access to one of said computers, said memory polling means and said computer polling means being asynchronously operated with respect to each other, means in each memory section including a memory gating means responsive to the polling of a memory section that currently requires access to one of said computers for connecting said polled memory section over a second set of said buses to said one computer, means responsive to said last named connection for transmitting the identity code of said one computer from said polled memory section to said one computer over said second set of buses, and means effective upon said last named connection of said polled named memory section for transmitting information over said second set of buses between said polled memory section and said one computer.
12. The system of claim 11 wherein said computer polling means comprises:
means for generating computer timing pulses, means responsive to the generation of said timing pulses for generating coded computer interrogation pulses, means for applying said interrogation pulses to said computers to repetitively interrogate said computers sequentially one at a time, and means for enabling said computer gating means for the duration of an interrogation pulse when an interrogated computer requires access to a memory section.
13. The system of claim 12 wherein said means for generating coded computer interrogation pulses comprises:
means responsive to said computer timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said computers, means for applying each generated code to all of said computers, means in each of said computers responsive to the receipt of its identity code for activating its gating means for the duration of the receipt of its coded interrogation pulse, means responsive to the interrogation of a computer that requires access to one of said memory sections for transmitting a service request signal to said computer polling means, and means responsive to said service request signal for increasing the time duration of the interrogation pulses applied to said interrogated computer.
14. The system of claim 13 wherein said memory polling means comprises:
means for generating memory timing pulses, means responsive to the generation of said memory timing pulses for generating coded memory interrogation pulses, means for applying said memory interrogation pulses to said memory sections for repetitively interrogating said memory sections sequentially one at a time, and means for enabling said memory gating means for the duration of an interrogation pulse.
15. The system of claim 14 wherein said means for generating memory interrogation pulses comprises:
means responsive to said memory timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said memory sections, means for applying each generated memory identity code to all of said memory sections, means in each of said memory sections responsive to the receipt of its identity code for activating its gating means for the duration of the receipt of its coded interrogation pulses, and means responsive to the interrogation of a memory section for transmitting information over said bus system to one of said computers.
16. In a multiprocessor system having a plurality of computers, a memory having interleaved sections, a plurality of time multiplexed buses interconnecting said computers with said memory sections, each of said buses being common to all of said computers and all of said memory sections, a first clock for generating computer timing pulses, means controlled by said computer timing pulses for repetitively and sequentially polling each of said computers one at a time to determine whether any one of said polled computers currently requires access to any one of said memory sections, computer gating means responsive to a determination that one of said computers requires access to one of said memory sections for gating service request information including the identity code of said one memory section to a first set of said buses, said service request information further including the identity code of said one polled computer as well as a read or write request signal and memory address information, means in said one memory section responsive to the appearance of its identity code on said first set of buses for registering the remainder of said service request information transmitted from said one polled computer, a second clock asynchronously operated from said first clock for generating memory timing pulses, means controlled by said memory timing pulses for repetitively and sequentially polling each of said memory sections one at a time, means responsive to the polling of a memory section having registered service request information from one of said computers for applying information including the identity code of said one computer to a second set of said buses, and means responsive to the appearance of said one computer identity code on said second set of buses for transmitting information between said one computer and said polled memory section.
17. The system of claim 16 in which said means for polling said computers further comprises:
means responsive to the polling of a computer that requires access to one of said memory sections for applying a set of long duration control pulses to said polled computer, means responsive to said long duration control pulses for controlling the transmission of said service request information from said polled computer to said one memory section, and means responsive to the polling of a computer that does not require access to one of said memory sections for applying a set of short duration control pulses to said polled computer.
18. The system of claim 17 in which said computer polling means sequentially polls each of said computers in a first recurring time interval, and in which said memory polling means sequentially polls each of said sections in a second recurring time interval that is asynchronous from said first time interval.
19. In a multiprocessor system having a plurality of computers, a plurality of memory sections, a plurality of time multiplexed buses interconnecting each of said computers with each of said memory sections, means in each computer for generating a service request for access over a first set of said buses to one of said memory sections, means in each computer for registering the service request generated within the computer, computer polling means for repetitively and sequentially polling each of said computers for registered service requests one at a time, means including computer gating means responsive to the polling of a computer having a currently registered service request for applying service request information including the identity code of said one memory section and said polled computer to said first set of said buses, means in said one memory section responsive to the appearance of its identity code on said first set of buses for registering the remainder of the service request information applied to said first set of buses by said polled computer having a registered service request, memory polling means asychronously operated with respect to said computer polling means for repetitively and sequentially polling each of said memory sections one at a time, means including memory gating means responsive to the polling of a memory section having registered service request information priorly received from one of said computers for applying information from said polled memory section to a second set of said buses with said information from said polled memory section including the identity code of said one computer that has priorly service request transmitted information to said polled memory section, and means responsive to the appearance of said one computer identity code on said second set of buses for transmitting information over said second set of said buses between said polled memory section and said one computer.
20. The system of claim 19 wherein said computer control means for polling said computers comprises:
means for generating computer timing pulses, means responsive to the generation of said computer timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said computers, means for applying each generated code to all of said computers, and means in each of said computers having a registered service request and responsive to the receipt of its identity code for activating its gating means to connect said computer signalwise to said first set of buses for the duration of the polling of said computer.
21. The system of claim 20 wherein said memory control means for polling said memory sections comprises:
means for generating memory timing pulses, means responsive to the generation of said memory timing pulses for repetitively generating a sequence of different identity codes with each code being unique to a different one of said memory sections, means for applying each generated memory identity code to all of said memory sections, and means in each of said memory sections responsive to the receipt of its identity code for activating its gating means to connect said memory section signalwise to said second bus for the duration of the receipt of the polling of said memory section.
22. The system of claim 21 in which said computer control means for polling said computers further comprises:
means responsive to the polling of a computer that has a registered service request for applying a set of long duration control pulses to said polled computer, means responsive to said long duration control pulses for controlling the transmission of said information from said polled computer to said one memory section, and means responsive to the polling of a computer that does not have a registered service request for applying a set of short duration control pulses to said polled computer.
23. A method of operating a multiprocessor system in which a plurality of computers exchange information with a plurality of memory sections over a time multiplexed bus system having a plurality of buses, said method comprising the steps of:
1) registering a service request in each computer that requires access to a first set of said buses for the transmission of information to one of said memory sections, 2) repetitively and sequentially polling each of said computers for service requests one at a time, 3) applying service request information including a memory section identity code from a polled computer to said first set of buses whenever the polled computer contains a registered service request, said service request information further including the identity code of said polled computer as well as a read request signal and memory section address information specifying the memory location to be read, 4) registering in said one memory section said service request information on said first set of buses except for the memory section identity code, 5) repetitively and sequentially polling the memory sections asynchronously with respect to said computers, 6) applying the identity code of one of said computers to a second set of said buses upon the polling of a memory section having registered service request information priorly received from said one computer, 7) reading out information stored in said specified location of said polled memory section, 8) applying said read out information to said second set of buses, and 9) registering in said one computer the information read out of said specified memory location and applied to said second set of buses from said polled memory section.
24. The method of claim 23 in which the step of polling said computers further comprises the steps of:
1) repetitively generating a sequence of different computer identity codes with each code being unique to said computers, 2) applying each generated computer identity code to all of said computers, 3) applying a set of computer control pulses of a first duration to each of said computers following the application of each computer identity code, 4) returning a service request signal to a computer controller upon the polling of a computer having a registered service request as the identity code of the polled control is applied, to the computer, and 5) increasing the duration of the control pulses applied to a polled computer upon the receipt of a service request signal from the polled computer.
25. The method of claim 23 in which said method further comprises the step of:

1) activating gating circuitry within a polled computer having a service request for controlling the application of said information from said polled computer to the said first bus during the polling duration.
26. The method of claim 23 in which the step of polling the memory sections comprises the steps of:
1) generating control pulses including memory section identity codes with each code being unique to a different said memory section, 2) applying each generated memory section code to all of said memory sections, and 3) activating gating circuitry in each polled memory section upon the receipt of its identity code for controlling the application of information from the polled memory section to the second bus.
27. A method of operating a multiprocessor system in which a plurality of computers exchange signal information with a plurality of memory sections over a time multiplexed bus system having a plurality of buses, said method comprising the steps of:
1) registering a service request in each computer that requires access to a first set of said buses for the transmission of information to one of said memory sections, 2) repetitively and sequentially polling each of said computers for service requests one at a time, 3) applying service request information including a memory section identity code from a polled computer to said first set of buses whenever the polled computer contains a registered service request, said service request information further including the identity code of said polled computer as well as a memory write request signal and memory section address information specifying the memory location into which information from said computer is to be written, 4) registering in said one memory section said service request information on said first set of buses except for the memory section identity code, 5) repetitively and sequentially polling the memory sections asynchronously with respect to said computers, 6) transmitting a computer identity code over a second set of said buses from a polled memory section having registered computer service request information over a second set of said buses to a computer that priorly transmitted service request information to said polled memory section, and 7) transmitting over said second set of buses from said computer to said polled memory section the information that is to be written in said specified location of said memory section.
CA257,540A 1975-08-08 1976-07-22 Multiprocessor system with computer poller and memory poller Expired CA1077593A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/603,178 US4034347A (en) 1975-08-08 1975-08-08 Method and apparatus for controlling a multiprocessor system

Publications (1)

Publication Number Publication Date
CA1077593A true CA1077593A (en) 1980-05-13

Family

ID=24414394

Family Applications (1)

Application Number Title Priority Date Filing Date
CA257,540A Expired CA1077593A (en) 1975-08-08 1976-07-22 Multiprocessor system with computer poller and memory poller

Country Status (5)

Country Link
US (1) US4034347A (en)
JP (1) JPS5221736A (en)
CA (1) CA1077593A (en)
DE (1) DE2635592C2 (en)
FR (1) FR2320604A1 (en)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4188668A (en) * 1976-10-04 1980-02-12 International Business Machines Corporation Computer-controlled copier-printers
JPS547252A (en) * 1977-06-20 1979-01-19 Hitachi Ltd Program control system
US4169480A (en) * 1977-08-19 1979-10-02 Biotronik Mess- Und Therapiegerate Gmbh & Co. Demand pacer with programmable rate hysteresis
GB1601955A (en) * 1977-10-21 1981-11-04 Marconi Co Ltd Data processing systems
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
JPS6027348Y2 (en) * 1977-11-11 1985-08-17 株式会社日立製作所 Refrigerator through-hole structure
JPS5479056U (en) * 1977-11-16 1979-06-05
US4363094A (en) * 1977-12-29 1982-12-07 M/A-COM DDC, Inc. Communications processor
US4228500A (en) * 1978-03-27 1980-10-14 Honeywell Information Systems Inc. Command stacking apparatus for use in a memory controller
JPS54146549A (en) * 1978-05-09 1979-11-15 Hitachi Ltd Information processor
US4558412A (en) * 1978-12-26 1985-12-10 Honeywell Information Systems Inc. Direct memory access revolving priority apparatus
US4277827A (en) * 1979-01-02 1981-07-07 Texas Instruments Incorporated Microprocessor based system for the development and emulation of programmable calculator control read only memory software
US4282572A (en) * 1979-01-15 1981-08-04 Ncr Corporation Multiprocessor memory access system
JPS55105763A (en) * 1979-02-05 1980-08-13 Fanuc Ltd Address instruction system
US4254464A (en) * 1979-03-23 1981-03-03 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Common data buffer system
JPS567161A (en) * 1979-06-28 1981-01-24 Hitachi Ltd Memory interface device
FR2462745B1 (en) * 1979-07-30 1986-01-03 Jeumont Schneider DEVICE FOR TEMPORAL SHARING OF ACCESS TO A MEMORY CONNECTED TO A SINGLE BUS BETWEEN A CENTRAL COMPUTER AND A PLURALITY OF PERIPHERAL COMPUTERS
US4325116A (en) * 1979-08-21 1982-04-13 International Business Machines Corporation Parallel storage access by multiprocessors
WO1981001066A1 (en) * 1979-10-11 1981-04-16 Nanodata Computer Corp Data processing system
US4376975A (en) * 1980-06-26 1983-03-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a plurality of central processing units
US4374413A (en) * 1980-06-26 1983-02-15 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a plurality of central processing units
DE3118818C2 (en) * 1981-05-12 1984-12-20 Siemens AG, 1000 Berlin und 8000 München Method and circuit arrangement for transmitting a request from a processor to a memory module in a multiprocessor system with a plurality of memory modules
DE3276916D1 (en) * 1981-09-18 1987-09-10 Rovsing As Christian Multiprocessor computer system
US4473880A (en) * 1982-01-26 1984-09-25 Intel Corporation Arbitration means for controlling access to a bus shared by a number of modules
GB2123189B (en) * 1982-06-05 1987-06-10 British Aerospace Communication between computers
US4608663A (en) * 1983-08-31 1986-08-26 Wolsten's Computer Devices, Inc. Computer network for using a common peripheral device
US4722052A (en) * 1984-04-02 1988-01-26 Sperry Corporation Multiple unit adapter
US4773005A (en) * 1984-09-07 1988-09-20 Tektronix, Inc. Dynamic address assignment system
JPH0120629Y2 (en) * 1984-10-02 1989-06-21
US4736317A (en) * 1985-07-17 1988-04-05 Syracuse University Microprogram-coupled multiple-microprocessor module with 32-bit byte width formed of 8-bit byte width microprocessors
US4755937A (en) * 1986-02-14 1988-07-05 Prime Computer, Inc. Method and apparatus for high bandwidth shared memory
US5010476A (en) * 1986-06-20 1991-04-23 International Business Machines Corporation Time multiplexed system for tightly coupling pipelined processors to separate shared instruction and data storage units
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US4982321A (en) * 1987-10-23 1991-01-01 Honeywell Inc. Dual bus system
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US5050070A (en) * 1988-02-29 1991-09-17 Convex Computer Corporation Multi-processor computer system having self-allocating processors
US5159686A (en) * 1988-02-29 1992-10-27 Convex Computer Corporation Multi-processor computer system having process-independent communication register addressing
AU625293B2 (en) * 1988-12-09 1992-07-09 Tandem Computers Incorporated Synchronization of fault-tolerant computer system having multiple processors
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
US5203004A (en) * 1990-01-08 1993-04-13 Tandem Computers Incorporated Multi-board system having electronic keying and preventing power to improperly connected plug-in board with improperly configured diode connections
JPH056344A (en) * 1991-06-28 1993-01-14 Fujitsu Ltd Program run information sampling processing system
US7328314B2 (en) * 2002-06-19 2008-02-05 Alcatel-Lucent Canada Inc. Multiprocessor computing device having shared program memory
US7443196B2 (en) * 2005-07-15 2008-10-28 Tabula, Inc. Configuration network for a configurable IC
US7904759B2 (en) * 2006-01-11 2011-03-08 Amazon Technologies, Inc. System and method for service availability management
US8601112B1 (en) 2006-03-14 2013-12-03 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
US7979439B1 (en) 2006-03-14 2011-07-12 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
US9037698B1 (en) 2006-03-14 2015-05-19 Amazon Technologies, Inc. Method and system for collecting and analyzing time-series data
US9195498B2 (en) 2007-02-28 2015-11-24 International Business Machines Corporation Supply capability engine weekly poller

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3242467A (en) * 1960-06-07 1966-03-22 Ibm Temporary storage register
US3229260A (en) * 1962-03-02 1966-01-11 Ibm Multiprocessing computer system
US3349375A (en) * 1963-11-07 1967-10-24 Ibm Associative logic for highly parallel computer and data processing systems
US3348210A (en) * 1964-12-07 1967-10-17 Bell Telephone Labor Inc Digital computer employing plural processors
US3510844A (en) * 1966-07-27 1970-05-05 Gen Electric Interprocessing multicomputer systems
US3480914A (en) * 1967-01-03 1969-11-25 Ibm Control mechanism for a multi-processor computing system
US3593300A (en) * 1967-11-13 1971-07-13 Ibm Arrangement for automatically selecting units for task executions in data processing systems
US3566363A (en) * 1968-07-11 1971-02-23 Ibm Processor to processor communication in a multiprocessor computer system
US3568160A (en) * 1968-09-03 1971-03-02 Sperry Rand Corp Access control for plural magnetic memories
US3551892A (en) * 1969-01-15 1970-12-29 Ibm Interaction in a multi-processing system utilizing central timers
US3560934A (en) * 1969-06-10 1971-02-02 Ibm Arrangement for effecting vector mode operation in multiprocessing systems
DE2104427C3 (en) * 1971-01-30 1978-09-07 Ibm Deutschland Gmbh, 7000 Stuttgart Device for time control of transmission processes
US3715729A (en) * 1971-03-10 1973-02-06 Ibm Timing control for a multiprocessor system
NL7106491A (en) * 1971-05-12 1972-11-14
GB1394431A (en) * 1971-06-24 1975-05-14 Plessey Co Ltd Multiprocessor data processing system
US3798591A (en) * 1971-09-28 1974-03-19 Gen Electric Co Ltd Access circuit for a time-shared data processing equipment
US3768074A (en) * 1972-05-12 1973-10-23 Burroughs Corp Multiprocessing system having means for permissive coupling of different subsystems
US3840859A (en) * 1972-07-03 1974-10-08 Burroughs Corp Method and apparatus for regulating input/output traffic of a data processing system
US3820081A (en) * 1972-10-05 1974-06-25 Honeywell Inf Systems Override hardware for main store sequencer
US3812473A (en) * 1972-11-24 1974-05-21 Ibm Storage system with conflict-free multiple simultaneous access

Also Published As

Publication number Publication date
FR2320604A1 (en) 1977-03-04
JPS5221736A (en) 1977-02-18
DE2635592A1 (en) 1977-02-17
US4034347A (en) 1977-07-05
FR2320604B1 (en) 1979-09-28
JPS5438031B2 (en) 1979-11-19
DE2635592C2 (en) 1983-03-31

Similar Documents

Publication Publication Date Title
CA1077593A (en) Multiprocessor system with computer poller and memory poller
US4030075A (en) Data processing system having distributed priority network
US3993981A (en) Apparatus for processing data transfer requests in a data processing system
US3997896A (en) Data processing system providing split bus cycle operation
US3995258A (en) Data processing system having a data integrity technique
US4000485A (en) Data processing system providing locked operation of shared resources
US4001790A (en) Modularly addressable units coupled in a data processing system over a common bus
US4964038A (en) Data processing system having automatic address allocation arrangements for addressing interface cards
US3728693A (en) Programmatically controlled interrupt system for controlling input/output operations in a digital computer
US4096569A (en) Data processing system having distributed priority network with logic for deactivating information transfer requests
US4034349A (en) Apparatus for processing interrupts in microprocessing systems
US4404628A (en) Multiprocessor system
US4805137A (en) Bus controller command block processing system
US3940743A (en) Interconnecting unit for independently operable data processing systems
US4366538A (en) Memory controller with queue control apparatus
US4500958A (en) Memory controller with data rotation arrangement
US4025906A (en) Apparatus for identifying the type of devices coupled to a data processing system controller
US4449183A (en) Arbitration scheme for a multiported shared functional device for use in multiprocessing systems
US3573855A (en) Computer memory protection
US4525777A (en) Split-cycle cache system with SCU controlled cache clearing during cache store access period
US3996564A (en) Input/output port control
US4185323A (en) Dynamic memory system which includes apparatus for performing refresh operations in parallel with normal memory operations
US4028663A (en) Digital computer arrangement for high speed memory access
US3766526A (en) Multi-microprogrammed input-output processor
US4513372A (en) Universal memory

Legal Events

Date Code Title Description
MKEX Expiry