專利名稱:支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及集成電路領(lǐng)域微處理器體系結(jié)構(gòu),特別是一種支持動態(tài)二進制翻譯的 多核體系結(jié)構(gòu)。
背景技術(shù):
二進制翻譯(Binary Translation)如圖1所示,用于模擬異構(gòu)計算機體系結(jié)構(gòu), 執(zhí)行沒有源程序的二進制代碼,輔助從一種體系結(jié)構(gòu)或操作系統(tǒng)向另一種體系結(jié)構(gòu)或操作 系統(tǒng)遷移,是計算系統(tǒng)虛擬化一種重要途徑。動態(tài)二進制翻譯器一般包括翻譯模塊和執(zhí)行 模塊,與之相對應的,翻譯過程分為翻譯階段和執(zhí)行階段。在翻譯階段,翻譯模塊讀入源機 器碼塊,將其轉(zhuǎn)化為目標機上可執(zhí)行的二進制代碼塊。在執(zhí)行階段,執(zhí)行模塊從指定位置讀 取二進制代碼塊并運行。當執(zhí)行到一條未翻譯的指令,或者頻繁執(zhí)行的代碼塊入口時,執(zhí)行 模塊將控制權(quán)交給翻譯模塊,進行后續(xù)的翻譯或再優(yōu)化工作。翻譯階段和執(zhí)行階段交替進 行,直到完成整個程序的翻譯和執(zhí)行?,F(xiàn)有的多核體系結(jié)構(gòu)如圖2所示,每個處理器核擁有私有一級Cache和共享二級 Cache,處理器核之間通信通過互聯(lián)網(wǎng)絡(luò)進行,同時共享主存控制器進行訪存操作。操作系 統(tǒng)可以選取任意一個處理器核作為動態(tài)二進制翻譯的主控處理器,通過主控處理器調(diào)用其 它處理器核進行動態(tài)二進制翻譯。處理器核通過主存控制器從主存讀取數(shù)據(jù),置于共享和 二級Cache和私有一級Cache。由于Cache的容量有限,二級Cache和私有一級Cache不能 容納應用程序中所有數(shù)據(jù),不同的數(shù)據(jù)會映射到相同的二級Cache和私有的一級Cache中, 從而引起地址沖突。發(fā)生地址沖突時,現(xiàn)有多核體系結(jié)構(gòu)作廢原私有一級Cache和共享二 級Cache行中數(shù)據(jù),將其替換為新數(shù)據(jù)。當下回再次訪問原數(shù)據(jù)時,處理器核必須重新從貯 存中讀取數(shù)據(jù),將其置于私有一級Cache和共享二級Cache中。在此體系結(jié)構(gòu)下,動態(tài)二進制翻譯器在運行過程中與系統(tǒng)其它線程共享主存控制 器和二級Cache。動態(tài)二進制翻譯器在翻譯過程中頻繁從主存中讀取源體系結(jié)構(gòu)二進制碼, 往主存中寫入翻譯后目標體系結(jié)構(gòu)二進制碼。翻譯器翻譯過程中對源體系結(jié)構(gòu)程序進行基 本塊劃分,以基本塊為單元進行翻譯。當相應的基本塊翻譯完成時,依據(jù)程序控制流中基本 塊的跳轉(zhuǎn)關(guān)系翻譯下一基本塊。對基本塊采用映射表或者類似模式進行翻譯,翻譯完的指 令代碼不再使用,從而導致動態(tài)二進制翻譯對數(shù)據(jù)使用時間局部性和空間局部性較差,對 Cache的利用率低下。在翻譯器讀取源二進制代碼和其他輔助數(shù)據(jù)過程中,處理器根據(jù)共享 的二級Cache替換策略作廢二級Cache中的過時數(shù)據(jù),容易與系統(tǒng)中其他Cache敏感型應 用程序發(fā)生共享的二級Cache訪問沖突。此外動態(tài)二進制翻譯器需要從主存頻繁讀取源二 進制代碼和往主存寫入目標二進制代碼,對系統(tǒng)訪存帶寬占用較大。頻繁的訪存操作一方 面影響動態(tài)二進制翻譯器自身執(zhí)行性能,另一方面與系統(tǒng)中諸如流媒體等訪存密集型應用 程序發(fā)生訪存沖突,從而導致系統(tǒng)整體性能的下降。綜上所述,目前急需一種新的多核體系結(jié)構(gòu)來解決動態(tài)二進制翻譯過程中的 Cache訪問沖突和主存沖突等問題。針對動態(tài)二進制翻譯過程對不同數(shù)據(jù)類型的訪問特性設(shè)置相應緩存,增加訪問通道,使翻譯器在二進制翻譯過程中并發(fā)使用不同類型的片上緩 存,通過這種方式一方面降低動態(tài)二進制翻譯器對主存的訪問頻率,提高訪存帶寬,從而加 速翻譯過程;另一方面減少動態(tài)二進制翻譯器與系統(tǒng)中其它線程的共享Cache訪問沖突, 從而提高整個系統(tǒng)的共享Cache利用率。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種新的多核體系結(jié)構(gòu),解決動態(tài)二進制翻譯過 程中的Cache訪問沖突和主存沖突等問題,使得數(shù)據(jù)訪問延遲低、翻譯吞吐量高、Cache訪 問沖突小。本發(fā)明的技術(shù)方案是支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu)由多個處理器核、一級Cache、翻譯緩存單 元、二級Cache和主存控制器組成。一級Cache、翻譯緩存單元是每個處理器核私有的,一級 Cache、翻譯緩存單元的數(shù)量與處理器核的數(shù)量相同,二級Cache和主存控制器由所有處理 器核共享。翻譯緩存單元與私有它的處理器核、核間通信互聯(lián)網(wǎng)絡(luò)和主存控制器相連。翻譯緩存單元由通信控制單元、緩存管理單元、數(shù)據(jù)存儲單元組成,數(shù)據(jù)存儲單元 中包含三個存儲區(qū),分別是源體系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體系結(jié)構(gòu)二進制碼緩沖區(qū)和 頁面映射表。源體系結(jié)構(gòu)二進制碼緩沖區(qū)存儲源體系結(jié)構(gòu)二進制碼,容量為M,M = 4KXL 字,K為1024、L為正整數(shù);目標體系結(jié)構(gòu)二進制碼緩沖區(qū)存儲翻譯后的目標體系結(jié)構(gòu)二進 制碼,容量為N,N = 4KXJ,K為10M、J為正整數(shù)。頁面映射表由源-目標頁面映射表、目標-源頁面映射表,分別用兩片緩沖區(qū)進行 存儲。源-目標頁面映射表記錄源體系結(jié)構(gòu)二進制碼緩沖區(qū)與目標體系結(jié)構(gòu)二進制碼緩沖 區(qū)頁面對應關(guān)系,大小為L行;目標-源頁面映射表記錄目標體系結(jié)構(gòu)二進制碼緩沖區(qū)與源 體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面映射關(guān)系,大小為J行。由于一頁源體系結(jié)構(gòu)二進制碼頁面 可能翻譯成多頁目標體系結(jié)構(gòu)機構(gòu)頁面,目標-源頁面映射表同時記錄翻譯過程中出現(xiàn)的 一對多頁面映射和翻譯后目標體系結(jié)構(gòu)二進制碼頁面先后順序。源-目標頁面映射表中表 項與每個源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面依照編號一一對應。目標-源頁面映射表中映射 表項與每個目標體系結(jié)構(gòu)緩沖區(qū)頁面依照編號一一對應。源-目標頁面映射表為Cache類型存儲單元,結(jié)構(gòu)與處理器中Cache結(jié)構(gòu)相同,以 線程ID和目的地址作為查詢字段,返回是否命中信號和命中表項的編號。源-目標頁面映 射表每個表項由線程ID、目的地址、目標緩沖頁面號、起始頁面號、時間戳和狀態(tài)字段組成。 線程ID字段為12位,記錄申請此頁面翻譯的線程ID號,0表示沒有對應線程;目的地址字 段為30位,記錄目標體系結(jié)構(gòu)二進制碼緩沖區(qū)主存寫入地址,若體系結(jié)構(gòu)設(shè)計時不允許緩 存管理單元將翻譯后的頁面代碼寫入主存,此字段無意義留作擴展;目標緩沖頁面號字段 為(lo&J+l)位,存儲翻譯后代碼將被寫入的目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面的頁面號; 當一頁源體系結(jié)構(gòu)二進制碼頁面翻譯成多頁目標體系結(jié)構(gòu)機構(gòu)二進制碼頁面時,起始頁面 號字段為(lc^J+Ι)位,記錄處理器核翻譯出第一個目標體系結(jié)構(gòu)二進制碼頁面的頁面號; 時間戳字段為6位,記錄此頁面在緩沖區(qū)中駐留的時間信息;狀態(tài)記錄3位,該源體系結(jié)構(gòu) 二進制碼頁面所處的狀態(tài),有待翻譯、正在翻譯、翻譯完和無效狀態(tài)。目標-源頁面映射表的每個表項由時標、源緩沖區(qū)頁號、下一頁號組成。時標為6位,記錄此目標體系結(jié)構(gòu)緩沖區(qū)頁面在緩沖區(qū)中駐留的時間信息;源緩沖區(qū)頁號字段為 (log2L+l)位,記錄此目標體系結(jié)構(gòu)二進制碼緩沖區(qū)所對應的源體系結(jié)構(gòu)二進制碼緩沖區(qū) 頁號;下一頁號為(log2L+l)位,記錄出現(xiàn)一對多翻譯時下一完成翻譯的目標體系結(jié)構(gòu)二進 制碼緩沖區(qū)頁面號。通信控制單元與主控處理器和緩存管理單元相連,從主控處理器接收頁面配置信 息,向緩存管理單元傳遞頁面配置信息;從主控處理器接收翻譯請求命令,向緩存管理單元 發(fā)出緩存申請;當接收到緩存管理單元就緒信號時,通知主控處理器進行二進制頁面代碼 傳輸;當接收到主控處理器發(fā)來的開始傳輸命令時,通知緩存管理單元進行頁面?zhèn)鬏?;?接收到主控處理器發(fā)來的傳輸終止命令時,通知緩存管理單元頁面?zhèn)鬏斖瓿?。緩存管理單元與通信控制單元、數(shù)據(jù)存儲單元和處理器核相連,從通信控制單元 接收頁面配置信息,對源體系結(jié)構(gòu)二進制碼緩沖區(qū)和目標體系結(jié)構(gòu)二進制碼緩沖區(qū)按照頁 面配置信息進行頁面劃分管理;根據(jù)從通信控制單元接收的數(shù)據(jù)傳輸控制信號,檢測頁面 映射表信息,若檢測到有未翻譯頁面,則向處理器核發(fā)翻譯請求信號;根據(jù)從處理器核接收 的頁面訪問地址信號,查詢訪問地址在頁面映射表中是否存在,若存在,則從目標體系結(jié)構(gòu) 二進制碼緩沖區(qū)讀取訪問地址所對應的翻譯后頁面數(shù)據(jù),將翻譯后頁面數(shù)據(jù)發(fā)送給通信控 制單元;若不存在,則從通信控制單元接收源體系結(jié)構(gòu)二進制碼頁面數(shù)據(jù),將其寫入源體系 結(jié)構(gòu)二進制碼緩沖區(qū)中。通信控制單元由多路選擇器、通信控制單元控制器、傳輸總線和三個寄存器組成。 三個寄存器分別是動態(tài)翻譯控制寄存器、目的地址寄存器、線程ID寄存器,在體系結(jié)構(gòu)全 局地址空間中統(tǒng)一編址。多路選擇器為三選一選擇器,與目的地址寄存器、動態(tài)翻譯控制寄 存器和線程ID寄存器相連,根據(jù)從通信控制單元控制器來的寄存器選擇信號,將傳輸總線 中的數(shù)據(jù)寫入相應寄存器中。目的地址寄存器存儲目標體系結(jié)構(gòu)二進制碼頁面主存寫入地址;線程ID寄存器 存儲進行動態(tài)二進制翻譯請求的線程ID號。動態(tài)翻譯控制寄存器由Page[N-l:0]、Mt、 Start、End、Req、Ready、Busy、Available、Targe tAddrErrΛ Process IDErrΛ BuffErr 字段 組成。Page[N-l:0]是N位,I^age字段存儲數(shù)據(jù)的數(shù)值η表示數(shù)據(jù)存儲單元頁面以2nX4K 字節(jié)進行劃分;Set位是一位,其值為1時表示通信控制單元需要向緩存管理單元發(fā)送頁面 配置信號和配置信號,通知緩存管理單元以新的頁面配置信息對數(shù)據(jù)存儲單元中的源體系 結(jié)構(gòu)二進制碼緩沖區(qū)和目標體系結(jié)構(gòu)二進制碼緩沖區(qū)重新進行頁面劃分,其值為0時不做 任何處理Jtart位是一位,其值為1時表示主控處理器開始進行頁面?zhèn)鬏?;End是一位,其 值為1時表明主控處理器頁面?zhèn)鬏斖戤?;Req是一位,其值為1時表明主控處理器向緩存管 理單元申請源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面;Ready是一位,其值為1時表明源體系結(jié)構(gòu) 二進制碼緩沖區(qū)就緒,可以進行數(shù)據(jù)傳輸;Busy是一位,其值為1表明處理器核正在進行動 態(tài)二進制翻譯;Available是一位,表明源體系結(jié)構(gòu)二進制碼緩沖區(qū)是否可用,為1表示可 用,為0表示不可用;TargetAddrErr是一位,其值為1表明進行動態(tài)二進制翻譯時發(fā)生目 標地址未設(shè)定錯誤,在主控處理器尚未設(shè)定目的地址寄存器就開始進行頁面?zhèn)鬏敃r發(fā)生; ProcessIDErr是一位,其值為1表明進行動態(tài)二進制翻譯時表明發(fā)生線程ID未設(shè)定錯誤, 在主控處理器開始進行頁面?zhèn)鬏斏形丛O(shè)定線程ID寄存器時發(fā)生;BuffEn 是一位,其值為1 表明進行動態(tài)二進制翻譯時發(fā)生源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面未申請錯誤,在主控處理器沒有申請到有效源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面就啟動頁面?zhèn)鬏敗Mㄐ趴刂茊卧刂破魇且粋€狀態(tài)機,與動態(tài)翻譯控制寄存器、目的地址寄存器、線 程ID寄存器相連,并通過傳輸總線和緩存管理單元相連。通信控制單元控制器狀態(tài)機由初始狀態(tài)、總線監(jiān)測狀態(tài)、緩存申請狀態(tài)、啟動傳輸 狀態(tài)、傳輸結(jié)束狀態(tài)、故障檢測狀態(tài)組成,狀態(tài)轉(zhuǎn)移過程是處理器核復位后通信控制單元控制器進入初始狀態(tài),將動態(tài)翻譯控制寄存器、目 的地址寄存器、線程ID寄存器初始化為0,狀態(tài)機進入總線監(jiān)測狀態(tài)。在總線監(jiān)測狀態(tài),監(jiān)控傳輸總線地址。若傳輸總線地址與動態(tài)翻譯控制寄存器、目 的地址寄存器、線程ID寄存器的地址之一相等,根據(jù)傳輸總線地址設(shè)置寄存器選擇選擇信 號,控制多路選擇器將總線上數(shù)據(jù)寫入相應寄存器;從動態(tài)翻譯控制寄存器讀取Req字段, 若Req字段為1,進入緩存申請狀態(tài);若Req為0,則從動態(tài)翻譯控制寄存器中讀取^art字 段,若Mart字段為1,則進入啟動傳輸狀態(tài)。在緩存申請狀態(tài),檢測緩存就緒信號是否有效,若有效,置動態(tài)翻譯控制寄存器 Ready字段,跳回總線監(jiān)測狀態(tài);否則向緩存管理單元發(fā)緩存申請信號,繼續(xù)處于緩存申請 狀態(tài)。在啟動傳輸狀態(tài),檢測動態(tài)翻譯控制寄存器Mart字段是否有效,若為有效,檢查 目的地址寄存器和線程ID寄存器是否為0,若兩個寄存器都不為0,向緩存管理單元發(fā)傳輸 開始信號,進入傳輸結(jié)束狀態(tài),否則進入故障檢測狀態(tài)。在傳輸結(jié)束狀態(tài),檢測動態(tài)翻譯控制寄存器End字段,若End為1,向緩存管理單元 發(fā)傳輸完畢信號,同時將開始信號置為0,向緩存管理單元發(fā)傳輸完畢信號,同時將目的地 址寄存器和線程ID寄存器重置為0,回到總線監(jiān)測狀態(tài),否則繼續(xù)處于傳輸結(jié)束狀態(tài);在故障檢測狀態(tài),檢測動態(tài)翻譯控制寄存器Ready字段是否有效,若無效,則置動 態(tài)翻譯控制寄存器BufTErr字段;檢測目的地址寄存器寄存器是否為0,若為0則置動態(tài)翻 譯控制寄存器TargerAddrErr字段;檢測線程ID寄存器是否為0,若為0,則置動態(tài)翻譯控 制寄存器中ftOcessIDErr字段。操作完畢之后跳回總線檢測狀態(tài)。緩存管理單元從通信控制單元接收緩存申請,當有可替換緩沖區(qū)時向通信控制單 元發(fā)頁面就緒信號,同時更新頁面映射表即置源體系結(jié)構(gòu)二進制碼緩沖中待寫入頁面所對 應;從通信控制單元接收頁面?zhèn)鬏旈_始信號,在源緩沖讀寫控制信號和目標緩沖讀寫控制 信號的控制下,選通源體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標體系結(jié)構(gòu)二進制碼緩沖區(qū),通過 傳輸總線往源體系結(jié)構(gòu)二進制碼緩沖區(qū)寫入數(shù)據(jù)或者從目標體系結(jié)構(gòu)二進制碼緩沖區(qū)中 讀取數(shù)據(jù);從通信控制單元接收頁面?zhèn)鬏斖戤呅盘?,斷開源體系結(jié)構(gòu)二進制碼緩沖區(qū)或者 目標系統(tǒng)結(jié)構(gòu)二進制碼緩沖區(qū)與傳輸總線的連接;檢測源體系結(jié)構(gòu)二進制碼緩沖區(qū)是否有 未翻譯頁面,若有未翻譯頁面,選擇其中一個未翻譯頁面,向處理器核發(fā)動態(tài)二進制翻譯申 請,通過傳輸總線將頁面數(shù)據(jù)發(fā)送至處理器核;從處理器核接收目標體系結(jié)構(gòu)二進制碼寫 入信號,選取待寫入目標體系結(jié)構(gòu)二進制碼頁面,通過傳輸總線往目標體系結(jié)構(gòu)二進制碼 緩沖區(qū)寫入數(shù)據(jù);接收處理器核翻譯完畢信號,更新頁面映射表信息。緩存管理單元由頁面替換部件、緩存管理控制部件組成。頁面替換部件和緩存管 理控制部件和數(shù)據(jù)存儲單元中的頁面映射表相連,接收從緩存管理控制部件傳輸來的源頁 面替換信號,讀取頁面映射表中源體系結(jié)構(gòu)二進制碼頁面表項中時間戳字段和狀態(tài)字段,采用通用的頁面替換算法(如LRU算法)從已翻譯頁面中選取下一次進行傳輸?shù)捻撁?,?緩存管理控制部件發(fā)所選取的源頁面號;接收從緩存管理控制部件傳輸來的目標頁面替換 信號,讀取頁面映射表中目標體系結(jié)構(gòu)二進制碼頁面表項中時標字段和狀態(tài)字段,采用頁 面替換算法從已翻譯頁面中選取下一次進行傳輸?shù)捻撁?,向緩存管理控制部件發(fā)所選取的 目標頁面號。緩存管理控制部件與頁面替換部件、頁面映射表和通信控制單元相連,監(jiān)測從 通信控制單元傳輸來的緩存申請信號,讀取頁面替換部件返回的源體系結(jié)構(gòu)二進制碼緩沖 區(qū)頁號,若頁號不為0,則向通信控制單元發(fā)緩存就緒信號;監(jiān)測從通信控制單元傳輸來的 傳輸開始信號,若有效,則選通原體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標體系結(jié)構(gòu)二進制碼緩 沖區(qū);監(jiān)測從通信控制單元傳輸來的傳輸完畢信號,在傳輸完畢信號有效時,向頁面替換部 件發(fā)頁面替換信號;從外部頁面映射表讀取源體系結(jié)構(gòu)二進制碼頁面信息,檢測是否有頁 面處于未翻譯狀態(tài),若有處于未翻譯狀態(tài)的頁面則向處理器核發(fā)翻譯請求信號,向處理器 核傳遞未翻譯頁面;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制碼寫入信號,若有效時,從替 換部件讀取目標頁面號,根據(jù)目標頁面號計算目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問高地 址,向目標體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,將處理器核發(fā)來的翻譯后目標體系結(jié)構(gòu) 二進制碼代碼寫入目標頁面號隨對應的頁面中;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制 碼寫入信號,若信號從有效跳變成無效時,向頁面替換部件發(fā)頁面替換信號,讀取頁面替換 部件返回的目標頁面號,將目標-源頁面映射表中當前傳輸頁面所對應表項中下一頁號字 段置為替換部件返回的目標頁面號,并將替換部件返回的目標頁面號所對應表項的源緩沖 區(qū)頁號字段置為正在進行翻譯的源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面號;監(jiān)測處理器核發(fā)出的 翻譯完畢信號,當翻譯完畢信號有效時,向頁面替換部件發(fā)頁面替換信號,將目標-源頁面 映射表中傳輸頁面所對應表項中下一頁號字段置為0。緩存管理控制部件由初始化邏輯、源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機和目 標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機組成。初始化邏輯以4K字節(jié)為基本單位對源體 系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體系結(jié)構(gòu)二進制碼緩沖區(qū)進行頁面劃分,劃分后的頁面按地 址順序編號,編號從1開始,依次遞增。初始化邏輯通過讀寫總線將源-目標頁面映射表和 目標-源頁面映射表表目錄表項全都初始化為0,置緩存就緒信號。初始化完成后,初始化 邏輯向源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機和目標體系結(jié)構(gòu)二進制碼頁面訪問控制 狀態(tài)機發(fā)初始化完畢信號,啟動此兩個狀態(tài)機。源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機與初始化邏輯、頁面映射表和外部通信 控制單元相連,由空閑狀態(tài)、傳輸請求監(jiān)控、頁面寫入準備、傳輸結(jié)束、頁面讀取準備、頁面 發(fā)送狀態(tài)和頁面發(fā)送完畢狀態(tài)組成,其狀態(tài)轉(zhuǎn)移關(guān)系是當處理器核復位時,狀態(tài)機處于空閑狀態(tài),當接收到從初始化邏輯發(fā)來的初始化 完畢信號有效時轉(zhuǎn)移至傳輸請求監(jiān)控狀態(tài)。當狀態(tài)機處于傳輸請求監(jiān)控狀態(tài)時,置源頁面替換信號為無效;讀取頁面替換部 件返回的源頁面號,若不為0,置緩存就緒信號為有效;若傳輸開始信號有效,將線程ID和 目的地址傳遞給頁面映射表,讀取自頁面映射表傳來的頁面命中信號,若頁面命中信號為 有效則置傳輸總線中等待信號為有效,進入頁面讀取準備狀態(tài),若頁面命中信號無效,進入 頁面寫入準備狀態(tài);當狀態(tài)機處于頁面寫入準備狀態(tài)時,將線程ID和目的地址分別寫入頁面替換部件所選取的源頁面號所對應的源-目標頁面映射表表項中相應字段,并將頁面映射表項中 狀態(tài)字段置為待翻譯表明此頁面等待翻譯;同時根據(jù)頁面替換部件返回的源頁面號計算出 源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的地址高位,地址高位由源頁面號與頁面大小相乘獲 得,向源體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,進入頁面寫入狀態(tài);當狀態(tài)機處于頁面寫入狀態(tài)時,若傳輸完畢信號有效,進入傳輸結(jié)束狀態(tài),否則繼 續(xù)處于頁面寫入狀態(tài);當狀態(tài)機處于傳輸結(jié)束狀態(tài)時,將源-目標頁面映射表除頁面替換部件返回的源 頁面號所對應源-目標頁面映射表表項其余有效映射表項時間戳字段自增1 ;同時置緩存 就緒為無效,向頁面替換部件發(fā)源頁面替換信號,選取下一次傳輸緩存頁面,返回傳輸監(jiān)控 狀態(tài);當狀態(tài)機處于頁面讀取準備狀態(tài)時,讀取源-目標頁面映射表線程ID和目的地址 字段與緩存管理控制單元控制發(fā)來的線程ID和目的地址相等表項的起始頁面號字段,以 起始頁面號為索引查詢目標-源頁面映射表中相應表項,使能目標體系結(jié)構(gòu)二進制碼緩沖 區(qū),頁面訪問的高地址由目標緩沖頁面號與頁面大小相乘獲得,進入頁面發(fā)送狀態(tài);當狀態(tài)機處于頁面發(fā)送狀態(tài)時,檢測通信控制單元發(fā)出的傳輸完畢信號,若有效, 進入頁面發(fā)送完畢狀態(tài),否則繼續(xù)處于頁面發(fā)送狀態(tài);當狀態(tài)機處于頁面發(fā)送完畢狀態(tài)時,從目標-源頁面映射表表項中讀取下一頁 號,將源-目標頁面映射表中“命中”的表項中目標緩沖頁面號置為所讀取的下一頁號,返 回傳輸請求監(jiān)控狀態(tài)。目標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機與初始化邏輯、頁面映射表和處理器 核相連,由空閑狀態(tài)、翻譯狀態(tài)檢測狀態(tài)、翻譯狀態(tài)、代碼寫入狀態(tài)、頁面輪換狀態(tài)組成,其 狀態(tài)轉(zhuǎn)移過程為當處理器核復位時,狀態(tài)機處于空閑狀態(tài),當初始化完畢有效時,轉(zhuǎn)移至翻譯狀態(tài) 檢測狀態(tài)。當狀態(tài)機處于翻譯狀態(tài)檢測狀態(tài)時,掃描源-目的映射表表項中翻譯狀態(tài)字段, 若有狀態(tài)字段為“待翻譯”的映射表項,選定源-目的映射表中該表項,根據(jù)所選取表項編 號計算源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址,源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪 問的高地址由所選取表項編號與頁面大小相乘獲得,向源體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能 信號;根據(jù)頁面替換部件選取的目標頁面號計算目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問 高地址,目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址由目標頁面號與頁面大小相乘獲 得,并向目標體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,進入翻譯狀態(tài);當狀態(tài)機處于翻譯狀態(tài)時,檢測從處理器核發(fā)來的目標體系結(jié)構(gòu)二進制碼寫入信 號是否有效,若有效,向頁面替換部件發(fā)目標頁面替換信號,選取下一傳輸待寫入頁面,進 入代碼寫入狀態(tài);若翻譯結(jié)束信號有效,返回翻譯狀態(tài)檢測狀態(tài);當狀態(tài)機處于代碼寫入狀態(tài)時,置目標頁面替換信號為無效,檢測目標體系結(jié)構(gòu) 二進制碼寫入信號是否為有效,若有效繼續(xù)處于代碼寫入狀態(tài),若為無效則進入頁面輪換 狀態(tài);當狀態(tài)機處于頁面輪換狀態(tài)時,根據(jù)頁面替換部件選取的目標頁面號更新待寫入 目標體系結(jié)構(gòu)二進制碼緩沖區(qū)高地址,目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址由目標頁面號與頁面大小相乘獲得。若此時從處理器核來的翻譯完畢信號無效,則更新目 標-源頁面映射表表項中下一頁號字段為頁面替換部件選取的目標頁面號,否則下一頁號 字段設(shè)為0。同時更新“源緩沖區(qū)頁號”字段為待翻譯映射表項表項編號和“時標”字段為 0,其余目標-源頁面映射表項時標字段自增1。讀取所選定待翻譯映射表項,若其起始頁面 號字段為0,將其設(shè)置為當前目標二進制碼緩沖區(qū)頁號,返回翻譯狀態(tài)。頁面替換部件與緩存管理控制單元和頁面映射表相連,從緩存管理控制部件讀取 源頁面替換信號,若源頁面替換信號有效,則讀取源-目標頁面映射表,根據(jù)源-目標頁面 映射表項中的時間戳信息,選取時間戳值最大表項所對應的頁面作為下一待寫入源體系結(jié) 構(gòu)二進制碼緩沖區(qū)頁面,將頁面映射表發(fā)來的源頁面號傳遞給緩存管理控制單元;接收從 緩存管理控制單元發(fā)來目標頁面替換信號,讀取目標-源頁面映射表,根據(jù)目標-源頁面映 射表項中時標字段,選取時標值最大表項所對應的頁面作為下一待寫入目標體系結(jié)構(gòu)二進 制碼緩沖區(qū)頁面,將目標頁面號傳遞給緩存管理控制單元。頁面替換部件由源體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機和目標體系結(jié)構(gòu)二進制碼 頁面替換狀態(tài)機組成。處理器核復位時,源體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機和目標體系 結(jié)構(gòu)二進制碼頁面替換狀態(tài)機啟動。源體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機由空閑狀態(tài)、頁面選擇狀態(tài)、信號檢測狀態(tài)、 頁面映射更新狀態(tài)組成,其開機復位狀態(tài)為空閑狀態(tài)。其狀態(tài)轉(zhuǎn)移過程如下所示當處于空閑狀態(tài)時,源-目標頁面映射表初始化為0,在源體系結(jié)構(gòu)二進制碼緩沖 區(qū)隨機選取任一頁面為候選寫入頁面,將源頁面號置成選取頁面的頁面號發(fā)往緩存管理控 制單元,同時向通信控制單元發(fā)送緩存就緒信號,進入信號檢測狀態(tài)。當處于信號檢測狀態(tài)時,檢測源頁面替換信號是否有效,若無效繼續(xù)處于信號監(jiān) 測狀態(tài),否則進入頁面選擇狀態(tài)。當處于頁面選擇狀態(tài)時,讀取源-目標頁面映射表信息,比較狀態(tài)字段為“翻譯 完”表項中的時間戳字段數(shù)值,選取時間戳字段數(shù)值最大表項所對應源體系結(jié)構(gòu)二進制碼 緩沖區(qū)頁面為待寫入頁面,將源頁面號置成待寫入頁面的頁面號,置緩存就緒信號有效,進 入頁面映射更新狀態(tài);若所有映射表項的狀態(tài)都不是“翻譯完”,則選取0為待寫入頁面號, 繼續(xù)處于頁面選擇狀態(tài)。當處于頁面映射更新狀態(tài)時,根據(jù)頁面選擇狀態(tài)所選取源頁面號,更新源-目標 頁面映射表中所對應表項的中“目標緩沖頁面號”、“時間戳”和“起始頁面號”字段為0,同 時設(shè)“狀態(tài)”字段為未翻譯,進入頁面信號檢測狀態(tài)。目標體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機包含的狀態(tài)和狀態(tài)轉(zhuǎn)移過程與源體系結(jié) 構(gòu)二進制碼頁面替換狀態(tài)機轉(zhuǎn)移過程相同,它們之間的差異在于從信號檢測狀態(tài)轉(zhuǎn)移至 頁面選擇狀態(tài)時,目標體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機需要目標頁面替換信號為有效; 在頁面選擇狀態(tài)時,讀取目標-源映射表表項,選取目標-源映射表表項中時標字段數(shù)值最 大所對應的目標二進制碼緩沖區(qū)頁面為待寫入頁面,將目標頁面號置成待寫入頁面的頁面 號發(fā)往緩存管理單元,進入頁面映射更新狀態(tài);當處于頁面更新狀態(tài)時,根據(jù)頁面選擇狀態(tài) 所選取的目標頁面號更新目標-源映射表表項的中“源緩沖頁面號”、“時標”和“下一頁面 號”字段為0。處理器核是通用或者專用處理器核,與緩存管理單元相連,從緩存管理單元接收
14翻譯請求,通過傳輸總線從源體系結(jié)構(gòu)二進制緩沖區(qū)中讀取頁面代碼,進行動態(tài)二進制代 碼翻譯;當翻譯出完整頁面代碼后置目標體系結(jié)構(gòu)寫入信號通知緩存管理單元進行頁面寫 入,通過傳輸總線往目標體系結(jié)構(gòu)二進制碼緩沖區(qū)中寫入頁面數(shù)據(jù);當動態(tài)二進制翻譯完 畢時,置翻譯完畢信號通知緩存管理單元翻譯完畢。采用本發(fā)明可以達到以下技術(shù)效果1、在主存控制器和處理器核間增加翻譯緩存單元,翻譯緩存單元中緩存管理單元 負責源(目標)體系結(jié)構(gòu)二進制碼頁面通信和管理,減輕了處理器核進行二進制碼頁面通 信和管理開銷;2、翻譯緩存單元中數(shù)據(jù)緩存單元緩存了源(目標)體系結(jié)構(gòu)二進制碼頁面,一方 面降低了處理器核的頁面訪問延遲,另一方面使得處理器核進行頁面訪問時避開了一級 Cache,避免了與系統(tǒng)中其它應用程序一級Cache的訪問沖突,從而減小了處理器核進行動 態(tài)二進制翻譯時一級Cache的失效率;3、由于減小了通信開銷,降低了通信延遲,減小了一級Cache的失效率,提高了處 理器核二進制翻譯的效率,因此提高了二進制翻譯吞吐量高。
圖1是背景技術(shù)所述傳統(tǒng)動態(tài)二進制翻譯流程示意圖;圖2是現(xiàn)有多核處理器體系結(jié)構(gòu)示意圖;圖3為本發(fā)明總體邏輯結(jié)構(gòu)圖;圖4為本發(fā)明翻譯緩存單元邏輯結(jié)構(gòu)圖;圖5為本發(fā)明的通信控制單元邏輯結(jié)構(gòu)圖;圖6為本發(fā)明的緩存管理單元邏輯結(jié)構(gòu)圖;圖7為本發(fā)明緩存管理單元的中緩存管理控制部件示意圖;圖8為本發(fā)明頁面替換部件示意圖;圖9為本發(fā)明的處理器核進行動態(tài)二進制翻譯邏輯結(jié)構(gòu)圖;圖10為本發(fā)明通信控制單元中通信控制單元控制器狀態(tài)機示意圖;圖11為本發(fā)明緩存管理單元中源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機示意 圖;圖12為本發(fā)明緩存管理單元中目標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機示意 圖;圖13為本發(fā)明頁面替換部件中源(目標)體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機示 意圖。
具體實施例方式圖3為本發(fā)明總體邏輯結(jié)構(gòu)圖。支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu)由多個處理 器核、一級Cache、翻譯緩存單元、二級Cache和主存控制器組成。一級Cache、翻譯緩存單 元是每個處理器核私有的,一級Cache、翻譯緩存單元的數(shù)量與處理器核的數(shù)量相同,二級 Cache和主存控制器由所有處理器核共享。翻譯緩存單元與私有它的處理器核、核間通信互 聯(lián)網(wǎng)絡(luò)和主存控制器相連。
圖4為本發(fā)明翻譯緩存單元邏輯結(jié)構(gòu)圖。翻譯緩存單元由通信控制單元、緩存管 理單元、數(shù)據(jù)存儲單元組成,數(shù)據(jù)存儲單元中包含三個存儲區(qū),分別是源體系結(jié)構(gòu)二進制碼 緩沖區(qū)、目標體系結(jié)構(gòu)二進制碼緩沖區(qū)和頁面映射表。源體系結(jié)構(gòu)二進制碼緩沖區(qū)存儲源 體系結(jié)構(gòu)二進制碼,容量為M,M = 4KXL字,K為10M、L為正整數(shù);目標體系結(jié)構(gòu)二進制碼 緩沖區(qū)存儲翻譯后的目標體系結(jié)構(gòu)二進制碼,容量為N,N = 4KX J,K為1024、J為正整數(shù)。通信控制單元與主控處理器和緩存管理單元相連,從主控處理器接收頁面配置信 息,向緩存管理單元傳遞頁面配置信息;從主控處理器接收翻譯請求命令,向緩存管理單元 發(fā)出緩存申請;當接收到緩存管理單元就緒信號時,通知主控處理器進行二進制頁面代碼 傳輸;當接收到主控處理器發(fā)來的開始傳輸命令時,通知緩存管理單元進行頁面?zhèn)鬏?;?接收到主控處理器發(fā)來的傳輸終止命令時,通知緩存管理單元頁面?zhèn)鬏斖瓿?。緩存管理單元與通信控制單元、數(shù)據(jù)存儲單元和處理器核相連,從通信控制單元 接收頁面配置信息,對源體系結(jié)構(gòu)二進制碼緩沖區(qū)和目標體系結(jié)構(gòu)二進制碼緩沖區(qū)按照頁 面配置信息進行頁面劃分管理;根據(jù)從通信控制單元接收的數(shù)據(jù)傳輸控制信號,檢測頁面 映射表信息,若檢測到有未翻譯頁面,則向處理器核發(fā)翻譯請求信號;根據(jù)從處理器核接收 的頁面訪問地址信號,查詢訪問地址在頁面映射表中是否存在,若存在,則從目標體系結(jié)構(gòu) 二進制碼緩沖區(qū)讀取訪問地址所對應的翻譯后頁面數(shù)據(jù),將翻譯后頁面數(shù)據(jù)發(fā)送給通信控 制單元;若不存在,則從通信控制單元接收源體系結(jié)構(gòu)二進制碼頁面數(shù)據(jù),將其寫入源體系 結(jié)構(gòu)二進制碼緩沖區(qū)中。圖5為本發(fā)明的通信控制單元邏輯結(jié)構(gòu)圖。通信控制單元由多路選擇器、通信控 制單元控制器、傳輸總線和三個寄存器組成。三個寄存器分別是動態(tài)翻譯控制寄存器、目的 地址寄存器、線程ID寄存器,在體系結(jié)構(gòu)全局地址空間中統(tǒng)一編址。多路選擇器為三選一 選擇器,與目的地址寄存器、動態(tài)翻譯控制寄存器和線程ID寄存器相連,根據(jù)從通信控制 單元控制器來的寄存器選擇信號,將傳輸總線中的數(shù)據(jù)寫入相應寄存器中。圖6為本發(fā)明的緩存管理單元邏輯結(jié)構(gòu)圖。緩存管理單元從通信控制單元接收緩 存申請,當有可替換緩沖區(qū)時向通信控制單元發(fā)頁面就緒信號,同時更新頁面映射表即置 源體系結(jié)構(gòu)二進制碼緩沖中待寫入頁面所對應;從通信控制單元接收頁面?zhèn)鬏旈_始信號, 在源緩沖讀寫控制信號和目標緩沖讀寫控制信號的控制下,選通源體系結(jié)構(gòu)二進制碼緩沖 區(qū)或者目標體系結(jié)構(gòu)二進制碼緩沖區(qū),通過傳輸總線往源體系結(jié)構(gòu)二進制碼緩沖區(qū)寫入數(shù) 據(jù)或者從目標體系結(jié)構(gòu)二進制碼緩沖區(qū)中讀取數(shù)據(jù);從通信控制單元接收頁面?zhèn)鬏斖戤?信號,斷開源體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標系統(tǒng)結(jié)構(gòu)二進制碼緩沖區(qū)與傳輸總線的連 接;檢測源體系結(jié)構(gòu)二進制碼緩沖區(qū)是否有未翻譯頁面,若有未翻譯頁面,選擇其中一個未 翻譯頁面,向處理器核發(fā)動態(tài)二進制翻譯申請,通過傳輸總線將頁面數(shù)據(jù)發(fā)送至處理器核; 從處理器核接收目標體系結(jié)構(gòu)二進制碼寫入信號,選取待寫入目標體系結(jié)構(gòu)二進制碼頁 面,通過傳輸總線往目標體系結(jié)構(gòu)二進制碼緩沖區(qū)寫入數(shù)據(jù);接收處理器核翻譯完畢信號, 更新頁面映射表信息。緩存管理單元由頁面替換部件、緩存管理控制部件組成。頁面替換部件和緩存管 理控制部件和數(shù)據(jù)存儲單元中的頁面映射表相連,接收從緩存管理控制部件傳輸來的源頁 面替換信號,讀取頁面映射表中源體系結(jié)構(gòu)二進制碼頁面表項中時間戳字段和狀態(tài)字段, 采用通用的頁面替換算法(如LRU算法)從已翻譯頁面中選取下一次進行傳輸?shù)捻撁?,向緩存管理控制部件發(fā)所選取的源頁面號;接收從緩存管理控制部件傳輸來的目標頁面替換 信號,讀取頁面映射表中目標體系結(jié)構(gòu)二進制碼頁面表項中時標字段和狀態(tài)字段,采用頁 面替換算法從已翻譯頁面中選取下一次進行傳輸?shù)捻撁?,向緩存管理控制部件發(fā)所選取的 目標頁面號。緩存管理控制部件與頁面替換部件、頁面映射表和通信控制單元相連,監(jiān)測從 通信控制單元傳輸來的緩存申請信號,讀取頁面替換部件返回的源體系結(jié)構(gòu)二進制碼緩沖 區(qū)頁號,若頁號不為0,則向通信控制單元發(fā)緩存就緒信號;監(jiān)測從通信控制單元傳輸來的 傳輸開始信號,若有效,則選通原體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標體系結(jié)構(gòu)二進制碼緩 沖區(qū);監(jiān)測從通信控制單元傳輸來的傳輸完畢信號,在傳輸完畢信號有效時,向頁面替換部 件發(fā)頁面替換信號;從外部頁面映射表讀取源體系結(jié)構(gòu)二進制碼頁面信息,檢測是否有頁 面處于未翻譯狀態(tài),若有處于未翻譯狀態(tài)的頁面則向處理器核發(fā)翻譯請求信號,向處理器 核傳遞未翻譯頁面;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制碼寫入信號,若有效時,從替 換部件讀取目標頁面號,根據(jù)目標頁面號計算目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問高地 址,向目標體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,將處理器核發(fā)來的翻譯后目標體系結(jié)構(gòu) 二進制碼代碼寫入目標頁面號隨對應的頁面中;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制 碼寫入信號,若信號從有效跳變成無效時,向頁面替換部件發(fā)頁面替換信號,讀取頁面替換 部件返回的目標頁面號,將目標-源頁面映射表中當前傳輸頁面所對應表項中下一頁號字 段置為替換部件返回的目標頁面號,并將替換部件返回的目標頁面號所對應表項的源緩沖 區(qū)頁號字段置為正在進行翻譯的源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面號;監(jiān)測處理器核發(fā)出的 翻譯完畢信號,當翻譯完畢信號有效時,向頁面替換部件發(fā)頁面替換信號,將目標-源頁面 映射表中傳輸頁面所對應表項中下一頁號字段置為0。圖7為本發(fā)明緩存管理單元的中緩存管理控制部件示意圖。緩存管理控制部件由 初始化邏輯、源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機和目標體系結(jié)構(gòu)二進制碼頁面訪問 控制狀態(tài)機組成。初始化邏輯以4K字節(jié)為基本單位對源體系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體 系結(jié)構(gòu)二進制碼緩沖區(qū)進行頁面劃分,劃分后的頁面按地址順序編號,編號從1開始,依次 遞增。初始化邏輯通過讀寫總線將源-目標頁面映射表和目標-源頁面映射表表目錄表項 全都初始化為0,置緩存就緒信號。初始化完成后,初始化邏輯向源體系結(jié)構(gòu)二進制碼頁面 傳輸控制狀態(tài)機和目標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機發(fā)初始化完畢信號,啟動此 兩個狀態(tài)機。圖8為本發(fā)明頁面替換部件示意圖。頁面替換部件與緩存管理控制單元和頁面 映射表相連,從緩存管理控制部件讀取源頁面替換信號,若源頁面替換信號有效,則讀取 源-目標頁面映射表,根據(jù)源-目標頁面映射表項中的時間戳信息,選取時間戳值最大表項 所對應的頁面作為下一待寫入源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面,將頁面映射表發(fā)來的源頁 面號傳遞給緩存管理控制單元;接收從緩存管理控制單元發(fā)來目標頁面替換信號,讀取目 標-源頁面映射表,根據(jù)目標-源頁面映射表項中時標字段,選取時標值最大表項所對應的 頁面作為下一待寫入目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面,將目標頁面號傳遞給緩存管理控 制單元。圖9為本發(fā)明的處理器核進行動態(tài)二進制翻譯邏輯結(jié)構(gòu)圖。處理器核是通用或者 專用處理器核,與緩存管理單元相連,從緩存管理單元接收翻譯請求,通過傳輸總線從源體 系結(jié)構(gòu)二進制緩沖區(qū)中讀取頁面代碼,進行動態(tài)二進制代碼翻譯;當翻譯出完整頁面代碼后置目標體系結(jié)構(gòu)寫入信號通知緩存管理單元進行頁面寫入,通過傳輸總線往目標體系結(jié) 構(gòu)二進制碼緩沖區(qū)中寫入頁面數(shù)據(jù);當動態(tài)二進制翻譯完畢時,置翻譯完畢信號通知緩存 管理單元翻譯完畢。圖10為本發(fā)明通信控制單元中通信控制單元控制器狀態(tài)機示意圖。通信控制單 元控制器是一個狀態(tài)機,與動態(tài)翻譯控制寄存器、目的地址寄存器、線程ID寄存器相連,并 通過傳輸總線和緩存管理單元相連。通信控制單元控制器狀態(tài)機由初始狀態(tài)、總線監(jiān)測狀 態(tài)、緩存申請狀態(tài)、啟動傳輸狀態(tài)、傳輸結(jié)束狀態(tài)、故障檢測狀態(tài)組成。圖11為本發(fā)明緩存管理單元中源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機示意 圖。源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機與初始化邏輯、頁面映射表和外部通信控制 單元相連,由空閑狀態(tài)、傳輸請求監(jiān)控、頁面寫入準備、傳輸結(jié)束、頁面讀取準備、頁面發(fā)送 狀態(tài)和頁面發(fā)送完畢狀態(tài)組成。圖12為本發(fā)明緩存管理單元中目標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機示意 圖。目標體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機與初始化邏輯、頁面映射表和處理器核相 連,由空閑狀態(tài)、翻譯狀態(tài)檢測狀態(tài)、翻譯狀態(tài)、代碼寫入狀態(tài)、頁面輪換狀態(tài)組成。圖13為本發(fā)明頁面替換部件中源(目標)體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機示 意圖。源(目標)體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機由空閑狀態(tài)、頁面選擇狀態(tài)、信號檢測 狀態(tài)、頁面映射更新狀態(tài)組成。
18
權(quán)利要求
1. 一種支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),包括多個處理器核、一級Cache、二級 Cache和主存控制器,一級Cache是每個處理器核私有的,其數(shù)量與處理器核的數(shù)量相同, 二級Cache和主存控制器由所有處理器核共享;其特征在于支持動態(tài)二進制翻譯的多核體 系結(jié)構(gòu)還包括翻譯緩存單元,翻譯緩存單元是每個處理器核私有的,其數(shù)量與處理器核的 數(shù)量相同,翻譯緩存單元與私有它的處理器核、核間通信互聯(lián)網(wǎng)絡(luò)和主存控制器相連;翻譯緩存單元由通信控制單元、緩存管理單元、數(shù)據(jù)存儲單元組成,數(shù)據(jù)存儲單元由源 體系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體系結(jié)構(gòu)二進制碼緩沖區(qū)和頁面映射表組成;源體系結(jié)構(gòu) 二進制碼緩沖區(qū)存儲源體系結(jié)構(gòu)二進制碼,目標體系結(jié)構(gòu)二進制碼緩沖區(qū)存儲翻譯后的目 標體系結(jié)構(gòu)二進制碼;頁面映射表由源-目標頁面映射表、目標-源頁面映射表組成;源-目標頁面映射表 記錄源體系結(jié)構(gòu)二進制碼緩沖區(qū)與目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面對應關(guān)系;目標-源 頁面映射表記錄目標體系結(jié)構(gòu)二進制碼緩沖區(qū)與源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面映射關(guān) 系,同時記錄翻譯過程中出現(xiàn)的一對多頁面映射和翻譯后目標體系結(jié)構(gòu)二進制碼頁面先后 順序;源-目標頁面映射表中表項與每個源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面依照編號一一對 應,目標-源頁面映射表中映射表項與每個目標體系結(jié)構(gòu)緩沖區(qū)頁面依照編號一一對應;源-目標頁面映射表為Cache類型存儲單元,結(jié)構(gòu)與處理器中Cache結(jié)構(gòu)相同,以線程 ID和目的地址作為查詢字段,返回是否命中信號和命中表項的編號;源-目標頁面映射表 每個表項由線程ID、目的地址、目標緩沖頁面號、起始頁面號、時間戳和狀態(tài)字段組成; 目標-源頁面映射表的每個表項由時標、源緩沖區(qū)頁號、下一頁號組成; 通信控制單元與主控處理器和緩存管理單元相連,從主控處理器接收頁面配置信息, 向緩存管理單元傳遞頁面配置信息;從主控處理器接收翻譯請求命令,向緩存管理單元發(fā) 出緩存申請;當接收到緩存管理單元就緒信號時,通知主控處理器進行二進制頁面代碼傳 輸;當接收到主控處理器發(fā)來的開始傳輸命令時,通知緩存管理單元進行頁面?zhèn)鬏?;當?收到主控處理器發(fā)來的傳輸終止命令時,通知緩存管理單元頁面?zhèn)鬏斖瓿?;緩存管理單元與通信控制單元、數(shù)據(jù)存儲單元和處理器核相連,從通信控制單元接收 頁面配置信息,對源體系結(jié)構(gòu)二進制碼緩沖區(qū)和目標體系結(jié)構(gòu)二進制碼緩沖區(qū)按照頁面配 置信息進行頁面劃分管理;從通信控制單元接收緩存申請,當有可替換緩沖區(qū)時向通信控 制單元發(fā)頁面就緒信號,同時更新頁面映射表即置源體系結(jié)構(gòu)二進制碼緩沖中待寫入頁面 所對應;從通信控制單元接收頁面?zhèn)鬏旈_始信號,在源緩沖讀寫控制信號和目標緩沖讀寫 控制信號的控制下,選通源體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標體系結(jié)構(gòu)二進制碼緩沖區(qū), 通過傳輸總線往源體系結(jié)構(gòu)二進制碼緩沖區(qū)寫入數(shù)據(jù)或者從目標體系結(jié)構(gòu)二進制碼緩沖 區(qū)中讀取數(shù)據(jù);從通信控制單元接收頁面?zhèn)鬏斖戤呅盘?,斷開源體系結(jié)構(gòu)二進制碼緩沖區(qū) 或者目標系統(tǒng)結(jié)構(gòu)二進制碼緩沖區(qū)與傳輸總線的連接;檢測源體系結(jié)構(gòu)二進制碼緩沖區(qū)是 否有未翻譯頁面,若有未翻譯頁面,選擇其中一個未翻譯頁面,向處理器核發(fā)動態(tài)二進制翻 譯申請,通過傳輸總線將頁面數(shù)據(jù)發(fā)送至處理器核;從處理器核接收目標體系結(jié)構(gòu)二進制 碼寫入信號,選取待寫入目標體系結(jié)構(gòu)二進制碼頁面,通過傳輸總線往目標體系結(jié)構(gòu)二進 制碼緩沖區(qū)寫入數(shù)據(jù);接收處理器核翻譯完畢信號,更新頁面映射表信息;通信控制單元由多路選擇器、通信控制單元控制器、傳輸總線和三個寄存器組成,三個 寄存器分別是動態(tài)翻譯控制寄存器、目的地址寄存器、線程ID寄存器,在體系結(jié)構(gòu)全局地址空間中統(tǒng)一編址;多路選擇器為三選一選擇器,與目的地址寄存器、動態(tài)翻譯控制寄存器 和線程ID寄存器相連,根據(jù)從通信控制單元控制器來的寄存器選擇信號,將傳輸總線中的 數(shù)據(jù)寫入相應寄存器中;目的地址寄存器存儲目標體系結(jié)構(gòu)二進制碼頁面主存寫入地址;線程ID寄存器存儲 進行動態(tài)二進制翻譯請求的線程ID號;動態(tài)翻譯控制寄存器由Page[N-l:0]、Set, Start, End、Req、Ready> Busy、Available、TargetAddrErr、Process IDErr> BuffErr 字段組成; Page[N-l :0]字段存儲數(shù)據(jù)的數(shù)值η表示數(shù)據(jù)存儲單元頁面以2nX4K字節(jié)進行劃分;Set位 為1時表示通信控制單元需要向緩存管理單元發(fā)送頁面配置信號和配置信號,通知緩存管 理單元以新的頁面配置信息對數(shù)據(jù)存儲單元中的源體系結(jié)構(gòu)二進制碼緩沖區(qū)和目標體系 結(jié)構(gòu)二進制碼緩沖區(qū)重新進行頁面劃分,其值為0時不做任何處理Atart位為1時表示主 控處理器開始進行頁面?zhèn)鬏?;End為1時表明主控處理器頁面?zhèn)鬏斖戤?;Req為1時表明主 控處理器向緩存管理單元申請源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面;Ready為1時表明源體系 結(jié)構(gòu)二進制碼緩沖區(qū)就緒,可以進行數(shù)據(jù)傳輸;Busy為1時表明處理器核正在進行動態(tài)二 進制翻譯;Available表明源體系結(jié)構(gòu)二進制碼緩沖區(qū)是否可用,為1表示可用,為0表示 不可用;TargetAddrEn 為1表明進行動態(tài)二進制翻譯時發(fā)生目標地址未設(shè)定錯誤,在主控 處理器尚未設(shè)定目的地址寄存器就開始進行頁面?zhèn)鬏敃r發(fā)生;ftOcessIDErr為1表明進行 動態(tài)二進制翻譯時表明發(fā)生線程ID未設(shè)定錯誤,在主控處理器開始進行頁面?zhèn)鬏斏形丛O(shè) 定線程ID寄存器時發(fā)生;BuffErr為1表明進行動態(tài)二進制翻譯時發(fā)生源體系結(jié)構(gòu)二進制 碼緩沖區(qū)頁面未申請錯誤,在主控處理器沒有申請到有效源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面 就啟動頁面?zhèn)鬏?;緩存管理單元由頁面替換部件、緩存管理控制部件組成;頁面替換部件和緩存管理控 制部件和數(shù)據(jù)存儲單元中的頁面映射表相連,接收從緩存管理控制部件傳輸來的源頁面替 換信號,讀取頁面映射表中源體系結(jié)構(gòu)二進制碼頁面表項中時間戳字段和狀態(tài)字段,采用 通用的頁面替換算法從已翻譯頁面中選取下一次進行傳輸?shù)捻撁?,向緩存管理控制部件發(fā) 所選取的源頁面號;接收從緩存管理控制部件傳輸來的目標頁面替換信號,讀取頁面映射 表中目標體系結(jié)構(gòu)二進制碼頁面表項中時標字段和狀態(tài)字段,采用頁面替換算法從已翻譯 頁面中選取下一次進行傳輸?shù)捻撁妫蚓彺婀芾砜刂撇考l(fā)所選取的目標頁面號;緩存管 理控制部件與頁面替換部件、頁面映射表和通信控制單元相連,監(jiān)測從通信控制單元傳輸 來的緩存申請信號,讀取頁面替換部件返回的源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁號,若頁號不 為0,則向通信控制單元發(fā)緩存就緒信號;監(jiān)測從通信控制單元傳輸來的傳輸開始信號,若 有效,則選通原體系結(jié)構(gòu)二進制碼緩沖區(qū)或者目標體系結(jié)構(gòu)二進制碼緩沖區(qū);監(jiān)測從通信 控制單元傳輸來的傳輸完畢信號,在傳輸完畢信號有效時,向頁面替換部件發(fā)頁面替換信 號;從外部頁面映射表讀取源體系結(jié)構(gòu)二進制碼頁面信息,檢測是否有頁面處于未翻譯狀 態(tài),若有處于未翻譯狀態(tài)的頁面則向處理器核發(fā)翻譯請求信號,向處理器核傳遞未翻譯頁 面;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制碼寫入信號,若有效時,從替換部件讀取目標 頁面號,根據(jù)目標頁面號計算目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問高地址,向目標體系 結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,將處理器核發(fā)來的翻譯后目標體系結(jié)構(gòu)二進制碼代碼寫 入目標頁面號隨對應的頁面中;監(jiān)測處理器核發(fā)出的目標體系結(jié)構(gòu)二進制碼寫入信號,若 信號從有效跳變成無效時,向頁面替換部件發(fā)頁面替換信號,讀取頁面替換部件返回的目標頁面號,將目標-源頁面映射表中當前傳輸頁面所對應表項中下一頁號字段置為替換部 件返回的目標頁面號,并將替換部件返回的目標頁面號所對應表項的源緩沖區(qū)頁號字段置 為正在進行翻譯的源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面號;監(jiān)測處理器核發(fā)出的翻譯完畢信 號,當翻譯完畢信號有效時,向頁面替換部件發(fā)頁面替換信號,將目標-源頁面映射表中傳 輸頁面所對應表項中下一頁號字段置為0 ;緩存管理控制部件由初始化邏輯、源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機和目標體 系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機組成;初始化邏輯對源體系結(jié)構(gòu)二進制碼緩沖區(qū)、目 標體系結(jié)構(gòu)二進制碼緩沖區(qū)進行頁面劃分;初始化邏輯通過讀寫總線將源-目標頁面映射 表和目標-源頁面映射表表目錄表項全都初始化為0,置緩存就緒信號;初始化完成后,初 始化邏輯向源體系結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機和目標體系結(jié)構(gòu)二進制碼頁面訪問 控制狀態(tài)機發(fā)初始化完畢信號,啟動此兩個狀態(tài)機;處理器核是通用或者專用處理器核,與緩存管理單元相連,從緩存管理單元接收翻譯 請求,通過傳輸總線從源體系結(jié)構(gòu)二進制緩沖區(qū)中讀取頁面代碼,進行動態(tài)二進制代碼翻 譯;當翻譯出完整頁面代碼后置目標體系結(jié)構(gòu)寫入信號通知緩存管理單元進行頁面寫入, 通過傳輸總線往目標體系結(jié)構(gòu)二進制碼緩沖區(qū)中寫入頁面數(shù)據(jù);當動態(tài)二進制翻譯完畢 時,置翻譯完畢信號通知緩存管理單元翻譯完畢。
2.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述通信控 制單元控制器是一個狀態(tài)機,與動態(tài)翻譯控制寄存器、目的地址寄存器、線程ID寄存器相 連,并通過傳輸總線和緩存管理單元相連;通信控制單元控制器狀態(tài)機由初始狀態(tài)、總線監(jiān)測狀態(tài)、緩存申請狀態(tài)、啟動傳輸狀 態(tài)、傳輸結(jié)束狀態(tài)、故障檢測狀態(tài)組成,狀態(tài)轉(zhuǎn)移過程是處理器核復位后通信控制單元控制器進入初始狀態(tài),將動態(tài)翻譯控制寄存器、目的地 址寄存器、線程ID寄存器初始化為0,狀態(tài)機進入總線監(jiān)測狀態(tài);在總線監(jiān)測狀態(tài),監(jiān)控傳輸總線地址;若傳輸總線地址與動態(tài)翻譯控制寄存器、目的地 址寄存器、線程ID寄存器的地址之一相等,根據(jù)傳輸總線地址設(shè)置寄存器選擇選擇信號, 控制多路選擇器將總線上數(shù)據(jù)寫入相應寄存器;從動態(tài)翻譯控制寄存器讀取Req字段,若 Req字段為1,進入緩存申請狀態(tài);若Req為0,則從動態(tài)翻譯控制寄存器中讀取^art字段, 若Mart字段為1,則進入啟動傳輸狀態(tài);在緩存申請狀態(tài),檢測緩存就緒信號是否有效,若有效,置動態(tài)翻譯控制寄存器Ready 字段,跳回總線監(jiān)測狀態(tài);否則向緩存管理單元發(fā)緩存申請信號,繼續(xù)處于緩存申請狀態(tài); 在啟動傳輸狀態(tài),檢測動態(tài)翻譯控制寄存器^art字段是否有效,若為有效,檢查目的 地址寄存器和線程ID寄存器是否為0,若兩個寄存器都不為0,向緩存管理單元發(fā)傳輸開始 信號,進入傳輸結(jié)束狀態(tài),否則進入故障檢測狀態(tài);在傳輸結(jié)束狀態(tài),檢測動態(tài)翻譯控制寄存器End字段,若End為1,向緩存管理單元發(fā)傳 輸完畢信號,同時將開始信號置為0,向緩存管理單元發(fā)傳輸完畢信號,同時將目的地址寄 存器和線程ID寄存器重置為0,回到總線監(jiān)測狀態(tài),否則繼續(xù)處于傳輸結(jié)束狀態(tài);在故障檢測狀態(tài),檢測動態(tài)翻譯控制寄存器Ready字段是否有效,若無效,則置動態(tài)翻 譯控制寄存器BufTErr字段;檢測目的地址寄存器寄存器是否為0,若為0則置動態(tài)翻譯控 制寄存器TargerAddrErr字段;檢測線程ID寄存器是否為0,若為0,則置動態(tài)翻譯控制寄存器中I^ocessIDErr字段;操作完畢之后跳回總線檢測狀態(tài)。
3.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述源體系 結(jié)構(gòu)二進制碼頁面?zhèn)鬏斂刂茽顟B(tài)機與初始化邏輯、頁面映射表和外部通信控制單元相連, 由空閑狀態(tài)、傳輸請求監(jiān)控、頁面寫入準備、傳輸結(jié)束、頁面讀取準備、頁面發(fā)送狀態(tài)和頁面 發(fā)送完畢狀態(tài)組成,其狀態(tài)轉(zhuǎn)移關(guān)系是當處理器核復位時,狀態(tài)機處于空閑狀態(tài),當接收到從初始化邏輯發(fā)來的初始化完畢 信號有效時轉(zhuǎn)移至傳輸請求監(jiān)控狀態(tài);當狀態(tài)機處于傳輸請求監(jiān)控狀態(tài)時,置源頁面替換信號為無效;讀取頁面替換部件返 回的源頁面號,若不為0,置緩存就緒信號為有效;若傳輸開始信號有效,將線程ID和目的 地址傳遞給頁面映射表,讀取自頁面映射表傳來的頁面命中信號,若頁面命中信號為有效 則置傳輸總線中等待信號為有效,進入頁面讀取準備狀態(tài),若頁面命中信號無效,進入頁面 寫入準備狀態(tài);當狀態(tài)機處于頁面寫入準備狀態(tài)時,將線程ID和目的地址分別寫入頁面替換部件所 選取的源頁面號所對應的源-目標頁面映射表表項中相應字段,并將頁面映射表項中狀態(tài) 字段置為待翻譯表明此頁面等待翻譯;同時根據(jù)頁面替換部件返回的源頁面號計算出源體 系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的地址高位,地址高位由源頁面號與頁面大小相乘獲得, 向源體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,進入頁面寫入狀態(tài);當狀態(tài)機處于頁面寫入狀態(tài)時,若傳輸完畢信號有效,進入傳輸結(jié)束狀態(tài),否則繼續(xù)處 于頁面寫入狀態(tài);當狀態(tài)機處于傳輸結(jié)束狀態(tài)時,將源-目標頁面映射表除頁面替換部件返回的源頁 面號所對應源-目標頁面映射表表項其余有效映射表項時間戳字段自增1 ;同時置緩存就 緒為無效,向頁面替換部件發(fā)源頁面替換信號,選取下一次傳輸緩存頁面,返回傳輸監(jiān)控狀 態(tài);當狀態(tài)機處于頁面讀取準備狀態(tài)時,讀取源-目標頁面映射表線程ID和目的地址字段 與緩存管理控制單元控制發(fā)來的線程ID和目的地址相等表項的起始頁面號字段,以起始 頁面號為索引查詢目標-源頁面映射表中相應表項,使能目標體系結(jié)構(gòu)二進制碼緩沖區(qū), 頁面訪問的高地址由目標緩沖頁面號與頁面大小相乘獲得,進入頁面發(fā)送狀態(tài);當狀態(tài)機處于頁面發(fā)送狀態(tài)時,檢測通信控制單元發(fā)出的傳輸完畢信號,若有效,進入 頁面發(fā)送完畢狀態(tài),否則繼續(xù)處于頁面發(fā)送狀態(tài);當狀態(tài)機處于頁面發(fā)送完畢狀態(tài)時,從目標-源頁面映射表表項中讀取下一頁號,將 源-目標頁面映射表中“命中”的表項中目標緩沖頁面號置為所讀取的下一頁號,返回傳輸 請求監(jiān)控狀態(tài)。
4.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述目標 體系結(jié)構(gòu)二進制碼頁面訪問控制狀態(tài)機與初始化邏輯、頁面映射表和處理器核相連,由空 閑狀態(tài)、翻譯狀態(tài)檢測狀態(tài)、翻譯狀態(tài)、代碼寫入狀態(tài)、頁面輪換狀態(tài)組成,其狀態(tài)轉(zhuǎn)移過程 為當處理器核復位時,狀態(tài)機處于空閑狀態(tài),當初始化完畢有效時,轉(zhuǎn)移至翻譯狀態(tài)檢測 狀態(tài);當狀態(tài)機處于翻譯狀態(tài)檢測狀態(tài)時,掃描源-目的映射表表項中翻譯狀態(tài)字段,若有狀態(tài)字段為“待翻譯”的映射表項,選定源-目的映射表中該表項,根據(jù)所選取表項編號計 算源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址,源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的 高地址由所選取表項編號與頁面大小相乘獲得,向源體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信 號;根據(jù)頁面替換部件選取的目標頁面號計算目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問高地 址,目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址由目標頁面號與頁面大小相乘獲得, 并向目標體系結(jié)構(gòu)二進制碼緩沖區(qū)發(fā)使能信號,進入翻譯狀態(tài);當狀態(tài)機處于翻譯狀態(tài)時,檢測從處理器核發(fā)來的目標體系結(jié)構(gòu)二進制碼寫入信號是 否有效,若有效,向頁面替換部件發(fā)目標頁面替換信號,選取下一傳輸待寫入頁面,進入代 碼寫入狀態(tài);若翻譯結(jié)束信號有效,返回翻譯狀態(tài)檢測狀態(tài);當狀態(tài)機處于代碼寫入狀態(tài)時,置目標頁面替換信號為無效,檢測目標體系結(jié)構(gòu)二 進制碼寫入信號是否為有效,若有效繼續(xù)處于代碼寫入狀態(tài),若為無效則進入頁面輪換狀 態(tài);當狀態(tài)機處于頁面輪換狀態(tài)時,根據(jù)頁面替換部件選取的目標頁面號更新待寫入目標 體系結(jié)構(gòu)二進制碼緩沖區(qū)高地址,目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面訪問的高地址由目標 頁面號與頁面大小相乘獲得;若此時從處理器核來的翻譯完畢信號無效,則更新目標-源 頁面映射表表項中下一頁號字段為頁面替換部件選取的目標頁面號,否則下一頁號字段設(shè) 為0 ;同時更新“源緩沖區(qū)頁號”字段為待翻譯映射表項表項編號和“時標”字段為0,其余 目標-源頁面映射表項時標字段自增1 ;讀取所選定待翻譯映射表項,若其起始頁面號字段 為0,將其設(shè)置為當前目標二進制碼緩沖區(qū)頁號,返回翻譯狀態(tài);頁面替換部件與緩存管理控制單元和頁面映射表相連,從緩存管理控制部件讀取源頁 面替換信號,若源頁面替換信號有效,則讀取源-目標頁面映射表,根據(jù)源-目標頁面映射 表項中的時間戳信息,選取時間戳值最大表項所對應的頁面作為下一待寫入源體系結(jié)構(gòu)二 進制碼緩沖區(qū)頁面,將頁面映射表發(fā)來的源頁面號傳遞給緩存管理控制單元;接收從緩存 管理控制單元發(fā)來目標頁面替換信號,讀取目標-源頁面映射表,根據(jù)目標-源頁面映射表 項中時標字段,選取時標值最大表項所對應的頁面作為下一待寫入目標體系結(jié)構(gòu)二進制碼 緩沖區(qū)頁面,將目標頁面號傳遞給緩存管理控制單元;頁面替換部件由源體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機和目標體系結(jié)構(gòu)二進制碼頁面 替換狀態(tài)機組成;處理器核復位時,源體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機和目標體系結(jié)構(gòu) 二進制碼頁面替換狀態(tài)機啟動。
5.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述源體系 結(jié)構(gòu)二進制碼頁面替換狀態(tài)機由空閑狀態(tài)、頁面選擇狀態(tài)、信號檢測狀態(tài)、頁面映射更新狀 態(tài)組成,其開機復位狀態(tài)為空閑狀態(tài),其狀態(tài)轉(zhuǎn)移過程如下所示當處于空閑狀態(tài)時,源-目標頁面映射表初始化為0,在源體系結(jié)構(gòu)二進制碼緩沖區(qū)隨 機選取任一頁面為候選寫入頁面,將源頁面號置成選取頁面的頁面號發(fā)往緩存管理控制單 元,同時向通信控制單元發(fā)送緩存就緒信號,進入信號檢測狀態(tài);當處于信號檢測狀態(tài)時,檢測源頁面替換信號是否有效,若無效繼續(xù)處于信號監(jiān)測狀 態(tài),否則進入頁面選擇狀態(tài);當處于頁面選擇狀態(tài)時,讀取源-目標頁面映射表信息,比較狀態(tài)字段為“翻譯完”表 項中的時間戳字段數(shù)值,選取時間戳字段數(shù)值最大表項所對應源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面為待寫入頁面,將源頁面號置成待寫入頁面的頁面號,置緩存就緒信號有效,進入頁面 映射更新狀態(tài);若所有映射表項的狀態(tài)都不是“翻譯完”,則選取0為待寫入頁面號,繼續(xù)處 于頁面選擇狀態(tài);當處于頁面映射更新狀態(tài)時,根據(jù)頁面選擇狀態(tài)所選取源頁面號,更新源-目標頁面 映射表中所對應表項的中“目標緩沖頁面號”、“時間戳”和“起始頁面號”字段為0,同時設(shè) “狀態(tài)”字段為未翻譯,進入頁面信號檢測狀態(tài)。
6.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述目標體 系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機包含的狀態(tài)和狀態(tài)轉(zhuǎn)移過程與源體系結(jié)構(gòu)二進制碼頁面 替換狀態(tài)機轉(zhuǎn)移過程相同,它們之間的差異在于從信號檢測狀態(tài)轉(zhuǎn)移至頁面選擇狀態(tài)時, 目標體系結(jié)構(gòu)二進制碼頁面替換狀態(tài)機需要目標頁面替換信號為有效;在頁面選擇狀態(tài) 時,讀取目標-源映射表表項,選取目標-源映射表表項中時標字段數(shù)值最大所對應的目標 二進制碼緩沖區(qū)頁面為待寫入頁面,將目標頁面號置成待寫入頁面的頁面號發(fā)往緩存管理 單元,進入頁面映射更新狀態(tài);當處于頁面更新狀態(tài)時,根據(jù)頁面選擇狀態(tài)所選取的目標頁 面號更新目標-源映射表表項的中“源緩沖頁面號”、“時標”和“下一頁面號”字段為0。
7.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述源體系 結(jié)構(gòu)二進制碼緩沖區(qū)容量為M,M = 4KXL字,K為1024、L為正整數(shù);目標體系結(jié)構(gòu)二進制 碼緩沖區(qū)容量為N,N = 4KXJ, K為10M、J為正整數(shù);源-目標頁面映射表大小為L行,目 標-源頁面映射表大小為J行;源-目標頁面映射表中線程ID字段為12位,記錄申請此頁 面翻譯的線程ID號,0表示沒有對應線程;目的地址字段為30位,記錄目標體系結(jié)構(gòu)二進 制碼緩沖區(qū)主存寫入地址,若體系結(jié)構(gòu)設(shè)計時不允許緩存管理單元將翻譯后的頁面代碼寫 入主存,此字段無意義留作擴展;目標緩沖頁面號字段為位,存儲翻譯后代碼將被 寫入的目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面的頁面號;當一頁源體系結(jié)構(gòu)二進制碼頁面翻譯 成多頁目標體系結(jié)構(gòu)機構(gòu)二進制碼頁面時,起始頁面號字段為lo&J+l位,記錄處理器核翻 譯出第一個目標體系結(jié)構(gòu)二進制碼頁面的頁面號;時間戳字段為6位,記錄此頁面在緩沖 區(qū)中駐留的時間信息;狀態(tài)記錄3位,該源體系結(jié)構(gòu)二進制碼頁面所處的狀態(tài),有待翻譯、 正在翻譯、翻譯完和無效狀態(tài);目標-源頁面映射表中時標為6位,記錄此目標體系結(jié)構(gòu)緩 沖區(qū)頁面在緩沖區(qū)中駐留的時間信息;源緩沖區(qū)頁號字段為lc^2L+l位,記錄此目標體系結(jié) 構(gòu)二進制碼緩沖區(qū)所對應的源體系結(jié)構(gòu)二進制碼緩沖區(qū)頁號;下一頁號為log2L+l位,記錄 出現(xiàn)一對多翻譯時下一完成翻譯的目標體系結(jié)構(gòu)二進制碼緩沖區(qū)頁面號。
8.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述動態(tài)翻 譯控制寄存器中的I^age [N-1 0]是N位,Set位是一位,Start位是一位,End是一位,Req是 一位,Ready 是一位,Busy 是一位,Available 是一位,TargetAddrErr 是一位,ProcessIDErr 是一位,BuffErr是一位。
9.如權(quán)利要求1所述的支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),其特征在于所述緩存管 理控制部件中的初始化邏輯以4K字節(jié)為基本單位對源體系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體 系結(jié)構(gòu)二進制碼緩沖區(qū)進行頁面劃分,劃分后的頁面按地址順序編號,編號從1開始,依次 遞增。
全文摘要
本發(fā)明公開了一種支持動態(tài)二進制翻譯的多核體系結(jié)構(gòu),目的是解決動態(tài)二進制翻譯過程中的Cache訪問沖突和主存沖突等問題。本發(fā)明由多個處理器核、一級Cache、翻譯緩存單元、二級Cache和主存控制器組成。一級Cache、翻譯緩存單元是每個處理器核私有的,二級Cache和主存控制器由所有處理器核共享。翻譯緩存單元由通信控制單元、緩存管理單元、數(shù)據(jù)存儲單元組成。通信控制單元由多路選擇器、通信控制單元控制器、傳輸總線和三個寄存器組成,緩存管理單元由頁面替換部件、緩存管理控制部件組成,數(shù)據(jù)存儲單元由源體系結(jié)構(gòu)二進制碼緩沖區(qū)、目標體系結(jié)構(gòu)二進制碼緩沖區(qū)和頁面映射表組成。采用本發(fā)明可使得數(shù)據(jù)訪問延遲低、翻譯吞吐量高、Cache訪問沖突小。
文檔編號G06F15/16GK102073533SQ20111000812
公開日2011年5月25日 申請日期2011年1月14日 優(yōu)先權(quán)日2011年1月14日
發(fā)明者徐帆, 朱天龍, 沈立, 游良帥, 王志英, 賴鑫, 鄭重, 陸華俊, 陳微, 陳頊顥 申請人:中國人民解放軍國防科學技術(shù)大學