FR2850471A1 - Systeme et procede pour utiliser une table d'interface microprogrammee pour charger de maniere dynamique plusieurs tables ssdt acpi. - Google Patents
Systeme et procede pour utiliser une table d'interface microprogrammee pour charger de maniere dynamique plusieurs tables ssdt acpi. Download PDFInfo
- Publication number
- FR2850471A1 FR2850471A1 FR0309694A FR0309694A FR2850471A1 FR 2850471 A1 FR2850471 A1 FR 2850471A1 FR 0309694 A FR0309694 A FR 0309694A FR 0309694 A FR0309694 A FR 0309694A FR 2850471 A1 FR2850471 A1 FR 2850471A1
- Authority
- FR
- France
- Prior art keywords
- ssdt
- fit
- firmware
- components
- namespace
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
La table d'interface microprogrammée (FIT) (109) d'un jeu d'instructions IA-64 est utilisée pour peupler l'espace des noms de composants matériels en utilisant des données de table SSDT, où les données de table SSDT décrivent des composants dans le système. A l'époque du lancement, tous les composants matériels sont découverts. Le sous-système d'interface ACPI, dans le microprogramme du système, consomme la configuration des données et charge les tables SSDT à partir de la table FIT (109) pour créer l'espace des noms pour les composants actifs du système. Il existe un genre de table FIT indiquant une entrée de table SSDT, et le sous-genre est indiqué en utilisant le champ version (119) de la table FIT.
Description
ARRI RE-PLAN
L'interface ACPI (" Advanced Configuration and Power Interface ", interface avancée pour la configuration et l'alimentation) est une spécification 5 qui rend les informations d'état d'un matériel disponibles pour un système d'exploitation dans des ordinateurs, en incluant les ordinateurs portables, les ordinateurs de bureau, les serveurs etc. On peut trouver des informations plus détaillées au sujet de 10 l'interface ACPI dans les 500 pages de " Advanced Configuration and Power Interface Specification " (spécification de l'interface avancée pour la configuration et l'alimentation) révision 2.0a, du 31 mars 2002, définie de manière coopérative par des 15 sociétés Compaq Computer Corporation, Intel Corporation, Microsoft Corporation, Phoenix Technologies Ltd et Toshiba Corporation. La spécification de l'interface ACPI a été développée pour établir des interfaces industrielles communes 20 permettant une configuration robuste de dispositifs de cartes mères orientés vers un système d'exploitation (OS) ainsi qu'une gestion de l'alimentation des dispositifs et des systèmes entiers à la fois.
L'interface ACPI est l'élément clef dans la 25 configuration et la gestion de l'alimentation orientées vers un système d'exploitation (OSPM).
L'interface ACPI est utilisée dans des ordinateurs personnels (PC) exécutant une variété de systèmes d'exploitation, tels que WindowsTM, disponible auprès de 30 Microsoft Corporation, Linux, disponible comme source ouverte auprès d'une variété de vendeurs, et HP-UX, disponible auprès de Hewlett-Packard Company.
L'interface ACPI permet aussi de manipuler des ressources matérielles. Par exemple, l'interface ACPI 35 aide à gérer l'alimentation en permettant aux périphériques d'un système informatique d'être allumés et éteints pour une gestion améliorée de l'alimentation. L'interface ACPI permet aussi au système informatique d'être allumé et éteint par des 5 dispositifs extérieurs. Par exemple, le toucher d'une souris ou l'appui sur une touche peut réveiller un système informatique utilisant l'interface ACPI.
De manière traditionnelle, il a été difficile de travailler avec l'interface ACPI pour une variété de 10 raisons. En premier lieu, l'interface ACPI n'est pas écrite dans le langage assembleur natif d'une plateforme d'un système informatique quelconque. Au lieu de cela, l'interface ACPI possède son propre langage source et son propre langage machine, qui sont 15 le langage source ACPI (ASL) et le langage machine ACPI (AML), respectivement. Du fait de son utilisation hautement spécialisée, il y a relativement peu de programmeurs en langage ASL. En outre, le langage ASL a relativement peu de mises en application du fait de son 20 utilisation limitée. En outre, de manière conventionnelle, le code ACPI est monolithique dans sa conception. En conséquence, ceci rend difficile de porter le code ACPI dans d'autres plateformes ou même dans différentes configurations de la même plateforme. 25 En conséquence, un nouveau code ASL doit être écrit pour travailler avec des plateformes nouvellement développées. Le nombre limité de programmeurs en ASL rend l'écriture d'un nouveau code encore plus problématique et coteuse.
L'interface ACPI est composée à la fois de tables statiques et interprétables. A l'époque du lancement, le microprogramme du système (typiquement le BIOS, c'est-à-dire le système d'entrée/ sortie de base) construit les tables statiques, qui sont consommées par 35 le système d'exploitation. Les tables interprétables sont composées de langage AML, qui est compilé puis fusionné dans le microprogramme du système. Le système d'exploitation lit le langage AML à partir des tables interprétables et exécute les interfaces ainsi 5 architecturées, en utilisant un interpréteur ACPI. De cette manière, le système d'exploitation manipule des ressources matérielles. Parce que les tables interprétables sont fusionnées dans le microprogramme du système, ce procédé conventionnel manque de 10 souplesse et de possibilité de mise à l'échelle, et nécessite un temps de reprogrammation considérable pour accommoder des configurations de système divergentes.
Par exemple, de manière conventionnelle, les développeurs en langage ASL écrivent un code 15 d'interface ACPI pour préciser une configuration particulière d'une plateforme ou ses variantes.
Malheureusement, si même un changement matériel mineur est effectué, la conception doit être modifiée. Ceci nécessite d'écrire un nouveau code en langage AML et de 20 fusionner de nouvelles tables dans le microprogramme du système. Par conséquent, la conception conventionnelle n'est pas portable ni réutilisable.
En outre, l'interface ACPI a nécessité de manière conventionnelle qu'un microprogramme différent en ROM 25 (mémoire à lecture seule) ou un BIOS pour le système soit utilisé s'il existe une variante de la plateforme ou si elle soutient plus d'un système d'exploitation conscient de l'interface ACPI, là o les systèmes d'exploitation possèdent des contraintes d'interface 30 ACPI mutuellement exclusives. Un microprogramme différent en ROM pour le système devait aussi être utilisé si le même système devait soutenir plusieurs systèmes d'exploitation. Par exemple, une technique courante dans les ordinateurs personnels utilise le jeu 35 d'instructions IA-32. L'interface ACPI a été utilisée X 4 de manière primaire par la famille de systèmes d'exploitation de Microsoft@, en particulier dans des systèmes soutenant le jeu d'instructions IA-32.
L'interface ACPI a été acceptée comme étant 5 l'interface standard par les différents systèmes d'exploitation. Une nouvelle architecture de jeu d'instructions, IA-64, est en cours de développement, mais ses avantages ne peuvent pas être utilisés de manière complète avec le legs du code ou les procédés 10 de l'interface ACPI. Itanium , la nouvelle famille de processeurs, disponible auprès de Intel Corporation, utilise le jeu d'instructions IA-64. Le langage ASL pour chaque nouvelle plateforme ou configuration de système basée sur le processeur de cette famille 15 nécessitera d'être réécrit de manière unique si les pratiques courantes sont utilisées.
L'espace des noms de l'interface ACPI est une structure arborescente hiérarchique dans une mémoire placée sous le contrôle d'un système d'exploitation qui 20 contient les objets nommés. Ces objets peuvent être des objets de données, des objets de procédés de commande, des objets de paquets bus/ dispositifs et ainsi de suite. Le système d'exploitation change de manière dynamique le contenu de l'espace des noms à l'époque de 25 l'exécution en chargeant ou en déchargeant des blocs de définition à partir des tables de l'interface ACPI qui résident dans le BIOS de l'interface ACPI. Toute l'information dans l'espace des noms de l'interface ACPI vient de la table de description du système 30 différencié (DSDT), qui contient le bloc de définition différenciée et un ou plusieurs autres blocs de définition. Dans la technique courante, un fabricant d'équipement d'origine (OEM) doit fournir une table DSDT à un système d'exploitation compatible avec 35 l'interface ACPI, qui fournit l'information d'exécution et de configuration relative au système de base. Le système d'exploitation insère toujours l'information de table DSDT dans les espaces de nom de l'interface ACPI à l'époque du lancement du système et ne l'enlève jamais.
Une autre construction de l'interface ACPI est la table de description secondaire du système (SSDT). Les tables SSDT sont une suite de la table DSDT. Plusieurs tables SSDT peuvent être utilisés comme des parties de 10 la description d'une plateforme. Lorsque la table DSDT a été chargée dans l'espace des noms de l'interface ACPI, on charge chaque table de description secondaire avec une table d'identité (ID) OEM unique. Ceci permet à l'OEM de fournir le soutien de base dans une table, 15 tout en ajoutant de plus petites options du système dans d'autres tables. Les tables supplémentaires peuvent ajouter des données uniquement. Elles ne peuvent pas écraser des données issues de tables précédentes.
Une construction dans l'architecture ACPI définie par la couche d'abstraction du système (SAL) est une table du microprogramme d'interface (FIT). Celle-ci est une construction du jeu d'instructions IA- 64. La table FIT contient des adresses de départ et des tailles de 25 composants du microprogramme qui sont hors du bloc de lancement protégé. Une bonne vue d'ensemble de la spécification de l'entrée dans une table FIT peut être trouvée dans " ITANIUM Processor Family System Abstraction Layer Specification " (spécification de la 30 couche d'abstraction du système de la famille de processeur ITANIUMN) document N' 245359-005, (Intel juillet 2002), disponible à l'adresse http://www.intel. com/design/itanium/downloads/24535905. pdf.
Claims (10)
1. Microprogramme pour plusieurs plateformes et plusieurs systèmes d'exploitation pour des processeurs utilisant un jeu d'instructions IA-64, comprenant: un microprogramme de système pour lancer un 5 système informatique, le microprogramme du système ayant un premier bloc de mémoire codé avec des instructions de lancement, et ayant un deuxième bloc de mémoire pour stocker des données (100) ; le deuxième bloc de mémoire étant accessible 10 pendant le lancement du système, le deuxième bloc de mémoire étant peuplé d'informations en correspondance à des composants du système informatique (501, 503,....
515) i une table d'interface microprogrammée (FIT) (109) 15 résidant dans le deuxième bloc de mémoire, la table FIT comprenant des entrées ayant un champ d'adresse (111), un champ de taille (113) et un champ de genre (117) et dans lequel le champ d'adresse (111) d'une entrée (109) de table FIT pointe vers un emplacement de la mémoire 20 en correspondance à des données pour le genre de l'entrée; et au moins une entrée de table FIT dans la table FIT (109) identifiant une table de description secondaire du système (SSDT) (105, 300), dans lequel la table SSDT 25 comprend des informations décrivant au moins un composant du système (501, 503, ..., 515), et dans lequel une table SSDT est identifiée par un genre unique de table FIT et un sous-genre utilisant le champ version d'une table FIT (119 et tableau 1) , l'entrée de table 30 FIT étant récupérée au moment du lancement pour décrire une espace de noms (400) pour des composants actifs du système.
2. Microprogramme tel que revendiqué dans la revendication 1, dans lequel l'entrée de table FIT comprend en outre une somme de contrôle (115) et une information de version (119).
3. Microprogramme tel que revendiqué dans la revendication 1, dans lequel l'information de table SSDT (300) est combinée à des informations issues d'une 10 table de descripteur du système différencié (DSDT) (200), dans lequel l'information de table DSDT réside en mémoire dans le deuxième bloc de mémoire.
4. Microprogramme tel que revendiqué dans la 15 revendication 3, dans lequel l'information de table SSDT (300) réside dans un troisième bloc de mémoire, dans lequel le troisième bloc de mémoire réside à l'extérieur du microprogramme.
5. Microprogramme tel que revendiqué dans la revendication 1, dans lequel
l'information de table SSDT (300) est combinée aux informations issues de la table de descripteur du système différencié (DSDT) (200), l'information de table DSDT et l'information de 25 table SSDT résidant dans un troisième bloc de mémoire, le troisième bloc de la mémoire résidant à l'extérieur du microprogramme.
6. Procédé pour récupérer des données de table SSDT 30 (105, 300) depuis une table FIT (109) au moment du lancement d'un système pour engendrer un espace de noms (400) pour les composants actifs du système (501, 503, 515), comprenant les étapes consistant à : pour chaque composant du système, stocker les 35 informations du composant du système en correspondance dans un emplacement de la mémoire pour stocker une table de description secondaire du système (SSDT) (701) ; déterminer une configuration de système pour des 5 composants actifs dans un système informatique (703), la détermination se produisant au moment du lancement du système; charger une table d'interface microprogrammée (FIT) (109) avec des entrées de table SSDT (705), 10 chaque entrée de table SSDT pointant vers un emplacement de la mémoire stockant des informations de table SSDT en correspondance, les entrées chargées correspondant à des composants du système, une entrée de table FIT étant identifiée comme une entrée de table 15 SSDT par un champ genre, et l'entrée de table SSDT ayant un sous-genre identifié dans un champ version d'une entrée de table FIT; et initialiser l'espace des noms des composants du système avec la configuration du système déterminée 20 pour les composants actifs du système (707).
7. Procédé tel que revendiqué dans la revendication 6, comprenant en outre l'étape consistant à transférer le contrôle depuis le microprogramme du système vers le 25 système d'exploitation sélectionné (709), le système d'exploitation consommant l'espace des noms des composants du système pour définir des interactions des composants du système.
8. Procédé tel que revendiqué dans la revendication 6, dans lequel la table d'interface microprogrammée (FIT) réside dans un premier bloc de mémoire, et dans lequel la table FIT comprend des entrées ayant une adresse (111), une taille (113) et un genre (117), et 35 dans lequel l'adresse d'une entrée de table FIT pointe vers un emplacement de la mémoire en correspondance à des données de genre de l'entrée.
9. Procédé tel que décrit dans la revendication 8, 5 dans lequel une entrée de table FIT pointe vers un emplacement de la mémoire externe au premier bloc de mémoire.
10. Procédé tel que décrit dans la revendication 6, 10 dans lequel l'étape consistant à initialiser l'espace des noms des composants du système (400) comprend en outre une étape consistant à combiner des informations de table SSDT (300) à des informations issues d'une table de descripteur du système différencié (DSDT) 15 (200).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/212,719 US7017034B2 (en) | 2002-08-07 | 2002-08-07 | System and method for using a firmware interface table to dynamically load multiple ACPI SSDT tables |
Publications (1)
Publication Number | Publication Date |
---|---|
FR2850471A1 true FR2850471A1 (fr) | 2004-07-30 |
Family
ID=31494359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0309694A Pending FR2850471A1 (fr) | 2002-08-07 | 2003-08-06 | Systeme et procede pour utiliser une table d'interface microprogrammee pour charger de maniere dynamique plusieurs tables ssdt acpi. |
Country Status (3)
Country | Link |
---|---|
US (1) | US7017034B2 (fr) |
JP (1) | JP2004070952A (fr) |
FR (1) | FR2850471A1 (fr) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058801B2 (en) * | 2003-02-19 | 2006-06-06 | American Megatrends, Inc. | Methods and computer systems for updating values of a DSDT |
US7076648B2 (en) * | 2003-02-19 | 2006-07-11 | American Megatrends, Inc. | Methods and computer systems for selection of a DSDT |
US7363434B2 (en) * | 2003-03-18 | 2008-04-22 | American Megatrends, Inc. | Method, system, and computer-readable medium for updating memory devices in a multi-processor computer system |
US7188339B2 (en) * | 2003-10-24 | 2007-03-06 | Hewlett-Packard Development Company, L.P. | ACPI preprocessor |
US7757030B2 (en) * | 2005-12-16 | 2010-07-13 | Microsoft Corporation | Simulating hardware dynamic partitioning capabilities |
US8429418B2 (en) * | 2006-02-15 | 2013-04-23 | Intel Corporation | Technique for providing secure firmware |
US7590835B1 (en) | 2006-06-30 | 2009-09-15 | American Megatrends, Inc. | Dynamically updating a computer system firmware image |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
US7797696B1 (en) | 2006-06-30 | 2010-09-14 | American Megatrends, Inc. | Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure |
JP5119686B2 (ja) * | 2007-03-06 | 2013-01-16 | 日本電気株式会社 | 情報処理装置および設定方法 |
US8677108B2 (en) * | 2008-01-30 | 2014-03-18 | Panasonic Corporation | Method for finding next component to be booted based on booting status of current component to continue booting process by using a component look-up table |
US7895376B2 (en) * | 2008-11-26 | 2011-02-22 | International Business Machines Corporation | Hardware configuration information system, method, and computer program product |
US8631251B2 (en) * | 2009-12-24 | 2014-01-14 | International Business Machines Corporation | System management controller entry into reduced power state responsive to other hardware entering reduced power state |
JP4998861B2 (ja) * | 2010-03-02 | 2012-08-15 | 日本電気株式会社 | コンピュータシステム及びそのhw抽象化方法 |
EP3120238B1 (fr) * | 2014-03-19 | 2020-10-28 | Intel Corporation | Isolation d'accès pour dispositifs à systèmes d'exploitation multiples |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903894A (en) * | 1997-03-03 | 1999-05-11 | Microsoft Corporation | System and method for using a hierarchical data structure to control and identify devices and represent connections between the devices |
US6167511A (en) * | 1998-06-15 | 2000-12-26 | Phoenix Technologies Ltd. | Method to reflect BIOS set up changes into ACPI machine language |
US20020059473A1 (en) * | 2000-09-15 | 2002-05-16 | Jacob Oshins | System and method for adding hardware registers to a power management and configuration system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5319751A (en) * | 1991-12-27 | 1994-06-07 | Intel Corporation | Device driver configuration in a computer system |
US6081890A (en) * | 1998-11-30 | 2000-06-27 | Intel Corporation | Method of communication between firmware written for different instruction set architectures |
JP2002215585A (ja) * | 2000-11-16 | 2002-08-02 | Fuji Xerox Co Ltd | 個人証明書サブジェクト名処理装置および方法 |
US6772330B2 (en) * | 2001-01-26 | 2004-08-03 | Dell Products L.P. | System and method for storing component information and a program in a hidden partition, and loading the component information to a reserved portion of the memory using the program |
-
2002
- 2002-08-07 US US10/212,719 patent/US7017034B2/en not_active Expired - Fee Related
-
2003
- 2003-07-25 JP JP2003279682A patent/JP2004070952A/ja not_active Withdrawn
- 2003-08-06 FR FR0309694A patent/FR2850471A1/fr active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5903894A (en) * | 1997-03-03 | 1999-05-11 | Microsoft Corporation | System and method for using a hierarchical data structure to control and identify devices and represent connections between the devices |
US6167511A (en) * | 1998-06-15 | 2000-12-26 | Phoenix Technologies Ltd. | Method to reflect BIOS set up changes into ACPI machine language |
US20020059473A1 (en) * | 2000-09-15 | 2002-05-16 | Jacob Oshins | System and method for adding hardware registers to a power management and configuration system |
Non-Patent Citations (1)
Title |
---|
ANONYMOUS: "Firmware interface table architecture", RESEARCH DISCLOSURE, MASON PUBLICATIONS, HAMPSHIRE, GB, vol. 429, no. 49, January 2000 (2000-01-01), XP007125334, ISSN: 0374-4353 * |
Also Published As
Publication number | Publication date |
---|---|
US7017034B2 (en) | 2006-03-21 |
US20040030875A1 (en) | 2004-02-12 |
JP2004070952A (ja) | 2004-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4199923B2 (ja) | モバイル・デバイスのアプリケーション・インストール方法 | |
US6438750B1 (en) | Determining loading time of an operating system | |
US6373498B1 (en) | Displaying images during boot-up and shutdown | |
US7934209B2 (en) | Method for firmware variable storage with eager compression, fail-safe extraction and restart time compression scan | |
US6473855B1 (en) | Method and apparatus for providing content on a computer system based on usage profile | |
FR2850471A1 (fr) | Systeme et procede pour utiliser une table d'interface microprogrammee pour charger de maniere dynamique plusieurs tables ssdt acpi. | |
US20100058328A1 (en) | Systems and methods for differential software provisioning on virtual machines having different configurations | |
US8539213B2 (en) | Manageability extension mechanism for system firmware | |
US20040230963A1 (en) | Method for updating firmware in an operating system agnostic manner | |
US7055026B2 (en) | Method and system for a portable adaptable operating environment identity | |
US20060225068A1 (en) | System and method for dynamically verifying the compatibility of a user interface resource | |
CN102193817B (zh) | 简化物理和虚拟部署的管理 | |
US20050055690A1 (en) | System and method for communication between computers via an integrated hardware device | |
US20120011513A1 (en) | Implementing a versioned virtualized application runtime environment | |
KR20060070412A (ko) | 소프트웨어 셋업을 위한 언어-중립 및 언어-특정 설치패키지 | |
US6715043B1 (en) | Method and system for providing memory-based device emulation | |
US6519659B1 (en) | Method and system for transferring an application program from system firmware to a storage device | |
US20070294703A1 (en) | System and Method for Migration of Information From a Legacy to a Replacement Information Handling System | |
US20040030876A1 (en) | System and method for using a firmware interface table to dynamically load an ACPI SSDT | |
JP2006164265A (ja) | サブシステム間のリソース共有の可能化 | |
US11182347B2 (en) | File sharing among virtual containers with fast recovery and self-consistency | |
US20120151467A1 (en) | Providing com access to an isolated system | |
US7523469B2 (en) | Enabling inter-subsystem resource sharing | |
Okafor et al. | Eliminating the operating system via the bare machine computing paradigm | |
CN114026540A (zh) | 用于支持和协商跨多个产品的多个api版本的系统和方法 |