專利名稱:計算處理裝置及方法
技術領域:
本發(fā)明涉及一種應用于模式識別裝置、模式識別系統(tǒng)以及分級濾波計 算處理裝置等的分級計算處理方法和裝置。
背景技術:
在應用于模式識別系統(tǒng)、預測系統(tǒng)和控制系統(tǒng)等時,普遍使用利用神 經網絡的信號處理裝置。神經網絡經常作為在微處理器上運行的軟件來實 現(xiàn),并作為針對個人計算機和工作站等的應用軟件來提供。
圖2是示出利用一般的分層互連神經網絡的圖像處理裝置的配置的示
例的示意圖。附圖標記21表示例如作為檢測目標的光柵掃描的圖像數據。 計算單元22包括三層神經網絡并從圖像數據21中檢測預定對象。附圖標 記23表示與計算結果對應的輸出數據面。計算單元22在掃描并參照圖像 數據21內的預定圖像區(qū)域24的同時執(zhí)行處理,從而檢測存在于圖像數據 21中的檢測目標。輸出數據面23是與作為檢測目標的圖像數據21具有相 同大小的數據面,并以掃描順序存儲在計算單元22掃描圖像數據21的所 有區(qū)域時對它們進行處理時獲得的檢測輸出。由于計算單元22在檢測到目 標的位置上輸出大的值,因此其能夠通過掃描輸出數據面23來識別目標在 圖像面中的位置。
在計算單元22中,附圖標記25、 26和27表示神經網絡的層,預定數 量的神經元28存在于各層中。第一層25具有與參照圖像的像素數相同數 量的神經元28。各神經元經由預定加權系數前饋互連。
圖3示出了一個神經元28的配置。附圖標記in—1至in_n表示神經元 的輸入值,其在第二及隨后的層中是前一層神經元的輸出值。乘法器31a、 31b、 ...、 31n輸出將各前一層神經元的輸出值乘以通過學習而獲得的系數 w l至wn而獲得的積。累積加法器32累積來自乘法器31a、 31b、...、31n的積。非線性變換處理單元33使用邏輯(logistic)函數、雙曲正切函 數(tanh函數)等對來自累積加法器32的累積和進行非線性變換,并將該 變換結果作為檢測結果"out"輸出。在這種類型的分級神經網絡中,使用諸 如公知的反向傳播等的學習算法,針對各個檢測目標預先確定各個神經元 所需的加權系數w—1至w—n。
為了在嵌入式設備等中以高性能和低成本實現(xiàn)這種分層互連神經網 絡,提出了使用模擬硬件或數字硬件來實現(xiàn)分層互連神經網絡的方法。
例如,日本特許第2679730號(專利文獻1)公開了使用單層的模擬 神經網絡硬件作為時分復用,來實現(xiàn)多層結構的分級結構神經網絡的體系 結構。此外,日本特開平3-55658號公報(專利文獻2)公開了使用數字 硬件來實現(xiàn)神經網絡的實現(xiàn)方法。另一方面,已知神經網絡中的稱作巻積 神經網絡(Convolutional Neural Network,以下簡稱作CNN)的計算方法, 作為相對于識別目標的變換使得能夠進行魯棒(robust)的模式識別的方法。 例如,日本特開平10-021406號公報(專利文獻3)和日本特開2002-358500 號公報(專利文獻4)提出了應用于圖像中的目標識別或檢測的示例。
圖4示出了作為簡單CNN的示例的邏輯網絡構成。圖4示出了三層 CNN的示例,其中第一層406的特征數為3,第二層410的特征數為2, 第三層411的特征數為1。附圖標記401表示與光柵掃描的圖像數據對應 的圖像數據。圖像數據401是到CNN計算的輸入數據。附圖標記403a到 403c表示第一層406的特征面。特征面是指示在使用預定特征提取濾波器 (巻積計算的累積和以及非線性處理)掃描前一層數據時通過計算而獲得 的處理結果的圖像數據面。由于特征面是針對光柵掃描的圖像數據的檢測 結果,因此還用面來表示檢測結果。根據圖像數據401通過對應的特征提 取濾波,生成特征面403a到403c。例如,通過對二維巻積濾波器404a到 404c進行非線性變換以及計算結果的非線性變換,來生成特征面403a到 403c。注意,附圖標記402表示巻積濾波器404a到404c的巻積計算所需 的參照圖像區(qū)域。
例如,具有l(wèi)lxll內核(kernel)大小(水平方向上的長度和垂直方向 上的高度)的巻積濾波計算通過由下式給出的積和計算,對數據進行處理:ow/pw"x, >0 = S S !"戶M"x + co/www, j; + row) x we/g/^(co/w附w, row)
(1)
其中,
input (x, y):坐標(x, y)處的參照像素值 output (x, y):坐標(x, y)處的計算結果
weight (column, row ):坐標(x+column, y+row)處的加權系數 columnSize=ll, rowSize=ll:濾波內核大小(濾波器抽頭的數量)。
巻積濾波器404a到404c是具有不同系數的巻積濾波內核。此外,巻 積內核根據特征面而具有不同的大小。
CNN計算通過在針對各個像素掃描多個濾波內核的同時重復積和計 算,并通過對最終的積和結果進行非線性變換來生成特征面。在計算特征 面403a時,由于與前一層互連的數量為1,因此濾波內核的數量為1 (巻 積濾波器404a)。另一方面,在計算特征面407a和407b中的各個時,由 于與前一層互連的數量為3 ,因此累積三個巻積濾波器409a到409c或409d 到409f的計算結果。也就是說,能夠通過累積來自巻積濾波器409a到409c 的輸出,并最終對和進行非線性變換處理來生成特征面407a。
注意,巻積濾波器409a到409f是具有不同濾波系數的巻積內核。如 圖4所示,巻積濾波器409a到409c和巻積濾波器409d到409f具有不同 的內核大小。巻積濾波的累積和非線性變換處理的基本配置與圖3所示的 神經元的配置相同。即,巻積內核的系數與加權系數w一l到w—n對應。在 像特征面407a、 407b和408那樣與多個先前層的特征面互連時,累積加法 器32累積多個巻積內核的計算結果。S卩,互連的總數與巻積內核大小x前 一層的特征數對應。
圖5是用于說明CNN計算中的圖形檢測處理的圖。附圖標記51a到 51c表示例示第一層的特征提取目標,并進行學習以分別提取水平邊緣和 傾斜邊緣的巻積內核。附圖標記52a和52b表示根據第一層的多個特征提 取結果和它們的空間分配關系而確定的圖形。附圖標記53表示最終要提取 的圖形。根據多個第二層特征提取結果和它們的空間分配關系來確定圖形53。假定通過使用例如感知學習和反向傳播學習等普遍的方法進行學習, 針對各個特征預先確定了巻積內核的濾波系數。在對象檢測和識別等中, 通常使用具有10x10以上的大小的濾波內核。 一般而言,巻積內核大小針
對各個特征而不同。
以這種方式,在CNN計算中,通過在針對各個特征提取用各個圖像 面保持結果的同時分級地互連各層,能夠實現(xiàn)基于原始特征和它們的空間 分配關系的魯棒的模式檢測。
如使用圖2所描述的,在使用一般的分級神經網絡的用于檢測圖像中
的對象的裝置中,作為計算處理所需的存儲器大小,除了輸入和輸出圖像
緩沖器以外,用于保持神經元輸出的緩沖存儲器足夠用。g卩,如果提供具 有與神經元的數量相同的預定位數的存儲器,則能夠執(zhí)行期望的計算處理。
另一方面,在CNN計算的情況下,由于根據前一層的多個特征提取 結果的空間分配關系進行特征提取,因此在相鄰的層間需要預定大小的數 據緩沖器。例如,在圖4所示的CNN計算結構的情況下,需要五個特征 面403a到403c、 407a和407b (緩沖存儲器)。即,除了輸入和輸出圖像 緩沖器外,還需要圖像大小x5的存儲器大小。由于該原因,處理所需的存 儲器大小變得大于一般的分級神經網絡。
上述專利文獻3和4中公開的方法也是通過圖像面來保持特征提取結 果的方法,處理所需的存儲器大小大于一般的分級神經網絡。
特別地,其結果是,在硬件實現(xiàn)CNN計算結構時,需要在LSI中準 備具有大的大小的RAM (Random Access Memory,隨機存取存儲器),這 導致電路規(guī)模增大。即使在軟件實現(xiàn)CNN計算結構時,如果在嵌入式設 備中實現(xiàn)CNN計算結構,則由于系統(tǒng)所需的存儲器大小增加,成本也同 樣增加。
另一方面,作為避免存儲器大小增加的方法,使用將輸入數據分割為 區(qū)域并輸入分割的數據的方法。但是,在對參照區(qū)域寬的計算進行分級處 理時,需要通過在寬范圍上交疊輸入數據,來通過分割的方式將輸入數據 輸入,因此處理目標區(qū)域增加,導致處理速度下降。
發(fā)明內容
為了解決這些問題而作出本發(fā)明, 一個典型實施例在不分割輸入數據
的情況下使用小的存儲器大小,來實現(xiàn)例如CNN計算等的基于空間分配
關系的分級計算處理。
根據本發(fā)明的一個方面,提供一種計算處理裝置,其分級連接對輸入
數據施加計算處理的多個邏輯處理節(jié)點,所述計算處理裝置包括指定單 元,其用于根據規(guī)定要由所述多個處理節(jié)點執(zhí)行的預定處理單位的計算的 執(zhí)行順序的序列信息,從所述多個處理節(jié)點中依次指定要執(zhí)行計算處理的 處理節(jié)點;執(zhí)行單元,其用于以所述處理單位執(zhí)行由所述指定單元指定的 所述處理節(jié)點的計算處理,以獲得計算結果;以及存儲器控制單元,其用 于分別對所述多個處理節(jié)點分配環(huán)形緩沖區(qū),并且在以與所述處理單位的 所述計算結果對應的量為單位,使數據的寫入目的地循環(huán)的同時,在對應 的環(huán)形緩沖區(qū)中寫入所述執(zhí)行單元獲得的所述處理節(jié)點的所述計算結果。
根據本發(fā)明的另一個方面,提供一種計算處理裝置的控制方法,所述 計算處理裝置分級連接對輸入數據施加計算處理的多個邏輯處理節(jié)點,所 述控制方法包括指定步驟,根據規(guī)定要由所述多個處理節(jié)點執(zhí)行的預定
處理單位的計算的執(zhí)行順序的序列信息,從所述多個處理節(jié)點中依次指定
要執(zhí)行計算處理的處理節(jié)點;執(zhí)行步驟,以所述處理單位執(zhí)行在所述指定 步驟中指定的所述處理節(jié)點的計算處理,以獲得計算結果;以及存儲器控 制步驟,分別對所述多個處理節(jié)點分配環(huán)形緩沖區(qū),并且在以與作為單位 的所述處理單位的計算結果對應的量為單位,使數據的寫入目的地循環(huán)的 同時,在對應的環(huán)形緩沖區(qū)中寫入在所述執(zhí)行步驟中獲得的所述處理節(jié)點 的所述計算結果。
從以下參照附圖對示例性實施例的描述,本發(fā)明的其它特征將變得清楚。
圖1是示出根據第一實施例的CNN處理單元的配置的示例的框圖; 圖2是用于說明分層互連神經網絡的構成的示例的圖;圖3是示出神經元的結構的示例的圖4是用于說明CNN的網絡構成的示例的圖5是用于說明CNN的特征提取的示例的圖6是示出根據第一實施例的使用分級計算處理的圖像處理裝置(模
式檢測裝置)的配置的示例的框圖7是用于說明根據第一實施例的CNN的網絡構成的示例的圖8A和圖8B是用于說明根據第一實施例的模式檢測裝置的操作的流
程圖9是示出網絡構成信息表的數據結構的示例的圖IO是示出序列信息表的數據結構的圖11是用于說明存儲器分配的圖12是示出計算處理單元的配置的示例的框圖13A至13D是用于說明環(huán)形緩沖區(qū)的示例的圖14是用于說明處理節(jié)點的邏輯連接結構的圖15是用于說明參照數據組的讀取處理的圖16是用于說明存儲器存取控制單元103的配置的框圖17是用于說明各個CNN計算的操作定時的圖18是用于說明根據第二實施例的CNN的網絡構成的圖19是示出根據第二實施例的CNN處理單元的配置的示例的框圖20是用于說明根據第二實施例的環(huán)形緩沖區(qū)設置單元和環(huán)形大小 設置單元之間的關系的圖21是示出根據第二實施例的圖像處理裝置(模式檢測裝置)的配置 的示例的框圖22A和22B是例示計算單元101針對各線(line)執(zhí)行處理的狀態(tài) 的說明圖;以及
圖23A至23C是例示在圖7所示的分級網絡中針對各線的計算處理的 進展的示意圖。
具體實施方式
現(xiàn)在,依照附圖詳細說明本發(fā)明的示例性實施例。 <第一實施例>
下面使用圖1、圖6、圖7、圖8A和圖8B說明第一實施例的操作的 詳細情況。
圖6是示出根據第一實施例的包括分級計算處理電路的圖像處理裝置 (在本實施例中用作模式檢測裝置)的配置的示例的框圖。模式檢測裝置 具有檢測圖像數據中的特定對象(圖像模式)的功能。
參照圖6,附圖標記61表示圖像輸入單元,其包括光學系統(tǒng)和例如 CCD (Charge-Coupled Device,電荷耦合器件)或CMOS (Complementary Metal Oxide Semiconductor,互補金屬氧化物半導體)傳感器等的光電轉換 設備。此外,圖像輸入單元61包括用于控制光電轉換設備的驅動電路、 AD轉換器、用于控制各種圖像校正的信號處理電路以及幀緩沖器等。附 圖標記62表示預處理單元,其執(zhí)行有效執(zhí)行檢測處理所需的各種預處理。 更具體而言,預處理單元62用硬件處理例如顏色轉換處理、對比度校正處 理等的圖像數據轉換。CNN處理單元63包括分級計算處理電路,并用作 特征檢測處理單元。稍后將參照圖1描述CNN處理單元63的詳細情況。
附圖標記66表示DMAC (Direct Memory Access Controller,直接存i諸 存取控制器),其控制圖像總線64上的各個處理單元間的數據傳輸以及圖 像總線64上的設備和CPU總線67上的RAM 70間的數據傳輸。附圖標記 65表示提供圖像總線64和CPU總線67間的電橋(bridge)功能的電橋。 附圖標記68表示總體控制該裝置的操作的CPU。附圖標記69表示ROM (Read Only Memory,只讀存儲器),其存儲指定CPU 68的操作的指令和 各種計算所需的參數數據。例如,ROM 69存儲CNN處理單元63的操作 所需的加權系數、網絡互連信息和序列信息等。RAM (Random Access Memory,隨機存取存儲器)70是CPU 68的操作所需的存儲器。RAM 70 包括例如DRAM (Dynamic RAM,動態(tài)RAM)等具有相對大的容量的存 儲器。CPU68能夠經由電橋65訪問圖像總線64上的各種處理單元。如圖 6所示,通過隔離圖像總線64和CPU總線67,由硬件實現(xiàn)的例如圖像輸 入單元61 、預處理單元62和CNN處理單元63的各個處理單元能夠與CPU68同時操作。
圖1是示出CNN處理單元63的詳細配置的框圖。CNN處理單元63 依照預定條件,通過以時分的方式執(zhí)行與邏輯處理節(jié)點(稍后描述)對應 的計算來處理整個CNN網絡的計算。
參照圖1,附圖標記101表示針對預定數據組執(zhí)行巻積計算和非線性 處理的計算單元。圖12示出了計算單元101的更具體的配置的示例。參照 圖12,乘法器1201依照內核選擇信號,將同步輸入的輸入數據乘以由系 數選擇器1204選擇并輸出的加權系數。累積加法器1202將來自乘法器 1201的輸出累積與連接到前級的處理節(jié)點相同的數量。非線性變換處理器 1203使用對數函數或tanh函數,對累積加法器1202的累積和進行非線性 變換。注意,非線性變換通過列舉相對于各個輸入值的預定函數值的函數 表來實現(xiàn)。加權系數存儲單元1205根據檢測目標存儲多個加權系數數據。 加權系數存儲單元1205包括RAM等。系數選擇器1204依照來自網絡構 成管理單元108的選擇信號,從加權系數存儲單元1205依次讀出對應的加 權系數。
在本實施例中,計算單元101與邏輯處理節(jié)點對應地針對各線執(zhí)行時 分處理。圖22A和22B是例示計算單元101針對各線執(zhí)行處理的狀態(tài)的說 明圖。
參照圖22A和22B,附圖標記2201表示計算目標圖像(參照數據面)。 在計算目標圖像2201中示出的最小的一格指示以光柵掃描順序表示的輸 入圖像的像素或前一層的處理節(jié)點中的計算結果像素(input (x, y), x: 水平位置,"垂直位置)。附圖標記2202表示計算結果圖像。在計算結果 圖像2202中示出的最小的一格指示按照光柵掃描順序的計算結果像素 (output (x, y), x:水平位置,y:垂直位置)。
計算目標圖像2201中的粗框內的區(qū)域2203指示在處理位置output(6, 7)處的巻積計算時的參照數據的區(qū)域。區(qū)域2203指示由水平方向上的"ir 和垂直方向上的"13"定義巻積內核大小的情況。
計算結果圖像2202中的粗框內的區(qū)域2204指示存儲針對計算目標圖 像2201的各線的計算(針對水平方向上的一行的計算)結果的區(qū)域。區(qū)域2204內的交叉平行線陰影區(qū)域(右端和左端各五個像素)指示根據巻積內
核大小生成的周邊區(qū)域(未進行任何計算的區(qū)域)中的像素。在分級處理中如何處理這些周邊區(qū)域(刪除、嵌入默認值等)不是本發(fā)明的實質內容。在這種情況下,例如假定嵌入默認值。
從圖22A和圖22B能夠看出,在執(zhí)行單位計算(例如針對水平方向上的一行的計算)時,需要計算目標圖像2201中的至少具有陰影區(qū)域2205的大小的區(qū)域。注意,區(qū)域2205的水平大小與計算目標圖像的水平大小相同,其垂直大小與巻積內核的垂直大小相同。通過在移動單位計算圖像目標區(qū)域的同時執(zhí)行獲得區(qū)域2204的計算結果數據的單位計算,能夠針對計算目標圖像2201的整個區(qū)域進行巻積計算。注意,以下將計算像素、計算結果圖像和計算結果數據統(tǒng)稱作計算結果。
返回參照圖1,附圖標記102表示存儲器,其包括RAM并存儲輸入圖像、中間層的特征提取結果和最終檢測結果等。作為存儲器102,優(yōu)選使用允許進行高速隨機存取的SRAM (Static RAM,靜態(tài)RAM),以使巻
積計算加速。
附圖標記103表示存儲器存取控制單元,其生成用于存儲器102的地址,并執(zhí)行讀/寫信號控制和數據總線的方向控制等。存儲器存取控制單元103依照來自環(huán)形緩沖區(qū)設置單元104-1到104-n的輸出來訪問存儲器。
附圖標記104-1到104-n表示使用存儲器102作為針對CNN計算的各個邏輯處理節(jié)點的獨立環(huán)形緩沖區(qū)所需的環(huán)形緩沖區(qū)設置單元。以下將環(huán)形緩沖區(qū)設置單元中的任意一個描述為環(huán)形緩沖區(qū)設置單元104。環(huán)形緩沖區(qū)設置單元104包括用于設置環(huán)形緩沖區(qū)的大小的環(huán)形大小設置單元106、用于保持環(huán)形緩沖區(qū)的操作狀態(tài)的環(huán)形計數器105以及用于確定存儲器102上的物理地址的偏移地址設置單元107等。通過選擇器1121和1122選擇作為來自環(huán)形緩沖區(qū)設置單元104-1到104-n的輸出的環(huán)形計數器值和偏移地址值。
附圖標記108表示網絡構成管理單元,其確定用于使用一個計算單元101來實現(xiàn)邏輯分級網絡處理的構成及其操作。網絡構成信息設置單元110作為表數據(構成信息表)保持指定分級網絡的邏輯層互連關系的構成信息。該構成信息表包括寄存器或者RAM。網絡構成管理單元108包含依 照該構成信息表控制存儲器存取控制單元103和計算單元101的操作的定 序器。下面描述的序列控制單元109執(zhí)行針對各線的序列控制,但是網絡 構成管理單元108中的定序器控制邏輯處理節(jié)點處理針對一個線的計算所 需的序列。
附圖標記109表示序列控制單元,其依照序列信息設置單元111中描 述的序列信息控制針對各個預定計算處理單位的計算處理順序。如上面使 用圖22A和圖22B所描述的,本實施例中的預定計算處理單位針對水平方 向上的一行。因此,序列控制單元109例如針對各線控制用于在以時分的 方式切換邏輯處理節(jié)點的同時執(zhí)行多個處理節(jié)點的處理的處理順序。序列 信息設置單元111包括保持序列信息的RAM等。
附圖標記113表示CPU總線訪問控制單元,其為CPU 68訪問CNN 處理單元63中的各種寄存器和存儲器所需的總線接口。 CPU68經由該接 口寫入CNN處理單元63中的各種設置數據。注意,要寫入的設置數據包 括環(huán)形大小設置單元106中的緩沖器大小、網絡構成信息設置單元110中 的構成信息表以及序列信息設置單元111中的序列信息。此外,CPU 68設 置計算單元101中的加權系數存儲單元1205 (圖12)中的加權系數。
圖7示出本實施例中實現(xiàn)的CNN網絡和緩沖存儲器之間的關系。圖7 是用于例示將使用圖4描述的CNN網絡應用于本實施例的CNN處理單元 63的情況的說明圖。
參照圖7,附圖標記701表示輸入層,其為具有預定大小的檢測目標 圖像數據。附圖標記703a到703c表示存儲作為第一層706的計算輸出的 特征面的環(huán)形緩沖區(qū)。在圖7中,環(huán)形緩沖區(qū)703a到703c的大小與分配 的用于存儲各個特征面的存儲器的部分區(qū)域的大小對應。也就是說,作為 針對輸入層701的巻積內核704a到704c的計算結果(巻積計算和非線性 變換)的特征面存儲在具有獨立大小的存儲器的部分區(qū)域(環(huán)形緩沖區(qū) 703a到703c)中。如稍后所描述的,該部分區(qū)域被控制為環(huán)形緩沖區(qū)。作 為第一層706的計算結果的特征面是各自與輸入層701具有相同大小的數 據面,并且存儲在具有預定高度的環(huán)形緩沖區(qū)703a和703b中。這些環(huán)形緩沖區(qū)是與輸入圖像具有相同寬度并針對各線循環(huán)的帶狀緩沖區(qū)。
圖13A至13D是例示本實施例的環(huán)形緩沖區(qū)的操作的說明圖。為了方便描述,假定環(huán)形緩沖區(qū)的高度(循環(huán)數)為6。此外,下面將例示針對六個線的環(huán)形緩沖區(qū)參照針對以光柵掃描順序輸入的八個線L1到L8的圖像數據1300的情況。附圖標記1301表示環(huán)形緩沖區(qū)充滿針對六個線的數據的狀態(tài)。在這種情況下,環(huán)形計數器105的值從"0"到"5"循環(huán),并在存儲狀態(tài)1301的狀態(tài)下為"5"。在下一個處理單位中,線L7存儲在環(huán)形緩沖區(qū)的第一行中,并且環(huán)形計數器105的值變成"0"。在這種情況下,環(huán)形緩沖區(qū)具有存儲狀態(tài)1302,并能夠參照線L2到L7。在再下一個處理單位中,線L8存儲在第二行位置中,并且環(huán)形計數器105的值變成"l"。在這種情況下,環(huán)形緩沖區(qū)具有存儲狀態(tài)1303,并能夠參照線L3到L8。以這種方式,環(huán)形緩沖區(qū)以與在各處理節(jié)點執(zhí)行預定處理單位的計算時獲得的計算結果的量對應的存儲區(qū)域為單位,進行循環(huán)。即,環(huán)形計數器105保持指示計算結果數據的寫入目的地的循環(huán)位置。由于該環(huán)形計數器105與構成網絡計算的多個處理節(jié)點關聯(lián)地設置,因此針對各個處理節(jié)點保持指示計算結果數據的寫入目的地的循環(huán)位置。
在本實施例中,根據與后級相連的所有巻積內核的大小確定環(huán)形緩沖區(qū)的高度(循環(huán)數)。例如,在環(huán)形緩沖區(qū)703a的情況下,巻積內核709a和709d的高度(垂直大小)中的較大值被確定為環(huán)形緩沖區(qū)高度。同樣地,分別根據巻積內核709b和709e、以及巻積內核709c和709f的內核大小來確定環(huán)形緩沖區(qū)703b和703c的高度。
在用于存儲作為第二層710的計算結果的特征面的環(huán)形緩沖區(qū)707a和707b中,巻積內核712a和712b的高度取環(huán)形緩沖區(qū)的高度中的較大值。注意,可以通過內核大小指定環(huán)形緩沖區(qū)703c的大小。但是,在本實施例中,由于環(huán)形緩沖區(qū)703c存儲CPU 68用來進行確定處理的特征檢測數據,因此與輸入圖像數據具有相同大小的緩沖區(qū)被分配為環(huán)形緩沖區(qū)703c。CPU68參照存儲在緩沖器713中的最終層711的特征面、和在環(huán)形緩沖區(qū)703c中保持的第一層706的特征面來確定檢測目標圖像的存在。
以這種方式,根據本實施例,用于保持中間層的特征面的環(huán)形緩沖區(qū)703a、 703b、 703c、 707a和707b依照網絡互連狀態(tài)和既定目的分配到具 有不同大小的存儲區(qū)域。以這種方式,最小化在實現(xiàn)CNN網絡時所需的 存儲器大小。
下面將參照圖8A和圖8B所示的流程圖詳細描述本實施例的操作。圖 8A和圖8B在單個流程圖中描述了 CPU 68和CNN處理單元63的操作。 圖8B中清楚地標明"CNN處理單元操作"的例程(步驟S811到S820)指 示CNN處理單元63的操作。
在步驟S801中,在檢測處理開始前,CPU68執(zhí)行各種初始化處理。 各個處理單元響應于來自CPU 68的初始化指令,初始化內部寄存器和存 儲器等。
在步驟S802中,CPU 68選擇檢測目標(檢測目標圖像數據)。在這 種情況下,從預先準備的檢測目標中選擇期望的檢測目標。本實施例的 CNN處理單元63使用相同的硬件部件,通過更換巻積內核的加權系數、 序列信息、網絡構成信息等,來構成各種CNN,從而應對各種檢測目標。
之后,CPU68經由電橋65和圖像總線64訪問CNN處理單元63,并 經由CPU總線訪問控制單元113在預定寄存器和存儲器中設置數據。在確 定檢測目標后,在步驟S803中,CPU68在計算單元101的加權系數存儲 單元1205中設置根據確定的檢測目標的加權系數。注意,加權系數是通過 針對各檢測目標進行學習而生成的巻積內核的系數數據。
在步驟S804中,CPU 68在網絡構成管理單元108的網絡構成信息設 置單元110中設置網絡構成信息。網絡構成信息是指定網絡互連的構成信 息表。作為網絡構成信息,如在加權系數中那樣,依照檢測目標設置不同 的數據。
圖9示出了網絡構成信息(網絡構成信息表)的數據結構的示例。參 照圖9,"指定的處理節(jié)點"與圖7所示的邏輯網絡的處理節(jié)點對應,第一 到第六處理節(jié)點是分別用于計算特征面的邏輯處理節(jié)點。第一到第六處理 節(jié)點計算的特征面分別存儲在環(huán)形緩沖區(qū)703a到703c、 707a、 707b和713
中。邏輯處理節(jié)點是通過以時分的方式利用計算單元101而實現(xiàn)的邏輯計 算處理單位。能夠通過圖14所示的邏輯網絡結構來實現(xiàn)圖9所示的網絡。在圖14中,第零個處理節(jié)點與輸入圖像數據面對應,其實際上不執(zhí)行任何計算。
"連接的節(jié)點的數量"指示處理節(jié)點在進行計算時所需的下層的連接的數量。例如,第四處理節(jié)點與三個處理節(jié)點的下層連接。網絡構成管理單元108的內部定序器依照連接的數量控制存儲器訪問和計算。
"相鄰的下層處理節(jié)點"是指定處理節(jié)點在進行計算時所需的下層的處理節(jié)點(與前級連接的處理節(jié)點)的信息。例如,第四處理節(jié)點與第一、第二和第三處理節(jié)點連接?!熠?,在第四處理節(jié)點進行計算時,使用第一到
第三處理節(jié)點的計算結果(在環(huán)形緩沖區(qū)703a到703c中保持的特征面)作為參照數據。
"計算類型"是指示要執(zhí)行的計算的類型的信息,在CNN計算的情況下,依照計算類型選擇加權系數。在計算單元101具有圖12所示的配置時,在"計算類型"中描述的計算類型數量與用于使系數選擇器1204選擇加權系數的"內核選擇信號"對應。注意,在CNN處理的情況下,針對各個處理節(jié)點執(zhí)行不同的計算(不同加權系數的巻積計算)。
在圖9中的網絡構成信息表中,"參照數據寬度"與對應于"計算類型"的巻積內核的寬度對應,并且"參照數據高度"與對應于"計算類型"的巻積內核的高度對應。
在步驟S805中,CPU 68在序列控制單元109的序列信息設置單元111中設置序列信息。序列信息是規(guī)定針對要以時分的方式處理的各個計算處理單位(在本實施例中針對各線)的序列操作的表信息。圖IO示出了序列信息表的數據結構的示例。"序列號"是針對各線更新的序列號,"處理節(jié)點號"指示與序列號對應的邏輯執(zhí)行處理節(jié)點。即,在序列號'T'處針對具有處理節(jié)點號"l"的處理節(jié)點(第一處理節(jié)點)執(zhí)行計算處理,在序列號"2"處針對具有處理節(jié)點號"2"的處理節(jié)點執(zhí)行處理。各處理節(jié)點響應于一個執(zhí)行指令,以一個線作為處理單位執(zhí)行計算(巻積計算+非線性變換)。因此,序列信息規(guī)定預定處理單位的計算的執(zhí)行順序。在本實施例中,輸入數據是二維圖像數據,并且執(zhí)行針對水平方向上的一個線的圖像數據的計算處理作為針對各預定處理單位的計算處理。其結果是,與一個序列號對應的計算處理獲取針對水平方向上的一個線的計算結果,并且將該計算結果保
持在與該處理節(jié)點對應的存儲器102的部分區(qū)域中。在存儲器102中,在
與各個獨立的處理節(jié)點相對應地分配的部分區(qū)域中形成以針對一個線的存 儲區(qū)域作為單位來使數據的寫入目的地循環(huán)的環(huán)形緩沖區(qū)。
在步驟S806和S807中,CPU 68設置環(huán)形緩沖區(qū)的操作所需的信息。 在本實施例中,CPU 68確定對存儲器102的帶狀緩沖區(qū)的分配,并且依照 網絡計算中的多個處理節(jié)點的邏輯連接狀態(tài)確定帶狀緩沖區(qū)的高度(環(huán)形 緩沖區(qū)的循環(huán)數量)。更具體而言,CPU68在具有與邏輯處理節(jié)點相同的 數量的寄存器組(環(huán)形緩沖區(qū)設置單元104)中設置環(huán)形緩沖區(qū)的操作所 需的信息。在用圖9所示的網絡構成信息表指示的網絡結構的情況下,CPU 68在六個環(huán)形緩沖區(qū)設置單元(單元104-1到104-6)中設置預定值。CPU 68在環(huán)形大小設置單元106中設置對應的邏輯處理節(jié)點的環(huán)形緩沖區(qū)的高 度(環(huán)形計數器的循環(huán)數)。CPU68在偏移地址設置單元107中設置對應 的處理節(jié)點的環(huán)形緩沖區(qū)開始地址。圖11是示出在實現(xiàn)圖7所示的網絡時 處理節(jié)點、偏移地址和環(huán)形緩沖區(qū)(帶狀緩沖區(qū))的高度間的關系的存儲 器映射。在圖11中,"ADRx (x: 0至(j6)"與偏移地址對應,"BHx (x: 0 到2)"與環(huán)形緩沖區(qū)的高度(實際設置值為"高度-l")對應。此外,"WIDTH" 指示圖像數據的寬度。注意,第零處理節(jié)點是用于保持輸入圖像數據的幀 緩沖區(qū)域。
在本實施例中,如上所述,存儲器102被分割為多個區(qū)域,并使用各 個區(qū)域作為具有不同大小的環(huán)形緩沖區(qū)或幀緩沖區(qū)。例如,在圖7所示的 計算處理的情況下,第一和第二處理節(jié)點使用BH1的緩沖區(qū),第零、第三 和第六處理節(jié)點使用BHO的緩沖區(qū),第四和第五處理節(jié)點使用BH2的緩 沖區(qū)。BHO是與幀存儲器對應的高度(即與輸入圖像數據的高度相同)。 即,根據在執(zhí)行預定處理單位的計算時處理節(jié)點參照的參照數據的大小, 確定分配給處理節(jié)點的環(huán)形緩沖區(qū)的循環(huán)數。如上所述,在步驟S806中, CPU 68根據要執(zhí)行的網絡計算中的各個處理節(jié)點的計算處理內容和分級 連接關系配置環(huán)形緩沖區(qū)。
在完成各種設置時,處理進行到步驟S808。在步驟S808中,CPU 68指令圖像輸入單元61、預處理單元62和CNN處理單元63開始處理(計算)。在步驟S809中,在接收到來自CPU 68的處理開始指令時,圖像輸入單元61獲取一幀的圖像數據,并將獲取的圖像數據存儲到內部緩沖器(未圖示)中。在完成存儲時,圖像輸入單元61生成到CPU68的圖像獲取完成中斷。在步驟S810中,在檢測到圖像獲取完成中斷時,CPU68起動DMAC 66,以將在步驟S809中獲取的圖像數據傳輸到預處理單元62的內部存儲器(未圖示)。在完成圖像數據的傳輸時,預處理單元62開始預處理。預處理單元62依照預先指定的對比度校正信息校正圖像數據的對比度。在完成校正處理時,預處理單元62生成到CPU68的中斷。在檢測到中斷時,CPU 68起動DMAC 66,以將校正后的圖像數據傳輸到CNN處理單元63中的存儲器102。在校正后的圖像數據到存儲器102的傳輸完成時,CNN處理單元63開始檢測處理。
步驟S811到S820對應于與CNN處理單元63的硬件處理關聯(lián)的例程。
在步驟S811中,序列控制單元109確定執(zhí)行計算的處理節(jié)點。序列控制單元109依照在序列信息設置單元111中保持的序列信息表確定處理節(jié)點。例如,在圖IO所示的序列信息表的情況下,序列控制單元109在第一序列中選擇處理節(jié)點號"1"。序列控制單元109具有對序列數量進行計數的序列計數器,并針對各序列單位(在該情況下為針對線單位的各處理)將序列計數器向上計數。序列控制單元109使用序列計數器作為地址,通過參照圖IO所示的序列信息表,確定作為處理目標的處理節(jié)點。
在步驟S812中,從存儲器102讀出確定為處理目標的處理節(jié)點的計算所需的參照數據,并將其設置在計算單元101中。
網絡構成管理單元108根據從序列控制單元109輸出的序列指令信息,從環(huán)形緩沖區(qū)設置單元104-1到104-n中選擇與參照數據對應的環(huán)形緩沖區(qū)設置單元。例如,如果在步驟S811中選擇第一處理節(jié)點,則序列控制單元109依照圖9所示的網絡構成信息表的內容,確定"連接的節(jié)點的數量=1"、"連接源處理節(jié)點=第零處理節(jié)點"和"計算類型=1"。網絡構成管理單元108根據網絡構成信息表的內容輸出節(jié)點選擇信號,并選擇來自與參照數據對應的環(huán)形緩沖區(qū)設置單元104的輸出。在這種情況下,單元108輸出與第零處理節(jié)點對應的選擇信號。存儲器存取控制單元103依照所選擇的環(huán)形緩沖區(qū)設置單元104的信息生成要讀出的存儲器的開始地址。
圖16是用于說明存儲器存取控制單元103的內部配置的框圖。附圖標記1601表示控制器,其根據從網絡構成管理單元108輸出的操作控制信號生成到各個處理單元的信號和到存儲器102的存儲器控制信號。存儲器控制信號例如是相對于存儲器102的讀/寫信號。附圖標記1602表示列計數器,其對行方向上(列位置處)的像素的數量進行計數。附圖標記1607表示窗口計數器,其與讀出在列數方向(水平方向)上連續(xù)的多個參照像素時的參照窗口寬度(圖15中為大小1502)對應。該參照窗口寬度與巻積內核的寬度對應。在窗口計數器1607對與參照窗口寬度對應的像素數量進行計數時,將其計數值更新為指示參照窗口寬度的下一行的像素。因此,加法器1603將由列計數器1602、窗口計數器1607和地址轉換器1605生成的行開始地址值相加,從而生成訪問一行數據所需的地址(指定行所需的地址)。
注意,每次依照由網絡構成管理單元108保持的網絡構成信息表(圖9)的內容改變計算類型時,在列計數器1602和窗口計數器1607中設置計數值。
雙向控制器1604是根據從控制器1601輸出的緩沖器控制信號執(zhí)行與存儲器102的數據總線的雙向控制的緩沖器。參照數據高速緩存1606是臨時保持巻積計算所需的參照數據的高速緩存。根據前述的地址轉換結果從存儲器102讀出的參照數據存儲在參照數據高速緩存1606中。控制器1601在更新窗口計數器1607的同時,通過控制參照數據高速緩存1606來高速緩存在列數方向(水平方向)上連續(xù)的參照數據。計算單元101在依次讀出存儲在高速緩存中的參照數據的同時執(zhí)行巻積計算。
圖15是用于說明存儲器存取控制單元103的參照數據讀出操作的圖。下面參照圖16和圖15更詳細地描述存儲器存取控制單元103的操作。
參照圖15,附圖標記1501表示分配給某個處理節(jié)點的環(huán)形緩沖區(qū)(通過針對各線循環(huán)來使用的帶狀緩沖區(qū))。附圖標記1502表示與要計算的巻積內核的參照窗口對應的大小。此外,附圖標記1503表示巻積內核的加權系數陣列設置。下面描述巻積內核大小是6x6的情況。在加權系數陣列設
置1503中,W00到W05指示針對第一行的數據陣列的加權系數陣列,W10到W15指示針對第二行的數據陣列的加權系數陣列,并且類似地列出了針對各數據陣列的加權系數陣列。在執(zhí)行巻積計算時,執(zhí)行系數值和對應位置處的參照數據的積和計算處理。
"WIDTH"指示特征面的寬度(即在本實施例的情況下其與輸入圖像數據的寬度對應),L3到L8指示特征面的第三到第八行的線數據。Al到A6指示帶狀緩沖區(qū)上的對應線的開始存儲地址。
存儲器存取控制單元103的地址轉換器1605根據由選擇器1121和1122選擇的環(huán)形計數器105的環(huán)形計數器值和偏移地址設置單元107的偏移地址值來計算參照數據的開始地址。注意,"偏移地址值"與圖15中的Al對應。環(huán)形計數器值是指向保持到現(xiàn)在為止的最后的處理線的行的指針。例如,在環(huán)形計數器值為"l",并且濾波內核(=巻積內核)的高度為"6"時,要參照的數據的開始線是A3指示的線。在確定開始地址后,控制器1601在更新窗口計數器1607的值的同時輸出存儲器地址,并從存儲器102讀出線L3的連續(xù)的參照數據。SP,窗口計數器1607用作用于讀出在列數方向(水平方向)上連續(xù)的參照數據的計數器。注意,在窗口計數器1607中加載與參照區(qū)域的寬度對應的值(實際上為寬度-l)為向上計數數據。在這種情況下,讀出在列數方向上的第六個連續(xù)數據,并將讀出的數據存儲到參照數據高速緩存1606中。在數據的讀出處理完成時(即在與參照區(qū)域的寬度對應的計數操作完成時),重置窗口計數器以指示下一個行的第零個像素。接著,根據來自地址轉換器1605的地址值及列計數器和窗口計數器的計數值生成地址A4,并且類似地將參照區(qū)域中的線L4的參照數據存儲在參照數據高速緩存1606中。之后,將從線L5到L8的參照數據依次存儲到參照數據高速緩存1606中。即,存儲器存取控制單元103根據環(huán)形計數器值在環(huán)形緩沖區(qū)上檢測開始行,并將與參照區(qū)域的寬度對應的各行的參照數據存儲到參照數據高速緩存1606中。
注意,能夠根據下式計算要參照的各行的開始地址
Address(n) = OffsetAddress十(mod(RingCtr畫(FilterHeight- 1)+RingHeight+n, RingHeight))xWIDTH
其中
Address (n):第n個線的參照數據行的開始地址;n:線編號(升序);
OffsetAddress:偏移地址值(與Al對應的地址);RingCtr:環(huán)形計數器輸出值;RingHeight:環(huán)形緩沖區(qū)的高度;mod(x, y): x相對于y的余數;以及WIDTH:特征數據的寬度。
在上述等式中,通過針對各個參照線將n從O依次增加到(濾波內核的高度-l),來獲取參照線的開始地址。
上述等式是參照環(huán)形計數器值計算參照線的地址的計算方法的示例。在圖15所示的示例的情況下,通過以(n,地址)的形式列舉n和地址之間的關系,可以得到(0, A3)、 (1, A4)、 (2, A5)、 (3, A6)、 (4, Al)和(5, A2)。該處理以環(huán)形計數器指示的線(以A2作為開始地址的線)作為最新的地址,以光柵掃描順序對應于前一個線的指定。
地址轉換器1605執(zhí)行上述地址轉換處理。在控制器1601在預定定時將n輸出到地址轉換器1605時,依次生成開始地址。注意,參照線地址獲取方法不限于上述等式,可以使用任何其它方法。在圖15的示例中,環(huán)形緩沖區(qū)的高度與濾波內核的高度相同。此外,即使在環(huán)形緩沖區(qū)的高度大于濾波內核的高度時,也能夠類似地計算開始地址。
返回參照圖8B,如上所述,在完成將參照數據組從存儲器102高速緩存到參照數據高速緩存1606時,處理從步驟S812進行到步驟S813。在步驟S813中,計算單元101開始巻積計算處理。即,網絡構成管理單元108依照在網絡構成信息表(圖9)中記錄的"計算類型"信息,指定計算單元101的加權系數,并驅動計算單元101。計算單元101讀出存儲在存儲器存取控制單元103的參照數據高速緩存1606中的參照數據,并執(zhí)行巻積計算處理。在步驟S814和S8i5中,累積針對所有連接源處理節(jié)點(相鄰的下層處理節(jié)點)執(zhí)行的巻積計算的結果。下面更詳細地描述這些步驟。
在步驟S815中,CNN處理單元63檢查連接源處理節(jié)點的數量。例如,在圖9所示的示例中,當目標處理節(jié)點是第四處理節(jié)點時,連接源處理節(jié)點的數量是3。在這種情況下,依照網絡構成信息表的內容針對第一、第二和第三處理節(jié)點的計算結果依次執(zhí)行巻積計算處理,并將這些計算處理結果保持在累計加法器1202中。針對各處理節(jié)點的參照數據的讀出處理和計算序列與前述方法相同。也就是說,存儲器存取控制單元103依照針對各個處理節(jié)點而不同的例如環(huán)形計數器值、偏移地址等信息,將作為計算目標的參照數據組從存儲器102讀出到參照數據高速緩存1606。接著,計算單元101針對高速緩存數據執(zhí)行巻積計算。
在針對所有連接源節(jié)點的計算完成時,處理從步驟S815進行到步驟S816,非線性變換處理器1203對來自累積加法器1202的輸出進行非線性變換。在步驟S817中,將變換結果存儲到存儲器102中。下面更詳細地描述存儲器102中的變換結果的存儲處理。
網絡構成管理單元108選擇與本地處理節(jié)點關聯(lián)的環(huán)形緩沖區(qū)設置單元104。例如,在第一處理節(jié)點的計算期間,網絡構成管理單元108選擇與第一處理節(jié)點對應的環(huán)形緩沖區(qū)設置單元104。存儲器存取控制單元103以所選擇的環(huán)形緩沖區(qū)設置單元104的環(huán)形計數器105指示的行的下一行作為開始地址,生成存儲器地址。注意,在執(zhí)行寫入操作時,控制器1601將窗口計數器1607重置為零。存儲器存取控制單元103在所生成的開始地址處寫入計算結果。在寫入操作完成時,控制器1601將列計數器1602的值增加l。每次寫入一個計算結果時,將列計數器1602加1。因此,在進行下一個處理時,讀出移動了一列(水平方向上一個像素的位置)的區(qū)域中的參照數據組。
圖17是與網絡構成管理單元108、存儲器存取控制單元103和計算單元101對應的前述計算狀態(tài)的時序圖。最上部分示出了網絡構成管理單元108的操作,存儲器存取控制單元103和計算單元101依照來自網絡構成管理單元108的指令執(zhí)行它們的處理。如上所述,網絡構成管理單元108依照來自序列控制單元109的序列控制指令信息選擇處理節(jié)點(1701)。網絡構成管理單元108參照網絡構成信息表設置連接的節(jié)點的數量(1702)。接著,網絡構成管理單元108將與所選擇的處理節(jié)點關聯(lián)的信息(環(huán)形計數器值、偏移地址值等)通知給存儲器存取控制單元103,并指令單元103讀出參照數據(1703)。存儲器存取控制單元103使用所通知的環(huán)形計數器值和偏移地址值從存儲器102讀出參照數據,并將其高速緩存在參照數據高速緩存1606上(1704、 1705)。在存儲器存取控制單元103進行的參照數據的讀出操作完成時,網絡構成管理單元108指令計算單元101開始計算。計算單元101讀出高速緩存在參照數據高速緩存1606上的參照數據并執(zhí)行巻積計算處理(1706、 1707)。在計算單元101的巻積計算處理完成時,網絡構成管理單元108針對下一個處理節(jié)點重復相同的處理(1709到1713)。在針對所有相鄰的下層處理節(jié)點的巻積計算完成時,網絡構成管理單元108控制計算單元101執(zhí)行非線性變換處理(1714),以獲得特征面上的一個像素的計算結果。為了在存儲器102中存儲該計算結果,網絡構成管理單元108將與作為上述處理目標的處理節(jié)點關聯(lián)的信息(環(huán)形計數器值、偏移地址值等)通知給存儲器存取控制單元103,并指令單元103寫入計算結果。存儲器存取控制單元103使用通知的環(huán)形計數器值和偏移地址值將計算結果寫入到存儲器102中與處理節(jié)點對應的部分區(qū)域中(1716、 1717)。為了針對下一個像素執(zhí)行前述處理,將列計數器1602增加1 (1718)。通過針對一行重復處理1703到1718,獲得針對特征面的一行的計算結果。
返回參照圖8B,在通過針對一個線重復步驟S812到S817的處理、針對一個線的處理的完成時,即在完成預定處理單位的計算時,處理從步驟S818進行到步驟S819。在步驟S819中,網絡構成管理單元108增加與處理期間的處理節(jié)點對應的環(huán)形緩沖區(qū)設置單元104的環(huán)形計數器105。每次針對一個線的處理完成時,更新環(huán)形計數器105。注意,在環(huán)形計數器105的計數值與環(huán)形大小設置單元106的值相等時,將環(huán)形計數器105重置為零。即,參照環(huán)形大小,使環(huán)形計數器105的計數值循環(huán)。以這種方式,環(huán)形計數器105的計數器值指示作為計算結果在環(huán)形緩沖區(qū)中的寫環(huán)形計數器的循環(huán)狀態(tài)。通過以這種方式針
對各個邏輯處理節(jié)點與環(huán)形計數器105的操作一起處理對存儲器102的訪 問,將存儲器102上的多個部分區(qū)域獨立地用作具有不同大小(循環(huán)數) 的多個環(huán)形緩沖區(qū)。即,使用圖11所示的存儲器映射上的多個區(qū)域作為環(huán) 形緩沖區(qū)。
在步驟S820中,CNN處理單元63檢査是否所有處理節(jié)點都完成了計 算。在這種情況下,CNN處理單元63檢查是否完成了在序列信息表(圖 10)中描述的所有序列。注意,序列控制單元109通過比較序列計數器(未 圖示)和預先設置的序列號來檢査完成。如果計算尚未完成,處理從步驟 S820返回到S811。序列控制單元109更新序列計數器,以參照與計數器 值對應的表來獲取要處理的下一個處理節(jié)點號。在確定處理節(jié)點后,網絡 構成管理單元108依照序列指令信息開始針對下一個處理節(jié)點的處理。在 處理不同的處理節(jié)點時,除了與環(huán)形緩沖區(qū)和計算關聯(lián)的各種參數以外, 重復與前述處理相同的操作。
如圖10所示,計算處理在按順序從下層開始在環(huán)形存儲區(qū)中依次存儲 特征數據的同時進行。圖23A到23C是例示針對圖7所示的分級網絡中的 各個線的計算處理的進行的說明圖。在圖23A到23C中,陰影區(qū)域指示緩 沖區(qū)上的處理后的數據的量。
針對各個線重復執(zhí)行用于計算第一層的特征面的第一到第三處理節(jié) 點,并將結果存儲在環(huán)形緩沖區(qū)703a到703c中(圖23A中的狀態(tài))。在 將計算第二層的特征面所需的量(高度)的結果存儲在環(huán)形緩沖區(qū)703a 到703c中后,針對各個線重復執(zhí)行第一到第五處理節(jié)點。環(huán)形緩沖區(qū)703a 和703b依次重復環(huán)形操作,并且環(huán)形緩沖區(qū)703c依次存儲計算結果。此 外,環(huán)形緩沖區(qū)707a和707b依次存儲計算結果(圖23B中的狀態(tài))。
在將計算第三層的特征面所需的量(高度)的結果存儲在環(huán)形緩沖區(qū) 707a和707b中后,針對各個線重復執(zhí)行第一到第六處理節(jié)點。在該狀態(tài) 下,環(huán)形緩沖區(qū)703a和703b依次重復環(huán)形操作,并且環(huán)形緩沖區(qū)703c 依次存儲計算結果。此外,環(huán)形緩沖區(qū)707a和707b依次重復環(huán)形操作, 并且緩沖器713針對各個線依次存儲最終結果(圖23C中的狀態(tài))。通過以上述序列從下層開始按順序針對各個線進行處理,在緩沖器
713中生成期望的最終特征數據,在環(huán)形緩沖區(qū)703c中生成期望的中間數據。
以這種方式,通過在以時分的方式針對各個線切換邏輯處理節(jié)點的同 時執(zhí)行邏輯處理節(jié)點,使由于切換處理節(jié)點而產生的開銷的影響最小化, 并且能夠減小所需的存儲器大小。
通過獨立地控制針對各個處理節(jié)點的環(huán)形緩沖區(qū),能夠將任意中間數
據作為幀數據進行保持。在圖23A到圖23C所示的示例中,在例如環(huán)形緩 沖區(qū)703c中保持的數據與這種幀數據對應。
通過重復步驟S811到S820的處理,能夠以時分的方式針對各個線執(zhí) 行根據預定CNN網絡的各個特征面的計算。如果在步驟S820中確定最后 的處理節(jié)點完成,則例如圖7中的緩沖器713存儲最終層的特征面的所有 數據。此時,在環(huán)形緩沖區(qū)703c中存儲了第三處理節(jié)點計算的特征面的所 有數據。
在所有序列完成時(步驟S820中的"是"),CNN處理單元63生成到 CPU 68的中斷。在檢測到該中斷時,CPU68開始步驟S821中的檢査處理。 即,CPU 68起動DMAC 66以將特征檢測數據1禾n 2 (圖7)傳輸到RAM 70。 CPU 68使用RAM 70上的特征數據來檢査目標的檢測狀態(tài)。步驟S821 中的檢查處理通過例如使用預定閾值將特征數據二值化、并獲取其重心的 方法來檢査是否存在目標。例如,CPU68可以使用特征檢測數據1的結果 來檢查是否存在檢測目標,可以使用特征檢測數據2來識別檢測目標附近 的基本紋理(texture)等。
如果檢測目標改變,則處理從步驟S822返回到步驟S802,以重置各 種參數。即,在步驟S803到S807中分別更新根據檢測目標的加權系數、 網絡構成信息和序列信息。此外,在步驟S806和S807中根據新的加權系 數和網絡構成信息重置環(huán)形緩沖區(qū)設置單元104的環(huán)形計數器。以這種方 式,邏輯處理節(jié)點根據檢測目標使用存儲器102上的不同區(qū)域作為具有不 同大小的環(huán)形緩沖區(qū)來執(zhí)行處理。即,構成針對與檢測目標對應的CNN 的圖ll所示的存儲器映射。以這種方式,根據本實施例,基于根據改變的檢測目標改變的網絡計算中的處理節(jié)點的連接結構來改變序列信息,并改 變存儲器102上對處理節(jié)點的部分區(qū)域的分配。
如果檢測目標沒有改變,則處理從步驟S822進行到步驟S823。在步 驟S823中檢査是否要結束處理。如果不結束處理,則處理進行到步驟S824。 在步驟S824和S825中,CNN處理單元63初始化各個環(huán)形緩沖區(qū)設置單 元104的環(huán)形計數器105、序列控制單元109的內部計數器等。處理返回 到步驟S809以重新開始從圖像數據的獲取開始的處理。也就是說,針對 下一幀圖像執(zhí)行相同的檢測處理。如果在歩驟S823中指令結束檢測處理, 則結束該處理。
如上所述,根據第一實施例,針對各個邏輯處理節(jié)點設置用于控制環(huán) 形緩沖區(qū)的環(huán)形緩沖區(qū)設置單元104,并且根據網絡構成和既定目的設置 環(huán)形緩沖區(qū)的大小(循環(huán)數)。在這種配置中,在以時分的方式針對各個線 執(zhí)行邏輯處理節(jié)點的同時執(zhí)行計算。以這種方式,能夠使用最小的存儲器 大小,以高速處理例如巻積神經網絡等的分級計算處理。
此外, 一個硬件或者軟件能夠使用小的存儲器大小以高速處理具有各 種互連關系(互連系數的大小、互連網絡關系和所需的中間數據)的多層 網絡計算。
<第二實施例〉
第一實施例描述了能夠針對所有邏輯處理節(jié)點設置環(huán)形緩沖區(qū)的大小 的配置。本發(fā)明并不限于此。例如,環(huán)形緩沖區(qū)的大小可以針對各層而不 同。也就是說,可以針對網絡中處理節(jié)點所屬的各個層來設置環(huán)形緩沖區(qū) 的大小(循環(huán)數)。第二實施例將說明這種配置。
圖19示出了在針對各層指定環(huán)形緩沖區(qū)大小時CNN處理單元63的 配置。圖18示出了圖19所示的CNN處理單元63實現(xiàn)的CNN網絡的構 成的示例。圖18示出了環(huán)形緩沖區(qū)僅針對各層具有不同的大小的狀態(tài)。即, 第一層1806的緩沖存儲器1803a到1803c包括相同大小的環(huán)形緩沖區(qū),第 二層1810的緩沖存儲器1807a和1807b包括相同大小的環(huán)形緩沖區(qū)。由于 該原因,在圖18所示的構成中,第一層的第三特征的環(huán)形緩沖區(qū)大小與圖 7所示的構成不同。下面,在第二實施例中描述與第一實施例的不同之處。在第二實施例
中,與在第一實施例中相同,CNN處理單元63具有針對各個邏輯處理節(jié) 點的環(huán)形緩沖區(qū)設置單元194-1到194-n。以下將環(huán)形緩沖區(qū)設置單元中的 任意一個描述為環(huán)形緩沖區(qū)設置單元194。環(huán)形緩沖區(qū)設置單元194包括 環(huán)形計數器105和偏移地址設置單元107。根據第二實施例的CNN處理單 元63包括針對各個邏輯層設置的環(huán)形大小設置單元1961a和1961b。包括 兩個環(huán)形大小設置單元1961a和1961b的配置能夠應對如圖18所示的層數 直到3的計算。
假定環(huán)形大小設置單元1961a和1961b連接到多個環(huán)形緩沖區(qū)設置單 元194。但是, 一個環(huán)形大小設置單元連接到各環(huán)形緩沖區(qū)設置單元。艮口, 通過環(huán)形大小設置單元1961a和1961b將環(huán)形緩沖區(qū)設置單元194-1到 194-n分組。圖20示出了環(huán)形大小設置單元和環(huán)形緩沖區(qū)設置單元之間的 關系。
參照圖18,環(huán)形大小設置單元1961a連接到用于控制第一層1806的 環(huán)形緩沖區(qū)的環(huán)形緩沖區(qū)設置單元。環(huán)形大小設置單元1961b連接到用于 控制第二層1810的環(huán)形緩沖區(qū)的環(huán)形緩沖區(qū)設置單元。在執(zhí)行計算時,根 據由網絡構成管理單元108保持的網絡構成信息表,選擇與處理節(jié)點對應 的環(huán)形緩沖區(qū)設置單元194。
下面使用圖8A和圖8B的流程圖,與第二實施例的處理序列關聯(lián)地描 述與第一實施例的不同之處。在第二實施例中,在步驟S806中針對各層
在環(huán)形大小設置單元1961a和1961b中設置環(huán)形緩沖區(qū)大小。從針對各層 分組的環(huán)形緩沖區(qū)設置單元194-1到194-n中選擇與要構成的網絡對應的 環(huán)形緩沖區(qū)設置單元,并且在所選擇的環(huán)形緩沖區(qū)設置單元中設置偏移地 址。在構成圖18所示的邏輯網絡時,在環(huán)形大小設置單元1961a和1961b 中分別設置與第一和第二層的環(huán)形緩沖區(qū)的高度對應的值。
由于后續(xù)的處理與第一實施例中的處理相同,因此不重復其描述。在 處理圖18所示的網絡時,網絡構成管理單元108在根據前述設置從環(huán)形緩 沖區(qū)設置單元194-1到194-n中選擇與預定邏輯處理節(jié)點對應的環(huán)形緩沖 區(qū)設置單元的同時,進行處理。以這種方式,在第二實施例中,與在第一實施例中相同,針對各個線執(zhí)行處理。
如上所述,根據第二實施例,能夠進一步減少構成環(huán)形大小設置單元 的寄存器數量。
<第三實施例>
在第一和第二實施例的描述中,用硬件來實現(xiàn)CNN處理單元63。但 是,本發(fā)明也能夠應用于CNN處理單元63的軟件實現(xiàn)。圖21是示出軟 件實現(xiàn)的情況下的圖像處理裝置(模式檢測裝置)的配置的示例的框圖。 在圖21所示的配置中,從圖6所示的配置中去除了CNN處理單元63,并 增加了可隨機存取的高速存儲器2103 (以下稱作RAM 2103)。下面主要 描述不同之處。
在接收到步驟S810中的來自預處理單元62的處理完成中斷時,CPU 68起動DMAC 66以將存儲在預處理單元62的存儲器中的校正后的圖像數 據傳輸到RAM2103。 CPU 68通過軟件針對存儲在RAM 2103中的圖像數 據執(zhí)行步驟S811到S820中的處理。在這種情況下,將RAM 2103用作 CNN計算處理的操作所需的工作存儲器。即,CPU 68在RAM 2103中構 成圖11所示的存儲器映射,并使用與處理節(jié)點對應的區(qū)域作為環(huán)形緩沖 區(qū)。
將包括在第一實施例的CNN處理單元63中的環(huán)形緩沖區(qū)設置單元 104等定義為軟件上的變量,并將其分配到例如RAM 70上。
在第三實施例的情況下,與在硬件實現(xiàn)中相同,能夠減少處理所需的 緩沖存儲器的數量。在圖21所示的配置中,能夠使用比一般的分級網絡計 算小的存儲器大小來實現(xiàn)RAM 2103。此外,這適用于使用RAM70作為 工作存儲器而不準備任何RAM2103的情況。
<其它實施例>
在上述實施例中,說明了下列方法對存儲器102的連續(xù)的地址空間 分配與多個處理節(jié)點對應的多個部分區(qū)域,并使用環(huán)形計數器105在針對 各個線使這些區(qū)域循環(huán)的同時使用存儲器102的部分區(qū)域。但是,本發(fā)明 不限于這種特定的存儲器使用方法。例如,可以使用在參照與環(huán)形計數器 對應的存儲地址表針對各預定處理單位分配不連續(xù)區(qū)域的同時執(zhí)行處理的方法?!熠啵诒景l(fā)明中指定的環(huán)形緩沖區(qū)不限于狹義的環(huán)形緩沖區(qū)或循環(huán) 緩沖區(qū)。
在上述實施例中,說明了根據序列信息表(圖10)的內容以時分的方 式針對各個線處理邏輯處理節(jié)點的情況。但是,可以使用其它方法。例如,
可以使用依照讀寫緩沖器的使用狀態(tài)自適應地(adaptivdy)調度要執(zhí)行的 處理節(jié)點的方法。
在上述實施例中,例示了以與輸入層相同的分辨率保持特征提取結果 的情況。但是,本發(fā)明能夠類似地應用于相對于輸入面對特征面(計算結 果)進行子采樣(sub-sample)的配置。
在上述實施例中,描述了針對作為最有效的處理單位的各個線執(zhí)行序 列控制的情況。但是,本發(fā)明不限于這種特定的處理單位。例如,本發(fā)明 能夠應用于針對不大于一個線的各個單位或針對各個塊執(zhí)行序列控制的情 況。
上述實施例說明了對巻積神經網絡計算的應用。但是,本發(fā)明不限于 這種特定的應用。本發(fā)明能夠應用于需要預定參照區(qū)域的各種類型的分級 計算處理。此外,本發(fā)明不限于二維計算。
在上述實施例中,說明了作為寄存器設置各環(huán)形緩沖區(qū)設置單元104 或194的情況。但是,其它參數存儲器和存儲器102可以共享環(huán)形緩沖區(qū) 設置單元。例如,可以在環(huán)形緩沖區(qū)設置單元104或194中保持的數據的 存儲目的地映射存儲器102上的預定地址。在這種情況下,能夠更有效地 使用電路資源。即,能夠實現(xiàn)更靈活的網絡構成。
在上述實施例中,說明了在參照數據高速緩存1606中高速緩存所有二 維參照數據,接著起動計算單元101的情況。但是,本發(fā)明不限于此。在 巻積計算等的情況下,可以控制計算單元101針對參照窗口中的各行來進 行驅動。在這種情況下,在響應于窗口計數器1607的減小的連續(xù)的列數方 向(水平方向)上的參照數據的讀出處理完成時,在下一個線的參照數據 讀出處理開始之前,驅動計算單元IOI。計算單元101執(zhí)行針對讀出的數 據的巻積計算。在計算完成時,開始下一個線的參照數據讀出處理。重復 上述處理。在這種情況下,由于參照數據高速緩存大小等于參照數據寬度的大小就足夠用,因此能夠使用更小的高速緩存大小來實現(xiàn)分級計算。
在第二實施例中,說明了針對各層設置環(huán)形大小設置單元1961a和 1961b的情況??商鎿Q地,可以使用針對各層設置環(huán)形緩沖區(qū)設置單元104 的結構。在這種情況下,控制各環(huán)形計數器,以針對各分級處理單位進行 更新。雖然限制了邏輯處理節(jié)點的操作序列(需要使用針對層單位的序列), 但是能夠減小電路規(guī)模。
在上述實施例中,說明了環(huán)形緩沖區(qū)設置單元能夠任意設置環(huán)形緩沖 區(qū)大小的情況(在環(huán)形緩沖區(qū)包括寄存器或RAM時)。但是,可以在所有 或部分環(huán)形大小設置單元中將環(huán)形緩沖區(qū)大小設置為固定值。
詳細說明了實施例。本發(fā)明可以采用例如系統(tǒng)、裝置、方法、程序和 存儲介質等形式的實施方式。本發(fā)明可以應用于由多個設備構成的系統(tǒng)、 或由單個設備構成的裝置。
注意,本發(fā)明包括通過直接或遠程地向系統(tǒng)或裝置提供軟件程序,并 且由該系統(tǒng)或裝置的計算機讀出并執(zhí)行所提供的程序代碼來實現(xiàn)前述實施 例的功能的情況。在這種情況下提供的程序是與在實施例中例示的各個流 程圖對應的程序。
因此,安裝在計算機中的使用計算機來實現(xiàn)本發(fā)明的功能處理的程序 代碼本身實現(xiàn)本發(fā)明。也就是說,本發(fā)明包括用于實現(xiàn)本發(fā)明的功能處理 的計算機程序本身。
在這種情況下,不特別限制程序的形式,可以使用目標代碼、由解釋 器執(zhí)行的程序和提供給OS的腳本數據等,只要其具有程序的功能即可。
作為用于提供程序的計算機可讀存儲介質,可以使用以下介質。例如, 可以使用軟(floppy )盤、硬盤、光盤、磁光盤、MO、 CD-ROM、 CD-R、 CD-RW、磁帶、非易失性存儲卡、ROM和DVD (DVD-ROM、 DVD-R) 等。
作為其它程序提供方法,用戶使用客戶計算機上的瀏覽器與互聯(lián)網上 的主頁建立連接,將本發(fā)明的計算機程序從主頁下載到例如硬盤等的記錄 介質。在這種情況下,下載的程序可以是包括自動安裝功能的壓縮文件。 此外,可以將形成本發(fā)明的程序的程序代碼分割成多個文件,從不同的主頁下載該多個文件。換言之,本發(fā)明包括使多個用戶下載計算機實現(xiàn)本發(fā) 明的功能處理所需的程序文件的WWW服務器。
此外,可以將存儲本發(fā)明的加密程序的例如CD-ROM等的存儲介質 分發(fā)給用戶。在這種情況下,可以允許清楚預定條件的用戶經由互聯(lián)網從 主頁下載用于對加密程序進行解密的密鑰信息。用戶使用下載的密鑰信息 執(zhí)行加密的程序,以將程序安裝到計算機中。
在計算機執(zhí)行讀出的程序時,能夠實現(xiàn)前述實施例的功能。此外,可 以根據該程序的指令,與在計算機上運行的OS等協(xié)作來實現(xiàn)上述實施例 的功能。在這種情況下,OS等執(zhí)行部分或全部實際處理,從而實現(xiàn)前述 實施例的功能。
此外,在將從存儲介質讀出的程序寫入在插入或連接到計算機的功能 擴展板或功能擴展單元上裝配的存儲器時,可以實現(xiàn)前述實施例的部分或 全部功能。在這種情況下,在將程序寫入功能擴展板或單元后,在功能擴 展板或功能擴展單元上裝配的CPU等根據該程序的指令執(zhí)行部分或全部 實際處理。
根據本發(fā)明,經由中間計算結果分級連接計算單元的多層網絡能夠使 用小容量的存儲器以高速進行處理。
雖然參照示例性實施例對本發(fā)明進行了描述,但是應當理解,本發(fā)明 不限于所公開的示例性實施例。所附權利要求的范圍符合最寬的解釋,以
覆蓋所有這種變型、等同結構和功能。
本申請要求2007年6月15日提交的日本專利申請2007-159491號的
優(yōu)先權,其全部內容通過引用包含于此。
權利要求
1.一種計算處理裝置,其分級連接對輸入數據施加計算處理的多個邏輯處理節(jié)點,所述計算處理裝置包括指定單元,其用于根據規(guī)定要由所述多個處理節(jié)點執(zhí)行的預定處理單位的計算的執(zhí)行順序的序列信息,從所述多個處理節(jié)點中依次指定要執(zhí)行計算處理的處理節(jié)點;執(zhí)行單元,其用于以所述處理單位執(zhí)行由所述指定單元指定的所述處理節(jié)點的計算處理,以獲得計算結果;以及存儲器控制單元,其用于分別對所述多個處理節(jié)點分配環(huán)形緩沖區(qū),并且在以與所述處理單位的所述計算結果對應的量為單位,使數據的寫入目的地循環(huán)的同時,在對應的環(huán)形緩沖區(qū)中寫入所述執(zhí)行單元獲得的所述處理節(jié)點的所述計算結果。
2. 根據權利要求1所述的計算處理裝置,其中,所述存儲器控制單元 根據所述多個處理節(jié)點的邏輯連接狀態(tài)來確定對所述處理節(jié)點的所述環(huán)形 緩沖區(qū)的分配。
3. 根據權利要求2所述的計算處理裝置,其中,所述存儲器控制單元 根據在與處理節(jié)點的后級連接的處理節(jié)點執(zhí)行所述處理單位的計算時要參 照的數據的大小,來確定對所述處理節(jié)點分配的各環(huán)形緩沖區(qū)的循環(huán)數。
4. 根據權利要求1至3中的任意一項所述的計算處理裝置,其中,所 述輸入數據是二維圖像數據,所述執(zhí)行單元通過以所述圖像數據的水平方向上的一個線作為單位執(zhí) 行計算處理,來獲取針對所述水平方向上的一個線的計算結果,并且所述存儲器控制單元以針對所述水平方向上的一個線的存儲區(qū)域作為 單位,使所述數據的寫入目的地循環(huán)。
5. 根據權利要求2所述的計算處理裝置,其中,所述指定單元依照要 執(zhí)行的計算的改變來改變所述序列信息,并且所述存儲器控制單元根據改變后的計算中的處理節(jié)點的連接結構來改 變對所述處理節(jié)點的環(huán)形緩沖區(qū)的分配。
6. 根據權利要求1至5中的任意一項所述的計算處理裝置,該計算處理裝置還包括保持單元,其用于與所述多個處理節(jié)點關聯(lián)地保持指示所述計算結果 在所述環(huán)形緩沖區(qū)中的寫入目的地的循環(huán)位置。
7. 根據權利要求1至6中的任意一項所述的計算處理裝置,其中,所 述存儲器控制單元針對各個處理節(jié)點設置所述環(huán)形緩沖區(qū)的循環(huán)數。
8. 根據權利要求1至6中的任意一項所述的計算處理裝置,其中,所述存儲器控制單元針對所述處理節(jié)點所屬的各個層設置所述環(huán)形緩沖區(qū)的 循環(huán)數。
9. 根據權利要求1至8中的任意一項所述的計算處理裝置,其中,所 述環(huán)形緩沖區(qū)是存儲器的具有連續(xù)的地址空間的部分區(qū)域,并且所述環(huán)形 緩沖區(qū)通過對所述多個處理節(jié)點分配所述連續(xù)的地址空間的不同的子空間 來共享。
10. 根據權利要求1至9中的任意一項所述的計算處理裝置,其中,所 述計算處理是巻積神經網絡的計算處理。
11. 一種計算處理裝置的控制方法,所述計算處理裝置分級連接對輸入 數據施加計算處理的多個邏輯處理節(jié)點,所述控制方法包括指定步驟,根據規(guī)定要由所述多個處理節(jié)點執(zhí)行的預定處理單位的計 算的執(zhí)行順序的序列信息,從所述多個處理節(jié)點中依次指定要執(zhí)行計算處 理的處理節(jié)點;執(zhí)行步驟,以所述處理單位執(zhí)行在所述指定步驟中指定的所述處理節(jié) 點的計算處理,以獲得計算結果;以及存儲器控制步驟,分別對所述多個處理節(jié)點分配環(huán)形緩沖區(qū),并且在 以與作為單位的所述處理單位的計算結果對應的量為單位,使數據的寫入目的地循環(huán)的同時,在對應的環(huán)形緩沖區(qū)中寫入在所述執(zhí)行步驟中獲得的 所述處理節(jié)點的所述計算結果。
12. 根據權利要求11所述的控制方法,其中,在所述存儲器控制步驟 中,根據所述多個處理節(jié)點的邏輯連接狀態(tài)來確定對所述處理節(jié)點的所述 環(huán)形緩沖區(qū)的分配。
13. 根據權利要求12所述的控制方法,其中,在所述存儲器控制步驟中,根據在與處理節(jié)點的后級連接的處理節(jié)點執(zhí)行所述處理單位的計算時 要參照的數據的大小,來確定對所述處理節(jié)點分配的各環(huán)形緩沖區(qū)的循環(huán) 數。
14. 根據權利要求11至13中的任意一項所述的控制方法,其中,所述 輸入數據是二維圖像數據,在所述執(zhí)行步驟中,通過以所述圖像數據的水平方向上的一個線作為 單位執(zhí)行計算處理,來獲取針對所述水平方向上的一個線的計算結果,并 且在所述存儲器控制步驟中,以針對所述水平方向上的一個線的存儲區(qū) 域作為單位,來使所述數據的寫入目的地循環(huán)。
15. 根據權利要求12所述的控制方法,其中,在所述指定步驟中,依 照要執(zhí)行的計算的改變來改變所述序列信息,并且在所述存儲器控制步驟中,根據改變后的計算中的處理節(jié)點的連接結 構來改變對所述處理節(jié)點的環(huán)形緩沖區(qū)的分配。
16. 根據權利要求11至15中的任意一項所述的控制方法,所述控制方 法還包括保持步驟,與所述多個處理節(jié)點關聯(lián)地保持指示所述計算結果在所述 環(huán)形緩沖區(qū)中的寫入目的地的循環(huán)位置。
17. 根據權利要求11至16中的任意一項所述的控制方法,其中,在所 述存儲器控制步驟中,針對各個處理節(jié)點設置所述環(huán)形緩沖區(qū)的循環(huán)數。
18. 根據權利要求11至16中的任意一項所述的控制方法,其中,在所 述存儲器控制步驟中,針對所述處理節(jié)點所屬的各個層設置所述環(huán)形緩沖 區(qū)的循環(huán)數。
19. 根據權利要求11至18中的任意一項所述的控制方法,其中,所述 環(huán)形緩沖區(qū)是存儲器的具有連續(xù)的地址空間的部分區(qū)域,并且所述環(huán)形緩 沖區(qū)通過對所述多個處理節(jié)點分配所述連續(xù)的地址空間的不同的子空間來 共享。
20. 根據權利要求11至19中的任意一項所述的控制方法,其中,所述 計算處理是巻積神經網絡的計算處理。
21. —種計算機程序,其用于使計算機執(zhí)行根據權利要求11至20中的 任意一項所述的控制方法。
22. —種計算機可讀存儲介質,其存儲用于使計算機執(zhí)行根據權利要求11至20中的任意一項所述的控制方法的計算機程序。
全文摘要
本發(fā)明涉及一種計算處理裝置,其用于執(zhí)行通過分級連接對輸入數據施加計算處理的多個邏輯處理節(jié)點而定義的網絡計算,根據規(guī)定要由所述多個處理節(jié)點執(zhí)行的預定處理單位的計算的執(zhí)行順序的序列信息,依次指定要執(zhí)行計算處理的處理節(jié)點,以實現(xiàn)網絡計算,并以所述處理單位執(zhí)行所指定的處理節(jié)點的計算處理以獲得計算結果。所述計算裝置對多個處理節(jié)點分配存儲器的部分區(qū)域作為環(huán)形緩沖區(qū),并在以與所述處理單位的計算結果的量對應的存儲區(qū)域作為單位,使數據的寫入目的地循環(huán)的同時,在存儲器中寫入循環(huán)結果。
文檔編號G06N3/063GK101681449SQ20088001953
公開日2010年3月24日 申請日期2008年6月11日 優(yōu)先權日2007年6月15日
發(fā)明者伊藤嘉則, 加藤政美, 山本貴久 申請人:佳能株式會社