TWI435267B - 處理器電路及讀取資料的方法 - Google Patents

處理器電路及讀取資料的方法 Download PDF

Info

Publication number
TWI435267B
TWI435267B TW100103321A TW100103321A TWI435267B TW I435267 B TWI435267 B TW I435267B TW 100103321 A TW100103321 A TW 100103321A TW 100103321 A TW100103321 A TW 100103321A TW I435267 B TWI435267 B TW I435267B
Authority
TW
Taiwan
Prior art keywords
data
load
processing unit
instruction
data register
Prior art date
Application number
TW100103321A
Other languages
English (en)
Other versions
TW201232394A (en
Inventor
Yen Ju Lu
Chao Wei Huang
Original Assignee
Realtek Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to TW100103321A priority Critical patent/TWI435267B/zh
Publication of TW201232394A publication Critical patent/TW201232394A/zh
Application granted granted Critical
Publication of TWI435267B publication Critical patent/TWI435267B/zh

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)

Description

處理器電路及讀取資料的方法
本發明係有關於一種處理器電路及一種讀取資料的方法。
當一處理器需要使用到前一個指令所載入的資料內容來執行目前的指令時,會因為需要等待前一個指令所載入的資料內容而造成指令執行暫時中斷的情形,亦即載入/使用損失(load-use penalty)事件。舉例來說,請參考第1圖,假設處理器接收到一載入指令以及一加法指令,其中載入指令是要求自一外部記憶體或是一快取記憶體中讀取所需的資料,而加法指令是將載入指令所讀取的資料相加,則以一5階管線(5-stage pipeline)的例子來說,處理器在時間點t1~t5分別對載入指令進行“指令擷取”(instruction fetch)、“解碼”(decode)、“執行”(execute)、“存取記憶體”(memory access)以及“寫回”(write back)操作,且處理器亦在時間點t2開始執行加法指令,然而,因為處理器在執行加法指令時需要使用到載入指令所讀取的資料,因此處理器需要等到時間點t5才能夠進行“執行”操作,如此一來,處理器在執行加法指令時,在時間點t4會有執行暫時中斷的情形,亦即在時間點t4會有載入/使用損失事件,而降低了處理器的執行效率。
此外,隨著處理器使用更高階的管線(例如8階管線)來執行指令,載入/使用損失事件的發生次數會更多,損失會更大,因而更嚴重地影響處理器的執行效率。
因此,本發明的目的之一在於提供一種處理器電路以及一種讀取資料的方法,其可以有效地減少載入/使用損失事件的發生,以增進處理器的執行效率。
依據本發明一實施例,一種處理器電路包含有一處理單元以及一資料暫存器,其中當該處理單元接收到一載入指令,並判斷該載入指令具有一載入/使用條件時,該處理單元將執行該載入指令所讀取的一特定資料儲存至該資料暫存器中。
依據本發明另一實施例,一種讀取資料的方法包含有:提供一資料暫存器;接收一載入指令。並判斷該載入指令是否具有一載入/使用條件;以及當判斷該載入指令具有該載入/使用條件時,將執行該載入指令所讀取的一特定資料儲存至該資料暫存器中。
請參考第2圖,第2圖為依據本發明一實施例之處理器電路200的示意圖。如第2圖所示,處理器電路200包含有一處理單元210、一資料暫存器220、一快取記憶體230,其中資料暫存器220是以複數個暫存器(register)來實作,且快取記憶體230是以靜態隨機存取記憶體(Static Random Access Memory,SRAM)來實作,且處理單元210對資料暫存器220的存取速度快於對快取記憶體230的存取速度。
請同時參考第2圖以及第3圖,第3圖為依據本發明一實施例之處理器電路200讀取資料的方法的流程圖。參考第3圖,流程敘述如下:首先,於步驟300,流程開始。接著,於步驟302,處理單元210接收一載入指令,其中該載入指令是要求自外部記憶體240或是快取記憶體230中讀取一特定資料,處理單元210並判斷該載入指令是否具有一載入/使用條件,亦即判斷在緊接著該載入指令之後,處理單元210是否需要立刻執行一需要使用該特定資料的使用指令。若該載入指令具有載入/使用條件,則流程進入步驟304;若該載入指令不具有載入/使用條件,則流程進入步驟314以直接自快取記憶體230或是外部記憶體240讀取該特定資料。
在步驟304中,處理單元210同時發出一讀取請求至資料暫存器220與快取記憶體230中,以要求讀取該特定資料。接著,在步驟306中,資料暫存器220判斷其中是否儲存有該特定資料,若資料暫存器220儲存有該特定資料,則流程進入步驟308且處理單元210直接使用資料暫存器220因應該讀取請求所回傳之該特定資料,且不使用來自快取記憶體230所回傳的資料;若資料暫存器220不具有該特定資料,則流程進入步驟310且處理單元210直接自快取記憶體230或是外部記憶體240讀取該特定資料。
接著,在步驟312中,處理單元210將該特定資料以及該特定資料於外部記憶體230的位址儲存至資料暫存器220中,特別地,考慮到資料暫存器220的容量限制,處理單元210使用一最近最少使用算法(Least Recently Used,LRU)以將該特定資料以及該特定資料於外部記憶體230的位址儲存至資料暫存器220中,亦即當資料暫存器220的容量飽和時,處理單元210將資料暫存器220中最長時間沒有使用的資料刪除。最後,流程進入步驟316以結束處理單元210對載入指令的操作。
如上所述,當處理單元210判斷該載入指令是具有一載入/使用條件時(亦即於執行下一指令時會發生載入/使用損失(load-use penalty)事件),處理單元210將所讀取的一特定資料以及該特定資料於一外部記憶體的位址儲存至資料暫存器220,如此一來,之後若是處理單元210需要再次讀取該特定資料時便可以直接自資料暫存器220中讀取,而因為處理單元210對資料暫存器220的存取速度相當快,因此處理單元210便可以很快地讀取到該特定資料,且處理單元210在緊接著執行一需要使用該特定資料的使用指令時就不需要暫時中斷指令執行,亦即不會有載入/使用損失事件的發生。舉例來說,請參考第4圖,假設處理器接收到一載入指令以及一加法指令,其中載入指令是要求自外部記憶體240或是快取記憶體230中讀取所需的資料,而加法指令是將載入指令所讀取的資料相加,則以一5階管線的例子來說,處理單元210在時間點t1~t5分別對載入指令進行“指令擷取”、“解碼”、“執行”、“存取記憶體”以及“寫回”操作,且處理單元210亦在時間點t2開始對加法指令進行處理,因為處理單元210在時間點t4時可以自資料暫存器220很快速的讀取到所需的資料,因此,處理單元210便可以在時間點t4進行加法指令中的“執行”操作,亦即處理單元210在執行加法指令時不需要如第1圖所示的被中斷。
此外,因為資料暫存器220中所儲存的是處理單元210所讀取的資料及其在外部記憶體240的位址,因此,在步驟304中處理單元210所發出之讀取請求包含了一外部記憶體位址,且於步驟306中資料暫存器220可以藉由判斷其中是否具有該外部記憶體位址來判斷資料暫存器220中是否有處理單元210所要求的資料。
於上述之之步驟312中,處理單元210使用一最近最少使用算法以將該特定資料以及該特定資料於外部記憶體230的位址儲存至資料暫存器220中,亦即當資料暫存器220的容量飽和時,處理單元210將資料暫存器220中最長時間沒有使用的資料刪除。然而,於本發明之另一實施例中,資料暫存器220中所儲存的每一筆資料都會紀錄該筆資料被使用的次數,而當資料暫存器220的容量飽和時,可以依據所紀錄的次數以選擇自資料暫存器220中刪除的資料(例如:將最少使用的資料自資料暫存器220中刪除)。
簡要歸納本發明,與本發明之處理器電路及讀取資料的方法中,當處理單元判斷一載入指令是具有一載入/使用條件時,處理單元便會將所讀取的一特定資料以及該特定資料於一外部記憶體的位址儲存至資料暫存器,如此一來,之後若是處理單元需要再次讀取該特定資料時便可以直接自資料暫存器220中讀取,而避免處理單元210在緊接著執行一需要使用該特定資料的使用指令時發生載入/使用損失事件,進而提升處理器電路的執行效率。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200...處理器電路
210...處理單元
220...資料暫存器
230‧‧‧快取記憶體
240‧‧‧外部記憶體
300~316‧‧‧步驟
第1圖為載入/使用損失事件的示意圖。
第2圖為依據本發明一實施例之處理器電路的示意圖。
第3圖為依據本發明一實施例之讀取資料的方法的流程圖。
第4圖為處理單元使用一5階管線執行一載入指令以及一加法指令的示意圖。
200...處理器電路
210...處理單元
220...資料暫存器
230...快取記憶體
240...外部記憶體

Claims (15)

  1. 一種處理器電路,包含有:一處理單元,用以接收一載入指令;一資料暫存器,耦接該處理單元;以及一快取記憶體,耦接於該處理單元與一外部記憶體之間;其中當該處理單元接收到該載入指令,並判斷該載入指令具有一載入/使用條件時,該處理單元將執行該載入指令所讀取的一特定資料儲存至該資料暫存器中;以及當該處理單元欲自該外部記憶體讀取一所需資料時,該處理單元同時發出一讀取請求至該資料暫存器與該快取記憶體中。
  2. 如申請專利範圍第1項所述之處理器電路,其中該載入/使用條件係指於執行下一指令時會發生載入/使用損失事件。
  3. 如申請專利範圍第1項所述之處理器電路,其中該處理單元將該特定資料以及該特定資料於一外部記憶體的位址儲存至該資料暫存器中。
  4. 如申請專利範圍第1項所述之處理器電路,其中該處理單元僅使用該資料暫存器因應該讀取請求所回傳之該所需資料。
  5. 如申請專利範圍第1項所述之處理器電路,其中當該處理單元判 斷該載入指令不具有該載入/使用條件時,該處理單元直接自該快取記憶體或是該外部記憶體讀取該特定資料。
  6. 如申請專利範圍第1項所述之處理器電路,其中該資料暫存器包括複數個暫存器,且該快取記憶體係一靜態隨機存取記憶體。
  7. 如申請專利範圍第1項所述之處理器電路,其中該處理單元係以一最近最少使用算法將該特定資料以及該特定資料於該外部記憶體的位址儲存至該資料暫存器中。
  8. 如申請專利範圍第1項所述之處理器電路,其中當該資料暫存器中的資料飽和時,該處理單元將儲存於該資料暫存器中使用次數最少的資料自該資料暫存器中刪除。
  9. 一種讀取資料的方法,包含有:接收一載入指令;判斷該載入指令是否具有一載入/使用條件;當判斷該載入指令具有該載入/使用條件時,將執行該載入指令所讀取的一特定資料儲存至一資料暫存器中;提供一快取記憶體;以及當欲自一外部記憶體讀取一所需資料時,同時發出一讀取請求至該資料暫存器與該快取記憶體中。
  10. 如申請專利範圍第9項所述之方法,其中該載入/使用條件係指於執行下一指令時會發生載入/使用損失事件。
  11. 如申請專利範圍第9項所述之方法,其中將執行該載入指令所讀取的該特定資料儲存至該資料暫存器中的步驟包含有:將該特定資料以及該特定資料於一外部記憶體的位址儲存至該資料暫存器中。
  12. 如申請專利範圍第9項所述之方法,另包含有:僅使用該資料暫存器因應該讀取請求所回傳之該所需資料。
  13. 如申請專利範圍第9項所述之方法,另包含有:當判斷該載入指令不具有該載入/使用條件時,直接自該快取記憶體或是該外部記憶體讀取該特定資料。
  14. 如申請專利範圍第9項所述之方法,另包含有:使用一最近最少使用算法將該特定資料以及該特定資料於該外部記憶體的位址儲存至該資料暫存器中。
  15. 如申請專利範圍第9項所述之方法,另包含有:當該資料暫存器中的資料飽和時,將儲存於該資料暫存器中使用次數最少的資料自該資料暫存器中刪除。
TW100103321A 2011-01-28 2011-01-28 處理器電路及讀取資料的方法 TWI435267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW100103321A TWI435267B (zh) 2011-01-28 2011-01-28 處理器電路及讀取資料的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW100103321A TWI435267B (zh) 2011-01-28 2011-01-28 處理器電路及讀取資料的方法

Publications (2)

Publication Number Publication Date
TW201232394A TW201232394A (en) 2012-08-01
TWI435267B true TWI435267B (zh) 2014-04-21

Family

ID=47069592

Family Applications (1)

Application Number Title Priority Date Filing Date
TW100103321A TWI435267B (zh) 2011-01-28 2011-01-28 處理器電路及讀取資料的方法

Country Status (1)

Country Link
TW (1) TWI435267B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756616B (zh) * 2020-01-14 2022-03-01 瑞昱半導體股份有限公司 處理器電路以及資料處理方法
TWI774474B (zh) * 2021-07-15 2022-08-11 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI792546B (zh) 2021-09-09 2023-02-11 瑞昱半導體股份有限公司 用於管線化控制的設備以及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI756616B (zh) * 2020-01-14 2022-03-01 瑞昱半導體股份有限公司 處理器電路以及資料處理方法
US11385894B2 (en) 2020-01-14 2022-07-12 Realtek Semiconductor Corporation Processor circuit and data processing method
TWI774474B (zh) * 2021-07-15 2022-08-11 瑞昱半導體股份有限公司 處理器電路以及資料處理方法

Also Published As

Publication number Publication date
TW201232394A (en) 2012-08-01

Similar Documents

Publication Publication Date Title
KR101361928B1 (ko) 스레드 이송 시의 캐시 프리필링
US20070180158A1 (en) Method for command list ordering after multiple cache misses
US9052910B2 (en) Efficiency of short loop instruction fetch
US20150143045A1 (en) Cache control apparatus and method
US20070180156A1 (en) Method for completing IO commands after an IO translation miss
TWI435267B (zh) 處理器電路及讀取資料的方法
JP6963552B2 (ja) ブロックアトミック実行モデルを利用するプロセッサベースシステムにおける部分的に実行された命令ブロックのリプレイ
AU2015203828B2 (en) Implementing enhanced performance with read before write to phase change memory to avoid write cancellations
US7451274B2 (en) Memory control device, move-in buffer control method
JP2007207249A (ja) ミス衝突処理状態でのキャッシュ・ヒットのための方法、システムおよびマイクロプロセッサ
US20120191910A1 (en) Processing circuit and method for reading data
TWI579695B (zh) 對處理器的快取進行清除的方法以及該處理器
US8443174B2 (en) Processor and method of performing speculative load operations of the processor
TWI697902B (zh) 電子裝置及電子裝置的管理方法
JP6474196B2 (ja) 静的スケジュールプロセッサのノンブロッキング実行装置及び方法
CN103186474B (zh) 对处理器的高速缓存进行清除的方法以及该处理器
JP3767521B2 (ja) キャッシュフィル制御方法及びcpu
JP5116275B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP2014134852A (ja) キャッシュメモリ、キャッシュメモリの検索方法、情報処理装置、およびプログラム
US20230259294A1 (en) Systems, methods, and apparatus for copy destination atomicity in devices
CN110058783B (zh) 暂存存储器处理方法、暂存存储器程序与存储装置
TWI739430B (zh) 快取記憶體及快取記憶體的管理方法
CN111506252B (zh) 快取存储器及快取存储器的管理方法
JP2007172519A (ja) 情報処理装置、ソフトウェアモジュールのリンク管理方法及びプログラム
TWI521349B (zh) 攜帶式電子裝置資料寫入方法