FR2681963A1 - Interruptions transparentes pour le systeme avec redemarrage automatique d'une sequence d'entree/sortie. - Google Patents

Interruptions transparentes pour le systeme avec redemarrage automatique d'une sequence d'entree/sortie. Download PDF

Info

Publication number
FR2681963A1
FR2681963A1 FR9210351A FR9210351A FR2681963A1 FR 2681963 A1 FR2681963 A1 FR 2681963A1 FR 9210351 A FR9210351 A FR 9210351A FR 9210351 A FR9210351 A FR 9210351A FR 2681963 A1 FR2681963 A1 FR 2681963A1
Authority
FR
France
Prior art keywords
instruction
cpu
input
output
interrupt
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9210351A
Other languages
English (en)
Other versions
FR2681963B1 (fr
Inventor
Kardach James
Nguyen Cau
Sivamani Kameswaran
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of FR2681963A1 publication Critical patent/FR2681963A1/fr
Application granted granted Critical
Publication of FR2681963B1 publication Critical patent/FR2681963B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • G06F9/3863Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

Une unité centrale (12) d'un système microprocesseur (10) est modifiée pour annoter une instruction d'entrée/sortie d'écriture après l'achèvement de l'écriture par l'unité bus (18). Une zone mémoire dédiée est prévue pour le stockage d'un programme utilitaire d'interruption système personnalisable, des données d'état du programme au moment de l'interruption et d'un indicateur de rupture de séquence d'entrée/sortie indiquant que l'unité centrale a été interrompue pendant l'exécution d'une instruction d'entrée/sortie. La zone mémoire dédiée n'est pas cartographiée normalement comme une partie de l'espace mémoire principal, la rendant ainsi inaccessible au système d'exploitation et aux applications. Une interruption de supervision système non masquable ayant une priorité plus haute que toutes les autres priorités masquables et non masquables est ajoutée aux interruptions de l'unité centrale (12). Une instruction REPRENDRE (en anglais "RESUME") est ajoutée aux instructions de l'unité centrale pour permettre la récupération de l'unité centrale dans l'état où elle se trouvait avant l'interruption et pour continuer l'exécution comprenant la ré-exécution automatique d'une instruction d'entrée/sortie interrompue. Il en résulte qu'un intégrateur système ou un fabricant d'équipements originaux peut fournir des interruptions transparentes au niveau système avec le redémarrage automatique de la rupture de séquence d'entrée/sortie qui fonctionneront de manière fiable dans tout environnement d'exploitation et il sera déchargé de la lourde tâche d'exploiter le redémarrage de la rupture de séquence d'entrée/sortie. Application à l'industrie informatique.

Description

ARRIERE PLAN DE L'INVENTION
1 Domaine de l'invention La présente invention concerne le domaine de l'architecture de microprocesseur En particulier, la présente invention est un procédé et un dispositif pour fournir des interruptions transparentes pour le système avec redémarrage automatique de la rupture de la séquence
d'entrée/sortie.
2 Demande de brevet connexe Cette demande est connexe à la demande de brevet U S No 07/594 278 déposée le 9 octobre 1990, attribué à l'ayant droit de la présente demande, Intel Corporation, et intitulée interruption transparente pour le système
(en anglais: Transparent System Interrupt).
3 Arrière-plan Dans la demande de brevet U S connexe en instance, on divulgue un procédé et un dispositif pour fournir des interruptions transparentes pour le système qui ont une application particulière dans une architecture de microprocesseur Le procédé et le dispositif divulgués dans la demande de brevet U S. connexe en instance résolvent le problème inhérent aux microprocesseurs de l'art antérieur, en particulier ceux qui ont un mode de fonctionnement protégé ainsi qu'un mode réel, de l'impossibilité pour un intégrateur système ou pour un fabricant d'équipements originaux (OEM) de
fournir des interruptions transparentes pour le système.
Des interruptions transparentes pour le système sont des interruptions au niveau système qui ne peuvent être translatées ou écrasées par tout système d'exploitation ou toute application, permettant ainsi, à un intégrateur système utilisant le microprocesseur de fournir des interruptions qui fonctionneront de manière fiable dans tout environnement d'exploitation Selon le mode de réalisation préféré divulgué dans la demande de brevet U S connexe en instance, une interruption transparente pour le système est invoquée par l'assertion d'un signal électrique sur une broche externe de la puce de l'unité centrale (UC) d'un jeu de puces à base de microprocesseur. Suite à l'assertion d'un signal électrique sur une broche externe de la puce de l'unité centrale (UC), l'unité centrale (UC) "cartographie" une zone mémoire dynamique (RAM) dédiée normalement "non cartographiée" dans laquelle le programme utilitaire d'interruption transparente pour le système est stocké dans une zone pré-déterminée de l'espace mémoire principal, l'unité centrale UC sauvegarde l'état en cours de l'unité centrale (UC) dans un emplacement dédié de la RAM, et elle commence l'exécution du programme utilitaire d'interruption transparente pour le système Le programme utilitaire d'interruption transparente pour le système comprend typiquement des instructions qui sont uniques pour une application particulière des interruptions transparentes pour le système du système dans lequel la puce de l'unité centrale (UC) est installée La récupération de l'interruption transparente pour le système est accomplie suite à la reconnaissance d'un événement externe qui invoque une instruction "Reprendre" (en anglais "Resume") provoquant la restauration de l'unité centrale (UC) exactement dans le même état que celui qui existait avant l'interruption transparente pour
le système.
Une application importante des interruptions transparentes pour le système est la mise en oeuvre des fonctions d'exploitation par lesquelles le processeur et/ou les autres dispositifs du système peuvent être
arrêtés effectivement pendant des périodes de non-
utilisation et ensuite redémarrés sans avoir besoin de passer par un programme de démarrage Cette fonction est particulièrement utile dans le cas d'ordinateurs fonctionnant sur batterie dans lesquels il est primordial d'économiser l'énergie Ainsi, par exemple, si un opérateur d'ordinateur est interrompu pendant le travail sur un programme d'application, le système peut être
éteint pour prolonger la durée de vie de la batterie.
Lorsque l'opérateur revient pour employer le système, il repart au même point dans le programme d'application comme si le système avait fonctionné pendant la période de temps intermédiaire L'opérateur n'a ni besoin de prendre une action quelconque pour sauvegarder des résultats du programme d'application avant l'interruption, ni de recharger le programme
d'application lorsqu'il revient utiliser l'ordinateur.
Dans la demande de brevet U S connexe en instance, l'interruption transparente pour le système ne fournit aucun support spécifique pour interrompre l'unité centrale (UC) pendant l'exécution d'une instruction entrée/sortie Cependant, le programme utilitaire transparent pour le système grâce à des instructions spécifiques d'application a la responsabilité de tester pour déterminer si l'unité centrale (Uc) a été interrompue pendant l'exécution d'une instruction d'entrée/sortie Si l'unité centrale (UC) a été interrompue pendant l'exécution d'une instruction d'entrée/sortie, le programme utilitaire transparent pour le système a de plus la responsabilité de déterminer quelle instruction d'entrée/sortie a été interrompue, d'arranger les registres appropriés concernant l'état de l'unité centrale (UC) sauvegardé dans l'emplacement mémoire dédié, de sorte que lorsque l'instruction "Reprendre" est exécutée pour restaurer l'état de l'unité centrale <UC), l'unité centrale (UC) ré-exécutera
l'instruction d'entrée/sortie interrompue, si nécessaire.
La manière dont le programme utilitaire transparent pour le système peut déterminer si l'unité centrale (UC) a été interrompue pendant l'exécution d'une instruction d'entrée/sortie, dépend du microprocesseur, cela est typiquement plutôt difficile à déterminer Pour le système, en exemple, à base du microprocesseur "i 386 R SX" exposé dans la demande de brevet U S connexe en instance, le programme utilitaire transparent pour le système détermine d'abord si l'unité centrale (UC) a été interrompue pendant l'exécution d'une instruction d'entrée/sortie en cherchant dans l'espace mémoire utilisateur à déterminer s'il s'est produit une rupture
de séquence.
Après avoir déterminé qu'une rupture de séquence s'est produite, le programme utilitaire transparent pour le système détermine quelle instruction d'entrée/sortie a
été exécutée en déterminant o est située l'instruction.
Pour faire cela, le programme utilitaire transparent pour le système doit déterminer le mode d'exécution de l'unité centrale (UC), obtenir l'adresse logique, et traduire l'adresse logique en adresse physique Ensuite, le programme utilitaire transparent pour le système détermine le type d'instruction, d'instruction d'entrée/sortie interrompue, la longueur de l'instruction, la longueur de l'adresse, et la longueur de l'opérande Pour faire cela, le programme utilitaire transparent pour le système doit déterminer un nombre de paramètres comprenant la dimension du segment mémoire, toute priorité d'adresse préfixée et toute priorité de
code d'opération préfixé.
L'approche d'avoir le programme utilitaire transparent pour le système responsable du redémarrage de l'unité centrale (UC) par une instruction d'entrée/sortie interrompue a au moins deux inconvénients: 1) la lourde charge de redémarrer l'unité centrale (UC) pour continuer l'exécution d'une instruction d'entrée/sortie interrompue est placée dans le programme utilitaire transparent pour le système, et 2) la manière dont l'unité centrale (UC) a redémarré après avoir été interrompue par une instruction
d'entrée/sortie dépend du microprocesseur.
RESUME DE L'INVENTION
Ainsi, un but de la présente invention est de fournir une interruption transparente pour le système améliorée avec un redémarrage automatique de la rupture
de séquence d'entrée/sortie.
Selon la présente invention, les instructions d'écriture d'entrée/sortie ne sont pas annotées L'unité centrale (UC) attend jusqu'à ce que l'unité de bus ait
fini l'écriture avant d'exécuter l'instruction suivante.
Une interruption transparente pour le système est invoquée par l'assertion du signal électrique sur la broche externe de la puce de l'unité centrale (UC) d'un jeu de puces à base de microprocesseur Suite à l'assertion d'un signal électrique sur une broche externe de la puce de l'unité centrale (UC), l'unité centrale (UC) "cartographie" une zone mémoire dynamique (RAM) dédiée, normalement "non cartographiée" dans laquelle le programme utilitaire transparent pour le système est stocké dans une zone pré-déterminée de l'espace mémoire principal, l'unité centrale sauvegarde l'état en cours de l'unité centrale (UC) dans un emplacement dédié de la mémoire RAM, et elle commence l'exécution du programme
utilitaire transparent pour le système.
L'état de l'unité centrale (UC) sauvegardé comprend un pointeur d'une instruction, un pointeur de l'instruction précédente, et une pluralité de registres de paramètres d'entrée/sortie Le programme utilitaire transparent pour le système place un indicateur de rupture de séquence d'entrée/sortie dans l'espace dédié en mémoire RAM, pour le cas o l'unité centrale (UC) serait interrompue pendant l'exécution d'une instruction d'entrée/sortie et que le programme utilitaire transparent pour le système veuille que l'instruction d'entrée/sortie interrompue redémarre, lorsque l'exécution reprend Le programme utilitaire transparent pour le système comprend typiquement des instructions qui sont uniques pour une application particulière des interruptions transparentes pour le système du système dans lequel on a installé la puce de l'unité centrale (UC). La récupération de l'interruption transparente pour le système est accomplie par la reconnaissance d'un événement externe qui invoque une instruction "Reprendre" provoquant la restauration de l'unité centrale (UC) exactement dans le même état que celui dans lequel elle était avant l'interruption transparente pour le système comprenant la ré-exécution de l'instruction d'entrée/sortie interrompue En particulier, pendant la restauration de l'état de l'unité centrale (UC), l'instruction "Reprendre" restaure le pointeur d'instruction, et le pointeur de l'instruction précédente, teste l'indicateur de rupture de séquence d'entrée/sortie, et recule conditionnellement le pointeur d'instruction d'un incrément au pointeur d'instruction précédent si l'indicateur de rupture de séquence a été activé De plus, si l'indicateur de rupture de séquence a été activé, les registres de paramètres d'entrée/sortie
sont restaurés dans des registres polyvalents appropriés.
Il en résulte que lorsque l'instruction "Reprendre" redémarre l'unité centrale (UC) pour exécuter l'instruction "suivante", une instruction d'entrée/sortie
interrompue sera automatiquement ré-exécutée.
BREVE DESCRIPTION DES DESSINS
Les buts, les caractéristiques et les avantages de la présente invention seront explicités par la
description détaillée qui suit du mode de réalisation
préféré de l'invention en se référant aux dessins dans lesquels: la figure 1 est un bloc diagramme fonctionnel d'un exemple de système microprocesseur concrétisant la
présente invention.
la figure 2 est un organigramme fonctionnel du logiciel câble (en anglais microcode) pour l'interruption transparente pour le système avec redémarrage automatique de la séquence de rupture d'entrée/sortie de la présente invention.
DESCRIPTION DETAILLEE
Vue d'ensemble du système En se référant maintenant à la figure 1, il est montré un bloc diagramme illustrant un exemple d'un système microprocesseur concrétisant la présente invention Le système microprocesseur en exemple est brièvement décrit ci-dessous; cependant, il est bien entendu que la présente invention n'est pas limitée à cette conception microprocesseur particulière, et peut
être incorporée dans virtuellement toute conception.
Le système microprocesseur en exemple 10 comprend trois composants principaux désignés sous GENCPU, GENIO et GENVGA GENCPU est une unité de traitement centrale étendue; GENIO est une unité d'entrée/sortie sur une seule puce; et GENVGA est une interface graphique sur une seule puce Les trois composants communiquent entre eux et avec les autres composants du système (par exemple des connecteurs d'extension, le contrôleur de clavier, les
contrôleurs disque) par le bus ISA 42.
GENCPU comprend une unité centrale (UC) 12, un contrôleur mémoire 14, un contrôleur de mémoire cache 16, une logique de commande 18 du bus et des mémoires tampons en ligne L'unité centrale (UC) 12 a, au moins deux
modes de fonctionnement, un mode réel et un mode protégé.
L'unité centrale (UC) 12 est essentiellement un R microprocesseur "i 386 SX" fabriqué, par Intel
Corporation, la société ayant droit de cette invention. Dans cette description, on emploie une certaine
terminologie concernant le microprocesseur "i 386 Rsx" r comme des noms de registres, une nomenclature de signaux, pour décrire la présente invention Une telle35 terminologie est comprise par des spécialistes du domaine de la conception de microprocesseur et ainsi ne sera pas
expliquée en détail ici.
En particulier, l'unité centrale (UC) 12 comprend une pluralité de registres généraux (non montrés), un registre pointeur d'instruction (non montré) contenant un pointeur d'instruction, et un registre pointeur de l'instruction précédente (non montré) contenant un pointeur de l'instruction précédente Le pointeur d'instruction commande l'accès instruction L'unité centrale (UC) 12 augmente automatiquement d'un incrément le pointeur de l'instruction et du pointeur de l'instruction précédente pour pointer respectivement, l'instruction suivante à exécuter et l'instruction qui vient juste d'être exécutée après exécution d'une
instruction.
L'unité centrale (UC) 12 comprend aussi des logiques (non montrées) pour exécuter une pluralité d'instructions Les instructions comprennent une pluralité d'instructions d'entrée/sortie de lecture et d'instructions d'entrée/sortie d'écriture Les instructions d'entrée/sortie d'écriture ne sont pas annotées et l'exécution de l'instruction suivante est différée par l'unité centrale (UC) 12 jusqu'à ce que l'unité de bus ait terminé l'écriture Chaque instruction d'entrée/sortie de lecture/écriture comprend une pluralité de paramètres d'entrée/sortie Les paramètres d'entrée/sortie sont stockés dans les registres polyvalents Les instructions, comprenant les instructions d'entrée/sortie de lecture/écriture, fonctionnent soit avec zéro, un opérande soit avec deux opérandes Un opérande réside soit dans l'instruction,
dans un registre soit dans un emplacement mémoire.
L'unité centrale (UC) 12 a deux modes de fonctionnement, un mode réel et un mode protégé Les différences principales entre le mode réel et le mode protégé sont il comment une adresse logique est traduite en adresse linéaire, la taille de l'emplacement adresse, et la
capacité de pagination.
De plus, l'unité centrale (UC) 12 comprend des logiques (non montrées) pour exécuter une pluralité d'interruptions de matériel (en anglais hardware) Des interruptions de matériel se produisent comme résultat d'un événement externe et sont classées en deux types: masquable et non masquable Des interruptions sont mises à jour après exécution de l'instruction en cours Lorsque le programme utilitaire d'interruption a terminé la mise à jour de l'interruption, l'exécution avance à l'instruction immédiatement après l'instruction interrompue Des interruptions masquables sont utilisées typiquement pour répondre à des événements matériels (hardware) externes asynchrones Des interruptions non masquables sont utilisées typiquement pour prendre en
charge des événements à très haute priorité.
Pour une description détaillée concernant les
registres et la structure interne d'une unité centrale (UC) 12, voir i 38 R SX Microprocessor, publié par Intel corporation sous le numéro de publication 240 187 et les
publications connexes.
GENIO comprend des ports parallèles (PIO) 22, deux ports séries (SIO) 24 a, 24 b, des unités horloge temps réel (RTC) 26, deux contrôleurs d'interruptions programmables (PIC) 28 a, 28 b, deux compteurs de temps programmables (PIT) 30 a, 30 b et deux contrôleurs d'accès mémoire directe (DMA) 32 a, 32 b GENGVA comprend un contrôleur graphique VGA 36, un contrôleur de mémoire vidéo 38 et une interface 40 pour une unité d'affichage à
écran plat.
De plus, en dehors de ces trois composants principaux, il y a la mémoire système 44, la mémoire cache 46, la mémoire vidéo 48, et une interface (PAL/DAC) pour un moniteur VGA conventionnel La mémoire système 44, la mémoire cache 46 et la mémoire vidéo 48 sont accessibles respectivement par le contrôleur de mémoire 14, le contrôleur de mémoire cache 16 et le contrôleur de mémoire vidéo 38 On peut aussi accéder à la mémoire vidéo 48 par le bus ISA 42, et les deux interfaces 40, 50.
Pour une description détaillée concernant le
microprocesseur "i 38 b SX" voir i 38 e SX Microprocessor Hardware Référence Manual, publié par Intel corporation sous le numéro de publication 240 332 et les publications connexes. Interruption Transparente pour le système Avec Redemarrage Automatique de Rupture de Séquence d'entrée/sortie La présente invention est mise en oeuvre au moyen de trois améliorations de l'architecture microprocesseur de l'art antérieur conventionnel, par exemple, dans l'architecture du 'i 38 b' des ayants-droit, comme suit: 1 Une nouvelle interruption appelée interruption de supervision système (SSI) permettant de supplanter le mécanisme entier de protection du système microprocesseur avec un support spécifique afin de supplanter le mécanisme de protection alors que le microprocesseur exécute une instruction d'entrée/sortie L'interruption SSI est non masquable et a une priorité plus haute que toutes les autres interruptions, y compris tout autre interruption non masquable L'interruption SSI est mise à
jour par un programme utilitaire d'interruption SSI.
2 Une zone mémoire spéciale transparente pour le système appelée système d'exploitation RAM ou SMRAM (en anglais "System Management RAM ou SMRAM") pour stocker le programme utilitaire d'interruption SSI, l'état de l'unité centrale (UC) au moment o elle a été interrompue, et un indicateur de rupture de séquence d'entrée/sortie L'indicateur de rupture de séquence d'entrée/sortie indiquant si l'unité centrale (UC) a été interrompue pendant l'exécution d'une instruction d'entrée/sortie Dans le microprocesseur, l'unité de mémoire peut comprendre une mémoire dynamique RAM sur la carte, la zone mémoire dédiée étant une partie de ladite mémoire dynamique située sur la carte L'unité de mémoire peut aussi comprendre une mémoire dynamique située en dehors de la carte, couplée à un contrôleur de mémoire dynamique RAM située sur la carte, la zone de mémoire l 4 is dédiée étant une partie de la RAM située en dehors de la carte. 3 Une nouvelle instruction, appelée "Reprendre" (en anglais "Resume") pour replacer le système microprocesseur dans l'état oà il était juste avant avoir été interrompu par une interruption SSI et pour reprendre l'exécution à l'instruction suivante ou pour ré- exécuter automatiquement l'instruction d'entrée/sortie
interrompue.
le En se référant maintenant à la figure 2, il est montré un organigramme illustrant le logiciel câble (en anglais microcode) de l'interruption SSI de la présente invention Une interruption SSI est invoquée par l'assertion d'un signal électrique sur une broche externe d'une puce de l'unité centrale (UC) Suite à la détection du signal sur la broche externe de la puce de l'unité centrale (UC) (événement SSI), l'unité centrale (UC) "cartographie" la mémoire SMRAM comme une zone prédéterminée de l'espace mémoire principal, bloc 102 La mémoire SMRAM est normalement non "cartographiée" comme une partie de l'espace mémoire principal, la rendant ainsi inaccessible au système d'exploitation et aux applications De plus, l'unité centrale (UC) sauvegarde l'état de l'unité centrale (UC) dans l'espace mémoire SMRAM, bloc 104, elle commute l'unité centrale (UC) en mode réel, bloc 106, elle ré-initialise les registres de commande du programme de l'unité centrale (UC), bloc 108 et elle démarre l'exécution du programme utilitaire
d'interruption SSI, bloc 110.
L'état de l'unité centrale (UC) sauvegardé comprend le pointeur d'instruction, le pointeur de l'instruction précédente, les registres des paramètres d'entrée/sortie Le programme utilitaire d'interruption SSI place l'indicateur de rupture de séquence d'entrée/sortie dans l'emplacement dédié de la RAM, pour le cas o l'unité centrale (UC) serait interrompue pendant l'exécution d'une instruction d'entrée/sortie et que le programme utilitaire d'interruption veuille redémarrer l'instruction d'entrée/sortie interrompue lorsque l'exécution reprend Le programme utilitaire d'interruption SSI comprend typiquement des instructions qui sont uniques pour une application particulière de l'interruption SSI du système dans lequel on a installé
la puce de l'unité centrale (UC).
La récupération de l'interruption SSI est accomplie suite à la reconnaissance d'un événement externe qui invoque l'instruction "Reprendre" (événement RSM) Suite à la détection d'un événement externe, l'unité centrale (UC) restaure l'état de l'unité centrale (UC) stocké dans la zone mémoire SMRAM, bloc 112, elle teste afin de déterminer si l'indicateur de rupture de séquence d'entrée/sortie a été activé, bloc 113 Si l'indicateur de rupture de séquence d'entrée/sortie a été activé, branche 113 a, l'unité centrale (UC) recule le pointeur d'instruction d'un incrément au pointeur de l'instruction précédente, bloc 114 De plus, les registres de paramètres d'entrée/sortie sont restaurés avec les valeurs qu'ils avaient avant que l'interruption
se soit produite.
Si l'indicateur de rupture de séquence d'entrée/sortie n'est pas activé, branche 113 b, ou suite au recul du pointeur d'instruction d'un incrément au pointeur de l'instruction précédente, bloc 115, l'unité centrale (UC) sort de la zone mémoire SMRAM et la "cartographie" comme une partie de la place mémoire principale, bloc 116, et elle continue l'exécution du système d'exploitation interrompu ou du programme d'application, bloc 117 Ainsi, si l'indicateur de rupture de séquence d'entrée/sortie a été activé suite à une reprise du programme utilitaire d'interruption système, l'interruption d'entrée/sortie interrompue sera ré-exécutée Cependant, si l'indicateur de rupture de séquence d'entrée/sortie n'est pas activé suite à une reprise du programme utilitaire système, l'instruction
suivante sera exécutée.
A l'exception de la sauvegarde du pointeur d'instruction et du pointeur de l'instruction précédente, de la sauvegarde des registres de paramètres d'entrée/sortie, du test de l'indicateur de rupture de it séquence d'entrée/sortie, du recul du pointeur d'instruction d'un incrément et de la restauration conditionnelle des registres de paramètres d'entrée/sortie, on a décrit en détail ces améliorations, comprenant une application spécifique de l'interruption de SSI, l'interruption de l'exploitation de l'énergie (en anglais Power Management Interrupt PMI), dans la demande de brevet U S connexe en instance, qui est entièrement
incorporée ici, à titre de référence.
Alors que le procédé de la présente invention a été décrit à présent dans les termes de son mode de réalisation préféré, les spécialistes reconnaîtront que le procédé de la présente invention n'est pas limité à la forme du mode de réalisation préféré décrit, en ce moment Le procédé de la présente invention peut être appliqué avec des modifications et des transformations
dans l'esprit et le but des revendications annexées Les
spécifications et les dessins doivent être regardés, par conséquent, à titre d'illustration plutôt que dans un
sens restrictif.
t,

Claims (10)

REVENDICATIONS
1 Système microprocesseur amélioré comprenant une unité centrale (UC) ( 12) couplée au moins à une unité mémoire ( 44) et au moins à une unité de bus ( 18) pour exécuter un système d'exploitation et au moins un programme d'application comprenant une pluralité d'instructions d'unité centrale ( 12), ladite unité centrale ( 12) ayant de plus au moins deux modes d'exécution de programme, un mode réel, et un mode protégé, et au moins une interruption pour interrompre l'exécution du programme, dans lequel l'amélioration dudit système microprocesseur comprend: (a) ladite unité centrale (UC) ( 12) attend que cette unité de bus ait terminé d'exécuter une instruction d'entrée/sortie d'écriture avant d'exécuter une instruction suivante, lesdites instructions comprenant au moins une instruction d'entrée/sortie comprenant ladite instruction d'entrée/sortie d'écriture20 (b) lesdites unités de mémoires ( 44) ayant une zone mémoire dédiée pour le stockage d'un programme de traitement d'interruption, des données d'état du processeur de ladite unité centrale (UC) ( 12), et un indicateur de rupture de séquence d'entrée/sortie, ladite zone mémoire dédiée n'étant pas organisée comme une partie de l'espace mémoire principal conservant ainsi ladite zone mémoire dédiée inaccess Lb-le audit système d'exploitation et auxdits programmes d'application, ledit programme de traitement d'interruption comprenant des instructions pour déterminer si ladite unité centrale (UC) ( 12) a été interrompue pendant une desdites instructions d'entrée/sortie et pour activer conditionnellement ledit indicateur de rupture d'entrée/sortie pour indiquer que ladite unité centrale ( 12) a été interrompue pendant une desdites instructions d'entrée/sortie et ladite instruction d'entrée/sortie interrompue est à redémarrer lorsque ladite unité centrale ( 12) reprend l'exécution; lesdites données d'état du processeur comprenant un pointeur d'instruction, un pointeur d'instruction précédente, et au moins un registre de paramètres d'entrée/sortie, ledit pointeur d'instruction et ledit pointeur de l'instruction précédente pointant une première et une seconde instruction dudit système d'exploitation et des instructions du programme d'application, ladite première instruction étant la prochaine instruction à être exécutée par ladite unité centrale ( 12), ladite seconde instruction venant juste d'être une instruction exécutée par ladite unité centrale (UC) ( 12), lesdits registres de paramètres d'entrée/sortie étant associés aux instructions d'entrée/sortie exécutées le plus récemment; ledit indicateur de rupture de séquence d'entrée/sortie indiquant si ladite unité centrale (UC) ( 12) a été interrompue pendant l'exécution de l'une desdites instructions d'entrée/sortie; (c) lesdites interruptions ayant une interruption de supervision du système (SSI) pour interrompre l'exécution dudit système d'exploitation et desdits programmes d'application, pour entrer dans la zone mémoire dédiée et pour cartographier ( 102) ladite zone mémoire dédiée comme un segment pré-déterminé de l'espace mémoire principal, pour stocker ( 104) lesdites données d'état du processeur de ladite unité centrale (UC) ( 12) dans ladite zone mémoire dédiée, pour commuter ( 105) ladite unité centrale (UC) ( 12) dans ledit mode réel d'exécution, et pour débuter ( 106) l'exécution dudit programme de traitement d'interruption, ladite SSI n'étant pas masquable par ledit système d'exploitation et par lesdits programmes d'applications, et ladite SSI ayant une priorité plus haute que les autres interruptions; (d) lesdites instructions ayant une instruction "Reprendre" pour restaurer ( 112) lesdites données d'état du processeur sauvegardées, à partir de ladite zone mémoire dédiée vers ladite unité centrale (UC) ( 12), pour tester ( 118) ledit indicateur de rupture de séquence d'entrée/sortie pour déterminer s'il est activé, pour reculer conditionnellement ledit pointeur d'instruction restauré d'un incrément audit pointeur de l'instruction précédente si ledit indicateur de rupture d'entrée/sortie a été activé ( 113 a), pour charger ledit pointeur du port d'entrée/sortie restauré et ladite taille constante de la mémoire tampon d'entrée/sortie restauré, dans deux registres polyvalents de ladite unité centrale (UC) ( 12), pour sortir de la zone mémoire ( 116) et pour "décartographier" ladite zone de mémoire dédiée dans l'espace mémoire principal, et pour reprendre l'exécution dudit système d'exploitation ( 108) et desdits programmes d'application ( 110); permettant ainsi à ladite unité centrale (UC)
( 12) d'être interrompue de manière fiable et au redémar-
rage automatique ( 118) de la rupture de la séquence d'en-
trée/sortie d'être affecté audit programme utilitaire d'interruption de manière transparente pour ledit système d'exploitation et pour lesdits programmes d'application. 2 Système microprocesseur amélioré selon la revendication 1, dans lequel ladite unité mémoire comprend une mémoire dynamique (RAM) sur la carte, et ladite zone mémoire dédiée est une partie de ladite
mémoire dynamique RAM située sur la carte.
3 Système microprocesseur amélioré selon la revendication 1, dans lequel ladite unité mémoire ( 44) comprend une mémoire dynamique située en dehors de la carte, couplée à un contrôleur de mémoire dynamique RAM située sur la carte. 4 Système microprocesseur amélioré selon la revendication 1, dans lequel ladite unité centrale (UC)
( 12) comprend un moyen d'interruption pour le déclenche-
ment desdites interruptions comprenant ladite SSI, ladi-
te SSI étant déclenchée suite à la réception d'un signal électrique, ledit moyen d'interruption comprenant une
interface pour recevoir ledit signal électrique.
5 Système microprocesseur amélioré selon la revendication 4, dans lequel ladite interface est une
broche d'un circuit externe.
6 Système microprocesseur amélioré selon la revendication 4, dans lequel le système microprocesseur comprend en outre, un moyen de détection d'événement couplé à au moins une unité système dudit système microprocesseur et audit moyen interruption pour détecter un événement prédéterminé associé avec ladite unité système et pour générer pour ladite interface ledit
signal électrique suite à ladite détection.
7 Système microprocesseur amélioré selon la revendication 1, dans lequel ladite unité centrale (UC) ( 12) comprend un moyen d'instruction pour exécuter lesdites instructions comprenant lesdites instructions
d'entrée/sortie et ladite instruction "Reprendre".
8 Dans un système microprocesseur comprenant une unité centrale (UC) ( 12) couplée au moins à une unité mémoire et à une unité bus ( 18) pour exécuter un système d'exploitation et au moins un programme d'application comprenant une pluralité d'instructions d'unité centrale (UC) ( 12), ladite unité centrale (UC) ( 12) ayant en outre au moins deux modes d'exécution de programme, un mode réel et un mode protégé, et au moins une interruption pour interrompre l'exécution du programme, un procédé pour interrompre de manière fiable ladite unité centrale (UC) ( 12) et pour fournir un redémarrage automatique de la rupture de la séquence d'entrée/sortie, d'une manière transparente pour ledit système d'exploitation et pour lesdits programmes d'application comprenant les étapes de: (a) stockage d'un programme de traitement d'interruption dans une zone mémoire dédiée de ladite unité mémoire, ladite zone mémoire dédiée étant non organisée comme une partie de l'espace mémoire principal conservant ainsi ladite zone mémoire dédiée inaccessible audit système d'exploitation et auxdits programmes d'application; (b) attente jusqu'à ce que cette unité de bus ait terminé l'exécution d'une instruction d'entrée/sortie d'écriture avant d'exécuter une instruction suivante, lesdites instructions comprenant une instruction d'entrée/sortie qui comprend ladite instruction d'entrée/sortie d'écriture (c) interruption de l'exécution dudit système d'exploitation et desdits programmes d'application suite à la réception d'une entrée pré-déterminée, ladite interruption étant impossible à masquer par ledit système d'exploitation et par lesdits programmes d'application et ayant une priorité plus haute que les autres interruptions; (d) commutation dans la zone mémoire dédiée et cartographie de ladite zone mémoire dédiée comme un segment prédéterminé de l'espace mémoire principal; (e) stockage des données d'état du processeur de ladite unité centrale (UC) ( 12) dans ladite zone mémoire dédiée; lesdites données d'état du processeur comprenant un pointeur d'instruction, un pointeur d'instruction précédente, et au moins un registre de paramètres d'entrée/sortie, ledit pointeur d'instruction et ledit pointeur d'instruction précédente pointant une première instruction et une seconde instruction dudit système d'exploitation et desdits programmes d'applications, ladite première instruction étant l'instruction suivante à exécuter par l'unité centrale (UC) ( 12), ladite seconde instruction étant l'instruction venant juste d'être exécutée par l'unité centrale (UC) ( 12), lesdits registres de paramètres d'entrée/sortie étant associés à l'instruction d'entrée/sortie exécutée le plus récemment; (e' commutation de ladite unité centrale (UC) ( 12) en mode réel d'exécution; (g) détermination ( 106) si ladite unité centrale (UC) ( 12) a été interrompue pendant l'exécution de l'une desdites instructions d'entrée/sortie, et dans le cas o ladite unité centrale (UC) ( 12) serait interrompue pendant l'exécution de l'une desdites instructions d'entrée/sortie et que ladite instruction d'entrée/sortie interrompue soit à ré-exécuter lorsque ladite unité centrale (UC) ( 12) reprend l'exécution, pour stocker ( 107) ledit indicateur de rupture de séquence d'entrée/sortie dans ladite zone mémoire dédiée; (h) démarrage ( 108) de l'exécution dudit programme de traitement d'interruption; (i) restauration desdites données sauvegardées de l'état du processeur, ladite restauration étant commandée par ledit programme utilitaire d'interruption; (j) détermination ( 113) si ledit indicateur de rupture de séquence d'entrée/sortie est activé et si ledit indicateur de rupture de séquence d'entrée/sortie est activé ( 113 a), recul dudit pointeur d'instruction restauré d'un incrément audit pointeur d'instruction précédente restauré, et restauration desdits registres de paramètres d'entrée/sortie; (k) commutation pour sortir de la zone mémoire dédiée ( 116) et "décartographie" de ladite zone mémoire dédiée dans ledit espace mémoire principal; et (i) reprise ( 118) de l'exécution dudit système d'exploitation et desdits programmes d'application à
l'instruction pointée par ledit pointeur d'instruction.
9 Procédé selon la revendication 8, dans lequel ladite unité mémoire comprend de la mémoire dynamique (RAM) située sur la carte, et ladite zone mémoire dédiée
est une partie de ladite mémoire RAM sur la carte.
Procédé selon la revendication 8, dans lequel ladite unité mémoire comprend de la mémoire RAM située hors de la carte couplée audit contrôleur de mémoire RAM située sur la carte, et ladite zone mémoire dédiée est
une partie de la RAM située en dehors de la carte.
11 Procédé selon la revendica-
tion 8, dans lequel lesdites étapes (c) à (h) sont réalisées par des moyens d'interruption de ladite unité centrale (UC) ( 12) suite à la réception d'un signal électrique, ledit moyen d'interruption comprenant une
interface pour recevoir ledit signal électrique.
12 Procédé selon la revendication 11, dans lequel ladite interface est une broche d'un circuit externe. 2 E; 13 Procédé selon la revendication 11, dans lequel ledit signal électrique est généré et fourni par ladite interface par un moyen de détection d'événement couplé au moins à une unité du système dudit système microprocesseur et audit moyen d'interruption suite à la détection d'un événement pré-déterminé associé avec
ladite unité du système.
14 Procédé selon la revendication 11, dans lequel ladite étape (b) et lesdites étapes (i) à ( 1) sont réalisées par un moyen d'instruction de
ladite unité centrale (UC).
il
FR9210351A 1991-08-30 1992-08-28 Interruptions transparentes pour le systeme avec redemarrage automatique d'une sequence d'entree/sortie. Expired - Fee Related FR2681963B1 (fr)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US75310791A 1991-08-30 1991-08-30

Publications (2)

Publication Number Publication Date
FR2681963A1 true FR2681963A1 (fr) 1993-04-02
FR2681963B1 FR2681963B1 (fr) 1995-01-13

Family

ID=25029188

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9210351A Expired - Fee Related FR2681963B1 (fr) 1991-08-30 1992-08-28 Interruptions transparentes pour le systeme avec redemarrage automatique d'une sequence d'entree/sortie.

Country Status (5)

Country Link
JP (1) JP2753781B2 (fr)
DE (1) DE4228754C2 (fr)
FR (1) FR2681963B1 (fr)
GB (1) GB2259166B (fr)
HK (1) HK170895A (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06230979A (ja) * 1992-06-17 1994-08-19 Cyrix Corp 改良されたシステム管理方法および装置
US5475829A (en) * 1993-03-22 1995-12-12 Compaq Computer Corp. Computer system which overrides write protection status during execution in system management mode
US6093213A (en) * 1995-10-06 2000-07-25 Advanced Micro Devices, Inc. Flexible implementation of a system management mode (SMM) in a processor
US6557104B2 (en) 1997-05-02 2003-04-29 Phoenix Technologies Ltd. Method and apparatus for secure processing of cryptographic keys
US7925815B1 (en) * 2006-06-29 2011-04-12 David Dunn Modifications to increase computer system security
US8661265B1 (en) 2006-06-29 2014-02-25 David Dunn Processor modifications to increase computer system security

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0043910A2 (fr) * 1980-07-14 1982-01-20 International Business Machines Corporation Chaînage dans un appareil pour le traitement des données de canal
EP0180476A2 (fr) * 1984-11-01 1986-05-07 Advanced Micro Devices, Inc. Dispositif de commande de séquence de microprogramme

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4826169A (fr) * 1971-08-09 1973-04-05
JPS51114839A (en) * 1975-04-02 1976-10-08 Hitachi Ltd Data processor
JPS5384540A (en) * 1976-12-29 1978-07-26 Fujitsu Ltd Data processing unit
JPS599937B2 (ja) * 1980-02-20 1984-03-06 富士通株式会社 情報処理装置
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US4907150A (en) * 1986-01-17 1990-03-06 International Business Machines Corporation Apparatus and method for suspending and resuming software applications on a computer
JPS6468838A (en) * 1987-09-10 1989-03-14 Hitachi Ltd Level processing information processor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0043910A2 (fr) * 1980-07-14 1982-01-20 International Business Machines Corporation Chaînage dans un appareil pour le traitement des données de canal
EP0180476A2 (fr) * 1984-11-01 1986-05-07 Advanced Micro Devices, Inc. Dispositif de commande de séquence de microprogramme

Also Published As

Publication number Publication date
GB2259166A (en) 1993-03-03
DE4228754A1 (de) 1993-03-04
GB9217580D0 (en) 1992-09-30
HK170895A (en) 1995-11-17
DE4228754C2 (de) 1997-01-09
FR2681963B1 (fr) 1995-01-13
GB2259166B (en) 1995-05-03
JPH05233325A (ja) 1993-09-10
JP2753781B2 (ja) 1998-05-20

Similar Documents

Publication Publication Date Title
FR2680891A1 (fr) Interruptions transparentes pour le systeme avec adressage de la memoire etendue integree.
US10073703B2 (en) Booting an operating system of a system using a read ahead technique
US6571359B1 (en) Systems and methods for testing processors
US7689867B2 (en) Multiprocessor breakpoint
US9245113B2 (en) Out of band vital product data collection
KR100635519B1 (ko) 태스크 스위칭에 의한 제로 오버헤드 컴퓨터 인터럽트
US9262283B2 (en) Method for reading kernel log upon kernel panic in operating system
US20070101198A1 (en) Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
US20070168722A1 (en) Method and apparatus for detecting a fault condition and restoration thereafter using user context information
US10055234B1 (en) Switching CPU execution path during firmware execution using a system management mode
CN111095205A (zh) 用于片上系统的预启动环境的多核框架
CN101652747A (zh) 并行dll树初始化
US5274826A (en) Transparent system interrupts with automated input/output trap restart
US20080229141A1 (en) Debugging method
US5551008A (en) Method and system for resuming data processing in computer
FR2681963A1 (fr) Interruptions transparentes pour le systeme avec redemarrage automatique d&#39;une sequence d&#39;entree/sortie.
CN109582542B (zh) 一种嵌入式系统核心转储的方法
US20040225874A1 (en) Method for reduced BIOS boot time
US8880860B2 (en) Methods and apparatus for saving conditions prior to a reset for post reset evaluation
CN114443330A (zh) 看门狗重启故障确定方法、装置、电子设备及存储介质
CN101231588B (zh) 从协同例程环境执行事件驱动环境中函数的装置、系统和方法
KR101395007B1 (ko) 복수의 프로세서를 이용한 스냅샷 이미지 처리 장치 및 방법
JPH0375836A (ja) 資源情報引き継ぎ処理方法
CN101082879A (zh) 暂存器数据撷取方法与装置
CN118689678A (zh) 操作系统的异常分析方法、装置、计算机设备以及芯片

Legal Events

Date Code Title Description
ST Notification of lapse