专利摘要:
本發明係在SIMD處理器之複數個處理器要素與外部之間以1個矩形區域對應於1個處理器之方式交換2維資料中之複數個矩形區域之資料時,抑制SIMD處理器之效率下降。SIMD處理器中之記憶體控制器140之位址記憶部142可藉由控制處理器而設定外部記憶體中之N個位址Ai(i=1~N)。參數記憶部144可藉由控制處理器而設定第1參數OSV、第2參數W及第3參數L。資料傳送部146基於位址記憶部142與參數設定部144之內容,在外部記憶體與該SIMD處理器所含之N個處理器要素之緩衝器間進行資料傳送。
公开号:TW201314448A
申请号:TW101125919
申请日:2012-07-18
公开日:2013-04-01
发明作者:Shorin Kyo
申请人:Renesas Electronics Corp;
IPC主号:G06F15-00
专利说明:
記憶體控制器及單一指令多重資料處理器
本發明係關於記憶體存取控制,更具體言之,係關於面向SIMD(Single Instruction Multiple Data:單一指令多重資料)處理器之記憶體存取控制技術。
SIMD處理器可根據一次命令對複數個資料同時進行相同處理。圖12係表示SIMD處理器之構成例。
圖12所示之SIMD處理器10具備控制處理器20與處理器陣列30。處理器陣列30係1維結合之分散記憶體型處理器陣列,具有複數(圖示之例中為6個)個處理器要素,該等處理器要素按照來自控制處理器20之命令進行相同處理。再者,控制處理器20對PE陣列30發出命令時,可藉由遮罩位元或遮罩旗標(以下統一為「遮罩旗標」)指定不處理之處理器要素。即,PE陣列30所含之複數處理要素在進行相同處理或不處理之任一狀態。
以下,分別將控制處理器稱作「CP」,將處理器陣列與處理器要素稱作「PE陣列」與「PE」。
PE陣列30所含之各PE(PE1~PE6)構成相同,因此此處以PE1為代表進行說明。如圖示,PE1具備緩衝器42、局部記憶體44、MEMCTL46、運算部48。
運算部48係執行運算者,可與鄰接之PE進行資料之收發。MEMCTL46進行局部記憶體存取與外部存取之控制。
局部記憶體存取係PE陣列30內部產生之記憶體存取,具體言之,有自運算部48之寫入請求與讀出請求。MEMCTL46擔負根據運算部48之寫入請求將來自運算部48之資料寫入至局部記憶體44,根據運算部48之讀出請求從局部記憶體44讀出資料,供給至運算部48之功能。
又,MEMCTL46具備有從PE陣列30外部(含CP20)之記憶體存取時,寫入存取之情形時將寫入請求之資料寫入至局部記憶體44,讀取存取之情形時從局部記憶體44讀出並輸出讀取請求之資料之功能。
緩衝器42係PE1與外部之資料交換用者,暫時存取經交換之資料。具體言之,例如,CP20向局部記憶體44寫入存取時,首先將寫入之資料存儲於緩衝器42,發出寫入命令。若PE1接收寫入命令,則MEMCTL46將存儲於緩衝器42之資料寫入至局部記憶體44。又,CP20向局部記憶體44之讀取存取時,發出含讀取之資料之資訊之讀取命令。若PE1接收讀取命令,則MEMCTL46從局部記憶體44讀出該資料,向緩衝器42輸出。然後,CP20從緩衝器42讀出資料,向外部輸出。
如此之SIMD處理器10對複數個資料2維排列而成之資料群(以下稱作「2維資料」)之處理尤其有用。2維資料例如有含1個畫面之像素之資料之圖像,或加入各2維表之集合之資料集合等。此處,以相對於1列像素數為6個之圖像,取注目像素與注目像素靠右之像素之平均之過濾處理之情形為例,說明SIMD處理器10之動作。再者,以下既然無特別說明則「像素」與「像素值」為相同含義。
此時,像素之行與PE陣列30之PE為一對一之關係。觀看像素之注目列,該列所包含之6個像素經由緩衝器42分別存儲於PE陣列30之6個局部記憶體44。各PE之局部記憶體44將同一列之像素存儲於同一位址。
像素之A列之各像素存儲於各PE之局部記憶體之位址B。於此情形時,A列之過濾處理時,控制器20對各PE執行「對A列之像素求得與靠右像素之平均值」之命令。各PE從自身之局部記憶體讀出位址B之像素,且對靠右之PE要求位址B之像素。然後,根據該要求進行從靠右PE發送之資料與從自身之局部記憶體讀出之位址B之像素之平均運算,且根據來自靠左之PE之要求將從自身之局部記憶體讀出之位址B之像素向靠左之PE輸出。
如此,可對注目列之所有像素同時進行過濾處理,效率較高。再者,本說明書中,像素之「列」方向,非意指播放該圖像之情形之橫方向,而意指分配於PE之排列方向之方向。例如,將播放圖像之情形之1列各像素分別分配於各PE時,播放圖像之情形之「列」與本說明書中所言之「列」一致,但將播放圖像之情形之1行各像素分別分配於各PE時,播放圖像之情形之「行」成為本說明書中所言之「列」。對於圖像以外之2維資料亦相同。
再者,圖像之1列像素數不限於與PE之數相同,通常多於PE數。於此情形時,將圖像分塊,完成對每塊進行處理。對於該等各塊之列方向之像素數,只要與PE數相同即可。
從外部對各PE之局部記憶體存儲資料之處理提案有根據各種觀點之方法(專利文獻1或非專利文獻1)。例如非專利文獻1中提案有設法該處理,從而提高SIMD處理器之效率之方法。
此處,說明非專利文獻1之方法。又,以SIMD處理器為例,使用圖12所示之SIMD處理器10。又,為易於理解而以將自外部記憶體之PE陣列30之各PE之局部記憶體中上述A列之6個像素存儲於PE1~PE6之各局部記憶體44之情形為例。
根據該方法,SIMD處理器10除圖12所示之各功能塊以外,進而具備DMA控制器(DMA:Direct Memory Access:直接記憶體存取)。又,PE1~PE6之緩衝器42構成相同之位移暫存器,各緩衝器42係該位移暫存器之一段。
首先,CP20設定上述A列之6個像素中之第1號像素之外部記憶體之位址作為讀出位址。
DMA控制器從外部記憶體讀出經設定之讀出位址之資料(A列之6個像素中之第1號像素),存儲於PE1之緩衝器42。接著,DMA控制器遞增1個讀出位址,從外部記憶體讀出遞增之讀出位址之資料即第2號像素,存儲於PE1之緩衝器42。同時,先存儲於PE1之緩衝器42之資料(第1號像素)藉由位移從PE1之緩衝器42向PE2之緩衝器42輸出,存儲於PE2之緩衝器42。重複如此之存儲與位移,結果於PE1之緩衝器42中存儲第6號像素時,於PE2~PE6之緩衝器42中分別存儲第6號~第2號像素。
藉由在該時刻下DMA控制器產生中斷,CP20對各PE發出寫入命令。各PE藉由MEMCTL46將存儲於自身之緩衝器42之資料向局部記憶體44寫入。
該方法中,根據1次寫入命令,應從外部記憶體存儲於各PE之局部記憶體44之資料經由緩衝器42存儲於各PE之局部記憶體44。資料向各緩衝器之存儲藉由DMA控制器擔負,因此DMA控制器向緩衝器存儲資料期間,各PE可進行運算處理。
因此,可抑制從外部記憶體向PE之局部記憶體寫入資料之處理對PE之運算處理給予之影響。再者,對於從PE之局部記憶體向外部記憶體讀出資料時亦相同。 [先前技術文獻] [專利文獻]
[專利文獻1]日本專利特開平11-66033號公報 [非專利文獻]
[非專利文獻1]京 昭論著「128個積體有4路VLIW型RISC芯片之面向車載之動畫識別LSI」電子資訊通信學會研究會報告、積體電路研究會(ICD),2003年5月、Vol.103,No.89,pp.19-24
考慮對2維資料之複數個區域之資料實施同一處理之情形。例如,有對圖13所示之圖像P進行特定對象物(例如臉)之檢測,對經檢測之複數個區域(圖中矩形區域BK1~BK6)實施同一處理之情形。當然各矩形區域內包含複數個像素。
圖13中,於各矩形區域內,由斜線塗滿之小框表示該矩形區域之第1號像素(一般係左上端之像素),塗黑之小框表示該矩形區域之第2號像素。
於此情形時,以1個矩形區域對應於1個PE之方式,將該等複數個矩形區域之資料分別寫入至SIMD處理器之複數個PE之局部記憶體,若對於各PE進行上述相同處理,則效率較高。
此處,考慮應用非專利文獻1之方法,從存儲有圖像P之外部記憶體對SIMD處理器10之各PE之局部記憶體44寫入矩形區域BK1~BK6之資料為止之處理。於此情形時,考慮如下述之流程。
首先,CP20將矩形區域BK1之第1號像素之開頭位址作為讀出位址對DMA控制器設定。
DMA控制器從外部記憶體讀出經設定之讀出位址之資料(矩形區域BK1之第1號像素),存儲於PE1之緩衝器42。該像素係最終應寫入至PE6之局部記憶體44之像素。
此處,根據非專利文獻1之方法之流程,DMA控制器接著應讀出之像素係應寫入至PE5之局部記憶體44之像素,即矩形區域BK2之第1號像素。但是,若DMA控制器遞增1個讀出位址進行讀出,則接著讀出之資料係矩形區域BK1之第2號像素。
因此,DMA控制器無法讀出接著應讀出之像素。因此,再次藉由CP20將讀出位址(此處,變成矩形區域BK2之第1號像素之位址)設定於DMA控制器,DMA控制器從外部記憶體讀出經設定之讀出位址之資料,存儲於PE1之緩衝器42。該像素係最終應寫入至PE5之局部記憶體44之像素。同時,藉由位移而之前存儲於PE1之緩衝器42之資料(矩形區域BK1之第1號像素)存儲於PE2之緩衝器42。
至此為止,1個像素之讀出與向緩衝器42之存儲必須需要利用CP20之讀出位址之設定,無法發揮DMA控制器之效果,無法謀求SIMD處理器10之效率提高。
又,不僅藉由各PE之緩衝器42形成1個位移暫存器之構成,各緩衝器42可分別寫入之構成之情形中亦相同。
於不應用非專利文獻1之方法之情形時,SIMD處理器10之效率進而下降。說明此情形時之流程之例。再者,各PE之緩衝器42可分別寫入。
首先,CP20從外部記憶體讀出矩形區域BK1之第1號像素,存儲於PE6之緩衝器42。然後,發出不使PE1~PE5動作之附遮罩旗標之寫入命令。
藉此,PE6之MEMCTL46執行寫入動作,將矩形區域BK1之第1號像素從緩衝器42寫入至局部記憶體44。
相同之處理藉由CP20與PE6之MEMCTL46重複矩形區域BK1之像素數次,最後,矩形區域BK1之所有像素寫入至PE6之局部記憶體44。
然後,藉由CP20與PE5之MEMCTL46,相同之處理被重複矩形區域BK2之像素數次,最後,矩形區域BK2之所有像素寫入至PE5之局部記憶體44。
矩形區域BK3~BK6之資料亦藉由相同處理寫入至PE4~PE1之局部記憶體44。
如由上述流程可知,於此情形時,每1個矩形區域利用CP20之向緩衝器42之資料之存儲,與由PE之寫入動作被重複該區域內之像素數次數。其間,CP20無法對PE陣列30發送命令,有導致於PE陣列30之運算處理停止之問題。
又,向局部記憶體44之資料寫入係使矩形區域1個1個地進行,因此向該PE之局部記憶體44之存取以高頻度產生。因此,即使暫時可以其他機構對PE陣列30發送命令,由於該PE之局部記憶體44由資料傳送所佔有,因此導致以PE陣列30之運算處理仍然停止。
本發明係鑑於上述情況而完成者,提供一種在SIMD處理器之複數個處理器要素與外部間以1個矩形區域對應1個處理器要素之方式交換2維資料之複數個矩形區域之資料時,可抑制SIMD處理器之效率下降之記憶體存取控制技術。
本發明之一態樣係設於SIMD處理器之DMA控制器。該SIMD處理器包含N個(N:2以上之整數)處理器要素,各上述處理器要素之容量為單位尺寸S,且含有暫時存儲在該處理器要素與外部記憶體間傳送之資料之緩衝器。
上述記憶體控制器具備位址記憶部、參數記憶部及資料傳送部。
上述位址記憶部可設定上述外部記憶體之N個位址Ai(i=1~N)。
上述參數設定部可設定第1參數OSV、第2參數W及第3參數L。
上述資料傳送部係在上述外部記憶體與上述N個處理器要素之緩衝器間進行資料傳送者,根據上述資料傳送之指示,以與記憶於上述參數記憶部之上述第3參數L一致之次數重複第1處理。
上述第1處理係以式(1)所示重複M次之進行上述第2處理並且進行第3處理後,進行上述第2處理並且進行第4處理之處理。
M=W/S-1 (1)
其中,W:記憶於參數記憶部之第2參數,S:單位尺寸。
上述第2處理係在從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,以1個位址對應於1個處理器要素之方式,從記憶於上述位址記憶部之各位址讀出各單位尺寸S之資料,並存儲於對應之處理器要素之緩衝器之處理。
又,上述第2處理係在從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,以1個位址對應於1個處理器要素之方式,讀出存儲於各上述處理器要素之緩衝器之資料,並寫入至記憶於上述位址記憶部之N個位址中之對應位址之處理。
上述第3處理係按照式(2)使記憶於上述位址記憶部之各位址Ai遞增之處理。
Ai=Ai+S (2)
其中,Ai:第i個位址,S:單位尺寸
上述第4處理係按照式(3)使記憶於上述位址記憶部之各位址Ai遞增之處理;Ai=Ai+OSV (3)
其中,Ai:第i個位址,OSV:記憶於參數記憶部之第1參數。
本發明之其他態樣係SIMD處理器。該SIMD處理器具備控制處理器、藉由上述控制處理器控制之N個(N:2以上之整數)之處理器要素、及上述態樣之記憶體控制器。各上述處理器要素之容量為單位尺寸S,且含有暫時存儲在該處理器要素與外部記憶體間傳送之資料之緩衝器。
上述控制處理器在利用上述記憶體控制器從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,每當上述N個處理器要素之所有緩衝器變滿時,對各上述處理器要素發出寫入命令。
又,上述控制處理器在利用上述DMA控制器從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,每當上述N個處理器要素之所有緩衝器變空時,對各上述處理器要素發出讀取命令。
再者,將上述態樣之記憶體控制器或控制處理器轉換方法或裝置、系統等表示者,或於電腦中執行該等方法之程式等亦作為本發明之態樣有效。
根據本發明之記憶體存取控制技術,例如,在SIMD處理器之複數個處理器要素與外部間之交換2維資料之複數個矩形區域之資料時,以1個矩形區域對應1個處理器要素之方式,抑制SIMD處理器之效率下降。
以下,參照附圖針對本發明之實施形態進行說明。為使說明明確化,以下之記載及附圖適當省略及簡化而完成。又,作為進行各種處理之功能塊記載於附圖之各要素可藉由硬體與軟體(程式)之組合以各種形態實現係相關領域技術人員所理解之處,不限於硬體與軟體之任一者。再者,各附圖中對同一要素附加同一符號,於必要時省略重複說明。
又,上述程式係使用各種類型之非暫時電腦可讀媒體(non-transitory computer readable medium)存儲,可供給至電腦。非暫時電腦可讀媒體包含各種類型之有實體之記錄媒體(tangible storage medium)。非暫時電腦可讀媒體之例包含磁性記錄媒體(例如軟碟、磁帶、硬碟驅動器)、磁光記錄媒體(例如磁光碟)、CD-ROM(Read Only Memory:唯讀記憶體)CD-R、CD-R/W、半導體記憶體(例如遮罩ROM、PROM(Programmable ROM:可程式ROM)、EPROM(Erasable PROM:可抹PROM)、快閃ROM、RAM(Random Access Memory:隨機存取記憶體)。又,程式亦可藉由各種類型之暫時電腦可讀媒體(transitory computer readable medium)供給至電腦。暫時電腦可讀媒體之例包含電信號、光信號及電磁波。暫時電腦可讀媒體可經由電線及光纖等有線通信路或無線通信路將程式供給至電腦。
<第1實施形態>圖1係表示本發明之第1實施形態之SIMD處理器100。SIMD處理器100具備PE陣列110、控制單元120。
PE陣列110具有N個(N:2以上之整數,此處作為例子N=6)處理器要素(PE)1~6。各PE具有同一構成,因此此處以PE1為代表。
PE1具備暫時存儲在與外部記憶體之間交換之資料之緩衝器112與局部記憶體114。緩衝器112之容量係特定之單位尺寸S。又,將此種PE通常具備之運算部等功能塊之圖示省略。
PE1藉由控制單元120中之下述之控制處理器(CP)130而控制。在與外部記憶體之資料交換時,PE1根據來自CP130之讀取命令,從局部記憶體114讀出該資料,並存儲於緩衝器112,又,根據來自CP130之寫入命令,讀出存儲於緩衝器112之資料,並寫入至局部記憶體114之該位址。
控制單元120具備CP130與記憶體控制器140。CP130進行PE陣列110與記憶體控制器140之控制。
若記憶體控制器140從CP130接收資料傳送之指示(以下僅稱作傳送指示),則進行在PE陣列110之各PE與外部記憶體間交換之資料之DMA傳送。參照圖2詳細說明記憶體控制器140。
如圖2所示,記憶體控制器140具備位址記憶部142、參數記憶部144、資料傳送部146。
位址記憶部142可藉由CP130設定外部記憶體之N個(此處為6個)位址Ai(i=1~6)。又,記憶於位址記憶部142內之各位址Ai可藉由資料傳送部146而變更。
參數記憶部144可藉由CP130設定第1參數OSV、第2參數W及第3參數L。
資料傳送部146根據來自CP130之傳送指示,在外部記憶體與PE1~PE6之緩衝器112間進行資料傳送。於該資料傳送時,資料傳送部146基於位址記憶部142與參數記憶部144之內容,以與記憶於參數記憶部144之第3參數L一致之次數重複第1處理。
第1處理係以式(6)所示重複M次之進行第2處理並且進行第3處理後,進行第2處理並且進行第4處理之處理。
M=W/S-1 (6)
其中,W:記憶於參數記憶部之第2參數,S:單位尺寸
在從外部記憶體向PE陣列110(具體言之,PE陣列110之各PE之緩衝器112)傳送資料時,第2處理係從外部記憶體以1個位址對應於1個PE之方式,從記憶於位址記憶部142之各位址分別讀出單位尺寸S之資料,並存儲於所對應之PE之緩衝器112之處理。
在從PE陣列110向外部記憶體傳送資料時,第2處理係以1個位址對應於1個處理器要素之方式,讀出存儲於各PE之緩衝器112之資料,並寫入至記憶於位址記憶部142之6個位址中對應位址之處理。
第3處理係按照式(7)使記憶於位址記憶部142之各位址Ai遞增之處理。
Ai=Ai+S (7)
其中,Ai:記憶於位址記憶部142之第i個位址,S:單位尺寸
第4處理係按照式(8)使記憶於位址記憶部142之各位址Ai遞增之處理。
Ai=Ai+OSV (8)
其中,Ai:記憶於位址記憶部142之第i個位址,OSV:記憶於參數記憶部144之第1參數
CP130從外部記憶體向PE陣列110之資料傳送時,每當PE1~PE6之所有緩衝器112變滿時,對PE1~PE6發出寫入命令。又,CP130從PE陣列110向外部記憶體之資料傳送時,每當PE1~PE6之所有緩衝器112變空時,對PE1~PE6發出讀取命令。
本實施形態之SIMD處理器100例如在該SIMD處理器100所含之複數個PE與外部記憶體間交換複數個單位尺寸S之資料2維排列而成之2維資料之複數個矩形區域之資料時,以1個矩形區域對應於1個PE之方式,可抑制SIMD處理器之效率下降。
將圖13所示之圖像作為2維資料之具體例,說明將圖像P之6個矩形區域(矩形區域BK1~BK6)之資料從外部記憶體向PE陣列110之PE1~PE6之局部記憶體114分別寫入之處理流程。
首先,CP130對記憶體控制器140之位址記憶部142與參數記憶部144進行設定。
CP130對位址記憶部142設定各矩形區域之外部記憶體之開頭位址。藉此,位址記憶部142設定矩形區域BKi(i=1~6)之開頭位址作為位址Ai(i=1~6)。
CP130對於參數記憶部144將圖像P之同一列之前端與末尾之像素之位址差作為第1參數OSV設定,將矩形區域之列方向之尺寸作為第2參數W設定,將矩形區域內所含之資料(像素)之列數作為第3參數L設定。
再者,矩形區域BK1~BK6之列方向之尺寸相同之情形時,CP130將該相同尺寸作為第2參數W設定,矩形區域BK1~BK6之列方向之尺寸不同之情形時,CP130將該等尺寸中之最大值作為第2參數W設定。例如,圖13所示之6個矩形區域之情形時,BK5之列方向之尺寸設為第2參數W。
又,矩形區域BK1~BK6之列數相同之情形時,CP130將該列數作為第3參數L設定,矩形區域BK1~BK6之列數不同之情形時,CP130將該等列數中之各上述列數中之最大值作為第3參數L設定。例如,圖13所示之6個矩形區域之情形時,矩形區域BK2之列數設定為第3參數L。
若設定位址記憶部142與參數記憶部144,則CP130對資料傳送部146作傳送指示。
若記憶體控制器140從CP130接收傳送指示,則從外部記憶體讀出資料,存儲於PE1~PE6之緩衝器112。參照圖3與圖4進行說明。再者,於圖3與圖4中,各PE之緩衝器112與局部記憶體114內之小框表示像素,表示像素之框內數字係該像素所屬之矩形區域之號碼。例如表示圖3之最上部,PE6之緩衝器112中存儲有矩形區域BK1之第1號像素。
如圖3所示,記憶體控制器140之資料傳送部146從CP130接收傳送指示後之第1週期(圖中週期1)下,從外部記憶體讀出記憶於位址記憶部142之位址A1中所存儲之1個像素之資料,存儲於PE6之緩衝器112。藉此,矩形區域BK1之第1號像素傳送至PE6之緩衝器112。
然後,週期2下,資料傳送部146從外部記憶體讀出記憶於位址記憶部142之位址A2中所存儲之1個像素之資料,存儲於PE5之緩衝器112。藉此,矩形區域BK2之第1號像素傳送至PE5之緩衝器112。
其後,資料傳送部146從外部記憶體讀出記憶於位址記憶部142之該位址Ai(i=3~6)中所存儲之1個像素之資料,重複存儲於對應該位址Ai(i=3~6)之PEi(i=4~1)之緩衝器112之處理。其結果,週期6下,矩形區域BK6之第1號像素傳送至PE1之緩衝器112。
週期1~6之處理相當於第1次之上述第2處理。資料傳送部146在此處作為第3處理,按照式(7)使記憶於位址記憶部142之各位址Ai(i=1~6)遞增。為易於理解,以下再次表示式(7):Ai=Ai+S (7)
其中,Ai:記憶於位址記憶部142之第i個位址,S:單位尺寸
式(7)之單位尺寸「S」在此處相當於1個像素之尺寸。因此,遞增後之各位址Ai(i=1~6)變成各矩形區域之第2號像素之位址。
又,各PE之所有緩衝器112變滿,因此資料傳送部146產生中斷。根據該中斷,CP130中斷PE1~PE6之運算處理,並發出寫入命令。
各PE根據來自CP130之寫入命令,將存儲於緩衝器112之資料寫入至局部記憶體114。如圖示,週期7下,各矩形區域(BK1~BK6)之第1號像素分別寫入至所對應之PE(PE6~PE1)之局部記憶體114。
然後,資料傳送部146重複進行連同第2處理進行之第3處理。
如圖4所示,週期8下,矩形區域BK1之第2號像素傳送至PE6之緩衝器112,週期9下,矩形區域BK2之第2號像素傳送至PE5之緩衝器112。
繼續相同之處理,週期13下,矩形區域BK6之第2號像素傳送至PE1之緩衝器112。
週期8~13之處理相當於第2次之第2處理。此處,資料傳送部146產生中斷,且作為第2次之第3處理,按照式(6)使記憶於第3位址記憶部142之各位址Ai(i=1~6)遞增。藉此,記憶於位址記憶部142之各位址Ai(i=1~6)變成各矩形區域之第3號像素之開頭位址。又,如圖示,週期14下,各矩形區域(BK1~BK6)之第2號像素分別寫入至所對應之PE(PE6~PE1)之局部記憶體114。
其後,資料傳送部146重複式(6)所示之連同第2處理進行第3處理M次。為易於理解,以下再次表示式(6):M=W/S-1 (6)
其中,W:記憶於參數記憶部144之第2參數,S:單位尺寸
第2參數W係矩形區域之列方向之最大尺寸,單位尺寸S係1個像素之尺寸,因此式(6)所示之M變成從矩形區域之列方向之最多像素數減去1之值。即,第2處理之同時進行第3處理重複M次後,存儲於位址記憶部142之各位址Ai對於該矩形區域變成該列之應傳送之像素中之最後像素之位址。
資料傳送部146將第2處理之同時進行第3處理重複M次後,第2處理之同時作為第4處理按照式(8)使記憶於位址記憶部142之各位址Ai遞增。為易於理解,以下再次表示式(8):Ai=Ai+OSV (8)
其中,Ai:記憶於位址記憶部142之第i個位址,OSV:記憶於參數記憶部144之第1參數
如上所述,第1參數OSV係圖像P之同一列之前端與末尾之像素之位址之差,因此藉由第4處理,存儲於位址記憶部142之各位址Ai變成各矩形區域之下一列之第1號像素之位址。
再者,第1次之第2處理至第1次之第4處理結束為止之處理相當於上述第1處理。資料傳送部146記憶於資料傳送部146之第3參數L次重複第1處理。第3參數L係矩形區域之最大列數,因此第1處理重複L次,此外,各PE之緩衝器112變滿時,進行向參數記憶部144之寫入,結果各矩形區域(BK1~BK6)之資料傳送至對應之PE(PE6~PE1)之局部記憶體114。
參照圖3與圖4,說明從外部記憶體向PE陣列110傳送資料之情形。於從PE陣列110向外部記憶體傳送資料之情形時,除CP130對PE陣列110發出讀取命令後對記憶體控制器140發出傳送指示之處,與各PE之所有緩衝器112變空時對PE陣列110作讀取命令之處,及第2處理之資料傳送方向與上述不同之處,與從外部記憶體向PE陣列110傳送資料之情形相同,因此,此處省略詳細說明。
如此,根據本第1實施形態之SIMD處理器100,若CP130發出1次傳送指示,則記憶體控制器140在外部記憶體與對應該矩形區域之PE之緩衝器112間傳送各矩形區域之資料。利用記憶體控制器140之傳送期間,CP130可對PE陣列110發出命令,PE陣列110之各PE亦不會停止運算處理。因此,在SIMD處理器之複數個處理器要素與外部之間以1個矩形區域對應1個處理器要素之方式交換2維資料之複數個矩形區域之資料時,亦可抑制SIMD處理器之效率下降。
本實施形態之SIMD處理器100中,PE陣列110之各PE之緩衝器112作為互相獨立之功能塊表示,但該等緩衝器例如亦可為同一緩衝器之不同區域。
進而,SIMD處理器100中,各緩衝器112分別成為寫入資料之構成,但例如該等緩衝器112亦可為形成1個位移暫存器之構成。對於此使用第2實施形態進行說明。
<第2實施形態>圖5係表示本發明之第2實施形態之SIMD處理器200。該SIMD處理器200除取代PE陣列110設有PE陣列210之處以外,具有與圖1所示之SIMD處理器100相同之構成。又,PE陣列210除取代各PE之緩衝器112設有位移暫存器220之處以外,具有與SIMD處理器100之PE陣列110相同之構成。因此,對於SIMD處理器200,僅詳細說明與SIMD處理器100不同之處。對於利用SIMD處理器200之處理例,與說明SIMD處理器100時相同,亦使用將圖13所示之圖像P之各矩形區域之資料分別傳送至PE陣列210之各PE。
位移暫存器220具有與PE陣列210所含之PE數(此處為6)相同數段。位移暫存器220之各段(第1段221~第6段226)具有單位尺寸S(此處為圖像P之1個像素尺寸)。對位移暫存器220之輸入端(第1段221)輸入資料時,進行向輸出端(第6段226)之位移。又,位移暫存器220之各段(第1段221~第6段226)分別與各PE(PE1~PE6)對應,各PE可對與自身對應段進行資料之讀出與寫入。
為將圖13所示之圖像P之6個矩形區域(矩形區域BK1~BK6)之資料從外部記憶體分別向PE陣列210之PE1~PE6之局部記憶體114寫入,首先,CP130對記憶體控制器140之位址記憶部142與參數記憶部144進行設定。設定後,CP130對記憶體控制器140作傳送指示。
若記憶體控制器140從CP130接收傳送指示,則從外部記憶體讀出資料,依次輸入至SIMD處理器200。參照圖6與圖7進行說明。
如圖6所示,記憶體控制器140之資料傳送部146從CP130接收傳送指示後之第1週期(圖中週期1)中,從外部記憶體讀出記憶於位址記憶部142之位址A1中存儲之1個像素之資料,向位移暫存器220輸出。藉此,矩形區域BK1之第1號像素存儲於位移暫存器220之第1段221。
然後,週期2下,資料傳送部146從外部記憶體讀出記憶於位址記憶部142之位址A2中存儲之1個像素之資料,向位移暫存器220輸入。藉此,矩形區域BK2之第1號像素存儲於位移暫存器220之第1段221,矩形區域BK1之第1號像素藉由位移存儲於第2段222。
週期1~6之處理即第1次之第2處理結束時,矩形區域BK1~BK6之各第1號像素分別存儲於位移暫存器220之第6段226~第1段221。又,位址記憶部142內之各位址Ai遞增1個像素尺寸。
週期7下,各PE根據來自CP130之寫入命令,將位移暫存器200之對應自身之段所存儲之資料寫入至局部記憶體114。藉此,各矩形區域(BK1~BK6)之第1號像素分別寫入至對應PE(PE6~PE1)之局部記憶體114。
接著,如圖7所示,週期8下,矩形區域BK1之第2號像素輸入至位移暫存器220之第1段221,存儲於第1段221。然後,週期9下,矩形區域BK2之第2號像素輸入至位移暫存器220之第1段221,存儲於第1段221。同時,矩形區域BK1之第2號像素藉由位移存儲於第2段222。
繼續相同之處理,週期13下,矩形區域BK6之第2號像素輸入至位移暫存器220之第1段221,存儲於第1段221。同時,藉由位移,而矩形區域BK5~矩形區域BK1之第2號像素分別存儲於第6段226~第2段222。又,位址記憶部142內之各位址Ai遞增1個像素尺寸。
然後,週期14下,各PE根據來自CP130之寫入命令,將位移暫存器220之對應自身之段所存儲之資料寫入至局部記憶體114。藉此,各矩形區域(BK1~BK6)之第2號像素分別寫入至對應PE(PE6~PE1)之局部記憶體114。如圖示,週期14下,各矩形區域(BK1~BK6)之第2號像素分別寫入至對應PE(PE6~PE1)之局部記憶體114。
以後之處理除資料傳送部146將從外部記憶體讀出之資料輸入至位移暫存器220之第1段221之處,與利用SIMD處理器100之相對應處理相同,因此,此處省略詳細說明。
再者,從PE陣列210向外部記憶體傳送資料之情形時,若將SIMD處理器100之記憶體控制器140從各緩衝器112讀出資料之動作轉換成SIMD處理器200之記憶體控制器140使位移暫存器220移出,且接收從第6段226移出之資料之動作,則SIMD處理器200與SIMD處理器100之動作相同。
本實施形態之SIMD處理器200亦可發揮與SIMD處理器100相同之效果。
<第3實施形態>圖8係表示本發明之第3實施形態之SIMD處理器300。SIMD處理器300具備PE陣列110與控制單元320,PE陣列110係與圖1所示之SIMD處理器100之PE陣列110相同者,控制單元320具備CP330與記憶體控制器340。
圖9係表示記憶體控制器340。記憶體控制器340具備位址記憶部142、參數記憶部344、資料傳送部346。
位址記憶部142係與SIMD處理器100之記憶體控制器140之位址記憶部142相同者。
參數記憶部344除第1參數OSV、第2參數W、第3參數L外,可進而藉由CP330設定第4參數T。
CP330在外部記憶體與PE陣列110之資料傳送時,對位址記憶部142與參數記憶部344進行設定。再者,CP330將PE陣列110所含之PE數N之約數作為第4參數T,設定於參數記憶部344。此處N係6,因此CP330可設定1、2、3之任一者作為第4參數。
資料傳送部346根據來自CP330之傳送指示,在外部記憶體與PE1~PE6之緩衝器112間進行資料傳送。該資料傳送時,資料傳送部346基於位址記憶部142與參數記憶部344之內容,與記憶於參數記憶部344之第3參數L一致之次數重複第1處理。
說明SIMD處理器100與SIMD處理器200時,式(6)所示之第2處理之同時進行第3處理之M次重複第1處理後,說明第2處理之同時進行第4處理。
本第3實施形態之SIMD處理器300中,第1處理係式(9)所示之第2處理之同時進行第3處理重複M次後,第2處理之同時進行第4處理之處理。
M1=[W/(T×S)]-1 (9)
其中,W:記憶於參數記憶部344之第2參數 S:單位尺寸 T:記憶於參數記憶部344之第4參數。
又,第2處理及第3處理與SIMD處理器100時說明之第2處理及第3處理分別不同。再者,對於第4處理,與SIMD處理器100時說明之第4處理相同。
首先,說明第2處理。本實施形態之SIMD處理300中,第2處理係T次重複第5處理之處理。
從外部記憶體PE向PE陣列110之資料傳送時,第5處理係以1個位址對應於鄰接之T個PE之方式,從記憶於位址記憶部142之N(此處為6)個位址中之「N/T」個位址,且從每次不同之「N/T」個位址分別讀出單位尺寸S之T倍資料,分別存儲於對應T個PE之緩衝器112之處理。
又,從PE陣列110向外部記憶體之資料傳送時,第5處理係讀出存儲於各PE之緩衝器112之資料(單位尺寸S之資料),且以1個位址對應於鄰接之T個PE之方式,含鄰接之T個PE之每個群將從該群內之T個PE緩衝器112讀出之資料記憶於位址記憶部142之N個位址中之「N/T」個位址,且寫入至每次不同之「N/T」個位址中之對應於上述群之1個位址之處理。
本實施形態之SIMD處理器300中,第3處理係按照式(10)使記憶於位址記憶部142之各位址Ai遞增之處理。
Ai=Ai+S×T (10)
其中,Ai:第i個位址,S:單位尺寸,T:記憶於參數記憶部344之第4個參數
即,SIMD處理器300中,利用第3處理之位址Ai之1次遞增量係利用SIMD處理器100時之第3處理之位址Ai之1次遞增量之T倍。
再者,如上所述,本實施形態之SIMD處理器300之第4處理與SIMD處理器100時說明之第4處理相同。
對於CP330,從外部記憶體向PE陣列110之資料傳送時,PE1~PE6之所有緩衝器112變滿時,對PE1~PE6作寫入命令,從PE陣列110向外部記憶體之資料傳送時,PE1~PE6之所有緩衝器112變空時,對PE1~PE6作讀取命令之處,與SIMD處理器100之CP130相同。
SIMD處理器300進而從PE陣列110向外部記憶體之資料傳送時對記憶體控制器340作資料傳送指示前,從外部記憶體向PE陣列110之資料傳送時該資料傳送結束後,對PE陣列110作資料交換命令。
該「資料交換」意指局部記憶體間之資料交換。PE陣列110之各PE根據該資料交換之命令以鄰接之PE彼此交換局部記憶體上之資料。
此處,以將圖13所示之圖像P之6個矩形區域(矩形區域BK1~BK6)之資料從外部記憶體分別寫入至PE陣列110之PE1~PE6之局部記憶體114之處理為例,說明SIMD處理器300之處理流程。
首先,CP330對記憶體控制器340之位址記憶部142與參數記憶部344進行設定。
對於位址記憶部142之設定與SIMD處理器100之CP130所進行者相同。
又,對於對參數記憶部344之設定中之第1參數OSV、第2參數W、第3參數L,亦與SIMD處理器100之CP130所進行者相同。
CP330對參數記憶部344設定PE陣列110所含之PE數之約數,例如「2」作為第4參數T。
若CP330設定位址記憶部142與參數記憶部344,則對資料傳送部346作傳送指示。
若從CP330接收傳送指示,則記憶體控制部340從外部記憶體讀出資料,存儲於PE1~PE6之緩衝器112。參照圖10與圖11進行說明。
如圖10所示,資料傳送部346從CP330接收傳送指示後之第1週期(圖中週期1)下,從外部記憶體讀出記憶於位址記憶部142之位址A1中存儲之T個像素(此處為2個像素)之資料,分別存儲於PE6與PE5之緩衝器112。藉此,矩形區域BK1之第1號像素傳送至PE6之緩衝器112,矩形區域BK1之第2號像素傳送至PE5之緩衝器112。
然後,週期2下,資料傳送部346從外部記憶體讀出記憶於位址記憶部142之位址A2中存儲之T個像素之資料,分別存儲於PE4與PE3之緩衝器112。藉此,矩形區域BK2之第1號像素傳送至PE4之緩衝器112,矩形區域BK2之第2號像素傳送至PE3之緩衝器112。
接著,週期3下,資料傳送部346從外部記憶體讀出記憶於位址記憶部142之位址A3中存儲之T個像素之資料,分別存儲於PE2與PE1之緩衝器112。藉此,矩形區域BK3之第1號像素傳送至PE2之緩衝器112,矩形區域BK3之第2號像素傳送至PE1之緩衝器112。
週期1~3之處理相當於第1次之上述第5處理。此處,PE1~PE6之所有緩衝器112變滿,因此資料傳送部346產生中斷。根據該中斷,CP330中斷PE1~PE6之運算處理,並發出寫入命令。
各PE根據來自CP330之寫入命令,將存儲於緩衝器112之資料寫入至局部記憶體114。如圖示,週期4下,矩形區域BK1~BK3之第1號像素分別寫入至PE6、PE4、PE2之局部記憶體114,矩形區域BK1~BK3之第2號像素分別寫入至PE5、PE3、PE1之局部記憶體114。
接著,資料傳送部346進行圖11所示之週期5~7之處理作為第2次之第5處理。如圖示,週期5下,矩形區域BK4之第1號像素傳送至PE6之緩衝器112,矩形區域BK4之第2號像素傳送至PE5之緩衝器112。
然後,週期6下,矩形區域BK5之第1號像素傳送至PE4之緩衝器112,矩形區域BK5之第2號像素傳送至PE3之緩衝器112。
接著,週期7中,矩形區域BK6之第1號像素被傳送至PE2之緩衝器112,矩形區域BK6之第2號像素被傳送至PE1之緩衝器112。
由於第5處理重複T次(2次),因此資料傳送部346在此處作為第3處理,按照式(10)使記憶於位址記憶部142之各位址Ai遞增。為易於理解,以下再次表示式(10):Ai=Ai+S×T (10)
其中,Ai:第i個位址,S:單位尺寸,T:記憶於參數記憶部344之第4參數
式(10)中之單位尺寸「S」相當於1個像素之尺寸,第4參數T設定為「2」。因此,遞增後之各位址Ai(i=1~6)變成矩形區域BK1~BK6之第3號像素之位址。
又,由於PE1~PE6之所有緩衝器112變滿,因此資料傳送部346再次產生中斷。根據該中斷,CP330中斷PE1~PE6之運算處理,發出寫入命令。藉此,如圖11所示,週期8中,矩形區域BK4~BK6之第1號像素分別寫入至PE6、PE4、PE2之局部記憶體114,矩形區域BK4~BK6之第2號像素分別寫入至PE5、PE3、PE1之局部記憶體114。
其後,上述處理重複M1次。再者,「M1」係上述式(9)所示之M1。因此,上述處理重複M1次後,對於各矩形區域之該列尚未從外部記憶體傳送至PE陣列110之像素係末尾之T個(此處為2個),存儲於位址記憶部142之位址Ai(i=1~6)對於該矩形區域變成末尾之2個像素中之開頭像素之位址。
此處,資料傳送部346進行第2處理,且作為第4處理,對存儲於位址記憶部142之各位址Ai(i=1~6)遞增第1參數OSV。藉此,存儲於位址記憶部142之各位址Ai變成對應之矩形區域之下一列之開頭位址。
對於矩形區域BK1~BK6之後之各列,重複與上述相同之處理。最後,對於矩形區域BK1~BK3,列方向上之第奇數號(第1號、第3號等)像素分別存儲於PE6、PE4、PE2之局部記憶體114,第偶數號像素分別存儲於PE5、PE3、PE1之局部記憶體114。
又,對於矩形區域BK4~BK6亦相同,列方向上之第奇數號(第1號、第3號等)像素分別存儲於PE6、PE4、PE2之局部記憶體114,第偶數號像素分別存儲於PE5、PE3、PE1之局部記憶體114。
至此為止,從外部記憶體向PE陣列110之資料傳送結束,但為使同一區域之所有像素存儲於同一PE之局部記憶體114,CP330對PE陣列110下達資料交換命令。
PE陣列110之各PE根據該命令,在鄰接之PE彼此間交換局部記憶體之資料。例如,在PE5與PE6間藉由寫入至PE5之局部記憶體114之矩形區域BK1之第2號像素、與寫入至PE6之局部記憶體114之矩形區域BK4之第1號像素之交換,矩形區域BK1之第2號像素與矩形區域BK1之第1號像素同樣地存儲於PE6之局部記憶體114。如此之交換在PE陣列110之各鄰接之PE彼此間進行,結果如圖11所示,矩形區域BK1~BK6之資料分別存儲於對應PE(PE6~PE1)之局部記憶體114。
如上所述,說明了將第4參數T設定為「2」之情形。於將第4參數T設定為「1」之情形時,SIMD處理器300進行與SIMD處理器100相同之動作。
本實施形態之SIMD處理器300在將第4參數T設定為「1」之情形時,可獲得與SIMD處理器100相同之效果。於將第4參數T設定為「2」以上之情形時,除上述效果外,可使外部記憶體與PE陣列110間之資料傳送更高速。
此理由係資料傳送部346對於1個矩形區域,以相對於外部記憶體之1次讀出而讀出位址連續之T個像素之資料,傳送至PE陣列110之緩衝器112之故。如一般所知,向外部記憶體之存取通常同時存取連續位址存在之資料效率更高。
再者,於此情形時,利用資料傳送部346之資料傳送後,雖需要同一矩形區域之資料存儲於同一PE之局部記憶體之處理,但該處理只要在鄰接之PE彼此間交換資料即可實現,因此可高速進行。因此,伴隨該處理之管理負擔較小。
以上,基於實施形態說明了本發明。實施形態係例示,只要不脫離本發明之主旨,則可對上述各實施形態進行各種變更、增減、組合。進行該等變更、增減、組合之變形例亦在本發明之範圍內係相關領域技術人員所理解之處。
例如,上述各實施形態中,設定矩形區域之列方向之尺寸作為第2參數W,但亦可設定其他值例如矩形區域之列方向之像素數。
又,對於上述各實施形態之動作,以圖像之情形為例,但本發明之技術亦可應用於圖像以外之2維資料之處理。
1~6‧‧‧PE
10‧‧‧SIMD處理器
20‧‧‧控制處理器(CP)
30‧‧‧PE陣列
42‧‧‧緩衝器
44‧‧‧局部記憶體
46‧‧‧MEMCTL
48‧‧‧運算部
100‧‧‧SIMD處理器
110‧‧‧PE陣列
112‧‧‧緩衝器
114‧‧‧局部記憶體
120‧‧‧控制單元
130‧‧‧CP
140‧‧‧記憶體控制器
142‧‧‧位址記憶部
144‧‧‧參數記憶部
146‧‧‧資料傳送部
200‧‧‧SIMD處理器
210‧‧‧PE陣列
220‧‧‧位移暫存器
221~226‧‧‧第1段~第6段
300‧‧‧SIMD處理器
320‧‧‧控制單元
330‧‧‧控制處理器(CP)
340‧‧‧記憶體控制器
344‧‧‧參數記憶部
346‧‧‧資料傳送部
A1~A6‧‧‧位址
BK1~BK6‧‧‧矩形區域
L‧‧‧第3參數
OSV‧‧‧第1參數
P‧‧‧圖像
S‧‧‧單位尺寸
T‧‧‧第4參數
W‧‧‧第2參數
圖1係表示本發明之第1實施形態之SIMD處理器之圖。
圖2係表示圖1所示之SIMD處理器之記憶體控制器之圖。
圖3係用以說明圖1所示之SIMD處理器之動作之圖(其1)。
圖4係用以說明圖1所示之SIMD處理器之動作之圖(其1)。
圖5係表示本發明之第2實施形態之SIMD處理器之圖。
圖6係用以說明圖5所示之SIMD處理器之動作之圖(其1)。
圖7係用以說明圖5所示之SIMD處理器之動作之圖(其1)。
圖8係表示本發明之第2實施形態之SIMD處理器之圖。
圖9係表示圖8所示之SIMD處理器之記憶體控制器之圖。
圖10係用以說明圖8所示之SIMD處理器之動作之圖(其1)。
圖11係用以說明圖8所示之SIMD處理器之動作之圖(其1)。
圖12係表示一般之SIMD處理器之構成例之圖。
圖13係表示成2維資料之例之圖像之圖。
110‧‧‧PE陣列
142‧‧‧位址記憶部
144‧‧‧參數記憶部
146‧‧‧資料傳送部
A1‧‧‧位址
A2‧‧‧位址
A3‧‧‧位址
A4‧‧‧位址
A5‧‧‧位址
A6‧‧‧位址
L‧‧‧第3參數
OSV‧‧‧第1參數
W‧‧‧第2參數
权利要求:
Claims (9)
[1] 一種記憶體控制器,其特徵在於:其係設於SIMD(Single Instruction Multiple Data:單一指令多重資料)處理器上者,該SIMD處理器包含N個(N:2以上之整數)處理器要素;各上述處理器要素之容量為單位尺寸S,且含有暫時存儲在該處理器要素與外部記憶體間傳送之資料之緩衝器;該記憶體控制器包括:可設定上述外部記憶體中之N個位址Ai(i=1~N)之位址記憶部;可設定第1參數OSV、第2參數W、第3參數L之參數記憶部;上述外部記憶體;在與上述N個處理器要素之緩衝器間進行資料傳送之資料傳送部;上述資料傳送部根據上述資料傳送之指示,以與記憶於上述參數記憶部之上述第3參數L一致之次數重複第1處理;上述第1處理係以式(1)所示重複M次之進行第2處理並且進行第3處理後,進行上述第2處理並且進行第4處理之處理;上述第2處理係於從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,以1個位址對應於1個處理器要素之方式,從記憶於上述位址記憶部之各位址分別讀出單位尺寸S之資料,並存儲於對應之處理器要素之緩衝器之處理,且係於從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,以1個位址對應於1個處理器要素之方式,讀出存儲於各上述處理器要素之緩衝器之資料,並寫入至記憶於上述位址記憶部之N個位址中之對應位址之處理;上述第3處理係按照式(2)使記憶於上述位址記憶部之各位址Ai遞增之處理;上述第4處理係按照式(3)使記憶於上述位址記憶部之各位址Ai遞增之處理,M=W/S-1 (1)其中,W:記憶於參數記憶部之第2參數,S:單位尺寸Ai=Ai+S (2)其中,Ai:第i個位址,S:單位尺寸Ai=Ai+OSV (3)其中,Ai:第i個位址,OSV:記憶於參數記憶部之第1參數。
[2] 如請求項1之記憶體控制器,其中,上述參數記憶部可進而設定第4參數T;上述第1處理係以式(4)所示重複M1次之進行第2處理並且進行第3處理後,進行上述第2處理並且進行上述第4處理之處理;上述第2處理係重複T次第5處理之處理;上述第5處理係於從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,以1個位址對應於鄰接之T個處理器要素之方式,從記憶於上述位址之N個位址中之「N/T」個位址、且每次不同之上述「N/T」個位址分別讀出單位尺寸S之T倍之資料,並分別存儲於對應之T個處理器要素之緩衝器之處理,且係於從上述N個處理器要素之緩衝器向上述外部記憶體之資料傳送時,讀出存儲於各上述處理器要素之緩衝器之資料,且以1個位址對應於鄰接之T個處理器要素之方式,針對包含鄰接之T個處理器要素之每個群,將從該群內之T個處理器要素之緩衝器讀出之資料,寫入記憶於上述位址記憶部之N個位址中之「N/T」個位址、且每次不同之上述「N/T」個位址中之對應於上述群之一者之處理;上述第3處理係按照式(5)使記憶於上述位址記憶部之各位址Ai遞增之處理;M1=[W/(T×S)]-1 (4)其中,W:記憶於參數記憶部之第2參數,S:單位尺寸,T:記憶於參數記憶部之第4參數Ai=Ai+S×T (5)其中,Ai:第i個位址,S:單位尺寸,T:記憶於參數記憶部之第4參數。
[3] 如請求項1或2之記憶體控制器,其中上述資料傳送部在從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,每當上述N個處理器要素之所有緩衝器變滿時產生中斷,而在從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,每當上述N個處理器要素之所有緩衝器變空時產生中斷。
[4] 一種SIMD處理器,其特徵在於:其係具備控制處理器、藉由上述控制處理器控制之N個(N:2以上之整數)處理器要素及記憶體控制器之SIMD(Single Instruction Multiple Data:單一指令多重資料)處理器;各上述處理器要素之容量為單位尺寸S,且包含暫時存儲在該處理器要素與外部記憶體間傳送之資料之緩衝器;上述記憶體控制器包括:位址記憶部,其可藉由上述控制處理器設定上述外部記憶體中之N個位址Ai(i=1~N);參數記憶部,其可藉由上述控制處理器設定第1參數OSV、第2參數W、第3參數L;資料傳送部,其根據來自上述控制處理器之資料傳送之指示,在上述外部記憶體與上述N個處理器要素之緩衝器間進行資料傳送;上述資料傳送部在上述資料傳送時,以與記憶於上述參數記憶部之上述第3參數L一致之次數重複第1處理;上述第1處理器係以式(6)所示重複M次之進行第2處理並且進行第3處理後,進行上述第2處理並且進行第4處理之處理;上述第2處理係於從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,以1個位址對應於1個處理器要素之方式,從記憶於上述位址記憶部之各位址分別讀出單位尺寸S之資料,並存儲於對應之處理器要素之緩衝器之處理,且係於從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,以1個位址對應於1個處理器要素之方式,讀出存儲於各上述處理器要素之緩衝器之資料,並寫入至記憶於上述位址記憶部之N個位址中之對應位址之處理;上述第3處理係按照式(7)使記憶於前述上述位址記憶部之各位址Ai遞增之處理;上述第4處理係按照式(8)使記憶於上述位址記憶部之各位址Ai遞增之處理;M=W/S-1 (6)其中,W:記憶於參數記憶部之第2參數,S:單位尺寸Ai=Ai+S (7)其中,Ai:第i個位址,S:單位尺寸Ai=Ai+OSV (8)其中,Ai:第i個位址,OSV:記憶於參數記憶部之第1參數;上述控制處理器在利用上述記憶體控制器從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,每當上述N個處理器要素之所有緩衝器變滿時,對各上述處理器要素發出寫入命令,而在利用DMA控制器從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,每當上述N個處理器要素之所有緩衝器變空時,對各上述處理器要素發出讀取命令。
[5] 如請求項4之SIMD處理器,其中上述控制處理器將記憶有由複數個單位尺寸S之資料2維排列而成之2維資料之上述外部記憶體中、上述2維資料所含之N個矩形區域之開頭位址,作為上述N個位址Ai(i=1~N)而設定於上述位址記憶部,將上述2維資料之同一列中之前端與末尾之單位尺寸S之資料之位址之差、上述矩形區域之列方向之尺寸、及上述矩形區域之列數,分別作為上述第1參數OSV、第2參數W及第3參數L而設定於上述參數設定部。
[6] 如請求項5之SIMD處理器,其中上述控制處理器於上述N個矩形區域具有不同之列方向之尺寸時,將各上述列方向之尺寸中之最大值作為上述第2參數W而設定,於上述N個矩形區域具有不同之列數時,將各上述列數中之最大值作為上述第3參數L而設定。
[7] 如請求項5或6之SIMD處理器,其中上述2維資料係圖像資料,上述單位尺寸S之資料係1個像素之資料。
[8] 如請求項4至7中任一項之SIMD處理器,其中上述參數記憶部可藉由上述控制處理器進而設定第4參數T;上述控制處理器將N之約數作為上述第4參數而設定於上述參數記憶部;上述記憶體控制器中之上述資料傳送部係以式(9)所示重複M1次之進行第2處理並且進行第3處理後,進行上述第2處理並且進行上述第4處理作為上述第1處理,且重複T次第5處理作為上述第2處理;上述第5處理係於從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,以1個位址對應於鄰接之T個處理器要素之方式,從記憶於上述位址之N個位址中之「N/T」個位址、且每次不同之上述「N/T」個位址分別讀出單位尺寸S之T倍之資料,並分別存儲於對應之T個處理器要素之緩衝器之處理,且係於從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,讀出存儲於各上述處理器要素之緩衝器之資料,且以1個位址對應於鄰接之T個處理器要素之方式,針對包含鄰接之T個處理器要素之每個群,將從該群內之T個處理器要素之緩衝器讀出之資料,寫入記憶於上述位址記憶部之N個位址中之「N/T」個位址、且每次不同之上述「N/T」個位址中之對應於上述群之一者之處理;上述第3處理係按照式(10)使記憶於上述位址記憶部之各位址Ai遞增之處理;M1=[W/(T×S)]-1 (9)其中,W:記憶於參數記憶部之第2參數,S:單位尺寸,T:記憶於參數記憶部之第4參數Ai=Ai+S×T (10)其中,Ai:第i個位址,S:單位尺寸,T:記憶於參數記憶部之第4參數,上述控制處理器在從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,在該資料傳送之指示前,及在從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,在上述DMA控制器根據該資料傳送之指示而結束該資料傳送後,對上述N個處理器要素發出資料交換命令;上述N個處理器要素根據上述資料交換命令,在鄰接之處理器要素彼此間交換局部記憶體上之資料。
[9] 如請求項4至8中任一項之SIMD處理器,其中上述DMA控制器在從上述外部記憶體向上述N個處理器要素之緩衝器傳送資料時,每當上述N個處理器要素之所有緩衝器變滿時產生中斷,而在從上述N個處理器要素之緩衝器向上述外部記憶體傳送資料時,每當上述N個處理器要素之所有緩衝器變空時產生中斷;上述控制處理器根據上述中斷,對上述N個處理器要素發出讀取命令或寫入命令。
类似技术:
公开号 | 公开日 | 专利标题
RU2623806C1|2017-06-29|Способ и устройство обработки стереоизображений
JP3639464B2|2005-04-20|情報処理システム
US7554874B2|2009-06-30|Method and apparatus for mapping memory
JP5396169B2|2014-01-22|データアクセス制御装置
TWI548988B|2016-09-11|記憶體控制器及單一指令多重資料處理器
CN101084493A|2007-12-05|在帧缓冲器内读取和写入像素分配子帧的方法和装置
KR20070082835A|2007-08-22|직접 메모리 액세스 제어장치 및 방법
US9645957B2|2017-05-09|Data processing device and data transfer control device
JP2007213055A|2007-08-23|シンクロナスダイナミックランダムアクセスメモリを用いたフレームデータの転送方法及びフレームデータのソースドライバへの転送方法並びにタイミング制御モジュール
JP2009104521A|2009-05-14|並列処理装置
JPWO2012124251A1|2014-07-17|データ処理装置、データ処理方法及びデータ共有システム
JP2010118058A|2010-05-27|トリプル・バッファリングを使用するデータを処理する方法
US20100030978A1|2010-02-04|Memory controller, memory control method, and image processing device
JP5739779B2|2015-06-24|Simdプロセッサ及びコントロールプロセッサ並びにプロセッサ要素
WO2011158699A1|2011-12-22|画像処理装置
WO2017212524A1|2017-12-14|データ転送装置、画像処理装置、および撮像装置
JP2019185447A|2019-10-24|メモリコントローラ、画像処理装置及びデータ転送方法
JP6708127B2|2020-06-10|画像処理装置、画像処理方法、及び、プログラム
KR101727407B1|2017-04-14|렌즈 왜곡 교정 장치 및 동작 방법
JP6205980B2|2017-10-04|画像転送装置及び画像転送方法
JP5605225B2|2014-10-15|メモリ制御装置、メモリマッピング方法、及び、プログラム
JP2008146235A|2008-06-26|画像処理装置
JP5213394B2|2013-06-19|画像転送装置
JPWO2015125960A1|2017-03-30|情報処理装置、デジタルカメラおよびプロセッサ
JP2007189701A|2007-07-26|ビデオデータデコーディング方法及び装置
同族专利:
公开号 | 公开日
US20170147529A1|2017-05-25|
JP2013025563A|2013-02-04|
TWI548988B|2016-09-11|
JP5739758B2|2015-06-24|
US20130024658A1|2013-01-24|
US20150363357A1|2015-12-17|
US9129085B2|2015-09-08|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US4860248A|1985-04-30|1989-08-22|Ibm Corporation|Pixel slice processor with frame buffers grouped according to pixel bit width|
JP3358142B2|1992-06-23|2002-12-16|博文 松尾|物体識別システム|
US5587742A|1995-08-25|1996-12-24|Panasonic Technologies, Inc.|Flexible parallel processing architecture for video resizing|
US6226738B1|1997-08-01|2001-05-01|Micron Technology, Inc.|Split embedded DRAM processor|
JP3627953B2|1997-08-22|2005-03-09|日本電信電話株式会社|Peアレイ装置および連想メモリブロック|
US6173388B1|1998-04-09|2001-01-09|Teranex Inc.|Directly accessing local memories of array processors for improved real-time corner turning processing|
US6148111A|1998-04-27|2000-11-14|The United States Of America As Represented By The Secretary Of The Navy|Parallel digital image compression system for exploiting zerotree redundancies in wavelet coefficients|
US6941446B2|2002-01-21|2005-09-06|Analog Devices, Inc.|Single instruction multiple data array cell|
JP4487479B2|2002-11-12|2010-06-23|日本電気株式会社|Simd命令シーケンス生成方法および装置ならびにsimd命令シーケンス生成用プログラム|
US7714870B2|2003-06-23|2010-05-11|Intel Corporation|Apparatus and method for selectable hardware accelerators in a data driven architecture|
US7451293B2|2005-10-21|2008-11-11|Brightscale Inc.|Array of Boolean logic controlled processing elements with concurrent I/O processing and instruction sequencing|
KR101031680B1|2006-03-03|2011-04-29|닛본 덴끼 가부시끼가이샤|고속 pe 간 데이터 재배치 기능을 갖는 프로세서 어레이 시스템|
JP2008102599A|2006-10-17|2008-05-01|Renesas Technology Corp|プロセッサ|
US8635432B2|2008-03-04|2014-01-21|Nec Corporation|SIMD processor array system and data transfer method thereof|
US20100146241A1|2008-12-09|2010-06-10|Novafora, Inc.|Modified-SIMD Data Processing Architecture|
JP2011141823A|2010-01-08|2011-07-21|Renesas Electronics Corp|データ処理装置および並列演算装置|
JP5471969B2|2010-08-23|2014-04-16|株式会社リコー|Simdプロセッサのためのメモリコントローラ|JP5829331B2|2011-09-27|2015-12-09|ルネサスエレクトロニクス株式会社|Simdプロセッサシステムにおいて複数の対象領域(roi)を同時並列的にデータ転送するための装置|
US9965824B2|2015-04-23|2018-05-08|Google Llc|Architecture for high performance, power efficient, programmable image processing|
法律状态:
优先权:
申请号 | 申请日 | 专利标题
JP2011159752A|JP5739758B2|2011-07-21|2011-07-21|メモリコントローラ及びsimdプロセッサ|
[返回顶部]