翻译信息取得.pdf

上传人:1*** 文档编号:973562 上传时间:2018-03-22 格式:PDF 页数:29 大小:1.41MB
返回 下载 相关 举报
摘要
申请专利号:

CN200680016232.X

申请日:

2006.03.24

公开号:

CN101495964A

公开日:

2009.07.29

当前法律状态:

终止

有效性:

无权

法律详情:

未缴年费专利权终止IPC(主分类):G06F 9/45申请日:20060324授权公告日:20130424终止日期:20160324|||专利权的转移IPC(主分类):G06F9/45变更事项:专利权人变更前权利人:飞思卡尔半导体公司变更后权利人:英特尔公司变更事项:地址变更前权利人:美国得克萨斯变更后权利人:美国加利福尼亚登记生效日:20150326|||授权|||实质审查的生效|||公开

IPC分类号:

G06F9/45

主分类号:

G06F9/45

申请人:

飞思卡尔半导体公司

发明人:

威廉·C·莫耶

地址:

美国得克萨斯

优先权:

2005.5.27 US 11/140,310

专利代理机构:

中国国际贸易促进委员会专利商标事务所

代理人:

付建军

PDF下载: PDF下载
内容摘要

一种用于对数据处理系统的处理器内核(103)的操作透明地从数据处理系统获得翻译信息的系统。在一个实施例中,处理器包括处理器内核(103)和存储器管理电路(105)。该存储器管理电路存储翻译信息。该数据处理系统包括调试电路,用于获得存储在存储器管理电路中的翻译信息,并且向外部提供该信息。

权利要求书

1.  一种从数据处理器获得翻译信息的方法,该数据处理器包括处理器内核和存储器管理电路,该方法包括:
从存储器管理电路获得翻译信息,其中该获得是对处理器内核的操作透明地执行的,并且其中在执行数据处理器的处理器操作时使用所述翻译信息;
向数据处理器外部提供该翻译信息。

2.
  根据权利要求1的方法,其中所述翻译信息包括配置信息。

3.
  根据权利要求1的方法,其中所述翻译信息包括属性信息。

4.
  根据权利要求1的方法,其中所述向数据处理器外部提供翻译信息的步骤包括向外部调试电路提供所述翻译信息。

5.
  根据权利要求1的方法,其中:
所述处理器内核和存储器管理电路实现在集成电路上;
其中所述向数据处理器外部提供翻译信息的步骤包括向该集成电路外部提供翻译信息。

6.
  根据权利要求1的方法,还包括:
接收对翻译信息的请求,其中该请求是在数据处理器外部产生的;
其中从存储器管理电路获得翻译信息是响应该请求而获得的。

7.
  根据权利要求6的方法,其中所述存储器管理电路包括翻译缓冲器,其中所述请求包括对该翻译缓冲器的所有条目的翻译信息的请求。

8.
  根据权利要求6的方法,还包括:
其中响应对该请求的接收,搜索存储器管理电路以查找对应于该请求的信息。

9.
  根据权利要求8的方法,还包括:
向数据处理器外部提供存储器管理电路不包含对应于该请求的翻译信息的指示。

10.
  根据权利要求6的方法,还包括:
其中所述请求包括对存储器管理电路的翻译缓冲器的指定条目的指示;
其中所提供的翻译信息包括与该翻译缓冲器的指定条目关联的信息。

11.
  根据权利要求6的方法,还包括:
其中所述请求包括对虚拟地址的指示;
其中所提供的翻译信息包括与存储器管理电路中的虚拟地址关联的信息。

12.
  根据权利要求1的方法,还包括:
将所述数据处理器置于存储器管理电路中的翻译信息的改变发起所述获得翻译信息的步骤的模式下。

13.
  根据权利要求1的方法,还包括:
其中所述获得翻译信息的步骤是响应翻译信息的改变而执行的。

14.
  根据权利要求1的方法,还包括:
使用所述翻译信息来调试正由处理器内核执行的代码以开发程序代码;
将该程序代码安装在数据处理系统中。

15.
  根据权利要求1的方法,还包括:
接收对与指定虚拟地址关联的翻译信息的请求,其中该请求是在数据处理器外部产生的;
确定对该指定虚拟地址的指示是否存储在存储器管理电路中;并且
其中所述获得翻译信息的步骤包括:如果所述确定表明对该指定虚拟地址的指示存储在存储器管理电路中,则从存储器管理电路中获得与该虚拟地址关联的信息。

16.
  一种数据处理系统,包括:
数据处理器,该数据处理器包括:
处理器内核;
可操作地与该处理器内核耦合的存储器管理电路,该存储器管理电路存储翻译信息,其中该翻译信息用于执行数据处理器的处理器操作;
调试电路,该调试电路被配置为对处理器内核的操作透明地从存储器管理电路获得翻译信息,并且被耦合以向数据处理器外部提供所获得的信息。

17.
  根据权利要求16的数据处理系统,其中所述数据处理器和调试电路实现在集成电路中,该集成电路包括可操作地与所述调试电路耦合的至少一个外部调试端子,该调试电路可操作以通过该至少一个外部调试端子向外部提供翻译信息。

18.
  根据权利要求17的数据处理系统,其中所述调试电路可操作以通过该至少一个外部调试端子接收对翻译信息的外部请求。

19.
  根据权利要求16的数据处理系统,其中所述存储器管理电路在翻译后备缓冲器中存储翻译信息。

20.
  根据权利要求16的数据处理系统,其中所述存储器管理电路包括存储装置,该存储装置包括多个条目,其中该多个条目中的每个条目被配置为存储翻译信息,其中存储在每个条目中的翻译信息包括虚拟地址信息和物理地址信息。

21.
  根据权利要求16的数据处理系统,其中所述调试电路包括第一调试电路和第二调试电路,第一调试电路在存储器管理电路中实现,其中第一调试电路可操作地耦合到第二调试电路以从第二调试电路接收对翻译信息的请求,并且被耦合以向第二调试电路提供翻译信息。

22.
  一种调试数据处理器的方法,所述数据处理器包括处理器内核和存储器管理电路,该处理器内核和存储器管理电路实现在集成电路中,该方法包括:
从存储器管理电路获得翻译信息,其中该获得是对处理器内核的操作透明地执行的,并且其中在执行数据处理器的处理器操作时使用所述翻译信息;
通过该集成电路的至少一个外部调试端子向数据处理器外部提供翻译信息;
使用该翻译信息来调试正由处理器内核执行的代码。

说明书

翻译信息取得
技术领域
本发明总的涉及数据处理器,具体地涉及获得数据处理器的翻译信息(translation information)。
背景技术
在一些数据处理系统中,用于将虚拟存储器或I/O地址转变为物理存储器或替换的I/O地址的地址翻译是用重新映射功能来执行的,该重新映射功能访问例如存储在数据处理器的存储器管理单元(MMU)的翻译后备缓冲器中的翻译信息。
调试过程例如在开发用于数据处理系统的代码时使用。调试过程可以用外部调试器实施,利用调试通信协议从数据处理系统向调试器传递调试信息。实时地提供调试信息而无需干扰数据处理系统的正常操作是非常想要达到的,以便实际的调试操作能对系统操作保持透明。调试通信协议的一个例子是IEEE ISTO-5001 NEXUS调试标准,其由可操作地与正在接受调试的数据处理器耦合的调试器使用。
在ISTO-5001标准中定义了很多调试功能以通过提供对程序流和数据流的可见性来监控程序执行。该可见性由通过专用多位或多终端串行接口或辅助端口向外部开发系统提供的信息消息序列组成。然后程序流消息与该程序的静态图像组合以重构内嵌处理器的实际指令执行序列。数据流消息跟踪处理器读取预定义地址范围并写入该预定义地址范围。
ISTO-5001动态调试是利用包括同步消息接发(messaging)的程序跟踪消息接发以及数据跟踪消息接发来实现的。程序跟踪消息接发的实施要求结合状态信息监控由处理器内核执行的指令取出数据序列,该状态信息指示流变化(COF,change of flow)事件,包括直接或间接的流变化事件。直接COF事件涉及与程序计数器有关的跳转,间接COF事件涉及寄存器间接跳转和异常引向(vectoring)。程序跟踪同步消息的实施需要传送当前执行的指令地址或者合理的相邻指令地址。数据跟踪消息接发的实施要求监控数据存取地址和有条件地提供相关的数据。数据跟踪消息接发包括在一个或多个已定义的地址范围内的读取消息接发或数据读取以及在一个或多个已定义的地址范围内的写入消息接发或数据写入。
作为该标准的操作的一部分,调试消息由数据处理器系统产生,该数据处理器系统包含针对程序事件的地址和数据信息(程序跟踪消息接发)或针对数据事件的地址和数据信息(数据读取消息接发,数据写入消息接发)以及其它调试信息。该地址和数据信息典型地由调试器格式化并呈现给调试器的用户。该信息与正在执行的程序的关联是调试过程的重要部分,从而可以监控实际的程序流和系统数据变量的动态值。
在采用虚拟存储器的系统中,用户的程序和数据值可以放置在物理存储器地址,这些物理存储器地址不与由于显示经过编译或汇编的程序和数据布局而产生的、对应于虚拟地址的地址关联。由数据处理器执行虚拟到物理地址映射(或翻译)以获得正确的程序指令和数据变量值。
但是,在一些实施例中,虚拟到物理映射信息是外部调试器所不知道的。需要一种改进的系统来向外部调试器提供翻译信息而不会影响数据处理系统的处理器内核的操作。
附图说明
通过参照附图可以更好地理解本发明,而且本发明的各种目的、特征和优点也对本领域技术人员一目了然。
图1是按照本发明的数据处理系统的一个实施例的框图。
图2是存储器管理单元的翻译后备缓冲器的框图。
图3是说明按照本发明在调试电路之间的信号线的耦合的一个实施例的框图。
图4是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图5是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图6是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图7是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图8是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图9是根据本发明的一个实施例用于获得翻译信息的一个过程的流程图。
图10是根据本发明利用在调试过程中获得的信息在数据处理系统上开发和安装代码的一个实施例的流程图。
除非另有说明,否则在不同图中使用相同的附图标记表示相同的项目。
具体实施方式
下面给出对用于执行本发明的模式的详细描述。该描述只是说明本发明而不是要进行限制。
图1是数据处理系统101的框图。在所示出的实施例中,数据处理系统101包括处理器102。处理器102包括处理器内核103和可操作地通过总线与处理器内核103耦合的存储器管理单元105。总线包括虚拟地址总线线路107、控制信号线109、状态信号线111和数据信号线122。
系统101包括存储器115(例如RAM,如DRAM、SRAM、MRAM)和可操作地通过通信总线119与处理器102耦合的其它电路113。在一个实施例中,通信总线119包括数据线122、状态线121、控制线123和物理地址线125。处理器102可以通过位于其它电路113中的接口电路与诸如非易失性存储器(如硬盘,CD驱动器)的外部电路耦合。在一个实施例中,其它电路113可以包括诸如ROM、通用I/O、UART和其它传统外设的其它设备。在另一些实施例中,其它电路113可以包括执行一个或多个其它功能的电路。作为示例,其它电路113可以包括用于执行一个或多个以下功能的电路:定时器功能、数据处理功能、通信功能、输入/输出功能、存储功能、模拟到数字转换、显示驱动器功能、和/或外部总线接口功能。其它电路113可以通过信号141耦合以便与数据处理系统101外部通信。一些实施例可以不包括其它电路113。
在一个实施例中,数据处理器102是CPU。在其它实施例中,数据处理器102可以是其它类型的数据处理器,如数字信号处理器(DSP)、智能直接存储器存取(DMA)控制器、图形控制器或嵌入式处理器。
在一个实施例中,处理器内核103包括至少一个指令执行单元以执行用于进行处理器操作的指令。在一个实施例中,指令执行单元包括用于实施处理器流水线的级的电路。这些级的示例包括取出级、解码级、执行级、存储器数据存取级和寄存器写回级。在其它实施例中,处理器102可以包括多个处理器内核,每个处理器内核都具有不同或类似的执行流水线以及功能。
在所示出的实施例中,处理器102通过从存储器115获取数据和指令并向存储器115和/或其它电路113写入数据来执行数据处理器操作。在一个实施例中,处理器内核103对数据操作数执行指令,该数据操作数和该指令都是从存储器115接收的。在执行这些操作时,处理器内核103通过地址线107向存储器管理单元105提供虚拟地址。响应该请求,MMU 105通过检查所接收的虚拟地址是否位于其翻译后备缓冲器(TLB)之一(例如131,132)中来确定该数据是否在高速缓存134中。如果所请求的数据不在高速缓存134中,则产生高速缓存未命中。响应高速缓存未命中,存取存储器115、(例如其它电路113的)I/O电路或外部电路(例如通过其它电路113)以获得该数据或指令。在这样的存取中,MMU 105将从处理器102接收的虚拟地址翻译为存储单元或I/O电路的物理地址,以便通过通信总线119从其它设备接收或向其它设备提供所请求的数据或指令。在其它实施例中,其它类型的处理器可以按照其它方式操作和/或具有其它配置。
在所示出的实施例中,MMU 105包括两个TLB缓冲器131和133,在其它实施例中还可以包括其它数量。MMU 105还可以包括不同级别的高速缓存。MMU 105包括控制电路135,用于控制MMU105的操作。
MMU 105包括配置寄存器139,用于存储关于MMU 105的配置信息。配置信息包括关于MMU 105的配置和性能的信息。配置信息的例子包括TLB的条目(entry)的数量、TLB的数量、TLB的尺寸、TLB的条目尺寸和其它配置信息如MMU是否完全关联或双向关联。其它类型的配置信息包括关于MMU 105的其它功能的信息,如锁定条目的能力和可提供的控制操作的类型(例如刷新)。
在一些实施例中,MMU可以实施为处理器内核103的一部分。在一些实施例中,处理器可以包括多个MMU,例如该处理器包括多个高速缓存,每个高速缓存具有MMU。在一些实施例中,存储器管理单元可以实施在负载存储单元中。在一些实施例中,高速缓存134位于MMU 105外部。其它实施例可以不包括高速缓存134。在其它实施例中,多个高速缓存可以实施在处理器102内部或外部的任何地方。
数据处理系统101包括调试电路117。在图1的实施例中,处理器102、存储器115、其它电路113和调试电路117实施在集成电路106上。集成电路106包括外部端子154。调试电路117可操作地通过外部端子154和信号线153耦合到外部调试电路171。在所示出的实施例中,电路171在集成电路106外部,尽管在替换实施例中电路171的全部或一部分可以包含在集成电路106中。在本发明的一些实施例中,调试电路117及其与数据处理系统101的其它部分的交互与一个或多个现有标准如JTAG或IEEE ISTO-5001兼容。在一个实施例中,线路153和外部调试端子154实施IEEE ISTO-5001 NEXUS标准或JTAG-TAP标准的信令协议。在一个实施例中,IEEE ISTO-5001 NEXUS标准的辅助端口可以用端子154来实施。
在一个实施例中,外部调试电路171包括用于利用端子154提供调试命令和接收调试信息的电路。在一个实施例中,外部调试电路171和调试电路117通过交换调试命令和程序和数据跟踪信息以及与处理器102关联的其它状态信息来执行按照IEEE ISTO-5001NEXUS标准的调试操作。在一个实施例中,电路171和电路117通过端子154并通过在ISTO-5001 NEXUS标准中提出的命令和通信协议进行通信。
图2是TLB(例如131或133)的框图。TLB 201包括控制电路203和缓冲器205。缓冲器205包括多个条目(在图2中用条目0-N示出)。每个条目包括虚拟地址字段209、物理地址字段211、属性字段213和指明条目信息的有效性的有效(“V”)字段215。字段209包括条目的虚拟地址,字段211包括位于该条目的虚拟地址字段209中的虚拟地址的关联物理地址翻译。属性字段213包括与存储在地址位置的信息关联的属性信息,包括例如由物理地址指定的存储单元是否受限制或与条目关联的数据是否可被其它处理器操作存取。其它类型的属性信息包括写保护、高速缓存能力、存储相关性(或共享)、允许存取通过该条目映射的位置所需要的特权等级、对应于地址范围的信息是否已经被修改以及对应于通过条目映射的地址范围的位置的其它特征。
图3是根据本发明的一个实施例进一步示出调试电路117和MMU调试电路137之间的总线151的信号的框图。在所示出的实施例中,总线151包括用于从电路117向电路137传送命令信号的命令线317(在所示实施例中是从电路117到电路137的单向线路)。总线151还包括用于从电路137向电路117传送命令响应信号的命令响应信号线319、用于传送翻译状态信号的翻译状态线305、虚拟地址(请求)线309、用于从电路137向电路117提供物理地址和属性的物理地址和属性线311。总线151还包括虚拟地址(更新)线313、条目号码线315和TLB更新线316。在其它实施例中,电路117和137之间的耦合还可以具有其它配置。例如,在其它实施例中,可以根据通信协议在公用的总线线路上传送不同的信息。在其它实施例中,信息可以串行传递。
调试电路117还包括控制寄存器304和用于控制调试电路117的操作的控制电路303。
在一个实施例中,电路117和137实施为硬连线电路。在一些实施例中,电路117和/或137可以用执行软件或固件的处理器实施。在其它实施例中,调试电路117和137可以实施为集成电路。
图4是根据本发明的一个实施例在调试过程期间从MMU 105获得翻译配置信息的流程图。在操作403,调试电路117通过线路153从电路171接收命令以便从MMU 105获得MMU配置信息。在一个实施例中,通过将命令写入调试电路117的控制寄存器304来向调试电路117提供命令。在一个实施例中,调试电路117能够执行用于请求信息的各种操作。通过电路171产生的命令将用于请求各种类型的信息。对于这样一些命令的例子,参见ISTO-5001 NEXUS标准。
在操作405,调试电路117通过命令线317从MMU调试电路137请求配置信息。在一个实施例中,电路117能够产生不同类型的命令以取得(retrieve)不同类型的信息。在操作407,MMU调试电路137从寄存器139取得配置信息。在操作411,MMU调试电路137通过线路319向调试电路117提供所取得的配置信息。在操作413,调试电路117向电路171提供所取得的信息。
在图4的流程图示出(以及在图5-8的流程图中示出)的用于获得翻译信息的操作可以对处理器内核103的操作透明地执行。在此使用的“对处理器内核103的操作透明地”获得翻译信息意思是翻译信息可以在不中断或干扰处理器内核的处理操作的情况下获得。例如,参照图1,翻译信息可以在不停止或中断由处理器内核103执行的处理器指令的情况下获得,这是因为该信息不引人注意地由MMU调试电路137获得。对处理器内核的操作透明地获得翻译信息在一些实施例中可以允许不引人注意地进行实时调试。
能够对处理器内核的操作透明地获得配置信息(或其它类型的翻译信息)的系统的一个优点在于,它可以允许调试系统在不利用处理器操作并因而不中断处理器正常操作的情况下查看这些信息,从而获得这些信息。
取得的配置信息可以由调试系统用于向用户指明MMU 105支持什么功能。该信息还可以用于帮助调试器执行下面参照图5-9描述的附加信息请求。
图5是用于从TLB的指定TLB条目获得翻译信息的操作的流程图。在操作503,电路117从电路171接收从TLB的指定条目获得翻译信息的命令。在一个实施例中,该命令包括获得与指定TLB(例如在所示出的实施例中的TLB0或TLB1)的指定条目(例如第10个条目)关联的所有翻译信息的请求。在一些实施例中,从指定条目获得信息的请求可以包含在对一定范围的条目(例如条目15-30)的翻译信息的请求中。在其它实施例中,命令可以包括对指定条目的指定翻译信息(例如属性,物理地址)的请求。然后这些信息可以提供给调试器的用户以告知该用户正由MMU 105执行的翻译映射的至少一个部分状态,由此帮助协调与程序代码和数据变量关联的虚拟地址与该代码和数据在数据处理系统101内的实际物理位置之间的关系,该关系在系统执行应用时可能不保持不变或固定。一些虚拟存储系统典型地在请求和释放资源时动态地重新映射信息。
在操作505,调试电路117通过命令线317和条目号码线315从MMU调试电路137请求指定的TLB条目信息。在操作507,MMU调试电路137从指定的TLB条目或指定TLB中的条目取得该信息。在操作509,MMU调试电路137通过线路311和线路313(取决于所指定的信息)向调试电路117提供所取得的信息。这些信息可以包括如图2所示的该条目的虚拟和物理地址字段以及属性和有效性信息。在操作511,调试电路117向电路171提供所取得的信息。
图6是用于获得指定虚拟地址的信息的流程图。在操作603,调试电路117通过端子154从电路171接收获得与指定虚拟地址关联的TLB信息的命令。在一个实施例中,该命令可以获得指定地址的所有TLB信息。在其它实施例中,该命令可以是获得特定虚拟地址的指定TLB信息(例如属性,物理地址)。在一个实施例中,该命令可以是从指定TLB获得信息。在其它实施例中,该命令可以是从MMU 105内的所有TLB获得信息。在一个实施例中,获得虚拟地址的TLB信息的请求可以包括在获得一定范围的虚拟地址的TLB信息的请求中。在一个实施例中,由电路117提供的命令可以是从多个地址获得信息的命令。该命令包括表示地址范围的数字以从线路309上提供的地址开始使用。
在操作605,调试电路117通过命令线317、翻译请求控制线307和虚拟地址线309请求由MMU调试电路137查找与指定虚拟地址关联的信息。在一个实施例中,表明请求的命令提供到命令线317上,翻译类型提供到翻译请求控制线307上,指定的虚拟地址提供到虚拟地址线309上。
在操作607,MMU调试器搜索其TLB以查找与指定虚拟地址关联的信息。在一个实施例中,其搜索每个TLB(或根据翻译请求的类型搜索指定TLB)的虚拟地址字段209以查找该指定虚拟地址。
如果在609确定MMU 105没有TLB包括该虚拟地址的条目,则MMU调试电路137在操作611通过状态线305向调试电路117提供翻译未命中的指示。如果在609确定TLB具有针对该指定虚拟地址的条目(称为TLB命中),则MMU调试电路137在操作613通过翻译状态线305向调试电路117提供翻译命中的指示,并通过物理地址和属性线311向调试电路117提供翻译条目信息。在一个实施例中,命中条目的条目号码还可以在操作613由MMU调试电路137经过条目号码线315提供给调试电路117。
在操作615,调试电路137通过线路153和端子154向电路171提供所取得的信息(或者TLB未命中的指示)。
通过获得与指定虚拟地址或一定范围的指定虚拟地址关联的翻译信息,系统101的调试器可以恰当地关联作为诸如ISTO-5001NEXUS的实时跟踪信息标准的操作的一部分而提供的实时调试信息以及其它调试信息,在该标准中由包含针对程序事件(程序跟踪消息接发)或数据事件(数据读取消息接发,数据写入消息接发)的地址和数据信息的数据处理器产生调试消息。这些消息包括物理地址信息。通过将包含在实时跟踪信息中的物理地址信息与正由数据处理系统101执行的应用的编程器所使用的对应虚拟地址关联,该地址和数据信息可由调试器格式化并呈现给调试器的用户。通过实时跟踪消息获得的物理地址信息与正在执行的程序的虚拟地址之间的关联可以是调试过程的重要部分,从而实际的程序流和系统数据变量的动态值可以得到恰当和方便地监控。
图7示出与指定虚拟地址无关地从TLB获得所有信息的流程图。在该实施例中,可能期望编程器获得数据处理系统的所有翻译信息,从而可由系统101的调试器检查出MMU 105的一个或多个TLB的完整状态。
在操作703,调试电路117从电路171接收从MMU的TLB获得所有TLB条目信息的命令。在一个实施例中,从MMU的一个TLB获得所有信息的请求可以包含在从MMU的所有TLB获得所有信息的命令中。在一些实施例中,该命令可以是获得TLB的指定字段的所有信息(例如物理地址,属性)。
在操作705,调试电路117通过命令线317请求MMU调试电路137提供TLB(或MMU 105的所有TLB)的所有TLB条目信息。
在图7所示的实施例中,条目信息按照逐条条目的方式提供。但是,在其它实施例中条目信息可以通过其它技术提供给电路117。在操作707,要提供的当前条目(表示为N)被MMU调试电路137设置为0(第一条目)。在操作709,MMU调试电路137从当前条目(N)取得TLB条目的信息。在操作711,MMU调试电路137通过线路311(物理地址和属性)、线路313(虚拟地址)和线路315(条目号码)向调试电路117提供从当前TLB条目(N)取得的信息。在一些实施例中,建立握手程序,其中电路117响应对每个条目的信息的接收而提供“已接收命令”。响应“已接收命令”,电路137提供下一个条目的信息。在其它实施例中,不使用握手程序。
在操作713,调试电路117向电路171提供从条目N取得的信息。在一些实施例中,操作713可以通过握手过程来执行。
在操作715,MMU调试电路137确定当前条目N是否TLB的最后一个条目(或者MMU的最后一个TLB的最后一个条目)。如果在操作715中该确定是否定的,则当前条目N在操作717增加到下一个条目号码,并且针对另外的条目重复执行操作709、711、713、715直到在操作715中确定已经取得最后一个TLB条目的信息为止。如果在操作715中该确定是肯定的,则MMU调试电路137在操作719通过线路319向调试电路117提供“完成”响应。调试电路117在操作721向电路171提供完成响应以表明所有信息均已提供。
在其它实施例中,调试电路117可以包括存储器(未示出),以在翻译信息被提供给电路171之前缓存该翻译信息。因此,在一些实施例中,翻译信息可以在与从MMU调试电路137向调试电路117提供信息不同的时刻或不同的循环机制下提供给电路171。
在一些实施例中,可以将MMU调试电路137和调试电路117配置为或置于在系统执行时广播TLB信息中的所有变化的模式。在该模式中,对TLB的任何更新都将自动提供给电路171。该模式的一个优点在于可以加速调试过程,因为TLB的当前状态可以由电路171自动跟踪并提供给系统101的调试器而无需定期查询MMU 105的状态。
在803,调试电路117从电路171接收进入广播模式的命令。在操作805,调试电路117通过命令线317向MMU调试电路137提供进入广播模式的命令。在操作807,MMU调试电路137进入广播模式并等待对TLB的更新发生。
对TLB的更新可以因为很多原因而发生,包括:等待来自高速缓存如134的数据或指令或者该数据或指令的无效;在系统101内重新映射数据或指令;在数据处理系统101操作期间将信息从非易失性存储器如硬盘驱动器或CD ROM传送到快速易失性存储器(例如RAM)的页面调度操作;或TLB条目的无效。
如果在操作809中确定发生了更新,则在操作811中,MMU调试电路137通过线路311(物理地址和属性)、线路313(虚拟地址)和线路315(条目号码)向调试电路117提供经过更新的TLB翻译信息,该信息包括经过更新的信息的条目号码。调试电路117在操作813向电路117提供所接收的信息。
在一些实施例中,将电路137配置为向电路117自动提供任何经过更新的TLB信息而不必置于广播模式。在一些实施例中,将电路117配置为向电路171自动提供任何经过更新的TLB信息。
提供具有可以广播翻译信息的更新而不会干扰处理器操作的电路的处理器可以提供更有效的调试过程。此外,该处理器可以自动提供对TLB的更新的指示,由此向调试电路警告出现了更新。这种模式带来的优点在于可以加速调试过程,因为可以由电路171自动跟踪TLB的当前状态并提供给系统101的调试器,而不必定期查询MMU105的状态。
在一些实施例中,可以利用处理器操作来获得翻译信息。在一个实施例中,调试电路137对处理器内核103产生中断以获得所请求的翻译信息。如果所请求的翻译信息不在MMU 105中而且必须提供到处理器102外部,则这种中断可用于获得所请求的信息。
在一个实施例中,为了获得所请求的翻译信息而进行的中断是低优先级的中断,该中断要在其它更高优先级的任务执行完毕之后才执行。在一个实施例中,该中断是向量中断,其中电路137用线路152上的中断信号向处理器内核103提供向量。在一些实施例中,该请求中断的中断优先级可以在一定范围的中断优先级等级内编程。在一个实施例中,可以用指定的优先级等级来产生中断。但是在其它实施例中,可以执行其它类型的中断。在一些实施例中,中断可以由电路137通过具有连接到处理器内核103的中断线的输出的其它电路(未示出)来产生。在一个实施例中,可以由调试电路117(或者由耦合到调试电路117的中断产生电路)在电路171请求翻译信息时产生中断。
在一个实施例中,响应中断,处理器内核103暂停当前执行流,并通过执行作为由处理器内核103执行的中断处理例程的一部分的处理器操作来获得翻译信息。
在其它实施例中,翻译信息可以由处理器内核103通过利用程序线程来获得。程序线程是构成用于完成一项任务或一系列任务的可执行程序的指令的路径。操作系统可以控制多个程序线程的执行,这些程序线程可以被执行以完成各种任务。可以在处理器内核按照优先级顺序检查任务列表以确定是否要激活这些任务时,激活程序线程。在数据处理系统的操作期间,操作系统可以定期检查是否已经基于线程的优先级做出了激活该线程的请求。
在一个实施例中,在电路171请求翻译信息时,可以由调试电路117或MMU调试电路137(或者在一些实施例中由耦合到调试电路117或MMU调试电路137的中断产生电路)发起新的程序线程。在一个实施例中,响应新的程序线程的产生,将该新线程添加到请求执行的活动线程列表中。
在一个实施例中,线程优先级可编程为预定的优先级等级。例如,该线程优先级可编程为低于更加严格时间要求的其它线程的值,使得可以用较低的优先级(例如以刚好高于空转线程的优先级等级)执行该线程,从而该线程最小程度地影响处理器内核的操作。在一个实施例中,首先检查更高优先级的线程以激活,而在确定没有更高优先级的线程被请求激活之后才检查更低优先级的线程。
在一个实施例中,由电路137通过经由总线151将指定值写入处理器内核103的请求寄存器(未示出)来请求激活线程。在其它实施例中,可以按照其它方式来请求激活线程。在一个实施例中,作为线程激活的一部分,可以与激活请求一起提供线程优先级。在其它实施例中,该线程优先级可以通过检查控制寄存器字段的状态来预先确定,或者可以硬连线为指定值。
图9示出由处理器内核使用处理器内核操作(例如程序线程或中断处理例程)来获得翻译信息的图6的操作的变型实施例的流程图。在所示出的实施例中,如果电路137没有在MMU 105的TLB中找到所请求的针对指定虚拟地址的翻译信息(在图6的操作609中表示为“否”),则执行图9的操作。
如果在操作609中为否,则电路137请求激活负责获得该翻译信息的程序线程,或者通过线路152向处理器内核103产生中断。在一个实施例中,该程序线程或中断具有预定的优先级。在其它实施例中,该优先级可以由MMU调试电路137利用线路152随着该请求一起提供。
作为响应,处理器内核103在操作905激活该程序线程或者执行中断处理例程以获得所请求的翻译信息。该线程的激活或者中断的产生或处理基于在该线程或中断的优先级等级。在一个实施例中,用于执行该程序线程或用于中断处理例程的代码116在操作期间存储在存储器115中,但是也可以在操作期间写入到高速缓存中。在一个实施例中,该代码116可以存储在ROM或其它非易失性存储器(例如图1中表示为其它电路113)中。
执行程序线程或中断处理例程的处理器内核103可以按照很多方式获得翻译信息。在一个实施例中,通过查找存储器115中包含翻译信息的多层次表(a hierarchy of tables)(例如页表118)来获得该翻译信息。在一个实施例中,对该多层次表的搜索可以通过表巡视(walking),由MMU 105中的硬件状态机(未示出)或者由内核103执行的处理器操作来执行。
在操作907中,处理器内核103通过线路152向MMU调试电路137提供所取得的翻译信息。在其它实施例中,处理器内核103通过存储器总线(数据线122和虚拟地址线107)将请求的信息写入MMU调试电路137的寄存器中。在该实施例中,MMU调试电路137可以包括具有指定I/O或存储器地址的寄存器。然后,处理器内核103继续执行下一个所选择的线程或继续被中断的处理。
在操作909中,MMU调试电路137通过总线151向调试电路117提供所请求的翻译信息。在操作911,调试电路117向调试电路171提供所取得的翻译信息。
在其它实施例中,调试电路117可以向处理器内核103产生中断或者使处理器内核103中的程序线程激活。在其它实施例中,处理器内核103也可以直接向调试电路117提供该信息而无需将该信息写入MMU 105。
由处理器内核使用低优先级程序线程或低优先级中断来获得翻译信息的一个优点在于可以用对正常处理器内核操作的最小量的干扰来执行翻译信息取得。在一些情况下,该取得可以在处理器内核空闲时执行。
在一个实施例中,用于获得翻译信息的中断的中断级别是可编程的,或者线程优先级级别是可编程的。在一个实施例中,优先级信息的取得是可编程的。由此,优先级级别可以动态改变。在一些实施例中,该优先级改变通过由调试电路117从线路153接收的命令完成,或者作为处理器102的操作的结果而完成。在其它实施例中,优先级改变可以由系统101的其它部件执行。
所取得的翻译信息可由用于调试正由处理器内核103执行的代码的电路171使用。正在调试的代码可以是计算机程序的一部分,该计算机程序然后将被加载到包含类似于数据处理系统101的数据处理系统的其它电子系统中。
图10是用于示出MMU 105在调试过程期间获得的翻译信息如何用于开发出要在其它数据处理系统上安装的代码的过程的流程图。
在操作1003中,该信息从MMU 105获得而且最终提供给电路171。在操作1005,用翻译信息来开发程序代码(例如应用或系统代码)。在一个实施例中,用翻译信息来调试处理器内核103正在执行的代码。
在操作1007,将所开发的程序代码安装在数据处理系统(例如类似于数据处理系统101)上以便由该系统使用。在一个实施例中,作为制造过程的一部分将该代码加载到数据处理系统上(例如用蜂窝电话或工厂安装的计算机软件)。在其它实施例中,该代码可以是由数据处理系统的用户购买的售后软件应用的一部分。
其它实施例的数据处理系统可以具有其它配置。例如在一些实施例中,可以省去电路117,而调试电路171直接从MMU调试电路137获得信息。在其它实施例中,可以省去电路137,而电路117可以从MMU 105获得信息。在其它实施例中,可以合并电路117和137。
一个实施例包括从数据处理器获得翻译信息的方法。数据处理器包括处理器内核和存储器管理电路。该方法包括从存储器管理电路获得翻译信息。该获得是对处理器内核的操作透明地执行的。翻译信息用于执行数据处理器的处理器操作。该方法还包括向数据处理器外部提供翻译信息。
在其它实施例中,数据处理系统包括数据处理器。数据处理器包括处理器内核和可操作地与该处理器内核耦合的存储器管理电路。存储器管理电路存储翻译信息。该翻译信息用于执行数据处理器的处理器操作。数据处理系统还包括调试电路。将该调试电路被配置为对处理器内核的操作透明地从存储器管理电路获得翻译信息,并且被耦合为向数据处理器外部提供所获得的信息。
其它实施例包括调试数据处理器的方法。数据处理器包括处理器内核和存储器管理电路。处理器内核和存储器管理电路实施在集成电路中。该方法包括从存储器管理电路获得翻译信息,其中该获得是对处理器内核的操作透明地执行的。翻译信息用于执行数据处理器的处理器操作。该方法还包括通过该集成电路的至少一个外部调试端子向数据处理器外部提供翻译信息,并使用该翻译信息来调试正由处理器内核执行的代码。
虽然示出和描述了本发明的具体实施例,本领域的技术人员将认识到,基于在此给出的教导,可以进行其它更改和修正而不会脱离本发明及其更宽泛方面的范围,因此所附权利要求将所有这种落入本发明真实精神和范围内的更改和修正涵盖在其范围内。

翻译信息取得.pdf_第1页
第1页 / 共29页
翻译信息取得.pdf_第2页
第2页 / 共29页
翻译信息取得.pdf_第3页
第3页 / 共29页
点击查看更多>>
资源描述

《翻译信息取得.pdf》由会员分享,可在线阅读,更多相关《翻译信息取得.pdf(29页珍藏版)》请在专利查询网上搜索。

一种用于对数据处理系统的处理器内核(103)的操作透明地从数据处理系统获得翻译信息的系统。在一个实施例中,处理器包括处理器内核(103)和存储器管理电路(105)。该存储器管理电路存储翻译信息。该数据处理系统包括调试电路,用于获得存储在存储器管理电路中的翻译信息,并且向外部提供该信息。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1