TWI516942B - 分配位址至互連上之裝置 - Google Patents
分配位址至互連上之裝置 Download PDFInfo
- Publication number
- TWI516942B TWI516942B TW102121117A TW102121117A TWI516942B TW I516942 B TWI516942 B TW I516942B TW 102121117 A TW102121117 A TW 102121117A TW 102121117 A TW102121117 A TW 102121117A TW I516942 B TWI516942 B TW I516942B
- Authority
- TW
- Taiwan
- Prior art keywords
- command
- response
- random number
- devices
- device identifier
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0052—Assignment of addresses or identifiers to the modules of a bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Mathematical Physics (AREA)
- Information Transfer Systems (AREA)
- Small-Scale Networks (AREA)
- Communication Control (AREA)
Description
本發明係關於一種設備,特別是關於一種分配位址至互連上之裝置。
為了使耦接至如通用序列匯流排(USB)互連之互連的裝置能通訊,列舉程序首先發生以識別耦接至互連的一或更多裝置。此程序通常由連接至匯流排的主機控制器實作。目前的列舉方法具有複雜性,因為其通常需要由所連接裝置之主機控制器進行的先驗知識,具有如地理定址的預定需要,或需要如單獨晶片選擇選擇信號的額外通訊。由此而論,目前的列舉方法可能不適用於所有情況。而且,隨著目前方法產生的另一項問題在於在一些情況下,會有由於更多電路、接腳、複雜性等進行列舉方法而增加成本的缺點。
10‧‧‧系統
20‧‧‧第一裝置
30‧‧‧第二裝置
22‧‧‧PHY
32‧‧‧PHY
25‧‧‧互連
100‧‧‧封包
1050-105z‧‧‧開始位元
110‧‧‧前置碼部分
120‧‧‧內容部分
130‧‧‧錯誤偵測部分
140‧‧‧前置碼部分
200‧‧‧系統
210‧‧‧主機控制器
2120-2122‧‧‧埠口
220‧‧‧集線器裝置
2220-222n‧‧‧埠口
2300-230n‧‧‧裝置
2350-235n‧‧‧裝置
205-215‧‧‧方塊
230‧‧‧方法
235-270‧‧‧方塊
300‧‧‧方法
305-370‧‧‧方塊
400‧‧‧方法
410-470‧‧‧方塊
500‧‧‧裝置
510a-510n‧‧‧核心
520‧‧‧IP邏輯
530‧‧‧LPS協定堆疊
535‧‧‧ID邏輯
540‧‧‧隨機數產生器
550‧‧‧ID暫存器
560‧‧‧記憶體
565‧‧‧記分板
570‧‧‧LPS互連
600‧‧‧系統
610‧‧‧基頻處理器
620‧‧‧使用者介面/顯示器
630‧‧‧快閃記憶體
635‧‧‧動態隨機存取記憶體
640‧‧‧擷取裝置
645‧‧‧感測器裝置
670‧‧‧RF收發器
675‧‧‧無線區域網路收發器
680‧‧‧天線
第1圖係依照本發明之實施例之經由互連所耦接的一
對裝置之方塊圖。
第2圖係依照本發明之實施例之封包的方塊圖。
第3圖係依照本發明之實施例之連接裝置與主機控制器的方塊圖。
第4圖係依照本發明之實施例之用於進行互連操作的方法之流程圖。
第5圖係依照本發明之實施例之用於從主機控制器的角度進行ID分配的方法之流程圖。
第6圖係依照本發明之一實施例之用於從不具有預定裝置ID之裝置的角度進行裝置ID分配的方法之流程圖。
第7圖係依照本發明之一實施例之用於從具有預定裝置ID之裝置的角度進行裝置ID分配的方法之流程圖。
第8圖係依照本發明之一實施例之配置以進行位址分配的裝置之方塊圖。
第9圖係能藉其使用實施例之示範系統的方塊圖。
分配唯一位址給連接至多點匯流排的裝置可能是在裝置之間建立有用通訊的先決條件。考慮到主機控制器(HC)當作耦接至多個裝置的主機之情況,其中每個裝置被分配唯一位址。實施例可提供用於耦接至互連之裝置的位址分配而無須地理定址或其他類型的硬體編碼位址,雖然這類技術係可能的。在一些實施例中,能連同那些位址技術之任一或兩者來使用混合的環境。
在一實施例中,耦接至HC的裝置在來自HC的命令下能基於每個裝置所產生的隨機數來產生位址而作為一種歧異消除的手段。隨機數能設成足夠大,使得兩個裝置產生相同數的機率非常低。例如在一些實施例中,假設一種其中少於約16個裝置能耦接至相同互連的系統,此隨機數可在約12和32個位元之間的順序上。
在一實施例中,所述之互連是低功率序列(LPS)互連,其係為能用以主要耦接系統內之裝置至如SoC之主處理器的序列多點匯流排,也稱為箱內IO狀況。此互連可為如USB之現存軟體模型提供支援。耦接至此互連的每個裝置能配置有唯一位址,稱為裝置識別符(ID)、或簡稱為ID。雖然本文所述之分配技術適用於動態分配,但允許靜態地分配這些ID,甚至具有靜態分配之ID的裝置可配置以理解協定。
耦接至互連的每個裝置可具有如ID暫存器的儲存器以儲存至少與裝置之最大數量一樣多的數量在互連上。為了說明之目的,假設裝置的最大數量是16或更少,則允許4位元的裝置ID。此外,每個裝置能配置以產生一些預定長度,其基本上是隨機的,或至少與由其他裝置產生的對應隨機數不相關。
現在參考第1圖,顯示出依照本發明之實施例之經由互連所耦接的一對裝置之方塊圖。如第1圖所示,系統10包括經由互連25來耦接至第二裝置30的第一裝置20。在一實施例中,第一裝置20可相當於如單晶片系統
(SoC)之系統的主處理器,而第二裝置30可以是如多個感測器或其他低資料速率裝置之其一者的周邊裝置。
在第1圖之實施例中,互連25可以是本文將進一步說明之具有協定的低功率序列(LPS)。在各種實施例中,此互連可以是相對較低的負擔及降低複雜性的協定以在低功率下(例如,在遠低於如通用序列匯流排(USB)互連之其他序列互連的程度下)啟動操作。實施例可適用於通用低或中度效能的通訊,例如在低於每秒約1gigabit(Gbps)的資料速率下為點對點或適當終止的連線,且在用於不終止的連線之約10-100Mbps之間的範圍內提供感測器資料、配置資訊或之類。在其他實施例中,這種類型的互連可作為邊帶機制以提供單獨鏈結的邊帶管理。
如第1圖進一步所見,每個裝置可包括實體單元(PHY)以提供經由互連25來編碼和處理傳輸/接收。如圖所見,第一裝置20可包括PHY 22而第二裝置30可包括PHY 32。
為了提供在低功率下進行通訊,實施例可提供相對降低之複雜性的有線協定。此協定可具有各種元件,包括:提供封包之間的匯流排閒置,即使相同的主機傳遞多個封包(由此簡化了接收器複雜性);為了位元鎖住的前置碼;在傳輸端的前置碼,以提供回到鏈結的閒置狀態,而使接收器明確地識別出傳輸端而無需高級機制;並為資料通訊提供預訂編碼,例如根據8位元/9位元(8b/9b)編碼之編碼以使得容易識別各種封包資訊。
在一實施例中,8b/9b編碼可以是如下:針對8位元的每個資料位元組,可提供額外的開始位元。此開始位元可以是交替值(例如,0接著1)。請注意在一些實施例中,封包之資料部分的最後位元組不依照這種交替模式以在封包的前置碼部分之前標記最後位元組。
現在參考第2圖,顯示出依照本發明之實施例之封包100的方塊圖。如第2圖所見,封包100詳述用於在LPS互連上通訊之封包格式的協定。一般來說,由於封包之信息部分可以是相對較小的長度,例如在一些實施例中是在約1到64位元組之間,因此封包100可以是相對有限的長度。
如圖所見,封包100能始於開始位元1050,其為多個開始位元1050-105z之其一者,每一個都會散置於各封包,由此在封包中容納資訊之8b/9b編碼。在此開始位元之後,可提供前置碼部分110。此前置碼部分可以是預定值,例如第2圖所示之一連串交替邏輯1和邏輯0位元以使接收器能識別封包的開始。這是特別如此的,因為使用開汲極型的連接和耦接至互連的上拉暫存器,所以邏輯1值之可能長週期可在傳輸特定封包之前出現在互連上。
如第2圖進一步所見,在前置碼部分110之後,可出現第二開始位元1051。如圖所見,此開始位元是對第一開始位元1050的交替值。之後,可提供能由可能為預定(或能基於通訊本身來定義)之長度形成的內容部分120。在各種實施例中,此內容部分120可包括第一初始
8位元區塊(由此形成具有開始位元1051的9位元區塊)及一或更多(且可能是0)後續的9位元區塊。在一實施例中,這些9位元區塊之各者能稱為一個符元。
在內容部分120之後,可提供另一開始位元105n。請注意在第2圖中,當此後續的開始位元105n是0值時,假設內容部分120包括奇數個9位元符元。
然後,可在封包內提供錯誤偵測部分130。此錯誤偵測部分可為倒置的或內容部分120的1補數版本,且如將於下進一步所述,能被接收器使用以偵測通訊中的錯誤。最後,提供終端開始位元105z且之後前置碼部分140出現,其又可為預定值,例如如第2圖所見之重覆邏輯1和0的4位元模式。
雖然為了便於說明而未顯示出,但了解在此封包的通訊之後,互連可回到邏輯高準位,直到傳遞下一個封包為止,給定出現的開汲極配置和上拉暫存器並耦接至互連。再注意,雖然為了說明之目的而顯示有封包的此特定實作,應了解到針對其他實施例而考慮其他封包類型。例如,可出現前置碼的不同值和前置碼部分。再者,可提供用於開始位元的不同替代或其他模式。又,在一些實施例中也可出現內容和內容偵測部分的不同配置。還請注意在一些實施例中,為了電磁干擾(EMI)降低之目的可提供資料資訊之一些拌碼類型。存在其他的可能性,例如提供定義之位址部分等等。
也請注意在各種實施例中,內容部分120在開始部分
可包括封包之傳送器的唯一識別符,其能經由能被靜態或動態決定之唯一位址來實作。透過提供在內容部分內(因此在每個傳遞之封包內)的唯一識別符,即使在這兩個元件同時開始傳送的情況下仍能保證會偵測到碰撞封包。
在一些實施例中,可使用每個元件能嘗試傳送封包並監控互連上之碰撞的碰撞偵測來進行在經由上述互連所耦接之元件之間的仲裁。因此,出現在耦接至上述互連之每個元件中的PHY可提供用於碰撞偵測,例如,經由開汲極連接。
在一些實施例中,用於此互連的協定可提供某些參數,例如傳輸之間的最小閒置/週轉時間。例如在一實施例中,針對應答型的回應,可能出現一個符元時間的週轉時間(其如以上論述可相當於9位元部分)。且針對回到閒置狀態,可出現最小的1符元時間。
在一些實施例中,也可提供重試機制。例如,在提供用於上述重試機制的實作中,若沒有當預期時會收到的任何應答,則,傳送器若是主機或上游裝置便可在預定數的符元時間之後,或傳送器若是目標或下游裝置便可在一秒(例如,更長預定數的符元時間)之後,進行重試傳輸。在一個上述實施例中,主機為基的重試機制可出現在約11和17個符元之間之後而無接收預期之應答,而接收器為基的重試機制可出現在約31和43個符元之間之後而無接收預期之應答。在其他實施例中,這類應答機制可出現在如上級協定所指之另一間隔之後。一般來說,重試計時
器可設成大於X,其中X是在待收到之應答內的預期時間。也請注意值可取決於最大封包大小。亦請注意在不同方向上的不同和非重疊視窗可確保避免重覆的碰撞。
現在參考第3圖,顯示出依照本發明之實施例之連接裝置與主機控制器的方塊圖。如第3圖所示,系統200可以是如特定個人電腦(PC)為基的系統、伺服器系統或之類之計算系統的一部分。在一些實施例中,系統可以是如膝上型或筆記型電腦、UltrabookTM、智慧型手機、平板電腦或之類的可攜式裝置。如圖所見,系統200包括當作用於依照本發明之實施例之一或更多LPS互連的主機之主機控制器210。如第3圖所示,主機控制器包括三個LPS埠口2120-2122。雖然為了說明之目的而顯示有此有限數量的埠口,但了解本發明之範圍並不限於此方面。每個埠口可提供用於以雙向方式經由鏈結來通訊。更具體來說,通訊可為資料和時脈資訊,例如雙向差動資料和差動時脈信號。
如圖所見,第一埠口2120耦接至集線器裝置220。在各種實施例中,裝置220可以是用以啟動LPS主機控制器210與根據如USB裝置(例如,USB2裝置)之另一互連協定的裝置之間轉換和接介的集線器裝置。由此而論,除了在不同協定之間轉換資料資訊之外,集線器220還可提供電壓轉換,例如經由LPS鏈結從具有1.0伏特系統操作的信號轉換為3.3伏特信號以經由USB2來通訊。如圖所見,集線器220能包括複數個埠口(例如,埠口2220-
222n),其能提供作為連接外部裝置或內部裝置的埠口。
在第3圖也看見,主機控制器210的第二埠口2121可提供用於與複數個LPS裝置2300-230n通訊。這些裝置230可以是經由具有差動資料和時脈鏈結之多點匯流排的相對較低速度操作(例如,低於約100Mbps)。再者,為了提供在較高速下與較高速裝置通訊,獨立埠口2122可與較高速LPS裝置2350-235n通訊(因為這些裝置可在高於約100Mbps的速度下操作)。
請注意可啟動主機控制器210以提供支援橋接LPS與用於相容性之傳統裝置(例如USB2裝置)。在一實施例中,主機控制器210可當在較低功率準位下操作時,例如由於在較低電壓(例如,1伏特)下操作的電壓軌,再使用USB2協定堆疊並保留USB編程模型。以此方式,當LPS互連可當作多點匯流排時,能隨著減少的接腳數來實現本質上較低的主動和閒置功率。
現在參考第4圖,顯示出依照本發明之實施例之進行互連操作的方法之流程圖。如第4圖所示,方法200可始於包括方塊205和210的初始化程序。在上述操作期間,互連可在單端開汲極信號傳遞模式中操作以確保偵測到碰撞。而且,在列舉階段期間,所有裝置在足夠慢之資料速率下操作,使得開汲極信號傳遞將運作(例如,低於每秒約1megabit(Mbit/s))並可保證將偵測到資料碰撞。能在重設之後進行上述初始化操作,除非已明確地保存狀態資訊。亦即,能當耦接至互連的一或更多裝置不具有非揮
發性儲存器或不在進入低功率或關閉狀態之前保存其狀態資訊時進行這些初始化操作。另外,可依需求在運轉時間進行上述初始化操作,例如以支援電源閘控裝置。
具體來說,在方塊205中,進行列舉階段,其中能分配唯一裝置識別符(裝置ID)給耦接至互連的每個裝置。請注意裝置ID分配可獨立於協定配置操作。也就是說,耦接至互連的一或更多裝置能具有在不干擾其他配置裝置的情況下就能修改的裝置ID。以下將進一步討論位址分配程序的細節。
接下來,在方塊210中,能對先前未配置的裝置進行裝置搜尋和配置。上述搜尋和配置程序可包括決定裝置類型、製造商、型號、資源需求、對特定驅動程式軟體的關聯、及分配如位址、中斷向量的資源、等等。在上述初始化操作之後,控制傳至方塊215,其中可開始正常操作。請注意針對主動傳輸,非開汲極信號傳遞可隨著在閒置模式中切換而發生以允許中斷機制。因此,匯流排在一些狀態下停在閒置,其中通常只有允許一個裝置驅動匯流排。然而,任何裝置能經由此電路機制來請求服務以使任何裝置指出對服務的請求,其通常會在一些類型的查詢或輪詢之後以決定對服務的請求來源。
在一些實施例中,可能有某些基本假設,具體來說:沒有預先建立之唯一ID的裝置能實作隨機數產生器;匯流排以一致可偵測方式來碰撞損毀資料,但為非損壞的;及ID範圍小(例如,4位元)。
在一實施例中,位址分配協定可包括下列命令:ID_Poll命令,其中定址的裝置以裝置之儲存的隨機數來回應(請注意裝置ID係由回應所暗指),在此數的補數之後;Change_Random,其中沒有鎖住之位址(參見下面的ID_Lock)的所有裝置重新產生其隨機數;ID_Lock命令,其中定址之裝置忽略隨後的Change_Random命令,直到發生重設為止;及ID_Complete,其中裝置被通知已完成位址分配程序。
一般來說,列舉始於HC發出每個裝置解碼和回應的ID_POLL命令。ID_POLL封包包含封包識別符和ID。裝置以三種可能方式之其一者來回應:1)若封包中的ID都不符合裝置中的任何ID,則不回傳;2)若只有一個裝置符合,則回傳在1補數之後的隨機數,使得HC將判斷隨機數和其補數是一致的(例如,使得值的總和或互斥OR等於預定數);及3)若二或更多裝置符合ID_POLL命令的ID,則每個將回傳其各自隨機數和其補數,由於兩個隨機數不同,因此將有資料損毀。藉由使裝置回傳其隨機數和補數,有可能使HC判斷一個和只有一個裝置正當出現一致資料部分和錯誤偵測部分時回應。請注意裝置之隨機數能配置以映射至其ID。在一實施例中,若(且唯若)能知道此數將與任何其他裝置相衝突及/或只有一些部分的數實際上可能是隨機的先驗,則裝置可實作預定隨
機數。有了足夠大的隨機數,偵測隨機數與其補數之間損毀(由於資料碰撞)的機率趨近於一。
此輪詢程序可隨著HC走過其整個ID欄位而發生,判斷哪些裝置具有唯一ID且哪個裝置共享ID。針對具有唯一ID的所有那些裝置,HC發出ID_LOCK命令,其包含待鎖住的ID值。此命令鎖住對應之裝置(以及還有其隨機數產生器)的ID,使得隨後的重新隨機化命令沒有任何影響。具有尚未鎖住之ID的所有裝置可配置以使命令中的位址值無效,以防止上述裝置映射至已選擇之ID。
接著,HC發出只有那些ID未鎖住之裝置回應的CHANGE_RANDOM命令。此命令可能導致受影響的裝置重新產生其隨機數,其接著導致產生新的ID映射。
主機控制器可重覆以上操作,直到每個裝置具有唯一ID為止。當ID分配階段完成時,可去能隨機數產生器電路以節省電力。
現在參考第5圖,顯示出依照本發明之實施例之用於從主機控制器的角度進行ID分配的方法之流程圖。
如圖所見,方法230可反應於重設而開始。在此,記分板(其可在主機控制器中或可透過高級機制(例如,在系統軟體中)實作)可被清除所有分配之ID。請注意此記分板可以是非揮發性或其他儲存器,用以儲存耦接至互連的裝置及其對應之裝置ID之指示。
仍參考第5圖,接著主機控制器可發出第一命令,即
Change_Random命令(方塊240)。此命令導致具有未分配之ID的裝置重新產生新隨機數和裝置ID。
控制接著傳至方塊245,在此能選擇未分配位址(A)且主機控制器能發出第二命令(即ID_Poll(A)命令),以藉此從具有此位址A的任何裝置請求回應。之後控制傳至菱形250,在此能判斷是否在預定時間內從裝置收到任何有效回應。此判斷能基於是否在預定時間間隔內收到正確回應,在一實施例中,其能在約1和20個符元之間的順序上。若否,則控制傳回至方塊240以發送另一Change Random命令。
若收到有效回應,則控制傳至方塊260,在此位址可由此被分配並標記為被分配,並能傳送第三命令(即ID_Lock(A)命令)以藉此導致正確回應之裝置鎖住位址給裝置。請注意標記未分配位址可在記分板中。控制接著傳至菱形265,在此能判斷是否已檢查所有位址。若否,則控制傳回至上面的方塊245。否則,控制傳回至方塊270,在此可發出第四命令(即ID_Complete命令)以藉此對裝置指出完成了位址分配程序。
現在回到第6圖,顯示出用於從不具有預定裝置ID之裝置的角度進行裝置ID分配的方法之流程圖。如圖所見,方法300可始於在正常操作期間重設或接收Change_Random命令(方塊305)。控制接著傳至方塊310,在此能清除記分板上所有分配之ID。請注意此記分板可包括在裝置中或關聯於裝置。控制接著傳至方塊
315,在此能從未分配之裝置ID中選擇隨機數(R)和隨機識別符(即當作裝置ID的識別符)。在此初始流程中,當剛剛已清除記分板時,在裝置中就認為沒有任何分配之ID。
之後控制傳至方塊320,在此裝置等待命令。若收到的命令是Change_Random命令,如在菱形325中所判斷,則控制傳回至上面的方塊315。否則,控制傳至菱形330以判斷它是否是ID_Poll命令。若是,則控制傳至菱形350以判斷關聯於此ID_Poll命令的位址是否符合裝置ID(即隨機產生的ID)。若否,則控制傳至上面的方塊320。若位址符合,則控制傳至方塊355,在此裝置可回傳回應給主機控制器。如以上討論,此回應可指出在回應新隨機數(R)的資料部分中,且此資訊之對應補數可包括在回應的錯誤偵測部分中。於是,控制再次傳至上面的方塊320。
若收到的信息並非ID_Lock信息,如在菱形340中所判斷,則控制傳至菱形360以判斷關聯於ID_Lock請求的位址是否符合隨機ID。若是,則控制傳至方塊365,在此裝置可鎖住其ID給此隨機ID值,且然後裝置可等待位址分配程序以經由ID_Complete命令來完成,其當在菱形370中收到時會導致方法結束。請注意在一實施例中,ID_Lock命令可導致裝置儲存其隨機ID和隨機數在裝置之位址暫存器中以及在記分板中之裝置的對應項目中。請注意若錯誤發生,則控制傳至方塊345,在此可完成方
法。雖然在第6圖之實施例中在此高層級下顯示出,但應了解本發明之範圍並不限於此方面。
因此,實施例不需要HC所進行的任何先驗知識、地理定址、或對單獨晶片選擇信號的需要。此外,實施例會對所列舉之裝置數量不敏感且能在運行下或當額外裝置通電時進行發現,由此支援外掛程式和執行而無須選擇性地致能和去能埠口。在多個配置中,互連可能呈現像是連接更高協定級的USB互連,部分是由於本文所述之位址分配。
實施例能因此使用在許多不同環境中。現在參考第7圖,顯示出用於從具有預定裝置ID之裝置的角度進行裝置ID分配的方法之流程圖。如圖所見,方法400可始於在正常操作期間重設或接收Change_Random命令(方塊405)。控制接著傳至方塊410,在此裝置等待命令。若收到的命令是Change_Random命令,如在菱形425中所判斷,則控制傳回至在方塊410中等待。否則,控制傳至菱形430以判斷它是否是ID_Poll命令。若是,則控制傳至菱形450以判斷關聯於此ID_Poll命令的位址是否符合裝置ID(即預先分配的裝置ID)。若否,則控制回傳至在方塊410中的等待狀態。若位址符合,則控制傳至方塊455,在此裝置可回傳回應給主機控制器。在這種情況下,回應可指出在以未分配位址來回應裝置之相同回應格式的資料部分中。控制再次傳至在方塊310中的等待狀態。
若收到的信息並非ID_Lock信息,如在菱形440中所判斷,則控制傳至菱形460以判斷關聯於ID_Lock請求的位址是否符合預先分配的ID。若是,則控制傳至方塊465,在此裝置可鎖住其ID給此隨機ID值,且然後裝置可等待位址分配程序以經由ID_Complete命令來完成,其當在菱形470中收到時會導致方法結束。請注意若錯誤發生,則控制傳至方塊445,在此可完成方法。雖然在第7圖之實施例中在此高層級下顯示出,但應了解本發明之範圍並不限於此方面。
現在參考第8圖,顯示出配置以進行如本文所述之位址分配的裝置之方塊圖。如圖所見,裝置500可以是包括各種邏輯的積體電路(IC)。在不同實作中,此裝置可以是如耦接至SoC之周邊裝置的箱內裝置,或可以是經由外部埠口來耦接至系統的外部裝置。
在所示之實施例中,裝置500可包括複數個核心510a-510n,其可以是同質或異質的核心。當然,儘管顯示出多個核心,但應了解在其他實作中,可能存在單一核心。且進一步有可能的是裝置可能不包括任何核心,而是具有一或更多其他邏輯方塊。此外,IP邏輯520可能存在且能用以進行專門操作,例如,能藉由一或更多核心來卸載它的一或更多功能。
為了進行位址分配操作之目的,ID邏輯535可能存在且能耦接至LPS協定堆疊530,其通常可包括與第3圖之主機控制器相同的層狀架構。請注意儘管此實作係特定
參考耦接至LPS互連570的裝置,但應了解實施例也同樣適用於其他序列互連為基的架構。
ID邏輯535可耦接至ID暫存器550,其可儲存接著能反應於從主機控制器收到的命令並使用對能由隨機數產生器540產生的隨機數之映射而由ID邏輯535產生的裝置ID。在一些實作中,請注意專用隨機數產生器可能不存在,且此功能性能實作在例如核心、IP邏輯、或ID邏輯之一或更多者內。
如進一步所見,裝置500又可包括如快取記憶體或之類的記憶體560。此記憶體可包括記分板565,其能包括複數個項目,每個儲存一有效裝置識別符,每個反應於來自主機控制器的命令而儲存以鎖住特定裝置ID。以此方式,隨機數產生器540能產生不與存在於記分板565中之已分配裝置ID相衝突的隨機數。雖然在第8圖之實施例中在此高層級下顯示出,但應了解本發明之範圍並不限於此方面。
實施例能因此使用在許多不同環境中。現在參考第9圖,顯示出能藉其使用實施例之示範系統600的方塊圖。如圖所見,方法600可以是智慧型手機或其他無線通訊器。如在第9圖之方塊圖所示,系統600可包括基頻處理器610,其可以是能處理基頻處理任務以及應用程式處理兩者的多核心處理器。因此,基頻處理器610能進行關於通訊的各種信號處理,以及進行裝置的計算操作。接下來,基頻處理器610能耦接至使用者介面/顯示器620,其
在一些實施例中能由觸控螢幕顯示器實行。另外,基頻處理器610可耦接至包括在第9圖之實施例中非揮發性記憶體(即快閃記憶體630)的記憶體系統和系統記憶體(即動態隨機存取記憶體(DRAM)635)。如進一步所見,基頻處理器610能進一步耦接至如影像擷取裝置的擷取裝置640,其能記錄視頻及/或靜止影像。基頻處理器610能經由如本文所述之LPS互連而進一步耦接至一或更多感測器裝置645。
為了使通訊被傳送和接收,各種電路可耦接於基頻處理器610與天線680之間。具體來說,可能存在射頻(RF)收發器670和無線區域網路(WLAN)收發器675。一般來說,可使用RF收發器670來接收和傳送無線資料並根據如3G或4G無線通訊協定的特定無線通訊協定,例如依照碼分多工存取(CDMA)、行動通訊之全球系統(GSM)、長期演進(LTE)或其他協定來進行呼叫。也可提供如接收或傳輸無線電信號(例如,AM/FM、或全球定位衛星(GPS)信號)的其他無線通訊。此外,經由WLAN收發器675,也能實現如根據BluetoothTM標準或如IEEE 802.11a/b/g/n之IEEE 802.11標準的本地無線信號。請注意基頻處理器610與收發器670和675之一或兩者之間的鏈結可經由低功率收斂互連,其結合並映射PCIeTM互連和如MIPI互連之低功率互連的功能性。雖然在第9圖之實施例中在此高層級下顯示出,但應了解本發明之範圍並不限於此方面。
實施例可使用在許多不同類型的系統中。例如,在一實施例中,通訊裝置能配置以進行本文所述之各種方法和技術。當然,本發明之範圍並不限於通訊裝置,反而其他實施例能涉及處理指令的其他類型之設備,或包括反應於在計算裝置上執行而使裝置實現本文所述之一或更多方法和技術的一或更多機器可讀媒體。
實施例可實作在代碼中且可儲存在具有儲存於其上之能用來程式化系統以進行指令之指令的非暫態儲存媒體上。儲存媒體可包括,但不限於任何類型之磁碟(包括軟碟、光碟、固態硬碟(SSD)、唯讀光碟機(CD-ROM)、可抹寫光碟(CD-RW)、及磁光碟機)、如唯讀記憶體(ROM)的半導體裝置、如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)的隨機存取記憶體(RAM)、可抹除可程式化唯讀記憶體(EPROM)、快閃記憶體、電子可抹除可程式化唯讀記憶體(EEPROM)、磁性或光學卡、或可適用於儲存電子指令的任何其他類型之媒體。
儘管已參考有限數量的實施例來說明本發明,但本領域之熟知技術者將了解其中的許多修改和變化。所附之申請專利範圍係打算涵蓋落在本發明之真實精神和範圍內的所有上述修改和變化。
500‧‧‧裝置
510a-510n‧‧‧核心
520‧‧‧IP邏輯
530‧‧‧LPS協定堆疊
535‧‧‧ID邏輯
540‧‧‧隨機數產生器
550‧‧‧ID暫存器
560‧‧‧記憶體
565‧‧‧記分板
570‧‧‧LPS互連
Claims (22)
- 一種設備,包含:一知識產權(IP)邏輯,用以反應於指令來進行操作;一隨機數產生器,用以反應於來自經由一互連耦接至該設備之一主機控制器的一第一命令來產生一隨機數;及一識別邏輯,用以產生用於該設備的一裝置識別符,其中該設備反應於來自對應於該裝置識別符之該主機控制器之一識別請求來提供一包括該隨機數以及該隨機數之補數的回應給該主機控制器。
- 如申請專利範圍第1項所述之設備,其中該設備反應於來自對應於該裝置識別符之該主機控制器之一識別鎖住請求以儲存該裝置識別符於該設備的一識別儲存器中。
- 如申請專利範圍第2項所述之設備,其中該設備更反應於該識別鎖住請求以儲存該裝置識別符於一記分板中。
- 如申請專利範圍第3項所述之設備,其中該設備反應於來自對應於該裝置識別符之該主機控制器之該識別鎖住請求來關閉該隨機數產生器。
- 如申請專利範圍第2項所述之設備,其中該設備反應於從該主機控制器收到一改變請求來重新產生該隨機數。
- 如申請專利範圍第5項所述之設備,其中該設備重新產生該隨機數以獲得未出現在該設備的一記分板中的一 裝置識別符。
- 如申請專利範圍第6項所述之設備,當若在來自對應於該裝置識別符之該主機控制器的該識別鎖住請求之後收到該改變請求時,則該設備不重新產生該隨機數。
- 如申請專利範圍第1項所述之設備,其中該設備在一列舉階段中經由開汲極信號傳遞來耦接至該互連。
- 如申請專利範圍第8項所述之設備,其中該設備在一操作階段中經由非開汲極信號傳遞來耦接至該互連。
- 如申請專利範圍第1項所述之設備,其中該設備包含由沒有一預先建立之裝置識別符的一製造商提供的一半導體裝置。
- 一種方法,包含:從一主機控制器發出一第一命令給耦接至一多點傳輸互連的複數個裝置以請求來自具有一第一值之一裝置識別符的該複數個裝置之至少一者的一回應,該回應包括隨機數以及該隨機數之補數;判斷是否從該複數個裝置之其一者收到一有效回應,若是,則儲存該第一值之該裝置識別符至該主機控制器的一儲存器中;及否則,發出一第二命令以使該複數個裝置之至少一些者重新產生具有一不同值的該裝置識別符。
- 如申請專利範圍第11項所述之方法,更包含若從該複數個裝置之其一者收到該有效回應,則發出一第三命令以使該第一值之該裝置識別符被該複數個裝置之該其一 者鎖住。
- 如申請專利範圍第12項所述之方法,更包含重複地發出該第一命令、判斷是否收到該有效回應、及發出該第二命令直到將一裝置識別符分配給該複數個裝置之每一者為止。
- 如申請專利範圍第13項所述之方法,更包含之後發出一識別完成命令以指示完成了該裝置識別符分配。
- 如申請專利範圍第11項所述之方法,其中未鎖住的該複數個裝置之至少一者反應於該第二命令來產生一新裝置識別符。
- 如申請專利範圍第12項所述之方法,更包含反應於從該複數個裝置之一或更多者收到一無效回應來發出該第二命令。
- 如申請專利範圍第16項所述之方法,其中該無效回應係由於傳遞具有一共同裝置識別符及一不同隨機數之一回應的該複數個裝置之至少二者。
- 如申請專利範圍第16項所述之方法,更包含反應於該無效回應之一信息部分與該無效回應之一錯誤偵測部分之間的不匹配而判斷收到該無效回應。
- 一種系統,包含:一主機控制器,耦接至一互連;一第一裝置,耦接至該互連;及一第二裝置,耦接至該互連,其中該第二裝置從該主機控制器接收一輪詢命令且若該輪詢命令之一識別符符合 該第二裝置之一裝置識別符則回傳隨機數以及該隨機數之補數、若從對應於該裝置識別符之該主機控制器收到一鎖住命令則儲存該裝置識別符於一識別儲存器中、及若在該鎖住命令之前從該主機控制器收到一改變命令則重新產生一隨機數。
- 如申請專利範圍第19項所述之系統,其中該第二裝置基於重新產生的該隨機數來重新產生一新裝置識別符。
- 如申請專利範圍第20項所述之系統,其中該第二裝置重新產生具有未出現在一記分板中之值的該新裝置識別符。
- 如申請專利範圍第19項所述之系統,其中該第二裝置反應於從對應於該裝置識別符之該主機控制器接收該鎖住命令來關閉該第二裝置的一隨機數產生器。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/532,978 US9128811B2 (en) | 2012-06-26 | 2012-06-26 | Assigning addresses to devices on an interconnect |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201413457A TW201413457A (zh) | 2014-04-01 |
TWI516942B true TWI516942B (zh) | 2016-01-11 |
Family
ID=49775396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102121117A TWI516942B (zh) | 2012-06-26 | 2013-06-14 | 分配位址至互連上之裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9128811B2 (zh) |
BR (1) | BR112014029370A2 (zh) |
TW (1) | TWI516942B (zh) |
WO (1) | WO2014004186A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8924611B2 (en) | 2012-06-26 | 2014-12-30 | Intel Corporation | Providing a serial protocol for a bidirectional serial interconnect |
US9710406B2 (en) | 2014-12-15 | 2017-07-18 | Intel Corporation | Data transmission using PCIe protocol via USB port |
US20190004978A1 (en) * | 2017-06-30 | 2019-01-03 | Intel Corporation | Security role identifier pools allocation |
KR20200106739A (ko) * | 2019-03-05 | 2020-09-15 | 에스케이하이닉스 주식회사 | 컨트롤러, 이를 포함하는 메모리 시스템 및 이의 동작 방법 |
DE102020134167A1 (de) * | 2020-12-18 | 2022-06-23 | Beko Technologies Gmbh | Verfahren zur Adresskonfiguration für ein Master/Slave-System |
CN112666958B (zh) * | 2020-12-29 | 2023-08-11 | 西安精密机械研究所 | 一种水下通用型运载平台uuv配置方案的智能识别方法 |
CN116414569B (zh) * | 2023-06-12 | 2023-08-11 | 上海聪链信息科技有限公司 | 任务处理系统 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6009488A (en) | 1997-11-07 | 1999-12-28 | Microlinc, Llc | Computer having packet-based interconnect channel |
US6275476B1 (en) * | 1998-02-19 | 2001-08-14 | Micron Technology, Inc. | Method of addressing messages and communications system |
US7099318B2 (en) | 2001-12-28 | 2006-08-29 | Intel Corporation | Communicating message request transaction types between agents in a computer system using multiple message groups |
US8133113B2 (en) * | 2004-10-04 | 2012-03-13 | Igt | Class II/Class III hybrid gaming machine, system and methods |
US7712675B2 (en) * | 2003-01-15 | 2010-05-11 | Hewlett-Packard Development Company, L.P. | Physical items for holding data securely, and methods and apparatus for publishing and reading them |
US7791319B2 (en) * | 2003-02-21 | 2010-09-07 | Research In Motion Limited | Circuit and method of operation for an electrical power supply |
US7480808B2 (en) | 2004-07-16 | 2009-01-20 | Ati Technologies Ulc | Method and apparatus for managing power consumption relating to a differential serial communication link |
JP4594761B2 (ja) | 2005-02-10 | 2010-12-08 | 株式会社東芝 | 情報処理装置およびその制御方法 |
FI119530B (fi) | 2005-06-10 | 2008-12-15 | Trackway Oy | Tuotetunnisteen varmennus |
US7949794B2 (en) | 2006-11-02 | 2011-05-24 | Intel Corporation | PCI express enhancements and extensions |
US8185072B2 (en) | 2007-03-23 | 2012-05-22 | Intel Corporation | Method and apparatus for power reduction for interconnect links |
US7908501B2 (en) | 2007-03-23 | 2011-03-15 | Silicon Image, Inc. | Progressive power control of a multi-port memory device |
US20090282256A1 (en) | 2008-05-12 | 2009-11-12 | Sony Ericsson Mobile Communications Ab | Secure push messages |
US8269612B2 (en) | 2008-07-10 | 2012-09-18 | Black & Decker Inc. | Communication protocol for remotely controlled laser devices |
US8218580B2 (en) | 2008-07-15 | 2012-07-10 | Intel Corporation | Managing timing of a protocol stack |
US8352764B2 (en) | 2008-09-29 | 2013-01-08 | Intel Corporation | Dynamic squelch detection power control |
EP2350910B1 (en) | 2008-11-24 | 2018-07-25 | Certicom Corp. | System and method for hardware based security |
US8812878B2 (en) | 2009-06-30 | 2014-08-19 | Intel Corporation | Limiting false wakeups of computing device components coupled via links |
US8275560B2 (en) | 2009-09-10 | 2012-09-25 | Intel Corporation | Power measurement techniques of a system-on-chip (SOC) |
US8489779B2 (en) * | 2010-02-09 | 2013-07-16 | Honeywell International Inc. | Systems and methods for auto addressing in a control network |
-
2012
- 2012-06-26 US US13/532,978 patent/US9128811B2/en not_active Expired - Fee Related
-
2013
- 2013-06-14 TW TW102121117A patent/TWI516942B/zh active
- 2013-06-19 BR BR112014029370A patent/BR112014029370A2/pt not_active IP Right Cessation
- 2013-06-19 WO PCT/US2013/046452 patent/WO2014004186A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
TW201413457A (zh) | 2014-04-01 |
BR112014029370A2 (pt) | 2017-06-27 |
US9128811B2 (en) | 2015-09-08 |
WO2014004186A1 (en) | 2014-01-03 |
US20130346635A1 (en) | 2013-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI516942B (zh) | 分配位址至互連上之裝置 | |
EP3649556B1 (en) | Techniques to support mulitple interconnect protocols for an interconnect | |
US20210109300A1 (en) | Techniques to support multiple interconnect protocols for a common set of interconnect connectors | |
CN106209695B (zh) | 给加载/存储通信协议提供低功率物理单元 | |
US9575552B2 (en) | Device, method and system for operation of a low power PHY with a PCIe protocol stack | |
CN104951252B (zh) | 一种数据访问方法及PCIe存储设备 | |
CN107003955B (zh) | 用于在根复合体中集成设备的方法、装置和系统 | |
US8443126B2 (en) | Hot plug process in a distributed interconnect bus | |
US20170075852A1 (en) | Input/output signal bridging and virtualization in a multi-node network | |
KR20160147842A (ko) | 센서 글로벌 버스 | |
CN104322033A (zh) | 使用第二协议的扩展功能结构来控制第一协议的物理链路 | |
CN104350720B (zh) | 提供用于双向串行互连的串行协议的装置、方法和系统 | |
US20170075843A1 (en) | Unified systems and methods for interchip and intrachip node communication | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
CN115391261A (zh) | 高速外围组件互连装置以及包括其的计算系统 | |
KR20170117326A (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
KR20180023543A (ko) | 시리얼 통신으로 메모리를 제공하기 위한 장치 및 방법 | |
US20230315591A1 (en) | PCIe DEVICE AND COMPUTING SYSTEM INCLUDING THE SAME | |
US20230315672A1 (en) | Interface device and computing system including the same | |
US9081743B2 (en) | Communication system and communicaton method | |
KR20130052412A (ko) | 고속무선통신모뎀에서 외부 장치에 저장된 펌웨어 실행 방법 |