TWI766891B - 半導體裝置的處理器與其操作方法 - Google Patents
半導體裝置的處理器與其操作方法 Download PDFInfo
- Publication number
- TWI766891B TWI766891B TW106134772A TW106134772A TWI766891B TW I766891 B TWI766891 B TW I766891B TW 106134772 A TW106134772 A TW 106134772A TW 106134772 A TW106134772 A TW 106134772A TW I766891 B TWI766891 B TW I766891B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- processor
- mode
- register
- hardware
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/3013—Organisation of register space, e.g. banked or distributed register file according to data content, e.g. floating-point registers, address registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3824—Operand 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)
- Semiconductor Integrated Circuits (AREA)
- Multi Processors (AREA)
Abstract
一種半導體裝置的處理器與其操作方法。處理器包括:
處理器核心;暫存器,選擇性地在第一操作模式期間由外部硬體控制或者在第二操作模式期間由所述處理器核心控制;以及選擇電路,接收在所述第一操作模式期間由所述外部硬體提供到所述暫存器的第一資料以及在所述第二操作模式期間由所述處理器核心提供到所述暫存器的第二資料。藉此,在外部硬體與在處理器上操作的軟體之間的資料高效地傳送而不使用額外的記憶體裝置。
Description
本發明是有關於一種半導體裝置與其操作方法。
一般來說,為使軟體存取從例如硬體加速器或硬體前置處理器等專用硬體產生的資料,需要用於臨時儲存資料的臨時儲存空間。從硬體產生的資料可記錄在臨時儲存空間中且接著被軟體讀取。
舉例來說,在用於產生資料流的專用硬體與在處理器上運行的用於存取由所述專用硬體產生的所述資料流的軟體之間設置例如靜態隨機存取記憶體(static random access memory,SRAM)等記憶體裝置,且所述記憶體裝置可用於臨時儲存從所述專用硬體產生的資料流,從而使得所述資料流可被所述軟體讀取。
然而,由於此種在專用硬體與軟體之間傳輸資料的方法需要額外的記憶體裝置,因此成本增加,且在電路上需要用於安裝記憶體裝置的區域。為解決此問題,需要在專用硬體與在處理器上操作的軟體之間高效地交換資料。
在一些方面中,本發明概念提供一種能夠在外部硬體與在處理器上操作的軟體之間高效地傳送資料而不使用額外的記憶體裝置的半導體裝置的處理器及/或操作所述處理器的方法。
在一個方面中,本發明概念提供一種半導體裝置的處理器,所述處理器包括:處理器核心;暫存器,選擇性地在第一操作模式期間由外部硬體控制或者在第二操作模式期間由所述處理器核心控制;以及選擇電路,接收在所述第一操作模式期間由所述外部硬體提供到所述暫存器的第一資料以及在所述第二操作模式期間由所述處理器核心提供到所述暫存器的第二資料。
在另一方面中,本發明概念提供一種操作半導體裝置的處理器的方法,所述方法包括:檢測在第二操作模式期間由外部硬體產生的中斷信號,在所述第二操作模式中,由所述處理器的處理器核心直接控制暫存器且接收到第二資料;執行從所述第二操作模式向第一操作模式的上下文切換,在所述第一操作模式中,由外部硬體控制所述暫存器且接收到第一資料;對由所述外部硬體直接儲存在所述暫存器中而不使用額外的記憶體的所述第一資料執行邏輯運算、計算運算、及算數運算中的一種;且之後,執行從所述第一操作模式向所述第二操作模式的上下文切換。
在另一方面中,本發明概念提供一種操作半導體裝置的處理器的方法,能夠交替地處理使用第一操作模式從外部硬體接收的第一資料以及使用第二操作模式從所述處理器的處理器核心接收的第二資料。所述方法包括:在處理所述第二資料的同時,在所述處理器核心中接收由所述外部硬體產生的中斷信號;回應於所述中斷信號,進行從所述第二操作模式向所述第一操作模式
的上下文切換;在所述第一操作模式期間,直接在所述處理器的暫存器中從所述外部硬體接收所述第一資料而不使用額外的記憶體,其中所述暫存器在所述第一操作模式期間由所述外部硬體控制且在所述第二操作模式期間由所述處理器核心控制。
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)的列表。
在下文中,將參照附圖來闡述本發明概念的實施例。
圖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)及由除第一硬體1300以外的一些來源(例如,第二硬體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 2傳輸到選擇電路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 2傳輸到選擇電路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”等算數運算。使用例如“str”等指令將其運算結果儲存在所述記憶體中的例如“dst”等位址處。
相比之下,在程式碼片段C2的情形中,在資料流模式中,由第一硬體1300產生的資料流直接在暫存器(例如r0或r1)中進行更新以便於在處理器核心1336中操作的軟體中查看。因此,在資料流模式中,無需使用例如“ld”等指令將存在於記憶體中的資料載入到暫存器中,並且使用例如r0或r1等暫存器來直接執行例如“corr”等算數運算。與傳統方案相似,也可使用例如“str”等指令將其運算結果儲存在記憶體中的例如“dst”等位址處。
根據本發明概念的各種實施例,可在硬體(例如,專用硬體)與在處理器上操作的軟體之間高效地傳輸資料而無需使用額外的記憶體裝置。也就是說,為在專用硬體與在處理器上操作的軟體之間傳輸資料,使用已設置在所述處理器中的暫存器便已足夠,且無需提供額外的記憶體。因此,可避免因額外的記憶體而造成的成本增加問題及面積增加問題。
儘管已出於說明目的公開了本發明概念的優選實施例,然而所屬領域中的技術人員將知,在不背離如在隨附權利要求書中所公開的本公開內容的範圍的條件下,可進行各種潤飾、添加及替代。
1:半導體系統/半導體裝置
10:系統晶片
20:記憶體裝置
30:儲存裝置
40:匯流排
100:應用處理器
110:數位訊號處理器
120:多媒體處理器
130:數據機
Claims (19)
- 一種處理器,配置成在包括第一硬體及第二硬體的數據機中使用,且更配置成接收來自所述第一硬體的第一資料與來自所述第二硬體的第二資料中的至少一者,所述處理器包括:處理器核心,配置成直接直接存取暫存器中的資料;所述暫存器,選擇性地在第一操作模式期間由第一硬體控制且在第二操作模式期間由所述處理器核心控制;以及選擇電路,至少在所述第一操作模式期間直接接收由所述第一硬體提供的所述第一資料以及至少在所述第二操作模式期間直接接收由所述處理器核心提供的所述第二資料,其中所述選擇電路配置成在所述第一操作模式期間回應於所述第一硬體產生且提供到所述選擇電路的第一控制信號提供所述第一資料到所述暫存器,並且在所述第二操作模式期間回應於所述處理器核心產生且提供到所述選擇電路的第二控制信號提供所述第二資料到所述暫存器,並且包括:第一多工器,配置成根據所述第一操作模式與所述第二操作模式中的所選擇模式在所述第一資料與所述第二資料之間進行接收及選擇,以輸出第三資料;第二多工器,配置成接收所述第一控制信號以及所述第二控制信號,並回應於所述第一控制信號與所述第二控制信號在所述第一操作模式與所述第二操作模式之間進行選擇,以輸出第三控制信號;以及第三多工器,配置成從所述第一多工器接收所述第三資料 及從所述暫存器接收回饋資料,根據所述第三控制信號在所述第三資料與所述回饋資料之間選擇,並且提供第四資料到所述暫存器,其中所述回饋資料儲存在所述暫存器中。
- 如申請專利範圍第1項所述的處理器,其中在所述第一操作模式期間,所述第一資料由所述第一硬體產生並直接儲存在所述暫存器中而不使用額外的記憶體。
- 如申請專利範圍第1項所述的處理器,其中在將所述第一資料提供到所述暫存器之前,所述第一硬體產生提供到所述處理器核心的中斷信號。
- 如申請專利範圍第3項所述的處理器,其中在所述第二操作模式期間所述處理器核心識別到所述中斷信號時,所述處理器核心執行從所述第二操作模式向所述第一操作模式的上下文切換。
- 如申請專利範圍第4項所述的處理器,其中在所述處理器核心完成所述上下文切換之後,所述第一硬體將所述第一資料提供到所述暫存器。
- 如申請專利範圍第1項所述的處理器,其中在所述第一操作模式期間,所述處理器核心對所述第一資料執行邏輯運算、計算運算、及算數運算中的一種。
- 如申請專利範圍第6項所述的處理器,其中所述第一資料是使用資料流格式提供,且所述暫存器包括起點暫存器及末尾 暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
- 如申請專利範圍第7項所述的處理器,其中所述處理器核心使用所述第一位置值來識別資料流的所述起點並使用所述第二位置值來識別所述資料流的所述末尾。
- 如申請專利範圍第1項所述的處理器,其中所述處理器核心包括應用專用指令集處理器。
- 一種操作處理器的方法,所述處理器包括選擇電路、暫存器及處理器核心,所述處理器配置成在包括第一硬體及第二硬體的數據機中使用,且更配置成接收來自所述第一硬體的第一資料與來自所述第二硬體的第二資料中的至少一者,所述方法包括:在所述處理器操作於在第二操作模式時在所述處理器核心中檢測由所述第一硬體產生的中斷信號,在所述第二操作模式期間中,回應於所述處理器核心產生且提供到所述選擇電路的第二控制信號將所述第二資料提供到所述暫存器;將從所述選擇電路提供的所述第二資料儲存在所述暫存器中;在所述處理器核心中執行上下文切換以將所述處理器從所述第二操作模式切換為第一操作模式,其中在所述第一操作模式期間中,所述暫存器由所述第一硬體控制以儲存所述第一資料;將從所述選擇電路提供的所述第一資料儲存在所述暫存器 中;在所述第一操作模式期間中,回應於所述第一硬體產生且提供到所述選擇電路的第一控制信號將所述第一資料從所述選擇電路提供到所述暫存器;使用所述處理器核心對儲存在所述暫存器中的所述第一資料執行邏輯運算、計算運算、及算數運算中的至少一者而不使用額外的記憶體;且之後,在所述處理器核心中執行上下文切換以將所述處理器從所述第一操作模式切換回所述第二操作模式。
- 如申請專利範圍第10項所述的操作處理器的方法,其中在所述處理器核心完成從所述第二操作模式向所述第一操作模式的所述上下文切換之後,所述第一硬體提供所述第一資料。
- 如申請專利範圍第10項所述的操作處理器的方法,其中在所述第一操作模式期間,所述第一資料是由所述第一硬體以資料流格式提供。
- 如申請專利範圍第12項所述的操作處理器的方法,其中所述暫存器包括起點暫存器及末尾暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
- 如申請專利範圍第13項所述的操作處理器的方法,其中所述處理器核心使用所述起點暫存器識別所述第一資料的所述起點且使用所述末尾暫存器識別所述第一資料的所述末尾。
- 一種操作處理器的方法,所述處理器包括選擇電路、暫存器及處理器核心,所述處理器配置成在包括第一硬體及第二硬體的數據機中使用,且更配置成接收來自所述第一硬體的第一資料與來自所述第二硬體的第二資料中的至少一者,所述方法包括:在處理所述第二資料的同時,在所述處理器核心中接收由所述第一硬體產生的中斷信號;回應於所述中斷信號,在所述處理器核心中執行上下文切換以將所述處理器從所述第二操作模式切換為所述第一操作模式;回應於由所述第一硬體提供到所述選擇電路的第一控制信號從所述選擇電路提供所述第一資料以儲存在所述暫存器中;回應於由所述處理器核心提供到所述選擇電路的第二控制信號從所述選擇電路提供所述第二資料以儲存在所述暫存器中;使用所述處理器核心對儲存在所述暫存器中的所述第一資料執行邏輯運算、計算運算、及算數運算中的至少一者而不使用額外的記憶體;然後在所述處理器核心中執行上下文切換以將所述處理器從所述第一操作模式切換回所述第二操作模式,其中所述處理器核心直接存取所述暫存器而不使用所述額外的記憶體,在所述第二操作模式期間,所述處理器核心控制所述暫存器,並且所述第二硬體直接提供所述第二資料到所述處理器,以及在所述第一操作模式期間,所述第一硬體控制所述暫存器,並 且所述第一硬體從所述處理器直接提供所述第一資料。
- 如申請專利範圍第15項所述的操作處理器的方法,其中所述暫存器是回應於提供到所述處理器的選擇電路的所述第一控制信號而由所述第一硬體控制以及回應於提供到所述選擇電路的所述第二控制信號而由所述處理器核心控制,所述選擇電路回應於模式信號而在所述第一控制信號與所述第二控制信號之間進行選擇,所述模式信號指示所述第一操作模式與所述第二操作模式中的一者。
- 如申請專利範圍第15項所述的操作處理器的方法,其中所述第一資料由所述第一硬體根据資料流格式提供。
- 如申請專利範圍第17項所述的操作處理器的方法,其中所述暫存器包括起點暫存器及末尾暫存器,所述起點暫存器儲存指示所述第一資料的起點的第一位置值,所述末尾暫存器儲存指示所述第一資料的末尾的第二位置值。
- 如申請專利範圍第18項所述的操作處理器的方法,其中所述處理器核心使用所述第一位置值來識別資料流的所述起點並使用所述第二位置值來識別所述資料流的所述末尾。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2017-0001215 | 2017-01-04 | ||
??10-2017-0001215 | 2017-01-04 | ||
KR1020170001215A KR20180080463A (ko) | 2017-01-04 | 2017-01-04 | 반도체 장치 및 반도체 장치의 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201826114A TW201826114A (zh) | 2018-07-16 |
TWI766891B true 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) | KR20180080463A (zh) |
CN (1) | CN108268280B (zh) |
TW (1) | TWI766891B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI703500B (zh) * | 2019-02-01 | 2020-09-01 | 睿寬智能科技有限公司 | 可縮短內文交換時間之方法及其半導體裝置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517664A (en) * | 1986-04-14 | 1996-05-14 | Hitachi, Ltd. | RISC system with instructions which include register area and displacement portions for accessing data stored in registers during processing |
US20060218378A1 (en) * | 2005-03-25 | 2006-09-28 | Seiko Epson Corporation | Integrated circuit device |
TW200813724A (en) * | 2006-07-28 | 2008-03-16 | Samsung Electronics Co Ltd | Multipath accessible semiconductor memory device with host interface between processors |
TW201202961A (en) * | 2010-03-15 | 2012-01-16 | Sharp Kk | Semiconductor integrated circuit and electronic information device |
TW201246081A (en) * | 2011-01-25 | 2012-11-16 | Micron Technology Inc | Method and apparatus for compiling regular expressions |
US20140164725A1 (en) * | 2012-12-06 | 2014-06-12 | Samsung Electronics Co., Ltd. | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 株式会社日立製作所 | データストリーム処理装置 |
JP2007109038A (ja) | 2005-10-14 | 2007-04-26 | Seiko Epson Corp | データ処理装置 |
KR20070080493A (ko) | 2006-02-07 | 2007-08-10 | 삼성전자주식회사 | 하드웨어 폴링 처리기를 포함한 데이터 처리 시스템 |
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 |
EP2437161A1 (en) * | 2010-10-01 | 2012-04-04 | Intel Mobile Communications Technology Dresden GmbH | Hardware accelerator module and method for setting up same |
US8683175B2 (en) | 2011-03-15 | 2014-03-25 | International Business Machines Corporation | Seamless interface for multi-threaded core accelerators |
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 |
-
2017
- 2017-01-04 KR KR1020170001215A patent/KR20180080463A/ko active Search and Examination
- 2017-09-28 US US15/718,486 patent/US10628159B2/en active Active
- 2017-10-11 TW TW106134772A patent/TWI766891B/zh active
-
2018
- 2018-01-03 CN CN201810005959.2A patent/CN108268280B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5517664A (en) * | 1986-04-14 | 1996-05-14 | Hitachi, Ltd. | RISC system with instructions which include register area and displacement portions for accessing data stored in registers during processing |
US20060218378A1 (en) * | 2005-03-25 | 2006-09-28 | Seiko Epson Corporation | Integrated circuit device |
TW200813724A (en) * | 2006-07-28 | 2008-03-16 | Samsung Electronics Co Ltd | Multipath accessible semiconductor memory device with host interface between processors |
TW201202961A (en) * | 2010-03-15 | 2012-01-16 | Sharp Kk | Semiconductor integrated circuit and electronic information device |
TW201246081A (en) * | 2011-01-25 | 2012-11-16 | Micron Technology Inc | Method and apparatus for compiling regular expressions |
US20140164725A1 (en) * | 2012-12-06 | 2014-06-12 | Samsung Electronics Co., Ltd. | System on chip to perform a secure boot, an image forming apparatus using the same, and method thereof |
Also Published As
Publication number | Publication date |
---|---|
US10628159B2 (en) | 2020-04-21 |
CN108268280B (zh) | 2023-07-21 |
TW201826114A (zh) | 2018-07-16 |
KR20180080463A (ko) | 2018-07-12 |
CN108268280A (zh) | 2018-07-10 |
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 | |
JP6807383B2 (ja) | 転送プレフィックス命令 | |
JP6633119B2 (ja) | 自律的メモリの方法及びシステム | |
US9342478B2 (en) | Processor with reconfigurable architecture including a token network simulating processing of processing elements | |
US11721373B2 (en) | Shared multi-port memory from single port | |
JP2007034392A (ja) | 情報処理装置及びデータ処理方法 | |
TWI766891B (zh) | 半導體裝置的處理器與其操作方法 | |
JP2013092852A (ja) | バス接続回路、半導体装置及びバス接続回路の動作方法 | |
WO2009098737A1 (ja) | 外部デバイスアクセス装置、その制御方法及びシステムlsi | |
JP2005293596A (ja) | データ要求のアービトレーション | |
JP2003196246A (ja) | データ処理システム、アレイ型プロセッサ、データ処理装置、コンピュータプログラム、情報記憶媒体 | |
US10997087B2 (en) | Direct memory access | |
US11435928B2 (en) | Calculation processing apparatus and information processing system | |
US9886276B2 (en) | System register access | |
US9251887B2 (en) | Static random access memory system and operation method thereof | |
JP2573711B2 (ja) | マイクロサブルーチン制御方式 | |
JP2011150636A (ja) | マイクロプロセッサ及びその制御方法 | |
JPH04137138A (ja) | 情報処理装置 | |
JP2000347981A (ja) | チャネルマイクロプログラム処理装置 | |
JPH11282676A (ja) | 演算処理方法およびマイクロプロセッサ装置 | |
JPS63188233A (ja) | 中央演算処理装置 | |
JPH03168832A (ja) | 分散型マイクロプログラム制御方式 | |
JPH03252728A (ja) | マイクロプロセッサ割込み制御方式 | |
JPS6247745A (ja) | マイクロプログラム制御方式 | |
JPH03210636A (ja) | マイクロプログラム制御装置 |