TWI791699B - 電子裝置及使用其處理指令的方法 - Google Patents

電子裝置及使用其處理指令的方法 Download PDF

Info

Publication number
TWI791699B
TWI791699B TW107143682A TW107143682A TWI791699B TW I791699 B TWI791699 B TW I791699B TW 107143682 A TW107143682 A TW 107143682A TW 107143682 A TW107143682 A TW 107143682A TW I791699 B TWI791699 B TW I791699B
Authority
TW
Taiwan
Prior art keywords
opcode
same
slots
processor
register index
Prior art date
Application number
TW107143682A
Other languages
English (en)
Other versions
TW201926027A (zh
Inventor
金煇洙
權赫敏
金源眞
Original Assignee
南韓商三星電子股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 南韓商三星電子股份有限公司 filed Critical 南韓商三星電子股份有限公司
Publication of TW201926027A publication Critical patent/TW201926027A/zh
Application granted granted Critical
Publication of TWI791699B publication Critical patent/TWI791699B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • 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
    • G06F9/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/82Architectures of general purpose stored program computers data or demand driven
    • 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
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • 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
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • 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/3802Instruction prefetching
    • 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/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • 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/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

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)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)

Abstract

本發明提供一種電子裝置,包含:記憶體;以及處理器,配置成當相同操作碼在定義於記憶體中的一或多個槽中使用時在應用程式編譯中基於相同操作碼產生指令碼。也提供一種使用電子置處理指令的方法。

Description

電子裝置及使用其處理指令的方法
本發明概念涉及一種電子裝置及使用電子裝置處理指令的方法,且更具體地說,涉及一種處理將由超長指令字(very long instruction word, VLIW)處理器執行的指令的方法。
一般來說,超長指令字(VLIW)處理器可用於數位訊號處理器(digital signal processor, DSP)中,所述數位訊號處理器處理例如快速傅立葉轉換(fast Fourier transform, FFT)、數位濾波等常規操作。舉例來說,VLIW處理器可將多個操作放置於一個長指令中且對所述指令執行指令級並行(instruction level parallelism, ILP)。這類VLIW處理器可使用于應用中,例如需要改進效能及快速處理時間的多媒體及移動通訊,這是因為VLIW處理器每個週期可處理多個指令。
VLIW架構是嵌入系統中頻繁使用的處理器架構,且程式碼大小是嵌入系統中的重要考慮因素。隨著程式碼大小增大,提取指令的次數增加。因此,快取記憶體未命中率因此增大,從而降低處理器性能。
根據本發明概念的各種實施例的電子裝置產生新的VLIW指令以在相同操作碼在VLIW處理器中的兩個或多於兩個槽中使用時減少相同操作碼的冗餘。
本發明概念的實施例提供一種電子裝置,包含:記憶體;以及處理器,配置成確定根據指令集架構(ISA)配置的指令的執行單元的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼,以及當所述兩個或多於兩個槽具有所述相同第一操作碼時,所述處理器更配置成產生由以下構成的指令碼:所述相同第一操作碼及具有所述相同第一操作碼的所述槽中的一個的暫存器索引欄位、除所述槽中的所述一個以外的具有所述相同第一操作碼的所述槽中的至少一個的至少一個暫存器索引欄位,以及狀態位元。
本發明概念的實施例進一步提供一種處理電子裝置的指令的方法,所述電子裝置包含記憶體及處理器。方法包含通過所述處理器確定根據儲存於記憶體中的指令集架構(ISA)配置的指令的執行單元的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼;以及當所述兩個或多於兩個槽具有所述相同第一操作碼時,通過所述處理器產生由以下構成的指令碼:所述相同第一操作碼及具有所述相同第一操作碼的所述槽中的一個的暫存器索引欄位、除所述一個槽以外的具有所述相同第一操作碼的所述槽中的至少一個的至少一個暫存器索引欄位,以及狀態位元。
本發明概念的實施例另外提供一種電子裝置,包含:記憶體,配置成儲存指令集架構(ISA);以及處理器,配置成確定根據指令集架構(ISA)配置的指令的執行單元的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼,其中所述槽中的每一個包括操作碼欄位及暫存器索引欄位,以及當所述兩個或多於兩個槽具有所述相同第一操作碼時,所述處理器更配置成產生包含所述相同第一操作碼的單次出現、所述兩個或多於兩個槽的所述暫存器索引欄位,以及狀態位元的指令碼。
下文中,將參考隨附圖式描述本發明概念的實例實施例。
如在本發明概念的領域中傳統的,可就執行所描述的一種或多種功能的塊來說描述和示出實施例。在本文中可稱作單元或模組等的這些塊通過類比電路和/或數位電路實體地實施,所述類比電路和/或數位電路如邏輯閘、積體電路、微處理器、微控制器、記憶電路、被動電子元件、主動電子元件、光學元件、硬接線電路等等,且可視情況由韌體和/或軟體驅動。舉例來說,電路可在一個或多個半導體晶片中或在如印刷電路板等襯底支撐件上實施。構成塊的電路可由專用硬體或由處理器(例如,一個或多個已程式化微處理器和相關聯電路),或由用以執行塊的一些功能的專用硬體及用以執行所述塊的其它功能的處理器的組合實施。實施例的每個塊可在不脫離本發明概念的範圍的情況下實體地分離成兩個或多於兩個交互且離散的塊。同樣,實施例的塊可在不脫離本發明概念的範圍的情況下實體地組合成更複雜的塊。
圖1示出根據本發明概念的實施例的網路環境100中的電子裝置101的框圖。
參考圖1,在網路環境100中,電子裝置101可通過第一網路198(例如,短程無線通訊)與電子裝置102通訊或可通過第二網路199(例如,長程無線通訊)與電子裝置104或伺服器108通訊。根據實施例,電子裝置101可經由伺服器108與電子裝置104通訊。根據實施例,電子裝置101可包含處理器120、記憶體130、輸入裝置150、聲音輸出裝置155、顯示裝置160、音訊模組170、感測器模組176、介面177、連接端子178、觸覺模組179、相機模組180、電源管理模組188、電池189、通訊模組190、使用者識別模組196,以及天線模組197。在一些實施例中,元件中的至少一個(例如,顯示裝置160或相機模組180)可從電子裝置101排除,或另一元件可另外包含於電子裝置101中。在一些實施例中,一些元件可與其它元件集成。舉例來說,感測器模組176(例如,指紋感測器、虹膜感測器,或照度感測器)可嵌入於顯示裝置160(例如,顯示器)中。
舉例來說,通過執行軟體(例如,程式140),處理器120可控制連接到處理器120的電子裝置101的至少另一元件(例如,硬體或軟體元件)且可處理各種資料及對各種資料執行操作。處理器120可將從另一元件(例如,感測器模組176或通訊模組190)接收到的指令或資料載入揮發性記憶體132中,處理所載入的指令或資料,且將結果資料儲存在非揮發性記憶體134中。根據實施例,處理器120可包含主處理器121(例如,中央處理單元或應用處理器)及輔助處理器123(例如,圖形處理單元、圖像信號處理器、感測器集線器處理器,或通訊處理器),所述輔助處理器123獨立於主處理器121操作且另外或替代地配置成使用比主處理器121更低的功率或專用於指定功能。本文中,輔助處理器123可與主處理器121分開操作或同時嵌入於主處理器121中。
在這種情況下,當主處理器121處於非作用中(例如,睡眠)狀態時代表主處理器121,或當主處理器121處於作用中(例如,執行應用程式)狀態時連同主處理器121一起,輔助處理器123可控制與電子裝置101的元件中的至少一個(例如,顯示裝置160、感測器模組176,或通訊模組190)相關聯的至少一些功能或狀態。根據實施例,輔助處理器123(例如,圖像信號處理器或通訊處理器)可實施為功能上與輔助處理器123相關聯的另一元件(例如,相機模組180或通訊模組190)的一部分。記憶體130可儲存供電子裝置101的至少一個元件(例如,處理器120或感測器模組176)使用的各種資料,例如軟體(例如,程式140)及用於相關聯命令的輸入資料或輸出資料。記憶體130可包含揮發性記憶體132或非揮發性記憶體134。非揮發性記憶體134可包含內部記憶體136及外部記憶體138。內部記憶體136可包含例如唯讀記憶體(read-only memory, ROM)、可程式化ROM(programmable ROM, PROM)、電可程式化ROM(electrically programmable ROM, EPROM)、電可擦可程式化ROM(electrically and programmable ROM, EEPROM)、快閃記憶體記憶體、相變RAM(phase-change RAM, PRAM)、磁性RAM(magnetic RAM, MRAM)、電阻式RAM(resistive RAM, RRAM)、鐵電RAM(ferroelectric RAM, FRAM)等等。外部記憶體138可以可移動方式連接到電子裝置101且可包含例如個人電腦記憶體卡國際協會(personal computer memory card international association, PCMCIA)卡片、緊湊式快閃記憶體卡(CF)、智慧媒體卡(SM及SMC)、記憶棒、多媒體卡(MMC、RS-MMC,以及MMCmicro)、安全數位(secure digital, SD)卡(SD、miniSD、microSD,以及SDHC)、通用序列匯流排(universal serial bus, USB)記憶卡,以及通用快閃記憶體記憶體(universal flash storage, UFS)等等。
程式140是儲存於記憶體130中的軟體且可包含例如作業系統142、中介軟體144,或應用程式146。
輸入裝置150是用於從電子裝置101外部(例如,使用者)接收將由電子裝置101的元件(例如,處理器120)使用的命令或資料的裝置且可包含例如麥克風、滑鼠或鍵盤,以及其它不同類型的輸入裝置。
聲音輸出裝置155是用於將聲音信號輸出到電子裝置101外部的裝置且可包含例如用於如多媒體播放或記錄播放的一般用途的揚聲器及僅用於呼叫接收的接收器。根據實施例,接收器可與揚聲器一體地形成或分開形成。
顯示裝置160是用於在視覺上將為電子裝置101的使用者提供資訊的裝置且可包含例如顯示器、全息圖裝置或投影儀,以及用於控制對應裝置的控制電路。根據實施例,顯示裝置160可包含能夠測量觸摸壓力強度的觸摸電路或壓力感測器。
音訊模組170可執行聲音與電信號之間的雙向轉換。根據實施例,音訊模組170可通過輸入裝置150獲取聲音或通過聲音輸出裝置155或以有線或無線方式連接到電子裝置101的外部電子裝置(例如,電子裝置102,例如揚聲器或頭戴式耳機)輸出聲音。
感測器模組176可產生對應於電子裝置101的外部環境狀態或內部操作狀態(例如,功率或溫度)的電信號或資料值。感測器模組176可包含例如手勢感測器、陀螺儀感測器、氣壓感測器、磁感測器、加速度感測器、握持感測器、接近感測器、色彩感測器、紅外(infrared, IR)感測器、生物感測器、溫度感測器、濕度感測器,或照度感測器。
介面177可支援用於以有線或無線方式連接到外部電子裝置(例如,電子裝置102)的指定協定。根據實施例,介面177可包含例如高清晰多媒體介面(high definition multimedia interface, HDMITM )、通用序列匯流排(USB)介面、安全數位(SD)卡介面或音訊介面。
連接端子178可包含連接器,例如HDMI連接器、USB連接器、SD卡連接器,或音訊連接器(例如,頭戴式耳機連接器),其可實體地連接電子裝置101及外部電子裝置(例如,電子裝置102)。
觸覺模組179可將電信號轉換成機械刺激(例如振動或移動)或電子刺激,所述電子刺激可由使用者通過觸覺或肌肉運動知覺的感覺來察覺。觸覺模組179可包含例如電動機、壓電元件,或電子刺激裝置。
相機模組180可俘獲靜態圖像及視頻。根據實施例,相機模組180可包含一或多個透鏡、圖像感測器、圖像信號處理器,或快閃記憶體。
電源管理模組188是用於管理供應到電子裝置101的電力的模組,且可例如配置為電源管理積體電路(power management integrated circuit, PMIC)的至少一部分。
電池189是用於為電子裝置101的至少一個元件供電的裝置,且可包含例如不可再充電的一次電池、可再充電的二次電池,或燃料電池。
通訊模組190可在電子裝置101與外部電子裝置(例如,電子裝置102、電子裝置104,或伺服器108)之間建立有線或無線通訊通道,且通過所建立通訊通道支援通訊。通訊模組190可包含獨立於處理器120(例如,應用程式處理器)操作且支援有線通訊或無線通訊的一或多個通訊處理器。根據實施例,通訊模組190可包含無線通訊模組192(例如蜂窩式通訊模組、短程無線通訊模組,或全球導航衛星系統(global satellite system, GNSS)通訊模組)或有線通訊模組194(例如局域網(local area network, LAN)通訊模組或電力線通訊(power line communication)模組)。在以上通訊模組當中,對應通訊模組可用於通過第一網路198(例如,短程通訊網路,例如藍牙、無線保真(WiFi)直連,或紅外資料協會(Infrared Data Association, IrDA))或第二網路199(例如,長程通訊網路,例如蜂窩式網路、網際網路,或電腦網路(例如,局域網(LAN)或廣域網路(wide area network, WAN)))與外部電子裝置通訊。上文所描述的各種通訊模組190可實施為單晶片或分離的單獨晶片。
根據實施例,無線通訊模組192可通過使用儲存在使用者識別模組196中的使用者資訊識別及鑒認通訊網路中的電子裝置101。使用者識別模組196可包含用於儲存使用者資訊的記憶體。
天線模組197可包含用於外部傳輸或接收信號或電力的一或多個天線。根據實施例,通訊模組190(例如,無線通訊模組192)可通過適用於通訊方案的天線將信號傳輸到外部電子裝置或從外部電子裝置接收信號。
圖1中所示出的上述元件中的一些可經由通訊方案(例如,週邊裝置之間的匯流排、通用輸入輸出(general purpose input/output, GPIO)、串列週邊介面(serial peripheral interface, SPI),或移動行業處理器介面(mobile industry processor interface, MIPI®))(未示出)彼此連接,以在彼此之間交換信號(例如,命令或資料)。
根據實施例,命令或資料可通過連接到第二網路199的伺服器108在電子裝置101與外部電子裝置104之間傳輸或接收。電子器件102及電子器件104中的每一個可為與電子裝置101相同或不同類型的裝置。根據實施例,由電子裝置101執行的一些或所有動作可由另一外部電子裝置或多個外部電子裝置執行。根據實施例,替代自主地運行功能或服務或除了自主地運行功能或服務之外,當電子裝置101應自動地或根據請求執行特定功能或服務時,電子裝置101可請求至少部分地與自外部電子裝置的特定功能或服務相關聯的功能。當接收到請求時,外部電子裝置可執行所請求功能或額外功能且將執行結果遞送到電子裝置101。電子裝置101可通過按原樣使用或在另外處理所接收到的結果之後提供所請求功能或服務。為此目的,可使用例如雲端計算、分散式運算或用戶端伺服器計算技術。
在實施例中,電子裝置101可為例如個人電腦、伺服器、工作站、筆記本型電腦、平板電腦、移動裝置、智慧型電話等等。
圖2示出根據本發明概念的實施例繪示用於處理指令的電子裝置的框圖。
參考圖2,電子裝置200(例如,圖1的電子裝置101)可包含處理器210(例如,圖1的處理器120)及記憶體230(例如,圖1的記憶體130),以及其它各種元件/電路(未繪示)。
根據本發明概念的各種實施例,處理器210(例如,圖1的處理器120)可控制電子裝置200的整體操作及內部元件之間的信號流,可執行資料處理,且可控制從電池(例如,圖1的電池189)供應到元件的電力。
在實施例中,處理器210可以是超長指令字(VLIW)處理器。舉例來說,作為VLIW處理器,處理器210可回應於明確地指定並存執行的指令的程式。
在實施例中,處理器210可包含指令提取單元211、擴展邏輯(單元)213、指令解碼器215、第一執行單元217、第二執行單元219、第三執行單元221以及第四執行單元223(執行單元在下文中可被稱作第一執行單元217到第四執行單元223),以及通用暫存器225。
在實施例中,指令提取單元211可從程式記憶體231提取指令碼。
在實施例中,擴展邏輯213檢查通過指令提取單元211提取的指令碼的狀態位元。狀態位元可由以下構成:用於確定所提取指令碼是否是新指令碼的欄位,及指示構成(或經設定用於)所提取指令碼的操作碼是否與所提取指令碼的至少一個暫存器索引欄位的操作碼相同的欄位。擴展邏輯213可基於用於確定所提取指令是否是新指令碼的狀態位元的欄位確定所提取指令碼是否是新指令碼。
在實施例中,當所提取指令碼經確定為新指令碼時,擴展邏輯213檢查指示構成或經設定用於所提取指令碼的操作碼是否與所提取指令碼的至少一個暫存器索引欄位的操作碼相同的欄位的狀態位元。通過檢查指示構成或經設定用於所提取指令碼的操作碼是否與所提取指令碼的至少一個暫存器索引欄位的操作碼相同的這些狀態位元,擴展邏輯213可將構成或經設定用於所提取指令碼的操作碼擴展到其中對應於所述至少一個暫存器索引欄位的相應狀態位元的值經啟動的槽中。
處理器210的擴展邏輯213可通過能夠執行前述操作的任何合適裝置執行,例如各種硬體和/或軟體元件、電路及/或模組。舉例來說,結合擴展邏輯213所描述的功能可以硬體、以通過處理器執行的軟體模組,或以兩個的組合直接體現。如果以軟體實施,那麼可將功能作為一或多個指令或代碼儲存在有形的非暫時電腦可讀媒體上或經由所述有形的非暫時性電腦可讀媒體進行傳輸。軟體模組可例如駐留在隨機存取記憶體(random access memory, RAM)、快閃記憶體記憶體、唯讀記憶體(ROM)、電可程式化ROM(EPROM)、電可擦可程式化ROM(EEPROM)、暫存器、硬碟、抽取式磁碟、CD ROM或本領域中已知的任何其它形式的儲存媒體中。
在實施例中,指令解碼器215將通過擴展邏輯213擴展的操作碼遞送到對應於對應暫存器索引欄位的第一執行單元217到第四執行單元223。
在實施例中,第一執行單元217到第四執行單元223中的每一個基於從指令解碼器215接收到的操作碼解碼對應指令。
在實施例中,通用暫存器225儲存資料,例如操作性處理、操作性結果,且返回位址。
根據本發明概念的各種實施例,記憶體230(例如,圖1的記憶體130)可電連接到處理器210。
在實施例中,記憶體230可包含程式記憶體231及資料記憶體233。
在實施例中,程式記憶體231可儲存通過處理器210產生的新指令碼,所述新指令碼在應用程式編譯中具有構成指令集架構(ISA)的一或多個槽中的相同操作碼。相同操作碼可對應於構成或經設定用於如先前所描述的所提取指令碼的操作碼。
在實施例中,資料記憶體233可儲存用於產生指令碼(例如,新VLIW指令碼)的ISA編碼映射。ISA編碼映射可定義用於每條指令的指令架構。指令架構可包含操作碼、兩個運算元暫存器索引,以及用於儲存結果值的暫存器索引。
圖3示出根據本發明概念的實施例繪示用於處理指令的執行單元的配置的圖式。
在實施例中,處理器(例如,圖2的處理器210)包含VLIW處理器。在實施例中,用於通過處理器辨識及處理指令的ISA可由四個槽310、槽320、槽330以及槽340組成。構成ISA的槽310、槽320、槽330以及槽340中的每一個可包含操作碼、兩個運算元暫存器索引、以及用於儲存結果值的暫存器索引。然而,本發明概念並不限於此,且構成每一槽的元素可根據指令類型而不同。
在實施例中,構成ISA的四個槽310、槽320、槽330以及槽340中的每一個可由32個位元組成。當指令使用所有四個槽時,可使用128位元程式記憶體(例如,圖2的程式記憶體231)。舉例來說,第一槽310可由總共32個位元組成,即,可包含操作碼311(其由17個位元組成)及暫存器索引欄位313、暫存器索引欄位315以及暫存器索引欄位317(其中的每一個由5個位元組成)。並且,第二槽320可由總共32個位元組成,即,可包含操作碼321(其由17個位元組成)及暫存器索引欄位323、暫存器索引欄位325以及暫存器索引欄位327(其中的每一個由5個位元組成)。並且,第三槽330可由總共32個位元組成,即,可包含操作碼331(其由17個位元組成)及暫存器索引欄位333、暫存器索引欄位335以及暫存器索引欄位337(其中的每一個由5個位元組成)。以及,第四槽340可由總共32個位元組成,即,可包含操作碼341(其由17個位元組成)及暫存器索引欄位343、暫存器索引欄位345以及暫存器索引欄位347(其中的每一個由5個位元組成)。
在實施例中,當四個槽中的兩個或多於兩個具有相同操作碼時,處理器(例如,圖2的處理器210)可產生呈以下形式的新指令碼:槽中的一個具有由32個位元(例如,操作碼欄位及暫存器索引欄位)組成的相同操作碼,且除所述一個槽以外的槽中的至少一個由除相同操作碼的欄位以外的至少一個暫存器索引欄位組成。
此將參考圖4A到圖5B來詳細描述。
圖4A及圖4B示出根據本發明概念的實施例的產生及解碼指令碼的方法的圖式。
在實施例中,處理器(例如,圖2的處理器210)可在操作應用程式中重複地執行相同操作(例如,向量乘法(vmul)、向量加法(vadd)、乘法(mul)以及加法(add))。舉例來說,處理器可在C代碼的for-語句中重複地執行相同操作,如下表1中所示。 [表1]
Figure 107143682-A0304-0001
在實施例中,例如上文所描述的表1的操作可通過利用單命令(例如,單指令多資料(single instruction multiple data, SIMD))同時計算多個資料的方案處理向量類型資料。舉例來說,處理器可在SIMD方案中對操作碼VMUL執行向量資料乘法處理。
在實施例中,以上描述假設向量類型資料經處理,但本發明概念並不限於此。標量指令也可在上文所描述的SIMD方案中處理。
在實施例中,當構成ISA的兩個或多於兩個槽具有相同操作碼時,處理器可同時處理具有相同操作碼的指令。舉例來說,當相同操作碼基於一個時脈週期分配給兩個或多於兩個槽時,處理器可產生如以下表2中所示的彙編代碼。 [表2]
Figure 107143682-A0304-0002
圖4A示出用於所產生彙編代碼中的“VMUL v1, v2, v3”、“VMUL v4, v5, v6”、“VMUL v7, v8, v9”以及“VMUL v10, v11, v12”的指令集架構(ISA)。
參考圖4A,第一槽410由操作碼VMUL 411及暫存器索引欄位v1、暫存器索引欄位v2以及暫存器索引欄位v3 413構成,第二槽420由操作碼VMUL 421及暫存器索引欄位v4、暫存器索引欄位v5以及暫存器索引欄位v6 423構成,第三槽430由操作碼VMUL 431及暫存器索引欄位v7、暫存器索引欄位v8以及暫存器索引欄位v9 433構成,且第四槽440由操作碼VMUL 441及暫存器索引欄位v10、暫存器索引欄位v11以及暫存器索引欄位v12 443構成。
在圖4A中所示出的ISA中,處理器(例如,圖2的處理器210)確定四個槽410到槽440使用相同操作碼VMUL。當確定使用相同操作碼VMUL時,處理器可產生新指令碼(例如,新VLIW指令),如圖4B的<450>中所示出,所述新指令碼由以下構成:第一槽410到第四槽440的相同操作碼VMUL 451;暫存器索引欄位,其中操作碼(例如,VMUL 451)用於第一槽410到第四槽440中(例如,v1, v2, 以及v3 455;v4, v5, 以及v6 457;v7, v8, 以及v9 459;以及v10, v11,以及v12 461);以及狀態位元453。相同操作碼VMUL 451的特徵可為對應於構成或經設定用於新指令碼的操作碼。如圖4B中所示,新指令碼包含相同操作碼VMUL 451的單次出現。
在實施例中,狀態位元453可由指示指令碼是否是新的欄位及指示操作碼451是否與暫存器索引欄位的操作碼相同的欄位構成。舉例來說,狀態位元453可由5個位元組成,即,用於確定指令碼是否是新的一個位元471,及指示操作碼451(即,構成或經設定用於新指令碼的操作碼)是否與暫存器索引欄位的操作碼相同的欄位的四個位元473、位元475、位元477以及位元479。
作為實例,在圖4B中示出的實施例中,構成狀態位元453的欄位值為1(471)、1(473)、1(475)、1(477)以及1(479)。指示指令碼是否為新的值是來自構成狀態位元453的欄位值的狀態位元471,且在此實例中為1(471)。舉例來說,當指示指令碼是否為新的狀態位元471的值為1時,處理器可確定指令碼為新。另一方面,當指示指令碼是否為新的狀態位元471的值為0時,處理器可確定指令碼並非新的。然而,在其它實施例中,當用於指示指令碼是否為新的狀態位元471的值為0時,處理器可確定指令碼為新,且當用於指示指令碼是否為新的狀態位元471的值為1時,處理器可確定指令碼並非新的。
在圖4B中所示出的實施例中,構成狀態位元453的欄位值的1(473)、1(475)、1(477)以及1(479)中的每一個可以是指示暫存器索引欄位455、暫存器索引欄位457、暫存器索引欄位459以及暫存器索引欄位461的操作碼是否與操作碼451(即,構成或經設定用於新指令碼的操作碼)相同的值。舉例來說,當對應於暫存器索引欄位的狀態位元的值為1時,處理器可確定暫存器索引欄位的操作碼與操作碼451相同。另一方面,當對應於暫存器索引欄位的狀態位元的值為0時,處理器可確定暫存器索引欄位的操作碼不同於操作碼451。然而,在其它實施例中,當對應於暫存器索引欄位的狀態位元的值為0時,處理器可確定暫存器索引欄位的操作碼與操作碼451相同,且當對應於暫存器索引欄位的狀態位元的值為1時,處理器可確定暫存器索引欄位的操作碼不同於操作碼451。
在實施例中,狀態位元453可由指示指令碼是否為新的僅1個位元組成。
常規地,當具有相同操作碼的四個32位元槽全部使用時,已使用128位元程式記憶體(例如,圖2的程式記憶體231)。
在本發明概念的實施例中,當例如圖4B中所示出的新指令碼產生時,將使用的程式記憶體可具有總共82(或78)個位元,即,32個位元用於操作碼VMUL 451及暫存器索引欄位v1、暫存器索引欄位v2以及暫存器索引欄位v3 455;15個位元用於暫存器索引欄位v4、暫存器索引欄位v5以及暫存器索引欄位v6 457;15個位元用於暫存器索引欄位v7、暫存器索引欄位v8以及暫存器索引欄位v9 459;15個位元用於暫存器索引欄位v10、暫存器索引欄位v11以及暫存器索引欄位v12 461;且5個位元(或1個位元)用於狀態位元453。
在實施例中,當四個槽使用相同操作碼時,新指令碼由82個位元(或78個位元)組成,且因此可由三個槽構成。因此,與常規情況相比,有可能將程式記憶體的大小減小25%。
在實施例中,以上描述假設暫存器索引欄位由五個位元組成,但本發明概念並不限於此。因此,暫存器索引欄位可由四個位元組成。
在實施例中,當指令碼經解碼時,處理器可從記憶體(例如,圖2的記憶體230)提取指令碼。
在實施例中,處理器可檢查所提取指令碼的狀態位元,以便確定所提取指令碼是否是基於相同操作碼產生的新指令碼。
舉例來說,如鑒於圖4B可理解,處理器可檢查包含於指令碼450中的狀態位元453,以便確定所提取指令碼450是否是新指令碼。由於指示所提取指令碼450是否為新指令碼的狀態位元471的值為1(471),處理器可確定所提取指令碼450是基於相同操作碼產生的新指令碼。
在實施例中,舉例來說,處理器210的擴展邏輯213可將相同操作碼VMUL 451(即,構成或經設定用於新指令碼的操作碼)擴展到其中狀態位元453經啟動的槽中,例如,暫存器索引欄位455、暫存器索引欄位457、暫存器索引欄位459以及暫存器索引欄位461對應於狀態位元453的1(473)、1(475)、1(477)以及1(479)。換句話說,擴展邏輯213可基於狀態位元473、狀態位元475、狀態位元477以及狀態位元479將圖4B的所提取指令碼450的操作碼VMUL 451分佈或複製到對應槽中。
在實施例中,處理器可基於擴展操作碼VMUL 451解碼指令。舉例來說,處理器可將操作碼451擴展到其中狀態位元453經啟動的槽中,且可使用操作碼VMUL 451處理暫存器索引欄位455、暫存器索引欄位457、暫存器索引欄位459以及暫存器索引欄位461中的每一個。
在實施例中,處理器可將操作碼451擴展到其中狀態位元453經啟動的槽中,且可以圖4A中所示出的ISA的形式(例如,包含操作碼、兩個運算元暫存器索引欄位,以及用於儲存結果值的暫存器索引欄位)執行恢復,且處理指令。
圖5A及圖5B示出根據本發明概念的實施例的產生及解碼指令碼的方法的說明圖。
圖5A繪示用於上表2中產生的彙編代碼中的“VMUL v1, v1, v14”、“VMUL v4, v4, v17”、“VMUL v7, v7, v20”以及“VSUB v10, v10, v23”的ISA。
參考圖5A,第一槽510可由操作碼VMUL 511及暫存器索引欄位v1、暫存器索引欄位v1以及暫存器索引欄位v14 513構成;第二槽520可由操作碼VMUL 521及暫存器索引欄位v4、暫存器索引欄位v4以及暫存器索引欄位v17 523構成;第三槽530可由操作碼VMUL 531及暫存器索引欄位v7、暫存器索引欄位v7以及暫存器索引欄位v20 533構成;且第四槽540可由操作碼VSUB 541及暫存器索引欄位v10、暫存器索引欄位v10以及暫存器索引欄位v23 543構成。
在圖5A中所示出的ISA中,處理器(例如,圖2的處理器210)可確定四個槽510到槽540中的一或多個,例如第一槽510到第三槽530,使用相同操作碼VMUL。
在實施例中,當確定兩個或多於兩個槽使用相同操作碼VMUL時,處理器可產生新指令碼(例如,新VLIW指令),如圖5B的<550>中所示出,所述新指令碼由以下構成:第一槽510、第二槽520以及第三槽530的相同操作碼VMUL 551;暫存器索引欄位,其中操作碼(例如,VMUL 551)分別用於第一槽510、第二槽520以及第三槽530中(例如,v1, v1, 以及v14 555;v4, v4, 以及v17 557;以及v7, v7, 以及v20 559);第四槽540的操作碼VSUB 561;暫存器索引欄位(v10, v10, 以及v23 563),其中操作碼用於第四槽540中;以及狀態位元553。在此情況下,相同操作碼VMUL 551的特徵可為對應於構成或經設定用於新指令碼的操作碼。
在實施例中,狀態位元553可由指示指令碼是否是新的欄位及指示操作碼551是否與暫存器索引欄位的操作碼相同的欄位構成。舉例來說,狀態位元553可由5個位元組成,即,一個位元571用於確定指令碼是否是新,且欄位的四個位元573、位元577、位元579以及位元581指示操作碼551是否與對應暫存器索引欄位的操作碼相同。
在實施例中,狀態位元553可由指示指令碼是否為新的僅1個位元組成。
常規地,當四個32位元槽全部使用時,已使用128位元程式記憶體(例如,圖2的程式記憶體231)。
在實施例中,當例如圖5B中所示出的新指令碼產生時,將使用的程式記憶體可具有總共99(或95)個位元,即,32個位元用於操作碼VMUL 551及暫存器索引欄位v1、暫存器索引欄位v1以及暫存器索引欄位v14 555;15個位元用於暫存器索引欄位v4、暫存器索引欄位v4以及暫存器索引欄位v17 557;15個位元用於暫存器索引欄位v7、暫存器索引欄位v7以及暫存器索引欄位v20 559;32個位元用於操作碼VSUB 561及暫存器索引欄位v10、暫存器索引欄位v10以及暫存器索引欄位v23 563;且5個位元(或1個位元)用於狀態位元553。
在實施例中,新指令碼550由99個位元(或95個位元)組成。因此,與其中程式記憶體使用128個位元的常規情況相比,有可能將程式記憶體的大小減小25%。
在實施例中,當指令碼經解碼時,處理器可從記憶體(例如,圖2的記憶體230)提取指令碼。
在實施例中,處理器可檢查所提取指令碼的狀態位元,以便確定所提取指令碼是否是基於相同操作碼產生的新指令碼。
舉例來說,處理器可檢查包含於指令碼550中的狀態位元553,以便確定所提取指令碼550是否是新指令碼。由於指示指令碼是否為新的狀態位元571的值為1(571),處理器可確定所提取指令碼550是基於相同操作碼產生的新指令碼。
在實施例中,舉例來說,處理器210的擴展邏輯213可將相同操作碼VMUL 551(即,構成或經設定用於新指令碼的操作碼)擴展到其中狀態位元553經啟動的槽中,例如,暫存器索引欄位555、暫存器索引欄位557以及暫存器索引欄位559對應於狀態位元553的1(573)、1(577)以及1(579),如圖5B中所示。換句話說,處理器210的擴展邏輯213可基於狀態位元573、狀態位元577以及狀態位元579將所提取指令碼550的操作碼VMUL 551分佈或複製到對應槽中。
在實施例中,舉例來說,如圖5B中所示,其中狀態位元581為0的槽經去啟動,且對應於0(581)的暫存器索引欄位563可具有與操作碼VMUL 551不同的操作碼(例如,VSUB 561)。在這種情況下,處理器可能未執行擴展。也就是說,操作碼VMUL 551並未分佈或複製到對應於狀態位元581的槽。
在實施例中,處理器可基於擴展操作碼551解碼指令。舉例來說,通過將操作碼551擴展到其中狀態位元553經啟動的槽中,處理器可使用操作碼VMUL 551處理暫存器索引欄位555、暫存器索引欄位557以及暫存器索引欄位559,且可使用操作碼VSUB 561處理暫存器索引欄位563。
在實施例中,處理器(例如,圖2的處理器210)可將操作碼551擴展到其中狀態位元553經啟動的槽中,且可以圖5A中所示出的ISA的形式(例如,包含操作碼、兩個運算元暫存器索引欄位,以及用於儲存結果值的暫存器索引欄位)執行恢復,且處理指令。
圖6示出根據本發明概念的實施例的產生指令碼的方法的流程圖。
參考圖6,在操作601中,處理器(例如,圖2的處理器210)確定構成ISA的兩個或多於兩個槽在應用程式編譯中是否具有相同操作碼。舉例來說,操作碼可包含算數運算(例如,VMUL、VADD、VSUB、MUL、ADD、SUB)及邏輯運算(例如,AND、OR、NOT)。
在實施例中,在操作603中,當兩個或多於兩個槽具有相同操作碼時,處理器基於相同操作碼產生新指令碼。舉例來說,所產生的新指令碼可由以下構成:具有相同操作碼的槽中的一個的操作碼及暫存器索引欄位、除所述一個槽以外(即,排除)的具有相同操作碼的槽中的至少一個的至少一個暫存器索引欄位,以及狀態位元。在這種情況下,相同操作碼的特徵可為對應於構成或經設定用於新指令碼的操作碼,且在一些情況下,相同第一操作碼。
在實施例中,狀態位元可由以下構成:指示指令碼是否是基於相同操作碼(即,構成或經設定用於新指令碼的操作碼)產生的欄位,及指示構成一或多個槽的暫存器索引欄位的操作碼是否與構成或經設定用於新指令碼的操作碼相同的欄位。
圖7示出根據本發明概念的實施例的解碼新指令碼的方法的流程圖。
參考圖7,在操作701中,處理器(例如,圖2的處理器210)提取指令碼。
在實施例中,在操作703中,處理器檢查所提取指令碼的狀態位元。舉例來說,處理器可檢查包含於所提取指令碼中的狀態位元且可確定所提取指令碼是否是新指令碼。
在實施例中,狀態位元可由以下構成:指示所提取指令碼是否是基於相同操作碼(即,構成或經設定用於所提取指令碼的操作碼)產生的欄位,及指示構成一或多個槽的暫存器索引欄位的操作碼是否與構成或經設定用於所提取指令碼的操作碼相同的欄位。在此實施例中,確定所提取指令碼是基於相同操作碼產生可等效於確定所提取指令碼是新的。
在實施例中,當指示指令碼是否為新的狀態位元的值為1時,處理器確定指令碼為新。替代地,當指示指令碼是否為新的狀態位元的值為0時,處理器確定指令碼並非新的。
在實施例中,當對應於暫存器索引欄位的狀態位元的值為1時,處理器確定暫存器索引欄位的操作碼與操作碼(即,構成或經設定用於所提取指令碼的操作碼)相同。替代地,當對應於暫存器索引欄位的狀態位元的值為0時,處理器確定暫存器索引欄位的操作碼不同於所述操作碼。
在實施例中,在操作705中,當處理器通過檢查提取指令碼的狀態位元確定所提取指令碼為新指令碼時,處理器將操作碼擴散到其中狀態位元經啟動的槽中。
在實施例中,在操作707中,處理器可基於擴展操作碼解碼指令。舉例來說,處理器可使用擴展操作碼處理對應索引欄位的指令。
在實施例中,處理器可將操作碼擴展到其中狀態位元經啟動的槽中,且可以圖3中所示出的ISA的形式(例如,包含操作碼、兩個運算元暫存器索引欄位,以及用於儲存結果值的暫存器索引欄位)執行恢復,且處理指令。
在圖4A到圖5B中所示出的實施例中,以上描述假設包含三個向量資料,但本發明概念並不限於此。可包含一個或兩個向量資料。在這種情況下,當在圖3中示出的ISA中進行恢復時,向量資料在三個暫存器索引欄位中的對應一個中經解碼,且無操作(空操作)可插入另一暫存器索引欄位中。在處理器的控制下,指令處理可能並不在插入有空操作的暫存器索引欄位上執行。因此,就硬體來說有可能最小化複雜度而不限定多個ISA(例如,具有一個暫存器索引欄位的槽及具有兩個暫存器索引欄位的槽)。
在本發明概念的根據各種實施例的電子裝置的情況下,有可能產生新VLIW指令以在相同操作碼用於VLIW處理器中的一或多個槽中時減少使用相同操作碼的冗餘。當新VLIW指令產生時,有可能減小程式記憶體的大小。並且,由於程式記憶體的大小減小,有可能減少提取指令的次數且減小快取記憶體未命中率,以及降低晶片成本。因此,有可能改進根據本發明概念的各種實施例的電子裝置的處理器性能。
100‧‧‧網路環境101、102、104、200‧‧‧電子裝置108‧‧‧伺服器120、210‧‧‧處理器121‧‧‧主處理器123‧‧‧輔助處理器130、230‧‧‧記憶體132‧‧‧揮發性記憶體134‧‧‧非揮發性記憶體136‧‧‧內部記憶體138‧‧‧外部記憶體140‧‧‧程式142‧‧‧作業系統144‧‧‧中介軟體146‧‧‧應用程式150‧‧‧輸入裝置155‧‧‧聲音輸出裝置160‧‧‧顯示裝置170‧‧‧音訊模組176‧‧‧感測器模組177‧‧‧介面178‧‧‧連接端子179‧‧‧觸覺模組180‧‧‧相機模組188‧‧‧電源管理模組189‧‧‧電池190‧‧‧通訊模組192‧‧‧無線通訊模組194‧‧‧有線通訊模組196‧‧‧使用者識別模組197‧‧‧天線模組198‧‧‧第一網路199‧‧‧第二網路211‧‧‧指令提取單元213‧‧‧擴展邏輯215‧‧‧指令解碼器217‧‧‧第一執行單元219‧‧‧第二執行單元221‧‧‧第三執行單元223‧‧‧第四執行單元225‧‧‧通用暫存器231‧‧‧程式記憶體233‧‧‧資料記憶體310、320、330、340、410、420、430、440、510、520、530、540‧‧‧槽311、321、331、341、411、421、431、441、451、511、521、531、541、551、561‧‧‧操作碼313、315、317、323、325、327、333、335、337、343、345、347、413、423、433、443、455、457、459、461、513、523、533、543、555、557、559、563‧‧‧暫存器索引欄位450、550‧‧‧所提取指令碼453、471、473、475、477、479、553、571、573、577、579、581‧‧‧狀態位元601、603、701、703、705、707‧‧‧操作
本發明概念的上述以及其它方面和特徵在參考附圖的其詳細示例性實施例中將變得更加顯而易見,在附圖中: 圖1示出根據本發明概念的實施例的網路環境中的電子裝置的框圖。 圖2示出根據本發明概念的實施例繪示用於處理指令的電子裝置的框圖。 圖3示出根據本發明概念的實施例繪示用於處理指令的執行單元的配置的圖式。 圖4A示出根據本發明概念的實施例繪示用於所產生彙編代碼中的“VMUL v1, v2, v3”、“VMUL v4, v5, v6”、“VMUL v7, v8, v9”以及“VMUL v10, v11, v12”的指令集架構(ISA)的圖式。 圖4B示出根據本發明概念的實施例繪示第一槽到第四槽的圖式。 圖5A示出根據本發明概念的實施例的產生及解碼指令碼的方法的說明圖。 圖5B示出根據本發明概念的實施例的產生及解碼指令碼的方法的說明圖。 圖6示出根據本發明概念的實施例的產生指令碼的方法的流程圖。 圖7示出根據本發明概念的實施例的解碼新指令碼的方法的流程圖。
200‧‧‧電子裝置
210‧‧‧處理器
211‧‧‧指令提取單元
213‧‧‧擴展邏輯
215‧‧‧指令解碼器
217‧‧‧第一執行單元
219‧‧‧第二執行單元
221‧‧‧第三執行單元
223‧‧‧第四執行單元
225‧‧‧通用暫存器
230‧‧‧記憶體
231‧‧‧程式記憶體
233‧‧‧資料記憶體

Claims (10)

  1. 一種電子裝置,包括:記憶體;以及處理器,配置成確定根據指令集架構配置的指令的執行單元的多個槽中的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼,以及當所述兩個或多於兩個槽具有所述相同第一操作碼時,所述處理器更配置成產生由以下構成的指令碼:所述相同第一操作碼及具有所述相同第一操作碼的所述多個槽中的一個的暫存器索引欄位、除所述多個槽中的所述一個以外的具有所述相同第一操作碼的所述多槽槽中的至少一個另一者的至少一個暫存器索引欄位、以及狀態位元,並且儲存所述指令碼在所述記憶體中,其中所述狀態位元包括包含在數目上與所述多個槽的數目相同的多個位元的欄位,以及其中所述多個位元中的第一位元指示所述多個槽中的第一槽的操作碼是否與所述相同的第一操作碼相同,並且所述多個位元中的第二位元指示所述多個槽中的第二槽的操作碼是否與所述相同的第一操作碼相同。
  2. 如申請專利範圍第1項所述的電子裝置,其中所述狀態位元包括指示一或多個槽的所述暫存器索引欄位中的一或多個的操作碼是否與所述相同第一操作碼相同的一或多個欄位及指示所述指令碼是否是基於新的所述相同第一操作碼產生的欄位。
  3. 如申請專利範圍第1項所述的電子裝置,其中所述處理器配置成從所述記憶體提取指令碼,且基於所提取的所述指令碼的狀態位元確定所提取的所述指令碼是否是基於相同第二操作碼產生。
  4. 如申請專利範圍第3項所述的電子裝置,其中當所提取的所述指令碼是基於所述相同第二操作碼產生時,所述處理器配置成檢查所提取的所述指令碼的所述狀態位元中的對應於欄位的至少一個暫存器索引欄位的值,將所述相同第二操作碼擴展到其中對應於所述至少一個暫存器索引欄位的所述值經啟動的槽中,以及基於擴展的所述相同第二操作碼解碼基於擴展的所述相同第二操作碼產生的所提取的所述指令碼。
  5. 如申請專利範圍第4項所述的電子裝置,其中在擴展所述相同第二操作碼之後,所述處理器配置成解碼定義於所述記憶體中的所述指令集架構中的所提取的所述指令碼。
  6. 如申請專利範圍第1項所述的電子裝置,其中所述處理器是由在數目上與所述多個槽的數目相同的多個解碼器構成的超長指令文書處理器。
  7. 一種處理包括記憶體及處理器的電子裝置的指令的方法,所述方法包括:通過所述處理器確定根據儲存於所述記憶體中的指令集架構配置的指令的執行單元的多個槽中的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼;以及 當所述兩個或多於兩個槽具有所述相同第一操作碼時,通過所述處理器產生由以下構成的指令碼:所述相同第一操作碼及具有所述相同第一操作碼的所述多個槽中的一個的暫存器索引欄位、除所述多個槽中的所述一個以外的具有所述相同第一操作碼的所述多個槽中的至少一個另一者的至少一個暫存器索引欄位、以及狀態位元,並且儲存所述指令碼在所述記憶體中,其中所述狀態位元包括包含在數目上與所述多個槽的數目相同的多個位元的欄位,以及其中所述多個位元中的第一位元指示所述多個槽中的第一槽的操作碼是否與所述相同的第一操作碼相同,並且所述多個位元中的第二位元指示所述多個槽中的第二槽的操作碼是否與所述相同的第一操作碼相同。
  8. 如申請專利範圍第7項所述的方法,其中所述狀態位元更包括指示一或多個槽的所述暫存器索引欄位中的一或多個的操作碼是否與所述相同第一操作碼相同的一或多個欄位及指示所述指令碼是否是基於新的所述相同第一操作碼產生的欄位。
  9. 如申請專利範圍第7項所述的方法,更包括:通過所述處理器從所述記憶體提取指令碼;以及通過所述處理器基於所提取的所述指令碼的狀態位元確定所提取的所述指令碼是否是基於相同第二操作碼產生。
  10. 一種電子裝置,包括:記憶體,配置成儲存指令集架構;以及 處理器,配置成確定根據所述指令集架構配置的指令的執行單元的多個槽中的兩個或多於兩個槽在應用程式編譯中是否具有相同第一操作碼,其中所述多個槽中的每一個包括操作碼欄位及暫存器索引欄位,以及當所述兩個或多於兩個槽具有所述相同第一操作碼時,所述處理器更配置成產生包含單次出現的所述相同第一操作碼、所述兩個或多於兩個槽的所述暫存器索引欄位、以及狀態位元的指令碼,其中所述狀態位元包括包含在數目上與所述多個槽的數目相同的多個位元的欄位,以及其中所述多個位元中的第一位元指示所述多個槽中的第一槽的操作碼是否與所述相同的第一操作碼相同,並且所述多個位元中的第二位元指示所述多個槽中的第二槽的操作碼是否與所述相同的第一操作碼相同。
TW107143682A 2017-12-05 2018-12-05 電子裝置及使用其處理指令的方法 TWI791699B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2017-0165725 2017-12-05
KR1020170165725A KR102600283B1 (ko) 2017-12-05 2017-12-05 전자 장치 및 이를 이용한 명령어 처리 방법
??10-2017-0165725 2017-12-05

Publications (2)

Publication Number Publication Date
TW201926027A TW201926027A (zh) 2019-07-01
TWI791699B true TWI791699B (zh) 2023-02-11

Family

ID=66659090

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107143682A TWI791699B (zh) 2017-12-05 2018-12-05 電子裝置及使用其處理指令的方法

Country Status (4)

Country Link
US (1) US10860321B2 (zh)
KR (1) KR102600283B1 (zh)
CN (1) CN110007960A (zh)
TW (1) TWI791699B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200802010A (en) * 2005-12-06 2008-01-01 Liga Systems Inc Partitioning of tasks for execution by a VLIM hardware acceleration system
US7409530B2 (en) * 2000-03-07 2008-08-05 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
US20080235492A1 (en) * 2007-03-23 2008-09-25 Samsung Electronics Co., Ltd. Apparatus for compressing instruction word for parallel processing vliw computer and method for the same

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7418580B1 (en) * 1999-12-02 2008-08-26 International Business Machines Corporation Dynamic object-level code transaction for improved performance of a computer
TW525091B (en) 2000-10-05 2003-03-21 Koninkl Philips Electronics Nv Retargetable compiling system and method
US7917734B2 (en) * 2003-06-30 2011-03-29 Intel Corporation Determining length of instruction with multiple byte escape code based on information from other than opcode byte
WO2005036384A2 (en) * 2003-10-14 2005-04-21 Koninklijke Philips Electronics N.V. Instruction encoding for vliw processors
US8799882B2 (en) 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
KR101118593B1 (ko) 2008-12-03 2012-02-27 한국전자통신연구원 Vliw 명령어 처리 장치 및 방법
JP2013257670A (ja) * 2012-06-11 2013-12-26 Fujitsu Ltd プロセッサ、圧縮装置、圧縮方法、および圧縮プログラム
JP6122749B2 (ja) 2013-09-30 2017-04-26 ルネサスエレクトロニクス株式会社 コンピュータシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7409530B2 (en) * 2000-03-07 2008-08-05 University Of Washington Method and apparatus for compressing VLIW instruction and sharing subinstructions
TW200802010A (en) * 2005-12-06 2008-01-01 Liga Systems Inc Partitioning of tasks for execution by a VLIM hardware acceleration system
US20080235492A1 (en) * 2007-03-23 2008-09-25 Samsung Electronics Co., Ltd. Apparatus for compressing instruction word for parallel processing vliw computer and method for the same
US7774581B2 (en) * 2007-03-23 2010-08-10 Samsung Electronics Co., Ltd. Apparatus for compressing instruction word for parallel processing VLIW computer and method for the same

Also Published As

Publication number Publication date
TW201926027A (zh) 2019-07-01
US20190171456A1 (en) 2019-06-06
KR102600283B1 (ko) 2023-11-08
KR20190066208A (ko) 2019-06-13
CN110007960A (zh) 2019-07-12
US10860321B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
JP5981023B2 (ja) タッチ・データの分散前処理及びディスプレイ領域制御のための方法、装置、及びシステム
JP5916881B2 (ja) ポータブルコンピューティングデバイス(pcd)上で動作可能なオペレーティングシステムに周辺構成要素インターフェースエクスプレス(pcie)結合デバイスを見せるための方法およびpcd
US9558006B2 (en) Continuous automatic tuning of code regions
JP2012508931A5 (zh)
TWI769143B (zh) 用於使用浮點運算之硬體消去監測器的處理器、方法及系統
EP3547116B1 (en) Branch prediction based on coherence operations in processors
US20200401384A1 (en) Electronic device and operation method thereof
US10474596B2 (en) Providing dedicated resources for a system management mode of a processor
JP2022138116A (ja) 管理バスのための通信プロトコルの選択
US11500647B2 (en) Systems and methods for achieving faster boot times using BIOS attribute mitigation
TWI791699B (zh) 電子裝置及使用其處理指令的方法
CN108694154B (zh) 用于选择数据元素的硬件加速器
CN110741359B (zh) 改变共享总线上集成电路的从属标识的系统和方法
EP4155914A1 (en) Caching based on branch instructions in a processor
US20230100693A1 (en) Prediction of next taken branches in a processor
CN115857649A (zh) 针对主机系统选择电源
US20210034364A1 (en) Processing unit, processor, processing system, electronic device and processing method
CN108228484B (zh) 针对处理器中的高速缓存利用的无效读取
US11307996B2 (en) Hardware unit for reverse translation in a processor
EP3987395B1 (en) Electronic device for executing instructions using processor cores and various versions of instruction set architectures
US20240111598A1 (en) Sequencing circuit for a processor
US20230195918A1 (en) Register interface for computer processor
US11354213B2 (en) Utilization metrics for processing engines
CN115525135A (zh) 处理器中的虚拟分区的功率限制
WO2021021738A1 (en) Processing unit, processor, processing system, electronic device and processing method