TWI816032B - Multi-core processor circuit - Google Patents
Multi-core processor circuit Download PDFInfo
- Publication number
- TWI816032B TWI816032B TW109112108A TW109112108A TWI816032B TW I816032 B TWI816032 B TW I816032B TW 109112108 A TW109112108 A TW 109112108A TW 109112108 A TW109112108 A TW 109112108A TW I816032 B TWI816032 B TW I816032B
- Authority
- TW
- Taiwan
- Prior art keywords
- processor
- core
- processor cores
- circuit
- cores
- Prior art date
Links
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/25—Pc structure of the system
- G05B2219/25257—Microcontroller
Abstract
Description
本發明是有關於一種處理器電路,且特別是有關於一種多核心處理器電路。The present invention relates to a processor circuit, and in particular to a multi-core processor circuit.
由於電子技術的進步,透過使用多核處理器可以實現更高的計算複雜性。為了降低晶片的成本,多核心設計中通常需要共享記憶體架構。常規的多核心記憶體共享設計需要仲裁器中的額外成本,尤其是程式記憶體和資料記憶體。於是,為共享程式記憶體和用於多核心設計的資料記憶體提出了一種新的架構,以透過使用分時共享方法,不存在記憶體仲裁器的開銷。Due to advances in electronic technology, higher computational complexity can be achieved through the use of multi-core processors. In order to reduce the cost of the chip, a shared memory architecture is often required in multi-core designs. Conventional multi-core memory sharing designs require additional costs in the arbiter, especially program memory and data memory. Therefore, a new architecture is proposed for shared program memory and data memory for multi-core designs, so that by using a time-sharing sharing method, there is no memory arbiter overhead.
本發明提供一種多核心處理器電路,可省略記憶體仲裁器的開銷。The invention provides a multi-core processor circuit that can omit the overhead of a memory arbiter.
本發明的多核心處理器電路,包括多個處理器核心、程式記憶體、第一匯流排、資料記憶體及第二匯流排。程式記憶體用以儲存至少一程式指令。第一匯流排耦接於這些處理器核心與程式記憶體之間。資料記憶體用以儲存至少一程式資料。第二匯流排耦接於多個處理器核心與資料記憶體之間。其中,這些處理器核心逐個被致能以存取程式記憶體及資料記憶體,且其餘的處理器核心被關閉。The multi-core processor circuit of the present invention includes a plurality of processor cores, a program memory, a first bus, a data memory and a second bus. The program memory is used to store at least one program instruction. The first bus is coupled between the processor cores and the program memory. The data memory is used to store at least one program data. The second bus is coupled between the plurality of processor cores and the data memory. Among them, these processor cores are enabled one by one to access program memory and data memory, and the remaining processor cores are turned off.
基於上述,本發明實施例的多核心處理器電路,其中多個處理器核心不會同時運行,因此這些處理器核心與程序記憶體或資料記憶體的存取永遠不會發生衝突。因此,不需要額外的仲裁程序設計來協調程序記憶體和資料記憶體。Based on the above, in the multi-core processor circuit of the embodiment of the present invention, multiple processor cores will not run at the same time, so access conflicts between these processor cores and program memory or data memory will never occur. Therefore, no additional arbitration program design is required to coordinate program memory and data memory.
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。In order to make the above-mentioned features and advantages of the present invention more obvious and easy to understand, embodiments are given below and described in detail with reference to the accompanying drawings.
圖1為依據本發明一實施例的多核心處理器電路的示意圖。請參照圖1,在本實施例中,多核心處理器電路100包括多個處理器核心110_1~110_n、程式記憶體120、第一匯流排130、資料記憶體140、第二匯流排150、控制電路160及時脈產生器170,其中程式記憶體120用以儲存至少一程式指令INST,並且資料記憶體140用以儲存至少一程式資料DATA。其中,n為二以上的正整數。FIG. 1 is a schematic diagram of a multi-core processor circuit according to an embodiment of the present invention. Please refer to Figure 1. In this embodiment, the multi-core processor circuit 100 includes a plurality of processor cores 110_1~110_n, a program memory 120, a first bus 130, a data memory 140, a second bus 150, a control The circuit 160 and the clock generator 170, wherein the program memory 120 is used to store at least one program instruction INST, and the data memory 140 is used to store at least one program data DATA. Among them, n is a positive integer greater than two.
第一匯流排130,耦接於這些處理器核心110_1~110_n與程式記憶體120之間,並且第二匯流排150,耦接於這些處理器核心110_1~110_n與資料記憶體140之間。控制電路160耦接處理器核心110_1~110_n,以逐個致能這些處理器核心110_1~110_n,並且關閉其餘的處理器核心110_1~110_n。接著,當處理器核心110_1~110_n的其中之一被致能後,被致能的處理器核心110_1~110_n可以正常運作以存取程式記憶體120及資料記憶體140。其中,致能的處理器核心110_1~110_n可透過第一匯流排130存取程式記憶體120及/或透過第二匯流排150存取資料記憶體140。The first bus 130 is coupled between the processor cores 110_1 ~ 110_n and the program memory 120 , and the second bus 150 is coupled between the processor cores 110_1 ~ 110_n and the data memory 140 . The control circuit 160 is coupled to the processor cores 110_1 ~ 110_n to enable these processor cores 110_1 ~ 110_n one by one, and turn off the remaining processor cores 110_1 ~ 110_n. Then, when one of the processor cores 110_1 ~ 110_n is enabled, the enabled processor cores 110_1 ~ 110_n can operate normally to access the program memory 120 and the data memory 140 . Among them, the enabled processor cores 110_1 ~ 110_n can access the program memory 120 through the first bus 130 and/or access the data memory 140 through the second bus 150 .
進一步來說,時脈產生器170用以產生操作時脈CLK至控制電路160,並且控制電路160僅將操作時脈CLK提供至被致能的處理器核心110_1~110_n,而其餘的處理器核心110_1~110_n不會接收到操作時脈CLK。在致能的處理器核心110_1~110_n的致能期間(亦即所分配的操作期間)結束後,控制電路160會將操作時脈CLK提供至下一個被致能的處理器核心110_1~110_n。Furthermore, the clock generator 170 is used to generate the operating clock CLK to the control circuit 160, and the control circuit 160 only provides the operating clock CLK to the enabled processor cores 110_1~110_n, while the remaining processor cores 110_1~110_n will not receive the operating clock CLK. After the enabling period (ie, the allocated operation period) of the enabled processor cores 110_1 ~ 110_n ends, the control circuit 160 will provide the operating clock CLK to the next enabled processor core 110_1 ~ 110_n.
在本發明實施例中,控制電路160包括計數器161及多個暫存器A~N,其中暫存器A~N個別與這些處理器核心110_1~110_n對應,用以決定處理器核心110_1~110_n個別的致能期間。換言之,暫存器A~N中所儲存的值決定處理器核心110_1~110_n個別的致能期間。並且,處理器核心110_1~110_n個別的致能期間TA、TB決定於各個處理器核心110_1~110_n的性質,亦即相同性質的處理器核心110_1~110_n可具有相同時間長度的致能期間,並且不同性質的處理器核心110_1~110_n可具有不同時間長度的致能期間。此外,具有簡單處理任務的處理器核心110_1~110_n可具有較短時間的致能期間,並且具有複雜處理任務的處理器核心110_1~110_n可具有較長時間的致能期間。亦即,處理器核心110_1~110_n的致能期間可取決於任務複雜性和每個處理器核心110_1~110_n的計算能力。In the embodiment of the present invention, the control circuit 160 includes a counter 161 and a plurality of temporary registers A~N, where the temporary registers A~N respectively correspond to the processor cores 110_1~110_n, and are used to determine the processor cores 110_1~110_n. Individual enabling periods. In other words, the values stored in the registers A~N determine the individual enabling periods of the processor cores 110_1~110_n. Moreover, the individual enablement periods TA and TB of the processor cores 110_1 ~ 110_n are determined by the properties of each processor core 110_1 ~ 110_n, that is, the processor cores 110_1 ~ 110_n with the same properties can have the same length of enablement period, and Processor cores 110_1~110_n of different natures may have enabling periods of different lengths. In addition, the processor cores 110_1 ~ 110_n with simple processing tasks may have a shorter enablement period, and the processor cores 110_1 ~ 110_n with complex processing tasks may have a longer enablement period. That is, the enabling period of the processor cores 110_1 ~ 110_n may depend on the task complexity and the computing power of each processor core 110_1 ~ 110_n.
計數器161用以計數這些處理器核心110_1~110_n的致能期間。進一步來說,計數器161依據操作時脈CLK進行計數,在控制電路160改變操作時脈CLK的提供至的處理器核心110_1~110_n時重置,且接著依據操作時脈CLK進行計數,並且在計數器161的值達到對應的暫存器A~N中所儲存的值時,將操作時脈CLK提供至下一處理器核心110_1~110_n。The counter 161 is used to count the enabling periods of these processor cores 110_1~110_n. Further, the counter 161 counts according to the operation clock CLK, is reset when the control circuit 160 changes the processor cores 110_1˜110_n to which the operation clock CLK is supplied, and then counts according to the operation clock CLK, and when the counter When the value of 161 reaches the value stored in the corresponding register A~N, the operating clock CLK is provided to the next processor core 110_1~110_n.
圖2為依據本發明一實施例的多核心處理器電路的時序示意圖。請參照圖1及圖2,在本實施例中,是以兩個處理器核心110_1及110_2為例,並且處理器核心110_1的致能期間為TA(對應暫存器A),處理器核心110_2的致能期間為TB(對應暫存器B)。在此,一個總體循環期間可以為TA+TB。並且,假設處理器核心110_1具有簡單的處理任務,因此具有較短時間的致能期間TA,並且假設處理器核心110_2具有複雜的處理任務,因此具有較長時間的致能期間TB。FIG. 2 is a timing diagram of a multi-core processor circuit according to an embodiment of the present invention. Please refer to Figure 1 and Figure 2. In this embodiment, two processor cores 110_1 and 110_2 are taken as an example, and the enabling period of the processor core 110_1 is TA (corresponding to the register A), and the processor core 110_2 The enabling period is TB (corresponding to register B). Here, one overall cycle period may be TA+TB. Furthermore, it is assumed that the processor core 110_1 has a simple processing task and therefore has a short enabling period TA, and it is assumed that the processor core 110_2 has a complex processing task and therefore has a long enabling period TB.
在致能期間TA開始時,計數器161被重置,且接著進行計數。當計數器161的值等於暫存器A所儲存的值時,代表致能期間TA到達結束時間點,此時控制電路160會將操作時脈CLK提供至處理器核心110_2。在致能期間TA,處理器核心110_1依序執行讀取程式記憶體120的操作循環PM及讀取資料記憶體140的操作循環DM,其中操作循環PM及DM的數量為用以說明,本發明實施例不以此為限。At the beginning of the enable period TA, the counter 161 is reset and counting continues. When the value of the counter 161 is equal to the value stored in the register A, it means that the enable period TA reaches the end time point. At this time, the control circuit 160 will provide the operating clock CLK to the processor core 110_2. During the enabling period TA, the processor core 110_1 sequentially executes the operation cycle PM for reading the program memory 120 and the operation cycle DM for reading the data memory 140. The number of the operation cycles PM and DM is for illustration. The embodiment is not limited to this.
接著,在致能期間TB開始時,計數器161會再被重置,且接著進行計數。當計數器161的值等於暫存器B所儲存的值時,代表致能期間TB到達結束時間點,此時控制電路160會將操作時脈CLK再提供至處理器核心110_1。在致能期間TB,處理器核心110_2同樣會依序執行讀取程式記憶體120的操作循環PM及讀取資料記憶體140的操作循環DM。Then, when the enable period TB starts, the counter 161 is reset again and continues counting. When the value of the counter 161 is equal to the value stored in the register B, it means that the enabling period TB reaches the end time point. At this time, the control circuit 160 will provide the operating clock CLK to the processor core 110_1 again. During the enabling period TB, the processor core 110_2 will also sequentially execute the operation cycle PM for reading the program memory 120 and the operation cycle DM for reading the data memory 140 .
在以兩個處理器核心110_1及110_2的實施例中,處理器核心110_1對應的暫存器A可以設置為1200,處理器核心110_2對應的暫存器B可以設置為1200,亦即處理器核心110_1及110_2的致能期間的比率可以為1:1。另一實施中,處理器核心110_1對應的暫存器A可以設置為2400,處理器核心110_2對應的暫存器B可以設置為2400,亦即處理器核心110_1及110_2的致能期間的比率仍可以為1:1。在本發明實施例中,取決於任務的複雜性和每個處理器核心的計算能力,即使處理器核心的致能期間的比率相同,也可以設置得更靈活。In an embodiment with two processor cores 110_1 and 110_2, the register A corresponding to the processor core 110_1 can be set to 1200, and the register B corresponding to the processor core 110_2 can be set to 1200, that is, the processor core The ratio of the enabling periods of 110_1 and 110_2 may be 1:1. In another implementation, the register A corresponding to the processor core 110_1 can be set to 2400, and the register B corresponding to the processor core 110_2 can be set to 2400, that is, the ratio of the enabling periods of the processor cores 110_1 and 110_2 is still It can be 1:1. In embodiments of the present invention, depending on the complexity of the task and the computing power of each processor core, even if the ratio of the enabling period of the processor core is the same, it can be set more flexibly.
綜上所述,本發明實施例的多核心處理器電路,其中多個處理器核心不會同時運行,因此這些處理器核心與程序記憶體或資料記憶體的存取永遠不會發生衝突。因此,不需要額外的仲裁程序設計來協調程序記憶體和資料記憶體。透過設定暫存器內所儲存的值,多核心處理器電路於時間共享上的另一個優點是時間共享的靈活性。To sum up, in the multi-core processor circuit according to the embodiment of the present invention, multiple processor cores will not run at the same time, so there will never be a conflict in access between these processor cores and program memory or data memory. Therefore, no additional arbitration program design is required to coordinate program memory and data memory. Another advantage of multi-core processor circuits in time sharing is the flexibility of time sharing by setting the values stored in the register.
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。Although the present invention has been disclosed above through embodiments, they are not intended to limit the present invention. Anyone with ordinary knowledge in the technical field may make some modifications and modifications without departing from the spirit and scope of the present invention. Therefore, The protection scope of the present invention shall be determined by the appended patent application scope.
100:多核心處理器電路 110_1~110_n:處理器核心 120:程式記憶體 130:第一匯流排 140:資料記憶體 150:第二匯流排 160:控制電路 161:計數器 170:時脈產生器 A~N:暫存器 CLK:操作時脈 DATA:程式資料 INST:程式指令 PM、DM:操作循環 TA、TB:致能期間100:Multi-core processor circuit 110_1~110_n: Processor core 120:Program memory 130:First bus 140:Data memory 150: Second bus 160:Control circuit 161:Counter 170: Clock generator A~N: temporary register CLK: operating clock DATA: program data INST: program instruction PM, DM: operation cycle TA, TB: enabling period
圖1為依據本發明一實施例的多核心處理器電路的示意圖。 圖2為依據本發明一實施例的多核心處理器電路的時序示意圖。FIG. 1 is a schematic diagram of a multi-core processor circuit according to an embodiment of the present invention. FIG. 2 is a timing diagram of a multi-core processor circuit according to an embodiment of the present invention.
100:多核心處理器電路100:Multi-core processor circuit
110_1~110_n:處理器核心110_1~110_n: Processor core
120:程式記憶體120:Program memory
130:第一匯流排130:First bus
140:資料記憶體140:Data memory
150:第二匯流排150: Second bus
160:控制電路160:Control circuit
161:計數器161:Counter
170:時脈產生器170: Clock generator
A~N:暫存器A~N: temporary register
CLK:操作時脈CLK: operating clock
DATA:程式資料DATA: program data
INST:程式指令INST: program instruction
Claims (10)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112108A TWI816032B (en) | 2020-04-10 | 2020-04-10 | Multi-core processor circuit |
CN202110330711.5A CN113515063B (en) | 2020-04-10 | 2021-03-26 | Multi-core processor circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW109112108A TWI816032B (en) | 2020-04-10 | 2020-04-10 | Multi-core processor circuit |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202139002A TW202139002A (en) | 2021-10-16 |
TWI816032B true TWI816032B (en) | 2023-09-21 |
Family
ID=78062071
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109112108A TWI816032B (en) | 2020-04-10 | 2020-04-10 | Multi-core processor circuit |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113515063B (en) |
TW (1) | TWI816032B (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367678A (en) * | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
US5838931A (en) * | 1994-12-08 | 1998-11-17 | Intel Corporation | Method and apparatus for enabling a processor to access an external component through a private bus or a shared bus |
US7237071B2 (en) * | 2001-12-20 | 2007-06-26 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system with arbitration control of access to shared resources |
US20130031327A1 (en) * | 2011-07-28 | 2013-01-31 | Yung Chang | System and method for allocating cache memory |
US9009512B2 (en) * | 2010-12-22 | 2015-04-14 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
TWI599887B (en) * | 2013-01-17 | 2017-09-21 | 英特爾公司 | Arbitrating memory accesses via a shared memory fabric |
US20170351441A1 (en) * | 2016-06-06 | 2017-12-07 | Vmware, Inc. | Non-blocking flow control in multi-processing-entity systems |
TW201830388A (en) * | 2017-01-06 | 2018-08-16 | 美商高通公司 | Coincident memory bank access via cross-connected shared bank resources |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691216B2 (en) * | 2000-11-08 | 2004-02-10 | Texas Instruments Incorporated | Shared program memory for use in multicore DSP devices |
JP4222803B2 (en) * | 2002-09-11 | 2009-02-12 | Necエレクトロニクス株式会社 | Data processing apparatus and data processing circuit |
JP2006345011A (en) * | 2005-06-07 | 2006-12-21 | Sony Corp | Communication apparatus |
CN103092570A (en) * | 2011-10-31 | 2013-05-08 | 佑华微电子股份有限公司 | Single-chip dual-core microprocessor architecture for parallelly processing programs from single program memory |
US9471133B2 (en) * | 2013-08-28 | 2016-10-18 | Via Technologies, Inc. | Service processor patch mechanism |
GB2542853B (en) * | 2015-10-02 | 2021-12-15 | Cambridge Consultants | Processing apparatus and methods |
CN107329810B (en) * | 2016-04-28 | 2023-09-08 | 恩智浦美国有限公司 | Semaphore for multi-core processor |
-
2020
- 2020-04-10 TW TW109112108A patent/TWI816032B/en active
-
2021
- 2021-03-26 CN CN202110330711.5A patent/CN113515063B/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367678A (en) * | 1990-12-06 | 1994-11-22 | The Regents Of The University Of California | Multiprocessor system having statically determining resource allocation schedule at compile time and the using of static schedule with processor signals to control the execution time dynamically |
US5838931A (en) * | 1994-12-08 | 1998-11-17 | Intel Corporation | Method and apparatus for enabling a processor to access an external component through a private bus or a shared bus |
US7237071B2 (en) * | 2001-12-20 | 2007-06-26 | Texas Instruments Incorporated | Embedded symmetric multiprocessor system with arbitration control of access to shared resources |
US9009512B2 (en) * | 2010-12-22 | 2015-04-14 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US20130031327A1 (en) * | 2011-07-28 | 2013-01-31 | Yung Chang | System and method for allocating cache memory |
TWI599887B (en) * | 2013-01-17 | 2017-09-21 | 英特爾公司 | Arbitrating memory accesses via a shared memory fabric |
US20170351441A1 (en) * | 2016-06-06 | 2017-12-07 | Vmware, Inc. | Non-blocking flow control in multi-processing-entity systems |
TW201830388A (en) * | 2017-01-06 | 2018-08-16 | 美商高通公司 | Coincident memory bank access via cross-connected shared bank resources |
Also Published As
Publication number | Publication date |
---|---|
TW202139002A (en) | 2021-10-16 |
CN113515063A (en) | 2021-10-19 |
CN113515063B (en) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9971635B2 (en) | Method and apparatus for a hierarchical synchronization barrier in a multi-node system | |
EP0515165B1 (en) | A Memory access device | |
JPS58151631A (en) | Dma bus load varying device | |
WO1983001133A1 (en) | Microprocessor with memory having interleaved address inputs and interleaved instruction and data outputs | |
TW201638771A (en) | Microcontroller device with multiple independent microcontrollers | |
TWI816032B (en) | Multi-core processor circuit | |
CN114995587B (en) | Clock signal obtaining method, device, chip and storage medium | |
CN114706813B (en) | Multi-core heterogeneous system-on-chip, asymmetric synchronization method, computing device and medium | |
US6691182B2 (en) | DMA controller in which bus access ratio can be set | |
EP3591518B1 (en) | Processor and instruction scheduling method | |
US20160253286A1 (en) | Program profiler circuit, processor, and program counting method | |
JP3562215B2 (en) | Microcomputer and electronic equipment | |
US9627014B2 (en) | Multiple port shared memory | |
Prakash et al. | Custom instructions with local memory elements without expensive DMA transfers | |
EP4145277A1 (en) | Data processing device, chip, and data processing method | |
JP2011076584A (en) | Semiconductor integrated circuit device | |
Tse et al. | ASYNMPU: a fully asynchronous CISC microprocessor | |
May | XMOS XS1 Architecture | |
JPH03161883A (en) | Microprocessor | |
JP2004110742A (en) | Dma (direct memory access) controller | |
JP2013077216A (en) | Processor | |
JPS62166463A (en) | Data transfer system | |
JP2021005327A (en) | Information processing apparatus | |
JPH0436883A (en) | Microprocessor and output port | |
JPH03278158A (en) | Wait cycle controller |