專利名稱::微處理器及適用于微處理器的操作方法
技術(shù)領(lǐng)域:
:本發(fā)明是關(guān)于微處理器,特別是關(guān)于微處理器所提供的除錯中斷點設(shè)備(debugbreakpointfacilities)。
背景技術(shù):
:x86架構(gòu)跟大部分微處理器架構(gòu)一樣會提供程序設(shè)計者一種方法使得程序設(shè)計者能夠在一個或多個地址范圍的存取(access)路徑上指定除錯中斷點。具體而言,中斷點地址范圍為虛擬地址范圍(在x86語法(parlance)中稱為線性地址)。在某些微處理器中,載入單元(loadunit)執(zhí)行檢查動作用以判斷一載入地址是否存取一中斷點范圍。有時一載入指令(load)會跨越(span)兩條快取線(cacheline),因此載入指令必須分成兩個片段(如圖4所示),使得各個片段沿著載入管線(loadpipeline)傳送(senddown)用以存取數(shù)據(jù)快取(datacache)。第一片段沿著載入管線傳送并使用初始載入地址與第一大小來存取數(shù)據(jù)快取,以便從第一相關(guān)快取線(implicatedcacheline)中取得數(shù)據(jù),其中第一大小是指與第一片段有關(guān)的字節(jié)數(shù)目。接著,第二片段沿著載入管線傳送并使用一遞增后的初始載入地址與第二大小來存取數(shù)據(jù)快取,以便從第二相關(guān)快取線中取得數(shù)據(jù),其中第二大小是指與第二片段有關(guān)的字節(jié)數(shù)目。由于載入單元必須對照中斷點范圍檢查各個片段,所以上述情況會使得中斷點檢查變得更復(fù)雜,細節(jié)將在以下做進一步說明。以下將提供一些已知技術(shù)信息以便更了解本發(fā)明。各個載入隊列項目(loadqueueentry)包含一地址字段的儲存空間。一開始,載入單元將載入虛擬地址(loadvirtualaddress)載入至地址字段。載入單元接著將載入虛擬地址轉(zhuǎn)譯成載入物理地址(loadphysicaladdress)以便存取數(shù)據(jù)快取,接著再將地址字段中的虛擬地址替換為物理地址。在各個載入隊列項目中包含一單一地址字段可有效降低載入隊列的儲存需求,并且可節(jié)省芯片的實際面積(realestatespace)以及功率消耗。然而,單一地址字段在快取線跨越(cache-line-sparming)/雙片段(twopiece)載入情況下會產(chǎn)生問題,因為當載入管線處理第一片段時,單一地址字段會重寫(clobber)虛擬地址,使得第二片段不再具有虛擬地址來執(zhí)行中斷點檢查。其中一種解決上述問題的方法就是在各個載入隊列項目中包含兩個地址字段。如此,物理地址可被寫入至第二地址字段用以避免重寫虛擬地址,或是各個地址字段可對應(yīng)至不同的片段使得各個片段具有自己的虛擬地址,并且可在不影響另一片段的情況下重寫自己的虛擬地址。然而此方法并不理想,因為第二地址字段所占用的額外的儲存空間會增加芯片的實際面積以及功率消耗。為了避免額外的地址儲存空間,另一種解決方法就是再額外通過一次載入管線,即執(zhí)行額外的管線循環(huán)(additionalpasses)。換言之,第一、第二片段依序沿著載入管線傳送用以執(zhí)行中斷點檢查,接著第一、第二片段依序沿著載入管線傳送用以產(chǎn)生物理地址并存取數(shù)據(jù)快取。然而此方法也不甚理想,因為會降低整體的執(zhí)行速度。
發(fā)明內(nèi)容本發(fā)明提供一種微處理器,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一中斷點暫存器、一隊列以及具有一載入/儲存單元的一載入/儲存單元管線。中斷點暫存器用以儲存一中斷點地址。隊列包括多個隊列項目,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入/儲存指令有關(guān),并且指針用以表示載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合。載入/儲存單元管線耦接至中斷點暫存器與隊列,其中載入/儲存單元管線于一第一管線循環(huán)期間執(zhí)行跨越快取線的載入/儲存指令以便通過一高速緩存來存取數(shù)據(jù)的第一片段,并且載入/儲存單元管線于一第二管線循環(huán)期間執(zhí)行跨越快取線的載入/儲存指令以便通過高速緩存來存取數(shù)據(jù)的第二片段。其中在第一管線循環(huán)期間,載入/儲存單元使用載入/儲存虛擬地址來執(zhí)行一第一片段中斷點檢查,將指標儲存至第二儲存空間,并且將一載入/儲存物理地址儲存至第一儲存空間,其中載入/儲存物理地址是由載入/儲存虛擬地址轉(zhuǎn)譯而成。其中在第二管線循環(huán)期間,載入/儲存單元使用來自第二儲存空間的指標與來自第一儲存空間的載入/儲存物理地址的一遞增分頁偏移部分,用以執(zhí)行一第二片段中斷點檢查。其中載入/儲存單元不使用超過兩個管線循環(huán)來存取高速緩存以及對載入/儲存指令執(zhí)行中斷點檢查。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入/儲存指令有關(guān)的地址。本發(fā)明提供一種適用于微處理器的操作方法。微處理器包括一高速緩存用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器還包括一中斷點暫存器用以儲存一中斷點地址。微處理器還包括具有多個隊列項目的一隊列,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入/儲存指令有關(guān),并且指針用以表示載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合。微處理器還包括具有一載入/儲存單元的一載入/儲存單元管線。上述方法包括在一第一管線循環(huán)期間執(zhí)行與數(shù)據(jù)的第一片段有關(guān)的一第一片段中斷點檢查,其中執(zhí)行第一片段中斷點檢查的步驟包括比較中斷點地址與載入/儲存虛擬地址;將指標儲存至第二儲存空間;以及將一載入/儲存物理地址儲存至第一儲存空間,其中載入/儲存物理地址是由載入/儲存虛擬地址轉(zhuǎn)譯而成。上述方法還包括在一第二管線循環(huán)期間執(zhí)行與數(shù)據(jù)的第二片段有關(guān)的一第二片段中斷點檢查,其中執(zhí)行第二片段中斷點檢查的步驟包括檢查來自第二儲存空間的指針,并且比較中斷點地址的一分頁偏移部分與來自第一儲存空間的載入/儲存物理地址的一遞增分頁偏移部分。其中不使用超過兩個管線循環(huán)來存取高速緩存以及對載入/儲存指令執(zhí)行中斷點檢查。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入/儲存指令有關(guān)的地址。本發(fā)明提供另一種微處理器,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一中斷點暫存器以及一載入/儲存單元。中斷點暫存器用以儲存一中斷點地址。載入/儲存單元耦接至中斷點暫存器。載入/儲存單元包括一分頁地址比較器、一第一分頁偏移比較器、一遞增器以及一第二分頁偏移比較器。分頁地址比較器比較載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分,用以產(chǎn)生一第一指標。第一分頁偏移比較器比較載入/儲存虛擬地址的一分頁偏移部分與中斷點地址的一分頁偏移部分,用以產(chǎn)生一第二指標。遞增器將載入/儲存虛擬地址的分頁偏移部分遞增一條快取線的大小,用以產(chǎn)生一遞增分頁偏移部分。第二分頁偏移比較器比較中斷點地址的分頁偏移部分與遞增分頁偏移部分,用以產(chǎn)生一第三指標。其中若第一指標為真值并且第二與第三指標中的至少一者為真值時,則載入/儲存單元表示載入/儲存指令的一中斷點。本發(fā)明提供另一種適用于微處理器的操作方法,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一中斷點暫存器用以儲存一中斷點地址。上述方法包括(1)比較載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分,用以產(chǎn)生一第一指標;(2)比較載入/儲存虛擬地址的一分頁偏移部分與中斷點地址的一分頁偏移部分,用以產(chǎn)生一第二指標;(3)將載入/儲存虛擬地址的分頁偏移部分遞增一條快取線的大小,用以產(chǎn)生一遞增分頁偏移部分;(4)比較中斷點地址的分頁偏移部分與遞增分頁偏移部分,用以產(chǎn)生一第三指標;以及(5)若第一指標為真值并且第二與第三指標中的至少一者為真值時,則表示載入/儲存指令的一中斷點。本發(fā)明提供另一種微處理器,用以計算一指定的虛擬存儲器地址范圍的存取次數(shù),其中存取指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入/儲存指令,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一暫存器、一計數(shù)器、一隊列以及具有一載入/儲存單元的一載入/儲存單元管線。暫存器用以儲存一信息,信息用以指定一虛擬地址范圍,并且信息包括一范圍地址用以指定一起始虛擬地址范圍,其中虛擬存儲器地址范圍位于一虛擬存儲器分頁中。計數(shù)器用以儲存一計數(shù)值,計數(shù)值代表虛擬地址范圍的存取次數(shù),并且虛擬地址范圍是由暫存器中的信息所指定。隊列包括多個隊列項目,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入/儲存指令有關(guān),并且指針用以表示載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合。載入/儲存單元管線耦接至暫存器與隊列,其中載入/儲存單元管線于一第一管線循環(huán)期間將數(shù)據(jù)的第一片段載入/儲存至一高速緩存或從高速緩存中載入/儲存數(shù)據(jù)的第一片段,并且載入/儲存單元管線于一第二管線循環(huán)期間將數(shù)據(jù)的第二片段載入/儲存至高速緩存或從高速緩存中載入/儲存數(shù)據(jù)的第二片段。其中在第一管線循環(huán)期間,載入/儲存單元使用載入/儲存虛擬地址來判斷數(shù)據(jù)的第一片段是否落在虛擬地址范圍內(nèi),將指針儲存至第二儲存空間,并且將一載入/儲存物理地址儲存至第一儲存空間,其中載入/儲存物理地址是由載入/儲存虛擬地址轉(zhuǎn)譯而成。其中在第二管線循環(huán)期間,載入/儲存單元使用來自第二儲存空間的指標與來自第一儲存空間的載入/儲存物理地址的一遞增分頁偏移部分,用以判斷數(shù)12據(jù)的第二片段是否落在虛擬地址范圍內(nèi)。其中若載入/儲存單元判斷數(shù)據(jù)的第一與第二片段中的任一者位于虛擬地址范圍內(nèi),則載入/儲存單元將計數(shù)器遞增。其中載入/儲存單元不使用超過兩個管線循環(huán)來存取高速緩存以及判斷數(shù)據(jù)的第一與第二片段中的任一者是否位于虛擬地址范圍內(nèi)。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入/儲存指令有關(guān)的地址。本發(fā)明提供另一種適用于微處理器的操作方法,用以計算一指定的虛擬存儲器地址范圍的存取次數(shù),其中存取指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入/儲存指令,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中,微處理器包括一暫存器用以儲存一信息,信息用以指定一虛擬地址范圍并且包括一范圍地址用以指定一起始虛擬地址范圍,其中虛擬存儲器地址范圍位于一虛擬存儲器分頁中,微處理器還包括一計數(shù)器用以儲存一計數(shù)值,計數(shù)值代表虛擬地址范圍的存取次數(shù),并且虛擬地址范圍是由暫存器中的信息所指定,微處理器還包括具有多個隊列項目的一隊列,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入/儲存指令有關(guān),并且指針表示載入/儲存虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合,微處理器還包括具有一載入/儲存單元的一載入/儲存單元管線。上述方法包括在一第一管線循環(huán)期間(1)將數(shù)據(jù)的第一片段載入/儲存至一高速緩存或從高速緩存中載入/儲存數(shù)據(jù)的第一片段;(2)使用載入/儲存虛擬地址來判斷數(shù)據(jù)的第一片段是否位于虛擬地址范圍內(nèi);(3)將指標儲存至第二儲存空間;以及(4)將一載入/儲存物理地址儲存至第一儲存空間,其中載入/儲存物理地址是由載入/儲存虛擬地址轉(zhuǎn)譯而成。上述方法還包括在一第二管線循環(huán)期間(5)將數(shù)據(jù)的第二片段載入/儲存至高速緩存或從高速緩存中載入/儲存數(shù)據(jù)的第二片段;(6)使用來自第二儲存空間的指標與來自第一儲存空間的載入/儲存物理地址的一遞增分頁偏移部分,用以判斷數(shù)據(jù)的第二片段是否落在虛擬地址范圍內(nèi);(7)若載入/儲存單元判斷數(shù)據(jù)的第一與第二片段中的任一者位于虛擬地址范圍內(nèi),則將計數(shù)器遞增。其中不使用超過兩個管線循環(huán)來執(zhí)行步驟(1)到(7)。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入/儲存指令有關(guān)的地址。本發(fā)明提供另一種微處理器,用以禁止多個程序存取一指定的虛擬存儲器地址范圍,其中存取指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入指令,載入指令指定一數(shù)據(jù)的一載入虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一暫存器、一隊列以及具有一載入單元的一載入管線。暫存器用以儲存一信息,信息用以指定一虛擬存儲器地址范圍,并且信息包括一范圍地址用以指定一起始虛擬存儲器地址范圍,其中虛擬存儲器地址范圍位于一虛擬存儲器分頁中。隊列包括多個隊列項目,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入指令有關(guān),并且指針用以表示載入虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合。載入管線耦接至暫存器與隊列,其中載入管線于一第一管線循環(huán)期間從一高速緩存中讀取數(shù)據(jù)的第一片段,并且載入管線于一第二管線循環(huán)期間從高速緩存中讀取數(shù)據(jù)的第二片段。其中在第一管線循環(huán)期間,載入單元使用載入虛擬地址來判斷數(shù)據(jù)的第一片段是否落在虛13擬存儲器地址范圍內(nèi),將指針儲存至第二儲存空間,并且將一載入物理地址儲存至第一儲存空間,其中載入物理地址是由載入虛擬地址轉(zhuǎn)譯而成。其中在第二管線循環(huán)期間,載入單元使用來自第二儲存空間的指標與來自第一儲存空間的載入物理地址的一遞增分頁偏移部分,用以判斷數(shù)據(jù)的第二片段是否落在虛擬存儲器地址范圍內(nèi)。其中若載入單元判斷數(shù)據(jù)的第一與第二片段中的任一者位于虛擬存儲器地址范圍內(nèi),并且程序禁止存取虛擬存儲器地址范圍,則載入單元禁止將數(shù)據(jù)載入至載入指令所指定的一目標暫存器。其中載入單元不使用超過兩個管線循環(huán)來讀取來自高速緩存的數(shù)據(jù)的第一與第二片段以及判斷數(shù)據(jù)的第一與第二片段中的任一者是否位于虛擬存儲器地址范圍內(nèi)。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入指令有關(guān)的地址。本發(fā)明提供另一種適用于微處理器的操作方法,用以禁止多個程序存取一指定的虛擬存儲器地址范圍,其中存取指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入指令,載入指令指定一數(shù)據(jù)的一載入虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中,微處理器包括一暫存器用以儲存一信息,信息用以指定一虛擬存儲器地址范圍并且包括一范圍地址用以指定一起始虛擬存儲器地址范圍,其中虛擬存儲器地址范圍位于一虛擬存儲器分頁中,微處理器還包括具有多個隊列項目的一隊列,隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中地址與載入指令有關(guān),并且指針表示載入虛擬地址的一分頁地址部分與中斷點地址的一分頁地址部分是否相符合,微處理器還包括具有一載入單元的一載入管線。上述方法包括在一第一管線循環(huán)期間(1)從一高速緩存中讀取數(shù)據(jù)的第一片段;(2)使用載入虛擬地址來判斷數(shù)據(jù)的第一片段是否位于虛擬存儲器地址范圍內(nèi);(3)將指標儲存至第二儲存空間;以及(4)將一載入物理地址儲存至第一儲存空間,其中載入物理地址是由載入虛擬地址轉(zhuǎn)譯而成。上述方法包括在一第二管線循環(huán)期間(5)從高速緩存中讀取數(shù)據(jù)的第二片段;(6)使用來自第二儲存空間的指標與來自第一儲存空間的載入物理地址的一遞增分頁偏移部分,用以判斷數(shù)據(jù)的第二片段是否落在虛擬存儲器地址范圍內(nèi);(7)若載入單元判斷數(shù)據(jù)的第一與第二片段中的任一者位于虛擬存儲器地址范圍內(nèi),并且程序無法存取虛擬存儲器地址范圍,則禁止將數(shù)據(jù)載入至由載入指令所指定的一目標暫存器。其中不使用超過兩個管線循環(huán)來執(zhí)行步驟(1)到(7)。其中只有隊列項目中的每一者中的第一儲存空間用以儲存與載入指令有關(guān)的地址。為讓本發(fā)明的上述和其它目的、特征、和優(yōu)點能更明顯易懂,下文特舉出較佳實施例,并配合所附圖式,作詳細說明如下。圖1為本發(fā)明實施例的微處理器的方塊圖;圖2為本發(fā)明實施例的圖1的微處理器的載入單元的方塊圖;圖3為包含圖2的載入單元的圖1中微處理器的操作流程圖;圖4為本發(fā)明實施例的跨越快取線的載入指令的方塊圖;圖5為本發(fā)明另一實施例的圖1中微處理器的載入單元的方塊圖;圖6為包含圖5的載入單元的圖1的微處理器的操作流程圖。具體實施例方式本發(fā)明提供一種能夠解決上述問題的方法,此方法不需使用額外的管線循環(huán),而是需要在每個載入隊列項目中設(shè)置每個中斷點暫存器的一單一附加位(singleadditionalbit)以及需要些許的附加邏輯電路。本發(fā)明實施例具有以下幾點特征(1)中斷點范圍不能跨越分頁邊界(pageboundaries);(2)兩個片段所具有的不同的地址位不會被轉(zhuǎn)譯(虛擬轉(zhuǎn)譯成物理)。因此,只要兩條快取線位于相同的物理分頁,第一與第二片段中被轉(zhuǎn)譯的虛擬地址位皆會與一中斷點范圍的對應(yīng)位相符或皆不相符。具體而言,當載入管線處理第一片段時(即對第一片段的虛擬地址執(zhí)行中斷點檢查、產(chǎn)生物理地址、存取高速緩存以及將載入隊列項目的地址字段中的虛擬地址替換為物理地址),載入管線也將一命中分頁指標(hit_pageindication)儲存至載入隊列項目中,上述命中分頁指標用以表示第一片段的虛擬分頁位(即必須被轉(zhuǎn)譯用以取得物理分頁的虛擬地址位)是否與對應(yīng)的中斷點地址位相符。當載入管線處理第二片段執(zhí)行中斷點檢查時,載入管線使用命中分頁指標作為一替代指標(surrogate),用以取代比較第二片段的虛擬分頁位與對應(yīng)的中斷點地址位的動作。值得注意的是,雖然虛擬地址在載入單元處理第一片段時已經(jīng)被物理地址重寫,因而導致無法執(zhí)行上述比較第二片段的虛擬分頁位與對應(yīng)的中斷點地址位的動作,但通過使用命中分頁指標,此種情況是可以接受的。請參考圖1,圖1為本發(fā)明實施例的微處理器100的方塊圖。微處理器100包括以管線型式耦接成的指令快取106、指令解碼器108、暫存器別名表(registeraliastable;RAT)134、保留站(reservationstation)136以及執(zhí)行單元138。執(zhí)行單元138包括一存儲器子系統(tǒng)182,存儲器子系統(tǒng)182包括一載入隊列181、載入單元185、儲存隊列184以及儲存單元183。微處理器100也包括耦接至存儲器子系統(tǒng)182的數(shù)據(jù)快取186。微處理器100也包括耦接至執(zhí)行單元138的中斷點暫存器162。微處理器100還包括耦接至暫存器別名表134、保留站136、中斷點暫存器162與執(zhí)行單元138的重新排序緩沖器(reorderbuffer;ROB)172。以下將配合圖23以及圖56描述載入單元185的細部運作。請參考圖2,圖2為本發(fā)明實施例的圖1中微處理器100的載入單元185的方塊圖。載入單元185接收一載入指令與地址操作數(shù)并計算來自地址操作數(shù)中的一載入虛擬地址234。圖2顯示了圖1中微處理器100的中斷點暫存器162。在一實施例中,中斷點暫存器162包含x86架構(gòu)的除錯中斷點暫存器,使得程序設(shè)計者能夠通過此除錯中斷點暫存器來指定一個或多個地址范圍。圖2顯示了圖1中微處理器100的載入隊列181中的載入隊列項目222。載入隊列181包括多個載入隊列項目222,圖2只顯示其中一個已被分配到一載入指令的載入隊列項目222,并且圖1中微處理器100的保留站136將此載入指令發(fā)送至載入單元185。各個載入隊列項目222包含一地址字段(addressfield)224、一第一指標字段(firstindicatorfield)228以及一第二指標字段(secondindicatorfield)226。第一指針字段228表示載入指令的第一片段的載入虛擬地址234是否落在被指定在中斷點暫存器162中的任一中斷點地址范圍內(nèi)。第二指針字段226表示載入指令的第一片段的虛擬分頁地址位(將在以下描述)是否與中斷點地址232中的一者的對應(yīng)位相符。載入單元185中的轉(zhuǎn)譯查詢緩沖器(TranslationLookasideBuffer;TLB)218根據(jù)所接收的載入虛擬地址234輸出一載入物理地址236,并且熟知虛擬存儲器系統(tǒng)技藝者應(yīng)能理解,載入物理地址236具有被轉(zhuǎn)譯成物理分頁地址的載入虛擬地址234的虛擬分頁地址位。2:1多工器208的一輸入端接收載入虛擬地址234,另一輸入端接收載入物理地址236。當載入單元185產(chǎn)生載入虛擬地址234時,載入單元185控制2:1多工器208用以將載入虛擬地址234載入至載入隊列項目222中的地址字段224。當轉(zhuǎn)譯查詢緩沖器218產(chǎn)生載入物理地址236時,載入單元185將載入物理地址236載入至地址字段224。載入單元185包括分頁比較器204用以接收載入虛擬地址234的較高位(upperbits)。在一實施例中,載入虛擬地址234的較高位包括虛擬地址位[47:12]。在4千字節(jié)(KB)存儲器分頁的情況下,虛擬地址位[47:12]稱為虛擬分頁地址位并且用以指定虛擬存儲器分頁。在一虛擬存儲器系統(tǒng)中,虛擬分頁地址位為必須由一虛擬存儲器分頁地址轉(zhuǎn)譯成一物理存儲分頁地址的位。分頁比較器204也接收來自中斷點暫存器162的中斷點地址232。具體而言,分頁比較器204接收中斷點地址232的較高位,并且上述中斷點地址232的較高位對應(yīng)至分頁比較器204所接收的載入虛擬地址234的較高位。分頁比較器204比較載入虛擬地址234的較高位與各個中斷點地址232的較高位,并且產(chǎn)生一符合信號(matchsignal)252。若上述比較動作有產(chǎn)生符合結(jié)果,則符合信號252為真值(true)。載入單元185包括一2:1多工器212。2:1多工器212具有一輸入端接收分頁比較器204所輸出的符合信號252,而另一輸入端接收來自載入隊列項目222的第二指針字段226的數(shù)值??刂七壿嬰娐?48產(chǎn)生一第二片段控制信號(pieCe2controlSignal)254用以控制21多工器212。第二片段控制信號254在處理第二片段這段期間為真值,而在處理第一片段這段期間為偽值(false)。因此,當載入指令的第一片段被處理時,第二片段控制信號254會控制2:1多工器212選擇符合信號252;而當載入指令的第二片段被處理時,第二片段控制信號254會控制2:1多工器212選擇第二指標字段226。2:1多工器212將所選擇的輸入值提供至一命中分頁輸出(hit-page0utput)262。當載入單元185在處理第一片段時,控制邏輯電路248會使得命中分頁輸出262的值被載入至載入隊列項目222中的第二指標字段226。載入單元185也包括一遞增器216用以接收來自載入隊列項目222的地址字段224的較低位(lowerbits)。在一實施例中,較低位包括位[11:0]。由于位[11:0]用以指定一4千字節(jié)分頁中的偏移量,因此位[11:0]稱為偏移位元(offsetbits)。遞增器216將偏移位元的最低有效快取線位遞增,并且通過此遞增動作連帶將其它較低/偏移位元遞增。在一實施例中,一條快取線的大小為64位,因此位[5:0]用以指定一快取線中的偏移量,而位[6]即為最低有效快取線位。遞增器216將遞增結(jié)果238輸出至2:1多工器214的一輸入端。2:1多工器214的另一輸入端接收載入虛擬地址234的對應(yīng)的較低/偏移位元。當載入指令的第二片段被處理時,第二片段控制信號254會控制2:1多工器214選擇遞增結(jié)果238;而當載入指令的第一片段被處理時,第二片段控制信號254會控制21多工器214選擇載入虛擬地址234的較低/偏移位元。2:1多工器214將所選擇的輸入值提供至一輸出端,該輸出端為較低/偏移位元255。載入單元185也包括偏移量比較器206用以從2:1多工器214的輸出端接收較低/偏移位元255。偏移量比較器206也接收中斷點地址232的較低位g及來自中斷點暫存器162的信息,其中上述中斷點地址232的較低位對應(yīng)至來自2:1多工器214的較低/偏移位元255,并且上述信息顯示中斷點虛擬地址范圍的大小。偏移量比較器206比較所接收的位并產(chǎn)生一命中偏移信號(hit-offsetsignal)264。若上述比較動作有產(chǎn)生符合結(jié)果(即較低/偏移位元255落在任一被指定在中斷點暫存器162中的范圍內(nèi)),則命中偏移信號264為真值。在一實施例中,偏移量比較器206只會比較位[11:2]并且另外檢查與載入指令以及中斷點地址232有關(guān)的字節(jié)致能(byteenables),用以產(chǎn)生命中偏移信號264。雙輸入與門(2-inputANDGate)242接收命中分頁輸出262與命中偏移信號264用以產(chǎn)生一brklor2信號266。若第一片段的載入虛擬地址234落在被指定在中斷點暫存器162中的任一中斷點地址范圍內(nèi),則brklor2信號266在處理第一片段這段期間為真值。若第二片段的載入虛擬地址234(實際上是第一片段的具有已遞增的最低有效快取線位的載入虛擬地址234)落在被指定在中斷點暫存器162中的任一中斷點地址范圍內(nèi),則brklor2信號266在處理第二片段這段期間為偽值。當載入單元185在處理第一片段時,控制邏輯電路248會使得brklor2信號266的值被載入至載入隊列項目222中的第一指標字段228。雙輸入或門(2-inputORGate)244接收brklor2信號266與來自載入隊列項目222的第一指針字段228的數(shù)值,用以產(chǎn)生一結(jié)果信號268。雙輸入與門246接收第二片段控制信號254與雙輸入或門244所輸出的結(jié)果信號268,用以產(chǎn)生一brk信號272。因此在處理第二片段這段期間,若第一或第二片段中的任一者觸發(fā)一中斷點,則雙輸入與門246會產(chǎn)生一為真值的brk信號272。雙輸入與門246將brk信號272提供至第一圖的微處理器100中的重新排序緩沖器172,并且重新排序緩沖器172根據(jù)所接收的brk信號272設(shè)置與載入指令有關(guān)的一項目中的位,使得微處理器100可在載入指令準備引退時執(zhí)行(take)一除錯中斷點異常(debugbreakpointexception)請參考圖3,圖3為包含圖2的載入單元185的第一圖的微處理器100的操作流程圖。流程從步驟302開始。在步驟302中,一程序設(shè)計者使用一個或多個中斷點地址范圍來設(shè)定中斷點暫存器162。流程前進至步驟304。在步驟304中,載入單元185接收一載入指令,其中此載入指令跨越一快取線邊界但不跨越一分頁邊界。載入單元185根據(jù)所接收的載入指令,將載入指令的第一片段沿著載入管線傳送用以進行處理。在一實施例中若載入指令跨越兩個分頁,則載入單元185執(zhí)行上述較慢的方法(即使用額外的管線循環(huán))。流程同時前進至步驟306與312。在步驟306中,載入單元185對第一片段的載入虛擬地址234執(zhí)行中斷點檢查。換言之,圖2中的載入單元185會產(chǎn)生第一片段的命中分頁輸出262與brklor2信號266。流程前進至步驟308。在步驟308中,載入單元185將命中分頁輸出262儲存至第二指標字段226,并且將brklor2信號266儲存至第一指標字段228。流程從步驟308前進至步驟318。在步驟312中,轉(zhuǎn)譯查詢緩沖器218產(chǎn)生載入物理地址236。流程從步驟312同時前進至步驟314與316。在步驟314中,載入單元185使用載入物理地址236來存取第一圖的微處理器100中的數(shù)據(jù)快取186,用以取得由載入指令的第一片段所指定的快取數(shù)據(jù)。流程前進至步驟318。在步驟316中,載入單元185將載入隊列項目222的地址字段224中的載入虛擬地址234替換為載入物理地址236。流程前進至步驟318。在步驟318中,載入單元185將載入指令的第二片段沿著載入管線傳送用以進行處理。流程前進至步驟322。在步驟322中,圖2的遞增器216將載入物理地址236的最低有效快取線位遞增用以產(chǎn)生遞增結(jié)果238。流程從步驟322同時前進至步驟324與326。在步驟324中,載入單元185使用第二指針字段226與遞增結(jié)果238來對第二片段執(zhí)行一中斷點檢查。換言之,2:1多工器212選擇第二指標字段226,而2:1多工器214選擇遞增結(jié)果238,并且21多工器214將遞增結(jié)果238提供至偏移量比較器206,用以產(chǎn)生第二片段的命中偏移信號264。如前文所述,第二指標字段226與命中偏移信號264用以產(chǎn)生第二片段的brklorf信號266。流程前進至步驟328。在步驟326中,載入單元185使用遞增結(jié)果238來存取數(shù)據(jù)快取186,用以取得由載入指令的第二片段所指定的快取數(shù)據(jù)。流程前進至步驟328。在步驟328中,載入單元185通過brk信號272發(fā)出一中斷點消息。流程前進至步驟332。在步驟332中,載入單元185完成載入指令的執(zhí)行動作(即告知重新排序緩沖器172已經(jīng)完成載入指令的執(zhí)行動作)。流程結(jié)束于步驟332。如圖1到圖4所述,微處理器100的優(yōu)點在于只需使用兩個管線循環(huán)(twopasses)就能夠檢查載入指令的中斷點,其中此載入指令跨越一快取線邊界但不跨越一分頁邊界。此外,由于微處理器100不需在各個載入隊列項目222中包含一第二地址字段,因此不會增加芯片的實際面積以及功率消耗。相反地,微處理器100只需在各個載入隊列項目222中設(shè)置每個中斷點暫存器162的一單一附加位以及需要些許的附加邏輯電路(即2:1多工器214與雙輸入與門242)。請參考圖5,圖5為本發(fā)明另一實施例的圖1中微處理器100的載入單元185的方塊圖。此實施例的優(yōu)點在于可在處理第一片段時對兩個片段執(zhí)行中斷點檢查,并且這兩個片段共享(share)分頁比較器204。以下將描述圖5與圖2中的載入單元185的差異。如圖5所示,載入單元185不包括圖2中的2:1多工器212、2:1多工器214、雙輸入與門242、雙輸入或門244、雙輸入與門246或第二指標字段226。圖5的載入單元185包括偏移量比較器206,圖5的偏移量比較器206與圖2的偏移量比較器206類似,皆用以對載入指令的第一片段的較低/偏移位元執(zhí)行一范圍檢查。換言之,在此實施例中,偏移量比較器206比較所接收的載入虛擬地址234的較低/偏移位元與中斷點地址232的較低/偏移位元,用以對載入指令的第一片段執(zhí)行范圍檢查并產(chǎn)生一第一片段命中偏移信號562,其中若較低/偏移位元255落在任一被指定在中斷點暫存器162中的范圍內(nèi),則第一片段命中偏移信號562為真值。圖5的載入單元185也包括偏移量比較器506,用以對載入指令的第二片段的較低/偏移位元執(zhí)行一類似的范圍檢查。在此實施例中,遞增器216接收載入虛擬地址234的較低/偏移位元。偏移量比較器506比較所接收的遞增結(jié)果238與中斷點地址232的較低/偏移位元,用以對載入指令的第二片段執(zhí)行范圍檢查并產(chǎn)生一第二片段命中偏移信號564,其中若遞增結(jié)果238(即載入指令的第二片段的較低/偏移位元)落在任一被指定在中斷點暫存器162中的范圍內(nèi),則第二片段命中偏移信號564為真值。雙輸入或門582接收第一片段命中偏移信號562與第二片段命中偏移信號564用以產(chǎn)生一第一輸出信號586。雙輸入與門584接收命中分頁輸出262與第一輸出信號586用以產(chǎn)生一第二輸出信號588,其中若第一或第二片段中的任一者觸發(fā)一中斷點,則第二輸出信號588為真值。雙輸入與門584將第二輸出信號588提供至第一指標字段228,其中第一指標字段228在處理第二片段時被輸出作為brk信號272。請參考圖6,圖6為包含圖5的載入單元185的圖1的微處理器100的操作流程圖,其中圖6與圖3中的步驟302、304、312、316、318、326以及332相同。以下將描述圖6與圖3之間的差異。流程從步驟304同時前進至步驟605、606、607與312。在步驟605中,分頁比較器204執(zhí)行分頁位比較。流程前進至步驟608。在步驟606中,偏移量比較器206執(zhí)行第一片段的偏移位元比較。流程前進至步驟608。在步驟607中,偏移量比較器506執(zhí)行第二片段的偏移位元比較。流程前進至步驟608。在步驟608中,雙輸入或門582與雙輸入與門584產(chǎn)生第二輸出信號588,并且在處理完第一片段時將第二輸出信號588儲存至第一指標字段228。流程從步驟608前進至步驟318。流程從步驟312同時前進至步驟614與316。在步驟614中,載入單元185使用步驟312中所產(chǎn)生的第一片段的載入物理地址236來存取數(shù)據(jù)快取186。流程前進至步驟318用以將載入指令的第二片段沿著載入管線傳送用以進行處理。流程從步驟318前進至步驟326。在一實施例中,在步驟326,當處理第二片段時,遞增器216將載入物理地址236的最低有效快取線位遞增用以產(chǎn)生遞增結(jié)果238,并使用此遞增結(jié)果238來存取數(shù)據(jù)快取186。在另一實施例中,當處理第一片段時,轉(zhuǎn)譯查詢緩沖器218所產(chǎn)生的載入物理地址236的較高位與遞增結(jié)果238的遞增的較低/偏移位元為串接位,并且儲存于地址字段224的遞增的物理地址用以存取數(shù)據(jù)快取186。流程從步驟326前進至步驟628。在步驟628中,載入單元185通過brk信號272發(fā)出一中斷點消息,其中brk信號272為第一指標字段228的輸出值。流程從步驟628前進至步驟332。流程結(jié)束于步驟332。值得注意的是,在圖2與圖3的實施例中,必須加入至各個載入隊列項目222中的第二指標字段226的數(shù)量是隨著中斷點暫存器162的數(shù)量的增加而增加。因此,若一微處理器具有相對較多的中斷點暫存器162,則可能無法在載入隊列項目222中加入額外的儲存空間。然而,在圖5與圖6的實施例中,載入隊列項目222中所需的儲存空間并不會隨著中斷點暫存器162的數(shù)量的增加而增加。此優(yōu)點可通過增加額外的偏移量比較器506來實現(xiàn)。本發(fā)明的實施例不限定于執(zhí)行載入指令,亦能執(zhí)行跨越兩條快取線的儲存指令。具體而言,圖5與圖6的實施例是適用于執(zhí)行儲存指令。此外,本發(fā)明的實施例不限定于執(zhí)行除錯中斷點檢查,亦能檢查一跨越兩條快取線的存儲器指令是否落在與一除錯中斷點范圍不同的一虛擬地址范圍內(nèi)。舉例而言,本發(fā)明的實施例可檢查一跨越快取線的存儲器指令是否落在一個或多個使用者定義的虛擬地址范圍內(nèi),用以計算地址范位的存取次數(shù)以便執(zhí)行軟件評測(softwareprofiling),效能測試(performancemeasurement)或非侵入式禾呈序碼除錯(non-invasivecodedebugging),其中非侵入式程序碼除錯是指在不產(chǎn)生一中斷點異常的情況下檢測一虛擬地址范圍的存取次數(shù)。載入單元可包括一計數(shù)器,其中載入單元在每次虛擬地址范圍被存取時遞增上述計數(shù)器,而不是通過產(chǎn)生一中斷點異常來檢測虛擬地址范圍的存取次數(shù)。上述應(yīng)用特別對難以從一外部總線檢測存儲器存取次數(shù)的多處理器核心配置(multi-processorcoreconfigurations)有益。此夕卜,操作系統(tǒng)可定義一個或多個幾乎所有特權(quán)程序(privilegedprograms)無法存取的虛擬地址范圍,并且可通過本發(fā)明的實施例來檢查一跨越快取線的存儲器指令是否落在此禁止存取范圍內(nèi),如果是的話,則微處理器產(chǎn)生一中斷點異常。本發(fā)明雖以各種實施例揭露如上,然其僅為范例參考而非用以限定本發(fā)明的范圍,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可做些許的更動與潤飾。舉例而言,可使用軟件來實現(xiàn)本發(fā)明所述的裝置與方法的功能、構(gòu)造、模塊、仿真、描述及/或測試。此目的可通過使用一般程序語言(例如C、C++)、硬件描述語言(包括Verilog或VHDL硬件描述語言等等)、或其它可用的程序來實現(xiàn)。上述軟件可被設(shè)置在任何計算機可用的媒體,例如半導體、磁盤、光盤(例如CD-R0M、DVD_R0M等等)中。本發(fā)明實施例中所述的裝置與方法可被包括在一半導體智慧財產(chǎn)權(quán)核心(semiconductorintellectualpropertycore),例如以硬件描述語言(HDL)實現(xiàn)的微處理器核心中,并被轉(zhuǎn)換為硬件型態(tài)的集成電路產(chǎn)品。此外,本發(fā)明所描述的裝置與方法可通過結(jié)合硬件與軟件的方式來實現(xiàn)。因此,本發(fā)明不應(yīng)上述被本文中的任一實施例所限定,而當視所附的權(quán)利要求范圍與其等效物所界定者為準。特別是,本發(fā)明是實現(xiàn)于一般用途計算機的微處理器裝置中。最后,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當可作些許更動與潤飾,因此本發(fā)明的保護范圍當視所附的權(quán)利要求范圍所界定者為準。20權(quán)利要求一種微處理器,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一中斷點暫存器,用以儲存一中斷點地址;一隊列,包括多個隊列項目,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入/儲存指令有關(guān),并且上述指標用以表示上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合;以及一載入/儲存單元管線,具有一載入/儲存單元,并耦接至上述中斷點暫存器與上述隊列,其中上述載入/儲存單元管線于一第一管線循環(huán)期間執(zhí)行上述跨越快取線的載入/儲存指令以便通過一高速緩存來存取上述數(shù)據(jù)的上述第一片段,并且上述載入/儲存單元管線于一第二管線循環(huán)期間執(zhí)行上述跨越快取線的載入/儲存指令以便通過上述高速緩存來存取上述數(shù)據(jù)的上述第二片段;其中在上述第一管線循環(huán)期間,上述載入/儲存單元使用上述載入/儲存虛擬地址來執(zhí)行一第一片段中斷點檢查,將上述指標儲存至上述第二儲存空間,并且將一載入/儲存物理地址儲存至上述第一儲存空間,其中上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成;其中在上述第二管線循環(huán)期間,上述載入/儲存單元使用來自上述第二儲存空間的上述指標與來自上述第一儲存空間的上述載入/儲存物理地址的一遞增分頁偏移部分,用以執(zhí)行一第二片段中斷點檢查;其中上述載入/儲存單元不使用超過兩個上述管線循環(huán)來存取上述高速緩存以及對上述載入/儲存指令執(zhí)行上述中斷點檢查;其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。2.根據(jù)權(quán)利要求1所述的微處理器,其中在上述第一管線循環(huán)期間,上述載入/儲存單元管線使用上述載入/儲存物理地址來存取上述高速緩存以便載入/儲存上述數(shù)據(jù)的上述第一片段,并且在上述第二管線循環(huán)期間,上述載入/儲存單元管線使用上述載入/儲存物理地址的上述遞增分頁偏移部分來存取上述高速緩存以便載入/儲存上述數(shù)據(jù)的上述第二片段,上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成,并且上述載入/儲存物理地址是來自于上述第一儲存空間。3.根據(jù)權(quán)利要求1所述的微處理器,其中上述載入/儲存單元管線包括多個分頁地址比較器,比較上述載入/儲存虛擬地址的上述分頁地址部分與上述中斷點地址的上述分頁地址部分用以產(chǎn)生一第一數(shù)值,上述第一數(shù)值用以表示上述載入/儲存虛擬地址的上述分頁地址部分與上述中斷點地址的上述分頁地址部分是否相符合,其中上述載入/儲存單元將上述第一管線循環(huán)期間所產(chǎn)生的上述第一數(shù)值儲存至上述第二儲存空間;一多工器,耦接至上述分頁地址比較器,上述多工器選擇上述分頁地址比較器于上述第一管線循環(huán)期間所產(chǎn)生的上述第一數(shù)值,用以執(zhí)行上述第一片段中斷點檢查,并且在上述第二管線循環(huán)期間選擇來自上述第二儲存空間的上述指標,用以執(zhí)行上述第二片段中斷點檢查;以及多個分頁偏移比較器,于上述第一管線循環(huán)期間比較上述載入/儲存虛擬地址的一分頁偏移部分與上述中斷點地址的一分頁偏移部分,用以產(chǎn)生一第二數(shù)值,其中上述第二數(shù)值用以表示上述載入/儲存虛擬地址的上述分頁偏移部分與上述中斷點地址的上述分頁偏移部分是否相符合,并且于上述第二管線循環(huán)期間比較來自上述第一儲存空間的上述載入/儲存物理地址的上述遞增分頁偏移部分與上述中斷點地址的上述分頁偏移部分,用以產(chǎn)生一第三數(shù)值,其中上述第三數(shù)值用以表示上述載入/儲存物理地址的上述遞增分頁偏移部分與上述中斷點地址的上述分頁偏移部分是否相符合。4.根據(jù)權(quán)利要求3所述的微處理器,其中上述載入/儲存單元于上述第一管線循環(huán)期間使用上述分頁地址比較器所產(chǎn)生的上述第一數(shù)值與上述分頁偏移比較器所產(chǎn)生的上述第二數(shù)值來執(zhí)行上述第一片段中斷點檢查,并且上述載入/儲存單元于上述第二管線循環(huán)期間使用來自上述第二儲存空間的上述指標與上述分頁偏移比較器所產(chǎn)生的上述第三數(shù)值來執(zhí)行上述第二片段中斷點檢查。5.一種適用于微處理器的操作方法,上述微處理器包括一高速緩存用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器還包括一中斷點暫存器用以儲存一中斷點地址,上述微處理器還包括具有多個隊列項目的一隊列,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入/儲存指令有關(guān),并且上述指標用以表示上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合,上述微處理器還包括具有一載入/儲存單元的一載入/儲存單元管線,上述方法包括在一第一管線循環(huán)期間執(zhí)行與上述數(shù)據(jù)的上述第一片段有關(guān)的一第一片段中斷點檢查,其中上述執(zhí)行上述第一片段中斷點檢查的步驟包括比較上述中斷點地址與上述載入/儲存虛擬地址;將上述指標儲存至上述第二儲存空間;以及將一載入/儲存物理地址儲存至上述第一儲存空間,其中上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成;以及在一第二管線循環(huán)期間執(zhí)行與上述數(shù)據(jù)的上述第二片段有關(guān)的一第二片段中斷點檢查,其中上述執(zhí)行上述第二片段中斷點檢查的步驟包括檢查來自上述第二儲存空間的上述指標,并且比較上述中斷點地址的一分頁偏移部分與來自上述第一儲存空間的上述載入/儲存物理地址的一遞增分頁偏移部分;其中不使用超過兩個上述管線循環(huán)來存取上述高速緩存以及對上述載入/儲存指令執(zhí)行上述中斷點檢查;其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。6.根據(jù)權(quán)利要求5所述的適用于微處理器的操作方法,其中在上述第一管線循環(huán)期間使用上述載入/儲存物理地址來存取上述高速緩存以便載入/儲存上述數(shù)據(jù)的上述第一片段,并且在上述第二管線循環(huán)期間使用上述載入/儲存物理地址的上述遞增分頁偏移部分來存取上述高速緩存以便載入/儲存上述數(shù)據(jù)的上述第二片段,其中上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成,并且上述載入/儲存物理地址是來自于上述第一儲存空間。7.根據(jù)權(quán)利要求5所述的適用于微處理器的操作方法,其中于上述第一管線循環(huán)期間比較上述中斷點地址與上述載入/儲存虛擬地址的步驟包括比較上述載入/儲存虛擬地址的上述分頁地址部分與上述中斷點地址的上述分頁地址部分用以產(chǎn)生一第一數(shù)值,上述第一數(shù)值表示上述載入/儲存虛擬地址的上述分頁地址部分與上述中斷點地址的上述分頁地址部分是否相符合;其中將上述指標儲存至上述第二儲存空間的步驟包括將上述第一數(shù)值儲存至上述第二儲存空間。8.根據(jù)權(quán)利要求7所述的適用于微處理器的操作方法,其中上述執(zhí)行上述第一片段中斷點檢查的步驟包括選擇上述第一數(shù)值用以執(zhí)行上述第一片段中斷點檢查;其中上述執(zhí)行上述第二片段中斷點檢查的步驟包括選擇來自上述第二儲存空間的上述指標用以執(zhí)行上述第二片段中斷點檢查。9.根據(jù)權(quán)利要求8所述的適用于微處理器的操作方法,其中上述執(zhí)行上述第一片段中斷點檢查的步驟包括使用一第二數(shù)值與上述第一數(shù)值來執(zhí)行上述第一片段中斷點檢查,其中上述第二數(shù)值是通過比較上述載入/儲存虛擬地址的上述分頁偏移部分與上述中斷點地址的上述分頁偏移部分而產(chǎn)生,并且上述第二數(shù)值表示上述載入/儲存虛擬地址的上述分頁偏移部分與上述中斷點地址的上述分頁偏移部分是否相符合;其中上述執(zhí)行上述第二片段中斷點檢查的步驟包括使用來自上述第二儲存空間的上述指標與一第三數(shù)值來執(zhí)行上述第二片段中斷點檢查,其中上述第三數(shù)值是通過比較來自上述第一儲存空間的上述載入/儲存物理地址的上述遞增分頁偏移部分與上述中斷點地址的上述分頁偏移部分而產(chǎn)生,并且上述第三數(shù)值表示上述遞增載入/儲存物理地址的上述分頁偏移部分與上述中斷點地址的上述分頁偏移部分是否相符合。10.一種微處理器,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一中斷點暫存器,用以儲存一中斷點地址;以及一載入/儲存單元,耦接至上述中斷點暫存器,上述載入/儲存單元包括一分頁地址比較器,比較上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分,用以產(chǎn)生一第一指標;一第一分頁偏移比較器,比較上述載入/儲存虛擬地址的一分頁偏移部分與上述中斷點地址的一分頁偏移部分,用以產(chǎn)生一第二指標;一遞增器,將上述載入/儲存虛擬地址的上述分頁偏移部分遞增一條快取線的大小,用以產(chǎn)生一遞增分頁偏移部分;以及一第二分頁偏移比較器,比較上述中斷點地址的上述分頁偏移部分與上述遞增分頁偏移部分,用以產(chǎn)生一第三指標;其中若上述第一指標為真值并且上述第二與第三指標中的至少一者為真值時,則上述載入/儲存單元表示上述載入/儲存指令的一中斷點。11.根據(jù)權(quán)利要求10所述的微處理器,其中上述載入/儲存指令并不跨越一存儲器分頁邊界。12.根據(jù)權(quán)利要求10所述的微處理器,還包括一隊列,包括多個隊列項目,上述隊列項目中的每一者包括一儲存空間用以儲存與上述載入/儲存指令有關(guān)的一地址,其中只有上述隊列項目中的每一者中的上述儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。13.根據(jù)權(quán)利要求12所述的微處理器,其中上述載入/儲存單元于一第一管線循環(huán)期間執(zhí)行以下步驟將上述載入/儲存虛擬地址轉(zhuǎn)譯成一載入/儲存物理地址;使用上述載入/儲存物理地址來存取上述微處理器的一高速緩存,以便載入/儲存上述數(shù)據(jù)的上述第一片段;以及將上述載入/儲存物理地址儲存至上述載入/儲存指令的上述隊列項目中的上述儲存空間;其中上述載入/儲存單元于一第二管線循環(huán)期間執(zhí)行以下步驟使用上述遞增分頁偏移部分來存取上述高速緩存,以便載入/儲存上述數(shù)據(jù)的上述第二片段;其中上述載入/儲存單元不使用超過兩個上述管線循環(huán)來存取上述高速緩存以及對上述載入/儲存指令執(zhí)行上述中斷點檢查,其中上述存取上述高速緩存的步驟包括將上述數(shù)據(jù)的上述第一與第二片段載入/儲存至上述高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第一與第二片段。14.一種適用于微處理器的操作方法,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一中斷點暫存器用以儲存一中斷點地址,上述方法包括(1)比較上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分,用以產(chǎn)生一第一指標;(2)比較上述載入/儲存虛擬地址的一分頁偏移部分與上述中斷點地址的一分頁偏移部分,用以產(chǎn)生一第二指標;(3)將上述載入/儲存虛擬地址的上述分頁偏移部分遞增一條快取線的大小,用以產(chǎn)生一遞增分頁偏移部分;(4)比較上述中斷點地址的上述分頁偏移部分與上述遞增分頁偏移部分,用以產(chǎn)生一第三指標;以及(5)若上述第一指標為真值并且上述第二與第三指標中的至少一者為真值時,則表示上述載入/儲存指令的一中斷點。15.根據(jù)權(quán)利要求14所述的適用于微處理器的操作方法,其中上述載入/儲存指令并不跨越一存儲器分頁邊界。16.根據(jù)權(quán)利要求14所述的適用于微處理器的操作方法,其中上述微處理器還包括具有多個隊列項目的一隊列,上述隊列項目中的每一者包括一儲存空間用以儲存與上述載入/儲存指令有關(guān)的一地址,其中只有上述隊列項目中的每一者中的上述儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。17.根據(jù)權(quán)利要求14所述的適用于微處理器的操作方法,還包括(6)將上述載入/儲存虛擬地址轉(zhuǎn)譯成一載入/儲存物理地址;(7)使用上述載入/儲存物理地址來存取上述微處理器的一高速緩存以便載入/儲存上述數(shù)據(jù)的上述第一片段;(8)將上述載入/儲存物理地址儲存至上述載入/儲存指令的上述隊列項目中的上述儲存空間;以及(9)使用上述遞增分頁偏移部分來存取上述高速緩存以便載入/儲存上述數(shù)據(jù)的上述第二片段。18.根據(jù)權(quán)利要求17所述的適用于微處理器的操作方法,其中于一第一管線循環(huán)期間執(zhí)行上述步驟(6)、(7)以及(8),并且于一第二管線循環(huán)期間執(zhí)行上述步驟(9);其中不使用超過兩個上述管線循環(huán)來存取上述高速緩存以及對上述載入/儲存指令執(zhí)行上述中斷點檢查,其中上述存取上述高速緩存的步驟包括將上述數(shù)據(jù)的上述第一與第二片段載入/儲存至上述高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第一與第二片段。19.根據(jù)權(quán)利要求14所述的適用于微處理器的操作方法,其中于一第一管線循環(huán)期間執(zhí)行上述步驟(1)、(2)、(3)以及(4),并且于一第二管線循環(huán)期間執(zhí)行上述步驟(5)。20.一種微處理器,用以計算一指定的虛擬存儲器地址范圍的存取次數(shù),其中存取上述指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入/儲存指令,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一暫存器,用以儲存一信息,上述信息用以指定一虛擬地址范圍,并且上述信息包括一范圍地址用以指定一起始虛擬地址范圍,其中上述虛擬存儲器地址范圍位于一虛擬存儲器分頁中;一計數(shù)器,用以儲存一計數(shù)值,上述計數(shù)值代表上述虛擬地址范圍的存取次數(shù),并且上述虛擬地址范圍是由上述暫存器中的上述信息所指定;一隊列,包括多個隊列項目,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入/儲存指令有關(guān),并且上述指標用以表示上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合;以及具有一載入/儲存單元的一載入/儲存單元管線,耦接至上述暫存器與上述隊列,其中上述載入/儲存單元管線于一第一管線循環(huán)期間將上述數(shù)據(jù)的上述第一片段載入/儲存至一高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第一片段,并且上述載入/儲存單元管線于一第二管線循環(huán)期間將上述數(shù)據(jù)的上述第二片段載入/儲存至上述高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第二片段;其中在上述第一管線循環(huán)期間,上述載入/儲存單元使用上述載入/儲存虛擬地址來判斷上述數(shù)據(jù)的上述第一片段是否落在上述虛擬地址范圍內(nèi),將上述指標儲存至上述第二儲存空間,并且將一載入/儲存物理地址儲存至上述第一儲存空間,其中上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成;其中在上述第二管線循環(huán)期間,上述載入/儲存單元使用來自上述第二儲存空間的上述指標與來自上述第一儲存空間的上述載入/儲存物理地址的一遞增分頁偏移部分,用以判斷上述數(shù)據(jù)的上述第二片段是否落在上述虛擬地址范圍內(nèi);其中若上述載入/儲存單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬地址范圍內(nèi),則上述載入/儲存單元將上述計數(shù)器遞增;其中上述載入/儲存單元不使用超過兩個上述管線循環(huán)來存取上述高速緩存以及判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者是否位于上述虛擬地址范圍內(nèi);其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。21.一種適用于微處理器的操作方法,用以計算一指定的虛擬存儲器地址范圍的存取次數(shù),其中存取上述指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入/儲存指令,上述載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一暫存器用以儲存一信息,上述信息用以指定一虛擬地址范圍并且包括一范圍地址用以指定一起始虛擬地址范圍,其中上述虛擬存儲器地址范圍位于一虛擬存儲器分頁中,上述微處理器還包括一計數(shù)器用以儲存一計數(shù)值,上述計數(shù)值代表上述虛擬地址范圍的存取次數(shù),并且上述虛擬地址范圍是由上述暫存器中的上述信息所指定,上述微處理器還包括具有多個隊列項目的一隊列,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入/儲存指令有關(guān),并且上述指標表示上述載入/儲存虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合,上述微處理器還包括具有一載入/儲存單元的一載入/儲存單元管線,上述方法包括在一第一管線循環(huán)期間(1)將上述數(shù)據(jù)的上述第一片段載入/儲存至一高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第一片段;(2)使用上述載入/儲存虛擬地址來判斷上述數(shù)據(jù)的上述第一片段是否位于上述虛擬地址范圍內(nèi);(3)將上述指標儲存至上述第二儲存空間;以及(4)將一載入/儲存物理地址儲存至上述第一儲存空間,其中上述載入/儲存物理地址是由上述載入/儲存虛擬地址轉(zhuǎn)譯而成;在一第二管線循環(huán)期間(5)將上述數(shù)據(jù)的上述第二片段載入/儲存至上述高速緩存或從上述高速緩存中載入/儲存上述數(shù)據(jù)的上述第二片段;(6)使用來自上述第二儲存空間的上述指標與來自上述第一儲存空間的上述載入/儲存物理地址的一遞增分頁偏移部分,用以判斷上述數(shù)據(jù)的上述第二片段是否落在上述虛擬地址范圍內(nèi);(7)若上述載入/儲存單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬地址范圍內(nèi),則將上述計數(shù)器遞增;其中不使用超過兩個上述管線循環(huán)來執(zhí)行上述步驟(1)到(7);其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入/儲存指令有關(guān)的上述地址。22.一種微處理器,用以禁止多個程序存取一指定的虛擬存儲器地址范圍,其中存取上述指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入指令,上述載入指令指定一數(shù)據(jù)的一載入虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一暫存器,用以儲存一信息,上述信息用以指定一虛擬存儲器地址范圍,并且上述信息包括一范圍地址用以指定一起始虛擬存儲器地址范圍,其中上述虛擬存儲器地址范圍位于一虛擬存儲器分頁中;一隊列,包括多個隊列項目,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入指令有關(guān),并且上述指標用以表示上述載入虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合;以及一載入管線,具有一載入單元,并耦接至上述暫存器與上述隊列,其中上述載入管線于一第一管線循環(huán)期間從一高速緩存中讀取上述數(shù)據(jù)的上述第一片段,并且上述載入管線于一第二管線循環(huán)期間從上述高速緩存中讀取上述數(shù)據(jù)的上述第二片段;其中在上述第一管線循環(huán)期間,上述載入單元使用上述載入虛擬地址來判斷上述數(shù)據(jù)的上述第一片段是否落在上述虛擬存儲器地址范圍內(nèi),將上述指標儲存至上述第二儲存空間,并且將一載入物理地址儲存至上述第一儲存空間,其中上述載入物理地址是由上述載入虛擬地址轉(zhuǎn)譯而成;其中在上述第二管線循環(huán)期間,上述載入單元使用來自上述第二儲存空間的上述指標與來自上述第一儲存空間的上述載入物理地址的一遞增分頁偏移部分,用以判斷上述數(shù)據(jù)的上述第二片段是否落在上述虛擬存儲器地址范圍內(nèi);其中若上述載入單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬存儲器地址范圍內(nèi),并且上述程序禁止存取上述虛擬存儲器地址范圍,則上述載入單元禁止將上述數(shù)據(jù)載入至上述載入指令所指定的一目標暫存器;其中上述載入單元不使用超過兩個上述管線循環(huán)來讀取來自上述高速緩存的上述數(shù)據(jù)的上述第一與第二片段以及判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者是否位于上述虛擬存儲器地址范圍內(nèi);其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入指令有關(guān)的上述地址。23.根據(jù)權(quán)利要求22所述的微處理器,其中若上述載入單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬存儲器地址范圍內(nèi),并且上述程序禁止存取上述虛擬存儲器地址范圍,則上述載入單元產(chǎn)生一中斷點異常。24.一種適用于微處理器的操作方法,用以禁止多個程序存取一指定的虛擬存儲器地址范圍,其中存取上述指定的虛擬存儲器地址范圍的步驟包括執(zhí)行一跨越快取線的載入指令,上述載入指令指定一數(shù)據(jù)的一載入虛擬地址,其中上述數(shù)據(jù)的一第一片段位于一第一快取線中,并且上述數(shù)據(jù)的一第二片段位于一第二快取線中,上述微處理器包括一暫存器用以儲存一信息,上述信息用以指定一虛擬存儲器地址范圍并且包括一范圍地址用以指定一起始虛擬存儲器地址范圍,其中上述虛擬存儲器地址范圍位于一虛擬存儲器分頁中,上述微處理器還包括具有多個隊列項目的一隊列,上述隊列項目中的每一者包括用以儲存一地址的一第一儲存空間與用以儲存一指標的一第二儲存空間,其中上述地址與上述載入指令有關(guān),并且上述指針表示上述載入虛擬地址的一分頁地址部分與上述中斷點地址的一分頁地址部分是否相符合,上述微處理器還包括具有一載入單元的一載入管線,上述方法包括在一第一管線循環(huán)期間(1)從一高速緩存中讀取上述數(shù)據(jù)的上述第一片段;(2)使用上述載入虛擬地址來判斷上述數(shù)據(jù)的上述第一片段是否位于上述虛擬存儲器地址范圍內(nèi);(3)將上述指標儲存至上述第二儲存空間;以及(4)將一載入物理地址儲存至上述第一儲存空間,其中上述載入物理地址是由上述載入虛擬地址轉(zhuǎn)譯而成;在一第二管線循環(huán)期間(5)從上述高速緩存中讀取上述數(shù)據(jù)的上述第二片段;(6)使用來自上述第二儲存空間的上述指標與來自上述第一儲存空間的上述載入物理地址的一遞增分頁偏移部分,用以判斷上述數(shù)據(jù)的上述第二片段是否落在上述虛擬存儲器地址范圍內(nèi);(7)若上述載入單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬存儲器地址范圍內(nèi),并且上述程序無法存取上述虛擬存儲器地址范圍,則禁止將上述數(shù)據(jù)載入至由上述載入指令所指定的一目標暫存器;其中不使用超過兩個上述管線循環(huán)來執(zhí)行上述步驟(1)到(7);其中只有上述隊列項目中的每一者中的上述第一儲存空間用以儲存與上述載入指令有關(guān)的上述地址。25.根據(jù)權(quán)利要求24所述的適用于微處理器的操作方法,還包括若上述載入單元判斷上述數(shù)據(jù)的上述第一與第二片段中的任一者位于上述虛擬存儲器地址范圍內(nèi),并且上述程序無法存取上述虛擬存儲器地址范圍,則產(chǎn)生一中斷點異常。全文摘要本發(fā)明提供一種微處理器,用以對一跨越快取線的載入/儲存指令執(zhí)行一中斷點檢查,載入/儲存指令指定一數(shù)據(jù)的一載入/儲存虛擬地址,其中數(shù)據(jù)的一第一片段位于一第一快取線中,并且數(shù)據(jù)的一第二片段位于一第二快取線中。微處理器包括一中斷點暫存器、一隊列以及具有一載入/儲存單元的一載入/儲存單元管線。其中在第一管線循環(huán)期間,載入/儲存單元使用載入/儲存虛擬地址來執(zhí)行一第一片段中斷點檢查,將指標儲存至第二儲存空間,并且將一載入/儲存物理地址儲存至第一儲存空間,其中載入/儲存物理地址是由載入/儲存虛擬地址轉(zhuǎn)譯而成。文檔編號G06F9/30GK101894010SQ20101024903公開日2010年11月24日申請日期2010年8月6日優(yōu)先權(quán)日2009年8月24日發(fā)明者布萊恩·W·伯格,柯林·艾迪申請人:威盛電子股份有限公司