Software accessible sentinel memory and comparator for continuously monitoring the contents of the instruction register of the central memory unit in a digital data processing system
United States Patent Boaron Apr. 22, 1975 [54] FTW E SI E SEN I EL 3.599.170 3/1971 Cordcro. Jr. et al.. 340/1725 AND COMPARATOR FOR 3.633179 l &#39;2 Reynolds 340/I72.5 3.671.940 it/I972 Kronies et al. 340/1725 CONTINUOUS MONITORING THE 3.703.707 11/1972 Bovett 340/1725 CONTENTS OF THE INSTRUCTION 3.704.448 11/1972 Osborne 340/1725 REGISTER OF THE CENTRAL MEMORY UNIT IN A DIGITAL DATA PROCESSING OTHER PUBLICATIONS IBM Technical Disclosure Bulletin. Vol. l2, No. I,  
  SYSTEM 9 7 S A l I [75] Inventor: Massimo Boaron. Turin. Italy &#34;Egg! g gfigi I Data DC [73] Assignee: Fiat Societa per Azioni. Turin.-ltaly Primurv Examiner-Gareth D. Shaw 2 Fl 7.: l led l2 l9 Assrsram Examiner-Paul R. Woods l l Pl N03 297.153 Attorney. Agent. or Firm-Sughrue. Rothwell. Mion,  
 Zinn 8t Macpeak [30] Foreign Application Priority Data Oct. 12. 1971 Italy 70340171 [57] ABSTRACT This invention provides an improved data processing [52] U.S. CI. 340/ 172.5 apparatus of the kind having at least one data process- [51] Int. Cl 606i 1/00; GI Ic Il/OO ing unit. and a central memory unit controlled by an [58] Field of Search 340/l72.5 associated instructions register. With the object of reducing the processing time the apparatus includes a [56] References Cited sentinel memory which receives a given programmed UNITED STATES PATENTS instruction and a comparator which compares contin- 3049 693 8/l962 Shapin .Ir 340 149 of register 312901900 1/1907 Fclchcck ct 340/1725 ux central memory with the Comm-5 of a Seminal 3.540.003 11/1970 Murphy 340/1725 ry to pr ide a control signal for the control unit of 3.573.855 4/l97l Ci&#39;agon at al. 34U/l72.5 the apparatus when the contents of the instructions 3.577.!30 5/l97l Rice ct al 340/l72.5 register and the sentinel memory are identical. 3.579.!99 5/[971 Anderson ct al. IMO/I715 3.587.054 6/!971 Byrnc et =11. 340 1725 2 filalms. 5 Drawing Figures -A 16 17 f 26 l I SENTINEL CENTRAL MEMORY MEMORY 1 l |NPUT AND COM OUTPUT RATOR :10 DEVICES mgm smzzms 3.879.711  
 sum 2 [If 3 LEPRlNTER THE CONTENTS OF THE CELL ADDRESSED BY C- AND ADD 1 TO CONTENTS OF C- c- EQUAL TO 48 YES PROCESSING FIN ISHE D e PROCESSING FINISHED SOFTWARE ACCESSIBLE SENTINEL MEMORY AND COMPARATOR FOR CONTINUOUSLY MONITORING THE CONTENTS OF THE INSTRUCTION REGISTER OF THE CENTRAL MEMORY UNIT IN A DIGITAL DATA PROCESSING SYSTEM The present invention relates to improvements in electronic data processing apparatus, which improvements enable reduction of the duration of the data processing or &#34;machine times. while at the same time simplifying the programming of the apparatus.  
  This invention is intended for application with particular advantage to particular types of work. such as. for example. tabular research work on archives or tables. and operations entailing the input. output. or transmission of a large amount of data. In such applications, it may often happen that the data processing apparatus has to follow repeatedly the same sequence of operations on successive items stored in memory cells having progressively numbered directions. there being typically up to a thousand or more memory cells. In such cases it is necessary to insert. in the programmes employed in traditional processors, an instruction for comparison between an instruction or direction in a cell and a reference instruction at which the operational cycle should stop. or it is necessary to constantly bring up to date a counter which stores the number of cycles carried out and compares it with the pro- Q grammed number of cycles. This comparison must be effected by the processor during each operational cycle. The comparison can take a very long time. expressed as a percentage of the total calculating time, which. in the usual case of processing cycles comprising very simple operations such as mere transfers of data from one part of the processor to another part. e.g.. from a memory to a teleprinter. can exceed 50 percent of the machine time.  
  Moreover. especially when setting programs. the necessity often arises for ascertaining the status ofa part of the processor. such as the condition of an area of a memory or the like. at a particular moment when the progress of the program corresponding to a critical stage of operations. In such cases it has been heretofore necessary to insert into the program being set additional instructions for display of data. which additional instruction must. however. not appear in the final program. This requirement leads to considerable complications which interfere with the rapidity of the checks to be effected on a program.  
  It is, therefore. an object of this invention to provide an improvement consisting in electronic data processing aparatus or other electronic machines for the treatment of data which allows ofa reduction ofcalculation times in situations of the abovementioned type. and simplification of the programmes and their adjustment.  
  According to the present invention there is provided a digital electronic data processing apparatus at least one data processing unit. a central memory unit controlled by an instructions register and a control unit. characterised in that it also comprises a sentinel memory adapted to receive a given programmed instruction and an identity comparator adapted to compare continuously the contents of the instructions register of the central memory unit with the contents of the sentinel memory to provide a control signal for the control unit when the contents of the instructions register and the sentinel memory are identical.  
  The invention will be further described. by way of example. with reference to the accompanying drawings. wherein:  
  FIG. I is a simplified block diagram ofa first embodiment of a digital electronic data processor according to this invention;  
  FIG. 2 represents diagrammatically a typical data processing operation effected in a conventional processor;  
  FIG. 3 represents an equivalent data processing operation as FIG. 2, carried out in a processor according to the present invention;  
  FIG. 4 is a circuit arrangement of a device forming part of the electronic processor of FIG. I;  
  FIG. 5 is circuit diagram showing an illustrative embodiment of the invention incorporated into a known data processing system.  
  In FIG. 1, a digital electronic data processor comprises a control unit 10 which controls the operation of a data processing unit 12 through a channel 14, of a central memory unit 16 through a channel 18. and of input and output devices 20 through a channel 22. The data processing unit 12 and the input and output devices 20 are connected to the memory unit [6 through respective channels 24, 26.  
  The data processor according to this invention also includes the improvement illustrated to the right of the section line AA and comprises a supplementary memory 28., termed hereinafter the sentinel memory constituted by one or more registers of the parallel type intended to contain respective reference instructions. An identity comparator 30, described hereinafter. compares continuously the contents of the sentinel memory 28 with the instantaneous contents of an instructions register 17 forming part of the central memory unit I6 of the processor. The identity comparator 30 emits through a channel 32 an interrupt signal which passes to the control unit 10 when the contents of the instructions register I7 and those of one of the registers of the sentinel memory 28 are identical.  
  In order better to illustrate the manner of operation of this invention. an example will now be described of a simple operation which may be required from a data processor. examining the individual steps which a conventional computer that is. without sentinel memory 28 and identity comparator 30, must effect to perform such an operation.  
  It will be supposed that the processor has the task of transmitting to an output device, for example to print on a teleprinter, an instruction comprising a row of characters contained in the memory of the computer in the cells 1001 to I070.  
  FIG. 2 shows a flow diagram corresponding to the programming of a conventional data processor for the execution of such a task. FIG. 2 represents diagrammatically respective data processing operations of a processor according to whether the cycle of operations should cease or whether it is necessary to continuously update the counter. Such a comparison may be effected by the processor in the course of each cycle of operations. and can take up a time which is very great compared with the overall calculating time which. in the usual case of processing cycles involving very simple operations. such as simple transfer of data in one part of the processor to another part. for example from a memory to a teleprinter. can exceed 50 percent of the machine time.  
  Moreover, particularly during adjustment of the programme. the need often arises of knowing the state of a part of the data processor. for example the state of one memory, or similar. at one particular instant in the programme. corresponding to a critical phase of operations. In those cases hitherto it was necessary to insert in the course of the programme by way of adjustment. supplementary instructions from external data, which supplementary instructions were intended subse quently to be excluded from the final programme. This entails considerable complication impeding the rapidity of the checks which can be effected in the programme. Therefore this invention proposes an im provement which consists in electronic data processing apparatus which will be apparent from a comparison of an electronic data processor of the traditional type and an electronic data processor according to this invention.  
  The first block 40 in FIG. 2 represents the instruction introducing the number I001 in a memory location C. This operation is carried out by the data processing unit 12 under control of the control unit 10. the block 42 represents the transfer of the contents of the memory location having the instruction contained in C from the memory 16 to a teleprinter at the output of the processing unit. forming part of the input and output devices 20: the contents ofC are then increased by I. According to criteria well known to those skilled in the art, the programme includes at this point a comparison operation in which a check is made as to whether the con tents of C have attained the value I071 (block 44). In the case of negative response. that is, if the contents of C are less than 107]. the output 46 of the block 44 feeds the programme back to the input of block 42. In the ease of affirmative response. the programme is concluded (block 48) and the processing is finished.  
  The processor according to this invention may on the other hand be programmed according to the flow diagram of FIG. 3. providing for the feeding into one of the registers of the sentinel memory 28 the final value of the instruction. that is the number I071. As is evident from FIG. 3, the programme in this case starts with the initiation of the instruction (block 140), followed by the transmission to the teleprinter of the data contained in the instructions bank in C (block 142) and successive unitary increase the contents of C.  
  At this point the programme employed with the processor of this invention returns directly to the input of the block I42, without any previous comparison operation. Such unconditional circulation is stopped by the independent intervention (block I50) of the interrupt signal supplied by the comparator 30 (FIG. I),  
 which compares the contents of the instructions register I7 and of the sentinel memory 28.  
  Comparing FIGS. 2 and 3, and noting that the sentinel memory 28 operates independently of the process ing unit I2 and thus does not in any way take up its operating time. the conclusion is that the use of the semi nel memory allows of considerable reduction in the machine times and thus. in the operating costs.  
  Naturally the sentinel memory is also suitable for other uses. as it constitutes part of the machine completely accessible to the programmer. who can use it in the most suitable way.  
  For instance. as already stated in the preamble. the sentinel memory may be useful in the adjustment phase of the programmes. since it can signal when the data processing unit is using data or an instruction contained in a predetermined bank. Other applications will be evident to the programmer. once he is apprised of the characteristics and possibilities of the improvement according to this invention.  
  FIG. 4 depicts diagrammatically a preferred embodi ment of the comparator of identity 30, together with register of instructions and sentinel memory units associated therewith. The instructions register I7, forming part of the central memory I6 of FIG. 1, comprises by way ofexample, six unitary parts 17a, 17b 17f. Each part of the instructions register 17 is connected by a respective line 52a, 52b 52]&#34; to respective first inputs of coincidence circuits 54a, 54b 54f.  
  The second inputs of the coincidence circuits 54a, 54b 54fare connected by respective lines 56a, 56b, 56]&#34; to respective unitary parts 28a. 28b 28f of a sentinel register, forming part of the sentinel memory 28 of FIG. I.  
  The coincidence circuits 54a, 54b 54f are connected by respective output lines 60a, 60b, 60f to the inputs of an AND gate 70, which output line constitutes the interrupt signal line 32. The signal on the line 32 will thus assume the logic output level I when all the homologous parts of the instructions register I7 and of the sentinel register 28, contain identical bits.  
  In the case in which it is desired to have interrupt signals in correspondence with many different instructions, there will be further sentinel memory registers (not shown in FIG. 4) connected to other identity comparators of the type of the comparator 30.  
  No intrinsic limitation exists as to the number of such registers. One side of the attached identity comparators will be piloted in each case from the same directions register 17 of the central memory. The improvement according to this invention may be applied, with even greater advantages, in a system with a common bus in which the data processing unit and the other working parts of the processor are connected in parallel to a multiline unibus. In this case it is possible also to sensitise the sentinel memory not only to the instructions but also to the data, where this is desirable for particular operations, for the purpose of simplifying programming and reducing the duration of the data processing.  
  FIG. 5 shows an embodiment of the invention in a form which may be incorporated into the data processing system described in PDP ll UNIBUS INTER- FACE MANUALI. 2nd Edition, Jan. 1971, to which readers attention is hereby directed.  
  The relevant parts in the Manual are the illustrations numbered 3-18 and 330 showing the following modules:  
 M 782 Interrupt Control, and  
 M 786 General Device Register.  
  These modules are marked in FIG. 6 by the numbers used in the Manual and also the reference numerals used in FIGS. I and 4. It will be seen by comparison with FIGS. I and 4 that the modules correspond to the control unit I0 and the Sentinel Memory&#34; 28, respectively.  
  The Manual also contains an illustration numbered 3-l3 showing an Address Selector module M 105. The module comprises a series of ports marked 8242 having connected thereto a series of ports marked 380, the latter having bus inlets marked A03L, AO4L, A121,. This system of ports provides a sort of comparator. For the purposes of this invention, the module M 105 may be redesigned in the manner shown in HQ 5 (in accordance with FIG. 4) to obtain a comparator 30 having 16 bus inlets AOOL, AOIL A14L, AISL for the ports 380. and I6 inlets INOO, INOl. lNl4. [N15 for the ports 8242, thereby to match the number of outlets OUTOO OUTOl, OUTM, OUTlS available at M 786 (Sentinel Memory 28). According to the invention, the latter outlets are permanently connected through lines such as 56 (compare lines 560 56f in FIG. 4) with their corresponding inlets [N00 [N15 at the comparator 30; thus a cell address (say, I071 as considered hereinbefore with reference to FIG. 2) previously set in M 786 is constantly available to the comparator 30 for comparison with signals incoming from bus inlets AOOL AISLi The interrupt control module M 782 originally comprises an inlet marked U] in the Manual and shown in FIG. 5. According to the invention, the inlet U1 is connected to the outlet of the comparator 30 through a line 30 (compare the line 30 in FIGS. 1 and 4).  
 I claim:  
 1. Digital electronic data processing apparatus of the type comprising at least one data processing unit a central memory unit having an instructions register which controls said central memory unit and a control unit. wherein the improvement consists in the provision of a sentinel memory adapted to receive a given programmed instruction and an identity comparator adapted to compare continuously the contents of the instructions register of the central memory unit with the contents of the sentinel memory and sending a control signal to the control unit only when the contents of the instructions register and the sentinel memory are identical.  
  2. Apparatus as defined in claim 1, wherein the identity comparator comprises a plurality of coincidence circuits equal in number to the number of bits which comprise an instruction, each coincidence circuit having a first input which receives the bit contained in a different part of the instructions register and a second input which receives the bits contained in an homologous part of the sentinel memory, and including an AND gate connected to the outputs ofsaid coincidence circuits the output signal of said AND gate constituting an interrupt&#34; signal.