DE1303481C2 - Verfahren und anordnung zur pruefung von datenverarbeitungsprogrammen - Google Patents

Verfahren und anordnung zur pruefung von datenverarbeitungsprogrammen

Info

Publication number
DE1303481C2
DE1303481C2 DE19661303481D DE1303481DA DE1303481C2 DE 1303481 C2 DE1303481 C2 DE 1303481C2 DE 19661303481 D DE19661303481 D DE 19661303481D DE 1303481D A DE1303481D A DE 1303481DA DE 1303481 C2 DE1303481 C2 DE 1303481C2
Authority
DE
Germany
Prior art keywords
program
command
gate
input
test
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
DE19661303481D
Other languages
English (en)
Other versions
DE1303481B (de
Inventor
Clarence Thomas Poughkeepsie Dervan James Thomas Pleasant Valley N Y Apple (V St A)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1303481B publication Critical patent/DE1303481B/de
Application granted granted Critical
Publication of DE1303481C2 publication Critical patent/DE1303481C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Description

I 303 481
Die Erfindung betrifft ein Verfahren zur Prüfung /on Datenverarbeitungsprogrammen, wobei die das Programm bildenden Befehle an mit Hilfe von Adressen wahlfreie aufrufbaren Plätzen eines Speicherwerkes gespeichert sind und die Befehle zur Ausführung der durch sie charakterisierten Operationen in ein Befehlsregister überführt werden und von dem Befehlsregister aus sowohl zur Verarbeitungseinheit als auch zwecks Regeneration zurück zum Speicherwerk gebracht werden, wobei jedes Befehlswort eine Paritätsbitstelle aufweist.
Ferner betrifft die Erfindung eine Anordnung zur Durchführung eines derartigen Verfahrens, wobei sowohl der Eingang als auch der Ausgang des Befehlsregisters mit dem Speicherwerk verbunden sind und wobei der Eingang des Befehlsregisters ferner mit einer einzuspeichernde Information übermittelnden Torschaltung und der Ausgang des Befehlsregisters ferner mi: einer auszuspeichernde Information weiterleitenden Torschaltung verbunden sind.
Bei der Entwicklung eines neuen Digitalrechners oder wenn von einem bestehenden Rechner verlangt wird, eine ganz bestimmte Aufgabe durchzuführen oder ein Problem zu lösen, so wird ein geordneter Satz von Befehlen in einer ganz bestimmten Sequenz kodiert und auf diese Weise ein Programm gebildet. Die Ausführung des Programms wird dadurch erreicht, daß man den Digitalrechner veranlaßt, verschiedene Daten und Informationswerte in Übereinstimmung mit jedem einzelnen kodierten Befehl des Programms in voigeschriebener Weise zu manipulieren. Jeder Befehl ist dargestellt durch eine Mehrzahl digitaler Zeichen; in den meisten fällen sind es die binären Werte »1« und »0«. Die Ziffer- oder Bitkombinationen werden vom Digitalrechner abgelesen und ausgewertet, um verschiedene Manipulationen an anderen Befehls- oder Datenworten zu steuern, die ebenfalls durch eine Mehrzahl digitaler Zeichen dargestellt sind. Die das Programm darstellende zugeordnete Befehlssequenz wird in ein Speicherwerk eingegeben, zusammen mit den Informationsdaten, die durch das betreffende Programm verarbeitet werden sollen. Es ist üblich, als Speicherwerk entweder einen Magnetkernspeicher, eine Speicherscheibe oder eine Speichertrommel zu benutzen, wobei jeweils eine große Anzahl von Speicherplätzen vorgesehen ist, die durch entsprechende Adressen bezeichnet sind, so daß die an den betreffenden Speicherplätzen gespeicherten Informationsdaten oder Befehle aus dem Speicherwerk abgerufen werden können bzw. daß die Daten und Befehle an die adressierten Speicherplätze eingeschrieben werden können.
Während der Durchführung und des Ablaufes eines bestimmten Programms bedient man sich normalerweise eines Befehlszählers zur Adressierung des Speicherwerkes, wann immer ein bestimmter Befehl im Verlauf der Durchführung des Programms benötigt wird. Sobald man den Befehl vom Speicherwerk erhalten hat und dieser Befehl in den Digitalrechner übertragen worden ist, wird dieser Befehl die Manipulation von Informationsdaten innerhalb des Digitalrechners steuern oder die Adressierung eines bestimmten Speicherplatzes in dem Speicherwerk verlangen, um Informationsdaten für die Verarbeitung abzurufen. Jeweils nach der Ausführung eines Befehls durch den Digitalrechner wird der nächstfolgende Befehl aus dem Speicherwerk abgerufen. Dieser nächste Befehl kann von einem nächsten sequentiellen Speicherplatz stammen, der durch den Befehlszähler angegeben wird, oder er kann, in Abhängigkeit von gewissen Zustandsbedingungen des Digitalrechners, auch von einem Speicherplatz im Speicherwerk abgerufen werden, der nicht notwendigerweise der in der Sequenz nächstfolgende Speicherplatz ist. Das Schreiben einer Befehlssequenz zur Schaffung eines Datenverarbeitungsprogramms zur Lösung eines bestimmten Problems beginnt üblicherweise beim Program-ίο mierer, der vorausschauend die Typen von Informationen, die bei dem betreffenden Problem benötigt werden, sowie die Schwierigkeiten oder die von den Informationsdaten abhängigen Bedingungen, die gegebenenfalls eine Änderung in der Befehlssequenz zrr Durchführung des gesamten Problems erforderlich machen könnten, erkennen muß.
Mit dem Erscheinen von Systemprogrammen für die Digitalrechner und Datenverarbeitungsanlagen haben sich zahlreiche schwierige Probleme entwickelt bei der planmäßigen Versorgung der Kunden, die Digitalrechner benutzen, mit fehlerfreien Programmen von gutem Wirkungsgrad. Bisher ist es im allgemeinen so gewesen, daß die Programme in ziemlich willkürlicher und zufälliger Weise gewachsen sind und in ihrem Umfang sowie an Komplexität immer mehr zugenommen haben und daß die Freigabe an den Kunden dann erfolgte, wenn man der Meinung war, daß das Programm vollständig sei. Jetzt, da sich die Programme zu einem sehr bedeutsamen Teil in
der gesamten Datenverarbeitungstechnik entwickelt haben, in dem Sinne nämlich, daß ein Datenverarbeitungssystem nicht mehr an einen Kunden ausgeliefert wird, wenn die zugehörigen Programme noch nicht vorliegen bzw. fertiggestellt sind, hat sich die Situation
drastisch gewandelt. Bei der Entwicklung eines Datenverarbeitungsprogramms als ein auszulieferndes Produkt müssen zahlreiche unabhängige Entwicklungsgruppen an dem Programm arbeiten, wenn es die verschiedenen Stadien der Komplettierung durchschreitet. Als das Ergebnis einer solchen verzahnten und verschachtelten Entwicklungstätigkeit besteht das Bedürfnis nach einer Standardisierung, wonach die Aufstellung gewisser Richtlinien möglich sein könnte, um ein geordnetes Wachstum eines Programms zuzulassen. Diese verfahrenstechnischen Richtlinien werden benutzt, um die entsprechenden Zeitpunkte festzulegen, an denen das Programm von einer Entwicklungsgruppe zur nächsten übergeht. Dieser Standard für ein Programm ist das Stadium der Programmprüfung oder des Programmtests, also im Rahmen der Entstehung eines Programms das Niveau der »Entschlackung«, d. h. der Eliminierung von dem Programm noch anhaftenden Fehlern. Nachdem ein bestimmter Abschnitt eines Datenverarbeitungsprogramms kodiert und bis zu einer bestimmten Stufe durch eine Gruppe getestet ist, wird er einer anderen Gruppe übergeben, die ihn mit anderen Abschnitten kombiniert und weitere Tests durchführt. Sobald dieser erweiterte Programmabschnitt bis zu einer gegebenen Stufe bzw. Niveau überprüft und getestet ist, so wird er wieder mit anderen größeren Programmabschnitten oder -gruppen kombiniert; dieses Verfahren wird in mehreren Stufen fortgesetzt. Schließlich wird dann einmal der Zustand erreicht, daß alle Programmabschnitte kombiniert sind, so daß sie dann einem ausgedehnten Systemtest unterworfen werden können. Wenn die diesen Test durchführende Entwicklungsgruppe feststellt, daß das Testniveau einen
I 303 481
vorbestimmten Wert erreicht hut, so wird das Programmsystem an eine Spezinlgruppe überwiesen, die gewissermaßen die Kundenbenutzung repräsentiert. Diese Spezialgruppe prüft nun das Programm unter besonders strengen Bedingungen, bis ein weiteres vorherbestimmtes Prüfniveau erreicht ist; ist dieser Test bestanden, so wird das Programmiersystem endgültig an den Kunden freigegeben.
Die Prüfung verschiedener Abschnitte eines Programms ist notwendig, um sicherzustellen, daß — wenn ein Abschnitt eines Programms mit einer geordneten Befehlssequenz geschrieben oder kodiert wurde — datenabhängige Änderungen in der Befehlssequenz eine bestimmte Verarbeitungsleistung tatsächlich erzielen werden. Ein Programmtest ist so geplant, daß die einzelnen Programmbefehle zur Lösung eines bestimmten Problems in ihrer wirkungsvollen Anwendung ausprobiert werden. Man hat jedoch herausgefunden, daß die mit einem Programm durchgeführten Tests nicht immer alle und jeden einzelnen Programmbefelil ausprobieren, so daß gewisse, möglicherweise bei der Anwendung bei einem Kunden bestehende datenabhängige Bedingungen irgendwelche Programmzustände herbeiführen, die man nicht vorausgesehen hat und die infolgedessen durch die vorgesehene Befehlssequenz des Programms nicht bewältigt werden können.
Zahlreiche nützliche Absichten lassen sich erfüllen durch Spezifizierung eines minimalen Testniveaus, das den Programmierern während des Stadiums der Kodierung oder Verschlüsselung und den mit (Jem Testen eines bestimmten Programms befaßten Personen zugänglich gemacht werden kann. Es kann in jeder Stufe der Kodierung eines Datenverarbeitungsprogramms eine interne Prüfung vorgesehen werden, durch die sichergestellt wird, daß das Programm zur Weitergabe in die nächste Stufe bereit ist. Auf diese Weise werden keine geistigen Anstrengungen vergeudet, beispielsweise wenn der1 "ersuch gemacht werden würde, einen Systemtest bei einem Programm durchzuführen, für das alle Einzelkomponenten für einen solchen Test noch nicht bereit sind. Obwohl man nicht erwarten kann, daß tatsächlich alle Probleme vor der Freigabe des Programms erkannt und gefunden werden, kann man einen minimalen Teststandard festsetzen, bei dessen Anwendung man einen ersten Benutzer des Programms gewiß zufriedenstellen kann. Die hohen Kosten der Aufrechterhaltung eines nur ungenügend geprüften Programms können jedenfalls drastisch reduziert werden. Die große Anzahl von Programmierern und sonstigem Hilfspersonal sowie die langen Maschinenzeiten können ebenfalls drastisch herabgesetzt werden, indem man einen solchen Standard festsetzt, wodurch sichergestellt ist, daß jedenfalls weniger als eine bestimmte Anzahl von Problemen, die sonst vom Kunden entdeckt werden wurden, nun noch von dem Kunden gefunden werden, wobei diese äußerst geringe Anzahl von verbleibenden, erst gegebenenfalls vom Kunden entdeckten Problemen wiederum durch die Wartungsmannschaft der Herstellerfirma in Ordnung gebracht werden kann.
Die Anwendung eines minimalen Testniveaus wird jedoch erst sinnvoll durch die Schaffung eines Maßstabes zur Messung der Effektivität eines mit einem Programm durchgeführten Tests. Der Stand der Technik kannte bisher noch keine Möglichkeit, den Wirkungsgrad eines durchgeführten Programmtests zu i«ririi ttnl ii
Aus der Veröffentlichung »Digitale Rechenanlagen« von Speiser, 1961, S. 272/273, ist es bekannt, sogenannte Zusätze, d, h. zusätzliche Bitstellen, in einem Befehlswort vorzusehen, deren Inhalt über verschiedene Eigenschaften des Befehlswortes Aufschluß gibt. Diese Zusätze können z, B. dazu dienen, ein betrachtetes Wort als Befehl auszuweisen und von Zahlen zu unterscheiden. Damit kann die Richtigkeit des Programmablaufs insofern kontrolliert werden,
ίο als verhindert werden kann, daß irrtümlich Wörter aus dem Speicher ausgelesen werden und a!s Befehle angesehen werden, die im Rahmen des Programms nicht als Befehle, sondern als Zahlen anzusehen sind. Auch ein sogenanntes »Umtaufen« solcher Zahlen bzw. Befehle ist vorgesehen.
Die Aufgabe der vorliegenden Erfindung ist es, ein Verfahren und eine Anordnung der eingangs genannten Art so auszubilden, daß der Wirkungsgrad einer Programmprüfung ermittelt werden kann.
Diese Aufgabe wird erfip.dungsgemäß durch ein Verfahren gelöst, das dadur.^ gekennzeichnet ist, daß vor der Durchführung der Programmprüfung beim Einschreiben des Programms in das Speicherwerk in die Paritätsbitstelle aller Befehlsworte gleiche Markierungszeichen eingeschrieben werden und daß während der Programmprüfung jeweils bei Entnahme eines aufgerufenen Befehlswortes aus dem Befehlsregister in die Paritätsbitstelle des betreffenden Befehlswortes ein anderes Markierungszeichen eingcschrieben wird, so daß nach Beendigung der Programmprüfung festgestellt werden kann, welche Befehlsworte bei dem Test erfaßt worden sind und welche nicht.
Ferner wird diese Aufgabe erfindungsgemäß durch
eine Anordnung gelöst, die dadurch gekennzeichnet ist, daß zwecks Einführung des genannten anderen Markierungszeichens der Ausgang eines Markierungszeichengenerators mit dem einen Eingang eines ODER-Tores verbunden ist, mit dessen anderem Ein-
4c gang der der Paritätsbitstelle entsprechende Ausgang des Befehlsregisters verbunden ist, und der Markierungszeichengenerator durch ein den Testmodus der Anordnung charakterisierndes Signal und durch ein einen Befehlswortabrufzyklus charakterisierendes
Signal aktiviert wird und daß zwecks Einführung des genannten ersten Markierungszeichens der der Paritätsbitstelle entsprechende Teil der einzuspeichernde information übermittelnden Torschaltung einen zusätzlichen Eingang aufweist, an den der Ausgang
eines mit dem Testmodussignal beaufschlagten Inverters angeschlossen ist, so daß der Ausgang des ge-.lannten Torschallungsteils bei Vorliegen eines Testmodussignals das Signal Null übermittelt.
Durch das erfindungsgemäße Verfahren kann der prozentuale Anteil der bei einer Programmprüfung an dem lestlauf beteiligten Befehlsworte ermittelt werden, wo™iit der Zuverlässigkeitsgrad der vorgenommenen Prüfung erfaßt werden kann. Da die ohnehin in jedem Befehlswort enthaltene Paritätsbitstelle dazu ausgenutzt wird, jedem benutzten Befehlswort beim Testlauf ein Markierungszeichen aufzuprägen, ist bei dem erfindungsgemäßen Verfahren keine zusätzlijhe Bitstelle erforderlich. Bei dem erfindungsgemäßen Prüfverfahren sind daher — abge-
sehen von der Tatsache, daß auf eine Paritätsbitprüfung der Befehlsworte verzichtet wird —■ die gleichen Verhältnisse verwirklicht, wie sie auch während der Anwendung des Programms in der Praxis herrschen.
da die Markierungszeichen keinerlei Einfluß auf die Ausführung der markierten Befehle haben.
Die erfindungsgemäße Anordnung weist eine sehr einfache Struktur auf, so daß ohne Schwierigkeiten und mit nur geringem Mehraufwand bereits bestehende Datenverarbeitungsanlagen zu einer erfindungsgemäßen Anordnung modifiziert werden können.
Hin Ausführungsbeispiel der Erfindung ist in der Zeichnung dargestellt und wird im folgenden näher beschrieben. Es zeigt
F i g. 1 das schematische Schaltbild des Informationsflusses in einem Digitalrechner mit einem Speicherwerk, bei dem ein informationszerstörendes Ablesen stattfindet, und
Fig. 2 das schematisch Schaltbild in Form von logischen Stufen für das Auslesen oder Einschreiben von binärer Information in eine Binärstelle eines adressierbaren Speicherplatzes im Speicherwerk unter Berücksichtigung der erforderlichen Schaltungsmodifikationen für die betreffende Binärstelle, wenn die vorliegende Erfindung praktiziert wird.
Das in den Figuren dargestellte bevorzugte Ausführungsbeispiel der Erfindung umfaßt ein Speicherwerk mit einer Vielzahl von Speicherplätzen, wobei jeder einzelne Speicherplatz wahlfrei adressierbar ist. Bei Angabe der entsprechenden Adresse kann in den dadurch gekennzeichneten Speicherplatz ein Inforinationswort eingeschrieben werden, oder es kann ein an dem betreffenden Speicherplatz gespeichertes Informationswort aus dem Speicherwerk ausgelesen werden. Jeder Speicherplatz umfaßt eine Mehrzahl digitaler Ziffernstellen, vorzugsweise Binärstellen, und in jeder Binärstelle können entweder die Binärwerte »1« oder »0« stehen. Die hier betrachtete Ausführungsform ist in ihrem logischen Entwurf so ausgelegt, daß jeder Speicherplatz eine Kapazität von 36 Binärstellen plus einer 37. Binärstelle aufweist. Bei der genannten siebenunddreißigsten Binärstelle handelt es sich um eine zusätzliche Biiposition, die beispielsweise für den Zweck der vorliegenden Erfindung vorgesehen sein kann, oder man kann sie auch als eine Paritätsbitstelle während der normalen Arbeitsweise eines Digitalrechners verwenden. Handelt es sich bei der siebenunddreißigsten Binärstelle um die Stelle für das Paritätsbit, so wird in diese Stelle eine »1« oder »0« eingeschrieben, in Abhängigkeit davon, ob die Anzahl der »1« in den restlichen sechsunddreißig Binärstcllen der gespeicherten Information ungeradzahlig oder geradzahlig ist. Wie im weiteren Verlauf der Beschreibung nod. ausführlich erläutert werden wird, besteht die Möglichkeit der Ausnutzung der Paritätsbitstelle jedes Speicherplatzes beim Betrieb der Rechenanlage in einem speziellen Testmodus zum Einsetzen eines Markierungszeichens jedesmal dann, wenn auf das Speicherwerk zurückgegriffen wird, um einen Programmbefehl aus einem Speicherplatz abzurufen und diesen in die zentrale Steuereinheit zu überführen, wo der Programmbefehl dekodiert wird und die bei der Dekodierung erhaltenen Steuersignale eine bestimmte Operation zur Durchführung bringen. Die Adressierung und das Auslesen eines Befehlswortes aus dem Speicherwerk unterscheidet sich von allen anderen Rückgriffen auf das Speicherwerk durch die Zustandslage eines in der zentralen Verarbeitungseinheit befindlichen Triggers, der die Befehlsabrufoperation anzeigt. Ein Markierungszeichen, das jedesmal dann, wenn ein Befehlsabrufzyklus eingeleitet wird, erzeugt wird, benutzt man zum Einsetzen einer binären »1« in die siebenunddreißigstd Binärstelle bei all den Befehlen, die während des Programmtests abgerufen wurden.
5 Obwohl sich die nachfolgende Beschreibung auf die Markierung aller Befehle in den Speicherplätzen bezieht, die aus dem Speicherwerk während der Befchlsabrufzyklcn abgerufen wurden, so läßt sich grundsätzlich dieselbe Logik auch für die Markierung
ίο bestimmter Binärstcllen in den Speicherpositionen benutzen zur Kennzeichnung solcher Speicherplätze, die während irgendeines Verarbeitungszyklus angesprochen wurden, oder auf die unter irgendwelchen anderen Zustandsbedingungen der Anlage Bezug genommen wurde. Beispielsweise kann ein Markierungszeichen erzeugt werden, wenn die Datenverarbeitungsanlage einen Eingabe-Ausgabe-Befehl ausführt und ein Speicherabruf zur Durchführung gelangt, um ein bestimmtes Steuerwort aus einer Mehr-
ao zahl von gespeicherten Steuerworten zu erhalten. Bei der Beendigung des Tests liegt dann ein Kriterium dafür vor, welche Steuerworte mindestens einmal benutzt worden sind.
Die F i g. 1 zeigt schematisch die gegenseitigen
»5 Verbindungen der größeren Schaltkomponenten des Speicherwerks, wie es in einem Datenverarbeitungssystem zur Anwendung kommt. Die bevorzugte Ausführungsform der vorliegenden Erfindung gelangt bei einem Speicherwerk zur Anwendung, das einen drei-
dimensionalcn Magnetkernmatrixspeicher umfaßt. Derartige Magnetkernmatrixspeicher sind dem Fachmann an sich bekannt, und es erscheint nicht notwendig, hier auf weitere Details eines solchen Speichers einzugehen. Wünscht man jedoch weitere Einzelheiten kennenzulernen, so sei auf das amerikanische Patent 3 058 659 verwiesen, das eine detaillierte Beschreibung des Aufbaues, der Verbindungen, der Steuerung und der Taktgebung eines solchen Magnetkernspeichers enthält. Ein Magnetkernmatrix-
speicher der genannten Art arbeitet in einem Zwti-Zyklus-Lese-Schreib-Modus. Die erste Hälfte eines kompletten Zyklus besteht im Auslesen der binären Information aus demjenigen Speicherplatz, der durch ein Adressenregister 11 ausgewählt wird, wobei dieser Schritt stattfindet, unabhängig davon, ob Information nun tatsächlich ausgelesen und in die zentrale Verarbeitungseinheit überführt werden soll, oder ob von der zentralen Verarbeitungseinheit bereitgestellte Informationsdaten in den betreffenden Spei-
cherplatz eingeschrieben werden sollen. Im Abschluß an das Auslesen der Information aus dem adtessierten Speicherplatz schließt sich die zweite Hälfte de; Speicherzyklus an, während der die bereitgestellte Information in den adressierten Speicherplatz einge-
schrieben wird. Wenn der Anruf des Speicherwerk! erfolgt, um Information aus dem Speicher auszuleser und diese Information in die zentrale Verarbeitungseinheit zu überführen, so wird die ausgelesene Information in den gleichen durch die Adresse definierter Speicherplatz wieder eingeschrieben (regeneriert), urr sie im Speicherwerk auch weiterhin zur Verfügung zu haben. Wenn der Aufruf des Speichers zu den Zweck erfolgt, um neue Information in einen be stimmten adressierten Speicherplatz einzuschreiben so wird die in der ersten Hälfte des Speicherzyklu; aus dem adressierten Speicherplatz ausgelesene Infor mation während des anschließenden Schreibzyklu: nicht regeneriert, vielmehr wird dann die neue Infor
I 303 48
million πι den (lurch die Adiessc heslimmleii Sj>t i chci plafz i-ms!L schrieben.
Der Magnetkernspeichci dient iiucli zur Speiche-Hing der Programnihc'dile. die mil I IiIIe ti nc ^ l\< > (.!IiIIiImIt-1S(S j-'ejiriil'l werden sullen. Daiühcr |iin;ii.is μΊΙ-.ίι Mai kicruiieszciehcii Im alle dic-iciugcu Be-KhIe lien ilui Mi III weiden, die tatsächlich /in Aus iiilinnii'. gelangt sind. I.in malerei Teil des Speichers diel, /in Speicherung ν on Daten und rechne' isclien /w im hcncruebnisscn. -lie sieh bei dci dutch ihis I'm- ίο guanin bewirkten Daiennianipuhlion cigeben. Ii' einem weiteren 'feil des Spcicheis befindet sich sclilieLllicli noch eine Serie um l'iogiammbelehlen. ilie dii/ii dienen, das duichzulühiende Tcslprogranim zu steuern. >5
Defimtionsgeni;iß soll in der folgenden Beschreibung unter dem Binäiwcri ■>■ I und ■■;()« Informiition uTsi;mden werden, die sieh im Vorhandensein oder in der Abwesenheit einsprechender Impulse äußert oder im falle von stabilen Spannimgsniveaus im Vor- ?-■> hiindensein einer positncn Ivw. negativen Spannung. Gemäß der logischen Siriiklui des Digilalrcehncts besieht ein Informaiionswori :nis scchsimddreilüg B; darstellen, die alle gleichzeitig registriert odei iilxrhauen werden, d. li.. die Vciaiheilung aller Inlnrmaiionsbils eine· Wortes erfolgt parallel. (Die Zahlen 3Ci Ivw. 37. die in ϊ i u. I den Sammelleitungen zügeordnet sind, bedeuten die Anzahl der parallel iiberlraueiicn UiIs) [-.inc -,ieivnunddreißigstc Binärstelle. sol'eiii auf eine solche hinsjcwieseii ist. soll als eine l'ai-.liilsbitstellc beliaehlel werden oiler, in ('berein-■-limmung mil der vorliegenden hrfmdimg. eine speziell vorgesehene Zilfcrn-- oder Hiniirslelle darstellen, in die ein Markieriingszeichen oder Markierungshit während der Durchlührung des Festprogramms ein ...-, geschrieben werden kann.
Mine allgemeine hrörterung darüber, wie die Information in das Spjichuv.cik eingeschrieben Ivw. aus diesem ausgelesen und in die zentrale Verarbeitung1--cn -licit überfuhrt wird. Ia(U ^- i c h am besten unter .%« ilmweis iiuf I" i i:.. I durchluhrcn. Den Speicher 10 kann man als ein wahll'rei adressierbares Speicher-· weil betrachten, das in einer bevorzugten Ausfühlims.'siorni beisjiielsweiie eine dreidimensionale MaLMielkcriimiitrix sein kann. Jeder ein/eine Speicher- ir, plai/ dieses Speichers ist in der I.agc. ein Wort mit siebi'iiunddreißig Binarstellen /;i speichern. Je nach der Größe der .Speicherkapa/itat ist eine entsprechend große Anzahl \on durch Adressierung zugänglichen Speiehe;platzen im Speicherwerk vnrge- ■;,<; ■eher,. I^er /iigrilT zu diesen S[>eicheip!iit/en erfolgt über das Adiessenreiiisier Ii. m das jeweils d.e entsprechende, aus mehreren liinärFtellen bestellende Adresse eingeschrieben wird. Ob das hinschreiben von Information in den Speicher ->der das .-\nslesen 3; von Information aus dem Speicher durchgefühii v.erdcu soll, die Opcrationssequenz ist immer dieselbe, und /.ν. ar wild zunächst aus dem adressierten Speicherplutz das doit iiespeicherte Wort informa- !■''!iis/erstörend aussielc-en, und daran schließt sich ßo das Hinschreiben eines Wortes in diesen adressierten Speicherplatz an. wobei in diesem Operationsschritt entweder eine Informationsregeneration oder das hinschreiben einer vollständig neuen Information stattfindet. Während des Auslesez\klus treten die Leseverstärker 12 in Tätigkeit, von denen siebenunddreißig Stuck vorhanden sind und die die von den siebenimddreißie Bif-telleii des Wortes herrührenden Lescimpiilse veisläikeii und weilerleiten. Die ausgelesene Informalion wird auf der Sammelschiene 1.1 einem t ^ND-fialter 14 zugeführt. Dieses UND-Cialter hai die f'unklion eines Schalltoas. Da auf der Sammelschiene 13 insgesamt siebcnunddreißig Bits parallel !!beitragen werden. ,0 muß lüi jeiles Bit ein UND-Gatter 14 vorgesehen werden. Diese sicbenunddrci-L'iig einzelnen UND-Galler 14 sind parallel angeordnet und weiden auch in ihrer Betriebsweise parallel betäligt. Da es sich bei dem Auslesen der Information aus dem adressierten Speicherplatz um ein inl'ormationszeistürendcs Alllesen handelt, so muß man für den hall, daß man die gespeicherte Information nicht zu verlieren wünscht, im darauffolgenden Schreibzyklus eine Regeneration der ausgelesenen Informalion vornehmen. Wenn es sich bei dem durchgeführten SpeicherzugnfT darum handelt. Daten- oder Befehlsworte der zentralen Verarbeilungseinheit zuzuführen, so wird eine Steuerleitung 15 aktiviert, so daß die parallelen Hits durch das Schalllor 14 hindiirehlieten. Sie gelangen dann zu dem ODh.R-Gatter 16, \·(ΐη dem ebenfalls wieder für jedes parallel übeiliagene Bit ein eigenes Gatler vorhanden ist. Die Bils gelangen schließlich in das .Speicherregister 17. Bei eitlem UND-Galler oder Schalltot1 besieht bekanntlich die Bedingung, daß ein Ausgang.ssignal niu dann auftritt, wenn alle hingängc des UND-Galteis oder Schalttores aktivier! sind. Hei einem ODhR-Gailei hingegen erseheinl bereits ein Signal am Ausgang, wenn mindestens ein hingang des ODh.R-G.illcrs aktiviert ist. Soll die aus dem Speicherwerk 10 auNivleseue !nform;.!ioii in die zeuiiale Verarbeilungseinlieit überführt und außerdem am adressierten Speicherplatz erhalten bleiben, so wird im näehsien Sehrcibzykkis die Information rcgenericü. d. h.. die Treiber 18 werden entsprechend dem inhalt des Speichel registers 17 aktiviert, so daß an den adressieren Speicherplatz im Speicherwerk 10 die vorbei darin enthalten gewesene Information wieder eingeschrieben, d. h. regeneriert wird. Gleichzeitig wird der Inhalt des Speicherregisteis 17 durch die Sehalttoie V). Non denen ebenfalls wiedet siebemmddreißie Siück in einer parallelen Anordnung vorhanden sind, einem zentralen Speieherregisler 21 zugeführt. Die Datenübermittlung durch das Schalttor 19 erfolgt dann, wenn die Steuerleitung 20 aktiviert ist. Die von der zentralen Verarheitungseinheil bcnöticte Information wird aus dem zentralen Speicherreuister 21 über eine Sammelleitung 22 ausgelesen und in entsprechende Register der zentralen Verarbcitungseinheit überführt.
Jn einer beuiizugten Ausführungsform der Hrfindung wird normalerweise eine siebcnunddreißigste Binäisielle zur Aufnahme des Parilätshils vorgesehen. Wenn die Information aus dem Speicherwerk 3 0 zu; Weiterleitung an die zentrale Verarbeituncseinheit ausgelesen wird, so wird die vom zentralen Speicherrejjster 21 aufgenomnine Informalion einer Paritätsprüfung unterzogen, bevor die Weilerleitung dieser Information über die Sammelleitung 22 in die weiteren Register der zentralen Verarbeilungseinheit eriolgl. Die Paritätsprüfung wird mit Hilfe einer Paritälsprüfschaltuni; 23 durchgeführt, die zu den vorhandenen sechstmddreißig Informationsbiis ein Parilätsbit ermittelt und dieses separat ermittelte Paritätsbit mit dem in der siebenunddreißigsten Binärstelle stellenden Paritätsbit vergleicht, woraufhin eine Anzeige erfolgt, ob zwischen den beiden
409 ό30 3J3
I 303 481
Paritätsbits Gleiehheii (icier Ungleichheit bestellt; stimmen die beiden Paritälsbits nicht übe rein, so erfolgt die Anzeige eines Fehlcrsignals.
Wenn in einem bestimmten Speicherplatz des Speieherwerks !0 neue Information eingeschrieben werden soll, so wird die Adresse dieses betreffenden Speicherplatzes in das Adressenregister 11 eingesetzt. Die einzuschreibende Information wird dem zentralen Speichcrrogisler 21 über die Sammelleitung 22 zugeführt. Die über die Sammelleitung 22 zugeführte Information besteht aus sechsunddreißig parallelen Bits. Diese sechsundreißig parallelen Bits werden aus dem zentralen Speicherregister 21 über eine Sammelleitung 24 einer Schaltung 25 zur Erzeugung des Faritätsbits zugeführt. Das in der Schaltung 25 erleugte Paritiitsbit wird der einzuschreibenden Infor-Hation als siebenunddreißigstes Bit beigefügt. Erfolgt Bun ein Speicherzugriff mit dem Zweck des Ein-•chreibens der neuen Information, so wird die Leitung
17 aktiviert, durch die die Schalttore 28, von denen ebenfalls wieder siebenunddreißig Stück in paralleler Anordnung vorhanden sind, in einen Bereitschaftslustand versetzt werden. Bei einem Einschreibezyklus wird also entweder die Leitung 15 oder die Leitung 27 aktiviert in Abhängigkeit davon, ob die Information regeneriert oder ob neue Information in den adressierten Speicherplatz des Speicherwerks 10 eingeschrieben werden soll. Die über die Sammelleitung 24 übertragenen sechsunddreißig Datenbits und das in der Schaltung 25 erzeugte und auf der Leitung 26 übertragene Paritätsbit werden durch die Schalttore
18 den zweiten Eingängen der ODER-Gatter 16 zugeführt, von wo sie in das Speicherregister 17 gelangen. Jetzt steht in dem Speicherregister 17 die einzuschreibende neue Information. In Übereinstimmung mit dem bereits beschriebenen Regenerationszyklus ivird auch für den Fall der einzuschreibenden neuen Information die Aktivierung der Treiber 18 in Ab liängigkeit vom Inhalt des Speicherregisters 17 erfolgen. Über die Treiber 18 wird also der Inhalt des Speicherregisters 17 in den adressierten Speicherplatz des Speicherwerks 10 eingeschrieben. Es werden insgesamt 37 Bits parallel eingeschrieben, nämlich sechsunddreißig Datenbits und das aus den sechsunddreißig Datenbits ermittelte Paritätsbit. Die Adresse des Speicherplatzes, in die die neue Information eingeschrieben wird, steht im Adressenregister 11.
Fig. 2 zeigt die schematischc Schaltungsdarstellung für die zur Durchführung der vorliegenden Erfindung erforderliche Logik, nämlich eine Schaltungsanordnung, die es ermöglicht, eine vorbestimmte tinärsteile aller Speicherplätze ursprünglich in den Zustand »0« zu versetzen, d. h. vor Beginn der Durchführung des Prüfprogrammes in diese betreffende Binärstelle aller Speicherplätze den gleichen Binärwert »O< einzuschreiben. Die Schaltung ermöglicht anschließend das Einschreiben eines Binärwerts rl« in die betreffende Binärstelle immer dann, wenn aus dem Speicherplatz das Befehlswort abgerufen wird zum Zwecke der Ausführung dieses Befehls bei der Prüfung des Programms. Wie bereits erwähnt, kann als Markierungsstelle eine zusätzliche vorbettimmte Binärstelle des Befehlswortes benutzt v/erden, wenn speziell ein Verarbeitungssystem für die Prüfune von Programmen entworfen wird. Man kann jedoch auch in einer anderen bevorzugten Ausführunasform die Durchführungeines Prüfprogramms mit einer Datenverarbeitungsanlage durch eine spezielle Maschinenbedingung kenntlich machen, die entweder durch die Bi.iienungsperson oder durch das Überwaclningsprogramm eingestellt wird, wodurch die normale Betriebsweise der Erzeugung von Paritätsbits inhibiert wird, so daß es möglich ist, die Paritätsbitstelle in allen Speicherplätzen fürTcstmarkicrimgszwecke zu benutzen, und zwar in der Weise, daß in diejenigen Speicherplätze an die Stelle des Prioritätsbits ein Markieriings/eiehen dann eingeschrieben wird, wenn im Verlauf der Prüfung des Programms der an diesem betreuenden Speicherplatz gespeicherte Befehl zur Durchführung einer Operation aufgerufen wurde.
Das logische Schaltuiigsdiagramm von Fig. 2 repräsentiert lediglich eine Binärstellc der entsprechenden Schaltkomponcnten, die teilweise auch in Fig. I vorkommen; einander entsprechende Schaltelemente sind durch übereinstimmende Bezugszeichen bezejchnet. Die eine herausgegriffene Binärstellenposition, auf die sich Fig. 2 bezieht, ist in dem hier beschriebenen bevorzugten Ausführungsbeispiel die siebenunddreißigste Binärstellenposition, d. h. diejenige Binärstelle, die normalerweise dem Paritätsbit zugeordnet ist. Übereinstimmend finden sich in den Fig. 1 und 2 die folgenden elektrischen Schaltungskomponenten und -elemente: Schalttor 14, Stcuerleitung 15, Leseverstärker-Ausgangsleitung 13, Schalttor 28, Steuerleitung 27, Paritätsbitleitung 26, ODER-Gatter 16, Schalttor 19, Steuerlcitung 20, Treiber 18 und Speicherregister 17. (Das zuletzt genannte Speicherregister 17 besteht in Fig. 2 eigentlich aus dem Ausgang des ODER-Gatters 16, das an ein UND-Gatter 29 rückgekoppelt ist. Soll die über die Ausgangsleitung des ODER-Gatters 16 übermittelte Information in der Art eines Seibsthaltekrcises festgehalten werden, so wird die Steuerleitung 30 des UND-Gatters
29 aktiviert. Liefert das ODER-Gatter 16 einen positiven Ausgangswert als Antwort auf ein empfangenes positives Eingangssignal, so wird das UND-Gatter 29 ein positives Signal an den unterer Eingang des ODER-Gatters 16 liefern, solange die Steuerleitung
30 aktiviert ist. Der Umlaufzyklus in dem beschriebenen Haltekrcis wird unterbrochen, wenn die Lci-
tung 30 von dem positiven Potentia'lniveau, das sie in ihrem aktivierten Zustand aufweist, auf ein negatives Potentialniveau zurückgeschaltet wird.)
Wenn man die Parilätsbitstelle als Markicrungsposition auszunützen wünscht, so sind zusätzlich zu der üblichen Schaltkrcislogik noch ein ODER-Gatter
31 und ein UND-Gatter 32 vorhanden. Bei der Ausnutzung der Parilätsbitstelle für die erwähnten Markicrungszwecke bei der Prüfung von Programmen isi es notwendig, den Maschinenzustand entsprechen^
zu kennzeichnen, d. h., es muß in geeigneter Weise ein Kennzeichnungssignal vorhanden sein, das an zeigt, ob sich die Datenverarbeitungsanlage in einen normalen Betriebszustand oder in einem^Testmodui befindet. Dazu kann beispielsweise ein Schalter arr
Bedienungspult dienen, der von der Bedienungsper son entsprechend eingestellt wird, oder man kanr dazu einen besonderen Befehl heranziehen, der ir dem im Speicherwerk gespeicherten Überwachungs programm enthalten ist. Wenn der Testmodus de Datenverarbeitungsanlage angezeigt werden soll, st wird die Steuerleitung 35 aktiviert, d. h. mit einen positiven Potential beaufschlagt, ist die genannt! Testmodusleitung 35 aktiviert, so wird das UND
•ί 2 2 5
(i;itler 32 i'i einen Bereilschaltsziistand versetzt, el. h.. wci!"i mich r-och d;<; Leitung 34 aktiviert wird, so erscheint .im Ausgang des UND-Gatters 32 eip Signal. An ilie Tesiinodusleitimg 33 ist im oberen Teil tier Fig.? ein !inerter 33 eingeschlossen, dessen Ausgang mit einem weiteren Hingang des Sehalttores 28 verbunden ist. Ist die Testmodusleitung 35 iktiviert, Mi erscheint am Ausgang des Inverters 3.1 ein Signal >()■', durch das das Schalllor 2K in seiner Funktionsweise inhibiert wird, denn in funktioncllcr Hinsicht arbeitet das Sehalttor 28 wie ein UND-Gatter. Im normalen Betriebszustand der Datenverarbeitungsanlage ist die Tcstmoduslcitiing 35 nicht aktiviert, so daß dann am Ausgang des Inverters 33 ein Signal »I « erscheint, durch das das Schalttor 28 in seinen Bereitschaftscustand versetzt wird. Wird außerdem die Steiicrleitung 27 aktiviert, so wird das über die Leitung 26 zugefiihrte Paritätsbit vom Schalttor 28 übertragen und an den oberen Hingang des ODER-Gatters 16 weitergeltitet.
Geht n:an zunächst davon aus, daß die Daten und «lic Programmbcfchle, die man zu prüfen wünscht, noch nitfit im Speicherwerk enthalten sind und daß der Testniodusschalter in seine spezielle »Testmoilus«-I age eingestellt worden ist, so wird beim Hinschreiben jedes Befehls des zu prüfenden Programms und auch beim Einschreiben der Daten, die im Speicherwerk 10 gespeichert werden sollen, die siebeniinddreißigste Binärstellc auf einheitliche Binärwerte »Ο« eingestellt. Die Ursache für dieses einheitliche Hinsetzen von »()'< in die Hehenunddreißigstc Binärstelle, in der sonst das Pantätsbit steht, liegt im Schalttor 28, das durch das Signal ■·()« am unteren Eingang sich in einem Zustand befindet, daß kein Paritätsbit von der I eitiing 26 an den Ausgang des Schalttores 28 hindurchgelassen wird. Wie bereits früher schon einmal erwähnt wurde, kommt das Signal »0« am unteren Hingang des Schalttores 28 dadurch zustande, daß das auf der Leitung 35 vorliegende Testmodussignal »1« im Inverter 33 komplementiert wird, so daß also ein Signal »0« entsteht.
Wenn das zu prüfende Programm sich aus irgendeinem Grund bereits im Speicherwerk 10 befindet, wobei in den siebenunddreißigsten Binärstellen der Befehlswort die entsprechenden Prioritätsbits stehen, die man bei der durchzuführenden Prüfung des Programms jedoch nicht haben will, so kann man ein zusätzliches kleines Programm bereitstellen, durch das erst einmal jedes Befehlswort aus dem Speicherwerk 10 ausgelesen und in das zentrale Speicherregister 21 überführt wird. Anschließend erfolgt ein sukzessives Einschreiben der Befehlsworte in den zentralen Speicher 10 durch das Schalttor 28. Auf diese Weise schafft inan die gleichen Bedingungen, die • uch für das Einschreiben eines neu zur Verfugung gestellten Programms gelten, wie sie vorhin bereits dargelegt wurden. Befindet sich die Datenverarbeitungsanlage im Testmodus, so ist das Schalttor 28 inhibiert, und die Befehlsworte, die jetzt wieder in das Speicherwerk 10 eingeschrieben werden, erhalten einheitlich in der siebenunddreißigsten Binärstelle des Befehlswortes das gleiche binäre Markierungszeichen »0«.
Wie ebenfalls bereits dargelegt wurde, umfaßt jeder Hauptzyklus eines Datenverarbeitungssystems einen Befehlsabrufzyklus, auch I-Zyklus genannt, während dem der als nächstes von der zentialen Verarbeitungseinheit auszuführende Befehl aus dem Speicherwerk ausgelesen und in tue zentrale Veraibeilungseinheit übertragen werfen muß, um anschließend diesen Befehl während ties Ausführu:.gsteiles des llaiiptzykhis zur Diirciiführung gelungen zu lassen. Wie es beispielsweise in tier obenciwähiiljn USA.-i'aientschrift 3 05« 6i9 bereits der Fall ist, kann die Datenverarbeitungsanlage mit einer geeigneten bislabilen Hinrichtung, z. B. einem Trigger, ausgestattet sein, tier immer dann ein Signal erzeugt,
ίο wenn tue zentrale Verarbeitungseinheit sich in einem Befehlsabrufzyklus befindet. Dieses Signal, gel 'j-entlich auch mit !-Signal bezeichnet, wird der Stciierleitung 34 zugeführt. Die Stcucilcilung 34 wird also immer dann mit einem positiven I-Signal beaufstillagt, wenn durch die zentrale Verarbeilungseinhcit ein Befehlswort-Abrufzyklus ausgelöst wird und zur Durchführung gelangt. Wenn die beiden Leitungen 34 und 35 aktiviert sind, d. h., wenn ein I-Signal und ein Testmodussignal vorliegen, so ist die logische Be-
2n dingung am UND-Gatter 32 erfüllt, und die Ausgangsleitung dieses Gatters ist aktiviert, d. h.. sie übermittelt ein Markierungszeichen »1«. Dieses Markierungszeichen wird durch das ODER-Galter 31 dem Treiber 18 zugeführt, der schließlich das Hinschreiben dieses Markierungszeichens in die siebenunddreißigste Ii;:iärstelle des Befehlswortes bewirkt. Wenn sich also die Datenverarbeitungsanlage im Testmodus befindet, so wird bei jedem Befehlswort-Abrufzyklus in die siebenunddreißigste Binärstellc des adressierten Befehlswortes ein Markierungszeichen »1" eingeschrieben. Wenn man also eine Unterscheidung des Betriebszustandes der Datenverarbeitungsanlage in der Weise vornimmt, daß der normale Betriebszustand vom Zustand des Testmodus unterschieden werden kann, so kann man ohne weiteres die zusätzliche Binärstellc im Normalzustand mit den Paritätsbits belegen, während man beim Testmodus auf die Paritätsbits verzichtet und statt dessen in die zusätzliche Binärstelle die Markierungszeichen
4" einsehreibt, die kernzeichnen sollen, welche Befchlsworte des zu prüfenden Programms bei der Durchführung ties Tests während eines I-Zyklus tatsächlich aufgerufen worden ist.
Nachdem mit dem zu prüfenden Programm tier Test beendet worden ist, befinden sie!1 in der siebenunddreißigsten Binärstelle nur bei denjenigen Befehlsworten die Markierungzeichen »If, die tatsächlich während eines Befehlswort-Abrufzyklus aufgerufen worden sind. Bei allen anderen Spcicherzugriffsoperationen außerhalb eines Befehlswort-AbrufzyV'us kann kein Markierungszeichen» It in die betreff ;iide Binärstelle eingeschrieben werden, da dann am LIND-Gatter 32 die logische Bedingung nicht erfüllt ist. In diesem Falle wird das Schalttor 14 in normaler Weist arbeiten und die aus der siebenunddreißigsten Binärstelle entnommene >s0« im Regenerationsz.yklus wiedei in die betreffende Binärstelle einschreiben. Durch da; Schalttor 14 wird auch gewährleistet, daß ein ord nungsgemäß bereits in die siebenunddreißigste Binäi stelle eingeschriebenes Markierungszeichen »1« nich mehr zerstört werden kann, wenn beispielsweise da betreffende Befehlswort später noch einmal außerhall eines I-Zyklus aufgerufen werden sollte. Dann wir« das bereits während eines früheren Befehlswort-Ab rufzyklus ordnungsgemäß eingespeicherte Markie rungszeichen »1« mit Hilfe des Schalttores 14 au ganz normale Weise regeneriert. Die erfindungsge mäße Schaltung stellt damit unzweideutig sicher, da
jedes Befehlswort eines einem Test unterzogenen Programms mit einem Markierungs/eichen "I·· versehen wird, wenn es wahrend des Tjsts mindestens einmal in einem Befehlswoit-Abrulzykliis (!-Zyklus) aufgerufen worden ist und der betretende Uelehl L tatsächlich zur Ausführung gelangte, in dem beschriebenen Ausführungsbeispiel ist das UNü-Gaiter 32 für die Erzeugung des Markierungszeichens > 1 ■< verantwortlich. Die logische Bedingung für das genannte UND-Gatter 32 wurde so angenommen. JaB iu das Markierungszeiehen »1« dann erzeugt wird, wenn das Testmodussignal und das !-Signal gleichzeitig vorhanden sind. Der Fachmann wird leicht einsehen, daß man die logischen Bedingungen zur Erzeugung des Markierungszeichens »1< unschwer in beliebiger Weise erweitern kann, etwa dadurch, daß man das Auftreten eines Aktivierungssignals auf der Steuer-Ieiiung34 von weiteren logischen Bedingungen liei zentralen Verarbeitungseinheit oder sonstigen Ma- -i-hin-jn/usuiiHl·. η abhängig macht. M.in kan.i natiir- ao lieh auch noch weitere zusätzliche Binarstellen in unen· Befehlswort vorsehen und in diese Steilen in Abhängigkeit von verschiedenen logischen Bedingungen entsprechend verschiedene Maikierungszeicheii /;i: !-.inschreibung bringen. Dadurch schallt man die Vii'giichkeit, wahrend eine·- Icsilaufs tür ein /ti prüfendes Programm im Hinblick auf verschiedene logische Bedingungen lesislellcn zu können, weich'· Bi. lchlswone unter den verschiedenen logischen Bediiiüungen aufgerufen worden sind. I m nur ein Bei- 3-> spiel /u nennen, sei darauf hingewiesen, dal.' das ;'ul der Sieuerleitung 34 zunefiihrte Signal beispielsweise eine logische Kombination darstellen kann von entschlüsselten EiiTjangs-Ausgangs-Betehlen tier /cn- !rak-n Steuereinheit, verbunden mit der Bedingung des Autrufens eines Steuerwortes.
l;ür den Fall, daß man für Markieuingszvvecke '"chi als eine zusätzliche Binarstelle in einem Befehlswort voisieht. müssen für jede ein/eine zusätzliche Binärsteile logische Schaltungen vorgesehen 4<j werden, die im wesentlichen nach dem Schema der F i g. 2 zu entwerfen sind.
Nachdem das zu prüfende Programm dem vorgesehenen ΤιΧ unterworfen worden ist. henutzi man üblicherweise ein kurzes l'beivvachuiisisproiii'amm .UHi sequentiellen Auslesen alier zu dem getesteten Programm gehörenden Befehlsworte aus den einzelnen Speicherplätzen des Speicherweiks. Dk ausgelesenen Befehlsworte werden über die Leseverstärker 12. die Sammelleitung 13. die Schalttore 14. die ODER-Gaiter 16. das Speichel register 17 und die Sch;;,lt!ore 19 in this zentrale Speicherregister 21 iUieitraiien (vgl. Fig. 1). Die zusäizliche Binärstelk. gegebenenfalls auch noch weitere zusätzliche Stellen, die die erwähnten Nhukierungszeicheti enthalten, werden anschließend in tier zentralen Verarheilungsemheit daraufhin untersucht, ob in den betreuenden Biniirstelleiii Markierungszeichen ■> I'- oder /O-- stehen. Das Ergebnis dieser i.utomaiisch durchgeführten Intersuchung wird in geeigneter Weise registriert. beispielsweise auf einem Datenträger. /.. Ii. einem Magnetband, aufgezeichnet. Nach der Durcliführun:1 der Auswertung der Markicrungsz.eichen können die einzelnen Belehhworte wieder in das Speicherwerk an die urspünglichen Speicherplätze zurückgeführt werden. Bei der Wietlereinspeicherung der einzelnen Befehlswuirte des getesteten Programms in this Speicherwerk K) werden die für die zusätzlichen Binäistellen wirksamen Sehalttore 28 in ihrer Arbeitsweise unterdrückt, so daß in di: zusätzlichen Binärstellen lauter Binärwerie AY eingeschrieben werden, auch wenn beispielsweise vor dem Auslesen der Befehlsworte in diesen Binärstellen Markierungszeichen - I vorhanden gewesen sein sollten. Es wird also wieder ein einheitlicher Anfangsziistand geschaffen, so daß die Proürammbelehle jetzt einer neuen Testserie unterworfen werden können.
Bei der Beschreibung des erfindungsgemälkn Verfahrens und der erlindungsgemäLten Anordnung zur Durchführung des Verfahren·, macht man also gemäß den obigen Ausführungen entweder von einer speziellen logischen Struktur Gebrauch, die sich im wesentlichen in einer zusätzlichen Bitposition äußert, oder man bedient sich einer bereits vorhandenen Bitposition, die beispielsweise zum Einsetzen eines von den Daten abhängigen Paritätsbits benutzt wird, wobei eine entsprechende Modifikation im Sehaltungsj.iiflvi.: durchgeführt wird, um die normalerweise dem Paritätsnit zugedachte Hmaisielle zum Einschreib·.!! von MarkkruiiiisZciciicn zu homil/en. die anzeigen, daß ein bestimmter Speicherplatz auigerulen und Jidann siesp.eichcrle Befehlswort in das BeIcIlKi cgisL-r der ZeDirakη Veraiheitungseinheii überfi'iliM vv.itden ist und daß Je: betielicnde Befehl zur Aiisfühi ung eine! bestimmten Opeiationsiulge tatsächlich heranüczotien wnrtle'.i ist. Aul diese Weise ist es möglich eine vorbc· 'in'.iiite Binärstelle zur Speicherung ν cn Markieiuniiszeichen zu benutzen und diese markierten Binäistelkn nach Beendigung lies Te-.thuifs i!.;s Prosiramms zu unteisuchen, auszuwerten und gecebenenfalls niederzuschreÜKMi oder aufzuzeichnen, um ein Mittel in der Hand zu hallen zur Identifizierung jedes dem Test unterworfen gewesenen Programmbefehls, der tatsächlich zur Ausführung gelangt ist. Weiterhin gibt einem die vorliegende Erfindung ein Mittel in die Hand zur Anzeige eier Gesamtzahl tlei mindestens einmal zur Auslührung gelangten Pro nrammhefehle während eines Testlauts im Vergleich zu der Gesamtzahl dei in dem getesteten Programm enthaltenen Befehle. Wenn eine Minimalzahl von Befehlen mindestens einmal während des Tests eines gespeicherten Programms ausgeführt werden muß. bevor das Programm einer alitieren Entwicklungsgruppe zugestellt oder schließlich für den Kunden freiucücheii wird, so gibt die vorliegende Erfindung einem ein sehr einfach zu handhabendes Mitte! in die Hand, durch das es möglich wird, den effektiven Wirkungsüiad von einem fest unterworfenen Progiammcn zu messen.

Claims (3)

Patentansprüche:
1. Verfahren zur Prüfung von Datenverarbeitungsprograminen, wobei die das Programm bildenden Befehle an mit Hilfe von Adressen wahlfrei aul'rufbaren Plätzen eines Speicherweiks gespeichert sind und die Befehle zur Ausführung der durch .sie cluir<ik|c.risiertep Operationen in ein Befehlsregister überführt werden und von dem Befehlsregister aus sowohl zur Vcrarbeilungseinheit als auch zwecks Regeneration zurück zum Speicherwerk gebracht werden, wobei jedes Befehlswort eine Paritätsbitstelle aufweist, dall u r c h gekennzeichnet, daß vor der Durchführung der l'rogrammprüfung beim Einschreiben lies Programms in das Speicherwerk in
(O
die Paritätsbitstelle aller Befehlsworte gleiche Markierungszeichen (0) eingeschrieben werden und daß während der Programmprüfung jeweils bei Entnahme eines aufgerufenen Befehlswortes aus dem Befehlsregister (17) in die Paritätsbit- S stelle des betreffenden Befehlswortes ein anderes Markierungszeichen (1) eingeschrieben wird, so daß nach Beendigung der Programrnprüfune festgestellt werden kann, welche Befehlsworte bei dem Test erfaßt worden sind und welche nicht. m
2. Anordnung zur Durchführung des Verfahrens nach Anspruch 1, wobei sowohl der Eingang als auch der Ausgang des Befehlsregisters (17) mit dem Speicherwerk (Ϊ0) verbunden sind und wobei der Eingang des Befehlsregisters (17) ferner mit einer einzuspeichernde Information übermittelnden Torschaltung (28) und der Ausgang des Befehlsregisters (17) ferner mit einer auszuspeichernde Information weiterleitenden Torschaltung (19) verbunden sind, dadurch gekennleichnet, daß zwecks Einführung des genannten anderen Markierungszeichens (1) der Ausgang eines Markieruugszeichengenerators (32) mit dem einen Eingang eines ODER-Tores (31) verbunden ist, mit dessen anderem Fingang der der
Paritätsbitstelle entsprechende Ausgang des Befehlsregisters (17) verbunden ist, und der Markierungszeichengenerator (32) durch ein den Testmodus der Anordnung charakterisierendes Signal (35) und durch ein einen Befehlswortabrufzyklus charakterisierendes Signal (34) aktiviert wird und daß zwecks Einführung des genannten ersten Markierungszeichens (0) der der Paritätsbitstelle entsprechende Teil der einzuspeichernde Information übermittelnden Torschaltung (28) einen zusätzlichen Eingang aufweist, an den der Ausgang eines mit dem Testmodussignal beaufschlagten Inverters (33) angeschlossen ist, so daß der Ausgang des genannten Torschaltungsteils bei Vorliegen eines Testmodussignals das Signal Null übermittelt.
3. Anordnung nach Anspruch 2, dadurch gekennzeichnet, daß es sich bei dem Markierungszeichengenerator (32) um ein UND-Tor handelt, dessen einem Eingang das den Testmodus charakterisierende Signal (35) und dessen anderem Eingang das den Befehlswortabrufzyklus charakterisierende Signal (34) zugeführt wird und dessen Ausgang mit dem Eingang des genannten ODER-Tores (31) verbunden ist.
Hierzu 1 Blatt Zeichnungen
DE19661303481D 1965-04-08 1966-04-07 Verfahren und anordnung zur pruefung von datenverarbeitungsprogrammen Expired DE1303481C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US44663865A 1965-04-08 1965-04-08

Publications (2)

Publication Number Publication Date
DE1303481B DE1303481B (de) 1971-12-16
DE1303481C2 true DE1303481C2 (de) 1974-07-25

Family

ID=23773314

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19661303481D Expired DE1303481C2 (de) 1965-04-08 1966-04-07 Verfahren und anordnung zur pruefung von datenverarbeitungsprogrammen

Country Status (3)

Country Link
US (1) US3427443A (de)
DE (1) DE1303481C2 (de)
GB (1) GB1077343A (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3566093A (en) * 1968-03-29 1971-02-23 Honeywell Inc Diagnostic method and implementation for data processors
US3921142A (en) * 1973-09-24 1975-11-18 Texas Instruments Inc Electronic calculator chip having test input and output
JPS5378747A (en) * 1976-12-23 1978-07-12 Toshiba Corp Error display system
WO1981003078A1 (en) * 1980-04-22 1981-10-29 Relational Memory Systems Inc Relational break signal generating device
JPS57182858A (en) * 1981-05-06 1982-11-10 Japan Electronic Control Syst Co Ltd Monitor circuit for program runaway in computer
DE3404782A1 (de) * 1984-02-10 1985-08-14 Nixdorf Computer Ag, 4790 Paderborn Verfahren und schaltungsanordnung zum pruefen eines programms in datenverarbeitungsanlagen
US4595981A (en) * 1984-03-05 1986-06-17 At&T Bell Laboratories Method of testing interfaces between computer program modules
EP0199009A3 (de) * 1985-02-28 1989-05-31 Kabushiki Kaisha Toshiba Ausführungsbahnmesssystem für ein Programm
EP0228480B1 (de) * 1985-12-30 1990-05-16 Ibm Deutschland Gmbh Verfahren und Einrichtung zur Analyse von Steuerprogrammen
NL8600217A (nl) * 1986-01-30 1987-08-17 Philips Nv Dataverwerkende inrichting bevattende een geheugeninrichting voorzien van een coincidentieschakeling die in een foutherkennings- en een coincidentiemode schakelbaar is.
CA1268557A (en) * 1986-04-01 1990-05-01 Mikio Tomioka Method for displaying program executing circumstances and an apparatus using the same
US4819233A (en) * 1987-04-08 1989-04-04 Westinghouse Electric Corp. Verification of computer software
US5121489A (en) * 1988-08-02 1992-06-09 International Business Machines Corporation Tracing method for identifying program execution paths using a trace points bit map with one-to-one correspondence with embedded trace points
US5067073A (en) * 1988-08-02 1991-11-19 International Business Machines Corporation Embedded tracing method for identifying program executed paths
US5063535A (en) * 1988-11-16 1991-11-05 Xerox Corporation Programming conflict identification system for reproduction machines
GB2258063B (en) * 1991-07-26 1995-07-05 Research Machines Plc Monitoring execution of a computer program to provide profile analysis
GB2258064B (en) * 1991-07-26 1995-07-12 Research Machines Plc Monitoring execution of a computer program to provide test coverage analysis
US5613118A (en) * 1994-06-20 1997-03-18 International Business Machines Corporation Profile-based preprocessor for optimizing programs
US5790858A (en) * 1994-06-30 1998-08-04 Microsoft Corporation Method and system for selecting instrumentation points in a computer program
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
US6381740B1 (en) 1997-09-16 2002-04-30 Microsoft Corporation Method and system for incrementally improving a program layout
US6499137B1 (en) 1998-10-02 2002-12-24 Microsoft Corporation Reversible load-time dynamic linking
US6381628B1 (en) 1998-10-02 2002-04-30 Microsoft Corporation Summarized application profiling and quick network profiling
US6263491B1 (en) 1998-10-02 2001-07-17 Microsoft Corporation Heavyweight and lightweight instrumentation
US6230312B1 (en) 1998-10-02 2001-05-08 Microsoft Corporation Automatic detection of per-unit location constraints
US6988271B2 (en) 1998-10-02 2006-01-17 Microsoft Corporation Heavyweight and lightweight instrumentation
US6983463B1 (en) 1998-10-02 2006-01-03 Microsoft Corporation Network independent profiling of applications for automatic partitioning and distribution in a distributed computing environment
US6546553B1 (en) 1998-10-02 2003-04-08 Microsoft Corporation Service installation on a base function and provision of a pass function with a service-free base function semantic
US7039919B1 (en) * 1998-10-02 2006-05-02 Microsoft Corporation Tools and techniques for instrumenting interfaces of units of a software program
US6381735B1 (en) * 1998-10-02 2002-04-30 Microsoft Corporation Dynamic classification of sections of software

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3222653A (en) * 1961-09-18 1965-12-07 Ibm Memory system for using a memory despite the presence of defective bits therein

Also Published As

Publication number Publication date
GB1077343A (en) 1967-07-26
US3427443A (en) 1969-02-11
DE1303481B (de) 1971-12-16

Similar Documents

Publication Publication Date Title
DE1303481C2 (de) Verfahren und anordnung zur pruefung von datenverarbeitungsprogrammen
DE1114049C2 (de) Anordnung zur einschraenkung der ansteuermoeglichkeit von matrixspeichern
DE2629459C2 (de)
DE1524239A1 (de) Verfahren zur Lokalisierung eines Fehlers in einer Anlage mit mindestens zwei parallel arbeitenden Rechengeraeten
DE1151397B (de) Programmgesteuerte Datenverarbeitungs-anlage mit gespeicherten Unterprogrammen
DE2048670A1 (de) Speicherwartungsanordnung fur Daten verarbeitungsanlagen
DE1424732A1 (de) Elektronische Ziffernrechenmaschine
DE2210325A1 (de) Datenverarbeitungssystem
DE2339636A1 (de) Programmsteuereinrichtung
DE2145709B2 (de)
DE1200578B (de) Datenverarbeitungssystem
CH625895A5 (de)
DE1549548A1 (de) Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind
DE1953364A1 (de) Wahlausfuehrungsschaltung fuer programmgesteuerte Datenverarbeiter
DE1524155B2 (de) Verfahren und schaltungsanordnung zum einspeichern und oder lesen von informationen in einem speichersystem das mit mehre ren verarbeitungsei nrichtungen einer datenverarbeitungsanlage zusammenarbeitet
DE1524856A1 (de) Wortadressierbare Datenspeicher mit mehreren defekten Speicherelementen
DE1774421B1 (de) Mehrprogramm datenverarbeitungsanlage
DE2165589A1 (de) Anordnung zur programmgesteuerten bestimmung von fehlern in einer datenverarbeitungsanlage
EP0151810B1 (de) Verfahren und Schaltungsanordnung zum Prüfen eines Programms in Datenverarbeitungsanlagen
DE1524211C3 (de) Datenverarbeitungsanlage
EP0945799B1 (de) Verfahren und Einrichtung zum Verhindern der Einlagerung nicht mehr aktueller Datentelegramme aus einer Datenvorverarbeitung in die Speicher eines Rechners
DE1449816C3 (de) Schaltungsanordnung zur Steuerung des Zugriffs zu einem Magnettrommelspeicher
DE1474380A1 (de) Matrixspeicheranordnung
DE1474090B2 (de) Datenverarbeitungsanlage
DE2419836A1 (de) Verfahren zur durchfuehrung von unterprogramm-sprungbefehlen in datenverarbeitungsanlagen

Legal Events

Date Code Title Description
E77 Valid patent as to the heymanns-index 1977
EHJ Ceased/non-payment of the annual fee