系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構及其轉換方法
【專利摘要】系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構及其轉換方法,轉換結構包括處理器核以及通過片上總線與處理器核進行數(shù)據(jù)交互的多個IP核,存儲器控制器IP與片外主存儲器連通;處理器核包括指令流水線以及接收指令流水線操作指令的命中判斷邏輯單元,命中判斷邏輯單元與cache總線接口之間設置有訪問位寬判斷單元和位寬/地址轉換單元,命中判斷邏輯單元向指令流水線發(fā)送判斷結果,處理器核通過cache總線接口與片上總線連接。本發(fā)明轉換方法對于字節(jié)或者半字的讀訪問,如果發(fā)生cache缺失并且其訪問空間屬于可緩存區(qū)域,則位寬/地址轉換單元將其轉換成單字訪問,然后通過總線完成訪存,既不影響原有的更新策略又不失靈活性。
【專利說明】系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構及其轉 換方法
【技術領域】
[0001] 本發(fā)明涉及系統(tǒng)芯片中處理器核的數(shù)據(jù)處理結構及其處理方法,具體涉及一種系 統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構及其轉換方法。
【背景技術】
[0002] 在嵌入式系統(tǒng)芯片(SOC)中,處理器核負責協(xié)調(diào)各個IP核的有序工作,它們通過 片上總線的方式集成在一起,從而有利于各種IP核的移植和復用,提高了系統(tǒng)開發(fā)的質(zhì)量 和速率。其中,片上總線以ARM公司推出的AHB高速總線協(xié)議較為常見。該協(xié)議定義了 32 位的最小總線位寬,并且規(guī)定了主機和從機之間的讀寫訪問時序。通常情況下,處理器核對 外部存儲器的訪問可以包括8位字節(jié)、16位半字、32位單字以及64位雙字等幾種不同的位 寬形式。對于單字和雙字訪問而言,整個32位的總線數(shù)據(jù)都是有效的,可以統(tǒng)一處理;然 而對于小于32位的字節(jié)或者半字訪問,該總線上的數(shù)據(jù)格式并沒有統(tǒng)一的規(guī)定。這樣,不 同的存儲器控制器IP核,在執(zhí)行字節(jié)或半字的讀操作時,給片上總線返回的32位也不盡相 同。出于提高系統(tǒng)性能的考慮,這種數(shù)據(jù)通常是被緩存在片上高速緩存器cache中的。直 接移植不兼容的存儲器控制器IP核,就可能會造成系統(tǒng)中cache與外部存儲器數(shù)據(jù)的不一 致而導致錯誤。根據(jù)存儲器控制器IP核修改成熟的cache設計結構,會引入額外的設計和 驗證工作,延長SOC芯片的研制周期??梢姡鉀QAHB總線協(xié)議空白引起的處理器核與存儲 器控制器之間數(shù)據(jù)格式的兼容性問題,對SOC芯片的可靠性和開發(fā)效率來說非常重要。 [0003]目前,針對處理器核的字節(jié)或者半字的讀訪問操作,各種存儲器控制器IP核所返 回的數(shù)據(jù)格式并沒有得到統(tǒng)一,它們只是保證所需的字節(jié)或者半字數(shù)據(jù)的正確性,但整個 數(shù)據(jù)的其他位取值則各不相同。具體來說,主要包括以下幾種:
[0004] 1)存儲器控制器IP將字節(jié)或者半字訪問統(tǒng)一都當成單字訪問,并將所需字節(jié)或 者半字所在的整個32位字單元讀出到數(shù)據(jù)總線上;
[0005] 2)存儲器控制器IP能準確的讀出對應字節(jié)或半字,并用固定值0或1來填充32 位數(shù)據(jù)中的其他位;
[0006] 3)還有一些存儲器控制器IP在讀出所需字節(jié)或半字的同時,將32位數(shù)據(jù)字的其 它位也復制成該字節(jié)或半字。
[0007] 上述三種不同的存儲器控制器IP會對片上cache的更新操作產(chǎn)生不同影響。第一 種存儲器控制器IP的機制,能保證cache和主存的數(shù)據(jù)一致性,所以集成到系統(tǒng)中不會對 cache的更新操作造成影響;但是,當訪問那些無需緩存在cache中的數(shù)據(jù)區(qū)域如I/O空間 時,把字節(jié)或者半字訪問統(tǒng)一都當成32位的字訪問勢必會產(chǎn)生不必要的訪問開銷和延遲, 這就大大降低了訪問效率。對于第二種和第三種存儲器控制器IP而言,它們的數(shù)據(jù)生成方 式與cache的更新方式不兼容。因為存儲器控制器返回的32位數(shù)據(jù)中,僅有對應字節(jié)和半 字與主存一致,其他位與主存并不一致;而cache的更新是以單字為基本單位,要求該字中 的32位均和主存一致。如果cache用該存儲器控制器返回數(shù)據(jù)更新,會造成cache中緩存 的副本和主存中的原數(shù)據(jù)不一致的情況,如果后續(xù)再次訪問該地址,會導致系統(tǒng)執(zhí)行或運 算出錯。為了避免數(shù)據(jù)不一致,需要在選擇IP時進行充分的考慮,在選擇范圍受限的情況 下,也可通過修改cache的更新機制解決,即在進行字節(jié)或者半字位寬的讀操作發(fā)生缺失 時,不進行更新操作。這種修改雖然保證了數(shù)據(jù)的一致性,但由于未能緩存系統(tǒng)最近剛使用 過的數(shù)據(jù),因此降低了 cache的命中率,從而影響處理器核的性能。另外,這種根據(jù)不同存 儲器控制器IP對片上cache進行的修改,勢必會帶來額外的驗證工作以及修改后設計版本 的管理難度。
[0008] 由此可見,在系統(tǒng)芯片中,片上cache的更新機制與存儲器控制器IP不兼容的問 題輕則會導致處理器核訪問外部存儲器的效率降低,重則會導致整個系統(tǒng)執(zhí)行出錯。如何 加強處理器核對外設的兼容性,使它正確、高效的訪問各種外部存儲器的同時又能避免復 雜的設計修改,是系統(tǒng)芯片設計中的一個關鍵問題。經(jīng)檢索相關文獻,目前尚未發(fā)現(xiàn)可以很 好解決該問題的方法。
【發(fā)明內(nèi)容】
[0009] 針對現(xiàn)有技術中存在的問題,本發(fā)明提供通過對處理器核中cache與AHB總線接 口的歸一化設計,使得處理器核能夠與不同的存儲器控制器IP完全兼容,不同的存儲器控 制器IP在進行字節(jié)或半字讀訪問時,返回的數(shù)據(jù)形式統(tǒng)一,在保證處理器核執(zhí)行性能的同 時減小SOC系統(tǒng)設計和集成復雜度的系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構及 其轉換方法。
[0010] 為了實現(xiàn)上述目的,本發(fā)明系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構, 包括處理器核以及通過片上總線與處理器核進行數(shù)據(jù)交互的多個IP核,其中存儲器控制 器IP與片外主存儲器連通;所述的處理器核包括指令流水線以及能夠接收指令流水線讀/ 寫操作指令的命中判斷邏輯單元,命中判斷邏輯單元與cache總線接口之間設置有訪問位 寬判斷單元和位寬/地址轉換單元,并且命中判斷邏輯單元能夠向指令流水線發(fā)送判斷結 果數(shù)據(jù),處理器核通過cache總線接口與片上總線連接。
[0011] 本發(fā)明的系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換方法,實現(xiàn)步驟如下:
[0012] 步驟一,對處理器核的訪存請求進行cache命中判斷和訪問位寬判斷:如果是單 字以上的讀操作或者是任意位寬的寫操作,則cache不必進行額外的處理,仍然按照操作 本身要求的位寬形式直接進行訪問;如果是字節(jié)或半字的讀操作并且發(fā)生了數(shù)據(jù)缺失,則 進入更新條件判斷;
[0013] 步驟二,判斷當前訪問情況是否滿足cache更新的條件:如果當前訪問對應的是 不可緩存區(qū)域中的數(shù)據(jù),cache不會利用此次返回的讀數(shù)據(jù)進行更新,無需進行額外的處 理,依然保持原位寬;如果當前的訪問區(qū)域是可緩存的,需要完成訪問位寬的轉換控制, cache再利用此次訪存操作進行更新;
[0014] 步驟三,訪問位寬的轉換控制:將當前字節(jié)或半字的訪問位寬重新轉換成單字位 寬后再輸出給片上總線,同時將該字節(jié)或半字的地址修改為按照單字位寬對齊的字地址;
[0015] 步驟四,處理器核截取所需的字節(jié)或半字數(shù)據(jù):根據(jù)處理器核自身原始的訪問位 寬從返回的數(shù)據(jù)字中截取所需的字節(jié)或者半字,至此完成對片外存儲器中字節(jié)或半字的讀 訪問。
[0016] 所述的步驟二中可緩存區(qū)域包括片外PROM和SRAM存儲區(qū)域,不可緩存區(qū)域包括 外部的I/O區(qū)域。
[0017] 所述的片上總線為AHB總線。
[0018] 與現(xiàn)有技術相比,本發(fā)明系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構具有 以下有益的技術效果:通過在命中判斷邏輯單元與cache及其總線接口之間設置訪問位寬 判斷單元和位寬/地址轉換單元,對于字節(jié)或者半字的讀訪問,如果發(fā)生cache缺失并且其 訪問空間屬于cache可緩存區(qū)域,那么位寬/地址轉換單元將其轉換成單字訪問,然后通 過總線完成訪存,如果訪問空間不屬于cache可緩存區(qū)域,那么位寬/地址轉換單元不進 行單字訪問的轉換,這樣能很好的實現(xiàn)處理器核與不同存儲器控制器IP的完全兼容,保證 cache與主存數(shù)據(jù)的一致性,設計結構清晰,修改范圍非常局部化,在不影響cache原有的 更新策略的基礎上又不失靈活性。
[0019] 本發(fā)明系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換方法具有以下有益的技術 效果:
[0020] (1)增強了處理器核對不同存儲器控制器IP核的兼容性。各種存儲器控制器IP 核在與處理器核集成時,可以不用考慮該存儲器控制器在進行字節(jié)或半字讀操作時所返回 的32位數(shù)據(jù)的生成方式,經(jīng)過本發(fā)明方法轉換后,最終讀數(shù)據(jù)的生成方式是確定統(tǒng)一的。
[0021] (2)保持了較高的cache命中率?,F(xiàn)有的設計有時為了避免cache和主存數(shù)據(jù)的 不一致而禁止cache進行更新,這勢必會降低cache的命中率和系統(tǒng)性能;本發(fā)明統(tǒng)一了字 節(jié)或半字讀操作時存儲器控制器的讀數(shù)據(jù)的生成方式,確保了返回的32位數(shù)據(jù)與主存對 應地址數(shù)據(jù)的一致性,因此cache能夠正常更新并對最近剛使用過的數(shù)據(jù)進行緩存,從而 保持了較高的命中率。
[0022] (3)提高了處理器核的訪存效率。本發(fā)明通過判斷當前的字節(jié)或半字訪問所對應 的存儲區(qū)域是否為cache的可緩存區(qū)域,對于cache不緩存不更新的存儲區(qū)域,其訪問位寬 無需被轉換成單字訪問,從而節(jié)省了對無效字節(jié)或半字的訪問開銷,提高了處理器核整體 的訪存效率。
[0023] (4)設計修改簡單且易于實施。本發(fā)明所進行的設計修改僅限于cache與總線的 接口范圍內(nèi),非常局部化,不會影響系統(tǒng)中的其它部件;當訪問不是字節(jié)或半字的讀操作或 者不屬于cache可更新的存儲區(qū)域時,該系統(tǒng)的執(zhí)行和控制方式與修改前完全一樣。
[0024] (5)增加的邏輯規(guī)模非常小。本發(fā)明僅僅在cache與總線接口中增加訪問位寬 的判斷和位寬轉換的控制邏輯,它相對于整個片上系統(tǒng)而言不會產(chǎn)生額外的面積和功耗開 銷。
【專利附圖】
【附圖說明】
[0025] 圖1本發(fā)明系統(tǒng)芯片的總體控制結構框圖;
[0026] 圖2 (a)存儲器控制器IP無效字節(jié)填充0或1的數(shù)據(jù)路徑框圖;
[0027] 圖2 (b)存儲器控制器IP無效字節(jié)復制為有效字節(jié)的數(shù)據(jù)路徑框圖;
[0028] 圖2(c)存儲器控制器IP按照單字進行訪問的數(shù)據(jù)路徑框圖;
[0029] 圖3本發(fā)明位寬轉換邏輯圖;
[0030] 圖4本發(fā)明地址轉換邏輯圖;
[0031] 圖中:1-處理器核;2-片上總線;3-IP核;4-片外主存儲器;5-訪問位寬判斷單 元;6-位寬/地址轉換單元。
【具體實施方式】
[0032] 下面結合附圖對本發(fā)明做進一步的詳細說明,所述是對本發(fā)明的解釋而不是限 定。
[0033] 參見圖1,本發(fā)明系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構,包括處理器 核1以及通過片上總線2與處理器核1進行數(shù)據(jù)交互的多個IP核3,其中存儲器控制器IP 與片外主存儲器4連通;處理器核1包括指令流水線以及能夠接收指令流水線讀/寫操作 指令的命中判斷邏輯單元,命中判斷邏輯單元與cache總線接口之間設置有訪問位寬判斷 單元5和位寬/地址轉換單元6,并且命中判斷邏輯單元能夠向指令流水線發(fā)送判斷結果數(shù) 據(jù),處理器核1通過cache總線接口與片上總線2連接。
[0034] 典型系統(tǒng)芯片的總體控制結構主要分為處理器核主控單元、片上互連總線、以及 各種功能IP核等層次。對于讀操作而言,如果cache命中,那么處理器核直接從cache中 讀取數(shù)據(jù),此時cache無需更新并且也無需通過總線訪問外部存儲器。然而如果cache發(fā) 生缺失,處理器核就必須停下來等待,直到其訪存數(shù)據(jù)正確返回。由于cache中數(shù)據(jù)更新的 基本單位是32位的數(shù)據(jù)字,因此當進行大于或等于32位訪問位寬的讀操作時,其訪問形式 和cache的更新自然都以32位數(shù)據(jù)字為基準,但是當訪問位寬是8位字節(jié)或16位半字時, 通過存儲器控制器IP所返回的32位數(shù)據(jù)字可能只有部分的字節(jié)或半字有效。為了防止因 存儲器控制器IP核的兼容性問題導致返回數(shù)據(jù)在更新cache時造成該數(shù)據(jù)與主存的不一 致,本發(fā)明對cache進行了局部修改,增加了訪問位寬判斷單元5和位寬/地址轉換單元6。
[0035] 參見圖2 (a),2 (b),2 (c),處理器核在進行8位字節(jié)讀訪問時,圖2 (a)和圖2 (b)使 用的存儲器控制器IP在讀回所需字節(jié)的同時,分別將32位數(shù)據(jù)線上的其它字節(jié)位補固定 值0或1、或者將無效字節(jié)都復制成有效字節(jié)。雖然處理器核最終都可以讀回正確的數(shù)據(jù)字 節(jié),但是它們都會造成cache緩存的數(shù)據(jù)字與外部主存不一致,有可能導致處理器核后續(xù) 執(zhí)行出錯。因此在應用這種IP時需要修改處理器核中cache的更新機制,避免cache的更 新。圖2(c)中使用的存儲器控制器IP將字節(jié)訪問請求一律按照單字進行訪問,雖保證了 cache數(shù)據(jù)的一致性,但由于它需要對無效字節(jié)也進行訪問,因此極大的降低了訪問外部存 儲器的效率。
[0036] 參見圖3,針對存儲器控制器IP的兼容性問題而導致cache不一致或影響訪存效 率的這兩種缺陷,本發(fā)明從系統(tǒng)芯片結構中的cache與AHB總線接口著手,實現(xiàn)字節(jié)或半 字讀訪問的統(tǒng)一控制,結合AHB總線訪問位寬對照表與位寬轉換邏輯圖能夠看出,只有在 當前的讀訪問發(fā)生數(shù)據(jù)缺失并且訪問位寬是字節(jié)或半字以及所訪問的地址空間屬于cache 可更新的存儲區(qū)域時,才進行訪問位寬的轉換。此時轉換控制信號convert為高有效,它 將處理器核發(fā)出的size[2:0]="000"或"001"的訪問位寬統(tǒng)一轉換成hsize[2:0]= "010"的單字訪問位寬,并輸出給AHB總線。當不滿足轉換條件時,convert信號為低,使 hsize [2:0]直接來源于size [2:0],即訪問位寬不改變。
[0037] 表IAHB總線訪問位寬對照表
[0038]
【權利要求】
1. 一種系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換結構,其特征在于:包括處理器 核(1)以及通過片上總線(2)與處理器核(1)進行數(shù)據(jù)交互的多個IP核(3),其中存儲器 控制器IP與片外主存儲器(4)連通;所述的處理器核(1)包括指令流水線以及能夠接收指 令流水線讀/寫操作指令的命中判斷邏輯單元,命中判斷邏輯單元與cache總線接口之間 設置有訪問位寬判斷單元(5)和位寬/地址轉換單元(6),并且命中判斷邏輯單元能夠向指 令流水線發(fā)送判斷結果數(shù)據(jù),處理器核(1)通過cache總線接口與片上總線(2)連接。
2. -種系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換方法,其特征在于,實現(xiàn)步驟如 下: 步驟一,對處理器核(1)的訪存請求進行cache命中判斷和訪問位寬判斷:如果是單字 以上的讀操作或者是任意位寬的寫操作,則cache不必進行額外的處理,仍然按照操作本 身要求的位寬形式直接進行訪問;如果是字節(jié)或半字的讀操作并且發(fā)生了數(shù)據(jù)缺失,則進 入更新條件判斷; 步驟二,判斷當前訪問情況是否滿足cache更新的條件:如果當前訪問對應的是不可 緩存區(qū)域中的數(shù)據(jù),cache不會利用此次返回的讀數(shù)據(jù)進行更新,無需進行額外的處理,依 然保持原位寬;如果當前的訪問區(qū)域是可緩存的,需要完成訪問位寬的轉換控制,cache再 利用此次訪存操作進行更新; 步驟三,訪問位寬的轉換控制:將當前字節(jié)或半字的訪問位寬重新轉換成單字位寬后 再輸出給片上總線(2),同時將該字節(jié)或半字的地址修改為按照單字位寬對齊的字地址; 步驟四,處理器核(1)截取所需的字節(jié)或半字數(shù)據(jù):根據(jù)處理器核自身原始的訪問位 寬從返回的數(shù)據(jù)字中截取所需的字節(jié)或者半字,至此完成對片外存儲器中字節(jié)或半字的讀 訪問。
3. 根據(jù)權利要求2所述的系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換方法,其特征 在于:所述的步驟二中可緩存區(qū)域包括片外PROM和SRAM存儲區(qū)域,不可緩存區(qū)域包括外部 的I/O區(qū)域。
4. 根據(jù)權利要求2所述的系統(tǒng)芯片中cache與總線接口的統(tǒng)一位寬轉換方法,其特征 在于:所述的片上總線(2)為AHB總線。
【文檔編號】G06F13/16GK104375962SQ201410628082
【公開日】2015年2月25日 申請日期:2014年11月10日 優(yōu)先權日:2014年11月10日
【發(fā)明者】李紅橋, 肖建青, 裴茹霞, 婁冕, 張洵穎 申請人:中國航天科技集團公司第九研究院第七七一研究所