数据处理指令的许可检查的制作方法

文档序号:6595363阅读:201来源:国知局
专利名称:数据处理指令的许可检查的制作方法
技术领域
本公开总体上涉及数据处理系统,更具体来讲,涉及数据处理系统中的目标装置的访问许可。
背景技术
在实现网络的多处理器或多芯数据处理系统中,使用多个计数器来保持需要各种功能的统计,诸如递增、递减和读改写操作。因为多个芯可以尝试同时更新同一计数器,所以产生了网络延迟并且消耗了大量资源。通常需要用于执行原子更新(即,不间断的连续更新)的机制。常规的原子更新机制(诸如使用软件旗语或软件锁)会造成系统延迟。为了减少系统延迟,可以使用统计加速器。然而,在单个事务中,通常不能将足够的信息发送到统计加速器来描述原子操作。因为计数器位大小可以大于处理器内的寄存器的大小,所以在多个存储访问更新计数器的子段时还使用锁变量来限制对计数器的访问。当芯需要获得计数器的所有权来进行原子更新时,对于每个锁变量而言,可能经过大量的数据处理循环。处理器必须使用处理循环来得到锁变量,等待锁变量被释放(如果该锁变量已经被另一处理器获取),执行计数器更新并且释放锁变量。由此,系统速度和性能劣化。


本发明以示例方式示出并且不受附图限制,在附图中,类似的参考标号表示类似的元素。附图中的元素是为了简便和清晰起见示出的并且不必按比例绘制。图1以框图形式示出根据本发明一个实施例的数据处理系统;图2以框图形式示出根据本发明一个实施例的图1中的数据处理系统的示例性处
理器;图3以框图形式示出图1中的数据处理系统的一部分,其示出了根据本发明一个实施例的处理器和智能存储器;图4以图表形式示出根据本发明一种形式的用于实现远离处理器的原子作业的数据处理指令;图5以图表形式示出根据本发明一种形式的事务旁路(lookaside)缓冲(TLB)条目;图6以图表形式示出从处理器传递到图3所示智能存储器的一部分信息;图7以表格形式示出图3中的智能存储器所使用的指令操作的示例性编码;图8以流程图形式示出根据本发明的处理具有许可信息的指令的示例性方法;以及图9以流程图形式示出根据本发明的使用来自处理器的信息来执行许可检查的示例性方法。
具体实施例方式在此描述了一种用于操作具有处理器和目标装置的数据处理系统的方法,所述目标装置是来自处理器的信息的目标或接收者。处理器和目标装置经由系统互连来通信。处理器执行或处理指令。作为指令执行的一部分,处理器确定与指令相关联的指令操作和地址。通过处理器基于指令来确定装饰值。装饰值或装饰是提供到诸如存储器的目标装置的信息,用于执行装饰存储操作。装饰值被从处理器的通用寄存器中的存储提供并且连同经转换的地址传递到目标装置,所述地址指示由指令执行导致的目标位置。装饰值是到目标装置的命令,用于除了所执行的指令的主要功能之外的功能。例如,所执行的指令可以是从目标存储位置加载数据或将数据存储到目标存储位置,并且装饰值可以是用于递增目标位置或用于将目标位置数据乘以另一操作数的命令。应该理解,可以响应于装饰值,由目标装置来实现各种附加或替代的处理功能中的任一个。装饰值通常不由处理器来解释,并且给定的装饰值可以根据指令的目标位置来执行需要不同访问许可的不同操作。注意的是,不是所有的加载和存储指令都提供装饰值。在一个实施例中,提供了单独的加载、存储、带装饰的加载和带装饰的存储指令类型。如在此使用的,术语“总线”是一种系统互连,并且用于指代可用于传递诸如数据、 地址、控制或状态的一种或多种类型信息的多个信号或导体。可以参照作为单个导体、多个导体、单向导体或双向导体来示出或描述如在此所讨论的导体。然而,不同的实施例可以变化导体的实现方式。例如,可以使用单独的单向导体而非双向导体,反之亦然。另外,可以用串行或者以时分复用方式传递多个信号的单个导体来替代多个导体。同样,携载多个信号的单个导体可以被分成携载这些信号的子集的各种不同导体。因此,对于传递信号而言, 存在许多选择。当参照使信号、状态位或类似设备分别为其逻辑真或逻辑假状态时,在此使用三术语“断言”或“设置”和“否定”(或“去断言”或“清除”)。如果逻辑真状态是逻辑电平 1,则逻辑假状态是逻辑电平0。并且,如果逻辑真状态是逻辑电平0,则逻辑假状态是逻辑电平1。图1以框图形式示出根据本发明一个实施例的数据处理系统10。数据处理系统10 包括处理器12、系统互连或系统总线14、存储器16和多个外围装置,诸如外围装置18、外围装置20、智能存储器40,以及在一些实施例中,由图1中的将外围装置18与外围装置20分开的点指示的额外的外围装置。智能存储器40通过双向多个导体耦合到系统总线14。存储器16是通过双向导体耦合到系统总线14的系统存储器,所述双向导体的一种形式为具有多个导体。智能存储器40是用于特定指令执行的处理器12的目标装置,如以下将说明的。在所图示形式中,外围装置18和20中的每个通过双向多个导体耦合到系统总线14,如处理器12 —样。注意的是,存储器16可以是任何类型的存储器,并且外围装置18和20均可以是任何类型的外围装置或器件。在一个实施例中,所有的数据处理系统10都在单个集成电路上。可供选择地,可以使用多于一个集成电路来实现数据处理系统10。在一个实施例中,至少所有处理器12都在单个集成电路上。在另一种形式中,系统总线14代表有线互连,并且处理器12可以物理上远离诸如智能存储器40的目标装置。在替代实施例中,可能存在诸如智能存储器40的多个智能模块。在操作中,处理器12用于通过执行多个数据处理指令来实现各种数据处理功能。不在处理器12内的由处理器12所需的信息被存储在存储器16或智能存储器40中。在一个实施例中,存储器16和智能存储器40被称作外部存储器。智能存储器40是包括额外电路的存储器,所述额外电路用于执行计算以及实现存储器常规执行的常规数据存储功能。 智能存储器40响应于存储位置访问而执行的计算是特定于实现的,并且在各种实施例中可以有所不同。在一种形式中,计算以原子方式被执行,原子方式意味着计算是不间断的, 并且计算是在允许对被计算修改的存储位置进行下一访问请求之前完成。原子计算的示例包括但不限于原子递增或原子递减。图2以框图形式示出处理器12的示例性构造。系统总线14经由双向多位导体耦合到总线接口单元(BIU) 34,以通信信号15。总线接口单元34经由双向多位导体耦合到存储器管理单元(MMU)42。在存储器管理单元42内的是事务旁路缓冲(TLB)50,其具有诸如TLB条目52的多个条目。总线接口单元34还经由双向多位导体耦合到指令获取单元 26和存储器管理单元(MMU)42两者。指令获取单元沈经由双向多位导体耦合到指令管道 (管)22。指令管道22经由双向多位导体耦合到多个执行单元对,并且指令管道22经由双向多位导体耦合到控制电路观。指令获取单元26经由双向多位导体耦合到控制电路28。 存储器管理单元42经由双向多位导体耦合到控制电路28。控制电路观经由双向多位导体耦合到执行单元M。总线接口单元34经由双向多位导体耦合到控制电路观。存储器管理单元42经由双向多位导体耦合到执行单元M。控制电路观包括机器状态寄存器31。在机器状态寄存器31内的是被标为S的具有管理位四的寄存器。管理位四的逻辑状态确定处理器12是管理员模式还是用户模式。执行单元M经由双向多位导体耦合到通用寄存器30。通用寄存器30经由双向多位导体耦合到加载/存储单元32。加载/存储单元32 经由双向多位导体分别耦合到控制电路观、存储器管理单元42和总线接口单元34以及指令管道22和执行单元对。在操作中,处理器12经由系统总线14和总线接口单元34接收指令。由指令获取单元沈从总线接口单元34获取指令并且将指令耦合到指令管道22。指令管道22将指令解码并且对控制电路观和指令单元24进行控制,以执行指令。在图4中示出加载/存储指令的格式示例,其中指令300具有多种字段。字段302保存指令操作代码(操作码),所述操作代码识别何种类型的操作与指令相关联。字段304、306和308是用于分别保存作为通用寄存器30内的寄存器的寄存器指示符RT、RA和RB的寄存器字段。对于某种类型的加载/存储指令(经装饰加载或经装饰存储),寄存器A(RA)保存具有以下将说明的含义和目的的装饰值。寄存器B(ΙΦ)包含虚拟地址值。由加载/存储单元32将虚拟地址耦合到存储器管理单元42的事务旁路缓冲(TLB) 50,以被转换成物理地址。字段310是用于进一步定义与指令相关联的操作的子操作码字段。在一个实施例中,子操作码字段用于将装饰加载和存储指令类型与正常加载和存储指令类型区分开。对于正常加载或存储指令类型,寄存器RB可以保存索引值,该索引值将被添加到在寄存器RA中包含的地址值,或者可以不使用寄存器RB。对于存储型指令,寄存器T(RT)保存待被存储到目标装置的数据。对于加载型指令,寄存器T (RT)指示用于保存加载操作结果的目的寄存器。在图5中提供了每个TLB条目的一种形式的示例,其中示出了 TLB条目52的细节。 TLB条目52具有存储的虚拟地址M。如果加载/存储单元32提供的虚拟地址与虚拟地址 M匹配,则存储器管理单元42选择TLB条目52。TLB条目52对由加载/存储单元32提供
6的虚拟地址进行虚拟-物理地址转换,并且提供页属性和访问许可值。TLB条目52具有相关联的物理地址56和页大小58,该页大小58定义物理地址56所处存储器中的页的存储大小。在TLB条目52内包括多个许可60。如果管理员阅读SR许可位被断言,则SR许可将允许在管理员模式下对目标装置进行读操作。如果管理员写SW许可被断言,则SW许可将允许在管理员模式下对目标装置进行写操作。如果管理员执行SX许可位被断言,则SX 许可将允许在管理员模式下目标装置内的地址处执行指令。如果用户读UR许可位被断言, 则UR许可将允许在用户模式下对目标装置进行读操作。如果用户写UW许可位被断言,则 UW许可将允许在用户模式下时对目标装置进行写操作。如果用户执行UX许可位被断言,则 UX许可将允许在用户模式下在目标装置内的地址处执行指令。TLB条目还包含多个页属性 62。可以提供各种属性。作为示例,包括形成首字母缩拼词WIMGE的以下属性W透写式高速缓冲存储操作I高速缓冲存储禁止操作M所需的存储一致性G防护(其中将对易失性存储装置进行访问)E字节序(endianness)(存在大字节序(big-endian)还是存在小字节序 (little-endian))应该理解,这些通用属性只是以示例的方式提供的,可以包括任何其它属性来补充或替代所示出的页属性62。对于正常加载或存储指令而言,如果加载/存储单元32确定结合从TLB 50的TLB条目52得到的许可不允许指令操作类型,则由控制电路观产生异常并且由处理器12开始异常处理。例如,如果,如具有“0”值的机器状态寄存器31的S位四所指示的,处理器12以用户模式进行操作,并且指令是加载操作指令,则来自TLB条目 52的许可位UR(用户模式读许可)必须被设置成允许发生由加载指令执行的读操作。同样,如果指令是存储指令,则来自TLB条目52的许可位UW(用户模式写许可)必须被设置成允许发生由存储指令执行的写操作。当使用SR和SW许可位以管理员模式6位四等于 “1”)进行操作时执行类似的检查。在不存在关于正常加载或存储指令的所需许可的情况下,处理器12将中止加载或存储操作,并且不发生物理地址和属性到指令所指定的目标装置的传输。如对于正常加载或存储指令的情况可以看到的,在经由系统互连14允许开始访问目标装置之前,在处理器12内执行对访问类型的所有许可评价。然而,在一些实施例中, 不对装饰加载和装饰存储指令执行由加载/存储单元32执行的正常许可检查操作。在这种实施例中,处理器12不知道经由装饰值接收装饰命令的装置将执行的实际操作,因此, 处理器12没有准确的机制用于使用在转换装饰加载或装饰存储指令的访问地址时通过匹配TLB条目52提供的许可值来实施访问许可。替代地,在地址转换过程期间由TLB条目52 提供的这些访问许可被提供到目标装置以进行解释,并且目标装置内的下一访问或操作是基于装饰值指定的操作所需的实际访问类型。在这种情况下,处理器12的加载/存储单元 32不实施对于装饰加载或装饰存储指令的访问许可,而是提供处理器12外部的许可信息, 以由目标装置进行评估,如将在图3的讨论中进一步示出的。注意的是,在实际需要更广泛许可但不能在处理器12内对其单独确定的情况下,替代实施例可以选择在处理器12内本地地以及在目标装置处实施许可,因为要执行的实际操作没有完全被处理器12得知。图3中示出经由系统总线14将处理器12和智能存储器40直接连接的一种形式的进一步细节,包括智能存储器40的细节。智能存储器40具有经由单独的单向导体耦合到控制单元72的存储器阵列70。装饰解码电路76具有耦合到控制单元72的第一输出和耦合到许可检查电路74的输入的第二输出。许可检查电路74具有耦合到控制单元72的输入的输出。控制单元72的输出经由系统总线14向处理器12提供响应反馈。在操作中,处理器12向智能存储器40提供图6中的信息601。提供与存储器阵列70内的位置对应的物理地址。提供与物理地址相关联的属性。如图6中所示,如果有的话,这些属性包括例如管理员或用户属性、读/写(R/W)属性、大小属性、高速缓冲存储禁止 (Cl)属性、透写(WT)属性、所需的存储器一致性属性和其它可能的属性。应该注意的是,不是要提供所有示出的属性。如以下将描述的,还向智能存储器40提供许可信息。对于存储型指令,还提供存储数据。另外,还向智能存储器40提供装饰信息。在所示出的形式中,智能存储器40包括控制单元72,所述控制单元72能够对存储器阵列70中存储的信息执行各种处理功能。执行的是哪一个特定的预定处理功能取决于对所提供的装饰值进行解码的装饰解码电路76的结果,并且在一些实施例中,还可能取决于提供到智能存储器40的特定物理地址值和属性。在一个实施例中,使用提供到智能存储器40的装饰属性来指示存储器访问请求是装饰加载或存储操作而不是正常加载或存储操作。在替代实施例中,可以解释特定的预定装饰值,以指示正请求的是正常加载或存储操作,在这种情况下,将不执行特殊操作。图7中示出的是当目标装置是智能存储器40时与装饰加载操作和装饰存储操作相关联的示例性装饰值的操作表。所述操作表还使与指令操作相关联的操作所需的许可相互关联。例如,对于装饰加载指令,当装饰值为000时,装饰操作是需要写(W)许可的清除位置操作。当装饰值为000时,将要清除与装饰加载操作相关联的被寻址位置。当对于装饰加载指令装饰值为001时,装饰操作是将由与装饰加载操作相关联的地址所指定的位置递增并且提供处于指定位置的最后的值。为了执行该操作,所需的许可是读(R)许可和写 (W)许可。当对于装饰加载指令装饰值为010时,装饰操作是读取由与加载操作相关联的地址所指定的位置。为了执行该操作,所需的许可是读(R)许可。当对于装饰加载指令装饰值为111时,装饰操作为空,并且对由与装饰加载操作相关联的地址所指定的位置不执行任何操作。为了执行该操作,没有指定所需的许可。类似地,对于装饰存储指令,当装饰值为000时,装饰操作是将预定数据值加到由指令地址所指定的位置。为了执行该操作,所需许可是读(R)许可和写(W)许可。预定的数据值可以由处理器12作为数据值提供,如对存储型指令正常提供的,或者可以替代方式由智能存储器40的控制单元72或装饰解码电路 76确定。当装饰值为001时,装饰操作是将来自存储器阵列70中的源位置加到由装饰存储的物理地址所指示位置中的值。对于装饰存储指令,存储器阵列40内的源位置可以由处理器12提供的数据值来指示。当用于装饰存储指令的装饰值为111时,装饰操作是将预定值乘以由指令地址所指定位置中的数据。为了执行该操作,所需许可是写(W)许可。对于正常加载或正常存储指令操作,装饰值被忽略,并且不需要通过图7中的表条目进行许可检查。对于这些操作,假设在开始访问目标装置之前,处理器12已经检查了所需许可。应该理解,图7中的操作表中提供的编码仅以示例的方式提供。任何数量的位大小可以实现为装饰值并且可以容易地使用其它类型的指令操作和装饰操作。智能存储器的装饰解码电路76和许可检查电路74用于对接收的装饰加载或装饰存储操作进行远程许可检查。对于
8每个装饰值,用于操作的所需许可由装饰解码电路76确定并且被提供到许可检查电路74。 许可检查电路74将随访问请求接收的来自系统互连14的许可值与由装饰解码电路76确定的装饰操作的所需许可相比较,并且确定是否存在足够的许可来允许发生装饰加载或存储操作。如果不存在足够的许可,则许可检查电路74告知智能存储器40的控制电路72应该不发生操作。作为响应,控制单元72经由系统互连14上传递的指示已发生异常状况的响应信号,向处理器12提供响应反馈,并且不对存储器阵列70执行操作。如果许可检查电路74执行的检查的结果指示由接收的指令操作所执行的操作的所需许可和装饰值是令人满意的,则将其指示给控制单元72,控制单元72随后可以继续所指示的操作并且当成功完成所需操作时可以向处理器20提供正常响应反馈。图8中示出的是方法800,示出如何执行将具有许可信息的指令传递到目标装置的一种形式。在步骤801中,例如由指令获取单元沈经由图2中的总线接口单元34获取指令。在步骤803中,将指令解码。在一种形式中,在图2的指令管道22中发生解码。在步骤805中,确定经获取和解码的指令是否是装饰加载/存储指令。如果经解码的指令不是装饰加载/存储指令,则在步骤806中执行与这里描述不同的其它指令处理。如果经解码的指令是装饰加载/存储指令,则在步骤807中,加载/存储单元32从通用寄存器(GPR) 30 的一个(寄存器A,RA)得到装饰(即,装饰命令)。在步骤809中,加载/存储单元32从通用寄存器(GPR) 30的一个(寄存器B,RB)得到由指令定义的虚拟地址。如果所述操作是装饰存储,则加载/存储单元32在步骤810中从图3中的通用寄存器(GPR) 30的一个(例如,寄存器T,RT)得到存储数据值。在步骤811中,在控制电路观的控制下,加载/存储单元32用于在存储器管理单元(MMU)42的事务旁路缓冲(TLB)50中查找或查询由寄存器B 指定的虚拟地址。识别MMU 42中存储的虚拟地址与来自寄存器B的虚拟地址的匹配。在 TLB 50的预定TLB条目(例如图2中的TLB条目52)中存储匹配的虚拟地址。在步骤813 中,从TLB条目52得到互相关联的物理地址、许可和页属性,并且将其发送到加载/存储单元32。在步骤815中,经由总线接口单元34和系统互连或系统总线14,将物理地址、属性、 许可和装饰发送到所指定的目标装置。如果所述操作是装饰存储,则也将存储数据发送到系统互连14。对于处理器12的硬件而言,该操作是传统的加载或存储操作,并且处理器12 不知道装饰的功能或其结果。在图9中示出的是一种方法,示出由目标装置对发送的信息进行处理以执行许可检查的一种形式。在步骤901中,目标装置从系统互连或系统总线14接收物理地址、属性、 装饰和许可。在步骤903中,目标装置使用接收到的装饰、属性和物理地址来检查许可。在步骤905中,目标装置905确定是否允许装饰的特定操作。如果不允许所述操作,则实现步骤907,在该步骤中,发出异常并且执行装置相关错误处理。如果允许所述操作,则实现步骤 909,在该步骤中,在所述物理地址处执行由指令和装饰指定的操作。作为步骤907的一部分,在一个实施例中,可以指示异常并且将其以信号方式返回到系统互连,以被提供到访问的发起者。在替代实施例中,可以由目标装置传递空响应或诸如全为0的预定数据值,以替代传递异常响应。在一个实施例中,如果存在部分许可,则可以执行操作的一部分而不执行其它部分。到现在,应该理解,已提供了一种数据处理系统,其对特定类的存储器访问指令实施智能目标装置处的访问许可。在一种形式中,目标装置是具有用于执行除了数据存储之外的功能的额外电路的存储器。目标装置以装饰值的形式接收命令连同地址和许可。目标装置实施将作用的特定命令(装饰值)所需的许可。使用常规或传统的系统互连协议,因此避免专门的协议扩展。在一种形式中,在将装饰值解码之后,不在处理器本地实施许可,而是替代地在目标装置处实施许可。如果许可检查部分地成功,则存储器可以继续操作并且如果经解码指令为加载指令,则返回加载数据。如果许可检查失败,则中止操作。在目标装置的许可检查失败的情况下,在一种形式中,传递错误可以由目标装置产生并且被发送回处理器,并且所请求的操作由目标装置终止。在另一种形式中,目标装置可以产生默认值, 例如全0的空值,用于加载到目标装置的所识别的地址或者用于提供回到发起者。因此,在此提供了一种针对包括装饰加载和装饰存储事务的数据处理事务子集的用于目标装置的许可检查操作。可以实现其它类型的装饰事务。在另一种形式中,处理器12可以可选地执行第一水平许可检查,以确定是否存在高水平许可,例如,读许可或写许可。然而,基于由没有被处理器12解释或解码的装饰值所指示的操作,目标装置执行对许可的最终确认。在该可选的实施例中,第一水平许可检查将使得处理器12开始异常处理并且禁止图6中的信息 601的传输。因为实现本发明的设备大部分由本领域技术人员已知的电子组件和电路组成,所以没有以比如上所述必须考虑的程度更大的任何程度对电路细节进行说明,以理解和领会本发明的潜在构思并且不混淆或转移本发明的教导。如可应用的一些以上实施例可以使用各种不同的信息处理系统来实现。例如,尽管图1和对图1的讨论描述了示例性数据处理架构,但是提供这种示例性构架只是为了在所讨论的本发明的各种方面中提供可用的参考。当然,为了讨论的目的,简化了对所述构架的描述,并且这只是可根据本发明使用的许多不同类型的合适构架中的一种。应该理解,逻辑块之间的边界只是示例性的并且替代实施例可以合并逻辑块或电路元件或者将功能的替代分解施加于各种逻辑块或电路元件。因此,要理解,本文示出的构架只是示例性的,并且事实上,可以实现许多其它构架来实现相同的功能。在此被组合以实现特定功能的任何两个组件可以被视为彼此“相关联”,使得实现了所需功能,而与构架或中间组件无关。同样,如此相关联的任何两个元件还可以被视为彼此“可操作地连接”或“可操作地耦合”以实现所需功能。另外,例如,在一个实施例中,所示的数据处理系统10中的元件是位于单个集成电路上或位于同一装置内的电路。可选择地,数据处理系统10可以包括彼此互连的任何数量的单独的集成电路或单独的装置。例如,智能存储器40可以位于与处理器12相同的集成电路上或者位于单独的集成电路上,或者位于与数据处理系统10的其它元件离散分开的任何外围或从属装置内。外围装置18和20还可以位于单独的集成电路或装置上。另外, 例如,数据处理系统10或其一部分可以容易地转变成软件,作为物理电路的表示或可转换成物理电路的逻辑表示。如此,数据处理系统10可以按任何合适类型的硬件描述语言来实施。在一种形式中,在此提供了一种用于操作数据处理系统的方法,所述数据处理系统包括经由系统互连耦合的处理器和目标装置。由处理器处理指令,所述处理包括确定指令操作和地址。处理器基于指令来确定装饰值。提供与地址相关联的访问许可。指令操作的指示、地址、装饰值和与地址相关联的访问许可在事务中经由系统互连发送到目标装置。在另一种形式中,确定访问许可包括从处理器的事务旁路缓冲中得到与地址相关联的访问许可。在又一种形式中,由目标装置执行基于访问许可对指令操作的许可检查。基于许可检查的失败,不执行指令操作。在另一种形式中,目标装置执行指令操作是基于访问许可和装饰值,其中,装饰值提供将由目标装置执行的功能作为执行指令操作的一部分。在另一种形式中,通过从指令字段中得到装饰值来确定装饰值。在另一种形式中,通过从处理器的寄存器中得到装饰值来确定装饰值。在另一种形式中,通过确定写访问许可,由处理器来确定访问许可。在另一种形式中,处理还包括确定指令的属性。在事务中发送进一步包括在事务中发送属性。在另一种形式中,指令操作包括由加载操作和存储操作组成的组中的一个。 由目标装置执行指令操作。在另一种形式中,目标装置被实现为存储器。在另一种形式中,提供了一种操作数据处理系统的方法。目标装置经由数据处理系统的系统互连接收事务,所述事务由数据处理系统的处理器产生,所述事务包括将由目标装置执行的指令操作的指示、地址、装饰值和与地址相关联的访问许可。目标装置基于接收到的访问许可来确定由装饰值指定的装饰操作是否是许可的。在另一种形式中,基于根据确定所述装饰操作是许可的,由目标装置执行装饰操作。在另一种形式中,由目标装置确定由装饰值指定的装饰操作是否是许可的步骤由目标装置基于装饰操作来确定要检查的访问许可类型来实现。对接收到的访问许可检查访问许可类型。基于接收到的访问许可的访问许可类型是否指示装饰操作是许可的,确定装饰操作是否是许可的。在另一种形式中, 目标装置执行对应于地址的指令操作。在另一种形式中,目标装置被实现为存储器,其中指令操作是由从存储器的加载操作或对存储器的存储操作组成的组中的一个。在另一种形式中,装饰操作被实现为包括由以下组成的组中的一个对在由地址指定的位置存储的值进行加操作,其中指令操作是对所述位置的第二值的存储操作,其中执行存储操作和装饰操作将第二值加到该值以产生结果值,其中结果值存储在所述位置;以及由地址指定的位置的清除操作,其中指令操作是从所述位置的加载操作,其中在清除操作之前执行指令操作。 在另一种形式中,如果基于确定而确定装饰操作是不许可的,则不执行指令操作。在另一种形式中,目标装置以响应方式响应处理器,其中所述响应是基于确定的结果。在另一种形式中,提供了一种操作数据处理系统的方法。数据处理系统的第一装置产生指令操作的指示、与指令操作相关联的地址、装饰值和与地址相关联的访问许可。指令操作的指示、地址、装饰值和与地址相关联的访问许可在事务中经由系统互连发送到目标装置。由目标装置接收事务。目标装置基于接收到的访问许可来确定由装饰值指定的装饰操作是否是许可的。在另一种形式中,第一装置被实现为处理器并且目标装置被实现为存储器,其中指令操作是由从存储器的加载操作或对存储器的存储操作组成的组中的一个。在另一种形式中,基于装饰操作是许可的,由目标装置执行装饰操作。此外,本领域的技术人员将认识到,上述操作的功能之间的边界只是示例性的。多个操作的功能可以被组合成单个操作,和/或单个操作的功能可以被分成额外的操作。此外,替代实施例可以包括特定操作的多个实例,并且在各种其它实施例中,可以改变这些操作的次序。在一个实施例中,数据处理系统10是诸如个人计算机系统的计算机系统。其它实施例可以包括不同类型的计算机系统。计算机系统是信息操纵系统,其可以被设计成向一个或多个用户提供独立的计算能力。可能发现计算机系统为多种形式,包括但不限于主机、
11小型计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏机、汽车和其它嵌入系统、蜂窝电话和各种其它无线装置。典型的计算机系统包括至少一个处理单元、相关联的存储器和大量输入/输出(I/O)装置。如在此所使用的,术语“耦合”不意在限于直接耦合或机械耦合。此外,如本文所使用的,不加量词被定义为一个或多于一个。另外,在权利要求中所使用的引语例如“至少一个”和“一个或多个”不应该被理解为意味着不加量词引入的另一权利要求元素将包含引入的权利要求元素的任何特定权利要求限于只包含一个这样元素的发明,即使是当同一权利要求包括引语“一个或多个”或“至少一个”以及不加量词。对于使用明确量词,也是如此。除非另外说明,否则诸如“第一”和“第二”的术语用于任意区分所述术语所描述的元素。因此,这些术语不必旨在指示这类元素的时间上或其它优先次序。虽然本文中参照特定实施例描述了本发明,但是在不脱离权利要求所阐述的本发明范围的情况下,可以进行各种修改和变化。例如,可以基于系统要求,修改在地址、属性、 许可和装饰字段中使用的位数。与特定操作相关的许可可以变化或修改。因此,说明书和附图将被视为是示例性的而非限制性的,并且所有的这类修改旨在包括在本发明范围内。本文中关于特定实施例描述的任何益处、优点或问题的解决方法不旨在被理解为任何或所有权利要求的关键、所需或必要的特征或元素。
权利要求
1.一种操作数据处理系统的方法,所述数据处理系统包括经由系统互连耦合的处理器和目标装置,所述方法包括由所述处理器处理指令,所述处理包括确定指令操作和地址;由所述处理器基于所述指令来确定装饰值;由所述处理器提供与所述地址相关联的访问许可;以及在事务中经由所述系统互连向目标装置发送所述指令操作的指示、所述地址、所述装饰值和与所述地址相关联的所述访问许可。
2.根据权利要求1所述的方法,其中确定访问许可包括从所述处理器的事务旁路缓冲得到与所述地址相关联的所述访问许可。
3.根据权利要求1所述的方法,进一步包括由所述目标装置基于所述访问许可来对所述指令操作执行许可检查;以及基于所述许可检查的失败,不执行所述指令操作。
4.根据权利要求3所述的方法,进一步地,其中由所述目标装置执行所述指令操作是基于所述访问许可和所述装饰值,其中所述装饰值提供要由所述目标装置执行的功能作为执行所述指令操作的一部分。
5.根据权利要求1所述的方法,进一步包括通过从所述指令的字段得到所述装饰值来确定所述装饰值。
6.根据权利要求1所述的方法,进一步包括通过从所述处理器的寄存器得到所述装饰值来确定所述装饰值。
7.根据权利要求1所述的方法,其中由所述处理器确定的所述访问许可进一步包括确定写访问许可。
8.根据权利要求1所述的方法,其中所述处理进一步包括确定所述指令的属性;以及在事务中发送进一步包括在所述事务中发送所述属性。
9.根据权利要求1所述的方法,其中所述指令操作包括由加载操作和存储操作组成的组中的一个,并且进一步包括由所述目标装置执行所述指令操作。
10.根据权利要求1所述的方法,进一步包括将所述目标装置实现为存储器。
11.一种操作数据处理系统的方法,所述方法包括 由目标装置经由所述数据处理系统的系统互连接收事务,所述事务由所述数据处理系统的处理器产生,所述事务包括将由所述目标装置执行的指令操作的指示、地址、装饰值和与所述地址相关联的访问许可;以及由所述目标装置基于接收到的所述访问许可来确定由所述装饰值指定的装饰操作是否是许可的。
12.根据权利要求11所述的方法,进一步包括基于根据确定而得出所述装饰操作是许可的,由所述目标装置执行所述装饰操作。
13.根据权利要求11所述的方法,其中由所述目标装置确定由所述装饰值指定的装饰操作是否是许可的包括所述目标装置基于所述装饰操作来确定要检查的访问许可类型;对所述访问许可类型,检查接收到的所述访问许可;以及基于接收到的所述访问许可的所述访问许可类型是否指示所述装饰操作是许可的,确定所述装饰操作是否是许可的。
14.根据权利要求13所述的方法,进一步包括 由所述目标装置执行对应于所述地址的所述指令操作。
15.根据权利要求11所述的方法,进一步包括将所述目标装置实现为存储器,其中所述指令操作是由从所述存储器的加载操作或对所述存储器的存储操作组成的组中的一个。
16.根据权利要求11所述的方法,进一步包括将所述装饰操作实现为包括由以下组成的组中的一个对在由所述地址指定的位置处存储的值进行加法操作,其中所述指令操作是第二值到所述位置的存储操作,其中执行所述存储操作和所述装饰操作将所述第二值加到所述值以产生结果值,其中所述结果值被存储在所述位置;以及由所述地址指定的位置的清除操作,其中所述指令操作是从所述位置的加载操作,其中在所述清除操作之前执行所述指令操作。
17.根据权利要求11所述的方法,进一步包括如果基于所述确定而确定所述装饰操作是不许可的,则不执行所述指令操作。
18.根据权利要求11所述的方法,进一步包括由所述目标装置利用响应对所述处理器进行响应,其中所述响应是基于所述确定的结合 ο
19.一种操作数据处理系统的方法,所述方法包括由所述数据处理系统的第一装置产生指令操作的指示、与所述指令操作相关联的地址、装饰值、和与所述地址相关联的访问许可;在事务中经由系统互连向目标装置发送所述指令操作的指示、所述地址、所述装饰值、 和与所述地址相关联的所述访问许可; 由目标装置接收所述事务;以及由所述目标装置基于与所述地址相关联的所述访问许可来确定由所述装饰值指定的装饰操作是否是许可的。
20.根据权利要求19所述的方法,进一步包括将所述第一装置实现为处理器并且将所述目标装置实现为存储器,其中所述指令操作是由从所述存储器的加载操作或对所述存储器的存储操作组成的组中的一个。
21.根据权利要求20所述的方法,进一步包括基于所述装饰操作是许可的,由所述目标装置执行所述装饰操作。
全文摘要
一种数据处理系统,具有处理器(12)和目标装置(40),其处理装饰指令(即具有装饰值的指令)。数据处理系统的装置例如处理器(12)通过系统互连(14)向目标装置(40)发送事务。所述事务包括指令操作的指示、与指令操作相关联的地址、装饰值(601)(即发送到目标装置用于执行除了所执行指令的主要功能之外的功能的命令)以及与地址相关联的访问许可。目标装置(40)(例如,具有除了存储功能之外的功能的存储器)基于接收到的访问许可来确定由装饰值指定的装饰操作是否是许可的。如果存在合适的许可,则目标装置(40)执行装饰操作。
文档编号G06F9/46GK102197368SQ200980143207
公开日2011年9月21日 申请日期2009年9月30日 优先权日2008年10月28日
发明者加里·L·惠森亨特, 威廉·C·莫耶, 迈克尔·D·斯奈德 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1