TW201523438A - 採石墨烯型電晶體的異質多核心處理器 - Google Patents

採石墨烯型電晶體的異質多核心處理器 Download PDF

Info

Publication number
TW201523438A
TW201523438A TW103127054A TW103127054A TW201523438A TW 201523438 A TW201523438 A TW 201523438A TW 103127054 A TW103127054 A TW 103127054A TW 103127054 A TW103127054 A TW 103127054A TW 201523438 A TW201523438 A TW 201523438A
Authority
TW
Taiwan
Prior art keywords
processor
graphene
multiprocessor
block
processor cores
Prior art date
Application number
TW103127054A
Other languages
English (en)
Other versions
TWI536260B (zh
Inventor
Miodrag Potkonjak
Original Assignee
Empire Technology Dev Llc
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 Empire Technology Dev Llc filed Critical Empire Technology Dev Llc
Publication of TW201523438A publication Critical patent/TW201523438A/zh
Application granted granted Critical
Publication of TWI536260B publication Critical patent/TWI536260B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/02Semiconductor bodies ; Multistep manufacturing processes therefor
    • H01L29/12Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed
    • H01L29/16Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed including, apart from doping materials or other impurities, only elements of Group IV of the Periodic Table
    • H01L29/1606Graphene
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L29/00Semiconductor devices specially adapted for rectifying, amplifying, oscillating or switching and having potential barriers; Capacitors or resistors having potential barriers, e.g. a PN-junction depletion layer or carrier concentration layer; Details of semiconductor bodies or of electrodes thereof ; Multistep manufacturing processes therefor
    • H01L29/02Semiconductor bodies ; Multistep manufacturing processes therefor
    • H01L29/12Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed
    • H01L29/16Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed including, apart from doping materials or other impurities, only elements of Group IV of the Periodic Table
    • H01L29/161Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed including, apart from doping materials or other impurities, only elements of Group IV of the Periodic Table including two or more of the elements provided for in group H01L29/16, e.g. alloys
    • H01L29/165Semiconductor bodies ; Multistep manufacturing processes therefor characterised by the materials of which they are formed including, apart from doping materials or other impurities, only elements of Group IV of the Periodic Table including two or more of the elements provided for in group H01L29/16, e.g. alloys in different semiconductor regions, e.g. heterojunctions
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Ceramic Engineering (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Thin Film Transistor (AREA)

Abstract

本發明於文中所描述技術一般包括與處理器之使用相關的方法和系統,該處理器包括含石墨烯運算元件,同時將與石墨烯運算元件相關聯的高洩漏能源之效應降至最低或縮減。再者,本發明所揭示內容之各具體實施例提供排程進行由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器處理的指令之系統和方法。

Description

採石墨烯型電晶體的異質多核心處理器
除非於文中另外指示,否則在本節中所描述的方法對在所申請內容中的諸申請專利範圍而言並非先前技術,且在本節中包括並未承認其為先前技術。
為保持摩爾定律,可實際併入積體電路的電晶體數量大約每兩年即增加一倍。這種趨勢已持續超過半個世紀,並預期可能會持續到至少2015或2020年。然而,僅將更多電晶體添加至單一執行緒處理器已不再產生明顯更快的處理器。而是,已藉由將多重處理器核心整合於單一晶片上以形成晶片多處理器並在晶片多處理器之多重處理器核心之間分享程序而達到系統性能之提升。系統性能和功率用法可採具有配置進行多重指令集或處理指令集之不同子集的核心元件的晶片多處理器進一步提升。
根據本發明所揭示內容之至少一些具體實施例,晶片多處理器包含一個或多個高速處理器核心,其設置於晶粒上並包括含石墨烯運算元件。高速處理器核心配置成當晶粒上包括比一個或多個高速處理器核心之一更低百分比之含石墨烯運算元件的所有其他處理器核心皆配置為閘控時進行操作。晶片多處理器更包含一個或多個附加處理器核心,其設置於晶粒上並包括比一個或多個高速處理器核心之一更低百分比之含石墨烯運算元件。
根據本發明所揭示內容之至少一些具體實施例,排程即將由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器進行處理的指令的方法包含確定時間成本、能源成本、和熱成本中至少一者以供多重處理器組之一個或多個執行來自應用程式的指令之第一區塊,以及確定 時間成本、能源成本、和熱成本中至少一者以供多重處理器組之一個或多個執行來自應用程式的指令之第二區塊。該方法可更包含確定與應用程式從多重處理器組任一者至多重處理器組任一其他者之切換執行相關聯的上下文切換成本,該上下文切換在指令之第一區塊由多重處理器組之第一執行後及指令之第二區塊由多重處理器組之第二執行前發生,以及依據所確定的時間成本、能源成本、和熱成本中至少一者和所確定的上下文切換成本選擇多重處理器組之一以執行指令之第一區塊,並選擇多重處理器組之一以執行指令之第二區塊。
根據本發明所揭示內容之至少一些具體實施例,排程即將由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器進行處理的指令的方法包含確定時間成本、能源成本、和熱成本中至少一者以供每個多重處理器組之執行來自應用程式的指令之第一區塊,以及依據所確定的時間、能源成本、和熱成本中至少一者選擇多重處理器組之第一以執行第一指令集。該方法可更包含確定時間成本、能源成本、和熱成本中至少一者以供每個多重處理器組皆執行來自應用程式的指令之第二區塊,以及依據所確定的時間成本、能源成本、和熱成本中至少一者選擇多重處理器組之第二以執行第二指令集,多重處理器組之第二之選擇在多重處理器組之第一已開始指令之第一區塊之執行後才施行。
前述摘要僅為例示性且不欲以任何方式限制。除了以上所描述的例示性態樣、具體實施例、和特徵之外,進一步的態樣、具體實施例、和特徵藉由參照所附圖式和以下實施方式將會變得顯而易見。
101‧‧‧序列處理區段;序列時間區段
101A‧‧‧時間;執行時間
102‧‧‧平行處理區段
110、120、130‧‧‧執行架構
110A‧‧‧總執行時間
115、116‧‧‧運算執行緒
120A‧‧‧執行時間;總執行時間
126‧‧‧平行運算執行緒;運算執行緒
130A‧‧‧執行時間
200‧‧‧晶片多處理器
201‧‧‧含石墨烯處理器核心
202‧‧‧其他處理器核心;其他處理器
209‧‧‧積體電路晶粒;積體電路
230‧‧‧系統時脈
250‧‧‧任務管理器
260‧‧‧操作系統
300‧‧‧晶片多處理器
301‧‧‧超高速處理器;超高速處理器核心
302‧‧‧高速處理器
303‧‧‧最慢速處理器
309‧‧‧積體電路晶粒;晶粒
400‧‧‧動態程式編輯程序
401‧‧‧起始節點
402‧‧‧結束節點
500、600‧‧‧方法
501、502、503、504、601、602、603、604‧‧‧區塊
700‧‧‧電腦程式產品
702‧‧‧可執行指令
704‧‧‧信號承載媒體
706‧‧‧通信媒體
708‧‧‧非暫時性電腦可讀取媒體
710‧‧‧可記錄式媒體
800‧‧‧運算裝置
802‧‧‧基本配置
804‧‧‧處理器
806‧‧‧系統記憶體
808‧‧‧記憶體匯流排
810‧‧‧1階快取
812‧‧‧2階快取
814‧‧‧處理器核心
816‧‧‧寄存器
818‧‧‧記憶體控制器
820‧‧‧操作系統
822‧‧‧應用程式
824‧‧‧程式資料
830‧‧‧匯流排/介面控制器
840‧‧‧介面匯流排
842‧‧‧輸出裝置
844‧‧‧周邊介面
846‧‧‧通信裝置
848‧‧‧圖形處理單元
850‧‧‧音訊處理單元
852‧‧‧音訊/視訊連接埠
854‧‧‧串列介面控制器
856‧‧‧平行介面控制器
858‧‧‧輸入/輸出連接埠
860‧‧‧網路控制器
862‧‧‧其他運算裝置
864‧‧‧通信連接埠
890‧‧‧匯流排/介面控制器
892‧‧‧資料儲存裝置
894‧‧‧儲存介面匯流排
896‧‧‧可拆卸儲存裝置
898‧‧‧不可拆卸儲存裝置
B1-Bm‧‧‧區塊
V1-Vn‧‧‧處理器組
O(1,1/1)-O(m-1,n/n)‧‧‧成本向量
本發明所揭示內容之前述和其他特徵結合所附圖式,從以下描述和所附諸申請專利範圍將會變得更為完整顯而易見。這些圖式僅根據所揭示內容描繪出幾種具體實施例,故因此不應視為對其範圍之限制。所揭示內容即將透過所附圖式之使用採附加明確說明和細節進行描述。
第一圖為特定電腦程式當由三種不同配置之晶片多處理器施行時,表示其範例相對執行時間的圖示:並未最佳化以供平行處理的處理器、最佳化以供平行處理的晶片多處理器、和含石墨烯晶片多處理器; 第二圖顯示晶片多處理器(Chip multiprocessor,CMP)之範例具體實施例之區塊圖;第三圖顯示CMP之範例具體實施例之另一區塊圖;第四圖為例示在CMP中各組處理器核心之間分配軟體應用程式之執行的範例動態程式編輯程序的圖示;第五圖為用於排程指令以供由具有多重處理器核心組的CMP進行處理的範例方法之流程圖;第六圖為摘要用於排程指令以供由包括含石墨烯運算元件的CMP進行處理的範例方法的另一流程圖;第七圖為實行用於排程指令以供由包括含石墨烯運算元件的CMP進行處理的方法的電腦程式產品之例示性具體實施例之區塊圖;以及第八圖為例示配置以供管理在所有皆根據本發明所揭示內容之一些具體實施例進行配置的CMP中的可程式編輯邏輯電路的範例運算裝置之區塊圖。
在以下實施方式中,參照其形成其一部分的所附圖式。在所附圖式中,除非上下文另外指定,否則類似的符號通常識別類似的元件。在實施方式、所附圖式、和諸申請專利範圍中所描述的例示性各具體實施例並非意指限制。可運用其他具體實施例並可做出其他改變而不背離在此所明確說明標的之精神或範疇。如於文中一般所描述並例示於各圖示中的所揭示內容之各態樣,可以廣泛多種之不同配置進行配置、代換、結合、和設計,所有這些皆明確經設想並成為所揭示內容之一部分。
除此之外,所揭示內容一般描繪出與晶片多處理器相關的方法、設備、系統、裝置、和/或電腦程式產品。
簡要而言,於文中所描述的技術一般包括與處理器之使用相關的方法和系統,該處理器包括含石墨烯運算元件,同時將與石墨烯運算元件相關聯的高洩漏能源之效應降至最低或縮減。再者,本發明所揭示內容之各具體實施例提供排程進行由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器處理的指令之系統和方法。
趨勢朝向包括相對大量處理器核心的大型晶片多處理器,可預見在不久的將來核心數量會高達數百或數千個。此種處理器可顯著縮減對具有高階並行性的應用程式的處理時間,例如多重運算可同時或彼此平行執行的應用程式。然而,大多數應用程式一般為例如不適合平行處理的「序列式(sequential)」或大部分基本上為序列式任一者。在藉由使用晶片多處理器運行此種序列應用程式上,不論由此可支援的平行處理數量為何,皆可實行有限加速。舉例來說,若50%之應用程式為序列式,則即使其餘代碼之執行時間縮減至單一時脈週期,亦不可能加速高於2倍係數。這種效應例示於第一圖中。
第一圖為特定電腦程式當由三種不同配置之晶片多處理器執行時,表示其範例相對執行時間的圖示:並未最佳化以供平行處理的處理器、最佳化以供平行處理的晶片多處理器、和含石墨烯晶片多處理器。執行架構110描繪出關於使用未最佳化以供平行處理的處理器的時間的電腦程式之執行,執行架構120描繪出關於使用最佳化以供平行處理的晶片多處理器的時間的電腦程式之執行,且執行架構130描繪出關於使用一個具體實施例之含石墨烯晶片多處理器的時間的電腦程式之執行。
為了例示性目的,該電腦程式包括一單一序列處理區段101和一單一平行處理區段102,然而電腦程式通常分別可包括複數個。在序列處理區段101中的指令可序列施行。舉例來說,序列處理區段101可包括一高密度之條件句,由此顯現在序列處理區段101中的電腦程式之平行處理不可適用或不可實行。相對而言,在平行處理區段102中的指令可平行施行而對電腦程式之執行無顯著的不利影響,且反而可改良電腦程式之執行。
執行架構110例示當電腦程式由未最佳化的處理器執行時,總執行時間110A在本範例中可能為100秒:時間101A對執行序列時間區段101為50秒,對執行平行處理區段102為50秒。如所顯示,序列處理區段101可採單一運算執行緒115序列施行。由於電腦程式採未最佳化以供平行執行的處理器執行且無法施行平行處理,因此平行處理區段102亦採單一運算執行緒116序列施行。
執行架構120例示當電腦程式由最佳化以供平行處理的晶片多處理器執行時,執行時間120A少於執行架構110之總執行時間110A(例如100秒),而多於用於序列處理區段101之執行的時間101A(例如50秒)。舉例來說,假設最佳化以供平行處理的晶片多處理器包括五個核心,每個皆配置成運行平行運算執行緒126之一,則對執行架構120的執行時間為60秒:50秒為採運算執行緒115執行序列時間區段101,而10秒為採平行運算執行緒126執行平行處理區段102。顯然,在本特定範例中,即使可使用無限數量之運算執行緒126,總執行時間120A藉由使用最佳化以供平行處理的晶片多處理器仍未降至低於執行時間101A。
執行架構130例示當電腦程式由可使用於一個具體實施例中的含石墨烯晶片多處理器執行時,執行時間130A可明顯少於執行架構110之總執行時間110A或執行架構120之總執行時間120A任一者。再者,依據所揭示內容之各具體實施例,執行時間130A可明顯少於用於在執行架構110和120中的序列處理區段101之執行的時間101A。這是因為多處理器之含石墨烯處理器核心可配置成顯著縮減完成序列處理區段101之執行的時間。在所揭示內容之一些具體實施例中,含石墨烯處理器核心可配置成施行序列處理區段101比包括較少(或無)含石墨烯元件的處理器核心更快約10至100倍。以下描述依據所揭示內容之一個或多個具體實施例所配置的含石墨烯處理器核心之各種範例。因此,即使當平行處理區段102由含石墨烯處理器核心使用在執行架構120中所使用相同數量之平行運算執行緒126執行時,執行時間130A仍可明顯少於執行架構120之總執行時間120A。舉例來說,當用於序列處理區段101之執行的時間101A構成總執行時間120A之大部分時,執行時間130A之持續時間可能為總執行時間120A之一小部分,舉例來說1/10或更少,由此在性能上提供10倍或更高的改良。
依據本發明所揭示內容之各具體實施例,晶片多處理器包括一個或多個含石墨烯處理器核心,其除了運用非石墨烯矽電晶體和其他非石墨烯運算元件的一個或多個其他處理器核心之外,運用至少一些石墨烯運算元件,例如電晶體。石墨烯電晶體可能為電晶體之通道使用石墨烯構 成的矽電晶體。石墨烯為碳之同素異形體,其結構可能為以蜂巢晶格密集堆積的sp2鍵結碳原子之單層平面薄片。一般來說,所有其他元件大體上皆可等同於互補金氧半導體(Complementary metal-oxide semiconductor,CMOS)電晶體之元件。因此,石墨烯與CMOS電晶體之整合於單一處理器中相對可能為簡單且便宜。石墨烯電晶體具有眾多所需特性,包括與矽電晶體的相容性、移動率佳(高於其他電晶體至少10倍)、和特殊的特徵尺寸可擴縮性。所以,石墨烯電晶體可很容易製造為操作於比其他電晶體更高得多的速度,例如在百萬赫茲狀態內。因此,含石墨烯處理器之使用可顯著縮減在高度序列軟體應用程式中的執行時間,例如在第一圖中所例示。此外,石墨烯電晶體可具有比矽電晶體明顯更低的切換功耗,使其最適合用於能源消耗可能為問題的行動裝置中或其他情況下。
然而,石墨烯電晶體可具有比矽電晶體明顯更高的洩漏,舉例來說數量級100,000-5,000,000倍更高的能源洩漏。再者,能源洩漏可隨著電晶體中的溫度成指數增加,因此保持石墨烯電晶體之操作溫度低可能為有用。依據所揭示內容之各具體實施例,包括於含石墨烯晶片多處理器中的一個或多個含石墨烯處理器核心當具有高程度之指令層級平行處理的應用程式正在執行時,一般會閘控或以縮減操作模式停用或放置,其中軟體應用程式之指令層級平行處理之程度一般可視為可執行於單一時脈週期中的操作之數量。當應用程式之執行將會從大體上序列執行受益時,可使用一個或多個含石墨烯處理器核心。如此,與含石墨烯處理器核心相關聯的加熱和洩漏能源可降至最低,同時操作性能可顯著提升以供序列執行。
第二圖顯示根據本發明所揭示內容之至少一些具體實施例所配置的晶片多處理器(CMP)200之範例具體實施例之區塊圖。CMP 200可能為從單一積體電路晶粒209所構成的多核心處理器,並可配置成使用構成於晶粒上的多重處理器核心來執行平行處理任務(例如處理多重執行緒)。舉例來說,CMP 200可包括一含石墨烯處理器核心201和兩個或多個其他處理器核心202,其包括無含石墨烯運算元件或相對比含石墨烯處理器核心201更少的含石墨烯運算元件任一者。在例示於第二圖中的具體實施例中,CMP 200包括一單一含石墨烯處理器核心201和其他處理器核心202 之八,然而含石墨烯處理器核心201與其他處理器核心202之其他組合可構成於積體電路晶粒209上。如所顯示,CMP 200可實體和/或可操作耦合於任務管理器220、系統時脈230、和(在一些具體實施例中)操作系統(Operating system,OS)260。為了清楚表示,可存在於積體電路晶粒209上包括於CMP 200中的附加共享資源從第二圖省略,諸如1階(L1)和2階(L2)快取、輸入/輸出(I/O)連接埠、匯流排介面、和此類。
含石墨烯處理器核心201可能為包括採石墨烯所構成運算元件的任何在技術上可實行的處理器或處理器核心。這些運算元件可包括含石墨烯組合元件,諸如電晶體,和/或含石墨烯序列元件,尤其例如正反器。舉例來說含石墨烯處理器核心201可包括一指定百分比之石墨烯閘,例如其通道可部分或完全由石墨烯構成的電晶體,故因此配置成執行軟體指令或其他電腦可讀取指令比其他處理器核心202更快得多。
在一些具體實施例中,大體上含石墨烯處理器核心201之所有運算元件皆可採石墨烯構成。在其他具體實施例中,在含石墨烯處理器核心201中的組合元件,諸如電晶體,可採石墨烯構成。在又其他具體實施例中,含石墨烯處理器核心201之指定運算元件可採石墨烯構成,其中選擇這些運算元件來改良含石墨烯處理器核心201之性能,同時將含石墨烯處理器核心201之洩漏能源降至最低或縮減。此種經選擇的運算元件可包括組合元件、序列元件、和/或兩者之組合。在含石墨烯處理器核心201中具有較少含石墨烯運算元件可明顯縮減其洩漏能源,而具有較多含石墨烯運算元件則可提升其性能。因此,在此種具體實施例中,在操作上一般最頻繁使用的電晶體和其他運算元件可採石墨烯構成,而較不頻繁使用的運算元件一般可不採石墨烯構成。對用於含石墨烯處理器核心201的特定積體電路配置而言,可在設計程序期間使用模擬軟體來確定哪些運算元件在統計上為最常和最少使用於含石墨烯處理器核心201中。
每個其他處理器核心202皆可能為包括無採石墨烯所構成運算元件或相對於含石墨烯處理器核心較少含石墨烯運算元件的任何在技術上可實行的處理器或處理器核心。非石墨烯運算元件可包括採半導體技術和材料所構成的組合元件和/或序列元件,諸如矽、砷化鎵等等。所以, 每個其他處理器202皆可能操作於比含石墨烯處理器核心201明顯更低的速度,但可與積體電路209之其他處理器核心202之一個或多個平行使用而不會招致大量(或具有縮減的)洩漏能源。
任務管理器250可能為可配置成將任務分配給含石墨烯處理器核心201和其他處理器核心202的排程器模組。如此,任務管理器250亦可負責閘控,例如切換關閉功率至含石墨烯處理器核心201和/或其他處理器核心202之一個或多個。任務管理器250可將此種功率閘控依據在正由CMP 200所執行軟體應用程式中的指令層級平行處理之目前所確定程度,以及或者依據其他因素。具體而言,當高程度之指令層級平行處理(以下指稱為「平行處理(parallelism)」)在此種軟體應用程式中確定時,任務管理器250可配置成閘控含石墨烯處理器核心201並將與軟體應用程式之執行相關聯的任務分配給適當數量之其他處理器核心202。舉例來說,當CMP 200正執行包括主要平行處理(諸如在第一圖中的平行處理區段102)的軟體應用程式之一部分時,任務管理器250可將任務分配給複數其他處理器核心202。或者,當在軟體應用程式中確定很少或無平行處理時,任務管理器250可將大多數或所有任務引導至含石墨烯處理器核心201以供執行。舉例來說,在確定無平行處理的實例中,諸如當執行在第一圖中的序列處理區段101之運算執行緒115時,與軟體應用程式相關聯的所有或大體上所有任務皆可分配至含石墨烯處理器核心201,由此顯著提升CMP 200之性能。
在一些具體實施例中,其他處理器核心202之一個或多個之積體電路配置(例如電晶體、正反器等之配置)大體上可等同於含石墨烯處理器核心201之積體電路配置。在此種具體實施例中,CMP 200之設計和測試可顯著簡化。在其他具體實施例中,所有其他處理器核心202大體上皆可彼此等同。在又其他具體實施例中,其他處理器核心202之不同各組可每組皆具有共同積體電路配置,選擇每組之積體電路配置以進行不同應用程式或應用程式類別之最佳或改良處理。舉例來說,在CMP 200中其他處理器核心202之一個此種組可包含圖形處理單元(Graphics processing units,GPUs)。在此種具體實施例中,除了含石墨烯處理器核心201在其積體電路配置中包括含石墨烯運算元件之外,含石墨烯處理器核心201可具 有大體上等同於其他處理器核心202之一個特定組之積體電路配置。
在例示於第二圖中的具體實施例中,任務管理器250在第二圖中例示為分開的構成。在其他具體實施例中,任務管理器250之各功能可分散於OS 260與CMP 200之間,或者可透過在積體電路晶粒209上所構成的電路實行。應注意在一些具體實施例中,由於在晶片多處理器中的功率閘控一般可不採實體開關施行,因此仍可有已由任務管理器250「所閘控(gated)」、與CMP 200中處理器或處理器核心相關聯的有限但非常小量之洩漏能源。
系統時脈230可如第二圖中所顯示耦合於CMP 200或整合入CMP 200作為其一個或多個元件任一者。在一些具體實施例中,含石墨烯處理器核心201之時脈可在比其他處理器核心202更高得多的頻率。換言之,其他處理器核心202可能需要系統時脈230之幾個週期以完成運算,而含石墨烯處理器核心201需要系統時脈230之單一時脈週期。在其他具體實施例中,系統時脈230可包括多重時脈實體,其用於為CMP 200之每個含石墨烯處理器核心201和其他處理器核心202提供適合的時脈信號。因此,在一個具體實施例中,較高頻率的時脈信號可提供給含石墨烯處理器核心201,而較低頻率的時脈信號可提供給其他處理器核心202。在其他處理器核心202包括每組皆操作在不同時脈頻率的處理器或處理器核心各組的具體實施例中,可將適合的時脈信號提供給每組。
第三圖顯示根據本發明所揭示內容之至少一些具體實施例所配置的CMP 300之範例具體實施例之區塊圖。CMP 300可能為從單一積體電路晶粒309構成的多核心處理器,並大體上可在配置和操作上類似於CMP 200,除了CMP 300可包括設置於晶粒309上的多重石墨烯型處理器核心各組,其中每組處理器核心皆包括處理器,其配置成操作在指定處理器速度。再者,每組處理器核心皆可具有與該組相關聯、不同於其他處理器各組的處理器速度。在例示於第三圖中的具體實施例中,CMP 300包括超高速處理器301之一第一組、高速處理器302(具有相對於第一組較慢速的處理器速度)之一第二組、和最慢速處理器303(具有比第一和第二組更慢速的速度)之一第三組。在其他具體實施例中,CMP 300可包括多於或少於 三組含石墨烯處理器,其中每組處理器核心皆配置成操作在不同速度。
超高速處理器301之第一組、高速處理器302之第二組、和最慢速處理器303之第三組可每組皆配置成在指定速度執行軟體指令或其他電腦可讀取指令。在一些具體實施例中,對每組的指定時脈週期持續時間皆可能為含石墨烯處理器之最高速組之不同整數倍。舉例來說,在一些具體實施例中,每個超高速處理器301皆可採相對高百分比之含石墨烯運算元件進行配置,使得每個超高速處理器301皆可在CMP 300中可取得的最高時脈頻率執行指令。在此種具體實施例中,每個高速處理器302皆可採比超高速處理器301更低百分比之含石墨烯運算元件進行配置,使得每個高速處理器302皆可使用超高速處理器301兩倍之指定時脈週期持續時間來執行指令。因此,每個高速處理器302皆可配置成操作在比超高速處理器301更低的時脈頻率。同樣地,每個最慢速處理器303皆可採最低百分比之含石墨烯運算元件進行配置(在一些具體實施例中可低至0%含石墨烯運算元件),使得每個超高速處理器301皆可使用超高速處理器301三倍之指定時脈週期持續時間來執行指令。
在操作上,當CMP 300執行具有相對高平行處理的指令時,可使用適合數量之最慢速處理器303,而高速處理器302和超高速處理器301為功率所閘控。當CMP 300執行具有很少或無平行處理的指令時,可使用適合數量之超高速處理器301,而高速處理器302和最慢速處理器303為功率所閘控。舉例來說,當施行軟體應用程式之大體上序列部分時,適合數量可能為一,使得使用單一超高速處理器301。當CMP 300執行具有適度平行處理的指令時,可使用適合數量之高速處理器302,而CMP中所有或大多數剩餘處理器可能為功率所閘控。如此,CMP 300之性能可為任何特定工作負荷進行最佳化或改良。具體而言,CMP 300之洩漏能源可降至最低或CMP之有效處理速度升至最快,依CMP 300所執行指令之本質(例如平行處理之程度)以及一個或多個指定操作限制而定。
在一些具體實施例中,用於最佳化或改良CMP 300之性能的操作限制可包括一可容許的時間延遲、一能源預算以供執行某些指令、和一熱預算用於處理器或處理器組。舉例來說,在視訊串流應用程式或其 他多媒體應用程式中,視訊和此類之正常播放涉及在特定時間間隔提供給使用者的畫面和聲音,且在提供此種內容上即使最小的延遲仍可嚴重影響觀看體驗。所以,在一些具體實施例中,可在CMP 300中使用可容許的時間延遲,以供確定超高速處理器301之第一組、高速處理器302之第二組、和最慢速處理器303之第三組中哪個用於執行軟體應用程式之指定部分。在此種具體實施例中,CMP 300可配置成選擇處理器以供使用使得指定指令可在少於可容許的時間延遲(諸如與視訊之畫面更新率相關聯的時間)內完成。此外,CMP 300可更配置成選擇處理器以供使用使得CMP 300用於執行指定指令的能源(例如洩漏能源與切換能源之組合)降至最低或縮減。因此,在此種具體實施例中,CMP 300配置成一般選擇CMP 300中採最低能源成本在指定時間內施行可適用操作的處理器組。在其他具體實施例中,舉例來說當CMP 300與能源使用為考量因素的行動裝置相關聯時,CMP 300可配置成選擇採最低能源成本施行可適用操作的處理器組。在又其他具體實施例中,CMP 300可配置成依據時間延遲與能源成本之組合選擇處理器組。在其他具體實施例中,CMP 300可配置成閘控已超過熱預算或臨界值溫度的處理器或處理器各組。其他配置和/或其組合亦為可能。依據用於執行特定指令的可容許的延遲時間、熱預算、和/或能源預算選擇CMP中的處理器各組之方法,以下結合第四圖至第七圖進行描述。
在一些具體實施例中,超高速處理器301可設置於積體電路晶粒309之邊緣上以促進熱量損耗。由於超高速處理器301一般包括比CMP 300中其他處理器一更高百分比之含石墨烯運算元件,因此當超高速處理器301用於執行指令時,可產生明顯更多的熱量。在一些具體實施例中,如在第三圖中所顯示,超高速處理器301可定位在積體電路晶粒309之一個或多個角落,以更提升在操作期間的熱量損耗。
在一些具體實施例中,超高速處理器301之過熱可藉由配置低洩漏處理器核心(例如在積體電路晶粒309上的較慢速處理器303)而避免,使得無超高速處理器301設置鄰接於任何其他之超高速處理器核心301。由於較慢速處理器303一般包括較少或無含石墨烯運算元件,因此較慢速處理器303可產生比CMP 300中其他處理器明顯更少的洩漏能源,並 可用於將超高速處理器301彼此熱隔離。在此種具體實施例中,如在第三圖中所顯示,較慢速處理器303亦可配置成熱隔離其他高洩漏能源處理器,利如高速處理器302。應注意在第三圖中,較慢速處理器303配置於積體電路晶粒309上,使得無超高速處理器301或高速處理器302彼此鄰接。然而,較低洩漏能源處理器設置於具有較高洩漏能源的兩個或多個處理器之間的CMP 300之任何其他配置亦落於所揭示內容之範疇內。
在一些具體實施例中,軟體應用程式之序列或大體上序列部分(諸如在第一圖中的序列處理區段)之執行,可分散於CMP 300中多重含石墨烯、高速、高洩漏能源處理器(例如超高速處理器301)之間。如先前所提及,在序列處理區段101中缺乏平行處理防止一個以上之超高速處理器301一次執行序列處理區段101之指令。然而,由於超高速處理器301任一者皆可採大體上相等的速度執行序列處理區段101,因此部分序列處理區段101可由不同超高速處理器301採很少的延遲損失序列執行。因此,在正執行序列處理區段101的超高速處理器301到達非理想溫度和洩漏能源前,CMP 300可將序列處理區段101之執行切換至另一超高速處理器301。如此,序列處理區段101可構成相對大部分之軟體應用程式,並仍採含石墨烯、高速、高洩漏能源處理器之經提升的速度執行而無過熱或非理想的高洩漏能源。在此種具體實施例中,可依據目前正執行序列處理區段101的超高速處理器301之經量測或經估計的溫度,將序列處理區段101之執行從超高速處理器301之一切換至另一超高速處理器301。或者,可依據時間間隔將序列處理區段101之執行從超高速處理器301之一切換至另一,因此為反覆(例如週期性)施行。
如以上所提及,在一些具體實施例中,超高速處理器301、高速處理器302、和最慢速處理器303可由其中包含多少百分比之含石墨烯運算元件界定出。然而在實作上,CMP 300中含石墨烯處理器之速度一般可為採石墨烯所構成處理器之運算元件之百分比之間接函式。這是因為在特定處理器中的運算元件可能並非所有皆具有相同的運用頻率。換言之,在處理器之一般操作期間,在處理器中的組合和序列元件之一些路徑可能比其他路徑更常使用。由於含石墨烯運算元件即使當設置於處理器之未使 用路徑中時,通常仍可促成處理器之洩漏能源,因此對在處理器中的含石墨烯運算元件而言,具有比非石墨烯運算元件更高的運用一般為有用。如此,在處理器性能上的提升相對於與含石墨烯運算元件相關聯的附加洩漏能源升至最高。
由於在採石墨烯所構成處理器中的運算元件之百分比可能並非處理器處理速度之準確指標,因此一般可不完全依據運算元件之百分比來確定CMP 300中含石墨烯處理器之速度。而是,依據所揭示內容之一些具體實施例,可藉由使用想要觀測的含石墨烯處理器來運行特定軟體應用程式並直接量測處理器之性能,確定CMP 300中含石墨烯處理器之處理速度。在其他具體實施例中,可藉由施行CMP 300中想要觀測的處理器之操作模擬,估計CMP 300中含石墨烯處理器之處理速度。模擬可包括指標應用程式之使用,其在數學上大致估計可由CMP 300之一個或多個處理器執行的編碼指令。因此,可使用模擬(或藉由量測實際處理器之性能)來確定超高速處理器301、高速處理器302、和最慢速處理器303之速度,並在配置上進行適當調整使得CMP 300可對與軟體應用程式相關聯的平行處理之程度採經改良的速度和能源洩漏執行軟體應用程式。
如以上所提及,在一些具體實施例中,CMP 300可包括多重組之處理器或處理器核心,其中每組皆包括配置成操作一指定處理器速度的處理器。所以,CMP 300可依哪組處理器用於執行而定,以各種方式執行軟體應用程式和/或軟體應用程式之一部分。舉例來說,對執行具有相對高程度之平行處理的軟體應用程式之一部分,CMP 300可選擇超高速處理器301之第一組、高速處理器302之第二組、或最慢速處理器303之第三組。超高速處理器301之第一組具有CMP 300中最快的處理器,但可能無法供應更高程度之平行處理。相對而言,最慢速處理器303之第三組具有CMP 300中最慢的處理器,但可供應更高程度之平行處理。一般來說,最慢速處理器303之第三組可適合採更高層級之平行處理執行軟體應用程式之各部分,但在一些實例中,超高速處理器301之較高速度可使超高速處理器301之第一組在聚合執行速度方面成為相對最佳選擇。因此,在一些具體實施例中,CMP 300可配置成依據處理器組之聚合的執行速度以及 與即將執行的部分軟體應用程式相關聯的平行處理之層級,選擇處理器組以執行軟體應用程式之一部分。
如以上所提及,CMP 300可使用不同處理器組來執行軟體應用程式之特定部分。因此,正由CMP 300執行的軟體應用程式可分成相異部分,諸如碼區塊,其中每個區塊皆可由選擇採相對最佳時間延遲和/或洩漏能源施行的處理器組執行。在一些具體實施例中,凸函數最佳化(convex optimization)程序可用於依據每個碼區塊中平行處理之程度及與每個處理器組皆相關聯的處理速度和洩漏能源,將不同碼區塊之執行分配至CMP 300中不同的處理器組。在一些具體實施例中,靜態排程可用於此種分配,且以下結合第四圖和第五圖進行描述。在其他具體實施例中,動態排程可用於此種分配,且以下結合第四圖和第六圖進行描述。
第四圖為依據所揭示內容之一個或多個具體實施例,例示在CMP中各種處理器核心組之間分配軟體應用程式之執行的範例動態程式編輯程序400的圖示。舉例來說,動態程式編輯程序400可在CMP 300中超高速處理器301之第一組、高速處理器302之第二組、和最慢速處理器303之第三組之間,分配軟體應用程式或其他電腦可讀取指令之執行。在第四圖中所例示的動態程式編輯程序可適用於靜態排程架構或動態排程架構任一者,其每一者以下皆進行描述。
動態程式編輯程序400以滿足一個或多個指定操作限制的方式使用CMP 300中各種處理器組來促進軟體程式之執行。舉例來說,在執行軟體程式上,動態程式編輯程序400可用於將與執行軟體程式相關聯的能源成本或時間延遲降至最低或縮減。或者或此外,動態程式編輯程序400可用於將執行軟體應用程式的能源成本降至最低,同時在少於指定最大時段內完成軟體程式之執行。而且,動態程式編輯程序400可用於替代或除了時間延遲和能源成本之外,滿足一個或多個其他操作限制。
在動態程式編輯程序400中,軟體應用程式可分成多重區塊B1-Bm,其中每個皆包括構成軟體應用程式的未重疊碼部分。每個區塊B1-Bm皆可由CMP(例如CMP 300)中不同的處理器組V1-Vn執行,其中各種處理器組在第四圖中表示為節點V1-Vn。在CMP 300中,處理器組V1可對應於 超高速處理器301之第一組,處理器組V2可對應於高速處理器302之第二組,且處理器組Vn可對應於最慢速處理器303之第三組。在其他具體實施例中,例如當CMP包括10或100個之處理器或處理器核心時,n可能為相對大量,舉例來說10、20、或更多個。這是因為此種CMP可採10、20、或更多個不同的處理器組進行配置,每個處理器組皆包括具有相對於與其他處理器組中的處理器相關聯的石墨烯之百分比或經計算的處理速度為獨特的石墨烯之百分比或一經計算處理速度的處理器。
舉例來說,為了在動態程式編輯程序400之應用程式中的彈性,處理器組V1可包括一單一超高速處理器,其包括CMP中最高百分比之含石墨烯運算元件和/或最短延遲時間,處理器組V2可包括兩個超高速處理器,其每個皆包括CMP中第二最高百分比之含石墨烯運算元件和/或第二最短延遲時間,依此類推。在一些具體實施例中,對處理器組V2的指定時脈週期持續時間可能為對處理器組V1的指定時脈週期持續時間之整數倍,舉例來說2倍。在此種具體實施例中,對其他處理器組(例如處理器組V3、處理器組Vn等)的指定時脈週期持續時間,每個皆為對處理器組V1的指定時脈週期持續時間之逐漸升高的整數倍數,舉例來說3、4、n倍等。因此,對在區塊B1-Bm中較高程度之平行處理而言,可選擇CMP中可取得平行處理之充分優勢的處理器組。在一些具體實施例中,與處理器組V1-Vn相關聯的處理器和/或時脈週期持續時間之逐漸升高的數字,可增加並非一的整數值,如在以上的範例中所描述。因此,對處理器組V2的時脈週期持續時間可能為兩倍對處理器組V1的時脈週期持續時間,對處理器組V3的時脈週期持續時間可能為四倍對處理器組V1的時脈週期持續時間,對處理器組V4的時脈週期持續時間可能為八倍對處理器組V1的時脈週期持續時間,依此類推。
動態程式編輯程序400亦可包括一起始節點401、一結束節點402、和複數成本向量O(1,1/1)-O(m-1,n/n)。成本向量O(1,1/1)-O(m-1,n/n)每個皆量化與在兩個節點之間的上下文切換相關聯的成本,其中「上下文切換(context switching)」可指稱軟體應用程式從動態程式編輯程序400之第一節點至第二節點之切換執行。一般來說,上下文切換可在第一節點已 完成執行區塊B1-Bm-1之一後及執行緊隨其後的區塊前發生。因此,在對成本向量O(j,k/l)的表示法中:m=軟體區塊之數量,n=節點之數量(亦即不同處理器組之數量),j=已完成的區塊數量,因此從1至m-1變化;k=起源節點(亦即執行已完成區塊的處理器組)並從1至n變化;以及l=目標節點(亦即軟體應用程式之執行所切換至的處理器組)並從1至n變化。舉例來說,成本向量O(3,1/2)量化與軟體程式從起源節點1(亦即處理器組V1)至目標節點2(亦即處理器組V2)之切換執行相關聯的成本,該執行在區塊B3已由起源節點1完成後及區塊B4之執行前進行切換。
在一些具體實施例中,成本向量O(1,1/1)-O(m-1,n/n)可每個皆量化與從起源節點至目標節點的切換執行相關聯的時間延遲成本。在其他具體實施例中,成本向量O(1,1/1)-O(m-1,n/n)可每個皆量化與從起源節點至目標節點的切換執行相關聯的能源成本。在特定具體實施例中,成本向量O(1,1/1)-O(m-1,n/n)可每個皆量化與從起源節點至目標節點的切換執行相關聯的時間延遲成本和能源成本兩者。一般來說,每個成本向量O(1,1/1)-O(m-1,n/n)之值皆可與從起源節點至目標節點傳送資料相關聯的時間和/或能源成本成比例。當然,當在第一區塊與第二區塊之執行之間未發生上下文切換時,例如同一處理器組執行第一區塊和第二區塊兩者,成本向量之值可能為零。在成本向量表示法中所陳述,k=l的任何成本向量之值皆為零。
動態程式編輯程序400可使用與每個處理器組V1-Vn皆相關聯的成本向量O(1,1/1)-O(m-1,n/n)以執行成本來執行軟體應用程式之每個區塊,以對從起始節點401至結束節點402的每條可能的執行路徑皆量化時間延遲成本和能源成本。然後,動態程式編輯程序400可選擇從起始節點401至結束節點402的最佳路徑,明確說明CMP之哪個處理器組V1-Vn執行每個區塊B1-Bm。在第四圖中的此種路徑可由動態程式編輯程序400選擇,以滿足一個或多個操作限制,諸如最小時間延遲、最小能源成本等等。
在一些具體實施例中,諸如在視訊相關應用程式中,動態程式編輯程序400可選擇可容許的時間延遲在執行軟體應用程式上未超過的路徑,或者在一些具體實施例中,可選擇軟體應用程式之指定部分或次常 式(subroutine)。在此種具體實施例中,動態程式編輯程序400可更配置成選擇亦將能源消耗降至最低而未超過可容許時間延遲的路徑。在其他具體實施例中,舉例來說在能源預算不是問題的運算裝置中,動態程式編輯程序400可配置成選擇不論能源預算為何皆將時間延遲降至最低的路徑。在此種具體實施例中,動態程式編輯程序400可更包括CMP中處理器之一經量測或經預測的溫度,以進一步淘汰一些可能的執行路徑。舉例來說,上下文切換成本可藉由對軟體應用程式之所有或大多數區塊使用CMP中同一處理器組而避免,因此許多低能源消耗的執行路徑可包括很少或無上下文切換。然而,由於大多數或所有處理器組V1-Vn可包括含石墨烯運算元件,因此若含石墨烯運算元件用於經延長的時段,就可能發生過熱。所以,動態程式編輯程序400亦可包括一可容許的處理器溫度作為當選擇最佳執行路徑時的操作限制。
在操作上,動態程式編輯程序400可首先對每個處理器組V1-Vn皆計算執行成本,以執行軟體應用程式之區塊B1以及所有成本向量O(1,1/1)-O(m-1,n/n)。在區塊B1之執行後,這些成本向量可量化從每個處理器組V1-Vn至每個其他處理器組V1-Vn的上下文切換成本。動態程式編輯程序400隨後可儲存經計算的執行成本和成本向量O(1,1/1)-O(m-1,n/n)。在一些具體實施例中,動態程式編輯程序400可儲存特定組合,例如具有少於特定所需時間和/或能源成本的執行成本和成本向量之組合。在此種具體實施例中,劣質(例如高成本)組合之淘汰可顯著降低動態程式編輯程序400所需求以提供最佳解決方案的複雜度和計算次數。如以上所提及,在一些具體實施例中,經估計的處理器溫度亦可計算作為部分動態程式編輯程序400,其可進一步指出由於非理想的處理器溫度故可視為劣質的組合。再者,其他操作限制可計算並用於確定不儲存的劣質組合。
在儲存執行成本/成本向量組合後,動態程式編輯程序400隨後可對軟體應用程式之下一個區塊B2重複以上程序。在對先前區塊(在此例中為區塊B1)不儲存劣質組合的具體實施例中,一般可不計算對每個處理器V1-Vn和成本向量O(2,1/1)-O(2,n/n)的所有可能的執行成本組合。這是因為劣質組合之排除可淘汰用於區塊B2之執行的一些可能的組合。舉例來 說,當與切換上下文至特定處理器組(舉例來說處理器組V3)相關聯的所有成本向量皆包括於劣質組合中時,可能不需要對下一個區塊(在此例中為區塊B2)計算包括處理器組V3的任何組合。這種程序隨後可對軟體應用程式之每個剩餘區塊皆重複。
給定以上所描述的非劣質組合,動態程式編輯程序400隨後可在指定的操作限制方面確定最佳路徑,諸如時間延遲、能源延遲、時間延遲與能源延遲乘積等。一般來說,此種問題之解決方案可能為採運行時間平方的最佳化問題,並可由具有所揭示內容之效益的本領域一般技術者輕易解決。
在一些具體實施例中,動態程式編輯程序400可適用於靜態排程架構。舉例來說,動態程式編輯程序400可由第二圖中的任務管理器250施行。在此種具體實施例中,對CMP中軟體應用程式之執行的最佳路徑可在編譯時間確定。由於這種編譯時間實作,因此當動態程式編輯程序400用於確定執行軟體應用程式的最佳路徑時,最佳化所需要的大體上所有資訊皆可能為已知:每個區塊之指令層級平行處理、由每個處理器組V1-Vn對區塊B1-Bm的估計執行成本、每個成本向量O(1,1/1)-O(m-1,n/n)等。所以,可以大體上確定性的方式找出最佳路徑。然而,由於編譯軟體應用程式之程序可能變得更複雜並耗時且一般在軟體應用程式之執行前即已完成,因此動態程式編輯程序400之應用以供確定此種最佳路徑可添加一些時間和能源延遲至執行軟體應用程式之程序。
第五圖闡述用於排程指令以供由具有依據所揭示內容之具體實施例的多重處理器核心組的晶片多處理器進行處理的範例方法500之流程圖。方法500可包括一個或多個操作、功能、或動作,如由區塊501、502、503、和/或504之一個或多個所例示。雖然該等區塊以序列次序例示出,但這些區塊亦可平行和/或以不同於文中所描述者的次序施行。並且,各種區塊可結合為較少區塊、分成附加區塊、和/或依據所需實作進行淘汰。表示其他操作、功能、或動作的附加區塊可在其他具體實施例中提供。雖然方法500結合第二圖之CMP 200和第三圖之CMP 300進行描述,但其他CMP可配置成施行方法500。
方法500可開始於區塊501「確定處理指令之第一區塊的時間成本和/或能源成本」。區塊501接著可能為區塊502「確定處理指令之第二區塊的時間成本和/或能源成本」,區塊502接著可能為區塊503「確定上下文切換成本」,而區塊503接著可能為區塊504「選擇執行指令之第一區塊的處理器組和執行指令之第二區塊的處理器組」。
在一些具體實施例中,在區塊501之前,任務管理器(諸如第二圖中的任務管理器250)或與CMP相關聯的其他指令排程實體可將軟體應用程式分開成序列區塊,如第四圖中的區塊B1-Bm。在其他具體實施例中,此種區塊可能已在軟體應用程式中界定出。
在區塊501中,任務管理器或與CMP相關聯的其他指令排程實體對CMP中每個多重處理器組皆確定時間成本(例如時間延遲)、能源成本(例如特定能源消耗)、熱成本(例如經估計的處理器溫度增加)、和/或其他成本中至少一者,以執行來自應用程式的指令之第一區塊。一般來說,且如以上結合第三圖所描述,在多重處理器組之給定一者中,所有處理器皆可具有大體上相等百分比之含石墨烯運算元件。再者,不同百分比之含石墨烯運算元件可與每組皆相關聯,例如對每個多重處理器組而言,與處理器組相關聯的含石墨烯運算元件之百分比可不同於與任何其他多重處理器組相關聯的含石墨烯運算元件之百分比。
在區塊502中,任務管理器或其他指令排程實體對每個多重處理器組皆確定時間成本、能源成本、熱成本、和/或其他成本中至少一者,以執行來自應用程式的指令之第二區塊。
在區塊503中,任務管理器或其他指令排程實體確定與應用程式從多重處理器組任一者至多重處理器組任一其他者之切換執行相關聯的上下文切換成本。在方法500中,上下文切換可在指令之第一區塊由多重處理器組之第一執行後及指令之第二區塊由多重處理器組之第二執行前發生。一般來說,區塊502和503可對軟體應用程式之所有剩餘區塊皆重複,使得可考量所有或大多數可能的上下文切換成本,以及與執行軟體應用程式之每個區塊的每個多重處理器組皆相關聯的所有或大多數時間、能源、和/或熱成本。
在區塊504中,任務管理器或其他指令排程實體選擇多重處理器組之一以執行指令之第一區塊和多重處理器組之一以執行指令之第二區塊。一般來說,選擇實體亦可選擇哪個多重處理器組執行軟體應用程式指令之每個剩餘區塊,由此確定CMP可執行軟體應用程式的最佳執行路徑。在區塊504中所做出的選擇可依據在區塊501和502中所確定的時間、能源、和/或熱成本,以及在區塊503中所確定的上下文切換成本。一般來說,給定在區塊501-503中所確定的資訊,此種問題之解決方案為標準的最佳化問題。
應注意方法500可配置成靜態排程架構。所以,在一些具體實施例中,方法500可在軟體應用程式之編譯期間進行。
在一些具體實施例中,動態程式編輯程序400可適用於動態排程架構,並可由第二圖中的任務管理器250或與特定CMP相關聯的任何其他指令排程實體進行。在此種具體實施例中,用於CMP中軟體應用程式之執行的最佳路徑可能不會在編譯時間確定。而是,最佳指令排程可在軟體應用程式之執行期間對軟體應用程式之一個區塊確定,例如當正在執行軟體應用程式之緊接在前的區塊時。如此,CMP可能不會經歷與經擴展和更複雜的編譯程序相關聯的時間、能源、和/或熱成本。舉例來說,雖然第四圖中的區塊B1由處理器組V1-Vn之一執行,但可選擇用於執行區塊B2最佳的下一個處理器組。
再者,對使用此種動態排程架構的軟體應用程式的指令之排程可能比靜態排程架構更為適合得多。具體而言,軟體應用程式指令之每個區塊之排程皆可依據軟體應用程式之實際執行進行修改,而在靜態排程上,一般可依據指令之每個區塊和其他資訊之統計分析做出有關軟體應用程式之每個區塊之指令層級平行處理的某些假設。因此,在動態排程架構上,當排程指令之下一個區塊時,可將軟體應用程式中所呈現的實際程度之指令層級平行處理列入考量:每當在一個時脈週期期間並未排程一些操作時,在下一個時脈週期中的執行即可切換至可處理更多操作的處理器組;每當在目前有效處理器組中的處理器包括一個或多個未使用的處理器時,在下一個時脈週期中的執行即可切換至包括較少處理器的處理器組。 相較而言,在靜態排程架構上,對指令之所有區塊的最佳排程可一次確定,但亦可部分依據經估計的平行處理。
應注意由於動態排程之每個操作一般皆可非常迅速做到,舉例來說在單一時脈週期中,因此可能無法確定更為最佳化的解決方案。不同於在靜態排程架構上,經由所有處理器組和成本向量的所有可能的執行路徑可能無法對所有軟體區塊皆進行量化及比較。而是,對非常有限數量之區塊(通常為下一個區塊)的執行成本和上下文切換成本,可在可用的時間內進行計算及考量。
第六圖闡述摘要用於排程指令以供由包括依據所揭示內容之具體實施例的含石墨烯運算元件的晶片多處理器進行處理的範例方法600的流程圖。方法600可包括一個或多個操作、功能、或動作,如由區塊601、602、603、和/或604之一個或多個所例示。雖然該等區塊以序列次序例示出,但這些區塊亦可平行和/或以不同於文中所描述者的次序施行。並且,各種區塊可結合為較少區塊、分成附加區塊、和/或依據所需實作進行淘汰。表示其他操作、功能、或動作的附加區塊可在其他具體實施例中提供。雖然方法600結合第二圖之CMP 200和第三圖之CMP 300進行描述,但其他CMP可配置成執行方法600。
方法600可開始於區塊601「確定處理指令之第一區塊的時間成本和/或能源成本」。區塊601接著可能為區塊602「選擇多重處理器組之第一以執行指令之第一區塊」,區塊602接著可能為區塊603「確定處理指令之第二區塊的時間成本和/或能源成本」,而區塊603接著可能為區塊604「選擇多重處理器組之第二以執行指令之第二區塊」。
在一些具體實施例中,在區塊601之前,任務管理器(例如第二圖中的任務管理器250)或與CMP相關聯的其他指令排程實體可將軟體應用程式分開成序列區塊,諸如第四圖中的區塊B1-Bm。在其他具體實施例中,此種區塊可能已在軟體應用程式中界定出。
在區塊601中,任務管理器或與CMP相關聯的其他指令排程實體對每個多重處理器組皆確定時間成本、能源成本、熱成本、和/或其他成本中至少一者,以執行來自軟體應用程式的指令之第一區塊。
在區塊602中,任務管理器或其他指令排程實體選擇多重處理器組之第一以執行指令之第一區塊。一般來說,選擇依據在區塊602中所確定的確定時間、能源成本、熱成本、和/或其他成本中至少一者。
在區塊603中,任務管理器或其他指令排程實體對每個多重處理器組皆確定時間成本、能源成本、熱成本、和/或其他成本中至少一者,以執行來自應用程式的指令之第二區塊。指令之第二區塊一般可能為緊隨在區塊601和602中所參考指令之第一區塊後的指令區塊。在一些具體實施例中,任務管理器或其他指令排程實體亦可確定區塊603中的上下文切換成本,例如第四圖中的成本向量O(1,1/1)-O(1,n/n)。
在區塊604中,任務管理器或其他指令排程實體選擇多重處理器組之第二以執行指令之第二區塊,其中選擇多重處理器組之第二可在多重處理器組之第一已開始指令之第一區塊之執行後才施行。換言之,區塊604一般可與由多重處理器組之第一執行指令之第一區塊同時發生。應注意多重處理器組之第一和多重處理器組之第二可能為同一處理器組,如當在目前有效的處理器組中的處理器數量與在目前正執行的指令區塊中的平行處理之程度相匹配時。在一些具體實施例中,選擇亦可依據在區塊603中所確定的上下文切換成本。一般來說,區塊603和604之程序可繼續直到軟體應用程式中的所有區塊皆已執行。
在區塊604中所做出的選擇多重處理器組之第二可依據正運行於晶片多處理器上的應用程式之平行處理層級,而多重處理器之第一則執行指令之第一區塊。舉例來說,當與指令之第一區塊相關聯的一個或多個操作並未在指令之第一區塊正由多重處理器組之第一執行時進行排程時,多重處理器組之第二可能為具有比多重處理器組之第一更多處理器的處理器組。如此,執行指令之下一個區塊(例如指令之第二區塊)的平行處理經擴展以充分利用現存於軟體應用程式中的平行處理之程度。或者或此外,當在多重處理器組之第一中的一個或多個處理器包括一個或多個未使用的處理器時,多重處理器組之第二可能為具有比多重處理器組之第一更少處理器的處理器組。如此,較快的處理器可用於執行指令之下一個區塊。
如先前所陳述,所揭示內容之具體實施例可作為操作限制使 用可容許的時間延遲、用於執行某些指令的能源預算、和/或對處理器或處理器組的熱預算來最佳化或改良CMP之性能。應注意有各種其他的最佳化技術可用於改良CMP之性能,諸如電壓降低(《IEEE電腦輔助設計會刊(IEEE Transactions on CAD)》1995年1月第14冊第1期第12-31頁A.P.Chandrakasan、M.Potkonjak、R.Mehra、J.Rabaey、R.Brodersen的「使用轉換來最佳化功率(Optimizing Power Using Transformations)」);多重和可變供應電壓(《IEEE電腦輔助設計會刊(IEEE Transactions on CAD)》1999年12月第18冊第12期第1702-1714頁I.Hong、D Kirovski、G.Qu、M.Potkonjak、M.B.Srivastava的「可變電壓核心型系統之功率最佳化(Power Optimization of Variable Voltage Core-based Systems)」)、(《電腦輔助設計國際會議(International Conference on Computer-Aided Design)》1998年11月第653-656頁I.Hong、M.B.Srivastava、M.Potkonjak的「在可變電壓處理器上硬即時任務之線上排程(On-Line Scheduling of Hard Real-Time Tasks on Variable Voltage Processor)」)、(《即時系統論文集(Real-Time System Symposium)》1998年12月第178-187頁I.Hong、G.Qu、M.Potkonjak、M.B.Srivastava的「在可變電壓處理器上低功率硬即時系統之合成技術(Synthesis Techniques for Low-Power Hard Real-Time Systems on Variable Voltage Processor)」);多重臨界值電壓(《IEEE固態電路期刊(IEEE Journal of Solid-State Circuits)》1998年3月第33冊第3期第463-472頁K.Usami、M.Igarashi、F.Minami、T.Ishikawa、M.Kanzawa、M.Ichida、K.Nogami的「利用施行於媒體處理器之多重供應電壓的自動化低功率技術(Automated low-power technique exploiting multiple supply voltages applied to a media processor)」);可適性主體偏壓(《IEEE固態電路期刊(IEEE Journal of Solid-State Circuits)》2002年11月第37冊第11期第1396-1402頁J.W.Tschanz、J.T.Kao、S.G.Narendra、R.Nair、D.A.Antoniadis、A.P.Chandrakasan、V.De.的「降低晶粒對晶粒和晶粒內參數變化對微處理器頻率及洩漏之影響的可適性主體偏壓(Adaptive body bias for reducing impacts of die-to-die and within-die parameter variations on microprocessor frequency and leakage)」);時脈閘控(《IEEE電路和系統I會刊:基礎理論與應用(IEEE Transactions on Circuits and Systems I:Fundamental Theory and Applications)》2000年3月第47冊第3期第415-420頁Q.Wu、M.Pedram、X.Wu的「對序列電路之低功率設計的時脈閘控及其應用(Clock-gating and its application to low power design of sequential circuits)」);閘尺寸選擇(《IEEE超大型積體電路系統會刊(IEEE Transactions on Very Large Scale Integration(VLSI)Systems)》1997年12月第5冊第4期第465-472頁O.Coudert的「限定延遲/功率/面積最佳化的閘尺寸選擇(Gate sizing for constrained delay/power/area optimization)」);重定時(《IEEE電腦輔助設計會刊(IEEE Transactions on CAD)》1998年10月第17冊第10期第936-947頁M.Potkonjak、M.B.Srivastava的「使用時序限制之操控的行為最佳化(Behavioral Optimization Using the Manipulation of Timing Constraints)」)和模板映對(《IEEE電腦輔助設計會刊(IEEE Transactions on CAD)》1996年8月第15冊第8期第877-888頁M.R.Corazao、M.Khalaf、L.Guerra、M.Potkonjak、J.Rabaey的「使用資料路徑強化高階合成之模板映對的性能最佳化(Performance Optimization using Template Mapping for Datapath-Intensive High-Level Synthesis)」)。
舉例來說,若對CMP的供應電壓增加,則對CMP的整體延遲可能會縮減,而切換和洩漏能源兩者皆會增加。或者,若臨界值電壓增加,則整體延遲亦可能增加,而切換和洩漏能源兩者可能會縮減。
以上所參考的技術可正交於文中所描述的各具體實施例,並在一些具體實施例中,為提升效益可與一個或多個具體實施例結合使用。此外,諸如動態程式編輯的一些最佳化技術可採最小的修改即直接可適用於延遲和能源成本。
第七圖為實行用於排程指令以供由包括配置於多重處理器組中含石墨烯運算元件的CMP進行處理的方法的電腦程式產品700之例示性具體實施例之區塊圖。電腦程式產品700可包括一信號承載媒體704。信號承載媒體704可包括可執行指令702之一個或多個集合,當其舉例來說由運算裝置之處理器執行時,可提供至少以上關於第二圖至第六圖所描述的功能。
在一些實作中,信號承載媒體704可涵蓋非暫時性電腦可讀取媒體708,諸如但不限於硬碟機、光碟(Compact Disc,CD)、數位影碟(Digital Video Disk,DVD)、數位磁帶、記憶體等。在一些實作中,信號承載媒體704可涵蓋可記錄式媒體710,諸如但不限於記憶體、讀取/寫入(right/write,R/W)CD、R/W DVD等。在一些實作中,信號承載媒體704可涵蓋通信媒體706,諸如但不限於數位和/或類比通信媒體(例如光纖電纜、波導、有線通信鏈路、無線通信鏈路等)。電腦程式產品700可記錄於非暫時性電腦可讀取媒體708或另一類似的可記錄式媒體710上。
第八圖為例示配置以供管理在根據本發明所揭示內容之至少一些具體實施例的晶片多處理器中的可程式編輯邏輯電路的範例運算裝置800之區塊圖。在非常基本的配置802中,運算裝置800通常包括一個或多個處理器804和一系統記憶體806。記憶體匯流排808可用於在處理器804與系統記憶體806之間進行通信。
依所需配置而定,處理器804可能為包括但不限於一微處理器(Microprocessor,μP)、一微控制器(Microcontroller,μC)、一數位信號處理器(Digital signal processor,DSP)、或其任何組合的任何類型。處理器804可包括快取之一個以上層級,諸如一1階快取810和一2階快取812、一處理器核心814、和寄存器816。範例處理器核心814可包括一算術邏輯單元(Arithmetic logic unit,ALU)、一浮點單元(Floating point unit,FPU)、一數位信號處理核心(DSP Core)、或其任何組合。處理器804可包括可程式編輯之邏輯電路,諸如但不限於現場可程式閘陣列(FPGA)、可程式修補特定應用積體電路(patchable ASIC)、複雜型可程式邏輯裝置(CPLD)、和其他。處理器804可類似於第二圖中的CMP 200或第三圖中的CMP 300。範例記憶體控制器818亦可與處理器804一起使用,或者在一些實作中,記憶體控制器818可能為處理器804之內部部分。
依所需配置而定,系統記憶體806可能為包括但不限於揮發性記憶(例如隨機存取記憶體(RAM))、非揮發性記憶體(諸如唯讀記憶體(ROM)、快閃記憶體等)、或其任何組合的任何類型。系統記憶體806可包括一操作系統820、一個或多個應用程式822、和程式資料824。如以上結 合第四圖所描述,應用程式822可包括分開成區塊的一個或多個應用程式。程式資料824可包括對運算裝置800之操作可能為有用的資料。在一些具體實施例中,應用程式822可配置成與程式資料824一起在操作系統820上進行操作。如此所描述的基本配置802在第八圖中由內部虛線裡面的那些元件例示出。
運算裝置800可具有附加特徵或功能和附加介面,以促進在基本配置802與任何所需求裝置和介面之間的通信。舉例來說,匯流排/介面控制器890可用於經由儲存介面匯流排894促進在基本配置802與一個或多個資料儲存裝置892之間的通信。資料儲存裝置892可能為可拆卸儲存裝置896、不可拆卸儲存裝置898、或其組合。可拆卸儲存和不可拆卸儲存裝置之範例包括諸如可撓式磁碟機和硬碟機(Hard-disk drives,HDD)的磁碟裝置、諸如光碟(Compact disk,CD)機或數位多功能光碟(Digital versatile disk,DVD)機的光碟機、固態硬碟(Solid state drives,SSD)、和磁帶機,以這些為例。範例電腦儲存媒體可包括以任何方法或技術實行以供儲存資訊(諸如電腦可讀取指令、資料結構、程式模組、或其他資料)的揮發性和非揮發性、可拆卸和不可拆卸媒體。
系統記憶體806、可拆卸儲存裝置896、和不可拆卸儲存裝置898為電腦儲存媒體之範例。電腦儲存媒體包括但不限於RAM、ROM、電子式可抹除程式化唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀光碟(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存體、磁性卡匣、磁帶、磁碟儲存或其他磁性儲存裝置、或可用於儲存所需資訊並可由運算裝置800存取的任何其他媒體。任何此種電腦儲存媒體皆可能為運算裝置800之部分。
運算裝置800亦可包括一介面匯流排840,其用於經由匯流排/介面控制器830促進從各種介面裝置(例如輸出裝置842、周邊介面844、和通信裝置846)至基本配置802的通信。範例輸出裝置842包括一圖形處理單元848和一音訊處理單元850,其可配置成經由一個或多個音訊/視訊(A/V)連接埠852通信至諸如顯示器或揚聲器的各種外接式裝置。範例周邊介面844包括一串列介面控制器854或一平行介面控制器856,其可配置成 經由一個或多個輸入/輸出(I/O)連接埠858與如輸入裝置(例如鍵盤、滑鼠、筆、語音輸入裝置、觸控輸入裝置等)的外接式裝置或其他周邊裝置(例如印表機、掃描器等)進行通信。範例通信裝置846包括一網路控制器860,其可配置成經由一個或多個通信連接埠864促進藉由網路通信鏈路(諸如但不限於光纖、長期演進技術(Long Term Evolution,LTE)、第三代行動通信(3G)、全球互通微波存取(WiMax))與一個或多個其他運算裝置862進行通信。
網路通信鏈路可能為通信媒體之一個範例。通信媒體通常可由電腦可讀取指令、資料結構、程式模組、或在調變資料信號(諸如載波或其他傳輸機制)中的其他資料體現,並可包括任何資訊傳遞媒體。「調變資料信號(modulated data signal)」可能為使其特性之一個或多個以編碼信號中資訊的方式進行設定或變更的信號。舉例來說,而非限制,通信媒體可包括諸如有線網路或直接連線連接的有線媒體,以及諸如聲音、無線射頻(Radio frequency,RF)、微波、紅外線(Infrared,IR)、和其他無線媒體的無線媒體。用語電腦可讀取媒體如於文中所使用可包括儲存媒體和通信媒體兩者。
運算裝置800可實行為小尺寸攜帶式(或行動)電子裝置之一部分,諸如手機、個人數位助理(Personal data assistant,PDA)、個人媒體播放器裝置、無線網路監視裝置、個人耳機裝置、應用程式指定裝置、或包括以上功能任一者的混合裝置。運算裝置800亦可實行為包括膝上型電腦和非膝上型電腦兩種配置的個人電腦。
本發明所揭示內容之各具體實施例讓包括含石墨烯運算元件的處理器能使用,同時將與石墨烯運算元件相關聯的高洩漏能源之影響降至最低或縮減。再者,本發明所揭示內容之各具體實施例提供用於排程指令以供由包括配置於多重處理器組中的含石墨烯運算元件的CMP進行處理的系統和方法。
在系統各具體實施例之硬體與軟體實作之間幾乎沒有留下區別;硬體或軟體之使用一般為(但並非總是,因為在某些上下文中硬體與軟體之間的選擇可能變得明顯)表示成本相對於效率折衷的設計選擇。有於文中所描述的程序和/或系統和/或其他技術可藉以實現(例如硬體、軟體、和 /或韌體)的各種載具,且較佳載具將會隨著程序和/或系統和/或其他技術所佈建於其中的上下文變化。舉例來說,若實行者確定速度和準確度為最重要,則實行者可為主要硬體和/或韌體載具進行選擇;若靈活性為最重要,則實行者可為主要軟體實作進行選擇;或者,又再次交替,實行者可為硬體、軟體、和/或韌體之某些組合進行選擇。
前述實施方式已經由區塊圖、流程圖、和/或範例之使用,闡述裝置和/或程序之各種具體實施例。在此種區塊圖、流程圖、和/或範例包含一個或多個功能和/或操作的範圍內,本領域範圍內人士應可理解在此種區塊圖、流程圖、或範例內的每個功能和/或操作皆可由廣泛硬體、軟體、韌體、或幾乎其任何組合個別和/或集體實行。在一個具體實施例中,於文中所描述標的之幾個部分可經由特定應用積體電路(Application Specific Integrated Circuits,ASICs)、現場可程式閘陣列(Field Programmable Gate Arrays,FPGAs)、數位信號處理器(DSPs)、或其他積體格式實行。然而,熟習此項技術者應可認可於文中所揭示的各具體實施例之一些態樣,全部或部分可在積體電路中等效實行為在一個或多個電腦上運行的一個或多個電腦程式(例如作為在一個或多個電腦系統上運行的一個或多個程式)、在一個或多個處理器上運行的一個或多個程式(例如作為在一個或多個微處理器上運行的一個或多個程式)、韌體、或幾乎其任何組合,且設計電路和/或為軟體和/或韌體編寫代碼將會充分落於根據所揭示內容的熟習此項技術之一者之技術範圍內。此外,熟習此項技術者應可瞭解於文中所描述標的之機制能以多種形式分散為程式產品,且於文中所描述標的之例示性具體實施例不論實際用於執行分散的信號承載媒體之特定類型為何皆適用。信號承載媒體之範例包括但不限於以下:諸如軟式磁碟、硬碟機、光碟(CD)、數位影碟(DVD)、數位磁帶、電腦記憶體等的可記錄類型媒體;以及如數位和/或類比通信媒體(例如光纖電纜、波導、有線通信鏈路、無線通信鏈路等)的傳輸類型媒體。
熟習此項技術者應可認可在本領域範圍內常見以文中所闡述的方式描述裝置和/或程序,且其後使用工程實作將此種所描述的裝置和/或程序整合於資料處理系統中。亦即,可將於文中所描述的裝置和/或程序 之至少一部分經由合理實驗量整合於資料處理系統中。熟習此項技術者應可認可一般資料處理系統一般包括一個或多個之一系統單元殼體、一視訊顯示裝置、諸如揮發性和非揮發性記憶體的一記憶體、諸如微處理器和數位信號處理器的處理器、諸如操作系統、驅動程式、圖形使用者介面、和應用程式的運算實體、諸如觸控板或螢幕的一個或多個互動裝置、和/或包括反饋迴路和控制馬達(例如反饋感測位置和/或速度;控制馬達移動和/或調整元件和/或分量)的控制系統。一般資料處理系統可運用任何適合的市售元件實行,諸如在資料運算/通信,和/或網路運算/通信系統中通常可找到者。
於文中所描述標的有時例示出包含於不同其他元件內或與其連接的不同元件。應可理解此種所描繪出的架構僅為示例性,且事實上可實行達成相同功能的許多其他架構。在概念性意義上,達成相同功能的元件之任何配置皆有效「相關聯(associated)」,使得所需功能達成。因此,於文中結合以達成特定功能的任何兩個元件可視為「與彼此相關聯(associated with each other)」,使得所需功能達成,不論架構或中間元件為何。同樣地,如此相關聯的任何兩個元件亦可視為彼此「可操作連接(operably connected)」或「可操作耦合(operably coupled)」以達成所需功能,且能如此相關聯的任何兩個元件亦可視為彼此「可操作可耦合(operably couplable)」以達成所需功能。可操作可耦合之具體範例包括但不限於實體上可對接和/或實體上互動的元件,和/或無線可互動和/或無線互動的元件和/或邏輯上互動的和/或邏輯上可互動的元件。
關於文中大體上任何複數和/或單數用語之使用,熟習此項技術者可從複數轉換為單數和/或從單數轉化為複數以適合於上下文和/或應用。為了清楚表示,可於文中明白闡述各種單數/複數置換。
一般來說,本領域範圍內人士應可理解於文中和尤其在所附諸申請專利範圍(例如所附諸申請專利範圍之主體)中所使用的用語,一般意指「開放式(open)」用語(例如用語「包括(including)」應解譯為「包括但不限於(including but not limited to)」,用語「具有(having)」應解譯為「至少具有(having at least)」,用語「包括(includes)」應解譯為「包括但不限於(includes but is not limited to)」等)。本領域範圍內人士應可進一步理解若所欲為具體 數量之引入的所主張陳述,則此種意向將會明確陳述於申請專利範圍中,且在不存在此種陳述的情況下,此種意圖不存在。舉例來說,為幫助理解,以下所附諸申請專利範圍可包含引導性片語「至少一者(at least one)」和「一個或多個(one or more)」之用法以引入所主張陳述。然而,此種片語之使用不應理解為暗示由不定冠詞「一(a)」或「一(an)」引入的所主張陳述,將包含此種引入的所主張陳述的任何特定主張限制於包含僅一個此種陳述的發明,即使當相同主張包括引導性片語「一個或多個(one or more)」或「至少一者(at least one)」和諸如「一(a)」或「一(an)」的不定冠詞(例如「一(a)」和/或「一(an)」通常應解譯為意指「至少一者(at least one)」或「一個或多個(one or more)」);同樣也適用於用於引入所主張陳述的定冠詞之使用。此外,即使明確陳述具體數量之引入的所主張陳述,但熟習此項技術者應可認可此種陳述通常應解譯為意指至少所陳述的數量(例如沒有其他修飾詞的「兩項陳述(two recitations)」之裸陳述,通常意指至少兩項陳述,或者兩項或多項陳述)。再者,在使用類似於「A、B、和C中至少一者等(at least one of A,B,and C,etc.)」的慣用的那些實例中,一般來說此種結構所欲意向為熟習此項技術者應可理解該慣用(例如「具有A、B、和C中至少一者的系統(a system having at least one of A,B,and C)」將會包括但不限於具有單獨A、單獨B、單獨C、A和B一起、A和C一起、B和C一起、和/或A、B、和C一起等的系統)。在使用類似於「A、B、或C中至少一者等(at least one of A,B,or C,etc.)」的慣用的那些實例中,一般來說此種結構所欲意向為熟習此項技術者應可理解該慣用(例如「具有A、B、或C中至少一者的系統(a system having at least one of A,B,or C)」將會包括但不限於具有單獨A、單獨B、單獨C、A和B一起、A和C一起、B和C一起、和/或A、B、和C一起等的系統)。本領域範圍內人士應可進一步理解描述兩個或多個替代性用語的幾乎任何反意字詞和/或片語,無論在說明書、諸申請專利範圍、或所附圖式中,皆應理解為設想包括用語之一、用語任一者、或用語兩者之可能性。舉例來說,片語「A或B(A or B)」將會理解為包括「A」或「B」或者「A和B(A and B)」之可能性。
雖然於文中已揭示各種態樣和具體實施例,但熟習此項技術 者應可得知其他態樣和具體實施例。於文中已揭示的各種態樣和具體實施例係為了例示之目的且不欲為限制,其中由以下諸申請專利範圍指示真實的範疇與精神。

Claims (25)

  1. 一種晶片多處理器,包含:一個或多個高速處理器核心,其設置於一晶粒上並包括含石墨烯運算元件;以及複數個附加處理器核心,其設置於該晶粒上並包括比該等一個或多個高速處理器核心一更低百分比之含石墨烯運算元件,其中該等一個或多個高速處理器核心配置成當該等複數個附加處理器核心中至少一些配置成閘控時進行操作。
  2. 如申請專利範圍第1項之晶片多處理器,其中該等一個或多個高速處理器核心包含多個石墨烯型處理器核心之一第一組,該第一組之每個石墨烯型處理器核心皆包括大體上相同百分比之含石墨烯運算元件。
  3. 如申請專利範圍第2項之晶片多處理器,其中該等複數個附加處理器核心包括處理器核心之一第二組和處理器核心之一第三組,在該第二組中的每個處理器核心皆相對於該第一組包括一更低百分比之含石墨烯運算元件,而在該第三組中的每個處理器核心皆相對於該第二組包括一更低百分比之含石墨烯運算元件。
  4. 如申請專利範圍第3項之晶片多處理器,更包含一任務管理器,其耦合於該等第一、第二、和第三處理器組,並配置成選擇該等處理器組之一個或多個進行依據排程以運行於該晶片多處理器上的一應用程式之平行處理之一層級的操作,其中該任務管理器配置成選擇該第一處理器組進行該應用程式之平行處理之一較低層級,並選擇該第三處理器組進行該應用程式之平行處理之一較高層級。
  5. 如申請專利範圍第4項之晶片多處理器,其中該任務管理器更配置成依據包括於該等處理器組中的含石墨烯運算元件之一百分比中至少一者或與該等處理器組相關聯的一時脈速度,選擇該等處理器組之一個或多個。
  6. 如申請專利範圍第2項之晶片多處理器,其中在多個石墨烯型處理器核心之該第一組中的該等一個或多個高速處理器核心配置成序列操 作。
  7. 如申請專利範圍第6項之晶片多處理器,其中在多個石墨烯型處理器核心之該第一組中的該等一個或多個高速處理器核心之一主動處理器核心之操作,依據該主動處理器核心之一操作溫度傳輸至在多個石墨烯型處理器核心之該第一組中的該等一個或多個高速處理器核心之另一者。
  8. 如申請專利範圍第2項之晶片多處理器,其中該等複數個附加處理器核心中至少一者設置於在多個石墨烯型處理器核心之該第一組中的該等一個或多個高速處理器核心之兩個或多個之間。
  9. 如申請專利範圍第8項之晶片多處理器,其中該等複數個附加處理器核心配置於該晶粒上,使得在多個石墨烯型處理器核心之該第一組中的該等一個或多個高速處理器核心無一者設置鄰接於設置於該晶粒上的該等一個或多個高速處理器核心之任何其他者。
  10. 如申請專利範圍第3項之晶片多處理器,其中在該第一組中的該等多個石墨烯型處理器核心中至少一者設置於該晶粒之一邊緣上。
  11. 如申請專利範圍第1項之晶片多處理器,其中該等一個或多個高速處理器核心配置成當該等附加處理器核心中至少一些配置成操作時進行閘控。
  12. 如申請專利範圍第2項之晶片多處理器,其中多個石墨烯型處理器核心之該第一組配置成當所有該等複數個附加處理器核心閘控時進行操作。
  13. 如申請專利範圍第1項之晶片多處理器,其中該等複數個附加處理器核心之操作依據其中一者:比該等一個或多個高速處理器核心更低的一頻率時脈,和與該等一個或多個高速處理器核心相關聯的一時脈之多個時脈週期之使用,以施行一個操作。
  14. 如申請專利範圍第1項之晶片多處理器,其中該等含石墨烯運算元件包括閘和序列元件之一個或多個。
  15. 一種排程即將由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器處理的指令之方法,該方法包含: 確定一時間成本和一能源成本中至少一者以供該等多重處理器組之一個或多個來從一應用程式執行指令之一第一區塊;確定一時間成本和一能源成本中至少一者以供該等多重處理器組之一個或多個來從該應用程式執行指令之一第二區塊;確定與來自該等多重處理器組中任一者至該等多重處理器組中任何其他者的該應用程式之切換執行相關聯的上下文切換成本,其中上下文切換在指令之該第一區塊由該等多重處理器組之一第一執行後才發生,和指令之該第二區塊由該等多重處理器組之一第二執行前;以及依據該等所確定的時間成本、能源成本、和上下文切換成本中至少一者,選擇該等多重處理器組之一以執行指令之該第一區塊,並選擇該等多重處理器組之一以執行指令之該第二區塊。
  16. 如申請專利範圍第15項之方法,其中,在該等多重處理器組之一給定一者中,所有處理器皆具有一大體上相等百分比之含石墨烯運算元件,且對每個該等多重處理器組而言,與該處理器組相關聯的含石墨烯運算元件之一百分比皆不同於與該等多重處理器組之任何其他者相關聯的含石墨烯運算元件之一百分比。
  17. 如申請專利範圍第15項之方法,其中該選擇更依據縮減一時間以供該晶片多處理器來處理該第一指令區塊和該第二指令區塊。
  18. 如申請專利範圍第17項之方法,其中供該晶片多處理器來處理該第一指令區塊和該第二指令區塊的該時間經縮減而未超過一特定能源成本。
  19. 如申請專利範圍第15項之方法,其中該選擇更依據縮減一能源成本以供該晶片多處理器來處理該第一指令區塊和該第二指令區塊。
  20. 如申請專利範圍第19項之方法,其中該能源成本包括一切換能源,其與每個該等一個或多個多重處理器組皆相關聯以執行指令之該第一區塊;以及一洩漏能源,其與每個該等一個或多個多重處理器組皆相關聯以執行指令之該第一區塊。
  21. 如申請專利範圍第15項之方法,其中選擇該等多重處理器組之一以執 行指令之該第一區塊,並選擇該等多重處理器組之一以執行指令之該第二區塊包含施行一動態程式編輯處理,使得該晶片多處理器之一能源消耗降至低於一目標臨界值,同時該應用程式執行於一目標時間延遲內。
  22. 如申請專利範圍第15項之方法,其中確定該時間成本和該能源成本中至少一者以供該等多重處理器組之一個或多個來從包含計算使用電壓降低、多重和可變供應電壓、多重臨界值電壓、可適性主體偏壓、時脈閘控、閘尺寸選擇、重定時和模板映對中至少一者之一效應的該應用程式執行指令之該第一區塊。
  23. 一種排程即將由包括配置於多重處理器組中的含石墨烯運算元件的晶片多處理器處理的指令的方法,該方法包含:確定一時間成本和一能源成本中至少一者以供每個該等多重處理器組皆從一應用程式執行指令之一第一區塊;依據該等所確定的時間成本和能源成本中至少一者以供每個該等多重處理器組皆執行指令之該第一區塊,選擇該等多重處理器組之一第一以執行指令之該第一區塊;確定一時間成本和一能源成本中至少一者以供每個該等多重處理器組皆從該應用程式執行指令之一第二區塊;依據該所確定的時間成本和該能源成本中至少一者以供每個該等多重處理器組皆執行指令之該第二區塊,選擇該等多重處理器組之一第二以執行指令之該第二區塊,該等多重處理器組之該第二之該選擇在該等多重處理器組之該第一已開始指令之該第一區塊之執行後才施行。
  24. 如申請專利範圍第23項之方法,更包含確定與從該等多重處理器組之該第一至該等多重處理器組中任何其他者的該應用程式之切換執行相關聯的一上下文切換成本,其中上下文切換在該第一指令集由該等多重處理器組之該第一執行後才發生,且該等多重處理器組之該第二之該選擇至少部分依據該所確定的上下文切換成本。
  25. 如申請專利範圍第23項之方法,其中該等多重處理器組之該第二之該選擇依據運行於該晶片多處理器上的該應用程式之平行處理之一層級,同時該等多重處理器之該第一執行指令之該第一區塊。
TW103127054A 2013-08-15 2014-08-07 採石墨烯型電晶體的異質多核心處理器 TWI536260B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2013/055025 WO2015023277A2 (en) 2013-08-15 2013-08-15 Heterogeneous multicore processor with graphene-based transistors

Publications (2)

Publication Number Publication Date
TW201523438A true TW201523438A (zh) 2015-06-16
TWI536260B TWI536260B (zh) 2016-06-01

Family

ID=52468765

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103127054A TWI536260B (zh) 2013-08-15 2014-08-07 採石墨烯型電晶體的異質多核心處理器

Country Status (4)

Country Link
US (1) US10095658B2 (zh)
CN (1) CN105830046A (zh)
TW (1) TWI536260B (zh)
WO (1) WO2015023277A2 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013140019A1 (en) * 2012-03-21 2013-09-26 Nokia Corporation Method in a processor, an apparatus and a computer program product
US10714425B2 (en) * 2016-09-13 2020-07-14 Apple Inc. Flexible system integration to improve thermal properties

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024649B2 (en) 2003-02-14 2006-04-04 Iwatt Multi-output power supply design system
US7725848B2 (en) 2005-01-27 2010-05-25 Wolfgang Nebel Predictable design of low power systems by pre-implementation estimation and optimization
GB0407070D0 (en) 2004-03-30 2004-05-05 Imec Inter Uni Micro Electr A method for designing digital circuits, especially suited for deep submicron technologies
US20060171244A1 (en) * 2005-02-03 2006-08-03 Yoshiyuki Ando Chip layout for multiple cpu core microprocessor
US8024695B2 (en) 2008-02-05 2011-09-20 Nangate A/S Optimization of integrated circuit design and library
US8881157B2 (en) 2009-09-11 2014-11-04 Empire Technology Development Llc Allocating threads to cores based on threads falling behind thread completion target deadline
US8106383B2 (en) 2009-11-13 2012-01-31 International Business Machines Corporation Self-aligned graphene transistor
US8595731B2 (en) * 2010-02-02 2013-11-26 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
EP2362297B1 (en) * 2010-02-25 2014-05-14 Telefonaktiebolaget L M Ericsson (publ) Technique for selecting a frequency of operation in a processor system
US8450779B2 (en) 2010-03-08 2013-05-28 International Business Machines Corporation Graphene based three-dimensional integrated circuit device
US8832629B2 (en) 2010-07-23 2014-09-09 Freescale Semiconductor, Inc. Method for optimising cell variant selection within a design process for an integrated circuit device
US8785261B2 (en) 2010-09-23 2014-07-22 Intel Corporation Microelectronic transistor having an epitaxial graphene channel layer
US8748871B2 (en) 2011-01-19 2014-06-10 International Business Machines Corporation Graphene devices and semiconductor field effect transistors in 3D hybrid integrated circuits
US8409957B2 (en) 2011-01-19 2013-04-02 International Business Machines Corporation Graphene devices and silicon field effect transistors in 3D hybrid integrated circuits
US9262166B2 (en) * 2011-11-30 2016-02-16 Intel Corporation Efficient implementation of RSA using GPU/CPU architecture
CN102799418B (zh) 2012-08-07 2014-10-08 清华大学 融合了顺序和vliw的处理器体系结构及指令执行方法

Also Published As

Publication number Publication date
WO2015023277A3 (en) 2016-07-07
TWI536260B (zh) 2016-06-01
US10095658B2 (en) 2018-10-09
US20160232127A1 (en) 2016-08-11
WO2015023277A2 (en) 2015-02-19
CN105830046A (zh) 2016-08-03

Similar Documents

Publication Publication Date Title
Kogge et al. Exascale computing trends: Adjusting to the" new normal"'for computer architecture
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
US20130205126A1 (en) Core-level dynamic voltage and frequency scaling in a chip multiprocessor
Munir et al. High-performance energy-efficient multicore embedded computing
KR20200069346A (ko) 대규모 병렬 소프트웨어로 정의된 하드웨어 시스템에서의 정적 블록 스케줄링
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
JP2013527943A (ja) 熱を考慮したスケジューリングおよびバインディングを使用したハードウェア合成
JP4381459B1 (ja) 情報処理装置、粒度調整方法およびプログラム
Khavari Tavana et al. Energy-efficient mapping of biomedical applications on domain-specific accelerator under process variation
Kultursay et al. Performance enhancement under power constraints using heterogeneous CMOS-TFET multicores
US20190146837A1 (en) Distributed real-time computing framework using in-storage processing
JP2009053989A (ja) 半導体回路設計方法
Hu et al. Management and optimization for nonvolatile memory-based hybrid scratchpad memory on multicore embedded processors
TWI536260B (zh) 採石墨烯型電晶體的異質多核心處理器
Zheng et al. Exploring energy scalability in coprocessor-dominated architectures for dark silicon
US9529587B2 (en) Refactoring data flow applications without source code changes or recompilation
Dani et al. Toward a scalable working set size estimation method and its application for chip multiprocessors
Henning et al. Trailblazing with roadrunner
Keceli Power and performance studies of the explicit multi-threading (XMT) architecture
TWI509448B (zh) 具有石墨烯電晶體之處理器的良率最佳化
Pan et al. A fast system-level design methodology for heterogeneous multi-core processors using emerging technologies
Du et al. Efficient loop scheduling for chip multiprocessors with non-volatile main memory
Wang et al. Whole procedure heterogeneous multiprocessors low-power optimization at algorithm-level
JP2014052918A (ja) 演算装置およびその制御方法
Stillmaker Design of energy-efficient many-core MIMD GALS processor arrays in the 1000-processor era

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees