计算机处理器的模拟制造技术

技术编号:2886349 阅读:200 留言:0更新日期:2012-04-11 18:40
一个指令仿真系统将目标指令翻译成供宿主处理器执行的仿真指令。一个跳转表有指针登记项,用于在翻译指令存储器中定位用来为每个不同类型的目标指令生成可由宿主执行的仿真指令集。在一个实施例中,跳转表中每个指针登记项都有一个不大于最短目标指令长度的登记项长度,由此使跳转表能处理非统一指令长度的目标指令。对于另一个目标指令包含目标指令的程序块-包括信号处理目标指令-的实施例来说,跳转表由保存对代码复杂性的存储要求的跳转表影子存储器而得到加强。在另一个实施例中,跳转表存储器被划分成与目标指令存储器中存储的程序块对应的分段。跳转表存储器的选定的分段按最近使用原则被解压,未选定的分段被压缩。(*该技术在2018年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及在为所模拟计算机系统的处理器准备的程序指令的模拟计算机系统处理器上的模拟或仿真。计算机系统有处理器,处理器识别和执行编码指令例如软件,以执行操作并由此获得所需的结果和/或输出。编码指令如果要由任何特定处理器执行,则必须被解释或可用其它方式还原为属于该处理器特有的预定指令集的指令符号。不同类型的处理器会(通常确实)具有不同的指令集。不过,经常要将为某第一种类型处理器(本文称之为目标处理器)准备或编写的指令在某第二种类型的处理器(本文称之为宿主处理器)上执行。就是说,有些情形可能要求将按目标处理器的指令集编码的指令在宿主处理器上执行—尽管宿主处理器使用与目标处理器的不同的指令集。例如,在例如为了测试为目标处理器编写的软件而有必要或需要让宿主处理器模拟或仿真目标处理器时,就会发生这种情形。当宿主处理器用于模拟某目标处理器时,宿主处理器将为目标处理器编写的软件(即目标指令)存储在存储器中。宿主处理器执行模拟程序,模拟程序包括一个翻译过程和一个所翻译的指令的执行过程。就翻译过程来说,模拟程序解码每个目标指令,以确定其类型(例如“加寄存器”指令、“移动”指令,等等)。对于翻译过程,宿主处理器能在存储器中的其它地方访问翻译代码。翻译代码是按宿主处理器的指令集编写的。对于每个类型的目标指令,翻译代码包括一系列使宿主处理器能生成仿真代码的宿主指令(按照宿主指令集)。仿真代码使宿主处理器能执行等同于目标指令所要求的操作。在诸如以上总结的模拟/仿真情形中,已知要使用一个跳转表。实质上,跳转表在生成对应于目标指令的仿真代码的翻译代码中含有指向宿主指令系列的指针。就是说,当仿真程序解码目标指令以确定其类型时,对于该特定目标指令类型,跳转表有一个指向按宿主指令集生成仿真代码的特定翻译代码的指针。跳转表的描述例如可见MacGregor=s国际专利申请PCT/GB87/00202-软件仿真装置(Arrangement for Software Emu1ation)。跳转表会插入延迟和提高存储器要求。相应地,现有技术中描述了如何避免跳转表。例如参看Davidian=s国际专利申请PCT/US94/03911-解码宿主计算机的客人指令的方法(Methods forDecoding Guest Instructions for A Host Computer),该专利在直接访问仿真程序中的指令的基础上解码客人指令。模拟和仿真在建模诸如电信工业中所采用的那些复杂处理系统时特别重要。这种处理系统一般有一个执行代码程序块的指令处理器。代码程序块存储在称为程序存储器的存储器中。指令处理器还必须能处理信号。本文中所用的“信号”是指从一个代码程序块向另一个代码程序块发送的消息。信号包含信号首部和信号体。信号首部包括发送程序块和接收程序块的标识符,以及信号编号或类型。信号体包括接收程序块在执行该信号时所要使用的数据。如果要将上面段落中所述的处理系统看成宿主处理器上仿真用的目标处理器,就需要有一种高效的方法来翻译代码程序块和信号。此外,要是该目标处理器采用的是非统一指令长度的指令集,则向跳转表位置配置目标指令就会有问题。因此,所需要的、即本专利技术的目的是,一种高效、紧凑并能处理信号和非统一长度的目标指令的仿真/模拟系统。一种指令仿真系统将目标指令翻译成供宿主处理器执行的仿真指令。一个跳转表有指针项,指针项用于针对目标指令的每个不同类型,为生成宿主处理器可执行的仿真指令而在翻译指令存储器中定位翻译指令集。在一个实施例中,跳转表中的每个指针项都有一个不大于最短目标指令长度的长度项,由此使跳转表能处理非统一指令长度的目标指令。在另一个实施例中,目标指令包含目标指令程序块,包括信号处理目标指令,跳转表增加了一个跳转表影子存储器。跳转表影子存储器有多个跳转表影子表,每个跳转表影子表与具有信号处理目标指令的多个程序块之一配对。每个跳转表影子表有一份跳转表项的副本—跳转表项与跳转表项表所配对的包括信号处理目标指令的程序块所关联。在编译指定的目标指令程序块时,宿主处理器编译一部分跳转表,这部分跳转表对应于指定的程序块和由指定程序块所生成信号调用的任何其它程序块的跳转表影子表。在另一个实施例中,跳转表存储器被划分成分段,与目标指令存储器中存储的各程序块对应。跳转表存储器中选定的分段按照某个近期使用标准被解压缩,未选定的分段被压缩。在以下对各附图中表示的实施例的更特定的描述中,本专利技术的以上和其它目的、特点和优点将显而易见。引用字符在不同的视图中指示相同的部分。各附图未必合乎比例,所强调的是本专利技术的原理。附图说明图1是将目标指令翻译成仿真指令并且执行仿真指令的宿主系统的示意图。图2是表示仿真管理例程对将目标对象代码翻译成仿真指令和执行仿真指令进行流水线式地协调的示意图。图3是表示按照本专利技术的一个方式,目标对象代码区、跳转表和其中驻留翻译例程的翻译指令区之间相互关系的示意图。图4是本专利技术另一个宿主系统实施例的示意图,该实施例通过提供跳转表影子表来减小跳转表。图5是表示按照图4的实施例,目标对象代码区、跳转表、翻译指令区和跳转表影子表之间相互关系的示意图。图6是表示按照图4的实施例翻译一个程序块所需指令的编译所使用的存储器的示意图。图7是本专利技术另一个宿主系统实施例的示意图,该实施例通过使用时间标记压缩技术来减小跳转表。图8是表示按照图4的实施例,目标对象代码区、跳转表、翻译指令区和时间标记(time stamp)存储器之间相互关系的示意图。图9a是表示按照本专利技术的一种方式,目标对象代码模程序块、跳转表和仿真代码区之间相互关系的示意图。图9b是表示内联代码(in-line code)的组织的示意图。图10是修改后目标指令、中间生成表和向仿真代码翻译之间相互关系的示意图。在以后的说明中,出于解释的需要而不是为了限制,陈述了特定的细节,诸如特定体系结构、接口、技术等等,目的是便于彻底了解本专利技术。然而,对本领域的熟练人员来说,显然本专利技术可以用不同于这些具体细节的实施例来实现。在其它实例中,省略了对众所周知的装置、电路、和方法的详细叙述,目的是避免因不必要的细节而突出不了对本专利技术的描述。图1表示的宿主计算机系统10,模拟或仿真一个未予示出的目标计算机系统。宿主计算机系统110有一个宿主处理器例如CPU112,它通过总线114与构成宿主的其它部分通信。构成宿主的其它部分包括输入装置(例如键盘和指针(例如鼠标))116、输出装置(例如显示器、打印机)118、输入/输出存储器(例如磁盘驱动器)120、只读存储器(ROM)122和随机存取存储器(RAM)130。本领域的熟练人员知道,这些不同的构成部分都通过适当的接口连接到总线114。宿主计算机系统110例如可以是Sun Microsystems公司销售的SPARC工作站。如图1中所示,RAM130包括许多例程和区(例如分段或表)。例如,目标对象代码区132—亦称目标指令存储器,用于存储为未予示出的目标处理器编码的程序指令。在RAM130的目标对象代码区132中存储的目标指令,一般是从外部存储介质(例如通过I/O存储器120)获得,按需要而传输(例如高速缓存)到RAM130的。“为未予示出的目标处理器编码的”,指目标本文档来自技高网...

【技术保护点】
一个将目标指令翻译成仿真指令的指令仿真系统,该系统包含:一个执行按宿主处理器指令集格式化的指令的宿主处理器;一个在其中存储目标指令的目标指令存储器,目标指令存储器有类型各异的目标指令,在目标指令存储器中存储的目标指令有非统一的指令长 度,包括一个最短目标指令长度;一个翻译指令存储器,翻译指令存储器有用于为每一种不同类型的目标指令生成仿真指令的翻译指令集,翻译指令集是按照宿主处理器指令集格式化的,仿真指令也是按照宿主处理器指令集格式化的,为特定目标指令生成的仿真指令被 构造得能完成与其为之生成的该特定目标指令要完成的相同的活动;一个有多个登记项的跳转表存储器,跳转表中多个登记项的每个都有一个不大于最短目标指令长度的登记项长度,目标指令存储器中一个选定的目标指令与跳转表存储器中一个选定的登记项关联,跳转 表存储器中该选定的登记项中存储一个指针,指向翻译指令存储器中特定一个翻译指令集。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:S斯科拜
申请(专利权)人:艾利森电话股份有限公司
类型:发明
国别省市:SE[瑞典]

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

1