用于对可重构处理器进行仿真的设备和方法

文档序号:6357859阅读:128来源:国知局
专利名称:用于对可重构处理器进行仿真的设备和方法
技术领域
以下描述涉及对执行应用程序的处理器的性能进行仿真并可用于改进应用程序的处理的处理器仿真(simulation)技术。
背景技术
可重构(reconfigurable)计算的概念基于处理器连同可重构硬件元件阵列的方案。这种可重构硬件元件的运转行为(behavior)(包括可重构硬件元件之间的数据流)可被定制以执行特定任务。可重构处理器可具有与专用硬件的性能相同的处理性能。可重构阵列(array)包括多个处理元件或功能单元。这种功能单元的大小或功能单元的复杂度(例如,功能单元中包括的ALU或寄存器的数量)被称为粒度 (granularity)。粒度较大的处理器可被称为粗粒度可重构体系结构(CGRA),粒度较小的处理器可被称为细粒度可重构体系结构。当执行特定任务时,可基于配置信息动态地设置单独的功能单元之间的配置。例如,可基于能够从配置存储器(例如,复用器)读取的配置信息动态地建立单独的功能单元之间的路由路径。执行文件(execution file)可基于建立的体系结构来执行。执行文件的指令可被存储在指令存储器中。指令可具有将由各个处理元件执行的指令代码和操作数(operand)信息的序列的形式。CGRA可被实施为可用于提高程序的特定段(例如,迭代循环)的执行速度的加速器。与现有专用集成电路(ASIC)相比,由于CGRA处理器具有高灵活度和与ASIC相似的性能等级,故CGRA处理器的目标是作为用于下一代数字信号处理器(DSP)的有效手段。为了估计特定应用程序使用基于CGRA的平台可获得的性能的程度,并纠正源代码以更有效地使用CGRA,可使用允许性能调试的仿真器(simulator)。用于CGRA的仿真器应具有足够高的速度,从而仿真不会成为软件开发的瓶颈。此外,仿真器应确保周期准确性以进行准确的性能调试。由于CGRA像超长指令字(VLIW)机一样在编译时间期间决定所有调度,故仿真器可确保周期准确性。然而,与通过寄存器执行在功能单元之间传递的所有操作数的通用处理器不同,CGRA使用明显复杂的互连逻辑在功能单元之间传递操作数。由于这个原因,仿真器必须对大量互连逻辑的操作进行建模,从而增加负担。监控大量的互连是限制仿真速度的主要因素。

发明内容
在一个总体方面,提供了一种可重构处理器的仿真器,包括处理器建模单元,用于产生包括表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的队列的处理器模型,其中,处理器模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;仿真单元,用于基于由处理器建模单元产生的处理器模型来对从编译器接收的二进制文件进行仿真,并输出仿真的结果。由处理器建模单元表示的队列可具有多个时隙,所述多个时隙相应于路由路径上的路由延迟与阶段的启动间隔(initiation interval)的比率。仿真单元可将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并可在每个启动间隔将写入到每个时隙中的信息移动到下一时隙。从编译器接收的二进制文件可包括配置文件和执行文件。仿真器还可包括建模代码DB,存储用于路由队列的操作的面向主机的二进制代码,其中,仿真单元通过从提取自建模代码DB的面向主机的二进制代码重构路由队列的互连来执行仿真。在另一方面,提供了一种可重构处理器的仿真方法,包括产生包括表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的队列的处理器模型,其中,处理器模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;以及基于产生的处理器模型来对从编译器接收的二进制文件进行仿真,并输出仿真的结果。在产生处理器模型的步骤中表示的队列可具有多个时隙,所述多个时隙相应于路由路径上的路由延迟与阶段的启动间隔的比率。对二进制文件进行仿真的步骤可包括将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并在每个启动间隔将写入到每个时隙中的信息移动到邻近时隙。阶段信息可包括迭代的阶段划分信息以及关于分配到单独的阶段的功能单元、产生操作数的功能单元与消耗所述操作数的功能单元之间的关系的信息。从编译器接收的二进制文件可包括配置文件和执行文件。对二进制文件进行仿真的步骤可包括,通过以下处理来执行仿真读取二进制文件,从存储用于路由队列的操作的面向主机的二进制代码的建模代码DB提取与所述二进制文件相应的面向主机的二进制代码以及执行所述面向主机的二进制代码。在另一方面,提供了一种其上存储有用于使处理器实现可重构处理器的仿真方法的程序指令的计算机可读存储介质,所述仿真方法包括产生包括表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的队列的处理器模型,其中,处理器模型基于功能单元之间的信息路由延迟以及根据模调度的迭代循环的阶段信息;以及基于产生的处理器模型来对从编译器接收的二进制文件进行仿真,并输出仿真的结果。在另一方面,提供了一种可重构处理器的仿真器,包括处理器建模单元,用于产生表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的抽象体系结构模型(abstracted architecture model),其中,抽象体系结构模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;仿真单元,用于基于由处理器建模单元产生的抽象体系结构模型来对二进制文件进行仿真,并输出仿真的结果。二进制文件可包括配置信息,所述配置信息包括关于如何映射可重构处理器的功能单元以执行特定应用程序的信息。二进制文件可包括执行文件,所述执行文件包括由可重构处理器中的各个功能单元在预定时间段期间基于具有固定结构的功能单元所执行的指令。抽象体系结构模型可包括将产生操作数的功能单元映射到消耗所述操作数的功
5能单元的队列。功能单元Π可在时间tl产生操作数,队列可将功能单元Π的目的端口与消耗所述操作数的功能单元f2的源端口连接。处理器建模单元可基于功能单元的调度信息更新抽象体系结构模型,所述调度信息接收自调度器。通过以下描述、附图和权利要求,其它特点和方面将会清楚。


图1是示出可用于对可重构处理器进行仿真的程序开发系统的示例的示图。图2是示出具有仿真器的可重构处理器的示例的示图。图3是示出具有仿真器的可重构处理器的另一示例的示图。图4是示出传统体系结构模型的示例的示图。图5是示出可应用于处理器的建模方法的示例的示图。图6是示出具有粗粒度可重构体系结构(CGRA)处理器的模调度的示例的示图。图7是示出当图6的CGRA处理器执行由四个阶段构成的迭代循环时,单独的功能单元的处理流程的示例的示图。图8是示出可应用于模调度的结果的处理器模型的示例的示图。贯穿附图和说明书,除非另外描述,相同的附图标号应被理解为表示相同的元件、 特点和结构。为了清楚、示例性和方便的目的,可夸大这些元件的相对大小和描述。
具体实施例方式提供以下描述以助于读者全面理解在此描述的方法、设备和/或系统。因此,在此描述的方法、设备和/或系统的各种改变、修改和等同物可被建议给本领域的普通技术人员。另外,为了更加清楚和简明,可省略已知功能和构造的描述。图1示出可用于对可重构处理器进行仿真的程序开发系统的示例。参照图1,程序开发系统包括编译器/调度器300和仿真器100。编译器/调度器300读取可重构处理器的体系结构信息510以及将基于体系结构信息510被执行的程序源530。编译器/调度器300对体系结构信息510和程序源530进行编译和调度,并随后将调度的结果作为执行文件930和配置信息910存储在存储器中。仿真器100从编译器/调度器300接收调度信息,从存储器读取配置信息910和执行文件930,并对执行文件930的执行进行仿真。例如,程序开发系统可包括在移动装置或家庭装置中。例如,程序开发系统可包括在移动终端装置、嵌入式系统等中。仿真器100可用于对由单核或多核处理器执行的处理进行仿真。在图1的示例中,从编译器/调度器300传送到仿真器100的二进制文件900包括配置信息910 (或配置文件)和执行文件930。通过仿真,可估计在具有给定体系结构的可重构处理器中执行的特定应用程序可达到的性能的程度,并且还可通过调试来校正程序源530以达到更高效的执行。体系结构信息510可包括例如关于可重构处理器的功能单元的体系结构、数据体系结构(例如,功能单元之间的路径互连数据)、控制流的体系结构等的信息。配置信息910可包括关于如何构造可重构处理器的功能单元之间的路径互连以执行应用程序的信息。执行文件930可包括由可重构处理器中的各个功能单元在基于配置信息910的预定时间段期间基于具有固定结构的功能单元执行的指令。配置信息910和指令代码可被彼此整合并被一起处理。例如,必须在一个时钟周期中处理的配置信息和指令代码可被以彼此相邻的方式存储在存储器中,从而所述配置信息和指令代码可被处理器同时提取。 在程序开发系统中,仿真器100可从编译器/调度器300接收与调度有关的信息。 作为另一示例,调度信息可被存储在存储器900中,并可被仿真器100从存储器900中读取。作为示例,仿真器100可使用抽象体系结构模型。如在此所述的,抽象体系结构模型将功能单元之间的操作数路由路径建模为队列。抽象体系结构可对在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径进行建模,而不是使用实际互连逻辑的序列来表示操作数路由路径。因此,由于极大地减小了在每个仿真周期中必须检查操作的互连组件的数量,故可提高仿真速度。图2示出具有仿真器的可重构处理器的示例。如图2所示,仿真器100包括处理器建模单元110和仿真单元130。处理器建模单元110通过将在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径表示为队列来对处理器进行建模。处理器建模单元110可基于关于功能单元之间的路由延迟的信息以及根据从调度器接收的模调度信息的迭代循环的阶段信息来对处理器进行建模。仿真单元130对从编译器接收的二进制文件进行仿真。仿真单元130基于由处理器建模单元110产生的处理器模型113来对二进制文件进行仿真,并输出仿真的结果。如图2中示出的示例所示,处理器建模单元110和仿真单元130可以以程序来实现。另外,处理器模型113和/或体系结构信息510可以是存储在存储器中的数据或数据结构。在粗粒度可重构体系结构(CGRA)中,处理器具有的功能单元之间的互连逻辑是稀少的。结果,在体系结构中存在的功能单元之间可能不存在在一个周期中对特定操作数进行路由的直接路径。因此,CGRA处理器通常使用两个或更多互连组件对一个操作数进行路由。例如,由特定功能单元产生的值可顺序地通过寄存器文件、复用器、其它功能单元等, 以被路由到合适的功能单元。随后,所述值可被传送到消耗所述值的功能单元。CGRA处理器的调度器可在编译时间期间确定在每个功能单元中必须置入哪个操作。此外,CGRA处理器可确定互连组件的哪条链必须被用于对操作之间的操作数进行路由。如在此所述的,处理器模型113将功能单元之间的操作数路由路径建模为队列。 例如,处理器模型113可对在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径进行建模,而不是使用互连逻辑的序列来寻址操作数路由路径。例如,当功能单元 Π在时间tl产生任意操作数,并且随后功能单元f2在时间t2消耗了所述任意操作数时, 队列可被建模为将功能单元Π在时间tl的目的端口与功能单元f2在时间t2的源端口连接。图4示出传统体系结构模型的示例。在图4中,由虚线指示的区域是不存在有意义的操作数的区域,填充黑色的区域示出由功能单元Π产生的操作数的流,由实线指示的区域示出由功能单元f2产生的操作数的流。例如,功能单元fl到功能单元f4可以是算术
7逻辑单元(ALU),功能单元Ul可以是本地寄存器文件。在时间t,由功能单元fl产生的第一操作数到达功能单元fl的输出缓冲器。在时间t+Ι,第一操作数到达功能单元ul的输入缓冲器以被锁存在功能单元ul的输入缓冲器中,同时,由功能单元f2产生的第二操作数到达功能单元f2的输出缓冲器。在时间t+2,由功能单元fl产生的第一操作数到达功能单元ul的输出缓冲器以被锁存在功能单元f4的左输入缓冲器中,此外,由功能单元f2产生的第二操作数到达功能单元ul的功能缓冲器以被锁存在功能单元ul的功能缓冲器中。在时间t+3,锁存在功能单元ul中的操作数到达功能单元ul的输出缓冲器并被锁存在功能单元f4的右输入缓冲器中。如该示例中所示,由功能单元fl在时间t产生的第一操作数经由功能单元Ul在时间t+2到达功能单元f4,并准备被消耗。由功能单元f2在时间t+Ι产生的第二操作数经由功能单元ul在时间t+3到达功能单元f4,并准备被消耗。因此,由功能单元f4在时间 t+3执行这两个操作数的操作。因此,由功能单元fl输出的第一操作数到第一操作数在功能单元f4中被消耗为止需要三个时钟周期,由功能单元f2输出的第二操作数到该操作数在功能单元f4中被消耗为止需要两个时钟周期。也就是说,第一操作数在时间t+2准备好被消耗,但是第一操作数直到第二操作数也准备好被消耗的时间t+3才被消耗。图5示出可应用于处理器的建模方法的示例。在图5中,功能单元fl到功能单元 f4的输入缓冲器被省略,并且本地寄存器文件(图4的ul)被建模为具有与延迟的程度相应的时隙的队列。操作数路由队列存在的目的是仅传送有意义的操作数。结果,仿真器仅将与有意义的操作数相应的队列认为是用于对操作数进行路由的互连组件。通过仅考虑有意义的操作数,减小了每周期必须考虑的互连组件的数量,结果减小了仿真时间。如图5所示,仿真器对包括四个功能单元的可重构处理器阵列的处理进行仿真。 然而,这仅是用于示例的目的。可重构处理器阵列可包括多个功能单元,例如,两个单元、四个单元、八个单元、十二个单元、十六个单元、二十四个单元或更多。为了更新数据流图以产生体系结构模型,可使用关于如何将数据流图映射到体系结构的信息。例如,可从调度器提供所述信息。调度器可产生用于数据流上存在的组件的源操作和目的操作的调度信息,并可将所述调度信息提供到仿真器。用于CGRA处理器的调度可包括列表调度构架和模调度构架。例如,在列表调度构架中,路由队列可实施为缓冲器。也就是说,可通过允许产生操作数的组件在产生值时将所述值写入缓冲器并允许消耗操作数的组件在消耗所述值时从缓冲器读取所述值,来实施路由队列。模调度与软件流水线(software pipelining)相应。模调度具有用于使循环的不同迭代交错的指令调度的形式。软件流水线通过重叠(overlap)循环的不同迭代的执行来提高性能。迭代可在先前迭代完成之前开始执行。迭代开始的间隔称为启动间隔。软件流水线优化的一个目的是找到重叠迭代并使用最短的可行启动间隔的调度。模调度构架可产生在重叠的同时执行多个循环迭代的重叠调度。在产生的调度中,迭代被划分为多个阶段,每个阶段具有与启动间隔相应的执行周期。在每个启动间隔周期中,与来自不同循环迭代的不同阶段相应的操作以重叠方式被调度。结果,对于模调度构架,调度被产生以在每个启动间隔重复地执行包括在不同迭代中的相同操作。由于循环的迭代被重叠,所以如果由操作数路由路径消耗的周期的数量超过启动间隔,则队列中包含的值会在消耗所述值的组件可获得所述值之前被复写并会消失。图6示出具有CGRA处理器的模调度的示例。图7示出当图6的CGRA处理器执行由四个阶段构成的迭代循环时,单独的功能单元Π到f4的处理流程。图6中所示的四个功能单元Π到f4的每一个负责执行构成迭代的一个阶段,并且四个功能单元Π到f4的每一个基于软件流水线执行处理以处理从先前阶段接收的数据并随后将处理的数据输出到下一阶段。参照图7,在时间t,功能单元fl处理第一迭代循环的第一阶段,功能单元f2、f3 和f4等待来自先前步骤的处理结果。在时间t+Ι,功能单元Π处理第二迭代循环的第一阶段,功能单元f2从功能单元Π接收对第一迭代循环的第一阶段的处理结果并处理第一迭代循环的第二阶段,功能单元f3和f4继续等待来自先前步骤的处理结果。在时间t+2,功能单元Π处理第三迭代循环的第一阶段,功能单元f2从功能单元Π接收对第二迭代循环的第一阶段的处理结果并处理第二迭代循环的第二阶段,功能单元f3从功能单元f2接收对第一迭代循环的第二阶段的处理结果并处理第一迭代循环的第三阶段,功能单元f4继续等待来自先前步骤的处理结果。在时间t+3,功能单元fl处理第四迭代循环的第一阶段, 功能单元f2从功能单元f 1接收对第三迭代循环的第一阶段的处理结果并处理第三迭代循环的第二阶段,功能单元f3从功能单元f2接收对第二迭代循环的第二阶段的处理结果并处理第二迭代循环的第三阶段,功能单元f4从功能单元f3接收对第一迭代循环的第三阶段的处理结果并处理第一迭代循环的第四阶段。在图7示出的示例中,每个时钟周期与启动间隔相应。第一时钟周期与第一启动间隔相应,第二时钟周期与第二启动间隔相应,第三时钟周期与第三启动间隔相应,第四时钟周期与第四启动间隔相应。因此,如果当使用根据当前示例的处理器模型对在模调度构架中产生的结果进行仿真时,路由队列被实施为单个缓冲器,并且如果由操作数路由路径消耗的周期的数量超过启动间隔,则队列中包含的值会在消耗所述值的组件可获得所述值之前被复写并消失。 这是由于产生所述操作数的组件每启动间隔将新值写入路由队列。如在此所述,由处理器建模单元110(在图2中示出)定义的队列具有多个时隙, 所述多个时隙相应于相应路由路径上的路由延迟与阶段的启动间隔的比率。仿真单元 130(在图2中示出)可将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并可在每个启动间隔将记录在每个时隙中的信息移动到下一时隙。例如,当在模调度构架中执行仿真时,路由队列可被实施为与上限值(ceiling value)相应的数量同样多的时隙。例如,可通过以启动间隔划分路由延迟来确定上限值。路由队列在每个启动间隔将记录在时隙中的值移动到下一时隙,并且消耗操作数的组件读取路由队列的最终时隙中记录的值。图8示出可应用于模调度的结果的处理器模型113的示例。在本示例中,启动间隔已经被调度为两个周期。由于图8中示出的两个操作数均具有大于启动间隔的路由延迟, 故与每个操作数相应的路由队列被划分为两个时隙。如上所述,由于功能单元在每个启动间隔产生新值,故当启动间隔过去时仿真单元130将先前产生的值移动到相应的路由队列的下一时隙。这样,通过管理用于每个操作数的路由队列,仿真单元130可对用于模调度的结果的操作进行建模。图3示出具有仿真器的可重构处理器的另一示例。参照图3,仿真器100还可包括存储用于路由队列的操作的面向主机的二进制代码的建模代码数据库(DB) 131。在本示例中,仿真单元130可读取二进制文件900,并可从建模代码DB 131提取与二进制文件900 相应的面向主机的二进制代码以执行该面向主机的二进制代码,从而执行仿真。作为另一示例,仿真器100可通过从提取自建模代码DB 131的面向主机的二进制代码重构路由队列的互连来执行仿真。在图3所示的示例中,调度器330、处理器建模单元110、体系结构信息 510和处理器模型113与图2中示出的具有相同标号的元件相应。二进制翻译可被用于通过将针对仿真器的目标机的二进制指令替换为执行与目标机等同操作的主机的二进制代码来提高仿真速度。因此,替换的主机的二进制代码可在对等同代码块进行仿真时被执行。与从指令存储器读取相应于由程序计数器指示的地址的值并执行相应的操作的通用处理器相似,CGRA处理器可在每个周期从配置存储器的特定地址读取配置信息,以执行由用于每个组件的相应周期的配置信息所指示的操作。例如,可对配置存储器的每个地址产生用于配置信息的主机二进制代码。随后,当对存在于配置存储器的相同地址的配置信息的仿真被执行时,可使用先前产生的二进制代码来执行所述仿真。在图3示出的示例中,将二进制翻译技术应用于处理器模型113。例如,存储对路由队列的操作进行建模的二进制代码(而不是产生主机二进制代码)以表示实际存在于处理器体系结构上的互连逻辑的运转行为。在本示例中,可存储对路由队列的操作进行建模的二进制代码,而不是存储与存在于实际处理器体系结构中的互连逻辑的运转行为有关的主机二进制代码。例如,操作被映射到数据流图的组件可被描述为使用路由队列,而不是被描述为通过互连逻辑来交换产生的值或消耗的值。同时,对于路由队列的操作,所有需要被建模的是每当启动间隔过去时存在于路由队列中的值到下一的时隙的移动,这引起二进制翻译的简单应用。在图3示出的示例中,建模代码DB 131可存储与配置存储器的每个地址相应的用于配置信息的主机二进制代码。配置信息是描述数据流图上的组件之间的路由队列的操作的信息。仿真单元130可基于从建模代码DB 131读取的主机二进制代码来重构处理器模型113,并可从二进制文件900读取执行文件以基于重构的处理器模型113执行仿真。可将抽象体系结构模型认为是通过对实际体系结构进行建模而得到的体系结构图和数据流图。在抽象体系结构模型中,存在于数据流图上的每个边缘(edge)可被建模为队列。例如,在实际体系结构中保持数据流图的节点被映射到组件(诸如,功能单元、常量单元(constant unit)等)的同时,抽象体系结构模型可用于将数据流图的边缘被映射到的组件抽象为队列。通过这样做,对应用的操作具有较少影响或没有影响的互连组件可被移除,并且用于对与数据流边缘相应的操作数进行路由的互连组件的序列可被简化。通过上述示例可看出,对可重构处理器进行仿真的方法包括通过将功能单元之间的路由路径表示为队列来对处理器进行建模的操作。所述建模操作可根据从调度器接收的模调度,基于关于功能单元之间的路由延迟的信息和迭代循环的阶段信息来对产生操作数的功能单元和消耗所述操作数的功能单元的路径进行路由。可基于处理器建模中产生的处理器模型执行从编译器接收的二进制文件的仿真,并可输出仿真的结果。在处理器建模中定义的队列可具有多个时隙,所述多个时隙相应于相应路由路径上的路由延迟与阶段的启动间隔的比率。在每个仿真操作中,可将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并可在每个启动间隔将写入到每个时隙中的信息移动到邻近时隙。阶段信息包括迭代的阶段划分信息以及关于分配到单独的阶段的功能单元、产生操作数的功能单元与消耗所述操作数的功能单元之间的关系的信息。此外,从编译器接收的二进制文件可包括配置文件和执行文件。根据另一示例,在仿真操作中,可通过读取二进制文件并执行从存储用于路由队列的操作的面向主机的二进制代码的建模代码DB提取的与二进制文件相应的面向主机的二进制代码,来执行仿真。上述处理、功能、方法和/或软件可在包括程序指令的一个或多个计算机可读存储介质中被记录、存储或固定,其中,所述程序指令将由计算机执行以使处理器运行或执行所述程序指令。所述介质还可单独包括数据文件、数据结构等或者包括它们与程序指令的组合。计算机可读存储介质的示例包括磁介质(诸如,硬盘、软盘和磁带)、光介质(诸如, CD-ROM盘和DVD)、磁光介质(诸如,光盘)和专门配置用于存储和执行程序指令的硬件装置(诸如,只读存储器(ROM)、随机存取存储器(RAM)、闪存等)。程序指令的示例包括机器码(诸如,由编译器产生)和包含可由计算机使用解释器执行的更高级代码的文件。所述硬件装置可被配置作为一个或多个软件模块以执行上述操作和方法,反之亦然。此外,计算机可读存储介质可被分布在通过网络连接的计算机系统,计算机可读代码或程序指令可以分散方式存储和执行。仅作为非穷尽描述,在此描述的终端装置可表示能够执行与在此公开的内容一致的无线通信或网络通信的移动装置(诸如,蜂窝式电话、个人数字助理(PDA)、数码相机、便携式游戏机、MP3播放机、便携式/个人多媒体播放机(PMP)、手持电子书、便携式膝上型个人计算机(PC)、全球定位系统(GPS)导航仪)和装置(诸如,台式PC、高清晰度电视(HDTV)、 光盘播放机、机顶盒)等。计算系统或计算机可包括电连接到总线、用户接口和存储器控制器的微处理器。 计算系统或计算机还可包括闪存装置。闪存装置可经由存储器控制器存储N位数据。N位数据被微处理器处理或将被微处理器处理,N可以是1或大于1的整数。当计算系统或计算机是移动设备时,可另外提供电池以供应计算系统或计算机的操作电压。本领域的普通技术人员所清楚的是,计算系统或计算机还可包括应用芯片组、相机图像处理器(CIS)、移动动态随机存取存储器(DRAM)等。存储器控制器和闪存装置可构成使用非易失性存储器存储数据的固态驱动器/盘(SSD)。以上已经描述了一些示例。然而,应该理解可做出各种修改。例如,如果以不同顺序执行所述技术和/或如果以不同方式组合所述系统、体系结构、装置或电路中的组件和/ 或通过其它组件或等同物代替或补充所述系统、体系结构、装置或电路中的组件,则会得到合适的结果。因此,其它实施方式落入权利要求的范围内。
权利要求
1.一种可重构处理器的仿真器,包括处理器建模单元,用于产生包括表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的队列的处理器模型,其中,处理器模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;和仿真单元,用于基于由处理器建模单元产生的处理器模型来对从编译器接收的二进制文件进行仿真,并输出仿真的结果。
2.如权利要求1所述的仿真器,其中,由处理器建模单元表示的队列具有多个时隙,所述多个时隙相应于路由路径上的路由延迟与阶段的启动间隔的比率。
3.如权利要求2所述的仿真器,其中,仿真单元将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并在每个启动间隔将写入到每个时隙中的信息移动到下一时隙。
4.如权利要求1所述的仿真器,其中,从编译器接收的二进制文件包括配置文件和执行文件。
5.如权利要求1所述的仿真器,还包括建模代码数据库,存储用于路由队列的操作的面向主机的二进制代码,其中,仿真单元通过从提取自建模代码数据库的面向主机的二进制代码重构路由队列的互连来执行仿真。
6.一种可重构处理器的仿真方法,包括产生包括表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的队列的处理器模型,其中,处理器模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;以及基于产生的处理器模型来对从编译器接收的二进制文件进行仿真,并输出仿真的结^ ο
7.如权利要求6所述的仿真方法,其中,在产生处理器模型的步骤中表示的队列具有多个时隙,所述多个时隙相应于路由路径上的路由延迟与阶段的启动间隔的比率。
8.如权利要求7所述的仿真方法,其中,对二进制文件进行仿真的步骤包括将在每个功能单元中产生的操作数写入到相应队列的第一时隙,并在每个启动间隔将写入到每个时隙中的信息移动到邻近时隙。
9.如权利要求6所述的仿真方法,其中,阶段信息包括迭代的阶段划分信息以及关于分配到单独的阶段的功能单元、产生操作数的功能单元与消耗所述操作数的功能单元之间的关系的信息。
10.如权利要求6所述的仿真方法,其中,从编译器接收的二进制文件包括配置文件和执行文件。
11.如权利要求6所述的仿真方法,其中,对二进制文件进行仿真的步骤包括通过以下处理来执行仿真读取二进制文件、从存储用于路由队列的操作的面向主机的二进制代码的建模代码数据库提取与所述二进制文件相应的面向主机的二进制代码以及执行所述面向主机的二进制代码。
12.—种可重构处理器的仿真器,包括处理器建模单元,用于产生表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径的抽象体系结构模型,其中,抽象体系结构模型基于功能单元之间的路由延迟以及根据模调度的迭代循环的阶段信息;和仿真单元,用于基于由处理器建模单元产生的抽象体系结构模型来对二进制文件进行仿真,并输出仿真的结果。
13.如权利要求12所述的仿真器,其中,二进制文件包括配置信息,所述配置信息包括关于如何映射可重构处理器的功能单元以执行特定应用程序的信息。
14.如权利要求12所述的仿真器,其中,二进制文件包括执行文件,所述执行文件包括由可重构处理器中的各个功能单元在预定时间段期间基于具有固定结构的功能单元所执行的指令。
15.如权利要求12所述的仿真器,其中,抽象体系结构模型包括将产生操作数的功能单元映射到消耗所述操作数的功能单元的队列。
16.如权利要求15所述的仿真器,其中,功能单元fl在时间tl产生操作数,队列将功能单元Π的目的端口与消耗所述操作数的功能单元f2的源端口连接。
17.如权利要求12所述的仿真器,其中,处理器建模单元基于功能单元的调度信息更新抽象体系结构模型,所述调度信息被从调度器接收。
全文摘要
提供了一种用于对可重构处理器进行仿真的设备和方法。提供了一种用于估计执行应用程序的处理器的性能的处理器仿真技术。所述处理器仿真技术可用于优化应用程序的执行。包括多个功能单元的可重构处理器的仿真器通过表示在产生操作数的功能单元与消耗所述操作数的功能单元之间的路由路径来对处理器进行建模。可基于关于功能单元之间的路由延迟的信息和根据从调度器接收的模调度的迭代循环的阶段信息来决定每个队列的大小。还提供了一种存储用于路由队列的操作的面向主机的二进制代码的建模代码DB。可通过执行与二进制文件相应的面向主机的二进制代码而不是执行二进制文件来执行所述仿真。
文档编号G06F11/36GK102207904SQ20111008995
公开日2011年10月5日 申请日期2011年3月31日 优先权日2010年3月31日
发明者吴泰煜, 徐雄, 曹暎喆, 朴日铉, 柳秀晶, 金润进 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1