DK166237B - Apparat til selv-afproevning af flydende kommaberegningsenheder - Google Patents

Apparat til selv-afproevning af flydende kommaberegningsenheder Download PDF

Info

Publication number
DK166237B
DK166237B DK526984A DK526984A DK166237B DK 166237 B DK166237 B DK 166237B DK 526984 A DK526984 A DK 526984A DK 526984 A DK526984 A DK 526984A DK 166237 B DK166237 B DK 166237B
Authority
DK
Denmark
Prior art keywords
instruction
computing unit
unit
diagnostic
data processing
Prior art date
Application number
DK526984A
Other languages
English (en)
Other versions
DK526984D0 (da
DK166237C (da
DK526984A (da
Inventor
Tryggve Fossum
Milton L Shively
Original Assignee
Digital Equipment 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 Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of DK526984D0 publication Critical patent/DK526984D0/da
Publication of DK526984A publication Critical patent/DK526984A/da
Publication of DK166237B publication Critical patent/DK166237B/da
Application granted granted Critical
Publication of DK166237C publication Critical patent/DK166237C/da

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • G06F11/2242Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors in multi-processor systems, e.g. one processor becoming the test master
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2268Logging of test results
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Advance Control (AREA)

Description

i
DK 166237B
Den foreliggende opfindelse omhandler digitale data-behandlingssystemer, og mere specifikt "on-line" afprøvning af beregningsenheder i databehandlingssystemer.
Specifikt omhandler den foreliggende opfindelse diagnostisk 5 afprøvning af en beregningsenhedsdel i en flydende kommabe regningsenhed i et databehandlingssystem. Denne afprøvning udføres, uden at systemets svar- eller udførelsestider ødelægges og fordyrer så at sige ikke systemet. Appa-ratet anvender systemer af busser, der ellers ville 10 være ledige når afprøvningen foregår. Derudover anvendes der "rigtige" data som afprøvningssekvensens operander med henblik på at forøge detektionssandsynligheden af dataafhængige fejl.
Digitale databehandlingssystemer indeholder sædvanligvis 15 tre grundlæggende dele, en lagerenhed, en indgangs/udgangs- enhed og en beregningsenhed, idet alle disse enheder forbindes til hinanden med én eller flere busser. Lagerenheden lagrer data i adresserbare lagerlokationer.
Disse data indeholder både operander og instruktioner 20 til behandling af operanderne. Beregningsenheden vare tager, at data overføres til eller hentes fra lagerenheden, og fortolker de indkomne data enten som instruktioner eller operander, og behandler operanderne i overensstemmelse med instruktionerne. Resultaterne lagres 25 da i adresserede lokationer i lagerdelen. En indgangs/ud- gangsdel kommunikerer også med lagerdelen og beregningsenheden, med henblik på at overføre data til systemet, og videregive de behandlede data fra systemet. Indgangs/-udgangsdelen arbejder sædvanligvis i overensstemmelse 30 med styreinformation, der overføres til den fra bereg ningsenheden. Indgangs/udgangsdelen kan f.eks. være skrivere, fjernskrivere eller tastaturer og skærmterminaler, men kan også omfatte sekundære datalagringsenheder såsom pladelagre og båndstationer.
DK 166237B
2
Databehandlingssystemer anvender ofte flere beregningsenheder til at udføre og overvåge de forskellige opgaver, som de er indrettet til at udføre. F.eks. anvendes der undertiden særskilte beregningsenheder til at udføre 5 indgangs/udgangsfunktioner, til at styre perifere enheder, og til at udføre andre udskillelige opgaver. Derudover kan databehandlingsfunktioner også uddeles blandt flere beregningsenheder. Nogle gange anvendes en særlig art beregningsenhed, der betegnes som en flydende kommabereg-10 ningsenhed, til at udføre aritmetiske operationer med flydende komma. Flydende kommaberegningsenheder er specielt konstrueret til at forøge den hastighed, ved hvilken flydende kommaberegninger kan udføres. Når der skal udføres en beregning med flydende komma, udføres den 15 i eller af flydende kommaberegningsenheder i stedet for en anden beregningsenhed.
Brugere og konstruktører af databehandlingssystemer kræver en høj pålidelighed og en nøjagtig funktion.
På grund af dette forefindes der overalt i moderne databe-20 handlingsenheder fejldetektions- og -rettelsesmekanismer.
Imidlertid kan sådanne mekanismer sædvanligvis ikke detektere eller korrigere data, der er fejlbehæftede men ikke ødelagt logisk set. Et område hvor data med disse karakterisktika kan opstå, er ved udførelse af 25 aritmetiske operationer, specielt ved udførelsen af flydende kommaoperationer. På grund af dette har det længe været praksis i databehandlingsindustrien, at der i programmer, hvor der anvendes flydende kommaoperationer, at indbygge nogle trin der undersøger om resul-30 tatet af sådanne operationer ligger indenfor et numerisk værdiområde, i hvilket korrekte resultater sædvanligvis optræder. F.eks. vil et lønsystem for fabriksarbejdere, hvis ugentlige løn forventes at ligge indenfor et forudbestemt område på 300 til 500 $ pr. uge, kunne forsynes
DK 166237 B
3 med instruktioner der sikrer, at der ikke udskrives nogen lønningscheck, der er større end et hvis givet maksimum, såsom f.eks. 300 $. Selvfølgelig kan indgangsdata til lønprogrammet også undersøges på samme måde, for at sikre at alle parametre ligger inden for forventede 3 områder, hvorved det f.eks. er muligt at sikre, at en arbejder ikke får udbetalt løn for en fiktiv arbejdsuge på tohundrede timer. Når man på denne måde har konstateret en fejl i beregninger med flydende komma, må man anvende diagnostiske midler til at analysere fejlen 10 og lokalisere dens årsag. Hvis sagen er en periodisk fejl eller en programeringsfejl, kan dette være vanskeligt.
En anden fremgangsmåde til kontrol af flydende kommaoperationer, der kan anvendes i tidsdelte systemer, er at 15 tildele en system "bruger" en opgave, der kun indeholder en sekvens af flydende kommaberegnings-diagnosefunktioner, der gentages hele tiden. For at være virkningsfulde, kræver denne teknik sædvanligvis, at sådanne beregninger udføres med kendte data, hvorved det er muligt at sammen-20 ligne de aktuelle resultater med forudbestemte resultater.
Nogle fejl kan imidlertid være dataafhængige, i hvilke tilfælde det ved afprøvningen kan være umuligt at finde fejlen, med mindre de indgående data varieres af og til. Derudover kan der tages mange fejlbehæftede flydende 25 kommaberegninger mellem det tidspunkt, hvor der sker en fejl i den flydende kommaberegningsenhed, og det tidspunkt hvor den næste afprøvning, der kan konstatere fejlen, udføres. For ikke at forøge systemets belastning i væsentlig grad, og derved forøge svartiderne for andre.
30 brugere, er det nødvendigt, at diagnosefunktionerne kun optager systemets beregningsenheder i en lille brøkdel af tid. Men herved kan der i flydende kommaberegningsenheden forårsage forkerte resultater, før fejlen detek-teres af diagnosesystemet.
DK 166237 B
4
Disse andre begrænsninger ved den kendte teknik, er det formålet at overvinde ved den foreliggende opfindelse, der angiver et apparat til kontinuert afprøvning af en flydende kommaberegningsenhed, eller en anden 5 beregningsenhed i et passende beregningsenhedssystem.
Den foreliggende opfindelse forringer ikke systemets svartider, tilfører en ubetydelig marginalomkostning og er fuldstændig gennemsigtigt for programmøren.
Opfindelsen, som den er defineret i krav 1, angår et 10 databehandlingssystem med en første og en anden bereg ningsenhed, hvori den første beregningsenhed vælger en diagnostisk operation til udførelse i enheden, når den første beregningsenhed detekterer et tidsinterval, hvori den anden beregningsenhed er i gang med at udføre 15 en instruktion, og den første beregningsenhed vil være i tomgang. Den første beregningsenhed vælger en diagnostisk operation, som den kan færdiggøre, før den anden beregningsenhed er færdig med at udføre en instruktion. Opfindelsen tilbyder en fordel, idet diagnostiske ope-20 rationer kan udføres i den ene beregningsenhed, når den anden beregningsenhed udfører instruktioner, og diagnostiske operationer kan derfor udføres uden ekstra tidsforbrug i databehandlingssystemet.
Ifølge den foreliggende opfindelse er mindst to beregnings-25 enheder, såsom en instruktionsudførelsesberegningsenhed (EU) og en flydende kommaberegningsenhed (FPAP) forbundet parallelt til fælles indgangsbus, hvorved de samtidig modtager information, der anbringes på bussen af en anden enhed (en instruktions- og operandhentende enhed).
30 Informationen på bussen er pakket i et forudbestemt format, såsom bytes der indeholder instruktionskoder, for instruktioner, der skal udføres, og operanddata, der er de variable data, der skal anvendes ved udførelsen' af disse instruktioner. Både instruktionsudførelsesbe-
DK 166237 B
5 regningsenheden og flydende kommaberegningsenheden dekoder instruktionskoderne. Når EU'en dekoder en instruktionskode, der angiver, at den instruktion skal udføres af EU, udfører den denne instruktion. Når FPAP'en de-5 koder en instruktion, der skal udføres i FPAP'en, udfører den den instruktion. Under normale omstændigheder har FPAP'en ikke ansvaret for udførelse af nogen instruktioner i en EU instruktionscyklus. Derfor vil FPAP'en, når den dekoder en instruktion, der skal udføres i EU’en, 10 ifølge den foreliggende opfindelse i stedet for at blive i tomgangen, udføre diagnose funktion, sålænge EU'en arbejder.
FPAP'en vælger i hvert tilfælde den aktuelle diagnostiske funktion, der skal udføres, ud fra et stort antal 15 tilgængelige diagnostiske funktioner. Valget af diagnos tiske funktioner er afhængig af hvilken instruktion, der skal udføres af EU'en. For ikke at forsinke hele systemet, vælges der en diagnostisk funktion, hvis udførelsestid er tilpasset udførelsestiden for den in-20 struktion der udføres af EU'en. Dvs., at der vælges en diagnostisk funktion, således at FPAP'en vil afslutte denne funktion, før EU'en afslutter sin funktion. Systemkonstruktøren må da have et forudgående kendskab til EU'en funktionsudførelsestider, FPAP diagnosefunk-25 tionsudførelsestider og må da kortlægge forholdet mellem EU funktioner og FPAP diagnosefunktioner på en sådan måde, at dette resultat opnås. Som følge heraf er sammenhængen mellem EU funktioner (eller instruktionskoder) og FPAP diagnosefunktioner et spørgsmål om konstruk-30 tionsvalg og ikke begrænset af den foreliggende opfindelse.
Da FPAP'en modtager operanddata, ligesåvel som instruktionskoder over instruktionsbussen, anvendes operanddata i mange af de diagnostiske funktioner, hvorved der tilføres en grad tilfældighed til afprøvningssignalerne.
DK 166237B
6
Dette gør det muligt at'detektere fejl, som er afhængige af de værdier, såsom fejl der forårsages af bits, der er tvunget til en fast værdi på nul eller et. Det skal bemærkes, at de operanddata, der på denne måde anvendes, 5 kan udgøre operander der normalt anvendes af EU'en.
Selv om disse operander ikke er tænkt som flydende kommatal, kan de fortolkes af FPAP'en, som dette var tilfældet og kan anvendes i de diagnostiske funktioner som flydende kommatal. En eller flere variable kan frem-10 komme fra EU over en skrivebus, eller fra generelt an vendelige registre.
På denne måde bliver både FPAP'ens dataveje og styrelogik undersøgt ved udførelsen af hver ikke flydende kommafunktion, hvorved det er muligt hurtigt at detektere 15 en FPAP fejl, og derved gøre det muligt for systemet at deaktivere en defekt FPAP (i mange tilfælde) før at den har haft mulighed for at frembringe upålidelige udgangsdata.
Når der udføres en FPAP selv-diagnoserutine som ovenfor 20 beskrevet, og der optræder en fejltilstand, eller den detekteres af fejlrutinen, frembringes der et FPAP fejlsignal. Dette FPAP fejlsignal lagres i FPAP'en indtil EU'en kan behandle dette, hvilket vil sige i det tidsrum, hvor FPAP'en behandler den næste flydende kommatalsbereg-25 ning. Andre data kan også lagres, såsom en identifikation af den diagnosefunkton, der blev udført da fejlen optrådte, de operanddata som diagnosefunktionen anvendte, og de fejlagtige resultater, der blev frembragt af flydende kommaberegningsenheden. Mens den næste flydende 30 kommaberegning udføres, rapporteres fejlen til EU'en, der bestemmer årsagen til fejlen, for så vidt at den er i stand til det, hvilket vil sige i det mindste det modul, i hvilket fejlen optræder, identificeres. Hvis årsagen til fejlen er af en sådan art, at "næste" fly-
DK 166237B
7 dende kammaberegning ikke vil blive udført korrekt, kan denne beregning standses. Hvis årsagen til uheldet er isoleret fra og ikke vil påvirke den næste beregning, kan denne fortsætte uforandret.
5 Ved at anvende pseudotilfældige operanddata, og til sta dighed at udføre diagnoseundersøgelser i "baggrunden" i et langt tidsrum, udføres der flere diagnostiske undersøgelser af FPAP'en, end der ellers ville blive udført, hvis man brugte en af de tidligere kendte fremgangsmåder.
10 Den foreliggende opfindelse er også anvendelig ved af prøvning af FPAP'ens konstruktion, idet det er nemmere at skelne mellem transiente fejl og konstruktionsfejl.
Dvs., at når en FPAP diagnosefunktion medfører at der 15 detekteres en fejl, kan fejlen analyseres med henblik på at afgøre, om den er udtryk for et systematisk problem.
En metode til at afgøre dette, er at udføre den samme diagnosefunktion med de samme operanddata på et andet system af samme konstruktion. Hvis den samme fejl optræder, 20 kan årsagen antages at være en konstruktionsfejl snarere end en transient optrædende fejl.
Opfindelsen skal nu beskrives nærmere med henvisning til tegningen, af hvilken:
Fig. 1 er et generelt blokdiagram for et digitalt data-25 behandlingssystem, der indeholder flere beregningsenheder, såsom en centralberegningsenhed og udgør et eksempel for omgivelserne omkring den foreliggende opfindelse, fig. 2 er et blokdiagram der viser opbygningen af den centrale beregningsenhed, hvori der anvendes flere bereg-30 ningsenheder, såsom en instruktionsberegningsenhed og en flydende kommatalsberegningsenhed, hvori den foreliggende opfindelse er specielt anvendelig,
DK 166237 B
8 fig. 3 er en skematisk beskrivelse af en informations byte, der kan overføres til den flydende kommatalsberegningsenhed 34 fra fig. 2, fig. 4 er et blokdiagram af en del af det i fig. 2 viste 3 sy'stem, hvor den ændrer opbygning af den flydende komma talsberegningsenhed, og fig. 5 er en skematisk illustration af formatet for et flydende kommatalsdataord, der kan behandles af flydende kommatalsberegningsenheden fra fig. 2 og 4.
10 Som det er vist i fig. 1 er de grundlæggende dele i et databehandlingssystem i hvilke opfindelsen anvendes, den centrale behandlingsenhed 10, en lagerenhed 11, og en indgangs/udgangsenhed 12. Beregningsenheden 10 udfører de instruktioner, der er lagret i adresserbare 15 lagerlokationer i lagerenheden 11. Instruktionerne er identiske med operationer der skal udføres på operander, der også er lagret i adresserbare lokationer i lagerenheden. Beregningsenheden 10 henter instruktionerne og operanderne, efterhånden som der er behov for det, 20 og de behandlede data tilbageføres til lagerenheden.
Beregningsenheden 10 overfører også styringsinformationer til enheder i indgangs/udgangsdelene, hvorved disse aktiveres til at udføre forudbestemte handlinger, såsom at overføre data til, eller at hente data fra lagerenheden 25 11. Sådanne data kan være instruktioner, eller behandlede data, der hentes fra lagret med henblik på lagring eller udlæsning.
En brugerkonsol 13 tjener som brugerens forbindelse til systemet. Den gør det muligt for brugeren at under-30 søge og afgive data, stoppe den centrale beregningsenhed 10's funktion, eller trinvis at styre den centrale beregningsenhed gennem en sekvens af instruktioner, og kontrol-
DK 166237B
9 lere beregningsenhedens reaktion på disse instruktioner.
Det er også muligt for en bruger at initialisere systemet ved hjælp af en "boot strap" procedure. Det er endelig 5 også muligt at udføre forskellige afprøvninger af hele databehandlingssystemet.
Den centrale beregningsenhed 10 er forbundet til lagerenheden 11 gennem adskillige busser, der her betegnes med henvisningstallet 14. Den centrale beregningsenhed 10 10 er forbundet direkte til en lagerstyreenhed 15, der igen er forbundet til et antal lagerenheder 16 over en enhedsbus 17. I en specifik udførelsesform indeholder lagerstyreenheden 15 også et "cache" lager. Lagerstyre-enheden 15 indeholder kredsløb, der er indrettet til 15 at udtage indholdet af adresserede lokationer fra enten "cachen" eller enhederne 16, og til at lagre informationen i disse på sædvanlig måde. "Cache"-lagerenheder er velkendte indenfor teknikken og skal ikke beskrives yderligere her.
20 Databehandlingssystemet kan indeholde adskillige arter af indgangs/udgangsenheder, deriblandt pladelagre, båndstationer, fjernskrivere, tastaturer og skærmterminaler, og lignende. Disse enheder 20 er gennem en indgangs/ud-gangsbus 21 forbundet til en busadapter 22. Indgangs/ud-25 gangsbussen 21 kan være udformet som det er beskrevet i U5 patentskrift nr. 4 232 366. Der kan også anvendes andre arter af indgangs/udgangsbusser til at forbinde lignende indgangs/udgangsenheder (ikke vist), der indeholder en indgangs/udgangsbus 23, der er forbundet til 30 en busadapter 24, der kan være udformet som det er be skrevet i US patentskrift nr. 3 815 099.
Busadapterne 22 og 24 er indrettet til at sende data til og modtage data fra lagerstyreenheden 15 over en
DK 166237B
10 adapterbus 25. Busadapterne er også forbundet til en "interrupt" forespørgsel/givet (request/grant) bus 26, over hvilken busadapterne kan afbryde behandlingen i den centrale behandlingsenhed 10, i det tilfælde, hvor 5 der sker en ændring af status for en eller flere af indgangs/udgangsenhederne 20, hvilket sker på helt sædvanlig måde. Den centrale beregningsenhed 10 overfører på denne måde "interrupt" forespørgsels/givet signaler direkte til enhederne i indgangs/udgangsdelene, og over-10 fører styreinformation til og modtager statusinformation fra enhederne i indgangs/udgangsdelene 12 gennem lagerstyreenheden 15. Lagerstyreenheden styrer således overførelsen af data til og fra den centrale beregningsenhed 10, og indgangs/udgangsdelene 12, og overførelsen af 15 styre- og statusinformation mellem den centrale bereg ningsenhed og indgangs- og udgangsdelene 12.
Den foreliggende opfindelse omhandler specielt den centrale beregningsenhed 10, der er vist mere detaljeret på fig.
2. Den centrale beregningsenhed 10 indeholder 3 underen-20 heder, en instruktions- og operandhenteenhed (ΙΒ0Χ) 30, en instruktionsberegningsenhed (EU) 32 og en flydende kommatalseksekveringsenhed (FPAP) 34. IBOX'en 30 overfører gennem den virtuelle adresseinstruktionsbus 36 den virtuelle adresse for hver instruktion (eller sekvens af in-25 struktioner) til lagerstyreenheden 15, således at disse hentes fra lagerenheden 16 og hvert resultat kan skrives i lagerenheden 16. ΙΒ0Χ skriver information til lagerstyreenheden 15 (der derefter overføres til lagerenheden 16), og læser information fra lagerstyreenheden 15 gennem 30 en lagerdatabus 38.
Beregningsenheden 10 er forbundet til lagerstyreenheden 15 gennem en tredie bus 42. Formålet og virkemåden for denne bus er beskrevet yderligere nedenfor. Busserne 36, 38 og 42 svarer til de med henvisningstal 14 benævn-
DK 166237 B
11 te busser i fig. 1.
Instruktionshenteenheden 30 henter instruktioner der skal udføres i beregningsenheden 10 fra lageret, og de operanddata der skal anvendes ved udførelsen af disse instruktioner. Sådanne instruktions- og operanddata 5 overføres til EU'en 32 og FPAP'en 34 samtidig over en instruktionsbus 44. Informationen, der overføres over instruktionsbussen 44, kan f.eks. være pakket i bytes på et forudbestemt antal bits. I en mulig udførelses-form, der er vist i fig. 3, angiver en enkelt byte 58 10 både en instruktionskode 54 og data 56 for en første operand "A". Naturligvis kan instruktionskode 54 og operanden 56 ligesåvel angives i særskilte bytes. Ope-randen 56 kan udgøre en operand der normalt tænkes anvendt af EU'en. Selv om en sådan operand ikke repræsen-15 terer et flydende kommatal, kan den af FPAP'en fortolkes, som om dette var tilfældet, og kan anvendes i en diagnosefunktion på samme måde som et flydende kommatal.
Over instruktionsbussen 44 fremføres der to typer instruktioner. Typisk vil arten af instruktionen angives af 20 en eller flere forudbestemte bits i instruktionskoden.
F.eks. kan den første bit i instruktionskoden 54 anvendes til at angive instruktionstypen. Den første type instruktion (hvor bit 58 har værdien 0), angiver at instruktionen skal udføres i beregningsenheden 32, og en anden 25 type instruktion (f.eks. hvor bit 58 har værdien 1), angiver en instruktion, der skal udføres i flydende kommaberegningsenheden 34. Beregningsenheden 32 og beregningsenheden 34 dekoder samtidig instruktionskoderne 54 på bus 44, og hver af disse beregningsenheder vil, 30 når de genkender en instruktion, der er rettet mod den selv, begynde at udføre instruktionen. Resultatet af de instruktioner, der udføres beregningsenheden 32 og beregningsenheden 34 overføres til IBOX'en 40 gennem
DK 166237B
12 en "Write" bus (WBUS) 62. Resultatet af registerændringer overføres af IBOX'en 30 og EU'en 32 via WBUS 62 til FPAP 34 og IBOX 40.
Ifølge den foreliggende opfindelse vil FPAP 34 imidler-5 tid når den detekterer en instruktionskode, for en in struktion der skal udføres af EU 32, vælge en diagnosefunktion, som FPAP'en udfører på sig selv. Valget af diagnosefunktionen afhænger af den specifikke EU instruktion der blev dekodet. Dvs., at hver EU instruktion 10 er parret sammen med en eller flere diagnostiske funk tioner, der kræver mindre tid til udførelse af FPAP'en, end den minimale tid, EU'en anvender til at udføre den instruktion, der angives af instruktionskoden. Hvis der kan vælges mere end én diagnostisk funktion til 15 en given instruktionskode, da kan man anvende én eller flere bits i en operand, som retningsgivende for det endelige valg af diagnostisk funktion.
DA FPAP instruktioner sædvanligvis fordrer, at der udøves en aritmetisk operation på to operander, er det nødven-20 digt, at der findes en anden operandkilde ud over de operander, der fremkommer over instruktionsbussen 44.
Der findes to yderligere kilder til operander ud over instruktionsbussen 44. Den anden kilde er WRITE bussen 62, der kan overføre data fra beregningsenheden 32 og 25 instruktionshenteenheden 30. Som en tredie kilde findes der et antal generelle registre 64 i selve den flydende talberegneenhed.
Fig. 4 viser beregningsenheden 10, i hvilken opfindelsen er indeholdt. Den centrale beregningsenhed indeholder 30 en henteenhed 30, og en instruktionsberegningsenhed 32, der overfører adresser over busserne 36 og 42 til et ikke vist lager. Henteenheden 30 modtager instruktioner fra lageret over en lagerdatabus 38. Henteenheden dekoder
DK 166237 B
13 instruktionerne, henter operanderne og overfører dem • til beregningsenheden 32, eller til en flydende kommaberegningsenhed 34, idet disse overførelser sker over en operandbus 44. Beregningsenheden 32 udfører instruk-5 tionerne, undtagen de instruktioner, der tilhører den velkendte klasse af flydende kommainstruktioner, der udføres af flydende kommaberegningsenheden 34. Beregningsresultaterne tilbageføres til henteenheden 30 over en WRITE bus 62, med henblik på lagring i lagerenheden 10 over lagerdatabussen 38.
Beregningsenheden 32 er også forbundet til en ikke vist konsol over en konsolbus 13A. Konsollen tjener som bruger-mellemled, og gør det muligt for brugeren at undersøge og anbringe instruktioner og operander, at standse den 15 centrale beregningsenhed 10, eller trinvist at styre beregningsenheden gennem en instruktionssekvens og bestemme dens reaktioner på denne. Konsollen gør det også muligt for brugeren at initialisere systemet ved hjælp af en "bootstrap" procedure, og endeligt er det også 20 muligt via konsollen at udføre forskellige diagnostiske undersøgelser på hele databehandlingssystemet.
Beregningsenheden 32 er også forbundet til en "interrupt" forespørgsels/bevilget bus 66, til enheder i et indgangs/ udgangssystem (ikke vist), der kan omfatte skrivere, 25 fjernskrivere, tastaturer og skærmterminaler, ligesåvel som pladelagre og båndstationer. Bussen 66 overfører "interrupt" forespørgselssignaler fra indgangs/udgangs-enhederne til beregningsenheden 32, og "interrupt" bevilget signaler fra overførelsesenheden til indgangs/ud-30 gangsenhederne.
Som det er nævnt tidligere behandler flydende kommatalsberegningsenheden 34 flydende kommainstruktioner. Disse instruktioner gør det muligt for beregningsenheden at
DK 166237 B
14 udføre instruktioner på operander, der er formatteret med flydende komma, hvilket er vist i fig. 5. En flyden-, de komma operand indeholder en eksponentdel 68 og en decimalbrøk 70, der hver indeholder en fortegnsbit 72 5 og 74, der angiver fortegnet for de respektive dele 68 og 70. Flydende kommainstruktioner er sædvanligvis begrænset til aritmetiske instruktioner, såsom addition, subtraktion, multiplikation og division eller variationer af disse instruktioner. Flydende kommatalsbe-10 regningsenheden 34 indeholder to decimalbrøksbehandlings veje, den ene, et additionsmodul 76, udfører addition og subtraktion, og den anden, et multiplikationsmodul 78, udfører multiplikationer og divisioner på operan-dens brøkdel 70. Et eksponentbehandlingsmodul 80 behandler 15 eksponentdelen 63 i flydende kommatalsoperanden ved en hver flydende kommatalsoperation.
Behandlingsmodulerne 76, 78 og 80 modtager flydende kommatalsoperander fra et antal kilder. En af disse kilder er operandbussen 44, og data modtages fra et 20 operandbuslager 82. Andre kilder for operander er WRITE
bussen 62, fra hvilken data modtages fra et WRITE buslager 84. Den tredie kilde for operander til behandlingslogikken 76, 78 og 80, er et antal generelle registre 64, der er indeholdt i flydende kommatalsberegnings-25 enheden 34. Disse generelle registre 64 opdateres gennem WRITE buslageret 84, af beregningsenheden 32.
Behandlingsmodulerne 76, 78 og 80 styres af mikroinstruk-tioner, der frembringes af et mikrokodestyrelager 86, hvorfra de vælges af en mikrosekvensstyreenhed 88 på 30 sædvanlig måde.
Derudover styres mikrokodesekvensstyreenheden 88 af et flydende kommatalsdiagnoselager (der er et læselager med tilfældig adgang) (FDRAM) 90, hvis funktion er som
DK 166237 B
15 følger. Et instruktionskodelager 92 overvåger de instruktionskoder, der overføres over instruktionsbussen 44, og lagrer de instruktioner, der fremkommer på denne.
I afhængighed af værdien af instruktionskoden i lageret 5 92, overfører FDRAM'en tilsvarende forudbestemt adresse til FDRAM lageret 94. Herfra overføres denne adresse til mikroinstruktionsstyrekredsløbet 88, som starter adressen fra en sekvens af mikroinstruktioner. Når instruktionskoden i lageret 92 angiver en EU instruktion, 10 der af den adresse der frembringes af FDRAM'en 90 star ten på FPAP diagnosesekvens.
En typisk FPAP diagnosesekvens der udøves på denne måde kan f.eks være udførelsen af beregningen AB-BA, og derefter følgende kontrol af om resultatet er nul. Ovenfor 15 angiver "A" en første variabel og "B" en anden variabel.
Værdien for én af variabierne, som "A", kan som det er angivet ovenfor være en operandværdi fra instruktionsbuslageret 82. Værdien for den anden variabel (i dette tilfælde "B") kommer fra WBUS 62 eller fra GPR'erne 20 64.
Når en FPAP selv-diagnoserutine er udført, som det er beskrevet her, eller der optræder en fejltilstand, eller denne opdages af fejlrutinen, frembringes der et FPAP fejlsignal. Dette FPAP fejlsignal lagres i FPAP'en til 25 EU'en kan behandle det, hvilket vil være, når FPAP'en behandler den næste flydende kommainstruktion. Andre data kan også lagres, såsom identifikation af den diagnosesekvens der blev udført, da fejlen optrådte, de operanddata, der anvendtes ved diagnosefunktionen, og fejlagtige 30 resultater, der blev frembragt af flydende kommatalsbereg ningsenheden. Mens den næste flydende kommatalsinstruktion udføres, rapporteres fejlen til systemets "fejllog", der er af den type, der sædvanligvis vedligeholdes af databehandlingssystemets operativsystem. Før resultatet
DK 166237 B
16 af det næste flydende kommatalsberegning anvendes, vil EU'en, ved at anvende sædvanlige metoder til analyse af flydende kommatalsfejl, bestemme årsagen til fejltilstanden, for så vidt at det er muligt for beregningsen-5 heden 32 at gøre det, idet man dog i det mindste vil identificere det modul i hvilket fejlen er opstået.
Hvis årsagen til fejlen er af en sådan art, at den "næste" flydende kommatalsinstruktion ikke vil blive udført korrekt, kan denne instruktion standses. Hvis årsagen 10 til fejlen er isoleret fra og ikke vil påvirke den næste instruktion, kan denne fortsætte og ved afslutningen returnere sine resultater. Hvis f.eks. fejlen kan bestemmes til at hidrøre fra brøkdelsadditionsmodulet 76, men dette modul ikke anvendes ved udførelsen af 15 den "næste" instruktion, er der ikke nogen grund til at afbryde denne "næste" instruktion. Hvis instruktionen afbrydes, kan den udføres igen, eller den kan i stedet udføres i EU'en, da EU'en kan udføre flydende kommatalsberegninger, men dog ikke så hurtigt som FPAP'en. Nogle 20 gange vil årsagen til fejlen naturligvis være transient, og en ny udførelse af instruktionen vil kunne gennemføres korrekt. Derfor kræver de yderligere handlinger, der sker efter detektion af en fejl, analyse af fejlen for at bestemme, om denne er permanent eller ej. Hvis fejlen 25 ikke er permanent, eller ikke er særlig hyppig, er det ikke nødvendigt at foretage sig yderligere. Hvis imidlertid fejlen optræder for hyppigt, kan det være nødvendigt at lade beregningsenheden reparere.

Claims (10)

1. Databehandlingsssystem med to beregningsenheder, hvilket databehandlingssystem er indrettet sådan, at en første beregningsenhed (34) er tilnærmelsesvis i "tomgang", når den anden beregningsenhed (32) udfører 5 instruktioner, kendetegnet ved, at den første beregningsenhed indeholder a. organer (92), der er indrettet til at detektere begyndelsen af et tidsinterval, hvor den anden beregningsenhed vil udføre en instruktion, og hvor den første 10 beregningsenhed vil være i "tomgang", og b. organer (90, 94), der er indrettet til at vælge en diagnostisk operation til udførelse i den første beregningsenhed, mens den anden beregningsenhed udfører instruktionen, idet den diagnostiske funktion vælges blandt 15 et antal tilgængelige diagnostiske operationer på en sådan måde, at den første beregningsenhed vil have afsluttet behandlingen af den diagnostiske operation, inden den anden beregningsenhed afslutter behandlingen af nævnte instruktion.
2. Databehandlingssystem ifølge krav 1, kendetegnet ved, at det indeholder organer (62), der er indrettet til at tilføre den første og den anden beregningsenhed de samme operanddata, der kan anvendes af den første beregningsenhed til udøvelse af diagnostiske 25 operationer.
3. Databehandlingssystem ifølge krav 2, kende tegnet ved, at den første beregningsenhed er en flydende kommaberegningsenhed. DK 166237 B 18
4. Databehandlingssystem ifølge krav 1, kendetegnet ved, at det indeholder organer (62), der er indrettet til at tilføre begge processorer de samme instruktionskoder, og hvor de organer (92), der er indrettet 5 til at.detektere begyndelsen af et tidsinterval, hvor den anden beregningsenhed (32) udfører en instruktion, og i hvilket den første beregningsenhed (34) vil være i "tomgang", indbefatter organer, der er indrettet til at dekode instruktionskoderne og identificere de instruk-10 tioner, der skal udføres af den anden beregningsenhed.
5. Databehandlingssystem ifølge krav 4, kendetegnet ved, at organerne (90, 94) til at vælge en diagnoseoperation, der skal udføres i den første beregningsenhed, medens den anden beregningsenhed udfører 15 en instruktion, er indrettet til at vælge en sådan diag nostisk operation i afhængighed af instruktionskoden for den instruktion, der skal udføres af den anden beregningsenhed.
6. Databehandlingssystem ifølge ethvert af kravene 1-5, 20 kendetegnet ved, at de diagnostiske operationer er indrettet til at undersøge funktionen af den første beregningsenheds styrelogik og dataveje.
7. Databehandlingssystem ifølge krav 1, kendetegnet ved, at den første beregningsenhed (34) er en 25 flydende komma talberegningsenhed, der er indrettet til at udføre ikke-flydende komma talberegninger, hvilket databehandlingssystem endvidere omfatter en operandbus (44), der er indrettet til samtidigt til begge beregningsenheder at overføre instruktioner omfattende instruk-30 tionskoder og operander for operationer, der skal ud føres af disse beregningsenheder, hvor hver instruktions-kode enten angiver en operation, der skal udføres af den første beregningsenhed, eller en operation, der DK 166237 B 19 skal udføres af den anden beregningsenhed (32), og hvori detekteringsorganerne (92) omfatter organer, der er indrettet til at dekode de instruktionskoder, der fremkommer over operandbussen, og organer, der i afhængighed 5 af dekodningsorganerne ved detektion af en instruktions- kode for en ikke-flydende komma tidsoperation initierer den valgte diagnoseoperation, der skal udføres i den første beregningsenhed.
8. Selvafprøvningsapparat ifølge krav 7, kende- 10 tegnet ved, at udførelsestiden for den valgte diagnostiske operation, der initieres i afhængighed af detektionen af den nævnte instruktionskode, er kortere end den anden beregningsenheds (32) udførelsestid for udførelsen af den til instruktionskoden svarende instruk-15 tion.
9. Selvafprøvningsapparat ifølge krav 7, kendetegnet ved, at detektionen af en fejl i den første beregningsenhed (34), efter udførelsen af en selvafprøvningsoperation, ikke meddeles til den anden bereg- 20 ningsenhed (32), før den næstfølgende flydende komma tals instruktion udføres af den første beregningsenhed.
10. Selvafprøvningsapparat ifølge krav 7 eller krav 9, kendetegnet ved, at den første beregningsenhed fortolker ikke-flydende kommataloperander, der 25 overføres til den anden beregningsenhed over den nævnte operandbus, som flydende kommatalsoperander, og hvor sådanne operander anvendes som afprøvningsvariabier i de nævnte diagnostiske operationer.
DK526984A 1983-11-07 1984-11-06 Apparat til selv-afproevning af flydende kommaberegningsenheder DK166237C (da)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US06/549,612 US4583222A (en) 1983-11-07 1983-11-07 Method and apparatus for self-testing of floating point accelerator processors
US54961283 1983-11-07

Publications (4)

Publication Number Publication Date
DK526984D0 DK526984D0 (da) 1984-11-06
DK526984A DK526984A (da) 1985-06-14
DK166237B true DK166237B (da) 1993-03-22
DK166237C DK166237C (da) 1993-08-16

Family

ID=24193729

Family Applications (1)

Application Number Title Priority Date Filing Date
DK526984A DK166237C (da) 1983-11-07 1984-11-06 Apparat til selv-afproevning af flydende kommaberegningsenheder

Country Status (9)

Country Link
US (1) US4583222A (da)
EP (1) EP0141744B1 (da)
JP (1) JPS60175152A (da)
AU (1) AU563332B2 (da)
CA (1) CA1218748A (da)
DE (1) DE3484262D1 (da)
DK (1) DK166237C (da)
FI (1) FI87704C (da)
IE (1) IE56792B1 (da)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4723243A (en) * 1985-12-02 1988-02-02 Advanced Micro Devices, Inc. CRC calculation machine with variable bit boundary
US4720831A (en) * 1985-12-02 1988-01-19 Advanced Micro Devices, Inc. CRC calculation machine with concurrent preset and CRC calculation function
US4839895A (en) * 1987-01-07 1989-06-13 Nec Corporation Early failure detection system for multiprocessor system
US5226170A (en) * 1987-02-24 1993-07-06 Digital Equipment Corporation Interface between processor and special instruction processor in digital data processing system
US5091845A (en) * 1987-02-24 1992-02-25 Digital Equipment Corporation System for controlling the storage of information in a cache memory
JP2550063B2 (ja) * 1987-04-24 1996-10-30 株式会社日立製作所 分散処理システムのシミユレ−シヨン方式
DE3805391A1 (de) * 1988-02-20 1989-08-31 Cordell Steve Verfahren zur selbstpruefung eines random access memory (ram) einer schaltung
GB8828817D0 (en) * 1988-12-09 1989-01-18 Int Computers Ltd Data processing apparatus
US4982402A (en) * 1989-02-03 1991-01-01 Digital Equipment Corporation Method and apparatus for detecting and correcting errors in a pipelined computer system
US5030904A (en) * 1990-02-13 1991-07-09 Hewlett-Packard Company Diagnostic system for integrated circuits using existing pads
US5421002A (en) * 1991-08-09 1995-05-30 Westinghouse Electric Corporation Method for switching between redundant buses in a distributed processing system
JP2500038B2 (ja) * 1992-03-04 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ・コンピュ―タ・システム、フォ―ルト・トレラント処理方法及びデ―タ処理システム
US20030188044A1 (en) * 2002-03-28 2003-10-02 International Business Machines Corporation System and method for verifying superscalar computer architectures
US7206969B2 (en) 2003-09-10 2007-04-17 Hewlett-Packard Development Company, L.P. Opportunistic pattern-based CPU functional testing
US7711534B2 (en) * 2005-12-09 2010-05-04 International Business Machines Corporation Method and system of design verification
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
US9367493B2 (en) * 2005-12-09 2016-06-14 Globalfoundries Inc. Method and system of communicating between peer processors in SoC environment
US8150902B2 (en) 2009-06-19 2012-04-03 Singular Computing Llc Processing with compact arithmetic processing element
JP7114622B2 (ja) 2017-05-17 2022-08-08 グーグル エルエルシー ハードウェアにおける行列乗算の実行
US11467830B2 (en) * 2021-01-29 2022-10-11 Arm Limited Method of testing one or more compute units

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2165589A1 (de) * 1971-12-30 1973-07-19 Ibm Deutschland Anordnung zur programmgesteuerten bestimmung von fehlern in einer datenverarbeitungsanlage
GB1434186A (en) * 1972-04-26 1976-05-05 Gen Electric Co Ltd Multiprocessor computer systems
US3916178A (en) * 1973-12-10 1975-10-28 Honeywell Inf Systems Apparatus and method for two controller diagnostic and verification procedures in a data processing unit
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
JPS5827718B2 (ja) * 1978-09-08 1983-06-10 富士通株式会社 ダイヤルパルス信号処理方式
US4387427A (en) * 1978-12-21 1983-06-07 Intel Corporation Hardware scheduler/dispatcher for data processing system
JPS6053339B2 (ja) * 1980-10-09 1985-11-25 日本電気株式会社 論理装置のエラ−回復方式
JPS5776640A (en) * 1980-10-30 1982-05-13 Nec Corp Diagnostic system for additional processor
JPS57121750A (en) * 1981-01-21 1982-07-29 Hitachi Ltd Work processing method of information processing system
DE3138989A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Zusaetzliche funktionseinheit in einem mikroprozessor, mikroprozessorsystem und verfahren zu seinem betrieb
AU9144782A (en) * 1981-12-21 1983-06-30 General Electric Company Primary and secondary computer system

Also Published As

Publication number Publication date
AU563332B2 (en) 1987-07-02
US4583222A (en) 1986-04-15
JPH0574099B2 (da) 1993-10-15
DK526984D0 (da) 1984-11-06
IE56792B1 (en) 1991-12-18
FI844345A0 (fi) 1984-11-06
JPS60175152A (ja) 1985-09-09
IE842859L (en) 1985-05-07
CA1218748A (en) 1987-03-03
DK166237C (da) 1993-08-16
FI87704B (fi) 1992-10-30
FI87704C (fi) 1993-02-10
EP0141744A2 (en) 1985-05-15
EP0141744B1 (en) 1991-03-13
AU3470284A (en) 1985-05-16
DE3484262D1 (de) 1991-04-18
FI844345L (fi) 1985-05-08
DK526984A (da) 1985-06-14
EP0141744A3 (en) 1988-03-16

Similar Documents

Publication Publication Date Title
DK166237B (da) Apparat til selv-afproevning af flydende kommaberegningsenheder
US4312066A (en) Diagnostic/debug machine architecture
CA1255008A (en) Virtual command rollback in a fault tolerant data processing system
US4031517A (en) Emulation of target system interrupts through the use of counters
EP0528585B1 (en) Data processing system with internal instruction cache
US5109514A (en) Method and apparatus for executing concurrent CO processor operations and precisely handling related exceptions
US6754856B2 (en) Memory access debug facility
US3688263A (en) Method and apparatus for diagnosing operation of a digital processor
US3576541A (en) Method and apparatus for detecting and diagnosing computer error conditions
RU2137182C1 (ru) Выполнение инструкции обработки данных
US4231089A (en) Data processing system with apparatus for correcting microinstruction errors
US5712972A (en) Identification of faults in data paths and functional units of a central processing unit by a systematic execution of test instructions
CA1264198A (en) Circuit and a method for the selection of original data from a register log containing original and modified data
US4039813A (en) Apparatus and method for diagnosing digital data devices
US3916178A (en) Apparatus and method for two controller diagnostic and verification procedures in a data processing unit
JPH02220164A (ja) 入出力制御処理延期装置
CN112269705A (zh) 针对x86架构系统故障定位的检测板
US5404499A (en) Semi-automatic program execution error detection
US5901300A (en) Control store address stop
EP0297890A2 (en) Apparatus and method for data induced condition signaling
EP0526055A2 (en) Monitoring execution of a computer program to provide profile analysis
JPS6146535A (ja) 擬似エラ−設定制御方式
CA1165454A (en) Odd byte memory accessing in data processing apparatus
CN117491784A (zh) 一种模组老化测试方法、装置、设备和存储介质
JPS62210551A (ja) マイクロプログラム追跡装置

Legal Events

Date Code Title Description
PBP Patent lapsed