字段;
[0041] 3)輪詢標識,表明該指令發(fā)送至目標存儲單元(也即執(zhí)行該指令的存儲單元)之 后,是否需要通過總線查詢該指令已經(jīng)執(zhí)行完畢;
[0042] 讀指令和寫指令之外的指令(如讀取存儲單元ID的指令)的等待時間較短,在該 類指令被發(fā)送至目標存儲單元之后即可認為已經(jīng)執(zhí)行完畢,指令管理器200可以從指令隊 列緩存中按照優(yōu)先級(指令隊列緩存的指令的優(yōu)先級與指令讀取至指令隊列緩存的先后 順序一致,也就是先進入指令隊列緩存的指令的優(yōu)先級高于后進入指令隊列緩存的指令的 優(yōu)先級)提取對應該目標存儲單元的指令(如果存在)并通過接口控制器300發(fā)送至該目 標存儲單元執(zhí)行,因此,讀指令和寫指令之外的指令對應的輪詢標識為否,表示指令發(fā)送至 目標存儲單元之后(發(fā)送之后即認為指令已經(jīng)被目標存儲單元執(zhí)行完畢),不需要通過總 線查詢發(fā)送的指令是否被目標存儲單元執(zhí)行完畢;
[0043] 存儲單元400執(zhí)行讀指令和寫指令需要的等待時間相對較長,指令管理器200通 過接口控制器300發(fā)送讀指令或寫指令至目標存儲單元之后,需要通過總線查詢發(fā)送的 指令是否被目標存儲單元是否執(zhí)行完畢(例如目標存儲單元為準備狀態(tài)表征指令執(zhí)行完 畢,目標存儲單元為繁忙狀態(tài)表征指令尚未執(zhí)行完畢);因此,讀指令和寫指令的輪詢標識 為是,表征指令管理器200通過接口控制器300發(fā)送指令至目標存儲單元之后還需要查詢 (通過輪詢管理器500查詢,后續(xù)進行說明)發(fā)送的指令是否執(zhí)行完畢,在執(zhí)行完畢時才從 指令隊列緩存中提取對應該目標存儲單元的指令(如果存在)并通過接口控制器300發(fā)送 至該目標存儲單元執(zhí)行。
[0044] 指令管理器200在基于指令緩存隊列中指令的優(yōu)先級(如前,指令隊列緩存的指 令的優(yōu)先級與指令存儲至指令隊列緩存的順序一致,也就是先進入指令隊列緩存的指令的 優(yōu)先級高于后進入指令隊列緩存的指令的優(yōu)先級)選取可執(zhí)行指令時,還需要參考接口控 制器300向指令管理器200傳送的存儲器400中各存儲單元的狀態(tài)信息(存儲單元的狀態(tài) 包括可以執(zhí)行指令的準備狀態(tài)、以及正在執(zhí)行指令的繁忙狀態(tài));
[0045] 其中,接口控制器300每向存儲器400中的存儲單元發(fā)送一次指令(也即產(chǎn)生對 應的時序信號)或者執(zhí)行完一次存儲單元的狀態(tài)查詢,就可以將存儲器400中各存儲單元 的狀態(tài)傳遞給指令管理器200 ;指令管理器200根據(jù)存儲器400中各存儲單元400的狀態(tài) 信息,判斷指令隊列緩存中最高優(yōu)先級的指令對應的目標存儲單元是否處于準備狀態(tài),若 是,則判定最高優(yōu)先級的指令為可執(zhí)行指令;若否,則繼續(xù)判斷次高優(yōu)先級的指令對應的目 標存儲單元是否處于準備狀態(tài),直至判斷出處于準備狀態(tài)的目標存儲單元,并將操作目標 為處于準備狀態(tài)的目標存儲單元的最高優(yōu)先級的指令確定為可執(zhí)行指令,向仲裁器100請 求總線,仲裁器100分配總線后(仲裁器100分配總線的處理在步驟105說明)在請求到 總線時將可執(zhí)行指令指令發(fā)送至接口控制器300,以使接口控制將可執(zhí)行指令發(fā)送至目標 存儲單元(也就是使接口控制器300產(chǎn)生對應指令的時序信號使目標存儲單元執(zhí)行)。
[0046] 步驟102,指令管理器200在請求到總線時,通過接口控制器300并經(jīng)由總線發(fā)送 可執(zhí)行指令至存儲器400中對應的目標存儲單元,并通過接口控制器300將可執(zhí)行指令的 計時信息讀取至輪詢隊列緩存。
[0047] 指令管理器200在請求到總線時通過總線發(fā)送可執(zhí)行指令至接口控制器300,由 接口控制器300產(chǎn)生可執(zhí)行指令對應的時序信號并通過總線發(fā)送給目標存儲單元以使目 標存儲單元執(zhí)行指令(可執(zhí)行指令),如前,接口控制器300發(fā)送的指令(可執(zhí)行指令)為讀 指令或寫指令時需要查詢目標存儲單元是否執(zhí)行完畢發(fā)送的指令,以在確定執(zhí)行完畢后發(fā) 送的新的指令,鑒于此,在向目標存儲單元發(fā)送可執(zhí)行指令以后,參見圖4,接口控制器300 針對不同的可執(zhí)行指令執(zhí)行以下處理:
[0048] 步驟201,接口控制器300解析可執(zhí)行指令,得到可執(zhí)行指令的輪詢標識。
[0049] 步驟202,若輪詢標識表征可執(zhí)行指令需要查詢對應的目標存儲單元的狀態(tài)(表 征指令為讀指令或寫指令),則接口控制器300將可執(zhí)行指令的計時信息(可以為可執(zhí)行指 令的延遲時間)讀取至輪詢隊列緩存(以由輪詢管理器500基于輪詢隊列緩存查詢各計時 信息歸屬的指令對應的目標單元是否執(zhí)行指令完畢),并在指令隊列緩存中刪除可執(zhí)行指 令;當接口控制器300從指令管理器200的指令隊列緩存中刪除可執(zhí)行指令之后,指令管理 器200還從處理器600讀取待執(zhí)行的指令填充至指令隊列緩存的隊尾。
[0050] 步驟203,若輪詢標識表征可執(zhí)行指令不需要查詢對應的目標存儲單元的狀態(tài) (表征可執(zhí)行指令為讀指令和寫指令之外的指令,在可執(zhí)行指令發(fā)送即可認為指令已經(jīng)執(zhí) 行完畢),在指令隊列緩存中刪除可執(zhí)行指令;當接口控制器300從指令管理器200的指令 隊列緩存中刪除可執(zhí)行指令之后,指令管理器200還從處理器600讀取待執(zhí)行的指令填充 至指令隊列緩存的隊尾。
[0051] 步驟103,輪詢管理器500在輪詢隊列緩存中任意的計時信息到達后發(fā)送總線請 求以請求總線。
[0052] 輪詢隊列緩存由輪詢管理器500維護,輪詢隊列緩存中計時信息的示例如表2所 示,
[0053]
[0054]表2
[0055] 參見表2,輪詢隊列緩存中的每個計時信息歸屬于(對應)接口控制器300發(fā)送的 一個指令(可執(zhí)行指令),計時信息的優(yōu)先級排序與計時信息被接口控制器300讀取至指令 隊列緩存中的先后順序對應,也就是先讀取至輪詢隊列緩存中的計時信息的優(yōu)先級高于后 讀取至輪詢隊列緩存中的計時信息的優(yōu)先級;計時信息被讀取至輪詢隊列緩存時,由輪詢 管理器500通過運行定時器維護每個指令的計時信息,在輪詢隊列緩存中的每個計時信息 到達時,向仲裁器100請求總線以使仲裁器100進行總線分配的仲裁,以在分配到總線時通 過總線查詢計時信息歸屬的指令所對應的目標存儲單元是否執(zhí)行完畢。
[0056] 步驟104,輪詢管理器500在請求到總線時,通過接口控制器300查詢計時信息歸 屬的指令所對應的目標存儲單元是否執(zhí)行完畢(所接收的可執(zhí)行指令)。
[0057] 實際上,輪詢管理器500是與接口控制器300配合查詢目標存儲單元的狀態(tài),輪詢 管理器500使接口控制器300通產(chǎn)生對應目標存儲單元狀態(tài)查詢的時序信號,并使接口控 制器300通過總線發(fā)送時序信號,以檢測目標存儲單元是否執(zhí)行完畢指令。
[0058] 參見圖5,通過接口控制器300查詢計時信息歸屬的指令所對應的目標存儲單元 是否執(zhí)行完畢,包括以下步驟:
[0059] 步驟301,通過接口控制器300查詢計時信息歸屬的指令所對應的目標存儲單 元的狀態(tài);當目標存儲單元處于準備狀態(tài)時,表征目標存儲單元執(zhí)行指令完畢,執(zhí)行步驟 302 ;當目標存儲單元處于繁忙狀態(tài)時,表征目標存儲單元正在執(zhí)行指令,執(zhí)行步驟303并 轉入步驟301。
[0060] 步驟302,輪詢管理器500通過接口控制器300查詢到計時信息歸屬的指令所對應 的目標存儲單元執(zhí)行完畢時,無需再次查詢目標存儲單元的狀態(tài),從輪詢隊列緩存中刪除 計時信息。
[0061] 步驟302,輪詢管理器500通過接口控制器300查詢到計時信息歸屬的指令所對應 的目標存儲單元未執(zhí)行完畢時,還需要繼續(xù)查詢目標存儲單元的狀態(tài),因此,更新輪詢隊列 緩存中的計時信息并針對更新后的計時信息進行計時處理;可選地,由于目標存儲單元已 經(jīng)針對接收的可執(zhí)行指令執(zhí)行了計時時間所對應的時間段,之后目標存儲單元執(zhí)行指令所 處的時間相對減少,如果更新后的計時信息的等待時間小于更新前計時時間的等待時間, 將會避免沒有及時檢測出目標存儲單元處于準備狀態(tài)的情況,從而指令管理器200可以將 新的指令通過接口控制器300發(fā)送至給目標存儲單元,提升執(zhí)行指令的效率。
[0062] 步驟105,仲裁器100在總線空閑時基于預設策略對接收到的總線請求進行仲裁, 并基于仲裁結果分配總線。
[0063] 參見步驟101和步驟102,仲裁器100會接收到來自指令管理器200的總線請求, 參見步驟103和步驟104,仲裁器100會接收到來自輪詢管理器500的總線請求;當同時接 收到兩個總線請求時,參見圖6,總線仲裁包括以下兩種情況:
[0064] 步驟401,同時接收到來自指令管理器200針對可執(zhí)行指令的總線請求、以及輪詢 管理器500針對輪詢隊列緩存中的計時信息到達后發(fā)送的總線請求時,為針對可執(zhí)行指令 的總線請求分配總線。
[0065] 也就是說,指令管理器200和輪詢管理器500同時向仲裁器100發(fā)送總線請求時, 指令管理器200的優(yōu)先級總是高于輪詢管理器500的優(yōu)先級。
[0066] 步驟402,同時接收到輪詢管理器500針對輪詢隊列緩存中的至少兩個計時信息 到達后同時發(fā)送的至少兩個總線請求時,為針對至少兩個計時信息中最高優(yōu)先級的計時信 息的總線請求分配總線。
當前第2頁
1 
2 
3 
4