設(shè)計輔助方法、設(shè)計輔助程序、設(shè)計輔助裝置、以及記錄介質(zhì)的制作方法
【專利摘要】設(shè)計輔助裝置(100)獲取編碼矩陣(ma1)和表示開始定時的信息。設(shè)計輔助裝置(100)對于與編碼矩陣的列矢量對應(yīng)的各定時中的獲取到的信息所示的開始定時以后的各個定時,確定存儲于BRAM的第一部分?jǐn)?shù)據(jù)中的、在定時中被第二部分?jǐn)?shù)據(jù)覆蓋的第一部分?jǐn)?shù)據(jù)。設(shè)計輔助裝置(100)對于開始定時以后的各個定時,確定多個XOR運算中的基于確定出的第一部分?jǐn)?shù)據(jù)的XOR運算。設(shè)計輔助裝置(100)對于開始定時以后的各個定時,確定比各定時中的開始定時靠前的各定時中的、確定出的XOR運算的運算結(jié)果和基于與定時對應(yīng)的矢量確定出的XOR運算的運算結(jié)果相同的定時。
【專利說明】
設(shè)計輔助方法、設(shè)計輔助程序、設(shè)計輔助裝置、從及巧錄介質(zhì)
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及設(shè)計輔助方法、設(shè)計輔助程序、設(shè)計輔助裝置、W及記錄介質(zhì)。
【背景技術(shù)】
[0002] W往,在互聯(lián)網(wǎng)中有時由于通信中途存在的路由器的緩沖區(qū)內(nèi)存溢出等而丟失數(shù) 據(jù)包。例如,在作為一般的通信協(xié)議的TCP/IP(Transmission Control Protocol/Internet Protocol:傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)中,存在由于產(chǎn)生數(shù)據(jù)包的丟失而一下子將通信速 度降低的情況。因此,在產(chǎn)生數(shù)據(jù)包的丟失的通信環(huán)境中,存在通信速度顯著變慢的情況。
[0003] 作為克服TCP/IP的缺點的方法,公知有RPS(Random Parity stream:隨機校驗流) 編碼處理(例如,參照下述非專利文獻(xiàn)1、專利文獻(xiàn)1等。)。在RPS編碼處理中,在數(shù)據(jù)發(fā)送側(cè) 送出冗余數(shù)據(jù),在接收側(cè),當(dāng)有丟失的數(shù)據(jù)包的情況下使用冗余數(shù)據(jù)來再現(xiàn)丟失的數(shù)據(jù)包。 另外,W往例如通過軟件來進行WS編碼處理。
[0004] 另外,公知有一種在數(shù)據(jù)包的發(fā)送中利用奇偶計算來檢測數(shù)據(jù)包的錯誤的技術(shù) (例如,參照下述專利文獻(xiàn)2、3。)。
[0005] 專利文獻(xiàn)1:日本特開2007-258796號公報
[0006] 專利文獻(xiàn)2:日本特開平10-190481號公報
[0007] 專利文獻(xiàn)3:日本特開2005-102037號公報
[000引非專利文獻(xiàn)1:亀山裕亮、佐藤裕一、"大規(guī)模尹一夕玄扱弓工シク二アリシクアフリ 少一シ3シ向巧。高速?ASPシ乂テ厶。構(gòu)築"、[online]、7瓜予7^尹>7,分散,協(xié)調(diào)子 八斗瓜(DIC0M02008)シシ求ック厶、[平成25年12月6日検索]、斗シ夕一本;/b<http:// www.dicomo.org/2008/program/3H_abst.html>
[0009] 然而,W往若通過軟件來實現(xiàn)編碼處理,則存在編碼處理花費時間運一情況。另 夕h若將編碼處理硬件化,則即使編碼處理能夠高速化,也存在若存儲器少則用于編碼處理 的數(shù)據(jù)傳輸花費等待時間運一情況。因此,存在無法高效地進行編碼處理運一問題點。
【發(fā)明內(nèi)容】
[0010] 在一個方面中,本發(fā)明的目的在于,提供能夠?qū)崿F(xiàn)編碼處理的效率化的設(shè)計輔助 方法、設(shè)計輔助程序、設(shè)計輔助裝置、W及記錄介質(zhì)。
[0011] 根據(jù)本發(fā)明的一個方面,提出了下述的設(shè)計輔助方法、設(shè)計輔助程序、設(shè)計輔助裝 置、W及記錄介質(zhì),所述設(shè)計輔助方法對編碼電路的設(shè)計進行輔助,該編碼電路通過對于具 有比規(guī)定數(shù)量下,稱為"第一數(shù)量")多的第二數(shù)量的、具有上述第一數(shù)量的分量的矢量 的編碼矩陣的各個上述矢量,進行包括基于上述第一數(shù)量的被存儲于存儲區(qū)域的多個部分 數(shù)據(jù)和上述矢量的各分量的多個邏輯運算的編碼處理,來得到上述第二數(shù)量的編碼數(shù)據(jù), 上述多個部分?jǐn)?shù)據(jù)是將編碼的對象數(shù)據(jù)分割為上述第一數(shù)量而得到的多個部分?jǐn)?shù)據(jù),上述 設(shè)計輔助方法獲取上述編碼矩陣;獲取表示基于將編碼的第一對象數(shù)據(jù)分割而得到且儲存 于上述存儲區(qū)域的多個第一部分?jǐn)?shù)據(jù)和獲取到的上述編碼矩陣的上述矢量的各分量的上 述編碼處理中的與上述矢量對應(yīng)的各定時中、開始將編碼的第二對象數(shù)據(jù)分割而得到的多 個第二部分?jǐn)?shù)據(jù)向上述存儲區(qū)域儲存的開始定時的信息;對于上述各定時中的獲取到的上 述信息所示的上述開始定時W后的各個定時,確定存儲于上述存儲區(qū)域的上述多個第一部 分?jǐn)?shù)據(jù)中的、在上述定時被上述第二部分?jǐn)?shù)據(jù)覆蓋的第一部分?jǐn)?shù)據(jù);對于上述開始定時W 后的各個定時,在與上述定時對應(yīng)的上述矢量的各分量中的、與確定出的上述第一部分?jǐn)?shù) 據(jù)對應(yīng)的分量是規(guī)定值的情況下,確定上述多個邏輯運算中的、基于確定出的上述第一部 分?jǐn)?shù)據(jù)的邏輯運算;對于上述開始定時W后的各個定時,確定比上述各定時中的上述開始 定時靠前的各定時中的、確定出的上述邏輯運算的運算結(jié)果和基于與上述定時對應(yīng)的上述 矢量確定出的上述邏輯運算的運算結(jié)果相同的定時。
[0012] 根據(jù)本發(fā)明的一個方式,能夠?qū)崿F(xiàn)編碼處理的效率化。
【附圖說明】
[0013] 圖1是表示本發(fā)明所設(shè)及的設(shè)計輔助裝置所進行的一個動作例的說明圖。
[0014] 圖2是表示數(shù)據(jù)發(fā)送時的WS編碼處理例的說明圖。
[0015] 圖3是表示數(shù)據(jù)接收時的WS解碼處理例的說明圖。
[0016] 圖4是表示用于發(fā)送數(shù)據(jù)的系統(tǒng)構(gòu)成例的說明圖。
[0017] 圖5是表示FPGA內(nèi)的塊例的說明圖。
[0018] 圖6是表示編碼電路例的說明圖。
[0019] 圖7是表示編碼電路的部分例的說明圖。
[0020] 圖8是表示各部分電路的變更例的說明圖。
[0021 ]圖9是表示編碼電路例2的說明圖。
[0022] 圖10是表示實施方式所設(shè)及的設(shè)計輔助裝置的硬件構(gòu)成例的框圖。
[0023] 圖11是表示設(shè)計輔助裝置的功能性構(gòu)成例的框圖。
[0024] 圖12是表示編碼矩陣?yán)恼f明圖。
[0025] 圖13是表示提前數(shù)為0的情況下的訪問定時例的說明圖(其1)。
[0026] 圖14是表示提前數(shù)為0的情況下的訪問定時例的說明圖(其2)。
[0027] 圖15是表示在提前了輸入塊供給的情況下數(shù)據(jù)被覆蓋的BRAM的分布例的說明圖。
[0028] 圖16是表示提前數(shù)為1的情況下的訪問定時例的說明圖。
[0029] 圖17是表示提前數(shù)為2的情況下的訪問定時例的說明圖。
[0030] 圖18是表示提前數(shù)為3的情況下的訪問定時例的說明圖。
[0031] 圖19是表示提前數(shù)為4的情況下的訪問定時例的說明圖。
[0032] 圖20是表示提前數(shù)為5的情況下的訪問定時例的說明圖。
[0033] 圖21是表示提前數(shù)為6的情況下的訪問定時例的說明圖。
[0034] 圖22是表示提前數(shù)為7的情況下的訪問定時例的說明圖。
[0035] 圖23是表示提前數(shù)為2或者3的情況下的編碼電路101例的說明圖。
[0036] 圖24是表示提前數(shù)為4的情況下的編碼電路101例的說明圖。
[0037] 圖25是表示BRAM的位置例的說明圖。
[0038] 圖26是表示模板邏輯式例子的說明圖。
[0039] 圖27是表示變量與BRM的位置的對應(yīng)關(guān)系的說明圖。
[0040] 圖28是表示求解BRAM的分配問題的程序例子的說明圖。
[0041] 圖29是表示所生成的電路描述例的說明圖。
[0042 ]圖30是表示編碼電路101和控制編碼電路101的控制電路的說明圖。
[0043] 圖31是表示圖30所示的電路的動作例的說明圖。
[0044] 圖32是表示提前執(zhí)行處理例的說明圖。
[0045] 圖33是表示用于進行提前執(zhí)行處理的電路構(gòu)成例的說明圖。
[0046] 圖34是表示編碼矩陣的列矢量替換例的說明圖。
[0047] 圖35是表示因列矢量替換引起的BRM的使用數(shù)的變化例的說明圖。
[0048] 圖36是表示設(shè)計輔助裝置所進行的設(shè)計輔助處理順序例的流程圖(其1)。
[0049] 圖37是表示設(shè)計輔助裝置所進行的設(shè)計輔助處理順序例的流程圖(其2)。
【具體實施方式】
[0050] W下,參照附圖詳細(xì)地對本發(fā)明所設(shè)及的設(shè)計輔助方法、設(shè)計輔助程序、設(shè)計輔助 裝置、W及記錄介質(zhì)的實施方式進行說明。
[0051] 圖1是表示本發(fā)明所設(shè)及的設(shè)計輔助裝置的一個動作例的說明圖。設(shè)計輔助裝置 100是對編碼電路101的設(shè)計進行輔助的計算機。編碼電路101通過利用編碼矩陣mal和多個 部分?jǐn)?shù)據(jù)進行編碼處理來得到編碼數(shù)據(jù)。運里,編碼數(shù)據(jù)稱為編碼塊。編碼矩陣mal具有第 二數(shù)量的、具有將編碼的對象數(shù)據(jù)分割而得到的多個部分?jǐn)?shù)據(jù)的規(guī)定數(shù)量下稱為"第一 數(shù)量"。)的值的矢量,其中,第二數(shù)量比第一數(shù)量多。運里的編碼處理例如是RPS的編碼處 理。另外,運里將部分?jǐn)?shù)據(jù)稱為塊。在圖1的例子中,對象數(shù)據(jù)被分割成16塊。圖1的編碼矩陣 mal具有30個具有作為第一數(shù)量的16個值的列矢量。列矢量的各分量因列矢量而不同。在本 實施方式中,還在多個存儲區(qū)域分別預(yù)先保存成為編碼電路101的編碼處理的對象的多個 塊。運里的存儲區(qū)域稱為BRAM(Block Random Access Memory:塊隨機存取存儲器)eBRAM例 如是能夠在FPGA(Field Programmable Gate Array:現(xiàn)場可編程口陣列)內(nèi)利用的RAM的一 種。
[0052] W往,例如若進行RPS的編碼處理的軟件W〇.5[Gbps]輸出編碼數(shù)據(jù),則即使是1 [Gbps]的通信頻帶,也W0.5[加 PS]發(fā)送編碼數(shù)據(jù)。另外,近年來的國際通信線路的通信頻 帶主流是100 [Mbps]左右,但在將來成為10 [Gbps]的情況下,在基于軟件的處理中無法局效 地利用通信頻帶。對于RPS的編碼處理W及解碼處理被利用的狀況,假定跨國家與國家的程 度的網(wǎng)絡(luò)規(guī)模。鑒于此,在本實施方式中,通過將WS的編碼處理硬件化,來實現(xiàn)編碼處理的 高速化。然而,在利用FPGA等將RPS的編碼處理硬件化的情況下,必須在BRAM等保存編碼的 對象數(shù)據(jù),但若BRAM的容量少,則用于將對象數(shù)據(jù)儲存到BRAM等的數(shù)據(jù)傳輸?shù)却龝r間變長。 因此,無法高效地利用通信頻帶。
[0053] 鑒于此,在本實施方式中,設(shè)計輔助裝置100對于提前執(zhí)行中的各定時,通過編碼 矩陣mal來確定基于在提前執(zhí)行中被覆蓋的數(shù)據(jù)的運算、和該運算的結(jié)果與該定時相同的 其他定時。由此,能夠省內(nèi)存量地設(shè)計可提前執(zhí)行的編碼電路101。因此,能夠高效地進行編 碼處理。高效地進行編碼處理是指即使省內(nèi)存也能高吞吐量地進行。
[0054] 運里,在編碼電路101中,當(dāng)生成一個編碼塊時,一個列矢量被輸入至編碼電路101 所包含的AND電路的一方。由此,決定哪個塊被輸入至X0R電路所進行的X0R運算。另外,在本 實施方式中,因為輸出數(shù)據(jù)量增加冗余數(shù)據(jù)的量,所w作為前提條件,"(數(shù)據(jù)輸入速率)< (數(shù)據(jù)輸出速率Γ。
[0055] 首先,設(shè)計輔助裝置100獲取編碼矩陣mal。接著,設(shè)計輔助裝置100獲取編碼處理 中的與編碼矩陣ma 1所具有的列矢量對應(yīng)的多個定時中的、表示多個BRAM開始向?qū)⒕幋a的 第二對象數(shù)據(jù)d2分割而得到的多個第二部分?jǐn)?shù)據(jù)儲存的定時的信息。運里的編碼處理是基 于將編碼的第一對象數(shù)據(jù)dl分割而得到且被儲存于BRAM的多個第一部分?jǐn)?shù)據(jù)和獲取到的 編碼矩陣mal的矢量的各分量的編碼處理。作為表示定時的信息,既可W是與定時對應(yīng)的列 矢量的編號,也可W是后述的提前數(shù)。例如,在圖1的例子中,開始定時是與列矢量0到列矢 量29中的列矢量27對應(yīng)的定時。
[0056] 接著,設(shè)計輔助裝置100對于各定時中的獲取到的信息所示的開始定時W后的各 個定時,確定存儲于BRAM的多個第一塊中的、在定時中被第二塊覆蓋的第一部分?jǐn)?shù)據(jù)。在圖 1的例子中,對于列矢量27而言,被儲存于BRAM0的第一塊覆蓋。對于列矢量28而言,被儲存 于BRAM0W及BRAM1的第一塊覆蓋。對于列矢量29而言,被儲存于BRAM0到BRAM2的第一塊覆 單 rm 〇
[0057] 接著,設(shè)計輔助裝置100對于開始定時W后的各個定時,在與定時對應(yīng)的列矢量的 各分量中的、與確定出的第一塊對應(yīng)的分量是規(guī)定值的情況下,對基于確定出的第一塊的 邏輯運算進行確定。運里,在圖1的例子中,規(guī)定值是1。運里的邏輯運算是指X0R運算。在圖1 的例子中,列矢量28的各分量中的、與儲存于BRAM0的第一塊對應(yīng)的分量是1。另外,列矢量 27W及列矢量29的各分量中的、與確定出的第一塊對應(yīng)的分量是0。運里,設(shè)計輔助裝置100 例如確定編碼電路101的X0R電路中的、BRAM0的數(shù)據(jù)通過的X0R電路所進行的X0R運算。
[0058] 而且,設(shè)計輔助裝置100對于開始定時W后的各個定時,確定各定時中的比開始定 時靠前的各定時中的、與確定出的X0R運算的運算結(jié)果相同的定時。確定出的X0R運算的運 算結(jié)果是基于確定出的X0R運算的運算結(jié)果與定時對應(yīng)的矢量的運算結(jié)果。例如,由于基于 列矢量0的確定出的邏輯運算的運算結(jié)果與基于列矢量28的確定出的邏輯運算的運算結(jié)果 相同(換言之,列矢量0和列矢量28因由第0~1因素構(gòu)成的部分列矢量均是[1 0]而相等,所 WX0R運算結(jié)果也相同),所W設(shè)計輔助裝置100確定與列矢量0對應(yīng)的定時。
[0059] 另外,雖然圖1中未示出,但設(shè)計輔助裝置100在開始定時W后的定時中的不同的2 個定時彼此中,判斷是否確定出的邏輯運算相同并且確定出的邏輯運算的運算結(jié)果不同。 設(shè)計輔助裝置100在邏輯運算相同且確定出的邏輯運算的運算結(jié)果不同的情況下,在不同 的2個定時彼此中,W確定的邏輯運算不重疊的方式進行確定邏輯運算的處理和確定定時 的處理。
[0060] 由此,能夠省內(nèi)存量地設(shè)計可提前執(zhí)行的編碼電路101。因此,能夠高效地進行編 碼處理。
[0061] 另外,雖然圖1中未示出,但設(shè)計輔助裝置100基于確定出的邏輯運算和確定出的 定時,生成表示編碼電路101和控制電路的電路信息。運里,所生成的編碼電路101是在編碼 電路101設(shè)置了儲存對于開始定時W后的各個定時確定出的邏輯運算的運算結(jié)果的BRAM的 電路。另外,控制電路是進行使在對于開始定時W后的各個定時確定出的定時中確定出的 邏輯運算的運算結(jié)果儲存到BRAM的控制的電路。由此,能夠自動地得到表示編碼電路101的 電路信息,所W能夠節(jié)省設(shè)計者的工夫。
[0062] 另外,雖然圖1中未示出,但設(shè)計輔助裝置100對于獲取到的編碼矩陣mal的列矢量 中的、第一數(shù)量之后的各個矢量,對從開頭行起依次連續(xù)的與規(guī)定值不同的值的數(shù)量進行 計數(shù)。如上所述,規(guī)定值是1,與規(guī)定值不同的值是0。然后,設(shè)計輔助裝置100基于編碼矩陣 mal來生成按照計數(shù)出的與規(guī)定值不同的值的數(shù)量從多到少的順序重新排列第一數(shù)量之后 的矢量而得到的編碼矩陣。在后述的圖34中示出重新排列后的編碼矩陣的例子。而且,設(shè)計 輔助裝置100使用生成的編碼矩陣mal來進行上述的確定邏輯運算的處理、和確定定時的處 理。由此,能夠W較少的內(nèi)存容量進行更多的提前執(zhí)行。
[0063] (WS編碼/解碼)
[0064] 圖2是表示數(shù)據(jù)發(fā)送時的RPS編碼處理例的說明圖。運里,簡單地對本實施方式中 利用的RPS編碼進行說明。在互聯(lián)網(wǎng)中,存在由于通信中途存在的路由器的緩沖區(qū)內(nèi)存溢出 等而數(shù)據(jù)包丟失的情況。例如,在作為一般的通信協(xié)議的TCP/IP中,存在由于產(chǎn)生數(shù)據(jù)包的 丟失而一下子將通信速度降低的情況。因此,在屢次產(chǎn)生數(shù)據(jù)包丟失的通信環(huán)境中,存在通 信速度顯著變慢的情況。
[0065] 作為克服TCP/IP的缺點的方法,公知有RPS編碼處理。在RPS編碼處理中的數(shù)據(jù)發(fā) 送側(cè)送出冗余數(shù)據(jù),在RPS編碼處理中的接收側(cè),在存在丟失的數(shù)據(jù)包的情況下使用冗余數(shù) 據(jù)來再現(xiàn)丟失的數(shù)據(jù)包。由此,實現(xiàn)數(shù)據(jù)包丟失時的數(shù)據(jù)的重新發(fā)送次數(shù)的減少。
[0066] 如圖2所示,在WS編碼處理中,例如每1[邸]地將16比B]的數(shù)據(jù)剪切為塊。運里,16 [KB]的數(shù)據(jù)被剪切為塊[0]~塊[15]。接著,在RPS編碼處理中,將塊[0]~塊[15]按原樣發(fā) 送。而且,在RPS編碼處理中,發(fā)送按塊[0]~塊[15]中的能采取的每個組合進行X0R運算而 生成的多個冗余塊。
[0067] 圖3是表示數(shù)據(jù)接收時的WS解碼處理例的說明圖。在RPS解碼處理中,對于經(jīng)由互 聯(lián)網(wǎng)而接收到的數(shù)據(jù),有檢查數(shù)據(jù)是否正常的處理、檢查是否有丟失的數(shù)據(jù)包的處理、除去 數(shù)據(jù)包報頭來取出RPS的塊的處理等。在圖3的例子中,設(shè)塊[2]數(shù)據(jù)包丟失而無法接收。鑒 于此,在WS解碼處理中,利用塊[0][1][3]~[15]和冗余塊[0]來再現(xiàn)塊[2]。運樣,在WS解 碼處理中,利用接收到的16個W上塊(包括冗余塊)來生成原來的16比B]的數(shù)據(jù)。
[0068] 另外,在圖2W及圖3的例子中,示出了 16[KB]的數(shù)據(jù)被分割成各1[邸]的例子,但 原來的數(shù)據(jù)的尺寸、數(shù)據(jù)的分割方法、冗余塊的計算方法并不特別限定。
[0069] 圖4是表示用于發(fā)送數(shù)據(jù)的系統(tǒng)構(gòu)成例的說明圖。系統(tǒng)400具有CPU401、主存儲裝 置402、W及擴展板404dCPU401和擴展板404經(jīng)由PCI EXPRESS總線403連接。具體而言,例如 擴展板404連接于在作為設(shè)計輔助裝置100的服務(wù)器設(shè)置的擴展插槽。
[0070] 擴展板404具有RAM411、FPGA412、W及LAN連接器413。另外,F(xiàn)PGA412經(jīng)由開關(guān)、路 由器與數(shù)據(jù)接收主機430等其他的服務(wù)器等連接,LAN連接器經(jīng)由LAN、WAN等網(wǎng)絡(luò)肥T與數(shù)據(jù) 接收主機430等其他的服務(wù)器等連接。
[0071 ]圖5是表示FPGA內(nèi)的塊例的說明圖。圖5所示的FPGA412內(nèi)的塊是表示編碼電路101 被編程后的內(nèi)部構(gòu)成的塊例。FPGA412具有PCI EXPRESS端點(end point)501、存儲器控制 器502、多個BRAM、編碼電路101、數(shù)據(jù)發(fā)送緩沖區(qū)503、數(shù)據(jù)包報頭追加部504、MAC層部505、 W及物理層部506。另外,F(xiàn)PGA412還具有控制各部的電路。
[0072]存儲器控制器502和多個BRAM經(jīng)由總線連接。存儲器控制器502具有控制圖4所示 的RAM411和多個BRAM的功能,經(jīng)由PCI EXPRESS端點501受理來自圖4所示的CPU401的指示。 例如,存儲器控制器502將來自RAM411的數(shù)據(jù)儲存到BRAMdPCI EXPRESS端點501與圖4所示 的PCI EXPRESS總線403和存儲器控制器502連接。
[0073] 編碼電路101對來自BRAM的數(shù)據(jù)進行RPS編碼。另外,數(shù)據(jù)發(fā)送緩沖區(qū)503暫時地儲 存編碼電路101的編碼數(shù)據(jù)。數(shù)據(jù)包報頭追加部504例如將基于UDP(User Datagram Protocol:用戶數(shù)據(jù)報協(xié)議)/IP協(xié)議的數(shù)據(jù)包的報頭追加到編碼數(shù)據(jù)。MAC層部505例如進 行UDP/IP協(xié)議之后的處理、與MAC層的協(xié)議對應(yīng)的處理。物理層部506例如對于來自MAC層部 505的數(shù)字?jǐn)?shù)據(jù)進行用于向使用了電、光等的模擬信號介質(zhì)送出信號的處理。物理層部506 與LAN連接器413連接。
[0074] 圖6是表示編碼電路例的說明圖。圖7是表示編碼電路的部分例的說明圖。在圖6的 例子中,舉出對成為對編碼電路101-1的輸入的數(shù)據(jù)進行存儲的BRAM是16個的情況為例。 圖6所不的編碼電路101 -1是與編碼處理對應(yīng)的電路。編碼電路101 -1具有部分電路601 - 1~601-8和部分電路602-1~602-7。
[0075] 如圖7所示,部分電路601具有寄存器701、702、AND電路703、704、X0R電路705、W及 寄存器706。寄存器701、702暫時地儲存來自BRAM的數(shù)據(jù)。如圖7所示,根據(jù)某個構(gòu)成例,BRAM 是36比Bit]的RAM,被利用為1個字為72比特且字?jǐn)?shù)為512,能夠保持四個1比B(B^e)]的輸 入塊。另外,AND電路703、704將來自寄存器的信號和0或者1的信號作為輸入,向X0R電路輸 出邏輯積運算結(jié)果。作為0或者1的信號,例如被輸入編碼矩陣內(nèi)對應(yīng)的值。X0R電路705將來 自2個AND電路703、704的輸出信號作為輸入,向寄存器706輸出運算結(jié)果。
[0076] 另外,如圖7所示,部分電路602具有X0R電路710和寄存器711 dXOR電路710將來自 各寄存器706的輸出信號作為輸入,向寄存器711輸出X0R運算的運算結(jié)果。寄存器711暫時 地儲存X0R電路的輸出信號。如圖6所示,在編碼電路101設(shè)置有(BRAM的數(shù)量/2)個部分電路 601,部分電路602設(shè)置有直至輸出信號為一個的數(shù)量。
[0077] 運里,簡單地對圖4所示的WS軟件部421和圖4所示的RPS硬件部422各自的處理進 行說明。例如,CPU401所執(zhí)行的WS軟件部421將想發(fā)送的對象數(shù)據(jù)儲存在主存儲裝置402的 傳輸緩沖區(qū)區(qū)域。而且,WS軟件部421對WS硬件部422指示執(zhí)行。WS硬件部422包括編碼電 路101和巧制編碼電路101的巧制電路。
[007引(1 )RPS硬件部422使FPGA412內(nèi)的DMA電路將傳輸緩沖區(qū)的數(shù)據(jù)向RAM411傳輸。(2) RPS硬件部422從RAM411將合計16比B]的數(shù)據(jù)各1比B]地依次寫入BRAM0~BRAM15e(3)RPS硬 件部422設(shè)j = 0。然后,(4)RPS硬件部422將后述的編碼矩陣的第j列的值輸入至編碼電路 101的AND電路。接著,(5)RPS硬件部422讀出BRAM0~15的地址0~1023,并且將被輸出的X0R 運算后的1[邸]的編碼數(shù)據(jù)傳遞給數(shù)據(jù)發(fā)送緩沖區(qū)503、數(shù)據(jù)包報頭追加部504等后續(xù)的處 理。然后,(6)RPS硬件部422設(shè)j = j+l,反復(fù)進行(4)~(6)直至j變得比編碼矩陣的列數(shù)多為 止,如果j比編碼矩陣的列數(shù)多則返回到(2)。其中,在j達(dá)到編碼矩陣的列數(shù)W前從數(shù)據(jù)接 收主機430收到數(shù)據(jù)接收完成通知的情況下,由于不需要送出更多的冗余塊,所W返回到 (2)。雖然在圖4中省略,但用于接受數(shù)據(jù)接收完成通知的電路包含于RPS硬件部422。運樣, 能夠硬件和軟件協(xié)作來對對象數(shù)據(jù)進行編碼并發(fā)送。
[0079]圖8是表示各部分電路的變更例的說明圖。部分電路801是設(shè)置了對部分電路601 所包含的X0R電路所進行的X0R運算的運算結(jié)果進行儲存的BRAM的例子。在部分電路801中 設(shè)置有對于部分電路601儲存來自X0R電路的輸出信號的BRAM,并設(shè)置有選擇來自寄存器的 輸出信號和來自BRAM的輸出信號并輸出的選擇電路811。另外,在部分電路801中設(shè)置有對 是否輸出來自選擇電路811的信號進行控制的AND電路812。
[0080] 部分電路802是設(shè)置了對部分電路602所包含的X0R電路所進行的X0R運算的運算 結(jié)果進行儲存的BRAM的例子。在部分電路802設(shè)置有對于部分電路602儲存來自X0R電路的 輸出信號的BRAM,并設(shè)置有選擇來自寄存器的輸出信號和來自BRAM的輸出信號并輸出的選 擇電路821。
[0081] 圖9是表示編碼電路例2的說明圖。編碼電路101-2是編碼電路101-1所包含的各 部分電路601被置換成部分電路801的電路。另外,編碼電路101-2是編碼電路101-1所包 含的部分電路602-1~602-6分別被置換成部分電路802-1~802-6的電路。通過運樣將 X0R電路所進行的X0R運算的中間結(jié)果儲存到BRAM,來實現(xiàn)吞吐量的提高。
[0082] 另外,運里簡單地對解碼處理進行說明。解碼處理中的、根據(jù)接收到的編碼塊重新 構(gòu)成丟失的塊的處理能夠利用與編碼電路相同的電路。其中,在解碼電路的輸入部配置的 BRAM的數(shù)最大,為編碼矩陣的列矢量數(shù)。另外,輸入至解碼電路中的AND電路的數(shù)據(jù)不是編 碼矩陣的列矢量,而是用于解碼的矢量。解碼電路在丟失的塊數(shù)為1~2左右等較少時預(yù)先 計算解碼矢量并儲存到存儲部。由此,由于解碼電路能夠如查表那樣從存儲部獲取解碼矢 量,所W變?yōu)楦咚佟=獯a電路在丟失的塊數(shù)較多時按照高斯消元等算法動態(tài)地計算而求出。 由于動態(tài)地進行計算,所W花費時間。
[0083] 基于上述內(nèi)容,對設(shè)計輔助裝置100所進行的表示編碼電路101的電路信息的生成 處理詳細(xì)地進行說明。運里,設(shè)計輔助裝置100例如為利用者終端裝置,但也可W是上述的 系統(tǒng)400。
[0084] (設(shè)計輔助裝置100的硬件構(gòu)成例)
[0085] 圖10是表示實施方式所設(shè)及的設(shè)計輔助裝置的硬件構(gòu)成例的框圖。在圖10中,設(shè) 計輔助裝置 100具有CPU(Central Processing Unit:中央處理器)1001、R0M(Read Only Memo巧:只讀存儲器)1002、RAM1003、盤驅(qū)動器1004、W及盤1005。設(shè)計輔助裝置100具有I/F (Inte計ace:接口)1006、輸入裝置1007、W及輸出裝置1008。另外,各部由總線1000分別連 接。
[0086] 運里,CPU1001掌控設(shè)計輔助裝置100整體的控制。R0M1002存儲有引導(dǎo)程序等程 序。RAM1003作為CPU1001的工作區(qū)域被使用。盤驅(qū)動器1004根據(jù)CPU1001的控制來控制針對 盤1005的數(shù)據(jù)的讀/寫。盤1005存儲在盤驅(qū)動器1004的控制下寫入的數(shù)據(jù)。作為盤1005,可 列舉出磁盤、光盤等。
[0087] I/F1006通過通信線路與LAN(L〇cal Area Network:局域網(wǎng))、WAN(Wide Area 化twork:廣域網(wǎng))、互聯(lián)網(wǎng)等網(wǎng)絡(luò)肥Τ連接,并經(jīng)由該網(wǎng)絡(luò)肥Τ與其他的裝置連接。而且,I/ F1006掌控網(wǎng)絡(luò)肥T與內(nèi)部的接口,控制來自外部裝置的數(shù)據(jù)的輸入輸出。I/F1006例如能夠 義用調(diào)制解調(diào)器、LAN適配器等。
[0088] 輸入裝置1007是鍵盤、鼠標(biāo)、觸摸面板等通過利用者的操作進行各種數(shù)據(jù)的輸入 的接口。另外,輸入裝置1007也能夠從照相機獲取圖像、動畫。另外,輸入裝置1007也能夠從 話筒獲取聲音。輸出裝置1008是通過CPU1001的指示輸出數(shù)據(jù)的接口。輸出裝置1008可舉出 顯示器、打印機。
[0089] (設(shè)計輔助裝置100的功能性構(gòu)成例)
[0090] 圖11是表示設(shè)計輔助裝置的功能性構(gòu)成例的框圖。設(shè)計輔助裝置100具有控制部 1101和存儲部1102。存儲部1102例如由RAM1003、盤1005等實現(xiàn)??刂撇?101的處理例如被 編碼為存儲于CPU1001能夠訪問的存儲裝置的設(shè)計輔助程序。然后,通過CPU1001從存儲裝 置讀出設(shè)計輔助程序,并執(zhí)行被編碼為設(shè)計輔助程序的處理,來實現(xiàn)控制部1101的處理。另 夕h控制部1101的處理結(jié)果例如被存儲于存儲部1102。
[0091] 存儲部1102中例如存儲有表示上述的部分電路601-1~601-8的各個的電路信 息作為模板電路信息。另外,存儲部1102中儲存有后述的模板表達(dá)式。
[0092] 首先,控制部1101獲取編碼矩陣和提前數(shù)。作為獲取形式,例如既可W通過讀出在 RAM1003或盤1005等存儲裝置存儲的編碼矩陣和提前數(shù)來獲取,也可W經(jīng)由輸入裝置1007 等從利用者獲取。提前執(zhí)行是指使第二次的處理與第一次的處理重合。增加重合的量相當(dāng) 于縮短執(zhí)行開始間隔。提前數(shù)表示重合的量。
[0093] 圖12是表示編碼矩陣?yán)恼f明圖。編碼矩陣mal的各行與被分割出的各塊對應(yīng)。編 碼矩陣mal的各列與進行發(fā)送的編碼塊的順序?qū)?yīng)。列矢量表示對哪個塊進行X0R運算。具 體而言,由于在RPS編碼處理中,首先將各塊按原樣輸出,所W編碼矩陣mal中的從第0到第 15列,各行的值依次為1。由此,從第0個到第15個,16[邸]的數(shù)據(jù)被分割了的塊[0]~塊[1引 被依次發(fā)送。
[0094] 接著,對于編碼矩陣mal中第16列W后設(shè)定了能夠創(chuàng)建冗余數(shù)據(jù)的信息。例如,由 于對圖12所示的第16列而言,各分量全部為1,所W第16個被發(fā)送的塊成為對于從BRAM0到 BRAM15的數(shù)據(jù)按每個字進行了 X0R運算的數(shù)據(jù)。被第17個發(fā)送的塊例如成為對于BRAM0、2、 4、6、8、10、12、14的數(shù)據(jù)按每個字進行了乂03運算的數(shù)據(jù)。在圖12的例子中,為了簡化說明, 將編碼矩陣mal的尺寸設(shè)為16行30列,但并不特別限定。
[0095] 圖13是表示提前數(shù)為0的情況下的訪問定時例的說明圖(其1)。^后的訪問定時圖 用"擴表示被多個X0R電路參照的塊與儲存被輸入的塊的BRAM0~15的對應(yīng)關(guān)系。在提前數(shù) 為0的情況下,上述的編碼電路101被直接利用。
[0096] 圖14是表示提前數(shù)為0的情況下的訪問定時例的說明圖(其2)。在被輸出了塊29之 后,新的16比B]的數(shù)據(jù)被寫入BRAM0~15。編碼電路101在計算關(guān)于冗余數(shù)據(jù)的塊的過程中, 無法進行輸入塊對BRAM0~15的供給。因此,若提前數(shù)是0則吞吐量降低,但通過增多提前 數(shù),吞吐量會提高。
[0097] 圖15是表示在提前了輸入塊供給的情況下被覆蓋數(shù)據(jù)的BRAM的分布例的說明圖。 在圖15的例子中,由于在提早1個周期~16個周期的情況下都同樣地利用在各塊的創(chuàng)建中 設(shè)置有的BRAM的數(shù)據(jù),所W存在關(guān)于各塊的創(chuàng)建的編碼處理不被正常進行的情況。
[009引鑒于此,控制部1101生成表示如上述的部分電路801、部分電路802那樣設(shè)置了 BRAM的編碼電路101的電路信息,W便即使進行提前,編碼處理也被正常地進行。
[0099] 具體而言,控制部1101基于提前數(shù)來確定由于提前而被消除的數(shù)據(jù)和被消除的定 時的組合。該組合能夠由第i行j列表示。例如,控制部1101也可W通過基于提前數(shù)對于訪問 定時圖的各數(shù)據(jù)的位置中的由于提前而被消除的數(shù)據(jù)的位置進行上色,來確定組合。然后, 控制部1101對于確定出的各個組合,判斷編碼矩陣mal中的、與確定出的組合對應(yīng)的分量是 否是1。
[0100] 在確定出的組合中沒有與組合對應(yīng)的分量是1的組合的情況下,控制部1101判斷 為能夠由編碼電路101-1進行編碼處理。另一方面,在確定出的組合中沒有與組合對應(yīng)的 分量是1的組合的情況下,控制部1101判斷為無法由編碼電路101-1進行編碼處理。
[0101] 圖16是表示提前數(shù)為1的情況下的訪問定時例的說明圖。在提前數(shù)是1的情況下, 使輸入塊對BRAM0~15的供給提早1個周期。該情況下,在與列矢量29對應(yīng)的定時,BRAM0的 數(shù)據(jù)由于覆蓋而被消除。在圖16的例子中,由于在編碼塊29的創(chuàng)建中不對于BRAM0的數(shù)據(jù)進 行X0R運算,所W編碼處理被編碼電路101-1正常地進行。控制部1101在提前數(shù)為1的情況 下判定為能夠不變更編碼電路101-1地進行提前。
[0102] 圖17是表示提前數(shù)為2的情況下的訪問定時例的說明圖。在提前數(shù)為2的情況下, 使輸入塊對BRAM0~15的供給提早2個周期。在提前數(shù)為2的情況下,在與列矢量28對應(yīng)的定 時,BRAM0的數(shù)據(jù)由于覆蓋而被消除,由于利用了BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。另外,在提前數(shù)為2的情況下,在與列矢量29對應(yīng)的定時,BRAM0W及 BRAM1的各數(shù)據(jù)由于覆蓋而被消除,但因為BRAM0W及BRAM1的各數(shù)據(jù)不被利用,所W編碼處 理被編碼電路101-1正常地進行。因此,控制部1101在提前數(shù)為2的情況下判定為無法不變 更編碼電路101-1地進行提前。
[0103] 其中,在圖17的例子中,與編碼塊28的創(chuàng)建時同樣地在編碼塊0的創(chuàng)建時進行利用 了 BRAM0的數(shù)據(jù)的X0R運算。因此,通過利用了 BRAM0的數(shù)據(jù)的X0R運算的運算結(jié)果被儲存,能 夠在編碼塊28的創(chuàng)建時沿用該運算結(jié)果。
[0104] 圖18是表示提前數(shù)為3的情況下的訪問定時例的說明圖。在提前數(shù)為3的情況下, 使輸入塊對BRAM0~15的供給提早3個周期。在提前數(shù)為3的情況下,在與列矢量27對應(yīng)的定 時,BRAM0的數(shù)據(jù)由于覆蓋而被消除,但因為不利用BRAM0的數(shù)據(jù),所W編碼處理被編碼電路 101-1正常地進行。另外,在提前數(shù)為3的情況下,在與列矢量28對應(yīng)的定時,BRAM0W及 BRAM1的各數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。另外,在提前數(shù)為3的情況下,在與列矢量29對應(yīng)的定時,BRAM0到BRAM2 的各數(shù)據(jù)由于覆蓋而被消除。因為不利用BRAM0到BRAM2的各數(shù)據(jù),所W編碼處理被編碼電 路101-1正常地進行。因此,控制部1101在提前數(shù)為2的情況下判定為無法不變更編碼電路 101-1地進行提前。
[0105] 其中,在圖18的例子中,和與列矢量28對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAM0的數(shù)據(jù)的X0R運算。因此,由于在與列矢量0對應(yīng)的定時利用了 BRAM0的數(shù) 據(jù)的X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量28對應(yīng)的定時沿用該運算結(jié)果。
[0106] 圖19是表示提前數(shù)為4的情況下的訪問定時例的說明圖。在提前數(shù)為4的情況下, 使輸入塊對BRAM0~15的供給提早4個周期。在提前數(shù)為4的情況下,在與列矢量26對應(yīng)的定 時,BRAM0的數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。另外,在提前數(shù)為4的情況下,在與列矢量27對應(yīng)的定時,BRAM0W及 BRAM1的各數(shù)據(jù)由于覆蓋而被消除,但因為不利用BRAM0的數(shù)據(jù),所W編碼處理被編碼電路 101-1正常地進行。另外,在提前數(shù)為4的情況下,在與列矢量28對應(yīng)的定時,BRAM0到BRAM2 的各數(shù)據(jù)被覆蓋而消除,因為利用BRAM1的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地 進行。另外,在提前數(shù)為4的情況下,在與列矢量29對應(yīng)的定時,BRAM0至化RAM3的各數(shù)據(jù)由于 覆蓋而被消除,因為利用BRAM3的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進行。因 此,控制部1101在提前數(shù)為4的情況下判定為無法不變更編碼電路101-1地進行提前。
[0107] 其中,在圖19的例子中,和與列矢量26對應(yīng)的定時同樣地在與列矢量16對應(yīng)的定 時進行利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算。由于在與列矢量16對應(yīng)的定時利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量26對應(yīng)的定時 沿用該運算結(jié)果。另外,在圖19的例子中,和與列矢量28對應(yīng)的定時同樣地在與列矢量0對 應(yīng)的定時進行利用了 BRAM0的數(shù)據(jù)的X0R運算。因此,由于利用了 BRAM0的數(shù)據(jù)的X0R運算的 運算結(jié)果被儲存,所W能夠在與列矢量28對應(yīng)的定時沿用該運算結(jié)果。另外,在圖19的例子 中,和與列矢量29對應(yīng)的定時同樣地在與列矢量3對應(yīng)的定時進行利用了BRAM3的數(shù)據(jù)的 X0R運算。由于在與列矢量3對應(yīng)的定時利用了BRAM3的數(shù)據(jù)的X0R運算的運算結(jié)果被儲存, 所W能夠在與列矢量29對應(yīng)的定時沿用該運算結(jié)果。
[0108] 圖20是表示提前數(shù)為5的情況下的訪問定時例的說明圖。在提前數(shù)為5的情況下, 使輸入塊對BRAM0~15的供給提早5個周期。在提前數(shù)為5的情況下,在與列矢量25對應(yīng)的定 時,BRAM0的數(shù)據(jù)由于覆蓋而被消除,但因為不利用BRAM0的數(shù)據(jù),所W編碼處理被編碼電路 101 -1正常地進行。另外,在提前數(shù)為5的情況下,在與列矢量26對應(yīng)的定時,BRAM0的數(shù)據(jù) W及BRAM1的各數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0W及BRAM1的數(shù)據(jù),所W編碼處理不 被編碼電路101-1正常地進行。
[0109] 另外,在提前數(shù)為5的情況下,在與列矢量27對應(yīng)的定時,BRAM0至化RAM2的各數(shù)據(jù) 由于覆蓋而被消除,但因為不利用BRAM0到BRAM2的數(shù)據(jù),所W編碼處理不被編碼電路101- 1正常地進行。另外,在提前數(shù)為5的情況下,在與列矢量28對應(yīng)的定時,BRAM0至化RAM3的各 數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地 進行。
[0110] 另外,在提前數(shù)為5的情況下,在與列矢量29對應(yīng)的定時,BRAM0至化RAM4的各數(shù)據(jù) 由于覆蓋而被消除。而且,因為利用BRAM3W及BRAM4的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。因此,控制部1101在提前數(shù)為5的情況下判定為無法不變更編碼電路 101-1地進行提前。
[0111] 其中,在圖20的例子中,和與列矢量26對應(yīng)的定時同樣地在與列矢量16對應(yīng)的定 時進行利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算。由于在與列矢量16對應(yīng)的定時利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量26對應(yīng)的定時 沿用該運算結(jié)果。
[0112] 另外,在圖20的例子中,和與列矢量28對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAM0的數(shù)據(jù)的X0R運算。因此,由于利用了 BRAM0的數(shù)據(jù)的X0R運算的運算結(jié)果 被儲存,所W能夠在與列矢量28對應(yīng)的定時沿用該運算結(jié)果。另外,在圖20的例子中,和與 列矢量29對應(yīng)的定時同樣地在與列矢量3對應(yīng)的定時進行利用了 BRAM3的數(shù)據(jù)的X0R運算。 另外,和與列矢量29對應(yīng)的定時同樣地在與列矢量4對應(yīng)的定時進行利用了BRAM4的數(shù)據(jù)的 X0R運算。
[0113] 鑒于此,在與列矢量3對應(yīng)的定時利用了 BRAM3的數(shù)據(jù)的X0R運算的運算結(jié)果被儲 存。另外,在與列矢量4對應(yīng)的定時利用了BRAM4的數(shù)據(jù)的X0R運算的運算結(jié)果被儲存。由此, 能夠在與列矢量29對應(yīng)的定時沿用各運算結(jié)果。
[0114] 圖21是表示提前數(shù)為6的情況下的訪問定時例的說明圖。在提前數(shù)為6的情況下, 使輸入塊對BRAM0~15的供給提早6個周期。在提前數(shù)為6的情況下,在與列矢量24對應(yīng)的定 時,BRAMO的數(shù)據(jù)由于覆蓋而被消除,因為參照BRAMO的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。另外,在提前數(shù)為6的情況下,在與列矢量25對應(yīng)的定時,BRAM0W及 BRAM1的各數(shù)據(jù)由于覆蓋而被消除。但是,因為不利用BRAM0W及BRAM1的各數(shù)據(jù),所W編碼 處理被編碼電路101-1正常地進行。另外,在提前數(shù)為6的情況下,在與列矢量26對應(yīng)的定 時,BRAM0到BRAM2的各數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0到BRAM2的各數(shù)據(jù),所W編碼 處理不被編碼電路101-1正常地進行。
[011引另外,在提前數(shù)為6的情況下,在與列矢量27對應(yīng)的定時,BRAM0至化RAM3的各數(shù)據(jù) 由于覆蓋而被消除,因為利用BRAM3的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進 行。另外,在提前數(shù)為6的情況下,在與列矢量28對應(yīng)的定時,BRAM0到BRAM4的各數(shù)據(jù)由于覆 蓋而被消除,因為利用BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進行。另外, 在提前數(shù)為6的情況下,在與列矢量29對應(yīng)的定時,BRAM0到BRAM5的各數(shù)據(jù)由于覆蓋而被消 除。而且,因為利用服AM3W及BRAM4的各數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進 行。因此,控制部1101判定為在提前數(shù)為6的情況下無法不變更編碼電路101-1地進行提 前。
[0116] 但是,在圖21的例子中,和與列矢量24對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAM0的數(shù)據(jù)的X0R運算。由于在與列矢量0對應(yīng)的定時利用了 BRAM0的數(shù)據(jù)的 X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量24對應(yīng)的定時沿用該運算結(jié)果。
[0117] 另外,在圖21的例子中,和與列矢量26對應(yīng)的定時同樣地在與列矢量16對應(yīng)的定 時進行利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算。由于在與列矢量16對應(yīng)的定時利用了 BRAM0到BRAM3的各數(shù)據(jù)的X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量26對應(yīng)的定時 沿用該運算結(jié)果。
[0118] 另外,在圖21的例子中,和與列矢量28對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAM0的數(shù)據(jù)的X0R運算。因此,由于利用了 BRAM0的數(shù)據(jù)的X0R運算的運算結(jié)果 被儲存,所W能夠在與列矢量28對應(yīng)的定時沿用該運算結(jié)果。另外,在圖21的例子中,和與 列矢量29對應(yīng)的定時同樣地在與列矢量3對應(yīng)的定時進行利用了 BRAM3的數(shù)據(jù)的X0R運算。 另外,和與列矢量29對應(yīng)的定時同樣地在與列矢量4對應(yīng)的定時進行利用了BRAM4的數(shù)據(jù)的 X0R運算。
[0119] 鑒于此,預(yù)先儲存在與列矢量3對應(yīng)的定時利用了 BRAM3的數(shù)據(jù)的X0R運算的運算 結(jié)果。而且,預(yù)先儲存在與列矢量4對應(yīng)的定時利用了 BRAM4的數(shù)據(jù)的X0R運算的運算結(jié)果。 由此,能夠在與列矢量29對應(yīng)的定時沿用各運算結(jié)果。
[0120] 圖22是表示提前數(shù)為7的情況下的訪問定時例的說明圖。在提前數(shù)為7的情況下, 使輸入塊對BRAM0~15的供給提早7個周期。在提前數(shù)為7的情況下,在與列矢量23對應(yīng)的定 時,BRAM0的數(shù)據(jù)由于覆蓋而被消除,但因為不利用BRAM0的數(shù)據(jù),所W編碼處理被編碼電路 101-1正常地進行。另外,在提前數(shù)為7的情況下,在與列矢量24對應(yīng)的定時,BRAM0W及 BRAM1的各數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0的數(shù)據(jù),所W編碼處理不被編碼電路 101-1正常地進行。另外,在提前數(shù)為7的情況下,在與列矢量25對應(yīng)的定時,BRAM0到BRAM2 的各數(shù)據(jù)由于覆蓋而被消除。而且,因為利用BRAM2W及BRAM3的各數(shù)據(jù),所W編碼處理不被 編碼電路101-1正常地進行。另外,在提前數(shù)為7的情況下,在與列矢量26對應(yīng)的定時, BRAM0至化RAM3的各數(shù)據(jù)由于覆蓋而被消除,因為利用BRAM0至化RAM3的各數(shù)據(jù),所W編碼處 理不被編碼電路1 ο 1 -1正常地進行。
[0121] 另外,在提前數(shù)為7的情況下,在與列矢量27對應(yīng)的定時,BRAMO至化RAM4的各數(shù)據(jù) 由于覆蓋而被消除,因為利用BRAM3的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進 行。另外,在提前數(shù)為7的情況下,在與列矢量28對應(yīng)的定時,BRAMO到BRAM5的各數(shù)據(jù)由于覆 蓋而被消除,因為利用BRAMO的數(shù)據(jù),所W編碼處理不被編碼電路101-1正常地進行。另外, 在提前數(shù)為7的情況下,在與列矢量29對應(yīng)的定時,BRAMO到BRAM6的各數(shù)據(jù)由于覆蓋而被消 除。而且,因為利用BRAM3、BRAM4 W及BRAM6的各數(shù)據(jù),所W編碼處理不被編碼電路101 -1正 常地進行。因此,控制部1101判定為在提前數(shù)為7的情況下無法不變更編碼電路101-1地進 行提前。
[0122] 其中,在圖22的例子中,和與列矢量24對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAMO的數(shù)據(jù)的XOR運算。由于在與列矢量0對應(yīng)的定時,利用了 BRAMO的數(shù)據(jù)的 X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量24對應(yīng)的定時沿用該運算結(jié)果。
[0123] 另外,在圖22的例子中,和與列矢量25對應(yīng)的定時同樣地在與列矢量16對應(yīng)的定 時進行利用了 BRAM2 W及BRAM3的各數(shù)據(jù)的X0R運算。在與列矢量16對應(yīng)的定時,利用了 BRAM2W及BRAM3的各數(shù)據(jù)的X0R運算的運算結(jié)果被儲存。由此,能夠在與列矢量25對應(yīng)的定 時沿用該運算結(jié)果。然而,雖然理由將在后面描述,但在由圖9的電路中所配置的BRAM決定 的性質(zhì)上,不一定能夠沿用。
[0124] 另外,在圖22的例子中,和與列矢量26對應(yīng)的定時同樣地在與列矢量16對應(yīng)的定 時進行利用了 BRAMO到BRAM3的各數(shù)據(jù)的X0R運算。由于在與列矢量16對應(yīng)的定時利用了 BRAMO到BRAM3的各數(shù)據(jù)的X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量26對應(yīng)的定時 沿用該運算結(jié)果。
[0125] 另外,在圖22的例子中,和與列矢量27對應(yīng)的定時同樣地在與列矢量3對應(yīng)的定時 進行利用了 BRAM3的數(shù)據(jù)的X0R運算。由于在與列矢量3對應(yīng)的定時利用了 BRAM3的數(shù)據(jù)的 X0R運算的運算結(jié)果被儲存,所W能夠在與列矢量27對應(yīng)的定時沿用該運算結(jié)果。
[0126] 另外,在圖22的例子中,和與列矢量28對應(yīng)的定時同樣地在與列矢量0對應(yīng)的定時 進行利用了 BRAMO的數(shù)據(jù)的X0R運算。因此,由于利用了 BRAMO的數(shù)據(jù)的X0R運算的運算結(jié)果 被儲存,所W能夠在與列矢量28對應(yīng)的定時沿用該運算結(jié)果。
[0127] 另外,在圖22的例子中,和與列矢量29對應(yīng)的定時同樣地在與列矢量3對應(yīng)的定時 進行利用了 BRAM3的數(shù)據(jù)的X0R運算。并且,和與列矢量29對應(yīng)的定時同樣地在與列矢量4對 應(yīng)的定時進行利用了BRAM4的數(shù)據(jù)的X0R運算。另外,和與列矢量29對應(yīng)的定時同樣地在與 列矢量6對應(yīng)的定時進行僅BRAM6的數(shù)據(jù)的X0R運算。在與列矢量3對應(yīng)的定時利用了 BRAM3 的數(shù)據(jù)的X0R運算的運算結(jié)果、W及在與列矢量4對應(yīng)的定時利用了 BRAM4的數(shù)據(jù)的X0R運算 的運算結(jié)果被儲存。由此,能夠在與列矢量29對應(yīng)的定時沿用該運算結(jié)果。
[0128] 其中,在與列矢量3對應(yīng)的定時使"(BRAM2的數(shù)據(jù)&列矢量[2])X0R(BRAM3的數(shù)據(jù)& 列矢量[3])"的運算結(jié)果儲存到BRAM。之后,若在與列矢量16對應(yīng)的定時使該運算結(jié)果儲 存,則導(dǎo)致與列矢量3對應(yīng)的定時中的運算結(jié)果被覆蓋。因此,控制部1101判定為在圖22的 提前數(shù)為7的情況下無法提前執(zhí)行。
[0129] 如使用圖16~圖22所說明那樣,即使是無法原樣沿用編碼電路101-1的情況,也 存在將某一個X0R運算的運算結(jié)果預(yù)先儲存于BRAM,由此能夠提前執(zhí)行的情況。例如,圖23 示出提前數(shù)為2或者3的情況下的編碼電路101例子,圖24示出提前數(shù)為4的情況下的編碼電 路101例子。
[0130] 圖23是表示提前數(shù)為2或者3的情況下的編碼電路101例子的說明圖。編碼電路 101 -3是編碼電路101 -1中的部分電路601 -1被置換成部分電路801 -1的電路。在提前數(shù) 為2或者3的情況下,在編碼電路101-3中,在與列矢量0對應(yīng)的定時/'(BRAM0的數(shù)據(jù)&列矢 量0)X0R(BRAM1的數(shù)據(jù)&列矢量1)"的運算結(jié)果被儲存于BRAM。另外,在編碼電路101-3中, 在與列矢量28對應(yīng)的定時,儲存于BRAM的運算結(jié)果被選擇電路選擇而輸出到后段。
[0131] 圖24是表示提前數(shù)為4的情況下的編碼電路101例子的說明圖。編碼電路101-4是 編碼電路101 - 1中的部分電路601 -1被置換成部分電路801 -1、部分電路601 -2被置換成 部分電路801-2、部分電路602-1被置換成部分電路802-1的電路。
[0132] 在提前數(shù)為4的情況下,在編碼電路101-4中,在與列矢量0對應(yīng)的定時/'(BRAM0 的數(shù)據(jù)&列矢量[0] )X〇R(BRAMl的數(shù)據(jù)&列矢量[1 ] Γ的運算結(jié)果被儲存于BRAM。另外,在編 碼電路101-4中,在與列矢量3對應(yīng)的定時/'(BRAM2的數(shù)據(jù)&列矢量[2])X0R(BRAM3的數(shù)據(jù)& 列矢量[3])"的運算結(jié)果被儲存于BRAM。另外,在編碼電路101 -4中,在與列矢量16對應(yīng)的 定時/'{(BRAM0的數(shù)據(jù)&列矢量[0] )X0R(BRAM1的數(shù)據(jù)&列矢量[1 ]) }X0R{ (BRAM2的數(shù)據(jù)&列 矢量[2] )X0R(BRAM3的數(shù)據(jù)&列矢量[3])}的運算結(jié)果被儲存于BRAM。
[0133] 接著,詳細(xì)地對追加的BRAM的位置的決定方法進行說明。具體而言,控制部1101決 定將編碼電路101-1所包含的部分電路601和部分電路602中的哪一個置換成部分電路801 或者部分電路802。
[0134] 圖25是表示BRAM的位置例的說明圖。根據(jù)編碼電路101 - 2,由于利用BRAM保持X0R 運算的運算結(jié)果,所W能夠?qū)D25所示那樣的位置的運算結(jié)果保存到BRAM。
[0135] 如圖25的 < 可保存/不能保存的例子 > 所示,舉出在(BRAM0的數(shù)據(jù))X0R (BRAM1的 數(shù)據(jù))的輸出位置設(shè)置的BRAM為例。例如,在決定為使該BRAM儲存(BRAM0的數(shù)據(jù))X0R(BRAM1 的數(shù)據(jù))的運算結(jié)果的情況下,無法儲存BRAM0的數(shù)據(jù)或者BRAM1的各數(shù)據(jù)。但是,如果利用 在{(BRAM0的數(shù)據(jù)巧0R(BRAM1的數(shù)據(jù))}X0R{ (BRAM2的數(shù)據(jù))X0R(BRAM3的數(shù)據(jù))}的輸出位置 設(shè)置的BRAM,則能夠儲存BRAM0的數(shù)據(jù)。另外,因為能夠使用所儲存的數(shù)據(jù)進行X0R運算,所 W實際能夠保存的數(shù)據(jù)的組合有多個。
[0136] 圖26是表示模板邏輯式例子的說明圖。首先,控制部1101獲取模板邏輯式2600。在 圖26所示的模板邏輯式2600中,舉出輸入塊是16塊的情況為例。換言之,舉出編碼矩陣mal 是16行的情況為例。
[0137] 圖27是表示變量與BRAM的位置的對應(yīng)關(guān)系的說明圖。例如,模板邏輯式2600所包 含的變量aO~曰7分別表示能夠儲存從儲存輸入塊的BRAM起最前段的X0R電路的輸出結(jié)果的 BRAM儲存哪個數(shù)據(jù)。例如,變量aO表示保持BRAM0的數(shù)據(jù)與BRAM1的數(shù)據(jù)的X0R運算的運算結(jié) 果的BRAM儲存哪個數(shù)據(jù)。例如,模板邏輯式2600所包含的變量bO~b3分別表示能夠儲存從 儲存輸入塊的BRAM起第二段的X0R電路的輸出結(jié)果的BRAM儲存哪個數(shù)據(jù)。例如,變量bO表示 保持BRAM0的數(shù)據(jù)與BRAM1的數(shù)據(jù)的X0R運算的運算結(jié)果、和BRAM2的數(shù)據(jù)與BRAM3的數(shù)據(jù)的 X0R運算的運算結(jié)果、的X0R運算的運算結(jié)果的BRAM儲存哪個數(shù)據(jù)。例如,模板邏輯式2600所 包含的變量cO~cl分別表示能夠儲存從儲存輸入塊的BRAM起第3段的X0R電路的輸出結(jié)果 的BRAM儲存哪個數(shù)據(jù)。例如,變量cO表示保持BRAM0的數(shù)據(jù)到BRAM3的數(shù)據(jù)的X0R運算的運算 結(jié)果、與BRAM4的數(shù)據(jù)到BRAM7的數(shù)據(jù)的XOR運算的運算結(jié)果、的XOR運算的運算結(jié)果的BRAM 儲存哪個數(shù)據(jù)。將變量a、變量b、W及變量C能夠取的值的范圍表示如下。
[013 引 0《an(n = 0 ~7)《(2"2)_1 = 3
[0139] 0《bm(m = 0 ~3)《(2"4)_1 = 15
[0140] 0《cl(l = 0 ~1)《(2八8)_1 = 255
[0141] A表示幕乘運算符。其中,若舉出bO為例,則對于b0 = 7或b0 = 9等值而言,因為實際 上在編碼電路101-1中不計算,所W無法取得。另外,例如a〇 = 3表示(BRAM0的數(shù)據(jù))X0R (BRAM1的數(shù)據(jù))的運算結(jié)果被儲存于BRAM。例如,aO = 2表示(BRAM0的數(shù)據(jù)&0)X0R(BRAM1的 數(shù)據(jù)&1)的運算結(jié)果被儲存于BRAM。例如,a0 = 1表示(BRAM0的數(shù)據(jù)&UX0R(BRAM1的數(shù)據(jù)&0) 的運算結(jié)果被儲存于BRAM。
[0142] 控制部1101基于獲取到的模板邏輯式2600對于編碼矩陣mal中的被輸入的塊數(shù)W 后的各個列求出邏輯式。運里,控制部1101對于列16~列29的各個求出邏輯式。具體而言, 控制部1101對于變量所對應(yīng)的行、BRAMx~BRAMy,在上述的各訪問定時圖中,將標(biāo)注有"滬 的位置作為1來進行二進制編碼。二進制編碼后的數(shù)值是其變量能夠取的值的集合的要素。 若舉出變量bO為例,則控制部1101對于變量bO所對應(yīng)的行、BRAM0~BRAM3,將標(biāo)注有'的 位置作為1來進行二進制編碼。BRAM0是最下位比特,BRAM3與最高位比特對應(yīng)。例如,第0列 是0001,第一列是0010,第二列是0100,第3列是1000,第4列到第15列是0000,第16、19、20、 26列是1111,第17列是0101,第18列是0011。變量bO能夠取的值是{0001,0010,0100,1000, 0000,lm,0101,0011,…}。若用10進制數(shù)記載,則{l,2,4,8,0,15,5,3,···}是變量b0能取 的值的集合。
[0143] 運里,例如,控制部1101對第29列求出邏輯式。
[0144] ?對于cO而言,01011000(2進制數(shù))=88(10進制數(shù))。
[0145] ?對于bO而言,1000(2進制數(shù))=8(10進制數(shù))。
[0146] ?對于bl而言,0101 (2進制數(shù))=5(10進制數(shù))。
[0147] .對于aO而言,00(2進制數(shù))=0(10進制數(shù))。
[014引 ?對于al而言,10(2進制數(shù))=2(10進制數(shù))。
[0149] ?對于a2而言,01(2進制數(shù))= 1(10進制數(shù))。
[0150] ?對于曰3~曰7而言,是0。
[0151] 若控制部1101將上述代入模板邏輯式2600,則如W下那樣。
[0152] ((c0 = 88) I (((b0 = 8) I (a0 = 0)&(al = 2))&((bl = 5) I (a2=l)&(a3 = 0))))&((cl =0) I (((b2 = 0) I (a4 = 0)&(a5 = 0))&((b3 = 0) | (a6 = 0)&(a7 = 0))))
[0153] 將變量=0運一程式的項始終作為是叮R肥(真r,能夠簡化邏輯式。若簡化邏輯式 則如W下那樣。
[0154] ((c0 = 88) I (((b0 = 8) | TRUE&(al = 2))&((bl = 5) | (a2= 1 )&TRUE)))&(TRUE ((TRUE ITRUE&TRUE)&(TRUE|TRUE&TRUE)))
[0155] 若進一步簡化公式,則如W下那樣。
[0156] ((c0 = 88) I (((b0 = 8) I (al = 2))&((bl = 5) I (a2 = l)&T抓E)))&(T抓E| ((TRUE TRUE&TRUE)))
[0157] 若進一步簡化公式,則如W下那樣。
[015引(c0 = 88) I (((b0 = 8) I (al = 2))&((bl = 5) I (a2 = l))) · · ·邏輯式29
[0159] 運樣,控制部1101對列29求出邏輯式29。
[0160] 該邏輯式29示出在生成編碼塊29時,為了補償由于覆蓋而輸入塊被消除的BRAM3 和BRAM4的數(shù)據(jù)而能夠利用哪個BRAM。
[0161] 邏輯式29為TR肥例如是c0 = 8別寸,若利用2進制法記載88則為01011000,是指只要 借助W2進制法記載cO時成為1的位置來保存(BRAM6的數(shù)據(jù))X0R(BRAM4的數(shù)據(jù))X0R(BRAM3 的數(shù)據(jù))的值即可。
[0162] 例如,控制部1101對于第28列如W下那樣得到邏輯式28。
[0163] (c0 = 129) I (((b0 = l) | (a0 = 1)&(al =0))&((bl =8) | (a2 = 0)&(a3 = 0)))
[0164] 通過簡化而成為W下。
[01 化](c0 = 129) I (((b0 = l) I (a0 = l)&(al=0))&((bl=8) ITRUE))
[0166] 進一步簡化而得到W下邏輯式28。
[0167] (c0 = 129) I (b0 = l) I (a0 = l) · · ·邏輯式28
[0168] 例如,控制部1101對于第27列如W下那樣得到邏輯式27。
[0169] (c0 = 232) | (((b0 = 8) | (a0 = 0)&(al = 2))&((bl =0) | (a2 = 0)&(a3 = 0)))
[0170] 通過簡化而成為W下。
[0171] (c0 = 232) I (((b0 = 8) |TRUE&(al = 2))&(TRUEITRUE))
[0172] 進一步簡化而得到W下邏輯式27。
[0173] (c0 = 232) I (b0 = 8) I (al = 2) · · ·邏輯式27
[0174] 例如,控制部1101對于第26列如W下那樣得到邏輯式26。
[01 巧](c0 = 223) I (((b0 = 15) I (a0 = 3)&(al = 3))&((bl=0) I (曰2 = 0)&(曰3 = 0)))
[0176] 進一步簡化而得到W下邏輯式26。
[0177] (c0 = 223) I (b0 = 15) I (a0 = 3)&(al = 3) · · ·邏輯式26
[0178] 例如,控制部1101對于第25列如W下那樣得到邏輯式25。
[0179] ((c0 = 0) I (((b0 = 12) | (a0 = 0)&(al = 0))&((bl=0) | (a2 = 0)&(a3 = 〇))))···邏輯式25
[0180] 例如,控制部1101對于第24列如W下那樣得到邏輯式24。
[0181] ((c0 = 181) I (((b0 = 5) I (a0 = l)&(al=0))&((bl=0) I (a2 = 0)&(a3 = 0))))
[0182] 進一步簡化而得到W下邏輯式24。
[0183] (c0 = 181) I (b0 = 5) I (a0 = l) · · ·邏輯式24
[0184] 例如,針對第23列變得如W下那樣。
[01 化]TRUE· ··邏輯式23
[0186] 接著,控制部1101創(chuàng)建取了關(guān)于各列的全部邏輯式的AND而得到的邏輯式X。
[0187] X=(邏輯式29)AND(邏輯式28)AND(邏輯式27)AND…
[018引 X=((c0 = 88) I (((b0 = 8) I (al = 2))&((bl = 5) I (曰2 = 1))))&
[0189] ((c0 = 129) I (b0 = l) | (a0 = l))&
[0190] ((c0 = 232) I (b0 = 8) | (al = 2))&
[0191] ((c0 = 223) I (b0 = 15) | (a0 = 3)&(al = 3))&
[0192] ((c0 = 181) I (b0 = 5) | (a0 = l))
[0193] 控制部1101W使創(chuàng)建成的邏輯式X為TRUE的方式求出對aO、...,37,60,…b4、c0、cl 的整數(shù)值的分配。求出的解成為BRAM的分配問題的解。值為零的分配越多則能夠使被追加 的BRAM的數(shù)量越降低。BRAM的分配問題例如即使使用被稱為SAT求解器的軟件也能夠高效 地解出(例如,叮he MiniSat Page, [online],[平成25年12月6日檢索],互聯(lián)網(wǎng) minisat.se/>")。另外,例如也可W如W下圖28所示那樣,控制部1101循環(huán)地進行計算。
[0194] 圖28是表示求解BRAM的分配問題的程序例的說明圖。例如,若CPU1001執(zhí)行圖28所 示的程序2800,則得到W下那樣的結(jié)果。程序2800是設(shè)計輔助程序的一部分。
[0195]
[0196] 例如,如果控制部1101利用"曰0 = 1曰1 = 2曰2 =化0 = 15"運一解,則生成對進行^下 的動作的編碼電路101進行表示的電路信息。
[0197] ?在編碼電路101中,在變量aO所示的位置的BRAM儲存BRAM0的數(shù)據(jù)( = (BRAM0的 數(shù)據(jù)&1 )X〇R(BRAMl 的數(shù)據(jù)&0))。
[0198] ?在編碼電路101中,在變量al所示的位置的BRM儲存BRM3的數(shù)據(jù)。
[0199] ?在編碼電路101中,在變量a2所示的位置的BRM儲存BRM4的數(shù)據(jù)。
[0200] ?在編碼電路101中,在變量bO所示的位置的BRAM儲存(BRAM0的數(shù)據(jù))X0R(BRAM1 的數(shù)據(jù))X〇R(BRAM2的數(shù)據(jù))X0R(BRAM3的數(shù)據(jù))。
[0201] 接著,控制部1101對于得到的解,分別確定變量所示的位置的BRAM儲存數(shù)據(jù)的定 時??刂撇?101決定與因提前執(zhí)行而塊被覆蓋W前的列矢量0~23對應(yīng)的定時中的、保存數(shù) 據(jù)的定時。
[0202] 例如,在提前數(shù)為4的情況下,a0 = l是與列矢量0和列矢量17的各個對應(yīng)的定時。 換言之,表示在與列矢量0和列矢量17的各個對應(yīng)的定時,儲存(BRAM0的數(shù)據(jù)巧0R(BRAM1的 數(shù)據(jù))的運算結(jié)果。在有多個定時的情況下,控制部1101也可W選擇任意一個。
[0203] 另外,讀出各變量所示的位置的BRAM的數(shù)據(jù)的定時是輸入塊被覆蓋的期間內(nèi)。例 如,讀出a〇 = l的定時表示在與列矢量24對應(yīng)的定時、和與列矢量28對應(yīng)的定時中讀出。另 夕h例如讀出al = 2的定時表示在與列矢量27對應(yīng)的定時和與列矢量29對應(yīng)的定時中讀出。
[0204] 另外,例如讀出a2=l的定時表示在與列矢量29對應(yīng)的定時中讀出。另外,例如讀 出bO = 15的定時表示在與列矢量26對應(yīng)的定時中讀出。
[0205] 運里,對于提前數(shù)為4的情況,將變量、儲存定時、W及讀出定時的定時決定結(jié)果表 示如下。
[0206]
[0207]控制部1101基于上述所得的變量所示的位置的BRAM、儲存于BRAM的數(shù)據(jù)、W及各 定時,生成表示編碼電路101的電路信息。具體而言,控制部1101生成對在變量設(shè)定有值的 情況下,設(shè)置了部分電路801或者部分電路802,在變量未設(shè)定有值的情況下,在變量所示的 位置設(shè)置了部分電路601或者部分電路602的編碼電路101進行表示的電路信息。
[020引接著,控制部1101生成對生成控制信號的控制電路進行表示的電路信息??刂齐?路在儲存定時時使寫入使能信號有效,向BRAM寫入數(shù)據(jù)。另外,控制電路在儲存定時W外的 定時,使寫入使能信號無效,不進行對BRAM的寫入。
[0209] 另外,控制電路在讀出定時之際,使讀出選擇信號有效,從BRAM讀出數(shù)據(jù)。另外,控 審帷路在讀出定時W外的定時,使讀出選擇信號無效,輸出來自X0R電路的值。
[0210] 控制部1101能夠基于上述的定時決定結(jié)果來自動生成由Veri log-HDL等硬件描述 語言描述的電路描述。另外,控制部1101通過將所得到的電路描述賦予給邏輯合成工具,來 得到表示控制電路的電路信息。
[0211] 圖29是表示所生成的電路描述例的說明圖。電路描述2900中詳細(xì)地描述了從控制 電路輸出的寫入使能信號和讀出選擇信號的值的決定方法、W及塊編號計數(shù)器的動作。
[0212] 圖30是表示編碼電路101和控制編碼電路101的控制電路的說明圖。運里,簡單地 對從控制電路3000向編碼電路101 - 4輸入的各信號和控制電路3000所包含的塊進行說明。 地址1供給對儲存被輸入的塊的BRAM寫入新的塊,或者從該BRAM讀出數(shù)據(jù)時的地址值。塊編 號計數(shù)器是若1個塊量的編碼處理結(jié)束則將塊編號自加1的計數(shù)器,與列矢量的編號對應(yīng)。
[0213] 地址2供給對儲存X0R運算的運算結(jié)果的BRAM寫入數(shù)據(jù)、或者讀出時的地址值。地 址2的值與地址1的計數(shù)器同步地變化。值延遲編碼電路101-4內(nèi)的寄存器的級數(shù)地不斷變 化。
[0214] 寫入使能2是值與塊編號計數(shù)器同步地變化,且僅在對儲存X0R運算的運算結(jié)果的 BRAM儲存塊時有效的控制信號。讀出選擇是選擇電路的控制信號,是僅在對儲存X0R運算的 運算結(jié)果的BRAM儲存塊的儲存定時時有效的控制信號。讀出選擇的值與塊編號計數(shù)器同步 地變化。
[0215] 另外,讀出選擇是被輸入至AND電路的一個輸入端的控制信號,且是用于強制地使 輸出為0的信號。另外,讀出選擇在BRAM0的數(shù)據(jù)和BRAM1的數(shù)據(jù)的任意一方或兩方的值因覆 蓋而失去時,當(dāng)想將BRAMO的數(shù)據(jù)和BRAMl的數(shù)據(jù)作為ο進行XOR運算時被利用,在上述例子 中不使用。
[0216] 圖31是表示圖30所示的電路的動作例的說明圖。如圖31所示,在塊編號計數(shù)器的 值為0的情況下,寫入使能2_a0為1。另外,在塊編號計數(shù)器的值為3的情況下,寫入使能2_al 為1。另外,在塊編號計數(shù)器的值為24的情況下,讀出選擇_a0為1。
[0217] 圖32是表示提前執(zhí)行處理例的說明圖。在提前執(zhí)行處理的執(zhí)行期間中,被輸出的 編碼數(shù)據(jù)為2倍。對于定時T1,在第一次的處理中,輸出與列矢量24對應(yīng)的定時中的X0R運算 的運算結(jié)果,在第二次的處理中,輸出與列矢量0對應(yīng)的定時中的X0R運算的運算結(jié)果。另 夕h對于定時T2,在第一次的處理中,輸出與列矢量29對應(yīng)的定時中的X0R運算的運算結(jié)果, 在第二次的處理中,輸出與列矢量5對應(yīng)的定時中的X0R運算的運算結(jié)果。
[0218] 圖33是表示用于進行提前執(zhí)行處理的電路構(gòu)成例的說明圖。在圖33中,舉出提前 數(shù)為4的情況為例。RPS硬件部422具有電路3201和編碼電路101-4、W及電路3202。電路 3201在提前執(zhí)行期間中,將從開頭數(shù)N塊量的輸入塊直接作為輸出數(shù)據(jù)流出。電路3202接受 兩個系統(tǒng)的編碼塊,按順序流至下一階段的處理。
[0219] 控制部1101在獲取了編碼矩陣mal之后,能夠通過更換列矢量,來使BRAM的數(shù)減 少。此外,即使更換編碼矩陣mal的列矢量,RPS編碼處理的修正能力也相同。更換列矢量與 更換數(shù)據(jù)包的發(fā)送順序相等。在接收數(shù)據(jù)包的受診側(cè)中,因為最終接受的數(shù)據(jù)包相同,所W 修正能力也相同。但是,存在到能夠校正為止的時間不同的情況。例如,在原來的編碼矩陣 中接收到第17個編碼數(shù)據(jù)時能夠校正的情況下,在列矢量17移動至列矢量29之后的編碼矩 陣中,當(dāng)接收了第29個時進行校正。
[0220] 圖34是表示編碼矩陣的列矢量更換例的說明圖。例如,控制部1101對于編碼矩陣 mal中的第(輸入塊數(shù))列W后的各個列矢量,對從開頭行起0依次連續(xù)排列的數(shù)量進行計 數(shù)。然后,控制部1101基于編碼矩陣mal,生成按計數(shù)結(jié)果的升序排序了的編碼矩陣ma2。在 圖34的例子中,列矢量21W后順序被變更。
[0221] 圖35是表示因列矢量更換引起的BRAM的使用數(shù)量的變化例的說明圖。例如,在更 換前的編碼矩陣mal中,在提前數(shù)為3的情況下,被追加的BRAM是一個,在提前數(shù)為5的情況 下,被追加的BRAM是四個。與此相對,在更換后的編碼矩陣ma2中,在提前數(shù)為3的情況下,沒 有被追加的BRAM,在提前數(shù)為5的情況下,被追加的61?41是立個。運樣,通過更換列矢量,能 夠?qū)崿F(xiàn)被追加的BRAM的數(shù)量的減少。
[0222] (設(shè)計輔助裝置100所進行的設(shè)計輔助處理順序例)
[0223] 圖36 W及圖37是表示設(shè)計輔助裝置所進行的設(shè)計輔助處理順序例的流程圖。首 先,設(shè)計輔助裝置100獲取編碼矩陣和提前數(shù)(步驟S3601)。設(shè)計輔助裝置100按編碼矩陣中 的第(輸入塊數(shù))列W后的每個列矢量對從開頭分量起0依次連續(xù)排列的數(shù)量進行計數(shù)(步 驟S3602)。設(shè)計輔助裝置100按計數(shù)結(jié)果的升序來排序編碼矩陣中的第(輸入塊數(shù))列W后 的列矢量(步驟S3603)。
[0224] 接著,設(shè)計輔助裝置100對于基于提前數(shù)進行消除的各個定時,確定被消除的塊 (步驟S3604)。然后,設(shè)計輔助裝置100判定對于進行消除的定時確定出的被消除的塊中是 否有與進行消除的定時和被消除的塊對應(yīng)的列矢量的分量是1的塊(步驟S3605)。在判斷為 沒有分量是1的塊的情況下(步驟S3605:否),設(shè)計輔助裝置100輸出能夠不變更編碼電路地 進行利用的主旨(步驟S3606),結(jié)束一系列的處理。
[0225] 另一方面,在判斷為有分量是1的塊的情況下(步驟S3605:是),設(shè)計輔助裝置100 獲取模板邏輯式(步驟S3701)。設(shè)計輔助裝置100按每個列矢量生成邏輯式(步驟S3702)。設(shè) 計輔助裝置100生成進行所生成的各邏輯式的邏輯積運算的邏輯式X(步驟S3703)。然后,設(shè) 計輔助裝置100求出邏輯式X的各變量的值(步驟S3704)。接著,設(shè)計輔助裝置100確定使邏 輯式X為TRUE的變量的值的組合(步驟S3705)。
[0226] 設(shè)計輔助裝置100確定與基于確定出的組合的列矢量對應(yīng)的定時(步驟S3706)。設(shè) 計輔助裝置100基于確定出的組合和確定出的定時生成表示編碼電路和控制電路的電路信 息(步驟S3707),結(jié)束一系列的處理。
[0227] 另外,通過利用FPGA的特征,能夠不追加硬件資源地提高編碼處理的處理速度。被 埋入FPGA內(nèi)的BRAM限定了能夠配置的模式。例如,在XILINX公司的7系列FPGA的情況下,36 [KBit]BRAM是最小構(gòu)成單位。若W72Bit寬度*512W0RD配置,則在編碼硬件中,成為W 64Bit * 512W0畑利用,能夠保存四個 1 比B]塊。8Byte * 128 = 1024Byte,4比B] =4096Byte = 32768Bit。通過編碼硬件的輸入部利用該BRAM,能夠不追加 BRAM地連續(xù)輸入4組量的數(shù)據(jù) (=16邸* 4次),能夠使吞吐量提高。
[0228] 如W上說明那樣,設(shè)計輔助裝置100對于提前執(zhí)行中的各定時,通過編碼矩陣來確 定基于提前執(zhí)行中被覆蓋的數(shù)據(jù)的運算、和該運算的結(jié)果與該定時相同的其他定時。由此, 能夠設(shè)計可省內(nèi)存量地提前執(zhí)行的編碼電路。由此,能夠設(shè)計可省內(nèi)存地提前執(zhí)行的編碼 電路。因此,即使省內(nèi)存,也能夠使編碼處理的吞吐量提高。
[0229] 另外,設(shè)計輔助裝置100基于確定出的邏輯運算和確定出的定時生成表示編碼電 路和控制電路的電路信息。由此,能夠自動地設(shè)計編碼電路,可節(jié)省設(shè)計者的工夫。
[0230] 另外,設(shè)計輔助裝置100按從開頭分量起依次連續(xù)的0的數(shù)量從少到多的順序重新 排列編碼矩陣的列矢量中的、生成冗余塊的列矢量。由此,能夠W更少的內(nèi)存進行更多的提 前執(zhí)行。
[0231] 此外,本實施方式中說明的設(shè)計輔助方法能夠通過由個人計算機、工作站等計算 機執(zhí)行預(yù)先準(zhǔn)備的設(shè)計輔助程序來實現(xiàn)。本設(shè)計輔助程序被記錄于磁盤、光盤、USB 化niversal Serial Bus:通用串行總線)閃存等計算機可讀取的記錄介質(zhì),通過由計算機 從記錄介質(zhì)讀出來執(zhí)行。另外,設(shè)計輔助程序也可W經(jīng)由互聯(lián)網(wǎng)等網(wǎng)絡(luò)發(fā)布。
[02創(chuàng)附圖標(biāo)記說明
[0233] 100...設(shè)計輔助裝置;101...編碼電路;601、602、801、802...部分電路;111曰1、 ma2...編碼矩陣;dl...第一對象數(shù)據(jù);d2...第二對象數(shù)據(jù)。
【主權(quán)項】
1. 一種設(shè)計輔助方法,對編碼電路的設(shè)計進行輔助,該編碼電路通過對于具有比作為 規(guī)定數(shù)量的第一數(shù)量多的第二數(shù)量的、具有上述第一數(shù)量的分量的矢量的編碼矩陣的各個 上述矢量,進行包括基于上述第一數(shù)量的被存儲于存儲區(qū)域的多個部分?jǐn)?shù)據(jù)和上述矢量的 各分量的多個邏輯運算的編碼處理,來得到上述第二數(shù)量的編碼數(shù)據(jù),上述多個部分?jǐn)?shù)據(jù) 是將編碼的對象數(shù)據(jù)分割為上述第一數(shù)量而得到的多個部分?jǐn)?shù)據(jù),上述設(shè)計輔助方法的特 征在于, 計算機執(zhí)行下述處理: 獲取上述編碼矩陣; 獲取表示基于將編碼的第一對象數(shù)據(jù)分割而得到且被儲存于上述存儲區(qū)域的多個第 一部分?jǐn)?shù)據(jù)和獲取到的上述編碼矩陣的上述矢量的各分量的上述編碼處理中的與上述矢 量對應(yīng)的各定時中的、開始將編碼的第二對象數(shù)據(jù)分割而得到的多個第二部分?jǐn)?shù)據(jù)向上述 存儲區(qū)域儲存的開始定時的信息; 對于上述各定時中的獲取到的上述信息所示的上述開始定時以后的各個定時,確定被 存儲于上述存儲區(qū)域的上述多個第一部分?jǐn)?shù)據(jù)中的、在上述定時中被上述第二部分?jǐn)?shù)據(jù)覆 蓋的第一部分?jǐn)?shù)據(jù); 對于上述開始定時以后的各個定時,在與上述定時對應(yīng)的上述矢量的各分量中的、與 確定出的上述第一部分?jǐn)?shù)據(jù)對應(yīng)的分量是規(guī)定值的情況下,確定上述多個邏輯運算中的、 基于確定出的上述第一部分?jǐn)?shù)據(jù)的邏輯運算; 對于上述開始定時以后的各個定時,確定上述各定時中的比上述開始定時靠前的各定 時中的、確定出的上述邏輯運算的運算結(jié)果和基于與上述定時對應(yīng)的上述矢量確定出的上 述邏輯運算的運算結(jié)果相同的定時。2. 根據(jù)權(quán)利要求1所述的設(shè)計輔助方法,其特征在于, 上述計算機執(zhí)行下述處理: 在上述開始定時以后的定時中的不同的2個定時彼此中,當(dāng)確定出的上述邏輯運算相 同并且確定出的上述邏輯運算的運算結(jié)果不同的情況下,在上述不同的2個定時彼此中,以 進行確定的上述邏輯運算不重疊的方式進行確定上述邏輯運算的處理和確定上述定時的 處理。3. 根據(jù)權(quán)利要求1或者2所述的設(shè)計輔助方法,其特征在于, 上述計算機執(zhí)行下述處理: 生成表示第二編碼電路和控制電路的電路信息, 上述第二編碼電路在上述編碼電路設(shè)置了儲存對于上述開始定時以后的各個定時確 定出的上述邏輯運算的運算結(jié)果的存儲區(qū)域,上述控制電路使在對于上述開始定時以后的 各個定時確定出的上述定時中確定出的上述邏輯運算的運算結(jié)果儲存于上述存儲區(qū)域。4. 根據(jù)權(quán)利要求1~3中任一項所述的設(shè)計輔助方法,其特征在于, 上述計算機執(zhí)行下述處理: 對于獲取到的上述編碼矩陣的矢量中的、上述第一數(shù)量之后的各個矢量,對從開頭的 分量起依次連續(xù)的與上述規(guī)定值不同的值的數(shù)量進行計數(shù); 基于上述編碼矩陣,生成按照計數(shù)出的與上述規(guī)定值不同的值的數(shù)量從少到多的順序 重新排列上述第一數(shù)量之后的矢量的編碼矩陣, 在確定上述邏輯運算的處理中,對于上述開始定時以后的各個定時,在與上述定時對 應(yīng)的生成了的上述編碼矩陣的上述矢量的各分量中的、與確定出的上述第一部分?jǐn)?shù)據(jù)對應(yīng) 的分量是上述規(guī)定值的情況下,確定上述多個邏輯運算中的、基于確定出的上述第一部分 數(shù)據(jù)的邏輯運算。5. -種設(shè)計輔助程序,對編碼電路的設(shè)計進行輔助,該編碼電路通過對于具有比作為 規(guī)定數(shù)量的第一數(shù)量多的第二數(shù)量的、具有上述第一數(shù)量的分量的矢量的編碼矩陣的各個 上述矢量,進行包括基于上述第一數(shù)量的被存儲于存儲區(qū)域的多個部分?jǐn)?shù)據(jù)和上述矢量的 各分量的多個邏輯運算的編碼處理,來得到上述第二數(shù)量的編碼數(shù)據(jù),上述多個部分?jǐn)?shù)據(jù) 是將編碼的對象數(shù)據(jù)分割為上述第一數(shù)量而得到的多個部分?jǐn)?shù)據(jù),上述設(shè)計輔助程序的特 征在于, 計算機執(zhí)行如下的處理: 獲取上述編碼矩陣; 獲取表示基于將編碼的第一對象數(shù)據(jù)分割而得到且被儲存于上述存儲區(qū)域的多個第 一部分?jǐn)?shù)據(jù)和獲取到的上述編碼矩陣的上述矢量的各分量的上述編碼處理中的與上述矢 量對應(yīng)的各定時中的、開始將編碼的第二對象數(shù)據(jù)分割而得到的多個第二部分?jǐn)?shù)據(jù)向上述 存儲區(qū)域儲存的開始定時的信息; 對于上述各定時中的獲取到的上述信息所示的上述開始定時以后的各個定時,確定被 存儲于上述存儲區(qū)域的上述多個第一部分?jǐn)?shù)據(jù)中的、在上述定時中被上述第二部分?jǐn)?shù)據(jù)覆 蓋的第一部分?jǐn)?shù)據(jù); 對于上述開始定時以后的各個定時,在與上述定時對應(yīng)的上述矢量的各分量中的、與 確定出的上述第一部分?jǐn)?shù)據(jù)對應(yīng)的分量是規(guī)定值的情況下,確定上述多個邏輯運算中的、 基于確定出的上述第一部分?jǐn)?shù)據(jù)的邏輯運算; 對于上述開始定時以后的各個定時,確定上述各定時中的比上述開始定時靠前的各定 時中的、確定出的上述邏輯運算的運算結(jié)果和基于與上述定時對應(yīng)的上述矢量確定出的上 述邏輯運算的運算結(jié)果相同的定時。6. -種設(shè)計輔助裝置,對編碼電路的設(shè)計進行輔助,該編碼電路通過對于具有比作為 規(guī)定數(shù)量的第一數(shù)量多的第二數(shù)量的、具有上述第一數(shù)量的分量的矢量的編碼矩陣的各個 上述矢量,進行包括基于上述第一數(shù)量的被存儲于存儲區(qū)域的多個部分?jǐn)?shù)據(jù)和上述矢量的 各分量的多個邏輯運算的編碼處理,來得到上述第二數(shù)量的編碼數(shù)據(jù),上述多個部分?jǐn)?shù)據(jù) 是將編碼的對象數(shù)據(jù)分割為上述第一數(shù)量而得到的多個部分?jǐn)?shù)據(jù),上述設(shè)計輔助裝置的特 征在于, 具有控制部,該控制部獲取上述編碼矩陣;獲取表示基于將編碼的第一對象數(shù)據(jù)分割 而得到且被儲存于上述存儲區(qū)域的多個第一部分?jǐn)?shù)據(jù)和獲取到的上述編碼矩陣的上述矢 量的各分量的上述編碼處理中的與上述矢量對應(yīng)的各定時中的、開始將編碼的第二對象數(shù) 據(jù)分割而得到的多個第二部分?jǐn)?shù)據(jù)向上述存儲區(qū)域儲存的開始定時的信息;對于上述各定 時中的獲取到的上述信息所示的上述開始定時以后的各個定時,確定被存儲于上述存儲區(qū) 域的上述多個第一部分?jǐn)?shù)據(jù)中的、在上述定時中被上述第二部分?jǐn)?shù)據(jù)覆蓋的第一部分?jǐn)?shù) 據(jù);對于上述開始定時以后的各個定時,在與上述定時對應(yīng)的上述矢量的各分量中的、與確 定出的上述第一部分?jǐn)?shù)據(jù)對應(yīng)的分量是規(guī)定值的情況下,確定上述多個邏輯運算中的、基 于確定出的上述第一部分?jǐn)?shù)據(jù)的邏輯運算;對于上述開始定時以后的各個定時,確定上述 各定時中的比上述開始定時靠前的各定時中的、確定出的上述邏輯運算的運算結(jié)果和基于 與上述定時對應(yīng)的上述矢量確定出的上述邏輯運算的運算結(jié)果相同的定時。7.-種記錄介質(zhì),記錄有對編碼電路的設(shè)計進行輔助的設(shè)計輔助程序,對編碼電路的 設(shè)計進行輔助,該編碼電路通過對于具有比作為規(guī)定數(shù)量的第一數(shù)量多的第二數(shù)量的、具 有上述第一數(shù)量的分量的矢量的編碼矩陣的各個上述矢量,進行包括基于上述第一數(shù)量的 被存儲于存儲區(qū)域的多個部分?jǐn)?shù)據(jù)和上述矢量的各分量的多個邏輯運算的編碼處理,來得 到上述第二數(shù)量的編碼數(shù)據(jù),上述多個部分?jǐn)?shù)據(jù)是將編碼的對象數(shù)據(jù)分割為上述第一數(shù)量 而得到的多個部分?jǐn)?shù)據(jù),上述記錄介質(zhì)的特征在于, 記錄有使計算機執(zhí)行下述處理的設(shè)計輔助程序: 獲取上述編碼矩陣; 獲取表示基于將編碼的第一對象數(shù)據(jù)分割而得到且被儲存于上述存儲區(qū)域的多個第 一部分?jǐn)?shù)據(jù)和獲取到的上述編碼矩陣的上述矢量的各分量的上述編碼處理中的與上述矢 量對應(yīng)的各定時中的、開始將編碼的第二對象數(shù)據(jù)分割而得到的多個第二部分?jǐn)?shù)據(jù)向上述 存儲區(qū)域儲存的開始定時的信息; 對于上述各定時中的獲取到的上述信息所示的上述開始定時以后的各個定時,確定被 存儲于上述存儲區(qū)域的上述多個第一部分?jǐn)?shù)據(jù)中的、在上述定時中被上述第二部分?jǐn)?shù)據(jù)覆 蓋的第一部分?jǐn)?shù)據(jù); 對于上述開始定時以后的各個定時,在與上述定時對應(yīng)的上述矢量的各分量中的、與 確定出的上述第一部分?jǐn)?shù)據(jù)對應(yīng)的分量是規(guī)定值的情況下,確定上述多個邏輯運算中的、 基于確定出的上述第一部分?jǐn)?shù)據(jù)的邏輯運算; 對于上述開始定時以后的各個定時,確定上述各定時中的比上述開始定時靠前的各定 時中的、確定出的上述邏輯運算的運算結(jié)果和基于與上述定時對應(yīng)的上述矢量確定出的上 述邏輯運算的運算結(jié)果相同的定時。
【文檔編號】H03M13/37GK106063134SQ201480076895
【公開日】2016年10月26日
【申請日】2014年3月11日
【發(fā)明人】富田憲范
【申請人】富士通株式會社