CN1293394A - 处理器系统 - Google Patents
处理器系统 Download PDFInfo
- Publication number
- CN1293394A CN1293394A CN00128511A CN00128511A CN1293394A CN 1293394 A CN1293394 A CN 1293394A CN 00128511 A CN00128511 A CN 00128511A CN 00128511 A CN00128511 A CN 00128511A CN 1293394 A CN1293394 A CN 1293394A
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- data shift
- processor unit
- unit
- 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.)
- Pending
Links
- 238000000926 separation method Methods 0.000 claims abstract description 6
- 238000006073 displacement reaction Methods 0.000 claims description 27
- 230000008569 process Effects 0.000 claims description 26
- 238000012432 intermediate storage Methods 0.000 claims description 25
- 238000000034 method Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 19
- 230000003252 repetitive effect Effects 0.000 claims description 9
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 9
- 238000004891 communication Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 3
- 230000002349 favourable effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Memory System (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种处理器系统,其数据移位指令的定义方式是,所述处理器单元(1)通过数据移位指令给定需移位的数据单元的数量(n)。根据本发明的另一个实施例,通过数据移位指令给定一个分离信息(SP),使得所述处理器单元(1)将可寻址的数据单元在一个相应的分离位置(SP)上分离成两个数据半段(H1-H3;P1-P5),并分别存储。本发明尤其适用于处理远程通信协议。
Description
本发明涉及一种处理器系统,包括一个用于执行存储在一个程序存储器中的指令的处理器单元,还包括一个数据存储器,其中在所述程序存储器内存在一个对应的数据移位指令的情况下,由处理器单元在数据存储器和一个中间存储单元之间移位数据。这种处理器系统特别是一种处理远程通信协议的处理器系统。
在处理远程通信协议,例如因特网协议、以太网协议或者DSL框架协议时,相应的处理器系统通常要完成两个典型的子任务。一个子任务是,从一个输入缓存器向一个输出缓存器移动或移位所谓的有效负载数据,其中需要移位的一部分数据是含有多个数据字的数据组。在状态数据存储器中,如果需要移位较多的数据组的话,也需要对每个功能操作以及与其相联系的、被作为程序状态的功能操作状态空间的改变进行存储。另一个子任务是,从所存储的比特流中提取所谓的标题数据,以便随后对其继续进行处理。
在ARM处理器系统中公知的方法是,系统支持整个数据组在一个数据存储器和一个寄存器之间根据功能操作进行移位。与此相关的文献例如参见《ARM系统结构》,Steve Furber,Addison-Wesley;1996。在ARM处理器中使用的加载指令具有以下句法:
LDMIA R1!,{R2-R9}
使用该指令可从一个RAM存储器中将数据组装载到具有寄存器区间R2-R9的寄存器文件内,在所述情况中,数据组含有8个数据字。因为这种方法的出发点是,每个数据字在存储器内占据4个字节,所以“R1!”后面连接的通过一个地址指针(“地址指针”)在寄存器R1内定义的实际存储器地址提高到4×8=32字节。
所述存储器指令具有类似的句法:
STMIA R2,{R2-R9}
使用该指令可将存储在寄存器区间如R2-R9中的寄存器文件数据字写入存储器。
以上实例表明,用这种ARM指令只能将数据字移位到寄存器文件的大框架内。但是在处理通信协议时,需要和要求移位的数据字大于所述寄存器文件,而且要求这种情况要尽量具有相对较小的开销,也就是说,尽可能具有较少数量的操作循环,从而实现最小的功耗。
从所存储的比特流中提取所述标题数据时,迄今为止公开的方案是,执行该功能只能采用相对大量的顺序指令,也就是说,具有数量较多的操作循环以及目对较高的功耗。
下面根据图4对这样一种公知的方案加以进行简要说明,图中表示的是一个按字节存取的存储器组织方案,即比特流被划分成单个字节,该字节由一个字节指针(“字节指针”)寻址。其中所述比特流通常具有至少一个字节,该字节中不仅含有上述标题数据,也含有所谓的实际负载数据。标题数据完全用于控制目的,并且特别包含用于所谓CRC校验(“循环冗余码校验”)的冗余信息,而实际负载数据包含的是通信信息本身,例如在因特网应用中的付费信息。在一个字节内对标题数据和实际负载数据的划分,根据所使用的通信协议而确定。例如在图4A中表示的由一个字节指针BP寻址的字节,例如包含3个标题或规约位H1-H3,以及5个实际负载位位P1-P5。
为对该字节继续进行处理,必须将标题位和实际负载位相互分开存储。该任务例如可通过以下指令串实现:
LOAD R1,BP
LOAD R2,@R1
LOAD R3,R2
AND R2,11100000
SHIFT R3,Left #3
利用该指令串首先将字节指针BP装载到寄存器R1内。然后由字节指针寻址的字节内容被装载到寄存器R2内,并传输给另一个寄存器R3。通过随后进行的逻辑AND连接,可保证在寄存器R2内仅包含通过所述字节指针寻址的字节头3个比特(左起),而通过随后的移位操作可达到寄存器R3的内容向左移位3个位置,使得标题位位H1-H3从寄存器R3中消失。在图4B中表示的是所得到的寄存器R2和R3的寄存器内容,从中可以看出,此时在寄存器R2内仅包含3个标题或规约位H1-H3,而寄存器R3仅具有实际负载位位P1-P5。
以上所述指令串一共包含5个独立指令。因为对每个独立指令而言,所有程序代码的存储器需求量,操作循环的数量以及功率需求将随之增加,所以此处存在的需求是实现以上功能的同时,要减小开销,并且减小独立指令的数量。
本发明的任务是,提供一种处理器系统,它适于处理远程通信协议,并且可以用相对较小的开销实现,也就是说,采用尽量少的操作循环数量以及最小功耗实现对所产生的处理步骤,特别是数据的移位操作。
根据本发明,以上任务的解决方案的处理器系统的特征在于,所述数据移位指令的定义方式是,所述处理器单元通过数据移位指令给定需移位的数据单元的数量,其形式为一个数据组,并且所述处理器单元的构成方式是,它根据数据移位指令,在数据存储器和中间存储单元之间移位一定数量的数据单元,其数量对应于通过数据移位指令所给定的数量。以上任务的解决方案的处理器系统的特征还在于,所述数据移位指令的定义方式是,所述处理器单元通过数据移位指令给定一个分离信息,该信息与一个可通过数据移位指令寻址的、存储在数据存储器中的数据单元相关,并且所述处理器单元的构成方式是,它根据数据移位指令,将对应于所述分离信息的分离位置上的可寻址数据单元分离成一个第一数据半段和一个第二数据半段,并将所述第一数据半段移位到一个第一中间存储单元中,将所述第二数据半段移位到一个第二中间存储单元中。其从属权利要求分别定义了本发明有利的和优选的
实施例。
根据本发明的第一个实施例,所述数据移位指令,即一个存储指令或一个加载指令的定义方式是,所述处理器单元通过数据移位指令给定需移位的数据单元的数量,其形式为一个数据组,并且所述处理器单元根据数据移位指令,在处理器单元的数据存储器和一个中间存储单元之间移位一定数量的数据单元,其数量对应于通过数据移位指令所给定的数量,所述中间存储单元是一个寄存器或一个输入/输出单元的通道。
需移位的数据单元的数量不仅可通过指令代码自行给定,也可间接地通过一个由所述数据移位指令所定义的寄存器给定。一种有利的方式是,给每个数据移位指令分配一个优先级,通过该优先级使处理器单元只允许通过中断执行数据移位指令,所述中断具有比所述数据移位指令更高的优先级。
根据该实施例的一个特殊的实施方式,在使用通道作为中间存储单元的情况下,通过所述数据移位指令给定一个偏移值,利用该值,所述处理器单元根据一个加载指令将数据单元从数据存储器加载到通道,或根据一个存储指令从通道读出所述数据单元。
从总体上看以上方案提高了一种非常有效的指令,它允许所述处理器系统即便对大量的数据组也能简单地采用少数几个操作循环,在处理器系统的数据存储器和上述中间存储单元(例如一个寄存器或一个输入/输出通道)之间进行移位。
根据本发明的第二个实施例,所述数据移位指令的定义方式是,所述处理器单元通过数据移位指令给定一个分离信息,该信息与一个可通过数据移位指令寻址的、存储在数据存储器中的数据单元相关,并且所述处理器单元的构成方式是,它根据数据移位指令,将对应于所述分离信息的分离位置上的可寻址数据单元分离成一个第一数据半段和一个第二数据半段,并将所述第一数据半段移位到一个第一中间存储单元中,将所述第二数据半段移位到一个第二中间存储单元中。
所述数据单元,特别是一个存储在所述处理器系统的数据存储器内的通信比特流的数据字节。根据第二个实施例,两个中间存储单元中的每一个例如可以是一个寄存器或一个输入/输出通道。
根据该实施例的一个特殊的实施方式,所述处理器单元通过所述数据移位指令给定一个移位信息,从而使数据处理器单元可根据数据移位指令,将第一数据半段或第二数据半段移位到第一中间存储单元或第二中间存储单元中,所移位的数量是与所述移位信息对应的比特位数量。
根据该第二实施例同样可以提供一种功能强大的数据移位指令,它可使所述处理器系统以较少的操作循环和较低的功耗对数据字进行分隔。所述第二个实施例非常适用于对一种远程通信协议的包含数据字节的标题和实际负载数据分别进行存储和继续处理。
以上所述数据移位指令不仅在第一个实施例中,而且在第二个实施例中可以和一个重复指令组合,其中处理器单元通过重复指令给定数据移位指令的重复次数。如果数据处理单元的设计方式可保证其并行处理多个程序进程,则所述处理器单元利用重复指令可以给定另一个程序进程,该进程由处理器单元平行于数据移位指令的执行而执行。
下面对照附图所示的优选实施例对本发明作进一步的说明。
图1表示本发明所述处理器系统的一个优选实施例的框图,
图2表示本发明所述第一个实施例的数据组移位情况,
图3表示本发明所述第一个实施例的改进方案的数据组移位情况,
图4a和图4b表示根据已有技术将通信比特流的一个字节划分成标题数据和实际负载数据的示意图,
图5A至图5D表示根据本发明所述第二个实施例,将通信比特流的一个字节划分成标题数据和实际负载数据的示意图。
图1所示的处理器系统包括一个微处理器单元1,它经数据总线10、控制总线11和地址总线12与一个程序存储器13、数据存储器14以及输入/输出单元16相连。所示程序存储器13包含需处理的程序代码,而数据存储器14则存储所使用的相应变量。经单向地址总线12,从所述微处理器单元1给出所要求的存储器地址。经控制总线11则确定是进行写过程,还是进行读过程,经双向数据总线10发生数据交换。
所述微处理器单元1基本包括3个功能块,即一个进程控制器2,一个执行单元3和一个总线接口6。
所述进程控制器2包括一个指令解码器和一个程序计数器,其中的程序计数器顺序调用所执行的程序的指令,而所述指令解码器随后触发为执行各个指令所需的步骤。
在程序启动时,程序计数器被设定在启动地址上。该地址从进程控制器2出发,经总线接口6的一个地址总线驱动器9和地址总线12传输给相应的寻址存储器。对于一个在由控制总线驱动器8控制的控制总线11中传输的读信号,由所传输的地址寻址的存储器单元或存储单元的内容被在由数据总线驱动器7控制的数据总线10上读出,并且存储在进程控制器2的指令解码器内。所述指令解码器然后触发用于执行指令所需的操作,并且在执行指令之后将所述程序计数器设定在下一个指令地址上。
执行单元3的基本组成部分是一个ALU计算单元(算术逻辑单元)4,它处理各个算术指令和逻辑指令。其中所需的操作数位于一个寄存器单元5内,或者经图1所示的内部总线加载。所述寄存器单元5包括一个或多个数据寄存器和地址寄存器。在图1中所示的处理器系统特别涉及一种处理远程通信协议的处理器系统,例如适用于处理因特网或以太网协议或DSL框架协议。在处理这种远程通信协议的过程中,如上所述经常需要移位较大的数据组,该数据组含有所谓的实际负载数据,该移位过程是通过存储在程序存储器13中的加载或存储指令启动的。
因为通过这种加载或存储指令要覆盖较大的数据范围,所以有利的方式是,用相应的指令分别给定需移位的数据字的数量,使得处理器单元1在相应指令的解码完成后,能够从数据存储器14中读出所要求的数量的数据字,并加载到寄存器5或输入/输出单元16的一个通道上。所以对于一个存储指令当然也要求将相应数量的数据字从对应的寻址寄存器5或通道中读出,并存储到所述数据存储器14中。
相应需要移位的数据字的数量参数可直接进入指令代码(OpCode)(所谓直接或“直接”寻址)或者间接进入(所谓的索引化或者“索引”寻址)。
随后的加载指令相当于指令代码本身内直接给出了移位数据字的数量的一个实例:
LOADBLOCK R1,@R2,ANZAHL,PRIORITAT
借助该指令可命令存储器系统的存储器单元1从一个特定的、由寄存器R2中存储的地址指针定义的存储器地址出发,在数据存储器14内读出一个数据组,该数据组具有与参数“数量(ANZAHL)”相对应的数据字数量,并且加载到寄存器R1内。这种包括n个字的数据组15的移位过程也表示在图2中(n等于相应的参数值:数量)。
以上指令的执行是通过中断实现的,该中断被输入所述数据处理器单元1。其中特别有利的是,为每个数据移位指令分配一个任意的优先级,使得所述处理器单元1只有在中断出现时才被要求执行相应的指令,所述中断的优先级要高于相应的数据移位指令。所以以上所述LOADBLOCK指令具有参数优先级,其数值可确定相应指令的优先级。
下述加载指令相当于间接给出移位的数据字数量的一个实例,它通过分配寄存器R3进行,其中利用随后的指令加载的数据组没有处在寄存器中,而是处在输入/输出单元16的输出通道上:
LOADBLOCK PROT,@R2,R3,OFFSET,PRIORITAT
其中通过参数通道定义相应的加载通道。需移位的数据字的数量是间接通过寄存器R3的内容给定的。所述数据字将重新开始被读取,该读取是由一个寄存器R2内存储的地址指针定义的存储地址实现的。此外在以上实例中,LOADBLOCK指令的结构是给定一个例如以特定比特数量为形式的偏移值,利用该偏移值需移位的数据组的数据字被加载到相应的寻址输出通道上。下面对照图3做进一步的详细说明。
如图3所示,假设通过一个上述种类的LOADBLOCK指令,要从程序存储器14中向一个输出通道16移位或加载一个具有n个数据字的数据组15。在图3所示的实例中,PORT=3,OFFSET=2,也就是说,需移位的数据组15的数据字在输出通道#3中移位了两个比特。参数偏移优先从处理器系统中直接传输到相应的寻址输出通道上,所以该通道的偏移移位是以特定通道的函数形式实现的。一个比特偏移的使用只是许多偏移可能性中的一种。
在上述实例中,也要给LOADBLOCK指令分配一个任意优先级,它也可临时被提高。
所要求的通道数据可以间接通过分配对应的寄存器内容实现:
LOADBLOCK R1,@R2,R3,OFFSET,PRIORITAT
在该LOADBLOCK指令中,寄存器R1中存储所要求的输出通道的号码。在其他方面,该LOADBLOCK指令相当于以上所述指令。
上述指令句法不仅可用于加载指令,也可用于存储指令:
STOREBLOCK PORT,@R2,R3,OFFSET,PRIORITAT
利用该STOREBLOCK指令可以从一个由参数通道表示的输入/输出单元16的输入通道出发,在一个由参数偏移定义的比特位置上读取数据组,该数据组包括一定数量的存储在寄存器R3中的数据字,并且从数据存储器14开始存储一个通过寄存器R2存储的地址指针所定义的存储器地址。所述STOREBLOCK指令也通过参数优先级被分配一个与指令相关的优先级。
当然所述STOREBLOCK和上述LOADBLOCK指令一样,可进行变换。
每个指令都构成一个特定的、也称为“线索(THREAD)”的程序进程的一部分。通过将上述指令与一个重复指令进行以下组合,可将所述LOADBLOCK植入其他程序进程内:
REPEAT R1,ANZAHL,THREAD
LOADBLOCK PORT,@R2,R3,OFFSET,PRIORITAT
通过REPEAT指令可建立一个由参数数量定义的重复操作的重复闭环。重复值的数量首先加载到寄存器R1中。然后LOADBLOCK指令被执行一次,该指令可使寄存器R1中存储的重复值R1递减(R1=R1-1),并且转换到由参数线索所定义的程序进程,进而启动或执行该程序。通过一个相应的指令,这个由参数线索定义的程序进程或者在存在相应的中断条件下重新返回,或者跳回,再次执行LOADBLOCK指令。该过程将持续重复进行,直到寄存器R1内所存储的数值均为0。
一种特别有利的方案见图1所示的处理器单元,其构成方式是,它同时,即并行处理不同的程序进程。在这种情况下,要采用REPEAT指令启动和执行由参数线索所表示的程序进程,其中随后的LOADBLOCK指令将平行于已有的程序进程被执行。
下面参照图5对本发明的另一个实施例加以说明,其中提供了一种功能十分强大的指令。利用该指令可以较小的开销对一个数据单元,特别是一个字节的比特进行划分,并分别存储。这种操作对于通过微处理器处理远程通信协议经常是必要的。
如以上对图4所做的说明,首先假设数据存储器中存储了一个字节的通信比特流,该数据通过一个存储在特定寄存器内的字节指针BP寻址。在图1中所示的处理器单元1可以通过数据总线10上的存储器存取操作而对这个字节进行存取,这个过程是按照下述LOAD2指令进行的,该指令可以和一个公知的LOAD指令或加载指令组合:
LOAD R1,BP
LOAD2 R2,R3,@R1,SP
首先,字节指针BP通过LOAD指令加载到寄存器R1中。然后,所述存储器单元1通过LOAD2指令以参数SP的形式给定分隔或分离信息,该信息表示在字节指针BP寻址的字节中的分隔位置(参见图5A)。通过该分隔位置,所述寻址字节被分成两个半段,它们由所述处理器单元1存储在同样被LOAD2指令所给定的寄存器R2和R3内。在所述数据存储器14内,存储在字节指针BP定义的地址上的字节将根据LOAD2指令从存储器单元中,如图5B所示被分配给寄存器R2和寄存器R3,然后寄存器R2仅存储位于分隔位置SP左半段字节的比特位H1-H3,而寄存器R3仅包含右半段字节的比特位P1-P5。将字节划分成左半段和右半段的方法例如是,由所述处理器单元1产生一个对应的二进制掩蔽码,该码具有一个逻辑AND(与)连接的字节。如果该操作扩展到与参数SP对于的用于寄存器R3的移位操作,则可得到在图5C中所示的寄存器内容。这种移位操作或移位操作例如可以在一个处理器单元内,由通常设置的桶形移位器进行,因为所述桶形移位器在一个存储或加载操作中不会被调用。
还有可能对寄存器R2提出额外的移位要求。在这种情况下,所述LOAD2指令可以做以下改变:
LOAD2 R2,R3,@R1,SP,EP
通过该LOAD2指令,处理器单元1可以给定另一个参数EP,它表示用于寄存器R2的移位或插入位置,所以在寄存器R2中存储的具有比特位H1-H3的字节半段在执行该LOAD2指令时,会移动一个等于参数EP所标明的比特数量,并且得到图5D所示的寄存器内容。
当然该LOAD2指令也可用于输出通道,在下面的实例中用参数PORT(通道)表示的输入/输出单元16的输出通道取代了寄存器R3的位置:
LOAD2 R2,PORT,@R1,SP,EP
利用该指令,参数SP可直接导入由参数PORT所表示的输出通道,在该通道上,随后将执行比特位P1-P5的左移,其数值为SP,形式为一个与通道相关的函数。
在使用通道时,也可按以下方式实现相应通道的索引地址,其中在所述寄存器R3内给出待寻址的通道:
LOAD2 R2,R3,@R1,SP,EP
总之,利用该LOAD2指令可以实现一个功能强大的指令用于分离特定的数据单元,所述分离只需要最少数量的操作循环,所以功耗也最小。除了在LOAD2指令中各个参数所需的控制比特位外,硬件开销和公知方法相比(参见关于图4的说明)几乎没有变化。上面所述的实施例适用于远程通信协议的处理,对通信比特流的一个字节的标题位位H1-H3和实际负载位位P1-P5有出色的分离效果。
为分离特定的数据单元而规定的上述LOAD2指令也可以加以扩展,从而连接或“融合”字节半段,形成一个STORE2指令:
STORE2 R2,R3,@R1,SP,EP
利用该指令可从寄存器R2和R3中读出一个字节的两个字节半段,其中两个字节半段在处理器单元1的寄存器R2和R3中的位置,以上述参数SP和EP的形式给出。所述处理器单元1可通过对寄存器R2和R3的存取,读出具有比特位H1-H3和P1-P5的两个字节半段,并组成一个完整的字节,它通过寄存器R1中存储的字节指针所表示的存储地址被存储在数据存储器14中。但是该STORE2指令只能用于寄存器。考虑到开销问题,将STORE2指令用于图5C所示的寄存器R2和R3的存储是有利的。
这种LOAD2或STORE2指令也可如以上关于LOADBLOCK指令的说明一样与一个REPEAT指令相组合,从而集成到一个重复环内:
REPEAT R1,ANZAHL,THREAD
LOAD2 R2,R3,@R1,SP,EP
如果在所述处理器单元1内对LOAD2指令设置了一个专用的硬件单元,则所述LOAD2指令可重新与另一个由参数THREAD表示的程序进程并行执行。
Claims (20)
1.处理器系统,包括一个用于执行存储在一个程序存储器(13)中的指令的处理器单元(1),还包括一个数据存储器(14),其中在所述程序存储器(13)内存在一个对应的数据移位指令的情况下,由处理器单元(12)在数据存储器(14)和一个中间存储单元(5,16)之间移位数据,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)通过数据移位指令给定需移位的数据单元的数量(n),其形式为一个数据组(15),并且所述处理器单元(1)的构成方式是,它根据数据移位指令,在数据存储器(14)和中间存储单元(5,16)之间移位一定数量的数据单元,其数量对应于通过数据移位指令所给定的数量。
2.如权利要求1所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)通过指令代码自行给定需移位的数据单元数量(n)。
3.如权利要求1所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)间接地通过一个由所述数据移位指令所定义的寄存器(5)的内容给定需移位的数据单元的数量(n),其形式为数据组(15)。
4.如以上权利要求中任何一项所述的处理器系统,其特征在于,给每个数据移位指令分配一个优先级,通过该优先级对应所述处理器单元(1),该处理器单元只允许通过中断执行数据移位指令,所述中断具有比所述数据移位指令更高的优先级。
5.如以上权利要求中任何一项所述的处理器系统,其特征在于,所述中间存储单元是一个寄存器(5,R1)。
6.如权利要求1至4中任何一项所述的处理器系统,其特征在于,所述中间存储单元是一个输入/输出单元(16)的通道。
7.如权利要求6所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)间接通过由所述数据移位指令定义的寄存器(5)的内容给定相应的通道(16)。
8.如权利要求6或7所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)通过所述数据移位指令给定一个偏移值,利用该值所述处理器单元(1)根据一个加载指令将数据单元从数据存储器(14)加载到通道(16),或根据一个存储指令从通道(16)读出所述数据单元。
9.如权利要求8所述的处理器系统,其特征在于,所述偏移值是一个位偏移值。
10.如以上权利要求中任何一项所述的处理器系统,其特征在于,所述数据移位指令是一个加载指令,可对应所述处理器单元(1),使其将相应的数据组(15)从数据存储器(14)加载到中间存储单元(5,16)。
11.如以上权利要求中任何一项所述的处理器系统,其特征在于,所述数据移位指令是一个存储指令,可对应所述处理器单元(1),使其将相应的数据组(15)从中间存储单元(5,16)写入数据存储器(14)中。
12.如以上权利要求中任何一项所述的处理器系统,其特征在于,每个数据单元是一个数据字,使得所述处理器单元(1)通过所述数据移位指令对需要移位的数据组(15)给定需移位的数据字段的数量。
13.处理器系统,包括一个用于执行存储在一个程序存储器(13)中的指令的处理器单元(1),还包括一个数据存储器(14),其中在所述程序存储器(13)内存在一个对应的数据移位指令的情况下,由处理器单元(12)在数据存储器(14)和一个中间存储单元(5,16)之间移位数据,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)通过数据移位指令给定一个分离信息(SP),该信息与一个可通过数据移位指令寻址的、存储在数据存储器(14)中的数据单元相关,并且所述处理器单元(1)的构成方式是,它根据数据移位指令,将对应于所述分离信息的分离位置(SP)上的可寻址数据单元分离成一个第一数据半段(H1-H3)和一个第二数据半段(P1-P5),并将所述第一数据半段(H1-H3)移位到一个第一中间存储单元(5,R2;16)中,将所述第二数据半段(P1-P5)移位到一个第二中间存储单元(5,R3;16)中。
14.如权利要求13所述的处理器系统,其特征在于,所述数据单元是一个存储在数据存储器(14)中的数据字节。
15.如权利要求13或14所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)间接地通过一个由所述数据移位指令所定义的寄存器(5)的内容给定需寻址的数据单元。
16.如权利要求13至15中任何一项所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)通过所述数据移位指令给定一个移位信息(EP),并且所述处理器单元(1)的构成方式是,它根据数据移位指令,将第一数据半段(H1-H3)或第二数据半段(P1-P5)移位到第一中间存储单元(5,R2;16)或第二中间存储单元(5,R3;16)中,所移位的数量是与所述移位信息(EP)对应的比特位数量。
17.如权利要求13至16中任何一项所述的处理器系统,其特征在于,所述第一和/或第二中间存储单元是一个寄存器(5,R2,R3)。
18.如权利要求13至17中任何一项所述的处理器系统,其特征在于,所述第一和/或第二中间存储单元是一个输入/输出单元(16)的通道。
19.如权利要求18所述的处理器系统,其特征在于,所述数据移位指令的定义方式是,所述处理器单元(1)间接通过由所述数据移位指令定义的寄存器(5)的内容给定相应的通道(16)。
20.如以上权利要求中任何一项所述的处理器系统,其特征在于,所述数据移位指令与一个重复指令组合存储在一个程序存储器(13)中,其中所述处理器单元(1)通过所述重复指令给定所述数据移位指令的重复数量,并且所述处理器单元(1)的构成允许处理多个并行的程序进程,而且所述重复指令的定义方式是,所述处理器单元(1)通过重复指令给定一个程序进程,该过程是并行于所述处理器单元(1)执行数据移位指令的过程而执行的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19948100.8 | 1999-10-06 | ||
DE19948100A DE19948100A1 (de) | 1999-10-06 | 1999-10-06 | Prozessorsystem |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1293394A true CN1293394A (zh) | 2001-05-02 |
Family
ID=7924661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00128511A Pending CN1293394A (zh) | 1999-10-06 | 2000-10-05 | 处理器系统 |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1091290B1 (zh) |
JP (1) | JP2001166918A (zh) |
KR (1) | KR100630019B1 (zh) |
CN (1) | CN1293394A (zh) |
AT (1) | ATE350703T1 (zh) |
DE (2) | DE19948100A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1512069B1 (en) * | 2002-05-24 | 2020-12-09 | Telefonaktiebolaget LM Ericsson (publ) | An address generation unit for a processor |
US20130042091A1 (en) * | 2011-08-12 | 2013-02-14 | Qualcomm Incorporated | BIT Splitting Instruction |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NL134954C (zh) * | 1964-10-07 | |||
DE3650703T2 (de) * | 1985-02-12 | 1999-04-01 | Texas Instruments Inc., Dallas, Tex. | Mikroprozessor mit einer Blockübertragungsinstruktion |
US5222225A (en) * | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
JPH02190930A (ja) * | 1988-12-29 | 1990-07-26 | Internatl Business Mach Corp <Ibm> | ソフトウエア命令実行装置 |
US5185694A (en) * | 1989-06-26 | 1993-02-09 | Motorola, Inc. | Data processing system utilizes block move instruction for burst transferring blocks of data entries where width of data blocks varies |
US5778423A (en) * | 1990-06-29 | 1998-07-07 | Digital Equipment Corporation | Prefetch instruction for improving performance in reduced instruction set processor |
JP2932963B2 (ja) * | 1994-01-21 | 1999-08-09 | モトローラ・インコーポレイテッド | 効率的なビット移動能力を有するデータ・プロセッサとその方法 |
US5875342A (en) * | 1997-06-03 | 1999-02-23 | International Business Machines Corporation | User programmable interrupt mask with timeout |
JP3570188B2 (ja) * | 1997-12-25 | 2004-09-29 | 富士通株式会社 | 可変長符号処理機構を有するデータ処理装置 |
-
1999
- 1999-10-06 DE DE19948100A patent/DE19948100A1/de not_active Ceased
-
2000
- 2000-10-04 JP JP2000305390A patent/JP2001166918A/ja not_active Withdrawn
- 2000-10-05 CN CN00128511A patent/CN1293394A/zh active Pending
- 2000-10-06 EP EP00121293A patent/EP1091290B1/de not_active Expired - Lifetime
- 2000-10-06 KR KR1020000058834A patent/KR100630019B1/ko not_active IP Right Cessation
- 2000-10-06 DE DE50013924T patent/DE50013924D1/de not_active Expired - Lifetime
- 2000-10-06 AT AT00121293T patent/ATE350703T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100630019B1 (ko) | 2006-09-27 |
EP1091290A3 (de) | 2003-08-06 |
DE50013924D1 (de) | 2007-02-15 |
EP1091290B1 (de) | 2007-01-03 |
ATE350703T1 (de) | 2007-01-15 |
EP1091290A2 (de) | 2001-04-11 |
DE19948100A1 (de) | 2001-04-12 |
JP2001166918A (ja) | 2001-06-22 |
KR20010067299A (ko) | 2001-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100342325C (zh) | 减少多线程处理器中寄存器文件端口的方法和装置 | |
CN1267819C (zh) | 计算机系统内部处理指令的装置 | |
KR101603751B1 (ko) | 명령어 병렬 처리 컴퓨터를 위한 명령어 압축 장치 및 방법 | |
CN101055644A (zh) | 绘图处理装置及其处理指令、数据和逻辑单元操作的方法 | |
CN1499530A (zh) | 非易失性存储器系统内有效允许失序写处理的方法和装置 | |
JPH0636515B2 (ja) | 通信プロセッサ装置 | |
CN1656445A (zh) | 对宽存储器访问 | |
CN1666174A (zh) | 处理器的地址生成单元 | |
CN1892602A (zh) | 一种二进制翻译中库函数调用的处理方法 | |
CN100451952C (zh) | 多阶层加速器架构的处理器系统及其操作方法 | |
CN1688963A (zh) | 用于动态编程解压缩的装置和方法 | |
CN1304944C (zh) | 预先读取脱序执行指令的方法及处理器 | |
CN1293394A (zh) | 处理器系统 | |
CN1335958A (zh) | 变指令长度处理 | |
CN1286008C (zh) | 一种实现单片机软件版本更新的方法和装置 | |
CN1324458C (zh) | 用于解码指令序列的方法和设备 | |
CN1602469A (zh) | 用在多处理器数据处理系统中的数据处理方法和相应的数据处理系统 | |
CN1177137A (zh) | 程序执行方法及利用该方法的装置 | |
CN1860436A (zh) | 用于处理指令循环的方法和系统 | |
CN101042655A (zh) | 韧体执行装置与执行方法、韧体配置器与配置方法 | |
CN1556472A (zh) | 一种嵌入式系统中可执行文件的压缩及其加载方法 | |
CN1145099C (zh) | 用于存储混洗指令的方法与装置 | |
CN1398369A (zh) | 数字信号处理设备 | |
CN1555005A (zh) | 动态循环流水线的交叠式命令提交方法 | |
CN109918339B (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |