TWI599893B - 用於唯寫處理器間的重置同步之方法及設備 - Google Patents

用於唯寫處理器間的重置同步之方法及設備 Download PDF

Info

Publication number
TWI599893B
TWI599893B TW104136856A TW104136856A TWI599893B TW I599893 B TWI599893 B TW I599893B TW 104136856 A TW104136856 A TW 104136856A TW 104136856 A TW104136856 A TW 104136856A TW I599893 B TWI599893 B TW I599893B
Authority
TW
Taiwan
Prior art keywords
peer
processing unit
reset
indication
synchronization
Prior art date
Application number
TW104136856A
Other languages
English (en)
Other versions
TW201633175A (zh
Inventor
麥可 伯格
啓慧 李
穆凱斯 卡塔利亞
Original Assignee
英特爾公司
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 英特爾公司 filed Critical 英特爾公司
Publication of TW201633175A publication Critical patent/TW201633175A/zh
Application granted granted Critical
Publication of TWI599893B publication Critical patent/TWI599893B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Multi Processors (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)

Description

用於唯寫處理器間的重置同步之方法及設備 發明領域
本發明之實施例係關於異質處理核心之間的通訊的領域;更特定而言,本發明之實施例係關於使用唯寫通訊彼此進行通訊的處理單元(例如,處理器核心、智慧財產(IP)核心等)之間的重置同步。
發明背景
處理器間通訊(IPC)常常用於在執行於不同處理器核心(例如,不同異質處理器核心)中的程序之間交換資料。此等程序可由執行於使用不同處理核心或執行緒之中央處理單元(CPU)或系統單晶片(SOC)上的程式產生。即使程序可單獨地執行,該等程序亦可能需要在彼此之間傳達資訊。
使用處理核心或單元之介面來執行IPC通訊,程序係根據通訊協定在處理核心或單元上執行。有時,通訊協定使得處理核心或單元使用同級間通訊進行通訊。用於IPC通訊之通訊協定常常包括讀取及寫入操作以促進資訊 交換。
問題在與另一同級者IPC通訊的同級者中之一者將被重置或停用時產生。舉例而言,當同級者斷電時,該同級者可能被停用。當此情況出現時,一個同級者難以知道另一同級者正重置或停用。在此狀況下,第一同級者可等待來自第二同級者之資訊,此情況可導致第一同級者進入不斷地等待來自第二同級者之回應的狀態,藉此導致第一同級者不掛斷或第一同級者之試探性逾時(在一些狀況下此情況可為錯誤的)。另外,此情況可帶來如下情況:第二同級者被重新初始化但丟失其上下文,且第一同級者在第二同級者處於不同狀態中(例如,第一同級者認為工作階段正在進行中而第二同級者對此失去概念)之錯誤假定下保持發送訊息。相同狀態失配亦可能在另一方向上發生。最後,由於訊息在許多狀況下並非不可部分完成的(例如,由一系列暫存器寫入組成),因此若第一同級者發送非不可部分完成訊息且第二同級者在中間經歷重置,則有可能:在第一同級者繼續填充暫存器時,重置自身將包括第二同級者之訊息暫存器中之重置,從而導致第二同級者接收損毀訊息。在第一同級者能夠使用讀取操作自第二同級者讀取關於其狀態之資訊且可基於對讀取操作之回應判定第二同級者是否不可用或已經歷重置的情況下,尤其在逾時或重試將導致第一同級者得出另一同級者不可用之結論的狀況下,可避免此情況。
雖然當允許讀取操作時較容易處置同級者之間 的通訊重置資訊,但讀取操作存在不合需要的其他問題。舉例而言,當同級者之核心重置或變得停用(例如,歸因於進入低功率狀態而停用)時,歸因於(例如)核心之隔離,此等動作可導致讀取失敗。又,含有讀取之通訊協定可較難以跨不同底層匯流排及/或網狀架構遷移。
因此,可能需要在同級者之間使用不包括讀取操作之通訊協定。然而,在同級者僅經由寫入操作通訊之情況中,仍存在不知道另一同級者已進入重置或已經以其他方式變得不可用之問題。
依據本發明之一實施例,係特地提出一種設備,其包含:一對處理單元,其使用寫入操作以同級間通訊與彼此通訊,其中該對處理單元中之每一處理單元包含:一通訊單元,其用以將資訊自該對處理單元中之一個處理單元傳輸至該對處理單元中之另一處理單元;記憶體,其用以儲存重置同步資訊及訊息資訊;以及處理邏輯,其用以基於該記憶體中所設定之位元指示來進行該處理邏輯自身與該另一處理單元之間的唯寫重置同步。
101、102‧‧‧處理單元
101A、102A‧‧‧處理邏輯
101B、102B‧‧‧硬體端點邏輯
101C、102C‧‧‧記憶體
103‧‧‧通訊頻道
201、202、203、204、205、206、207、208、211、212、213、214、302、303、304、305、311、312、313、314、315、316、317、318、319、321、322、323、324、325、326、327、328、329、330、340、341、402、403、404、405、411、412、413、414、415、416、417、418、419、420‧‧‧處理區塊
301、401‧‧‧初始化
310、410‧‧‧重置階段1等待狀態
320‧‧‧重置階段2等待狀態
350、421‧‧‧操作階段
500‧‧‧系統單晶片(SOC)
506、507、601、602‧‧‧核心
508‧‧‧快取記憶體控制
509‧‧‧匯流排介面單元
510‧‧‧L2快取記憶體/互連件/介面
515‧‧‧GPU
520‧‧‧視訊編解碼器
525‧‧‧視訊介面
530‧‧‧用戶識別模組(SIM)
535‧‧‧啟動ROM
540‧‧‧SDRAM控制器
545‧‧‧快閃記憶體控制器
550‧‧‧周邊控制
560‧‧‧DRAM
565‧‧‧快閃記憶體
570‧‧‧藍芽模組
575‧‧‧3G數據機
580‧‧‧GPS
585‧‧‧WiFi
600‧‧‧處理器
601a、601b‧‧‧硬體執行緒/硬體執行緒槽/架構狀態暫存器/邏輯處理器
602a、602b‧‧‧架構狀態暫存器
605‧‧‧匯流排/高速串列點對點鏈接
610‧‧‧晶片上介面模組
620‧‧‧ILTB/分支目標緩衝器/指令轉譯緩衝器(I-TLB)/提取單元
625、626‧‧‧解碼模組/解碼邏輯/解碼器
630‧‧‧分配器及重命名器區塊
635‧‧‧重排序/引退單元/無序單元
640‧‧‧排程器及執行單元區塊
650‧‧‧低階資料快取記憶體及資料轉譯緩衝器(D-TLB)
675‧‧‧系統記憶體
680‧‧‧裝置/圖形處理器
自下文給出之詳細描述且自本發明之各種實施例的隨附圖式將較充分理解本發明,然而,詳細描述及隨附圖式不應被視為將本發明限於具體實施例,而是僅用於 解釋及理解。
圖1說明能夠使用唯寫通訊協定彼此進行通訊之兩個處理元件。
圖2為重置同步程序之一個實施例的流程圖。
圖3及圖4為在重置同步中分別由引導者及跟隨者執行之操作的較詳細流程圖。
圖5說明系統單晶片(SOC)設計之實施例。
圖6說明包括多核心處理器之計算系統的方塊圖之實施例。
較佳實施例之詳細說明
在以下描述中,闡述眾多細節以提供本發明之較透徹解釋。然而,熟習此項技術者將顯而易見,本發明可無需此等特定細節而實踐。在其他情況下,以方塊圖形式而非詳細地展示熟知結構及裝置,以避免混淆本發明。
描述用於同步僅使用唯寫方法作為同級者通訊之一對處理元件(例如,智慧財產(IP)核心、處理器核心、處理器、系統單晶片處理核心、相同板(其具有可靠底層通訊匯流排)上之積體電路或裝置等)之間的重置操作之方法及設備。本文中所描述之技術使得每一處理元件能夠偵測到其同級者進入同級者正在進入重置、退出重置、變得停用或以其他方式不可用(永久地不可用或因為系統正在進入處理元件不具功能性之較低功率狀態)或僅重置通訊的狀態。因為同級者僅使用寫入操作來彼此進行通訊,所以 每一處理元件不能夠知道其同級者是否接收到來自處理元件之最後異動,但該等處理元件仍能夠同步其間的通訊頻道重置。
圖1說明能夠使用唯寫通訊協定作為同級者彼此進行通訊之兩個處理元件(其中,兩個處理元件之間的通訊僅經由使用寫入操作進行)。
參看圖1,處理單元101及102(例如,處理器核心、智慧財產(IP)核心、專用處理單元等)為彼此進行通訊之同級者。處理單元101及102中之每一者可在同一積體電路(IC)或不同IC中。處理單元101及102中之每一者可異步地進入或退出重置、變得停用、變得不可用或重置其間的通訊頻道(通訊頻道103)。
在一個實施例中,通訊頻道103為處理器間通訊頻道。通訊頻道103用於在處理單元101與處理單元102之間交換資訊(例如,請求、狀態等)及其他訊息。
處理單元101包括用以執行與其在系統中之指定功能相關聯的操作(包括本文中所描述之重置同步操作)的處理邏輯101A,及用以使用通訊頻道103與一或多個其他處理單元(諸如,處理單元102)進行通訊(例如,傳輸)的硬體端點邏輯101B。類似地,處理單元102包括用以執行與其在系統中之指定功能相關聯的操作(包括本文中所描述之重置同步操作)的處理邏輯102A,及用以使用通訊頻道103與一或多個其他處理單元(諸如,處理單元101)進行通訊(例如,傳輸)的硬體端點邏輯102B。更具體而言,處理邏輯101A 及處理邏輯101B基於記憶體101C中所設定之位元指示來執行關於處理邏輯自身與第二處理單元之間的唯寫重置同步的操作。應注意,在替代性實施例中,處理單元101及102不具有硬體端點單元,且實情為,由軟體或韌體來仿真所有硬體動作(例如,寫入至其他同級者等)。
處理單元101及102中之每一者包括用以儲存來自其同級者之指示(例如,位元)之集合的記憶體。換言之,處理單元101包括儲存來自處理單元102之位元(位元指示)的記憶體,諸如記憶體101C(例如,控制狀態暫存器(CSR))。同樣地,處理單元102包括儲存來自處理單元101之位元的記憶體,諸如記憶體102C(例如,CSR)。在一個實施例中,處理單元可對其同級者之記憶體(例如,CSR)中的位元進行設定為一(set-by-one)或對儲存於處理單元自身記憶體(例如,CSR)中之位元進行清除為一(clear-by-one)。亦即,處理單元101可設定處理單元102之記憶體102C中的此等位元中之每一者,且反之亦然。藉由進行設定為一(或清除為一),即使同級者多次發送相同指示(位元指示),處理單元仍僅將此指示感知為單一指示。使一個同級者設定位元且一側清除相同記憶體之位元係重要的,以便防止任一側在更新給定記憶體(CSR)時覆寫來自另一側之更新。
應注意,在替代性實施例中,該等位元指示可被設定為一且清除為零,或被設定為零且清除為一,或被設定為零且清除為零。
在一個實施例中,指示之集合包括處理單元將不再傳輸通訊頻道103上的無關於重置同步協定之異動且已重置其通訊狀態的指示。此情況包括處理單元自身已經歷重置或已退出重置但將經歷重置之狀況。在一個實施例中,此指示為必選的且必須由一個或兩個處理單元支援。
在一個實施例中,指示之集合包括處理單元已丟棄(discarded)或丟棄(dropped)無關於重置同步協定的任何未處理傳入訊息之指示。在一個實施例中,此指示為必選的且必須由一個或兩個處理單元支援。
在一個實施例中,指示之集合包括處理單元向同級者指示上文所論述的兩個指示已設定且藉由僅再次設定上文所設定之指示中之一者來請求同級者消除歧義的指示。在此狀況下,處理單元清除該兩個指示,使得處理單元可判定哪個指示係由同級者再次設定。
作為重置同步協定之部分,處理單元101及102使用該等指示將諸如處理單元所處之重置階段狀態的通知發送至彼此,以及通知另一處理單元關於重置通訊頻道103所採取之動作。在一個實施例中,處理單元在無需繼續與同級處理單元之訊號交換的情況下進入重置或變得停用,且僅需要設定第一指示(例如,位元)並關閉。在進入重置或停用之前處理單元無需應答(ACK)或進一步通訊。
在處理單元101及102中,硬體端點邏輯101A及101B為通訊單元。在一個實施例中,此等單元處置發送資訊及訊息至其他處理單元,包括設定其他處理單元之指示 (例如,位元指示)。在一個實施例中,此等單元處置門鈴及中斷,以及在重置同步指示已設定於單元之記憶體中時產生至處理邏輯之中斷,使得處理邏輯可採取本文中所描述之動作。
在一個實施例中,作為重置同步協定之部分,處理單元101及102兩者暫時停用其傳出訊務,處理單元兩者自另一處理單元(其同級者)接收其傳出訊務暫時被停用的指示,每一處理單元清除來自另一處理單元之任何殘餘傳入訊務(使得新訊務不在重置同步程序中的此時間點處出現),且接著恢復通訊。
在一或多個實施例中,本文中所描述之技術使得:逾時/重試無用(其可具有誤判/錯誤否定且帶來複雜重試邏輯);可無需特殊邏輯而處置給定處理核心之重置以及給定處理元件與其同級者之間的交錯重置內的重置;在恢復通訊之前丟棄陳舊訊息;避免處理元件在其同級者意外地丟棄有效傳入訊息時開始通訊的情況;避免「死鎖」(亦即,無處理元件達到其不斷地等待其同級者之狀態);避免「活鎖」(亦即,協定永不達到無止頻道重置「交替術」發生於處理元件之間的狀態,其中此「交替術」可防止通訊頻道達到穩定操作狀態,且與死鎖相反,更難以在編制協定時偵測);任一處理元件可無需等待來自其同級者之應答(ACK)的情況下異步地進入重置(因為在許多狀況下,處理元件重置出現意味著處理元件處於不良狀態中或發生監視過期,且由於對可能忙碌之同級者的依賴而延遲處理元件 之重置係不合需要的);存在供處理元件向同級者指示處理元件已停用(亦即,進一步通訊不可能)的簡單方式,無需涉及複雜協定交換(且無需要求完全成熟驅動程式),此情況在對IP之阻斷服務(DoS)之狀況下有助於安全性--只要處理元件可在無需完全成熟驅動程式的情況下容易地向其同級者指示其已停用即可,此情況允許同級者在不增加同級者之TCB的情況下偵測DoS(例如,若操作簡單,則可自IP之ROM容易地進行操作);各種狀況(進入重置、退出重置、變得停用、僅重置通訊頻道)並不要求不同訊號交換(為簡單起見);及保證處理元件兩者變得可操作且結束發現彼此而無需強制任何預定義的重置退出次序約束。
下文更詳細地描述協定之實施例。
圖2為重置同步程序之一個實施例的流程圖。該程序由可包含硬體(電路、專用邏輯等)、軟體(諸如執行於通用電腦系統或專用機器上)、韌體或此等三者之組合的處理邏輯來執行。在一個實施例中,該程序由僅使用寫入操作進行通訊的兩個同級者(處理單元)執行,一個指定為「引導者」且一個指定為「跟隨者」。引導者及跟隨者之使用破壞對稱性(以便避免同級者之間的無止「交替術」)。在一個實施例中,此情況為根據處理單元對之固定指定。雖然處理單元中之每一者可異步地開始重置同步,但一旦開始,跟隨者確保其階段並不推進超出引導者,直至同步完成為止。
在圖2中,帶圓圈數字在一個實施例中指示對操 作排序之限制。在一些狀況下(例如,出現具有「*」及「**」之數字),不存在對首先發生之操作的限制。又,閘反映「及」條件:在一些狀況下,處理單元(同級者)可僅在一些內部條件已滿足且另一同級者向處理單元告知同級者條件得到滿足兩者的情況下進行到下一操作。
參看圖2,引導者(第一同級者)中之處理邏輯進入重置階段1(其中重置程序之第一階段開始),且通知跟隨者(第二同級者)引導者已進入重置階段1(處理區塊201)。在一個實施例中,引導者藉由設定跟隨者之控制狀態暫存器(CSR)中的位元來通知跟隨者引導者已進入重置階段1。在一個實施例中,引導者在跟隨者之CSR中設定位元0以指示引導者已進入重置階段1。
藉由向跟隨者通知引導者已完成重置階段1動作,引導者指示其將不能夠經由處理器間通訊(IPC)與跟隨者進行通訊,直至引導者不再處於重置為止。又,引導者已向跟隨者指示,若跟隨者已提供關於IPC暫存器值之有效性的任何保證(例如,經由CSR位元之值),則不再強迫跟隨者進行提供。舉例而言,若跟隨者待提供電力閘控超覆保證(亦即,防止電力閘控(亦即,斷開電力)發生的保證),則不再朝向引導者強迫跟隨者執行電力閘控超覆,此係因為引導者已進入重置階段1。此外,藉由進入重置階段1,引導者向跟隨者指示,若存在引導者已提供至跟隨者的任何IPC暫存器有效性保證,則引導者不再提供此保證。此外,藉由進入重置階段1,引導者已指示其自此以後將不再發送 任何新的PG相關請求或狀態資訊至跟隨者。最後,藉由進入重置階段1,引導者指示應丟棄先前已自引導者發送至跟隨者的任何殘餘IPC訊息,且引導者自此以後將不發送任何新IPC訊息至跟隨者。
在向跟隨者通知其已完成重置階段1動作(例如,在跟隨者之CSR中設定位元0)之後或之前,跟隨者可向引導者通知,跟隨者已完成重置階段1動作(處理區塊202)。在一個實施例中,跟隨者藉由設定引導者之控制狀態暫存器(CSR)中之位元來向引導者通知跟隨者已完成重置階段1動作。在一個實施例中,跟隨者在引導者之CSR中設定位元0以指示跟隨者已完成重置階段1動作。如同引導者一樣,藉由向引導者通知跟隨者已完成重置階段1動作,跟隨者指示其將不能夠經由處理器間通訊(IPC)與引導者進行通訊,直至跟隨者不再處於重置為止。又,跟隨者已向引導者指示,若引導者已提供關於IPC暫存器值之有效性的任何保證(例如,經由CSR位元之值),則不再強迫引導者進行提供。舉例而言,若引導者待提供PG超覆保證,則不再要求引導者提供此保證至跟隨者,此係因為跟隨者已進入重置階段1。此外,藉由進入重置階段1,跟隨者向引導者指示,若存在跟隨者已提供至引導者的任何IPC暫存器有效性保證,則不再強迫跟隨者進行提供。此外,藉由進入重置階段1,跟隨者已指示其自此以後將不再發送任何新的PG相關請求或狀態資訊至引導者。最後,藉由進入重置階段1,跟隨者指示應丟棄先前已自跟隨者發送至引導者的任何殘餘 IPC訊息,且跟隨者自此以後將不發送任何新IPC訊息至引導者。
在處於重置階段1中之後,引導者能夠進入重置階段2。測試判定引導者及跟隨者兩者是否已向彼此指示該兩者已完成重置階段1動作(處理區塊211)。亦即,在引導者進入重置階段2之前,引導者等待跟隨者完成重置階段1動作。若引導者及跟隨者兩者已完成重置階段1動作,則重置同步程序轉變至處理區塊203,其中引導者執行重置階段2動作且指示其已完成重置階段2動作。在一個實施例中,引導者藉由設定跟隨者之CSR中之位元來向跟隨者指示引導者已完成重置階段2動作。在一個實施例中,引導者在跟隨者之CSR中設定位元1以向跟隨者指示引導者已進入重置階段2。重置階段2動作由引導者丟棄已自跟隨者發送至引導者的任何殘餘IPC訊息及任何PG相關請求及狀態資訊組成。
應注意,跟隨者不進入重置階段2,直至引導者如此操作之後。
處理邏輯測試跟隨者是否已完成重置階段1動作(且已向引導者通知跟隨者已完成操作)及引導者是否已完成重置階段2動作(處理區塊212)。若如此,則該程序轉變至處理區塊204,其中跟隨者進入重置階段2。跟隨者執行重置階段2動作且藉由設定引導者之CSR中之位元來向引導者通知跟隨者已完成重置階段2動作。在一個實施例中,跟隨者藉由在引導者之CSR中設定位元1來向引導者通知跟 隨者已完成重置階段2動作。跟隨者在丟棄已自引導者發送至跟隨者的任何殘餘IPC訊息及PG相關請求及狀態資訊之後向引導者通知跟隨者已完成階段2動作。
在跟隨者完成重置階段2動作之後,跟隨者可進入操作階段且開始接收帶內IPC訊息(處理區塊207)。此情況意味著跟隨者將不再丟棄任何訊息。
應重申,引導者與跟隨者之間關於進入重置階段1及2的交換係用於重置IPC頻道且未必用於重置引導者及/或跟隨者全部。亦即,雖然引導者可經歷重置操作,但並不要求重置跟隨者自身,而僅重置該兩者之間的頻道。當跟隨者經歷重置且引導者及跟隨者僅需要重置其間的頻道時同樣如此。
此後,引導者處之處理邏輯測試引導者及跟隨者是否皆已完成重置階段2動作(處理區塊213)。若如此,引導者程序轉變至處理區塊205,其中引導者可開始發送及接收帶內IPC訊息,且藉由使引導者發送第一帶內IPC訊息(處理區塊206),IPC通訊可發生於引導者與跟隨者之間。
應注意,開始發送及接收帶內IPC訊息及發送第一IPC訊息之此等操作可在處理區塊207中的跟隨者能夠開始接收帶內IPC訊息的時間之前或之後發生。然而,跟隨者無法在退出重置階段2之後發送IPC訊息,直至跟隨者已自引導者接收第一帶內IPC訊息為止。
跟隨者處之處理邏輯測試是否已自引導者發送第一IPC訊息且跟隨者是否能夠開始接收帶內IPC訊息,如 處理區塊214中所指示。若如此,則跟隨者可開始發送及接收帶內IPC訊息(處理區塊208)。
圖3及圖4為在重置同步中分別由引導者及跟隨者執行的操作之較詳細流程圖。該程序由可包含硬體(電路、專用邏輯等)、軟體(諸如執行於通用電腦系統或專用機器上)、韌體或此等三者之組合的處理邏輯執行。
參看圖3,由引導者執行之程序以初始化開始(301)。在初始化期間(301),引導者之處理邏輯停用來自兩個門鈴之中斷且停用來自CSR之中斷(處理區塊302)。應注意,在一個實施例中,傳入門鈴為用於指示來自同級者之訊息準備用於在資料暫存器中耗用的第二單獨暫存器。當同級者結束寫入訊息資料時,同級者寫入至門鈴(例如,設定稱為「忙碌」位元之位元)且此情況導致中斷。傳出門鈴為反映同級者處之傳入門鈴的第三單獨暫存器。在一個實施例中,當處理邏輯寫入資料至同級者且設定同級者之門鈴(例如,忙碌位元)時,處理單元經由其自身之傳出門鈴暫存器進行此操作,此情況導致在同級者之傳入門鈴暫存器處設定忙碌位元。當同級者結束自暫存器收回訊息時,同級者清除其傳入門鈴暫存器上之忙碌位元,且此情況被反映回至處理單元之傳出門鈴暫存器且導致中斷。傳出門鈴暫存器處之忙碌位元的此清除向處理單元指示其現在可發送新訊息而無需擔心覆寫先前訊息。
在一個實施例中,來自CSR之中斷為來自向核心之處理邏輯通知CSR中之不同位元已設定的硬體端點邏輯 的中斷。
此後,引導者之處理邏輯清除對應於內部狀態之CSR位元(例如,跟隨者是否已完成重置階段1動作之指示、跟隨者是否已完成重置階段2動作之指示及其他CSR位元),清除引導者之記憶體中的所有韌體(FW)先進先出緩衝器(FIFO)中的傳出訊息,耗用或丟棄FIFO中的所有傳入訊息,將指示跟隨者查詢引導者以判定引導者當前駐留於何重置階段狀態中的CSR位元清除為1,及在跟隨者中設定指示引導者已完成重置階段1之動作的指示(處理區塊303)。在一個實施例中,此指示在圖3中被稱為IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示。
接著該程序轉變至處理區塊304,其中處理邏輯測試引導者是否進入重置或斷電。若如此,則該程序結束。否則,該程序轉變至處理區塊305,其中處理邏輯啟用來自CSR之中斷。在啟用CSR中斷之後,該程序轉變至重置階段1等待狀態(310)。
在重置階段1等待狀態處(310),處理邏輯等待CSR中斷發生從而指示CSR暫存器中之某一位元已設定但未經處置。當CSR中斷發生時,該程序轉變至處理區塊311,其中處理邏輯清除CSR中斷且複製CSR值至局部變數儲存器以用於分析。接著,引導者中之處理邏輯測試跟隨者是否已指示已完成重置階段1動作及階段2動作兩者(處理區塊312)。藉由檢查IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示是 否經設定來進行此操作。若該等位元指示皆經設定,則該程序轉變至處理區塊313,其中處理邏輯清除IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示兩者,且查詢跟隨者關於跟隨者駐留所在之重置階段狀態。為查詢跟隨者之狀態,引導者中之處理邏輯設定跟隨者中之指示。在一個實施例中,藉由設定跟隨者之CSR中的IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來進行此操作。在如此操作之後,該程序轉變至處理區塊318。
在處理區塊318處,引導者中之處理邏輯判定是否由跟隨者查詢引導者關於跟隨者當前駐留所在之重置階段。在一個實施例中,藉由引導者檢查其記憶體中之CSR複本中的IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來執行此操作。若如此,則處理邏輯清除其IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示且向同級者通知其當前重置階段(其為階段1)(處理區塊319)。在一個實施例中,引導者藉由在跟隨者之CSR中設定對應於IPC_PEER_COMP_ACTIONS_RST_PHASEI位元指示之CSR位元來向跟隨者通知其重置階段狀態。此後,該程序轉變至重置階段1之等待狀態(310)。返回參看處理區塊318,若跟隨者並不查詢關於引導者當前駐留所在之當前狀態,則處理區塊轉變至重置階段1之等待狀態(310)。
返回參看處理區塊312,若IPC_PEER_ COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示中之任一者未經設定,則該程序轉變至處理區塊314,其中處理邏輯測試跟隨者是否已完成重置階段1動作。在一個實施例中,藉由檢查由跟隨者在引導者之CSR中所設定的指示跟隨者已完成重置階段1動作的IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示之複本來進行此操作。若如此,則該程序轉變至處理區塊315,其中引導者中之處理邏輯清除其CSR中之IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示且向跟隨者指示引導者已完成重置階段1動作。在一個實施例中,引導者藉由在跟隨者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示來向跟隨者指示引導者已完成重置階段1動作。此後,該程序轉變至處理區塊330。
在處理區塊330處,引導者中之處理邏輯清除傳入門鈴及其CSR中之所有位元指示,除IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示,及(視情況)一或多個定製位元(取決於定製位元之作用)之外。在一個實施例中,此等位元包括用於用以驗證CSR中之資訊(位元)之有效性協定及用於處理單元對可在其間傳遞且特定於每一對之簡單訊息的位元。處理亦在跟隨者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE2位 元指示以向跟隨者通知引導者已完成重置階段2動作。此後,該程序轉變至重置階段2之等待狀態(320)。
返回參看處理區塊314,若不存在跟隨者已完成重置階段1動作之指示,則引導者中之處理邏輯檢查跟隨者是否已完成重置階段2動作(處理區塊316)。在一個實施例中,藉由檢查引導者之CSR中的IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來進行此操作。若位元由跟隨者設定,則在一個實施例中,引導者清除其自身CSR中之IPC_PEER_COMP_ACTIONS_RST_PHASE2及IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元且在跟隨者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示以向跟隨者指示引導者已完成重置階段1動作(處理區塊317),且接著轉變至重置階段1之等待狀態(310)。
若跟隨者如處理區塊316處所判定尚未完成重置階段2動作,則該程序轉變至處理區塊318,其中處理邏輯測試跟隨者是否已請求引導者之重置階段狀態。在一個實施例中,引導者檢查來自其CSR之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示以判定跟隨者是否已請求其重置階段狀態。若已請求,則處理邏輯清除該請求且向跟隨者通知其已完成重置階段1動作。在一個實施例中,藉由清除其CSR中之 IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來清除請求。在一個實施例中,引導者藉由在跟隨者之CSR暫存器中設定IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示來向跟隨者通知其重置階段狀態。一旦此操作已完成,該程序即轉變至重置階段1之等待狀態(310)。
在重置階段2之等待狀態處(320),處理邏輯等待CSR中斷發生從而指示CSR暫存器中之某一位元已設定但未經處置。當CSR中斷發生時,該程序轉變至處理區塊321,其中處理邏輯清除CSR中斷且將CSR值複製至局部變數儲存器以用於分析。
處理邏輯測試跟隨者是否已指示其已完成重置階段1動作及重置階段2動作兩者(處理區塊322)。藉由檢查IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示兩者是否經設定來進行此操作。若該等位元指示皆經設定,則處理轉變至處理區塊323,其中處理邏輯清除位元指示IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2兩者,且查詢跟隨者以判定跟隨者當前處於何狀態。在一個實施例中,藉由引導者在跟隨者之CSR中設定IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來進行此操作。在如此操作之後,該程序轉變至處理區塊328。
在處理區塊328處,處理邏輯測試是否由跟隨者查詢引導者關於引導者當前處於何重置階段。在一個實施例中,藉由引導者檢查其CSR中之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來執行此操作。若經查詢,則處理邏輯清除IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示且向跟隨者通知其已完成重置階段2動作(處理區塊329)。在一個實施例中,引導者藉由設定對應於跟隨者中之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE2位元指示的CSR位元來向跟隨者通知其已完成重置階段2動作。此後,該程序轉變至重置階段2之等待狀態(320)。若並未查詢引導者關於其當前重置階段狀態,則該程序返回至重置階段2之等待狀態(320)。
返回參看處理區塊322,若IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示中之任一者未經設定,則該程序轉變至處理區塊324,其中處理邏輯測試跟隨者是否處於重置階段1中且需要轉變至重置階段2。在一個實施例中,藉由引導者檢查由跟隨者在引導者之CSR中設定的指示跟隨者已完成重置階段1動作的IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示來進行此操作。若如此,則該程序轉變至處理區塊325,其中引導者中之處理邏輯清除其CSR中由跟隨者設定的IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示及 IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示,且向跟隨者指示引導者已完成重置階段2動作。在一個實施例中,引導者藉由在跟隨者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來向跟隨者指示其已完成重置階段2動作。此後,該程序轉變至重置階段2之等待狀態(320)。
返回參看處理區塊324,若跟隨者不處於重置階段1中,則引導者中之處理邏輯檢查跟隨者是否已完成重置階段2動作(處理區塊326)。在一個實施例中,藉由檢查IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來進行此操作。若處理邏輯判定跟隨者已完成重置階段2動作,則處理邏輯清除IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示且轉變至處理區塊340,其中處理邏輯檢查跟隨者是否已詢問引導者所處之重置階段狀態。若跟隨者尚未詢問引導者所處之重置階段狀態,則引導者移動至操作階段(350)。若跟隨者已請求引導者之重置階段狀態,則處理邏輯清除該請求且向同級者通知其已完成重置階段2動作(處理區塊341)。在一個實施例中,藉由引導者清除跟隨者之CSR中的IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來清除該請求。在一個實施例中,引導者藉由在跟隨者之CSR暫存器中設定IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來向跟隨者通知引導者所處之重置階段狀態。此後,該程序轉變至操作階段350之開始。
返回參看區塊326,若處理邏輯判定跟隨者尚未完成重置階段2動作,則該程序轉變至處理區塊328,其中處理邏輯檢查跟隨者是否已詢問引導者所處之重置階段狀態。若未詢問,則該程序轉變至重置階段2之等待狀態(320)。若跟隨者已詢問,則該程序轉變至處理區塊329,其中處理邏輯清除該請求且向同級者通知其已完成重置階段2動作(處理區塊329)。在一個實施例中,藉由引導者清除跟隨者之CSR中的IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來清除該請求。在一個實施例中,引導者藉由在跟隨者之CSR暫存器中設定IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來向跟隨者通知引導者所處之重置階段狀態。此後,該程序轉變至重置階段2之開始(320)。
圖4為由跟隨者執行之程序。參看圖4,由引導者執行之程序以初始化開始(401)。在初始化期間(401),跟隨者之處理邏輯停用來自兩個門鈴之中斷且停用來自其CSR之中斷(處理區塊402)。在一個實施例中,來自CSR之中斷為來自向核心之處理邏輯通知其CSR中之不同位元已設定的硬體端點邏輯的中斷。
此後,跟隨者之處理邏輯清除對應於內部狀態之CSR位元(例如,引導者是否已完成重置階段1動作之指示、引導者是否已完成重置階段2動作之指示、其他CSR位元),清除跟隨者之記憶體中的所有韌體(FW)先進先出緩衝器 (FIFO)中之傳出訊息,耗用或丟棄FIFO中之所有傳入訊息,將指示引導者查詢跟隨者以判定跟隨者當前駐留於何重置階段狀態中的CSR位元清除為1,且在引導者中設定指示跟隨者已完成重置階段1動作之指示(處理區塊403)。在一個實施例中,此指示在圖4中被稱為IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示。
接著,該程序轉變至處理區塊404,其中處理邏輯測試跟隨者是否進入重置或斷電。若如此,則該程序結束。否則,該程序轉變至處理區塊405,其中處理邏輯啟用來自其CSR之中斷。在啟用CSR中斷之後,該程序轉變至重置階段1等待狀態(410)。
在重置階段1處(410),處理邏輯等待CSR中斷發生從而指示CSR暫存器中之某一位元已設定但未經處置。當CSR中斷發生時,該程序轉變至處理區塊411,其中處理邏輯清除CSR中斷且將CSR值複製至局部變數儲存器以用於分析。接著,跟隨者中之處理邏輯測試引導者是否已指示其已完成重置階段1動作及重置階段2動作兩者(處理區塊412)。藉由檢查在跟隨者之CSR中是否設定IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來進行此操作。若該等位元指示皆經設定,則該程序轉變至處理區塊413,其中處理邏輯清除IPC_PEER_COMP_ACTIONS_RST_PHASE1 及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示兩者且查詢引導者關於引導者駐留所在之重置階段狀態。為查詢引導者之重置階段狀態,跟隨者中之處理邏輯在引導者中設定指示。在一個實施例中,藉由在引導者之CSR中設定IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來進行此操作。在如此操作之後,該程序轉變至處理區塊418。
在處理區塊418處,跟隨者中之處理邏輯判定是否由引導者查詢跟隨者關於其重置階段狀態。在一個實施例中,藉由跟隨者檢查其CSR中之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來執行此操作。若如此,則處理邏輯清除其IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示且向引導者通知其當前重置階段(其為重置階段1)(處理區塊419)。在一個實施例中,跟隨者藉由設定對應於引導者之CSR中之IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示之CSR位元來向引導者通知其重置階段狀態。此後,該程序轉變至重置階段1之等待狀態(410)。返回參看處理區塊418,若引導者未查詢跟隨者關於其當前重置階段狀態,則該程序轉變至重置階段1之等待狀態(410)。
返回參看處理區塊412,若IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_COMP_ACTIONS_RST_PHASE2指示中之任一者未經設定,則該程序轉變至 處理區塊414,其中處理邏輯測試引導者是否已完成重置階段1動作。在一個實施例中,藉由跟隨者檢查由引導者在跟隨者之CSR中設定的指示引導者已完成重置階段1動作的IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示來進行此操作。若跟隨者判定引導者已完成重置階段1動作,則該程序轉變至處理區塊415,其中跟隨者中之處理邏輯清除其CSR中之IPC_PEER_COMP_ACTIONS_RST_PHASE1及IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示且向引導者指示跟隨者已完成重置階段1動作。在一個實施例中,跟隨者藉由在引導者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE1位元指示來向引導者指示跟隨者已完成重置階段1動作。此後,該程序轉變至重置階段1之等待狀態(410)。
返回參看處理區塊414,若引導者不處於重置階段1中,則跟隨者中之處理邏輯檢查引導者是否已完成重置階段2動作(處理區塊416)。在一個實施例中,藉由跟隨者檢查由引導者設定的跟隨者之CSR中的IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示來進行此操作。若如此,則處理邏輯清除跟隨者之CSR中的IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示(處理區塊417),且接著該程序轉變至處理區塊420。
在處理區塊420處,跟隨者中之處理邏輯清除傳入門鈴及其CSR中之所有位元指示,除IPC_PEER_COMP_ACTIONS_RST_PHASE1 及IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示,及(視情況)上文所描述的一或多個定製位元(取決於定製位元之作用)之外。處理邏輯亦在引導者之CSR中設定IPC_PEER_COMP_ACTIONS_RST_PHASE2位元指示以向引導者通知跟隨者已完成重置階段2動作。此後,該程序轉變至操作階段(421)。應注意,即使跟隨者處於操作階段中,但在一個實施例中,在跟隨者可發送訊息之前,引導者必須發送第一帶內訊息。在一個實施例中,引導者發送虛設訊息作為第一訊息。此情況允許跟隨者開始發送訊息。為了防止跟隨者首先發送訊息之極端狀況,此操作經歷重置,且在引導者甚至不知道訊息的情況下再次達到操作階段。
返回參看處理區塊416,若跟隨者判定引導者不處於重置階段2中,則該程序轉變至處理區塊418,其中處理邏輯測試引導者是否已請求跟隨者之重置階段狀態。在一個實施例中,跟隨者檢查來自其CSR之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示以判定引導者是否已請求跟隨者之重置階段狀態。若已請求,則跟隨者中之處理邏輯清除請求且向引導者通知跟隨者已完成重置階段1動作。在一個實施例中,跟隨者藉由清除其CSR中之IPC_PEER_QUERIED_IP_COMP_ACTIONS_RST_PHASE位元指示來清除該請求。在一個實施例中,跟隨者藉由在引導者之CSR暫存器中設定 IPC_PEER_COMP_ACTIONS_RST_PHASE1來向引導者通知其重置階段狀態。一旦已完成此操作,該程序即轉變至重置階段1之等待狀態(410)。
因此,本文中所描述之實施例包括以下各者中之一或多者:處置重置或交錯重置內之重置的特殊狀況、丟棄所有陳舊訊息、避免丟棄有效訊息、避免死鎖、避免活鎖、允許由任何處理單元進行異步重置進入、停用及/或不可用性之簡單指示、均勻處置處理單元重置、停用、處理單元非可用性及/或僅通訊頻道重置及發現而不強制預定義重置退出次序。
此外,歸因於上文所提及之問題,避免用於同步重置之讀取。類似地,歸因於上文所提及之問題,亦避免逾時及/或重試。
圖5說明根據所描繪本發明之系統單晶片(SOC)設計的實施例。作為特定說明性實例,SOC 500包括於使用者設備(UE)中。在一個實施例中,UE指待由終端使用者使用以進行通訊的任何裝置,諸如手持式電話、智慧型電話、平板電腦、超薄筆記型電腦、具有寬帶配接器之筆記型電腦,或任何其他類似通訊裝置。常常,UE連接至基地台或節點,基地台或節點潛在地本質上對應於GSM網路中之行動台(MS)。
在一個實施例中,SOC 500包括2個核心,亦即506及507。類似於上文之論述,核心506及507可符合指令集架構,諸如基於Intel®架構CoreTM之處理器、先進微型裝 置公司(Advanced Micro Devices,Inc.;AMD)處理器、基於MIPS之處理器、基於ARM之處理器設計或其消費者以及其被授權人或採用者。核心506及507耦接至快取記憶體控制508,其與匯流排介面單元509及L2快取記憶體510相關聯以與系統500之其他部分通訊。互連件510包括晶片上互連件,諸如IOSF、AMBA或本文中論述的其他互連件,其潛在地實施所描述本發明之一或多個態樣。
介面510提供至其他組件之通訊頻道,其他組件諸如用以與SIM卡介接的用戶識別模組(SIM)530、用以保存用於由核心506及507執行以初始化及啟動SOC 500之啟動程式碼的啟動ROM 535、用以與外部記憶體(例如,DRAM 560)介接的SDRAM控制器540、用以與非依電性記憶體(例如,快閃記憶體565)介接的快閃記憶體控制器545、用以與周邊裝置介接的周邊控制550(例如,串列周邊介面)、用以顯示及接收輸入(例如,觸摸致能之輸入)的視訊編解碼器520及視訊介面525、用以執行圖形相關計算的GPU 515等。此等介面中之任一者可併入本文中所描述的本發明之態樣。
另外,系統說明用於通訊之周邊裝置,諸如藍芽模組570、3G數據機575、GPS 585及WiFi 585。如上文所陳述地,應注意,UE包括用於通訊之無線電。結果,並不需要所有此等周邊通訊模組。然而,在UE中,應包括用於外部通訊之某一形式無線電。
圖6說明包括多核心處理器之計算系統的方塊圖 的實施例。參看圖6,處理器600包括任何處理器或處理裝置,諸如微處理器、嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持式處理器、應用程式處理器、共處理器、系統單晶片(SOC)或用以執行程式碼之其他裝置。在一個實施例中,處理器600包括至少兩個核心,亦即核心601及602,其可包括不對稱核心或對稱核心(所說明實施例)。然而,處理器600可包括可對稱或不對稱的任何數目個處理元件。
在一個實施例中,處理元件指支援軟體執行緒的硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒槽、執行緒、程序單元、內容脈絡、內容脈絡單元、邏輯處理器、硬體執行緒、核心及/或能夠保存處理器之狀態(諸如,執行狀態或架構狀態)的任何其他元件。換言之,在一個實施例中,處理元件指能夠獨立地與諸如軟體執行緒、作業系統、應用程式或其他程式碼之程式碼相關聯的任何硬體。實體處理器(或處理器插口)通常指積體電路,積體電路潛在地包括任何數目個其他處理元件,諸如核心或硬體執行緒。
核心常常指位於積體電路上的能夠維持獨立架構狀態之邏輯,其中每一獨立維持之架構狀態與至少一些專用執行資源相關聯。與核心形成對比,硬體執行緒通常指位於積體電路上的能夠維持獨立架構狀態之任何邏輯,其中獨立維持之架構狀態共享對執行資源的存取。如可看出,當某些資源被共享且其他資源專用於一架構狀態時, 硬體執行緒與核心的命名法之間的線重疊。但常常,核心及硬體執行緒被作業系統視為個別邏輯處理器,其中作業系統能夠個別地排程每一邏輯處理器上的操作。
如圖6中所說明,實體處理器600包括兩個核心-核心601及602。此處,核心601及602被視為對稱核心,亦即具有相同組配、功能單元及/或邏輯之核心。在另一實施例中,核心601包括無序處理器核心,而核心602包括有序處理器核心。然而,核心601及602可個別地選自任何類型之核心,諸如原生核心、軟體管理之核心、經調適以執行原生指令集架構(ISA)之核心、經調適以執行轉譯指令集架構(ISA)之核心、共同設計核心或其他已知核心。在異質核心環境(亦即,不對稱核心)中,某一形式之轉譯(諸如,二元轉譯)可用以排程或執行一個或兩個核心上之程式碼。又關於其他論述,在下文更詳細地描述核心601中所說明之功能單元,此係因為核心602中之單元在所描繪實施例中以類似方式操作。
如所描繪,核心601包括兩個硬體執行緒601a及601b,該等執行緒亦可被稱作硬體執行緒槽601a及601b。因此,諸如作業系統之軟體實體在一個實施例中潛在地將處理器600視為四個單獨處理器,亦即,能夠同時執行四個軟體執行緒的四個邏輯處理器或處理元件。如上文所提及,第一執行緒與架構狀態暫存器601a相關聯,第二執行緒與架構狀態暫存器601b相關聯,第三執行緒可與架構狀態暫存器602a相關聯,且第四執行緒可與架構狀態暫存器 602b相關聯。此處,架構狀態暫存器(601a、601b、602a及602b)中之每一者可被稱作處理元件、執行緒槽或執行緒單元,如上文所描述。如所說明,架構狀態暫存器601a在架構狀態暫存器601b中經複製,因此個別架構狀態/內容脈絡能夠被儲存以用於邏輯處理器601a及邏輯處理器601b。在核心601中,諸如分配器及重命名器區塊630中之指令指標及重命名邏輯的其他較小資源亦可針對執行緒601a及601b經複製。諸如重排序/引退單元635中之重排序緩衝器、ILTB 620、載入/儲存緩衝器及佇列的一些資源可經由分割來共享。諸如通用內部暫存器、頁表基暫存器、低階資料快取記憶體及資料TLB 615、執行單元640及無序單元635之部分的其他資源潛在地充分共享。
處理器600常常包括其他資源,該等資源可充分共享、經由分割來共享或由處理元件專用/或專用於處理元件。在圖6中,說明具有處理器之說明性邏輯單元/資源的純例示性處理器的實施例。應注意,處理器可包括或省略此等功能單元中之任一者,以及包括任何其他已知功能單元、邏輯或未描繪的韌體。如所說明,核心601包括簡化的代表性無序(out-of-order;OOO)處理器核心。但在不同實施例中可利用有序處理器。OOO核心包括用以預測待執行/進行之分支的分支目標緩衝器620及用以儲存指令之位址轉譯項的指令轉譯緩衝器(I-TLB)620。
核心601進一步包括耦接至提取單元620以解碼所提取元素之解碼模組625。在一個實施例中,提取邏輯包 括分別與執行緒槽601a、601b相關聯的個別定序器。通常,核心601與第一ISA相關聯,其定義/指定在處理器600上可執行的指令。常常,為第一ISA之部分的機器程式碼指令包括指令之一部分(被稱作作業碼),其參考/指定待執行的指令或操作。解碼邏輯625包括電路,該電路自指令之作業碼辨識出此等指令且在管線上傳遞經解碼指令以用於如由第一ISA定義之處理。舉例而言,如下文所更詳細地論述,在一個實施例中,解碼器625包括經設計或經調適以辨識特定指令(諸如,異動指令)的邏輯。作為由解碼器625進行的辨識之結果,架構或核心601採用特定預定義動作以執行與適當指令相關聯的任務。重要的是,應注意,本文中所描述之任務、區塊、操作及方法中之任一者可回應於單一或多個指令而執行;指令中的一些可為新指令或舊指令。應注意,在一個實施例中,解碼器626辨識同一ISA(或其子集)。替代性地,在異質核心環境中,解碼器626辨識第二ISA(第一ISA的子集或截然不同之ISA)。
在一個實例中,分配器及重命名器區塊630包括分配器以保留資源,諸如用以儲存指令處理結果的暫存器檔案。然而,執行緒601a及601b潛在地具有無序執行之能力,其中分配器及重命名器區塊630亦保留其他資源,諸如用以追蹤指令結果的重排序緩衝器。單元630亦可包括暫存器重命名器以將程式/指令參考暫存器重命名至處理器600內部之其他暫存器。重排序/引退單元635包括用以支援無序執行及無序執行之指令的稍後有序引退的組件,諸如上 文所提及之重排序緩衝器、載入緩衝器及儲存緩衝器。
排程器及執行單元區塊640在一個實施例中包括用以排程執行單元上之指令/操作的排程器單元。舉例而言,浮點指令排程在具有可用浮點執行單元之執行單元之埠上。與執行單元相關聯之暫存器檔案亦經包括以儲存資訊指令處理結果。例示性執行單元包括浮點執行單元、整數執行單元、跳轉執行單元、載入執行單元、儲存執行單元及其他已知執行單元。
較低階資料快取記憶體及資料轉譯緩衝器(D-TLB)650耦接至執行單元640。資料快取記憶體儲存近來使用/經操作之元素(諸如,資料運算元),該等元素潛在地保存在記憶體一致性狀態中。D-TLB儲存最近的虛擬/線性至實體位址轉譯。作為特定實例,處理器可包括用以將實體記憶體斷開成多個虛擬頁的頁表結構。
此處,核心601及602共享對較高階或更高階(further-out)快取記憶體(諸如與晶片上介面610相關聯的第二階快取記憶體)的存取。應注意,較高階或更高階指自執行單元起增加或距執行單元變得更遠的快取記憶體層級。在一個實施例中,較高階快取記憶體為末階資料快取記憶體(處理器600上之記憶體階層中的最末快取記憶體),諸如第二或第三層級資料快取記憶體。然而,較高階快取記憶體並非如此受限,此係因為較高階快取記憶體可與指令快取記憶體相關聯或包括指令快取記憶體。追蹤快取記憶體(一類型之指令快取記憶體)替代地可在解碼器625之後耦接 以儲存近來經解碼之追蹤。此處,指令潛在地指巨型指令(亦即,由解碼器辨識之一般指令),其可被解碼成數個微指令(微操作)。
在所描繪組配中,處理器600亦包括晶片上介面模組610。歷史上,在下文更詳細地描述之記憶體控制器已包括於在處理器600外部的計算系統中。在此情境下,晶片上介面610與諸如以下各者的處理器600外部之裝置通訊:系統記憶體675、晶片組(常常包括用以連接至記憶體675的記憶體控制器集線器,及用以連接周邊裝置的I/O控制器集線器)、記憶體控制器集線器、北橋或其他積體電路。且在此情境下,匯流排605可包括任何已知互連件,諸如多分路匯流排、點對點互連件、串列互連件、平行匯流排、一致性(例如,快取記憶體一致性)匯流排、分層協定架構、差分匯流排及GTL匯流排。
記憶體675可專用於處理器600或與系統中的其他裝置共享。記憶體675的常見類型實例包括DRAM、SRAM、非依電性記憶體(NV記憶體),及其他已知儲存裝置。應注意,裝置680可包括圖形加速器、耦接至記憶體控制器集線器之處理器或卡、耦接至I/O控制器集線器之資料儲存器、無線收發器、快閃記憶體裝置、音訊控制器、網路控制器或其他已知裝置。
然而,近來,由於更多邏輯及裝置整合於單一晶粒(諸如,SOC)上,因此此等裝置中之每一者可併入於處理器600上。舉例而言,在一個實施例中,記憶體控制器集線 器與處理器600在同一封裝及/或晶粒上。此處,核心610之一部分(核心上部分)包括用於與諸如記憶體675或圖形裝置680之其他裝置介接的一或多個控制器。包括用於與此等裝置介接之互連件及控制器的組配常常被稱作核心上組配(或非核心組配)。作為一實例,晶片上介面610包括用於晶片上通訊之環形互連件,及用於晶片外通訊的高速串列點對點鏈接605。又,在SOC環境中,甚至更多裝置(諸如,網路介面、共處理器、記憶體675、圖形處理器680及任何其他已知電腦裝置/介面)可整合於單一晶粒或積體電路上,以提供具有高功能性及低電力消耗的小外觀尺寸。此等裝置(包括處理器核心)可使用本文中所描述之互連件以用於通訊(例如,通訊頻道103、IPC通訊頻道等)。
在第一實例實施例中,一種設備包含:一對處理單元,其使用寫入操作以同級間通訊彼此進行通訊,其中該對處理單元中之每一處理單元包含:一通訊單元,其用以將資訊自該對處理單元中之一個處理單元傳輸至該對處理單元中之另一處理單元;記憶體,其用以儲存重置同步資訊及訊息資訊;以及處理邏輯,其用以基於該記憶體中所設定之位元指示來執行該處理邏輯自身與該另一處理單元之間的唯寫重置同步。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該記憶體包括一位元集合之儲存,該位元集合之一或多個位元表示由該另一處理單元設定的關於重置同步之一指示,且該位元集合之一或多個位元無關於重 置同步、由該另一處理單元發送。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該位元集合之一第一位元為該另一處理單元將不再傳輸無關於重置同步之異動的一指示。在另一實例實施例中,此實施例之標的物可視情況包括:該位元集合之一第二位元為該另一處理單元丟棄自該一個處理單元發送的無關於重置同步之未處理訊息的一指示。在另一實例實施例中,此實施例之標的物可視情況包括:該位元集合之一第三位元為該另一處理單元對該一個處理單元的用以基於最後設定該第一及該第二位元中之哪一者在關於該第一及該第二位元進行的一設定之間消除歧義的一請求。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該一個處理單元之該處理邏輯藉由如下操作來同步該一個處理單元自身與該另一處理單元之間的重置:在該另一處理單元中設定一第一指示以指示該一個處理單元已停用無關於重置同步之傳出訊務;自該記憶體讀取由該另一處理單元設定的該另一處理單元的無關於重置同步之傳出訊務已停用之一第二指示;回應於讀取該第二指示,清除儲存於該記憶體中的無關於重置同步且自該另一處理單元接收的訊息資訊;在該另一處理單元中設定一第三指示以指示該一個處理單元已清除無關於重置同步之殘餘傳入訊務;自該記憶體讀取由該另一處理單元設定的一第四指示,其指示該另一處理單元已清除自該一個處理單元接收的儲存於該記憶體中的無關於重置同步之傳入訊 息資訊;以及恢復與該另一處理單元之通訊。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該另一處理單元之該處理邏輯藉由如下操作來同步該另一處理單元與該一個處理單元之間的重置:在第一處理單元中設定一第一指示以指示該另一處理單元已停用無關於重置同步之傳出訊務;自該記憶體讀取由該一個處理單元設定的該一個處理單元的無關於重置同步之傳出訊務已停用之一第二指示;自該記憶體讀取由該一個處理單元設定的指示該一個處理單元已清除儲存於該記憶體中的無關於重置同步且自該另一處理單元接收的訊息資訊之一第三指示;回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該一個處理單元接收的訊息資訊;在該一個處理單元中設定一第四指示以指示該另一處理單元已清除無關於重置同步之殘餘傳入訊務;以及在自該一個處理單元接收至少一個傳入訊息之後,恢復與該一個處理單元之通訊。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:當接收到該另一處理單元已停用其無關於重置同步之傳出訊務的該第二指示時,該一個處理單元再次向該另一處理單元報告該一個處理單元之當前重置同步狀態。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:當接收到該一個處理單元已停用其無關於重置同步之傳出訊務的該指示時,該另一處理單元再次向 該一個處理單元報告該另一處理單元之當前重置同步狀態。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該對處理單元為一積體電路中之處理核心。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該對處理單元並非一個積體電路之部分。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該一個處理單元藉由在該另一處理單元中之一控制狀態暫存器(CSR)暫存器中寫入一位元而在該另一處理單元中設定該等位元指示。
在另一實例實施例中,第一實例實施例之標的物可視情況包括:該當前儲存訊息資訊包含一訊息、同級者相關請求資訊及同級者相關狀態資訊中之一或多者。
在第二實例實施例中,一種用於同步使用寫入操作進行通訊之一第一同級者與一第二同級者之間的重置的方法包含:對於該第一同級者,在第二處理單元中設定一第一指示以指示該第一同級者已停用無關於重置同步之傳出訊務;自記憶體讀取由該第二同級者設定的該第二同級者的無關於重置同步之傳出訊務已停用之一第二指示;回應於讀取該第二指示,清除儲存於該記憶體中的無關於重置同步且自該第二同級者接收的訊息資訊;在使用通訊單元之該第二同級者中設定一第三指示以指示該第一同級者已清除無關於重置同步之殘餘傳入訊務;自該記憶體讀取由該第二同級者設定的一第四指示,其指示該第二同級者 已清除自該第一同級者接收的儲存於該記憶體中的無關於重置同步之傳入訊息資訊;以及恢復與該第二同級者之通訊。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:對於該第二同級者,在該第一同級者中設定一第一指示以指示該第二同級者已停用無關於重置同步之傳出訊務;自該記憶體讀取由該第一同級者設定的該第一同級者的無關於重置同步之傳出訊務已停用之一第二指示;自該記憶體讀取由該第一同級者設定的一第三指示,其指示該第一同級者已清除儲存於該記憶體中的無關於重置同步且自該第二同級者接收的任何訊息資訊;回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該第一同級者接收的訊息資訊;在使用該通訊單元之該第一同級者中設定一第四指示以指示該第二同級者已清除無關於重置同步之殘餘傳入訊務;以及在自該第一同級者接收至少一個傳入訊息之後,恢復與該第一同級者之通訊。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:該第一及該第二同級者中之一者或兩者在接收到同級者的無關於重置同步之傳出訊務已停用的一報告之後再次向另一同級者報告當前重置同步狀態。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:該第一及該第二同級者中之一者清除自該第一及該第二同級者中之另一者接收的當前儲存訊息資 訊。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:設定該第一、該第二、該第三或該第四指示中之任一者包含在該各別第一或第二同級者中之一控制狀態暫存器(CSR)暫存器中寫入一位元。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:該當前儲存訊息資訊由一訊息、同級者相關請求資訊及同級者相關狀態資訊中之一或多者組成。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:當由該第一及該第二同級者中之一者或兩者進行的一或多個重置在重置同步期間發生時維持該重置同步。在另一實例實施例中,此實施例之標的物可視情況包括:該一或多個重置包含由兩個同級者進行的交錯或同時重置。
在第三實例實施例中,一種製品具有儲存指令之一或多個非暫時性電腦可讀儲存媒體,該等指令在由第一及第二同級者執行時導致該第一及該第二同級者執行用於同步使用寫入操作彼此進行通訊之該第一同級者與該第二同級者之間的重置的一方法,其中該方法包含:對於該第一同級者,在第二處理單元中設定一第一指示以指示該第一同級者已停用無關於重置同步之傳出訊務;自記憶體讀取由該第二同級者設定的該第二同級者的無關於重置同步之傳出訊務已停用之一第二指示;回應於讀取該第二指示,清除儲存於該記憶體中的無關於重置同步且自該第二同級 者接收的訊息資訊;在使用通訊單元之該第二同級者中設定一第三指示以指示該第一同級者已清除無關於重置同步之殘餘傳入訊務;自該記憶體讀取由該第二同級者設定的一第四指示,其指示該第二同級者已清除自該第一同級者接收的儲存於該記憶體中的無關於重置同步之傳入訊息資訊;以及恢復與該第二同級者之通訊。
在另一實例實施例中,第三實例實施例之標的物可視情況包括:該方法進一步包含:對於該第二同級者,在該第一同級者中設定一第一指示以指示該第二同級者已停用無關於重置同步之傳出訊務;自該記憶體讀取由該第一同級者設定的該第一同級者的無關於重置同步之傳出訊務已停用之一第二指示;自該記憶體讀取由該第一同級者設定的一第三指示,其指示該第一同級者已清除儲存於該記憶體中的與重置同步無關且自該第二同級者接收的訊息資訊;回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該第一同級者接收的訊息資訊;在使用該通訊單元之該第一同級者中設定一第四指示以指示該第二同級者已清除無關於重置同步之殘餘傳入訊務;在自該第一同級者接收至少一個傳入訊息之後,恢復與一個處理單元之通訊。
在另一實例實施例中,第三實例實施例之標的物可視情況包括:該方法進一步包含該第一及該第二同級者中之一者或兩者在接收到另一同級者的無關於重置同步之傳出訊務已停用的一報告時再次向該另一同級者報告當前 重置同步狀態。
在另一實例實施例中,第二實例實施例之標的物可視情況包括:該方法進一步包含該第一及該第二同級者中之一者或兩者清除自該第一及該第二同級者中之另一者接收的當前儲存訊息資訊。
本文中在對電腦記憶體內之資料位元之操作的演算法及符號表示方面呈現詳細描述之一些部分。此等演算法描述及表示為熟習資料處理之技術者用以將其工作之主旨最有效地傳達至其他熟習此項技術者的方式。演算法在此處且大體上構想為產生所要結果之步驟的自一致序列。步驟為需要物理量之實體操縱的步驟。通常但未必,此等量呈能夠儲存、傳送、組合、比較及以其他方式操縱之電或磁信號的形式。已證明將此等信號稱為位元、值、元素、符號、字元、項、數字或其類似者有時為便利的(主要因為普通用途)。
然而,應牢記,所有此等及類似術語與適當物理量相關聯,且僅為應用於此等量之便利標記。除非另外特別陳述,否則如自以下論述顯而易見,應瞭解,遍及描述,利用諸如「處理」或「計算」或「運算」或「判定」或「顯示」或其類似者之詞的論述涉及電腦系統或類似電子計算裝置之進行如下操作之動作及程序:將表示為電腦系統之暫存器及記憶體內之物理(電子)量的資料操縱及變換為類似地表示為電腦系統記憶體或暫存器或其他此等資訊儲存、傳輸或顯示裝置內之物理量的其他資料。
本文中所描述之實施例亦係關於用於執行本文中之操作之設備。此設備可經專門建構以用於所需目的,或此設備可包含由儲存於電腦中之電腦程式選擇性地啟動或重組配的通用電腦。此電腦程式可儲存於電腦可讀儲存媒體中,電腦可讀儲存媒體諸如(但不限於)任何類型之磁碟,包括軟性磁碟、光碟、CD-ROM及磁光碟、唯讀記憶體(ROM)、隨機存取記憶體(RAM)、EPROM、EEPROM、磁性或光學卡,或適於儲存電子指令且各自耦接至電腦系統匯流排的任何類型之媒體。
本文中所呈現之演算法及顯示器並非固有地與任何特定電腦或其他設備相關。各種通用系統可根據本文中之教示與程式一起使用,或其可證明為便於建構更專門的設備以執行所需方法步驟。用於多種此等系統之所需結構將自下文之描述出現。另外,未參考任何特定程式設計語言來描述本發明。將瞭解,多種程式設計語言可用於實施如本文中所描述的本發明之教示。
機器可讀媒體包括用於儲存或傳輸呈可由機器(例如,電腦)讀取之形式的資訊之任何機制。舉例而言,機器可讀媒體包括唯讀記憶體(「ROM」);隨機存取記憶體(「RAM」);磁碟儲存媒體;光學儲存媒體;快閃記憶體裝置等。
雖然一般技術者在已閱讀前述描述之後將毫無疑問地顯而易見本發明之許多更改及修改,但應理解,借助於說明展示及描述的任何特定實施例決不意欲被視為限 制性的。因此,對各種實施例之細節的參考不欲限制申請專利範圍之範疇,申請專利範圍本身僅列舉被視為本發明必不可少之彼等特徵。
201、202、203、204、205、206、207、208、211、212、213、214‧‧‧處理區塊

Claims (25)

  1. 一種運算設備,其包含:一對處理單元,其使用寫入操作以同級間通訊與彼此通訊,其中該對處理單元中之每一處理單元包含:一通訊單元,其用以將資訊自該對處理單元中之一個處理單元傳輸至該對處理單元中之另一處理單元;記憶體,其用以儲存重置同步資訊及訊息資訊;以及處理邏輯,其用以基於該記憶體中所設定之位元指示來進行該處理邏輯自身與該另一處理單元之間的唯寫重置同步,而該處理邏輯並未執行在該另一處理單元之一記憶體上和重置相關之一讀取操作,其中該等位元指示之至少一者是由該另一處理單元所執行之一寫入操作之一結果。
  2. 如請求項1之設備,其中該記憶體包括用於一位元集合之儲存,該位元集合之一或多個位元表示由該另一處理單元所設定的關於重置同步之一指示,且該位元集合之一或多個位元無關於重置同步、由該另一處理單元所發送。
  3. 如請求項2之設備,其中該位元集合之一第一位元為該另一處理單元將不再傳輸與重置同步無關之異動的一指示。
  4. 如請求項3之設備,其中該位元集合之一第二位元為該另一處理單元丟棄由該一個處理單元所發送無關於重置同步之未處理訊息的一指示。
  5. 如請求項4之設備,其中該位元集合之一第三位元為自該另一處理單元對該一個處理單元用以基於該等第一及該第二位元中何者被最後設定在關於該等第一及該第二位元之一設定間消除歧義的一請求。
  6. 如請求項4之設備,其中該一個處理單元之該處理邏輯藉由如下操作來同步該一個處理單元自身與該另一處理單元之間的重置:在該另一處理單元中設定一第一指示以指示該一個處理單元已停用無關於重置同步之傳出訊務,自該記憶體讀取由該另一處理單元所設定的該另一處理單元的無關於重置同步之傳出訊務已停用之一第二指示,回應於讀取該第二指示,清除儲存於該記憶體中無關於重置同步且自該另一處理單元接收的訊息資訊,在該另一處理單元中設定一第三指示以指示該一個處理單元已清除無關於重置同步之殘餘傳入訊務,自該記憶體讀取由該另一處理單元所設定的一第四指示,其指示該另一處理單元已清除自該一個處理單元所接收的儲存於該記憶體中無關於重置同步之傳入訊息資訊,且恢復與該另一處理單元之通訊。
  7. 如請求項4之設備,其中該另一處理單元之該處理邏輯 藉由如下操作來同步該另一處理單元與該一個處理單元之間的重置:在第一處理單元中設定一第一指示以指示該另一處理單元已停用無關於重置同步之傳出訊務,自該記憶體讀取由該一個處理單元所設定的該一個處理單元的無關於重置同步之傳出訊務已停用之一第二指示,自該記憶體讀取由該一個處理單元所設定的一第三指示,其指示該一個處理單元已清除儲存於該記憶體中的無關於重置同步且自該另一處理單元所接收的訊息資訊,回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該一個處理單元所接收的訊息資訊,在該一個處理單元中設定一第四指示以指示該另一處理單元已清除無關於重置同步之殘餘傳入訊務,以及在自該一個處理單元接收至少一個傳入訊息之後,恢復與該一個處理單元之通訊。
  8. 如請求項6之設備,其中當接收到該另一處理單元已停用其無關於重置同步之傳出訊務的該第二指示時,該一個處理單元再次向該另一處理單元報告其當前重置同步狀態。
  9. 如請求項7之設備,其中當接收到該一個處理單元已停 用其無關於重置同步之傳出訊務的該指示時,該另一處理單元再次向該一個處理單元報告其當前重置同步狀態。
  10. 如請求項1之設備,其中該對處理單元為一積體電路中之處理核心。
  11. 如請求項1之設備,其中該對處理單元並非一個積體電路之部分。
  12. 如請求項1之設備,其中該一個處理單元藉由在該另一處理單元中之一控制狀態暫存器(CSR)暫存器中寫入一位元而在該另一處理單元中設定該等位元指示。
  13. 如請求項6之設備,其中該當前儲存訊息資訊包含一訊息、同級者相關請求資訊及同級者相關狀態資訊中之一或多者。
  14. 一種在使用寫入操作通訊之一第一同級者與一第二同級者之間同步重置的方法,該方法包含:對於該第一同級者,在第二處理單元中設定一第一指示以指示該第一同級者已停用無關於重置同步之傳出訊務,自記憶體讀取由該第二同級者所設定的該第二同級者的無關於重置同步之傳出訊務已停用之一第二指示,回應於讀取該第二指示,清除儲存於該記憶體中的無關於重置同步且自該第二同級者所接收的訊息資訊, 在使用通訊單元之該第二同級者中設定一第三指示以指示該第一同級者已清除無關於重置同步之殘餘傳入訊務,自該記憶體讀取由該第二同級者所設定的一第四指示,其指示該第二同級者已清除自該第一同級者所接收的儲存於該記憶體中的無關於重置同步之傳入訊息資訊,以及恢復與該第二同級者之通訊。
  15. 如請求項14之方法,其進一步包含:對於該第二同級者,在該第一同級者中設定一第一指示以指示該第二同級者已停用無關於重置同步之傳出訊務;自該記憶體讀取由該第一同級者所設定的該第一參與者的無關於重置同步之傳出訊務已停用之一第二指示;自該記憶體讀取由該第一同級者所設定的一第三指示,其指示該第一同級者已清除儲存於該記憶體中的無關於重置同步且自該第二同級者所接收的訊息資訊;回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該第一同級者所接收的訊息資訊;在使用該通訊單元之該第一同級者中設定一第四指示以指示該第二同級者已清除無關於重置 同步之殘餘傳入訊務;以及在自該第一同級者接收至少一個傳入訊息之後,恢復與該第一同級者之通訊。
  16. 如請求項15之方法,其進一步包含該第一及該第二同級者中之一者或兩者在自另一同級者接收到該另一同級者已停用無關於重置同步之傳出訊務的一報告之後,再次向該另一同級者報告當前重置同步狀態。
  17. 如請求項15之方法,其進一步包含該等第一及第二同級者中之一者清除自該等第一及第二同級者中之另一者所接收的當前儲存訊息資訊。
  18. 如請求項15之方法,其中設定該第一、該第二、該第三或該第四指示中之任一者包含在該各別第一或第二同級者中之一控制狀態暫存器(CSR)暫存器中寫入一位元。
  19. 如請求項15之方法,其中該當前儲存訊息資訊包含一訊息、同級者相關請求資訊及同級者相關狀態資訊中之一或多者。
  20. 如請求項15之方法,其進一步包含當藉由該等第一及第二同級者中之一者或兩者的一或多個重置在重置同步期間發生時維持該重置同步。
  21. 如請求項14之方法,其中該一或多個重置包含藉由兩個同級者的交錯或同時重置。
  22. 一種具有一或多個儲存指令之非暫時性電腦可讀儲存媒體的製品,該等指令在由第一及第二同級者所執行時 致使該等第一及第二同級者執行用於在使用寫入操作彼此通訊之該第一同級者與該第二同級者之間同步重置的一方法,該方法包含:對於該第一同級者,在第二處理單元中設定一第一指示以指示該第一同級者已停用無關於重置同步之傳出訊務,自記憶體讀取由該第二同級者所設定的該第二同級者的無關於重置同步之傳出訊務已停用之一第二指示,回應於讀取該第二指示,清除儲存於該記憶體中的無關於重置同步且自該第二同級者所接收的訊息資訊,在使用通訊單元之該第二同級者中設定一第三指示以指示該第一同級者已清除無關於重置同步之殘餘傳入訊務,自該記憶體讀取由該第二同級者所設定的一第四指示,其指示該第二同級者已清除自該第一同級者所接收的儲存於該記憶體中的無關於重置同步之傳入訊息資訊,以及恢復與該第二同級者之通訊。
  23. 如請求項22之製品,其中該方法進一步包含:對於該第二同級者,在該第一同級者中設定一第一指示以指示該第二同級者已停用無關於重置同步之傳出訊務,自該記憶體讀取由該第一同級者所設定的該第一 同級者的無關於重置同步之傳出訊務已停用之一第二指示,自該記憶體讀取由該第一同級者所設定的一第三指示,其指示該第一同級者已清除儲存於該記憶體中的無關於重置同步且自該第二同級者所接收的訊息資訊,回應於讀取該第三指示,清除儲存於該記憶體中的無關於重置同步且自該第一同級者所接收的訊息資訊,在使用該通訊單元之該第一同級者中設定一第四指示以指示該第二同級者已清除無關於重置同步之殘餘傳入訊務,以及在自該第一同級者接收至少一個傳入訊息之後,恢復與一個處理單元之通訊。
  24. 如請求項23之製品,其進一步包含該第一及該第二同級者中之一者或兩者在接收到另一同級者的無關於重置同步之傳出訊務已停用的一報告時,再次向該另一同級者報告當前重置同步狀態。
  25. 如請求項23之製品,其中該方法進一步包含該第一及該第二同級者中之一者或兩者清除自該第一及該第二同級者中之另一者所接收的當前儲存訊息資訊。
TW104136856A 2014-12-18 2015-11-09 用於唯寫處理器間的重置同步之方法及設備 TWI599893B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/576,019 US9678808B2 (en) 2014-12-18 2014-12-18 Method and apparatus for write-only inter-processor reset synchronization

Publications (2)

Publication Number Publication Date
TW201633175A TW201633175A (zh) 2016-09-16
TWI599893B true TWI599893B (zh) 2017-09-21

Family

ID=54557254

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104136856A TWI599893B (zh) 2014-12-18 2015-11-09 用於唯寫處理器間的重置同步之方法及設備

Country Status (5)

Country Link
US (1) US9678808B2 (zh)
EP (1) EP3035202B1 (zh)
KR (1) KR101775459B1 (zh)
CN (1) CN105718418B (zh)
TW (1) TWI599893B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10025741B2 (en) 2016-01-13 2018-07-17 Samsung Electronics Co., Ltd. System-on-chip, mobile terminal, and method for operating the system-on-chip

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6154785A (en) 1998-07-17 2000-11-28 Network Equipment Technologies, Inc. Inter-processor communication system
CN102077181B (zh) * 2008-04-28 2014-07-02 惠普开发有限公司 用于在多核处理器中和在某些共享存储器多处理器系统中产生并输送处理器间中断的方法和系统
US8930676B2 (en) 2010-12-22 2015-01-06 Via Technologies, Inc. Master core discovering enabled cores in microprocessor comprising plural multi-core dies
US8782451B2 (en) * 2010-12-22 2014-07-15 Via Technologies, Inc. Power state synchronization in a multi-core processor

Also Published As

Publication number Publication date
EP3035202B1 (en) 2019-08-21
TW201633175A (zh) 2016-09-16
US20160179585A1 (en) 2016-06-23
US9678808B2 (en) 2017-06-13
EP3035202A1 (en) 2016-06-22
KR20160074393A (ko) 2016-06-28
CN105718418B (zh) 2019-06-28
CN105718418A (zh) 2016-06-29
KR101775459B1 (ko) 2017-09-06

Similar Documents

Publication Publication Date Title
RU2579140C1 (ru) Физический уровень высокопроизводительного межсоединения
US11698879B2 (en) Flexible on-die fabric interface
EP3235195B1 (en) Spatially divided circuit-switched channels for a network-on-chip
US9979668B2 (en) Combined guaranteed throughput and best effort network-on-chip
EP3235196B1 (en) Pipelined hybrid packet/circuit-switched network-on-chip
US9921989B2 (en) Method, apparatus and system for modular on-die coherent interconnect for packetized communication
US11868296B2 (en) High bandwidth core to network-on-chip interface
EP3230818A1 (en) Edge-aware synchronization of a data signal
KR20160051883A (ko) 가상 재시도 큐
JP2021090188A (ja) ストリーミングファブリックインタフェース
TWI599893B (zh) 用於唯寫處理器間的重置同步之方法及設備
EP3235194B1 (en) Parallel direction decode circuits for network-on-chip
US20240232115A1 (en) High bandwidth core to network-on-chip interface