CN1320239A - 用专用的指针存储器进行面向对象的处理 - Google Patents

用专用的指针存储器进行面向对象的处理 Download PDF

Info

Publication number
CN1320239A
CN1320239A CN00801392A CN00801392A CN1320239A CN 1320239 A CN1320239 A CN 1320239A CN 00801392 A CN00801392 A CN 00801392A CN 00801392 A CN00801392 A CN 00801392A CN 1320239 A CN1320239 A CN 1320239A
Authority
CN
China
Prior art keywords
memory
pointer
processor
private memory
carry out
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.)
Granted
Application number
CN00801392A
Other languages
English (en)
Other versions
CN1158601C (zh
Inventor
K·罗斯
W·L·萨维勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NXP BV
Original Assignee
Koninklijke Philips Electronics NV
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1320239A publication Critical patent/CN1320239A/zh
Application granted granted Critical
Publication of CN1158601C publication Critical patent/CN1158601C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Complex Calculations (AREA)

Abstract

面向对象处理通过将指针保存到专用寄存器中对象变量和方法表的存储位置来执行。处理器当前和以前操作的指针保存在相应的第一和第二组专用寄存器中。为每个对象、将相应的对象变量存储在存储单元上且将对应于相应方法表的指针存储在距离对象变量的单元编码的存储位置上。

Description

用专用的指针存储器进行面向对象的处理
发明背景
1.发明领域
本发明涉及面向对象的处理和,特别是涉及与对象有关的信息的处理。
2.有关技术的描述
在面向对象的处理中,处理器处理与对象有关的信息。这种面向对象处理的有些优点和用法在美国专利5708838中描述。
对象的每个使例都有一组定义与该对象有关的特性和该对象支持的方法的对象变量。例如,位于RAM的FIFO的那一组对象变量一般将包括定义FIFO的最大尺寸的代码、它当前占用的存储器的单元数、它的输入的当前存储单元和它的输出的当前存储单元。由FIFO对象支持的方法一般将包括执行典型的FIFO功能的操作诸如APPEND,REMOVE,FLUSH,INITIALILE。
采用面向对象处理的一个缺点是,它一般需要存储和处理比面向结构或面向数据流处理更多的指令。因此,面向对象的处理要达到更大的通用性要提供更多的代码空间并增加访问方法所需的时间以执行操作。
一般,对象支持的方法按照算法处理对象变量和提供关于这些对象的非易失信息参数。对象可以包含其他对象的基准点,它们自身可以在方法的施行中作为参数传递并可能需要调用其他对象的方法。这会是面向对象处理的非常费时的情况。
发明概述
发明目的是要减轻采用面向对象处理的上述缺点。
按照本发明,处理器以减少代码空间和访问时间的方式处理当前和以前的对象变量及为与当前和以前对象相关的方法列出存储单元的当前和以前的方法表。为此目的,处理器:
·为多个对象的至少一个在存储器中存储至少一个对象变量;
·为多个对象在存储器存储至少一个方法表;
·提供第一个专用的存储区以便存储处在存储器中当前使用至少一个对象变量和至少一个方法表的指针;
·提供第二个专用的存储区以便存储处在存储器中以前使用至少一个对象变量和至少一个方法表的指针。
该处理器通过利用专用的包含它们各自的指针的存储区自然地知道当前的和以前的对象变量和方法表处在哪里。这样就能使指向对象变量和方法表的代码尺寸变得最小。通过为当前和以前的对象变量及方法表两者该处理器提供专用的存储区能很快地从当前的对象方法转向以前的对象方法。
注意,“存储器”一词(如这里所用的)旨在一般地尽量解释与它使用的方式一致且包括各种易失和非易失设备包括(但不限于)这类设备的RAMs、DRAMs、ROMs、寄存器和这些设备的组合。“专用”存储区指有一个或多个该处理器已知的具体单元的存储区。然而,这些单元不一定是固定的,而是在该处理器的控制下可以改变的。而且,“指针”一词,如这里所用,指标识存储单元的任何值。除外,“读”指从一个存储器检索信息并将它写入到另一个存储器。
附图简述
图1是一幅框图说明按本发明的一个实施方案建造的面向对象处理系统的各个部分。
图2-5是简图按发明的实施方案说明图1系统的操作。
图6是一幅框图说明按照本发明的实施方案建造的存储器的组成部分。
优选实施方案的描述
图1的面向对象处理系统包含处理器10和存储器20。示范性的处理器10是一个台硬件加速单元,它用时钟脉冲排定由程序计数寄存器标识的指令。一般,程序计数寄存器含有处理器要读和操作的下一条指令的存储单元。
该处理器除包含别的东西外还包含环境寄存器集12、指令译码器14和算术逻辑单元16。存储器20,在本举例实施方案中,包含一个有多个存储单元的RAM用以存储,除别的东西外,对象变量、方法表指针、方法表以及用作LIFO堆栈以便执行这些方法。
处理器10和存储器20连接到公共总线30以便互相通讯以及与连接到该总线的其他硬件通讯。该总线包含有关的线路以便携带信息诸如地址、中断、数据、读选通、写选通和设备选择选通。最好,这是一条高速总线,它至少部分地与处理器和存储器在一个共同的硅基片上形成。
环境寄存器集12包含第一和第二组寄存器121和122,这两组寄存器用于保存与该处理器的当前和以前的操作有关的信息,一个或多个通用寄存器123和用于给堆栈编址的两个寄存器124和125。更具体地说,环境寄存器集中的寄存器包含:
·一个对象变量指针寄存器OVP用以为当前的对象保存标识变量集在存储器中的位置的指针;
·一个以前对象变量指针寄存器POVP用以为以前的对象保存标识变量集在存储器中的位置的指针;
·一个方法表指针寄存器MTP用以为当前的对象保存标识方法表存储器中单元的指针;
·一个以前的方法表指针寄存器PMTP用以为以前的对象保存标识方法表在存储器中的位置的指针;
·一个不断更新的程序计数器寄存器PC用以保存由处理器操作的下一条指令的存储器地址;
·一个以前的程序计数器寄存器PPC用以保存以前保存在程序计数器寄存器中未执行的指令的存储器地址;
·通用寄存器123用以存储从存储器20读出或由算术逻辑部件16产生的数据;
·寄存器124用以保存标识被访问的当前堆栈地址存储器中位置的堆栈指针SP;
·寄存器125用以保存标识堆栈底部帧基址存储器中位置的堆栈帧指针SFP。
指令译码器14是一个传统的硬件部件诸如定序器或微定序器,将从存储器20读出的指令转换成由算术逻辑部件16执行的低级操作代码。该算术逻辑部件也是一个传统的硬件部件。
注意,为简单起见,图1所示的存储器20仅说明了存储器空间的一个块,它的每一个都属于:
·一个对象的具体实例的对象变量;
·一个方法表指针,该指针为该对象的具体实例标识方法表存储器中的位置;和
·由该方法表指针确定的方法表。实际上,一般有若干块存储器空间用于不同的对象变量,用于不同的方法表,用于它们各自的指针且还用于图1未示出的其他信息(例如,给方法表确定的方法编码)。存储空间块数主要取决于对象数和它们支持的方法数和是否有任何块共用来存储与多于一个对象有关的信息。例如,同一个方法表可以有时由同一总类的若干不同对象使用。然而,对对象的每个实例来说,各自的方法表指针存储在预先确定的位置中,即在该处理器访问前有时确定的位置中。一种可替用的方法是,将指针作为该处理器将要访问的指令的组成部分来存储。然而,在本发明的特别便利实施方案中,方法表指针存储在与相关对象量的位置有预先确定关系的存储位置里。在图1所示的举例实施方案中,每个方法表指针都存储在有基址(起始)的存储单元里,该基址等于OV-2,即存储在比对象变量的OV基址的值小2的地址中。方法表的存储器块有MT的基址。
处理器10用特定的指令在环境的寄存器集中的第一和第二寄存器组121和122间传输与对象有关的信息并传入和传出该堆栈。这些指令在该举例实施方案中叫作CALL、RETURN、ENTER〔M〕和LEAVE(N〕,这些指令一般描述如下:
·CALL指令使处理器开始执行一种不同的方法。该指令有两种不同的形式,即Local CALL和Non-Local CALL;
·Local CALL使处理器开始执行当前使用中的方法表中编址的方法。该指令使处理器将寄存器PC、MTP、OVP的内容分别读入寄存器PPC、PMTP、POVP中并用当前要执行的新方法的第一条指令的地址更新寄存器PC。
·Non-Local CALL使处理器开始执行当前不使用的方法表中编址的方法且为了与当前的方法表不同的对象。该指令执行Local CALL执行的一切,但进一步使处理器分别用新的方法表指针和新的对象变量指针更新寄存器MTP和OVP。
·RETURN指令使处理器开始返回去执行以前的方法。该指令使处理器将寄存器PPC、PMTP、POVP的内容分别读入寄存器PC、MTP、OVP。
·ENTER指令使处理器将寄存器124中的值减1,即堆栈指针SP中的值减1,变成将提供足够的存储空间存储局部变量即,与当前正在执行的方法相关的变量的地址。所需的空间由M值表示,它形成ENTER指令的组成部分。然后,处理器将寄存器PPC、PMTP、POVP和125(当前堆栈帧指针SFP)的内容推入堆栈、将堆栈指针SP值减至提供由M值表示的空间和由新推入的信息占用的空间的值,并将来自寄存器124的值作为堆栈帧指针SFP的新值读入寄存器125。
·LEAVE指令使处理器将底部帧的内容弹出堆栈。特别是,底部帧包含寄存器PPC、PMTP、POVP和SFP’的值最后推入的内容,处理器将它们分别读入寄存器PC、MTP、OVP和125。在完成该指令时,处理器将堆栈指针SP加1至堆栈的新基址。这由包含在指令中的N值提供方便,它表示在底部帧中已由未被存储的信息(例如,参数和变量)占据的任何存储空间。
图2说明处理器在连续时期之间操作的示范性顺序。该图由三列组成,第一列表示由处理器临时执行的操作,第二列表示第一和第二组寄存器121和122的临时内容和第三列表示堆栈的临时内容。注意括号表征寄存器或其他存储单元的内容。例如,〔PC〕表示程序计数器寄存器PC的内容。
该顺序始于时间t0这时处理器处在执行方法A4的过程,它是对象A的方法表编址的第四种方法。在该时间:
·寄存器OVP装有基址OV(A),该基址OV(A)标识含有对象A的对象变量的存储器20中单元。
·寄存器MTP装有标识含有对象A的方法表(方法表A)的存储器20中的单元基址MT(A)。
·寄存器PC装有MT地址(A4,t0),该地址标识含有处理器在执行A4方法中要执行的下一条指令的存储器20中的单元。
·寄存器POVP含有基址〔POVP〕,该基址〔POVP〕标识含有以前对象的对象变量(假定处理器以前处理过与对象有关的信息)的存储器20中的单元。
·寄存器PMTP装有标识存储器20中的单元的基址〔PMTP〕,存储器20包含以前对象的方法表。
·寄存器PPC含有地址〔PPC〕,该地址〔PPC〕标识包含在存储器20中的单元,存储器20含有处理器为以前的方法执行的下一条指令。
·堆栈的基本帧由堆栈的帧指针SFP标识并包含若干相邻的存储器地址,该堆栈的基本帧包含:
·〔PPC〕、〔PMTP〕、〔POVP〕和标识以前推入堆栈帧的地址的堆栈帧指针SFP′;
·任何局部变量LV(A4),这些变量是在执行A4方法期间产生的,例如,在进行计算时产生的循环数;和
·任何以前推入的参数PPP,该参数是在执行以前的方法期间产生的,例如,要修改的对象的指针或要由后面执行的方法使用的变量。
在t1时,处理器将方法A4期间产生的参数PP(A4)推入由第一次将寄存器124中的堆栈指针SP减1至标识堆栈新的底部地址的新值的堆栈和然后将这些参数存储在地址里。它还开始在该地址执行仍然包含在程序计数器寄存器PC中的指令,即,地址MT(A4,t0)并将寄存器PC减1以标识要执行的下一条指令的地址,即,地址MT(A4,t1)。
在t2时,处理器在执行方法A4过程期间碰到了Local CALL指令CALL A2。包含在该指令中的是为方法A2将一个指数列入方法表A中的参数MTI(A2)。在执行该指令中,处理器:
·将第一组寄存器121的内容拷贝到第二组寄存器122中;
·用参数MTI(A2)载明的指数计算(在算术逻辑部件16中)含有方法A2的起始地址的方法表中的地址并将该地址装入程序计数器寄存器PC以便开始执行A2方法。
在t3时,处理器在执行方法A2过程期间碰到了指令ENTER M。处理器在执行该指令中:
·将堆栈指针SP减至一个新值以便在堆栈中提供由变量M的值表示的附加空间量,该变量在执行方法A2期间产生;
·将下列推入该附加空间:
·寄存器组122的内容,即MT(A4,t2)、MT(A)、OV(A);
·标识方法A4的以前堆栈帧单元的堆栈帧指针SFP″;
·将来自寄存器124的值作为堆栈帧指针SFP的新值读入寄存器125。
在t4时,处理器完成了A2方法后遇到了指令LEAVE N。处理器在执行该指令时:
·将底部帧的内容弹出堆栈,将MT(A4,T2)、MT(A)、OV(A)和SFP″分别传入寄存器PC、MTP、OVP和125;
·将堆栈指针SP(在寄存器124中)乘以N值增至堆栈新底部地址。处理器通过开始在地址MT(A4,t2)执行指令重新启动方法A4,它又在程序计数器寄存器PC中。
图3类似于图2,但说明了事件的举例顺序,这些事件在处理Non-Local CALL期间发生。在这种情况下,t0和t1时同的事件与图2的事件一致。然而,t2时,处理器遇到的不是方法A2(在方法表A中)的Local CALL而是方法C7(在方法C中)的Non-Local CALL。一般,向不类似的对象种类相关的不同类型方法提供不同的方法表。例如,方法表A可用于与FIFO操作相关的方法而方法表C可用于与直接访问存储器(DMA)操作相关的方法。
参考图3,在t2时,处理器在执行方法A4过程期间碰到Non-LocalCALL指令CALL C7。包含在该指令中的是一个与包含对象C的对象变量的基本存储地址和将指数列入方法C7的方法表C参数MTI(C7)的链路。对存入含有OV(C)的C的对象变量或指数的基址来说,该链路可以是实际的指针OV(C)。在本举例中指令包含指针OV(C)自身。在执行该Non-Local CALL指令中,处理器:
·将第一组寄存器121的内容拷入第二寄存器122;
·将指针OV(C)读入寄存器OVP;
·读从存储地址OV(C)-2来的方法表指针MT(C)并读入寄存器MTP;
·用参数MTI(C7)载明的指数计算(在算术逻辑部件16中)包含方法C7的起始地址的方法表中地址并将该地址装入程序计数器寄存器PC以开始执行方法C7。
而顺序和图2描述的顺序相同。具体讲,在t3时,在执行方法C7过程期间处理器遇到了指令ENTERM。在执行该指令中,处理器:
·将堆栈指针SP减到一个新值以便在堆栈中提供M值指示的附加空间量;
·将下列推入该附加空间:
·寄存器组122的内容,即,MT(A4,t2)、MT(A)、OV(A);
·为方法A4标识以前的堆栈帧单元的堆栈帧指针SFP″;
·将来自寄存器124的值作为堆栈帧指针SFP的新值读入寄存器125。
在t4时,处理器完成方法C7后遇到了指令LEAVEN。处理器在执行该指令中:
·将底部帧的内容弹出堆栈,将MT(A4,t2)、MT(A)、OV(A)和SFP″分别传入寄存器PC、MTP、OVP和125;
·将堆栈指针SP(在寄存器124中)乘以值N增至堆栈的新底部地址。处理器通过开始执行地址MT(A4,t2)处的指令重新启动方法A4,它又在程序计数器寄存器PC中。
注意,Local CALL指令使用比Non-Local CALL指令较小的代码尺码和较少的指令。因此,通过提供这些指令两者而不是单条CALL指令,每当处理器从同一方法表中的一种方法变成另一种方法时其操作效率和速度都有明显的提高。
图4说明按发明处理一条最简单的指令,即,Local CALL不用将变量或参数传入或传出堆栈。在本例中,不推送当前正在执行的方法(即,方法B1)的参数或产生调用的方法(即,方法B2)的局部变量。
在t0时,处理器处在执行方法B1的过程:
·寄存器OVP含有标识存储器20单元的基址OV(B),存储器20含有对象B的对象变量。
·寄存器MTP含有标识存储器20单元的基址MT(B),存储器20含有对象B的方法表(方法表B)。
·寄存器PC含有地址MT(B1,t0),该地址标识存储器20的单元,存储器20含有处理器执行方法B1时要执行的下一条指令。
·寄存器POVP含有基址〔POVP〕,基址〔POVP〕标识存储器20的单元,存储器20含有以前对象的对象变量(假定处理器以前曾处理过与对象有关的信息)。
·寄存器PMTP含有标识存储器20的单元的基址〔PMTP〕,存储器20含有以前对象的方法表。
·寄存器PPC含有地址〔PPC〕,地址〔PPC〕标识存储器20的单元,存储器20含有处理器执行以前方法时要执行的下一条指令。
·堆栈的基本帧含有:
·〔PPC〕、〔PMTP〕、〔POVP〕和标识以前推入的堆栈帧地址的堆栈帧指针SFP′;
·执行方法B1期间已产生的任何局部变量LV(B1);和
·执行以前的方法期间已产生的任何以前推入的参数PPP。
在t1时,处理器在执行方法B1过程期间遇到了Local CALL指令CALL B2。包含在该指令的是一个为方法B2将指数列入方法表B的参数MTI(B2)。处理器在执行该指令中:
·将第一个寄存器组121的内容拷贝入第二个寄存器组122;
·用参数MTI(B2)中载明的指数计算(在算术逻辑部件16中)含有方法B2的起始地址的方法表中的地址并将该地址装入程序计数器寄存器PC中以开始执行方法B2。
在t2时,处理器完成方法B2后遇到RETURN指令。处理器在执行该指令中:
·将寄存器PPC、PMTP、POVP的内容分别读入寄存器PC、MTP、OVP;
·通过在地址MT(B1,t1)开始执行该指令重新开始方法B1,它又在程序计数器寄存器PC中。
图5说明Non-Local CALL的处理,变量或参数没有传入或传出堆栈。在该例子中,没有为当前正在执行的方法(即,方法B1)推入参数或为调用的方法(即,方法C7)产生局部变量。
在t0时,处理器处在执行方法B1过程中:
·寄存器OVP包含标识存储器20的单元的基址OV(B),存储器20含有对象B的对象变量。
·寄存器MTP含有标识存储器20的单元的基址MT(B),存储器20含有对象B的方法表(方法表B)。
·寄存器PC含有地址MT(B1,t0),该地址标识存储器20的位置,存储器20含有处理器执行方法B1时要执行的下一条指令。
·寄存器POVP含有基址〔POVP〕,该基址标识存储器20的位置,存储器20含有以前对象的对象变量(假定处理器以前曾处理过与对象有关的信息)。
·寄存器PMTP含有标识存储器20的单元的基址〔PMTP〕,存储器20含有以前对象的方法表。
·寄存器PPC含有地址〔PPC〕,该地址标识存储器20的位置,存储器20含有处理器为以前的方法执行的下一条指令。
·堆栈的基本帧含有:
·〔PPC〕、〔PMTP〕、〔POVP〕和标识以前推入的堆栈帧地址的堆栈帧指针SFP′;
·执行方法B1期间已产生的任何局部变量LV(B1);和
·执行以前的方法期间已产生的任何以前推入的参数PPP。
在t1时,处理器在执行方法B1过程期间遇到了Non-Local指令CALL C7。包含在该指令中的是一个将指数列入方法C7的方法表C中的参数MTI(C7)。在执行该指令中,处理器:
·将第一组寄存器121的内容拷贝到第二组寄存器122中;
·将指针OV(C)读入寄存器OVP;
·读从存储地址OV(C)-2来的方法表指针MT(C)并读入寄存器MTP;
·用参数MTI(C7)载明的指数计算(在算术逻辑部件16中)包含方法C7的起始地址的方法表中的地址并将该地址装入程序计数器寄存器PC中以便开始执行方法C7。
在t2时,处理器完成方法B2后遇到了RETURN指令。在执行该指令中,处理器:
·将寄存器PPC、PMTP、POVP的内容分别读入寄存器PC、MTP、OVP;
·通过执行开始在地址MT(B1,t1)的指令重新开始方法B1,它又在程序计数器寄存器PC中。
为便于执行不同的方法,在它们使用期间,最好将当前对象的对象变量和该对象的方法表存储在一个快速访问存储器中诸如高速缓存存储器。为了加速在高速缓冲存储器中存储当前对象的对象变量和方法表的过程和为了方便地经济使用高速缓冲存储器中的存储空间,描述对象的变量和方法表大小的信息预存在存储器中与各个方法表的基址相关的预定单元中。图6示出了这方面的举例实施方案,其中:
·描述对象变量大小的信息存储在存储器20的一个单元中,该存储器有基址MT-2;
·描述对象的方法表尺寸的信息存储在存储器20的一个单元中,存储器20有基址MT-4。
在该实施方案中,当指示处理器执行Non-Local CALL时,它类似于通常参照图3描述的操作。然而,更具体地说,如果处理器用高速缓冲存储器来保存当前的对象变量和/或方法表,则当收到Non-LocalCALL时用相应尺寸的信息来更新该高速缓冲存储器。在图3中,作为一个例子,在t2时碰到的CALLC7指令;在本实施方案中包含在指令中的链路也将是存储器20中的基址OV(C)。然而,现在,处理器用自然的知识(inherent knowledge)操作:OV(C)-2、MT(C)-2和MT(C)-4是含有方法表指针MT(C)、对象C变量尺寸和对象C方法表的尺寸的存储器20中的地址。在处理器执行CALL C7指令中:
·将指针OV(C)读入寄存器OVP;
·读来自存储单元OV(C)-2的方法表指针MT(C)并读入寄存器MTP;
·将来自存储单元MT(C)-2和MT(C)-4的尺寸信息读入高速缓冲存储器;
·使用参数MTI(C7)中载明的,包含在CALL C7指令中的指数计算含有方法C7的起始地址的方法表中的地址并将该地址装入程序计数器寄存器PC中以便开始执行方法C7;
·读来自存储器20相应单元的对象C变量和方法表(现在在寄存器OVP和MTP中指定)并读入高速缓冲存储器。
注意,在环境寄存器集中的任何或所有寄存器都可能包含高速缓冲存储器中的专用存储单元。这些专门存储单元可改变成例如,处理器中高速缓存管理器指定的任何单元,但对处理器永远是知道的。
为了进一步方便执行不同的方法,最好将给定义由当前在使用的方法表确定的方法的编码信息也存储在快速访问存储器中。为加速存储该信息的进程和方便于经济使用快速访问存储器中的空间,表示编码信息的所需空间的尺寸数据和编码信息存储在存储器中,例如,在每种方法的开始地址处,如由相应方法表标识的那样。

Claims (23)

1.一种操作处理器10的使用多个对象的变量和方法表的方法,所述的方法包含:
a.为多个对象中的至少一个在存储器20中存储至少一个对象变量;
b.在存储器20中为多个对象存储至少一个方法表存储;
c.提供第一个专用存储器121以存储位于当前使用至少一个对象变量和至少一张方法表的存储器中的指针;
d.提供第二个专用存储器122以存储位于以前使用至少一个对象变量和至少一张方法表的存储器中的指针。
2.如权利要求1的方法,其中第一个和第二个专用存储器包含相应的第一和第二组专用寄存器。
3.如权利要求2的方法,其中第一和第二组专用寄存器分别包含一个当前的程序计数器寄存器PC和一个以前的程序计数器寄存器PPC。
4.如权利要求1的方法,其中处理器利用存储在第一个专用存储器中的指针将由所述的指针确定的一个方法表的至少是组成部分读高速缓冲存储器。
5.如权利要求4的方法,其中处理器利用存储在第一个专用存储器中的指针将由所述的指针确定的对象变量的至少是组成部分读高速缓冲存储器。
6.如权利要求1的方法,其中方法表指针存储在预先确定的位置。
7.如权利要求6的方法,其中将预先确定好的位置连接到相关的对象变量的位置。
8.如权利要求1的方法,其中表示存储信息所需的空间的大小数据存储在存储器单元上,该信息包含相应对象的任何对象变量和方法表,该存储器单元则存储与所述的相应对象有关的信息的存储单元连接,处理器利用所述的大小数据将所述的信息存储在快速访问的存储器里。
9.如权利要求8的方法,其中快速访问存储器包含一个高速缓冲存储器。
10.如权利要求8的方法,其中大小数据存储在从存储相应对象的方法表的单元开始改址的存储单元里。
11.如权利要求1的方法,其中表示存储信息所需空间的大小数据与所述的信息存储在存储器里,该信息定义由至少一个方法表确定的方法,所述的处理器利用所述的大小数据将所述的信息存储在快速访问的存储器里。
12.如权利要求1的方法,其中处理器停止执行第一种方法,为此将相应对象变量和方法表指针盛装在第一个专用存储器中通过以下步骤执行第二种方法:
a:将来自第一个专用存储器读所述指针至第二个专用存储器;
b:开始执行第二种方法。
13.如权利要求12的方法,其中,停止执行第二种方法后,处理器通过从第二个专用存储器读所述的指针至第一个专用存储器重新开始执行第一种方法。
14.如权利要求12的方法,其中从第一个专用存储器读所述指针至第二个专用存储器后,处理器为第二种方法将来自各个存储单元的对象变量指针和方法表指针读第一个专用存储器。
15.如权利要求14的方法,其中停止执行第二种方法后,处理器通过从第二个专用存储器读所述指针至第一个专用存储器重新开始执行第一种方法。
16.如权利要求1的方法,其中处理器停止执行第一种方法,为此将相应对象变量和方法表指针装入第一个专用存储器;通过以下步骤执行第二种方法:
a:从第一个专用存储器读指针至第二个专用存储器;
b.从第二个专用存储器读所述指针至第三个存储区;
c.开始执行第二种方法。
17.如权利要求16的方法,其中处理器停止执行第二种方法后通过从第二个专用存储器读所述指针至第一个专用存储器重新开始执行第一种方法。
18.如权利要求16的方法,其中第三个存储区可用指针寻址。
19.如权利要求18的方法,其中第三个存储区包含一个LIFO堆栈。
20.如权利要求1的方法,其中处理器停止执行第一种方法,为此将相应对象变量和方法表指针装入第一个专用存储器;通过以下步骤执行第二种方法:
a:从第一个专用存储器读指针至第二个专用存储器;
b:从第二个专用存储器读所述指针至第三个存储区;
c:为第二种方法从各个存储器位置读对象变量指针和方法表指针至第一个专用存储器;
d:开始执行第二种方法。
21.如权利要求20的方法,其中处理器停止执行第二种方法后通过从第二个专用存储器读所述指针至第一个专用存储器重新开始执行第一种方法。
22.如权利要求20的方法,其中第三个存储区可通过指针寻址。
23.如权利要求22的方法,其中第三个存储区包含一个LIFO堆栈。
CNB008013926A 1999-05-12 2000-05-10 用专用的指针存储器进行面向对象的处理 Expired - Lifetime CN1158601C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/310,483 US6668285B1 (en) 1999-05-12 1999-05-12 Object oriented processing with dedicated pointer memories
US09/310483 1999-05-12
US09/310,483 1999-05-12

Publications (2)

Publication Number Publication Date
CN1320239A true CN1320239A (zh) 2001-10-31
CN1158601C CN1158601C (zh) 2004-07-21

Family

ID=23202722

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB008013926A Expired - Lifetime CN1158601C (zh) 1999-05-12 2000-05-10 用专用的指针存储器进行面向对象的处理

Country Status (7)

Country Link
US (1) US6668285B1 (zh)
EP (1) EP1145108A3 (zh)
JP (1) JP2002544619A (zh)
KR (1) KR100654477B1 (zh)
CN (1) CN1158601C (zh)
TW (1) TW518512B (zh)
WO (1) WO2000070441A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1464401B (zh) * 2002-06-28 2010-05-26 国际商业机器公司 使用影子对象进行核准控制的面向对象系统和方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366882B2 (en) * 2001-05-10 2008-04-29 Zohair Sahraoui Address calculation unit for an object oriented processor having differentiation circuitry for selectively operating micro-instructions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE68909426T2 (de) 1988-01-15 1994-01-27 Quantel Ltd Datenverarbeitung und -übertragung.
KR960001273B1 (ko) 1991-04-30 1996-01-25 가부시키가이샤 도시바 단일칩 마이크로컴퓨터
JPH07114498A (ja) 1993-10-15 1995-05-02 Toshiba Corp マイクロプロセッサ
FR2717280B1 (fr) * 1994-03-10 1996-04-05 Bull Sa Procédé de gestion de l'héritage multiple d'objets persistants et partagés.
WO1995032466A1 (en) 1994-05-19 1995-11-30 Vlsi Technology, Inc. Flexible register mapping scheme
US5655132A (en) 1994-08-08 1997-08-05 Rockwell International Corporation Register file with multi-tasking support
JP2677202B2 (ja) 1994-08-12 1997-11-17 日本電気株式会社 マイクロプロセッサ
EP0702291B1 (en) * 1994-09-19 2002-04-03 Sun Microsystems, Inc. Method and mechanism for invocation on objects with interface inheritance
JP3169779B2 (ja) 1994-12-19 2001-05-28 日本電気株式会社 マルチスレッドプロセッサ
US5708838A (en) 1995-09-08 1998-01-13 Iq Systems, Inc. Distributed processing systems having a host processor and at least one object oriented processor
US5774721A (en) 1995-09-08 1998-06-30 Iq Systems, Inc. Method of communication between processors in a distributed processing system having a host processor and at least one object oriented processor
US6438616B1 (en) * 1997-12-18 2002-08-20 Sun Microsystems, Inc. Method and apparatus for fast, local corba object references
US6230311B1 (en) * 1998-06-12 2001-05-08 International Business Machines Corporation Apparatus and method for disabling methods called on an object
US6393491B1 (en) * 1999-04-26 2002-05-21 Sun Microsystems, Inc. Method and apparatus for dispatch table construction

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1464401B (zh) * 2002-06-28 2010-05-26 国际商业机器公司 使用影子对象进行核准控制的面向对象系统和方法

Also Published As

Publication number Publication date
CN1158601C (zh) 2004-07-21
WO2000070441A2 (en) 2000-11-23
JP2002544619A (ja) 2002-12-24
EP1145108A3 (en) 2002-11-06
KR20010071797A (ko) 2001-07-31
TW518512B (en) 2003-01-21
WO2000070441A3 (en) 2001-04-05
EP1145108A2 (en) 2001-10-17
US6668285B1 (en) 2003-12-23
KR100654477B1 (ko) 2006-12-05

Similar Documents

Publication Publication Date Title
CN1205549C (zh) 用于多-线程虚拟机的存储器分配的方法和装置
CN1186722C (zh) 用于使用寄存器分配器建立调用约定序言和收尾程序代码的方法和装置
CN1154928C (zh) 用于多任务设施信息处理系统的资源管理方法和设备
US6393439B1 (en) Stored data object marking for garbage collectors
CN1143210C (zh) 动态去最佳化编译启动的方法和装置
US6314436B1 (en) Space-limited marking structure for tracing garbage collectors
CN1226687C (zh) 用于持久和稳固的存储管理的系统和方法
US7814130B2 (en) Efficient parallel bitwise sweep during garbage collection
CN1229944A (zh) 用于减少预装类的脚印的系统和方法
CN1518705A (zh) 处理器结构
CN1664790A (zh) 增加数据存储容量的方法和装置
CN1309354A (zh) 用于持久和稳固的存储设备分配的系统和方法
CN1233797A (zh) 在面向对象的系统中的位置特定的信息分配
CN1313927C (zh) 智能卡运行环境的控制方法
CN1828541A (zh) Java操作系统中定时任务的实现方法
Dunstall et al. Heuristic methods for the identical parallel machine flowtime problem with set-up times
US20050273567A1 (en) Assigning sections within a memory heap for efficient garbage collection of large objects
CN1158601C (zh) 用专用的指针存储器进行面向对象的处理
CN1381797A (zh) 高速信息检索系统
JP5051961B2 (ja) モジュール式ガーベッジコレクタを実現するための方法および装置
CN1889729A (zh) 扩展移动终端的存储空间的方法和系统
CN1260546A (zh) 在手持装置中存储和检索数据的方法及装置
CN1811709A (zh) 手持设备中操作系统的无限升级方法及装置
CN1334512A (zh) 堆栈式寄存器堆及其控制方法
CN1804789A (zh) 具有包括数据部分和相关计数器的条目的硬件堆栈

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070831

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20070831

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklike Philips Electronics N. V.

ASS Succession or assignment of patent right

Owner name: KALAI HANXILE CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120210

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120210

Address after: American Delaware

Patentee after: NXP BV

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

Effective date of registration: 20120210

Address after: American Delaware

Patentee after: NXP BV

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

CX01 Expiry of patent term

Granted publication date: 20040721

CX01 Expiry of patent term