數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法
【技術領域】
[0001] 本發(fā)明涉及一種數(shù)據(jù)處理裝置,具體而言,涉及一種用于訪問與讀取地址及目標 存儲器對應的數(shù)據(jù)的有效的處理方法。
【背景技術】
[0002] 眾所周知,利用存儲器保護單元(memory protection unit ;MPU,下文以MPU表示 存儲器保護單元)或存儲器管理單元控制對數(shù)據(jù)處理系統(tǒng)的存儲器的訪問。MPU或存儲器管 理邏輯確定目標存儲地址需要一定的時間,具體而言,經(jīng)過若干處理循環(huán)后才能確定對應 于目標存儲地址的數(shù)據(jù)存儲在多個存儲器中的哪一存儲器中,并據(jù)此訪問數(shù)據(jù)。數(shù)據(jù)訪問 時間可能會變成限制數(shù)據(jù)處理系統(tǒng)性能的關鍵因素。此外,若訪問多個存儲器中的多于一 個存儲器,則功耗會成為另一關鍵因素。
[0003] 因此,需要一種高性能及低功耗的方法以訪問存儲器及提取數(shù)據(jù)。另外,也需要一 種用于提高數(shù)據(jù)訪問的效率及性能并減小器件中的電路面積的數(shù)據(jù)處理裝置。
【發(fā)明內(nèi)容】
[0004] 在一個實施例中,本發(fā)明提供一種用于訪問多個存儲器的數(shù)據(jù)處理裝置。所述數(shù) 據(jù)處理裝置包括功能控制電路及地址生成電路,功能控制電路用于在實施第一功能之后記 錄實施第一功能的第一存儲地址,并且用于根據(jù)第一存儲地址確定多個存儲器中哪一個存 儲器為目標存儲器,地址生成電路用于向目標存儲器輸出第一存儲地址。此外,功能控制電 路用以在地址生成電路用以輸出第一存儲地址的同一處理循環(huán)中確定目標存儲器。
[0005] 在另一實施例中,本發(fā)明提供一種用于使數(shù)據(jù)處理裝置訪問多個存儲器的數(shù)據(jù)處 理方法。所述數(shù)據(jù)處理方法包括:在實施第一功能之后記錄實施第一功能的第一存儲地址; 根據(jù)第一存儲地址確定多個存儲器中的哪一個存儲器為目標存儲器;以及向目標存儲器輸 出第一存儲地址,其中功能控制電路用以在地址生成電路用以輸出第一存儲地址的同一處 理循環(huán)中確定目標存儲器。
[0006] 在又一實施例中,本發(fā)明提供一種用于訪問多個存儲器的數(shù)據(jù)處理裝置。所述數(shù) 據(jù)處理裝置包括核心電路、功能控制電路及地址生成電路。所述核心電路用于輸出讀取存 儲器地址。功能控制電路用于接收讀取存儲器地址,并通過在目標存儲器被訪問時記錄目 標存儲器確定多個存儲器中的一個存儲器作為讀取存儲器地址所在的目標存儲器。地址生 成電路用于向目標存儲器輸出讀取存儲器地址。
[0007] 在再一實施例中,本發(fā)明提供一種用于訪問多個存儲器的數(shù)據(jù)處理裝置。所述數(shù) 據(jù)處理裝置包括地址生成電路及功能控制電路。地址生成電路用于向目標存儲器輸出讀取 存儲器地址。功能控制電路用于通過記錄多個存儲器中的哪一個存儲器最近被執(zhí)行過以及 指定最近被訪問過的存儲器作為目標存儲器,確定多個存儲器中的一個存儲器作為欲被訪 問數(shù)據(jù)的目標存儲器。
[0008] 本發(fā)明實施例所提供的數(shù)據(jù)處理裝置及數(shù)據(jù)處理方法可提高讀取數(shù)據(jù)的準確性、 減少讀取數(shù)據(jù)的時間,并降低功耗。
【附圖說明】
[0009] 圖1A是本發(fā)明的數(shù)據(jù)處理方法一實施例的循環(huán)定時圖;
[0010] 圖1B是本發(fā)明的數(shù)據(jù)處理方法另一實施例的循環(huán)定時圖;
[0011] 圖1C是本發(fā)明的數(shù)據(jù)處理方法又一實施例的循環(huán)定時圖;
[0012] 圖2是本發(fā)明的數(shù)據(jù)處理方法再一實施例的循環(huán)定時圖;
[0013] 圖3A是本發(fā)明數(shù)據(jù)處理裝置與多個存儲器一實施例的原理框圖;
[0014]圖3B是本發(fā)明的數(shù)據(jù)處理裝置及多個存儲器的另一實施例的原理框圖;
[0015] 圖4是本發(fā)明的數(shù)據(jù)處理方法一實施例的流程示意圖;
[0016] 圖5是本發(fā)明的數(shù)據(jù)處理方法另一實施例的流程示意圖;
[0017] 圖6是本發(fā)明的數(shù)據(jù)處理方法又一實施例的流程示意圖。
【具體實施方式】
[0018] 本發(fā)明實施例全文使用某些術語及數(shù)字來指代特定部件,根據(jù)本領域技術人員的 了解,制造商可使用不同名稱以指代部件,本文并非旨在區(qū)分各個名稱不同的部件而是區(qū) 分各個功能不同的部件。另外,用語"部件"、"系統(tǒng)"及"器件"可以是與計算機相關的實體, 該實體可以為硬件、軟件或硬件與軟件的組合,用語"包括"應被理解為"包括,但不限 于…",用語"耦接"意指間接電連接或直接電連接,例如,如果一個器件耦接到另一器件,則 所述兩個器件之間的連接可以是直接電連接或者是通過其他器件及連接件的間接電連接。
[0019] 圖1A是本發(fā)明的數(shù)據(jù)處理方法一實施例的循環(huán)定時圖。以下實施例使用處理器及 MPU訪問(access)第一存儲器及第二存儲器。如圖1A所示,在第一處理循環(huán)中,處理器向MPU 輸出讀取存儲器地址(fetch memory address);在第二處理循環(huán)中,MPU確定讀取存儲器地 址位于哪一個存儲器中,并且處理器根據(jù)MPU的輸出向第一存儲器或第二存儲器輸出讀取 存儲器地址;在第三處理循環(huán)中,第一存儲器或第二存儲器向處理器輸出讀取數(shù)據(jù)。由于訪 問存儲器及處理數(shù)據(jù)需要經(jīng)過三個處理循環(huán),因此本實例的數(shù)據(jù)處理方法性能低下。
[0020] 圖1B是本發(fā)明的數(shù)據(jù)處理方法另一實施例的循環(huán)定時圖。在第一處理循環(huán)中,處 理器向MPU輸出讀取存儲器地址,并向第一存儲器及第二存儲器同時輸出所述讀取存儲器 地址;在第二處理循環(huán)中,MPU確定讀取存儲器地址位于哪一個存儲器中,例如,如果讀取存 儲器地址屬于第一存儲器,則第一存儲器向處理器輸出讀取數(shù)據(jù);如果讀取存儲器地址屬 于第二存儲器,則第二存儲器向處理器輸出讀取數(shù)據(jù)。盡管圖1B所示實施例的數(shù)據(jù)處理方 法與圖1A所示實施例的數(shù)據(jù)處理方法相比具有較好的性能,但圖1B所示實施例的數(shù)據(jù)處理 方法具有較高功耗,因為處理器在第一處理循環(huán)中需要向第一處理器及第二處理器同時輸 出讀取存儲器地址。
[0021] 圖1C是本發(fā)明的數(shù)據(jù)處理方法又一實施例的循環(huán)定時圖。如圖1C所示,在第一處 理循環(huán)中,處理器向MPU輸出讀取存儲器地址,并根據(jù)預測邏輯向第一存儲器或第二存儲器 輸出所述讀取存儲器地址;在第二處理循環(huán)中,MPU確定讀取存儲器地址位于哪一個存儲器 中,如果預測邏輯的預測正確,則第一存儲器或第二存儲器向處理器輸出讀取數(shù)據(jù);如果預 測不正確,則處理器重新根據(jù)MPU向第一存儲器或第二存儲器輸出讀取存儲器地址,此時, 第一存儲器或第二存儲器向處理器輸出讀取數(shù)據(jù)。也就是說,如果預測正確,則本實施例經(jīng) 過兩個處理循環(huán),如果預測不正確,則本實施例將再經(jīng)過一個處理循環(huán)(總共三個處理循 環(huán)),才能實現(xiàn)訪問存儲器及讀取數(shù)據(jù),此會降低性能。
[0022]圖2是本發(fā)明的數(shù)據(jù)處理方法再一實施例的循環(huán)定時圖。如圖2所示,在第一處理 循環(huán)中,處理器根據(jù)功能控制單元向第一存儲器或第二存儲器輸出讀取存儲器地址;在第 二處理循環(huán)中,第一存儲器或第二存儲器向處理器輸出讀取數(shù)據(jù)。
[0023]圖3A是本發(fā)明數(shù)據(jù)處理裝置與多個存儲器一實施例的原理框圖。如圖3A所示,數(shù) 據(jù)處理裝置110用于訪問多個存儲器,例如,第一存儲器160及第二存儲器162。數(shù)據(jù)處理裝 置110包括核心電路120及存儲器控制電路130,數(shù)據(jù)處理裝置110為處理器,例如,數(shù)據(jù)處理 裝置110可包括數(shù)字信號處理器(digital signal processor;DSP)、微控制器 (microcontroller ;MCU)、中央處理器(central-processing unit;CPU)或多個與并行處理 環(huán)境相關的并行處理器,以執(zhí)行電子器件的操作系統(tǒng)(operating system;0S)、固件、驅動 程序和/或其他應用程序。另外,第一存儲器160與第二存儲器162可以是兩個單獨的存儲器 件或一個存儲器件的兩個存儲區(qū)域。并且,第一存儲器160與第二存儲器162可具有不同的 特點,例如,第一存儲器160用于存儲被頻繁訪問的指令或數(shù)據(jù),而第二存儲器162用于存儲 不被頻繁訪問的指令或數(shù)據(jù)。
[0024] 在一個實施例中,核心電路120向存儲器控制電路130輸出讀取存儲器地址(fetch memory address),存儲器控制電路130接收所述讀取存儲器地址,并通過在目標存儲器被 訪問時記錄目標存儲器,以確定多個存儲器中的一個作為讀取存儲器地址所在的目標存儲 器。在確定目標存儲器之后,存儲器控制電路130向目標存儲器輸出讀取存儲器地址。在另 一實施例中,核心電路120向存儲器控制單元130輸出讀取存儲器地址,存儲器控制電路130 接收所述讀取存儲器地址,并通過記錄多個存儲器中哪一個存儲器最近被執(zhí)行過以及指定 最近被訪問過的存儲器作為目標存儲器,以確定多個存儲器中的一個作為欲被訪問數(shù)據(jù)的 目標存儲器。而后,存儲器控制電路130向目標存儲器輸出讀取存儲器地址。
[0025]例如,第一存儲器160最近被執(zhí)行訪問或讀取數(shù)據(jù)。存儲器控制電路1