共享存儲并發(fā)訪問處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)字芯片領(lǐng)域,尤其涉及一種共享存儲并發(fā)訪問處理方法及裝置。
【背景技術(shù)】
[0002] 目前多數(shù)片上系統(tǒng)(S0C,System on化ip)都存在不止一個處理器和協(xié)處理器,而 且送些處理器之間的主要數(shù)據(jù)交互通過共享存儲來實現(xiàn)。隨著多核S0C的廣泛應(yīng)用,共享 存儲的訪問沖突和帶寬不足越來越成為制約系統(tǒng)性能的瓶頸。
[0003] 現(xiàn)有的共享存儲接口改善的方法主要解決了減少訪問延時、優(yōu)化跨邊界訪問、消 除非對齊訪問開銷、簡單的訪問沖突規(guī)避、優(yōu)化連續(xù)地址訪問的帶寬和延時等,基本都是對 特定場景的優(yōu)化。
[0004] 如圖1所示,為一種普通的共享存儲并發(fā)訪問方式。其中,只有一個邏輯上獨立的 存儲器,當(dāng)4個接口都有存儲訪問發(fā)生時,只有一個訪問可W得到響應(yīng)(如圖中實線所示)。 如此,即便具有4個獨立接口,卻只有一個接口的有效帶寬。
[0005] 如圖2所示,為一種具有普通沖突規(guī)避的共享存儲并發(fā)訪問方式,有4個邏輯上獨 立邏輯塊度lock),但是接口上只能取隊列頭的訪問,當(dāng)4個接口都有存儲訪問發(fā)生時,只 有不存在Block沖突的訪問能夠得到響應(yīng)(如圖中實線所示)。如此,即便具有4個獨立接 口,但由于Block沖突的概率很大,實際有效帶寬只有單個接口的2. 7倍。
[0006] 如圖3所示,為普通的共享存儲并發(fā)訪問接口返回方式,訪問從哪個接口接收則 數(shù)據(jù)從哪個接口返回。顯然當(dāng)有多個訪問從同一個接口進入時,雖然送些訪問都將被接口 所接受,但是同一時刻因為每個接口只能返回一個數(shù)據(jù),所W只有郝些沒有接口沖突的訪 問得到了實際響應(yīng)。如圖3所示,accessO和accessl從接口 O(InterfaceO)進入,access2 和access3從接口 1 (Interheel)進入,雖然送些訪問都將被相應(yīng)接口所接受,但是同一時 刻因為每個接口只能返回一個數(shù)據(jù),因此只有accessO和access2得到了實際響應(yīng)(實線 表示被接口所接受并得到了實際響應(yīng)),accessl和access3沒有得到實際響應(yīng)(虛線表示 被接口所接受沒有但得到實際響應(yīng))。如此,即便具有4個獨立接口,但是因為接口沖突的 概率很大,實際有效帶寬只有單個接口的2. 7倍。
[0007] 因此,需要提出一種新的方案,W更加有效的規(guī)避訪問沖突和充分利用接口帶寬, 解決共享存儲的訪問沖突和帶寬不足的問題,并保證基本不受訪問方式的影響。
【發(fā)明內(nèi)容】
[0008] 有鑒于此,本發(fā)明的主要目的在于提供一種共享存儲并發(fā)訪問處理方法及裝置, 能更加有效的規(guī)避訪問沖突和利用接口帶寬,解決共享存儲的訪問沖突和帶寬不足問題。
[0009] 為達(dá)到上述目的,本發(fā)明的技術(shù)方案是送樣實現(xiàn)的:
[0010] 本發(fā)明實施例中提供了一種共享存儲并發(fā)訪問處理方法,包括:
[0011] 對于各個訪問接口上的訪問隊列,從任意一個或多個所述訪問隊列任意選擇未完 成的存儲訪問,所選擇的存儲訪問之間不存在堆Bank沖突;
[0012] 對所選擇的存儲訪問并行譯碼,并傳輸給各自對應(yīng)的Bank。
[0013] 上述方案中,所述方法還包括:
[0014] 根據(jù)所選擇的存儲訪問的ID,隨時更新其傳輸狀態(tài);
[0015] 將已處理完成的存儲訪問的ID告知相應(yīng)的訪問接口,使得訪問接口將相應(yīng)的存 儲訪問從訪問隊列中移除。
[0016] 上述方案中,每個所述訪問接口對應(yīng)一個含多個未完成傳輸?shù)脑L問隊列,所選擇 的存儲訪問不大于訪問接口總數(shù)。
[0017] 本發(fā)明實施例中還提供了一種共享存儲并發(fā)訪問處理裝置,包括:共享總線、多個 訪問接口、共享存儲訪問交換管理單元和共享存儲器,其中,
[0018] 共享總線,用于為來自訪問源的存儲訪問提供讀寫通道,支持未完成傳輸,支持亂 序傳輸;
[0019] 訪問接口,用于接受通過所述共享總線送來的存儲訪問,并將接受的存儲訪問放 入訪問隊列;
[0020] 共享存儲訪問交換管理單元包括;訪問選擇模塊和并行譯碼模塊,其中,
[0021] 訪問選擇模塊,用于針對各個所述訪問接口上的訪問隊列,從任意一個或多個所 述訪問隊列任意選擇未完成的存儲訪問,所選擇的存儲訪問之間不存在Bank沖突;
[0022] 并行譯碼模塊,用于對所述訪問選擇模塊選擇的存儲訪問并行譯碼,并傳輸給各 自對應(yīng)的堆Bank ;
[0023] 共享存儲器,包括多個邏輯塊,所述邏輯塊與訪問接口沒有明顯的對應(yīng)關(guān)系,每個 邏輯塊包括多個Bank,所述邏輯塊是指提供連續(xù)地址的邏輯存儲單元,Bank是用來進行地 址行列交織的更小的物理存儲單元。
[0024] 上述方案中,所述共享存儲訪問交換管理單元還包括傳輸狀態(tài)更新模塊;
[0025] 所述訪問選擇模塊,還用于在選擇存儲訪問后,將所選擇的存儲訪問的ID發(fā)送給 所述傳輸狀態(tài)更新模塊;
[0026] 所述傳輸狀態(tài)更新模塊,用于根據(jù)所述存儲訪問的ID,隨時更新其傳輸狀態(tài);并, 將已處理完成的存儲訪問的ID告知相應(yīng)的訪問接口;
[0027] 所述訪問接口,還用于根據(jù)已處理完成的存儲訪問的ID,將相應(yīng)的存儲訪問從訪 問隊列中移除。
[0028] 上述方案中,每個所述訪問接口對應(yīng)一個含多個未完成傳輸?shù)脑L問隊列,所選擇 的存儲訪問不大于訪問接口總數(shù)。
[0029] 本發(fā)明實施例中還提供了一種共享存儲并發(fā)訪問處理方法,包括:
[0030] 對于每個需要返回的反饋數(shù)據(jù),選擇任意一個訪問接口作為其通過接口;
[0031] 將反饋數(shù)據(jù)及其伴隨信息送給訪問接口,所述伴隨信息包含訪問ID和所述通過 接口的標(biāo)識。
[0032] 上述方案中,選擇任意一個訪問接口作為其通過接口,包括:
[0033] 優(yōu)先選擇所述反饋數(shù)據(jù)對應(yīng)的訪問接口作為其通過接口;
[0034] 如果所述反饋數(shù)據(jù)對應(yīng)的訪問接口存在訪問沖突,則選擇任意一個當(dāng)前不需要返 回數(shù)據(jù)的訪問接口作為其通過接口。
[0035] 上述方案中,所述方法還包括:
[0036] 訪問接口接收所述反饋數(shù)據(jù)及其伴隨信息,并根據(jù)所述伴隨信息將所述反饋數(shù)據(jù) 通過共享總線返回給訪問源。
[0037] 本發(fā)明實施例中還提供了一種共享存儲并發(fā)訪問處理裝置,包括:共享總線、多個 訪問接口、共享存儲訪問交換管理單元和共享存儲器,其中,
[0038] 共享總線,用于為來自訪問源的存儲訪問提供讀寫通道,支持未完成傳輸,支持亂 序傳輸;
[0039] 訪問接口,用于接受通過所述共享總線送來的存儲訪問,并將接受的存儲訪問放 入訪問隊列;W及,用于根據(jù)反饋數(shù)據(jù)的伴隨信息,將需要返回的反饋數(shù)據(jù)通過所述共享總 線返回給訪問源;
[0040] 共享存儲訪問交換管理單元包括;接口選擇模塊,用于針對存儲訪問的反饋數(shù)據(jù), 選擇任意一個所述訪問接口作為其通過接口,并將所述反饋數(shù)據(jù)及其伴隨信息送給訪問接 口,所述伴隨信息包含所述反饋數(shù)據(jù)所對應(yīng)存儲訪問的ID和所述通過接口的標(biāo)識;
[0041] 共享存儲器,包括多個邏輯塊