SE517917C2 - Integrated circuit for monitoring events in computer systems - Google Patents

Integrated circuit for monitoring events in computer systems

Info

Publication number
SE517917C2
SE517917C2 SE0101064A SE0101064A SE517917C2 SE 517917 C2 SE517917 C2 SE 517917C2 SE 0101064 A SE0101064 A SE 0101064A SE 0101064 A SE0101064 A SE 0101064A SE 517917 C2 SE517917 C2 SE 517917C2
Authority
SE
Sweden
Prior art keywords
integrated circuit
information
operating system
events
monitoring unit
Prior art date
Application number
SE0101064A
Other languages
Swedish (sv)
Other versions
SE0101064D0 (en
SE0101064L (en
Inventor
Mohammed El Shobaki
Original Assignee
Rfo Realfast Operating Systems
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 Rfo Realfast Operating Systems filed Critical Rfo Realfast Operating Systems
Priority to SE0101064A priority Critical patent/SE517917C2/en
Publication of SE0101064D0 publication Critical patent/SE0101064D0/en
Priority to PCT/SE2002/000561 priority patent/WO2002077810A1/en
Publication of SE0101064L publication Critical patent/SE0101064L/en
Publication of SE517917C2 publication Critical patent/SE517917C2/en

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/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Debugging And Monitoring (AREA)

Abstract

An integrated circuit (1) for a computer system, where the computer system comprises at least one processor (2) and an operating system which has at least one part (4) implemented in hardware, wherein said operating system part (4) is arranged in the integrated circuit (1). The integrated circuit (1) further comprises a unit (5) for supervising events in said computer system, wherein the supervising unit (5) has means for detecting events in the computer system and means for recording information about the events and that the supervising unit (5) is connected to said operating system part (4) in such a manner that information about internal events in the operation system part is possible to transfer to the supervising unit.

Description

:vara :rnan 10 15 20 25 30 35 517 917 bort de extra instruktionerna, kan nya fel uppstå på grund av att timingen ändras. : be: rnan 10 15 20 25 30 35 517 917 remove the extra instructions, new errors may occur due to the timing change.

Det är särskilt viktigt i ett realtidsoperativsystem att timingen inte påverkas av övervakningen. Realtidssystem är till skillnad från de flesta andra system oerhört känsliga för störningar i timingen.It is especially important in a real-time operating system that the timing is not affected by the monitoring. Real-time systems, unlike most other systems, are extremely sensitive to timing interruptions.

Betecknande för ett realtidsoperativsystem är att det är determi- nistiskt, vilket innebär att det alltid ska vara förutsägbart. Såle- des får inte övervakningen av ett realtidssystem förändra timing- en eller ordningen hos händelser i systemet.Significant for a real-time operating system is that it is deterministic, which means that it must always be predictable. Thus, the monitoring of a real-time system must not change the timing or order of events in the system.

Ett annan känd metod för att övervaka ett datorsystem är att an- vända en övervakningsanordning implementerad i hårdvara. En sådan övervakningsanordning innefattar sonder som ansluts till datorsystemet bussar och signaler. Övervakningsanordningen detekterar passivt vad som händer på bussen och samlar in in- formation om händelser som kan vara intressanta. Fördelen med att övervakningen sker med hjälp av hårdvara är att den inte in- terfererar med systemet som den övervakar. Ett problem med att använda en separat övervakningsanordning är att i vissa moder- na datorsystem är många funktioner integrerade fysiskt på sam- ma krets i samma kapsling. Det kan därför vara omöjligt att komma åt alla signaler som behövs för att erhålla en bra över- vakning. Kapslingen hos en integrerad krets bör helst inte vara för stor och har därmed ett begränsat antal pinnar. För att få ut alla signaler som är nödvändiga för övervakningen måste antalet pinnar ökas avsevärt och därmed måste kapslingens storlek ökas och det är inte önskvärt.Another known method of monitoring a computer system is to use a monitoring device implemented in hardware. Such a monitoring device comprises probes which are connected to the computer system by buses and signals. The monitoring device passively detects what is happening on the bus and collects information about events that may be of interest. The advantage of monitoring using hardware is that it does not interfere with the system it is monitoring. A problem with using a separate monitoring device is that in some modern computer systems many functions are physically integrated on the same circuit in the same enclosure. It may therefore be impossible to access all the signals needed to obtain good monitoring. The enclosure of an integrated circuit should preferably not be too large and thus has a limited number of pins. In order to obtain all the signals necessary for the monitoring, the number of pins must be increased considerably and thus the size of the enclosure must be increased and this is not desirable.

För att öka prestanda i ett datorsystem är det känt att imple- mentera hela eller åtminstone en del av operativsystemet i hård- vara i en extern enhet utanför processorn. Hög prestanda är sär- skilt viktigt i tillämpningar som utförs i realtid, såsom exempelvis i processtyrningsapplikationer. Ett hårdvaruoperativsystem har en realtidskärna som är anordnad på en integrerad krets som är fysiskt skild från processorn och realtidskärnan kommunicerar med processorn via en bussledning. Ett sådant datorsystem är .rann :arna 10 15 20 25 30 35 517 917 olämpligt att övervaka med mjukvara, eftersom timingen i syste- met kan påverkas. En övervakningsanordning kan visserligen an- slutas till bussen mellan processorn och hårdvaruoperativsyste- met men den information som finns att tillgå på bussen är inte tillräcklig för att kunna göra en tillförlitlig övervakning av syste- met eller för att hitta fel i programkoden.To increase the performance of a computer system, it is known to implement all or at least part of the operating system in hardware in an external device outside the processor. High performance is especially important in real-time applications, such as process control applications. A hardware operating system has a real-time core which is arranged on an integrated circuit which is physically separate from the processor and the real-time core communicates with the processor via a bus line. Such a computer system is unsuitable for monitoring software with software, as the timing of the system can be affected. Although a monitoring device can be connected to the bus between the processor and the hardware operating system, the information available on the bus is not sufficient to be able to make a reliable monitoring of the system or to find errors in the program code.

REDOGÖRELSE FÖR UPPFINNINGEN Ändamålet med uppfinningen är att tillhandahålla en integrerad krets som innefattar ett hårdvaruoperativsystem eller åtminstone en del av ett operativsystem som är implementerat i hårdvara och som möjliggör en tillförlitlig övervakning av händelser i datorsys- temet.DISCLOSURE OF THE INVENTION The object of the invention is to provide an integrated circuit which comprises a hardware operating system or at least a part of an operating system which is implemented in hardware and which enables a reliable monitoring of events in the computer system.

Detta ändamål uppnås med den inledningsvis angivna integrera- de kretsen som kännetecknas av att den vidare innefattar en en- het för att övervaka händelser i nämnda datorsystem, varvid övervakningsenheten har medel för att detektera händelser i da- torsystemet och medel för att spela in information om händelser- na, och att övervakningsenheten är ansluten till nämnda opera- tivsystemdel på så sätt att information om interna händelser i operativsystemdelen är överföringsbara till övervakningsenheten.This object is achieved with the initially indicated integrated circuit, which is characterized in that it further comprises a unit for monitoring events in said computer system, the monitoring unit having means for detecting events in the computer system and means for recording information about the events, and that the monitoring unit is connected to said operating system part in such a way that information about internal events in the operating system part is transferable to the monitoring unit.

Genom att anordna en övervakningsenhet på samma integrerade krets som hårdvaruoperativsystemdelen och ansluta dessa till varandra kan nödvändig information för övervakningen, exempel- vis information om interna händelser i operativsystemdelen, över- föras till övervakningsenheten. Sådan intern information finns inte att tillgå på bussen mellan processorn och operativsystem- delen. informationen om interna händelser är normalt oåtkomlig eller så känslig för störningar, såsom kapacitanser i ledningar, att den inte är mätbar. Övervakningsenheten ligger passiv och lyssnar av vad som händer i operativsystemet utan att påverka systemet och dess timing. När övervakningsenheten har detekte- rat en intressant händelse, spelar den in information om händel- sen. Denna information kan sedan analyseras exempelvis i syfte att hitta fel i systemet. Eftersom övervakningsenheten är konstru- »~:|| aint. 10 15 20 25 30 35 517 917 erad i hårdvara, finns det inget hinder för att även använda den för övervakning av godtyckliga fysiska signaler i systemet.By arranging a monitoring unit on the same integrated circuit as the hardware operating system part and connecting these to each other, necessary information for the monitoring, for example information on internal events in the operating system part, can be transmitted to the monitoring unit. Such internal information is not available on the bus between the processor and the operating system part. the information about internal events is normally inaccessible or so sensitive to disturbances, such as capacitances in lines, that it is not measurable. The monitoring unit is passive and listens to what is happening in the operating system without affecting the system and its timing. When the monitoring unit has detected an interesting event, it records information about the event. This information can then be analyzed, for example, in order to find errors in the system. Since the monitoring unit is constructed »~: || aint. 10 15 20 25 30 35 517 917 erad in hardware, there is no obstacle to also using it for monitoring arbitrary physical signals in the system.

I en föredragen utföringsform av uppfinningen är nämnda opera- tivsystem ett realtidsoperativsystem och nämnda operativsystem- del är en realtidskärna. Uppfinningen är särskilt fördelaktig om operativsystemet är ett realtidsoperativsystem, eftersom timingen i systemet inte påverkas av övervakningen enligt uppfinningen. l en utföringsform av uppfinningen innefattar operativsystemde- len organ för att administrera när ett antal deljobb ska exekveras av processorn och nämnda information innefattar information om aktuella tillstånd för deljobben. Detta är relevant information och kännedom om denna bidrar till en förbättrad övervakning av sys- temet. Denna information är svår att komma åt utanför den integ- rerade kretsen, men det faktum att övervakningsenheten och hårdvaruoperativsystemdelen är anordnade på samma integrera- de krets möjliggör att denna information på ett enkelt sätt kan överföras till övervakningsenheten.In a preferred embodiment of the invention, said operating system is a real-time operating system and said operating system part is a real-time core. The invention is particularly advantageous if the operating system is a real-time operating system, since the timing in the system is not affected by the monitoring according to the invention. In one embodiment of the invention, the operating system part comprises means for administering when a number of sub-jobs are to be executed by the processor and said information includes information about current conditions of the sub-jobs. This is relevant information and knowledge of this contributes to improved monitoring of the system. This information is difficult to access outside the integrated circuit, but the fact that the monitoring unit and the hardware operating system part are arranged on the same integrated circuit enables this information to be easily transmitted to the monitoring unit.

I en utföringsform av uppfinningen kommunicerar operativsystem- delen med en eller flera processorer via en buss och övervak- ningsenheten innefattar organ för att från nämnda buss ta emot information från processorn/processorerna. Genom att över- vakningsenheten är ansluten till bussen kan en processor adres- sera övervakningsenheten och föra över information om vad som händer i processorn till övervakningsenheten. Mjukvaran förses med programinstruktioner som överför information via bussen till övervakningsenheten. Övervakningen av programvaran kan såle- des dels göras på händelser i operativsystemdelen och dels på godtycklig information som mjukvaran själv genererar. På så sätt erhålls en kombination av hårdvaru- och mjukvaruövervakning.In an embodiment of the invention, the operating system part communicates with one or more processors via a bus and the monitoring unit comprises means for receiving information from said bus (es) from the bus (es). Because the monitoring unit is connected to the bus, a processor can address the monitoring unit and transmit information about what is happening in the processor to the monitoring unit. The software is provided with program instructions that transmit information via the bus to the monitoring unit. The monitoring of the software can thus be done partly on events in the operating system part and partly on arbitrary information that the software itself generates. In this way, a combination of hardware and software monitoring is obtained.

Detta innebär att övervakningen ytterligare förbättras, eftersom informationen om interna händelser i operativsystemet komplette- ras med information om händelser i mjukvaran. Eftersom det mesta av övervakningen sker i hårdvaran så behövs bara ett fåtal extra instruktioner i mjukvarukoden och därmed blir inte belast- »fiuuu a>;.. 10 15 20 25 30 35 517 917 ningen på systemet lika stor som när all övervakning sker i mjuk- varan. Tack vare att belastningen på systemet blir liten så behö- ver inte de extra instruktionerna tas bort när övervakningen är klar och på så sätt undvikes problem med timing.This means that monitoring is further improved, as the information about internal events in the operating system is supplemented with information about events in the software. Since most of the monitoring takes place in the hardware, only a few extra instructions are needed in the software code and thus the load on the system is not as great as when all monitoring takes place in soft. - the product. Due to the small load on the system, the extra instructions do not need to be removed when the monitoring is complete, thus avoiding problems with timing.

All information om händelser i processorn finns inte tillgänglig på bussen. I en utföringsform av uppfinningen innefattar den integ- rerade kretsen åtminstone en processor, vilken är ansluten till övervakningsenheten på så sätt att information om interna hän- delser i processorn är överföringsbara till övervakningsenheten.All information about events in the processor is not available on the bus. In one embodiment of the invention, the integrated circuit comprises at least one processor, which is connected to the monitoring unit in such a way that information about internal events in the processor is transferable to the monitoring unit.

Genom att integrera en eller flera processorer i datorsystemet pà samma krets som operativsystemdelen och övervakningsenheten är det möjligt att överföra information om interna händelser i pro- cessorn till övervakningsenheten. På så sätt kan övervakningen ytterligare förbättras. l en utföringsform av uppfinningen innefattar den integrerade kretsen organ för att överföra den lagrade informationen till en extern enhet för vidare analys av informationen. Den externa en- heten kan exempelvis vara en dator. De inspelade och lagrade händelserna sänds via en kommunikationslänk till den externa enheten, där de lagras i en databas. Den insamlade informatio- nen kan sedan exempelvis användas för händelsebaserad de- bugging, analys av systemets uppförande och statistik.By integrating one or more processors in the computer system on the same circuit as the operating system part and the monitoring unit, it is possible to transfer information about internal events in the processor to the monitoring unit. In this way, monitoring can be further improved. In one embodiment of the invention, the integrated circuit comprises means for transmitting the stored information to an external unit for further analysis of the information. The external device can be, for example, a computer. The recorded and stored events are sent via a communication link to the external device, where they are stored in a database. The collected information can then be used, for example, for event-based debugging, analysis of the system's behavior and statistics.

FIGURBESKRIVNING Föreliggande uppfinning ska nu förklaras med hjälp av olika så- som exempel beskrivna utföringsformer och med hänvisning till de bifogade ritningarna.DESCRIPTION OF THE DRAWINGS The present invention will now be explained by means of various embodiments described by way of example and with reference to the accompanying drawings.

Figur 1 visar ett blockschema för ett datorsystem med en inte- grerad krets enligt en utföringsform av uppfinningen.Figure 1 shows a block diagram of a computer system with an integrated circuit according to an embodiment of the invention.

Figur 2 visar ett blockschema för en övervakningsenhet anord- nad på den integrerade kretsen i figur 1. ;1ø:| ||--1 10 15 20 25 30 35 517 917 6 Figur 3 visar formatet för ett händelsepaket.Figure 2 shows a block diagram of a monitoring unit arranged on the integrated circuit in Figure 1.; || --1 10 15 20 25 30 35 517 917 6 Figure 3 shows the format of an event package.

Figur 4 visar en annan utföringsform av en integrerad krets en- ligt uppfinningen.Figure 4 shows another embodiment of an integrated circuit according to the invention.

BESKRIVNING AV UTFÖRINGSFORMER Ett dataprogram är strukturerat i olika deljobb. Ett deljobb är ett sekventiellt program och utför en bestämd uppgift. l ett realtids- operativsystem prioriteras deljobben inbördes och om två deljobb ska exekveras samtidigt av processorn, utförs det deljobb som har högst prioritet. Det organ som administrerar när ett visst deljobb ska exekveras av processorn benämns en-schemalägga- re och utgör kärnan i ett realtidsoperativsystem. l figur 1 visas ett datorsystem innefattande en integrerad krets 1 enligt uppfinningen och tre processorer 2 anordnade parallellt med varandra. Processorerna 2 och den integrerade kretsen 1 är anslutna till varandra via en systembuss 3. Datorsystemet har ett realtidsoperativsystem vilket innefattar en realtidskärna 4 som är implementerad i hårdvara (RTK= Real Time Kernel) på den integ- rerade kretsen 1. Realtidskärnan 4 är anordnad att i huvudsak utföra samma funktioner som traditionella realtidsoperativsystem som är implementerade i mjukvara, exempelvis hantering, sche- maläggning och prioritering av deljobb, kommunikation och syn- kronisering mellan deljobben och avbrottshantering. Mer om hur ett realtidsoperativsystem är uppbyggt finns att läsa i boken "Utilization of hardware Parallelism in Realizing Real-Time Ker- nels" av Lennart Lind, ISBN 0280-4506.DESCRIPTION OF EMBODIMENTS A computer program is structured in different sub-jobs. A part-time job is a sequential program and performs a specific task. In a real-time operating system, the sub-jobs are prioritized among themselves and if two sub-jobs are to be executed simultaneously by the processor, the sub-job with the highest priority is performed. The body that administers when a certain part-time job is to be executed by the processor is called a scheduler and forms the core of a real-time operating system. Figure 1 shows a computer system comprising an integrated circuit 1 according to the invention and three processors 2 arranged in parallel with each other. The processors 2 and the integrated circuit 1 are connected to each other via a system bus 3. The computer system has a real-time operating system which comprises a real-time core 4 which is implemented in hardware (RTK = Real Time Kernel) on the integrated circuit 1. The real-time core 4 is arranged to essentially perform the same functions as traditional real-time operating systems that are implemented in software, such as handling, scheduling and prioritizing sub-jobs, communication and synchronization between sub-jobs and interrupt management. More about how a real-time operating system is structured can be read in the book "Utilization of hardware Parallelism in Realizing Real-Time Kernels" by Lennart Lind, ISBN 0280-4506.

Den integrerade kretsen innefattar vidare en övervakningsenhet 5 som är ansluten till realtidskärnan 4. Övervakningsenheten har till uppgift att detektera och spela in händelser i datorsystemet.The integrated circuit further comprises a monitoring unit 5 which is connected to the real-time core 4. The monitoring unit has the task of detecting and recording events in the computer system.

Händelser i operativsystemet kan exempelvis innebära: - systemanrop till operativsystemet, såsom skapa deljobb, ta bort deljobb, sända meddelande, ta emot meddelande, .l-t» :ip-u 10 15 20 25 30 35 517 917 - att tillståndet för ett deljobb ändras, såsom att ett deljobb för- sätts i blockerat tillstånd eller låses upp från en blockering, - avbrottsförfrågan från externa enheter.Events in the operating system may, for example, involve: - system calls to the operating system, such as creating sub-jobs, deleting sub-jobs, sending messages, receiving messages, etc. - ip-u 10 15 20 25 30 35 517 917 - changing the state of a sub-job such as a partial job being placed in a blocked state or unlocked from a block, - interruption request from external units.

För att övervaka händelser i operativsystemet är övervaknings- enheten 5 kopplad direkt i hårdvaran till ett antal utvalda signaler i realtidskärnan 4. Kopplingen är realiserad som en eller flera fy- siska ledningar 9 från interna signaler i realtidskärnan 4 till över- vakningsenheten 5. På så sätt är det möjligt att få tillgång till vär- defull information om vad som händer i operativsystemet. Dessa interna signaler innehåller bland annat information om tillståndet för deljobben i systemet, deljobbens prioritet, inre kommunika- tionsaktiviteter samt interna och externa avbrott.To monitor events in the operating system, the monitoring unit 5 is connected directly in the hardware to a number of selected signals in the real-time core 4. The connection is realized as one or more physical lines 9 from internal signals in the real-time core 4 to the monitoring unit 5. In this way, it is possible to gain access to valuable information about what is happening in the operating system. These internal signals contain, among other things, information about the state of the sub-jobs in the system, the priority of the sub-jobs, internal communication activities and internal and external interruptions.

I vissa fall finns det ett behov av att kunna generera händelser från mjukvaran, exempelvis för att kunna se om man passerat vissa kontrollpunkter eller rapportera innehållet i ett visst minne.In some cases, there is a need to be able to generate events from the software, for example to be able to see if you have passed certain control points or report the contents of a certain memory.

Sådana händelser kan produceras genom att mjukvaruinstruktio- ner införs i programkoden. Övervakningsenheten kan även an- vändas för att spela in generell information som genereras direkt ur mjukvaran, d.v.s. information som kommer direkt från exekve- ringen av mjukvaran på en eller flera av processorerna 2 i sys- temet. För att kunna övervaka händelser i mjukvaran och ta emot information från mjukvaran är övervakningsenheten 5 ansluten till systembussen 3. Mjukvaran genererar informationen genom att, via systembussen, skriva data till ett särskilt register i övervak- ningsenheten 5.Such events can be produced by inserting software instructions into the program code. The monitoring unit can also be used to record general information generated directly from the software, i.e. information that comes directly from the execution of the software on one or more of the processors 2 in the system. In order to be able to monitor events in the software and receive information from the software, the monitoring unit 5 is connected to the system bus 3. The software generates the information by, via the system bus, writing data to a special register in the monitoring unit 5.

Det är också möjligt att ansluta övervakningsenheten till en god- tycklig signal eller hàrdvaruenhet på den integrerade kretsen för övervakning av signalen eller hårdvaruenheten. Exempel på så- dana hårdvaruenheter är bussar och interna minnen. Detta inne- bär att övervakningsenheten även kan fungera som en vanlig lo- gikanalysator. Således kan övervakningsenheten 5 dessutom an- vändas för att hitta funktionella fel i hårdvaran. Detta är särskilt värdefullt i situationer, där konventionella felsökningsmetoder är problematiska att använda, exempelvis på grund av höga system- hastigheter eller att signalerna är svåra att komma åt på grund uaii: |»»|| 10 15 20 25 30 35 517 917 av att den integrerade kretsen har ett begränsat antal pinnar. En hårdvaruenhet 6 på den integrerade kretsen 1 är kopplad via fy- siska ledningar 10 till övervakningsenheten 5. Övervakningsenheten 5 är vidare ansluten via en parallell kom- munikationslänk 7 till en extern dator 8. Övervakningsenheten 5 lyssnar passivt på händelser, logiska och/eller på systemnivå, i realtidskärnan 4 och intressanta händelser spelas in. De inspela- de händelserna överförs sedan till en databas i den externa da- torn där vidare bearbetning och analys av informationen sker.It is also possible to connect the monitoring unit to an arbitrary signal or hardware unit on the integrated circuit for monitoring the signal or hardware unit. Examples of such hardware units are buses and internal memories. This means that the monitoring unit can also function as a standard logic analyzer. Thus, the monitoring unit 5 can also be used to find functional faults in the hardware. This is especially valuable in situations where conventional troubleshooting methods are problematic to use, for example due to high system speeds or that the signals are difficult to access due to uaii: | »» || 10 15 20 25 30 35 517 917 in that the integrated circuit has a limited number of pins. A hardware unit 6 on the integrated circuit 1 is connected via physical lines 10 to the monitoring unit 5. The monitoring unit 5 is further connected via a parallel communication link 7 to an external computer 8. The monitoring unit 5 listens passively to events, logic and / or system level, in real-time kernel 4 and interesting events are recorded. The recorded events are then transferred to a database in the external computer where further processing and analysis of the information takes place.

Den integrerade kretsen kan antingen implementeras i ASlC (Ap- plication Specific Integrated Circut) eller i en programmerbar hårdvara såsom FPGA (Field Programmable Gate Array). Alla komponenterna integreras på samma platta som företrädesvis är av kisel.The integrated circuit can either be implemented in ASlC (Application Specific Integrated Circut) or in a programmable hardware such as FPGA (Field Programmable Gate Array). All components are integrated on the same plate, which is preferably made of silicon.

Figur 2 visar ett blockschema över övervakningsenhetens 1 in- terna uppbyggnad. Övervakningsenheten innefattar en händelse- detektor 11, en timer 12, en händelseinspelare 13, en händelse- buffert 14 och ett gränssnitt 15 mot den externa datorn. lnsigna- ler till övervakningsenheten är dels hàrdkopplade signaler 9 från realtidskärnan, signaler på systembussen 3 och signaler 10 från hårdvaruenheten 6. lnsignalerna tas emot av händelsedetektorn 11 som detekterar om det har inträffat någon händelse som ska spelas in. Händelsedetektorn 11 är en komparator som jämför lnsignalerna med internt förutbestämda villkor. Det finns ett antal villkor som definierar vilka händelser som ska övervakas och dessa villkor är hàrdkodade i händelsedetektorn. Händelsede- tektorn detekterar om en händelse har inträffat genom att jämföra insignalerna med de förutbestämda villkoren.Figure 2 shows a block diagram of the internal structure of the monitoring unit 1. The monitoring unit comprises an event detector 11, a timer 12, an event recorder 13, an event buffer 14 and an interface 15 to the external computer. Inputs to the monitoring unit are hard-wired signals 9 from the real-time core, signals on the system bus 3 and signals 10 from the hardware unit 6. The inputs are received by the event detector 11 which detects if any event to be recorded has occurred. The event detector 11 is a comparator which compares the input signals with internally predetermined conditions. There are a number of conditions that define which events are to be monitored and these conditions are hard-coded in the event detector. The event detector detects if an event has occurred by comparing the input signals with the predetermined conditions.

Händelsedetektorn 11 innefattar tre olika detektorer 16-18 med olika förutbestämda villkor. Den första detektorn 16 tar emot de interna signalerna 9 från realtidskärnan och detekterar händelser i operativsystemet. Den andra detektorn 17 innefattar ett register som tar emot information från mjukvaran via bussen 3 och de- annan nal-u 10 15 20 25 30 35 517 917 tekterar när information skrivs till registret. Den tredje detektorn 18 tar emot signalerna 10 från övriga hàrdvaruenheter och de- tekterar händelser i hårdvaruenheterna.The event detector 11 comprises three different detectors 16-18 with different predetermined conditions. The first detector 16 receives the internal signals 9 from the real-time core and detects events in the operating system. The second detector 17 comprises a register which receives information from the software via the bus 3 and the second nal-u 10 15 20 25 30 35 517 917 detects when information is written to the register. The third detector 18 receives the signals 10 from the other hardware units and detects events in the hardware units.

När något av villkoren är uppfyllt, d.v.s. en händelse har detekte- rats, rapporteras händelsen vidare till händelseinspelaren 13.When any of the conditions are met, i.e. an event has been detected, the event is reported to the event recorder 13.

Händelseinspelaren har till uppgift att göra ett paket med infor- mation om händelsen som sedan kan överföras via gränssnittet 15 till den externa datorn. Händelseinspelaren 11 aktiveras av en eller flera startsignaler från händelsedetektorn och mottager samtidigt ett identifikationsnummer från händelsedetektorn. Iden- tifikationsnumret ger information till händelseinspelaren om vilka signaler som ska paketeras tillsammans med den detekterade händelsen. När händelseinspelaren aktiveras, skapar den ett in- formationspaket innefattande händelsens identifikationsnummer, signaler förknippade med händelsen och den aktuella tiden när händelsen detekterades. Händelsepaketet ska ha ett visst förut- bestämt format. Tiden avläses från timern 12 som är ansluten till händelseinspelaren 13.The task of the event recorder is to make a packet with information about the event which can then be transmitted via the interface 15 to the external computer. The event recorder 11 is activated by one or more start signals from the event detector and at the same time receives an identification number from the event detector. The identification number provides information to the event recorder about which signals are to be packaged together with the detected event. When the event recorder is activated, it creates an information packet including the event identification number, signals associated with the event and the current time when the event was detected. The event package must have a certain predetermined format. The time is read from the timer 12 connected to the event recorder 13.

Händelsepaketet lagras sedan i den interna händelsebufferten 14. Denna buffert är organiserad som en FIFO-kö, d.v.s. de äldsta paketen kommer ut först ur kön och det nyaste paketet kommer ut sist (FlFO=First ln First Out). Samtidigt som händel- sepaketen lagras i händelsebufferten lagras en indikation pà att en händelse har detekterats i ett statusregister (ejåvisat). Gräns- snittet 15 överför paketen till den externa datorn. Via gränssnittet kan den externa datorn få en indikation på att en händelse har inträffat och läsa ut händelsepaketet ur händelsebufferten 14. indikation på om en händelse har detekterats kan antingen fås genom att man läser ut informationen i statusregistret eller att man programmerar gränssnittet så att det automatiskt avger en signal när nya händelser finns tillgängliga i händelsebufferten.The event packet is then stored in the internal event buffer 14. This buffer is organized as a FIFO queue, i.e. the oldest packages come out first from the queue and the newest package comes out last (FlFO = First ln First Out). At the same time as the event packets are stored in the event buffer, an indication is stored that an event has been detected in a status register (not shown). The interface 15 transmits the packets to the external computer. Via the interface, the external computer can get an indication that an event has occurred and read out the event packet from the event buffer 14. indication of whether an event has been detected can be obtained either by reading the information in the status register or by programming the interface so that it automatically emits a signal when new events are available in the event buffer.

Storleken på händelsebufferten kan varieras och är applikations- beroende. 1:11» |».>n 10 15 20 25 30 35 517 917 10 Ibland kan det hända att man inte vill överföra alla detekterade händelser till den externa datorn. Till exempel om antalet hän- delser är stort. l händelsedetektorn 11 finns ett filter 19 i form av ett programmerbart register. Filtret 19 gör det möjligt att välja ut vilka händelser som man är intresserad av och bara släppa ige- nom dessa. Filtret 19 är kopplat till gränssnittet 15 och det är möjligt att från den externa datorn skicka instruktioner till filtret om vilka händelser som ska släppa igenom filtret.The size of the event buffer can be varied and is application dependent. 1:11 »|».> N 10 15 20 25 30 35 517 917 10 Sometimes you may not want to transfer all detected events to the external computer. For example, if the number of events is large. In the event detector 11 there is a filter 19 in the form of a programmable register. The filter 19 makes it possible to select which events you are interested in and just let them through. The filter 19 is connected to the interface 15 and it is possible to send instructions from the external computer to the filter about which events are to pass through the filter.

Figur 3 visar ett exempel på hur ett paket med information om en händelse kan se ut. Händelsepaketet innefattar tre olika informa- tionsfält, ett första fält 20 som innehåller händelsens identifika- tionsnummer, d.v.s. information om vilken typ av händelse det är fråga om, ett andra fält 21 som innehåller tiden och ett tredje fält 22 som innehåller mer information om händelsen i form av ett flertal parametrar. Ett exempel på en händelse är när processorn byter och börjar exekvera ett nytt deljobb. Parametrar som finns i det tredje fältet bör då innehålla information om id-numret på det nya deljobbet som ska exekveras och vilken av processorerna som ska exekvera deljobbet. För händelsen ”skicka meddelande” bör parametrarna innehålla id-nummer för det mottagande del- jobbet och en pekare till meddelandet.Figure 3 shows an example of what a package with information about an event might look like. The event package includes three different information fields, a first field 20 which contains the event identification number, i.e. information about the type of event in question, a second field 21 containing the time and a third field 22 containing more information about the event in the form of a plurality of parameters. An example of an event is when the processor switches and starts executing a new part-time job. Parameters contained in the third field should then contain information about the ID number of the new sub-job to be executed and which of the processors is to execute the sub-job. For the “send message” event, the parameters should include the ID number of the receiving sub-job and a pointer to the message.

Figur 4 visar en utföringsform av uppfinningen där en integrerad krets 29 innefattar en processor 30, en realtidskärna 4 hos ett operativsystem, en övervakningsenhet 5 och diverse övrig hård- vara 6. Datorsystemet i denna utföringsform har bara en proces- sor och denna är integrerad på samma krets som realtidskärnan 4 och övervakningsenheten 5. För ett datorsystem som innehåller flera processorer kan givetvis alla processorerna integreras på samma krets. Övervakningsenheten 5 är hårdkopplad till ett antal interna signaler i processorn 30. På så sätt får övervakningsen- heten tillgång till intern information om händelser som inte syns på systembussen. Exempel på sådana signaler är signaler till och från Cash-minnen i processorn. På samma sätt som i det fö- regående utföringsexemplet är övervakningsenheten 5 kopplad 517 917 11 till interna signaler i realtidskärnan 4 och till andra hårdvarufunk- tioner 6 på kretsen.Figure 4 shows an embodiment of the invention where an integrated circuit 29 comprises a processor 30, a real-time core 4 of an operating system, a monitoring unit 5 and various other hardware 6. The computer system in this embodiment has only one processor and this is integrated on the same circuit as the real-time core 4 and the monitoring unit 5. For a computer system containing several processors, of course, all the processors can be integrated on the same circuit. The monitoring unit 5 is hard-connected to a number of internal signals in the processor 30. In this way, the monitoring unit has access to internal information about events that are not visible on the system bus. Examples of such signals are signals to and from Cash memories in the processor. In the same way as in the previous embodiment, the monitoring unit 5 is connected 517 917 11 to internal signals in the real-time core 4 and to other hardware functions 6 on the circuit.

Uppfinningen är inte begränsad till de visade utföringsformerna 5 utan kan varieras och modifieras inom ramen för de efterföljande kraven. ;»~>:The invention is not limited to the embodiments shown but can be varied and modified within the scope of the appended claims. ; »~>:

Claims (7)

»iaun iiiin 10 15 20 25 30 35 517 917 12 PATENTKRAV»Iaun iiiin 10 15 20 25 30 35 517 917 12 PATENTKRAV 1. En integrerad krets (1) för ett datorsystem, där datorsyste- met innefattar åtminstone en processor (2, 30) och ett operativ- system, vilket åtminstone har en del (4) som är implementerad i hårdvara, varvid nämnda operativsystemdel (4) är anordnad på den integrerade kretsen (1), kännetecknad av att den integrerade , kretsen (1) vidare innefattar en enhet (5) för att övervaka hän- delser i nämnda datorsystem, varvid övervakningsenheten (5) har medel (11) för att detektera händelser i datorsystemet och medel (13) för att spela in information om händelserna, och att över- vakningsenheten (5) är ansluten till nämnda operativsystemdel (4) på så sätt att information om interna händelser i operativsys- temdelen är överföringsbara till övervakningsenheten.An integrated circuit (1) for a computer system, the computer system comprising at least one processor (2, 30) and an operating system, which has at least one part (4) implemented in hardware, said operating system part (4 ) is arranged on the integrated circuit (1), characterized in that the integrated circuit (1) further comprises a unit (5) for monitoring events in said computer system, the monitoring unit (5) having means (11) for detecting events in the computer system and means (13) for recording information about the events, and that the monitoring unit (5) is connected to said operating system part (4) in such a way that information about internal events in the operating system part is transferable to the monitoring unit. 2. En integrerad krets enligt krav 1, kännetecknad av att nämnda operativsystem (4) är ett realtidsoperativsystem och att nämnda operativsystemdel är en realtidskärna.An integrated circuit according to claim 1, characterized in that said operating system (4) is a real-time operating system and that said operating system part is a real-time core. 3. En integrerad krets enligt krav 1 eller 2, kännetecknad av att operativsystemdelen (4) innefattar organ för att administrera när ett antal deljobb ska exekveras av processorn och att nämn- da information innefattar information om aktuella tillstånd för deflobben.An integrated circuit according to claim 1 or 2, characterized in that the operating system part (4) comprises means for administering when a number of sub jobs are to be executed by the processor and that said information includes information on current states of the fl objects. 4. En integrerad krets enligt något av kraven 1-3, känneteck- nad av att nämnda operativsystemdel (4) kommunicerar med åt- minstone en processor (2, 30) via en buss (3) och att övervak- ningsenheten (5) innefattar organ (17) för att från bussen ta emot information om händelser i processorn.An integrated circuit according to any one of claims 1-3, characterized in that said operating system part (4) communicates with at least one processor (2, 30) via a bus (3) and that the monitoring unit (5) comprises means (17) for receiving from the bus information about events in the processor. 5. En integrerad krets enligt något av tidigare krav, känneteck- nad av att den innefattar åtminstone en processor (30), vilken är ansluten till övervakningsenheten (5) på så sätt att information om interna händelser i processorn är överföringsbara till över- vakningsenheten. 517 917 13An integrated circuit according to any one of the preceding claims, characterized in that it comprises at least one processor (30), which is connected to the monitoring unit (5) in such a way that information about internal events in the processor is transferable to the monitoring unit. 517 917 13 6. En integrerad krets enligt något av tidigare krav, känne- tecknad av att den innefattar organ (15) för att överföra den in- spelade informationen till en extern enhet (8) för vidare analys av informationen.An integrated circuit according to any one of the preceding claims, characterized in that it comprises means (15) for transmitting the recorded information to an external unit (8) for further analysis of the information. 7. En integrerad krets enligt något av tidigare krav, kanne- tecknad av att den utgör ett system integrerat på kisel. A111:An integrated circuit according to any one of the preceding claims, characterized in that it constitutes a system integrated on silicon. A111:
SE0101064A 2001-03-26 2001-03-26 Integrated circuit for monitoring events in computer systems SE517917C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
SE0101064A SE517917C2 (en) 2001-03-26 2001-03-26 Integrated circuit for monitoring events in computer systems
PCT/SE2002/000561 WO2002077810A1 (en) 2001-03-26 2002-03-22 An integrated circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE0101064A SE517917C2 (en) 2001-03-26 2001-03-26 Integrated circuit for monitoring events in computer systems

Publications (3)

Publication Number Publication Date
SE0101064D0 SE0101064D0 (en) 2001-03-26
SE0101064L SE0101064L (en) 2002-08-06
SE517917C2 true SE517917C2 (en) 2002-08-06

Family

ID=20283534

Family Applications (1)

Application Number Title Priority Date Filing Date
SE0101064A SE517917C2 (en) 2001-03-26 2001-03-26 Integrated circuit for monitoring events in computer systems

Country Status (2)

Country Link
SE (1) SE517917C2 (en)
WO (1) WO2002077810A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031869B2 (en) * 2001-12-28 2006-04-18 Hewlett-Packard Development Company, L.P. Method and apparatus for managing timestamps when storing data
US8386859B2 (en) 2010-04-30 2013-02-26 International Business Machines Corporation On-chip non-volatile storage of a test-time profile for efficiency and performance control
US8276018B2 (en) 2010-04-30 2012-09-25 International Business Machines Corporation Non-volatile memory based reliability and availability mechanisms for a computing device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5355501A (en) * 1990-03-09 1994-10-11 Novell, Inc. Idle detection system
JPH0816877B2 (en) * 1991-06-10 1996-02-21 インターナショナル・ビジネス・マシーンズ・コーポレイション Method and system for real-time capture and reduction of resource data for data processing system
GB9320052D0 (en) * 1993-09-29 1993-11-17 Philips Electronics Uk Ltd Testing and monitoring of programmed devices

Also Published As

Publication number Publication date
SE0101064D0 (en) 2001-03-26
SE0101064L (en) 2002-08-06
WO2002077810A1 (en) 2002-10-03

Similar Documents

Publication Publication Date Title
US8949671B2 (en) Fault detection, diagnosis, and prevention for complex computing systems
JP3367970B2 (en) How to monitor distributed systems
US7200776B2 (en) System and method for generating trace data in a computing system
US6944796B2 (en) Method and system to implement a system event log for system manageability
EP0444315B1 (en) System and method for software application event collection
US8132170B2 (en) Call stack sampling in a data processing system
US20080148240A1 (en) Method and apparatus for call stack sampling to obtain information for analyzing idle states in a data processing system
US20100017583A1 (en) Call Stack Sampling for a Multi-Processor System
CN101192192B (en) Task abnormity diagnosis method and system for real-time operating system
CN103339606A (en) Activity recording system for a concurrent software environment
JP5623557B2 (en) Method, apparatus, and computer program in a multi-threaded computing environment for collecting diagnostic data
US20040006724A1 (en) Network processor performance monitoring system and method
SE517917C2 (en) Integrated circuit for monitoring events in computer systems
US8468394B2 (en) Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items
WO2009147738A1 (en) Information processor, its control method and monitor program
US20030028859A1 (en) Method of collecting, visualizing and analyzing object interaction
US20240134731A1 (en) Intelligent exposure of hardware latency statistics within an electronic device or system
SU1711173A1 (en) Device for providing priority access to common bus
US20070171043A1 (en) Method of controlling monitoring control apparatus, computer program product, monitoring control apparatus, and electronic apparatus
US20070226737A1 (en) Methods, systems, and storage mediums for monitoring and controlling command usage
Rooney et al. Building a practical eventscheduler for a multi-processor architecture
SE524799C2 (en) Debugging method for single or multi process real time systems, identifies significant event break off point with unique marker comprising check sum
JP2001117785A (en) Multitask processing system
Atkins et al. Experiences with coroutines in BCPL
JP2005004356A (en) Message queue control system

Legal Events

Date Code Title Description
NUG Patent has lapsed