存屬性)指令,其返回高速緩存線的字 節(jié)大小。模型也可提供PR邸ETCHDATA(預(yù)取數(shù)據(jù))和PR邸ETCHDATARELATIVELONG(預(yù) 取較長(zhǎng)數(shù)據(jù))指令,其實(shí)現(xiàn)存儲(chǔ)到數(shù)據(jù)或指令高速緩存中的預(yù)取,或數(shù)據(jù)從高速緩存的釋 放。
[0239] 存儲(chǔ)器被視為位的長(zhǎng)水平串。對(duì)于大部分操作來(lái)說(shuō),W從左到右的順序進(jìn)行對(duì)存 儲(chǔ)器的訪問(wèn)。位串被細(xì)分為八個(gè)位的單位。八位單位被稱為字節(jié),其是所有信息格式的基 本構(gòu)件。存儲(chǔ)器中的每個(gè)字節(jié)位置由唯一的非負(fù)整數(shù)標(biāo)識(shí),該非負(fù)整數(shù)是該字節(jié)位置的地 址,或簡(jiǎn)稱為字節(jié)地址。相鄰的字節(jié)位置具有連續(xù)的地址,在左邊從0開(kāi)始且W從左到右的 順序進(jìn)行。地址是無(wú)符號(hào)二進(jìn)制整數(shù),且是24、31或64位。
[0240] 信息一次一個(gè)字節(jié)或一組字節(jié)地在存儲(chǔ)器和CPU或通道子系統(tǒng)之間傳遞。除非另 有指定,例如在z/Architec化re中,存儲(chǔ)器中的一組字節(jié)由該組的最左邊的字節(jié)尋址。組 中的字節(jié)的數(shù)量可由將被執(zhí)行的操作暗示或顯式地指定。當(dāng)在CPU操作中使用時(shí),一組字 節(jié)被稱為字段。在字節(jié)的每個(gè)組內(nèi),例如在z/Architecture中,位W從左到右的順序被編 號(hào)。在z/Architecture中,最左邊的位有時(shí)候被稱為"高階"位且最右邊的位被稱為"低 階"位。但是,位數(shù)不是存儲(chǔ)器地址。僅字節(jié)可被尋址。為了操作存儲(chǔ)器中的字節(jié)的單個(gè) 位,訪問(wèn)整個(gè)字節(jié)。字節(jié)上的位從左到右被編號(hào)為0到7(例如在z/Architecture中)。對(duì) 于24位地址,地址中的位被編號(hào)為8-31或40-63,對(duì)于31位地址,編號(hào)為1-31或33-63, 對(duì)于64位地址,編號(hào)為0-63。在多個(gè)字節(jié)的任何其他的固定長(zhǎng)度的格式中,構(gòu)成格式的位 從0開(kāi)始被連續(xù)編號(hào)。為了錯(cuò)誤檢測(cè),且優(yōu)選地為了校正,一個(gè)或多個(gè)校驗(yàn)位可與每一個(gè)字 節(jié)或一組字節(jié)一起被傳遞。該樣的校驗(yàn)位由機(jī)器自動(dòng)生成且不能被程序直接控制。存儲(chǔ)容 量W字節(jié)的數(shù)量來(lái)表示。當(dāng)存儲(chǔ)器操作數(shù)字段的長(zhǎng)度由指令的操作碼暗示時(shí),字段被稱為 具有固定長(zhǎng)度,其可W是一個(gè)、兩個(gè)、四個(gè)、八個(gè)或十六個(gè)字節(jié)??蔀槟承┲噶畎凳靖蟮淖?段。當(dāng)存儲(chǔ)器操作數(shù)字段的長(zhǎng)度沒(méi)有被暗示,而是被顯式地表示時(shí),該字段被稱為具有可變 長(zhǎng)度。可變長(zhǎng)度的操作數(shù)可W-個(gè)字節(jié)的增量(或者對(duì)于一些指令,W兩個(gè)字節(jié)倍數(shù)或其 他倍數(shù))在長(zhǎng)度上可變。當(dāng)信息被放在存儲(chǔ)器中時(shí),僅替換被包括在指定的字段中的那些 字節(jié)位置的內(nèi)容,即使到存儲(chǔ)器的物理路徑的寬度可能大于正被存儲(chǔ)的字段的長(zhǎng)度。
[0241] 某些信息單元位于存儲(chǔ)器中的整數(shù)界限上。對(duì)于信息單元,當(dāng)其存儲(chǔ)器地址是W字節(jié)表示的單元長(zhǎng)度的倍數(shù)時(shí),界限被稱為是整數(shù)的。特定的名稱被給予整數(shù)界限上的2、 4、8和16字節(jié)的字段。半字是兩字節(jié)邊界上的一組兩個(gè)連續(xù)的字節(jié),且是指令的基本構(gòu)件。 字是四字節(jié)邊界上的一組四個(gè)連續(xù)的字節(jié)。雙字是八字節(jié)邊界上一組八個(gè)連續(xù)的字節(jié)。四 倍長(zhǎng)字(quadword)是16字節(jié)邊界上的一組16個(gè)連續(xù)的字節(jié)。當(dāng)存儲(chǔ)器地址指定半字、字、 雙字和四倍長(zhǎng)字時(shí),地址的二進(jìn)制表示分別包括一個(gè)、兩個(gè)、=個(gè)或四個(gè)最右邊的零位。指 令將位于二字節(jié)整數(shù)邊界上。大多數(shù)指令的存儲(chǔ)器操作數(shù)不具有界限對(duì)準(zhǔn)要求。
[0242] 在為指令和數(shù)據(jù)操作數(shù)實(shí)現(xiàn)單獨(dú)的高速緩存的設(shè)備上,如果程序在高速緩存線中 存儲(chǔ)且指令被隨后從該高速緩存線獲取,可經(jīng)歷顯著的延遲,不管該存儲(chǔ)是否改變隨后被 獲取的指令。
[0243] 在一個(gè)實(shí)施例中,本發(fā)明可被軟件(有時(shí)候被稱為許可的內(nèi)部代碼、固件、微代 碼、毫代碼、微微代碼(PiCO-COde)等,其任何一個(gè)都將符合一個(gè)或多個(gè)方面)實(shí)施。參考 圖11,體現(xiàn)一個(gè)或多個(gè)方面的軟件程序代碼可典型地由主系統(tǒng)5000的處理器5001從長(zhǎng)期 存儲(chǔ)介質(zhì)設(shè)備5011(諸如CD-ROM驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)或硬盤驅(qū)動(dòng)器)訪問(wèn)。軟件程序代碼可 體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟磁盤、硬盤驅(qū)動(dòng)或CD-ROM)中的 任何一個(gè)上。代碼可在該樣的介質(zhì)上被分發(fā),或可從一個(gè)計(jì)算機(jī)系統(tǒng)的計(jì)算機(jī)存儲(chǔ)器5002 或存儲(chǔ)設(shè)備通過(guò)網(wǎng)絡(luò)5010被分發(fā)給其他計(jì)算機(jī)系統(tǒng)的用戶,W由該樣的其他系統(tǒng)的用戶 使用。
[0244] 軟件程序代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個(gè)或多個(gè)應(yīng)用程序的功 能和交互。程序代碼通??蓮拇鎯?chǔ)介質(zhì)設(shè)備5011調(diào)頁(yè)到相對(duì)更高速的計(jì)算機(jī)存儲(chǔ)器5002, 在此它對(duì)于處理器5001是可用的。用于在存儲(chǔ)器中、物理介質(zhì)上體現(xiàn)軟件程序代碼和/或 經(jīng)由網(wǎng)絡(luò)分發(fā)軟件代碼的技術(shù)和方法是熟知的,且不會(huì)在此被進(jìn)一步討論。當(dāng)程序代碼被 創(chuàng)建并存儲(chǔ)在有形介質(zhì)(包括但不限于電子存儲(chǔ)模塊(RAM)、閃存、光盤(CD)、DVD、磁帶等) 上時(shí),其經(jīng)常被稱為"計(jì)算機(jī)程序產(chǎn)品"。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可由優(yōu)選地位于計(jì)算 機(jī)系統(tǒng)中的處理電路讀取W由處理電路執(zhí)
[0245] 圖12示出了可在其中實(shí)施一個(gè)或多個(gè)方面的代表性工作站或服務(wù)器硬件系統(tǒng)。 圖12的系統(tǒng)5020包括代表性基本計(jì)算機(jī)系統(tǒng)化asecomputersystem) 5021,諸如個(gè)人計(jì) 算機(jī)、工作站或服務(wù)器,包括可選的外圍設(shè)備。根據(jù)已知技術(shù),基本計(jì)算機(jī)系統(tǒng)5021包括一 個(gè)或多個(gè)處理器5026W及被用于連接并使能處理器5026和系統(tǒng)5021的其他組件之間的 通信的總線。總線將處理器5026連接到存儲(chǔ)器5025W及可包括例如硬盤驅(qū)動(dòng)器(例如, 包括磁介質(zhì)、CD、DVD和閃存中的任何一個(gè))或磁帶驅(qū)動(dòng)器的長(zhǎng)期存儲(chǔ)器5027。系統(tǒng)5021 也可包括用戶接口適配器,其經(jīng)由總線將微處理器5026連接到一個(gè)或多個(gè)接口設(shè)備,諸如 鍵盤5024、鼠標(biāo)5023、打印機(jī)/掃描儀5030和/或其他接口設(shè)備,其可W是任何用戶接口 設(shè)備,諸如觸摸敏感屏、數(shù)字化輸入墊(digitizedentrypad)等。總線也可經(jīng)由顯示適配 器將諸如LCD屏幕或監(jiān)視器的顯示設(shè)備5022連接到微處理器5026。
[0246] 系統(tǒng)5021可通過(guò)能與網(wǎng)絡(luò)5029通信5028的網(wǎng)絡(luò)適配器與其他計(jì)算機(jī)或計(jì)算機(jī) 網(wǎng)絡(luò)通信。示例性網(wǎng)絡(luò)適配器是通信通道、令牌環(huán)網(wǎng)、W太網(wǎng)或調(diào)制解調(diào)器?;蛘撸到y(tǒng)5021 可使用諸如CDPD(蜂窩數(shù)字分組數(shù)據(jù))卡的無(wú)線接口來(lái)通信。系統(tǒng)5021可與局域網(wǎng)(LAN) 或廣域網(wǎng)(WAN)中的該樣的其他計(jì)算機(jī)關(guān)聯(lián),或系統(tǒng)5021可W是與另一個(gè)計(jì)算機(jī)的客戶機(jī) /服務(wù)器安排中的客戶機(jī)等。所有該些配置W及合適的通信硬件和軟件在本領(lǐng)域中是已知 的。
[0247] 圖13示出了其中可實(shí)施一個(gè)或多個(gè)方面的數(shù)據(jù)處理網(wǎng)絡(luò)5040。數(shù)據(jù)處理網(wǎng) 絡(luò)5040可包括多個(gè)單獨(dú)的網(wǎng)絡(luò),諸如無(wú)線網(wǎng)和有線網(wǎng),其每個(gè)可包括多個(gè)單獨(dú)的工作站 5041、5042、5043、5044。此外,本領(lǐng)域技術(shù)人員將理解,可包括一個(gè)或多個(gè)LAN,其中LAN可 包括多個(gè)禪合到主處理機(jī)的智能工作站。
[0248] 仍然參考圖13,網(wǎng)絡(luò)也可包括大型計(jì)算機(jī)或服務(wù)器,諸如網(wǎng)關(guān)計(jì)算機(jī)(客戶機(jī)服 務(wù)器5046)或應(yīng)用服務(wù)器(遠(yuǎn)程服務(wù)器5048,其可訪問(wèn)數(shù)據(jù)儲(chǔ)存庫(kù),且也可直接從工作站 5045被訪問(wèn))。網(wǎng)關(guān)計(jì)算機(jī)5046用作到每個(gè)單獨(dú)網(wǎng)絡(luò)的進(jìn)入點(diǎn)。當(dāng)將一個(gè)聯(lián)網(wǎng)協(xié)議連接 到另一個(gè)時(shí),需要網(wǎng)關(guān)。網(wǎng)關(guān)5046可通過(guò)通信鏈路優(yōu)選地禪合到另一個(gè)網(wǎng)絡(luò)(例如因特 網(wǎng)5047)。也可使用通信鏈路將網(wǎng)關(guān)5046直接禪合到一個(gè)或多個(gè)工作站5041、5042、5043、 5044??蒞利用可從國(guó)際商業(yè)機(jī)器公司獲得的IBMeServerTMSystemZ服務(wù)器來(lái)實(shí)現(xiàn)網(wǎng)關(guān) 計(jì)算機(jī)。
[0249] 同時(shí)參考圖12和13,可體現(xiàn)本發(fā)明的一個(gè)或多個(gè)方面的軟件編程代碼可被系統(tǒng) 5020的處理器5026從諸如CD-ROM驅(qū)動(dòng)器或硬盤驅(qū)動(dòng)器的長(zhǎng)期存儲(chǔ)介質(zhì)5027訪問(wèn)。軟件 編程代碼可被體現(xiàn)在與數(shù)據(jù)處理系統(tǒng)一起使用的各種已知介質(zhì)(諸如軟盤、硬盤驅(qū)動(dòng)器或 CD-ROM)中的任一個(gè)上。代碼可在該樣的介質(zhì)上被分發(fā),或從一個(gè)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器或存 儲(chǔ)設(shè)備通過(guò)網(wǎng)絡(luò)被分發(fā)到其他計(jì)算機(jī)系統(tǒng)的用戶5050、5051,W供該樣的其他系統(tǒng)的用戶 使用。
[0巧0] 或者,編程代碼可體現(xiàn)在存儲(chǔ)器5025中,且由處理器5026使用處理器總線訪問(wèn)。 該樣的編程代碼包括操作系統(tǒng),其控制各種計(jì)算機(jī)組件和一個(gè)或多個(gè)應(yīng)用程序5032的功 能和交互。程序代碼通常從存儲(chǔ)介質(zhì)5027調(diào)頁(yè)到高速存儲(chǔ)器5025,在此它可用于由處理器 5026進(jìn)行處理。用于在存儲(chǔ)器中、在物理介質(zhì)上體現(xiàn)軟件編程代碼和/或經(jīng)由網(wǎng)絡(luò)分發(fā)軟 件代碼的技術(shù)和方法是公知的,不會(huì)在此進(jìn)一步討論。程序代碼,當(dāng)其被創(chuàng)建且在有形介質(zhì) (包括但不限于電子存儲(chǔ)模塊(RAM)、閃存、光盤(CD)、DVD、磁帶等)上存儲(chǔ)時(shí),通常被稱為 "計(jì)算機(jī)程序產(chǎn)品"。計(jì)算機(jī)程序產(chǎn)品介質(zhì)典型地可W被優(yōu)選地位于計(jì)算機(jī)系統(tǒng)中的處理電 路讀取W由處理電路執(zhí)行。
[0巧1] 最容易被處理器使用的高速緩存(通常比處理器的其他高速緩存更快更小)是最 低級(jí)(LI或級(jí)別1)高速緩存,且主存儲(chǔ)(主存儲(chǔ)器)是最高級(jí)高速緩存(如果有S個(gè)級(jí)別 的話是L3)。最低級(jí)高速緩存經(jīng)常被分為保持將被執(zhí)行的機(jī)器指令的指令緩存(I-高速緩 存),和保持?jǐn)?shù)據(jù)操作數(shù)的數(shù)據(jù)高速緩存(D-高速緩存)。
[0巧2] 參考圖14,為處理器5026示出了示例性處理器實(shí)施例。典型地,使用一個(gè)或多個(gè) 級(jí)別的高速緩存5053來(lái)緩沖存儲(chǔ)器塊,W便改善處理器性能。高速緩存5053是高速緩沖 器,其保持很可能被使用的存儲(chǔ)器數(shù)據(jù)的高速緩存線。典型的高速緩存線是64、128或256 字節(jié)的存儲(chǔ)器數(shù)據(jù)。通常使用單獨(dú)的高速緩存W用于緩存指令而不是緩存數(shù)據(jù)。高速緩存 一致性(存儲(chǔ)器和高速緩存中的線的副本的同步)通常由本領(lǐng)域中熟知的各種"窺探"算 法提供。處理器系統(tǒng)的主存儲(chǔ)器5025通常被稱為高速緩存。在具有4個(gè)級(jí)別的高速緩存 5053的處理器系統(tǒng)中,主存儲(chǔ)器5025有時(shí)候被稱為級(jí)別5 (L5)高速緩存,因?yàn)樗湫偷馗?快,且僅保持可被計(jì)算機(jī)系統(tǒng)使用的非易失性存儲(chǔ)器(DASD、磁帶等)的一部分。主存儲(chǔ)器 5025可"高速緩存"由操作系統(tǒng)向主存儲(chǔ)器5025調(diào)頁(yè)入或從其調(diào)頁(yè)出的數(shù)據(jù)頁(yè)。
[0巧3] 程序計(jì)數(shù)器(指令計(jì)數(shù)器)5061保持跟蹤將被執(zhí)行的當(dāng)前指令的地址。Z/Architec化re處理器中的程序計(jì)數(shù)器是64位的,且可被截短為31或24位W支持先前的 尋址界限。程序計(jì)數(shù)器典型地體現(xiàn)在計(jì)算機(jī)的PSW(程序狀態(tài)字)中,該樣它可在上下文轉(zhuǎn) 換中持續(xù)。因此,具有程序計(jì)數(shù)器值的進(jìn)行中的程序可被例如操作系統(tǒng)中斷(從程序環(huán)境 到操作系統(tǒng)環(huán)境的上下文轉(zhuǎn)換)。當(dāng)程序不活動(dòng)時(shí),程序的PSW維持程序計(jì)數(shù)器值,且在操 作系統(tǒng)執(zhí)行時(shí),操作系統(tǒng)的(PSW中的)程序計(jì)數(shù)器被使用。典型地,程序計(jì)數(shù)器W等于當(dāng) 前指令的字節(jié)數(shù)的量增量。RISC(精簡(jiǎn)指令集計(jì)算)指令典型地是固定長(zhǎng)度,而CISC(復(fù) 雜指令集計(jì)算)指令典型地是可變長(zhǎng)度。IBMz/Architec化re的指令是具有長(zhǎng)度為2、4或 6字節(jié)的CISC指令。程序計(jì)數(shù)器5061被例如上下文轉(zhuǎn)換操作或分支指令的分支采取操作 修改。在上下文轉(zhuǎn)換操作中,當(dāng)前的程序計(jì)數(shù)器值與關(guān)于正被執(zhí)行的程序的其他狀態(tài)信息 (諸如條件碼)一起被保存在程序狀態(tài)字中,且新程序計(jì)數(shù)器值被載入并指向?qū)⒈粓?zhí)行的 新程序模塊的指令。執(zhí)行分支采取操作,W通過(guò)將分支指令的結(jié)果加載到程序計(jì)數(shù)器5061 中而允許程序進(jìn)行決定或在程序內(nèi)循環(huán)。
[0巧4] 典型地,使用指令獲取單元5055代表處理器5026獲取指令。獲取單元可獲取"下 一序列指令"、分支采取指令的目標(biāo)指令或上下文轉(zhuǎn)換后的程序的第一指令。現(xiàn)在的指令獲 取單元通常使用預(yù)取技術(shù)基于被預(yù)取的指令將被使用的可能性來(lái)推測(cè)性地預(yù)取指令。例 如,獲取單元可獲取16字節(jié)的指令,其包括下一順序指令W及進(jìn)一步的順序指令的額外字 節(jié)。
[0巧5] 獲取的指令隨后被處理器5026執(zhí)行。在一實(shí)施例中,獲取的指令被傳遞給獲取 單元的分派單元5056。分派單元解碼指令并將關(guān)于解碼的指令的信息轉(zhuǎn)送給合適的單元 5057、5058、5060。執(zhí)行單元5057將典型地從指令獲取單元5055接收關(guān)于解碼的算術(shù)指令 的信息,并將根據(jù)指令的操作碼對(duì)操作數(shù)執(zhí)行算術(shù)操作。優(yōu)選地從存儲(chǔ)器5025、架構(gòu)寄存器 5059或從正被執(zhí)行的指令的立即字段(immediatefield)向執(zhí)行單元5057提供操作數(shù)。 執(zhí)行的結(jié)果,當(dāng)被存儲(chǔ)時(shí),被存儲(chǔ)在存儲(chǔ)器5025、寄存器5059或其他機(jī)器硬件(諸如控制寄 存器、PSW寄存器等)中。
[0巧6] 處理器5026典型地具有一個(gè)或多個(gè)用于執(zhí)行指令的功能的單元5057、5058、 5060。參考圖15A,執(zhí)行單元5057可通過(guò)接口邏輯5071與架構(gòu)通用寄存器5059、解碼/分 派單元5056、加載存儲(chǔ)單元5060和其他5065處理器單元通信。執(zhí)行單元5057可使用幾個(gè) 寄存器電路5067、5068、5069來(lái)保持算術(shù)邏輯單元(ALU)5066將操作的信息。ALU執(zhí)行諸 如加減乘除的算術(shù)操作,W及諸如和、或W及異或狂OR)、旋轉(zhuǎn)和移位的邏輯運(yùn)算。優(yōu)選地, ALU支持依賴于設(shè)計(jì)的專口操作。其他電路可提供其他架構(gòu)工具5072,例如包括條件碼和 恢復(fù)支持邏輯。典型地,ALU操作的結(jié)果被保持在輸出寄存電路5070中,該輸出寄存器電 路可將結(jié)果轉(zhuǎn)送到多種其他處理功能。有許多處理器單元安排,本說(shuō)明書僅旨在提供對(duì)一 個(gè)實(shí)施例的代表性理解。
[0257]例如,ADD指令將在具有算術(shù)和邏輯功能的執(zhí)行單元5057中被執(zhí)行,而例如浮點(diǎn) 指令將在具有專用浮點(diǎn)能力的浮點(diǎn)執(zhí)行中被執(zhí)行。優(yōu)選地,執(zhí)行單元通過(guò)在操作數(shù)上執(zhí)行 操作碼定義的功能在由指令標(biāo)識(shí)的操作數(shù)上操作。例如,ADD指令可被執(zhí)行單元5057在由 指令的寄存器字段標(biāo)識(shí)的兩個(gè)寄存器5059中發(fā)現(xiàn)的操作數(shù)上執(zhí)行。
[025引執(zhí)行單元5057對(duì)兩個(gè)操作數(shù)執(zhí)行算術(shù)加法,并在第=操作數(shù)中存儲(chǔ)結(jié)果,其中第 =操作數(shù)可W是第=寄存器或兩個(gè)源寄存器中的一個(gè)。執(zhí)行單元優(yōu)選地利用算術(shù)邏輯單 元(ALU) 5066,其能執(zhí)行多種邏輯功能,諸如移位、旋轉(zhuǎn)、和、或、異或,W及多種代數(shù)函數(shù),包 括加減乘除中的任何一個(gè)。有些ALU5066被設(shè)計(jì)為用于標(biāo)量運(yùn)算,有些用于浮點(diǎn)。根據(jù)架 構(gòu),數(shù)據(jù)可W是大端化igendien)(其中最低有效字節(jié)位于最高字節(jié)地址)或小端(little endien)(其中最低有效字節(jié)位于最低字節(jié)地址)。IBMz/Architec化re是大端。根據(jù)架 構(gòu),帶符號(hào)字段可W是符號(hào)和幅度、I的補(bǔ)碼或2的補(bǔ)碼。2的補(bǔ)碼數(shù)是有利的,其在于ALU不需要設(shè)計(jì)減法能力,因?yàn)椴还苁?的補(bǔ)碼中的負(fù)值還是正值,都僅要求ALU中的加法。 數(shù)字通常W速記描述,其中12位的字段定義了 4096字節(jié)塊的地址,且通常被描述為例如 4肺八6 (千字節(jié))塊。
[0巧9] 參考圖15B,用于執(zhí)行分支指令的分支指令信息典型地被發(fā)送到分支單元5058, 該分支單元經(jīng)常使用諸如分支歷史表5082的分支預(yù)測(cè)算法,在其他條件運(yùn)算完成前預(yù)測(cè) 分支結(jié)果。在條件運(yùn)算完成前,當(dāng)前分支指令的目標(biāo)將被獲取并推測(cè)性地執(zhí)行。當(dāng)條件運(yùn)算 完成時(shí),基于條件運(yùn)算的條件和推測(cè)的結(jié)果,推測(cè)性執(zhí)行的分支指令或被完成或被丟棄。典 型的分支指令可測(cè)試條件碼,W及如果條件碼滿足分支指令的分支要求,分支到目標(biāo)地址, 分支地址可基于若干數(shù)被計(jì)算,所述數(shù)包括例如在寄存器字段或是指令的立即字段中找到 的數(shù)。分支單元5058可利用具有多個(gè)輸入寄存器電路5075、5076、5077和一個(gè)輸出寄存器 電路5080的ALU5074。分支單元5058可與例如通用寄存器5059、解碼分派單元5056或 其他電路5073通信。
[0%0] -組指令的執(zhí)行可由于多個(gè)原因中斷,所述原因包括例如由操作系統(tǒng)發(fā)起的上下 文轉(zhuǎn)換、引起上下文轉(zhuǎn)換的程序異?;蝈e(cuò)誤、引起上下文轉(zhuǎn)換的I/O中斷信號(hào)或多個(gè)程序 (在多線程環(huán)境中)的多線程活動(dòng)。優(yōu)選地,上下文轉(zhuǎn)換動(dòng)作保存關(guān)于當(dāng)前執(zhí)行的程序的狀 態(tài)信息,且隨后加載關(guān)于正被調(diào)用的另一個(gè)程序的狀態(tài)信息。狀態(tài)信息可被存儲(chǔ)在例如硬 件寄存器或存儲(chǔ)器中。狀態(tài)信息優(yōu)選地包括指向?qū)⒈粓?zhí)行的下一個(gè)指令的程序計(jì)數(shù)器值、 條件碼、存儲(chǔ)器轉(zhuǎn)換信息和架構(gòu)寄存器內(nèi)容。上下文轉(zhuǎn)換活動(dòng)可被硬件電路、應(yīng)用程序、操 作系統(tǒng)程序或固件代碼(微代碼、微微代碼或許可內(nèi)部碼(LIC))單獨(dú)地或其組合實(shí)現(xiàn)。 [0%1] 處理器根據(jù)指令定義的方法而訪問(wèn)操作數(shù)。指令可使用指令的一部分的值提供立 即操作數(shù),可提供一個(gè)或多個(gè)寄存器字段,其顯式地指向通用寄存器或?qū)S眉拇嫫鳎ɡ?浮點(diǎn)寄存器)。指令可利用由操作碼字段確定的暗示的寄存器作為操作數(shù)。指令可利用用 于操作數(shù)的存儲(chǔ)器位置??捎杉拇嫫?、立即字段或寄存器和立即字段的組合提供操作數(shù)的 存儲(chǔ)器位置,如由z/Architec化re長(zhǎng)位移工具(facility)所例示的,其中該指令定義了基 寄存器、索引寄存器和立即字段(位移字段),它們加到一起,W提供例如存儲(chǔ)器中的操作 數(shù)的地址。除非另外指明,此處的位置典型地意味著主存儲(chǔ)器(主存儲(chǔ)設(shè)備)中的位置。 [0%2] 參考圖15C,處理器使用加載/存儲(chǔ)單元5060訪問(wèn)存儲(chǔ)器。加載/存儲(chǔ)單元5060 可W通過(guò)獲取存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址并將操作數(shù)加載到寄存器5059或其他存 儲(chǔ)器5053位置中,來(lái)執(zhí)行加載操作,或可W通過(guò)獲取存儲(chǔ)器5053中的目標(biāo)操作數(shù)的地址并 將從寄存器5059或另一個(gè)存儲(chǔ)器5053位置獲得的數(shù)據(jù)存儲(chǔ)在存儲(chǔ)器5053中的目標(biāo)操作 數(shù)位置,來(lái)執(zhí)行存儲(chǔ)操作。加載/存儲(chǔ)單元5060可W是推測(cè)性的,且可WW相對(duì)于指令順 序來(lái)說(shuō)無(wú)序的順序訪問(wèn)存儲(chǔ)器,但是加載/存儲(chǔ)單元5060將向程序維持指令按順序執(zhí)行的 外觀。加載/存儲(chǔ)單元5060可與通用寄存器5059、解密/分派單元5056、高速緩存/存儲(chǔ) 器接口 5053或其他元件5083通信,且包括各種寄存器電路、ALU5085和控制邏輯5090W 計(jì)算存儲(chǔ)器地址并提供流水線順序W使操作保持次序。一些操作可不按順序,但加載/存 儲(chǔ)單元提供功能W使不按順序執(zhí)行的操作對(duì)程序看起來(lái)如已按順序執(zhí)行一樣,如本領(lǐng)域所 熟知的。
[0%3] 優(yōu)選地,應(yīng)用程序"看到