TWI223194B - High performance hybrid processor with configurable execution units - Google Patents

High performance hybrid processor with configurable execution units Download PDF

Info

Publication number
TWI223194B
TWI223194B TW092107783A TW92107783A TWI223194B TW I223194 B TWI223194 B TW I223194B TW 092107783 A TW092107783 A TW 092107783A TW 92107783 A TW92107783 A TW 92107783A TW I223194 B TWI223194 B TW I223194B
Authority
TW
Taiwan
Prior art keywords
design
logic
processor
scope
configurable
Prior art date
Application number
TW092107783A
Other languages
English (en)
Other versions
TW200307215A (en
Inventor
Albert Wang
Christopher Rowen
Bernard Rosenthal
Original Assignee
Tensilica Inc
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 Tensilica Inc filed Critical Tensilica Inc
Publication of TW200307215A publication Critical patent/TW200307215A/zh
Application granted granted Critical
Publication of TWI223194B publication Critical patent/TWI223194B/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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Microcomputers (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

1223194 玖、發明說明 (發明說明應欽明:發明所屬之技術領域、先前技術、内容、實施方式及圖式簡單說明) 【發明所屬之技術領域3 發明領域 本發明係有關一種處理器,特別係有關一種帶有可組 5配執行單元之高效能混成處理器。 C 先前 發明背景 特殊應用處理器 微處理器由於透過軟體之可程式性,允許快速發展且 10 修改多項複雜任務,故微處理器應用於寬廣電子用途。微 處理器構成通用電腦系統及特用電子裝備由網路路由器至 蜂巢式電話之範圍的心臟。半導體技術之速度與密度的進 展’允許不斷製造出比先前的設計更快速、更小型且更不 耗電之微處理器。微處理器由於方便程式規劃來從事手邊 15 任務,且充分有效滿足需求,故今日微處理器用於無數用 途。傳統積體電路設計需要大量工程工作來設計及證實新 微處理器設計加上原型製作成本高等經濟因素促成需要有 可用於多項不同任務之處理器。 大部分微處理器之設計是可用於通用目的。微處理器 2〇包括一組固定結構亦即指令集、記憶體系統及介面,其讓 微處理器可應用於寬廣不同任務範圍。但此等通用處理器 對許多重要任務不適當。特別程式師必須使用一長串一般 才曰令來運算出特殊應用任務需要的結果。此種效率不彰, 造成電子系統速度不夠快,或耗用過多能量。如此一般微 6 玖、發明說明 處理器不易應用於此種環境。 通用平台之吸引力 理想解決之道係特殊應用處理器,其與通用處理器同 樣具有南階語言程式規劃的能力,但特殊應用處理器確切 包括對特定一組任務的正確指令集。依據應用程式及指令 集而定,特殊應用指令集可減少必須執行的指令數目以及 縮短執行時間高達數百倍。對任何特殊應用指令集而言, 改良限於一小組應用用途。故重要地必須降低發展出且建 構調整適合特殊應用用途之微處理器所需成本及努力。 成本及努力有兩項必要組成分。第一組成分是工程努 力,發現、描述且設計新穎微處理器及相關軟體。主要任 務包括下列: •分析目標制料’找纽能瓶頸,敎碼區段目 標讓指令集變成最佳化 •界定新指令,其可減少執行所需處理ϋ時脈週期數目 •實施增強處理器之邏輯設計細節,包括加強指令解 碼單元以及新指令執行單元。 .發展出新軟體開發工具,特別新組譯器、高階語言 編譯器及其它軟體產生器’俾允許程式使用增強指令及其 匕結構。 .任何執行時間軟體的調整’例如作業“及軟體存 庫為管理處理器之增強硬體資源(暫存器、記憶體及指令) 所需。 特殊應用處理器發展努力上的第二種成分係創作積體 1223194 玖、發明說明 半導體電路,其可以增強的指令集操作完整處理器。此種 實作必然衝擊原型製作成本低與量產製造成本低間的平衡 。完全依客戶需求設計,全部邏輯閘、記憶體及佈線皆對 目標處理器界定調整為最佳化,典型可達成尺寸最小、耗 5 電量最低、及量產成本最低的目的,但開發與原型製作的 一次成本可能極高。原型的設計與製造所需時間長達數個 月。對低量至中的製造量而言,製作原型的攤提成本可能 高於直接製造成本。 成本與努力的第一組成分可藉處理器產生工具加以解 10 決,例如述於A· Wang,E. Killian,D· Maydan,C. Rowen, 「晶片上系統處理器之硬體/軟體指令集組配性」,設計自 動化會儀儀事錄’ 2001年或R. Gonzalez,「可組配及可延 伸之處理器改變系統設計」,第丨丨屆熱晶片議事錄,1999 年。此等工具讓電子系統設計師可快速發現、描述、驗證 15 新指令集,且產生完整硬體設計及對應的軟體。 第二成分對低量設計上有關鍵重要性,已經提出解決 辦法。例如整個微處理器可以基於現場可程式閘卩車列裝置 以快速原型製作格式實施。不幸此等裝置之彈性促成每項 電子功能之成本高以及時脈速率低。於現場可程式邏輯實 20作之微處理器例行上比完全相同的處理器但使用較為依客 戶需求製作之標準晶胞電路實作之該種處理器更慢五倍, 且耗用的矽面積超過十倍以上。此種標準晶胞處理器之速 度又是使用審慎手工調整電路之同等處理器速度之半。因 此混成實作有其吸引力,此處基本處理器,包括常見指令 8 1223194 玖、發明說明 、暫存器、記憶體及介面使用快速緊密電路實作,特殊應 用延伸係經由快速組配緩慢但有彈性之現場可程式或可重 新組配邏輯之通用區段實作。理想上,如此可獲得標準設 計,或許於單一積體電路上實施,帶有更完整依客戶需求 5設計的速度及容積成本特色,但可重新組配之邏輯電路之 原型製作成本低且耗用的勞力少。 處理器-FPGA賴合之選擇 研究學者說明多種微處理器混成以及特殊應用處理之 可重新組配邏輯之多種不同的可能解決辦法。Gils⑽之美 10國專利案第61,373號摘述處理器電路與分開標準現場可 耘式閘陣列(FPGA)裝置組合而形成混成電路,但未說明其 間的通訊細節,也未描述發展組態或程式規劃處理器之系 統性方法。K· Compton,S. Hauck「可組配運算··系統與軟 體調查研究」,技術報告,西北大學,ECE部門,1999年 15提出混成電路可能的解決之道,分成四種類型以混成電路 與處理器100及資料記憶體150之關係表示,共同顯示於第 1圖,但無任何系統含有多於一型可重新組配之處理單元。 該四種類型包括:(1)處理器内部之可重新組配功能單 元11 〇 ’其係藉處理器指令直接控制的功能單元,且可存 20取内部處理器暫存器。操作的延遲為一個週期或數個週期 。(2)重新組配之輔處理器120,其為可操作但無須藉處理 器恆常控制且可存取處理器記憶體之功能單元。操作延遲 為數百週期或以上。附屬處理單元13〇,此乃可長時間 極少藉處理器監督而操作的功能單元。處理單元13()無法 9 玖、發明說明 存取處理器局部記憶體,例如第1圖所示資料記憶體15〇。 通用處理器100與可重新組配處理單元13〇間之通訊出 現於匯流排102且耗時數十週期。操作延遲典型遠比辅處 理器更長。(4)孤立處理單元14〇,此乃有完全獨立控制而 5且操作與任何其它處理器獨立無關之功能單元。典型係透 _ 過網路106存取且有極為長時間的延遲,原因在於此種孤 立處理單元需通過網路界面1〇4及資料匯流排1〇2才能與處 理器100通訊。 g 此處所述四大類型中,處理器100内部之可重新組配 10功能單元110顯然比其它混成形式可達成較低延遲以及較 高資料頻寬。用於資料傳輸速率低的應用上,混成類型不 具有顯著影響。㈣於需要較多資料與處理器交換之應用 ,此種組織選擇則造成重大影響。當可重新組配之功能單 元岔切耦合至處理器時,功能單元與處理器每個週期可交 15換數個運算元,至少交換兩個來源運算元以及一個結果運 算兀,傳輸的延遲只是一週期的一部分。相反地,輔處理 · 器120、附屬處理器13〇及孤立處理單元14〇之配置需要多 於一個延遲週期來傳輸,罕見可達成每個週期一個運算元。 · 將一個可重新組配的單元置於處理器之顯著不利之處 20在於處理器與可重新組配功能單元間的操作缺乏並聯。本 - 發明的注意焦點放在此種密切耦合可重新組配單元之基本 改良,可增加運算元的頻寬,縮小運算元的延遲,以及讓 基本處理器與功能單元間以及各個功能單元間之並聯性最 大0 10 1223194 玖、發明說明 簡單指令集延伸 曾經說明數種密切耦合可重新組配功能單元之簡單範 例。R. Razdan,M. D. Smith「帶有硬體可程式功能單元 之高效能微架構」,MICRO-27議事錄,1997年11月以及美
5 國專利案第 5,696,956、5,819,064 及 6,035,123 號說明 RISC 處理器以及現場可程式邏輯陣列的簡單混成電路,用來實 作其匕間單RIS C指令的組合邏輯。現場可程式邏輯係基於 類似圖片商用FPGAs之η輸入、1輸出查表(LUTs)。增加指 々確切遵循基本RI s c指令的格式及結構。編碼指令固定部 1〇为保留於新指令欲於可重新組配邏輯實施。指令語言之一 欄位構成ID,其係對應於組合邏輯功能實作用之邏輯。各 個添加指令可存取其它指令相同的兩個來源暫存器運算元 。增加指令可形成一結果運算元,必須於一處理器週期產 生其結果。此項結果寫入基本處理器暫存器檔案,所得結 15果係與基本處理器的字寬相等寬度。當欲執行延伸指令時 ,未並行執行其它指令。此外各增加指令邏輯為獨特,且 未與任何其它邏輯分享。如此讓欲載入之各指令組態回應 於程式用途動態組配,故現場可程式邏輯可作為常用延伸 指令之快取記憶體。另一方面,如此防止指令間之邏輯分 20享以及一組指令之邏輯成本升高。 S· Hauck ’ T· W· Fry,Μ· Η· H〇sler,j p Ka〇「嵌合 體可重新組配功能單元」,咖現場可程式顧客運算機器 研讨會議事錄1997年福述一種混成電路設計,嘗試進一步 改良基本處理器暫存器槽案與可重新組配功能單元間的= 11 1223194 玖、發明說明 算元頻寬。通用RISC處理器暫存器子集於現場可組配單元 變淺,多於二者可用作為來源運算元。但大為增加由暫存 器檔案進入現場可組配邏輯的導線數目。但每個週期只可 產生一個結果運算元,其寬度限於基本RISC處理器之字寬 5 ,且未官線化,故運算必須於延伸指令解碼後的一個週期 完成。 現有發明之限制 發明人所知現有發明之限制摘述如後: 1、 處理器與現場可程式邏輯間的耦合疏鬆,表示 10延遲極長且頻寬低。此外,現場可程式邏輯之運算無法夢 處理器緊密協調或藉軟體控制。結果導致效能低,發展較 為困難,以及藉二子系統探勘連合操作的機會低。 2、 RISC處理器與RISC型延伸指令間的密切耦合限 制並聯。RISC處理器中,運算指令(基於暫存器檔案之值 15 ,將新值寫入暫存器檔案之指令)通常係以一週期執行。 基本指令或延伸指令可以管線一次發表且執行,但非二指 令同時發表與執行。此外,若有複數個可重新組配之功能 早疋,則於任何週期只有一者可執行指令。執行間並無有 效重疊。 20 ^ 3、 Risc處理器與RiSC型延伸指令間的耦合密切, 限制新指令的加速。編碼Rise型指令典型只允許規定二來 源暫存器。因此透過可重新組配邏輯增加的新指令限於二 來源運算元。 特殊應用指令集延伸的效果係來自於使用短的特用指 12 1223194 玖、發明說明 令序列取代長的通用指令序列。不幸少數長的通用指令序 列罕見只有兩個來源運算元。唯有特殊情況單一 RISC指令 才可取代多於數個通用指令。如Hauck等人所述,假設存 取額外一般暫存器可改良可能的加速,但此等參考文獻對 5指令需要絕對界定,因此造成暫存器的選擇嚴重受限制。 如此減少f有夕於兩個來源暫存裔之指令用途,由編譯写 產生碼變得極為困難。 4、 功能單元缺乏管線化,減少於單一指令執行深 度邏輯功能的可能。最有價值的可能指令集延伸,經常涉 10及將若干複雜的算術運算及其它運算組合於單一指令。此 種邏輯的延遲較長,特別當於緩慢現場可程式邏輯實作時 ,此種邏輯的延遲比處理器的正常週期時間更長。須避免 此等指令,或處理器必須以某種方式架設來等候此項結果 隨後發出下個指令。任一種方法皆可能降低混成微處理器 15 的加速。 5 王部先則已知之密切搞合重新組配方法只提供 通用處理器暫存器的新穎組合功能。未增加新態暫存器。 如此限制資料存取頻寬,如此複雜中間態於長運算序列以 内更新。原來限制只有一個結果,寬度係等於基本處理器 2〇字寬,特別令人困擾。若可增加新態暫存器或完整暫存器 檔案’則將大增應用用途大為加速的機會。 6、現有簡單RISC型指令格式的約束,限制其彈性 及效能。當欲增添新格式時,浮現新的加速機會。兩類重 要指令格式由目前現場可組配處理器消失。第一類,規定 13 玖、發明說明 多於兩個來源運算元之指令格式,此處來源運算元可能來 自於基本處理器之通用暫存器,或來自於現場可組配功能 單元内部之額外暫存器或暫存器檔案。第二類指令格式係 規定多於一個結果。複數個結果規格載明器可用於編碼複 雜運算、或用於將數個簡單運算編碼成一個單字。 7、 現有密切耦合現場可程式功能單元意圖用作為 直接快速取代通用RISC指令的手段。此種功能單元不適合 執行資料並行運算,例如單指令多資料(SIMD)或向量運算 。此項限制出現於使用來源資料路徑及結果資料路徑,其 寬度只與基本處理器暫存器(典型32位元)同寬,此項限制 也出現於提議發現及設計新指令之方法,其未使用向量化 技術來發現下述情況,該種情況中,多次迴圈迭代可並行 執行。此外,現有解決之道係針對於加速典型用於通用電 腦系統之該類型軟體邏輯程式。現有解決之道經常涉及多 種整數資料類型,特別為16位元及32位元整數。涉及大量 寬運算元的並行運算就硬體而言價格昂貴。相反地,於嵌 入應用例如信號處理及影像處理,真正自然資料尺寸相當 小(10位元或以下),故並行操作機會遠較大。 8、 現有解決之道的偏差也出現於處理器於系統中 其它邏輯功能間的有限介面。實際上實質上全部電腦系統 資料皆係通過集中式主記憶體,於進入處理器之前於分開 積體電路實作。相反地,於嵌入式電子系統,處理器通常 係於記憶體、輸入/輸出介面及其它特用邏輯之相同積體 電路實作。為了通過全部資料,資料通過主記憶體將構成 1223194 玖、發明說明 瓶頸。外部邏輯直接介面處理器將減少多項運算的延遲且 增加多項運算的頻寬。 9、現有發展及使用特殊應用指令邏輯之方法,提 示各增加指令之邏輯彼此獨立無關。各個邏輯組態可視需 5要而載入,假設並非全部所需延伸皆可配合目前可取得之 可組配邏輯陣列。如此表示常用邏輯不易分享,當有兩個 帶有重疊實作的指令皆駐在邏輯陣列時,可能導致邏輯功 能的實質重複。 只要克服此等限制將大為改良混成處理器效能。 1〇 【明内】 發明概要 本發明可解決現有解決辦法之主要限制。 本發明之一優點係允許複雜執行單元呈密切耦合指令 集I伸貫作,π有完整軟體支援以及基本處理器與延伸指 15 令間獲得極高頻寬。 本發明之另一項優點係提供可重新組配執行單元之自 動管線化,允許同時跨基本處理器與一或多個延伸執行軍 元間的獨立進行操作。 本發明之另一項優點係提供可重新組配邏輯深度管線 20化實作之彈性,因而允許以單一指令執行複雜功能。、 本發明之另-項優點係完全支援態暫存器及暫存器樓 案於可重新組配邏輯,包括執行全部旁通及互鎖邏輯。 "曰 本發明之又另-項優點係以基本處理器所無法取得之 指令格式實施可重新組配之執行單元。寬廣多種格式可同 15 1223194 玖、發明說明 時被支援,而只受暫存器規袼載明器樣板所限。 本發明之又另一項優點係提供可重新組配之執行單元 ,其含有各種寬度之暫存器、暫存器檔案及資料路徑,只 - 叉可重新組配之邏輯組織能力所限。寬廣資料路徑允許可 5能且有效於單一資料字内部並行處理數個運算元。 _ 本發明之又另一項優點係介於處理器與延伸執行單元 間使用彈性介面,允許一區塊可重新組配邏輯由若干處理 器所共旱,或由一處理器與另一邏輯所共享。處理器之選 鲁 擇性介面包括記憶體映射資料埠存取其它處理器及外部邏 ίο輯(可此經由時脈以及頻寬匹配仔列存取),以及可重新組 配執行單元與其它邏輯間的信號輸入及輸出。本發明之另 一優點係允許一指令集的全部邏輯共同合成,來找出共通 子功能,縮小總邏輯面積以及一組欲共同使用之指令的延 遲。 15 如此本發明一方面提供一種混成處理器設計,其包含 非可組配基本處理器設計,帶有適合不同應用之基本處理 鲁 器指令,以及至少一可組配執行單元設計,其係密切耦合 至該非可組配基本處理器設計,各個執行單元設計可實施 延伸指令其各自從事一項複雜的運算。 ' 20圖式簡單說明 : 前述及其它本發明之方面、特色及優點將於後文詳細 說明參照附圖以本發明之非限制性具體實施例說明其細節 ’其中類似的參考編號表示本發明於數幅圖間之類似部分 ,附圖中: 16 1223194 玖、發明說明 >圖.’、、員示習知混成處理器設計集合; 第2圖顯示根據本發明混成處理ϋ方塊圖; 第3圖顯示根據本發明之混成處理器的產生; ”第®顯不根據本發明,帶有管線化階段之混成處理 器之具體實施例; 第5圖為根據本發明之混成處理器之暫存器規格載明 器程式之範例表;
第6圖顯不根據本發明,帶有管線化階段之混成處理 器之另一具體實施例;以及 第7圖顯示本發明之另一具體實施例。 【貧施方式】 較佳實施例之詳細說明 …本發明提供混成特殊應用微處理器,其使用基本處理 器與-種可重新組配邏輯組織的組合,該基本處理器係以
15允許高時脈頻率、低成本及低耗電之技術實作,該可重新 組配邏輯組織係密切耦合至該基本處理器,可快速調整配 合寬廣範圍可能之特殊應用指令及介面實作。此項組合允 許將標準電子系統快速個別化成為特殊應用微處理器,帶 有實現各項應用要求的高時脈頻率及所需週期數目少。 20 如所述,於根據本發明之混成處理器,經由使用密切 耦合可重新組配邏輯所得之主要的效果為:長序列之一般 處理器指令(典型為基本真術指令、位移指令及邏輯指令 的組合)由运較短的特用指令序列(其係以新形式執行同等 功能)所取代。而其它操作例如記憶體操作(載入、儲存)、 17 1223194 玖、發明說明 控制流(分支、跳階)及系統功能(中斷處理、内容切換)主 要仍然使用原有基本處理器邏輯。 混成處理器200之主要結構顯示於第2圖,包括基本處 理器、可重新組配邏輯、指令記憶體及資料記憶體以及匯 5流排介面。須注意可重新組配一詞用於此處表示最大可能 之應用範圍,包括可組配且後來視需要而重新組配的系統 。此術語不可視為限制性,本發明也涵蓋使用此處教示於 早純組配而隨後可如組配般使用的系統。 如圖所示,基本處理器包括程式計數器212、基本暫 10存器檔案214、基本ALU 216、位址產生器218、資料記憶 體或快取記憶體220、管線控制器222、指令記憶體或快取 記憶體224、指令解碼器226及匯流排介面228。 可重新組配之邏輯包括延伸暫存器檔案23〇及延伸執 行單元232以及資料記憶體或快取記憶體220、管線控制器 15 222、指令記憶體或快取記憶體224、指令解碼器226及匯 流排介面228部分。也須瞭解基本處理器某些部分將與可 重新組配邏輯互動。例如基本處理器可回應於資料的載入 及儲存以及快取記憶體及記憶體管理作業。延伸執行單元 232可良好使用基本處理器内部之載入儲存單元。至於另 2〇 一例,基本處理器典型含有基本處理器態暫存器,但操縱 暫存器及其它處理器控制功能除外。於可重新組配邏輯内 部之延伸執行單元232造成例外。此外,基本處理器含有 其它密切耦合之系統周邊,亦即匯流排介面、計時器、除 錯介面、及其它可由延伸執行單元存取之特用介面。後文 18 玖、發明說明 將說明考慮以基本處理器來實作可重新組配邏輯上的考量。 藉本方法實施之混成處理器200使用由自動處理器產 生器產生的見廣範圍指令集延伸,該自動處理器產生器例 如Xtensa處理器述於Α· Wang,E KilHa,D,c
Rowen「晶片上系統處理器之硬體/軟體指令集組配性」, 5又什自動化會議議事錄2〇〇 1年。延伸指令各自包括簡單 RISC型指令,帶有二來源運算元以及一結果運算元,但也 有寬廣其它指令功能及處理器邏輯實作(包括下列),因此 可從事複雜運算: 1、 指令以處理器記憶體作為運算源之直接來源或 目的地; 2、 指令以一或多個態暫存器或暫存器檔案於可組 配邏輯組織實作; 3、 指令以帶有大量暫存器規格載明器欄位; 4、 帶有基本格式之指令,該基本格式不似基本處 理器架構之基本格式; 5、 帶有延遲大於一個處理器時脈週期延遲之指令 ’如處理器所見,且由可組配處理器互鎖及旁通邏輯所支 援,其可全部管線化或部分管線化俾允許基本指令與於可 重新組配組織執行指令間的顯著並行性,或允許全部皆於 可重新組配組織實作之若干指令間的顯著並行性; 6、 可於比基本處理器自然寬度更寬廣運算元操作 之指令; 7、 將多於一個基本運算元組合成為單一及/或結果 玖、發明說明 複合運算元,且於全部基本運算元並行執行簡單運算或複 雜運算之指令; 8 貫作,此處基本處理器係於顧客半導體電路或 半顧客標準晶胞或閘陣列電路實作,彳重新組配係以現場 可程式邏輯或現場可組配資料路徑元件實作;或 9 貫作,此處基本處理器係以顧客半導體電路實 作,而可重新組配邏輯係以半顧客標準晶胞或閘陣列電路 實作。 新穎混成處理器組態的產生遵循第3圖概略說明之方 法。此種方法包括側繪目標應用集合,如步驟31〇所示, 俾識別碼之關鍵區段,典型係基於模擬應用程式碼而側繪 目杯應用集合。如步驟32〇所示,使用高階指令集描述語 言(使用編譯器自動化技術32〇A或人工技術32〇B)發展指令 集延伸。步驟330顯示使用語言如TIE語言發展中間呈現( 亦即指令集說明),例如述於Α· Wang,E. KiUian,D.
Maydan,C· Rowen「晶片上系統處理器之硬體/軟體指令集 組配性」,設計自動化會議議事錄,2001年。此項指令集 描述包括扎令編碼、語義及管線化及其實作為處理器一部 分需要的基本資訊。步驟34〇說明處理器的產生,其中一 組延伸心令集被轉譯成為丨)可組配執行單元組態,呈邏輯 描述或表單形式,2)延伸軟體工具,例如編譯器、組譯器 、除錯器、及存庫,3)延伸處理器用之模擬器以及4)操作 時間軟體例如可支援延伸指令集之即時作業系統。編譯器 、組譯器及存庫可藉標準方法用來形成二進制碼用於包括 1223194 玖、發明說明 使用延伸指令集之應用用途。隨後進行評估步驟350,包 括如步驟350A所示,於可重新組配邏輯實作之邏輯大小及 速度評估;以及如步驟350B所示,經由二進制執行應用程 式而評估應用程式速度。 5 本新穎方法之主要創新在於透過重新組配可程式邏輯 成為新穎執行單元而支援複雜的指令集延伸。包括寬廣資 料路徑、額外暫存器檔案以及跨複數個時脈週期之執行的 管線化。範例顯示於第4圖。 第4圖顯示混成處理器200之功能代表圖,顯示多種管 10 線階段。如所示,指令記憶體(對應第2圖之指令記憶體 224)、解碼器及互鎖及旁通計算邏輯(共同對應第2圖之指 令解碼器226及管線控制器222)及邏輯(對應第2圖之基本 ALU 216及相關電路)可能出現於各管線階段而耗用來源運 算兀*或產生結果。第4圖也顯示基本管線化結構。本例有 15基本處理器指令用之五階段管線、以及延伸功能單元用之 七階段管線,但也可配合任何數目之基本管線階段及延伸 功能單元管線階段。其顯示不僅基本處理器,基本暫存器 (對應第2圖基本暫存II檔案214)例如可包括複數個暫存器 檔案。如習知般,也包括位置暫存器、浮點暫存器及條: 2〇碼暫存器,且為組成所示基本暫存器之暫存器槽案特例。 第4圖也顯示二來源運算元(讀取璋)及一結果(寫入駒 來回流入基本暫存器檔案,但須瞭解基本處理器暫存器槽 案可有更多個讀取埠或更多個寫入埠。如所示,此可用於 任何基本指令包括ALU指令、記憶體指令及控制指令。作 21 1223194 玖、發明說明 =瞭解可有一基本處理器及基本指令集帶有較 ==來源璋及結果埠,此處所述本發明非局限於特 殊基本扎令集或管線。 5 j然未明白顯示於第4圖,較佳具體實施例中,延伸 ^订早疋存取得自基本暫存器標案之來源資料,延伸執行 早几產生結果流回延伸暫存器樓案及基本暫存器檀案二者。
5基本執行單兀’展開於標示為「延伸邏輯」區 塊跨多個週期’基本執行單元可❹種字寬。例如位址暫 存器之運算為32位元,浮點暫存器之運算秘位元,條件 瑪暫存器之運算為…元寬。可重新組配執行單元有相同 變化。可有不同寬度;可有複數個暫存器㈣;管線可比 基本暫存器管線更短或更長。注意資料記憶體載入及儲存 位址可能來自於基本處理器執行單元或來自於可重新組配 執行單元。 15 第4圖也顯示處理器内部之互鎖運算及旁通運算之基
本形式。若微處理器運算需時多於一個管線階段,則㈣ 的指令必須等候該項結果。互鎖機構為經由將第一指令之 目的地暫存器比較第二指令之來源暫存器而偵測此種條件 。若比較後為匹配,則處理器須延遲執行第二指令直到第 20 一指令產生結果為止。於管線化處理器,來源運算元通常 係由暫存器檔案讀取。唯有於指令及其先前指令已知完成 無誤之後,指令結果才回寫入暫存器檔案。若一結果係於 早期官線階段產生,則強制等候一或多個週期才能寫入。 旁通機構允許隨後的指令等候此項結果,獲得此項結果值 22 1223194 玖、發明說明 作為來源 ,而未寫入,然後讀取暫存器檔案。使用可重新 組配之旁通控制及互鎖㈣先前可重新組配處理器並未操 動可重新組配之管線化執行單元。
本發明之關鍵特色為實施混成旁通及互鎖機構之機構 5,其協調基本處理器表現(包括於基本管線的指令結果)與 延伸執行單元的表現(延伸執行單元係以現場可程式邏輯 實施)。此種機構可確保結果資料於延伸執行單元之各管 線階段以及基本處理器與延伸執行單元間正確傳輸。也二 遲混成處理器200,包括直到等候結果可為新指令利用時 10 ,才發出新指令給基本處理器及延伸執行單元二者。運算 互鎖條件及旁通條件之主要任務如後: 1、於處理器管線之各個階段追蹤指令之來源暫存 器及目的地暫存器。各個指令可能有數個幻原以及數個目 的地。 15 2、於各管線階段,將該管線階段所需各個來源暫
存器規格載明器相對於意圖進入該暫存器檔案之各個目的 地暫存器規格載明器作比較。 3、 當獲得結果時,等候寫入暫存器檔案(等候至全 部先前指令已知安全地完成)且作為來源操作手續,旁通 20實際結果值至執行單元之來源運算元輸入端,替代得自暫 存器檔案之來源值。 4、 若尚未能獲得檔案,由於仍然在執行管線運算 中,延遲相關指令直到獲得結果,也可旁通。 混成處理器設計上的一大挑戰是基本處理器與可重新 23 1223194 玖、發明說明 、组配執行單元之電路效能間的間隙,基本處理器係以高速 邏輯技術例如標準晶胞執行;而可重新組配執行單元係以 較低效能邏輯技術例如FPGA查表(LUTs)及可程式互連電 . 路實施。此種間隙對於二子系統間的介面特別重要,尤其 5基本處理器通訊某種情況,可重新組配邏輯必須於基本處 · 理器之焉時脈速率管線需求以内作回應。下表列舉基本處 理器與可重新組配執行單元間之通訊。 由基本處理器至可重新組配單元: · 才曰々子(包括暫存器規格載明器、操作規格載明器) 10以及中間值包括可能之單一熱編碼某些常用信號,容易以 可重新組配指令細節之可重新組配邏輯解碼。增添的信號 包括指令長度、指令格式或某些指令欄位額外解碼資訊。 •來源運算源係讀取自基本暫存器檔案,或得自前一 基本處理器指令之旁通結果欲用作為來源運算元 載 > 料係讀取自資料記憶體或快取記憶體 •控制資訊包括延遲、例外及其它運算模式資訊(例 · 如特權程度)。 由可重新組配單元至基本執行單元: •結果運算元將送返基本暫存器檔案,且旁通至基本 , 2〇 執行單元 - •儲存資料俾寫入資料記憶體或快取記憶體 •控制資訊(例如用以造成例外回應或指令執行取消 之錯誤指示) 注意較佳具體實施例中,可重新組配執行單元未直接 24 1223194 玖、發明說明 回應用來計算基本處理器使用的延遲資訊。全部皆係於基 本處理器内部’使用一組可重新組配之指令袼式及相依性 樣板運算出。使用此種樣板是一項重大創新,如此解決基 本處理器與可重新組配單元間的速度差異造成最大問題, 5 亦即管線協調問題。 基本處理器邏輯可使用下列機構實施通用可重新組配 延遲邏輯。 1、 總指令編碼空間之部分分配給可重新組配指令集 延伸。允許除了基本處理器之指令集之外,增加數十個或 10數百個指令。此等指令槽可以統計方式分配而規劃各組。 2、 可重新組配表對各組指令槽含有二值: 指令格式值一經支援之指令樣板之一之識別符,該指 令樣板界定於指令字内部(由可重新組配之指令使用的)全 部暫存器規格載明器所在位置及大小。例如混成處理器 15 200如下第5圖所示,可界定8種暫存器規格載明器格式, 且以三位元攔位編碼各組指令之選擇。 use/def值一可重新組配執行單元之經支援的管線深度 集合之一之識別符。例如混成處理器2〇0可界定下表有關 需要來源運算元之管線階段(use)以及產生結果之管線階段 20 (deD之可爿b性,且以二位元攔位編碼use/def集的選擇。 運算元1 運算元2 運算元3 運算元4 運算元5 運算元6 集0 Use 1 Use 1 Def3 Use 1 Use 1 Def 3 集1 Use 1 Use 1 Use 1 Def 6 Use 1 Use 1 Def 3 集2 Use 1 Use 1 Use 1 Def 3 集3 Use 1 Def3 25 1223194 玫、發明說明 一組指令的全部延伸指令有相同指令格式及use/def樣 式。若有相同格式及use/def樣式的指令數目比一組内的指 令數目更多,則可使用多於一組。用於組配此等樣板之相 同格式及use/def資訊也可用來產生細節指令運算碼指定及 5解碼邏輯,自動管線化邏輯,以及自動產生週期準確模擬 器及碼排序器。 有兩種基本辦法可協調基本處理器與可重新組配執行 單元之邏輯速度間之差異。 首先可深度管線化可重新組配邏輯。如此表示可重新 1〇組配管線的全部中間值皆由基本處理器的相同時脈被捕捉 於官線暫存器時脈。如此極為配合若干FPGA架構,FPGA 架構將正反器與各個LUT關聯而不會造成面積或時間上的 額外成本。如此完全探勘處理器產生器用來實作軟體工具 (其於模擬器模式化管線)的可能,以及產生隱藏此等操作 15之管線延遲之碼以及將此等碼排序。此種深度管線化辦法 要求管線於可重新組配邏輯的深度遠比基本處理器的相同 邏輯的深度更深。例如用於〇·18微米標準晶胞處理,可採 用200MHz之最惡劣情況時脈速率(各個管線階段以5奈秒 執行)。FPGA的可重新組配邏輯的速度慢四倍,對以標準 2〇晶胞為主的管線内實作相同邏輯所需要的管線階段前者需 要至少四個管線階段。此種辦法有高重複率優點,每個基 本處理器週期於可重新組配管線將初始化新的延長操作。 第二,可重新組配邏輯可以較慢時脈速率操作,典型 基本處理器的時脈為可重新組配邏輯的時脈之整數倍數。 26 1223194 玖、發明說明 基本處理器仍然可將可重新組配單元視為深度管線化,有 長時間延遲’但可重新組配邏輯不會有額外管線暫存器的 額外時序管理資訊。例如對018微米的標準晶胞處理而言 - ’最惡劣情況200MHz時脈速率為可行(各管線階段係以5 - 5不米執行)’而於FPGA技術執行的可重新組配邏輯可以 - 50MHz的準確時脈頻率(各管線階段以2〇奈秒執行)來實作 類似邏輯。基本處理器考慮執行單元係以時脈速率的四倍 操作,但有四倍管線深度,以及每四個基本處理器週期 · 才吸收一次新操作。二時脈混成電路顯示於第6圖,帶有 10三分可重新組配之執行單元時脈。 有數種變化。基本處理器與可重新組配邏輯時脈相對 於彼此可異步,但各信號於邊界的時脈重新同步化的成本 相當高。有多於一個可重新組配的執行單元,各自相對於 基本處理器時脈有其本身的時脈劃分器。 15 混成可延伸處理器之實作組合基本處理器的較為固定 實作、以及更為可重新組配之邏輯組織供指令集延伸,產 · 生另外三項重要創新’全部皆係基於可重新組配織物與密 切相關執行的功能間共享,如第7圖所示: 1、扣令集延伸(顯示於7i2A及712B)以及非處理器邏 2〇輯714共享可重新組配邏輯單一區塊710,兩項用途為邏輯 ; 上分開,但實體上交混來達成可用之可重新組配織物的最 佳利用。基本處理器(所示73〇A或73〇B)可使用其正常資料 讀取及寫入能力來讀取及寫入態元件,態元件映射於基本 處理為之位址空間,且作為基本處理器與其它功能間的高 27 1223194 玖、發明說明 頻寬低延遲資料蟑。輸入及輸出資料仔列可用來配合不同 資料產生/消耗速率的時脈頻率,或用來對外界邏輯隱藏 管線化行為(例如指令延遲及取消)之細節。非處理器邏輯 例如可用來實作資料緩衝邏輯(例如資料佇列)、基於非繫 5於指令執行之態機器(例如迭代加密引擎)之類神經網路運 鼻力月b “準負料輸入/輸出(例如串列介面通道)、處理器 支援功能(例如匯流排監視或除錯硬體支援)、或任何其它 於現場可程式邏輯或標準晶胞邏輯常見的邏輯功能。 2、兩個或兩個以上基本處理器(如所示73〇八或73〇3) 10可共用單一可重新組配邏輯組織72〇。如此可更佳利用組 織,提供處理器間自然通訊機構,該通訊機構通常比一般 匯流排傳輸有更高頻寬及較低延遲。二處理器可使用前述 第一項記憶體映射介面方法。然後佇列及其它邏輯732可 組配而將兩個處理器資料埠734a&734B繫在一起。 15 3、於可重新組配組織實作之其它邏輯可直接透過匯 流排736A及736B而與延伸指令通訊,但界定指令,其中 於其它邏輯之任意信號可輸入指令延伸作為來源運算元, 任何寫至目的地暫存器之值可輸出至其它邏輯驅動信號。 結果導致特殊資訊的極為快速且簡單通訊。 20 雖然前文已經說明各種較佳具體實施例之細節,熟諳 技藝人士瞭解實質未悖離本發明之新穎教示及優點可對具 體實施例做出多項修改。例如前文說明經常某些指令係於 基本處理器實作,而額外指令(延伸指令)係於現場可程式 邏輯執行。於極端情況下,全部指令皆要求現場可程式邏 28 玖、發明說明 輯,基本處理器只含有快取指令及發表指令的基礎架構。 如此雖然於許多情況下為較佳,但若干指令集無須完全於 基本處理器實作。如此本發明須鑑於後文申請專利範圍解 譯0 5【围式簡單說明】 第1圖顯示習知混成處理器設計集合; 第2圖顯示根據本發明混成處理器方塊圖;
第3圖顯示根據本發明之混成處理器的產生; 第4圖顯不根據本發明,帶有管線化階段之混成處理 10器之具體實施例; 第5圖為根據本發明之混成處理器之暫存器規格載明 器程式之範例表; 第6圖顯示根據本發明,帶有管線化階段之混成處理 器之另一具體實施例;以及 15 第7圖顯示本發明之另一具體實施例。
【圖式之主要元件代表符號表】 150···資料記憶體 212···程式計數器 214···基本暫存器檔案 216···基本 ALU 218···位址產生器 2 2 0 ···資料記憶體或快取 記憶體 222··.管線控制器 100···處理器 102···匯流排 104···網路介面 106...網路 110…可重新組配功能單元 120…可重新組配輔處理器 130…附屬處理單元 140···孤立處理單元 29 1223194 玖、發明說明 224.. .指令記憶體或快取 記憶體 226.. .指令解碼器 228.. .匯流排介面 230…延伸暫存器檔案 232.. .延伸執行單元 310,320A,320B,330,340, 350A,350B···步驟 710.. .區塊 712A,712B…指令集延伸 714.. .非處理器邏輯 720.. .可重新組配之邏輯 組織 730A,730B.··基本處理器 732.. .邏輯 734A,734B···資料埠 736A,736B··.匯流排
30

Claims (1)

1223194 5 ο •正木有無管:'; - ? 3所提之 1,冷予修正? ο 2 I 声 93 7 - 5拾、申請專利範圍L _±2L_ 第92107783號申請案申請專利範圍修正本 93.7.5. 1 · 一種混成處理器’包含: 一以第一邏輯技術實行之非可組配基本處理器設 計,帶有適合不同應用用途之基本處理器指令;以及 一以不同於該第一邏輯技術之第二邏輯技術實行 之可組配邏輯設計,其係密切耦合至該非可組配基本 處理器設計,可組配邏輯設計可實作延伸指令而各自 執行複雜的運算。 2·如申請專利範圍第1項之混成處理器,其中該基本處理 器設計之第一邏輯技術係使用顧客邏輯設計技術與標 準晶胞電路設計技術之一,以及該可組配邏輯設計之 該第二邏輯技術係使用另一種設計技術而其包括使用 現場可程式邏輯。 3·如申請專利範圍第2項之混成處理器,其中該現場可程 式邏輯係使用以RAM為主之查表實作。 4·如申請專利範圍第2項之混成處理器,其中該基本處理 器設計之第一邏輯技術以及該可組配邏輯設計之該第 二邏輯技術各自係以一半導體裝置實作。 如申明專利範圍第1項之混成處理器’其中該基本處理 器設計之該第一邏輯技術係使用顧客邏輯電路設計技 術,以及該可組配邏輯設計之該第二邏輯技術係使用 另一項設計技術,其包括使用標準晶胞電路或閘陣列 邏輯電路。 6.如申請專利範圍第5項之混成處理器,其中該基本處理 31 拾、申請專利範圍匕 器設計之該第一邏輯技術以及該可組配邏輯設計之該 第二邏輯技術各自係以一半導體裝置實作。 7·如申請專利範圍第1項之混成處理器,其中該基本處理 器設計具有寬32位元之暫存器。 8·如申請專利範圍第丨項之混成處理器,其中該基本處理 器設計支援至少16個通用暫存器,以及該基本指令格 式使用少於32位元。 : 9·如中請專利範圍第1項之混成處理器,其中該可組配邏 木, 輯設計具有大於一週期的管線深度。 *; 10 ι〇·如申請專利範圍第1項之混成處理器,其中延伸指八中 V: ’ j 、 ' -¾ 之至少一者係於延伸暫存器或延伸暫存器檔案操作。 u·如申請專利範圍第1項之混成處理器,其中延伸指令中 之至少一者使用比基本處理器設計暫存器更寬的資料 :·Ί 路徑。 ϋ 15 12·如申請專利範圍第11項之混成處理器,其中比該基本 處理器設計暫存器更寬的資料路徑係用來對一個資料 字的數個運算元個別並行進行相同運算操作。 13·如申請專利範圍第1丨項之混成處理器,其中延伸指令中 之至少另一者使用多於兩個來源暫存器規袼載明器。 2 0 14.如申請專利範圍第1項之混成處理器,其中延伸指令中 之至少一者使用多於兩個來源暫存器規格載明器。 15·如申請專利範圍第1項之混成處理器,其中延伸指令中 之至少一者運算多於一項結果。 16.如申請專利範圍第1項之混成處理器,其中該可組配邏 32 拾、申請專利範圍1_Ιϋϋι 輯没汁係以基本處理器設計之相同時而脈管線化。 17·如申凊專利範圍第1項之混成處理器,其中該基本處理 器設計可透過載入操作及儲存操作而存取於可組配邏 輯設計實作的非處理器邏輯。 18.如申請專利範圍第丨項之混成處理器,進一步包括至少 另一非可組配基本處理器設計,帶有適合用於不同應 用用途之指令;以及其中該非可組配基本處理器設計 以及另一非可組配基本處理器設計共用該可組配邏輯 设計;以及該非可組配基本處理器設計以及另一非可 組配基本處理器設計之延伸指令係於可組配邏輯設計 實作。 19·如申請專利範圍第1項之混成處理器,其中該延伸指令 可直接存取於可組配邏輯設計實作之非處理器邏輯俾 用作為指令之來源運算元。 •如申研專利範圍第1項之混成處理器,其中延伸指令結 果直接可有於可組配邏輯設計實作之非處理器邏輯所 利用。 21·如申請專利範圍第1項之混成處理器,其中部分延伸指 7係由預先界定之選項指令手冊中由使用者選擇組配 可組配邏輯設計加以擇定。 22. 如申請專利範圍第1項之混成處理器,其中該等延伸指 令中有部分係使用指令描述語言定義。 23. 如申請專利範圍第1項之混成處理器,其中該等延伸指 令中有部分係藉軟體程式界定,該軟體程式分析以高 ^23194 拾、申請專利範圍 /似 階語言寫成的應用程式。 之4.如申凊專利範圍第1項之混成處理器,其中該等延伸指 令中有部分係基於侧繪應用程式俾決定效能關鍵性區 段獲得。 5 25·如申請專利範圍第1項之混成處理器,其中該基本處理 器設計具有使用指令樣板運算之管線互鎖與旁通。 26·如申請專利範圍第丨項之混成處理器,其中該基本處理 器設計以及可組配邏輯設計係共同於單一半導體基板 上實作。 1 0 ? 7 士 .如申請專利範圍第1項之混成處理器,其中該基本處理 器設計與該可組配邏輯設計係連同其它可組配邏輯功 能或非可組配邏輯功能或可組配記憶體或非可組配記 憶體’共同於單一半導體基板上實作。 28·如申請專利範圍第丨項之混成處理器,其中該可組配邏 15 輯設計係與基本處理器設計異步運作,介於可組配邏 輯設計與基本處理器設計間之某些信號通過至少一種 同步電路。 29.如申請專利範圍第1項之混成處理器,其中該可組配邏 輯設計為可重新組配。 20 3〇·如申請專利範圍第1項之混成處理器,其中該可組配邏 輯設計包括延伸執行單元以及延伸暫存器檔案。 31·—種製造一混成處理器設計之方法,包含下列步驟: 對一以第一邏輯技術執行之非可組配基本處理器 β又计長:供以適合用於不同應用用途之基本處理器指令 34 1223194 拾、申請專利範圍 ;以及 決定一以不同於該第一邏輯技術之第二邏輯技術 執行之可組配邏輯設計,該邏輯設計係密切耦合至該 非可組配基本處理器設計,該可組配邏輯設計可實作 延伸指令,其各自執行一項複雜操作,因而獲得混成 處理器設計。 32_如中請專利範圍第31項之方法,進—步包括下列步驟:
使用顧客邏輯設計技術以及標準晶胞電路設計技 術之一來實作該非可組配基本處理器設計;以及 使用另一項設計技術其包括使用現場可程式邏輯 來實作可組配邏輯設計。 33·如申請專利範圍第32項之方法,其中該實作步驟係以 RAM為主之查表來實作現場可程式邏輯。 34.如申請專利範圍第32項之方法,其中該實作步驟係將
基本處理器設計以及可組配邏輯設計以一半導體裝置 實作。 35·如申請專利範圍第31項之方法,其進一步包括下列步 驟: 使用顧客邏輯電路設計技術來實作基本處理器言免 計;以及 使用另一項設計技術其包括使用標準晶胞電路或 閘陣列邏輯電路來實作可組配之邏輯設計。 36·如申請專利範圍第35項之方法,其中該實作步驟係將 基本處理器設計以及可組配邏輯設計以一半導體裝置 35 1223194 10 CO •CO 15 20 拾、申請專利範圍I …-----------J 實作。 37·如申請專利範圍第31項之方法,#中該蚊可組配邏 輯λ计之步驟包括於可組配邏輯設計之管線深度超過 一週期。 ^申月專利$1圍第3 1項之方法,其中該決定可組配邏 輯設計之步驟包括提供至少一個延伸指令,其係於延 伸暫存器或延伸暫存器檔案操作。 。申月專範圍第31項之方法,其中該決定可組配邏 輯設計之步驟包括提供至少一個延伸指令,其使用比 基本處理器設計之暫存器更寬的資料路徑。 復如:請專利範圍第39項之方法,#中該決定可組配邏 輯汉计之步驟包括提供至少另一延伸指令,其使用多 於二來源暫存器規定載明器。 41.如申請專利範圍第31項之方法,其中該決定可組配邏 輯設計之步驟包括提供至少一延伸指令,其使用多於 二來源暫存器規定載明器。 &如申請專利範圍第31項之方法,其中該決定可組配邏 輯设計之步驟包括提供至少一延伸指令,其運算多於 一項結果。 43·^申請專利範圍第31項之方法,其中該決定可組配邏 輯設計之步驟包括提供以基本處理器設計之相同時脈 來管線化該可組配邏輯設計。 从如申請專利範圍第31項之方法,其中該提供基本處理 以叶步驟包括對基本處理器設計提供透過載入與傳
36 1223194 10 :m
V, 15 g)/ -,丄- -·日一 1:二 X 拾、申請專利範圍 /年H g| 存操作而存取於可組配邏輯設計實作之非處理器邏輯。 45·如申請專利範圍第3 1項之方法,進一步包括對至少另 一非可組配基本處理器設計提供適合不同應用之邏輯 之步驟;以及其中該非可組配基本處理器設計及另一 非可組配基本處理器設計共用該可組配邏輯設計;以 及該非可組配基本處理器設計以及另一非可組配基本 處理器設計之延伸指令係於可組配邏輯設計實作。 46·如申明專利範圍第3 1項之方法,其中該決定可組配邏 輯設計之步驟包括提供延伸指令,其直接存取於可組 配邏輯β又汁實作之非處理器邏輯俾用作為指令之來源 運算元。 Τ申π專利&圍第3 1項之方法’其中該決定可組配邏 輯設計之步驟包括提供延伸指令結果,其直接可由於 可組配邏輯設計實作之非處理器邏輯所利用。 48·如申請專利範圍第31項之方法,其中該決定可組配邏 輯設計之步驟包括使用者由預先界定的指令選項選單中作選擇來組配該可組配之邏輯設計,因而擇定若干延伸指令。 20 49·如申請專利範圍第31項 輯設計之步驟包括使用 指令。 之方法’其中該決定可組配邏 指令描述語言來定義若干延伸 其中該決定可組配邏 以高階語言寫成的應 5〇·如申請專利範圍第31項之方法, 輯設計步驟包括藉軟體程式分析 用程式而定義若干延伸指令。 37 1223194 拾、申請專利範圍 51·如申請專利範圍第31項之方法,#中該決定可組配邏 輯設計之步驟包括基於側繪應用程式俾決定效能關鍵 s #又來獲得若干延伸指令。 52·如申請專利範圍第31項之方法,其中該提供基本處理 盗設計之步驟包括提供管線互鎖或旁通,其係使用指 令樣板運算。 53. 如申請專利範圍第31項之方法,進一步包括於單一半 % 導體基板上共同實作該基本處理器設計及可組配邏輯 設計之步驟。 54. 如申請專利範圍第31項之方法,進—步包括於單一半 導體基板上共同實作該基本處理器設計、可組配邏輯 :;: I 准 予3 修作15 正提 ?之 。又计以及其匕可組配或非可組配邏輯功能或記憶體之 步驟。 55. ^申請專利範圍第31項之方法,丨中該決定可組配邏 輯設計之步驟包括提供與基本處理器設計異步操作之 可組配邏輯设計,以及進一步提供介於可組配邏輯設 計與基本處理器設計間之某些信號通過至少一同步電 路。 20
%·如申請專利範圍第31項之方法,其中該決定可組配邏 輯設計之步驟包括提供該可組配邏輯設計為可重新組 配 如申請專利範圍第31項之方法,A + 4 + 只心万法,其中該決定可組配邏 輯設計之步驟包括設置一 0 一 又夏延伸執仃早兀以及延伸暫存 器檔案。 38 57
TW092107783A 2002-04-10 2003-04-04 High performance hybrid processor with configurable execution units TWI223194B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/120,849 US7200735B2 (en) 2002-04-10 2002-04-10 High-performance hybrid processor with configurable execution units

Publications (2)

Publication Number Publication Date
TW200307215A TW200307215A (en) 2003-12-01
TWI223194B true TWI223194B (en) 2004-11-01

Family

ID=29248290

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092107783A TWI223194B (en) 2002-04-10 2003-04-04 High performance hybrid processor with configurable execution units

Country Status (8)

Country Link
US (1) US7200735B2 (zh)
JP (1) JP3860575B2 (zh)
KR (1) KR100998586B1 (zh)
CN (1) CN1653446B (zh)
AU (1) AU2003222086A1 (zh)
GB (1) GB2402787B (zh)
TW (1) TWI223194B (zh)
WO (1) WO2003088071A2 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671268B2 (en) 2005-05-05 2014-03-11 Icera, Inc. Apparatus and method for configurable processing

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653710B2 (en) 2002-06-25 2010-01-26 Qst Holdings, Llc. Hardware task manager
US7962716B2 (en) 2001-03-22 2011-06-14 Qst Holdings, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US20040133745A1 (en) 2002-10-28 2004-07-08 Quicksilver Technology, Inc. Adaptable datapath for a digital processing system
US7752419B1 (en) 2001-03-22 2010-07-06 Qst Holdings, Llc Method and system for managing hardware resources to implement system functions using an adaptive computing architecture
US6836839B2 (en) 2001-03-22 2004-12-28 Quicksilver Technology, Inc. Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements
US6577678B2 (en) 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7046635B2 (en) 2001-11-28 2006-05-16 Quicksilver Technology, Inc. System for authorizing functionality in adaptable hardware devices
US8412915B2 (en) 2001-11-30 2013-04-02 Altera Corporation Apparatus, system and method for configuration of adaptive integrated circuitry having heterogeneous computational elements
US6986021B2 (en) 2001-11-30 2006-01-10 Quick Silver Technology, Inc. Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements
US7215701B2 (en) 2001-12-12 2007-05-08 Sharad Sambhwani Low I/O bandwidth method and system for implementing detection and identification of scrambling codes
US7403981B2 (en) 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7305567B1 (en) * 2002-03-01 2007-12-04 Cavium Networks, In. Decoupled architecture for data ciphering operations
US7142011B1 (en) 2002-04-24 2006-11-28 Altera Corporation Programmable logic device with routing channels
US6781408B1 (en) 2002-04-24 2004-08-24 Altera Corporation Programmable logic device with routing channels
US7660984B1 (en) 2003-05-13 2010-02-09 Quicksilver Technology Method and system for achieving individualized protected space in an operating system
US7328414B1 (en) 2003-05-13 2008-02-05 Qst Holdings, Llc Method and system for creating and programming an adaptive computing engine
US7318014B1 (en) * 2002-05-31 2008-01-08 Altera Corporation Bit accurate hardware simulation in system level simulators
GB0215033D0 (en) * 2002-06-28 2002-08-07 Critical Blue Ltd Instruction set translation method
US8108656B2 (en) 2002-08-29 2012-01-31 Qst Holdings, Llc Task definition for specifying resource requirements
US7937591B1 (en) 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US8276135B2 (en) 2002-11-07 2012-09-25 Qst Holdings Llc Profiling of software and circuit designs utilizing data operation analyses
US7225301B2 (en) 2002-11-22 2007-05-29 Quicksilver Technologies External memory controller node
US7590829B2 (en) * 2003-03-31 2009-09-15 Stretch, Inc. Extension adapter
US8001266B1 (en) 2003-03-31 2011-08-16 Stretch, Inc. Configuring a multi-processor system
US7613900B2 (en) * 2003-03-31 2009-11-03 Stretch, Inc. Systems and methods for selecting input/output configuration in an integrated circuit
US7581081B2 (en) * 2003-03-31 2009-08-25 Stretch, Inc. Systems and methods for software extensible multi-processing
US7991606B1 (en) 2003-04-01 2011-08-02 Altera Corporation Embedded logic analyzer functionality for system level environments
US7509246B1 (en) 2003-06-09 2009-03-24 Altera Corporation System level simulation models for hardware modules
US7418575B2 (en) * 2003-07-29 2008-08-26 Stretch, Inc. Long instruction word processing with instruction extensions
US7373642B2 (en) * 2003-07-29 2008-05-13 Stretch, Inc. Defining instruction extensions in a standard programming language
WO2005073866A2 (en) * 2004-01-21 2005-08-11 Charles Stark Draper Laboratory, Inc. Systems and methods for reconfigurable computing
CN1306395C (zh) * 2004-02-13 2007-03-21 中国科学院计算技术研究所 Mips指令集的处理器扩展指令及其编码方法和部件
US7225416B1 (en) * 2004-06-15 2007-05-29 Altera Corporation Methods and apparatus for automatic test component generation and inclusion into simulation testbench
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
EP1806847B1 (en) 2004-10-28 2010-02-17 IP Flex Inc. Data processing device having reconfigurable logic circuit
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US9064076B1 (en) * 2006-03-23 2015-06-23 Synopsys, Inc. User interface for facilitation of high level generation of processor extensions
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8099583B2 (en) 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US9665970B2 (en) * 2006-09-19 2017-05-30 Imagination Technologies Limited Variable-sized concurrent grouping for multiprocessing
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7984272B2 (en) * 2007-06-27 2011-07-19 International Business Machines Corporation Design structure for single hot forward interconnect scheme for delayed execution pipelines
DE102007038545A1 (de) * 2007-08-16 2009-02-19 Robert Bosch Gmbh Programmierbarer Filterprozessor
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US7996656B2 (en) * 2007-09-25 2011-08-09 Intel Corporation Attaching and virtualizing reconfigurable logic units to a processor
US7870368B2 (en) * 2008-02-19 2011-01-11 International Business Machines Corporation System and method for prioritizing branch instructions
US20090210669A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Prioritizing Floating-Point Instructions
US7882335B2 (en) * 2008-02-19 2011-02-01 International Business Machines Corporation System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline
US8108654B2 (en) * 2008-02-19 2012-01-31 International Business Machines Corporation System and method for a group priority issue schema for a cascaded pipeline
US8095779B2 (en) * 2008-02-19 2012-01-10 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US20090210672A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US7984270B2 (en) * 2008-02-19 2011-07-19 International Business Machines Corporation System and method for prioritizing arithmetic instructions
US20090210677A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline
US7865700B2 (en) * 2008-02-19 2011-01-04 International Business Machines Corporation System and method for prioritizing store instructions
US20090210666A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US7996654B2 (en) * 2008-02-19 2011-08-09 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US7877579B2 (en) * 2008-02-19 2011-01-25 International Business Machines Corporation System and method for prioritizing compare instructions
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8181003B2 (en) 2008-05-29 2012-05-15 Axis Semiconductor, Inc. Instruction set design, control and communication in programmable microprocessor cores and the like
US8078833B2 (en) * 2008-05-29 2011-12-13 Axis Semiconductor, Inc. Microprocessor with highly configurable pipeline and executional unit internal hierarchal structures, optimizable for different types of computational functions
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
IT1392495B1 (it) * 2008-12-29 2012-03-09 St Microelectronics Srl Metodo per progettare un acceleratore ad elevate prestazioni di tipo asic (circuito integrato ad applicazione specifica - application-specific integrated circuit)
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
WO2011091323A1 (en) 2010-01-21 2011-07-28 Qst Holdings, Llc A method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
KR101849702B1 (ko) * 2011-07-25 2018-04-17 삼성전자주식회사 외부 인트린직 인터페이스
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
WO2013100783A1 (en) 2011-12-29 2013-07-04 Intel Corporation Method and system for control signalling in a data path module
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9361116B2 (en) 2012-12-28 2016-06-07 Intel Corporation Apparatus and method for low-latency invocation of accelerators
US10140129B2 (en) 2012-12-28 2018-11-27 Intel Corporation Processing core having shared front end unit
US9417873B2 (en) 2012-12-28 2016-08-16 Intel Corporation Apparatus and method for a hybrid latency-throughput processor
US10346195B2 (en) 2012-12-29 2019-07-09 Intel Corporation Apparatus and method for invocation of a multi threaded accelerator
US9471388B2 (en) * 2013-03-14 2016-10-18 Altera Corporation Mapping network applications to a hybrid programmable many-core device
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9471537B2 (en) 2013-03-14 2016-10-18 Altera Corporation Hybrid programmable many-core device with on-chip interconnect
US9557792B1 (en) 2013-05-31 2017-01-31 Amazon Technologies, Inc. Datacenter power management optimizations
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US10019260B2 (en) * 2013-09-20 2018-07-10 Via Alliance Semiconductor Co., Ltd Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match
US10331583B2 (en) 2013-09-26 2019-06-25 Intel Corporation Executing distributed memory operations using processing elements connected by distributed channels
US9547493B2 (en) * 2013-10-03 2017-01-17 Synopsys, Inc. Self-timed user-extension instructions for a processing device
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9720661B2 (en) * 2014-03-31 2017-08-01 International Businesss Machines Corporation Selectively controlling use of extended mode features
US9785565B2 (en) * 2014-06-30 2017-10-10 Microunity Systems Engineering, Inc. System and methods for expandably wide processor instructions
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
US9507891B1 (en) * 2015-05-29 2016-11-29 International Business Machines Corporation Automating a microarchitecture design exploration environment
US10642617B2 (en) * 2015-12-08 2020-05-05 Via Alliance Semiconductor Co., Ltd. Processor with an expandable instruction set architecture for dynamically configuring execution resources
CN106371807B (zh) * 2016-08-30 2019-03-19 华为技术有限公司 一种扩展处理器指令集的方法及装置
US10157164B2 (en) * 2016-09-20 2018-12-18 Qualcomm Incorporated Hierarchical synthesis of computer machine instructions
US10572376B2 (en) 2016-12-30 2020-02-25 Intel Corporation Memory ordering in acceleration hardware
US10558575B2 (en) 2016-12-30 2020-02-11 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10474375B2 (en) 2016-12-30 2019-11-12 Intel Corporation Runtime address disambiguation in acceleration hardware
US10416999B2 (en) 2016-12-30 2019-09-17 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
US10467183B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods for pipelined runtime services in a spatial array
US10515049B1 (en) 2017-07-01 2019-12-24 Intel Corporation Memory circuits and methods for distributed memory hazard detection and error recovery
US10469397B2 (en) 2017-07-01 2019-11-05 Intel Corporation Processors and methods with configurable network-based dataflow operator circuits
US10387319B2 (en) 2017-07-01 2019-08-20 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US10445234B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features
US10515046B2 (en) 2017-07-01 2019-12-24 Intel Corporation Processors, methods, and systems with a configurable spatial accelerator
US10445451B2 (en) 2017-07-01 2019-10-15 Intel Corporation Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US10496574B2 (en) 2017-09-28 2019-12-03 Intel Corporation Processors, methods, and systems for a memory fence in a configurable spatial accelerator
US10445098B2 (en) 2017-09-30 2019-10-15 Intel Corporation Processors and methods for privileged configuration in a spatial array
US10565134B2 (en) 2017-12-30 2020-02-18 Intel Corporation Apparatus, methods, and systems for multicast in a configurable spatial accelerator
US10445250B2 (en) 2017-12-30 2019-10-15 Intel Corporation Apparatus, methods, and systems with a configurable spatial accelerator
US10417175B2 (en) 2017-12-30 2019-09-17 Intel Corporation Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator
US10579557B2 (en) * 2018-01-16 2020-03-03 Advanced Micro Devices, Inc. Near-memory hardened compute blocks for configurable computing substrates
US20190303263A1 (en) * 2018-03-30 2019-10-03 Kermin E. Fleming, JR. Apparatus, methods, and systems for integrated performance monitoring in a configurable spatial accelerator
US10564980B2 (en) 2018-04-03 2020-02-18 Intel Corporation Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US10853073B2 (en) 2018-06-30 2020-12-01 Intel Corporation Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US10459866B1 (en) 2018-06-30 2019-10-29 Intel Corporation Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator
WO2020061875A1 (en) * 2018-09-27 2020-04-02 Intel Corporation Highlight moment identification technology in volumetric content creation systems
US10678724B1 (en) 2018-12-29 2020-06-09 Intel Corporation Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator
US10565036B1 (en) 2019-02-14 2020-02-18 Axis Semiconductor, Inc. Method of synchronizing host and coprocessor operations via FIFO communication
CN110007962A (zh) * 2019-03-08 2019-07-12 浙江大学 一种基于代码自动生成的指令集模拟方法
US10965536B2 (en) 2019-03-30 2021-03-30 Intel Corporation Methods and apparatus to insert buffers in a dataflow graph
US10915471B2 (en) 2019-03-30 2021-02-09 Intel Corporation Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator
US10817291B2 (en) 2019-03-30 2020-10-27 Intel Corporation Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator
US11029927B2 (en) 2019-03-30 2021-06-08 Intel Corporation Methods and apparatus to detect and annotate backedges in a dataflow graph
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11907713B2 (en) 2019-12-28 2024-02-20 Intel Corporation Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator
CN112015490A (zh) * 2020-11-02 2020-12-01 鹏城实验室 可编程器件实现与测试精简指令集方法、设备及介质

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124889A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
IL89120A (en) 1988-02-17 1992-08-18 Mips Computer Systems Inc Circuit synchronization system
JP3099889B2 (ja) 1990-06-29 2000-10-16 株式会社東芝 電子計算機、プログラマブル論理回路及びプログラム処理方法
DE69227604T2 (de) 1991-03-11 1999-06-24 Silicon Graphics Inc Mountain Rückwärts kompatible Rechnerarchitektur mit erweiterten Wortbreiten und Adressraum
US5577259A (en) * 1991-09-19 1996-11-19 Unisys Corporation Instruction processor control system using separate hardware and microcode control signals to control the pipelined execution of multiple classes of machine instructions
US5280592A (en) * 1992-01-03 1994-01-18 Amdahl Corporation Domain interlock
US5357237A (en) * 1992-09-04 1994-10-18 Motorola, Inc. In a data processor a method and apparatus for performing a floating-point comparison operation
US5361373A (en) * 1992-12-11 1994-11-01 Gilson Kent L Integrated circuit computing device comprising a dynamically configurable gate array having a microprocessor and reconfigurable instruction execution means and method therefor
US5548776A (en) * 1993-09-30 1996-08-20 Intel Corporation N-wide bypass for data dependencies within register alias table
JPH07175631A (ja) 1993-12-16 1995-07-14 Dainippon Printing Co Ltd 演算処理装置
US5590305A (en) * 1994-03-28 1996-12-31 Altera Corporation Programming circuits and techniques for programming logic
US5625784A (en) * 1994-07-27 1997-04-29 Chromatic Research, Inc. Variable length instructions packed in a fixed length double instruction
US5696956A (en) * 1995-11-08 1997-12-09 Digital Equipment Corporation Dynamically programmable reduced instruction set computer with programmable processor loading on program number field and program number register contents
US6035123A (en) * 1995-11-08 2000-03-07 Digital Equipment Corporation Determining hardware complexity of software operations
US5819064A (en) * 1995-11-08 1998-10-06 President And Fellows Of Harvard College Hardware extraction technique for programmable reduced instruction set computers
US5778208A (en) * 1995-12-18 1998-07-07 International Business Machines Corporation Flexible pipeline for interlock removal
JPH10275080A (ja) * 1997-01-24 1998-10-13 Texas Instr Inc <Ti> マイクロプロセッサ
US6185126B1 (en) * 1997-03-03 2001-02-06 Cypress Semiconductor Corporation Self-initializing RAM-based programmable device
JP3340343B2 (ja) * 1997-03-13 2002-11-05 株式会社東芝 プロセッサ及び情報処理装置
US6584525B1 (en) * 1998-11-19 2003-06-24 Edwin E. Klingman Adaptation of standard microprocessor architectures via an interface to a configurable subsystem
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US5923893A (en) * 1997-09-05 1999-07-13 Motorola, Inc. Method and apparatus for interfacing a processor to a coprocessor
US6102963A (en) * 1997-12-29 2000-08-15 Vantis Corporation Electrically erasable and reprogrammable, nonvolatile integrated storage device with in-system programming and verification (ISPAV) capabilities for supporting in-system reconfiguring of PLD's
JP3809727B2 (ja) * 1998-06-17 2006-08-16 富士ゼロックス株式会社 情報処理システム、回路情報管理方法および回路情報記憶装置
KR100874738B1 (ko) 1999-02-05 2008-12-22 텐실리카 인코포레이티드 구성가능한 프로세서를 설계하기 위한 프로세서 자동 생성시스템 및 방법
JP2000235490A (ja) 1999-02-17 2000-08-29 Hitachi Ltd マイクロプロセッサ
JP2000284945A (ja) 1999-03-29 2000-10-13 Sharp Corp デジタル機器及びその開発方法
JP2001092662A (ja) * 1999-09-22 2001-04-06 Toshiba Corp プロセッサコア及びこれを用いたプロセッサ
JP3723775B2 (ja) 2002-01-10 2005-12-07 松下電器産業株式会社 データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8671268B2 (en) 2005-05-05 2014-03-11 Icera, Inc. Apparatus and method for configurable processing

Also Published As

Publication number Publication date
WO2003088071A3 (en) 2004-07-22
WO2003088071B1 (en) 2004-09-23
WO2003088071A2 (en) 2003-10-23
JP3860575B2 (ja) 2006-12-20
GB2402787B (en) 2005-07-27
KR20050008677A (ko) 2005-01-21
GB2402787A (en) 2004-12-15
GB0421865D0 (en) 2004-11-03
US20050166038A1 (en) 2005-07-28
AU2003222086A1 (en) 2003-10-27
JP2005522781A (ja) 2005-07-28
KR100998586B1 (ko) 2010-12-07
CN1653446B (zh) 2010-05-05
CN1653446A (zh) 2005-08-10
TW200307215A (en) 2003-12-01
US7200735B2 (en) 2007-04-03

Similar Documents

Publication Publication Date Title
TWI223194B (en) High performance hybrid processor with configurable execution units
US11900124B2 (en) Memory-network processor with programmable optimizations
US10445098B2 (en) Processors and methods for privileged configuration in a spatial array
US10469397B2 (en) Processors and methods with configurable network-based dataflow operator circuits
US10467183B2 (en) Processors and methods for pipelined runtime services in a spatial array
US10445451B2 (en) Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features
US10387319B2 (en) Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features
US11086816B2 (en) Processors, methods, and systems for debugging a configurable spatial accelerator
US10416999B2 (en) Processors, methods, and systems with a configurable spatial accelerator
CN108268278B (zh) 具有可配置空间加速器的处理器、方法和系统
US20190101952A1 (en) Processors and methods for configurable clock gating in a spatial array
US20190004878A1 (en) Processors, methods, and systems for a configurable spatial accelerator with security, power reduction, and performace features
Hoffmann et al. A methodology for the design of application specific instruction set processors (ASIP) using the machine description language LISA
EP3776228A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
Bouwens et al. Architecture enhancements for the ADRES coarse-grained reconfigurable array
CN114327620A (zh) 用于具有数据流执行电路的可配置加速器的装置、方法和系统
Dao et al. Flexbex: A risc-v with a reconfigurable instruction extension
US20010025363A1 (en) Designer configurable multi-processor system
Levine et al. Efficient application representation for HASTE: hybrid architectures with a single, transformable executable
CN108319459B (zh) 一种行为级描述到rtl描述的ccc编译器
Chattopadhyay et al. Language-driven exploration and implementation of partially re-configurable ASIPs
Bajot et al. A macro-block based methodology for ASIP core design
Chattopadhyay et al. Prefabrication and postfabrication architecture exploration for partially reconfigurable VLIW processors
Akanda et al. Dual-execution mode processor architecture
Woop et al. HWML: RTL/Structural Hardware Description using ML

Legal Events

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