。處理也在跟隨者的CSR中對IPC_PEER_C0MP_ACTI0NS_RST_PHASE2 位指示置位以向跟隨者通知領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段2動作。此后,該過程過渡到復(fù)位階 段2的等待狀態(tài)(320)。
[0051] 往回參見處理框314,如果不存在跟隨者已經(jīng)完成復(fù)位階段1動作的指示,則領(lǐng)導(dǎo) 者中的處理邏輯檢查該跟隨者是否已經(jīng)完成復(fù)位階段2動作(處理框316)。在一個實施例 中,通過檢查領(lǐng)導(dǎo)者的CSR中的IPC_PEER_C0MP_ACTI0NS_RST_PHASE2位指示來這樣做。如 果由跟隨者對該位進行了置位,則在一個實施例中,領(lǐng)導(dǎo)者在該領(lǐng)導(dǎo)者自身的CSR中清除 IPC_PEER_C0MP_ACTI0NS_RST_PHASE2 和 IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE 位,并且在跟隨者的CSR中對IPC_PEER_C0MP_ACTI0NS_RST_PHASE1位指示置位,以便向跟 隨者指示該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段1動作(處理框317),并且隨后過渡到復(fù)位階段1的 等待狀態(tài)(310)。
[0052] 如果在處理框316中確定了跟隨者還未完成復(fù)位階段2動作,則該過程過渡到處 理框318,在處理框318中,處理邏輯測試跟隨者是否已經(jīng)請求了領(lǐng)導(dǎo)者的復(fù)位階段狀態(tài)。 在一個實施例中,領(lǐng)導(dǎo)者從該領(lǐng)導(dǎo)者的CSR中檢查IPC_PEER_QUERIED_IP_COMP_ACTIONS_ RST_PHASE位指示以確定跟隨者是否已經(jīng)請求了該領(lǐng)導(dǎo)者的復(fù)位階段狀態(tài)。如果跟隨者 已經(jīng)請求,則處理邏輯清除該請求,并且向跟隨者通知該跟隨者已經(jīng)完成復(fù)位階段1動作。 在一個實施例中,通過在領(lǐng)導(dǎo)者的CSR中清除IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_ PHASE位指示來清除該請求。在一個實施例中,領(lǐng)導(dǎo)者通過在跟隨者的CSR寄存器中對IPC_ PEER_C0MP_ACTI0NS_RST_PHASE1位指示置位來向跟隨者通知領(lǐng)導(dǎo)者的復(fù)位階段狀態(tài)。一旦 完成了此,則該過程過渡到復(fù)位階段1的等待狀態(tài)(310)。
[0053] 在復(fù)位階段2的等待狀態(tài)(320)處,處理邏輯等待指示CSR寄存器中的某個位已 被置位且未被處理的CSR中斷發(fā)生。當(dāng)CSR中斷發(fā)生時,該過程過渡到處理框321,在處理 框321中,處理邏輯清除該CSR中斷,并且將CSR值復(fù)制到本地變量存儲設(shè)備以進行分析。
[0054] 處理邏輯測試跟隨者是否已經(jīng)指示該跟隨者已經(jīng)完成復(fù)位階段1動作和復(fù)位階 段 2 動作兩者(處理框 322)。通過檢查 IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 和 IPC_PEER_ C0MP_ACTI0NS_RST_PHASE2位指示兩者是否都被置位來這樣做。如果這兩者都被置位,則處 理過渡到處理框323,在處理框323中,處理邏輯清除兩個位指示IPC_PEER_C0MP_ACTI0NS_ RST_PHASE1和IPC_PEER_C0MP_ACTI0NS_RST_PHASE2,并且向跟隨者查詢以確定該跟隨者 當(dāng)前處于什么狀態(tài)。在一個實施例中,通過領(lǐng)導(dǎo)者在跟隨者的CSR中對IPC_PEER_QUERIED_ IP_C0MP_ACTI0NS_RST_PHASE位指示置位來這樣做。在這樣做了之后,該過程過渡到處理框 328〇
[0055] 在處理框328處,處理邏輯測試跟隨者是否向領(lǐng)導(dǎo)者查詢該領(lǐng)導(dǎo)者當(dāng)前處于什么 復(fù)位階段。在一個實施例中,通過領(lǐng)導(dǎo)者在該領(lǐng)導(dǎo)者的CSR中檢查IPC_PEER_QUERIED_IP_ COMP_ACTIONS_RST_PHASE位指示來這樣做。如果已查詢,則處理邏輯清除該IPC_PEER_ QUERIED_IP_COMP_ACTIONS_RST_PHASE位指示,并且向跟隨者通知該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位 階段2動作(處理框329)。在一個實施例中,領(lǐng)導(dǎo)者通過向?qū)?yīng)于跟隨者中的IPC_PEER_ QUERIED_IP_C0MP_ACTI0NS_RST_PHASE2位指示的CSR位置位來向該跟隨者通知該領(lǐng)導(dǎo)者 已經(jīng)完成復(fù)位階段2動作。此后,該過程過渡到復(fù)位階段2的等待狀態(tài)(320)。如果領(lǐng)導(dǎo)者 沒有被查詢關(guān)于該領(lǐng)導(dǎo)者的當(dāng)前的復(fù)位階段狀態(tài),則該過程返回到復(fù)位階段2的等待狀態(tài) (320)〇
[0056] 往回參見處理框 322,如果 IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 和 IPC_PEER_ C0MP_ACTI0NS_RST_PHASE2位指示中的任一個都沒有被置位,則該過程過渡到處理框324, 在處理框324中,處理邏輯測試跟隨者是否處于復(fù)位階段1且需要過渡到復(fù)位階段2。在 一個實施例中,通過領(lǐng)導(dǎo)者檢查跟隨者在該領(lǐng)導(dǎo)者的CSR中置位的、指示該跟隨者已經(jīng)完 成復(fù)位階段1動作的IPC_PEER_C0MP_ACTI0NS_RST_PHASE1位指示來這樣做。如果是這樣, 則該過程過渡到處理框325,在處理框325中,領(lǐng)導(dǎo)者中的處理邏輯在該領(lǐng)導(dǎo)者的CSR中清 除由跟隨者置位的 IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 位指示以及 IPC_PEER_QUERIED_ IP_C0MP_ACTI0NS_RST_PHASE位指示,并且向該跟隨者指示該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段2 動作。在一個實施例中,通過在跟隨者的CSR中對IPC_PEER_C0MP_ACTI0NS_RST_PHASE2位 指示置位,領(lǐng)導(dǎo)者向該跟隨者指示該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段2動作。此后,該過程過渡到 復(fù)位階段2的等待狀態(tài)(320)。
[0057] 往回參見處理框324,如果跟隨者不處于復(fù)位階段1,則領(lǐng)導(dǎo)者中的處理邏輯檢查 該跟隨者是否已經(jīng)完成復(fù)位階段2動作(處理框326)。在一個實施例中,通過檢查IPC_ PEER_C0MP_ACTI0NS_RST_PHASE2位指示來這樣做。如果處理邏輯確定了跟隨者已經(jīng)完成 復(fù)位階段2動作,則處理邏輯清除該IPC_PEER_C0MP_ACTI0NS_RST_PHASE2位指示,并且過 渡到處理框340,在處理框340中,處理邏輯檢查該跟隨者是否已經(jīng)詢問了領(lǐng)導(dǎo)者處于哪一 個復(fù)位階段狀態(tài)。如果該跟隨者沒有詢問過領(lǐng)導(dǎo)者處于哪一個復(fù)位階段狀態(tài),則領(lǐng)導(dǎo)者移 動到操作階段(350)。如果跟隨者已經(jīng)請求過領(lǐng)導(dǎo)者的復(fù)位階段狀態(tài),則處理邏輯清除該 請求,并且向?qū)Φ仍O(shè)備通知該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段2動作(處理框341)。在一個實施 例中,通過領(lǐng)導(dǎo)者在跟隨者的 CSR 中清除 IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE 位指示來清除該請求。在一個實施例中,通過在跟隨者的CSR寄存器中對IPC_PEER_C0MP_ ACTI0NS_RST_PHASE2位指示置位,領(lǐng)導(dǎo)者向該跟隨者通知該領(lǐng)導(dǎo)者所處于的復(fù)位階段狀 態(tài)。此后,該過程過渡到操作階段的開始350。
[0058] 往回參見框326,如果處理邏輯確定了跟隨者沒有完成復(fù)位階段2動作,則該過程 過渡到處理框328,在處理框328中處,理邏輯檢查該跟隨者是否已經(jīng)詢問過領(lǐng)導(dǎo)者處于哪 一個復(fù)位階段狀態(tài)。如果沒有,則該過程過渡到復(fù)位階段2的等待狀態(tài)(320)。如果跟隨者 已經(jīng)詢問過,則該過程過渡到處理框329,在處理框329中,處理邏輯清除該請求,并且向?qū)?等設(shè)備通知該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段2動作(處理框329)。在一個實施例中,通過領(lǐng)導(dǎo)者 在跟隨者的CSR中清除IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位指示來清除該 請求。在一個實施例中,領(lǐng)導(dǎo)者通過在跟隨者的CSR寄存器中對IPC_PEER_C0MP_ACTI0NS_ RST_PHASE2位指示置位來向該跟隨者通知該領(lǐng)導(dǎo)者所處于的復(fù)位階段狀態(tài)。此后,該過程 過渡到復(fù)位階段2的開始(320)。
[0059] 圖4是由跟隨者執(zhí)行的過程。參見圖4,由該跟隨者執(zhí)行的該過程從初始化(401) 處開始。在初始化(401)期間,跟隨者的處理邏輯禁用來自兩個門鈴的中斷,并且禁用來自 該跟隨者的CSR的中斷(處理框402)。在一個實施例中,來自CSR的中斷是來自硬件端點 邏輯的、向核的處理邏輯通知已經(jīng)在跟隨者的CSR中對不同的位進行了置位的中斷。
[0060] 此后,跟隨者的處理邏輯清除對應(yīng)于內(nèi)部狀態(tài)的CSR位(例如,領(lǐng)導(dǎo)者是否已經(jīng)完 成復(fù)位階段1動作的指示、領(lǐng)導(dǎo)者是否已經(jīng)完成復(fù)位階段2動作的指示、其他CSR位),清 除跟隨者的存儲器中的所有固件(FW)先進先出緩沖器(FIFO)中的傳出消息,消耗或丟棄 FIFO中的所有傳入消息,用1清除指示領(lǐng)導(dǎo)者向跟隨者查詢以確定該跟隨者當(dāng)前駐留在哪 一個復(fù)位階段狀態(tài)的CSR位指示,并且對領(lǐng)導(dǎo)者中指示跟隨者已經(jīng)完成復(fù)位階段1動作的 指示進行置位(處理框403)。在一個實施例中,在圖4中將該指示稱為IPC_PEER_C0MP_ ACTI0NS_RST_PHASE1 位指示。
[0061] 隨后,該過程過渡到處理框404,在處理框404中,處理邏輯測試跟隨者是否正在 進入復(fù)位或斷電。如果跟隨者是這樣,則該過程結(jié)束。如果不是,則該過程過渡到處理框 405,在處理框中,處理邏輯允許來自該跟隨者的CSR的中斷。在允許了 CSR中斷之后,該過 程過渡到復(fù)位階段1等待狀態(tài)(410)。
[0062] 在復(fù)位階段1 (410)處,處理邏輯等待CSR指示CSR寄存器中的某個位已被置位且 未被處理的中斷發(fā)生。當(dāng)CSR中斷發(fā)生時,該過程過渡到處理框411,在處理框411中,處理 邏輯清除該CSR中斷,并且將CSR值復(fù)制到本地變量存儲設(shè)備以進行分析。隨后,跟隨者中 的處理邏輯測試領(lǐng)導(dǎo)者是否已經(jīng)指示了該領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段1動作和復(fù)位階段2動 作兩者(處理框412)。通過檢查在跟隨者的CSR中IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 和IPC_PEER_C0MP_ACTI0NS_RST_PHASE2位指示是否被置位來這樣做。如果這兩者被置位, 則該過程過渡到處理框413,在處理框413中,處理邏輯清除IPC_PEER_C0MP_ACTI0NS_RST_ PHASE1和IPC_PEER_C0MP_ACTI0NS_RST_PHASE2位指示兩者,并且向領(lǐng)導(dǎo)者查詢該領(lǐng)導(dǎo)者 駐留在的復(fù)位階段狀態(tài)。為了查詢領(lǐng)導(dǎo)者的復(fù)位階段狀態(tài),跟隨者中的處理邏輯對領(lǐng)導(dǎo)者 中的指示置位。在一個實施例中,通過在領(lǐng)導(dǎo)者的CSR中對IPC_PEER_QUERIED_IP_COMP_ ACTIONS_RST_PHASE位指示置位來這樣做。在這樣做了之后,該過程過渡到處理框418。
[0063] 在處理框418處,跟隨者中的處理邏輯判斷領(lǐng)導(dǎo)者是否向該跟隨者查詢了該跟 隨者的復(fù)位階段狀態(tài)。在一個實施例中,通過跟隨者在該跟隨者的CSR中檢查IPC_PEER_ QUERIED_IP_COMP_ACTIONS_RST_PHASE位指示來這樣做。如果是這樣,則處理邏輯清除該跟 隨者的IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位指示,并且向領(lǐng)導(dǎo)者通知該跟 隨者的當(dāng)前復(fù)位階段(其是復(fù)位階段1)(處理框419)。在一個實施例中,通過向?qū)?yīng)于領(lǐng) 導(dǎo)者的CSR中的IPC_PEER_C0MP_ACTI0NS_RST_PHASE1位指示的CSR位置位,跟隨者向領(lǐng)導(dǎo) 者通知該跟隨者的復(fù)位階段狀態(tài)。此后,該過程過渡到復(fù)位階段1的等待狀態(tài)(410)。往回 參見處理框418,如果領(lǐng)導(dǎo)者沒有向跟隨者查詢過該跟隨者的當(dāng)前復(fù)位階段狀態(tài),則該過程 過渡到復(fù)位階段1的等待狀態(tài)(410)。
[0064] 往回參見處理框 412,如果 IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 和 IPC_PEER_ C0MP_ACTI0NS_RST_PHASE2指示中的任一個沒有被置位,則該過程過渡到處理框414,在處 理框414中,處理邏輯測試領(lǐng)導(dǎo)者是否已經(jīng)完成復(fù)位階段1動作。在一個實施例中,通過跟 隨者檢查領(lǐng)導(dǎo)者在該跟隨者的CSR中置位的、指示領(lǐng)導(dǎo)者已經(jīng)完成復(fù)位階段1動作的IPC_ PEER_C0MP_ACTI0NS_RST_PHASE1位指示來這樣做。如果跟隨者確定了領(lǐng)導(dǎo)者已經(jīng)完成復(fù) 位階段1動作,則該過程過渡到處理框415,在處理框415中,跟隨者中的處理邏輯在該跟 隨者的 CSR 中清除 IPC_PEER_C0MP_ACTI0NS_RST_PHASE1 和 IPC_PEER_QUERIED_IP_COMP_ ACTIONS_RST_PHASE位指示,并且向領(lǐng)導(dǎo)者指示該跟隨者已經(jīng)完成復(fù)位階段1動作。在一個 實施例中,通過在領(lǐng)導(dǎo)者的CSR中對IPC_PEER_C0MP_ACTI0NS_RST_PHASE1位指示置位,跟 隨者向領(lǐng)導(dǎo)者指示該跟隨者已經(jīng)完成復(fù)位階段1動作。此后,該過程過渡到復(fù)位階段1的 等待狀態(tài)(410)。
[0065] 往回參見處理框414,如果領(lǐng)導(dǎo)者不處于復(fù)位階段1,則跟隨者中的處理邏輯檢查 該領(lǐng)導(dǎo)者是否已經(jīng)完成復(fù)位階段2動作(處理框416)。在一個實施例中,通過跟隨者檢查由 領(lǐng)導(dǎo)者在該跟隨者的CSR中置位的IPC_PEER_C0MP_ACTI