CN101211313A - 实现快速、安全的内存上下文切换的设备和方法 - Google Patents
实现快速、安全的内存上下文切换的设备和方法 Download PDFInfo
- Publication number
- CN101211313A CN101211313A CNA2007103052826A CN200710305282A CN101211313A CN 101211313 A CN101211313 A CN 101211313A CN A2007103052826 A CNA2007103052826 A CN A2007103052826A CN 200710305282 A CN200710305282 A CN 200710305282A CN 101211313 A CN101211313 A CN 101211313A
- Authority
- CN
- China
- Prior art keywords
- memory
- communication channel
- configuration register
- coupled
- partitioning
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 241
- 238000000034 method Methods 0.000 title description 19
- 238000004891 communication Methods 0.000 claims abstract description 59
- 238000000638 solvent extraction Methods 0.000 claims description 60
- 238000013475 authorization Methods 0.000 claims description 19
- 230000005055 memory storage Effects 0.000 claims description 2
- 238000005192 partition Methods 0.000 abstract description 7
- 238000003672 processing method Methods 0.000 abstract 1
- 230000008859 change Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Memory System (AREA)
Abstract
一种包括内存控制器的设备,该控制器中包括配置寄存器、耦合到内存控制器的通信信道及耦合到通信信道的第一和第二内存分区,其中配置寄存器中的配置参数被设置成使内存控制器一次识别一个分区。一种处理方法包括在内存控制器的配置寄存器中设置配置参数,以便内存控制器识别通过通信信道耦合到内存控制器的第一内存分区而不是通过通信信道耦合到内存控制器的第二内存分区,并且重置配置参数以便内存控制器识别该第二内存分区而不是第一内存分区。
Description
技术领域
本发明一般涉及计算机内存,并且具体但不排他地说,涉及在计算机内存中实现快速和安全的内存上下文切换的设备、系统和方法。
背景技术
即便不是所有计算机,但大部分计算机均使用某类上下文进行操作。最熟悉和最常用的上下文是运行几乎每台计算机所有基本功能的操作系统。操作系统是“超级程序”,控制诸如输入、输出、调度和内存管理等计算机基本操作,并且也提供上下文,而诸如用户应用程序等其它程序可在上下文内运行。因此,例如,大多数个人计算机使用某个版本的Microsoft Windows作为操作系统,并且MSWindows提供上下文,在该上下文内,诸如Microsoft Outlook、Word和Excel等应用程序可以运行。
在一些环境中,用户可能有一些应用程序在MS Windows上运行,其它应用程序在诸如Linux等不同的操作系统上运行,因此,有时可能需要在Windows与Linux之间切换。在这些环境中,最方便和经济的将是用户能够在同一台计算机上使用不止一个操作系统,而不是让单独的计算机运行每个操作系统。这可以通过允许用户切换操作系统而切换上下文实现。图1示出在此处根据第一与第二操作系统之间切换而描述的上下文切换的当前实现。图1以示意图方式示出一个基本内存系统100,该系统包括内存控制器102、存储器104和内存106。存储器104和内存106均耦合到内存控制器102。在系统100是其一部分的计算机启动时,内存控制器102从处理器(未示出)接收命令,该命令使它从存储器104检索用于第一操作系统的代码,并将它复制到内存106。一旦载入内存106中后,计算机便运行第一操作系统以及在该操作系统上运行的任何程序。
计算机用户要更改操作系统时,可指示系统100在第一操作系统与第二操作系统之间切换。在一个很原始和基本的实现中,在收到切换操作系统的指令时,整个计算机会关闭并继而使用第二操作系统重新启动。在稍微更成熟的实现中,系统100收到切换操作系统的指令时,处理器发送指令到内存控制器102以便从内存106清空第一操作系统。一旦第一操作系统从内存中清空,内存控制器102便访问存储器104,在存储器中找到用于第二操作系统的代码并随后将代码从存储器104传送到内存106。一旦第二操作系统被载入内存106,系统100便使用第二操作系统运行,并且可以使用为第二操作系统设计的应用程序。
上面结合图1所述的上下文切换方案有几个缺点,其中最明显的是在操作系统之间切换的时间长、负担重。访问通常为磁盘或光盘驱动器的储存器104或从储存器104读取的速度慢,因此,载入和启动第二操作系统需要一段时间。另一个大的缺点在于,在一些情况下,计算机必须物理关闭才可实现操作系统切换;换而言之,用户必须物理关闭计算机电源。
附图说明
参照附图对本发明非限制性的和非穷尽的实施例进行描述,除非另有规定,否则,图中相同的标号表示各种视图中相同的部件。
图1是多操作系统环境当前内存实现的方框图。
图2是已分区内存上下文切换系统的实施例方框图。
图3是已分区内存上下文切换系统的备选实施例方框图。
图4是包括已分区内存上下文切换系统实施例的计算机系统实施例方框图。
图5A是示出如图2或图3所示的已分区内存上下文切换系统操作实施例的流程图。
图5B是示出如图2或图3所示的已分区内存上下文切换系统操作备选实施例的流程图。
图6A是示出用于将内存分区的内存配置寄存器实施例的方框图。
图6B是示出用于将内存分区的内存配置寄存器备选实施例的方框图。
具体实施方式
本文描述了用于实现快速和安全的内存上下文切换的设备、系统和方法实施例。在下面的说明中,描述了许多特定的细节以提供对本发明实施例的详尽理解。然而,相关领域的技术人员将认识到,本发明可在不存在一个或多个特定细节的情况下实践,或者通过其它方法、组件、材料等实践。在其它实例中,熟知的结构、材料或操作未详细示出或描述,但仍包括在本发明范围内。
此说明书通篇对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特性、结构或特征包括在本发明的至少一个实施例中。因此,此说明书中出现的词语“在一个实施例中”或“在实施例中”不一定全部指同一实施例。此外,特定的特性、结构或特征可在一个或多个实施例中以任何适合的方式组合。
图2示出快速上下文切换内存系统200的实施例。内存系统200包括内存控制器202,内存控制器202中有一个或多个配置寄存器204。在此实施例中,至少一个通信信道将内存控制器202耦合到至少一个内存,一对通信信道206和208各耦合到至少一个内存:通信信道206耦合到内存模块210和212,而通信信道208类似地耦合到内存模块214和216。其它实施例当然可包括更多或更少的通信信道,并且每个通信信道可耦合到比图中所示实施例中更多或更少数量的内存模块。
在所示实施例中,内存模块210、212、214和216是双列直插式内存模块(DIMM),每个模块包括通称为“列(rank)”的两行内存器件。内存模块210例如由第一行或列210a和第二行或列210b组成。在一个实施例中,在模块中使用的内存器件可包括DRAM,但本发明的实施例在此方面并不受限。虽然所示实施例为内存使用DIMM配置,但在内存系统200的其它实施例中,诸如单列直插式内存模块(SIMM)及诸如此类等其它种类的内存模块也可使用。另外,内存系统200中的所有内存模块无需为同一种类:在其它实施例中,只要使用的内存模块具有足够的容量,并且可通过使用内存控制器202上的配置寄存器204进行适当地寻址和配置,不同内存模块的任何组合就可用于内存模块210、212、214和216。内存模块210-216分组成两个内存分区:包括内存模块210和214的第一内存分区,和包括内存模块212和216的第二内存分区。如下面结合图4和图5进一步所述,通过在配置寄存器204中设置适当的参数,以便控制器一次为一个内存分区进行地址解码,可实现将内存分区的操作。以此方式配置寄存器可确保在第一分区中运行的上下文(例如,操作系统)不访问第二分区的内存,并且在第二分区中运行的上下文(例如,操作系统)不访问第一分区中的内存,从而避免了如内存访问冲突等问题。
通信信道206和208将内存模块210、212、214和216耦合到内存控制器202,并允许在内存模块与控制器之间进行通信和数据交换。在内存系统200的一个实施例中,通信信道206和208是能够承载电信号的导电路径;印刷电路板中的内存总线是此类传导路径的一个示例。然而,在其它实施例中,通信信道可以为某种其它类型的电通信信道,或者可以为完全不同类型的通信信道,例如,光通信信道,如波导或光纤。
内存控制器202也称为内存控制器中心(MCH),控制内存模块210、212、214和216之间的数据流动及内存控制器202与诸如处理器和/或存储媒体等计算机内的其它组件(未示出)之间的数据流动。除其它外,内存控制器212包括至少一个配置寄存器204。在所示的为内存模块使用DIMM的实施例中,配置寄存器204包括DRAM列/行边界(DRB)寄存器。DRB寄存器用于将中央处理器(CPU)和直接内存存取(DMA)地址映射到内存模块210-216的物理内存单元。
在典型的计算机系统中,基本输入输出系统(BIOS)将配置寄存器设计为其正常内存初始化序列的一部分。BIOS查询DIMM以确定每个DIMM支持的内存量,并随后在DRB寄存器中为每个DIMM设计正确的值。DRB寄存器中的参数告诉芯片集每个DIMM支持的内存量,以及如何将处理器地址映射到DIMM上的物理内存单元。DRB寄存器以递增方式设计。对于如所述实施例的双信道实施例:
Ch0中的总内存=C0_DRB0+C0_DRB1+C0_DRB2+C0_DRB3
Ch1中的总内存=C1_DRB0+C1_DRB1+C1_DRB2+C1_DRB3
系统中的总内存=Ch0中的总内存+Ch1中的总内存
许多内存系统支持双内存信道,因此,在此类系统中,可为每个内存信道指配单独的DRB内存寄存器集。此类双信道拓扑以不影响系统内存带宽的方式生成内存分区。
图3示出快速上下文切换内存系统300的备选实施例。正如图2所示内存系统200一样,内存300包括其中具有一个或多个配置寄存器304的内存控制器302。同样耦合到内存控制器302的是一对通信信道306和308。除耦合到内存控制器302之外,通信信道306还耦合到内存模块310和312;类似地,通信信道308耦合到内存模块314和316。
内存系统399与内存系统200的不同之处大部分在于内存分区的拓扑。在内存系统200中,每个分区包括耦合到每个通信信道的内存模块;例如,第一分区包括耦合到通信信道206的内存模块210和耦合到通信信道208的内存模块214。结果是内存系统200中的每个内存分区与内存控制器202之间具有两个通信信道。与此相反,在内存系统300中,每个分区包括耦合到同一通信信道的多个内存模块;因此,在内存系统300中,第一分区包括内存模块310和312,两个模块均耦合到同一通信信道306,并且第二分区包括内存模块314和316,两个模块均耦合到同一通信信道308。结果是每个内存分区与内存控制器302之间具有一个通信信道。正如内存系统200一样,在内存系统300中,通过调整配置寄存器304内的参数值,以便内存控制器一次为一个分区进行地址解码而形成分区。以此方式配置寄存器,可确保在第一分区中运行的上下文(例如,操作系统)不访问第二分区中的内存,并且在第二分区中运行的上下文(例如,操作系统)不访问第一分区中的内存,从而避免了如内存访问冲突等问题。
图4示出包括诸如内存系统200或300等上下文切换内存系统的基本计算机系统400的实施例。计算机系统400包括处理器402,该处理器耦合到非易失性内存404和形成诸如内存系统200或300等已分区内存一部分的内存控制器202。内存控制器202也耦合到存储装置406。
处理器402可以是从诸如Intel Pentium处理器等可编程通用处理器到专用集成电路(ASIC)在内的任何种类的处理器。除其它之外,处理器402包括一定数量的板上内存,如随机存取内存(RAM)或其它种类的内存,所有或部分这些内存可用于运行某些程序。
处理器402可在其板上内存中运行的程序之一是特权代码模块(即,具有比操作系统更高内存存取权限的代码模块);在所示实施例中,特权代码模块是已鉴权代码模块(ACM)403,但在其它实施例中,特权代码模块可以是系统管理模式(SMM)模块、嵌入式微控制器或某个其它特权代码模块。在一个实施例中,特权代码模块是至少将配置寄存器解锁的唯一部件,但在其它实施例中,特权代码模块除将寄存器解锁外,还可配置和锁定寄存器。在还有的其它实施例中,特权代码模块可将模块解锁,而配置和锁定可由非特权代码模块执行。允许诸如ACM等特权代码模块至少将寄存器解锁可能是符合需要的,因为它确保至少寄存器的解锁是由设计为与平台一起工作的特权代码完成。
在所示实施例中,ACM 403带有数字签名,并被加密约束到平台上。约束可通过计算ACM公共密钥的哈希值(hash),并将它与芯片集或处理器硬件中常驻的哈希值进行比较而实现。ACM通过使用处理器的现有安全机器扩展(SMX)能力启动。在ACM启动时,处理器402将模块载入特定内存(称为已鉴权代码RAM或ACRAM)以便验证和执行。在一个实施例中,ACRAM可使用处理器高速缓存的特殊模式实现,但在其它实施例中,它可以不同的方式实现,如通过使用部分板上RAM实现。ACRAM的其它实现是可能的。
一旦在ACRAM中载入ACM,处理器便验证数字签名到平台约束,并随后使用数字签名验证模块本身。如果数字签名成功通过验证,则处理器402开始在特权环境中执行ACM,在该环境中,ACM有权访问控制器中的特权LT.Config.Lock和LT.Config.Un-lock命令。这些命令在由ACM发出时,控制器会注重这些命令。锁定/解锁命令可控制控制器的内存控制/配置寄存器的锁定和解锁。本发明的实施例可使用这些特殊命令将内存配置寄存器解锁,更改内存配置以创建内存分区,以及重新锁定配置寄存器以确保将内存分区可由签名的ACM启用/禁用。
使用这些命令和/或其它ACM 403可实现打开或关闭内存分区的安全开关,以允许在内存中不同OS上下文之间的切换。这通过以允许隐藏或显示内存分区和/或分区中内存模块的方式操控内存配置寄存器而完成。在一个实施例中,此内存操控涉及设置寄存器,以便它们一次为一个分区进行地址解码,这允许控制器管理多个重叠的物理内存范围,使得一次看到一个范围。这样,ACM可有效地将物理内存分区成利用控制器解码逻辑来实施隔离的两个或更多个独立范围。这允许更快的OS上下文切换,并提高了切换机制的安全性。
处理器402耦合到非易失性内存404,非易失性内存可以是任何种类的非易失性内存;示例包括闪存、ROM、EPROM及诸如此类。除其它外,非易失性内存404可存储基本输入输出系统(BIOS),处理器402在操作系统可被载入以接管计算机操作前,需要该系统以操作其基本功能。BIOS引导计算机,建立基本连接,在载入操作系统前执行某些功能,以及载入操作系统。
图5A示出诸如系统200或系统300等上下文切换内存系统在计算机系统400中操作的流程500的实施例。计算机系统启动从方框502开始。在方框504,系统例如通过使用其BIOS载入已鉴权代码模块(ACM)并对ACM鉴权。在ACM通过鉴权后,在方框506,系统将第一上下文(在此实施例中为第一操作系统)载入到第一内存分区。在方框508,系统将第二上下文(在此实施例中为第二操作系统)载入第二内存分区。在操作系统载入其相应分区并引导后,配置寄存器在方框510被解锁,并且设置配置寄存器中的参数,以便发生用于第一分区的地址解码。通过以此方式设置配置参数,系统识别第一分区并且表现得好象第二分区根本不存在一样。一旦配置寄存器中的参数经适当设置,在方框514,配置寄存器便由ACM锁定。通过用于第一内存分区的地址解码,在方框516,系统使用第一操作系统运行。
在运行第一操作系统的同时,在方框518,计算机系统检查是否已收到切换操作系统的指示。如果未收到指示,则在方框516,系统继续运行第一操作系统。如果在方框518收到切换操作系统的指示,则在方框520,ACM将配置寄存器解锁,并且在方框522,设置配置寄存器中的参数,以便控制器现在为与第二分区相关联的地址解码;通过以此方式设置配置参数,内存控制器识别第二分区并且表现得好象第一分区根本不存在一样。配置寄存器中的参数设置后,在方框524,配置寄存器由ACM锁定,并且在方框526,第二操作系统开始运行。
在运行第二操作系统的同时,在方框528,计算机系统检查是否已收到切换操作系统的指示。如果未收到指示,则在方框526,系统继续运行第二操作系统。如果在方框528收到切换操作系统的指示,则流程返回方框510,在方框510,ACM将配置寄存器解锁,并且在方框512,设置配置寄存器中的参数,以便控制器再次为与第一分区解码地址。一旦配置寄存器中的参数设置后,在方框514,配置寄存器便由ACM锁定,并且在方框516,第一操作系统开始运行。
图5B示出诸如系统200或系统300等上下文切换内存系统在计算机系统400中操作的流程550的备选实施例。流程550与流程500的不同之处主要在于载入操作系统的顺序。在流程500中,两个操作系统在开始时载入,并且切换操作系统涉及在两个系统之间切换。在流程550中,第一操作系统会载入并用于开始操作,并且第二操作系统会在需要时被载入、引导和操作。然而,一旦第二操作系统已载入,两个操作系统便均在内存中,并且切换操作系统如流程500中一样涉及在两个操作系统之间的反复。
计算机系统的启动从方框552开始。在方框554,系统例如通过使用其基本输入输出系统(BIOS)载入已鉴权代码模块(ACM)并对ACM鉴权。在ACM通过鉴权后,在方框556,ACM设置配置寄存器为第一分区进行地址解码;通过以此方式设置配置参数,系统识别第一分区并表现得好象第二分区根本不存在一样。在方框558,ACM将配置寄存器锁定后,在方框560,系统将第一上下文(在此实施例中为第一操作系统)载入第一内存分区,引导操作系统,并在方框562,运行第一操作系统。
在方框564,系统等待更改上下文(即,操作系统)的指示。如果未收到指示,则系统继续运行第一操作系统。如果在方框564收到更改操作系统的指示,则在方框566,ACM将配置寄存器解锁,在方框568,设置配置寄存器为第二分区进行地址解码,并在方框570,再次将配置寄存器锁定。在将配置寄存器锁定后,在方框572,系统将第二操作系统载入第二分区,引导第二操作系统,并在方框574,运行第二操作系统。
在方框576,系统等待更改操作系统的指示。如果未收到指示,则系统继续运行第二操作系统。如果在方框576收到更改操作系统的指示,则在方框578,ACM将配置寄存器解锁,在方框580,设置配置寄存器为第二分区进行地址解码,并在方框582,再次将配置寄存器锁定。在将配置寄存器锁定后,系统切换到已经载入第一分区的第一操作系统,并在方框584,运行第一操作系统。
在方框586,系统等待更改操作系统的指示。如果未收到指示,则在方框584,系统继续运行第一操作系统。如果在方框586收到更改操作系统的指示,则在方框588,ACM将配置寄存器解锁,在方框590,设置配置寄存器为第二分区进行地址解码,并在方框592,再次将配置寄存器锁定。在将配置寄存器锁定后,系统切换到已经载入第二分区的第二操作系统,并在方框594,运行第二操作系统。
在方框596,系统等待更改操作系统的指示。如果未收到指示,则在方框594,系统继续运行第二操作系统。如果在方框596收到更改操作系统的指示,则流程返回方框578,在该方框,它再次经历上下文切换顺序,并在方框584,运行第一操作系统。
图6A示出可用于在诸如系统200或系统300等上下文切换内存系统中配置内存和将内存分区的配置寄存器604的实施例。配置寄存器604的操作将参照图5A的流程500描述;配置寄存器的操作扩展类似于到图5B所示流程550,主要不同之处在于配置寄存器的锁定、解锁和配置的顺序。配置寄存器604包括两个部分:存储用于第一内存分区的参数的第一部分606和存储用于第二分区的参数的第二部分608。在初始状态602,配置寄存器604被锁定,并且部分606中的参数设置成为第一内存分区进行地址解码,而部分608中的参数设置成不为第二内存分区进行地址解码。在图4所示操作实施例中,配置寄存器状态602对应于方框514和516。
在方框518,内存控制器202或302收到更改上下文的指示(在此实施例中,通过更改操作系统)时,配置寄存器604从状态602转变到状态610,在该状态,它已由已鉴权代码模块(ACM)解锁;状态610因此对应于方框520。在配置寄存器604解锁后,它从状态610转变到状态612,在该状态,用于第一内存分区的参数经设置,以便不存在该部分的地址编码,并且用于第二内存分区的参数经设置,以便存在该分区的解码。配置寄存器604在状态612的设置基本上是在状态602设置的调换,并且对应于方框522。最后,在状态614,配置寄存器604再次在状态612的配置中被锁定;状态614因此对应于方框524和526。要将上下文从第二操作系统切换回第一操作系统,可实际上以相反的顺序再配置配置寄存器604。换而言之,配置寄存器从状态614开始(对应于方框524和526),并且转变到状态612(对应于方框510),然后转变到状态610(对应于方框512),并最后转变到对应于方框514和516的状态602。
图6B示出可用于在诸如系统200或系统300等已分区内存系统中配置内存和将内存分区的配置寄存器658备选实施例。与配置寄存器604不同,配置寄存器658包括一次为一个内存分区存储参数的一个部分。为允许上下文切换,配置寄存器658可耦合到一个单独的内存652,该内存分配第一部分564以存储用于第一内存分区的参数,并且分配第二部分656以存储用于第二内存分区的参数。
正如配置寄存器604一样,配置寄存器658的操作将参照图5A所示的流程500论述。在初始状态650,配置寄存器658被锁定,并且寄存器中的参数设置成为第一内存分区进行地址解码。用于第二分区的参数存储在内存652的部分656中。在图5A所示的操作实施例中,配置寄存器状态650对应于方框514。
在方框518,内存控制器202或302收到更改上下文的指示(在此示例中,通过更改操作系统)时,配置寄存器658从状态650转变到状态660,在该状态,它已由已鉴权代码模块(ACM)解锁;状态610因此对应于方框520。在配置寄存器658被解锁后,它从状态650转变到状态660,在该状态,在配置寄存器658与内存652之间建立数据通信。一旦数据通信已建立,用于第一内存分区的参数便从配置寄存器658复制到内存652的部分654,而用于第二内存分区的参数从内存652的部分656复制到配置寄存器658。在状态662,用于第二内存分区的参数载入配置寄存器658,并且配置寄存器658在状态662的设置对应于方框522。最后,在状态664,配置寄存器604在状态662的配置中被锁定;状态664因此对应于方框524。
要将上下文从第二操作系统切换回第一操作系统,可实际上以相反的顺序再配置配置寄存器658。换而言之,配置寄存器从状态664开始(对应于方框524和526),并且转变到状态662(对应于方框510),然后转变到状态660(对应于方框512),并最后转变到对应于方框514和516的状态650。
上述本发明所示实施例的说明、包括摘要中所述内容无意穷尽或限制本发明为明确的公开形式。虽然为便于说明而在本文描述了本发明的特定实施例和示例,但相关领域的技术人员将认识到,在本发明范围内可能实现各种等效的修改。根据上述详细说明,可对本发明进行这些修改。
随附权利要求书中使用的术语不应视为限制本发明为说明书和权利要求书中公开的特定实施例。相反,本发明的范围要完全由随附权利要求书确定,权利要求书要根据解释权利要求的确定原则来进行解释。
Claims (30)
1.一种设备,包括:
其中包括配置寄存器的内存控制器;
耦合到所述内存控制器的通信信道;以及
耦合到所述通信信道的第一和第二内存分区,其中所述配置寄存器中的配置参数被设置成使所述内存控制器一次识别一个分区。
2.如权利要求1所述的设备,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区耦合到所述第一通信信道,所述第二内存分区耦合到所述第二通信信道。
3.如权利要求1所述的设备,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区和所述第二内存分区中的每个均耦合到所述第一通信信道和所述第二通信信道。
4.如权利要求1所述的设备,其中每个内存分区包括至少一个内存。
5.如权利要求1所述的设备,其中所述配置寄存器中的所述参数被设置成使所述内存控制器一次为一个内存分区进行地址解码。
6.如权利要求1所述的设备,其中所述配置寄存器包括第一配置寄存器和第二配置寄存器,每个寄存器中具有用于对应内存分区的配置参数,其中一次设置一个寄存器以便为其对应的内存分区进行解码。
7.如权利要求1所述的设备,还包括一个或多个附加内存分区。
8.如权利要求1所述的设备,其中所述配置寄存器可被锁定和解锁。
9.如权利要求8所述的设备,其中至少所述解锁由比操作系统具有更高内存访问特权的特权代码模块完成。
10.如权利要求9所述的设备,其中所述特权代码模块是将所述配置寄存器解锁的唯一部件。
11.如权利要求9所述的设备,其中所述特权代码模块是已鉴权代码模块(ACM)、系统管理模式(SMM)模块或嵌入式微控制器。
12.一种系统,包括:
处理器;
耦合到所述处理器的存储装置;以及
耦合到所述处理器的内存系统,所述内存系统包括:
其中包括配置寄存器的内存控制器;
耦合到所述内存控制器的通信信道;以及
耦合到所述通信信道的第一和第二内存分区,其中所述配置寄存器中的配置参数被设置成使所述内存控制器一次识别一个分区。
13.如权利要求12所述的系统,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区耦合到所述第一通信信道,所述第二内存分区耦合到所述第二通信信道。
14.如权利要求12所述的系统,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区和所述第二内存分区中的每个均耦合到所述第一通信信道和所述第二通信信道。
15.如权利要求12所述的系统,其中所述配置寄存器中的所述参数被设置成使所述内存控制器一次为一个内存分区进行地址解码。
16.如权利要求12所述的系统,其中所述配置寄存器包括第一配置寄存器和第二配置寄存器,每个寄存器对应于所述内存分区的其中之一。
17.如权利要求12所述的系统,还包括一个或多个附加内存分区。
18.如权利要求12所述的系统,其中所述配置寄存器可被锁定和解锁。
19.如权利要求18所述的系统,其中至少所述解锁由比操作系统具有更高内存访问特权的特权代码模块完成。
20.如权利要求19所述的系统,其中所述特权代码模块是将所述配置寄存器解锁的唯一部件。
21.如权利要求19所述的系统,其中所述特权代码模块是已鉴权代码模块(ACM)、系统管理模式(SMM)模块或嵌入式微控制器。
22.一种处理方法,包括:
在内存控制器的配置寄存器中设置配置参数,以便所述内存控制器识别通过通信信道耦合到所述内存控制器的第一内存分区,而不是通过所述通信信道耦合到所述内存控制器的第二内存分区;以及
重置所述配置参数,以便所述内存控制器识别所述第二内存分区而不是所述第一内存分区。
23.如权利要求22所述的处理方法,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区耦合到所述第一通信信道,所述第二内存分区耦合到所述第二通信信道。
24.如权利要求22所述的处理方法,其中所述通信信道包括第一和第二通信信道,并且其中所述第一内存分区和所述第二内存分区两者均耦合到所述第一通信信道和所述第二通信信道。
25.如权利要求22所述的处理方法,其中在所述配置寄存器中设置配置参数,以便所述内存控制器识别所述第一内存分区而不是所述第二内存分区,或者所述第二内存分区而不是所述第一内存分区包括设置所述配置参数以便一次为一个分区进行地址解码。
26.如权利要求22所述的处理方法,还包括将一个或多个附加内存分区耦合到所述通信信道。
27.如权利要求22所述的处理方法,还包括锁定和解锁所述配置寄存器。
28.如权利要求27所述的处理方法,其中至少所述解锁由比操作系统具有更高内存访问特权的特权代码模块完成。
29.如权利要求28所述的处理方法,其中所述特权代码模块是将所述配置寄存器解锁的唯一部件。
30.如权利要求28所述的处理方法,其中所述特权代码模块是所述已鉴权代码模块(ACM)、系统管理模式(SMM)模块或嵌入式微控制器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/648,455 US20080162866A1 (en) | 2006-12-28 | 2006-12-28 | Apparatus and method for fast and secure memory context switching |
US11/648455 | 2006-12-28 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101211313A true CN101211313A (zh) | 2008-07-02 |
Family
ID=39048359
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007103052826A Pending CN101211313A (zh) | 2006-12-28 | 2007-12-28 | 实现快速、安全的内存上下文切换的设备和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20080162866A1 (zh) |
KR (1) | KR101077673B1 (zh) |
CN (1) | CN101211313A (zh) |
DE (1) | DE102007062745B4 (zh) |
GB (1) | GB2445249B (zh) |
TW (1) | TWI385515B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102122250A (zh) * | 2011-01-26 | 2011-07-13 | 威盛电子股份有限公司 | 计算机系统及其操作系统切换方法 |
CN102236612A (zh) * | 2010-04-22 | 2011-11-09 | 群联电子股份有限公司 | 动态切换分割区方法、记忆卡控制器与记忆卡储存系统 |
US8478963B2 (en) | 2010-04-07 | 2013-07-02 | Phison Electronics Corp. | Method of dynamically switching partitions, memory card controller and memory card storage system |
CN103246455A (zh) * | 2012-02-01 | 2013-08-14 | 深圳市天方信安电子科技有限公司 | 一种屏幕双解锁系统 |
CN103383667A (zh) * | 2012-05-01 | 2013-11-06 | 瑞萨电子株式会社 | 存储器保护电路、处理单元和存储器保护方法 |
CN105830040A (zh) * | 2013-12-20 | 2016-08-03 | 拉姆伯斯公司 | 用于访问存储器的存储器装置 |
CN106155568A (zh) * | 2015-04-03 | 2016-11-23 | 华为技术有限公司 | 一种存储分区的方法及终端 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8364943B2 (en) * | 2008-02-29 | 2013-01-29 | Lenovo (Singapore) Pte. Ltd. | S3 BIOS operating system switch |
US8095824B2 (en) | 2009-12-15 | 2012-01-10 | Intel Corporation | Performing mode switching in an unbounded transactional memory (UTM) system |
US20120297177A1 (en) * | 2010-11-15 | 2012-11-22 | Ghosh Anup K | Hardware Assisted Operating System Switch |
US20120331303A1 (en) * | 2011-06-23 | 2012-12-27 | Andersson Jonathan E | Method and system for preventing execution of malware |
US9378150B2 (en) * | 2012-02-28 | 2016-06-28 | Apple Inc. | Memory management unit with prefetch ability |
US10771448B2 (en) | 2012-08-10 | 2020-09-08 | Cryptography Research, Inc. | Secure feature and key management in integrated circuits |
JP5920595B2 (ja) * | 2013-07-16 | 2016-05-18 | 横河電機株式会社 | 電子機器、オペレーティングシステム、アクセス管理方法 |
GB2534693B (en) | 2013-11-08 | 2017-02-08 | Exacttrak Ltd | Data accessibility control |
US9934047B2 (en) * | 2014-03-20 | 2018-04-03 | Intel Corporation | Techniques for switching between operating systems |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4682283A (en) * | 1986-02-06 | 1987-07-21 | Rockwell International Corporation | Address range comparison system using multiplexer for detection of range identifier bits stored in dedicated RAM's |
US6965974B1 (en) * | 1997-11-14 | 2005-11-15 | Agere Systems Inc. | Dynamic partitioning of memory banks among multiple agents |
JP2002519760A (ja) * | 1998-06-22 | 2002-07-02 | コンスタブル,コリン | 仮想データ記憶(vds)システム |
US20020095557A1 (en) * | 1998-06-22 | 2002-07-18 | Colin Constable | Virtual data storage (VDS) system |
US6323755B1 (en) * | 1998-08-19 | 2001-11-27 | International Business Machines Corporation | Dynamic bus locking in a cross bar switch |
US6662173B1 (en) * | 1998-12-31 | 2003-12-09 | Intel Corporation | Access control of a resource shared between components |
JP2001256066A (ja) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置 |
US7117376B2 (en) * | 2000-12-28 | 2006-10-03 | Intel Corporation | Platform and method of creating a secure boot that enforces proper user authentication and enforces hardware configurations |
US6754753B2 (en) * | 2001-04-27 | 2004-06-22 | International Business Machines Corporation | Atomic ownership change operation for input/output (I/O) bridge device in clustered computer system |
CN1260629C (zh) * | 2001-11-28 | 2006-06-21 | 希旺科技股份有限公司 | 具有动态存储器配置的电子周边卡 |
US6910127B1 (en) * | 2001-12-18 | 2005-06-21 | Applied Micro Circuits Corporation | System and method for secure network provisioning by locking to prevent loading of subsequently received configuration data |
US7698689B2 (en) * | 2002-08-13 | 2010-04-13 | Phoenix Technologies Ltd. | Method for meeting SMI duration limits by time slicing SMI handlers |
US7272664B2 (en) * | 2002-12-05 | 2007-09-18 | International Business Machines Corporation | Cross partition sharing of state information |
KR100673681B1 (ko) * | 2004-03-25 | 2007-01-24 | 엘지전자 주식회사 | 개인용 컴퓨터에서의 인스턴트 온 기능 실행방법 |
US20060143411A1 (en) * | 2004-12-23 | 2006-06-29 | O'connor Dennis M | Techniques to manage partition physical memory |
US20060179191A1 (en) * | 2005-02-10 | 2006-08-10 | Young David W | Covert channel firewall |
-
2006
- 2006-12-28 US US11/648,455 patent/US20080162866A1/en not_active Abandoned
-
2007
- 2007-12-18 TW TW096148393A patent/TWI385515B/zh not_active IP Right Cessation
- 2007-12-19 GB GB0724756A patent/GB2445249B/en not_active Expired - Fee Related
- 2007-12-27 DE DE102007062745A patent/DE102007062745B4/de not_active Expired - Fee Related
- 2007-12-28 CN CNA2007103052826A patent/CN101211313A/zh active Pending
- 2007-12-28 KR KR1020070140193A patent/KR101077673B1/ko not_active IP Right Cessation
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8478963B2 (en) | 2010-04-07 | 2013-07-02 | Phison Electronics Corp. | Method of dynamically switching partitions, memory card controller and memory card storage system |
CN102236612B (zh) * | 2010-04-22 | 2014-11-19 | 群联电子股份有限公司 | 动态切换分割区方法、记忆卡控制器与记忆卡储存系统 |
CN102236612A (zh) * | 2010-04-22 | 2011-11-09 | 群联电子股份有限公司 | 动态切换分割区方法、记忆卡控制器与记忆卡储存系统 |
CN102122250A (zh) * | 2011-01-26 | 2011-07-13 | 威盛电子股份有限公司 | 计算机系统及其操作系统切换方法 |
CN102122250B (zh) * | 2011-01-26 | 2013-09-25 | 威盛电子股份有限公司 | 计算机系统及其操作系统切换方法 |
CN103246455A (zh) * | 2012-02-01 | 2013-08-14 | 深圳市天方信安电子科技有限公司 | 一种屏幕双解锁系统 |
CN103383667A (zh) * | 2012-05-01 | 2013-11-06 | 瑞萨电子株式会社 | 存储器保护电路、处理单元和存储器保护方法 |
CN103383667B (zh) * | 2012-05-01 | 2017-11-14 | 瑞萨电子株式会社 | 存储器保护电路、处理单元和存储器保护方法 |
CN105830040A (zh) * | 2013-12-20 | 2016-08-03 | 拉姆伯斯公司 | 用于访问存储器的存储器装置 |
CN105830040B (zh) * | 2013-12-20 | 2020-03-17 | 拉姆伯斯公司 | 用于访问存储器的存储器装置 |
US11132328B2 (en) | 2013-12-20 | 2021-09-28 | Rambus, Inc. | High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory |
US11860813B2 (en) | 2013-12-20 | 2024-01-02 | Rambus Inc. | High level instructions with lower-level assembly code style primitives within a memory appliance for accessing memory |
CN106155568A (zh) * | 2015-04-03 | 2016-11-23 | 华为技术有限公司 | 一种存储分区的方法及终端 |
Also Published As
Publication number | Publication date |
---|---|
KR101077673B1 (ko) | 2011-10-27 |
KR20080063189A (ko) | 2008-07-03 |
GB0724756D0 (en) | 2008-01-30 |
TWI385515B (zh) | 2013-02-11 |
GB2445249B (en) | 2010-08-04 |
TW200836062A (en) | 2008-09-01 |
DE102007062745B4 (de) | 2010-12-23 |
GB2445249A (en) | 2008-07-02 |
DE102007062745A1 (de) | 2008-07-17 |
US20080162866A1 (en) | 2008-07-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101211313A (zh) | 实现快速、安全的内存上下文切换的设备和方法 | |
US20180357093A1 (en) | Systems, Methods, And Apparatus For Securing Virtual Machine Control Structures | |
CN100530102C (zh) | 用于在64位x86处理器上运行传统32位x86虚拟机的系统和方法 | |
US9424441B2 (en) | Multiprocessor fabric having configurable communication that is selectively disabled for secure processing | |
US7908450B2 (en) | Memory management unit, code verifying apparatus, and code decrypting apparatus | |
JP5975629B2 (ja) | メモリ保護ユニットおよび記憶素子へのアクセスコントロール方法 | |
US20050021944A1 (en) | Security architecture for system on chip | |
CN112948321A (zh) | 用于管理片上系统的操作的方法和对应的片上系统 | |
WO2004107176A1 (en) | Method and apparatus for determining access permission | |
US20090106543A1 (en) | Boot block features in synchronous serial interface nand | |
US20160070934A1 (en) | Memory controller | |
JP4945053B2 (ja) | 半導体装置、バスインターフェース装置、およびコンピュータシステム | |
EP3084593B1 (en) | Updatable integrated-circuit radio | |
CN112835846A (zh) | 片上系统 | |
CN103714018B (zh) | 芯片存储电路的安全访问控制方法 | |
CN101196877B (zh) | 一种多存储单元操作隔离的智能卡及其实现方法 | |
CN109947500A (zh) | 一种程序加载方法、装置、系统、芯片和存储介质 | |
CN112835845A (zh) | 用于管理形成例如微控制器的片上系统的调试的方法和对应片上系统 | |
US11347863B2 (en) | Computer apparatus and authority management method based on trust chain | |
US6925569B2 (en) | Secured microprocessor comprising a system for allocating rights to libraries | |
JP2015158936A (ja) | データ処理装置 | |
JP2007109053A (ja) | バスアクセス制御装置 | |
CN116049030A (zh) | 用于数据访问的方法及装置、电子设备、存储介质 | |
CN108228525A (zh) | 一种多核8051处理器soc的安全实现装置以及方法 | |
JPS63195748A (ja) | 計算機システムのメモリマツプド制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20080702 |