多处理器地址转换的高效仿真方法和系统技术方案

技术编号:2872485 阅读:216 留言:0更新日期:2012-04-11 18:40
一种使用宿主多处理器系统的操作系统的虚拟-实存储器映射机构仿真目标系统的存储器寻址的方法,包括:    向页表输入目标虚拟存储器地址以得到宿主虚拟存储器地址,其中所述目标系统不注意其运行的软件。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术通常涉及计算机系统,尤其涉及当在另一个多处理计算系统上模拟多处理计算机系统时映射该多处理计算机系统的共享存储器的方法。
技术介绍
计算系统通常包含若干部分,包含处理器、存储器和输入/输出设备。经常需要在另一个计算系统上仿真一个计算系统的行为。仿真的一个主要原因是允许在另一个系统(例如″宿主计算系统″)上以相同的结果执行针对一个系统(例如″目标计算系统″)的编写的程序。已经描述了若干传统技术,用于通过另一个处理器的指令集仿真一个处理器的指令集(例如,在Stephen A.Herrod的″通过完全的机器模拟理解计算机系统行为(Using Complete Machine Simulation to UnderstandComputer System Behavior)″,博士论文,Stanford大学,1998年2月中公开的SIMOS;在Cathy May的″模拟快速系统/370模拟器(MimicAFast System/370 Simulator)″,面向对象编程系统语言和应用会议(OOPSLA)会议录,Orlando,1987年10月4-8日,Sigplan公告专刊,vol.22,No.12,1987年12月,vol.22,No.7,6月24日中公开的MIMIC)。为了如实地执行仿真,必须仿真这种系统中存储器的行为。通常,行为所包含的远不止于使用程序指定的地址读取和写入存储器中的单元。更具体地,当在目标系统上实现虚拟存储器时,对存储器单元的访问通常包括验证请求任务是否有权执行访问操作。也可以包括将含有请求单元的页面换入存储器中(如果尚未在存储器中)。通常在图1示出的系统100中执行这种功能,其中向目标页面映射表110输入计算的操作数地址,以作为目标虚拟存储器地址。于是在图1中,在表110中检查含有寻址单元的页面,以确定(a)其是否已经在存储器(例如目标实存储器120)中,(b)是否允许期望的访问,和(c)哪个物理存储器单元对应于期望页面。再次注意,所有这些操作均在实际的目标系统硬件中执行。为了高效地进行这种访问,这些检查在仿真机器的硬件中执行,并且通常与实际存储器访问同时进行,其中如果访问被拒绝,则丢弃访问结果。目标实存储器120的输出是可能对应于LOAD等等的操作数值。(注意,在宿主中,STORE采用其它方式)。宿主计算系统通常还提供硬件以利于进行这种虚拟寻址。类似于授权给Scalzi等人的美国专利No.6,075,937所公开的实现根据宿主虚拟寻址硬件所支持的原语来解释目标访问。这如图2的系统200所示,其中使用模拟页面映射表210和宿主实存储器220。通过页面映射表210进行的宿主实存储器220中的虚拟地址-实地址映射对于目标系统的每个虚拟地址空间(通常与″进程″相关)均是唯一的。应当注意,模拟页面映射表210与目标页面映射表110的不同之处在于,操作系统具有页面映射表,其中页面映射表将虚拟页面映射到宿主实存储器的实页面。然而在图2中,这是不可行的(例如无法工作),因为实存储器必须寻址宿主实存储器而不是目标实存储器。因此,该映射必须包含另一个字段,该字段指示实存储器的被映射到宿主实存储器的位置。如果宿主系统还实现虚拟存储器,并且如果每个宿主进程的允许虚拟地址空间至少和目标上允许的地址空间一样大,则可以在图3的结构300所示的进程级别上进行仿真,所述结构300具有目标-宿主虚拟地址映射器310,宿主页面映射表320和宿主实存储器330。在图3的方案中,通过映射器310将目标虚拟地址空间映射到宿主虚拟地址空间,接着使用宿主的页面映射表机构320将宿主虚拟地址空间转换成宿主实地址空间。于是在图3中,在前端提供目标-宿主虚拟地址映射器310,而不是具有模拟的页面映射表(例如图2中的表210),使得目标虚拟地址可以被转换成宿主虚拟地址,并且接着使用宿主操作系统进行其余映射。基本上,图3所示的方案认识到图2的功能模块不能在宿主操作系统上执行。因此,图3的目的是得到目标虚拟存储器地址并且将其转换成可以被宿主系统上运行的操作系统使用的某种形式(例如宿主虚拟存储器地址)。宿主上运行的操作系统具有其自身的页面映射表,该页面映射表可以只识别和理解其环境中的虚拟存储器地址(例如宿主虚拟存储器地址)。于是,一旦获得宿主虚拟存储器地址,可以在宿主中执行其余映射。然而在例如与本申请同时提交、_等人的美国专利申请10/_,_,″多处理器宿主系统上的多处理器仿真方法和系统″,IBM Docket No.YOR920010533US1中描述的仿真环境中,这两种方案被证明是不充分的。在这种环境中,不由宿主多处理系统中的唯一处理器直接执行对目标多处理系统中处理器的模拟。而是,缓冲仿真处理器的任务和宿主上需要的其它辅助任务,并且宿主上的调度器向可用处理器分配这些任务。此方案的优点是允许对具有的处理器多于宿主上可用处理器的系统进行仿真。授权给Scalzi等人的美国专利6,075,937中公开的方案需要将各个目标处理器映射到宿主处理器。也就是说,这种系统需要一一对应,因此不太适于这种仿真。虚拟映射方案是可能的候选,除了它需要仿真软件知道有关目标系统中任务到进程的划分之外。这通常是不可能的,除非仿真系统理解被仿真的系统软件。也就是说,必须确切知道目标(客人)上运行的操作系统中正在发生什么事情,以便使图3的方案能够工作,这是因为目标(客人)的页面映射表会被还原成目标-宿主虚拟地址映射器310等等。然而这种情况很少发生,因为在对一个系统进行系统仿真时,很少能拥有对正在运行的软件的控制。此外,不能直接将目标的例如64位虚拟寻址空间映射到宿主的32位虚拟寻址空间。如上所述,必须经常为与仿真相关的其它功能保留存储器,因此在宿主具有64位虚拟地址空间的情况下,这种仿真可能很困难。因此,期望找到存储器映射问题的解决方案,其中仿真环境在被仿真的目标处理器和再现其行为的宿主处理器之间不具有严格对应关系(例如在存在多对多映射的多处理环境中),并且仿真软件知道目标系统的页表映射,但不知道目标系统上执行的任务的本质(例如在不现实的情况下,对目标上运行的软件进行严格控制)。在本专利技术之前,没有人认识到这种解决方案,更谈不上开发这种解决方案。
技术实现思路
考虑到常规方法和结构的上述和其它问题、缺点和不足,本专利技术的一个目的是提供一种方法和结构,其中当使用另一个多处理系统的虚拟存储器寻址对一个多处理系统进行仿真时,所述方法和结构可以有效地映射被仿真的多处理系统的存储器寻址。在本专利技术的第一方面,使用宿主多处理器系统的操作系统的虚拟-实存储器映射机构仿真目标系统的存储器寻址的方法(和系统),包含向模拟页表输入目标虚拟存储器地址以获得宿主虚拟存储器地址。目标系统不注意其运行的软件。在本专利技术的第二方面,一种在使用另一个多处理系统的虚拟存储器寻址仿真一个多处理系统时映射被仿真的多处理系统的存储器寻址的方法,包含使用目标虚拟存储器地址访问目标处理器上的本地后援表(locallookaside table,LLT),确定LLT中是否存在″命中失误″,并且利用LLT中确定的命中失误获得全局页表的锁。在本专利技术的第三方面,在通过执行一或多个代表目标系统操作的线程来仿真目标n本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:E·R·奥尔特曼R·奈尔J·K·奥布瑞恩K·M·奥布瑞恩P·H·奥登D·A·普雷纳S·W·萨塞耶
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利