CN105022706B - 控制器电路,数据接口块和用于传输数据的方法 - Google Patents
控制器电路,数据接口块和用于传输数据的方法 Download PDFInfo
- Publication number
- CN105022706B CN105022706B CN201510217236.5A CN201510217236A CN105022706B CN 105022706 B CN105022706 B CN 105022706B CN 201510217236 A CN201510217236 A CN 201510217236A CN 105022706 B CN105022706 B CN 105022706B
- Authority
- CN
- China
- Prior art keywords
- data
- instruction
- word
- interface block
- store instruction
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 22
- 230000005540 biological transmission Effects 0.000 title description 32
- 230000004044 response Effects 0.000 claims abstract description 4
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 4
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000005259 measurement Methods 0.000 claims description 2
- 238000004321 preservation Methods 0.000 abstract description 2
- 230000002093 peripheral effect Effects 0.000 description 9
- 230000014509 gene expression Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
本文提出一种处理器电路,包括:处理器单元,被配置成执行用于加载或存储多个数据字的多重加载或存储指令;数据接口块(DIB),被配置成与处理器单元通信,并且被配置成响应于在执行多重加载或存储指令期间中断的发生,保存多重加载或存储指令的状态。保存状态可以包括存储当中断发生时已经被加载或存储的数据字的数目。当在中断之后再次执行多重加载或存储指令时,数据接口块可以跳过所存储的数目的数据字。
Description
技术领域
本文涉及控制器电路、数据接口块和用于传输数据的方法。特别是,本文涉及用于处理器的控制器电路、数据接口块和方法,该处理器具有指令集,该指令集包括多重加载/存储指令。
背景技术
现代处理器单元的指令集可以包括多重加载/存储指令。利用多重加载/存储指令,例如通过从外围块读取或写入到外围块,单个指令可用于加载或存储多个数据字。
在美国专利US6,260,086中公开了具有多重加载/存储指令的处理器。为了将多个数据字写入到串行外设接口,使用了一组外围数据字以及先入/先出(FIFO)缓冲器。
具有多重加载/存储指令的处理器的另一个例子是ARM公司的ARM Cortex-MO。
具有多重加载/存储指令的已知的处理器的一个特征是,指令执行不是原子的,因此可以被中断。当中断处理结束时,该指令一般是整个被重复。这可能会产生严重的后果。例如,当使用多个存储指令来写入到外设数据接口时,中断后重复整个指令意味着在中断发生之前已经写入的数据字被写入两次。这导致不正确的数据被写入到外设数据接口。同样地,在非原子的多重加载执行期间进行中断也可能会导致写入不正确的数据。
防止这些效应的一种方法是屏蔽中断,使得它们不中断多重加载/存储指令的执行。另一种方法是简单地根本不使用多重加载/存储指令,或者至少是不在从外设接口读取时或写入到外设接口时。前一种方法往往是不可行的,因为中断必须被及时处理。后一种方法是不可取的,因为这样会导致更多的指令,从而增加指令存储、获取以及解码的开销。
因此,需要一种处理器电路和方法能够使用多重加载/存储指令(在下文中也称为:多重传输指令),在执行过程中对于中断是具有鲁棒性的。
此外,由于目前对于硬件厂商来说,例如在片上系统中对来自第三方处理器供应商的处理器单元进行设计是很常见的,因此需要一种解决方案,这种解决方案不需要修改处理器单元本身,但是可以使用处理器单元的外部电路来实现。
发明内容
根据第一个方面,本文提供了一种处理器电路,包括:
处理器单元,被配置成执行用于加载或存储多个数据字的多重加载或存储指令;
数据接口块(DIB),被配置成响应于在执行多重加载或存储指令期间中断的发生,保存多重加载或存储指令的状态。
在一个实施例中,处理器电路还包括指令总线,其中中断监控块被连接到指令总线用于监控在指令总线上传输的指令。
在一个实施例中,数据接口块被配置成检测多重加载或存储指令执行的开始。
在一个实施例中,保存多重加载或存储指令的状态包括存储指示当中断发生时已经加载或存储的数据字的数目的值。
在一个实施例中,数据接口块被配置成,当在中断之后再次执行多重加载或存储指令时,跳过一定数目的用于加载或存储的数据字,其中所述数目等于所存储的值。
在一个实施例中,处理器电路包括数据总线,其中数据接口块包括用于存储要被加载或存储的数据字的数据寄存器,其中数据寄存器被连接到数据总线。
在一个实施例中,数据接口块包括先进先出(FIFO)缓冲器。在一个实施例中,FIFO被连接到串行或并行数据接口。FIFO可以被连接到数据寄存器。
在一个实施例中,处理器电路形成为片上系统(SoC)。
根据第二个方面,提供了一种用于上述处理器电路的数据接口块(DIB)。
根据第三个方面,提供了一种用于加载或存储多个数据字的方法,该方法包括:
在处理器单元中执行多重加载或存储指令;
将至少一个数据字写入到数据接口块(DIB)中;
检测处理器单元的中断的发生;
通知数据接口块多重加载或存储指令被中断;
由数据接口块存储多重加载或存储指令的状态。
在第三个方面的实施例中,保存多重加载或存储指令的状态包括存储指示当中断发生时已经加载或存储的数据字的数目的值。
在第三个方面的实施例中,该方法还包括:当在中断之后再次执行多重加载或存储指令时,跳过一定数目的用于加载或存储的数据字,其中所述数目等于所存储的值。
附图说明
在下文中将参考附图仅以示例的方式来描述本发明的实施例,这些附图都是示意性的,因此不是按比例绘制的。此外,在附图中相似的元件采用相似的附图标记。
图1示意性地示出了根据一个实施例的处理器电路。
图2示意性地示出了根据一个实施例的用于加载和存储数据的电路。
图3示意性地示出了根据一个实施例的多重存储操作。
图4示意性地示出了根据一个实施例的多重加载操作。
图5示意性地示出了根据一个实施例的用于存储数据的方法。
具体实施方式
图1示意性地示出了根据本发明的一个实施例的处理器电路10。电路10可以被实现为片上系统。电路10包括用于执行数据指令的处理器单元11,处理器单元具有指令集,指令集的特点是具有多重加载或存储指令(在下文中也称为:多重传输指令(MTI)或多重加载/存储指令)。处理器单元的一个例子是ARM Cortex MO 32位处理器。
虽然可以通过修改处理器单元11来实现本发明,但是也可以如将要参考实例所描述的那样,提供另外的功能使用处理器单元11外部的另外的块在执行期间来处理中断。这使得本发明可以用很容易得到的不能(很容易)修改的第三方处理器单元11来实现。
该电路还包括代码存储器14和数据存储器15,以及代码总线13和数据总线12,分别传输由处理器11获取的代码和由处理器使用的数据。另外,也可以提供用于代码和数据两者传输的单个总线。
数据接口块(DIB)18被配置用于通过系统的串行或并行物理接口19来发送/接收数据。该DIB 18可以被配置成检测输入DIB/从DIB输出的多重加载/存储指令的开始,并且设置MULTIPLE_TRANSFER_STARTED标志作为响应。然后在多重加载/存储指令执行期间,该MULTIPLE_TRANSFER_STARTED标志都被设置。该DIB 18也可以被描述为数据接口外设块(DIPB)。DIPB或DIB 18可以被实现为专用硬件块。
中断监控块(IMB)17被提供用于检测中断。在图1的例子中,IMB 17被连接到代码总线12。IMB 17被配置为检测多重加载/存储指令的中断,以及通过设置MULTIPLE_TRANSFER_INTERRUPTED标志来通知DIB 18中断的发生。在一个实施例中,只有在发生中断时DIB 18已经设置了MULTIPLE_TRANSFER_STARTED标志的情况下才设置MULTIPLE_TRANSFER_INTERRUPTED标志。IMB 17可以被实现为专用硬件块。IMB 17可以通过检测在执行多重传输指令期间处理器单元11获取(新)指令来检测中断的发生。在一个替代实施例(未示出)中,IMB 17被配置成例如通过被连接到中断线路来直接检测中断的发生。
可以在处理器电路10中提供DIB块18的多个实例(例如在具有多个数据接口19的系统的情况下)。在这种情况下,当IMB 17检测到中断,并且相应的DIB 18已经设置了MULTIPLE_TRANSFER_STARTED标志时,DIB 18可以从IMB 17接收MULTIPLE_TRANSFER_INTERRUPTED标志。如果DIB 18负责设置MULTIPLE_TRANSFER_STARTED标志,并且如果在多个DIB中每个DIB18已经设置了一个标志,则IMB 17可以被配置为只对目前参与中断的多重传输指令中的DIB 18设置MULTIPE_TRANSFER_INTERRUPTED标志。在一个实施例中,多个DIB中的每一个DIB 18都具有连接到IMB 17的单独的“执行”标志线,IMB 17可以为多个DIB中的每一个DIB 18设置单独的、专用的“中断”标志。在实施例中,可以在电路10中设置一个、两个、三个、四个或更多的DIB 18。
可选的时钟和电源管理块16可以被用来为DIB 18、IMB 17、处理器11和总线12、13产生必要的时钟。它也可以负责处理器电路10的电源管理。
图2提供了DIB 18的各个组成部分的详图。在一个实施例中,DIB 18包括数据寄存器20,可以由处理器11通过数据总线13访问数据寄存器20。数据寄存器20用于在DIB 18和处理器11之间传输数据字。数据寄存器20被映射到数据存储器15中的N个连续的地址21上,用于传输宽度为M的N个数据字。
数据寄存器20可以用于半双工和全双工通信。整数N被定义在另一个寄存器中,或者可以被固定为指定的硬件实现(例如:4个字)。整数M定义在另一个寄存器中,或者可以被固定为指定的硬件实现,M的最大值被定义为数据总线的宽度(例如:8位)。
在一个实施例中,DIB 18还包括数据先入/先出(FIFO)缓冲器22。在替代实施例中,数据FIFO 22可以由数据接口19提供。数据FIFO 22是具有发送和接收逻辑的数据缓冲器。FIFO 22的深度是最大值(N)字深,字是最大值(M)位宽。FIFO 22可以被分成两部分,一部分用于发送数据字,一部分用于接收数据字。
在多重传输指令的执行过程中,由处理器11成功地存储/读取的每个数据字被分别推送到数据FIFO中(存储操作),或从数据FIFO中弹出(加载操作)。例如,当N=4,M=8时,DIB 18被配置成用处理器的多重加载/存储指令传输4个连续的数据字节。
在发送时(从接口来看,即当处理器11执行存储功能时),一旦DIB 18被启用用于发送,数据通过数据寄存器20被写入到FIFO 22。当判断是写入信号时,数据可以被写入到FIFO 22中的由数据写入指针的当前值指定的位置。数据写指针是循环指针,它在每次FIFO写入之后递增,并且迭代通过所有可用于发送的FIFO 22的位置。然后数据可以通过数据接口19被弹出,递增数据读指针,然后被发送出去。数据写指针和数据读指针之间的差(允许两个指针的循环性质)代表在FIFO中等待发送的数据字的数量,并且该差可以被存储在FIFO寄存器中。如果出现同时访问的话,基于时隙的机制确保处理器单元11和数据接口19之间数据寄存器操作的优先级。
在接收时(从接口来看,即当处理器执行加载功能时),当已经接收到正确的数据时,通过数据接口19写入数据(递增FIFO中的数据字的数量)。一旦DIB 18被启用用于接收,通过数据寄存器从FIFO 22中读出数据。当判断是读出信号时,可以从数据读指针的当前值指定的FIFO 22中的位置读出数据。在每一次读取FIFO 22之后,存储FIFO中用于接收的数据字的数量的寄存器被递减。再次,如果出现同时访问的话,基于时隙的机制确保数据寄存器操作的优先级。
使用一对循环的读/写指针以及被分成两部分的FIFO数据缓冲器(接收和发送部分之间的比率是可配置的),可以支持全双工通信进行双向存取。在这种情况下,两对读/写指针是必需的。另外,一个寄存器可以存储用于发送的条目的数量(用于发送的写指针和读指针之间的循环补偿差),另一个寄存器可以存储用于接收的条目的数量(用于接收的写指针和读指针之间的循环补偿差)。
IMB 17和DIB 18的组合实现状态机。当处理器11对N个数据字执行多重存储操作时,对于处理器11传输的每个新的数据字递增硬件计数器(counter_word)(换言之,counter_word从0增加到N-1)。当数据寄存器20第一次被访问时(counter_word=0),设置一个标志并通知IMB 17(MULTIPLE_TRANSFER_STARTED)。当处理器11已经将最后一个数据字发送到DIB 18时,这个标志被取消。多重加载操作的执行也是同样的。
如果在处理器11处发生中断,则IMB 17将会检测到该中断的发生。在一个实施例中,该检测是通过检查从处理器11向代码存储器14的一个新的获取请求来实现的。然后处理器11自动将设置的标志MULTIPLE_TRANSFER_INTERRUPTED发送到DIB 18;于是DIB 18将用专用的(counter_word_stopped)变量来保存counter_word的当前值。通过这种方式,DIB18保存被中断的多重传输指令的状态。
一旦处理器11退出中断,它将重新启动多重加载(或存储)指令,并将第一数据字重新发送到DIB 18。DIB 18从非零的counter_word_stopped变量得知,之前的多重传输指令没有成功完成。其结果是,DIB 18然后将跳过第一个counter_word_stopped数据字,因为这些已经被从数据FIFO 22/向数据FIFO 22发送了。通过跳过已经处理的数据字,保证了FIFO 22中的数据的完整性。
当多重传输指令完成时(所有的N个数据字被存储或加载),该counter_word_stopped变量被重置为0。
图3示意性地示出了根据本发明的一个实施例的多重存储操作,图4示意性地示出了根据本发明的一个实施例的多重加载操作。在两个图中,处理器单元11的状态(CPU状态)被示为获取(F)、解码(D)或执行(E)指令。计数器31表示counter_word的值,32表示的是MULTIPLE_TRANSFER_STARTED标志,33表示的是MULTIPLE_TRANSFER_INTERRUPT标志。在图3中,34表示的是变量counter_word_stopped,位于最后一行的35表示的是哪些数据字被推送到FIFO 22。
在图4中,36表示的是FIFO读指针(在全双工的FIFO 22的情况下用于接收)。为清楚起见,FIFO读指针被设置为0,以指示在FIFO中的第一个数据字的位置。最后一行37表示的是哪些数据字被从(图4)FIFO 22中弹出。
当多重传输指令开始第一次执行时,MULTIPLE_TRANSFER_STARTED标志32被设置。在这两个例子中,在第3个数据字被推送到FIFO 22中或从FIFO 22中被弹出之后接收到中断。此时MULTIPLE_TRANSFER_INTERRUPTED标志33被设置并且MULTIPLE_TRANSFER_STARTED标志32被取消。counter_word 31的值2(即第三个数据字的索引)被存储在counter_word_stopped变量34中。
当多重传输指令开始第二次执行时,在中断处理结束之后,MULTIPLE_TRANSFER_STARTED标志32被再次设置。此时MULTIPLE_TRANSFER_INTERRUPTED标志33被取消。
在图3的存储操作中,数据字0,1和2(counter_word_stopped 34的值)被跳过(未被推送到FIFO 22中),因为它们已经在多重存储指令的第一次执行期间被写入FIFO 22了。当counter_word 31增加到超过2时,数据字3、4、直到N-1被推送到FIFO 22中。在数据字N-1被写入之后,counter_word_stopped的值被重置为0。
在图4的加载操作中,顺序稍有不同,这是因为处理器单元11需要在从数据FIFO22中弹出N个数据字之前接收所有数据。然后,当在多重加载指令期间发生中断时,FIFO 22的读指针需要被重置为0,可以通过检查counter_word 31的值来知道发生了该中断。在本实施例中,当中断发生时,通过将FIFO 22的用于MTI的读指针重置为开始位置来保存DIB18的状态。例如,这可以通过从FIFO的读指针减去(以循环方式)counter_word的值来实现。这可以在中断到达时(如图4所示)或只是在MTI指令重新开始之前立即执行。
如果在多重传输指令的第二次执行期间发生另一个中断,则仅当在第二次执行时counter_word的值比所存储的counter_word_stopped的值高才更新counter_word_stopped变量。换言之,如果相同的多重传输指令被重复地中断,则DIB 18在counter_word_stopped中记住counter_word在一系列的中断指令中的任一个达到的最大值。
图5示意性地示出了根据本发明的一个实施例的与图3的示意图相对应的用于存储数据的方法。在步骤51中,处理器11获取并解码多重传输指令(MTI),并在步骤52中通过将第一数据字写入到DIB 18的数据寄存器20中来执行该指令。在步骤53中,DIB 18检测正在被写入的第一个字,为IMB 17设置MULTIPLE_TRANSFER_STARTED标志,并将counter_word设置为0。在步骤54中,第一个数据字被写入到FIFO 22中,并且递增counter_word。在步骤55中,处理器单元11现在写入第二个数据字,在步骤56中,DIB 18将该数据字推送到FIFO22,并且递增counter_word。
在MTI完成之前的某个时刻,接收到中断57,在此之后中断处理开始60。该中断的发生是由IMB 17检测的(例如通过检测在完成多重传输之前处理器11获取新指令),这引起了在步骤58中为DIB 18设置MULTIPLE_TRANSFER_INTERRUPTED标志。其结果是,在步骤59中,DIB 18将counter_word的当前值保存在counter_word_stopped中。
在中断处理结束之后,在步骤62中,处理器11再次获取并解码MTI。然后,在步骤62中通过写入第一个数据字来开始再次执行该指令。这还是由DIB 18检测的,这引起了在步骤63中设置MULTIPLE_TRANSFER_STARTED标志并将counter_word重置为0。然而,因为counter_word的值(0)低于counter_word_stopped的值(2),该数据字不被推送到FIFO 22中。在步骤64中,counter_word被逐一增加,并且当counter_word小于或等于counter_word_stopped时,跳过所有数据字。
最后,在步骤65中,当counter_word>counter_word_stopped时执行该步骤,第一个新的数据字被写入到数据寄存器20中,然后由DIB 18被推送到FIFO 22。当该指令完成时(在N个数据字已经被推送到FIFO 22之后),counter_word_stopped的值被重置为0。
在上述实施例中,描述了用于使用多重传输指令的数据传输的处理器电路,数据接口块和方法,该技术方案对于多重传输指令执行期间处理器的中断具有鲁棒性。数据接口块被配置成在中断时保存多重传输指令的状态,允许当再次执行多重传输指令时数据接口块从之前被中断的执行期间停止的位置处继续读写数据,从而防止由于二次写入或读取数据造成数据损坏。
能够检测中断的示例方法是通过提供中断监控块来检测中断。IMB(例如通过监控代码总线)可以监控处理器单元的指令。如果在多重传输指令执行期间新的指令被获取,则IMB例如能够设置“中断”标志。IMB基于对指令的分析或基于从数据接口块接收到的“执行”标志可以知道正在执行多重传输指令。
能够检测多重传输指令的执行的示例方法是通过使数据接口块检测对数据寄存器的第一次访问。通过检查counter_word的值可以检查到第一次访问,counter_word的值跟踪在多重传输指令期间正在被写入或读取的N个数据字。
当在中断之后第二次执行指令时,(或者在一系列中断的情况下第三次、第四次执行指令时),跳过已经被写入或读取的指令数据字。在DIB具有FIFO的情况下,需要注意FIFO读/写指针要保持一致。在多重存储指令的情况下,通过参考变量counter_word_stopped可以例如跳过正确数目的数据字,变量counter_word_stopped存储了在多重传输指令之前执行时已经被写入/读取的数据字的最大数目。在多重加载指令的情况中,FIFO读指针可以被重置为在该指令第一次(被中断)执行的开始处的位置。
在上文中,已经参考附图和具体实施例对本发明进行了描述。然而,很显然,在不背离所附权利要求概括的本发明的保护范围的情况下,可以得到不同的修改和变化。
另外,在不背离实质范围的情况下,可以做出很多的修改以适应特定的情况。因此,本发明并不局限于本文中所揭露的具体实施例,本发明包括落入所附权利要求的范围内的所有实施例。
特别是,本发明的不同方面的具体特征可以进行组合。通过向本发明的一个方面增加关于本发明的另一个方面描述的特征可以有利地增强本发明的一个方面。
应当理解,本发明由所附权利要求及其技术等同内容来限定。在本文中,动词“包括”以其非限定的含义来使用,表示包括在该动词之后的内容,并不排除未具体提及的内容。另外,在本文中,量词“一”并不排除存在一个以上元件的可能性,除非在上下文中清楚地要求了是一个元件和只有一个元件。因此量词“一”通常表示“至少一个”。
Claims (13)
1.一种处理器电路,其特征在于,包括:
处理器单元,被配置成执行用于加载或存储多个数据字的多重加载或存储指令;
数据接口块DIB,被配置成用于通过系统的串行或并行物理接口来发送或接收数据,并且被配置成响应于在执行多重加载或存储指令期间中断的发生,保存多重加载或存储指令的状态,
其中所述保存多重加载或存储指令的状态包括存储指示当中断发生时已经加载或存储的数据字的数目的值。
2.如权利要求1所述的处理器电路,其特征在于,包括中断监控块IMB,被配置成检测中断的发生,并通知数据接口块发生了中断。
3.如权利要求2所述的处理器电路,其特征在于,还包括指令总线,其中中断监控块被连接到指令总线,用于监控在指令总线上传输的指令。
4.如权利要求1所述的处理器电路,其特征在于,数据接口块被配置成检测多重加载或存储指令执行的开始。
5.如权利要求1所述的处理器电路,其特征在于,数据接口块被配置成,当在中断之后再次执行多重加载或存储指令时,跳过一定数目的用于加载或存储的数据字,其中所述数目等于所述值。
6.如在前的任一项权利要求所述的处理器电路,其特征在于,包括数据总线,其中数据接口块包括用于存储要被加载或存储的数据字的数据寄存器,其中数据寄存器被连接到数据总线。
7.如权利要求6所述的处理器电路,其特征在于,数据接口块包括先进先出FIFO缓冲器。
8.如权利要求7所述的处理器电路,其特征在于,FIFO缓冲器被连接到串行或并行数据接口。
9.如权利要求7或8所述的处理器电路,其特征在于,FIFO缓冲器被连接到数据寄存器。
10.如权利要求1所述的处理器电路,其特征在于,该处理器电路形成为片上系统SoC。
11.一种数据接口块DIB,其特征在于,该数据接口块用在如在前的任一项权利要求所述的处理器电路中。
12.一种用于加载或存储多个数据字的方法,其特征在于,该方法包括:
在处理器单元中执行多重加载或存储指令;
将至少一个数据字写入到数据接口块DIB中;
检测处理器单元的中断的发生;
通知数据接口块多重加载或存储指令被中断;
由数据接口块存储多重加载或存储指令的状态;
其中存储多重加载或存储指令的状态包括存储指示当中断发生时已经加载或存储的数据字的数目的值。
13.如权利要求12所述的方法,其特征在于,还包括:
当在中断之后再次执行多重加载或存储指令时,跳过一定数目的用于加载或存储的数据字,其中所述数目等于所述值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14290133 | 2014-05-02 | ||
EP14290133.9 | 2014-05-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105022706A CN105022706A (zh) | 2015-11-04 |
CN105022706B true CN105022706B (zh) | 2018-12-25 |
Family
ID=50897497
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510217236.5A Active CN105022706B (zh) | 2014-05-02 | 2015-04-30 | 控制器电路,数据接口块和用于传输数据的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10656952B2 (zh) |
EP (1) | EP2940575B1 (zh) |
CN (1) | CN105022706B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017013931A1 (ja) * | 2015-07-21 | 2017-01-26 | ソニー株式会社 | 先入れ先出し制御回路、記憶装置、および、先入れ先出し制御回路の制御方法 |
CN109753266A (zh) * | 2019-01-02 | 2019-05-14 | 西安微电子技术研究所 | 一种基于fifo的空间计算机多中断缓存控制方法 |
US11347506B1 (en) | 2021-01-15 | 2022-05-31 | Arm Limited | Memory copy size determining instruction and data transfer instruction |
GB2602814B (en) * | 2021-01-15 | 2023-06-14 | Advanced Risc Mach Ltd | Load Chunk instruction and store chunk instruction |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308253B1 (en) * | 1999-03-31 | 2001-10-23 | Sony Corporation | RISC CPU instructions particularly suited for decoding digital signal processing applications |
CN1567277A (zh) * | 2003-07-09 | 2005-01-19 | 明基电通股份有限公司 | 用于减少对处理器的中断次数的控制装置及方法 |
CN1678988A (zh) * | 2002-09-04 | 2005-10-05 | Arm有限公司 | 数据处理设备中的流水线之间的同步化 |
CN1726469A (zh) * | 2002-12-05 | 2006-01-25 | 国际商业机器公司 | 通过硬体系结构状态的增强恢复的处理器虚拟机制 |
CN1845087A (zh) * | 2006-05-18 | 2006-10-11 | 北京中星微电子有限公司 | 中断处理方法及中断处理装置 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5440703A (en) * | 1993-09-20 | 1995-08-08 | International Business Machines Corporation | System and method for saving state information in a multi-execution unit processor when interruptable instructions are identified |
US5887152A (en) * | 1995-04-12 | 1999-03-23 | Advanced Micro Devices, Inc. | Load/store unit with multiple oldest outstanding instruction pointers for completing store and load/store miss instructions |
US6105127A (en) * | 1996-08-27 | 2000-08-15 | Matsushita Electric Industrial Co., Ltd. | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
US6055616A (en) * | 1997-06-25 | 2000-04-25 | Sun Microsystems, Inc. | System for efficient implementation of multi-ported logic FIFO structures in a processor |
US6260086B1 (en) | 1998-12-22 | 2001-07-10 | Motorola, Inc. | Controller circuit for transferring a set of peripheral data words |
JP2001188689A (ja) * | 2000-01-04 | 2001-07-10 | Mitsubishi Electric Corp | データ処理装置 |
US6621428B1 (en) * | 2000-05-04 | 2003-09-16 | Hewlett-Packard Development Company, L.P. | Entropy codec for fast data compression and decompression |
JP2002189603A (ja) * | 2000-12-19 | 2002-07-05 | Fujitsu Ltd | 計算機とその制御方法 |
US20020166004A1 (en) * | 2001-05-02 | 2002-11-07 | Kim Jason Seung-Min | Method for implementing soft-DMA (software based direct memory access engine) for multiple processor systems |
GB2392998B (en) * | 2002-09-16 | 2005-07-27 | Advanced Risc Mach Ltd | Handling interrupts during multiple access program instructions |
US7493478B2 (en) * | 2002-12-05 | 2009-02-17 | International Business Machines Corporation | Enhanced processor virtualization mechanism via saving and restoring soft processor/system states |
US8191085B2 (en) * | 2006-08-29 | 2012-05-29 | Freescale Semiconductor, Inc. | Method and apparatus for loading or storing multiple registers in a data processing system |
WO2013048367A1 (en) * | 2011-09-26 | 2013-04-04 | Intel Corporation | Instruction and logic to provide vector loads and stores with strides and masking functionality |
GB2517493A (en) * | 2013-08-23 | 2015-02-25 | Advanced Risc Mach Ltd | Handling access attributes for data accesses |
-
2014
- 2014-07-09 EP EP14176349.0A patent/EP2940575B1/en active Active
-
2015
- 2015-04-30 CN CN201510217236.5A patent/CN105022706B/zh active Active
- 2015-05-01 US US14/702,612 patent/US10656952B2/en not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6308253B1 (en) * | 1999-03-31 | 2001-10-23 | Sony Corporation | RISC CPU instructions particularly suited for decoding digital signal processing applications |
CN1678988A (zh) * | 2002-09-04 | 2005-10-05 | Arm有限公司 | 数据处理设备中的流水线之间的同步化 |
CN1726469A (zh) * | 2002-12-05 | 2006-01-25 | 国际商业机器公司 | 通过硬体系结构状态的增强恢复的处理器虚拟机制 |
CN1567277A (zh) * | 2003-07-09 | 2005-01-19 | 明基电通股份有限公司 | 用于减少对处理器的中断次数的控制装置及方法 |
CN1845087A (zh) * | 2006-05-18 | 2006-10-11 | 北京中星微电子有限公司 | 中断处理方法及中断处理装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2940575A1 (en) | 2015-11-04 |
CN105022706A (zh) | 2015-11-04 |
US10656952B2 (en) | 2020-05-19 |
US20150317164A1 (en) | 2015-11-05 |
EP2940575B1 (en) | 2018-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5318139B2 (ja) | 制御装置およびプログラム | |
CN105022706B (zh) | 控制器电路,数据接口块和用于传输数据的方法 | |
US9880965B2 (en) | Variable frame length virtual GPIO with a modified UART interface | |
US6802036B2 (en) | High-speed first-in-first-out buffer | |
US20220214816A1 (en) | Extensible Storage System and Method | |
US9697127B2 (en) | Semiconductor device for controlling prefetch operation | |
TWI483117B (zh) | 用於執行命令之裝置、主機控制器及用於執行命令之系統 | |
US9304777B1 (en) | Method and apparatus for determining relative ages of entries in a queue | |
US6728906B1 (en) | Trace buffer for a configurable system-on-chip | |
US10042692B1 (en) | Circuit arrangement with transaction timeout detection | |
US7603489B2 (en) | Direct memory access controller including first and second transfer setting registers | |
CN108028530B (zh) | 应用于数字集成电路的esd检测装置、集成电路及方法 | |
EP2351304A1 (en) | Bit inversion for communication interface | |
JP2013161429A (ja) | トレース制御装置及びトレース制御方法 | |
US20220269642A1 (en) | Method and apparatus for eliminating glitch, and state machine | |
JP5935367B2 (ja) | 半導体集積回路装置及びそれを用いた電子機器 | |
US11301249B2 (en) | Handling exceptions in a program | |
CN109885402B (zh) | 测试函数输出数据溢出的方法、终端设备及存储介质 | |
US9223542B2 (en) | Variable-sized buffers mapped to hardware registers | |
US20150234656A1 (en) | Vector processor, information processing apparatus, and overtaking control method | |
EP4109184A1 (en) | Control device | |
JP2009017361A (ja) | インターフェース | |
US7945744B2 (en) | Interface circuit | |
EP2284708B1 (en) | Microprogammable device code tracing | |
KR100491658B1 (ko) | 병렬 통신 시스템의 에러 데이터 제거장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |