專利名稱:計算處理裝置及其控制方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種應(yīng)用于圖案識別裝置、圖案識別系統(tǒng)和分層濾波計算處 理裝置等的分層計算處理方法和裝置。
背景技術(shù):
作為針對圖案識別系統(tǒng)、預(yù)測系統(tǒng)和控制系統(tǒng)等的應(yīng)用,普遍利用使用 神經(jīng)網(wǎng)絡(luò)的信號處理裝置。所述神經(jīng)網(wǎng)絡(luò)經(jīng)常被實現(xiàn)為在微處理器上運行的 軟件,并且被提供為用于個人計算機和工作站等的應(yīng)用軟件。
圖14是示出了使用一般的層互連神經(jīng)網(wǎng)絡(luò)的圖像處理裝置的布置的示
例的示意圖。參見圖14,附圖標(biāo)記21表示檢測對象數(shù)據(jù),諸如光柵掃描圖 像數(shù)據(jù)。附圖標(biāo)記22表示計算單元,其從圖像中檢測預(yù)定目標(biāo),并且包含圖 14的示例中的三層的神經(jīng)網(wǎng)絡(luò)。附圖標(biāo)記23表示對應(yīng)于計算結(jié)果的輸出數(shù) 據(jù)面(plane)。所述計算單元22在掃描和參照預(yù)定圖像區(qū)域24的同時進(jìn)行處 理,由此檢測圖像中存在的檢測對象。輸出數(shù)據(jù)面23是具有與作為檢測對象 的圖像數(shù)據(jù)21相同大小的圖像面,并且存儲當(dāng)計算單元22在掃描圖像數(shù)據(jù) 21的所有區(qū)域的同時對它們進(jìn)行處理時獲得的檢測輸出。因為計算單元22 在檢測到對象的位置輸出大值,因此計算單元22可以通過掃描輸出數(shù)據(jù)面 23而識別所述對象在圖像面中的位置。在計算單元22中,附圖標(biāo)記25、 26 和27表示神經(jīng)網(wǎng)絡(luò)的層,并且各層中存在預(yù)定數(shù)量的神經(jīng)元28。第一層25 具有與參照圖像的像素數(shù)量相同數(shù)量的節(jié)點(即,神經(jīng)元28)。各神經(jīng)元經(jīng) 由預(yù)定的加權(quán)系數(shù)而前饋互連。圖15示出了一個神經(jīng)元28的布置。附圖標(biāo) 記in一l到in—n表示到這個處理節(jié)點的輸入值,所述輸入值在第一層中是檢測 對象圖像數(shù)據(jù)并且在第二層和后續(xù)層中是前一層的神經(jīng)元輸出值。乘法器 31a、 31b、 ...、 31n輸出通過將前一層的各神經(jīng)元的輸出值與通過學(xué)習(xí)獲得的 系數(shù)w 1到w n相乘而獲得的乘積。累加加法器32累加來自乘法器31a、31b、 ...、 31n的乘積。非線性轉(zhuǎn)換處理單元33使用邏輯函數(shù)或者雙曲正切 函數(shù)(tanh函數(shù))等非線性地轉(zhuǎn)換累加加法器32的累加和,并且將轉(zhuǎn)換結(jié)果 輸出為檢測結(jié)果"輸出"。在分層神經(jīng)網(wǎng)絡(luò)中,使用一般公知的諸如反向傳播 等的學(xué)習(xí)算法根據(jù)檢測對象預(yù)先確定各神經(jīng)元需要的加權(quán)系數(shù)w—1到w—n。
為了這種層互連神經(jīng)網(wǎng)絡(luò)在嵌入設(shè)備等中的低成本實現(xiàn),已經(jīng)提出了使 用模擬硬件或者數(shù)字硬件的實現(xiàn)方法。例如,日本專利No. 2679730 (特許文 獻(xiàn)1)公開了分層結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的架構(gòu),其以時分復(fù)用的方式使用單層模擬 神經(jīng)網(wǎng)絡(luò)硬件來實現(xiàn)多層結(jié)構(gòu)。而且,日本專利特開平No. 03-055658號公報 (特許文獻(xiàn)2)公開了使用數(shù)字硬件的實現(xiàn)方法。
另一方面,已知被稱為神經(jīng)網(wǎng)絡(luò)的巻積神經(jīng)網(wǎng)絡(luò)(以下簡稱為CNN)的 計算方法作為允許相對于識別對象的變動穩(wěn)建的圖案識別的方法。例如,曰 本專利特開平No. 10-021406號公報(特許文獻(xiàn)3)和日本專利特開No. 2002-358500號公報(特許文獻(xiàn)4)己經(jīng)提出了被應(yīng)用于圖像中的對象識別或 者檢測的示例。
圖16示出了作為簡單CNN的示例的邏輯網(wǎng)絡(luò)構(gòu)成。圖16示出了三層 CNN的示例,其中,第一層406的特征數(shù)是3,第二層410的特征數(shù)是2, 第三層411的特征數(shù)是1。附圖標(biāo)記401表示圖像數(shù)據(jù),其對應(yīng)于光柵掃描 的圖像數(shù)據(jù)。附圖標(biāo)記403a至403c表示第一層406的特征面。所述特征面 是圖像數(shù)據(jù)面,其表示當(dāng)使用預(yù)定特征提取濾波器(巻積計算的累加和以及 非線性處理)掃描前一層的數(shù)據(jù)時的計算結(jié)果。因為特征面是光柵掃描圖像 數(shù)據(jù)的檢測結(jié)果,因此也通過面來表達(dá)檢測結(jié)果。通過相應(yīng)的特征提取濾波 器來從圖像數(shù)據(jù)401產(chǎn)生特征面403a至403c。例如,通過對應(yīng)于巻積濾波器 核404a至404c的二維巻積濾波計算和所述計算結(jié)果的非線性轉(zhuǎn)換來產(chǎn)生特 征面403a至403c。注意,附圖標(biāo)記402表示巻積計算所需要的參照圖像區(qū)域。
例如,具有l(wèi)lxll的核尺寸(在水平方向上的長度和在垂直方向上的高 度)的巻積濾波計算通過由下式給出的積和計算來處理數(shù)據(jù)
(1)其中,
/"/^(3c,^:在坐標(biāo)(x,y)的參照像素值 OM^W《X,":在坐標(biāo)(x,y)的計算結(jié)果
we妙《co/廳",,?!谧鴺?biāo)(x+column, y+row)的加權(quán)系數(shù)
co/謂"S^: ll,raw促e- 11:巻積濾波器核尺寸(濾波器抽頭的數(shù)量)。 附圖標(biāo)記404a至404c表示具有不同系數(shù)的巻積濾波器核。而且,巻積 濾波器核具有依賴于特征面的不同尺寸。以下將巻積濾波器核稱為"巻積核"。 CNN計算通過在針對各像素進(jìn)行多個濾波器核的掃描的同時重復(fù)積和 計算、并且通過對最后的積和結(jié)果進(jìn)行非線性的轉(zhuǎn)換,來產(chǎn)生特征面。在計 算特征面403a時,由于與前一層的互連的數(shù)量是l,因此濾波器核的數(shù)量是 1 (404a)。另一方面,在計算特征面407a和407b的每個時,由于與前一層 (第一層406)的互連的數(shù)量是3,因此將對應(yīng)于巻積核409a至409c或者409d 至409f的三個巻積濾波器的計算結(jié)果累加。巻積核409a至409f具有不同的 濾波系數(shù)。巻積核409a至409c以及巻積核409d至409f具有不同的核尺寸, 如圖16中所示。例如,可以通過下述方式來產(chǎn)生特征面407a:累加來自巻積 核409a至409c的輸出,并且最后執(zhí)行累加結(jié)果的非線性轉(zhuǎn)換處理。
巻積核(巻積濾波器)的累加和非線性轉(zhuǎn)換處理的基本布置與圖15中所 示的神經(jīng)元的相同。即,巻積核的系數(shù)對應(yīng)于加權(quán)系數(shù)w—1到w—n。在互連 到諸如特征面407a、 407b和408的多個在前層的特征面時,累加加法器32 累加多個巻積核計算結(jié)果。即,互連的總數(shù)對應(yīng)于巻積核尺寸x前一層的特征 數(shù)。
圖17是用于說明在CNN計算中的圖形檢測處理的圖。附圖標(biāo)記51a至 51c表示巻積核,其例示了第一層的特征提取對象,并且被學(xué)習(xí)以分別提取水 平邊和斜邊。附圖標(biāo)記52a和52b表示根據(jù)多個第一層特征(一次特征)的 提取結(jié)果和它們的空間配置關(guān)系而確定的圖形。附圖標(biāo)記53表示最后提取的 圖形(在這個示例中為三次特征)。根據(jù)多個第二層特征(二次特征)的提取 結(jié)果和它們的空間分配關(guān)系來確定圖形53。假定通過使用諸如感知學(xué)習(xí)、反 向轉(zhuǎn)播學(xué)習(xí)等的流行方法學(xué)習(xí)來對各特征確定巻積核的各濾波系數(shù)。在目標(biāo)檢測和識別等中,通常使用具有如10x10或者更大的尺寸的濾波器核。 一般, 巻積核尺寸針對各特征不同。
以這種方式,在CNN計算中,通過在按各圖像面來保持針對各特征提取 的結(jié)果的同時分層互連各層,可以實現(xiàn)基于原始特征和它們的空間分配關(guān)系 的穩(wěn)健圖案檢測。
如使用圖14所描述的,在使用一般的分層神經(jīng)網(wǎng)絡(luò)的、用于檢測圖像中 的目標(biāo)的裝置中,作為計算處理所需要的存儲器尺寸,除了輸入和輸出圖像 緩沖器之外,用于保持神經(jīng)元輸出的緩沖存儲器是足夠的。即,如果提供了 具有與神經(jīng)元數(shù)量相同的預(yù)定位數(shù)的存儲器,則可以執(zhí)行期望的計算處理。
另一方面,在CNN計算的情況下,由于根據(jù)在前層的多個特征提取結(jié)果 的空間分配來進(jìn)行特征提取,因此在相鄰層之間需要預(yù)定尺寸的數(shù)據(jù)緩沖器。 例如,在圖16中所示的CNN計算配置的情況下,除了輸入和輸出圖像緩沖 器之外,還需要圖像尺寸x5個特征面緩沖存儲器。因為這個原因,處理所需 要的存儲器尺寸變得大于一般的分層神經(jīng)網(wǎng)絡(luò)。
在如上所述的特許文獻(xiàn)3和4中公開的方法也是用于通過圖像面保持特 征提取結(jié)果的方法,并且處理所需要的存儲器尺寸大于一般的分層神經(jīng)網(wǎng)絡(luò)。
特別地,在CNN計算的硬件實現(xiàn)時,需要在大規(guī)模集成電路(LSI)中 制備具有大的尺寸的RAM (隨機存取存儲器),導(dǎo)致電路規(guī)模和成本上的提 高。即使在CNN計算的軟件實現(xiàn)時,如果其被實現(xiàn)在嵌入裝置中,則由于系 統(tǒng)所需要的存儲器尺寸上的提高而導(dǎo)致成本類似地提高。
發(fā)明內(nèi)容
本發(fā)明己經(jīng)被提出來解決此類問題,并且一個典型實施例提供了使用小 存儲器尺寸、根據(jù)諸如CNN計算等的空間分配關(guān)系、來實現(xiàn)分層計算處理的 方法和電路。
根據(jù)本發(fā)明的一個方面,提供了一種計算處理裝置,所述計算處理裝置 基于通過分層地連接多個處理節(jié)點而構(gòu)成的網(wǎng)絡(luò)來執(zhí)行計算處理,所述計算 處理裝置包括
存儲器控制單元,用于對所述多個處理節(jié)點的各個分配存儲器的部分區(qū)域,將各個處理節(jié)點的計算結(jié)果存儲在分配給該處理節(jié)點的所述部分區(qū)域的 可存儲區(qū)域中,并且將存儲被連接到該處理節(jié)點的后一級的全部處理節(jié)點參
照完畢的所述計算結(jié)果的區(qū)域設(shè)置為可存儲區(qū)域;
指定單元,用于指定所述多個處理節(jié)點的、要執(zhí)行計算處理的處理節(jié)點;
確定單元,用于根據(jù)所述存儲器的、分配給由所述指定單元指定的處理 節(jié)點的以及分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū) 域中的、計算結(jié)果的存儲狀態(tài),確定是否要執(zhí)行所述指定的處理節(jié)點的計算; 以及
執(zhí)行單元,用于當(dāng)所述確定單元確定執(zhí)行所述計算時進(jìn)行控制,以執(zhí)行 與所述指定的處理節(jié)點對應(yīng)的計算處理。
根據(jù)本發(fā)明的另一個方面,提供了一種用于計算處理裝置的控制方法, 所述計算處理裝置基于通過分層地連接多個處理節(jié)點而構(gòu)成的網(wǎng)絡(luò)來執(zhí)行計 算處理,所述控制方法包括-
存儲器控制步驟,用于對所述多個處理節(jié)點的各個分配存儲器的部分區(qū) 域,將各個處理節(jié)點的計算結(jié)果存儲在分配給該處理節(jié)點的所述部分區(qū)域的 可存儲區(qū)域中,并且將存儲被連接到該處理節(jié)點的后一級的全部處理節(jié)點參 照完畢的所述計算結(jié)果的區(qū)域設(shè)置為可存儲區(qū)域;
指定步驟,用于指定所述多個處理節(jié)點的、要執(zhí)行計算處理的處理節(jié)點;
確定步驟,用于根據(jù)所述存儲器的、分配給在所述指定步驟中指定的處 理節(jié)點的以及分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分 區(qū)域中的、計算結(jié)果的存儲狀態(tài),確定是否要執(zhí)行所述指定的處理節(jié)點的計 算;以及
執(zhí)行步驟,用于當(dāng)在所述確定步驟中確定執(zhí)行所述計算時進(jìn)行控制,以 執(zhí)行與所述指定的處理節(jié)點對應(yīng)的計算處理。
通過以下參照附圖對示例性實施例的描述,本發(fā)明的其他特征將變得清楚。
圖1是用于說明使用根據(jù)實施例的分層計算處理裝置的圖像處理設(shè)備的
10布置的示例的框圖2是示出根據(jù)第一實施例的分層計算處理裝置的布置的示例的框圖; 圖3是用于說明處理節(jié)點的邏輯連接結(jié)構(gòu)的圖4A和圖4B是用于說明根據(jù)所述實施例的每個處理節(jié)點的單位計算的
圖5是示出了根據(jù)所述實施例的與存儲器分配相關(guān)的示例的圖; 圖6是示出從圖3所示的分層網(wǎng)絡(luò)中提取的、以第四處理節(jié)點為中心的 部分網(wǎng)絡(luò)的圖7是示出了從在圖5中所示的存儲器分配中提取的部分存儲器分配的
圖8A、圖8B和圖8C示出了網(wǎng)絡(luò)構(gòu)成信息表的數(shù)據(jù)結(jié)構(gòu)的示例; 圖9是用于說明計算對象像素數(shù)據(jù)的讀取處理的圖; 圖IO是用于說明計算單元的布置的示例的框圖; 圖IIA和圖11B是用于說明單位計算執(zhí)行確定單元的操作的流程圖; 圖12A和圖12B是用于說明單位計算執(zhí)行確定單元的操作的流程圖; 圖13是用于說明根據(jù)第二實施例的分層計算處理裝置的布置的示例的 框圖14是用于說明層互連神經(jīng)網(wǎng)絡(luò)的構(gòu)成的示例的圖; 圖15是示出神經(jīng)元的布置的示例的圖16是用于說明巻積神經(jīng)網(wǎng)絡(luò)(CNN)的網(wǎng)絡(luò)構(gòu)成的示例的圖;以及 圖17是用于說明CNN的特征提取的示例的圖。
具體實施例方式
現(xiàn)在根據(jù)附圖來詳細(xì)說明本發(fā)明的示例性實施例。 <第一實施例>
圖1是示出包括根據(jù)第一實施例的分層計算處理電路的圖案檢測裝置的 布置的示例的框圖。所述圖案檢測裝置具有檢測圖像數(shù)據(jù)中的特定目標(biāo)(圖 像圖案)的功能。參見圖l,附圖標(biāo)記61表示圖像輸入單元,其包括光學(xué)系 統(tǒng)和諸如CCD (電荷耦合器件)或者CMOS (互補金屬氧化物半導(dǎo)體)傳感器的光電轉(zhuǎn)換器件等。而且,圖像輸入單元61包括用于控制CCD或者CMOS 傳感器的驅(qū)動器電路、模數(shù)(AD)轉(zhuǎn)換器、用于控制各種圖像校正的信號處 理電路和幀緩沖器等。附圖標(biāo)記62表示預(yù)處理單元,其執(zhí)行用于有效地執(zhí)行 來自圖像的圖形等的檢測處理所需要的各種預(yù)處理。具體地,預(yù)處理單元62 通過硬件來處理諸如顏色轉(zhuǎn)換處理和對比度校正處理等的圖像數(shù)據(jù)轉(zhuǎn)換。 CNN處理單元63是包括分層計算處理裝置的特征檢測處理單元。下面參照 圖2來說明CNN處理單元63的細(xì)節(jié)。
附圖標(biāo)記66表示DMAC (直接存儲器存取控制器),其控制在圖像總線 64上的各處理單元之間的數(shù)據(jù)傳送和在圖像總線64上的設(shè)備與在CPU總線 67上的RAM 70之間的數(shù)據(jù)傳送。附圖標(biāo)記65表示橋(bridge),其提供圖 像總線64與CPU總線67之間的橋功能。附圖標(biāo)記68表示CPU,其控制該 裝置的整體操作。附圖標(biāo)記69表示ROM(只讀存儲器),其存儲指定CPU68 的操作的指令和各種計算所需要的參數(shù)數(shù)據(jù)。例如,ROM69存儲CNN處理 單元63的操作所需要的加權(quán)系數(shù)、網(wǎng)絡(luò)互連信息和序列信息等。附圖標(biāo)記 70表示RAM (隨機存取存儲器),其作為CPU 68的操作所需要的主存儲器, 并且包括諸如DRAM (動態(tài)RAM)等的、具有較大容量的存儲器。CPU 68 可以經(jīng)由橋65來訪問在圖像總線64上的各種處理單元。通過隔離圖像總線 64和CPU總線67,可以同時地(即并行地)執(zhí)行硬件組件61至63的操作 和CPU 68的操作。
圖2是示出在第一實施例的CNN處理單元63中的分層計算處理裝置的 布置的示例的框圖。
圖2中所示的分層計算處理裝置用于執(zhí)行例如圖3中所示的分層計算。 在圖3中,處理節(jié)點表示執(zhí)行用于從巻積計算對象圖像和巻積核獲得巻積計 算結(jié)果的處理的塊。注意,為了方便,在圖3中提供了第0處理節(jié)點。但是, 第0處理節(jié)點不具體執(zhí)行任何處理,并且輸入圖像被輸入到第一到第三處理 節(jié)點。例如,圖3中的第四處理節(jié)點通過向來自第一到第三處理節(jié)點的輸出 應(yīng)用具有不同系數(shù)的巻積核而執(zhí)行巻積計算。然后,第四處理節(jié)點將各巻積 計算結(jié)果相加,并且執(zhí)行非線性轉(zhuǎn)換,以獲得計算結(jié)果。而且,第四處理節(jié) 點的計算結(jié)果被輸入到第六和第七處理節(jié)點。在向圖3中所示的CNN應(yīng)用圖2中所示的分層計算處理裝置時,圖2
中所示的分層計算處理裝置是在處理節(jié)點之間使用的時間共享系統(tǒng),因此執(zhí)
行在各處理節(jié)點中指定的計算。例如,像這樣執(zhí)行CNN計算使用分層計算
處理裝置來進(jìn)行在第一節(jié)點中指定的計算,然后進(jìn)行在第二處理節(jié)點中指定
的計算。即,存在構(gòu)成CNN的多個處理節(jié)點以形成邏輯網(wǎng)絡(luò),但是,物理上 僅存在執(zhí)行在處理節(jié)點中指定的計算的一個分層計算處理設(shè)備。當(dāng)然,也可 以構(gòu)造為使用多個分層計算處理裝置。
參見圖2,附圖標(biāo)記114表示CPU總線訪問控制單元,其是CPU 68訪 問CNN處理單元63中的各種寄存器和存儲器104所需要的總線接口 。例如, 經(jīng)由該接口來寫入諸如網(wǎng)絡(luò)構(gòu)成管理單元102中的地址計算參數(shù)存儲表107 和計算單元106中的加權(quán)系數(shù)集1205 (下面參照圖10描述)等的各種設(shè)置 數(shù)據(jù)。
在圖2中,序列控制單元100根據(jù)預(yù)先設(shè)置的計算順序信息來向單位計 算執(zhí)行單元101輸出序列指令信息。在本實施例中,如上所述,分層計算處 理裝置以時間共享的方式來執(zhí)行在各處理節(jié)點中指定的計算。因此,序列控 制單元100控制由單位計算執(zhí)行單元101在各處理節(jié)點中指定的計算的順序。
序列控制單元100指示循環(huán)地執(zhí)行構(gòu)成分層計算網(wǎng)絡(luò)的所有處理節(jié)點。 例如,在通過本實施例的分層計算處理裝置執(zhí)行圖3中所示的CNN時,序列 控制單元100指示單位計算執(zhí)行單元101像下面這樣循環(huán)地執(zhí)行各處理節(jié)點 "在第一處理節(jié)點中指定的計算—在第二處理節(jié)點中指定的計算今...— 在第八處理節(jié)點中指定的計算》在第一處理節(jié)點中指定的計算"
在圖2中,單位計算執(zhí)行單元101根據(jù)來自序列控制單元100的指令來 執(zhí)行在所指示的處理節(jié)點中指定的計算。在單位計算執(zhí)行單元101中,預(yù)先 設(shè)置在執(zhí)行計算時的單位(以下稱為單位計算)。
在執(zhí)行圖3中所示的CNN時,在每個處理節(jié)點中指定的計算包括巻積計 算、它們的相加以及結(jié)果的非線性轉(zhuǎn)換,并且對整個輸入圖像(整個輸入數(shù) 據(jù))執(zhí)行一系列計算。注意,當(dāng)對來自諸如第四到第八處理節(jié)點的多個處理 節(jié)點的輸出執(zhí)行巻積計算時,執(zhí)行巻積計算結(jié)果的相加。因此,在進(jìn)行在各 處理節(jié)點中指定的計算后,計算結(jié)果限定二維圖像。相對地,在此的單位計算表示用于輸出在所述系列計算中在水平方向上 的一行(或者在垂直方向上的一列)的計算結(jié)果的計算,并且通過重復(fù)該單 位計算,執(zhí)行在各處理節(jié)點中指定的計算。
圖4A和圖4B是用于說明由處理節(jié)點執(zhí)行的單位計算的圖。為了簡化, 圖4A和圖4B示出了對作為計算對象圖像的計算輸出圖像(或者向網(wǎng)絡(luò)的輸 入圖像)進(jìn)行巻積計算(在圖3中所示的第一到第三處理節(jié)點的情況下)的 情況,并且省略非線性轉(zhuǎn)換。
參見圖4A,附圖標(biāo)記601表示計算對象圖像,其中, 一個最小格(box) 表示以光柵掃描順序表示的輸入圖像的像素或者在前一層的處理節(jié)點中的計 算結(jié)果像素(input (x,y), x:水平位置,y:垂直位置)。附圖標(biāo)記602表示 計算結(jié)果圖像,其中, 一個最小格表示以光柵掃描順序表示的計算結(jié)果像素 (output(x,y), x:水平位置,y:垂直位置)。
基準(zhǔn)圖像區(qū)域603 (在粗體框中的區(qū)域)是在對位置output (6, 7)的巻積 計算進(jìn)行處理時的基準(zhǔn)圖像的區(qū)域。注意,圖4A中的基準(zhǔn)圖像區(qū)域603表 示通過在水平方向上的"11"和在垂直方向上的"13"限定巻積核尺寸的情 況。
計算結(jié)果圖像602中的粗體框中的區(qū)域604表示當(dāng)對計算對象圖像601 進(jìn)行單位計算(用于在水平方向上的一行的計算)時獲得的結(jié)果區(qū)域。在結(jié) 果區(qū)域604中的交叉影線區(qū)域中的像素是依賴于巻積核尺寸而產(chǎn)生的周邊區(qū) 域(不進(jìn)行任何計算的區(qū)域)中的像素。在分層處理中如何處理這些周邊區(qū) 域(刪除或者嵌入默認(rèn)值等)不是本發(fā)明中的基本問題。在這種情況下,例 如,假定嵌入默認(rèn)值。
可以從圖4A看出,在執(zhí)行單位計算時,要求具有至少等于計算對象圖 像的水平尺寸和等于巻積核的尺寸的垂直尺寸的區(qū)域605作為計算對象圖像 的所需區(qū)域。即,該區(qū)域605的數(shù)據(jù)作為通過處理節(jié)點的單位計算的處理對 象數(shù)據(jù)。為了簡化,以下將該區(qū)域605稱為單位計算對象圖像區(qū)域。可以通 過在移位單位計算對象區(qū)域605的同時執(zhí)行由結(jié)果區(qū)域604表示的單位計算, 來對計算對象圖像601的整個區(qū)域進(jìn)行巻積計算。注意圖4B示出了當(dāng)將單位 計算對象圖像區(qū)域從圖4A中的狀態(tài)移位一個像素(針對一條水平行)時對作為單位計算對象的圖像區(qū)域610進(jìn)行單位計算的情況。也從結(jié)果區(qū)域604 向下移位一個像素而作為結(jié)果區(qū)域611。此時,是否執(zhí)行特定的單位計算, 依賴于是否已經(jīng)由前一層的處理節(jié)點計算了作為該單位計算的計算對象的圖 像區(qū)域的像素數(shù)據(jù)并且輸出該結(jié)果。
在完成通過序列控制單元IOO指定的單位計算時,單位計算執(zhí)行單元101 向序列控制單元IOO通知單位計算的完成(單位計算完成通知)。
根據(jù)以上描述,當(dāng)要使用本實施例的序列控制單元IOO和單位計算執(zhí)行 單元101、按單位對各單位計算執(zhí)行圖3中所示的CNN時,進(jìn)行下面的操作。
(1) 序列控制單元100指示單位計算執(zhí)行單元101執(zhí)行在第一處理節(jié)點 中指定的計算,作為序列指令信息。其后,序列控制單元100在每次從單位 計算執(zhí)行單元101接收到單位計算完成通知時循環(huán)地更新像"在第二處理節(jié) 點中指定的計算—在第八處理節(jié)點中指定的計算—在第一處理節(jié)點中指 定的計算"的指令。
(2) 當(dāng)單位計算執(zhí)行單元101從序列控制單元100接收到序列指令信息 時,單位計算執(zhí)行確定單元105確定是否可以執(zhí)行指示的單位計算。注意下 面說明這個單位計算執(zhí)行確定單元105的操作和確定,并且單元105使用指 示作為該單位計算的對象的圖像區(qū)域的像素數(shù)據(jù)是否可以獲得的信息作一個 標(biāo)準(zhǔn)。當(dāng)確定可以執(zhí)行單位計算時,單位計算執(zhí)行單元101執(zhí)行在由針對單 位計算的指令信息指示的處理節(jié)點中指定的計算(例如針對水平方向上的一 行)。在完成單位計算時,單元101向序列控制單元IOO通知單位計算的完成。 當(dāng)確定不能執(zhí)行單位計算時,單位計算執(zhí)行單元101跳過對應(yīng)的單位計算, 并且向序列控制單元100通知單位計算的完成。
參見圖2,存儲器104被劃分為分配給各處理節(jié)點的部分區(qū)域,并且每 個部分區(qū)域被用作環(huán)形緩沖區(qū)。圖5例示了在執(zhí)行圖3中所示的分層計算時 存儲器104被劃分為部分區(qū)域的狀態(tài)。例如,在執(zhí)行對應(yīng)于圖3中所示的第 四處理節(jié)點的計算時,單位計算執(zhí)行單元101從存儲器104的分配給第一處 理節(jié)點的環(huán)形緩沖區(qū)、分配給第二處理節(jié)點的環(huán)形緩沖區(qū)和分配給第三處理 節(jié)點的環(huán)形緩沖區(qū)讀出計算對象數(shù)據(jù)。單位計算執(zhí)行單元101使用所讀出的 數(shù)據(jù)來進(jìn)行計算,并且將計算結(jié)果存儲在分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中。注意下面詳細(xì)說明要在每個環(huán)形緩沖區(qū)中讀取數(shù)據(jù)的位置和寫入數(shù)據(jù)的 位置。注意,如圖5中所示,在存儲器的有效使用上優(yōu)選的是,向多個處理 節(jié)點分配存儲器104的具有連續(xù)地址空間的不同地址空間,并且這些處理節(jié) 點共用存儲器。
如上所述,在存儲器104中,被分配給各處理節(jié)點的部分區(qū)域被用作環(huán)
形緩沖區(qū)。此時每個環(huán)形緩沖區(qū)的(邏輯)寬度與輸入圖像的(邏輯)寬度 相同。環(huán)形緩沖區(qū)被循環(huán)地重寫,并且用于每行具有高度"l"的各行。因此, 每次進(jìn)行單位計算時均更新環(huán)形緩沖區(qū)的一行。
網(wǎng)絡(luò)構(gòu)成管理單元102管理用于指定要通過本實施例的分層計算處理裝 置計算的分層計算的網(wǎng)絡(luò)構(gòu)成的信息。網(wǎng)絡(luò)構(gòu)成表示在處理節(jié)點之間的連接 關(guān)系以及在每個處理節(jié)點中使用的計算處理所用的巻積核尺寸等。
地址計算參數(shù)存儲表107記錄由網(wǎng)絡(luò)構(gòu)成管理單元102管理的網(wǎng)絡(luò)構(gòu)成 信息和在執(zhí)行計算時發(fā)生的對存儲器104的讀取和寫入訪問所需要的地址管 理信息。地址計算參數(shù)存儲表107存儲用于各處理節(jié)點的各種信息。
為了簡化起見,圖6示出了從圖3中所示的分層網(wǎng)絡(luò)提取的、以第四處 理節(jié)點為中心的部分網(wǎng)絡(luò)。圖7示出了用于第四處理節(jié)點的地址計算參數(shù)存 儲表107與環(huán)形緩沖區(qū)的行存儲區(qū)域之間的關(guān)系。在圖7中,分配給第四處 理節(jié)點的環(huán)形緩沖區(qū)(在粗體框中)可以存儲9行的數(shù)據(jù)。即,分配給第四 處理節(jié)點的環(huán)形緩沖區(qū)可以存儲9個單位計算的計算結(jié)果。
圖7示出了 "在分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中的、第六處理節(jié)點 計算時需要的讀取計數(shù)器值"(以下稱為"第六處理節(jié)點計算讀取計數(shù)器值")。 當(dāng)使用分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中存儲的圖像數(shù)據(jù)作為在進(jìn)行對應(yīng) 于第六處理節(jié)點的計算時的計算對象像素數(shù)據(jù)時,第六處理節(jié)點計算讀取計 數(shù)器值指定數(shù)據(jù)讀出位置。例如,當(dāng)對應(yīng)于第六處理節(jié)點的計算需要5行的 計算對象像素數(shù)據(jù)時,由于當(dāng)前計數(shù)器值是"3",因此從環(huán)形緩沖區(qū)讀出行 存儲區(qū)域的3、 4、 5、 6和7行的5行數(shù)據(jù)。注意,下面在環(huán)形緩沖區(qū)管理單 元103的說明中描述用于合計計數(shù)器值的序列。
同樣,分配給第四處理節(jié)點的環(huán)形緩沖區(qū)包括"在分配給第四處理節(jié)點
的環(huán)形緩沖區(qū)中的、第七處理節(jié)點計算時需要的讀取計數(shù)器值"(以下稱為"第七處理節(jié)點計算讀取計數(shù)器值")。當(dāng)使用分配給第四處理節(jié)點的環(huán)形緩沖區(qū) 中存儲的圖像數(shù)據(jù)作為在進(jìn)行對應(yīng)于第七處理節(jié)點的計算時的計算對象像素 數(shù)據(jù)時,第七處理節(jié)點計算讀取計數(shù)器值指定數(shù)據(jù)讀出位置。例如,當(dāng)對應(yīng) 于第七處理節(jié)點的計算需要9行的計算對象像素數(shù)據(jù)時,由于當(dāng)前計數(shù)器值
是"8",因此從環(huán)形緩沖區(qū)讀出行存儲區(qū)域的8、 9、 1、 2、 3、 4、 5、 6和7 行的9行數(shù)據(jù)。
在圖7中,"在分配給第四處理節(jié)點的處理緩沖器中的寫入計數(shù)器值"指 定在存儲對應(yīng)于第四處理節(jié)點的計算的計算結(jié)果像素數(shù)據(jù)時的數(shù)據(jù)寫入位 置。例如,在執(zhí)行單位計算時,如果當(dāng)前計數(shù)器值是"7",則在行存儲區(qū)域 7中存儲單位計算結(jié)果。注意,下面在環(huán)形緩沖區(qū)管理單元103的說明中描 述用于合計計數(shù)器值的序列。
由網(wǎng)絡(luò)構(gòu)成管理單元102保持的地址計算參數(shù)存儲表107保持各處理節(jié) 點的以下信息項,如圖8A、圖8B和圖8C中所示。
對象處理節(jié)點將作為來自序列控制單元100的序列信息指定的處理 節(jié)點稱為指定處理節(jié)點。根據(jù)分層計算的網(wǎng)絡(luò)構(gòu)成來預(yù)先確定處理節(jié)點的數(shù)
,相鄰下層處理節(jié)點連接到特定處理節(jié)點的輸入側(cè)(前一級)的處理 節(jié)點。根據(jù)分層計算的網(wǎng)絡(luò)構(gòu)成來預(yù)先確定在處理節(jié)點與相鄰的處理節(jié)點之 間的對應(yīng)。
讀取計數(shù)器值該計數(shù)器值是以對存儲器104分配的環(huán)形緩沖區(qū)的開 始位置為基準(zhǔn)、以行存儲區(qū)域為單位的值(參見圖7;在括號中描述了計數(shù)
器值的示例)。該值隨著分層計算的進(jìn)行而循環(huán)地更新。
寫入計數(shù)器值該計數(shù)器值是以對存儲器104分配的環(huán)形緩沖區(qū)的開
始位置為基準(zhǔn)、以行存儲區(qū)域為單位的值(參見圖7,在括號中描述了計數(shù)
器值的示例)。該值隨著分層計算的進(jìn)行而循環(huán)地更新。
偏移地址指示在存儲器104中為處理節(jié)點分配的環(huán)形緩沖區(qū)的開始
位置的地址(參見圖5和圖7)。根據(jù)分層計算的網(wǎng)絡(luò)構(gòu)成來預(yù)先確定該值。
可存儲的行的數(shù)量在存儲器104中為其處理節(jié)點分配的環(huán)形緩沖區(qū)
中能夠存儲的行的數(shù)量。所述可存儲的行的數(shù)量是在執(zhí)行連接到其處理節(jié)點的輸出側(cè)(后級)的 處理節(jié)點(以下稱為相鄰上層處理節(jié)點)中的單位計算時所需要的圖像區(qū)域 的可存儲的行的數(shù)量。因此,所述可存儲的行的數(shù)量可以等于或者大于在計 算相鄰上層處理節(jié)點時使用的巻積核的垂直尺寸,并且根據(jù)分層計算的網(wǎng)絡(luò) 構(gòu)成來預(yù)先確定。但是,如果存在多個相鄰上層處理節(jié)點,并且在進(jìn)行這些 節(jié)點的計算時所需要的巻積核具有不同的尺寸,則可存儲的行的數(shù)量等于或 者大于具有最大垂直尺寸的巻積核的垂直尺寸。在圖6中所示的第四處理節(jié)
點的情況下,可存儲的行的數(shù)量可以是具有巻積核W—4_6和W—4—7的較大 垂直尺寸者的行的數(shù)量。圖7示出了可存儲的行的數(shù)量是"9"。因此,具有 圖6中W_4_6和W一4一7的較大尺寸者具有等于或者小于"9"的尺寸。在本 實施例中,為了簡化,假定可存儲的行的數(shù)量等于在計算相鄰上層處理節(jié)點 時使用的巻積核的垂直尺寸(多個巻積核的最大尺寸)。
計算執(zhí)行閾值行的數(shù)量在執(zhí)行其處理節(jié)點中的單位計算時所需要的 單位計算對象圖像區(qū)域的行的數(shù)量。所述行的數(shù)量可以等于或者大于在計算 其處理節(jié)點時使用的巻積核的垂直尺寸。在圖6中,所述行的數(shù)量可以等于 或者大于巻積核W_l_4、 W一2一4和W—3一4的垂直尺寸。當(dāng)W一1一4、 W—2_4 和W一3—4的垂直尺寸彼此不同時,所述行的數(shù)量可以等于或者大于這些垂直 尺寸的最大者。在本實施例中,為了簡化,假定計算執(zhí)行閾值行的數(shù)量等于 在計算其處理節(jié)點時使用的巻積核的垂直尺寸的最大者。
往回參見圖2,在從序列控制單元100接收到序列指令信息時,網(wǎng)絡(luò)構(gòu) 成管理單元102査看地址計算參數(shù)存儲表107,以便檢查以下兩項
(1) 單位計算對象圖像區(qū)域檢査針對與序列信息指定的指定處理節(jié)點 對應(yīng)的單位計算所需要的單位計算對象圖像區(qū)域的數(shù)據(jù)是否可以獲得;并且
(2) 單位計算結(jié)果寫入?yún)^(qū)域檢査在存儲器104中為指定處理節(jié)點分配 的環(huán)形緩沖區(qū)是否包括寫入有單位計算結(jié)果的區(qū)域,并且向單位計算執(zhí)行確 定單元105輸出所需要的數(shù)據(jù)。
為了收集單位計算對象圖像區(qū)域檢查所需要的數(shù)據(jù),網(wǎng)絡(luò)構(gòu)成管理單元
102針對圖8A、圖8B和圖8C中所示的地址計算參數(shù)存儲表107進(jìn)行以下操 作。1. 網(wǎng)絡(luò)構(gòu)成管理單元102指定所指定處理節(jié)點(由序列控制單元100指
定以執(zhí)行計算的處理節(jié)點)的相鄰下層處理節(jié)點(可能有多個相鄰下層處理 節(jié)點)。
2. 單元102從所指定處理節(jié)點和相鄰下層處理節(jié)點選擇讀取計數(shù)器值 (如果存在多個相鄰下層處理節(jié)點,則也可獲得多個讀取計數(shù)器值)。
3. 當(dāng)將相鄰下層處理節(jié)點選擇作為對象處理節(jié)點時,單元102選擇寫入 計數(shù)器值。
4. 當(dāng)將相鄰下層處理節(jié)點選擇作為對象處理節(jié)點時,單元102選擇可存 儲的行的數(shù)量。
5. 單元102從所指定處理節(jié)點選擇計算執(zhí)行閾值行的數(shù)量。
6. 單元102向單位計算執(zhí)行確定單元105輸出在項2、 3、 4和5中選擇 的值。
例如,當(dāng)序列控制單元100將第四處理節(jié)點指定為指定處理節(jié)點時,網(wǎng) 絡(luò)構(gòu)成管理單元102執(zhí)行以下操作(參見圖8A、圖8B和圖8C)。注意以下 將其中第四處理接收被指定作為指定處理節(jié)點的情況稱為"具體示例l"。因 此,當(dāng)在具體示例1中檢査作為單元計算對象的圖像區(qū)域時進(jìn)行網(wǎng)絡(luò)構(gòu)成管 理單元102的以下操作。
1. 網(wǎng)絡(luò)構(gòu)成管理單元102選擇第一、第二和第三處理節(jié)點來作為第四處 理節(jié)點的相鄰下層處理節(jié)點。
2. 單元102選擇
"在分配給第一處理節(jié)點的環(huán)形緩沖區(qū)中的第四處理節(jié)點計算讀取計數(shù) 器值(MRA1_4)"作為當(dāng)?shù)谒奶幚砉?jié)點是指定處理節(jié)點并且第一處理節(jié)點是 相鄰下層處理節(jié)點時的讀取計數(shù)器值;
"在分配給第二處理節(jié)點的環(huán)形緩沖區(qū)中的第四處理節(jié)點計算讀取計數(shù) 器值(MRA2一4)"作為當(dāng)?shù)谒奶幚砉?jié)點是指定處理節(jié)點并且第二處理節(jié)點是 相鄰下層處理節(jié)點時的讀取計數(shù)器值;并且
"在分配給第三處理節(jié)點的環(huán)形緩沖區(qū)中的第四處理節(jié)點計算讀取計數(shù) 器值(MRA3一4)"作為當(dāng)?shù)谒奶幚砉?jié)點是指定處理節(jié)點并且第三處理節(jié)點是 相鄰下層處理節(jié)點時的讀取計數(shù)器值。
193. 單元102選擇當(dāng)各相鄰下層處理節(jié)點是對象處理節(jié)點時的寫入計數(shù)器
值,即
"在分配給第一處理節(jié)點的環(huán)形緩沖區(qū)中的寫入計數(shù)器值(MWA1)"作 為第一處理節(jié)點的寫入計數(shù)器值;
"在分配給第二處理節(jié)點的環(huán)形緩沖區(qū)中的寫入計數(shù)器值(MWA2)"作 為第二處理節(jié)點的寫入計數(shù)器值;以及
"在分配給第三處理節(jié)點的環(huán)形緩沖區(qū)中的寫入計數(shù)器值(MWA3)"作 為第三處理節(jié)點的寫入計數(shù)器值。
4. 單元102選擇當(dāng)各所述相鄰下層處理節(jié)點是對象處理節(jié)點時的可存儲 的行的數(shù)量,即
"BH1"作為第一處理節(jié)點的可存儲的行的數(shù)量; "BH2"作為第二處理節(jié)點的可存儲的行的數(shù)量;以及 "BH3"作為第三處理節(jié)點的可存儲的行的數(shù)量。
5. 單元102選擇"WH4"作為第四節(jié)點的計算執(zhí)行閾值行的數(shù)量。
6. 單元102向單位計算執(zhí)行確定單元105輸出在項2、 3、 4和5中選擇 的值。單位計算執(zhí)行確定單元105使用這些值來執(zhí)行稍后參照圖IIA和圖11B 描述的單位計算執(zhí)行確定處理,并且確定執(zhí)行指定處理節(jié)點中的計算所需要 的數(shù)據(jù)是否可以獲得。
接著,為了收集單位計算結(jié)果寫入?yún)^(qū)域檢查所需要的數(shù)據(jù),網(wǎng)絡(luò)構(gòu)成管 理單元102針對地址計算參數(shù)存儲表107進(jìn)行以下操作。
1. 網(wǎng)絡(luò)構(gòu)成管理單元102指定所指定處理節(jié)點的相鄰上層處理節(jié)點(可 能有多個相鄰上層處理節(jié)點)。指定所指定處理節(jié)點的相鄰上層處理節(jié)點等同 于指定以所指定處理節(jié)點作為相鄰下層處理節(jié)點的處理節(jié)點。
2. 當(dāng)在項1中指定的相鄰上層處理節(jié)點是對象處理節(jié)點并且所指定處理 節(jié)點是相鄰下層處理節(jié)點時,單元102選擇讀取計數(shù)器值(如果存在多個相 鄰上層處理節(jié)點,則也可獲得多個讀取計數(shù)器值)。
3. 單元102選擇所指定處理節(jié)點的寫入計數(shù)器值。
4. 單元102從所指定處理節(jié)點選擇可存儲的行的數(shù)量。
5. 單元102向單位計算執(zhí)行確定單元105輸出在項2、 3和4中選擇的值。
例如,當(dāng)序列控制單元100將第四處理節(jié)點指定作為所指定處理節(jié)點時 (即在具體示例1中)檢查單位計算結(jié)果寫入?yún)^(qū)域時,網(wǎng)絡(luò)構(gòu)成管理單元102
進(jìn)行以下操作(參見圖8A、圖8B和圖8C)。
1. 單元102指定第六和第七處理節(jié)點作為第四處理節(jié)點的相鄰上層處理 節(jié)點(指定第四處理節(jié)點的相鄰上層處理節(jié)點等同于找到以第四處理節(jié)點作 為相鄰下層處理節(jié)點的處理節(jié)點)。
2. 當(dāng)各相鄰上層處理節(jié)點(第六和第七處理節(jié)點)是對象處理節(jié)點并且 所指定處理節(jié)點(第四處理節(jié)點)是相鄰下層處理節(jié)點時,單元102選擇讀 取計數(shù)器值。即,單元102選擇
"在分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中的第六處理節(jié)點計算讀取計數(shù) 器值(MRA4—6)"作為當(dāng)?shù)诹幚砉?jié)點是對象處理節(jié)點并且第四處理節(jié)點是 相鄰下層處理節(jié)點時的讀取計數(shù)器值;并且
"在分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中的第七處理節(jié)點計算讀取計數(shù) 器值(MRA4—7)"作為當(dāng)?shù)谄咛幚砉?jié)點是對象處理節(jié)點并且第四處理節(jié)點是 相鄰下層處理節(jié)點時的讀取計數(shù)器值。
3. 單元102選擇"在分配給第四處理節(jié)點的環(huán)形緩沖區(qū)中的寫入計數(shù)器 值(MWA4)"作為第四處理節(jié)點的寫入計數(shù)器值。
4. 單元102選擇"BH4"作為第四處理節(jié)點的可存儲的行的數(shù)量。
5. 單元102向單位計算執(zhí)行確定單元105輸出在在項2、 3和4中選擇 的值。單位計算執(zhí)行確定單元105使用這些值來執(zhí)行稍后參照圖12A和圖12B 描述的單位計算結(jié)果寫入?yún)^(qū)域檢查處理,并且確定為指定處理節(jié)點分配的環(huán) 形緩沖區(qū)是否包括將計算執(zhí)行結(jié)果保持在指定處理節(jié)點中所需要的區(qū)域。
而且,在從單位計算執(zhí)行確定單元105接收到單位計算開始指令時(下 面將說明通知的細(xì)節(jié)),網(wǎng)絡(luò)構(gòu)成管理單元102向環(huán)形緩沖區(qū)管理單元103輸 出地址計算參數(shù),以給出計算地址的指令。要輸出到環(huán)形緩沖區(qū)管理單元103 的地址計算參數(shù)包括當(dāng)計算對象像素數(shù)據(jù)從存儲器104被讀出并且被提供到 計算單元106時要使用的參數(shù)和當(dāng)計算結(jié)果像素數(shù)據(jù)被從計算單元106寫出 到存儲器104時要使用的參數(shù)。在從存儲器104讀出計算對象像素數(shù)據(jù)時,網(wǎng)絡(luò)構(gòu)成管理單元102向環(huán) 形緩沖區(qū)管理單元103輸出被選擇來進(jìn)行單位計算對象圖像區(qū)域檢查的、讀 取計數(shù)器值、可存儲的行的數(shù)量和計算執(zhí)行閾值行的數(shù)量。而且,網(wǎng)絡(luò)構(gòu)成 管理單元102向環(huán)形緩沖區(qū)管理單元103輸出當(dāng)相鄰下層處理節(jié)點被定義為 對象處理節(jié)點時選擇的偏移地址。
在存儲器104中寫入計算結(jié)果像素數(shù)據(jù)時,網(wǎng)絡(luò)構(gòu)成管理單元102向環(huán) 形緩沖區(qū)管理單元103輸出被選擇來進(jìn)行單位計算結(jié)果寫入?yún)^(qū)域檢查的、寫 入計數(shù)器值和可存儲的行的數(shù)量。而且,網(wǎng)絡(luò)構(gòu)成管理單元102向環(huán)形緩沖 區(qū)管理單元103輸出從指定處理節(jié)點選擇的偏移地址。
參見圖2,環(huán)形緩沖區(qū)管理單元103根據(jù)從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送 的地址計算參數(shù)(地址計算指令)來計算每行的地址。環(huán)形緩沖區(qū)管理單元 103向存儲器存取控制單元110輸出所計算的每行的地址(環(huán)形計數(shù)器值) 和偏移地址值。偏移地址設(shè)置單元111暫時存儲從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā) 送的偏移地址,并且將所存儲的值輸出給存儲器存取控制單元110。環(huán)形尺 寸設(shè)置單元112暫時存儲從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送的可存儲的行的數(shù)量, 并且將所存儲的值輸出給環(huán)形計數(shù)器113。環(huán)形計數(shù)器113載入從網(wǎng)絡(luò)構(gòu)成管 理單元102發(fā)送的讀取計數(shù)器值或者寫入計數(shù)器值,并且使用所述值作為初 始值來執(zhí)行合計操作。
在從存儲器104讀出計算對象像素數(shù)據(jù)時,由環(huán)形計數(shù)器113合計讀取 計數(shù)器值的次數(shù)是當(dāng)前要計算的巻積計算的"核的垂直尺寸一l"次。在存儲 器104中寫入計算結(jié)果像素數(shù)據(jù)時,由環(huán)形計數(shù)器113合計寫入計數(shù)器值的 次數(shù)是一次。所合計的計數(shù)器值被發(fā)送到網(wǎng)絡(luò)構(gòu)成管理單元102。
當(dāng)計數(shù)器值已經(jīng)達(dá)到在環(huán)形尺寸設(shè)置單元112中設(shè)置的值時,其被復(fù)位 為0。 g卩,計數(shù)器值的最大值是"在環(huán)形尺寸設(shè)置單元112中設(shè)置的值一1"。 如上所述,在合計讀取計數(shù)器值時在環(huán)形尺寸設(shè)置單元112中設(shè)置的值與在 合計寫入計數(shù)器值時的不同。注意,當(dāng)從存儲器104讀出計算對象像素數(shù)據(jù) 時,合計讀取計數(shù)器值。當(dāng)在存儲器104中寫入計算結(jié)果像素數(shù)據(jù)時,合計 寫入計數(shù)器值。
在從存儲器104讀出計算對象像素數(shù)據(jù)時,環(huán)形計數(shù)器113向存儲器存取控制單元110輸出初始值和合計值(下面一起被稱為"與核的垂直尺寸相 同"的值)來作為環(huán)形計數(shù)器值。在存儲器104中寫入計算結(jié)果像素數(shù)據(jù)時, 環(huán)形計數(shù)器113向存儲器存取控制單元110輸出初始值作為環(huán)形計數(shù)器值。
而且,環(huán)形計數(shù)器113向網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送通過將從網(wǎng)絡(luò)構(gòu)成 管理單元102發(fā)送的讀取計數(shù)器值或者寫入計數(shù)器值與1相加而獲得的值來 作為地址計算參數(shù)的更新值。注意從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送的讀取計數(shù) 器值或者寫入計數(shù)器值是環(huán)形計數(shù)器113的初始值。當(dāng)與1相加的值達(dá)到可 存儲的行的數(shù)量時,環(huán)形計數(shù)器113將計數(shù)值更新為0。
例如,在具體示例1的情況下(當(dāng)?shù)谒奶幚砉?jié)點被指定為指定處理節(jié)點 時),當(dāng)從存儲器104讀出計算對象像素數(shù)據(jù)時,網(wǎng)絡(luò)構(gòu)成管理單元102向環(huán) 形緩沖區(qū)管理單元103發(fā)送如下作為地址計算參數(shù)
作為讀取計數(shù)器值的MRA1_4、 MRA2—4和MRA3—4;
作為可存儲的行的數(shù)量的BH1、 BH2和BH3;
作為計算執(zhí)行閾值行的數(shù)量的WH4;以及
作為偏移地址的OA1 、 OA2和OA3。
因此,環(huán)形緩沖區(qū)管理單元103在環(huán)形計數(shù)器113中設(shè)置MRA1—4,在 環(huán)形尺寸設(shè)置單元112中設(shè)置BH1,并且在偏移地址設(shè)置單元111中設(shè)置 OAl。環(huán)形計數(shù)器113在將環(huán)形計數(shù)器值合計(WH4—1)次的同時向存儲器 存取控制單元110輸出所述環(huán)形計數(shù)器值。作為結(jié)果,環(huán)形計數(shù)器113向存 儲器存取控制單元110輸出在數(shù)量上與包括初始值的WH4相同的值。而且, 環(huán)形緩沖區(qū)管理單元103向網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送通過將MRA1一4加上 1 (二 (MRA1—4+1) modBHl)而獲得的值來作為MRA1_4的更新數(shù)據(jù)(更 新的地址計算參數(shù))。
而且,環(huán)形緩沖區(qū)管理單元103在環(huán)形計數(shù)器113中設(shè)置MRA2一4,在 環(huán)形尺寸設(shè)置單元112中設(shè)置BH2,在偏移地址設(shè)置單元111中設(shè)置OA2, 并且重復(fù)與上述相同的處理。而且,環(huán)形緩沖區(qū)管理單元103在環(huán)形計數(shù)器 113中設(shè)置MRA3—4,在環(huán)形尺寸設(shè)置單元112中設(shè)置BH3,在偏移地址設(shè) 置單元lll中設(shè)置OA3,并且重復(fù)與上述相同的處理。
另一方面,例如,在具體示例1的情況下(當(dāng)將第四處理節(jié)點指定為指定處理節(jié)點時),當(dāng)在存儲器104中寫入計算結(jié)果像素數(shù)據(jù)時,網(wǎng)絡(luò)構(gòu)成管理
單元102向環(huán)形緩沖區(qū)管理單元103發(fā)送-作為寫入計數(shù)器值的MWA4; 作為可存儲的行的數(shù)量的BH4;以及 作為偏移地址的OA4。
因此,環(huán)形緩沖區(qū)管理單元103在環(huán)形計數(shù)器113中設(shè)置MWA4,在環(huán) 形尺寸設(shè)置單元112中設(shè)置BH4,并且在偏移地址設(shè)置單元111中設(shè)置OA4。 隨后,環(huán)形緩沖區(qū)管理單元103在將環(huán)形計數(shù)器113合計一次時向存儲器存 取控制單元110輸出環(huán)形計數(shù)器值(僅僅是初始值)。而且,環(huán)形緩沖區(qū)管理 單元103向網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送通過將MWA4加上1 ( = (MWA4+1) modBH4)而獲得的值來作為MWA4的更新數(shù)據(jù)。
存儲器存取控制單元110根據(jù)從環(huán)形緩沖區(qū)管理單元103發(fā)送的環(huán)形計 數(shù)器值和偏移地址值來產(chǎn)生物理地址。而且,存儲器存取控制單元110計算 讀出在計算單元106中的巻積計算所需要的計算對象像素數(shù)據(jù)所需要的地址 和存儲計算結(jié)果像素數(shù)據(jù)所需要的地址。
圖9是用于說明當(dāng)存儲器存取控制單元110讀出計算對象像素數(shù)據(jù)時的 操作的圖。在圖9中,區(qū)域701 (粗體框中的區(qū)域)表示環(huán)形緩沖區(qū),并且 區(qū)域702 (陰影線區(qū)域)表示巻積核的尺寸(在圖9中為5個像素x5個像素)。
存儲器存取控制單元110根據(jù)環(huán)形計數(shù)器值和偏移地址值來計算環(huán)形緩 沖區(qū)的每一行存儲區(qū)域的開始地址。注意預(yù)先設(shè)置計算對象圖像的水平寬度。 而且,存儲器存取控制單元110使用各行存儲區(qū)域的開始地址來計算從其行 存儲區(qū)域讀出巻積計算所需要的像素所需要的地址。單元110計算在圖9中 的陰影線像素的地址,即在區(qū)域702中的地址。
例如,假定從環(huán)形緩沖區(qū)管理單元103發(fā)送環(huán)形計數(shù)器值"2"、 "3"、 "4"、 "0"、 "1"。存儲器存取控制單元110針對環(huán)形計數(shù)器值"2"計算行存儲區(qū) 域3的開始地址。而且,單元110計算從行存儲區(qū)域3讀出巻積核的水平尺 寸(5)的像素所需要的地址。其后,單元110針對環(huán)形計數(shù)器值"3"以及 后續(xù)的值重復(fù)所述相同的處理。
這同樣適用于存儲器存取控制單元110計算用于存儲計算結(jié)果的地址的情況。存儲器存取控制單元110產(chǎn)生讀取/寫入控制信號等,并且向存儲器104 輸出所計算的地址和所產(chǎn)生的控制信號。而且,單元110在讀取時向計算單
元106傳送從存儲器104輸出的數(shù)據(jù),并且在寫入時向存儲器104傳送從計 算單元106輸出的計算結(jié)果。
計算單元106針對預(yù)定的數(shù)據(jù)組執(zhí)行巻積計算和非線性處理。
圖10是示出計算單元106的示例的框圖。乘法器1201將從由系數(shù)選擇 器1204根據(jù)網(wǎng)絡(luò)構(gòu)成信息選擇的加權(quán)系數(shù)集1205輸出的系數(shù)和與該系數(shù)同 步地輸入的計算對象像素數(shù)據(jù)相乘,并且輸出乘積。累加加法器1202累加在 預(yù)定時間段中來自乘法器1201的輸出。非線性轉(zhuǎn)換處理器1203使用邏輯函 數(shù)或者雙曲正切函數(shù)非線性地轉(zhuǎn)換所述累加和結(jié)果。注意,通過列舉預(yù)定函 數(shù)值的函數(shù)表來實現(xiàn)所述非線性轉(zhuǎn)換。
往回參見圖2,單位計算執(zhí)行確定單元105根據(jù)從網(wǎng)絡(luò)構(gòu)成管理單元102 發(fā)送的信息來確定是否可以進(jìn)行與序列控制單元100指示的處理節(jié)點對應(yīng)的 單位計算。閾值存儲單元108存儲當(dāng)單位計算執(zhí)行確定單元105確定單位計 算可取時使用的閾值。在進(jìn)行單位計算對象圖像區(qū)域檢査時,閾值存儲單元 108存儲從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送的計算執(zhí)行閾值行的數(shù)量。在進(jìn)行單 位計算結(jié)果寫入?yún)^(qū)域檢查時,閾值存儲單元108存儲從網(wǎng)絡(luò)構(gòu)成管理單元102 發(fā)送的可存儲的行的數(shù)量。存儲量計算單元109計算在存儲器104的預(yù)定區(qū) 域中存儲的像素數(shù)據(jù)的存儲量。所述存儲量表示在預(yù)定區(qū)域中存儲的像素數(shù) 據(jù)的可以被用作計算對象的像素數(shù)據(jù)的量。在本實施例中,為了簡化,存儲 量的單位是行的數(shù)量。
下面參照圖11A、圖11B、圖12A和圖12B說明由單位計算執(zhí)行確定單 元105進(jìn)行的單位計算執(zhí)行確定處理。
例如,在圖7中,如果沒有行存儲區(qū)域存儲任何像素數(shù)據(jù),則存儲量變 為0。當(dāng)在行存儲區(qū)域1中存儲單位計算的計算結(jié)果時,存儲量變?yōu)橐恍小?當(dāng)重復(fù)單位計算并且計算結(jié)果被存儲直到行存儲區(qū)域5時,存儲量變?yōu)?行。 此時,當(dāng)相鄰上層處理節(jié)點使用行存儲區(qū)域1至5中的數(shù)據(jù)來執(zhí)行單位計算 時,由于從不使用在行存儲區(qū)域1中的數(shù)據(jù),因此存儲量變?yōu)?行。如果存 在這樣的節(jié)點,則對每個相鄰上層處理節(jié)點計算存儲量。
25艮口,特定處理節(jié)點的存儲量與該處理節(jié)點的相鄰上層處理節(jié)點的數(shù)量相同,并且按照以下方式增大或者減少。
如果該處理節(jié)點執(zhí)行單位計算,則對應(yīng)于所有相鄰上層處理節(jié)點的存儲量均增大一行。
如果該處理節(jié)點的特定相鄰上層處理節(jié)點執(zhí)行單位計算,則對應(yīng)于該特定相鄰上層處理節(jié)點的存儲量減少一行。
存儲量計算單元109在進(jìn)行單位計算對象圖像區(qū)域檢查時(步驟S101至
Sill)和在進(jìn)行單位計算結(jié)果寫入?yún)^(qū)域檢査時(步驟S201至S211)計算存儲量。在任何一種情況下,根據(jù)讀取計數(shù)器值、寫入計數(shù)器值和從網(wǎng)絡(luò)構(gòu)成管理單元102發(fā)送的可存儲的行的數(shù)量來計算存儲量。但是,如上所述,在單位計算對象圖像區(qū)域檢查中使用的讀取計數(shù)器值是與針對相鄰下層處理節(jié)點的指定處理節(jié)點相關(guān)聯(lián)的值。而且,在單位計算對象圖像區(qū)域檢查中使用的寫入計數(shù)器值是當(dāng)指定處理節(jié)點被定義為對象處理節(jié)點時的值。另一方面,在單位計算結(jié)果寫入?yún)^(qū)域檢査中使用的讀取計數(shù)器值是當(dāng)將相鄰上層處理節(jié)
點定義為對象處理節(jié)點并且將所指定處理節(jié)點定義為相鄰下層處理節(jié)點時的值。而且,在單位計算結(jié)果寫入?yún)^(qū)域檢査中使用的寫入計數(shù)器值是指定處理節(jié)點的值。
下面詳細(xì)說明由存儲量計算單元109進(jìn)行的存儲量計算處理(步驟S102至S109,步驟S202至S209)。在開始存儲量計算時(步驟S102,步驟S202),存儲量計算單元109比較讀取計數(shù)器值與寫入計數(shù)器值(步驟S103,步驟S203)。如果寫入計數(shù)器值較大,則將通過從寫入計數(shù)器值減去讀取計數(shù)器值而獲得的值定義為存儲量(步驟S104和S105,步驟S204和S205)。另一方面,如果寫入計數(shù)器值較小,則通過將可存儲的行的數(shù)量加到寫入計數(shù)器值然后從相加的和中減去讀取計數(shù)器值而獲得的值定義為存儲量(步驟S104和S106,步驟S204和S206)。
如果寫入計數(shù)器值等于讀取計數(shù)器值,則存儲量為0或者環(huán)形緩沖區(qū)充滿數(shù)據(jù),但是不能從寫入計數(shù)器值和讀取計數(shù)器值來區(qū)分這些情況。因此,對對應(yīng)的讀取計數(shù)器值和寫入計數(shù)器值的何者最后計數(shù)進(jìn)行管理。使用該信息,當(dāng)寫入計數(shù)器值等于讀取計數(shù)器值并且寫入計數(shù)器值最后計數(shù)時,確定寫入計數(shù)器值達(dá)到讀取計數(shù)器值。另一方面,當(dāng)讀取計數(shù)器最后計數(shù)時,確定讀取計數(shù)器值達(dá)到寫入計數(shù)器值。然后,通過區(qū)分下述情況來計算存儲量- 寫入計數(shù)器值和讀取計數(shù)器值是否自從寫入計數(shù)器值達(dá)到讀取計數(shù)器
值起彼此相等(在這種情況下環(huán)形緩沖區(qū)充滿數(shù)據(jù))(步驟S103,S107和S106與步驟S203、 S207和S206),或者
寫入計數(shù)器值和讀取計數(shù)器值是否自從讀取計數(shù)器值達(dá)到寫入計數(shù)器值起彼此相等(在這種情況下環(huán)形緩沖區(qū)的存儲量是0)(步驟S103, S107和S108與步驟S203、 S207和S208)。
以這種方式,當(dāng)在存儲器的部分區(qū)域中寫入對應(yīng)的處理節(jié)點的計算處理的計算結(jié)果時,將存儲量加上預(yù)定量。另一方面,當(dāng)連接到對應(yīng)的處理節(jié)點的后級的處理節(jié)點的計算處理完成時,從存儲量中減去預(yù)定量。
在進(jìn)行單位計算對象圖像區(qū)域檢査時,如果存在多個相鄰下層處理節(jié)點,則與為這些節(jié)點分配的環(huán)形緩沖區(qū)相關(guān)聯(lián)地計算存儲量(步驟Slll)。
在進(jìn)行單位計算結(jié)果寫入?yún)^(qū)域檢査時,如果存在多個相鄰上層處理節(jié)點,則計算這些節(jié)點的存儲量(步驟S211)。
單位計算執(zhí)行確定單元105將在單位計算對象圖像區(qū)域檢査中計算的所有存儲量與在閾值存儲單元108中存儲的計算執(zhí)行閾值行的數(shù)量相比較(步驟S110)。而且,單位計算執(zhí)行確定單元105將在單位計算結(jié)果寫入?yún)^(qū)域檢查中計算的所有存儲量與在閾值存儲單元108中存儲的可存儲的行的數(shù)量相比較(步驟S210)。
如果在單位計算對象圖像區(qū)域檢查中計算的所有存儲量均大于或者等于計算執(zhí)行閾值行的數(shù)量(步驟S110),則處理進(jìn)行到步驟Slll。如果在步驟Slll中確定計算對應(yīng)于所有相鄰下層處理節(jié)點的存儲量,則處理進(jìn)行到步驟S201。如果在單位計算結(jié)果寫入?yún)^(qū)域檢査中計算的所有存儲量均小于可存儲的行的數(shù)量,則處理進(jìn)行到步驟S213。在這種情況下,由于在存儲器的部分區(qū)域中存在可以存儲計算結(jié)果的區(qū)域(可存儲區(qū)域),因此單位計算執(zhí)行確定單元105指示網(wǎng)絡(luò)構(gòu)成管理單元102開始在步驟S213中的單位計算。否則(在步驟S110中的"否"或者在步驟S210中的"否"),則處理進(jìn)行到步驟S112或者步驟S212,并且單位計算執(zhí)行確定單元105給出跳過單位計算的指令。如上所述,存儲已經(jīng)被連接到給定的處理節(jié)點的后級的所有處理節(jié)點參照的計算結(jié)果的區(qū)域依序被確定為可存儲區(qū)域,并且可以存儲新的計算結(jié)果。
如圖11A、圖11B、圖12A和圖12B中所示,根據(jù)計算結(jié)果的存儲狀態(tài)、即被分配的存儲器的部分區(qū)域中的存儲量來確定是否在部分區(qū)域中存儲計算結(jié)果。
例如,在具體示例1的情況下,當(dāng)單位計算執(zhí)行確定單元105進(jìn)行單位計算對象圖像區(qū)域檢查時,其從網(wǎng)絡(luò)構(gòu)成管理單元102接收 作為讀取計數(shù)器值的MRA1一4、 MRA2—4和MRA3一4; 作為寫入計數(shù)器值的MWA1、 MWA2和MWA3; 作為可存儲的行的數(shù)量BH1、 BH2和BH3;以及 作為計算執(zhí)行閾值行的數(shù)量的WH4。
因此,從組[MRA1—4, MWA1, BH1]計算存儲量,并且從組[MRA2—4,MWA2, BH2]和[MRA3一4, MWA3, BH3]分別計算存儲量。而且,將所有計算的存儲量與WH4相比較,因此檢查單位計算對象圖像區(qū)域的所需計算對象數(shù)據(jù)的存在與否。
另一方面,例如,在具體示例1的情況下,當(dāng)單位計算執(zhí)行確定單元105進(jìn)行單位計算結(jié)果寫入?yún)^(qū)域檢査時,其從網(wǎng)絡(luò)構(gòu)成管理單元102接收 作為讀取計數(shù)器值的MRA4一6和MRA4—7;'作為寫入計數(shù)器值的MWA4;以及 作為可存儲的行的數(shù)量的BH4。
因此,從組[MRA4—6, MWA4, BH4]計算存儲量,并且從組[MRA4一7,MWA4, BH4]類似地計算存儲量。而且,將所有計算的存儲量與BH4相比較,因此檢査可以存儲單位計算的計算結(jié)果的區(qū)域的存在與否。
如以上詳細(xì)描述的,根據(jù)第一實施例,要通過各處理節(jié)點進(jìn)行的計算被劃分為預(yù)定的單位計算,并且以各單位計算為單位來被執(zhí)行。由于這一原因,中間層的每個處理節(jié)點僅僅需要確保存儲進(jìn)行其上層處理節(jié)點的單位計算所需要的計算結(jié)果的存儲器。因此,根據(jù)第一實施例,當(dāng)使用特定層的處理節(jié)點進(jìn)行的計算的結(jié)果作為上層處理節(jié)點的計算的輸入時,能夠減小所需要的存儲器尺寸。即,能夠減小保持輸入層處理節(jié)點或者中間層處理節(jié)點的暫時計算結(jié)果(中間結(jié)果)所需要的存儲器尺寸。
由于單位計算執(zhí)行單元101循環(huán)地指定進(jìn)行單位計算的處理節(jié)點,因此一旦可以獲得要由特定處理節(jié)點進(jìn)行的單位計算所需要的下層處理節(jié)點的計算結(jié)果,則執(zhí)行單位計算。而且,上層處理節(jié)點立即執(zhí)行單位計算,并且在該單位計算中使用過并且不再需要的計算結(jié)果被丟棄(存儲該計算結(jié)果的區(qū)
域被定義為可重寫的區(qū)域,即可以存儲新的計算結(jié)果的區(qū)域)。第一實施例通過這種存儲器控制來實現(xiàn)存儲器的有效使用。
如上所述,根據(jù)第一實施例,要由各處理節(jié)點進(jìn)行的計算被劃分為預(yù)定單位計算,并且一旦可以獲得要由特定處理節(jié)點進(jìn)行的單位計算所需要的下層的計算結(jié)果,則執(zhí)行單位計算。結(jié)果,能夠通過根據(jù)網(wǎng)絡(luò)構(gòu)成的各邏輯處理節(jié)點的最小環(huán)形緩沖區(qū)來配置巻積神經(jīng)網(wǎng)絡(luò)的分層計算裝置的中間計算緩沖區(qū)。
<第二實施例>
在第一實施例中,中間層處理節(jié)點的計算結(jié)果被存儲在存儲器104的預(yù)定分配的環(huán)形緩沖區(qū)中,并且在分層計算期間總是被循環(huán)重寫。因此,在分層計算完成后,不能將中間層處理節(jié)點的計算結(jié)果用于其他處理。
在第二實施例中,在假定分層計算完成后特定中間層處理節(jié)點的計算結(jié)果用于另一處理的情況下,只將該處理節(jié)點的計算結(jié)果在被重寫前傳送到另一區(qū)域。
圖13是示出根據(jù)第二實施例的分層計算處理裝置的布置的示例的框圖。在圖13中,由在圖2中的相同附圖標(biāo)記表示的組件進(jìn)行與在第一實施例中相同的操作,其重復(fù)說明將被省略。在本實施例中,將主要說明進(jìn)行與第一實施例不同的操作的組件。
參見圖13,除了第一實施例的CPU總線訪問控制單元114的操作之外,CPU總線訪問控制單元1714還具有
向CPU68通知來自序列控制單元1700的中斷請求的功能;以及 向序列控制單元1700通知來自CPU68的循環(huán)重啟指令的功能。除了第一實施例的序列控制單元100的功能之外,序列控制單元1700還具有在接收到來自單位計算執(zhí)行單元1701的循環(huán)暫停指令時暫停下一個
29序列指令信息的輸出的功能。而且,在暫停狀態(tài)下接收到來自CPU總線訪問
控制單元1714的循環(huán)重啟指令時,序列控制單元1700重啟序列指令信息的輸出。
除了第一實施例的單位計算執(zhí)行單元101的功能之外,單位計算執(zhí)行單元1701還具有以下功能。即,單位計算執(zhí)行單元1701具有在接收到來自網(wǎng)絡(luò)構(gòu)成管理單元1702的、序列控制單元1700的序列指令信息的輸出的暫停請求時,向序列控制單元1700發(fā)出循環(huán)暫停指令的功能。
除了第一實施例的網(wǎng)絡(luò)構(gòu)成管理單元102的功能之外,網(wǎng)絡(luò)構(gòu)成管理單元1702還具有以下功能。g卩,網(wǎng)絡(luò)構(gòu)成管理單元1702具有響應(yīng)于來自重寫禁止處理節(jié)點確定單元1715的指令而從序列控制單元1700發(fā)出序列指令信息的輸出的暫停請求的功能。在通知來自環(huán)形緩沖區(qū)管理單元103的地址計算參數(shù)更新信息時,網(wǎng)絡(luò)構(gòu)成管理單元1702向重寫禁止處理節(jié)點確定單元1715通知該信息。
在重寫禁止處理節(jié)點確定單元1715中,預(yù)先登記計算結(jié)果被禁止重寫的處理節(jié)點。而且,在從環(huán)形緩沖區(qū)管理單元103接收到對應(yīng)于所登記的處理節(jié)點(以下稱為重寫禁止處理節(jié)點)的寫入計數(shù)器值的更新值的通知時,重寫禁止處理節(jié)點確定單元1715查看更新值是否是0。當(dāng)寫入計數(shù)器值的更新值是0時,這表示在該處理節(jié)點的下一個單位計算中將結(jié)果存儲在環(huán)形緩沖區(qū)的開始行存儲區(qū)域。因此,有可能重寫(在環(huán)形緩沖區(qū)的第一行存儲區(qū)域中存儲的)迄今存儲的計算結(jié)果。因此,在通知了寫入計數(shù)器值的更新值是0時,重寫禁止處理節(jié)點確定單元1715向序列控制單元1700發(fā)出暫停序列指令信息的輸出的請求(循環(huán)暫停指令)。
使用上述布置,在環(huán)形緩沖區(qū)中重寫對應(yīng)于重寫禁止處理節(jié)點的計算結(jié)果之前,暫停計算。在暫停狀態(tài)期間,迄今存儲的計算結(jié)果可以從存儲器104的分配給重寫禁止處理節(jié)點的環(huán)形緩沖區(qū)中讀出,并且可以被傳送到另一位置(另一存儲區(qū)域)。
例如,在接收到來自序列控制單元1700的中斷請求時,CPU68可以從
從存儲器104的分配給重寫禁止處理節(jié)點的環(huán)形緩沖區(qū)中讀出迄今存儲的計算結(jié)果,并且將該計算結(jié)果傳送給RAM70。在所需要的處理完成后,CPU 68向序列控制單元1700發(fā)出用以重啟分層計算的循環(huán)重啟指令。
利用上述處理,能夠?qū)⒅虚g層處理節(jié)點的計算結(jié)果用于另一處理。 <其他實施例>
在所述第一和第二實施例中,己經(jīng)描述了使用環(huán)形計數(shù)器來循環(huán)地使用 存儲器104的針對各行的預(yù)定連續(xù)區(qū)域的方法。但是,本發(fā)明不限于這種特 定的存儲器使用方法。例如,可以使用在參照對應(yīng)于環(huán)形計數(shù)器等的存儲器 地址表來按照預(yù)定處理單位分配不連續(xù)區(qū)域的同時執(zhí)行處理的方法。即,在 本發(fā)明中指定的環(huán)形緩沖區(qū)不限于狹義的環(huán)形緩沖區(qū)或者循環(huán)緩沖區(qū)。
在所述第一和第二實施例中,已經(jīng)例示了以與輸入層相同的分辨率來保 持特征提取結(jié)果的情況。但是,本發(fā)明可以被類似地應(yīng)用于其中對于輸入面 子采樣特征面(計算結(jié)果)的結(jié)構(gòu)。
在所述第一和第二實施例中,已經(jīng)對作為最有效的處理單位的各行的序 列控制進(jìn)行了說明。但是,本發(fā)明不限于這類特定控制。本發(fā)明可以被應(yīng)用 到不多于一行的各單位或者各塊的序列控制,并且在這種情況下的布置為本 領(lǐng)域的技術(shù)人員所公知。
而且,在所述第一和第二實施例中,用于水平方向上的一行的計算被定 義為單位計算。但是,本發(fā)明不限于此。例如,可以將垂直方向上的一列的 計算定義為單位計算。在水平或者垂直方向上,所述單位計算不限于一行(或 者一列)的計算。例如,可以將在水平方向上的兩行的計算定義為單位計算。
在如上所述的第一和第二實施例中,已經(jīng)說明了本發(fā)明被應(yīng)用到巻積網(wǎng) 絡(luò)的情況。但是,本發(fā)明不限于此。本發(fā)明可以被應(yīng)用到需要前一級的計算 結(jié)果中的預(yù)定參照區(qū)域的各種分層計算處理。
在所述第一實施例中,已經(jīng)描述了本發(fā)明被應(yīng)用到CNN計算的情況。 但是,本發(fā)明不限于此。本發(fā)明也可以被應(yīng)用到除了巻積計算之外的各種其 他二維計算的分層處理。
已經(jīng)詳細(xì)說明了所述實施例。本發(fā)明可以采用以例如系統(tǒng)、裝置、方法、 程序、存儲介質(zhì)等形式的實施例。具體上,本發(fā)明可以被應(yīng)用到多個設(shè)備構(gòu) 成的系統(tǒng)或者由單個裝置構(gòu)成的設(shè)備。
注意,上述實施例已經(jīng)說明了CNN計算單元的硬件實現(xiàn)。但是,本發(fā)明可以應(yīng)用到其軟件實現(xiàn)。因此,本發(fā)明包括其中當(dāng)直接地或者遠(yuǎn)程地向系 統(tǒng)或者裝置提供軟件程序時實現(xiàn)上述實施例的功能、并且該系統(tǒng)或者裝置的 計算機讀出和執(zhí)行所提供的程序代碼的情況。在這種情況下要提供的程序是 對應(yīng)于實施例中的各例示流程圖的計算機程序。
因此,安裝在計算機中以使用計算機來實現(xiàn)本發(fā)明的功能處理的程序代 碼本身實現(xiàn)了本發(fā)明。換句話說,本發(fā)明包括用于實現(xiàn)本發(fā)明的功能處理的 計算機程序本身。
在這種情況下,不具體限制程序的形式,并且可以使用目標(biāo)代碼、要由 解釋器執(zhí)行的程序和要提供給操作系統(tǒng)的腳本數(shù)據(jù)等,只要它們具有所述程 序的功能即可。
作為用于提供所述程序的計算機可讀介質(zhì),可以使用以下媒介。例如,
可以使用軟(floppy )盤、硬盤、光盤、磁光盤、MO、 CD-ROM、 CD-R、 CD-RW、磁帶、非易失性存儲卡、ROM和DVD (DVD-ROM、 DVD-R)等。
作為另一程序提供方法,用戶使用客戶計算機上的瀏覽器來建立到因特 網(wǎng)上的主頁的連接,并且從主頁向諸如硬盤等的記錄介質(zhì)上下載本發(fā)明的計 算機程序。在這種情況下,要下載的程序可以是包括自動安裝功能的壓縮文 件。而且,形成本發(fā)明的程序的程序代碼可以被劃分為可以從不同主頁下載 的多個文件。即,本發(fā)明包括WWW服務(wù)器,其使得多個用戶下載用于通過 計算機實現(xiàn)本發(fā)明的功能處理所需要的程序文件。
而且,可以向用戶遞送存儲本發(fā)明的加密程序的諸如CD-ROM等的存 儲介質(zhì)。在這種情況下,可以允許已經(jīng)滿足預(yù)定條件的用戶經(jīng)由因特網(wǎng)從主 頁下載用于解密所述加密程序的密鑰信息。用戶使用所下載的用以在計算機 上安裝加密程序的密鑰信息來執(zhí)行所述加密程序。
當(dāng)計算機執(zhí)行所述讀出程序時,可以實現(xiàn)上述實施例的功能。而且,可 以根據(jù)該程序的指令與計算機上運行的操作系統(tǒng)(OS)等協(xié)作地實現(xiàn)上述實 施例的功能。在這種情況下,所述操作系統(tǒng)等執(zhí)行實現(xiàn)上述實施例的功能的 部分或者全部的實際處理。
另外,當(dāng)將從記錄介質(zhì)讀出的程序?qū)懭肱鋫湓诠δ軘U展板或者插入或連 接到計算機的功能擴展單元上的存儲器中時,可以實現(xiàn)上述實施例的部分或者全部功能。在這種情況下,在功能擴展板或者功能擴展單元中寫入所述程 序后,功能擴展板或者功能擴展單元上配備的CPU根據(jù)該程序的指令來執(zhí)行 部分或者全部的實際處理。
根據(jù)本發(fā)明,能夠通過小存儲器尺寸來實現(xiàn)基于空間分配關(guān)系的、諸如 CNN計算等的分層計算處理。
雖然已經(jīng)參照示例性實施例描述了本發(fā)明,但是應(yīng)當(dāng)理解,本發(fā)明不限 于所公開的示例性實施例。應(yīng)當(dāng)對所附權(quán)利要求的范圍給予最寬的解釋,以 使其涵蓋所有這類變型以及等同結(jié)構(gòu)和功能。
本申請要求2007年6月13日提交的日本專利申請No. 2007-156734的 優(yōu)先權(quán),在此通過引用并入其全部內(nèi)容。
權(quán)利要求
1.一種計算處理裝置,所述計算處理裝置基于通過分層地連接多個處理節(jié)點而構(gòu)成的網(wǎng)絡(luò)來執(zhí)行計算處理,所述計算處理裝置包括存儲器控制單元,用于對所述多個處理節(jié)點的各個分配存儲器的部分區(qū)域,將各個處理節(jié)點的計算結(jié)果存儲在分配給該處理節(jié)點的所述部分區(qū)域的可存儲區(qū)域中,并且將存儲被連接到該處理節(jié)點的后一級的全部處理節(jié)點參照完畢的所述計算結(jié)果的區(qū)域設(shè)置為可存儲區(qū)域;指定單元,用于指定所述多個處理節(jié)點的、要執(zhí)行計算處理的處理節(jié)點;確定單元,用于根據(jù)所述存儲器的、分配給由所述指定單元指定的處理節(jié)點的以及分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域中的、計算結(jié)果的存儲狀態(tài),確定是否要執(zhí)行所述指定的處理節(jié)點的計算;以及執(zhí)行單元,用于當(dāng)所述確定單元確定執(zhí)行所述計算時進(jìn)行控制,以執(zhí)行與所述指定的處理節(jié)點對應(yīng)的計算處理。
2. 根據(jù)權(quán)利要求1所述的計算處理裝置,其中所述確定單元確定在以下情況下執(zhí)行與所述指定的處理節(jié)點對應(yīng)的計算當(dāng)所述存儲器的分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域,存儲對所述指定的處理節(jié)點的計算所需要的計算結(jié)果時,以及當(dāng)所述存儲器的分配給所述指定的處理節(jié)點的部分區(qū)域中存在可以存儲所述指定的處理節(jié)點的計算結(jié)果的區(qū)域時。
3. 根據(jù)權(quán)利要求1或者2所述的計算處理裝置,其中,所述確定單元通過將所述存儲器的分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域中存儲的計算結(jié)果的存儲量與針對所述指定的處理節(jié)點預(yù)先設(shè)置的閾值相比較,來確定是否執(zhí)行所述指定的處理節(jié)點的計算,并且當(dāng)在所述存儲器的對應(yīng)的部分區(qū)域中寫入對應(yīng)的處理節(jié)點的計算處理的計算結(jié)果時,將所述存儲量加上預(yù)定量,并且當(dāng)連接到所述對應(yīng)的處理節(jié)點的后一級的處理節(jié)點的計算處理完成時,從所述存儲量減去預(yù)定量。
4. 根據(jù)權(quán)利要求1至3中任意一項所述的計算處理裝置,其中,所述多個處理節(jié)點的各個響應(yīng)于所述指定單元的單個指定來執(zhí)行用于對小于全部處理對象輸入數(shù)據(jù)的預(yù)定量數(shù)據(jù)進(jìn)行處理的單位計算,并且通過重復(fù)所述單位計算來實現(xiàn)針對全部處理對象輸入數(shù)據(jù)的計算。
5. 根據(jù)權(quán)利要求4所述的計算處理裝置,其中,由所述多個處理節(jié)點的各個執(zhí)行的計算處理是用于由二維輸入數(shù)據(jù)產(chǎn)生二維輸出數(shù)據(jù)的計算,并且所述單位計算是用于輸出所述二維輸出數(shù)據(jù)的一行的數(shù)據(jù)的計算。
6. 根據(jù)權(quán)利要求4或者5所述的計算處理裝置,其中,所述存儲器控制單元通過循環(huán)地重寫所述存儲器的所分配的部分區(qū)域來存儲所述單位計算的計算結(jié)果。
7. 根據(jù)權(quán)利要求1至6中任意一項所述的計算處理裝置,其中,所述存儲器具有連續(xù)地址空間,并且當(dāng)所述連續(xù)地址空間的不同子空間被分配給所述多個處理節(jié)點時被共用。
8. 根據(jù)權(quán)利要求1至7中任意一項所述的計算處理裝置,其中,所述網(wǎng)絡(luò)的計算處理是巻積神經(jīng)網(wǎng)絡(luò)的計算處理。
9. 根據(jù)權(quán)利要求1至8中任意一項所述的計算處理裝置,所述計算處理裝置還包括暫停單元,所述暫停單元用于在所述存儲器的對應(yīng)于所述多個處理節(jié)點的一個處理節(jié)點的部分區(qū)域中、由連接到該處理節(jié)點的后一級的全部處理節(jié)點對所述部分區(qū)域中的所有區(qū)域中存儲的全部計算結(jié)果的參照完畢的情況下,暫停所述網(wǎng)絡(luò)的計算,以便對所述部分區(qū)域中存儲的計算結(jié)果執(zhí)行預(yù)定處理。
10. 根據(jù)權(quán)利要求9所述的計算處理裝置,其中,所述預(yù)定處理是用于將所述部分區(qū)域中存儲的計算結(jié)果傳送到另一存儲區(qū)域的處理。
11. 一種用于計算處理裝置的控制方法,所述計算處理裝置基于通過分層地連接多個處理節(jié)點而構(gòu)成的網(wǎng)絡(luò)來執(zhí)行計算處理,所述控制方法包括存儲器控制步驟,用于對所述多個處理節(jié)點的各個分配存儲器的部分區(qū)域,將各個處理節(jié)點的計算結(jié)果存儲在分配給該處理節(jié)點的所述部分區(qū)域的可存儲區(qū)域中,并且將存儲被連接到該處理節(jié)點的后一級的全部處理節(jié)點參照完畢的所述計算結(jié)果的區(qū)域設(shè)置為可存儲區(qū)域;指定步驟,用于指定所述多個處理節(jié)點的、要執(zhí)行計算處理的處理節(jié)點;確定步驟,用于根據(jù)所述存儲器的、分配給在所述指定步驟中指定的處理節(jié)點的以及分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域中的、計算結(jié)果的存儲狀態(tài),確定是否要執(zhí)行所述指定的處理節(jié)點的計算;以及執(zhí)行步驟,用于當(dāng)在所述確定步驟中確定執(zhí)行所述計算時進(jìn)行控制,以執(zhí)行與所述指定的處理節(jié)點對應(yīng)的計算處理。
12. 根據(jù)權(quán)利要求11的控制方法,其中,在所述確定步驟中確定在以下情況下執(zhí)行與所述指定的處理節(jié)點對應(yīng)的計算當(dāng)所述存儲器的分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域,存儲所述指定的處理節(jié)點的計算所需要的計算結(jié)果時,以及當(dāng)所述存儲器的分配給所述指定的處理節(jié)點的部分區(qū)域中存在可以存儲所述指定的處理節(jié)點的計算結(jié)果的區(qū)域時。
13. 根據(jù)權(quán)利要求11或者12所述的控制方法,其中,在所述確定步驟中通過將所述存儲器的分配給連接到所述指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域中存儲的計算結(jié)果的存儲量與針對所述指定的處理節(jié)點預(yù)先設(shè)置的閾值相比較,來確定是否執(zhí)行所述指定的處理節(jié)點的計算,并且當(dāng)在所述存儲器的對應(yīng)部分區(qū)域中寫入對應(yīng)的處理節(jié)點的計算處理的計算結(jié)果時,將所述存儲量加上預(yù)定量,并且當(dāng)連接到所述對應(yīng)的處理節(jié)點的后一級的處理節(jié)點的計算處理完成時,從所述存儲量減去預(yù)定量。
14. 根據(jù)權(quán)利要求11至13中任意一項所述的控制方法,其中,所述多個處理節(jié)點的各個響應(yīng)于在所述指定步驟中的單個指定來執(zhí)行用于對小于全部處理對象輸入數(shù)據(jù)的預(yù)定量數(shù)據(jù)進(jìn)行處理的單位計算,并且通過重復(fù)所述單位計算來實現(xiàn)針對全部處理對象輸入數(shù)據(jù)的計算。
15. 根據(jù)權(quán)利要求14所述的控制方法,其中,由所述多個處理節(jié)點的各個執(zhí)行的計算處理是用于由二維輸入數(shù)據(jù)產(chǎn)生二維輸出數(shù)據(jù)的計算,并且所述單位計算是用于輸出所述二維輸出數(shù)據(jù)的一行的數(shù)據(jù)的計算。
16. 根據(jù)權(quán)利要求14或者15所述的控制方法,其中,在所述存儲器控制步驟中,通過循環(huán)地重寫所述存儲器的所分配的部分區(qū)域來存儲所述單位計算的計算結(jié)果。
17. 根據(jù)權(quán)利要求11至16中任意一項所述的控制方法,其中,所述存儲器具有連續(xù)地址空間,并且當(dāng)所述連續(xù)地址空間的不同子空間被分配給所述多個處理節(jié)點時被共用。
18. 根據(jù)權(quán)利要求11至17中任意一項所述的控制方法,所述控制方法還包括暫停步驟,所述暫停步驟用于在所述存儲器的對應(yīng)于所述多個處理節(jié)點的一個處理節(jié)點的部分區(qū)域中、由連接到該處理節(jié)點的后一級的全部處理節(jié)點對所述部分區(qū)域中的所有區(qū)域中存儲的全部計算結(jié)果的參照完畢的情況下,暫停所述網(wǎng)絡(luò)的計算,以便對所述部分區(qū)域中存儲的計算結(jié)果執(zhí)行預(yù)定處理。
19. 根據(jù)權(quán)利要求18所述的控制方法,其中,所述預(yù)定處理是用于將所述部分區(qū)域中存儲的計算結(jié)果傳送到另一存儲區(qū)域的處理。
20. —種計算機程序,用于使得計算機執(zhí)行根據(jù)權(quán)利要求11至19中任意一項所述的控制方法。
全文摘要
本發(fā)明提供一種計算處理裝置及其控制方法。所述計算處理裝置基于通過分層地連接多個處理節(jié)點而構(gòu)成的網(wǎng)絡(luò)來執(zhí)行計算處理,向所述多個處理節(jié)點的各個分配存儲器的部分區(qū)域,將處理節(jié)點的計算結(jié)果存儲在分配給該處理節(jié)點的所述部分區(qū)域的可存儲區(qū)域中,并且將存儲被連接到該處理節(jié)點的后一級的全部處理節(jié)點參照完畢的所述計算結(jié)果的區(qū)域設(shè)置為可存儲區(qū)域。所述計算處理裝置根據(jù)所述存儲器的、分配給被指定執(zhí)行處理節(jié)點的所述計算處理的處理節(jié)點的以及分配給連接到所述被指定的處理節(jié)點的前一級的處理節(jié)點的部分區(qū)域中的、計算結(jié)果的存儲狀態(tài),確定是否要執(zhí)行所述被指定的處理節(jié)點的計算。
文檔編號G06T1/60GK101681450SQ200880019719
公開日2010年3月24日 申請日期2008年6月11日 優(yōu)先權(quán)日2007年6月13日
發(fā)明者伊藤嘉則, 加藤政美, 山本貴久 申請人:佳能株式會社