国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      處理器系統(tǒng)及加速器的制造方法

      文檔序號:6497880閱讀:238來源:國知局
      處理器系統(tǒng)及加速器的制造方法
      【專利摘要】一種處理器系統(tǒng),加速器按照命令區(qū)域中存儲的任務(wù)進(jìn)行動作,當(dāng)確認(rèn)到表示處理器的處理已結(jié)束的標(biāo)志被寫入了同步標(biāo)志區(qū)域時,即使處理器正在執(zhí)行其他處理,也開始與標(biāo)志對應(yīng)的加速處理,在加速處理結(jié)束后,將表示加速處理已結(jié)束的標(biāo)志寫入同步標(biāo)志區(qū)域,處理器確認(rèn)到表示加速處理已結(jié)束的標(biāo)志被寫入了同步標(biāo)志區(qū)域時,即使加速器正在執(zhí)行其他處理,也開始與標(biāo)志對應(yīng)的處理。
      【專利說明】處理器系統(tǒng)及加速器
      [0001]本申請主張2011年11月4日提交的日本專利申請2011-242824的優(yōu)先權(quán),其內(nèi)容通過參照而包含于本申請。
      【技術(shù)領(lǐng)域】
      [0002]本發(fā)明涉及加速器及包含該加速器的處理器系統(tǒng)。
      【背景技術(shù)】
      [0003]為了提高作為構(gòu)成要素而包含處理器系統(tǒng)、特別是多核心處理器系統(tǒng)的計算機(jī)(個人計算機(jī))的特定功能的處理能力,并且將耗電抑制得較低,將被稱為加速器(以下稱為“ACC”)的硬件模組加入到處理器系統(tǒng)中。ACC指的是,例如用于使圖形顯示高速化的圖形加速器、用于使三維示高速化的3D加速器等。
      [0004]作為將這樣的ACC與處理器系統(tǒng)連接的方式,以往有密耦合型的連接方式和疏耦合型的連接方式。
      [0005]密稱合型的連接方式指的是,使ACC和CPU (Central Processing Unit,通用處理器,以下稱為“處理器”)以一體化或接近一體化的形態(tài)連接的方式。在該密耦合型的連接方式中,ACC和處理器緊密地協(xié)同而發(fā)揮功能,具有用于啟動并控制ACC的系統(tǒng)開銷較低的優(yōu)點。由此,具有如下優(yōu)點:即使在短向量處理(處理數(shù)據(jù)量較少的加速處理)等、ACC中的執(zhí)行時間較短的情況下,也能夠高效地使用ACC。
      [0006]但是,在該密耦合型的連接方式中存在如下問題:向處理器新連接ACC的情況下,根據(jù)所連接的ACC,有時需要擴(kuò)展處理器的命令集。在該擴(kuò)展的命令集中,例如有非種類文獻(xiàn) I 所公開的 Streaming SIMD Extensions (SSE)等。
      [0007]此外,作為屬于密耦合型的連接方式的范疇的技術(shù),例如在非專利文獻(xiàn)2中公開了像輔助處理器那樣將ACC直接連接到處理器的連接方式相關(guān)的技術(shù)。該方式不需要擴(kuò)展命令集,但是需要按每個處理單位(加速器命令)調(diào)用輔助處理器,因此需要大的系統(tǒng)開銷,存在整體上不利于運算速度提高的問題。
      [0008]另一方面,疏耦合型的連接方式指的是,例如非專利文獻(xiàn)3公開的使ACC與處理器的外部總線連接的Graphics Processing Unit (GPU)的方式、或者非專利文獻(xiàn)4公開的使ACC與處理器的內(nèi)部總線連接的Open Multimedia Application Platform(OMAP)的方式。在該疏耦合型的連接方式中,ACC和處理器單獨設(shè)置,所以存在外部總線連接方式和內(nèi)部總線連接方式的差別,但是能夠富余地確保ACC用的運算器和存儲器,具有適合于針對大量數(shù)據(jù)的規(guī)則的運算處理的優(yōu)點。
      [0009]此外,在疏耦合型的連接方式中,不需要命令集的擴(kuò)展。
      [0010]但是,在疏耦合型的連接方式中,需要按每個處理單位(加速器命令)調(diào)用ACC或進(jìn)行數(shù)據(jù)傳送,因此需要大的系統(tǒng)開銷,存在作為整體無法提高運算速度的問題。因此,不適合于不規(guī)則的運算處理。
      [0011]此外,上述的多核心處理器系統(tǒng)是由多個處理器核心構(gòu)成的處理器系統(tǒng),各處理器核心具備處理器,并且在必要的情況下具備上述ACC。
      [0012]在多核心處理器系統(tǒng)中,通過多個處理器核心使處理并行化,從而降低耗電,并且提高運算處理能力。因此,并行化編譯器對逐次處理的輸入程序進(jìn)行解析,從該輸入程序中提取能夠并行動作的部分,并將該部分的運算處理分配給多個處理器,從而如上述那樣,與由一個處理器構(gòu)成的處理器系統(tǒng)相比,提高了處理能力,上述并行化編譯器將僅能夠在由一個處理器構(gòu)成的處理器系統(tǒng)上動作的逐次處理程序,變換為能夠在由多個處理器核心構(gòu)成的所謂多核心處理器上并行動作的并行處理程序。
      [0013]作為生成并行處理程序的并行化編譯器相關(guān)的技術(shù),已知專利文獻(xiàn)I~4所公開的技術(shù)等,該并行處理程序能夠在上述那樣的多核心處理器系統(tǒng)、特別是具備多個包含通用處理器和特定用途處理器(本申請中的ACC等)的處理器核心的多核心處理器系統(tǒng)的架構(gòu)及多核心處理器上并行動作。
      [0014]在專利文獻(xiàn)I中公開了如下的多處理器系統(tǒng)相關(guān)的技術(shù):在搭載了多種處理器核心的多核心處理器系統(tǒng)中,從成為處理對象的逐次處理的輸入程序自動地提取具備并行性的任務(wù),與各處理器核心的特性相應(yīng)地配置該任務(wù),從而高效地利用該處理器核心,進(jìn)而,通過預(yù)估該處理器核心的處理量,生成使動作頻率和電源電壓最優(yōu)化的代碼,從而實現(xiàn)向目的程序附加的編譯器及其最優(yōu)化。
      [0015]在專利文獻(xiàn)2中公開了如下的技術(shù):在具備多個命令集及構(gòu)造不同的處理器元素(處理器等)的異構(gòu)多處理器系統(tǒng)中,防止特定的處理器元素的資源不足,提高多處理器系統(tǒng)整體的處理能力。
      [0016]在專利文獻(xiàn)3中公開了如下的技術(shù):在集成了多種處理器核心的多處理器系統(tǒng)中,通過使該處理器核心高效動作的程序的分割配置、以及生成控制代碼的多個編譯器協(xié)作程序并行化手法,能夠最大限度地發(fā)揮該處理器系統(tǒng)的性能,并且以低功耗高效地進(jìn)行處理。
      [0017]在專利文獻(xiàn)4中公開了如下的技術(shù):在多個處理器核心分別具備數(shù)據(jù)傳送機(jī)構(gòu)的多核心處理器中,降低處理器核心之間的數(shù)據(jù)傳送的系統(tǒng)開銷,同時使得編譯器的數(shù)據(jù)傳送最優(yōu)化容易進(jìn)行,從而提高處理器整體的處理能力。
      [0018]在先技術(shù)文獻(xiàn)
      [0019]專利文獻(xiàn)
      [0020]專利文獻(xiàn)1:特開2006-293768號公報
      [0021]專利文獻(xiàn)2:特開2007-328415號公報
      [0022]專利文獻(xiàn)3:特開2007-328416號公報
      [0023]專利文獻(xiàn)4:專利4476267號公報
      [0024]非專利文獻(xiàn)
      [0025]非專利文獻(xiàn)1: S.Thakkar, T.Huff, "The Internet Streaming SIMDExtensions' Intel Technology Journal Q2,1999.[0026]非專利文獻(xiàn)2:M.Awagaj H.Takahashij "The uVP64_Bit Vector Coprocessor:ANew Implementation of High Performance Numerical Computation^, IEEEMicro, Vol.13,N0.5,0ctoberl993.[0027]非專利文獻(xiàn)3: "NVIDIA CUDA C Programming Guide Version3.2〃,2010.[0028]非專利文獻(xiàn)4:"0MAP_L137Application Processor System ReferenceGuide〃,Texas Instruments, March, 2010.[0029]發(fā)明的概要
      [0030]發(fā)明所要解決的課題
      [0031]但是,前述的異構(gòu)多核心處理器由具有通用處理器核心的一個或多個處理器核心和包含ACC等特定用途處理器的一個或多個處理器核心構(gòu)成。但是,為了比該異構(gòu)多核心處理器更進(jìn)一步提高耗電及運算處理能力,需要在處理器核心之中使通用處理器和ACC等特定用途處理器并存,構(gòu)筑具有多個這樣構(gòu)成的處理器核心的多核心處理器。
      [0032]在這樣的多核心處理器系統(tǒng)所搭載的各處理器核心內(nèi)部或外部具備上述ACC的情況下,也采用前述的密耦合型及疏耦合型的某個方式。
      [0033]但是,在前述的以往的密耦合型或疏耦合型的連接方式中,存在如前述那樣需要擴(kuò)展命令集、以及伴隨著數(shù)據(jù)傳送等的處理系統(tǒng)開銷的增加等若干問題。
      [0034]例如,在前述的密耦合的連接方式中,新連接ACC的情況下,根據(jù)所連接的ACC,需要擴(kuò)展處理器的命令集(例如Streaming SIMD Extensions等)。此外,特別是在處理器為RISC (Reduced Instruction Set Computer)型處理器的情況下,通過有限的命令長度來進(jìn)行命令編碼非常困難。特別是在新擴(kuò)展命令集的情況下,需要進(jìn)行命令集的擴(kuò)展、以及用于命令集擴(kuò)展的硬件(例如命令解讀部及處理器控制部等)的大幅擴(kuò)展。
      [0035]此外,在密耦合的連接方式中,處理器和ACC—體化,所以存在如下的問題:無法為了 ACC而確保向每次請求大量數(shù)據(jù)的ACC提供充分量的數(shù)據(jù)的寄存器。因此,無法向ACC無限地投入數(shù)據(jù),運算器的使用效率較低。
      [0036]另外,在像輔助處理器這樣的與處理器直接連接的連接方式中,不需要擴(kuò)展處理器的命令集。但是,由于按照命令的每個處理單位調(diào)用輔助處理器,所以控制系統(tǒng)開銷較大。
      [0037]另一方面,在上述的疏耦合的連接方式中,與密耦合的連接方式相比,ACC和處理器之間的物理距離較遠(yuǎn),ACC的控制的系統(tǒng)開銷和向ACC的數(shù)據(jù)傳送的系統(tǒng)開銷顯著變大。

      【發(fā)明內(nèi)容】

      [0038]本發(fā)明考慮了上述課題,其目的在于,提供一種ACC、以及在內(nèi)外具有包含ACC的多核心處理器系統(tǒng),在向處理器新連接ACC時不需要對于處理器擴(kuò)展命令集,并且能夠?qū)CC確保充分的數(shù)據(jù)供給能力,進(jìn)而降低ACC的控制系統(tǒng)開銷。
      [0039]解決課題所采用的技術(shù)手段
      [0040]為了解決上述課題,例如采用下述技術(shù)方案所記載的構(gòu)成。
      [0041]本申請包括多個解決上述課題的手段,但是作為一例,一種處理器系統(tǒng),在半導(dǎo)體芯片上具備處理器核心,該處理器核心具有:進(jìn)行運算處理的處理器、存儲器、以及經(jīng)由耦合網(wǎng)與所述處理器及所述存儲器連接的加速器(ACC);所述存儲器具有:命令區(qū)域,預(yù)先存儲由所述處理器及所述加速器執(zhí)行的任務(wù);同步標(biāo)志區(qū)域,存儲用于在所述處理器和所述加速器之間使各個動作同步的標(biāo)志;以及數(shù)據(jù)區(qū)域,保存所述處理器及所述加速器在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù);所述加速器按照所述命令區(qū)域中存儲的任務(wù)進(jìn)行動作,當(dāng)確認(rèn)到表示所述處理器的規(guī)定處理已結(jié)束的標(biāo)志被寫入所述同步標(biāo)志區(qū)域時,即使所述處理器正在執(zhí)行其他處理,也讀取被寫入所述數(shù)據(jù)區(qū)域的數(shù)據(jù)并執(zhí)行與該標(biāo)志對應(yīng)的任務(wù),從而開始加速處理,在所述加速處理結(jié)束后,將所述加速處理后的數(shù)據(jù)保存到所述數(shù)據(jù)區(qū)域,并且將表示該加速處理已結(jié)束的標(biāo)志寫入所述同步標(biāo)志區(qū)域,所述處理器確認(rèn)到表示所述加速處理已結(jié)束的標(biāo)志被寫入所述同步標(biāo)志區(qū)域后,即使所述加速器正在執(zhí)行其他處理,也開始與該標(biāo)志對應(yīng)的任務(wù)。
      [0042]發(fā)明的效果
      [0043]根據(jù)本發(fā)明的一個實施方式,在處理器及ACC相互的同步控制中不花費時間,能夠分別自主地進(jìn)行動作,所以在新連接ACC時,不需要對處理器擴(kuò)展命令集,并且能夠?qū)CC確保充分的數(shù)據(jù)供給能力,進(jìn)而降低ACC的控制系統(tǒng)開銷。
      【專利附圖】

      【附圖說明】
      [0044]圖1是表示本發(fā)明的實施方式的多核心處理器系統(tǒng)的構(gòu)成例的圖。
      [0045]圖2是表示本發(fā)明的實施方式的ACC的第I構(gòu)成例及包含ACC的處理器核心的構(gòu)成例的圖。
      [0046]圖3是表示本發(fā)明的實施方式的ACC的第2構(gòu)成例及包含ACC的處理器核心的構(gòu)成例的圖。
      [0047]圖4是表示本發(fā)明的實施方式的ACC的第3構(gòu)成例及包含ACC的處理器核心的構(gòu)成例的圖。
      [0048]圖5是表示本發(fā)明的實施方式的ACC的第4構(gòu)成例及包含ACC的處理器核心的構(gòu)成例的圖。
      [0049]圖6是表示本發(fā)明的實施方式的標(biāo)志寫入/確認(rèn)器的構(gòu)成例的圖。
      [0050]圖7是表示本發(fā)明的實施方式的標(biāo)志寫入/確認(rèn)器所進(jìn)行的標(biāo)志設(shè)置/檢查的動作概要的圖。
      [0051]圖8是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的參考例的圖。
      [0052]圖9是表示執(zhí)行參考例的程序時的處理流程的圖。
      [0053]圖10是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的第I例的圖。
      [0054]圖11是表示執(zhí)行第I例的程序時的處理流程的圖。
      [0055]圖12是表示執(zhí)行第I例的程序時的處理流程的變形例的圖。
      [0056]圖13是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的第2例的圖。
      [0057]圖14是表示執(zhí)行第2例的程序時的處理流程的圖。
      [0058]圖15是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的第3例的圖。
      [0059]圖16是表示執(zhí)行第3例的程序時的處理流程的圖。
      [0060]圖17是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的第4例的執(zhí)行時的處理流程的圖。
      [0061]圖18是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)中執(zhí)行的程序的第5例的執(zhí)行時的處理流程的圖。
      [0062]圖19是本發(fā)明的實施方式的并行化編譯器執(zhí)行的處理的流程圖。
      【具體實施方式】
      [0063]以下,參照【專利附圖】
      附圖
      【附圖說明】本發(fā)明的實施方式。
      [0064]圖1是表不本發(fā)明的實施方式的多核心處理器系統(tǒng)(處理器系統(tǒng))I的構(gòu)成例的圖。
      [0065]圖1所示的多核心處理器系統(tǒng)I設(shè)置在I個半導(dǎo)體芯片2上,除了通用處理器、DTU、存儲器以外,還具備包含ACC的多個處理器核心10-1~10-n、ACC20、數(shù)據(jù)傳送單元(Data Transfer Unit:DTU) 30、以及片內(nèi)(on chip)集中共用存儲器40、半導(dǎo)體芯片2外部的片外(off chip)集中共用存儲器50。各處理器核心10-1~10_n通過共用總線等處理器核心間耦合網(wǎng)(總線)連接。另外,可以具備片內(nèi)集中共用存儲器40和片外集中共用存儲器50的任一方或雙方。
      [0066]在本實施方式中,示出了各處理器核心10-1~10-n的構(gòu)造相同的同構(gòu)多核心處理器系統(tǒng)I的構(gòu)成例。因此,僅說明處理器核心10-1的構(gòu)造,而省略其他處理器核心10-2~10-n的說明。另外,本發(fā)明不僅能夠應(yīng)用于同構(gòu)多核心處理器系統(tǒng),也能夠應(yīng)用于異構(gòu)多核心處理器系統(tǒng)。
      [0067]處理器核心10-1具備:處理器11、加速器(ACC)12、DTU13、分散共用存儲器(Distributed Shared Memory:DSM) 14、本地存儲器(Local Memory:LM) 15、總線接口 16、FV寄存器(Frequency/Voltage c ontrol Register:FVR) 17。
      [0068]處理器11是執(zhí)行各種運算處理的中央處理裝置。
      [0069]ACC12是能夠高速且低耗電地處理特定功能的ACC。本實施方式的ACC12即使沒有來自處理器11的指示也自主地進(jìn)行動作。該ACC12的詳細(xì)情況留待后述。
      [0070]DTU13是具備后述的基于同步標(biāo)志檢查的命令串的執(zhí)彳丁、同步標(biāo)志的與入等功能的一種 Direct Memory Access ControIler (DMAC),是在 ACC12、DSM14、LMl5 或其他處理器核心10-2~10-n的DSM14之間執(zhí)行數(shù)據(jù)傳送的數(shù)據(jù)傳送裝置。本實施方式的DTU13通過來自處理器11的單一的指示開始動作,然后自主地進(jìn)行動作。該DTU13的詳細(xì)情況也留待后述。本地存儲器15保存僅由一個處理器使用的數(shù)據(jù),分散共用存儲器14保存由多個處理器共用的數(shù)據(jù)。
      [0071]DSM14是能夠從所有處理器核心10-1~10_n訪問的分散共用存儲器。處理器核心10-1~10-n所具備的各個DSM14配置于由全部處理器核心10_1~10_n共用的一個存儲器圖,經(jīng)由該存儲器圖,全部處理器10-1~10-n訪問各處理器核心10-1~10-n所具備的DSM14。該DSM14用于通過自處理器或其他處理器11或DTU13來接收/發(fā)送計算結(jié)果。該DSM14具備命令區(qū)域14-1、同步標(biāo)志區(qū)域14-2、數(shù)據(jù)區(qū)域14_3。
      [0072]此外,例如處理器核心10-1內(nèi)的LM15是僅能夠由處理器核心10_1的處理器11、ACC12、DTU13訪問、而不能從其他處理器核心10_2~10_n訪問的本地存儲器。該LM15具備命令區(qū)域15-1、同步標(biāo)志區(qū)域15-2、數(shù)據(jù)區(qū)域15-3。
      [0073]總線接口 16是用于在與其他處理器核心10-2~10_n、ACC20、DTU30、片內(nèi)集中共
      用存儲器40、片外集中共用存儲器50之間通信數(shù)據(jù)的接口。[0074]FVR17是用于執(zhí)行決定對處理器11的供給電壓和動作頻率的頻率及/或電源電壓控制的寄存器。
      [0075]ACC20是與各處理器核心10-1?10_n的處理器11的外部總線連接、代行處理器11的處理的GPU等加速器。
      [0076]DTU30是可附加的數(shù)據(jù)傳送裝置,與各處理器核心10-1?10_n的處理器11的外部總線連接,在與各處理器核心10-1?10-n的LM15及DSM14、他處理器核心上的DSM14、片內(nèi)集中共用存儲器40、片外集中共用存儲器50之間執(zhí)行數(shù)據(jù)的傳送,以及在與各處理器核心10-1?10-n的DSM14、ACC20、片內(nèi)集中共用存儲器40、片外集中共用存儲器50之間執(zhí)行數(shù)據(jù)的傳送。
      [0077]片內(nèi)集中共用存儲器40是與各處理器核心10-1?10-n連接、由全部處理器核心10-1?10-n共用的半導(dǎo)體芯片2上的存儲器。該片內(nèi)集中共用存儲器40具有命令區(qū)域40-1、同步標(biāo)志區(qū)域40-2、數(shù)據(jù)區(qū)域40-3。片內(nèi)集中共用存儲器40保存無法保存到DSM的共用數(shù)據(jù)、動態(tài)調(diào)度所需的任務(wù)隊列等信息。
      [0078]片外集中共用存儲器50是與各處理器核心10-1?10-n連接、由全部處理器核心10-1?10-n共用的半導(dǎo)體芯片2外部的可附加的存儲器。該片外集中共用存儲器50根據(jù)需要可以具有命令區(qū)域、同步標(biāo)志區(qū)域、數(shù)據(jù)區(qū)域(均未圖示)。此外,片外集中共用存儲器50與片內(nèi)集中共用存儲器40、DSM14及其他多核心處理器系統(tǒng)(多處理器芯片)共存的情況下,可以構(gòu)成為也能夠從其他多核心處理器訪問。片外集中共用存儲器50保存片內(nèi)集中共用存儲器40中放不下的數(shù)據(jù)。
      [0079]在以上所示的構(gòu)成中,在命令區(qū)域14-1、15-1、40_1中保存由后述的并行化編譯器生成的處理器11、ACC12、DTU13用的命令(程序)。ACC12用的命令指的是,例如針對ACC12的加法、乘法那樣的各種運算命令、標(biāo)志設(shè)置命令、標(biāo)志檢查命令、以及基于標(biāo)志檢查的命令串執(zhí)行開始命令。此外,DTU13用的命令指的是,例如針對DTU13的數(shù)據(jù)傳送的命令、標(biāo)志設(shè)置命令、標(biāo)志檢查命令、以及基于標(biāo)志檢查的命令串執(zhí)行開始命令。
      [0080]另外,由處理器核心10-1執(zhí)行的命令原則上配置在處理器核心10-1的命令區(qū)域14-1、15-1。但是,命令的尺寸較大的情況下,配置在片內(nèi)集中共用存儲器40的命令區(qū)域40-1。這種情況下,處理器核心10-1讀取命令區(qū)域40-1中配置的命令(加載)。另一方面,ACC20、DTU30用的命令配置在片內(nèi)集中共用存儲器40的命令區(qū)域40_1或片外集中共用存儲器50的命令區(qū)域(未圖示)。
      [0081]同樣,在同步標(biāo)志區(qū)域14-2、15-2、40_2中保存由并行化編譯器生成的處理器11、ACC12、DTU13用的同步標(biāo)志。同步標(biāo)志指的是,處理器11、ACC12、DTU13相互取得同步并且協(xié)同地動作所使用的標(biāo)志(數(shù)據(jù))。在同步標(biāo)志區(qū)域14-2、15-2、40-2中配置由處理器核心10-1執(zhí)行的每個處理集合(例如任務(wù))的同步標(biāo)志。處理集合為循環(huán)處理的情況下,可以根據(jù)循環(huán)處理的回轉(zhuǎn)次數(shù)來配置賦予了版本編號的同步標(biāo)志。詳細(xì)情況留待后述。另一方面,ACC20、DTU30用的同步標(biāo)志配置在片內(nèi)集中共用存儲器40的同步標(biāo)志區(qū)域40_2或片外集中共用存儲器50的同步標(biāo)志區(qū)域(未圖示)。
      [0082]在數(shù)據(jù)區(qū)域14-3、15-3、40-3中,保存處理器11、ACC12、DTU13在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù)。另一方面,ACC20、DTU30在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù)保存在片內(nèi)集中共用存儲器40的數(shù)據(jù)區(qū)域40-3或片外集中共用存儲器50的同步標(biāo)志區(qū)域(未圖示)。
      [0083]如以上那樣,處理器核心10-1上的處理器11、ACC12、DTU13共用自處理器核心10-1 上的 DSM14、及 LMl5ο
      [0084]此外,各處理器核心10-1?10-n上的處理器11、ACC12、DTU13共用各處理器核心10-1?10-n上的DSM14、片內(nèi)集中共用存儲器40。
      [0085]另外,多核心處理器系統(tǒng)I根據(jù)自系統(tǒng)的用途,也可以僅具有DSM14、LM15、片內(nèi)集中共用存儲器40、片外集中共用存儲器50中的必要的存儲器。
      [0086]此外,多核心處理器系統(tǒng)I有時僅由I個處理器核心構(gòu)成,這種情況下,不需要ACC20、DTU30等。進(jìn)而,在多核心處理器系統(tǒng)I的多個處理器核心10_1?10_n中,有時包含不具有ACC12的通用處理器核心。
      [0087]圖2是表示本發(fā)明的實施方式的ACC12的第I構(gòu)成例及包含ACC12的處理器核心的構(gòu)成例的圖。另外,在以下的說明中,對于與圖1同樣的構(gòu)成要素賦予同一符號并適當(dāng)省略重復(fù)的說明。在圖2中,黑箭頭表示同步標(biāo)志的通信。白箭頭表示用于進(jìn)行除了同步標(biāo)志以外的命令及數(shù)據(jù)的傳送的通信。各箭頭的粗細(xì)表示通信速度的程度。
      [0088]在圖2中,ACC12具備:ACC本體121、ACC寄存器/本地存儲器122 (以下簡稱為“ACC寄存器122”)、加載/儲存單元123、控制寄存器群組124、FVR125,經(jīng)由處理器核心內(nèi)耦合網(wǎng)(總線或開關(guān)網(wǎng)絡(luò)等)18與處理器11、LM15、DSM14、DTU13、FVRl7連接。
      [0089]ACC本體121是使用LM15或DSM14中保存的ACC命令串而只執(zhí)行特定處理的ACC本體。另外,ACC命令串指的是,預(yù)先由并行化編譯器生成的ACC12用的程序(依次執(zhí)行多個命令串的程序)。
      [0090]ACC寄存器122是用于對ACC本體121供給數(shù)據(jù)的寄存器等存儲部。特別是,ACC為ACC20(GPU等,參照圖1)的情況下,ACC寄存器指的是ACC20獨自具有的本地存儲器。該ACC寄存器122僅能夠由ACC本體121及加載/儲存單元123訪問,不能從經(jīng)由處理器核心內(nèi)耦合網(wǎng)18連接的處理器11等訪問。另外,也可以是ACC寄存器122能夠由ACC12外部的構(gòu)成(例如DTU13)直接訪問。
      [0091]該ACC寄存器122優(yōu)選為向ACC本體121高速地供給數(shù)據(jù)的矢量寄存器等高速寄存器。
      [0092]加載/儲存單元123是在ACC寄存器122和DSM14、LMl5之間執(zhí)行數(shù)據(jù)的傳送的數(shù)據(jù)傳送裝置。該加載/儲存單元123通過被稱為矢量加載的命令,將LM15或DSM14內(nèi)的連續(xù)的數(shù)據(jù)讀取到ACC寄存器122。此外,通過被稱為矢量儲存的命令,將ACC寄存器122內(nèi)的連續(xù)的數(shù)據(jù)保存到LM15或DSM14 (儲存)。該加載/儲存單元123具備標(biāo)志寫入/確認(rèn)器123A。標(biāo)志寫入/確認(rèn)器123A是向LM15或DSM14等存儲器上的規(guī)定(任意)的區(qū)域(地址空間)的地址(以下稱為“規(guī)定的地址”)寫入(設(shè)置)同步標(biāo)志、或者確認(rèn)(檢查)被寫入存儲器上的規(guī)定的地址的同步標(biāo)志的功能部。
      [0093]控制寄存器群組(file) 124是由多個控制寄存器構(gòu)成的寄存器群。該控制寄存器群組124包括用于控制ACC本體121的控制寄存器和用于控制加載/儲存單元123的控制
      寄存器。
      [0094]FVR125是用于決定對于ACC本體121的供給電壓和時鐘頻率、并且進(jìn)行具有電源切斷功能的頻率/電源電壓(FV)控制的可附加的寄存器。ACC12在標(biāo)志檢查開始后,根據(jù)FVR125中設(shè)定的值,降低或切斷向ACC12的供給電壓和時鐘頻率。由此,能夠進(jìn)行電力控制。
      [0095]以上所示的構(gòu)成的ACC12與處理器11、DTU13協(xié)同地進(jìn)行動作。簡單說明該協(xié)同動作。
      [0096](ACC12和處理器11的協(xié)同動作)
      [0097]首先,作為ACC12和處理器11的協(xié)同動作的一例,說明加載/儲存單元123向LM15或DSM14保存數(shù)據(jù)后、由處理器11開始使用了所保存的數(shù)據(jù)的處理的動作。
      [0098]加載/儲存單元123將由ACC本體121保存到ACC寄存器122的加速處理后的數(shù)據(jù)保存到LM15的數(shù)據(jù)區(qū)域15-3或DSM14的數(shù)據(jù)區(qū)域14_3。這樣,標(biāo)志寫入/確認(rèn)器123A將與該儲存處理對應(yīng)的同步標(biāo)志(數(shù)據(jù))寫入LM15或DSM14的規(guī)定的地址、即15_2或14_2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,處理器11反復(fù)檢查對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15-2或14-2)。處理器11確認(rèn)到(檢測)被寫入的同步標(biāo)志后,使用15-3或14-3中保存的數(shù)據(jù),開始自身的處理。這樣,ACC12和處理器11進(jìn)行協(xié)同動作。
      [0099]接著,作為ACC12和處理器11的協(xié)同動作的另一例,說明處理器11向LMl5或DSM14保存數(shù)據(jù)后、由加載/儲存單元123開始將所保存的數(shù)據(jù)向ACC寄存器122讀取的動作。
      [0100]處理器11將處理后的數(shù)據(jù)保存到LM15的數(shù)據(jù)區(qū)域15-3或DSM14的數(shù)據(jù)區(qū)域14-3。這樣,處理器11將與該保存處理對應(yīng)的同步標(biāo)志(數(shù)據(jù))寫入LM15或DSM14的規(guī)定的地址、即15-2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,標(biāo)志寫入/確認(rèn)器123A反復(fù)確認(rèn)對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14-2)。標(biāo)志寫入/確認(rèn)器123A確認(rèn)到(檢測)被寫入的同步標(biāo)志后,將15-3或14_3中保存的數(shù)據(jù)保存到ACC寄存器122。另外,ACC本體121使用ACC寄存器122中保存的數(shù)據(jù)來開始自身的處理。這樣,ACC12和處理器11協(xié)同動作。
      [0101](ACC12和DTU13的協(xié)同動作)
      [0102]首先,作為ACC12和DTU13的協(xié)同動作的一例,說明由DTU13結(jié)束向LM15或DSM14的數(shù)據(jù)傳送處理后、由加載/儲存單元123開始將傳送的數(shù)據(jù)向ACC寄存器122讀取的動作。
      [0103]DTU13結(jié)束(例如從片內(nèi)集中共用存儲器40)向LM15的數(shù)據(jù)區(qū)域15_3的數(shù)據(jù)傳送后,將與該數(shù)據(jù)傳送處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址或由命令指定的地址、即15-2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,標(biāo)志寫入/確認(rèn)器123A反復(fù)確認(rèn)對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14-2)。標(biāo)志寫入/確認(rèn)器123A確認(rèn)到被寫入的同步標(biāo)志后,加載/儲存單元123開始將傳送到LM15的數(shù)據(jù)區(qū)域15-3的數(shù)據(jù)向ACC寄存器122讀取。然后,ACC本體121執(zhí)行加速處理。具體地說,依次執(zhí)行ACC12用的程序中包含的標(biāo)志檢查命令、數(shù)據(jù)加載命令、加速處理命令。這樣,ACC12和DTU13協(xié)同動作。
      [0104]接著,作為ACC12和DTU13的協(xié)同動作的另一例,說明由加載/儲存單元123向LMl5或DSM14保存數(shù)據(jù)后、由DTU13開始使用了所保存的數(shù)據(jù)的處理的動作。
      [0105]加載/儲存單元123將由ACC本體121保存到ACC寄存器122的加速處理后的數(shù)據(jù)保存到LM15的數(shù)據(jù)區(qū)域15-3或DSM14的數(shù)據(jù)區(qū)域14_3。這樣,標(biāo)志寫入/確認(rèn)器123A將與該儲存處理對應(yīng)的同步標(biāo)志(數(shù)據(jù))寫入LM15或DSM14的規(guī)定的地址、即15_2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,DTU13反復(fù)檢查對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15-2或14-2)。DTU13確認(rèn)到(檢測)被寫入的同步標(biāo)志后,使用15-3或14-3中保存的數(shù)據(jù)來開始數(shù)據(jù)傳送處理。這樣,ACC12和DTU13協(xié)同動作。
      [0106]此外,說明處理器11和DTU13的協(xié)同動作。DTU13將處理器核心中處理所需的數(shù)據(jù)從其他處理器核心的分散共用存儲器14、其他處理器核心的片內(nèi)集中共用存儲器40或片外集中共用存儲器50讀取到自處理器核心的本地存儲器15或分散共用存儲器14,或者將自處理器核心的本地存儲器15或分散共用存儲器14中保存的數(shù)據(jù)傳送到其他存儲器,該動作通過由處理器11將最初的數(shù)據(jù)傳送指示設(shè)定到DTU13,從本地存儲器15等讀取DTU13的自主動作所需的程序而執(zhí)行。關(guān)于該數(shù)據(jù)傳送中的處理器11和DTU13的協(xié)作動作,在專利文獻(xiàn)4中有詳細(xì)記載。
      [0107]如以上所示,第I構(gòu)成例的ACC12、處理器11、DTU13通過針對LM15或DSM14的標(biāo)志設(shè)置/檢查來取得同步而進(jìn)行協(xié)同動作。
      [0108]圖3是表示本發(fā)明的實施方式的ACC12的第2構(gòu)成例及包含ACC12的處理器核心的構(gòu)成例的圖。另外,在以下的說明中,對于與圖1及圖2同樣的構(gòu)成要素賦予同一符號并適當(dāng)省略重復(fù)的說明。
      [0109]圖3所示的ACC12不具備加載/儲存單元,因此與圖2所示的ACC12的不同點在于,在ACC本體121中具備標(biāo)志寫入/確認(rèn)器121A(相當(dāng)于圖2中的123A)。另外,標(biāo)志寫入/確認(rèn)器121A與標(biāo)志寫入/確認(rèn)器123A同樣,具有向LM15或DSM14等存儲器上的規(guī)定的地址寫入同步標(biāo)志、或者確認(rèn)被寫入到存儲器上的規(guī)定的地址的同步標(biāo)志的功能。此外,處理器11或DTU13通過向ACC寄存器122讀寫數(shù)據(jù),取代圖2的加載/儲存單元123的功倉泛。
      [0110]以上所示的構(gòu)成的ACC12與處理器11、DTU13協(xié)同地動作。簡單說明該協(xié)同動作。
      [0111](ACC12和處理器11的協(xié)同動作)
      [0112]首先,作為ACC12和處理器11的協(xié)同動作的一例,說明由處理器11結(jié)束規(guī)定的處理后、由ACC12開始處理的動作。
      [0113]處理器11結(jié)束規(guī)定的處理后,將處理結(jié)果的數(shù)據(jù)寫入到ACC寄存器122。然后,處理器11將與該規(guī)定的處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址、即15_2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,標(biāo)志寫入/確認(rèn)器121A反復(fù)檢查對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14_2)。由標(biāo)志寫入/確認(rèn)器121A確認(rèn)到被寫入的同步標(biāo)志后,ACC本體121使用ACC寄存器122中保存的處理器11的處理結(jié)果的數(shù)據(jù)來開始自身的處理。具體地說,依次執(zhí)行ACC12用的程序中包含的標(biāo)志檢查命令、數(shù)據(jù)加載命令、加速處理命令。這樣,ACC12和處理器11協(xié)同動作。
      [0114]接著,作為ACC12和處理器11的協(xié)同動作的另一例,說明由ACC12結(jié)束規(guī)定的處理后、由處理器11開始處理的動作。
      [0115]由ACC本體121結(jié)束處理后,將處理結(jié)果的數(shù)據(jù)寫入ACC寄存器122。然后,標(biāo)志寫入/確認(rèn)器121A將與該規(guī)定的處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址、即15-2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址的期間,處理器11反復(fù)檢查對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14_2)。處理器11確認(rèn)到被寫入的同步標(biāo)志后,讀取ACC寄存器122中保存的處理結(jié)果的數(shù)據(jù),開始自身的處理。這樣,ACC12和處理器11協(xié)同動作。
      [0116](ACC12和DTU13的協(xié)同動作)
      [0117]接下來,作為ACC12和DTU13的協(xié)同動作的一例,說明由ACC本體121結(jié)束處理后、由DTU13開始數(shù)據(jù)傳送的動作。
      [0118]ACC本體121結(jié)束規(guī)定的處理后,將處理結(jié)果的數(shù)據(jù)發(fā)送到ACC寄存器122。然后,標(biāo)志寫入/確認(rèn)器121A將與該規(guī)定的處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址、即15-2或14-2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,DTU13在其他數(shù)據(jù)傳送處理結(jié)束后,反復(fù)確認(rèn)對LM15或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14-2)。DTU13確認(rèn)到被寫入的同步標(biāo)志后,開始讀取ACC寄存器122中保存的數(shù)據(jù)并向LMl5或DSM14傳送的處理。這樣,ACC12和DTU13協(xié)同動作。
      [0119]接下來,作為ACC12和DTU13的協(xié)同動作的一例,說明由DTU13結(jié)束數(shù)據(jù)傳送后、由ACC本體121開始處理的動作。
      [0120]DTU13通過規(guī)定的數(shù)據(jù)傳送處理,將數(shù)據(jù)寫入ACC寄存器122。然后,DTU13將與該規(guī)定的處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址、即15_2或14_2。到同步標(biāo)志被寫入LM15或DSM14的規(guī)定的地址為止的期間,標(biāo)志寫入/確認(rèn)器121A反復(fù)確認(rèn)對LMl5或DSM14的同步標(biāo)志分配的規(guī)定的地址(15_2或14_2)。標(biāo)志寫入/確認(rèn)器121A確認(rèn)到被寫入的同步標(biāo)志后,ACC本體121使用被寫入ACC寄存器122的數(shù)據(jù),開始自身的處理。具體地說,依次執(zhí)行ACC12用的程序中包含的標(biāo)志檢查命令、數(shù)據(jù)加載命令、加速處理命令。這樣,ACC12和DTU13協(xié)同動作。
      [0121]如以上那樣,第2構(gòu)成例的ACC12、處理器11、DTU13通過針對LM15或DSM14的標(biāo)志設(shè)置/檢查,取得同步而進(jìn)行協(xié)同動作。
      [0122]圖4是表示本發(fā)明的實施方式的ACC12的第3構(gòu)成例及包含ACC12的處理器核心的構(gòu)成例的圖。另外,在以下的說明中,對于與圖1?圖3所示的構(gòu)成要素相同的構(gòu)成要素賦予同一符號,并適當(dāng)省略重復(fù)的說明。
      [0123]圖4所示的ACC12具有具備標(biāo)志寫入/確認(rèn)器121A的ACC本體121和具備標(biāo)志寫入/確認(rèn)器123A的加載/儲存單元123的雙方。
      [0124]在以上所示的構(gòu)成的ACC12中,ACC本體121和加載/儲存單元123分別自主地且相互協(xié)同地動作。此外,ACC本體121和加載/儲存單元123還與處理器11、DTU13協(xié)同地動作。簡單說明該協(xié)同動作。
      [0125](ACC本體121和加載/儲存單元123的協(xié)同動作I)
      [0126]首先,作為ACC本體121和加載/儲存單元123的協(xié)同動作的第I例,說明由加載/儲存單元123結(jié)束將LM15內(nèi)的數(shù)據(jù)讀取到ACC寄存器122的處理后、由ACC本體121開始處理的動作。
      [0127]加載/儲存單元123執(zhí)行將LM15內(nèi)的數(shù)據(jù)讀取到ACC寄存器122的處理。然后,標(biāo)志寫入/確認(rèn)器123A將與該加載處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址。在此期間,標(biāo)志寫入/確認(rèn)器121A反復(fù)檢查是否向LM15或DSM14寫入了同步標(biāo)志。然后,標(biāo)志寫入/確認(rèn)器121A確認(rèn)到被寫入的同步標(biāo)志后,ACC本體121使用ACC寄存器122中保存的數(shù)據(jù),開始自身的處理。這樣,ACC本體121和加載/儲存單元123協(xié)同動作。
      [0128](ACC本體121和加載/儲存單元123的協(xié)同動作2)
      [0129]接下來,作為ACC本體121和加載/儲存單元123的協(xié)同動作的第2例,說明由ACC本體121結(jié)束處理后、由加載/儲存單元123將處理后的數(shù)據(jù)保存到LM15的動作。
      [0130]ACC本體121結(jié)束規(guī)定的處理后,將處理結(jié)果的數(shù)據(jù)發(fā)送給ACC寄存器122。然后,標(biāo)志寫入/確認(rèn)器121A將與該規(guī)定的處理對應(yīng)的同步標(biāo)志寫入LM15或DSM14的規(guī)定的地址。在此期間,標(biāo)志寫入/確認(rèn)器123A反復(fù)檢查是否向LM15或DSM14寫入了同步標(biāo)志。標(biāo)志與入/確認(rèn)器123A確認(rèn)到被與入的同步標(biāo)志后,加載/儲存單兀123開始將ACC寄存器122中保存的數(shù)據(jù)向LM15或DSM14傳送的處理。然后,標(biāo)志寫入/確認(rèn)器123A向由命令指定的LM15、自處理器核心或他處理器核心上的DSM14的規(guī)定的地址寫入同步標(biāo)志。這樣,ACC本體121和加載/儲存單元123協(xié)同動作。
      [0131]如以上所示,在第3構(gòu)成例的ACC12中,ACC本體121和加載/儲存單元123通過經(jīng)由LM15或DSM14的標(biāo)志設(shè)置/檢查,相互取得同步而進(jìn)行協(xié)同動作。當(dāng)然,也能夠與處理器11、DTU13取得同步而進(jìn)行協(xié)同動作。由此,在ACC本體121正在執(zhí)行加速處理時,力口載/儲存單元123能夠讀取/保存數(shù)據(jù)。此外,還能夠?qū)μ幚砥?1、DTU13、ACC本體121、加載/儲存單元123分別進(jìn)行獨立的頻率/電源控制(FV控制)。
      [0132]圖5是表示本發(fā)明的實施方式的ACC12的第4構(gòu)成例及包含ACC12的處理器核心的構(gòu)成例的圖。另外,在以下的說明中,對于與圖4所示的構(gòu)成要素相同的構(gòu)成要素賦予同一符號,并適當(dāng)省略重復(fù)的說明。
      [0133]圖5所示的ACC12與圖4所示的ACC12的不同點在于,具有ACC內(nèi)標(biāo)志授受寄存器 126。
      [0134]ACC內(nèi)標(biāo)志授受寄存器126是用于供標(biāo)志寫入/確認(rèn)器121A、123A設(shè)置及檢查同步標(biāo)志的ACC12內(nèi)部的寄存器。
      [0135]在以上所示的構(gòu)成的ACC12中,ACC本體121和加載/儲存單元123分別自主地且相互協(xié)同地動作。此外,ACC本體121和加載/儲存單元123還與處理器11、DTU13協(xié)同地動作。簡單說明該協(xié)同動作。
      [0136](ACC本體121和加載/儲存單元123的協(xié)同動作I)
      [0137]首先,作為ACC本體121和加載/儲存單元123的協(xié)同動作的第I例,說明由加載/儲存單元123結(jié)束將LM15內(nèi)的數(shù)據(jù)讀取到ACC寄存器122的處理后、由ACC本體121開始處理的動作。
      [0138]加載/儲存單元123執(zhí)行將LM15內(nèi)的數(shù)據(jù)讀取到ACC寄存器122的處理。然后,標(biāo)志寫入/確認(rèn)器123A將與該加載處理對應(yīng)的同步標(biāo)志寫入ACC內(nèi)標(biāo)志授受寄存器126。在此期間,ACC本體121執(zhí)行由命令指定的其他處理,在其他處理結(jié)束后,執(zhí)行標(biāo)志檢查命令。具體地說,標(biāo)志寫入/確認(rèn)器121A反復(fù)檢查是否向ACC內(nèi)標(biāo)志授受寄存器126寫入了同步標(biāo)志。然后,標(biāo)志寫入/確認(rèn)器121A確認(rèn)到被寫入的同步標(biāo)志后,ACC本體121使用ACC寄存器122中保存的數(shù)據(jù),開始自身的處理。自身的處理結(jié)束后,將處理結(jié)果保存到ACC寄存器122。然后,在執(zhí)行標(biāo)志設(shè)置命令時,將由命令指定的值寫入ACC內(nèi)標(biāo)志授受寄存器126的由命令指定的位置(地址)。這樣,ACC本體121和加載/儲存單元123協(xié)同動作。[0139](ACC本體121和加載/儲存單元123的協(xié)同動作2)
      [0140]接下來,作為ACC本體121和加載/儲存單元123的協(xié)同動作的第2例,說明由ACC本體121結(jié)束處理后、由加載/儲存單元123將處理后的數(shù)據(jù)保存到LM15的動作。
      [0141]ACC本體121結(jié)束規(guī)定的處理后,將處理結(jié)果的數(shù)據(jù)發(fā)送給ACC寄存器122。然后,標(biāo)志與入/確認(rèn)器121A將與該規(guī)定的處理對應(yīng)的同步標(biāo)志與入ACC內(nèi)標(biāo)志授受寄存器126。在此期間,標(biāo)志寫入/確認(rèn)器123A反復(fù)檢查是否向ACC內(nèi)標(biāo)志授受寄存器126寫入了同步標(biāo)志。標(biāo)志寫入/確認(rèn)器123A確認(rèn)到被寫入的同步標(biāo)志后,加載/儲存單元123開始將ACC寄存器122中保存的數(shù)據(jù)向LM15或DSM14傳送的處理。這樣,ACC本體121和加載/儲存單元123協(xié)同動作。
      [0142]如以上那樣,在第4構(gòu)成例的ACC12中,ACC本體121和加載/儲存單元123通過經(jīng)由ACC內(nèi)標(biāo)志授受寄存器126的標(biāo)志設(shè)置/檢查,相互取得同步而進(jìn)行協(xié)同動作。因此,與經(jīng)由前述的第I?第3構(gòu)成例的LM15或DSM14的標(biāo)志設(shè)置/檢查相比,能夠降低標(biāo)志設(shè)置/檢查的系統(tǒng)開銷。
      [0143]圖6是表示本發(fā)明的實施方式的標(biāo)志寫入/確認(rèn)器121A(123A)的構(gòu)成例的圖。如圖6所示,標(biāo)志寫入/確認(rèn)器121A具備地址寄存器21、標(biāo)志值寄存器22、總線接口 23、條件值寄存器24、比較器25、26、定序器27。
      [0144]該標(biāo)志寫入/確認(rèn)器121A(123A)的動作分為寫入同步標(biāo)志的動作(標(biāo)志設(shè)置)和確認(rèn)同步標(biāo)志的動作(標(biāo)志檢查),所以分別說明這些動作。
      [0145](標(biāo)志設(shè)置)
      [0146]標(biāo)志寫入/確認(rèn)器12IA向LMl5或DSM14等存儲器上的規(guī)定的地址寫入同步標(biāo)志。具體地說,處理器11向標(biāo)志寫入/確認(rèn)器121A輸入標(biāo)志地址(應(yīng)該寫入同步標(biāo)志的存儲器上的地址)、標(biāo)志值(應(yīng)該寫入的同步標(biāo)志的值)及標(biāo)志設(shè)置的指示,標(biāo)志寫入/確認(rèn)器121A按照該指示進(jìn)行動作。
      [0147]這樣,向地址寄存器21和標(biāo)志值寄存器22分別寫入標(biāo)志地址和標(biāo)志值。此外,向定序器27寫入標(biāo)志設(shè)置的指示。總線接口 23基于這些輸入的信息,發(fā)行總線請求,并向被指定的存儲器上的地址寫入被指定的同步標(biāo)志的值。
      [0148](標(biāo)志檢查)
      [0149]另一方面,標(biāo)志寫入/確認(rèn)器121A確認(rèn)對LM15或DSM14等存儲器上的規(guī)定的地址設(shè)置的同步標(biāo)志。具體地說,首先,標(biāo)志寫入/確認(rèn)器121A輸入標(biāo)志地址(應(yīng)該確認(rèn)的存儲器上的地址)、標(biāo)志值(應(yīng)該確認(rèn)的同步標(biāo)志的值)及標(biāo)志檢查的指示。
      [0150]這樣,向地址寄存器21和標(biāo)志值寄存器22分別寫入了標(biāo)志地址和標(biāo)志值。此外,向定序器27寫入了標(biāo)志檢查的指示??偩€接口 23基于這些輸入的信息中的標(biāo)志地址及標(biāo)志檢查指示,發(fā)行總線請求,并讀取被指定的存儲器上的地址所保存的同步標(biāo)志的值。
      [0151]由總線接口 23讀取的標(biāo)志值(以下稱為“讀取標(biāo)志值”)被發(fā)送到比較器26。比較器26比較讀取標(biāo)志值和標(biāo)志值寄存器22的標(biāo)志值。兩者一致的情況下,將一致的意思輸出至定序器27,兩者不一致的情況下,將不一致的意思輸出至定序器27。定序器27在比較器26的輸出結(jié)果不一致的情況下,向總線接口 23請求再次讀取。另一方面,比較器26的輸出結(jié)果一致的情況下,通知處理結(jié)束。
      [0152]另一方面,確認(rèn)同步標(biāo)志的值是否與規(guī)定的條件值一致的情況下,處理器11進(jìn)一步向標(biāo)志寫入/確認(rèn)器121A輸入同步標(biāo)志的條件值。通過指定條件值,能夠通知特定處理的指示。這里的特定處理指的是,在同步標(biāo)志的值為條件值的情況下執(zhí)行的處理,例如與圖
      2的控制寄存器群組124的值對應(yīng)的處理。這樣,向條件值寄存器24寫入了同步標(biāo)志的條件值。這種情況下,由總線接口 23讀取的讀取標(biāo)志值被發(fā)送至比較器25。比較器25比較讀取的標(biāo)志值和條件值寄存器24中保存的條件值。兩者一致的情況下,將一致的意思輸出至定序器27。此外,兩者不一致的情況下,將不一致的意思輸出至定序器27。定序器27在比較器25的輸出結(jié)果不一致的情況下,向總線接口 23請求再次讀取。另一方面,比較器25的輸出結(jié)果一致的情況下,通知特定處理的指示。
      [0153]作為補充,標(biāo)志寫入/確認(rèn)器121A向LM15或DSM14等存儲器上的規(guī)定的地址寫入同步標(biāo)志的情況下,通過變更被寫入的地址,能夠?qū)懭攵鄠€同步標(biāo)志。即,根據(jù)ACC12所執(zhí)行的處理的進(jìn)行狀況,能夠向同步標(biāo)志區(qū)域?qū)懭?輸出)表示進(jìn)行經(jīng)過的不同的多個標(biāo)志。各標(biāo)志與后續(xù)于ACC12執(zhí)行的處理而應(yīng)該由處理器11或DTU13執(zhí)行的處理建立對應(yīng)。由此,例如處理器11能夠開始與由ACC12寫入到同步標(biāo)志區(qū)域的標(biāo)志建立了對應(yīng)的、應(yīng)該后續(xù)執(zhí)行的處理。另外,處理器11和DTU13也同樣,能夠根據(jù)自身所執(zhí)行的處理的進(jìn)行狀況,向同步標(biāo)志區(qū)域?qū)懭氡硎具M(jìn)行經(jīng)過的不同的多個標(biāo)志。
      [0154]圖7是表示本發(fā)明的實施方式的標(biāo)志寫入/確認(rèn)器121A(123A)的標(biāo)志設(shè)置/檢查的動作的概要的圖。在此,將標(biāo)志設(shè)置/檢查的動作分為7個階段來說明。
      [0155]階段(O)是初始設(shè)定的階段。即,在LM15的同步標(biāo)志區(qū)域15_2中確保標(biāo)志變量A、標(biāo)志變量B用的存儲器區(qū)域。標(biāo)志變量A、B的值用i (i = O等)來預(yù)先初始化。
      [0156]在階段⑴中, 處理器11向標(biāo)志變量A的值寫入(i+1)。在階段⑵中,DTU13在階段(I)的前后反復(fù)檢查標(biāo)志變量A的值是否變化為(i+1)。
      [0157]在階段⑶中,在標(biāo)志變量A的值變化為(i+1)的情況下,DTU13執(zhí)行數(shù)據(jù)傳送。在階段(4)中,DTU13結(jié)束數(shù)據(jù)傳送后,向標(biāo)志變量B的值寫入(i+1)。
      [0158]在階段(5)中,ACC12在階段(4)的前后反復(fù)檢查標(biāo)志變量B的值是否變化為(i+1) ο在階段(6)中,標(biāo)志變量B的值變化為(i+1)的情況下,ACC12執(zhí)行自身應(yīng)該執(zhí)行的加速處理。
      [0159]如以上所示,處理器11和DTU13通過標(biāo)志變量A進(jìn)行協(xié)同動作。同樣地,DTU13和ACC12通過標(biāo)志變量B進(jìn)行協(xié)同動作。即,處理器11、ACC12、DTU13通過LM15的同步標(biāo)志區(qū)域15-2中保存的標(biāo)志變量A、B進(jìn)行協(xié)同動作。
      [0160]另外,標(biāo)志變量A、B除了 LM15以外,也可以保存在DSM14、片內(nèi)集中共用存儲器40、片外集中共用存儲器50中。例如,處理器核心10-1的DTU13可以向片內(nèi)集中共用存儲器40的同步標(biāo)志區(qū)域40-2寫入同步標(biāo)志。這種情況下,其他處理器核心10-2~10-n的DTU13確認(rèn)被寫入同步標(biāo)志區(qū)域40-2的同步標(biāo)志。由此,不同的處理器核心10-1~10_n彼此通過標(biāo)志變量協(xié)同地動作。
      [0161]圖8是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的參考例的圖。在此,首先說明通過以往的手法執(zhí)行的程序。
      [0162]在圖8所示的程序80中,外側(cè)for語句是用于由DTU13讀取數(shù)據(jù)、以及保存內(nèi)側(cè)for語句的處理結(jié)果數(shù)據(jù)的循環(huán)語句。另一方面,內(nèi)側(cè)for語句是用于由ACC12對外側(cè)for語句讀取的數(shù)據(jù)執(zhí)行加速處理的循環(huán)語句。[0163]外側(cè)for語句內(nèi)的DTU加載語句是用于由DTU13從片外集中共用存儲器50向LM15讀取ACC12能夠處理的量的數(shù)據(jù)的命令語句。內(nèi)側(cè)for語句內(nèi)的加速器加載語句是用于由ACC12將被讀取到LM15的數(shù)據(jù)的一部分讀取到ACC寄存器122的命令語句。運算語句是用于由ACC12使用通過加速器加載語句讀取的數(shù)據(jù)來進(jìn)行運算的命令語句。加速器儲存語句是用于由ACC12將運算語句的運算結(jié)果保存到LM15的命令語句。下一重復(fù)的準(zhǔn)備語句是用于下一循環(huán)的準(zhǔn)備處理(下一數(shù)據(jù)的基礎(chǔ)地址計算、循環(huán)計數(shù)運算等)的命令語句。外側(cè)for語句內(nèi)的DTU儲存語句是用于由DTU13將LM15中保存的運算結(jié)果的數(shù)據(jù)保存到片外集中共用存儲器50的命令語句。在圖8的程序中,作為保存應(yīng)該由ACC處理的數(shù)據(jù)、以及由ACC處理后的數(shù)據(jù)的存儲器而使用LM15,但是當(dāng)然也可以替代LM15而使用DSM14。具體地說,在擁有LM15的處理器核心(例如處理器核心10-1)在本地利用的數(shù)據(jù)的情況下可以使用LM15,在與其他處理器核心10-1~10-n共用的數(shù)據(jù)的情況下能夠使用DSM14。另外,LMl5和DSM14由編譯器分開使用。
      [0164]圖9是表示執(zhí)行參考例的程序時的處理流程的圖。
      [0165]首先,在步驟901中,處理器11對DTU13發(fā)出驅(qū)動命令(901)。然后,在步驟902中,DTU13開始驅(qū)動,將ACC12能夠處理的量的數(shù)據(jù)從片外集中共用存儲器50讀取到LM15(902)。DTU13結(jié)束加載處理后,向處理器11通知加載處理的結(jié)束。
      [0166]在步驟903中,從DTU13接受到該通知的處理器11對ACC12發(fā)出驅(qū)動命令(903)。然后,在步驟904中,ACC12開始驅(qū)動,使用步驟902中讀取的數(shù)據(jù)的一部分進(jìn)行運算,并將運算結(jié)果保存到LM15(904)。 ACC12結(jié)束一系列處理后,向處理器11通知處理結(jié)束。
      [0167]在步驟905中,從ACC12接受到該通知的處理器11執(zhí)行下一重復(fù)處理的準(zhǔn)備(905)。然后,在步驟906中,對ACC12發(fā)出驅(qū)動命令(906)。然后,將步驟903~906的處理重復(fù)內(nèi)側(cè)for語句的循環(huán)的次數(shù)。
      [0168]結(jié)束內(nèi)側(cè)for語句的循環(huán)處理后,在步驟907中,處理器11對DTU13發(fā)出驅(qū)動命令(907)。這樣,在步驟908中,DTU13開始驅(qū)動,將LM15中保存的運算結(jié)果的數(shù)據(jù)保存到片外集中共用存儲器50。然后,將步驟901~908的處理重復(fù)外側(cè)for語句的循環(huán)的次數(shù)。
      [0169]如以上說明,根據(jù)以往的手法,處理器11的處理、DTU13的處理、以及ACC12的處理不重復(fù)地逐次執(zhí)行。此外,DTU13和ACC12的動作由處理器11控制。
      [0170]圖10是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的第I例的圖。
      [0171]如圖10所示,第I例的程序包括由處理器11執(zhí)行的程序100、由DTU13執(zhí)行的程序101、103、由ACC12執(zhí)行的程序102。即,將通過圖8所示的以往的手法執(zhí)行的程序80變換為本發(fā)明的實施方式的處理器核心用(追加標(biāo)志設(shè)置語句、標(biāo)志檢查語句等)之后,分割為由處理器11執(zhí)行的程序100、由DTU13執(zhí)行的程序101、103、?Α(Χ12執(zhí)行的程序102。
      [0172]另外,各程序100、101、102、103包含標(biāo)志設(shè)置語句及標(biāo)志檢查語句。標(biāo)志檢查語句是反復(fù)確認(rèn)被寫入到LM15或DSM14等存儲器上的規(guī)定的地址的同步標(biāo)志變量(例如Α)的值、直到該值與預(yù)先設(shè)定的比較值一致的命令語句。向同步標(biāo)志變量寫入了標(biāo)志的情況下,進(jìn)入與該標(biāo)志對應(yīng)的以后的命令語句。另一方面,標(biāo)志設(shè)置語句是用于向LM15或DSM14等存儲器上的規(guī)定的地址寫入標(biāo)志、具體地說向同步標(biāo)志變量寫入數(shù)據(jù)的(更新被寫入同步標(biāo)志變量的數(shù)據(jù))的命令語句。寫入標(biāo)志后,進(jìn)入以后的命令語句。[0173]此外,各程序100、101、102、103由后述的并行化編譯器預(yù)先生成,并配置在LM15、DSM14等存儲器上的規(guī)定的地址、即15-1、14-1等。
      [0174]另外,DTU13及ACC12根據(jù)處理器11向控制寄存器群組124的數(shù)據(jù)寫入或多核心處理器系統(tǒng)I的起動而起動。然后,與處理器11獨立地自主執(zhí)行程序。例如,ACC12按照程序102,首先執(zhí)行標(biāo)志檢查語句,標(biāo)志被寫入了標(biāo)志變量C后,執(zhí)行與寫入的標(biāo)志對應(yīng)的以后的命令語句。
      [0175]圖11是表示執(zhí)行第I例的程序時的處理流程的圖。
      [0176]首先,在步驟1101中 ,處理器11按照程序100進(jìn)行動作,進(jìn)入外側(cè)for語句的循環(huán),向標(biāo)志變量A寫入標(biāo)志(1101)。然后,在步驟1102中確認(rèn)標(biāo)志變量B (1102)。
      [0177]另一方面,在步驟1103中,DTU13按照程序101進(jìn)行動作,確認(rèn)標(biāo)志變量A (1103)。通過步驟1101向標(biāo)志變量A寫入了標(biāo)志后,DTU13開始數(shù)據(jù)的讀取,數(shù)據(jù)的讀取結(jié)束后,向標(biāo)志變量B寫入標(biāo)志(1104)。這時,使被寫入標(biāo)志變量A的標(biāo)志返回初始狀態(tài)(重置)。
      [0178]在步驟1105中,處理器11通過步驟1104向標(biāo)志變量B寫入了標(biāo)志后,確認(rèn)其標(biāo)志值是否為規(guī)定的值,進(jìn)入內(nèi)側(cè)for語句的循環(huán),向標(biāo)志變量C寫入標(biāo)志(1105)。然后,執(zhí)行下一重復(fù)的準(zhǔn)備(1106),確認(rèn)標(biāo)志變量D (1107)。
      [0179]另一方面,在步驟1108中,ACC12按照程序102進(jìn)行動作,確認(rèn)標(biāo)志變量C (1108)。通過步驟1105向標(biāo)志變量C寫入了標(biāo)志后,ACC12確認(rèn)其標(biāo)志值是否為規(guī)定的值,開始執(zhí)行加速處理,加速處理結(jié)束后,向標(biāo)志變量D寫入標(biāo)志(1109)。這時,使被寫入了標(biāo)志變量C的標(biāo)志返回初始狀態(tài)。
      [0180]在步驟1110中,處理器11通過步驟1109的處理向標(biāo)志變量D寫入了標(biāo)志后,進(jìn)入內(nèi)側(cè)for語句的下一循環(huán),向標(biāo)志變量C寫入標(biāo)志(1110)。這時,使被寫入了標(biāo)志變量D的標(biāo)志返回初始狀態(tài)。以后重復(fù)步驟1106~1110的處理。
      [0181]在步驟1111中,處理器11在內(nèi)側(cè)for語句的循環(huán)處理結(jié)束后,向標(biāo)志變量E寫入標(biāo)志(1111)。然后,確認(rèn)標(biāo)志變量F(1112)。另一方面,在步驟1113中,DTU13按照程序103進(jìn)行動作,確認(rèn)標(biāo)志變量E (1113)。通過步驟1111向標(biāo)志變量E寫入了標(biāo)志后,開始數(shù)據(jù)的保存,數(shù)據(jù)的保存結(jié)束后,向標(biāo)志變量F寫入標(biāo)志(1114)。這時,使被寫入了標(biāo)志變量E的標(biāo)志返回初始狀態(tài)。
      [0182]在步驟1115中,處理器11通過步驟1114向標(biāo)志變量F寫入了標(biāo)志后,進(jìn)入外側(cè)for語句的下一循環(huán),向標(biāo)志變量A寫入標(biāo)志(1115)。這時,使被寫入了標(biāo)志變量F的標(biāo)志返回初始狀態(tài)。以后,重復(fù)步驟1102~1115的處理。
      [0183]如以上的處理所示,處理器11、ACC12和DTU13通過標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。根據(jù)該第I例的程序,處理器11能夠在步驟1109所示的ACC12的處理中執(zhí)行步驟1106的處理。即,能夠使處理器11的處理和ACC12的處理重疊。因此,能夠使下一重復(fù)的準(zhǔn)備(步驟1106的處理)的開始時間提前。即,能夠消除處理器11對ACC12的控制的系統(tǒng)開銷。
      [0184]此外,ACC12按照LM15或DSM14中保存的程序102進(jìn)行動作,所以不需要擴(kuò)展命令集。即,對于任意的處理器11,不必擴(kuò)展命令集,就能夠追加任意的ACC12。
      [0185]另外,第I例的程序重復(fù)外側(cè)for語句及內(nèi)側(cè)for語句的循環(huán)處理。在此,也可以如下的構(gòu)成程序:每當(dāng)重復(fù)循環(huán)處理,便寫入與重復(fù)次數(shù)相應(yīng)的標(biāo)志值。例如,在內(nèi)側(cè)for語句所示的循環(huán)處理的第η次重復(fù)中,向同步標(biāo)志變量C、D寫入賦予了編號η的標(biāo)志值(例如Cn、Dn)并確認(rèn)。由此,能夠降低使標(biāo)志值返回初始狀態(tài)的系統(tǒng)開銷。
      [0186]此外,也可以如下的構(gòu)成程序:在執(zhí)行標(biāo)志檢查語句時,根據(jù)對FVR124設(shè)定的值,到經(jīng)過規(guī)定的時間為止的期間,使時鐘頻率變化為低頻率或切斷等。由此,能夠削減標(biāo)志檢查的耗電。
      [0187]圖12是表示執(zhí)行第I例的程序時的處理流程的變形例的圖。
      [0188]在此,作為圖11所示的處理流程的變形例,說明如下的處理:在處理器11滿足規(guī)定條件的情況下(條件分支或循環(huán)次數(shù)達(dá)到一定數(shù)的情況下),向標(biāo)志變量C’寫入標(biāo)志,另一方面,ACC12執(zhí)行與被寫入標(biāo)志變量C’的標(biāo)志相應(yīng)的動作。另外,用于執(zhí)行這樣的處理的處理器1UACC12用的程序由后述的并行化編譯器預(yù)先生成,并配置在LM15、DSM14等存儲器上的規(guī)定的地址。
      [0189]在步驟1116中,處理器11在內(nèi)側(cè)for語句的循環(huán)處理的執(zhí)行中滿足規(guī)定的條件的情況下(條件分支或循環(huán)次數(shù)達(dá)到一定數(shù)的情況下),向標(biāo)志變量C’作為標(biāo)志而寫入條件值(1116)。條件值如前述那樣,用于通知特定處理的指示。另一方面,ACC12確認(rèn)標(biāo)志變量C’(1117)。通過步驟1115向標(biāo)志變量C’寫入了條件值后,ACC12開始特別的動作。特別的動作指的是,例如讀取控制寄存器群組124并執(zhí)行讀取的值所示的下一任務(wù)的動作。
      [0190]如以上的處理所示,處理器11、ACC12和DTU13通過標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。進(jìn)而,根據(jù)該變形例的程序,即使ACC12正在執(zhí)行加速處理,在處理器11滿足規(guī)定條件的情況下,也能夠變更為使ACC12進(jìn)行特別的動作。即,能夠進(jìn)行動態(tài)調(diào)度。
      [0191]圖13是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的第2例的圖。
      [0192]如圖13所示,第2例的程序包括由處理器11執(zhí)行的程序130、由DTU13執(zhí)行的程序131、133、由ACC12執(zhí)行的程序132。即,將圖8所示的程序80變換為本發(fā)明的實施方式的處理器核心用(追加標(biāo)志設(shè)置語句、標(biāo)志檢查語句等)之后,分割為由處理器11執(zhí)行的程序130、由DTU13執(zhí)行的程序131、133、?Α(Χ12執(zhí)行的程序132。
      [0193]另外,各程序130、131、132、133包含與圖10所示的形態(tài)不同的標(biāo)志設(shè)置語句及標(biāo)志檢查語句。即,處理器11的內(nèi)側(cè)for語句的處理的結(jié)束(標(biāo)志設(shè)置(H))決定ACC12的加速處理的執(zhí)行開始(標(biāo)志檢查(H))。另一方面,ACC12的加速處理的結(jié)束(標(biāo)志設(shè)置(G))決定處理器11的內(nèi)側(cè)for語句的處理的執(zhí)行開始(標(biāo)志檢查(G))。
      [0194]這樣的各程序130、131、132、133由后述的并行化編譯器預(yù)先生成,并配置在LMl5, DSM14等存儲器上的規(guī)定的地址。
      [0195]圖14是表示第2例的程序的執(zhí)行時的處理流程的圖。
      [0196]首先在,在步驟1401中,處理器11按照程序130進(jìn)行動作,進(jìn)入外側(cè)for語句的循環(huán),向標(biāo)志變量A寫入標(biāo)志(1401)。然后,在步驟1402中,確認(rèn)標(biāo)志變量B(1402)。
      [0197]另一方面,在步驟1403中,DTU13按照程序131進(jìn)行動作,檢查標(biāo)志變量A(1403)。通過步驟1401向標(biāo)志變量A寫入了標(biāo)志并確認(rèn)后,DTU13開始數(shù)據(jù)的讀取,數(shù)據(jù)的讀取結(jié)束后,向標(biāo)志變量B寫入標(biāo)志(1404)。這時候,使被寫入標(biāo)志變量A的標(biāo)志返回初始狀態(tài)(重置)。[0198]處理器11通過步驟1404向標(biāo)志變量B寫入了標(biāo)志后,進(jìn)入內(nèi)側(cè)for語句的循環(huán),確認(rèn)標(biāo)志變量G(1405)。在此,向標(biāo)志變量G作為初始設(shè)定寫入了標(biāo)志。然后,執(zhí)行下一重復(fù)的準(zhǔn)備(1406),向標(biāo)志變量H寫入標(biāo)志(1407)。這時,使被寫入了標(biāo)志變量G的標(biāo)志返回初始狀態(tài)。然后,進(jìn)入外側(cè)for語句的下一循環(huán),確認(rèn)標(biāo)志變量G(1408)。以后,重復(fù)步驟1406~1408的處理。
      [0199]另一方面,在步驟1409中,ACC12按照程序132進(jìn)行動作,確認(rèn)標(biāo)志變量B(1409)。通過步驟1404向標(biāo)志變量B寫入了標(biāo)志后,確認(rèn)標(biāo)志變量H(1410)。在此,向標(biāo)志變量H作為初始設(shè)定寫入了標(biāo)志。然后,開始執(zhí)行加速處理,加速處理結(jié)束后,向標(biāo)志變量G寫入標(biāo)志(1411)。這時,使被寫入了標(biāo)志變量H的標(biāo)志返回初始狀態(tài)。以后,重復(fù)步驟1410~1411的處理。
      [0200]在步驟1412中,處理器11在內(nèi)側(cè)for語句的循環(huán)處理結(jié)束后,向標(biāo)志變量E寫入標(biāo)志(1412)。然后,確認(rèn)標(biāo)志變量F(1413)。另一方面,在步驟1414中,DTU13按照程序133進(jìn)行動作,確認(rèn)標(biāo)志變量E (1414)。通過步驟1412向標(biāo)志變量E寫入了標(biāo)志后,開始數(shù)據(jù)的保存,數(shù)據(jù)的保存結(jié)束后,向標(biāo)志變量F寫入標(biāo)志(1415)。這時,使被寫入了標(biāo)志變量E的標(biāo)志返回初始狀態(tài)。
      [0201]在步驟1416中,處理器11通過步驟1415向標(biāo)志變量F寫入了標(biāo)志后,進(jìn)入外側(cè)for語句的下一循環(huán),向標(biāo)志變量A寫入標(biāo)志(1416)。這時,使被寫入到標(biāo)志變量F、B的標(biāo)志返回初始狀態(tài)。以后,重復(fù)步驟1402~1416的處理。
      [0202]如以上的處理所示,處理器11、ACC12、DTU13經(jīng)由標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。根據(jù)該第2例的程序,處理器11能夠在步驟1411所示的ACC12的處理中執(zhí)行步驟140 6的處理。即,處理器11的處理和ACC12的處理重疊。
      [0203]此外,通過步驟1407的處理,能夠在ACC12的步驟1417、1418的處理之前從處理器11發(fā)出ACC12的控制的觸發(fā)。因此,能夠使下一重復(fù)的準(zhǔn)備(步驟1406)的開始時間提前處理器11的標(biāo)志檢查/設(shè)置的量。即,能夠消除處理器11的ACC12的控制的系統(tǒng)開銷。
      [0204]另外,第2例的程序與第I例的程序同樣,重復(fù)外側(cè)for語句和內(nèi)側(cè)for語句的循環(huán)處理。在此,也可以如下地構(gòu)成程序:每當(dāng)重復(fù)循環(huán)處理,都寫入與重復(fù)次數(shù)相應(yīng)的標(biāo)志值。例如,在內(nèi)側(cè)for語句所示的循環(huán)處理的第η次重復(fù)中,向同步標(biāo)志變量H寫入賦予了編號η的標(biāo)志值(例如Hn)并確認(rèn)。由此,能夠減少使標(biāo)志值返回初始狀態(tài)的系統(tǒng)開銷。
      [0205]此外,也可以如下地構(gòu)成程序:在執(zhí)行標(biāo)志檢查語句時,根據(jù)對FVR124設(shè)定的值,到經(jīng)過規(guī)定的時間為止的期間,使時鐘頻率變化為低頻率或切斷等。由此,能夠削減標(biāo)志檢查的耗電。
      [0206]圖15是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的第3例的圖。
      [0207]如圖15所示,第3例的程序包含由處理器11執(zhí)行的程序150、由DTU13執(zhí)行的程序151、153、由ACC12執(zhí)行的程序152、154。即,將圖8所示的程序80變換為本發(fā)明的實施方式的處理器核心用(追加標(biāo)志設(shè)置語句、標(biāo)志檢查語句等)之后,分割為由處理器11執(zhí)行的程序150、由DTU13執(zhí)行的程序151、由DTU13執(zhí)行的程序153、由ACC12執(zhí)行的程序152及由ACC12執(zhí)行的程序154。
      [0208]此外,處理器11用的程序150與圖10所示的程序100的不同點在于,內(nèi)側(cè)for語句被分為多個(在圖15中,外側(cè)for語句的第奇數(shù)個回轉(zhuǎn)(第2n+l個回轉(zhuǎn),以下簡稱為“第奇數(shù)個回轉(zhuǎn)”)、以及第偶數(shù)個回轉(zhuǎn)(第2n個回轉(zhuǎn),以下簡稱為“第偶數(shù)個回轉(zhuǎn)”)。
      [0209]同樣,DTU13用的程序也被分為多個(在圖15中為程序151及153)。程序151是如下的程序:保存LM15中保存的第偶數(shù)個回轉(zhuǎn)的計算結(jié)果,并且將下一第偶數(shù)個回轉(zhuǎn)的計算用的數(shù)據(jù)讀取到LM15。另一方面,程序153是如下的程序:保存LM15中保存的第奇數(shù)個回轉(zhuǎn)的計算結(jié)果,并且將下一第奇數(shù)個回轉(zhuǎn)的計算用的數(shù)據(jù)讀取到LM15。另外,在LM15中未保存有計算結(jié)果的情況下,不執(zhí)行計算結(jié)果的保存。
      [0210]此外,ACC12用的程序也被分為多個(在圖15中為程序152、154)。程序152是用于執(zhí)行第奇數(shù)個回轉(zhuǎn)的加速處理的程序。另一方面,程序154是用于執(zhí)行第偶數(shù)個回轉(zhuǎn)的加速處理的程序。
      [0211]另外,各程序150、151、152、153、154包含與圖10所示的形態(tài)不同的標(biāo)志設(shè)置語句及標(biāo)志檢查語句。這樣的各程序150、151、152、153、154由后述的并行化編譯器預(yù)先生成,并配置在LM15、DSM14等存儲器上的規(guī)定的地址。
      [0212]圖16是表示第3例的程序的執(zhí)行時的處理流程的圖。
      [0213]首先,在步驟1601中,處理器11按照程序150進(jìn)行動作,進(jìn)入外側(cè)for語句的循環(huán),向標(biāo)志變量Al寫入標(biāo)志,并執(zhí)行標(biāo)志變量BO的確認(rèn)(1601)。
      [0214]然后,在步驟1602中,處理器11進(jìn)入外側(cè)for語句的第奇數(shù)個回轉(zhuǎn)(為便于說明,設(shè)為第I個回轉(zhuǎn))的循環(huán),重復(fù)標(biāo)志變量GO的確認(rèn)、下一重復(fù)的準(zhǔn)備、以及向標(biāo)志變量HO的標(biāo)志的寫入(1602)。該步驟1602的處理與圖14的步驟1405?1407的處理的重復(fù)相同,所以在此省略說明。另外,使被寫入到標(biāo)志變量BO的標(biāo)志返回初始狀態(tài)(重置)。
      [0215]另一方面,在步驟1603中,DTU13按照程序151進(jìn)行動作,執(zhí)行標(biāo)志變量Al的確認(rèn)、數(shù)據(jù)的保存、數(shù)據(jù)的讀取、以及向標(biāo)志變量BI的標(biāo)志的寫入(1603)。在該步驟1603的處理中,不存在應(yīng)該保存的數(shù)據(jù),所以DTU13將下一第偶數(shù)個回轉(zhuǎn)、即第2個回轉(zhuǎn)的加速處理(步驟1608)用的數(shù)據(jù)讀取到LM15。
      [0216]另一方面,在步驟1604中,ACC12按照程序152進(jìn)行動作,執(zhí)行標(biāo)志變量BO的確認(rèn)、標(biāo)志變量HO的確認(rèn)、以及第I個回轉(zhuǎn)的加速處理(1604)。這時,使被寫入到標(biāo)志變量B0, HO的標(biāo)志返回初始狀態(tài)。
      [0217]如以上的步驟1601?1604的處理所示,處理器11、ACC12、DTU13經(jīng)由標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。特別是,ACC12在執(zhí)行第I個回轉(zhuǎn)的加速處理時,DTU13能夠保存上次的加速處理(在此不存在)的計算結(jié)果的數(shù)據(jù),并且讀取第2個回轉(zhuǎn)的加速處理所使用的數(shù)據(jù)。即,處理器11的處理、ACC12的處理的、DTU13的處理能夠重疊。
      [0218]然后,在步驟1605中,處理器11執(zhí)行向標(biāo)志變量AO的標(biāo)志的寫入、標(biāo)志變量BI的確認(rèn)(1605)。
      [0219]然后,在步驟1606中,處理器11進(jìn)入外側(cè)for語句的第2個回轉(zhuǎn)的循環(huán),重復(fù)標(biāo)志變量Gl的確認(rèn)、下一重復(fù)的準(zhǔn)備、以向標(biāo)志變量Hl的標(biāo)志的寫入(1606)。該步驟1606的處理也和圖14的步驟1405?1407的處理的重復(fù)相同,所以在此省略說明。另外,使被寫入到標(biāo)志變量BI的標(biāo)志返回初始狀態(tài)。以后,處理器11重復(fù)步驟1601、1602、1605及1606的處理。[0220]另一方面,在步驟1607中,DTU13按照程序153進(jìn)行動作,執(zhí)行標(biāo)志變量AO的確認(rèn)、數(shù)據(jù)的保存、數(shù)據(jù)的讀取、以及向標(biāo)志變量BO的標(biāo)志的寫入(1607)。在該步驟1606的處理中,將步驟1604所示的第I個回轉(zhuǎn)的加速處理的計算結(jié)果保存到LM15,并且將下一第奇數(shù)個回轉(zhuǎn)、即第3個回轉(zhuǎn)的加速處理用的數(shù)據(jù)讀取到LM15。以后,DTU13重復(fù)步驟1603及1607的處理。
      [0221]此外,在步驟1608中,ACC12按照程序154進(jìn)行動作,執(zhí)行標(biāo)志變量BI的確認(rèn)、標(biāo)志變量Hl的確認(rèn)、以及第2個回轉(zhuǎn)的加速處理(1608)。在該步驟1608的處理中,對通過步驟1603讀取的第2個回轉(zhuǎn)的加速處理用的數(shù)據(jù)執(zhí)行加速處理。這時,使被寫入到標(biāo)志變量BUHl的標(biāo)志返回初始狀態(tài)。以后,ACC12重復(fù)步驟1604及1608的處理。
      [0222]如以上的步驟1605~1608的處理所示,處理器11、ACC12、DTU13經(jīng)由標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。特別是,在ACC12執(zhí)行第2個回轉(zhuǎn)的加速處理時,DTU13能夠保存第I個回轉(zhuǎn)的加速處理的計算結(jié)果的數(shù)據(jù),并且讀取第3個回轉(zhuǎn)的加速處理中使用的數(shù)據(jù)。即,處理器11的處理、ACC12的處理、DTU13的處理能夠重疊。
      [0223]如以上的處理所示,處理器11、ACC12、DTU13經(jīng)由標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。根據(jù)該第3例的程序,在ACC12執(zhí)行加速處理(例如第奇數(shù)個回轉(zhuǎn)的處理)時,DTU13能夠保存上次的加速處理(第偶數(shù)個回轉(zhuǎn)的處理)的計算結(jié)果的數(shù)據(jù),并且取得下次加速處理(第偶數(shù)個回轉(zhuǎn)的處理)所使用的數(shù)據(jù)。
      [0224]此外,通過分為ACC12的處理用的數(shù)據(jù)區(qū)域、DTU13的數(shù)據(jù)儲存用的數(shù)據(jù)區(qū)域、DTU13的數(shù)據(jù)加載 用的數(shù)據(jù)區(qū)域(三重緩沖),并且使處理器11的處理、ACC12的處理、DTU13的處理重疊,能夠消除數(shù)據(jù)傳送的系統(tǒng)開銷并使處理高速化。此外,與前述的第2例的程序相比,能夠?qū)⒂嬎銜r間進(jìn)一步縮短該數(shù)據(jù)傳送的系統(tǒng)開銷的量。
      [0225]另外,第3例的程序與第I例及第2例的程序同樣,重復(fù)外側(cè)for語句和內(nèi)側(cè)for語句的循環(huán)處理。在此,也可以將程序構(gòu)成為:每當(dāng)重復(fù)循環(huán)處理,就寫入與重復(fù)次數(shù)相應(yīng)的標(biāo)志值。例如,在內(nèi)側(cè)for語句所示的循環(huán)處理的第η次重復(fù)中,向標(biāo)志變量Η0、Η1寫入賦予了編號η的標(biāo)志值(例如Η0η、Η1η)并確認(rèn)。由此,能夠降低使標(biāo)志值返回初始狀態(tài)的系統(tǒng)開銷。
      [0226]此外,也可以如下地構(gòu)成程序:在執(zhí)行標(biāo)志檢查語句時,根據(jù)對FVR124設(shè)定的值,到經(jīng)過規(guī)定的時間為止的期間,使時鐘頻率變化為低頻率或切斷。由此,能夠削減標(biāo)志檢查的耗電。
      [0227]圖17是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的第4例的執(zhí)行時的處理流程的圖。
      [0228]第4例的程序包含由處理器11執(zhí)行的程序1701~1703、由DTU13執(zhí)行的程序1704~1710、以及由ACC12執(zhí)行的程序1711~1725。
      [0229]另外,考慮LM15等的存儲器尺寸而將由多核心處理器系統(tǒng)I執(zhí)行的程序的一系列處理分割為多個循環(huán)處理的情況下,程序1701~1703是與各循環(huán)處理對應(yīng)的處理器11用的程序。同樣,程序1704~1710、程序1711~1725分別是上述情況下的DTU13用的程序、ACC12用的程序。
      [0230]這些程序1701~1725由后述的并行化編譯器預(yù)先生成,并配置在LM15、DSM14等存儲器上的規(guī)定的地址。[0231]另外,程序1701包含寫入用于與程序1704的處理協(xié)同的標(biāo)志的程序、寫入用于與程序1712的處理協(xié)同的標(biāo)志的程序、以及處理器11從LM15、DSM14等讀取數(shù)據(jù)并進(jìn)行運算處理的程序(即,能夠與ACC12等并行地進(jìn)行動作的處理器11的程序)。同樣,程序1702及1703包含寫入用于與DTU13或ACC12的處理協(xié)同的標(biāo)志的程序。
      [0232]程序1704是由DTU13將程序1716中由ACC12在加速處理中使用的數(shù)據(jù)提前讀取到(預(yù)加載)LM15或DSM14的程序。該程序1704將由后述的并行化編譯器最優(yōu)化之后的尺寸的數(shù)據(jù)預(yù)加載到LM15或DSM14。該程序1704包含寫入用于與程序1715的處理協(xié)同的標(biāo)志的程序。
      [0233]程序1705是確認(rèn)在程序1702的處理中被寫入的標(biāo)志的程序。
      [0234]程序1706是由DTU13將程序1722中由ACC12在加速處理中使用的數(shù)據(jù)提前預(yù)加載到LM15或DSM14的程序。該程序1706與程序1704同樣,將由后述的并行化編譯器最優(yōu)化之后的尺寸數(shù)據(jù)預(yù)加載到LM15或DSM14。該程序1706包含寫入用于與程序1721的處理協(xié)同的標(biāo)志的程序。
      [0235]程序1707是將程序1713中由ACC12保存到LM15或DSM14等存儲器的數(shù)據(jù)保存到(后儲存)片內(nèi)集中共用存儲器40或片外集中共用存儲器50的程序。該程序1707包含確認(rèn)由程序1713寫入的標(biāo)志的程序。程序1708?1710與程序1705?1707相同,因此在此省略說明。
      [0236]程序1711是確認(rèn)通過程序1701的處理被寫入的標(biāo)志的程序。程序1712是ACC12與處理器11協(xié)同而始終重復(fù)執(zhí)行加速處理的程序。另外,為了便于說明,這里設(shè)為執(zhí)行加速處理時使用的數(shù)據(jù)已經(jīng)被預(yù)加載。程序1713是將程序1712的加速處理的計算結(jié)果的數(shù)據(jù)保存到LM15或DSM14等存儲器的程序。
      [0237]程序1714是確認(rèn)通過程序1704的處理被寫入的標(biāo)志的程序。程序1715是將在程序1704的處理中由DTU13預(yù)加載到LM15或DSM14的數(shù)據(jù)讀取到ACC寄存器122的程序。程序1716是ACC12對被讀取到ACC寄存器122的數(shù)據(jù)執(zhí)行加速處理的程序。
      [0238]程序1717?1725與程序1711?1716相同,因此在此省略說明。
      [0239]如以上的處理所示,處理器11、ACC12、DTU13經(jīng)由標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。根據(jù)該第4例的程序,能夠在將ACC12的處理分為與DTU13協(xié)同(鏈鎖化)地執(zhí)行處理的部分(例如程序1716)、和與處理器11協(xié)同地執(zhí)行重復(fù)處理的部分(例如程序1718)之后執(zhí)行處理。因此,在與例如DTU13之間的協(xié)同處理中,不經(jīng)由處理器11地執(zhí)行加速處理,所以能夠消除處理器11的控制的系統(tǒng)開銷。
      [0240]此外,通過預(yù)加載處理,DTU13在ACC12執(zhí)行加速處理時,將預(yù)先由并行化編譯器最優(yōu)地分割的尺寸的ACC12的下次處理用的數(shù)據(jù)讀取到LM15等。因此,能夠向ACC12連續(xù)地供給數(shù)據(jù)。另一方面,通過后儲存處理,DTU13在ACC12執(zhí)行加速處理時,能夠從LM15等保存ACC12的加速處理的計算結(jié)果的數(shù)據(jù)。
      [0241]圖18是表示在本發(fā)明的實施方式的多核心處理器系統(tǒng)I中執(zhí)行的程序的第5例的執(zhí)行時的處理流程的圖。在此,說明多個不同的處理器核心10-1、10-2上的DTU13-1、ACC12-UDTU13-2通過標(biāo)志設(shè)置/檢查來協(xié)同的動作。
      [0242]第5例的程序包含由處理器核心10-1的處理器11-1執(zhí)行的程序1801、1802、由DTU13-1執(zhí)行的程序1803、1804、*ACC12-1執(zhí)行的程序1805、1806。此外,包含由處理器核心10-2的處理器11-2執(zhí)行的程序1811、由DTU13-2執(zhí)行的程序1812、1813。
      [0243]處理器核心10-1用的程序1801?1806由后述的并行化編譯器預(yù)先生成,并配置在處理器核心10-1的LM15、DSM14等存儲器上的規(guī)定的地址。另一方面,處理器核心10_2用的程序1807?1809配置在處理器核心10-2的LM15、DSM14等存儲器上的規(guī)定的地址。
      [0244]另外,程序1801是由處理器11-1執(zhí)行任務(wù)I的程序。該程序1801包含如下的程序:在執(zhí)行任務(wù)I時,將用于與DTU13-1的程序1803的處理協(xié)同的標(biāo)志寫入到處理器核心10-1的LM15等的程序。程序1802是由處理器11_1執(zhí)行任務(wù)2的程序。
      [0245]程序1803是確認(rèn)通過處理器11-1的程序1801的處理被寫入的標(biāo)志的程序。程序1804是由DTU13-1將LM15或DSM14中保存的處理器11_1的計算結(jié)果的數(shù)據(jù)保存到片外集中共用存儲器50的程序。該程序1804包含將用于與DTU13-2的程序1812的處理協(xié)同的標(biāo)志寫入到處理器核心10-2的DSM14的程序。
      [0246]程序1805是由ACC12-1確認(rèn)通過DTU13-2的程序1812的處理被寫入的標(biāo)志的程序。程序1806是ACC12-1對通過DTU13-2的程序1813傳送的數(shù)據(jù)執(zhí)行加速處理的程序。
      [0247]程序1811是處理器11-2執(zhí)行任務(wù)3的程序。程序1812是DTU13-2確認(rèn)通過DTU13-1的程序1804的處理被寫入的標(biāo)志的程序。程序1813是DTU13-2將LM15或DSM14中保存的處理器11-2的計算結(jié)果的數(shù)據(jù)保存到處理器核心10-1的DSM14的程序。該程序1813包含將用于與ACC12-1的程序1805的處理協(xié)同的標(biāo)志寫入到處理器核心10_1的DSM14的程序。
      [0248]如以上的處理所示,多個不同的處理器核心10-1、10-2上的處理器11、ACC12、DTU13通過標(biāo)志設(shè)置及標(biāo)志檢查相互取得同步,并且分別自主地動作。
      [0249]從本發(fā)明的到此為止的說明可知,不僅是處理器核心10-1、10-2那樣的2個處理器核心間之間,全部處理器核心10-1?10-n(中的處理器11、ACC12、DTU13)并行地執(zhí)行由并行化編譯器從逐次處理程序生成的各處理器核心用的程序的情況下,能夠自主地執(zhí)行該處理的同步化。由此,即使新追加ACC12,也不需要新擴(kuò)展命令集,并且大幅減少伴隨著同步化的處理器11、ACC12、DTU13的參與、即系統(tǒng)開銷,從而能夠執(zhí)行高效的運算處理。
      [0250]圖19是本發(fā)明的實施方式的并行化編譯器執(zhí)行的處理的流程圖。在此,說明從逐次處理程序生成的并行化編譯器在計算機(jī)上執(zhí)行在包含本發(fā)明的實施方式的ACC的處理器系統(tǒng)上進(jìn)行執(zhí)行處理的并行化程序的處理。編譯器通常指的是將編譯對象的源程序變換為所謂計算機(jī)可執(zhí)行的程序(機(jī)器語言的程序等)的軟件,但是本發(fā)明中所說的并行化編譯器如前述那樣,指的是從逐次處理程序的源代碼生成并行化程序的編譯器。
      [0251]首先,并行化編譯器解析源程序的字句,并解析程序的語法(1901)。另外,在本實施方式中由編譯器來解析程序,但是也可以由程序員(人)來解析程序。此外,在制作程序時,可以制作本實施方式中需要的程序的信息。
      [0252]接著,并行化編譯器基于語法的解析結(jié)果,生成階層性的任務(wù)、即程序的階層性宏任務(wù)的表達(dá)(1902)。在此,生成由處理器11用的任務(wù)、ACC12用的任務(wù)等構(gòu)成的粗粒度任務(wù)(宏任務(wù))。另外,生成的宏任務(wù)能夠進(jìn)行循環(huán)等級的并行處理和逐次處理的情況下,考慮LM15等的存儲器尺寸,分割為不同的多個宏任務(wù)(循環(huán)整合分割)。
      [0253]然后,對生成的任務(wù)間的依存關(guān)系(控制流程)進(jìn)行解析(1903),對任務(wù)間的數(shù)據(jù)依存進(jìn)行解析(1904),對由各任務(wù)訪問的數(shù)據(jù)的范圍進(jìn)行解析(1905)。[0254]然后,使用程序的解析結(jié)果,對程序能夠最早執(zhí)行的條件進(jìn)行解析(1906),使用最早執(zhí)行條件的解析結(jié)果來決定并行處理區(qū)間和被分配了任務(wù)的處理器數(shù),生成宏任務(wù)圖表。
      [0255]然后,執(zhí)行決定各任務(wù)的執(zhí)行順序的任務(wù)調(diào)度(1907)。在此執(zhí)行的任務(wù)調(diào)度執(zhí)行存儲器管理/任務(wù)調(diào)度、數(shù)據(jù)傳送調(diào)度及低耗電調(diào)度。
      [0256]存儲器管理/任務(wù)調(diào)度指的是,用于執(zhí)行經(jīng)由各處理器核心10-1?10-n的LM15的高效的數(shù)據(jù)的授受的調(diào)度。
      [0257]數(shù)據(jù)傳送調(diào)度指的是,如圖17的例子所示的預(yù)加載和后儲存那樣,用于實現(xiàn)各處理器核心10-1?10-n中的數(shù)據(jù)傳送、及多核心處理器系統(tǒng)I整體的數(shù)據(jù)傳送的最優(yōu)化的調(diào)度。
      [0258]低耗電調(diào)度指的是,在處理器11、ACC12、DTU13處于等待狀態(tài)的情況下,根據(jù)等待時間來使時鐘頻率變化為低頻率或切斷電源的、實現(xiàn)電力控制的調(diào)度。
      [0259]然后,基于通過步驟1907執(zhí)行的任務(wù)調(diào)度,生成能夠在多核心處理器系統(tǒng)I中執(zhí)行的并行程序(1908)。該并行程序包含處理器11用的任務(wù)、ACC12用的任務(wù)、DTU13用的任務(wù)的命令語句。在此生成的并行程序中,向相互存在依存關(guān)系的處理器11用的任務(wù)、ACC12用的任務(wù)及DTU13用的任務(wù)的命令語句插入標(biāo)志設(shè)置語句、標(biāo)志檢查語句。這些ACC12用的任務(wù)、DTU13用的任務(wù)的命令語句及標(biāo)志區(qū)域配置在DSM14、LM15、片內(nèi)集中共用存儲器40、片外集中共用存儲器中的至少某一個以上的存儲器。
      [0260]另外,也可以將特定的動作與標(biāo)志的值建立關(guān)聯(lián),并指定標(biāo)志檢查后的動作。例如,將ACC12用的標(biāo)志檢查語句構(gòu)成為,在檢查的標(biāo)志的值為特定值的情況下,確認(rèn)控制寄存器群組124的值,執(zhí)行由處理器11指定的命令串(任務(wù))。
      [0261]如以上所示,并行化編譯器為各處理器11、ACC12、DTU13生成不同的程序。然后,并行化編譯器將生成的程序保存到各處理器核心10-1?10-n的LM15、DSM14、片內(nèi)集中共用存儲器40、片外集中共用存儲器50上的規(guī)定的地址。
      [0262]以上說明了本發(fā)明的實施方式,但是上述實施方式只示出本發(fā)明的一個應(yīng)用例,本發(fā)明的技術(shù)范圍不限于上述實施方式的具體構(gòu)成。在不脫離本發(fā)明的主旨的范圍內(nèi),能夠進(jìn)行各種變更。
      [0263]例如,在本發(fā)明的實施方式中,說明了處理器11、ACC12、DTU13通過標(biāo)志設(shè)置/檢查來相互同步的動作,但是不限于這種情況。各裝置也可以通過標(biāo)志設(shè)置/檢查以外的方法、即發(fā)行及確認(rèn)表示自裝置的處理結(jié)束的通知來相互進(jìn)行同步。
      【權(quán)利要求】
      1.一種處理器系統(tǒng),在半導(dǎo)體芯片上具備處理器核心,該處理器核心具有:進(jìn)行運算處理的處理器、存儲器、以及經(jīng)由耦合網(wǎng)與所述處理器及所述存儲器連接的加速器,所述處理器系統(tǒng)的特征在于, 所述存儲器具有:命令區(qū)域,預(yù)先存儲由所述處理器及所述加速器執(zhí)行的任務(wù);同步標(biāo)志區(qū)域,存儲用于在所述處理器和所述加速器之間使各個動作同步的標(biāo)志;以及數(shù)據(jù)區(qū)域,保存所述處理器及所述加速器在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù), 所述加速器按照所述命令區(qū)域中存儲的任務(wù)進(jìn)行動作, 當(dāng)確認(rèn)到表示所述處理器的規(guī)定處理已結(jié)束的標(biāo)志被寫入所述同步標(biāo)志區(qū)域時,即使所述處理器正在執(zhí)行其他處理,所述加速器也讀取被寫入所述數(shù)據(jù)區(qū)域的數(shù)據(jù)并執(zhí)行與該標(biāo)志對應(yīng)的任務(wù),從而開始加速處理, 在所述加速處理結(jié)束后,所述加速器將所述加速處理后的數(shù)據(jù)保存到所述數(shù)據(jù)區(qū)域,并且將表示該加速處理已結(jié)束的標(biāo)志寫入到所述同步標(biāo)志區(qū)域, 所述處理器確認(rèn)到表示所述加速處理已結(jié)束的標(biāo)志被寫入所述同步標(biāo)志區(qū)域后,即使所述加速器正在執(zhí)行其他處理,也開始與該標(biāo)志對應(yīng)的任務(wù)。
      2.如權(quán)利要求1所述的處理器系統(tǒng),其特征在于, 所述加速器及所述處理器的每一個,根據(jù)自身所執(zhí)行的處理的進(jìn)行狀況,將后續(xù)應(yīng)該執(zhí)行的任務(wù)所分別對應(yīng)的不同的多個標(biāo)志寫入所述同步標(biāo)志區(qū)域,后續(xù)執(zhí)行任務(wù)的所述加速器及所述處理器的每一個確認(rèn)被寫入到所述同步標(biāo)志區(qū)域的標(biāo)志,執(zhí)行所述對應(yīng)的任務(wù)。
      3.如權(quán)利要求1或2所述的處理器系統(tǒng),其特征在于, 所述存儲器包含能夠由所述加速器及所述處理器訪問的本地存儲器、以及還能夠由其他處理器核心訪問的分散共用存儲器的至少一方, 所述處理器核心還具有在所述存儲器間傳送數(shù)據(jù)的數(shù)據(jù)傳送單元, 所述同步標(biāo)志區(qū)域包含存儲用于在數(shù)據(jù)傳送單元和處理器及加速器之間使各自的動作同步的標(biāo)志的區(qū)域, 所述命令區(qū)域包含預(yù)先存儲由數(shù)據(jù)傳送單元執(zhí)行的任務(wù)的區(qū)域, 所述加速器確認(rèn)到表示所述數(shù)據(jù)傳送單元的規(guī)定的數(shù)據(jù)傳送處理已結(jié)束的標(biāo)志被寫入到所述同步標(biāo)志區(qū)域后,即使所述數(shù)據(jù)傳送單元正在執(zhí)行其他數(shù)據(jù)傳送處理,也讀取被寫入到所述數(shù)據(jù)區(qū)域的數(shù)據(jù),并執(zhí)行與該標(biāo)志對應(yīng)的任務(wù),從而開始加速處理, 在所述加速處理結(jié)束后,所述加速器將所述加速處理后的數(shù)據(jù)保存到所述數(shù)據(jù)區(qū)域,并且將表示該加速處理已結(jié)束的標(biāo)志寫入到所述同步標(biāo)志區(qū)域, 所述數(shù)據(jù)傳送單元確認(rèn)到表示所述加速處理已結(jié)束的標(biāo)志被寫入到所述同步標(biāo)志區(qū)域后,即使所述加速器正在執(zhí)行其他處理,也執(zhí)行與該標(biāo)志對應(yīng)的任務(wù),從而開始數(shù)據(jù)傳送處理。
      4.一種處理器系統(tǒng),在半導(dǎo)體芯片上具備處理器核心,該處理器核心作為構(gòu)成要素具有:進(jìn)行運算處理的處理器、存儲器、在所述存儲器間傳送數(shù)據(jù)的數(shù)據(jù)傳送單元、經(jīng)由耦合網(wǎng)與所述處理器及所述存儲器及所述數(shù)據(jù)傳送單元連接的加速器,所述處理器系統(tǒng)的特征在于, 所述存儲器具有:命令區(qū)域,預(yù)先存儲由所述處理器及所述數(shù)據(jù)傳送單元及所述加速器的各構(gòu)成要素執(zhí)行的任務(wù);同步標(biāo)志區(qū)域,存儲用于在所述各構(gòu)成要素間使各個動作同步的標(biāo)志;以及數(shù)據(jù)區(qū)域,保存所述各構(gòu)成要素在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù), 所述各構(gòu)成要素按照與所述命令區(qū)域中存儲的所述各構(gòu)成要素對應(yīng)的任務(wù)進(jìn)行動作, 所述處理器在所述數(shù)據(jù)傳送單元及所述加速器的某一個構(gòu)成要素結(jié)束規(guī)定的處理后,將處理后的數(shù)據(jù)保存到所述數(shù)據(jù)區(qū)域,并且將表示該處理已結(jié)束的標(biāo)志寫入到所述同步標(biāo)志區(qū)域,由所述一個構(gòu)成要素以外的其他構(gòu)成要素確認(rèn)到所述標(biāo)志被寫入后,即使所述一個構(gòu)成要素正在執(zhí)行其他處理,所述其他構(gòu)成要素也讀取所述數(shù)據(jù)區(qū)域中保存的所述處理后的數(shù)據(jù)并開始與該標(biāo)志對應(yīng)的任務(wù),與所述該標(biāo)志對應(yīng)的任務(wù)結(jié)束后,將與所述該標(biāo)志對應(yīng)的任務(wù)的執(zhí)行后的數(shù)據(jù)保存到所述數(shù)據(jù)區(qū)域,并且將表示與所述該標(biāo)志對應(yīng)的任務(wù)已結(jié)束的標(biāo)志寫入所述同步標(biāo)志區(qū)域, 所述處理器、所述數(shù)據(jù)傳送單元及所述加速器中的所述其他構(gòu)成要素以外的構(gòu)成要素,在確認(rèn)到表示與所述該標(biāo)志對應(yīng)的任務(wù)已結(jié)束的標(biāo)志被寫入所述同步標(biāo)志區(qū)域時,即使所述其他構(gòu)成要素正在執(zhí)行其他處理,也開始執(zhí)行與該標(biāo)志對應(yīng)的任務(wù)。
      5.如權(quán)利要求1~4中任一項所述的處理器系統(tǒng),其特征在于, 所述各構(gòu)成要素執(zhí)行的任務(wù)是參照對由所述處理器系統(tǒng)執(zhí)行的程序進(jìn)行解析而得到的信息、從所述程序生成的,所述生成的任務(wù)與所述標(biāo)志建立對應(yīng)。
      6.如權(quán)利要求1~5中任一項所述的處理器系統(tǒng),其特征在于, 所述加速器具有:處理部,執(zhí)行加速處理;內(nèi)部存儲區(qū)域,暫時保存由所述處理部處理后的數(shù)據(jù);以及加載/儲存 單元,在所述內(nèi)部存儲區(qū)域和所述存儲器之間執(zhí)行數(shù)據(jù)傳送, 所述加載/儲存單元具有加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器,該加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)所述內(nèi)部存儲區(qū)域和所述存儲器之間的數(shù)據(jù)傳送的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      7.如權(quán)利要求1~5中任一項所述的處理器系統(tǒng),其特征在于, 所述加速器具有:處理部,執(zhí)行加速處理;以及內(nèi)部存儲區(qū)域,暫時保存由所述處理部處理后的數(shù)據(jù), 所述處理部具有處理部側(cè)標(biāo)志寫入/確認(rèn)器,該處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)所述內(nèi)部存儲區(qū)域和所述處理部之間的數(shù)據(jù)傳送的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      8.如權(quán)利要求1~5中任一項所述的處理器系統(tǒng),其特征在于, 所述加速器具備:處理部,執(zhí)行加速處理;內(nèi)部存儲區(qū)域,暫時保存由所述處理部處理后的數(shù)據(jù);以及加載/儲存單元,在所述內(nèi)部存儲區(qū)域和所述存儲器之間執(zhí)行數(shù)據(jù)傳送, 所述處理部具有處理部側(cè)標(biāo)志寫入/確認(rèn)器,該處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該處理部的處理的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況, 所述加載/儲存單元具有加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器,該加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該加載/儲存單元的處理的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      9.如權(quán)利要求1~5中任一項所述的處理器系統(tǒng),其特征在于, 所述加速器具備:處理部,執(zhí)行加速處理;內(nèi)部存儲區(qū)域,暫時保存由所述處理部處理后的數(shù)據(jù);加載/儲存單元,在所述內(nèi)部存儲區(qū)域和所述存儲器之間執(zhí)行數(shù)據(jù)傳送;以及標(biāo)志授受寄存器,存儲用于使所述處理部和所述加載/儲存單元的動作同步的標(biāo)志, 所述處理部具有處理部側(cè)標(biāo)志寫入/確認(rèn)器,該處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該處理部的處理的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域或所述標(biāo)志授受寄存器寫入標(biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域或所述標(biāo)志授受寄存器寫入了標(biāo)志的情況, 所述加載/儲存單元具有加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器,該加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該加載/儲存單元的處理的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域或所述標(biāo)志授受寄存器寫入標(biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域或所述標(biāo)志授受寄存器寫入了標(biāo)志的情況。
      10.如權(quán)利要求1~5中任一項所述的處理器系統(tǒng),其特征在于, 所述處理器系統(tǒng)具備多個所述處理器核心。
      11.如權(quán)利要求10所述的處理器系統(tǒng),其特征在于, 所述處理器系統(tǒng)具備由多個所述處理器核心共用的所述半導(dǎo)體芯片上的片內(nèi)集中共用存儲器和由多個所述處理器核心共用的所述半導(dǎo)體芯片外部的片外集中共用存儲器中的至少一方。
      12.如權(quán)利要求1~6中任一項所述的處理器系統(tǒng),其特征在于, 所述加速器具備FV寄存器,該FV寄存器用于決定針對該加速器的供給電壓和動作頻率、以及對電源進(jìn)行控制, 所述加速器在確認(rèn)到向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志后,根據(jù)所述FV寄存器中設(shè)定的值,執(zhí)行該加速器的時鐘頻率的增減、電源電壓的增減、以及電源的通斷的至少一個。
      13.如權(quán)利要求3或4所述的處理器系統(tǒng),其特征在于, 所述存儲器還包括設(shè)置在所述加速器內(nèi)的存儲器及寄存器的至少一方, 所述數(shù)據(jù)傳送單元, 在確認(rèn)到表示所述加速處理已結(jié)束的標(biāo)志被寫入了所述同步標(biāo)志區(qū)域后,即使所述處理器或所述加速器正在執(zhí)行其他處理,也將所述加速器的加速處理的計算結(jié)果的數(shù)據(jù)從所述加速器保存到所述存儲器, 即使所述處理器或所述加速器正在執(zhí)行其他處理,也執(zhí)行從所述存儲器將所述加速器在下次加速處理中使用的數(shù)據(jù)提前讀取到所述加速器的加載處理, 將表示所述加載處理已結(jié)束的標(biāo)志寫入到所述同步標(biāo)志區(qū)域。
      14.一種加速器,包含在處理器系統(tǒng)中,該處理器系統(tǒng)包括:處理器,進(jìn)行運算處理;以及加速器,經(jīng)由耦合網(wǎng)與存儲數(shù)據(jù)的存儲器連接;該加速器的特征在于, 所述存儲器具有:命令區(qū)域,預(yù)先存儲由所述處理器及所述加速器執(zhí)行的任務(wù);同步標(biāo)志區(qū)域,存儲用于在所述處理器和所述加速器之間使各個動作同步的標(biāo)志;以及數(shù)據(jù)區(qū)域,保存所述處理器及所述加速器在處理中使用的數(shù)據(jù)及處理后的數(shù)據(jù); 所述加速器具備:處理部,執(zhí)行加速處理;以及內(nèi)部存儲區(qū)域,暫時保存由所述處理部處理后的數(shù)據(jù); 按照所述命令區(qū)域中存儲的任務(wù)進(jìn)行動作, 在確認(rèn)到表示所述處理器已結(jié)束規(guī)定的處理的標(biāo)志被寫入到所述同步標(biāo)志區(qū)域后,即使所述處理器正在執(zhí)行其他處理,也由所述處理部執(zhí)行與該標(biāo)志對應(yīng)的任務(wù),從而開始加速處理, 所述加速處理結(jié)束后,將所述加速處理的計算結(jié)果的數(shù)據(jù)寫入所述內(nèi)部存儲區(qū)域,并且將表示該加速處理已結(jié)束的標(biāo)志寫入所述同步標(biāo)志區(qū)域。
      15.如權(quán)利要求14所述的加速器, 所述處理器及所述加速器執(zhí)行的任務(wù)是參照對由所述處理器系統(tǒng)執(zhí)行的程序進(jìn)行解析而得到的信息、從所述程序生成的,所述生成的任務(wù)和所述標(biāo)志建立對應(yīng)。
      16.如權(quán)利要求14或15所述的加速器, 所述加速器根據(jù)自身執(zhí)行的處理的進(jìn)行狀況,將后續(xù)應(yīng)該執(zhí)行的任務(wù)所分別對應(yīng)的不同的多個標(biāo)志寫入所述同步標(biāo)志區(qū)域。
      17.如權(quán)利要求13~16中任一項所述的加速器, 所述加速器具備FV寄存器,該FV寄存器用于決定針對該加速器的供給電壓和動作頻率、以及對電源進(jìn)行控制, 所述加速器確認(rèn)到向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志后,根據(jù)所述FV寄存器中設(shè)定的值,執(zhí)行向該加速器的時鐘頻率的增減、電源電壓的增減、以及電源的通斷的至少一個。
      18.如權(quán)利要求13~17中任一項所述的加速器,其特征在于, 所述加速器具備加載/儲存單元,該加載/儲存單元在所述內(nèi)部存儲區(qū)域和所述存儲器之間執(zhí)行數(shù)據(jù)傳送, 所述加載/儲存單元加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器,該加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)所述內(nèi)部存儲區(qū)域和所述存儲器之間的數(shù)據(jù)傳送的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      19.如權(quán)利要求18所述的加速器,其特征在于, 所述處理部具有處理部側(cè)標(biāo)志寫入/確認(rèn)器,該處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該處理部的處理的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      20.如權(quán)利要求19所述的加速器,其特征在于, 所述加速器具備標(biāo)志授受寄存器,該標(biāo)志授受寄存器存儲用于使所述處理部和所述加載/儲存單元的動作同步的標(biāo)志, 所述處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該處理部的處理的執(zhí)行狀況,向所述標(biāo)志授受寄存器寫入標(biāo)志、以及確認(rèn)向所述標(biāo)志授受寄存器寫入了標(biāo)志的情況, 所述加載/儲存單元側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)該加載/儲存單元的處理的執(zhí)行狀況,向所述標(biāo)志授受寄存器寫入標(biāo)志、以及確認(rèn)向所述標(biāo)志授受寄存器寫入了標(biāo)志的情況。
      21.如權(quán)利要求13~17中的任一項所述的加速器, 所述處理部具有處理部側(cè)標(biāo)志寫入/確認(rèn)器,該處理部側(cè)標(biāo)志寫入/確認(rèn)器根據(jù)所述內(nèi)部存儲區(qū)域和所述處理部之間的數(shù)據(jù)傳送的執(zhí)行狀況,向所述同步標(biāo)志區(qū)域?qū)懭霕?biāo)志、以及確認(rèn)向所述同步標(biāo)志區(qū)域?qū)懭肓藰?biāo)志的情況。
      【文檔編號】G06F1/04GK104025045SQ201280065692
      【公開日】2014年9月3日 申請日期:2012年10月30日 優(yōu)先權(quán)日:2011年11月4日
      【發(fā)明者】笠原博德, 木村啟二 申請人:學(xué)校法人早稻田大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1