CN108268280A - 半导体装置的处理器及其操作方法 - Google Patents

半导体装置的处理器及其操作方法 Download PDF

Info

Publication number
CN108268280A
CN108268280A CN201810005959.2A CN201810005959A CN108268280A CN 108268280 A CN108268280 A CN 108268280A CN 201810005959 A CN201810005959 A CN 201810005959A CN 108268280 A CN108268280 A CN 108268280A
Authority
CN
China
Prior art keywords
data
processor
register
operator scheme
semiconductor device
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201810005959.2A
Other languages
English (en)
Other versions
CN108268280B (zh
Inventor
尹知镛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN108268280A publication Critical patent/CN108268280A/zh
Application granted granted Critical
Publication of CN108268280B publication Critical patent/CN108268280B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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; 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/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; 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
    • 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • 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/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; 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/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; 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

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

半导体装置的处理器及其操作方法
本申请主张2017年1月4日提出申请的韩国专利申请第10-2017-0001215号的优先权,所述韩国专利申请的主题并入本文供参考。
技术领域
本发明概念涉及一种半导体装置及其操作方法。
背景技术
一般来说,为使软件存取从例如硬件加速器或硬件预处理器等专用硬件产生的数据,需要用于临时存储数据的临时存储空间。从硬件产生的数据可记录在临时存储空间中且接着被软件读取。
举例来说,在用于产生数据流的专用硬件与在处理器上运行的用于存取由所述专用硬体产生的所述数据流的软体之间设置例如静态随机存取存储器(static randomaccess memory,SRAM)等存储器装置,且所述存储器装置可用于临时存储从所述专用硬件产生的数据流,从而使得所述数据流可被所述软件读取。
然而,由于此种在专用硬件与软件之间传输数据的方法需要额外的存储器装置,因此成本增加,且在电路上需要用于安装存储器装置的区域。为解决此问题,需要在专用硬件与在处理器上操作的软件之间高效地交换数据。
发明内容
在一些方面中,本发明概念提供一种能够在外部硬件与在处理器上操作的软件之间高效地传送数据而不使用额外的存储器装置的半导体装置的处理器及/或操作所述处理器的方法。
在一个方面中,本发明概念提供一种半导体装置的处理器,所述处理器包括:处理器核心;寄存器,选择性地在第一操作模式期间由外部硬件控制或者在第二操作模式期间由所述处理器核心控制;以及选择电路,接收在所述第一操作模式期间由所述外部硬件提供到所述寄存器的第一数据以及在所述第二操作模式期间由所述处理器核心提供到所述寄存器的第二数据。
在另一方面中,本发明概念提供一种操作半导体装置的处理器的方法,所述方法包括:检测在第二操作模式期间由外部硬件产生的中断信号,在所述第二操作模式中,由所述处理器的处理器核心直接控制寄存器且接收到第二数据;执行从所述第二操作模式向第一操作模式的上下文切换,在所述第一操作模式中,由外部硬件控制所述寄存器且接收到第一数据;对由所述外部硬件直接存储在所述寄存器中而不使用额外的存储器的所述第一数据执行逻辑运算、计算运算、及算术运算中的一种;且之后,执行从所述第一操作模式向所述第二操作模式的上下文切换。
在另一方面中,本发明概念提供一种操作半导体装置的处理器的方法,能够交替地处理使用第一操作模式从外部硬件接收的第一数据以及使用第二操作模式从所述处理器的处理器核心接收的第二数据。所述方法包括:在处理所述第二数据的同时,在所述处理器核心中接收由所述外部硬件产生的中断信号;响应于所述中断信号,进行从所述第二操作模式向所述第一操作模式的上下文切换;在所述第一操作模式期间,直接在所述处理器的寄存器中从所述外部硬件接收所述第一数据而不使用额外的存储器,其中所述寄存器在所述第一操作模式期间由所述外部硬件控制且在所述第二操作模式期间由所述处理器核心控制。
附图说明
藉由参照附图详细阐述本发明概念的示例性实施例,本发明概念的以上及其他方面及特征将变得更显而易见,在附图中:
图1是说明使用根据本发明概念实施例的半导体装置的半导体系统的方块图。
图2是用于说明根据本发明概念实施例的半导体装置的方块图。
图3是进一步说明根据本发明概念实施例的半导体装置的处理器的方块图。
图4是进一步说明根据本发明概念实施例的半导体装置的选择电路的方块图。
图5是说明根据本发明概念实施例的半导体装置的操作实例的时序图。
图6是进一步说明根据本发明概念另一实施例的半导体装置的处理器的方块图。
图7是进一步说明根据本发明概念另一实施例的半导体装置的选择电路的方块图。
图8是说明根据本发明概念另一实施例的半导体装置的操作实例的时序图。
图9是阐述操作根据本发明概念实施例的半导体装置的方法的流程图。
图10是根据本发明概念各种实施例的能够执行算术运算的程序代码段(programcode segment)的列表。
[符号的说明]
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:第三控制信号;
DATA1:第一数据;
DATA2:第二数据;
DATA3:第三数据;
DATA 4:第四数据;
DATA 5:反馈数据;
INT:中断信号;
MODE:模式信号;
S901、S903、S905、S907、S909、S911、S913、S915:操作;
t1、t2、t3、t4、t5、t6、t7、t8、t9:时间。
具体实施方式
在下文中,将参照附图来阐述本发明概念的实施例。
图(FIG.)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)、固态驱动器(solidstate 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接收第一数据(DATA1)。此处,处理器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 setprocessor,ASIP),但本公开内容的范围并非仅限于此。
此后将阐述第一硬件1300、选择电路1332、寄存器1334及处理器核心1336之间的各种操作及中间操作。
举例来说,当在第一操作模式期间由第一硬件1300提供的第一数据(DATA1)从第一硬件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的操作模式而在第一数据(DATA1)与第二数据(DATA 2)之间进行选择,并输出第三数据(DATA 3)。
在第一硬件1300控制寄存器1334的第一操作模式期间,第一多路复用器选择第一数据(DATA 1)并输出第一数据(DATA 1)作为第三数据(DATA 3)。作为另外一种选择,在处理器核心1336控制寄存器1334的第二操作模式期间,第一多路复用器选择第二数据(DATA2)并输出此第二数据(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将第一数据(DATA1)写入到寄存器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在以数据流格式提供第一数据(DATA1)之前产生中断信号(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),并接着在数据流模式中对第一数据(DATA1)执行逻辑运算、计算运算及/或算术运算(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”等地址处。
根据本发明概念的各种实施例,可在硬件(例如,专用硬件)与在处理器上操作的软件之间高效地传输数据而无需使用额外的存储器装置。也就是说,为在专用硬件与在处理器上操作的软件之间传输数据,使用已设置在所述处理器中的寄存器便已足够,且无需提供额外的存储器。因此,可避免因额外的存储器而造成的成本增加问题及面积增加问题。
尽管已出于说明目的公开了本发明概念的优选实施例,然而所属领域中的技术人员将知,在不背离如在随附权利要求书中所公开的本公开内容的范围的条件下,可进行各种润饰、添加及替代。

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.根据权利要求18所述操作半导体装置的处理器的方法,其特征在于,所述寄存器包括起点寄存器及末尾寄存器,所述起点寄存器存储指示所述第一数据的起点的第一位置值,所述末尾寄存器存储指示所述第一数据的末尾的第二位置值。
20.根据权利要求19所述操作半导体装置的处理器的方法,其特征在于,所述处理器核心使用所述第一位置值来识别数据流的所述起点并使用所述第二位置值来识别所述数据流的所述末尾。
CN201810005959.2A 2017-01-04 2018-01-03 半导体装置的处理器及其操作方法 Active CN108268280B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN108268280A true CN108268280A (zh) 2018-07-10
CN108268280B CN108268280B (zh) 2023-07-21

Family

ID=62712337

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810005959.2A Active CN108268280B (zh) 2017-01-04 2018-01-03 半导体装置的处理器及其操作方法

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)

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

Citations (6)

* Cited by examiner, † Cited by third party
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
US20060218378A1 (en) * 2005-03-25 2006-09-28 Seiko Epson Corporation Integrated circuit device
US20090300629A1 (en) * 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
CN102446085A (zh) * 2010-10-01 2012-05-09 英特尔移动通信技术德累斯顿有限公司 硬件加速器模块及其设置方法
CN102473115A (zh) * 2009-08-13 2012-05-23 高通股份有限公司 用于高效数据处理的装置和方法
CN106055308A (zh) * 2015-04-04 2016-10-26 德州仪器公司 用于低能加速器处理器架构的设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2545789B2 (ja) * 1986-04-14 1996-10-23 株式会社日立製作所 情報処理装置
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 삼성전자주식회사 하드웨어 폴링 처리기를 포함한 데이터 처리 시스템
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
US8898448B2 (en) 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
JP5285643B2 (ja) * 2010-03-15 2013-09-11 シャープ株式会社 半導体集積回路および電子情報機器
JP5763783B2 (ja) * 2011-01-25 2015-08-12 マイクロン テクノロジー, インク. 正規表現をコンパイルするための方法および装置
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 富士ゼロックス株式会社 情報処理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
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
US20060218378A1 (en) * 2005-03-25 2006-09-28 Seiko Epson Corporation Integrated circuit device
US20090300629A1 (en) * 2008-06-02 2009-12-03 Mois Navon Scheduling of Multiple Tasks in a System Including Multiple Computing Elements
CN102473115A (zh) * 2009-08-13 2012-05-23 高通股份有限公司 用于高效数据处理的装置和方法
CN102446085A (zh) * 2010-10-01 2012-05-09 英特尔移动通信技术德累斯顿有限公司 硬件加速器模块及其设置方法
CN106055308A (zh) * 2015-04-04 2016-10-26 德州仪器公司 用于低能加速器处理器架构的设备

Also Published As

Publication number Publication date
US10628159B2 (en) 2020-04-21
CN108268280B (zh) 2023-07-21
KR20180080463A (ko) 2018-07-12
TWI766891B (zh) 2022-06-11
TW201826114A (zh) 2018-07-16
US20180189059A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
TWI416332B (zh) 藉由多個裝置同步化單一資料串流之同時直接記憶體存取平行處理之裝置、系統及方法
US9237165B2 (en) Malicious attack prevention through cartography of co-processors at datacenter
CN105122228A (zh) 具有混合的散射-聚集功能性的直接存储器存取控制器
JP2015038738A5 (zh)
CN110780921A (zh) 数据处理方法和装置、存储介质及电子装置
GB2496934A (en) Multi-stage register renaming using dependency removal and renaming maps.
CN104104705B (zh) 分布式存储系统的接入方法和设备
JP6127409B2 (ja) クロック・ネットワーク・メタ合成のためのシステムおよび方法
US9804903B2 (en) Data processing apparatus for pipeline execution acceleration and method thereof
CN108268280A (zh) 半导体装置的处理器及其操作方法
CN108255504A (zh) 在一储存系统中更新软件的方法及储存系统
US9841979B2 (en) Method and apparatus for shuffling data using hierarchical shuffle units
US8930929B2 (en) Reconfigurable processor and method for processing a nested loop
CN106383667A (zh) 业务运行中lun迁移的方法和装置
CN107741965A (zh) 数据库同步处理方法、装置、计算设备及计算机存储介质
CN101939733A (zh) 外部设备存取装置、其控制方法及系统大规模集成电路
CN100527109C (zh) 存储器访问装置
CN103927207A (zh) 软件加速方法和装置
US8589661B2 (en) Odd and even start bit vectors
CN105022609A (zh) 一种数据混洗方法和数据混洗单元
CN115277553A (zh) 一种流表存储方法、装置、设备和计算机可读存储介质
WO2019016508A1 (en) INTERLACING VECTORS IN A DATA PROCESSING APPARATUS
US6584514B1 (en) Apparatus and method for address modification in a direct memory access controller
JP6036835B2 (ja) 時系列データ処理装置、時系列データ処理方法及び時系列データ処理プログラム
CN104335167A (zh) 基于寄存器相关联偏好向执行管线发布指令以及相关指令处理电路、处理器系统、方法及计算机可读媒体

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant