CN1485741A - 信息处理装置以及电子设备 - Google Patents

信息处理装置以及电子设备 Download PDF

Info

Publication number
CN1485741A
CN1485741A CNA031477321A CN03147732A CN1485741A CN 1485741 A CN1485741 A CN 1485741A CN A031477321 A CNA031477321 A CN A031477321A CN 03147732 A CN03147732 A CN 03147732A CN 1485741 A CN1485741 A CN 1485741A
Authority
CN
China
Prior art keywords
address
instruction
shift
value
signal conditioning
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
CNA031477321A
Other languages
English (en)
Other versions
CN1485741B (zh
Inventor
工藤真
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN1485741A publication Critical patent/CN1485741A/zh
Application granted granted Critical
Publication of CN1485741B publication Critical patent/CN1485741B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

本发明提供了一种进行流水线控制的信息处理装置,在采用流水线体系结构的信息处理装置中,不会导致电路规模增大,并可减少转移发生造成的耗时。该装置包括:指令队列(30),其可以读取多个指令码;读取地址运算电路(40),其对读取地址进行运算;读取电路(20),其根据该读取地址,把指令码读取到指令队列;以及转移信息设定电路(62),其对转移设定指令进行译码,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址存储到转向地址保持寄存器,该读取地址运算电路(40),其判断前一次读取地址或者预读取地址和转移发生地址保持寄存器(42)中存储的值是否相同,根据判断结果,决定下面的读取地址。

Description

信息处理装置以及电子设备
技术领域
本发明涉及一种信息处理装置以及电子设备。
背景技术
在流水线的体系结构中,当转移发生指令和循环指令时,必须重新从读取开始执行转向指令。所以,例如,在“读取”“译码”“执行”“写入”的流水线体系结构中,每当转移发生(也包括基于循环的转移)时,都会损耗3个时钟脉冲。
为了防止这样的损耗,要在微型计算机上设置转移预测电路。但是,为实现转移预测电路,要需要几万个门,从而导致电路规模增大以及成本提高的问题出现。
发明内容
(1)本发明的一个实施例是一种进行流水线控制的信息处理装置,其特征在于包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行运算,用于将指令码读取到该指令队列;
读取电路,其根据该读取地址,将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转向发生地址时,为了向转向地址转移,其对转移设定指令进行译码,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址存储到转向地址保持寄存器,
该读取地址运算电路,
其将前一次读取地址或者预读取地址的某一个和转移发生地址保持寄存器中存储的值进行比较,根据比较结果,决定是否将转向地址保持寄存器中存储的值作为下次的读取地址输出。
(2)另一个实施例是一种进行流水线控制的信息处理装置,其特征在于包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行运算,用于将指令码读取到该指令队列;
读取电路,其根据该读取地址将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转移发生地址,为了向转移地址转移,其对转移设定指令进行译码,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址寄存储到转移地址保持寄存器,
该读取地址运算电路,
其将保持在读取用的程序计数器的值增量指令长度后得到的本次预读取的预读取地址和存储到转移发生地址保持寄存器的值进行比较,一致时,将存储在转向地址保持寄存器的值作为下次的读取地址来输出,不一致时,将该预读取地址作为下次的读取地址来输出。
(3)其他实施例是一种电子设备,其特征在于包括:
上述任意所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息输出信息处理装置处理结果的装置。
附图说明
图1A和图1B是对现有的流水控制的微型计算机(广义上指信息处理装置)转移发生时的情况进行说明的示意图。
图2是对本实施例的微型计算机(广义上指信息处理装置)的构成进行说明的功能模块图。
图3A、图3B和图3C是对本实施例的转移设定指令的一个例子进行说明的示意图。
图4是对读取地址运算电路的构成的一个例子进行说明的示意图。
图5A、图5B和图5C是就本实施例的循环指令的一个例子进行说明的示意图。
图6是就与本实施例的循环指令相对应的读取地址运算电路的构成的一个例子进行说明的示意图。
图7A、图7B和图7C是对本实施例的其他的循环指令进行说明的示意图。其他的循环指令是指,转向地址作为循环指令的下一个指令的类型循环指令。
图8A、图8B和图9C是含有微型计算机的电子设备的一个实例框图。
图9A、图9B和图9C是各种电子设备的实例外观图。
具体实施方式
以下,就本实施例进行说明。
另外,以下说明的本实施例,并不是对权利要求书中描述的本发明的内容的限定。而且,本实施例中所描述的全部构件,不一定是本发明所必须的构成要件。
(1)本实施例是一种进行流水控制的信息处理装置,其特征在于包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行运算,用于将指令码读取到该指令队列;
读取电路,其根据该读取地址,将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转移发生地址时,其对转移设定指令进行译码,用于向转向地址转移,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址存储到转向地址保持寄存器,
该读取地址运算电路,
将该读取地址或者预读取地址中的任一个,和转移发生地址保持寄存器中存储的值进行比较后,根据比较结果,决定是否将转移发生地址保持寄存器中存储的值,作为下次的读取地址输出。
转移设定指令,例如,其操作数显示或隐含转移发生地址特定信息、转向地址特定信息。
转移发生地址特定信息,既可以将转移发生的地方作为特定值,又可以是例如转移发生的指令地址。另外,还可以是从转移设定指令到转移发生地址的相对地址,也可以是转移设定指令和转移发生地址之间的指令数(转移发生地址是从转移设定指令起的第几个指令?)。另外,又可以是存储上述任一个的通用寄存器的值。
同样,转向地址特定信息,既可以把转向作为特定值,又可以是例如发生转向的指令地址。另外,还可以是从转移设定指令到转向发生地址的相对地址,也可以是转移设定指令和转向发生地址间的指令数(转向是从转移设定指令起的第几个指令转向?)。另外又可以是存储上述任一个的通用寄存器的值。
前一次读取地址,例如,是读取用的程序计数器中保持的前一次读取地址,预读取地址是根据前一次读取地址,计算出的本次读取地址。将其中的某一个值和转移发生地址保持寄存器中存储的值进行比较,一致时,将转向地址保持寄存器中存储的值,作为下次的读取地址输出,不一致时,也可以对读取用的程序计数器的值增量1个指令的长度,并将该增量过的值作为下次的读取地址输出。
这里,将读取用的程序计数器中保持的前一次的读取地址或者根据前一次的读取地址计算出的本次读取地址的某一个值,和转移发生地址保持寄存器中存储的值进行比较,在值一致时之前,由转移设定指令指定的转移发生地址,同在转移发生地址保持寄存器中设定的那样,当指定转移发生地址时,在流水线控制中,当转移发生时,不会发生损耗,就可读取转向指令。
根据本实施例,只需增加读取地址运算电路以及转移信息设定电路,就可实现指令系统中包含转移设定指令的体系结构,在采用流水线体系结构的信息处理装置中,不会导致电路规模增大,从而可提供一种可减少因转移发生造成的耗时、价格性能比良好的信息处理装置。
(2)本实施例是一种进行流水线控制的信息处理装置,其特征在于,包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行计算,用于将指令码读取到该指令队列;
读取电路,其根据该读取地址,将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转移发生地址时,其对转移设定指令进行译码,用于向转向地址转移,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址存储到转向地址保持寄存器,
该读取地址运算电路包括这样的电路:
其用指令长度对读取用的程序计数器中保持的值进行增量后,把所得到的本次预读取的预读取地址,和转移发生地址保持寄存器中存储的值进行比较,一致时,将转向地址保持寄存器中存储的值,作为下次的读取地址输出,不一致时,将该预读取地址作为下次的读取地址输出。
转移设定指令,例如,在其操作数上,显示或隐含转移发生地址特定信息、转向地址特定信息。
转移发生地址特定信息,可以把转移发生的地方的值作为特定值,也可以是例如转移发生的指令地址。另外,还可以是从转移设定指令到转移发生地址的相对地址,也可以是转移设定指令和转移发生地址之间的指令数(转移发生地址是从转移设定指令的第几个指令开始?)。另外又可以是存储上述任一个的通用寄存器的值。
同样,转向地址特定信息,既可以把转向作为特定值,又可以是例如转向的指令地址。另外,还可以是从转移设定指令到转向地址的相对地址,也可以是转移设定指令和转移地址之间的指令数(转向是从转移设定指令的第几个指令转向?)。另外,又可以是存储上述任一个的通用寄存器的值。
这里,用指令长度对读取用的程序计数器中保持的值进行增量后,所获得的本次预读取的预读取地址和转移发生地址保持寄存器中存储的值进行比较,在值一致时之前,用转移设定指令指定的转移发生地址,同在转移发生地址保持寄存器中设定的那样,当指定转移发生地址时,在流水线控制中,在转移发生时,可以不产生损耗,取出转向指令。
根据本实施例,只要增加读取地址运算电路以及转移信息设定电路,就可实现指令系统中包含转移设定指令的体系结构,在流水线体系结构的信息处理装置中,不会导致电路规模增大,且可以减少因转移发生而造成的耗时,可提供一种价格性能比良好的信息处理装置。
(3)本实施例的信息处理装置,其特征在于,包括:
该转移设定指令,包括可指定循环次数的循环指令,
该转移信息设定电路,
为了当到达转移发生地址时,就向转向地址转移,而对循环指令进行译码,取出由循环指令指定的循环次数,直到达到循环次数。
该读取地址运算电路,
将转向地址保持寄存器中存储的值,作为下次的读取地址输出,直到该转向地址转移的次数达到循环次数。
例如,也可以设置成:把根据循环指令设定的循环次数设定为循环计数器,每次在向转向地址转移时,都对循环计数器进行减量。而且还可以设置成:当循环计数器的值为0时,结束向转向地址转移。
根据本实施例,循环指令执行以后,作为读取地址,可以输出转向地址,因此,在流水线控制中,当发生循环处理转移时,不会产生损耗,就可将转向指令取出。
而且,因为不使用该循环指令,所以,在实现循环处理时所需要的循环计数器减量用的SUB指令也就不需要,因此,可以提高其执行速度。
根据本实施例,只要增加读取地址运算电路以及转移信息设定电路,就可实现指令系统中包含循环指令的体系结构,在采用流水线结构的信息处理装置中,不会导致电路规模增大,可减少发生循环造成的耗时,可以提供一种价格性能比良好的信息处理装置。
(4)本实施例的信息处理装置,其特征在于包括:
该特定的转移设定指令包括可以指定循环次数的循环指令;
该转移信息设定电路,
为了当到达转移发生地址,就向转向地址转移,而对循环指令进行译码,将由循环指令指定的循环次数,设定为循环计数器,直至达到循环次数;
该读取地址运算电路,
每次发生向转向地址转移时,都对该循环计数器中设定的值进行减量,当循环计数器的值成为0时,就对转移发生地址增量指令长度,并将该已增量的值,作为下次的读取地址输出。
根据本实施例,循环指令执行以后,作为读取地址,可以输出转向地址,因此,在流水线控制中,当发生因循环处理产生的转移时,不会产生损耗,可以取出转向指令。
而且,因为不使用该循环指令,所以在实现循环处理时所需要的循环计数器减量用的SUB指令也就不需要了,因此,可以提高其执行速度。
根据本实施例,只要增加读取地址运算电路以及转移信息设定电路,就可实现指令系统中包含循环指令的体系结构,在采用流水线结构的信息处理装置中,不会导致电路规模增大,可减少因发生循环而产生的耗时,可以提供一种价格性能比良好的信息处理装置。
(5)本实施例信息处理装置,其特征在于包括:
该循环指令,其构成是:转向地址对于循环指令是相对固定的,转向地址信息不需要在操作数中指定;
该转移信息设定电路,
其将对于循环指令相对固定的值进行运算后,存储到转向地址保持寄存器。
所说的对于循环指令是相对固定的,是指距离循环指令的相对的距离是唯一的。
例如,相对于循环指令的下一个指令可以固定转向地址。
根据本实施例,因为可以减少循环指令的操作数的指定,所以,用短的指令码的长度达到了必须描述循环指令时的效果。
(6)本实施例是一种电子设备,其特征包括:上述任一所述的信息处理装置;
接收输入信息的装置;以及
用于输出的装置,其根据输入信息输出该信息处理装置处理的结果。
根据本实施例,由于内装了低成本、可以高速执行的信息处理装置,所以,可提供一种廉价而具有高性能的电子设备。
以下,参照附图就本发明的优选实施例作详细说明。
1.信息处理装置
(1)信息处理装置的构成
图1A和图1B是对现有的流水线控制的微型计算机(广义上指信息处理装置)转移发生时的情况进行说明的示意图。
图1A表示的是转移发生的指令系统的一个例子。
图1B表示的是在进行Fetch(F)、Decode(D)、Execute(E)、Access(A)、Write(W)5个步骤的流水线控制的微型计算机中,处理(I)~(III)指令的时间表。
一般情况下,在流水线控制Fetch(F)阶段的读取地址,是由“本次的读取地址=前一次读取地址+前一次读取的指令的大小”设定的。所以,当转移指令发生时,读取队列中转向指令没有被读取。
在这里,图1B的(II)bme为转移指令,(III)为转向指令。这样,执行转移指令之后,由于必须再次读取转向指令,所以,如210所示,产生了2个时钟脉冲的延迟。
另外,例如,当使用转移指令进行循环处理时,由于需要计数用的(I)SUB指令,所以还需要1个时钟脉冲。
图2是对本实施例的微型计算机(广义上指信息处理装置)的构成进行说明的功能模块图。
本实施例的微型计算机100,包括CPU(广义上是处理电路)10和BCU(总线控制单元)100。并且,微型计算机100除此之外还可包括ROM(Read Only Memory)、RAM(RandomAccessMemory)、MMU(Memory Management Unit)、DMAC(Direct AccessMemory Controller)、LCD(Liquid Crystal Display)驱动器或者SIO(Serial Input Output)等各种外围电路。
CPU 10按照ROM和RAM中记忆的程序,通过流水线控制,进行指令读取、指令译码、运算处理、写入寄存器等。CPU 10可处理32位宽的数据,处理16位的指令码。
BCU(总线控制单元)100对没有图示的32位指令数据总线、用于指令数据存取的指令地址总线、32位数据总线、用于数据存取的数据地址总线、和用于控制信号的控制总线等的各种总线进行总线控制处理。
而且,该CPU 10通过该各种总线与外部进行信号通信。
另外,CPU 10是由读取电路20、读取地址运算电路40、译码电路60、执行电路70、寄存器文件80(通用寄存器82、特殊寄存器84)、指令地址生成器90等构成。
读取电路20,将多个指令的指令码预读取到指令队列(例如预读取队列)30-0、30-1……。
读取地址运算电路40是用于将指令码读取到指令队列的运算读取地址的电路。包括转移发生地址保持寄存器42和转向地址保持寄存器44,将前一次读取地址或者预读取地址当中的某一个和存储到转移发生地址保持寄存器的值进行比较,根据比较结果,将转向地址保持寄存器中存储的值,作为下次的读取地址输出。
另外,对保持在读取用的程序计数器的值增量指令长度,把所获得的本次预读取的预读取地址和存储到转移发生地址保持寄存器的值进行比较,一致时,将存储到转向地址保持寄存器的值,作为下次的读取地址输出,不一致时,也可以对读取用的程序计数器增量1个指令,并将该值作为下次的读取地址输出。
另外,根据该比较结果,将存储在转向地址保持寄存器42的值,作为下次的读取地址输出,直到向该转向地址转移的次数达到循环次数。
例如,也可以设置循环计数器电路46,其将循环指令设定的循环次数设定为没有图示的循环计数器,每次向转向地址转移时,就对循环计数器作一次减量。
译码电路60,其通过信号线连接到指令队列,输入被读取到指令队列的指令码,进行译码处理,包括转移信息设定电路62。
另外,该转移信息设定电路62通过信号线连接到转移发生地址保持寄存器42和转向地址保持寄存器44,对到达转移发生地址就向转向地址转移的转移设定指令,进行译码,将转移发生地址存储到转移发生地址保持寄存器,将转向地址存到转向地址保持寄存器。
另外,该转移信息设定电路62,也可以是,通过信号线连接到设在循环计数器电路46的没有图示的循环次数设定寄存器,为了当到达转移发生地址时向转向地址转移,对循环指令进行译码,取出循环指令设定的循环次数,直到达到循环次数,并在循环次数设定寄存器中设定。
执行电路70根据该译码电路60译码的指令的操作内容,执行该指令。执行电路70包括:进行数据运算的数据运算电路72和进行地址运算的地址运算电路74,根据需要,访问通用寄存器84和存储器(RAM等)后,执行已被译码电路60译码的指令功能。
寄存器文件90,具有通用寄存器R0~R15共16个通用寄存器、程序计数器(PC)、处理器状态寄存器(PSR)、堆栈指针(SP)、算术低级寄存器(ALR)、算术高级寄存器(AHR)等CPU使用的寄存器。
(2)转移设定指令
图3A、图3B和图3C是对本实施例的转移设定指令的一个例子进行说明的示意图。
图3A表示的是转移设定指令的指令码的一个例子,图3B表示的是转移设定指令的指令码的位字段图。转移设定指令的指令码310,具有从位15到位8共8位操作码指定区域312、从位7到位4共4位转移发生地址指定区域314、和从位3到位0共4位转向地址指定区域316。
操作码指定区域312中存储的操作码为转移设定指令。
在转移发生地址指定区域314以及转向地址指定区域316中,也可以指定从转移设定指令跳过几个指令的值。例如,从转移设定指令跳过几个指令的值由当即值“imm4”指定时,转向地址,由“PC(程序计数器)+指令长度+imm4×指令长度”设定。另外,还可以作为来自转移设定指令的相对地址来指定,亦可以由绝对地址来指定。另外,又可以由存储这些个值的通用寄存器的值来指定。
图3C是包括转移设定指令的程序表。320当设置了转移设定指令“jppr x,y”时,在自该指令开始的x指令后(参照330)的P1(转移发生地址)转移发生,自转移设定指令开始的y指令后(参照340)的P2(转向地址)转移。
图4是对读取地址运算电路的构成的一个例子进行说明的示意图。
读取地址运算电路40包括:读取程序计数器(PPC)41;转向发生地址寄存器42和转向地址寄存器44等。读取程序计数器(FPC)41是存储读取的指令地址的程序计数器,每次读取时,都会被下一个读取地址更新。
转移发生地址寄存器42保持有转移设定指令指定的转移发生地址。
转向地址寄存器44保持有转移设定指令指定的转向地址。
现在保持在读取程序计数器(FPC)41的,根据读取地址向读取队列读取指令码,则地址运算器43,根据该读取地址53以及指令码长度54,将读取地址计数器的增量值信号55,向多路转换器47以及比较器45输出。
另外,比较器45输入读取地址计数器的增量值55以及转移发生地址寄存器42中存储的转移发生地址,当这些内容一致时,将向多路转换器47输出的转移发生信号46置于ON(例如设为“H”电位)。
转向地址寄存器44向多路转换器47输出转向地址信号56。
另外,ALU 48对由于例如通常的转移指令(本实施例的转移设定指令除外)等发生的转向地址进行运算,将通常转移地址信号57,向多路转换器47输出。通常转移发生信号49是一种通知信号,通知通常的转移指令(本实施例转移设定指令除外)等发生的事情。
多路转换器47,在转移发生信号46为ON时(例如为“H”电平),选择转向地址信号56,作为下次的读取地址信号52,向读取程序计数器(FPC)41输出。另外,通常转移发生信号49为ON的情况(例如是“H”电平),选择通常转移地址信号57,作为下次的读取地址信号52,向读取程序计数器(FPC)41输出。另外转移发生信号46或通常转移发生信号49均为OFF时(例如是“L”电位),选择读取地址计数器的增量值信号55,作为下次的读取地址信号52,向读取程序计数器(FPC)41输出。
(3)循环指令
图5A、图5B和图5C是对本实施例的循环指令的一个例子进行说明的示意图。
图5A表示的是循环指令的指令码的一个例子,图5B表示的是循环指令的指令码的位字段图。循环指令的指令码410具有从位15到位9共7位操作码指定区域412、从位8到位6共3位转移发生地址指定区域414、从位5到位3共3位转向地址指定区域416,和从位2到位0共3位循环次数指定区域418。
操作码指定区域412中存储的操作码表示的是循环指令。
对于转移发生地址指定区域414以及转向地址指定区域416,可以指定从转移设定指令跳过几个指令的值。例如,从转移设定指令跳过几个指令的值是用即值“imm3”指定时,转向地址用“PC(程序计数器)+指令长度+imm3×指令长度”设定。另外,也可以作为来自转移设定指令的相对地址指定,还可以用绝对地址指定。另外,又可以由存储这些个值的通用寄存器的值来指定。
另外,循环次数指定区域418中,循环次数可以由即值指定,同时还可以指定已设定循环次数的通用寄存器的值。
图5C是包含循环指令的程序表。420如果置入循环指令“loopx,y,z”,则在自该指令的x指令后(参照430)的P1(转移发生地址)转移发生,在自循环指令的y指令后(参照440)的P2(转向地址)进行转移处理,反复仅循环次数z次。而且在仅循环z次转移后,执行转移发生地址的下一个指令470。
图6是就对应循环指令的读取地址运算电路的构成的一个例子进行说明的示意图。
图6的读取地址运算电路40’包括图4的读取地址运算电路40,此外还包括循环计数器电路60。
循环计数器电路60包括:循环计数器62、运算器64和比较器66。循环计数器62保持有最初用的循环指令指定的循环次数。
运算器64输入循环计数器中保持的值以及从比较器45输出的转移发生信号46,当转移发生信号46是表示转移发生的时(ON时是指例如“H”电平),对循环计数器减量(将循环计数器的值只减“1”),将减量值信号65向循环计数器62以及比较器66输出。接受该信号,循环计数器62的值被减量。
另外,比较器66,在减量值信号65为“0”时,仅循环指定的次数,就转移发生,将循环结束信号68置成“ON”,向多路转换器47输出。循环结束信号68,是通知循环指令指定的循环次数结束时的信号,例如“H”电平信号被输出时,循环结束信号68也可以为“ON”。
多路转换器47,是在循环结束信号68不是“ON”,进行图4说明的动作,当循环结束信号68为“O”,转移发生信号46即使为ON,也不选择转向地址信号56,而选择读取地址计数器的增量值信号55,作为下一个读取地址信号52,向读取程序计数器(FPC)41输出。
图7A、图7B和图7C是对本实施例的其他循环指令进行说明的示意图。其他循环指令是指,转向地址作为循环指令的下一个指令的类型循环指令。
图7A表示的是其他的循环指令(循环指令2)的指令码的一个例子,图7B表示的是循环指令2的指令码的位字段图。循环指令2的指令码510具有从位1 5到位8共8位操作码指定区域512、从位7到位4共4位转移发生地址指定区域514,和从位3到位0共4位循环次数指定区域518。循环指令2,由于转向固定,不必用操作数指定转向地址。
操作码指定区域512中存储的操作码表示的是转向地址作为循环指令的下一个指令的类型循环指令。
对于转移发生地址指定区域514,可以指定从转移设定指令跳过几个指令的值。例如,从转移设定指令跳过几个指令的值,若用即值“imm4”指定时,转向地址由“PC(程序计数器)+指令长度+imm×指令长度”设定。另外,还可以指定为来自转移设定指令的相对地址,也可以用绝对地址来指定。另外又可以用这些个值存储的通用寄存器的值来指定。
另外,对于循环次数指定区域518,循环次数可以用即值指定,也可以指定设定循环次数的通用寄存器的值。
图7C是包括循环指令的程序表。当在520置入循环指令2“loopx,z”时,在自该指令的x指令后面(参照530)的P1(转移发生地址)转移发生,向循环指令2的下一个指令的开头P2(转向地址)进行转移处理,反复仅循环z次。而且在仅循环z次转移之后,执行转移发生地址的下一个指令570。
这样,当转向是固定的情况时,在图6中,可以对转向地址寄存器44中固定的转向地址进行设定。
并且,这里是以转向对循环指令的下一个指令是固定的情况为例进行说明的,但并不局限于此。也可以在其他位置固定的情况下转向。
2.电子设备
接下来,就包括上述信息处理电路(例如微型计算机)的电子设备做出说明。
例如图8A中,表示的是电子设备之一的汽车导航系统的内部方框图,图9A表示的是其外观图。汽车导航系统的操作通过遥控器710进行,根据来自GPS和陀螺仪的信息,位置检测部分720检测出车的位置。地图等的信息存储在CDROM 730(信息存储介质)。存储器740是图像处理和声音处理时的作业区域的存储器,生成的图像,通过图像输出部分750显示给驾驶人员。另外,生成的汽车导航用的导向声音通过声音输出部分735输出给驾驶人员。微型计算机700,输入来自遥控器710、位置检测部分720、CDROM 730等的信息输入源的信息,进行各种处理,并将处理后信息通过图像输出部分750、声音输出部分735等输出装置输出。
图8B表示的是电子设备之一的游戏机的内部方框图,图9B是其外观图。该游戏机根据游戏控制器760操作人员的操作信息、CDROM 770的游戏程序,IC卡780操作人员的的信息等,将存储器790作为作业区域,生成游戏图像和游戏声音,通过图像输出部分810、声音输出部分800输出。
图8C是表示电子设备之一的打印机内部方框图,图9C是其外观图。该打印机,根据来自操作面板820的操作信息、代码存储器830以及数字图形聚点式存储器840的字符信息,将位变换存储器850作为作业区域,生成印刷图像,并通过印刷输出部分860输出。另外,打印机的状态和模式,使用显示面板870传达给用户。
此外,作为可配置在微型计算机上的电子设备,除了上文提到的以外,例如,还可以有:便携式电话(蜂窝电话),PHS、寻呼机、便携式信息终端、数码相机、硬盘装置、光磁盘(CD、DVD)装置、光磁磁盘(MO)装置、音响设备、电子记事本、电子台式计算机、POS终端、配有触摸屏的装置、投影仪、文字处理器、个人电脑、电视机、反光镜型,或者监控直视式带式录音机等各种产品。
并且,本发明并不仅限于本实施例,在本发明的主题范围之内可以采取各种实施例。
另外,本发明的电子设备的构成,也并不仅限于图8A~图8C、图9A~图9C说明的内容,可以采用各种变形方式。
尽管本发明已经参照附图和优选实施例进行了说明,但是,对于本领域的技术人员来说,本发明可以有各种更改和变化。本发明的各种更改、变化和等同物由权利要求书的内容涵盖。

Claims (18)

1.一种进行流水线控制的信息处理装置,其特征在于包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行运算,用于将指令码读取到所述指令队列;
读取电路,其根据该读取地址,将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转向发生地址时,为了向转向地址转移,其对转移设定指令进行译码,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址存储到转向地址保持寄存器,
所述读取地址运算电路,
其将前一次读取地址或者预读取地址的某一个和转移发生地址保持寄存器中存储的值进行比较,根据比较结果,决定是否将转向地址保持寄存器中存储的值作为下次的读取地址输出。
2.一种进行流水线控制的信息处理装置,其特征在于包括:
指令队列,其可读取多个指令码;
读取地址运算电路,其对读取地址进行运算,用于将指令码读取到所述指令队列;
读取电路,其根据所述读取地址将读出的指令码读取到指令队列;以及
转移信息设定电路,当到达转移发生地址,为了向转移地址转移,其对转移设定指令进行译码,并将转移发生地址存储到转移发生地址保持寄存器,将转向地址寄存储到转移地址保持寄存器,
所述读取地址运算电路,
其将保持在读取用的程序计数器的值增量指令长度后得到的本次预读取的预读取地址和存储到转移发生地址保持寄存器的值进行比较,一致时,将存储在转向地址保持寄存器的值作为下次的读取地址来输出,不一致时,将所述预读取地址作为下次的读取地址来输出。
3.根据权利要求1中所述的信息处理装置,其特征在于包括:
所述转移设定指令,其包括可指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址时,为了向转向地址转移,其对循环指令进行译码,取出由循环指令指定的循环次数,直到达到循环次数;
所述读取地址运算电路,
其将存储在转向地址保持寄存器的值作为下次的读取地址输出,直到向所述转向地址转移的次数达到循环次数。
4.根据权利要求2所述的信息处理装置,其特征在于包括:
所述转移设定指令,其包括可指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址时,为了向转向地址转移,其对循环指令进行译码,取出由循环指令指定的循环次数,直至达到循环次数;
所述读取地址运算电路,
其将存储在转向地址保持寄存器的值作为下次的读取地址来输出,直到向所述转向地址转移的次数达到循环次数。
5.根据权利要求1所述的信息处理装置,其特征在于包括:
所述转移设定指令,其包括可指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址时,为了向转向地址转移,其对循环指令进行译码,并将由循环指令指定的循环次数设定为循环计数器,直到达到循环次数;
所述读取地址运算电路,
每当发生向转向地址转移时,其就对所述循环计数器中设定的值进行减量,当循环计数器的值变成0时,对转移发生地址增量指令长度,并将已增量的值作为下次的读取地址输出。
6.根据权利要求2所述的信息处理装置,其特征在于包括:
所述特定的转移设定指令,其包括可以指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址时,为了向转向地址转移,其对循环指令进行译码,并将由循环指令指定的循环次数设定为循环计数器,直到达到循环次数;
所述读取地址运算电路,
每当发生向转向地址转移时,其就对所述循环计数器中设定的值进行减量,当循环计数器值变成0时,对转移发生地址增量指令长度,并将已增量的值作为下次的读取地址输出。
7.根据权利要求3所述的信息处理装置,其特征在于包括:
所述特定的转移设定指令,其包括可以指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址,为了向转向地址转移,其对循环指令进行译码,并将由循环指令指定的循环次数设定为循环计数器,直到达到循环次数;
所述读取地址运算电路,
每当发生向转向地址转移时,其就对所述循环计数器中设定的值进行减量,当循环计数器值变成0时,对转移发生地址增量指令长度,将已增量的值作为下次的读取地址输出。
8.根据权利要求4所述的信息处理装置,其特征在于包括:
所述特定的转移设定指令,其包括可以指定循环次数的循环指令;
所述转移信息设定电路,
当到达转移发生地址时,为了向转向地址转移,其对循环指令进行译码,并将由循环指令指定的循环次数设定为循环计数器,直到达到循环次数;
所述读取地址运算电路,
每当发生向转向地址转移时,其就对所述循环计数器中设定的值进行减量,当循环计数器的值变成0时,对转移发生地址增量指令长度,将已增量的值作为下次的读取地址输出。
9.根据权利要求3所述的信息处理装置,其特征在于包括:
所述循环指令的构成是,转向地址对于循环指令是相对固定的,转向地址信息不需要在操作数中指定;
所述转移信息设定电路,
其对相对于循环指令相对固定的值进行运算后,存储到转向地址保持寄存器。
10.根据权利要求4所述的信息处理装置,其特征在于包括:
所述循环指令的构成是,转向地址对于循环指令是相对固定的,转向地址信息不需要在操作数中指定,
所述转移信息设定电路,
其对相对于循环相对固定的值进行运算后,存储到转向地址保持寄存器。
11.根据权利要求5中所述的信息处理装置,其特征在于包括:
所述循环指令的构成是,转向地址对于循环指令是相对固定的,转向地址信息不需要在操作数中指定,
所述转移信息设定电路,
其对相对于循环指令相对固定的值进行运算后,存储到转向地址保持寄存器。
12.根据权利要求6中所述的信息处理装置,其特征在于包括:
所述循环指令的构成是,转向地址对于循环指令是相对固定的,转向地址信息不需要在操作数中指定;
所述转移信息设定电路,
其对相对于循环指令相对固定的值进行运算后,存储到转向地址保持寄存器。
13.一种电子设备,其特征在于包括:
权利要求1所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息,输出所述信息处理装置处理结果的装置。
14.一种电子设备,其特征在于包括:
权利要求2所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息输出所述信息处理装置处理结果的装置。
15.一种电子设备,其特征在于包括:
权利要求3所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息输出所述信息处理装置处理结果的装置。
16.一种电子设备,其特征在于包括:
权利要求4所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息输出所述信息处理装置处理结果的装置。
17.一种电子设备,其特征在于包括:
权利要求5所述的信息处理装置;
接收输入信息的装置;以及
根据输入信息输出所述信息处理装置处理结果的装置。
18.一种电子设备,其特征在于包括:
权利要求6所述的信息处理装置;
接收输入信息装置;以及
根据输入信息输出所述信息处理装置处理结果的装置。
CN031477321A 2002-06-25 2003-06-23 信息处理装置以及电子设备 Expired - Fee Related CN1485741B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2002184379A JP3698123B2 (ja) 2002-06-25 2002-06-25 情報処理装置及び電子機器
JP2002-184379 2002-06-25
JP2002184379 2002-06-25

Publications (2)

Publication Number Publication Date
CN1485741A true CN1485741A (zh) 2004-03-31
CN1485741B CN1485741B (zh) 2010-10-20

Family

ID=31180314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN031477321A Expired - Fee Related CN1485741B (zh) 2002-06-25 2003-06-23 信息处理装置以及电子设备

Country Status (3)

Country Link
US (2) US7620803B2 (zh)
JP (1) JP3698123B2 (zh)
CN (1) CN1485741B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102607409A (zh) * 2011-01-20 2012-07-25 鸿富锦精密工业(深圳)有限公司 影像量测点自动设置及量测程序自动生成系统及方法
CN104115113A (zh) * 2011-12-14 2014-10-22 英特尔公司 用于循环剩余掩码指令的系统、装置和方法
CN105653199A (zh) * 2014-11-14 2016-06-08 群联电子股份有限公司 数据读取方法、存储器存储装置及存储器控制电路单元
CN110780925A (zh) * 2019-09-02 2020-02-11 芯创智(北京)微电子有限公司 一种指令流水线的预译码系统及方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7725694B2 (en) * 2004-12-21 2010-05-25 Denso Corporation Processor, microcomputer and method for controlling program of microcomputer
JP2007041837A (ja) * 2005-08-03 2007-02-15 Nec Electronics Corp 命令プリフェッチ装置及び命令プリフェッチ方法
US7773618B2 (en) * 2006-11-08 2010-08-10 Sicortex, Inc. System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
JP5209390B2 (ja) 2008-07-02 2013-06-12 ルネサスエレクトロニクス株式会社 情報処理装置及び命令フェッチ制御方法
US8275978B1 (en) * 2008-07-29 2012-09-25 Marvell International Ltd. Execution of conditional branch instruction specifying branch point operand to be stored in jump stack with branch destination for jumping to upon matching program counter value
WO2010055562A1 (ja) * 2008-11-13 2010-05-20 富士通マイクロエレクトロニクス株式会社 マイクロコンピュータ
KR101756820B1 (ko) * 2010-10-21 2017-07-12 삼성전자주식회사 중첩 루프를 처리하기 위한 재구성 가능 프로세서 및 방법
WO2013069551A1 (ja) 2011-11-09 2013-05-16 日本電気株式会社 デジタル信号プロセッサ、プログラム制御方法、および制御プログラム
WO2013089709A1 (en) 2011-12-14 2013-06-20 Intel Corporation System, apparatus and method for generating a loop alignment count or a loop alignment mask
US9459871B2 (en) * 2012-12-31 2016-10-04 Intel Corporation System of improved loop detection and execution
US9372773B2 (en) * 2013-06-12 2016-06-21 Advanced Micro Devices, Inc. User-level hardware branch records
JP6183251B2 (ja) * 2014-03-14 2017-08-23 株式会社デンソー 電子制御装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5768575A (en) * 1989-02-24 1998-06-16 Advanced Micro Devices, Inc. Semi-Autonomous RISC pipelines for overlapped execution of RISC-like instructions within the multiple superscalar execution units of a processor having distributed pipeline control for sepculative and out-of-order execution of complex instructions
JPH0333933A (ja) 1989-06-29 1991-02-14 Nec Corp マイクロコンピュータ
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5655096A (en) * 1990-10-12 1997-08-05 Branigin; Michael H. Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution
JPH05313890A (ja) 1992-05-08 1993-11-26 Nec Corp アドレス演算回路
US5515521A (en) * 1994-02-08 1996-05-07 Meridian Semiconductor, Inc. Circuit and method for reducing delays associated with contention interference between code fetches and operand accesses of a microprocessor
US6112019A (en) * 1995-06-12 2000-08-29 Georgia Tech Research Corp. Distributed instruction queue
US6157988A (en) * 1997-08-01 2000-12-05 Micron Technology, Inc. Method and apparatus for high performance branching in pipelined microsystems
US6332191B1 (en) * 1999-01-19 2001-12-18 Advanced Micro Devices, Inc. System for canceling speculatively fetched instructions following a branch mis-prediction in a microprocessor

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102607409A (zh) * 2011-01-20 2012-07-25 鸿富锦精密工业(深圳)有限公司 影像量测点自动设置及量测程序自动生成系统及方法
CN102607409B (zh) * 2011-01-20 2016-02-03 鸿富锦精密工业(深圳)有限公司 影像量测点自动设置及量测程序自动生成系统及方法
CN104115113A (zh) * 2011-12-14 2014-10-22 英特尔公司 用于循环剩余掩码指令的系统、装置和方法
CN104115113B (zh) * 2011-12-14 2018-06-05 英特尔公司 用于循环剩余掩码指令的系统、装置和方法
CN105653199A (zh) * 2014-11-14 2016-06-08 群联电子股份有限公司 数据读取方法、存储器存储装置及存储器控制电路单元
CN105653199B (zh) * 2014-11-14 2018-12-14 群联电子股份有限公司 数据读取方法、存储器存储装置及存储器控制电路单元
CN110780925A (zh) * 2019-09-02 2020-02-11 芯创智(北京)微电子有限公司 一种指令流水线的预译码系统及方法

Also Published As

Publication number Publication date
US20090235052A1 (en) 2009-09-17
JP3698123B2 (ja) 2005-09-21
US20040039901A1 (en) 2004-02-26
US7620803B2 (en) 2009-11-17
JP2004030137A (ja) 2004-01-29
CN1485741B (zh) 2010-10-20

Similar Documents

Publication Publication Date Title
CN1485741A (zh) 信息处理装置以及电子设备
CN1106609C (zh) 在一个计算机系统中配置多个媒体的方法和设备
CN1088214C (zh) 用多指令集处理数据的器件和方法
US9443095B2 (en) Method in a processor, an apparatus and a computer program product
US7724984B2 (en) Image processing apparatus
CN1551048A (zh) 图像再现装置和图像再现方法
CN1270232C (zh) 信息处理装置以及电子设备
CN1177140A (zh) 执行两种指令长度代码的处理机及其指令码输入装置
CN1522405A (zh) 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法
CN1117315C (zh) 微处理机及多处理机系统
CN1431584A (zh) 延伸微处理器数据模式的装置及方法
CN1758213A (zh) 带有共享内容的异构型并行多线程处理器(hpmt)
CN1764881A (zh) 协助处理密码消息的指令
CN1866215A (zh) 计算机系统及系统软件的安装方法和便携式计算机的软件安装方法
CN1146784C (zh) 用字长短的指令实现多个寄存器的数据传送的信息处理装置
CN1035190A (zh) 基于操作数长度和对位的微码转移
CN1716200A (zh) 积体内电路电路程式化的装置与方法
CN1427336A (zh) 微处理器
CN1959630A (zh) 微处理器
CN101075205A (zh) 集成电路装置、调试工具及系统、微型计算机和电子设备
CN100343799C (zh) 产生流水线微处理器的早期状态标志的装置及方法
US9552313B2 (en) Delivering real time interrupts with an advanced programmable interrupt controller
CN1109978C (zh) 信息处理设备和方法,及调度装置
JP2005258509A (ja) ストレージ装置
CN100343800C (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
CI01 Publication of corrected invention patent application

Correction item: Claims

Correct: Correct

False: Error

Number: 42

Volume: 26

CI02 Correction of invention patent application

Correction item: Claims

Correct: Correct

False: Error

Number: 42

Page: Description

Volume: 26

ERR Gazette correction

Free format text: CORRECT: CLAIMS; FROM: WRONG TO: CORRECT

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101020

Termination date: 20150623

EXPY Termination of patent right or utility model