CN101031884A - 处理器 - Google Patents

处理器 Download PDF

Info

Publication number
CN101031884A
CN101031884A CN 200680000804 CN200680000804A CN101031884A CN 101031884 A CN101031884 A CN 101031884A CN 200680000804 CN200680000804 CN 200680000804 CN 200680000804 A CN200680000804 A CN 200680000804A CN 101031884 A CN101031884 A CN 101031884A
Authority
CN
China
Prior art keywords
thread
configuration information
reconstruct
instruction
integrated circuit
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
CN 200680000804
Other languages
English (en)
Other versions
CN100492296C (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN101031884A publication Critical patent/CN101031884A/zh
Application granted granted Critical
Publication of CN100492296C publication Critical patent/CN100492296C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

本发明涉及的处理器,是循环地按照分配给线程的时间来执行多个线程的处理器,其具备可重构的集成电路;事先存储与多个线程的各个对应的电路构成信息,根据电路构成信息将上述集成电路的一部分进行重构,依次使用根据对应于线程的电路构成信息进行了重构的集成电路,执行该线程。在执行某线程的期间,选择下面执行的线程,对于正在执行的线程在使用的上述集成电路部分之外的部分,为了下面执行的线程而进行重构。

Description

处理器
技术领域
本发明涉及处理器,尤其涉及具有可重构的集成电路的处理器。
发明内容
近年的处理器,例如在使用了数字信号的影像、音频设备中搭载的处理器,需要对应多个处理。
从压缩影像的情况来看,作为其压缩方法的MPEG2、MPEG4、H.263、H.264等多个标准已实现了实用化。
因此,考虑用户的便利性等,要求近年的影像、音频设备实现在一个设备中对应这些多个标准等的多个功能。
为了满足这些要求,可以考虑通过搭载多个进行一个处理的硬件来实现多个处理的方法,或者只搭载一个硬件并用软件执行多个处理的方法。
前者的方法具有能够实现高性能的优点,但存在要实现的功能较多的情况下,电路规模变大的缺点。再者,在追加新功能的情况下,需要追加硬件。
另一方面,后者的方法具有通过软件的追加、变更等能够灵活地进行多个功能的实现、追加等的优点,但存在难以提高性能的缺点。
因此,提出了如下的可重构硬件:在同结构的电路结构的一部分装入适于特定处理的电路,通过动态地变更硬件结构,对于特定的处理,可实现灵活且高性能的处理(参考专利文献1)。
专利文献1:国际公开第2002/095496号小册子
但是,这样的可重构硬件除了安装电路功能的部分以外,还需要布线部分、开关等,必然导致电路规模变大,而且,重构需要时间。
发明内容
因此,本发明的目的在于,提供一种抑制电路规模、灵活且高性能的处理器。
为了实现上述问题,本发明的处理器,循环地按照分配给线程的各时间来执行多个线程,其具备:可重构的集成电路;重构单元,根据电路构成信息,将上述集成电路的一部分进行重构;构成信息存储单元,存储与多个线程的各个对应的电路构成信息;控制单元,依次使用根据对应于线程的电路构成信息进行了重构的集成电路,执行该线程;选择单元,在上述控制单元执行某线程的期间,选择下面执行的线程。
本发明涉及的处理器通过具备上述结构,可以按各个线程来重构电路,所以能够使用适于该线程的电路来执行。
此外,也可以是,上述控制单元还在执行线程的期间,对于正在执行的线程在使用的上述集成电路部分之外的部分,使上述重构单元根据与上述选择单元所选择的线程相对应的电路构成信息进行重构。
从而,在线程的执行中,能够进行用于下一线程的重构,所以不需要重构所需的时间,能够实现灵活且高性能的处理器。
此外,上述处理器还包括运算器;上述控制单元使用上述运算器和上述重构的集成电路,执行该线程。
由此,能够使用通常的运算器和进行了重构的集成电路来执行线程,根据处理来使用通常的运算器,或者使用进行了重构的运算器,或者使用两者,因此,能够抑制电路规模,同时实现灵活且高性能的处理。例如是将进行了重构的集成电路作为特定处理用的运算器使用等。
即,不是为了所有的处理对集成电路进行重构,所以能够抑制可重构电路的规模,减小整个处理器的规模,并且处理所需的电路能够重构,所以能实现灵活且高性能的处理。
此外,本发明涉及的处理器是执行由多个指令构成的程序的处理器,其具备:可重构的集成电路;重构单元,根据电路构成信息,将上述集成电路的一部分进行重构;构成信息存储单元,存储与多个指令的各个相对应的电路构成信息;选择单元,根据上述电路构成信息,选择可同时重构上述集成电路的2个以上的指令;执行单元,使用根据与上述选择单元所选择的2个以上的指令相对应的电路构成信息进行了重构的集成电路,并行执行该2个以上的指令。
本发明的处理器通过具备上述结构,可以按各个指令来重构集成电路,根据重构的电路规模等,能够同时进行多个指令用的重构,因此,在抑制电路规模的同时,能够实现灵活且高性能的处理。为了同时进行重构,不仅考虑指令的顺序,还需要使某一指令所需要的集成电路的电路规模和其它指令所需要的集成电路的电路规模加起来,也不会超过可重构的逻辑电路的电路规模。
附图说明
图1是表示处理器1000的构成例的图。
图2(a)是表示线程信息表1410的构成例及内容例的图。
图2(b)是表示线程的执行例的时序图。
图3(a)是表示线程信息表1420的构成例及内容例的图。
图3(b)是表示线程的执行例的时序图。
图4是表示本处理器的线程控制的处理的流程图。
图5是表示第二实施方式的处理器5000的构成例的图。
图6是表示在第二实施方式中使用的指令码的构成例的图。
图7是表示指令信息表5410的构成例及内容例的图。
图8是使用了第二实施方式涉及的指令组的程序例。
图9是使程序工作的处理器的流水线动作的例子。
图10是表示第二实施方式的处理器的指令执行处理的流程图。
图11是使用了变形例的指令组的程序例。
图12是使变形例的程序工作的处理器的流水线动作的例子。
图13是表示变形例的处理器的指令执行处理的流程图。
图14是表示第二实施方式中使用的指令码的构成变形例的图。
附图标记说明
1000、5000处理器
1100多线程处理器
1110线程调度部
1120固定功能运算器
1200可重构运算器
1300构成信息存储部
1400重构控制部
1410、1420线程信息表
5010指令存储部
5100指令取出部
5110、5150指令码
5111操作码
5112操作数
5200指令解码部
5300运算控制部
5400地址表存储部
5410指令信息表
5413使用区域数
5500重构信息存储部
5600重构可能运算器
5700固定功能运算器
具体实施方式
(第一实施方式)
(概要)
本发明涉及的处理器除了通常的处理器所具备的运算器之外,还具备可重构的硬件,通过分担处理,抑制电路规模,实现高性能的处理。
即使是多个处理,也不是所有处理都不同,而是具有共同的处理和指令、频繁使用的处理和指令,共同的处理和指令由通常的运算装置执行,各处理所特有的处理在由可重构硬件构成的运算装置中执行,所以是抑制作为整个处理器的电路规模、且维持高性能的处理器。
本实施方式的处理器是多线程处理器,作为实现多线程的方法,采取每隔一定时间就顺序执行各任务的循环方式。
各线程中适用各自固有的电路,或者需要固有电路的处理使用由可重构的硬件进行了重构的电路来执行。
即,本处理器不需要具备每个线程所固有的电路,能够抑制整体的电路规模。
但是,重构需要时间,因此重点在于删除该时间。
下面,说明本发明的实施方式的多线程处理器。
(结构)
下面,使用图1说明本发明涉及的处理器1000的结构。
图1是表示处理器1000的结构例的图。
处理器1000包括多线程处理器1100、重构可能运算器1200、构成信息存储部1300及重构控制部1400。
多线程处理器1100是通常的处理器,是可以分时执行多个不同处理的所谓多线程处理器。
多线程处理器1100具有作为通常的运算器的固定功能运算器1120和线程调度部1110,线程调度部1110具有决定下面执行的线程等的线程调度功能。
该线程调度部1110决定下面执行的线程,进行寄存器的保存、恢复等准备之外,还执行本发明特有的处理。
具体而言,是在线程执行中选择下面执行的线程、向重构控制部1400通知该线程等。
该多线程处理器1100根据需要同内部的固定功能运算器1120和外部的重构可能运算器1200的两者进行运算数据的交换,同时执行处理。
此外,重构可能运算器1200包括可实现组合电路或时序逻辑电路的逻辑块和逻辑块之间的布线部分。逻辑块是包含一览表和触发器的电路单元,通过改变一览表的设定值,实现希望的逻辑电路。此外,在布线部分配置有晶体管开关等,可自由地设定布线路径。
本实施方式中,设逻辑块都是相同结构,能够分别变更功能,通过用可重排它们的布线组连接,实现各种功能的电路。
此外,重构可能运算器1200被分割为相同结构的10个区域。这些区域分别独立且能够重构,区域间设有可重排的布线,可以用多个区域实现一个电路。
构成信息存储部1300具有存储构成信息的功能,该构成信息用于将重构可能运算器1200重构为希望电路。具有数量与希望的电路个数相等的构成信息。
该构成信息中包含逻辑块的一览表的设定值、用于设定布线路径的对各晶体管开关的控制信号的信息。
此外,构成信息存储部1300除了存储构成信息,还具有存储后面说明的线程信息表1410的功能。该表是将线程和该线程中使用的构成信息对应起来的表。
重构控制部1400具有如下功能:在线程执行中从线程调度部1100接受下一线程的通知,判断是只用通常的固定功能运算器1120就能执行,还是需要重构可能运算器1200,在将重构可能运算器1200重构的情况下,向重构可能运算器1200和构成信息存储部1300发出指示。
向重构可能运算器1200通知进行重构的主旨和进行重构的区域,并且,指示构成信息存储部1300,以便指定构成信息,将该构成信息供给重构可能运算器1200。
此外,具有在不能重构时将该主旨返回给线程调度部1110的功能。不能重构的情况是指,重构可能运算器1200中不存在可重构的区域的情况。
(动作)
接着,使用图2~图4说明本发明涉及的处理器的动作。
使用图2说明按照执行顺序来执行线程时的例子,使用图3说明改变线程的执行顺序时的例子。
最后,使用图4的流程图说明线程的控制处理。
(按照执行顺序来执行线程时)
图2(a)是表示线程信息表1410的结构例及内容例的图,图2(b)是表示线程的执行例的时序图。
执行了图2(a)所示的线程信息表1410的线程时的时序图,就是图2(b)所示的时序图。
首先,说明图2(a)的线程信息表1410。
该线程信息表1410被存储在重构信息存储部1300。
线程信息表1410包括线程名1411、构成信息1412和使用区域数1413。
线程名1411是线程的识别符。下面,说明按顺序执行用“TH0”~“TH3”表示的4个线程的情况。
构成信息1412表示由线程名1411表示的线程使用重构可能运算器1200时的用于重构的构成信息。
使用区域数1413表示使用重构可能运算器1200时需要的区域数。
例如,线程名1411“TH0”的线程使用由构成信息1412“构成A”的结构进行了重构的重构可能运算器1200,用构成信息1412“构成A”将重构可能运算器1200重构时,需要使用区域数1413的“6”个区域。此外,与线程名1411“TH1”对应的构成信息1412“-”表示不使用重构可能运算器1200,使用区域数1413当然是“0”个。
接着,使用图2(b)说明线程的执行例。
在此,示出了线程使用固定功能运算器1120的时序10、表示该线程使用重构可能运算器1200时的构成信息的时序20、和表示该线程在执行中对重构可能运算器进行重构的构成信息的时序30。此外,在表示时间的箭头上方示出构成信息,在下方示出构成信息所需要的区域数。而且,该图2(b)中示出了所有线程使用固定功能运算器1120的情况,但也可以具有不使用的期间。
首先,按线程名“TH0”、“TH1”、“TH2”、“TH3”的顺序执行线程,各个线程在执行中重构下一个线程使用的重构可能运算器1200。
通过如此地事先进行准备,没必要取得重构所需的时间,实质上只需要线程的执行时间。
例如,线程名“TH1”的线程100仅使用固定功能运算器1120来执行线程。
在该期间,用下面预定执行的线程名1411“TH2”的线程110所使用的构成信息1412“构成C”,将重构可能运算器1200重构。
此时,重构可能运算器1200具有全部10个区域,所以,所使用的重构可能运算器1200的区域数成为“构成C”所需的“3/10”区域101。
同样地,线程名“TH2”的线程110使用固定功能运算器1120和重构可能运算器的“构成C”来执行线程。
在此期间,用下面预定执行的线程名1411“TH3”的线程所使用的构成信息1412“构成D”,将重构可能运算器1200重构。
此时,所使用的重构可能运算器1200的区域数是,将“构成C”使用的“3/10”区域和“构成D”所需要的“4/10”区域相加的“7/10”区域111。
如此地,在依次执行线程之前,事先进行必要的重构。
(改变线程的执行顺序时)
接着,使用图3说明通过改变线程的执行顺序,在线程执行中能够进行用于下一线程的重构的例子。
图3(a)是表示线程信息表1420的构成例及内容例的图,图3(b)及图3(c)是表示线程的执行例的时序图。
执行了图3(a)所示的线程信息表1420的线程时的时序图,是图3(b)及图3(c)所示的时序图。
首先,说明图3(a)的线程信息表1420。
该图3(a)的线程信息表1420与图2(a)的线程信息表1410几乎相同,所以只说明差异。
不同点在于,线程名1411“TH1”的线程1421使用重构可能运算器1200。构成信息1412为“构成B”,使用区域数1413为“5”个。
接着,使用图3(b)说明表示线程的执行例的时序图。时序图所表示的内容,与图2(b)相同。
线程名“TH0”的线程200使用固定功能运算器和重构可能运算器的“构成A”来执行线程。
在该期间,要用下面预定执行的线程名1411“TH1”的线程所使用的构成信息1412“构成B”,将重构可能运算器1200重构。
该情况下,正在使用的重构可能运算器1200的区域数,成为将“构成A”使用的“6/10”区域和“构成B”所需的“5/10”区域相加的“11/10”区域201,在线程名“TH0”的线程执行中不能进行“构成B”的重构。
因此,如图3(c)所示,在线程名“TH1”的线程230之前,执行线程名“TH2”的线程220。即,替换执行顺序来执行线程。
若这样,在线程名“TH0”的线程执行中,进行重构的是线程名“TH2”的线程220所使用的“构成B”,成为“构成A”使用的“6/10”区域和“构成C”所需的“3/10”区域相加的“9/10”区域211,能够事先进行重构。
同样地,在线程名“TH2”的线程220使用固定功能运算器1120和重构可能运算器1200的“构成C”来执行线程的期间,用下面预定执行的线程名1411“TH1”的线程所使用的构成信息1412“构成B”,将重构可能运算器1200重构。
该情况下,正在使用的重构可能运算器1200的区域数,成为将“构成C”使用的“3/10”区域和“构成B”所需的“5/10”区域相加的“8/10”区域222。
通常,在循环方式中,根据由各线程应执行的处理,考虑分配给线程的时间片(time slice)的长度。即,在必须保障处理时间的情况下,分配时间片较长的线程等。
因此,周期不变化,成为对线程分配处理时的前提条件。
但是,同整个处理的执行时间相比,一个时间片的时间非常小,所以在该处理器中,在规定时间内由线程调度部1110调整各线程的执行时间使其与预定相同。例如,全部线程10执行10次作为一段,计数各线程的执行次数,在最初的线程开始第11次的执行之前,用其它线程优先执行少于10次的部分。在全部线程执行10次之后,开始最初的线程的第11次的执行。
(线程的控制处理)
接着,使用图4说明本处理器的线程控制的处理。
图4是表示本处理器的线程控制处理的流程图。
线程调度部1110选择下面执行的线程(步骤S100)。在刚开始控制处理的情况下,是最初的线程。
在分配给各线程的处理全部结束时(步骤S110的“是”),结束线程的控制处理。
在执行作为被选择的线程的下一线程时,向重构控制部1400传递其线程名1411,委托重构。
接受了委托的重构控制部1400参照存储在构成信息存储部1300中的线程信息表1410,来判断接受的线程名1411是否使用构成可能运算器1200。具体地说,在与接受的线程名1411对应的构成信息1412中指定了构成的情况下,判断为使用重构可能运算器1200。
在判断为不使用的情况下(步骤S120的“否”),重构控制部1400向线程调度部1110返回其主旨,线程调度部1110在当前执行中的线程结束后,开始下一线程的执行(步骤S150)。
另一方面,在判断为使用的情况下(步骤S120的“是”),判断进行重构的区域是否空出。具体地说,判断在与接受的线程名1411对应的使用区域数1413所示数量的区域是否空出。
重构控制部1400在内部存储当前使用的区域号码,在正使用的线程的时间片已结束的情况下,使用过的区域空出,从存储的区域号码中删除。
在判断为区域未空出的情况下(步骤S130的“否”),重构控制部1400向线程调度部1110通知其主旨。线程调度部1110选择不同的线程(步骤S100)。线程调度部1110存储各线程的执行次数,在适当时优先选择,并且将全部线程的执行次数相加。
另一方面,在判断为区域是空出的情况下(步骤S130的“是”),重构控制部1400向重构可能运算器1200通知进行重构,向构成信息存储部1400指定区域来发送与接受的线程名1411对应的构成信息1412。发送后,重构控制部1400更新存储在内部的使用中的区域号码。
重构可能运算器1200用从构成信息存储部1300发送的构成信息来进行重构(步骤S140),若结束,则通知重构控制部1400。
接受了重构已结束的通知的重构控制部1400,向线程调度部1110返回其通知内容,线程调度部1110在当前执行中的线程结束后,立即开始下一线程的执行(步骤S150)。
使线程开始的线程调度部1110选择下一个线程(步骤S100)。
(第二实施方式)
(概要)
第一实施方式是每个线程使用进行了重构的重构可能运算器,与此相比,本实施方式中,每个指令使用进行了重构的重构可能运算器。
下面说明第二实施方式的结构等。
(结构)
图5是第二实施方式的处理器5000的构成例的图。
处理器5000包括指令取出部5100、指令解码部5200、运算控制部5300、地址表存储部5400、重构信息存储部5500、重构可能运算器5600及固定功能运算器5700,在外部具有指令存储部5010。
指令存储部5010具有预先存储由处理器5000执行的指令码的功能。
指令取出部5100具有从指令存储部5010读入指令码并传递给指令解码部5200的功能。
指令解码部5200除了具有从指令取出部5100接受指令码并解析的通常的功能之外,还具有本发明独有的功能。
具体地说是如下功能,即在解码的结果是使用重构可能运算器5600的指令的情况下,根据指令种类从地址表存储部5400取得存储了构成信息的地址,将地址传递给重构信息存储部5500,并向重构可能运算器5600发送构成信息。
地址表存储部5400具有将指令种类和其构成信息的地址对应起来存储的功能。
运算控制部5300具有按照指令解码部5200解码的结果来控制运算动作的功能。对固定功能运算器5700和重构可能运算器5600,一边取得定时、一边发行指令。
重构信息存储部5500对应于多个指令的每个来存储构成信息的功能。在此存储的各构成信息的开头地址,由地址表存储部5400同指令种类对应起来存储着。该构成信息和第一实施方式的存储在构成信息存储部1300的构成信息相同。
此外,重构信息存储部5500具有在来自指令解码部5200的指示下,向重构可能运算器5600发送指定的地址的构成信息的功能。
重构可能运算器5600是可重构的运算器,和第一实施方式的重构可能运算器1200相同。其中,在本实施方式中,是被分割为4个区域的运算器。
固定功能运算器5700由多个固定功能运算器构成,本实施方式中由三个固定功能运算器5701、5702、5703构成。
下面,简单地说明指令和构成信息的对应关系,并说明动作。
(指令码和构成信息的对应关系)
使用图6和图7说明根据本发明中使用的指令码,求出用于进行该指令的执行所必要的重构的构成信息的方法。
图6是表示本发明中使用的指令码构成例的图,图7是表示指令信息表5410的构成例及内容例的图。
首先,从图6的指令码的构成例开始说明。
本发明中使用的指令码5110由表示指令种类的操作码5111和表示由该指令处理的值等的操作数5112构成。
本发明中,该操作码5111和构成信息相对应着(参照箭头),在处理器判断为指令的执行需要重构可能运算器5600的情况下,由利用对应起来的构成信息进行了重构的重构可能运算器5600执行指令。
在由处理器判断为指令的执行不需要重构可能运算器5600的情况下,使用固定功能运算器5700来执行。
接着,说明图7的指令信息表5410。
该指令信息表5410被存储在地址表存储部5400。
指令信息表5410由操作码种类5411、地址5412及使用区域数5413构成。
操作码种类5411表示指令码的操作码,即指令。在此,仅记载了使用重构可能运算器5600的指令。
因此,由固定功能运算器5700执行在此未记载的指令。
接着,地址5412表示同操作码种类5411所表示的操作码相对应的构成信息的、重构信息存储部5500内的地址。并且,本实施方式中采用了地址,但也可以是ID等,只要是能够确定重构信息就可以。
使用区域数5413表示使用重构可能运算器5600时的区域数。例如,操作码种类5411“Sub”的指令使用由存储在地址5412“addr”所表示的地址中的构成信息进行了重构的重构可能运算器1200,对重构可能运算器1200进行重构时,需要使用区域数5413的“3”个区域。
本实施方式的情况下,考虑指令所使用的重构可能运算器5600的区域数,在将程序变换为机器语言的编译时,在本实施方式中变换为指令码5110时,决定指令的顺序和由指令重构的区域号码。即,在编译时,在考虑了所执行的指令的顺序的基础上,构成在前面的指令执行中可重构的指令顺序,决定进行各自的重构的区域。此外,例如由操作者指定区域号码,或者按每个指令事先决定区域号码等,以便由指令解码部知道所使用的区域号码。
(动作)
下面,使用图8~图10说明如何执行指令。
图8是使用了本发明涉及的指令组的程序例,图9是使程序工作的处理器的流水线动作的例。
此外,图10是表示本实施方式的处理器的指令执行处理的流程图。
首先,简单地说明图8的程序。
操作码5111“add”、操作数5112“r0,r1,r2”的指令码意味着将寄存器1的内容和寄存器2的内容相加并将结果代入寄存器0,操作码5111“sub”、操作数5112“r3,r1,r3”的指令码意味着从寄存器1的内容减去寄存器3的内容并代入寄存器3。
此外,操作码5111“Reconf0”、操作数5112“r2,r0,0xfe”的指令码意味着使用寄存器0的内容和数值“0xfe”进行运算“Reconf0”,将结果代入寄存器2;操作码5111“Reconf1”、操作数5112“r3,r1,r3”的指令码意味着使用寄存器1的内容和寄存器3的内容进行运算“Reconf1”,将结果代入寄存器3。
下面,使用图9及图10说明执行程序的处理器的动作。按照图10的流程图,一边参照图9的时序图一边说明。
图8所示的程序被存储在指令存储部5010。
首先,指令取出部5100取出指令码“Add r0,r1,r2”(图10的步骤S800、图9的步骤S500),传递给指令解码部5200。
接受了指令码的指令解码部5200解析接受到的指令码。
在接受的指令码是表示结束的代码的情况下(图10的步骤S810的“是”),指令解码部5200结束处理。
此外,在指令码不是表示结束的代码的情况下(图10的步骤S810的“否”),指令解码部5200将操作码5111“Add”传递给地址表存储部5400,请求构成信息的地址。
地址表存储部5400参照指令信息表5410,检索在操作码种类5411中是否存在被传递的操作码5111“Add”,其结果不存在,所以向指令解码部5200返回不使用重构可能运算器5600的消息(图10的步骤S820的“否”、图9的步骤S510)。
接受了不使用重构可能运算器5600的消息的指令解码部5200,将“Add r0,r1,r2”的已解码的指令传递给运算控制部5300。
被传递来解码结果的运算控制部5300向固定功能运算器5700发行指令,并执行指令码“Add r0,r1,r2”(图10的步骤S830、S840)。
指令取出部5100在取出指令码“Add r0,r1,r2”之后,取出下一个指令码“Sub r3,r1,r3”(图10的步骤S800、图9的步骤S520),传递给指令解码部5200。
接受了指令码的指令解码部5200向地址表存储部5400传递操作码5111“Sub”,请求构成信息的地址。
地址表存储部5400参照指令信息表5410,检索在操作码种类5411中是否存在被传递的操作码5111“Sub”,结果存在,所以向指令解码部5200返回地址5412“addr1”(图10的步骤S820的“是”、图9的步骤S600)。
接受了地址的指令解码部5200向重构信息存储部5500传递接受到的地址5412“addr1”,向重构可能运算器5600发送该地址的构成信息,指示进行重构。
进行了指示的指令解码部5200向运算控制部5300传递“Subr3,r1,r3”的已解码的指令。
另一方面,接受了指示的重构信息存储部5500向重构可能运算器5600发送接受到的地址的构成信息,进行重构(图10的步骤S850,图9的步骤S610)。
该重构是对重构可能运算器5600的4个区域中的3个区域进行重构(参照图7)。
被传递了解码结果的运算控制器5600向重构可能运算器5600发行指令,并执行指令码“Sub r3,r1,r3”(图10的步骤S860、图9的步骤S620)。
之后,将执行结果写入寄存器3(图9的步骤S630)。
如此地,依次并同时执行指令。
在此,从执行指令码“Sub r3,r1,r3”的下一个指令码“Reconf0,r2,r0,0xfe”的情况来看,该指令码“Reconf0”使用重构可能运算器5600。
因此,在“Sub r3,r1,r3”的执行中(图9的步骤S620)进行重构(图9的步骤S700)。
该操作码种类5411“Reconf0”的使用区域数5413是“0”个,所以,“Sub r3,r1,r3”使用3个区域,在执行中也能进行重构。
执行下一个指令码“Reconf1 r3,r1,r3”的情况也相同。
如此地,在具有可重构的运算器的处理器中,可以控制可按指令单位进行重构的运算器,能够以较高的面积效率来实现灵活且高性能的运算处理。
(变形例)
下面,说明第二实施方式的变形例。
第二实施方式中,按每个指令对重构可能运算器进行了重构,但在本变形例中,说明一次重构多个指令的例子。由于同时执行多个指令,所以能够谋求处理速度的提高。
使用图11~图13说明如何执行指令。
图11是使用了本变形例的指令组的程序例,图12是使程序工作的处理器的流水线动作的例子。
此外,图13是表示本变形例的处理器的指令执行处理的流程图。
首先,图11所示程序的各指令的内容和图8相同。
但是,在相同的阶段执行“Reconf0 r2,r0,0xfe”和“Reconf1r3,r1,r3”这一点是不同的。在图11中,为了说明的方便,通过将“Reconf0 r2,r0,0xfe”和“Reconf1 r3,r1,r3”横向并列记载,示出了同时被执行,但是,编译器事先输出,以便指令解码器5200能够解释同时执行2个指令的情况。
例如,考虑指令所使用的重构可能运算器5600的区域数,在编译时决定指令的顺序和由指令进行重构的区域的号码。即,在编译时考虑指令执行的顺序,选择可同时执行且能同时重构的指令,决定进行各自的重构的区域。该并行执行的指令和使用的区域号码是,例如设置表示并行实效的指令码,在其操作数中记载这些指令和区域号码等。
具体地说,在编译时考虑使用区域数5413,“Sub”和“Reconf0”可以同时进行重构,但“Sub”和“Reconf1”不能同时进行重构。这是因为,“Sub”和“Reconf0”加起来使用4个区域,但“Sub”和“Reconf1”加起来需要5个区域(参照图7)。
使用图12及图13简单地说明执行程序的处理器的动作。按照图13的流程图,一边参照图12的时序图、一边说明。
图13的流程图只说明同图10的流程图之间的差异。具体地说,是步骤S900~步骤S920。
“Reconf0 r2,r0,0xfe”和“Reconf1 r3,r1,r3”使用重构可能运算器,并且,解析了同时执行的指令解码部5200向地址表存储部5400传递操作码5111“Reconf0”和“Reconf1”,请求构成信息的地址。
地址表存储部5400参照指令信息表5410,向指令解码部5200返回地址5412“addr4”和“addr5”(图13的步骤S820的“是”、步骤S900的“是”)。
接受了地址的指令解码部5200向重构信息存储部5500传递接受到的地址5412“addr4”和“addr5”,向重构可能运算器5600送出该地址的构成信息,指示进行重构。
进行了指示的指令解码部5200向运算控制部5300传递“Reconf0r2,r0,0xfe”和“Reconf1 r3,r1,r3”的已解码的指令。
另一方面,接受了指示的重构信息存储部5500向重构可能运算器5600发送接受到的地址的构成信息,进行重构(图13的步骤S910、图12的步骤S700)。
被传递了解码结果的运算控制部5300向重构可能运算器5600发行指令,执行指令码“Reconf0 r2,r0,0xfe”和“Reconf1,r3,f1,r3”(图13的步骤S920、图12的步骤S710)。
接受了指令码的指令解码部5200,在不使用重构可能运算器的情况(图13的步骤S820的“否”)和即使使用了也是1个指令的情况(图13的步骤S900的“否”)下,分别执行同图10相同的处理(图13的步骤S840~步骤S870)。
并且,在此说明了同时处理使用可重构的运算器的2个指令的情况,但能够同时发行的指令数并不限于2个。此外,也可以和使用固定功能运算器5700的指令一起进行处理。
(补充)
以上,基于实施方式说明了本发明涉及的处理器,但也可以将该处理器局部进行变形,毋庸置疑,本发明并不限于上述的实施方式。即:
(1)第二实施方式中,将指令码的操作码和构成信息对应起来,但不限于此。
例如,也可以事先在操作数的一部分代入表示构成信息的代码。如图14所示,在指令码5150的操作数的字段5150中事先代入构成信息的ID等,在执行时根据ID来确定构成信息。
(2)第二实施方式中,为了说明的方便,没有详细说明多个固定功能运算器的执行,但在能够同时执行这些固定功能运算器和重构可能运算器的情况下,也可以同时发行多个指令。
根据如何决定应同时发行的指令,有可能大幅度提高运算效率。
即,在由可重构的硬件构成的运算器中,能够选择地执行多种的运算功能。因此,能够执行任意的指令,通过执行本发明的指令组,能够制作实现提高指令并行度的最佳功能的程序。
决定应同时发行的指令的动作,例如可以在处理器的内部在指令解释时进行,也可以在对处理器提供的程序的时刻预先进行。
(3)实施方式中,重构可能运算器被分配在均匀的多个区域,但也可以是每个区域具有不同的逻辑块,此外,该区域的大小也可以不同。
(4)实施方式中,构成重构可能运算器的逻辑块是包含一览表和触发器的电路组件,但逻辑块也可以包括ALU(Arithmetic andLogical Unit,算数及逻辑单元)、进行移位或数据控制、逻辑运算的单元、触发器等,即也可以由一般逻辑电路的组合构成。
本发明涉及的处理器能够抑制电路规模、实现灵活且高性能的处理,因此作为图像处理LSI的运算器等特别有用。

Claims (5)

1.一种处理器,循环地按照分配给线程的各时间来执行多个线程,其特征在于,具备:
可重构的集成电路;
重构单元,根据电路构成信息,将上述集成电路的一部分进行重构;
构成信息存储单元,存储与多个线程的各个对应的电路构成信息;
控制单元,依次使用根据对应于线程的电路构成信息进行了重构的集成电路,执行该线程;
选择单元,在上述控制单元执行某线程的期间,选择下面执行的线程。
2.如权利要求1所述的处理器,其特征在于,
上述控制单元还在执行线程的期间,对于正在执行的线程正使用的上述集成电路部分以外的部分,使上述重构单元根据与上述选择单元所选择的线程相对应的电路构成信息进行重构。
3.如权利要求1所述的处理器,其特征在于,
上述处理器还包括运算器;
上述控制单元使用上述运算器和上述进行了重构的集成电路,执行该线程。
4.一种处理器,执行由多个指令构成的程序,其特征在于,具备:
可重构的集成电路;
重构单元,根据电路构成信息,将上述集成电路的一部分进行重构;
构成信息存储单元,存储与多个指令的各个相对应的电路构成信息;
选择单元,根据上述电路构成信息,选择可同时重构上述集成电路的2个以上的指令;
执行单元,使用根据与上述选择单元所选择的2个以上的指令相对应的电路构成信息进行了重构的集成电路,并行执行该2个以上的指令。
5.一种线程执行方法,是在具有可重构的集成电路、且循环地按照分配给线程的各时间来执行多个线程的处理器中使用的线程执行方法,其特征在于,该线程执行方法包括:
重构步骤,根据电路构成信息,将上述集成电路的一部分进行重构;
构成信息存储步骤,在存储器中存储与多个线程的各个对应的电路构成信息;
控制步骤,依次使用根据对应于线程的电路构成信息进行了重构的集成电路,执行该线程;
选择步骤,在上述控制步骤执行某线程的期间,选择下面执行的线程。
CNB2006800008045A 2005-04-12 2006-04-12 处理器 Expired - Fee Related CN100492296C (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005114133 2005-04-12
JP114133/2005 2005-04-12
JP309352/2005 2005-10-25

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2009101320260A Division CN101546255A (zh) 2005-04-12 2006-04-12 处理器

Publications (2)

Publication Number Publication Date
CN101031884A true CN101031884A (zh) 2007-09-05
CN100492296C CN100492296C (zh) 2009-05-27

Family

ID=38716295

Family Applications (2)

Application Number Title Priority Date Filing Date
CNB2006800008045A Expired - Fee Related CN100492296C (zh) 2005-04-12 2006-04-12 处理器
CNA2009101320260A Pending CN101546255A (zh) 2005-04-12 2006-04-12 处理器

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNA2009101320260A Pending CN101546255A (zh) 2005-04-12 2006-04-12 处理器

Country Status (1)

Country Link
CN (2) CN100492296C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103235717A (zh) * 2013-04-19 2013-08-07 中国科学院自动化研究所 具有多态指令集体系结构的处理器
CN110826705A (zh) * 2018-08-09 2020-02-21 上海寒武纪信息科技有限公司 运算方法、装置及相关产品

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101625636B (zh) * 2009-07-31 2012-01-04 清华大学 一种执行循环任务的方法及装置
JP5945779B2 (ja) * 2010-06-14 2016-07-05 パナソニックIpマネジメント株式会社 マルチスレッド並列実行装置、放送ストリーム再生装置、放送ストリーム蓄積装置、蓄積ストリーム再生装置、蓄積ストリーム再符号化装置、集積回路、マルチスレッド並列実行方法、マルチスレッドコンパイラ
US10019260B2 (en) * 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
GB2519813B (en) 2013-10-31 2016-03-30 Silicon Tailor Ltd Pipelined configurable processor
US9747108B2 (en) * 2015-03-27 2017-08-29 Intel Corporation User-level fork and join processors, methods, systems, and instructions
EP3746925B1 (en) * 2018-02-02 2024-09-11 The Charles Stark Draper Laboratory Inc. Systems and methods for policy execution processing

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103235717A (zh) * 2013-04-19 2013-08-07 中国科学院自动化研究所 具有多态指令集体系结构的处理器
CN103235717B (zh) * 2013-04-19 2016-04-06 中国科学院自动化研究所 具有多态指令集体系结构的处理器
CN110826705A (zh) * 2018-08-09 2020-02-21 上海寒武纪信息科技有限公司 运算方法、装置及相关产品
CN110826705B (zh) * 2018-08-09 2022-08-19 上海寒武纪信息科技有限公司 运算方法、装置及相关产品

Also Published As

Publication number Publication date
CN101546255A (zh) 2009-09-30
CN100492296C (zh) 2009-05-27

Similar Documents

Publication Publication Date Title
CN101031884A (zh) 处理器
CN1517869A (zh) 处理器、运算处理方法和优先度决定方法
CN1152305C (zh) 虚拟机系统
CN1253806C (zh) 仲裁电路和数据处理系统
CN1920825A (zh) 在流设计工具中显示性能约束的方法和系统
CN1680959A (zh) 进程编辑设备和方法以及进程管理设备和方法
CN101065725A (zh) 命令供给装置
CN1197082C (zh) 使用存储器的方法、两维数据存取存储器以及操作处理设备
CN101046812A (zh) 一种数据库表记录构造与检查的方法及其装置
CN1613057A (zh) Gui应用程序开发支持装置、gui显示装置、方法和计算机程序
CN1698034A (zh) 信息处理装置、进程控制方法、以及计算机程序
CN101069181A (zh) 存储设备和记录介质
CN100347682C (zh) 自动化测试构建方法
CN1506971A (zh) 半导体器件、图像数据处理装置和方法
CN1321273A (zh) 操作系统和虚拟计算机系统
CN101055569A (zh) 一种电子数据表的函数收集方法和装置
CN1924761A (zh) 数据处理装置、程序、记录介质和内容回放装置
CN1649274A (zh) 可变长度解码装置和可变长度解码方法以及再现系统
CN1801915A (zh) 记录设备和方法、程序以及记录介质
CN1444161A (zh) 物料清单(bom)数据的拆分方法
CN1278386A (zh) 解码方法和记录解码程序的记录媒体
CN1260648C (zh) 一种信息处理装置所使用的信息处理方法和程序转换装置
CN1777831A (zh) 光学系统设计方法
CN1804842A (zh) 用于数据库查询的系统及方法
CN1723690A (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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090527

Termination date: 20130412