具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
结合图1所示,本公开实施例提供一种用于内存访问的方法,包括:
步骤S101,在命令管道缓存的若干内存访问请求中确定待执行内存访问请求;内存访问请求由中央处理器CPU发起;
步骤S102,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态;确定待执行内存访问指令中是否包括编程操作指令;
步骤S103,在目标内存处于空闲状态,且待执行内存访问请求中包括编程操作指令的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;
步骤S104,确定预设存储空间内是否包括标志寄存器,该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;
步骤S105,在预设存储空间内包括标志寄存器的情况下,触发目标内存发送中断信号给待执行内存访问对应的CPU。
采用本公开实施例提供的用于内存访问的方法,通过在触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存后,确定预设存储空间内是否包括标志寄存器,由于该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;因此通过该标志寄存器的存在与否能够确定命令管道是否已将编程操作指令发送到目标内存,并在确定标志寄存器存在的情况下,触发目标内存发送中断信号给发起待执行内存访问请求的CPU;这样能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;进而使得CPU能够得知内存访问的进程状态。
可选地,在命令管道缓存的若干内存访问请求中确定待执行内存访问请求,包括:在命令管道中缓存有一个内存访问请求的情况下,将该内存访问请求确定为待执行内存访问请求;和/或,在命令管道中缓存有多个内存访问请求的情况下,根据各内存访问请求对应的顺序将排序最靠前的内存访问请求确定为待执行内存访问请求。
可选地,通过以下方式获取各内存访问请求对应的顺序:总线对CPU发起的多个内存访问请求按照各内存访问请求的发起时间由早到晚的顺序进行排序。
可选地,在多个CPU在同一时间对同一目标内存发起内存访问请求的情况下,总线对接收到的多个内存访问请求按照各内存访问请求对应的CPU的优先级由高到低的顺序进行排序。
可选地,编程操作指令包括对目标内存中的数据进行擦除操作;或,将编程操作指令中的待存储数据存入目标内存。
可选地,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存后,还包括:触发目标内存根据编程操作指令对目标内存中的数据进行擦除操作;或,对编程操作指令中的待存储数据进行存储。
可选地,目标内存根据编程操作指令对目标内存中的数据进行擦除操作;或,目标内存对编程操作指令中的待存储数据进行存储后,还包括:目标内存将用于表征编程操作已完成的响应信息发送给待执行内存访问请求对应的CPU。可选地,目标内存通过响应通道将响应信息发送给待执行内存访问请求对应的CPU。
在一些实施例中,目标内存将响应信息发送到响应通道,响应通道在接收到响应信息的情况下,将响应信息的本地时钟域频率转化为高速时钟域频率,获得高速响应信息,并将高速响应信息发送给AXI(Advanced eXtensible Interface,总线协议)总线,AXI总线在接收到高速响应信息的情况下,将高速响应信息发送给待执行内存访问请求对应的CPU。由于AXI总线来自高速时钟域,而目标内存来自本地时钟域,同时,目标内存的时钟域频率是高速时钟域频率的一半,所以为了CPU能够解析响应信息,需要响应通道将响应信息转化为高度响应信息。
在一些实施例中,命令通道在目标内存的控制器内,命令通道用于缓存内存访问请求,且命令通道的深度为8,数据宽度为158位。在一些实施例中,响应通道位于目标内存的控制器内,且响应通道的深度为16,数据宽度为94位。
可选地,待执行内存访问请求中包括多个编程操作指令;触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存,包括:触发命令管道将各编程操作指令按照预设顺序发送到目标内存。
可选地,标志寄存器通过以下方式进行设置:在命令管道将待执行内存访问请求中的所有编程操作指令均发送到目标内存的情况下,待执行内存访问请求对应的CPU将在预设存储空间内配置标志寄存器。
可选地,在确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态前,还包括:对目标内存地址进行奇偶校验,在校验通过的情况下,确定目标内存地址指向的目标内存是否处于空闲状态。
可选地,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态,包括:在目标内存对应的状态寄存器的第一预设位置获取第一数值;第一数值用于表征目标内存的当前状态;根据数值确定目标内存是否处于空闲状态。这样,能够快速确定出目标内存是否处于空闲状态。
可选地,状态寄存器中存储有预设位数的数据信息,该数据信息的第一预设位置上的第一数值用于表征目标内存的当前状态。在一些实施例中,在第一数值为“0”的情况下,确定目标内存处于空闲状态;在一些实施例中,在第一数值为“1”的情况下,确定目标内存处于繁忙状态。在一些实施例中,目标内存处于繁忙状态用于表征目标内存中存储的数据正在被擦除,或,有新的待存储数据正在存入目标内存。
可选地,触发命令管道将待执行内存访问请求发送到目标内存前,还包括:确定待执行内存访问请求是否由CPU主动下发;在确定待执行内存访问请求由CPU主动下发的情况下,触发命令管道将待执行内存访问请求发送到目标内存。这样,能够避免在CPU发生故障的情况下,错误操作目标内存。
可选地,在确定待执行内存访问请求不是由CPU主动下发的情况下,将待执行内存访问请求从命令管道中删除。
结合图2所示,本公开实施例提供一种用于内存访问的方法,包括:
步骤S201,在命令管道缓存的若干内存访问请求中确定待执行内存访问请求;内存访问请求由中央处理器CPU发起;
步骤S202,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态;确定待执行内存访问指令中是否包括编程操作指令;
步骤S203,在目标内存处于空闲状态,且待执行内存访问请求中包括编程操作指令的情况下,确定待执行内存访问请求是否由CPU主动下发;在待执行内存访问请求由CPU主动下发的情况下,执行步骤S204,在待执行内存访问请求不是CPU主动下发的情况下,执行步骤S205;
步骤S204,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;然后执行步骤S206;
步骤S205,将待执行内存访问请求从命令管道中删除;
步骤S206,确定预设存储空间内是否包括标志寄存器;
步骤S207,在预设存储空间内包括标志寄存器的情况下,触发目标内存发送中断信号给待执行内存访问对应的CPU。
采用本公开实施例提供的用于内存访问的方法,通过确定标志寄存器的存在与否能够确定命令管道是否已将编程操作指令发送到目标内存,并在确定标志寄存器存在的情况下,触发目标内存发送中断信号给发起待执行内存访问请求的CPU;进而能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;从而使得CPU能够得知内存访问的进程状态;同时,本申请通过确定待执行内存访问请求是否由CPU主动下发,能够避免CPU在发生故障的情况下所导致的误操作目标内存的情况的发生。
可选地,确定待执行内存访问请求是否由CPU主动下发,包括:在状态寄存器的第二预设位置获取第二数值,第二数值用于表征待执行内存访问请求是否由CPU主动发起;根据第二数值确定待执行内存访问请求是否由CPU主动下发。这样能够快速确定待执行内存访问请求是否由CPU主动下发。
在一些实施例中,CPU在发起内存访问请求的情况下,会在预设空间内配置特征寄存器;第二数值会在特征寄存器配置完成的情况下发生改变。在一些实施例中,CPU在预设空间配置特征寄存器后,第二数值由“0”变成“1”。在一些实施例中,在检测到第二数值为“1”的情况下,确定待执行内存访问请求由CPU主动下发。
可选地,在待执行内存访问请求包括编程操作指令的情况下,待执行内存访问请求中还包括中断数据和预设地址的对应关系;触发目标内存发送中断信号给CPU前,还包括:确定命令管道是否将中断数据发送到预设地址;在确定命令管道将中断数据发送到预设地址的情况下,触发目标内存发送中断信号给CPU。由于标志寄存器的配置和中断数据的发送不一定同步,为了保证中断信号的准确性,因此需要同时确定标志寄存器是否配置完成、中断数据是否已发送。
结合图3所示,本公开实施例提供一种用于内存访问的方法,包括:
步骤S301,在命令管道缓存的若干内存访问请求中确定待执行内存访问请求;内存访问请求由中央处理器CPU发起;
步骤S302,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态;确定待执行内存访问指令中是否包括编程操作指令;
步骤S303,在目标内存处于空闲状态,且待执行内存访问请求中包括编程操作指令的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;
步骤S304,确定预设存储空间内是否包括标志寄存器,该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;确定命令管道是否将待执行内存访问请求中的中断数据发送到预设地址;
步骤S305,在预设存储空间内包括标志寄存器,且命令管道将中断数据发送到预设地址的情况下,触发目标内存发送中断信号给待执行内存访问对应的CPU。
采用本公开实施例提供的用于内存访问的方法,通过同时确定标志寄存器是否配置完成、中断数据是否已发送,并在确定标志寄存器存在且中断数据已经发送的情况下,触发目标内存发送中断信号给发起待执行内存访问请求的CPU;进而能够更准确的在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;从而使得CPU能够准确得知内存访问的进程状态。
可选地,确定待执行内存访问请求中是否包括编程操作指令后,还包括:在待执行内存访问请求不包括编程操作指令,且目标内存处于空闲状态的情况下,触发命令管道将待执行内存访问请求发送到目标内存,触发目标内存根据待执行内存访问请求获取目标数据并将目标数据反馈给待执行内存访问请求对应的CPU。这样,能够在待执行内存访问请求用于读取数据的情况下,触发目标内存将目标数据反馈给待执行内存访问请求对应的CPU。
结合图4所示,本公开实施例提供一种用于内存访问的方法,包括:
步骤S401,在命令管道缓存的若干内存访问请求中确定待执行内存访问请求;内存访问请求由中央处理器CPU发起;
步骤S402,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态;确定待执行内存访问指令中是否包括编程操作指令;
步骤S403,在目标内存处于空闲状态,且待执行内存访问请求中不包括编程操作指令的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;
步骤S404,触发目标内存根据待执行内存访问请求获取目标数据并将目标数据反馈给待执行内存访问请求对应的CPU。
采用本公开实施例提供的用于内存访问的方法,能够在待执行内存访问请求用于读取数据的情况下,触发目标内存将目标数据反馈给待执行内存访问请求对应的CPU。
在一些实施例中,目标内存发送目标数据给响应通道,响应通道在接收到目标数据的情况下,将目标数据的本地时钟域频率转化为高速时钟域频率,获得转化数据,并将转化数据发送到AXI总线,AXI总线在接收到转化数据的情况下,将转化数据发送到待执行内存访问对应的CPU。由于AXI总线来自高速时钟域,而目标内存来自本地时钟域,同时,目标内存的时钟域频率是高速时钟域频率的一半,所以为了CPU能够解析目标数据,需要响应通道将目标数据转化为转化数据。
可选地,目标内存地址中包括行地址信息和列地址信息;触发目标内存根据待执行内存访问请求获取目标数据,包括:根据行地址信息和列地址信息从目标内存中获取目标数据。
在一些实施例中,多个CPU同时发起内存访问请求,经过AXI总线对各内存访问请求进行排序后缓存进命令管道中,将命令管道中排序最靠前的内存访问请求确定为待执行内存访问请求。对待执行内存访问请求中的目标内存地址进行奇偶校验,在目标内存地址校验通过的情况下,确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态,即,在目标内存对应的状态寄存器的第一预设位置中获取第一数值,在第一数值为“0”的情况下,确定目标内存处于空闲状态;确定待执行内存访问请求中是否包括编程操作指令,在待执行内存访问请求中包括编程操作指令的情况下,在状态存储器的第二预设位置获取第二数值,在第二数值为“1”的情况下,确定待执行内存访问请求由CPU主动下发;在编程操作指令中包括待存储数据的情况下,对待存储数据进行数据校验,在待存储数据校验通过的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;目标内存接收编程操作指令,并对编程操作指令中的待存储数据进行存储;确定预设存储空间内是否包括标志寄存器;确定命令管道是否将待执行内存访问请求中的中断数据发送到预设地址;在预设存储空间内包括标志寄存器、且命令管道将中断数据发送到预设地址的情况下,触发目标内存发送中断信号给CPU。在目标内存存储待存储后,目标内存通过响应通道将响应信息发送给待执行内存访问请求对应的CPU。这样能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;进而使得CPU能够得知内存访问的进程状态。
结合图5所示,本公开实施例提供一种用于内存访问的装置,包括第一确定模块501、第二确定模块502、第一触发模块503、第三确定模块504和第二触发模块505;第一确定模块501被配置为在命令管道缓存的若干内存访问请求中确定待执行内存访问请求;内存访问请求由中央处理器CPU发起;第二确定模块502被配置为确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态;确定待执行内存访问指令中是否包括编程操作指令;第一触发模块503被配置为在目标内存处于空闲状态,且待执行内存访问请求中包括编程操作指令的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存;第三确定模块504被配置为确定预设存储空间内是否包括标志寄存器,标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;第二触发模块505被配置为在预设存储空间内包括标志寄存器的情况下,触发目标内存发送中断信号给待执行内存访问对应的CPU。
本公开实施例提供的用于内存访问的装置,通过在第一触发模块触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存后,通过第三确定模块确定预设存储空间内是否包括标志寄存器,由于该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;因此通过该标志寄存器的存在与否能够确定命令管道是否已将编程操作指令发送到目标内存,并在第三确定模块确定标志寄存器存在的情况下,通过第二触发模块触发目标内存发送中断信号给发起待执行内存访问请求的CPU;这样能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;进而使得CPU能够得知内存访问的进程状态。
可选地,第二确定模块被配置为通过以下方式确定待执行内存访问请求中的目标内存地址指向的目标内存是否处于空闲状态:在目标内存对应的状态寄存器的第一预设位置获取第一数值;第一数值用于表征目标内存的当前状态;根据数值确定目标内存是否处于空闲状态。
可选地,第二确定模块还被配置为在第一触发模块触发命令管道将待执行内存访问请求发送到目标内存前,确定待执行内存访问请求是否由CPU主动下发。
可选地,第一触发模块被配置为在目标内存处于空闲状态,待执行内存访问请求中包括编程操作指令,且待执行内存访问请求由CPU主动下发的情况下,触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存。
可选地,第二确定模块被配置为通过以下方式确定待执行内存访问请求是否由CPU主动下发:在状态寄存器的第二预设位置获取第二数值,第二数值用于表征待执行内存访问请求是否由CPU主动发起;根据第二数值确定待执行内存访问请求是否由CPU主动下发。
用于内存访问的装置还包括第四确定模块,第四确定模块被配置为确定命令管道是否将中断数据发送到预设地址。
可选地,第二触发模块被配置为在预设存储空间内包括标志寄存器,且确定命令管道将中断数据发送到预设地址的的情况下,触发目标内存发送中断信号给待执行内存访问对应的CPU。
可选地,第一触发模块还被配置为在待执行内存访问请求不包括编程操作指令,且在目标内存处于空闲状态的情况下,触发命令管道将待执行内存访问请求发送到目标内存;触发目标内存根据待执行内存访问请求获取目标数据并将目标数据反馈给待执行内存访问请求对应的CPU。
结合图6所示,本公开实施例提供一种用于内存访问的装置,包括处理器(processor)600和存储器(memory)601。可选地,该装置还可以包括通信接口(Communication Interface)602和总线603。其中,处理器600、通信接口602、存储器601可以通过总线603完成相互间的通信。通信接口602可以用于信息传输。处理器600可以调用存储器601中的逻辑指令,以执行上述实施例的用于内存访问的方法。
采用本公开实施例提供的用于内存访问的装置,通过在触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存后,确定预设存储空间内是否包括标志寄存器,由于该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;因此通过该标志寄存器的存在与否能够确定命令管道是否已将编程操作指令发送到目标内存,并在确定标志寄存器存在的情况下,触发目标内存发送中断信号给发起待执行内存访问请求的CPU;这样能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;进而使得CPU能够得知内存访问的进程状态。
此外,上述的存储器601中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器601作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器600通过运行存储在存储器601中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于内存访问的方法。
存储器601可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器601可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种电子设备,包含上述的用于内存访问的装置。
采用本公开实施例提供的电子设备,通过在触发命令管道将待执行内存访问请求中的编程操作指令发送到目标内存后,确定预设存储空间内是否包括标志寄存器,由于该标志寄存器用于表征命令管道已将编程操作指令发送到目标内存;因此通过该标志寄存器的存在与否能够确定命令管道是否已将编程操作指令发送到目标内存,并在确定标志寄存器存在的情况下,触发目标内存发送中断信号给发起待执行内存访问请求的CPU;这样能够在每下发一个内存访问请求的情况下就发送中断信号给对应的CPU;进而使得CPU能够得知内存访问的进程状态。
可选的,电子设备为计算机、手机或平板电脑等。
本公开实施例提供了一种计算机可读存储介质,存储有程序指令,所述程序指令在运行时,执行上述的用于内存访问的方法。
本公开实施例提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述用于内存访问的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。