一種面向pm的訪存請求解析裝置與方法
【專利摘要】本發(fā)明公開了一種面向PM的訪存請求解析裝置,包括訪存請求解析模塊、優(yōu)先級解析模塊、命令解析模塊和執(zhí)行模塊,訪存請求解析模塊,用于將訪存請求根據(jù)其內(nèi)部的列地址、行地址、Bank號、讀寫標志的統(tǒng)計特征分發(fā)到不同特性的請求隊列中,以便所述訪存請求能夠被合理調(diào)度;優(yōu)先級解析模塊,用于將訪存請求解析模塊中所述不同特性的請求隊列按照被調(diào)度的次序進行優(yōu)先級劃分,在所述不同特性的請求隊列內(nèi)部按照FR?FCFS調(diào)度;命令解析模塊,用于將來自優(yōu)先級解析模塊的訪存請求轉(zhuǎn)化為具體的訪存操作命令,結(jié)合PM陣列當(dāng)前的狀態(tài)信息將所述操作命令發(fā)送出去;執(zhí)行模塊,用于根據(jù)命令解析模塊中發(fā)出的操作命令對PM陣列執(zhí)行具體的操作。
【專利說明】
一種面向PM的訪存請求解析裝置與方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明屬于計算機系統(tǒng)結(jié)構(gòu)技術(shù)領(lǐng)域,特別涉及一種PM的訪存請求解析裝置與方 法。
【背景技術(shù)】
[0002] 在計算機體系結(jié)構(gòu)設(shè)計中,由于PM的讀寫時間嚴重不對稱,所以,PM控制器對來自 最后一級緩存的讀寫訪存請求進行解析的方法很大程度上決定了系統(tǒng)的性能,拙劣的讀寫 訪存請求解析方法將導(dǎo)致PM控制器很難對所述請求進行合理的調(diào)度,甚至可能成為整個系 統(tǒng)的瓶頸。然而,現(xiàn)有技術(shù)中鮮有專門針對PM的特性進行訪存請求解析的方法和裝置。
[0003] 在本技術(shù)領(lǐng)域,涉及的一下一些技術(shù)術(shù)語:
[0004] DIMM:Dual Inline Memory Module,即雙列直插式存儲模塊。
[0005] DRAM:Dynamic Random Access Memory,動態(tài)隨機存儲器,即現(xiàn)階段廣泛使用的內(nèi) 存,其特點是斷電后信息丟失,理論上讀寫壽命不受限制,并且需要周期性的對其內(nèi)部電容 進行充電操作,這個操作稱為刷新(refresh)。
[0006] PM:Persistent Memory,非易失性內(nèi)存或持久性內(nèi)存,STTRAM,PCM,RRAM都屬于 PM,其特點是斷電后信息不丟失,可字節(jié)尋址;但讀寫次數(shù)受限制,并且讀寫不均衡,根據(jù)材 料的不同,PM寫耗費時間大概是其讀耗費時間的4到10倍,PM讀的時間比DRAM慢1到4倍,PM 不需要刷新操作。
[0007] Rank:指的是連接到同一個片選信號的一組存儲芯片,內(nèi)存控制器能夠同時對一 個Rank中的所有芯片進行讀寫操作,這些芯片共享同樣的控制信號。一個DMM中可以包含 多個Rank。
[0008] Bank:內(nèi)存芯片中的存儲模塊。每一個存儲芯片有一組Bank。
[0009] tAL:為了提高控制總線的利用率,PM控制器會提前將READ、WRITE、READ_PS WRITE_P命令發(fā)送到PM執(zhí)行模塊,PM執(zhí)行模塊接收到該命令,經(jīng)過tAL時間的延遲后,才會執(zhí) 行該命令。
[0010] tBURST:數(shù)據(jù)突發(fā)所占據(jù)數(shù)據(jù)線的時間。
[0011 ] tCAS:列選通訪問延遲,指從發(fā)出READ或READ_P,到數(shù)據(jù)線出現(xiàn)穩(wěn)定數(shù)據(jù)的延遲。
[0012] t(XD:列對列延遲,指對同一行進行連續(xù)讀取所發(fā)出列地址的最短時間。
[0013] tCMD:命令傳輸時間。指一條命令從PM控制器發(fā)送到PM執(zhí)行部件所占據(jù)命令線的 時間。
[0014] tCWD:寫延遲,指從發(fā)出WRITE或WRITE_P,到真正將數(shù)據(jù)發(fā)送到數(shù)據(jù)線上的延遲。
[0015] tFAW: 4個Bank同時激活的窗口時間。指在長度為tFAW的時間段內(nèi),PM設(shè)備最多只 能接收四條ACTIVATE命令。
[0016] tRC:行周期。指在同一個Bank中訪問不同行所發(fā)出行激活命令的最短時間間隔。
[0017] tRCD:指從發(fā)出行激活命令到數(shù)據(jù)穩(wěn)定存儲于讀出放大器的時間間隔。
[0018] tRP:預(yù)充電時間,將處于激活狀態(tài)的一行進行預(yù)充電操作的時間。
[0019 ] tRRD:指連續(xù)發(fā)出兩條ACTIVATE命令的時間間隔。
[0020] tRTP:指對某一行發(fā)出讀命令到對該行進行預(yù)充電命令的時間間隔
[0021] tRTRS:Rank到Rank的訪存轉(zhuǎn)換時間。
[0022] tWR:寫入數(shù)據(jù)在數(shù)據(jù)線上傳輸完畢到對相應(yīng)的一行發(fā)出PRECHARGE命令的時間間 隔。
[0023] tWTR:寫入數(shù)據(jù)在數(shù)據(jù)線上傳輸完畢到發(fā)出READ或令的時間間隔.
[0024] tAWD:向一個Bank發(fā)出ACTIVATE命令到向另一個Bank發(fā)送WRITE或WRITE_P命令的 時間間隔。
[0025] tWAD::向一個Bank發(fā)出WRITE命令到向另一個Bank發(fā)送ACTIVATE命令的時間間 隔。
[0026] ACTIVATE:行激活命令,又稱行選通命令,指在向PM設(shè)備讀出或?qū)懭霐?shù)據(jù)之前,將 PM陣列中的一行數(shù)據(jù)讀出并保存到讀出放大器(行緩沖)中。
[0027] PRECHARGE:預(yù)充電命令,對于讀出放大器和PM陣列中的字線進行重位置,以便進 行下一次行激活操作。
[0028] READ:讀命令,用于讀取PM陣列中的數(shù)據(jù)。
[0029] WRITE:寫命令,用于向PM陣列中寫入數(shù)據(jù)。
[0030] READ_P:讀后立即預(yù)充電命令,為復(fù)合命令,等價于向PM執(zhí)行部件發(fā)送了兩條命 令:READ和PRECHARGE命令,由PM執(zhí)行部件在不同的時間點依次分別執(zhí)行讀操作和預(yù)充電操 作。
[0031] WRITE_P:寫后立即預(yù)充電命令,為復(fù)合命令,等價于向PM執(zhí)行部件發(fā)送了兩條命 令:WRITE和PRECHARGE命令,由PM執(zhí)行部件在不同的時間點依次分別執(zhí)行寫操作和預(yù)充電 操作。
[0032] 在現(xiàn)有技術(shù)條件下,ACTIVATE,READ,WRITE,READ_P,WRITE_P, PRECHARGE 執(zhí)行時彼 此間的約束規(guī)程和時間參數(shù)如表1、表2所示。
[0033] 表 1
[0037] 0PEN_PAGE_P0LICY:開放行緩存管理策略,當(dāng)PM陣列中的一行被讀出或?qū)懭霐?shù)據(jù) 后,PM控制器可以不必立即發(fā)送PRECHARGE操作。該行可以保持激活狀態(tài)。
[0038] CL0SE_PAGE_P0LICY:關(guān)閉行緩存管理策略,PM控制器向PM執(zhí)行部件發(fā)出READ_PS WRITE_P命令后,當(dāng)PM陣列中的一行被讀出或?qū)懭霐?shù)據(jù),執(zhí)行部件對這一行立即進行預(yù)充電 操作。
[0039] FR-FCFS: -種訪存請求調(diào)度策略。兩條請求在訪問主存陣列的不同行時,若其中 只有一行已經(jīng)處于激活狀態(tài),則優(yōu)先調(diào)度訪問該行的訪存請求,在其他情況下,按照先到先 服務(wù)的調(diào)度策略進行。
[0040]訪存請求:當(dāng)一個訪存請求到達PM控制器時,在物理上以比特流串的形式存在,在 邏輯上這個比特流串的語義格式如下:
[0042]其中,請求類別(R/W)表示本次訪存請求是讀(R)或者寫(W),行地址(row)在語義 上表示PM陣列中行的編號,列地址(col)在語義上表示PM陣列中列的編號,在后文中,Bank 號(b)在語義上表不PM陣列中的第b個Bank,為了后文描述方便,符號row、符號b、符號col分 別表示行地址、Bank號、列地址占用的二進制位的個數(shù)。該訪存請求格式稱為第一訪存請求 格式。
[0043]在實際工程實踐中,有時也會采用第二訪存請求格式,在邏輯上比特流串的的語 義格式如下:
【發(fā)明內(nèi)容】
[0046] 本發(fā)明的目的是提供一種面向PM的訪存請求解析裝置與方法。
[0047] 本發(fā)明的技術(shù)方案是,一種面向PM的訪存請求解析裝置,所述解析裝置包括訪存 請求解析模塊、優(yōu)先級解析模塊、命令解析模塊和執(zhí)行模塊,
[0048] 訪存請求經(jīng)過解析裝置的訪存請求解析模塊、優(yōu)先級解析模塊、命令解析模塊和 執(zhí)行模塊的依次處理后,從PM陣列讀出數(shù)據(jù)隊列,
[0049] 訪存請求解析模塊,用于將訪存請求根據(jù)所述的列地址、行地址、Bank號、讀寫標 志的統(tǒng)計特征分發(fā)到不同特性的請求隊列中,以便所述訪存請求能夠被合理調(diào)度;
[0050] 優(yōu)先級解析模塊,用于將訪存請求解析模塊中所述不同特性的請求隊列按照被調(diào) 度的次序進行優(yōu)先級劃分,在所述不同特性的請求隊列內(nèi)部按照FR-FCFS調(diào)度;
[0051 ]命令解析模塊,用于將來自優(yōu)先級解析模塊的訪存請求轉(zhuǎn)化為訪存操作命令,然 后,結(jié)合PM陣列當(dāng)前的狀態(tài)信息將所述操作命令發(fā)送出去;
[0052]執(zhí)行模塊,用于根據(jù)命令解析模塊中發(fā)出的操作命令對PM陣列執(zhí)行操作。
[0053]所述訪存請求解析模塊的處理流程包括:
[0054]地址解析單元A按照訪存請求特征將其分發(fā)到訪存請求隊列Q1與訪存請求隊列 Q2,所述的訪存請求特征的確定依據(jù)是:設(shè)在所述訪存請求中Bank號對應(yīng)的二進制值為為 Bank_Value所述訪存請求中行地址對應(yīng)的二進制值為Row_Value,若Bank_Value+Row_ Value多1,則將本次請求分發(fā)到訪存請求隊列Q2,否則,則將本次請求分發(fā)到訪存請求隊列 Q1;
[0055]地址解析單元B按照訪存請求特征把訪存請求隊列Q2中的訪存請求分發(fā)到訪存請 求隊列Q21與訪存請求隊列Q22,所述的訪存請求特征的確定依據(jù)是:在地址解析單元B中設(shè) 置組件DS1,DS1的邏輯結(jié)構(gòu)為,
[0057]其中,C0,C1,C2. ? .,Cn分別統(tǒng)計對第0,1,2, . . .2b-l個Bank的訪問次數(shù),在地址解 析單元B中設(shè)置組件DS2,DS2的邏輯結(jié)構(gòu)為,
[0059] 其中,LEFT表示當(dāng)C0+C1+C2+. . .+Cn<2eci1時,所有的訪存請求都分發(fā)到訪存請求 隊列Q21,當(dāng)C0+C1+C2+. . .+Cn> = 2eci1時,對于每個從訪存請求隊列Q2分發(fā)過來的訪存請求 做如下的操作:
[0060]更新DS1,然后判定針對某個Bank的訪存次數(shù)Cx是否滿足若滿足, 更新DS2中針對對應(yīng)Bank的分發(fā)標志為RIGHT,同時將本次請求分發(fā)到訪存請求隊列Q22中; 若不滿足,更新DS2中針對對應(yīng)Bank的分發(fā)標志為LEFT,同時將本次請求分發(fā)到訪存請求隊 列Q21中;
[0061 ]標志解析單元C1按照訪存請求特征把訪存請求隊列Q21中的訪存請求分發(fā)到讀訪 存請求隊列RQ21與寫訪存請求隊列WQ21,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存 請求中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ21,否則,則將本 次請求分發(fā)到寫訪存請求隊列WQ21;
[0062 ]標志解析單元C2按照訪存請求特征把訪存請求隊列Q22中的訪存請求分發(fā)到讀訪 存請求隊列RQ22與寫訪存請求隊列WQ22,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存 請求中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ22,否則,則將本 次請求分發(fā)到寫訪存請求隊列WQ22,
[0063]所述優(yōu)先級解析模塊的處理流程包括:
[0064]訪存請求解析模塊中的訪存請求隊列Q1與訪存請求隊列Q2,訪存請求隊列Q21與 訪存請求隊列Q22,讀訪存請求隊列RQ21與寫訪存請求隊列WQ21,讀訪存請求隊列RQ22與寫 訪存請求隊列WQ22,
[0065]由于,訪存請求隊列Q2劃分成為讀訪存請求隊列RQ21與寫訪存請求隊列WQ21,讀 訪存請求隊列RQ22與寫訪存請求隊列WQ22,
[0066]所以設(shè)定:訪存請求隊列Ql>讀訪存請求隊列RQ21>讀訪存請求隊列RQ22>寫訪存 請求隊列WQ21>寫訪存請求隊列WQ22,符號"〉"含義為"優(yōu)先于",在所述的每種訪存請求隊 列內(nèi)部采用FR-FCFS調(diào)度;
[0067]所述命令解析模塊中包括:
[0068]命令控制邏輯,用于將優(yōu)先級解析模塊中所述的每種訪存請求隊列的訪存請求解 析為具體的原子命令,所述請求類別R/W解析為:{ACTIVATE,READ,[PRECHARGE] },或為: {ACTIVATE,READ_P},或為:{ACTIVATE,WRITE, [PRECHARGE]},或為:{ACTIVATE,WRITE_P}, 符號〃 {}〃包含的 ACTIVATE、READ、READ_P、WRITE、WRITE_P、PRECHARGE 即為所述的具體的原 子命令,符號〃[]〃表示在〇PEN_PAGE_POLICY下,PRECHARGE命令不立即執(zhí)行。
[0069]狀態(tài)信息表,其邏輯結(jié)構(gòu)為:
[0071]狀態(tài)信息表內(nèi)容包括:當(dāng)前每個Bank的狀態(tài)信息、命令控制邏輯發(fā)出的上一條命 令類型、命令控制邏輯發(fā)出的上一條命令時間、ACTIVATE命令時間記錄表,
[0072]每個Bank的狀態(tài)信息的內(nèi)容包括:是否存在激活行、激活行地址、本Bank接受到的 上一條命令的類型、本Bank接受到的上一條命令的發(fā)出時間,
[0073] ACTIVATE命令時間記錄表記錄了在一個tFAW窗口時間內(nèi)的各個ACTIVATE命令的 發(fā)出時間,ACTIVATE命令時間記錄表最多記錄4條ACTIVATE命令的發(fā)出時間,"NULL"表示當(dāng) 前內(nèi)容為空,不存在相應(yīng)的狀態(tài)信息,
[0074] 命令控制邏輯需要根據(jù)狀態(tài)信息表的內(nèi)容選擇在何時將上述所述的原子命令發(fā) 送給執(zhí)行模塊;
[0075]所述執(zhí)行模塊的處理流程包括:
[0076]根據(jù)命令解析模塊發(fā)送來的訪存命令執(zhí)行一個具體的業(yè)務(wù)邏輯,然后對PM陣列執(zhí) 行具體的操作。
[0077] 一種面向PM的訪存請求解析方法,包含以下步驟:
[0078]步驟A:將訪存請求按照所述的請求類別(R/W)和所述的行地址和列地址的統(tǒng)計特 征分類;
[0079]步驟B:將不同類的訪存請求分發(fā)到不同優(yōu)先級的隊列中;
[0080]步驟C:將不同優(yōu)先級的隊列中的訪存請求解析為可執(zhí)行的操作命令;
[0081 ]步驟D:在PM陣列及其控制器上執(zhí)行操作命令。
[0082]本發(fā)明主要針對PM讀寫訪存請求,提供一種實時的比特流層面的動態(tài)解析方法, 同時提供一種裝置,所述裝置能夠方便快捷的添加到專門針對PM內(nèi)存控制器或PM和DRAM的 混合控制器中。
【附圖說明】
[0083]圖1是本發(fā)明面向PM的訪存請求解析裝置示意圖;
[0084] 圖2是本發(fā)明圖1中訪存請求解析模塊示意圖;
[0085] 圖3是本發(fā)明圖1中優(yōu)先級解析模塊的判優(yōu)流程示意圖;
[0086] 圖4是本發(fā)明圖1中命令解析模塊流程示意圖;
[0087] 圖5是本發(fā)明圖1中執(zhí)行模塊實施例的流程示意圖。
【具體實施方式】
[0088] 本發(fā)明實施例中采用了第一種訪存請求的格式。(R/W)的比特值為0時代表讀請 求,比特值為1時代表寫請求,所述的行地址row為15個二進制位,所述的列地址col為10個 二進制位,所述的Bank號b為3個二進制位,共計8個Bank。
[0089] 本發(fā)明的面向PM的訪存請求解析裝置,如附圖1所示,所述裝置包括訪存請求解析 模塊、優(yōu)先級解析模塊、命令解析模塊和執(zhí)行模塊。
[0090] 訪存請求解析模塊,主要是將訪存請求根據(jù)其內(nèi)部的列地址、行地址、Bank號、讀 寫標志的統(tǒng)計特征分發(fā)到不同特性的請求隊列中,以便所述訪存請求能夠被合理調(diào)度; [0091]優(yōu)先級解析模塊,主要是將訪存請求解析模塊中所述不同特性的請求隊列按照被 調(diào)度的次序進行優(yōu)先級劃分,在所述不同特性的請求隊列內(nèi)部按照FR-FCFS調(diào)度;
[0092] 命令解析模塊,主要是將來自優(yōu)先級解析模塊的訪存請求轉(zhuǎn)化為具體的訪存操作 命令,然后,結(jié)合PM陣列當(dāng)前的狀態(tài)信息將所述操作命令發(fā)送出去;
[0093] 執(zhí)行模塊,主要是根據(jù)命令解析模塊中發(fā)出的操作命令對PM陣列執(zhí)行具體的操 作。
[0094] 如附圖2所示,在訪存請求解析模塊中:
[0095]地址解析單元A按照訪存請求特征將其分發(fā)到訪存請求隊列Q1與訪存請求隊列 Q2,所述的訪存請求特征的確定依據(jù)是:設(shè)在所述訪存請求中Bank號對應(yīng)的二進制值為為 Bank_Value所述訪存請求中行地址對應(yīng)的二進制值為Row_Value,若Bank_Value+Row_ Value多1,則將本次請求分發(fā)到訪存請求隊列Q2,否則,則將本次請求分發(fā)到訪存請求隊列 Q1;
[0096]地址解析單元B按照訪存請求特征把訪存請求隊列Q2中的訪存請求分發(fā)到訪存請 求隊列Q21與訪存請求隊列Q22,所述的訪存請求特征的確定依據(jù)是:在地址解析單元B中設(shè) 置組件DS1,DS1的邏輯結(jié)構(gòu)為,
[0098] 其中,C0,C1,C2. ? .,Cn分別統(tǒng)計對第0,1,2,. .2b-l個Bank的訪問次數(shù),
[0099] 在地址解析單元B中設(shè)置組件DS2,DS2的邏輯結(jié)構(gòu)為,
[0101] 其中,LEFT表示當(dāng)C0+C1+C2+. . .+Cn<2eci1時,所有的訪存請求都分發(fā)到訪存請求 隊列Q21,當(dāng)C0+C1+C2+. . .+Cn> = 2eci1時,對于每個從訪存請求隊列Q2分發(fā)過來的訪存請求 做如下的操作:更新DS1,然后判定針對某個Bank的訪存次數(shù)Cx是否滿足C:,>£g_/:ZA,若 滿足,更新DS2中針對對應(yīng)Bank的分發(fā)標志為RIGHT,同時將本次請求分發(fā)到訪存請求隊列 Q22中。若不滿足,更新DS2中針對對應(yīng)Bank的分發(fā)標志為LEFT,同時將本次請求分發(fā)到訪存 請求隊列Q21中;
[0102 ]標志解析單元C1按照訪存請求特征把訪存請求隊列Q21中的訪存請求分發(fā)到讀訪 存請求隊列RQ21與寫訪存請求隊列WQ21,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存 請求中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ21,否則,則將本 次請求分發(fā)到寫訪存請求隊列WQ21。
[0103] 標志解析單元C2按照訪存請求特征把訪存請求隊列Q22中的訪存請求分發(fā)到讀訪 存請求隊列RQ22與寫訪存請求隊列WQ22,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存 請求中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ22,否則,則將本 次請求分發(fā)到寫訪存請求隊列WQ22。
[0104] 如附圖3所示,在優(yōu)先級解析模塊中:
[0105]所述的訪存請求解析模塊中的訪存請求隊列Q1與訪存請求隊列Q2,訪存請求隊列 Q21與訪存請求隊列Q22,讀訪存請求隊列RQ21與寫訪存請求隊列WQ21,讀訪存請求隊列 RQ22與寫訪存請求隊列WQ22,由于,訪存請求隊列Q2最終劃分成為讀訪存請求隊列RQ21與 寫訪存請求隊列WQ21,讀訪存請求隊列RQ22與寫訪存請求隊列WQ22,所以設(shè)定:訪存請求隊 列Ql>讀訪存請求隊列RQ21>讀訪存請求隊列RQ22>寫訪存請求隊列WQ21>寫訪存請求隊列 WQ22,符號"〉"含義為"優(yōu)先于",在所述的每種訪存請求隊列內(nèi)部采用FR-FCFS調(diào)度。
[0106] 如附圖4所示,在命令解析模塊中:
[0107] 命令控制邏輯,用于將優(yōu)先級解析模塊中所述的每種訪存請求隊列的訪存請求解 析為具體的原子命令,所述請求類別R/W解析為:{ACTIVATE,READ,[PRECHARGE] },或為: {ACTIVATE,READ_P},或為:{ACTIVATE,WRITE, [PRECHARGE]},或為:{ACTIVATE,WRITE_P}, 符號〃 {}〃包含的 ACTIVATE、READ、READ_P、WRITE、WRITE_P、PRECHARGE 即為所述的具體的原 子命令,符號〃[]〃表示在〇PEN_PAGE_POLICY下,PRECHARGE命令不立即執(zhí)行。
[0108]狀態(tài)信息表,其邏輯結(jié)構(gòu)為
[0110] 其中內(nèi)容包括:當(dāng)前每個Bank的狀態(tài)信息、命令控制邏輯發(fā)出的上一條命令類型、 命令控制邏輯發(fā)出的上一條命令時間、ACTIVATE命令時間記錄表。每個Bank的狀態(tài)信息的 內(nèi)容主要包括:是否存在激活行、激活行地址、本Bank接受到的上一條命令的類型、本Bank 接受到的上一條命令的發(fā)出時間。ACTIVATE命令時間記錄表記錄了在一個tFAW窗口時間內(nèi) 的各個ACTIVATE命令的發(fā)出時間。ACTIVATE命令時間記錄表最多記錄4條ACTIVATE命令的 發(fā)出時間。"NULL"表示當(dāng)前內(nèi)容為空,不存在相應(yīng)的狀態(tài)信息。
[0111] 命令控制邏輯需要根據(jù)狀態(tài)信息表的內(nèi)容選擇在何時將上述所述的原子命令發(fā) 送給執(zhí)行模塊。
[0112] 如附圖5所示,在執(zhí)行模塊中:
[0113] 根據(jù)命令解析模塊發(fā)送來的訪存命令如{ACTIVATE,READ,[PRECHARGE] },或如: {ACTIVATE,READ_P},或如:{ACTIVATE,WRITE, [PRECHARGE]},或如:{ACTIVATE,WRITE_P}執(zhí) 行一個具體的業(yè)務(wù)邏輯,然后對PM陣列執(zhí)行具體的操作。
[0114] 實施例一是采用0PEN_PAGE_P0LICY策略的解析裝置,剛開始啟動時接收到3個連 續(xù)訪存請求的執(zhí)行邏輯。
[0115] 實施例二是采用CL0SE_PAGE_P0LICY策略的解析裝置,在處理完成1023個訪存請 求后接收到5個連續(xù)訪存請求的執(zhí)行邏輯。
[0116] 實施例一:
[0117] 以 "1 mono nnnnn nnnnnQQioooio 〇〇1〇〇;\(<〇 ooooo ooooo 〇〇〇〇〇0〇〇〇〇〇!〇 00100,,和"001000 00000 0000000100010 00100" 3條訪存請求的比特流串為例,本裝置剛 啟動時,訪存請求解析模塊的組件DS1的內(nèi)容為
[0119]本裝置剛啟動時,訪存請求解析模塊的組件DS2的內(nèi)容為
[0121 ]本裝置剛啟動時,命令解析模塊中狀態(tài)信息表的內(nèi)容為:
[0123] 其中,"NULL"表示當(dāng)前內(nèi)容為空,不存在相應(yīng)的狀態(tài)信息。
[0124] 具體闡述步驟如下:
[0125] 步驟A. 1:地址解析單元A接收到的所述第一條訪存請求獲取訪存地址中Bank號位 對應(yīng)的二進制值Bank_Value為_,行地址位對應(yīng)的二進制值Row_Value為00000 00000 00000,因 Bank_Value+Row_Value〈l,將第一條訪存請求分發(fā)到訪存請求隊列Q1 ;
[0126] 步驟A. 2:地址解析單元A接收到的所述第二條訪存請求獲取訪存地址中Bank號位 對應(yīng)的二講制倌Rank Value為.001,行地址位對應(yīng)的二進制值Row Value為10000 00000 00000,因 Bank_Value+Row_Value多1,將第二條訪存請求分發(fā)到訪存請求隊列Q2;
[0127]步驟A. 3:地址解析單元A接收到的所述第三條訪存請求獲取訪存地址中Bank號位 對應(yīng)的二講制倌Rank Value為001,行地址位對應(yīng)的二進制值Row Value為01000 00000 00000,因 Bank_Value+Row_Value多1,將第三條請求分發(fā)到訪存請求隊列Q2;
[0128] 步驟A. 4:地址解析單元B從訪存請求隊列Q2中取出訪存請求"1 10000 00000 0000000100010 00100",再次獲取訪存地址中Bank號位對應(yīng)的二進制值Bank_Value為題 由于此時在DS1內(nèi)所有Bank對應(yīng)的訪存次數(shù)總和為零,即總和小于2 1(),因此,將訪存請求"1 10000 00000 00000()〇丨{)00 10 00100"分發(fā)到訪存請求隊列Q21,更新DS1,將第1個Bank對 應(yīng)的訪存次數(shù)加1;
[0129] 步驟A. 5 :地址解析單元B從隊列Q2中取出訪存請求"001000 00000 00000艇 00010 00100,,,再次獲取訪存地址中Bank號位對應(yīng)的二進制值Bank_Value為此時在所 述DS1內(nèi)所有Bank對應(yīng)的訪存次數(shù)總和為1,即總和小于2113,將訪存請求"001000 00000 00000MJ)0010 00100"分發(fā)到訪存請求隊列Q21,更新DS1,即將第1個Bank對應(yīng)的訪存次 數(shù)再次加1;
[0130]步驟A.6:標志解析模塊C1取出訪存請求隊列Q21內(nèi)的一條訪存請求,"1 10000 00000 0000000100010 00100",獲取其請求類別(R/W)位為1,即本請求為寫訪存請求,將其 分派給讀請求隊列WQ21;
[0131 ]步驟A. 7:標志解析模塊C1再次取出訪存請求隊列Q21內(nèi)的一條訪存請求,"001000 00000 00000臟00010 00100,,,獲取其請求類別(R/W)位為0,即本請求為讀訪存請求,將其 分派給讀請求隊列RQ21。
[0132] 步驟B. 1:優(yōu)先級解析模塊優(yōu)先從Q1中取出訪存請求:"0 00000 00000 00000麵 00010 00100,,,發(fā)送給命令解析模塊,如果Q1內(nèi)還有訪存請求,依次取出發(fā)送給命令解析單 元,直至Q1隊列為空;
[0133] 步驟B. 2 :優(yōu)先級解析模塊從RQ21中取出讀訪存請求"001000 00000 00000艇 00010 00100,,,發(fā)送給命令解析模塊,如果RQ21內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至RQ21隊列為空;
[0134] 驟B. 3:優(yōu)先級解析模塊從WQ21中取出讀訪存請求"1 10000 00000 00000祖 00010 00100,,,發(fā)送給命令解析模塊,如果WQ21內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至WQ21隊列為空。
[0135] 步驟C. 1:更新所述狀態(tài)信息表的ACTIVATE命令時間記錄信息表,若所述記錄信息 表為空,轉(zhuǎn)到步驟C. 2,若所述記錄信息表非空,找到由命令控制邏輯最早發(fā)出的ACTIVATE 命令的發(fā)出時間Activate_Time,且其滿足Activate_Time+tFAW<Current_time,貝丨彳刪除 ACTIVATE命令時間記錄表中有關(guān)本ACTIVATE命令的時間信息,所述Current_time表示當(dāng)前 時間;
[0136] 步驟C. 2:當(dāng)命令控制邏輯接收到第一條訪存請求為"0 0000000000 00000腦 00010 00100"為例,獲取訪存地址中Bank號位對應(yīng)的二進制值Bank_Value為塑2、行地址位 對應(yīng)的二進制值R〇w_Value為00000 00000 00000、列地址位對應(yīng)的二進制值Col_Value為 00010 00100以及請求類別(R/W)為讀請求;
[0137] 步驟C. 3:查找狀態(tài)信息表內(nèi)容發(fā)現(xiàn)第Bank_Value個Bank當(dāng)前不存在激活行,命令 控制邏輯發(fā)出的上一條命令類型為空,因此所述命令控制邏輯先向執(zhí)行部件發(fā)送ACTIVATE 命令以及Bank_Value和Address_Value,修改狀態(tài)信息表的內(nèi)容,如下表所示:
[0139] 所述"T ime 0"表示發(fā)出ACT IVATE命令的時間。
[0140] 步驟C.4:在狀態(tài)信息表中查找Bank 0的狀態(tài)信息,BankO接受到的最后一條命令 為ACT IVATE,時間為t i meO;(由表1知,相同Bank的ACT IVATE和READ命令的最小時間間隔為 tR⑶-tAL,由表2知,不同Bank的ACTIVATE和READ命令不存在最小時間間隔)
[0141 ]步驟0.4.1:若1:;[11160+七1^0-七八1<0111'代111:_1';[1116,將1^八0命令、1^111<:_\%1116、001_ Value發(fā)送至命令執(zhí)行模塊,再次修改狀態(tài)信息表的內(nèi)容如下表所示,接著,轉(zhuǎn)至步驟D. 1;
[0143] 步驟C. 4.2:若timeO+tRCD-tAL>Current_Time,跳轉(zhuǎn)至執(zhí)行步驟C. 4〇
[0144] 步驟D.1:若執(zhí)行部件接收到ACTIVATE命令、Bank_Value、Row_Value后,激活第 Bank_Value 個 Bank 上行地址為 Row_Value 的一行;
[0145] 步驟D.2?若執(zhí)行部件接收到READ命令、Bank_Value、Col_Value后,讀出第Bank_ Value個Bank上行地址為Row_Value列地址為Col_Value的數(shù)據(jù)。
[0146] 實施例二:
[0147] 以本裝置在處理完成1023個訪存請求后接收到5個連續(xù)訪存請求:"1 10000 00000 00000墜000 10 00100"、"0 1100 00000 0000011100010 00100"、"111100 〇〇〇〇〇 0000011100010 00100"、"100000 00000 0000000000010 00110"和 "011110 00000 00000 _0010 00100"為例,假設(shè)此時訪存請求解析模塊的組件DS1的內(nèi)容為:
[0149]訪存請求解析模塊的組件DS2的內(nèi)容為:
[0151] ~具體闡述步驟如下:
[0152] 步驟A. 1:地址解析單元A接收到第一條訪存請求,獲取訪存地址中Bank號位對應(yīng) 的二進制值Bank_Value為說1,行地址位對應(yīng)的二進制值R〇w_Value為10000 00000 00000, 因 Bank_Value+R〇W_Value多1,將第一條訪存請求分發(fā)到訪存請求隊列Q2;
[0153] 步驟A. 2:地址解析單元A接收到第二條訪存請求,獲取訪存地址中Bank號位對應(yīng) 的二進制值Bank_Va 1 ue為Hi,行地址位對應(yīng)的二進制值Row_Value為1100 00000 00000, 因 Bank_Value+R〇W_Value多1,將第二條訪存請求分發(fā)到訪存請求隊列Q2;
[0154] 步驟A. 3:地址解析單元A接收到第三條訪存請求,獲取訪存地址中Bank號位對應(yīng) 的二講制倌Rank Value為111,行地址位對應(yīng)的二進制值Row Value為11100 00000 00000, 因 Bank_Value+Row_Value多1,將第三條請求分發(fā)到訪存請求隊列Q2;
[0155] 步驟A. 4:地址解析單元A接收到第四條訪存請求獲取訪存地址中Bank號位對應(yīng)的 一.講制倌Rank Value為000,行地址位對應(yīng)的二進制倌Row Value為00000 00000 00000,因 Bank_Value+Row_Value〈l,將第四條請求分發(fā)到訪存請求隊列Q1;
[0156] 步驟A. 5:地址解析單元A接收到第五條訪存請求獲取訪存地址中Bank號位對應(yīng)的 二進制值Bank_Value為麗1,行地址位對應(yīng)的二進制值Row_Value為11110 00000 00000,因 Bank_Value+Row_Value^: 1,將第五條請求分發(fā)到訪存請求隊列Q2;
[0157] 步驟A. 6:地址解析單元B從訪存請求隊列Q2中取出訪存請求"1 10000 00000 0000000100010 00100",獲取訪存地址中Bank號位對應(yīng)的二進制值Bank Value為〇(比由于 此時在DS1內(nèi)所有Bank對應(yīng)的訪存次數(shù)總和為1023,即總和小于21(),因此,將訪存請求"1 10000 00000 0000000100010 00100"分發(fā)到訪存請求隊列Q21,更新DS1,即將第1個Bank對 應(yīng)的訪存次數(shù)加1;
[0158] 步驟A. 7:地址解析單元B從隊列Q2中取出訪存請求"0 1100 00000 OOOOQin 00010 00100,,,再次獲取訪存地址中Bank號位對應(yīng)的二進制值Bank_Value為1H,由于此時 在DS1內(nèi)所有Bank對應(yīng)的訪存次數(shù)總和為1024,即總和大于等于2 1(),更新DS1,即將第7個 Bank對應(yīng)的訪存次數(shù)加1,而第7個Bank對應(yīng)的訪存次數(shù)為215,顯然215>1024/23,更新DS2 中針對對應(yīng)Bank的分發(fā)標志為RIGHT,將本次請求分發(fā)到訪存請求隊列Q22中;
[0159] 步驟A.8:以類似步驟A.7的方式處理將"1 11100 00000 00000H100010 00100,; 發(fā)到訪存請求隊列Q22,將aoiino 〇〇〇〇〇 oooooMioooio 〇〇1〇〇,;發(fā)送到訪存請求隊列 〇21,更新031,032;
[0160] 步驟A. 9 :標志解析模塊C1取出訪存請求隊列Q21內(nèi)的一條訪存請求:" 110000 00000 0000000100010 00100,;,獲取其請求類別(R/W)位為1,即本請求為寫訪存請求,將其 分派給讀請求隊列WQ21;
[0161] 步驟A. 10:標志解析模塊C1再次取出訪存請求隊列Q21內(nèi)的一條訪存請求: "011110 00000 00000疆00010 00100",獲取其請求類別(R/W)位:0,因此該請求為讀訪存 請求,將其分派給讀請求隊列RQ21;
[0162] 步驟A.11:標志解析模塊C2取出訪存請求隊列Q22內(nèi)的一條訪存請求:"0 1100 00000 00000黒00010 00100,,,獲取其請求類別(R/W)位為0,即本請求為讀訪存請求,將其 分派給讀請求隊列WQ22;
[0163] 步驟A. 12:標志解析模塊C2再次取出訪存請求隊列Q22內(nèi)的一條訪存請求:"1 11100 00000 0000011100010 〇〇1〇〇,;,獲取其請求類別(R/W)位為1,即本請求為寫訪存請 求,將其分派給讀請求隊列WQ22。
[0164] 步驟B. 1:優(yōu)先級解析模塊優(yōu)先從Q1中取出訪存請求:"0 00000 00000 00000鍵 00010 00100,,,發(fā)送給命令解析模塊,如果Q1內(nèi)還有訪存請求,依次取出發(fā)送給命令解析單 元,直至Q1隊列為空;
[0165] 步驟B. 2 :優(yōu)先級解析模塊從RQ21中取出讀訪存請求a〇11110 00000 0000〇Ml 00010 00100,,,發(fā)送給命令解析模塊,如果RQ21內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至RQ21隊列為空;
[0166] 步驟B. 3:優(yōu)先級解析模塊從RQ22中取出讀訪存請求"0 1100 00000 00000黑 00010 00100,,,發(fā)送給命令解析模塊,如果RQ22內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至RQ22隊列為空;
[0167] 步驟B.4:優(yōu)先級解析模塊從WQ21中取出寫訪存請求"1 10000 00000 00000〇〇! 00010 00100,,,發(fā)送給命令解析模塊,如果WQ21內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至WQ21隊列為空;
[0168] 步驟B. 5:優(yōu)先級解析模塊從WQ22中取出寫訪存請求"1 11100 00000 00000111 00010 00100,,,發(fā)送給命令解析模塊,如果WQ22內(nèi)還有訪存請求,依次取出發(fā)送給命令解析 模塊,直至WQ22隊列為空,轉(zhuǎn)至步驟C. 1。
[0169] 假設(shè)此時命令解析模塊中狀態(tài)信息表的內(nèi)容為:
[0171] 其中,"NULL"表示當(dāng)前內(nèi)容為空,不存在相應(yīng)的狀態(tài)信息。
[0172] 步驟C. 1:更新狀態(tài)信息表的ACTIVATE命令時間記錄表信息,若所述記錄表為空, 轉(zhuǎn)到步驟C. 2,若所述記錄表不為空,找到由所述命令控制邏輯最早發(fā)出的ACTIVATE命令的 發(fā)出時間Timel,當(dāng)Timel+tFAW彡Current_time時,刪除ACTIVATE命令時間記錄表中有關(guān)該 ACTIVATE命令的時間信息,其中,"Current_time"表示當(dāng)前時間;
[0173] 以下步驟以命令控制邏輯接收到訪存請求:"100000 00000 0000000000010 00110"為例,繼續(xù)描述,
[0174] 步驟C.2:獲取訪存地址中Bank號位對應(yīng)的二進制值Bank_Value為麗2、行地址位 對應(yīng)的二進制值R〇w_Value為00000 00000 00000、列地址位對應(yīng)的二進制值Col_Value為 00010 00100以及請求類別(R/W)為寫請求,查找狀態(tài)信息表內(nèi)容,第Bank_Value個Bank當(dāng) 前不存在激活行,轉(zhuǎn)至步驟C. 3;
[0175] 步驟C. 3:檢查ACTIVATE命令時間記錄表,若所述時間記錄表內(nèi)的元素大于等于4 條,代表當(dāng)前不能發(fā)送ACTIVATE命令,跳轉(zhuǎn)至步驟C.1,若所述時間記錄表內(nèi)的元素小于4 條,順序執(zhí)行步驟C. 4;
[0176] 步驟C. 4:查找狀態(tài)信息表內(nèi)容,發(fā)現(xiàn)命令控制邏輯發(fā)出的上一條命令類型為 ACT IVATE,發(fā)出時間為t ime 3;(由表2知,不同Bank的ACT IVATE和ACT IVATE命令的最小時間 間隔tRRD)
[0177] 步驟C ? 4 ? 1:若time3+tRRD>Current_Time,則當(dāng)前不能發(fā)送ACTIVATE命令,跳轉(zhuǎn)至 步驟C.4;
[0178] 步驟0.4.2:若1:;[11163+七1^0<(]111^6111:_1';[1116,繼續(xù)查找1^111<:0的狀態(tài)信息發(fā)現(xiàn) BankO接受到的最后一條命令為READ_P,時間為timel (由表1知,命令的 最小時間間隔為tAL+tBURST+tRTP-tCCD+tRP),轉(zhuǎn)至步驟步驟C? 4? 2 ? 1;
[0179] 步驟C.4.2.1:若timel + (tAL+tBURST+tRTP-tCCD+tRP)>Current_Time,跳轉(zhuǎn)至步 驟 C.4;
[0180] 步驟C ? 4 ? 2 ? 2 :若timel + ( tAL+tBURST+tRTP-tCCD+tRP)<Current_Time ,將 ACTIVATE命令和Bank號為Bank_Value和行地址為Row_Value發(fā)送至命令執(zhí)行模塊,再次修 改狀態(tài)信息表的內(nèi)容如下表所示,轉(zhuǎn)至步驟C. 5;
[0182] 所述"T ime 5"表示發(fā)出ACT IVATE命令的時間。
[0183] 步驟C.5:在狀態(tài)信息表中查找Bank 0的狀態(tài)信息,BankO接受到的最后一條命令 為ACTIVATE,時間為time5;(由表1知,相同Bank的ACTIVATE和WRITE_P命令的最小時間間隔 為tRCD-tAL,由表2知,不同Bank的ACTIVATE和WRITE_P命令不存在最小時間間隔)
[0184] 步驟 C.5.1:若time5+tRCD-tAL 彡 Current_Time,將 WRITE_P 命令、Bank_Value、 Col_Value發(fā)送至命令執(zhí)行模塊,再次修改狀態(tài)信息表的內(nèi)容如下表所示,轉(zhuǎn)至步驟D. 1;
[0186] 步驟C ? 5 ? 2:若t ime5+tRCD_tAL>Current_Time,跳轉(zhuǎn)至步驟C ? 5 〇
[0187] 步驟D.1 ?若執(zhí)行部件接收到ACTIVATE命令、Bank_Value、Row_Value后,激活第 Bank_Value 個 Bank 上行地址為 Row_Value 的一行。
[0188] 步驟D.2:若執(zhí)行部件接收到WRITE_P命令、Bank_Value、Col_Value后,將數(shù)據(jù)寫入 到第Bank_Value個Bank上行地址為Row_Value列地址為Col_Value的存儲空間,接著,從接 收WRITE_P命令后,經(jīng)過(tWR+tAL+tCWD+tBURST)的時間,對第Bank_Value個Bank進行預(yù)充 電操作。
【主權(quán)項】
1. 一種面向PM的訪存請求解析裝置,其特征在于,所述解析裝置包括訪存請求解析模 塊、優(yōu)先級解析模塊、命令解析模塊和執(zhí)行模塊, 訪存請求經(jīng)過解析裝置的訪存請求解析模塊、優(yōu)先級解析模塊、命令解析模塊和執(zhí)行 模塊的依次處理后,從PM陣列讀出數(shù)據(jù)隊列, 訪存請求解析模塊,用于將訪存請求根據(jù)列地址、行地址、Bank號、讀寫標志的統(tǒng)計特 征分發(fā)到不同特性的請求隊列中,W便所述訪存請求能夠被合理調(diào)度; 優(yōu)先級解析模塊,用于將訪存請求解析模塊中所述不同特性的請求隊列按照被調(diào)度的 次序進行優(yōu)先級劃分,在所述不同特性的請求隊列內(nèi)部按照FR-FWS調(diào)度; 命令解析模塊,用于將來自優(yōu)先級解析模塊的訪存請求轉(zhuǎn)化為訪存操作命令,然后,結(jié) 合PM陣列當(dāng)前的狀態(tài)信息將所述操作命令發(fā)送出去; 執(zhí)行模塊,用于根據(jù)命令解析模塊中發(fā)出的操作命令對PM陣列執(zhí)行操作。2. 如權(quán)利要求1所述的面向PM的訪存請求解析裝置,其特征在于,所述訪存請求解析模 塊的處理流程包括: 地址解析單元A按照訪存請求特征將其分發(fā)到訪存請求隊列Ql與訪存請求隊列Q2,所 述的訪存請求特征的確定依據(jù)是:設(shè)在所述訪存請求中Bank號對應(yīng)的二進制值為為Bank_ 化Iue所述訪存請求中行地址對應(yīng)的二進制值為Row_Value,若Bank_Value+Row_Value> 1, 則將本次請求分發(fā)到訪存請求隊列Q2,否則,則將本次請求分發(fā)到訪存請求隊列Ql; 地址解析單元B按照訪存請求特征把訪存請求隊列Q2中的訪存請求分發(fā)到訪存請求隊 列Q21與訪存請求隊列Q22,所述的訪存請求特征的確定依據(jù)是:在地址解析單元B中設(shè)置組 化DSi _nsi的視鉛結(jié)尬兩.其中,LEFT表示當(dāng)C0+C1+C2+. . .+歷<2?!?時,所有的訪存請求都分發(fā)到訪存請求隊列 Q21,當(dāng)C0+C1+C2+. . .+化> 時,對于每個從訪存請求隊列Q2分發(fā)過來的訪存請求做如下的操作: 更新DSl,然后判定針對某個Bank的訪存次數(shù)Cx是否滿足 旨滿足,更新 DS2中針對對應(yīng)Bank的分發(fā)標志為RIGHT,同時將本次請求分發(fā)到訪存請求隊列Q22中;若不 滿足,更新DS2中針對對應(yīng)Bank的分發(fā)標志為LEFT,同時將本次請求分發(fā)到訪存請求隊列 Q21 中; 標志解析單元Cl按照訪存請求特征把訪存請求隊列Q21中的訪存請求分發(fā)到讀訪存請 求隊列RQ21與寫訪存請求隊列WQ21,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存請求 中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ21,否則,則將本次請 求分發(fā)到寫訪存請求隊列WQ21; 標志解析單元C2按照訪存請求特征把訪存請求隊列Q22中的訪存請求分發(fā)到讀訪存請 求隊列RQ22與寫訪存請求隊列WQ22,所述的訪存請求特征的確定依據(jù)是:設(shè)某次訪存請求 中所述請求類別(R/W)若為R,則將本次請求分發(fā)到讀訪存請求隊列RQ22,否則,則將本次請 求分發(fā)到寫訪存請求隊列WQ22, 所述優(yōu)先級解析模塊的處理流程包括: 訪存請求解析模塊中的訪存請求隊列Ql與訪存請求隊列Q2,訪存請求隊列Q21與訪存 請求隊列Q22,讀訪存請求隊列RQ21與寫訪存請求隊列WQ21,讀訪存請求隊列RQ22與寫訪存 請求隊列WQ22, 由于,訪存請求隊列Q2劃分成為讀訪存請求隊列RQ21與寫訪存請求隊列WQ21,讀訪存 請求隊列RQ22與寫訪存請求隊列WQ22, 所W設(shè)定:訪存請求隊列Q1〉讀訪存請求隊列RQ21〉讀訪存請求隊列RQ22〉寫訪存請求 隊列WQ21〉寫訪存請求隊列WQ22,符號"〉"含義為"優(yōu)先于",在所述的每種訪存請求隊列內(nèi) 部采用FR-FWS調(diào)度; 所述命令解析模塊中包括:命令控制邏輯,用于將優(yōu)先級解析模塊中所述的每種訪存 請求隊列的訪存請求解析為具體的原子命令,所述請求類別R/W解析為:{ACT IVATE,READ, [PRECHARGE ]},或為:{ACT IVATE,READ_P },或為:{ACT IVATE,WRI TE,[ PRECHARGE ]},或為: {ACT IVATE,WRI TE_P},符號"{}"包含的 ACT IVATE、READ、READ_P、WRI TE、WRI TE_P、PRECHARGE 即為所述的具體的原子命令,符號"[]"表示在〇PEN_PAGE_P^ICY下,PRECHARGE命令不立即 執(zhí)行。 狀態(tài)信息表,其邏輯結(jié)構(gòu)為:狀態(tài)信息表內(nèi)容包括:當(dāng)前每個Bank的狀態(tài)信息、命令控制邏輯發(fā)出的上一條命令類 型、命令控制邏輯發(fā)出的上一條命令時間、ACTIVATE命令時間記錄表, 每個Bank的狀態(tài)信息的內(nèi)容包括:是否存在激活行、激活行地址、本Bank接受到的上一 條命令的類型、本Bank接受到的上一條命令的發(fā)出時間, ACTIVATE命令時間記錄表記錄了在一個tFAW窗口時間內(nèi)的各個ACTIVATE命令的發(fā)出 時間,ACTIVATE命令時間記錄表最多記錄4條ACTIVATE命令的發(fā)出時間/'NULL"表示當(dāng)前內(nèi) 容為空,不存在相應(yīng)的狀態(tài)信息, 命令控制邏輯需要根據(jù)狀態(tài)信息表的內(nèi)容選擇在何時將上述所述的原子命令發(fā)送給 執(zhí)行模塊; 所述執(zhí)行模塊的處理流程包括: 根據(jù)命令解析模塊發(fā)送來的訪存命令執(zhí)行一個具體的業(yè)務(wù)邏輯,然后對PM陣列執(zhí)行具 體的操作。3. -種面向PM的訪存請求解析方法,其特征在于,包含W下步驟: 步驟A:將訪存請求按照所述的請求類別(R/W)和所述的行地址和列地址的統(tǒng)計特征分 類; 步驟B:將不同類的訪存請求分發(fā)到不同優(yōu)先級的隊列中; 步驟C:將不同優(yōu)先級的隊列中的訪存請求解析為可執(zhí)行的操作命令; 步驟D:在PM陣列及其控制器上執(zhí)行操作命令。
【文檔編號】G06F3/06GK105912270SQ201610223262
【公開日】2016年8月31日
【申請日】2016年4月12日
【發(fā)明人】黃林鵬, 朱燕民, 沈艷艷, 施揚, 薛棟梁, 陳雨亭, 吳晨濤
【申請人】上海交通大學(xué)