[go: up one dir, main page]

TW201826114A - 半導體裝置的處理器與其操作方法 - Google Patents

半導體裝置的處理器與其操作方法 Download PDF

Info

Publication number
TW201826114A
TW201826114A TW106134772A TW106134772A TW201826114A TW 201826114 A TW201826114 A TW 201826114A TW 106134772 A TW106134772 A TW 106134772A TW 106134772 A TW106134772 A TW 106134772A TW 201826114 A TW201826114 A TW 201826114A
Authority
TW
Taiwan
Prior art keywords
data
processor
semiconductor device
processor core
operating
Prior art date
Application number
TW106134772A
Other languages
English (en)
Other versions
TWI766891B (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 TW201826114A publication Critical patent/TW201826114A/zh
Application granted granted Critical
Publication of TWI766891B publication Critical patent/TWI766891B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/3013Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30029Logical and Boolean instructions, e.g. XOR, NOT
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/327Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Advance Control (AREA)
  • Multi Processors (AREA)
  • Semiconductor Integrated Circuits (AREA)

Abstract

一種處理器包括:處理器核心;暫存器,選擇性地在第一操作模式期間由外部硬體控制或者在第二操作模式期間由所述處理器核心控制;以及選擇電路,接收在所述第一操作模式期間由所述外部硬體提供到所述暫存器的第一資料以及在所述第二操作模式期間由所述處理器核心提供到所述暫存器的第二資料。

Description

半導體裝置與其操作方法
本發明是有關於一種半導體裝置與其操作方法。
一般來說,為使軟體存取從例如硬體加速器或硬體前置處理器等專用硬體產生的資料,需要用於臨時儲存資料的臨時儲存空間。從硬體產生的資料可記錄在臨時儲存空間中且接著被軟體讀取。
舉例來說,在用於產生資料流的專用硬體與在處理器上運行的用於存取由所述專用硬體產生的所述資料流的軟體之間設置例如靜態隨機存取記憶體(static random access memory,SRAM)等記憶體裝置,且所述記憶體裝置可用於臨時儲存從所述專用硬體產生的資料流,從而使得所述資料流可被所述軟體讀取。
然而,由於此種在專用硬體與軟體之間傳輸資料的方法需要額外的記憶體裝置,因此成本增加,且在電路上需要用於安裝記憶體裝置的區域。為解決此問題,需要在專用硬體與在處理器上操作的軟體之間高效地交換資料。
在一些方面中,本發明概念提供一種能夠在外部硬體與在處理器上操作的軟體之間高效地傳送資料而不使用額外的記憶體裝置的半導體裝置的處理器及/或操作所述處理器的方法。
在一個方面中,本發明概念提供一種半導體裝置的處理器,所述處理器包括:處理器核心;暫存器,選擇性地在第一操作模式期間由外部硬體控制或者在第二操作模式期間由所述處理器核心控制;以及選擇電路,接收在所述第一操作模式期間由所述外部硬體提供到所述暫存器的第一資料以及在所述第二操作模式期間由所述處理器核心提供到所述暫存器的第二資料。
在另一方面中,本發明概念提供一種操作半導體裝置的處理器的方法,所述方法包括:檢測在第二操作模式期間由外部硬體產生的中斷信號,在所述第二操作模式中,由所述處理器的處理器核心直接控制暫存器且接收到第二資料;執行從所述第二操作模式向第一操作模式的上下文切換,在所述第一操作模式中,由外部硬體控制所述暫存器的控制且接收到第一資料;對由所述外部硬體直接儲存在所述暫存器中而不使用額外的記憶體的所述第一資料流執行邏輯運算、計算運算、及算數運算中的一種;且之後,執行從所述第一操作模式向所述第二操作模式的上下文切換。
在另一方面中,本發明概念提供一種操作半導體裝置的處理器的方法,能夠交替地處理使用第一操作模式從外部硬體接收的第一資料以及使用第二操作模式從所述處理器的處理器核心接收的第二資料。所述方法包括:在處理所述第二資料的同時,在所述處理器核心中接收由所述外部硬體產生的中斷信號;回應於所述中斷信號,進行從所述第二操作模式向所述第一操作模式的上下文切換;在所述第一操作模式期間,直接在所述處理器的暫存器中從所述外部硬體接收所述第一資料而不使用額外的記憶體,其中所述暫存器在所述第一操作模式期間由所述外部硬體控制且在所述第二操作模式期間由所述處理器核心控制。
在下文中,將參照附圖來闡述本發明概念的實施例。
圖1是說明包含根據本發明概念實施例的半導體裝置及/或使用根據本發明概念實施例的操作方法的半導體系統1的方塊圖。
參照圖1,半導體系統1包括系統晶片(system-on-chip)10、記憶體裝置20、儲存裝置30以及用於電連接系統晶片10、記憶體裝置20及儲存裝置30的匯流排40。
圖1中所說明的系統晶片10包括應用處理器(application processor,AP)100、數位訊號處理器(digital signal processor,DSP)110、多媒體處理器120及數據機130。儘管各種實施例中可使用具有前述通用配置的系統晶片,然而此特定配置僅為可根據實施方案的具體目的而有用地包含在本發明概念各種實施例內的許多不同配置的一個實例。
記憶體裝置20可包括非揮發性記憶體(例如,唯讀記憶體(read only memory,ROM))及/或揮發性記憶體(例如,動態隨機存取記憶體(dynamic random access memory,DRAM)或靜態隨機存取記憶體(SRAM)),但本發明概念的範圍並非僅限於所述記憶體類型。
儲存裝置30可包括硬碟驅動器(hard disk drive,HDD)、固態驅動器(solid state drive,SSD)等,但本發明概念的範圍並非僅限於所述儲存裝置類型。
本公開內容的隨後將闡述的各種實施例可應用在通用硬體(例如,專用及/或通用硬體)與在一個或多個處理器上操作的軟體之間。然而,為解釋方便起見,在下文中,將闡述由系統晶片10提供的數據機130作為實例。
圖2是進一步在一個實例中說明圖1所示數據機130的方塊圖。
參照圖2,數據機130被進一步說明為包括第一硬體1300、第二硬體1310、靜態隨機存取記憶體1320及處理器1330。
第一硬體1300可整體地或部分地為專用硬體,所述專用硬體用於對通過與半導體系統1相關聯的天線或包含半導體系統1的主機裝置而接收的輸入資訊執行特定處理並提供對應結果(此後一般稱作第一資料(DATA 1))。在一些實施例中,第一資料(DATA 1)可使用一種或多種傳統上所理解的“資料流格式(data stream format)”來進行傳送(例如,傳輸及/或接收)。
舉例來說,第一硬體1300可為被提供用來對所接收輸入資訊進行解擾的專用硬體。因此,第一硬體1300可處理輸入資訊以對第一資料(DATA 1)進行解擾並以資料流格式提供所述第一資料(DATA 1)。
回應於由第一硬體1300提供的第一資料(DATA 1),可使用第二硬體1310(其也可整體地或部分地為專用硬體)來提供處理第一資料(DATA 1)且提供對應的第二資料(DATA 2)。
在一些實施例中,可能不需要記憶體裝置來將資料從第一硬體1300傳送到第二硬體1310。然而,根據在處理器1330上操作的軟體的特定功能及能力,可能需要一些額外的(或中間)記憶體(例如,靜態隨機存取記憶體1320)來傳送來自第一硬體1300與第二硬體1310的組合的資料。
因此,靜態隨機存取記憶體1320可用於儲存由第二硬體1310提供的第二資料(DATA 2)以促成處理環境,所述處理環境能夠使在處理器1330上操作的構成軟體進一步處理第二資料(DATA 2)。然而,此種使用額外的記憶體(例如,靜態隨機存取記憶體1320)來促成資料傳送的方式會帶來一定的代價(例如使系統晶片10及/或半導體裝置1的大小(或佔用面積(footprint area))增大),所述資料傳送是通過位於處理器1330外部的各種硬體(例如,第一硬體1300及第二硬體1310)以與在處理器1330上操作的軟體相容的方式而進行。為避免這些代價,半導體裝置1的一些實施例可將如由一個或多個外部硬體產生的資料直接傳送到處理器1330而不將所述資料儲存在中間記憶體中。
為實現此期望結果,可將第一硬體1300配置成在輸出第一資料(DATA 1)的同時獲得對設置在處理器1330中的暫存器的控制。此控制使得第一硬體1300能夠直接將第一資料(DATA 1)寫入到處理器1330的暫存器。可以各種方式來獲得控制,但在一個實施例中,第一硬體1300可將第一控制信號(CTRL 1)及中斷信號(INT)傳送到處理器1330。此後將參照圖3、圖4及圖5來闡述對此種方式的詳細說明。
圖3是進一步在一個實例中說明根據本發明概念實施例的圖2所示處理器1330的方塊圖。
參照圖3且如參照圖2所述,處理器1330直接從第一硬體1300接收第一資料(DATA 1)。此處,處理器1330被說明為包括選擇電路1332、暫存器1334及處理器核心1336。
選擇電路1332接收模式信號MODE,其中選擇電路1332被選擇性地配置成根據模式信號MODE而以第一操作模式操作或以第二操作模式操作。通過此種方式,選擇電路1332可選擇性地在以第一操作模式操作的同時將由第一硬體1300提供的第一資料(DATA 1)提供到暫存器1334,或者在以第二操作模式操作的同時將由第二硬體1310提供的第二資料(DATA 2)提供到暫存器1334。就此來說,應注意,第二資料(DATA 2)可進一步回應於由核心1336提供的控制信號(CTRL 2)而被選擇性地提供到暫存器1334。
在圖3中所說明的實施例中,暫存器1334在操作中通過時鐘信號CLK來同步驅動。暫存器1334在第一操作模式期間在第一硬體1300的控制下儲存第一資料(DATA 1),或者在第二操作模式中在處理器核心1336的控制下儲存第二資料(DATA 2)。
處理器核心1336可直接存取暫存器1334,且更具體來說,在處理器核心1336上運行的軟體可直接存取儲存在暫存器1334中的資料。在本發明概念的一些實施例中,處理器核心1336可包括應用專用指令集處理器(application-specific instruction set processor,ASIP),但本公開內容的範圍並非僅限於此。
此後將闡述第一硬體1300、選擇電路1332、暫存器1334及處理器核心1336之間的各種操作及中間操作。
舉例來說,當在第一操作模式期間由第一硬體1300提供的第一資料(DATA 1)從第一硬體1300直接儲存在暫存器1334中時,第一硬體1300可在提供第一資料(DATA 1)之前產生中斷信號(INT)。當以第二操作模式操作的處理器核心1336識別到中斷信號(INT)的存在時,處理器核心1336使用被稱作“上下文切換(context switching)”的方式從第二操作模式切換到第一操作模式。就此來說,資料流或資訊執行緒之間的上下文切換依賴於使用虛擬化記憶體(例如,暫存器1334)進行的進程切換。也就是說,每一被切入的資料流或資訊執行緒(例如,DATA 1及DATA 2)共用與對應操作模式(例如,第一操作模式及第二操作模式)相關的虛擬化記憶體。
因此,當處理器核心1336完成從第二操作模式向第一操作模式的上下文切換時,第一硬體1300被允許將第一控制信號CTRL 1傳送到選擇電路1332以獲得對暫存器1334的控制,且之後,第一硬體1300可通過選擇電路1332將第一資料(DATA 1)寫入到暫存器1334。之後,在第一操作模式期間,處理器核心1336(或在處理器核心1336上運行的軟體)可對儲存在暫存器1334中的第一資料(DATA 1)執行邏輯運算、計算運算及/或算數運算。
之後,在從第一硬體1300提供第一資料(DATA 1)的過程完成且由處理器核心1336執行的邏輯/計算/算數運算完成時,處理器核心1336可通過將第二控制信號(CTRL 2)傳送到選擇電路1332以重新獲得對暫存器1334的控制來控制從第一操作模式切換回到第二操作模式的上下文切換。因此,可通過此種方式將資料從第一硬體1300傳送到在處理器核心1336上運行的軟體而無需使用除已設置在處理器1330中的暫存器1334以外的記憶體資源。此使得能夠以減小的大小及成本實作圖1所示半導體系統1。
圖4是進一步在一個實例中說明根據本發明概念實施例的圖3所示選擇電路1332的方塊圖。
參照圖1、圖2、圖3及圖4,選擇電路1332可使用多個多工器(例如,第一多工器、第二多工器及第三多工器)來實作。
第一多工器接收由第一硬體1300提供的第一資料(DATA 1)及由除第一硬體1330以外的一些來源(例如,第二硬體1310、處理器核心1336等)提供的第二資料(DATA 2),根據選擇電路1332的操作模式而在第一資料(DATA 1)與第二資料(DATA 2)之間進行選擇,並輸出第三資料(DATA 3)。
在第一硬體1300控制暫存器1334的第一操作模式期間,第一多工器選擇第一資料(DATA 1)並輸出第一資料(DATA 1)作為第三資料(DATA 3)。作為另外一種選擇,在處理器核心1336控制暫存器1334的第二操作模式期間,第一多工器選擇第二資料(DATA 2)並輸出此第二資料(DATA 2)作為第三資料(DATA 3)。
第二多工器接收由第一硬體1300提供的第一控制信號CTRL 1及由除第一硬體1300以外的一些來源(例如,處理器核心1336)提供的第二控制信號CTRL 2,根據選擇電路1332的操作模式而在第一控制信號CTRL 1與第二控制信號CTRL 2之間進行選擇,並輸出第三控制信號CTRL 3。
在第一硬體1300控制暫存器1334的第一操作模式期間,第二多工器選擇第一控制信號CTRL 1並輸出此第一控制信號CTRL 1作為第三控制信號CTRL 3。作為另外一種選擇,在處理器核心1336控制暫存器1334的第二操作模式期間,第二多工器選擇第二控制信號CTRL 2並輸出此第二控制信號CTRL 2作為第三控制信號CTRL 3。
第三多工器從第一多工器接收第三資料(DATA 3)作為第一輸入且從暫存器1334的輸出接收回饋資料(DATA 5)作為第二輸入。第三多工器還從第二多工器接收第三控制信號CTRL 3作為選擇信號。依據選擇信號,第三多工器將從第三資料(DATA 3)與回饋資料(DATA 5)之間選擇的第四資料(DATA 4)提供到暫存器1334。
圖5是說明根據本發明概念各種實施例的圖1、圖2、圖3及圖4所示半導體裝置1的各種控制信號、資料信號及操作模式之間的示例性時序關係的時序圖。
參照圖5,在時間t1處,第一硬體1300在提供第一資料(DATA 1)之前產生中斷信號(INT)。在時間t2處,當以第二操作模式操作的處理器核心1336識別到中斷信號(INT)時,處理器核心1336使用上下文切換方式及暫存器1334而從第二操作模式(例如,假定為圖5所示實例中的正常操作模式)切換到第一操作模式(例如,假定為圖5所示實例中的資料流模式)。
在時間t3處切換到第一操作模式之後,處理器核心1336等待(例如,使用輪詢技術(polling technique))來自第一硬體1300的第一資料(DATA 1)的資料傳輸起點。
在時間t4處,第一硬體1300使用所識別的資料流格式將第一資料(DATA 1)直接傳輸到暫存器RD(例如,暫存器1334)。具體來說,當處理器核心1336完成從第二操作模式到第一操作模式的切換時,第一硬體1300將第一控制信號CTRL 1傳輸到選擇電路1332以獲得對暫存器RD的控制,並通過選擇電路1332將第一資料(DATA 1)寫入到暫存器RD。
在時間t5處,處理器核心1336識別第一資料(DATA 1)的傳輸起點,在處理器核心1336上操作的軟體對儲存在暫存器RD中的第一資料(DATA 1)執行邏輯/計算/算數運算。
接著,在時間t6處處理器核心1336識別到第一資料(DATA 1)的傳輸末尾,在時間t7處在處理器核心1336上操作的軟體完成邏輯/計算/算數運算,且在時間t8處進行上下文切換以從第一操作模式回到第二操作模式。接著,在時間t9處,在此時間處從第一操作模式向第二操作模式的上下文切換完成,處理器核心1336將第二控制信號CTRL傳輸到選擇電路1332以獲得對暫存器RD的控制。
為通過此種方式在第一硬體1300與在處理器核心1336上操作的軟體之間傳輸資料,使用已設置在處理器1330中的暫存器RD便已足夠,且無需提供額外的記憶體。因此可避免與提供及使用額外的記憶體相關聯的成本。
圖6是說明根據本發明概念另一實施例的圖2所示處理器1330的方塊圖,且圖7是進一步在一個實施例中說明圖6所示選擇電路1332的方塊圖。
共同參照圖6及圖7,所說明實施例不同於針對圖3及圖4所述的實施例,在暫存器1334中進一步包括起點暫存器(start register)13342及末尾暫存器(end register)13344。
重新假定第一資料(DATA 1)是以資料流格式從第一硬體1300提供,起點暫存器13342可用於儲存指示第一資料(DATA 1)的起點位置(例如,第一位址值)的第一值,且末尾暫存器13344可用於儲存指示第一資料(DATA 1)的末尾暫存器(例如,第二位址值)的第二值。
因此,處理器核心1336因其在第一操作模式期間對儲存在暫存器1334中的第一資料(DATA 1)執行邏輯運算、計算運算及/或算數運算而可使用起點暫存器13342識別資料流的起點位置且使用末尾暫存器13344識別所述資料流的末尾位置。
圖8是說明根據本發明概念實施例的半導體裝置的操作實例的時序圖。
參照圖8,在時間t1處,第一硬體1300在以資料流格式提供第一資料(DATA 1)之前產生中斷信號(INT)。在時間t2處,當以第二操作模式操作的處理器核心1336識別到中斷信號(INT)時,處理器核心1336使用暫存器RD進行上下文切換(例如,圖6及圖7所示暫存器1334)以從第二操作模式(例如,正常操作模式)到第一操作模式(例如,資料流操作模式)。
在時間t3處上下文切換完成之後,處理器核心1336等待來自第一硬體1300的第一資料(DATA 1)的傳輸起點。在本發明概念的一些實施例中,處理器核心1336可使用輪詢技術等待第一資料(DATA 1)的傳輸起點。
在時間t4處,第一硬體1300以資料流格式將第一資料(DATA 1)直接傳輸到暫存器RD。具體來說,當處理器核心1336完成從第二操作模式向第一操作模式的上下文切換時,第一硬體1300將第一控制信號CTRL 1傳輸到選擇電路1332以獲得對暫存器RD的控制。此外,第一硬體1300通過選擇電路1332將第一資料(DATA 1)寫入到暫存器RD。
在時間t5處,處理器核心1336對起點暫存器13342進行輪詢並識別出儲存在起點暫存器13342中的第一位置值。因此,在第一操作模式期間,處理器核心1336(例如,在處理器核心1336上操作的軟體)能夠對儲存在暫存器RD中的第一資料(DATA 1)執行邏輯運算、計算運算及/或算數運算。
在時間t6處,處理器核心1336對末尾暫存器13344進行輪詢並識別出儲存在末尾暫存器13344中的第二位置值。因此,在時間t7處處理器核心1336完成邏輯運算、計算運算及/或算數運算時,在時間t8處進行上下文切換以從第一操作模式到第二操作模式。接著,在時間t9處,在此時間處從第一操作模式向第二操作模式的切換完成,處理器核心1336將第二控制信號CTRL傳輸到選擇電路1332以重新獲得對暫存器RD的控制。
因此,為提供此種方式在第一硬體1300與在處理器核心1336上操作的軟體之間高效地傳送資料,使用已設置在處理器1330中的暫存器RD便已足夠,且無需提供額外的記憶體。因此可避免之前所提及的成本。
圖9是闡述操作根據本發明概念實施例的半導體裝置的方法的流程圖。
在對所述方法的以下說明中,假定處理器核心1336以與前述實施例中的第二操作模式對應的正常操作模式操作(S901)。然後,當處理器核心1336檢測到由第一硬體1300產生的中斷信號(INT)(S903=Y)時,處理器核心1336執行向與前述實施例中的第一操作模式對應的資料流操作模式的上下文切換(S905)。
處理器核心1336在資料流操作模式中等待第一資料(DATA 1)的傳輸的起點(S907),識別傳輸起點(S909=Y),並接著在資料流模式中對第一資料(DATA 1)執行邏輯運算、計算運算及/或算數運算(S911)。
之後,處理器核心1336在資料流模式中處理第一資料(DATA 1)。識別傳輸末尾(S913=Y),並接著執行回到正常操作模式的上下文切換(S915)。
圖10是根據本發明概念各種實施例的可用於執行算數運算的程式碼段的示例性列表。
參照圖10,可在使用傳統方案的第一程式碼片段C1與使用根據本發明概念各種實施例的方案的第二程式碼片段C2之間進行比較。
在程式碼片段(C1)的情形中,使用例如“ld”等指令將存在於記憶體中的例如2i或2i + 1等位址處的資料載入到暫存器(例如r0或r1),並接著執行例如“corr”等算數運算。使用例如“儲存”等指令將其運算結果儲存在所述記憶體中的例如“dst”等位址處。
相比之下,在程式碼片段C2的情形中,在資料流模式中,由第一硬體1300產生的資料流直接在暫存器(例如r0或r1)中進行更新以便於在處理器核心1336中操作的軟體中查看。因此,在資料流模式中,無需使用例如“ld”等指令將存在於記憶體中的資料載入到暫存器中,並且使用例如r0或r1等暫存器來直接執行例如“corr”等算數運算。與傳統方案相似,也可使用例如“儲存”等指令將其運算結果儲存在記憶體中的例如“dst”等位址處。
根據本發明概念的各種實施例,可在硬體(例如,專用硬體)與在處理器上操作的軟體之間高效地傳輸資料而無需使用額外的記憶體裝置。也就是說,為在專用硬體與在處理器上操作的軟體之間傳輸資料,使用已設置在所述處理器中的暫存器便已足夠,且無需提供額外的記憶體。因此,可避免因額外的記憶體而造成的成本增加問題及面積增加問題。
儘管已出於說明目的公開了本發明概念的優選實施例,然而所屬領域中的技術人員將知,在不背離如在隨附權利要求書中所公開的本公開內容的範圍的條件下,可進行各種潤飾、添加及替代。
1‧‧‧半導體系統/半導體裝置
10‧‧‧系統晶片
20‧‧‧記憶體裝置
30‧‧‧儲存裝置
40‧‧‧匯流排
100‧‧‧應用處理器
110‧‧‧數位訊號處理器
120‧‧‧多媒體處理器
130‧‧‧數據機
1300‧‧‧第一硬體
1310‧‧‧第二硬體
1320‧‧‧靜態隨機存取記憶體
1330‧‧‧處理器
1332‧‧‧選擇電路
1334、RD‧‧‧暫存器
1336‧‧‧核心/處理器核心
13342‧‧‧起點暫存器
13344‧‧‧末尾暫存器
C1‧‧‧程式碼片段/第一程式碼片段
C2‧‧‧程式碼片段/第二程式碼片段
CLK‧‧‧時鐘信號
CTRL 1‧‧‧第一控制信號
CTRL 2‧‧‧控制信號/第二控制信號
CTRL 3‧‧‧第三控制信號
DATA 1‧‧‧第一資料
DATA 2‧‧‧第二資料
DATA 3‧‧‧第三資料
DATA 4‧‧‧第四資料
DATA 5‧‧‧回饋資料
INT‧‧‧中斷信號
MODE‧‧‧模式信號
S901、S903、S905、S907、S909、S911、S913、S915‧‧‧操作
t1、t2、t3、t4、t5、t6、t7、t8、t9‧‧‧時間
藉由參照附圖詳細闡述本發明概念的示例性實施例,本發明概念的以上及其他方面及特徵將變得更顯而易見,在附圖中:
圖1是說明使用根據本發明概念實施例的半導體裝置的半導體系統的方塊圖。 圖2是用於說明根據本發明概念實施例的半導體裝置的方塊圖。 圖3是進一步說明根據本發明概念實施例的半導體裝置的處理器的方塊圖。 圖4是進一步說明根據本發明概念實施例的半導體裝置的選擇電路的方塊圖。 圖5是說明根據本發明概念實施例的半導體裝置的操作實例的時序圖。 圖6是進一步說明根據本發明概念另一實施例的半導體裝置的處理器的方塊圖。 圖7是進一步說明根據本發明概念另一實施例的半導體裝置的選擇電路的方塊圖。 圖8是說明根據本發明概念另一實施例的半導體裝置的操作實例的時序圖。 圖9是闡述操作根據本發明概念實施例的半導體裝置的方法的流程圖。 圖10是根據本發明概念各種實施例的能夠執行算數運算的程式碼段(program code segment)的列表。

Claims (20)

  1. 一種半導體裝置的處理器,包括: 處理器核心; 暫存器,選擇性地在第一操作模式期間由外部硬體控制或者在第二操作模式期間由所述處理器核心控制;以及 選擇電路,接收在所述第一操作模式期間由所述外部硬體提供到所述暫存器的第一資料以及在所述第二操作模式期間由所述處理器核心提供到所述暫存器的第二資料。
  2. 如申請專利範圍第1項所述的半導體裝置,其中在所述第一操作模式期間,所述第一資料由所述外部硬體產生並直接儲存在所述暫存器中而不使用額外的記憶體。
  3. 如申請專利範圍第1項所述的半導體裝置,其中在將所述第一資料提供到所述暫存器之前,所述外部硬體產生提供到所述處理器核心的中斷信號。
  4. 如申請專利範圍第3項所述的半導體裝置,其中在所述第二操作模式期間所述處理器核心識別到所述中斷信號時,所述處理器核心執行從所述第二操作模式向所述第一操作模式的上下文切換。
  5. 如申請專利範圍第4項所述的半導體裝置,其中在所述處理器核心完成所述上下文切換之後,所述外部硬體將所述第一資料提供到所述暫存器。
  6. 如申請專利範圍第1項所述的半導體裝置,其中在所述第一操作模式期間,所述處理器核心對所述第一資料執行邏輯運算、計算運算、及算數運算中的一種。
  7. 如申請專利範圍第6項所述的半導體裝置,其中所述第一資料是使用資料流格式提供,且所述暫存器包括起點暫存器及末尾暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
  8. 如申請專利範圍第7項所述的半導體裝置,其中所述處理器核心使用所述第一位置值來識別所述資料流的所述起點並使用所述第二位置值來識別所述資料流的所述末尾。
  9. 如申請專利範圍第1項所述的半導體裝置,其中所述選擇電路包括: 第一多工器,接收所述第一資料及所述第二資料並根據所述第一操作模式與所述第二操作模式中的所選擇模式在所述第一資料與所述第二資料之間進行選擇,以輸出第三資料; 第二多工器,從所述外部硬體接收第一控制信號以及從所述處理器核心接收第二控制信號,並根據所述第一操作模式與所述第二操作模式中的所述所選擇模式在所述第一控制信號與所述第二控制信號之間進行選擇,以輸出第三控制信號;以及 第三多工器,接收所述第三資料及所述第三控制信號,並將由所述選擇信號選擇的第四資料提供到所述暫存器。
  10. 如申請專利範圍第1項所述的半導體裝置,其中所述處理器核心包括應用專用指令集處理器。
  11. 一種操作半導體裝置的處理器的方法,包括: 檢測在第二操作模式期間由外部硬體產生的中斷信號,在所述第二操作模式中,暫存器由所述處理器的處理器核心直接控制且接收到第二資料; 執行從所述第二操作模式向第一操作模式的上下文切換,在所述第一操作模式中,所述暫存器的控制由外部硬體控制且接收到第一資料; 對由所述外部硬體直接儲存在所述暫存器中而不使用額外的記憶體的所述第一資料流執行邏輯運算、計算運算、及算數運算中的一種;且之後, 執行從所述第一操作模式向所述第二操作模式的上下文切換。
  12. 如申請專利範圍第11項所述的操作半導體裝置的處理器的方法,其中在所述第一操作模式期間,所述第一資料是由所述外部硬體以資料流格式提供。
  13. 如申請專利範圍第11項所述的操作半導體裝置的處理器的方法,其中在所述處理器核心完成從所述第二操作模式向所述第一操作模式的所述上下文切換之後,所述外部硬體提供所述第一資料。
  14. 如申請專利範圍第12項所述的操作半導體裝置的處理器的方法,其中所述暫存器包括起點暫存器及末尾暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
  15. 如申請專利範圍第14項所述的操作半導體裝置的處理器的方法,其中所述處理器核心使用所述起點暫存器識別所述第一資料的所述起點且使用所述末尾暫存器識別所述第一資料的所述末尾。
  16. 一種操作半導體裝置的處理器的方法,所述處理器能夠交替地處理使用第一操作模式從外部硬體接收的第一資料以及使用第二操作模式從所述處理器的處理器核心接收的第二資料,其特徵在於,所述方法包括: 在處理所述第二資料的同時,在所述處理器核心中接收由所述外部硬體產生的中斷信號; 回應於所述中斷信號,進行從所述第二操作模式向所述第一操作模式的上下文切換; 在所述第一操作模式期間,直接在所述處理器的暫存器中從所述外部硬體接收所述第一資料而不使用額外的記憶體, 其中所述暫存器在所述第一操作模式期間由所述外部硬體控制且在所述第二操作模式期間由所述處理器核心控制。
  17. 如申請專利範圍第16項所述的操作半導體裝置的處理器的方法,其中所述第一数据由所述外部硬件根据数据流格式提供。
  18. 如申請專利範圍第16項所述的操作半導體裝置的處理器的方法,其中所述暫存器是回應於提供到所述處理器的選擇電路的第一控制信號而由所述外部硬體控制以及回應於提供到所述選擇電路的第二控制信號而由所述處理器核心控制, 所述選擇電路回應於模式信號而在所述第一控制信號與所述第二控制信號之間進行選擇,所述模式信號指示所述第一操作模式與所述第二操作模式中的一者。
  19. 如申請專利範圍第17項所述的操作半導體裝置的處理器的方法,其中所述暫存器包括起點暫存器及末尾暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
  20. 如申請專利範圍第19項所述的操作半導體裝置的處理器的方法,其中所述處理器核心使用所述第一位置值來識別所述資料流的所述起點並使用所述第二位置值來識別所述資料流的所述末尾。
TW106134772A 2017-01-04 2017-10-11 半導體裝置的處理器與其操作方法 TWI766891B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
??10-2017-0001215 2017-01-04
KR10-2017-0001215 2017-01-04
KR1020170001215A KR102753546B1 (ko) 2017-01-04 2017-01-04 반도체 장치 및 반도체 장치의 동작 방법

Publications (2)

Publication Number Publication Date
TW201826114A true TW201826114A (zh) 2018-07-16
TWI766891B TWI766891B (zh) 2022-06-11

Family

ID=62712337

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106134772A TWI766891B (zh) 2017-01-04 2017-10-11 半導體裝置的處理器與其操作方法

Country Status (4)

Country Link
US (1) US10628159B2 (zh)
KR (1) KR102753546B1 (zh)
CN (1) CN108268280B (zh)
TW (1) TWI766891B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI703500B (zh) * 2019-02-01 2020-09-01 睿寬智能科技有限公司 可縮短內文交換時間之方法及其半導體裝置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102746081B1 (ko) * 2018-12-27 2024-12-26 삼성전자주식회사 Pmic 칩, 이를 포함하는 ssd 및 ssd 전력 모드 제어 방법
DE102020205765A1 (de) * 2020-05-07 2021-11-11 Robert Bosch Gesellschaft mit beschränkter Haftung Systemkomponente und Verwendung einer Systemkomponente

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
US20050278512A1 (en) * 1988-12-22 2005-12-15 Ehlig Peter N Context switching devices, systems and methods
US5717947A (en) * 1993-03-31 1998-02-10 Motorola, Inc. Data processing system and method thereof
JP3906712B2 (ja) 2002-02-27 2007-04-18 株式会社日立製作所 データストリーム処理装置
JP4211751B2 (ja) 2005-03-25 2009-01-21 セイコーエプソン株式会社 集積回路装置
JP2007109038A (ja) 2005-10-14 2007-04-26 Seiko Epson Corp データ処理装置
KR20070080493A (ko) 2006-02-07 2007-08-10 삼성전자주식회사 하드웨어 폴링 처리기를 포함한 데이터 처리 시스템
TW200813724A (en) * 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US7865675B2 (en) 2007-12-06 2011-01-04 Arm Limited Controlling cleaning of data values within a hardware accelerator
US20090300629A1 (en) 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
US8898448B2 (en) 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
US9038073B2 (en) 2009-08-13 2015-05-19 Qualcomm Incorporated Data mover moving data to accelerator for processing and returning result data based on instruction received from a processor utilizing software and hardware interrupts
JP5285643B2 (ja) * 2010-03-15 2013-09-11 シャープ株式会社 半導体集積回路および電子情報機器
EP2437161A1 (en) * 2010-10-01 2012-04-04 Intel Mobile Communications Technology Dresden GmbH Hardware accelerator module and method for setting up same
KR101640295B1 (ko) * 2011-01-25 2016-07-15 마이크론 테크놀로지, 인크. 정규 표현을 컴파일하기 위한 방법 및 장치
US8683175B2 (en) 2011-03-15 2014-03-25 International Business Machines Corporation Seamless interface for multi-threaded core accelerators
US9881161B2 (en) * 2012-12-06 2018-01-30 S-Printing Solution Co., Ltd. System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof
US9215472B2 (en) 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
JP6414388B2 (ja) 2014-04-18 2018-10-31 株式会社リコー アクセラレータ回路及び画像処理装置
KR101658397B1 (ko) 2015-02-27 2016-09-22 고려대학교 산학협력단 Present를 이용한 경량암호 장치
JP6477045B2 (ja) 2015-03-06 2019-03-06 富士ゼロックス株式会社 情報処理装置
US9952865B2 (en) 2015-04-04 2018-04-24 Texas Instruments Incorporated Low energy accelerator processor architecture with short parallel instruction word and non-orthogonal register data file

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI703500B (zh) * 2019-02-01 2020-09-01 睿寬智能科技有限公司 可縮短內文交換時間之方法及其半導體裝置

Also Published As

Publication number Publication date
US10628159B2 (en) 2020-04-21
CN108268280A (zh) 2018-07-10
KR20180080463A (ko) 2018-07-12
TWI766891B (zh) 2022-06-11
KR102753546B1 (ko) 2025-01-09
CN108268280B (zh) 2023-07-21
US20180189059A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
US7714870B2 (en) Apparatus and method for selectable hardware accelerators in a data driven architecture
JP6633119B2 (ja) 自律的メモリの方法及びシステム
US11348624B1 (en) Shared multi-port memory from single port
CN108628693A (zh) 处理器调试方法和系统
TW201826114A (zh) 半導體裝置的處理器與其操作方法
TW202538510A (zh) 處理器、指令處理的裝置、電子設備以及指令處理方法
JP5856434B2 (ja) バス接続回路、半導体装置及びバス接続回路の動作方法
JP3756410B2 (ja) 述語データを提供するシステム
WO2009098737A1 (ja) 外部デバイスアクセス装置、その制御方法及びシステムlsi
JP2014215624A (ja) 演算処理装置
CN110383259B (zh) 计算处理装置和信息处理系统
US20110271078A1 (en) Processor structure of integrated circuit
JPWO2010029682A1 (ja) 情報処理装置
JP2009037639A (ja) ストリーミングidメソッドによるdmac発行メカニズム
JPH03271829A (ja) 情報処理装置
CN115269009A (zh) 指令处理方法、装置、处理器和电子设备
JP2017059273A (ja) 演算処理装置
US9886276B2 (en) System register access
HK40107640B (zh) 处理器、指令处理的装置、电子设备以及指令处理方法
HK40107640A (zh) 处理器、指令处理的装置、电子设备以及指令处理方法
CN117519633A (zh) Gpu多路hdmi音频同步输出方法、装置及存储介质
US9645830B2 (en) On-chip circuitry for configuring peripherals of a system on a chip
JP2635863B2 (ja) 中央処理装置
JP2005056033A (ja) レジスタ回路
JP2015060401A (ja) 情報処理装置およびその制御方法