CN111124628A - 半导体装置和使用该半导体装置的系统 - Google Patents

半导体装置和使用该半导体装置的系统 Download PDF

Info

Publication number
CN111124628A
CN111124628A CN201910865436.XA CN201910865436A CN111124628A CN 111124628 A CN111124628 A CN 111124628A CN 201910865436 A CN201910865436 A CN 201910865436A CN 111124628 A CN111124628 A CN 111124628A
Authority
CN
China
Prior art keywords
semiconductor device
data
task
memory
semiconductor
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.)
Pending
Application number
CN201910865436.XA
Other languages
English (en)
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Publication of CN111124628A publication Critical patent/CN111124628A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • G06F13/1673Details of memory controller using buffers
    • 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/30101Special purpose 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0835Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means for main memory peripheral accesses (e.g. I/O or DMA)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2806Space or buffer allocation for DMA transfers
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Bus Control (AREA)

Abstract

本公开的实施例涉及半导体装置和使用该半导体装置的系统。提供了一种能够抑制性能降级的半导体装置和使用该半导体装置的系统。半导体装置包括:多个处理器CPU1和CPU2;调度装置10(ID1),被连接到处理器CPU1和CPU2,以用于控制处理器CPU1和CPU2来实时执行多个任务;存储器17和18,由处理器CPU1和CPU2访问以通过执行任务来存储数据;以及访问监控器电路15,用于监控处理器CPU1和CPU2对存储器的访问。当访问监控器电路15检测到对存储器的访问时,存储在存储器18中的数据基于存储在存储器18中的数据的目的地信息而被传输。

Description

半导体装置和使用该半导体装置的系统
相关申请的交叉引用
于2018年10月31日提交的、包括说明书、附图和摘要的日本专利申请号2018-205515的公开内容,以其整体通过引用并入本文。
技术领域
本公开涉及一种半导体装置和使用该半导体装置的系统,更具体地,涉及一种包括多个主设备并且能够实时执行多个任务的半导体装置以及使用该半导体装置的系统。
背景技术
作为半导体装置,微处理器(下文中被称为处理器)、直接存储器存取控制器(下文中被称为DMA控制器)和存储器安装的半导体装置是众所周知的。这种半导体装置例如用于工厂自动化联网系统中。当处理器根据程序执行预先确定的进程时,处理器输出用于传送地址信息和传输控制信息的地址信号(该地址信号在下文中统称为地址信号),以访问存储器或外围电路。与处理器一样,DMA控制器输出地址信号以访问存储器或外围电路。在这种情况下,处理器和DMA控制器可以被认为是访问存储器和外围电路的主设备(master),并且被访问的存储器或外围电路可以被认为是从设备(slave)。
在网络系统中,期望在抑制功耗的同时,改进整个系统的性能(在下文中,在本说明书中,实时性能(应对更严格的时序约束的能力)和吞吐量性能(数据传输速率、计算能力)两者被统称为性能)。作为针对该目的有效措施,认为安装在一个半导体装置上的处理器和/或DMA控制器的数目增加,并且这些进程被实时并行操作。
例如,在日本未审查专利申请公开号2002-49497(下文中被称为专利文献1)、日本未审查专利申请公开号2004-220093(下文中被称为专利文献2)和国际公开号2008/023426(下文中被称为专利文献3)中,描述了与实时相关的技术。
发明内容
为了实时执行多个进程,由处理器执行实时操作系统(下文中被称为RTOS),并且在RTOS上执行与进程相对应的应用程序(下文中被称为应用)。在这种情况下,应用被划分成多个任务,并且通过在由RTOS切换任务的同时执行多个任务来执行应用。对于RTOS,任务切换(任务切换)需要时间。用于加速该任务切换的技术包括在硬件中实现RTOS的硬件RTOS(下文中被称为HW-RTOS),例如,如专利文献3中所描述的。
本发明的发明人已经研究了用于通过采用HW-RTOS来缩短任务切换时间和提高实时性能的方法,并且从任务切换以外的角度进一步改进了实时性能。
一旦确定了任务的输入数据,就可以执行任务。然而,当在多个任务中难以预测输入数据的确定顺序时,调度任务的任务调度器(下文中还被称为调度装置)不能优先执行已确定输入数据的任务。结果,整个系统的性能降级。
当半导体装置包括多个主设备时,调度装置将任务分配给主设备,并使主设备并行执行任务。但是,当主设备的数目与可并行执行的任务数目相比较小时,半导体装置中在同一时区中可以并行执行的任务的数目受主设备的数目的限制,因此整个系统的性能降级。
专利文献1描述了一种在预先确定的时间已经消逝时中断对任务的处理并切换任务的方法,以及通过由自己将处理中断(例如,由帧中断触发)来切换任务的方法。在这些方法中的任何一种中,都需要暂停输入和输出数据的任务,以便评估针对每个任务的多个进程的输入/输出系统的当前状态,并且中断时间的出现导致实时性能的恶化。
专利文献2公开了一种技术,其中FIFO(先入先出)类型存储装置被设置在数据的输入/输出部段中,并且数据经由FIFO类型存储装置而被提供给任务。由于FIFO类型存储装置需要从第一输入数据顺序地获取数据,所以当FIFO类型存储装置被用作数据的输入/输出单元时,任务不能以随机顺序直接读取输入数据和/或以随机顺序写入直接输出数据。例如,当输入/输出数据必须在某个任务中被压缩/解压缩时,存储在FIFO类型存储装置中的数据必须被复制到可以单独随机访问的存储器区域,然后数据必须被压缩/解压缩并且输出数据必须被存储在FIFO类型存储装置中。这些复制时间的出现导致实时性能降低。另外,由于FIFO类型存储装置需要从第一输入数据顺序地获取数据,所以当FIFO类型存储装置用作数据的输入/输出单元时,不可能实时改变处理驻留在FIFO类型存储装置中的部分的数据的优先级。例如,当由某个装置执行的任务的输出数据经由通信路径被用作由在另一个位置处的装置执行的任务的输入数据时,需要在执行每个任务的装置和通信路径之间设置输入/输出缓冲器,该输入/输出缓冲器具有能够吸收一数据量(差分数据量)的大小(数据容量),该数据量(差分数据量)通过对可以由执行每个任务的装置处理的输入/输出数据的传输速率(每单位时间的输入/输出数据量)与由通信路径限制的传输速率(每单位时间的传输数据量)之间的差的时间积分获得。当FIFO类型存储装置用作输入/输出缓冲器时,处理保留在FIFO类型存储装置中的部分的数据的优先级在驻留在FIFO类型存储装置中的时间内不能被改变为较高,并且数据不可以被优先处理,因此实时性能恶化。
另外,在专利文献1和2中的任何一个专利文献中,与可以并行执行的任务相比,在主设备的数目较小的情况下,不会发现会性能恶化。类似地,在描述HW-RTOS的专利文献3中,当主设备的数量与可以并行执行的任务相比较小时,不会发现性能降低。
根据本说明书的描述和附图,其他目的和新颖特征将变得显而易见。
根据一个实施例的半导体装置如下。
即,半导体装置包括:多个第一主设备;连接到多个第一主设备的调度装置,以用于控制多个第一主设备实时执行多个任务;存储器,由多个第一主设备访问,以通过执行任务来存储数据;以及访问监控器电路,以用于监控多个第一主设备对存储器的访问。当访问监控器电路检测到对存储器的访问时,基于存储在存储器中的数据的目的地信息来传输存储在存储器中的数据。
在一个实施例中,网络为系统提供彼此连接的多个半导体装置。在这种系统中,多个半导体装置中的每个半导体装置包括:多个主设备;连接到多个主设备的调度装置,以用于控制多个主设备实时执行多个任务;存储器,由多个主设备访问,以通过执行任务来存储数据;以及访问监控器电路,以用于监控多个主设备对存储器的访问。在多个半导体装置中的第一半导体装置中,当访问监控器检测到对存储器的访问时,存储在存储器中的数据被传输到由多个半导体装置中的目的地数据指定的第二半导体装置的存储器。
根据一个实施例,可以提供能够抑制性能降级的半导体装置和使用该半导体装置的系统。
附图说明
图1是示出第一实施例的半导体装置以及使用该半导体装置的系统的配置的框图。
图2是示出与第一实施例有关的半导体装置和网络系统中的数据流的示图。
图3(A)至图3(C)是图示与第一实施例有关的半导体装置的操作的流程图。
图4(A)至图4(C)是图示与第一实施例有关的半导体装置的操作的流程图。
图5是与第一实施例有关的网络系统的时序图。
图6是图示与第一实施例有关的半导体装置存储器的分配的示图。
图7是图示与第一实施例有关的半导体装置存储器的分配的示图。
图8用于说明与第一实施例有关的半导体装置的存储器地址区域。
图9用于说明与第一实施例有关的半导体装置的存储器地址区域。
图10用于说明与第一实施例有关的半导体装置的存储器地址区域。
图11用于说明与第一实施例有关的半导体装置的存储器地址区域。
图12是第一实施例的任务I/O数据控制寄存器的配置。
图13是第一实施例的任务I/O数据控制寄存器的配置。
图14是第一实施例的任务I/O数据控制寄存器的配置。
图15是第一实施例的任务I/O数据控制寄存器的配置。
图16是图示与第一实施例有关的半导体装置中的设置的操作的流程图。
图17是图示与第一实施例有关的半导体装置中的设置的操作的流程图。
图18是图示与第一实施例有关的半导体装置中的任务的操作的流程图。
图19是图示与第一实施例有关的半导体装置中的任务的操作的流程图。
图20是示出与第一实施例有关的半导体装置中的传输操作的流程图。
图21是示出与第一实施例有关的半导体装置中的传输操作的流程图。
图22用于说明与第一实施例有关的半导体装置的存储器地址区域。
图23用于说明与第一实施例有关的半导体装置的存储器地址区域。
图24用于说明与第一实施例有关的半导体装置的存储器地址区域。
图25用于说明与第一实施例有关的半导体装置的存储器地址区域。
图26是与第一实施例有关的半导体装置的任务I/O数据控制寄存器的配置。
图27是与第一实施例有关的半导体装置的任务I/O数据控制寄存器的配置。
图28是与第一实施例有关的半导体装置的任务I/O数据控制寄存器的配置。
图29是与第一实施例有关的半导体装置的任务I/O数据控制寄存器的配置。
图30是图示与第一实施例有关的半导体装置中的设置的操作的流程图。
图31是与第一实施例有关的任务输入数据的接收流程。
图32是与第一实施例有关的任务输入数据的接收流程。
图33是图示与第一实施例有关的半导体装置中的任务的操作的流程图。
图34是图示与第一实施例有关的半导体装置中的任务的操作的流程图。
图35是用于说明与第一实施例有关的控制表的示图。
图36是用于说明与第一实施例有关的控制表的示图。
图37是用于说明与第一实施例有关的控制表的示图。
图38是用于说明与第一实施例有关的控制表的示图。
图39是用于说明与第一实施例有关的控制表的示图。
图40是用于说明与第一实施例有关的控制表的示图。
图41是用于说明与第一实施例有关的控制表的示图。
图42是用于说明与第一实施例有关的控制表的示图。
图43是用于说明与第一实施例有关的控制表的示图。
图44是用于说明与第一实施例有关的控制表的示图。
图45是用于说明与第一实施例有关的控制表的示图。
图46是用于说明与第一实施例有关的控制表的示图。
图47是用于说明与第一实施例有关的控制表的示图。
图48是用于说明与第一实施例有关的控制表的示图。
图49是用于说明与第一实施例有关的控制表的示图。
图50是用于说明与第一实施例有关的控制表的示图。
图51是用于说明与第一实施例有关的控制表的示图。
图52是用于说明与第一实施例有关的控制表的示图。
图53是用于说明与第一实施例有关的控制表的示图。
图54是用于说明与第一实施例有关的控制表的示图。
图55是用于说明与第一实施例有关的控制表的示图。
图56是用于说明与第一实施例有关的控制表的示图。
图57是图示与第一实施例有关的网络系统中的半导体装置的操作的时序图。
图58是图示与第一实施例有关的网络系统中的半导体装置的操作的时序图。
图59是图示与第一实施例有关的网络系统中的半导体装置的操作的时序图。
图60是图示与第一实施例有关的网络系统中的半导体装置的操作的时序图。
图61是图示当执行一个应用作为比较示例时的操作时序的示图。
图62是与比较示例有关的半导体装置的示意性配置。
图63是与比较示例有关的半导体装置的操作的概要。
图64是作为比较示例的半导体装置的操作时序图。
具体实施方式
下面将参考附图描述本发明的实施例。应当注意,本公开仅是示例,并且本领域技术人员可以容易地想到适当的改变,同时保持本发明的主旨,其自然被包括在本发明的范围内。另外,尽管为了清楚起见,附图可以示意性地表示与实际实施例相比的每个部分的宽度、厚度、形状等,但是附图仅仅是示例并且不限制本发明的解释。
在本说明书和每个附图中,相同的附图标记被分配给与上面参考前述附图描述的元件相同的元件,并且可以适当地省略其详细描述。
(第一实施例)在第一实施例中,构成应用的多个任务被分配给连接到网络的多个半导体装置,并且向每个半导体装置分配的任务被实时执行。这使得可以抑制性能降级。为了便于理解,将首先描述在一个半导体装置中执行多个任务而不分配任务的情况作为比较示例。
作为应用,将描述一程序作为示例,该程序对经由网络接收的帧执行预先确定的计算,并且经由网络传送对其执行预先确定的计算的帧。执行的预先确定的操作有两种类型:第一操作和第二操作。第一操作由用于在两个数据片段之间执行操作的滤波操作以及用于对滤波操作的结果执行输出操作的输出操作组成。第二操作是用于在对数据执行的输入操作和两个输入操作结果之间执行操作的滤波操作。
将参考图61描述当由一个半导体装置执行该应用时的操作。在图61中,在附图的上侧,示出了用于执行应用的操作时序图。图61的下部示出了当执行该应用时要满足的时序约束。
在图61的附图的上侧,半导体装置在传送/接收开始事件的最小时间Min和最大时间Max之间的定时开始帧的传输和接收,并且在传送/接收结束事件的最小时间Min和最大时间Max之间的定时完成帧的传输和接收。在图61中,在左侧所示的传送/接收开始事件和传送/接收结束事件之间,帧1(在图61中称为帧)由半导体装置接收并存储在半导体装置中的通信缓冲器0中。存储在通信缓冲器中的数据经历上面描述的第一计算,并且数据与SYNC0事件同步地输出到半导体装置的外部。另一方面,与SYNC1事件同步地输入到半导体装置的数据经历上面描述的第二计算,并且数据被存储在通信缓冲器1中。存储在通信缓冲器1中的数据被转换成右侧所示的传送/接收开始事件和传送/接收结束事件之间的帧2并且被传送。所传送的帧2由连接到网络的外部装置接收,并且以与帧1相同的方式对其执行预先确定的计算。
如图61中所示,该应用所允许的最小循环时间是传送/接收结束事件的最大时间Max与传送/接收开始事件的最小时间Min之间的时段。半导体装置在该最小循环时间期间执行构成应用的多个任务。在图61中,示出了配置应用的三个任务。即,第一任务由传送/接收结束事件激活,第二任务由SYNC1事件激活,并且第三任务以与第一任务相同的方式由传送/接收结束事件激活。这里,第一任务是将存储在通信缓冲器0中的数据复制到操作缓冲器0并执行预先确定的操作(滤波操作+输出操作)的任务。第二任务是对输入到半导体装置的数据执行预先确定的操作(输入操作+滤波操作)并将数据复制到通信缓冲器1的任务。第三任务是监控在第一任务的开始和第二任务的结束之间不发生传送/接收开始事件并且不发生传送/接收结束事件的任务。
构成应用的第一任务到第三任务具有时序约束。将仅描述第一任务和第二任务的时序约束1和时序约束2。
要求第一任务在传送/接收完成事件和SYNC0事件之间的间隔期间完成对任务的执行。即,要求第一任务的执行时间与传送/接收结束事件和SYNC0事件之间的时间相同或更短。查看SYNC0事件的时序,要求第一任务的输出在该SYNC0事件发生之前有效。类似地,要求第二任务在与SYNC1事件和传送/接收起始事件之间的时间相同或更短的时间内执行,并且要求第二任务在与传送/接收起始事件和传送/接收起始事件之间的时间相同或更短的时间内执行。
如果第一任务没有在例如SYNC0事件之前完成,则连接到半导体装置外部的装置不能与SYNC0事件同步地接收由半导体装置输出的数据,并且第一任务发生故障。类似地,如果第二任务没有在传送/接收起始事件之前完成,则通过网络连接到半导体装置的外部装置不能接收由半导体装置输入的数据,并且发生故障。即,第一任务具有在SYNC0事件发生之前完成进程的时序约束。类似地,第二任务具有在传送/接收开始事件发生之前完成处理的时序约束2。
图62示出了根据比较示例的半导体装置的示意性配置。图62示出了比较实施例的半导体装置450的示意性配置以及当执行第一操作时的数据流。
帧经由网络459从数据传送装置456传送到半导体装置450。该帧由多个传送块(在该图中,传送块0至4)组成。存储在传送缓冲器458中的传送块0至4被通信装置457传送到网络459作为帧。
半导体装置450包括通信装置451、调度装置452、两个处理器CPU1、CPU2、接收缓冲器453、算术缓冲器454和输出装置455。通信装置451接收经由网络459提供的帧。通信装置451包括DMA控制器,并且DMA控制器将帧从通信装置451传输到作为接收块0至4的接收缓冲器453。
处理器CPU1在接收块0和接收块1之间执行滤波操作,并且在接收块1和接收块2之间执行滤波操作。类似地,处理器CPU2在接收块2和接收块3之间执行滤波操作,并且在接收块3和接收块4之间执行滤波操作。由处理器CPU1和CPU2执行的滤波操作的结果作为块f01、f12、f23和f34被存储在操作缓冲器454中。处理器CPU1和CPU2对作为滤波操作的结果的块f01、f12、f23和f34执行输出操作,并且经由输出装置455将它们输出。
半导体装置450的操作
调度装置452将上面描述的第一任务分配给处理器CPU1和CPU2,以使处理器执行第一操作。图63是示出半导体装置450的操作的概要的示图。在图63中,示出了半导体装置450的操作的流程图在附图的左侧示出。在附图的右侧,示出了由于第一计算而导致的数据的量的变化。这里,假定接收块0至4的大小是1024字节(1K字节)。
当在接收缓冲器453中接收到帧时,调度装置452检测帧接收终止事件并在步骤SCP0中操作处理器CPU1和CPU2。此时,接收缓冲器453存储接收块0至4。在步骤SCP1中,处理器CPU1和CPU2执行滤波操作。即,处理器CPU1和CPU2通过输入两个连续接收块的接收数据来执行滤波操作。此时,输入到处理器CPU1和CPU2的数据的大小是对应于两个接收块的2K字节。通过执行滤波操作获得的滤波操作产生的输出数据的大小是1K字节的输出数据的大小。
接下来,在步骤SCP2中,处理器CPU1和CPU2执行输出操作。即,处理器CPU1和CPU2使用作为滤波操作的结果的输出数据作为输入数据来执行输出操作。作为输出操作的结果,输出操作的输出数据的大小是1K字节的大小。
在步骤SCP3中,调度装置452确定在SYNC0事件之前是否已经完成要执行的操作,并且如果要执行的操作已经完成,则控制输出装置455以验证输出数据。另一方面,当要执行的操作未完成时,过程返回到步骤SCP1,并且重复步骤SCP1~SCP3直到完成要执行的操作。
在步骤SCP0中,接收块0至4的所有接收数据都被存储在接收缓冲器453中,从而可以在时间上并行执行四个第一操作。即,可以在时间上并行执行四个第一任务。然而,半导体装置452仅提供了少于可并行执行的四个任务的两个处理器CPU1和CPU2。结果,变得难以执行第一操作以满足上述时序约束1。
图64是当半导体装置450对接收块0至4的所接收的数据执行第一计算时的时序图。该示图类似于图61中的示图的上侧所示的操作时序图,但是在图64中详细示出了处理器CPU1和CPU2的操作。在该图中,接收缓冲器453被划分为四个存储体(bankway)453_0至453_3,并且操作缓冲器454也被划分为四个存储体454_0至454_3。
这里,将描述分配给图64中使用的处理器的代码规则。在稍后描述的附图中,根据这里描述的规则分配附图标记。
在处理器符号后的括号中所示的符号中,左侧所示的符号f或fg指示处理器执行的操作。即,符号f指示滤波操作,并且符号fg指示输出操作。符号f或fg右侧的两个数字指示目标块的号码。另外,符号右侧的符号R指示读取操作,符号W指示操作和操作结果的写入操作。
在图64中,在相同的行中描述处理器CPU1和CPU2的操作以及由操作引起的要被读取和写入的存储体。
例如,符号CPU1(f01-R)指示处理器CPU1执行从接收缓冲器453的存储体453_0和453_1读取接收块0和接收块1的操作,以进行滤波操作。CPU1(f01-W)指示处理器CPU1执行在接收块0和接收块1之间执行滤波操作并将滤波操作的结果写入操作缓冲器454的存储体454_0的操作。
符号CPU1(fg01-R)指示处理器CPU1执行从操作缓冲器454的存储体454_0读取在接收块0和接收块1之间执行的滤波操作的结果的操作,以进行输出操作。另外,CPU1(fg01-W)指示处理器CPU1对在接收块0和接收块1之间执行的滤波操作的结果执行输出操作,并将输出操作写入操作缓冲器454_0的存储体454_2。
在比较实施例中,如图64中所示,在时段T1和T2中,处理器CPU1和CPU2可以读出接收块0和1以及接收块2和3,执行滤波操作,并且读出滤波操作结果,在时段T3中将其写入到输出操作和操作缓冲器454中。即,通过分别向处理器CPU1和CPU2分配并执行第一任务,可以执行帧中的头块的滤波操作和输出操作。因此,可以在SYNC0事件发生之前获得两个输出操作的结果。然而,直到完成处理器CPU1和CPU2对第一块的滤波操作和输出操作为止,不执行基于帧中的剩余块的滤波操作和输出操作,并且对剩余块的操作将从时间T4开始。结果,在SYNC事件发生之前,没有及时执行对构成帧的接收块的计算,并且违反了时序约束1。例如,为了防止发生违反时序约束1的情况,可以想到减慢SYNC0事件的生成。减慢SYNC0事件的发生将使整个系统的性能降级。
图1是示出与第一实施例有关的半导体装置的配置和使用该半导体装置的系统的示图。在该附图中,1图示了网络系统。网络系统1包括用于传送数据的数据传送装置、多个半导体装置,以及连接数据传送装置和多个半导体装置的网络线。为了避免使图复杂化,示出了网络系统包括数据传送装置3和三个半导体装置2_1至2_3。当然,网络系统中包括的半导体装置的数目和数据传送装置的数目不限于该数目。
尽管没有特别限制,但是在第一实施例中,数据传送装置3和半导体装置2_1至2_3以菊花链方式连接。即,数据传送装置3和半导体装置2_1(第一半导体装置)由网络传送线4_1连接,半导体装置2_1和半导体装置2_2(第三半导体装置)由网络线4_2连接,并且半导体装置2_2和半导体装置2_3(第二半导体装置)由网络线4_3连接。
从数据传送装置3传送到网络线4_1的传送数据包括用于指定要接收的半导体装置的标识符。当在传送数据中包括的标识信息与指定其自己的站的标识信息匹配时,半导体装置2_1至2_3中的每个半导体装置接收传送数据。另一方面,当在传送数据中包括的标识信息与本地站的标识信息不一致时(当标识信息不一致时),所提供的传送数据通过网络线传送到下一级的半导体装置。例如,如果传送数据包括标识半导体装置2_1的标识,则传送数据由半导体装置2_1接收。另一方面,当在传送数据中包括的标识信息与半导体装置2_1的标识信息不一致时,半导体装置2_1经由网络线4_2将所提供的传送数据传送到半导体装置2_2和2_3。以这种方式,所传送的数据将由在传送数据中包含的标识信息指定的半导体装置接收。数据传送装置3包括标识信息,该标识信息在传送数据中指定所有半导体装置2_1至2_3,使得所有半导体装置2_1至2_3可以接收相同的传送数据。
当半导体装置2_1至2_3将数据传送到数据传送装置3或另一半导体装置时,半导体装置2_1至2_3传送包括标识信息的数据,该标识消息指定要接收的半导体装置或数据传送装置3。这允许半导体装置将数据传送到数据传送装置3或其他半导体装置。在这种情况下,传送数据的半导体装置传送包括指定本站的标识信息和标识信息的数据。结果,数据传送装置3或已经接收数据的其他半导体装置可以指定已经传送了所接收的数据的半导体装置。
在第一实施例中,半导体装置2_1至2_3和数据传送装置3以菊花链形式连接,但是本发明不限于此。即,可以使用总线形网络连接或环形网络连接,其中数据传送装置3和数据传送半导体装置2_1至2_3连接到一条网络传送线。备选地,可以从数据传送装置3径向地提供网络线,并且可以将半导体装置连接到每个网络传送线。
在第一实施例中,半导体装置2_1至2_3具有类似的配置。因此,这里,将以半导体装置2_1为代表来描述半导体装置2_1至2_3的整个配置,并且稍后将描述不同之处。
半导体装置2_1包括通信装置5_1、调度装置10(ID1)、两个处理器CPU1和CPU2、地址转换电路13、总线交换机14、监控器电路(下文中还被称为存储器访问监控器电路)、以及存储器17和18。通信装置5_1包括以太网PHY电路(Ethernet PHY)6_1和6_2、以太网交换机(Ethernet Switch)7、以太网MAC(Ethernet MAC)8和计时器9。
以太网PHY电路6_1是在网络传送线4_1和以太网交换机7之间连接的接口电路,并且以太网PHY电路6_2是在网络线4_2和以太网交换机7之间连接的接口电路。以太网交换机7是用于在以太网PHY电路6_1和以太网MAC8之间、在以太网PHY电路6_2和以太网MAC8之间或者在以太网PHY电路6_1和6_2之间进行选择性地连接的交换机电路。以太网MAC8被提供有来自调度装置10(ID1)的用于指定半导体装置2_1的标识信息,但是标识信息没有特别限制。这里,符号ID1指示用于指定半导体装置2_1的标识信息(ID)。
经由以太网交换机7,从以太网PHY电路6_1和6_2向以太网MAC8提供数据,并且当所提供的数据包括与标识信息(ID1)匹配的标识信息时,所提供的数据被提供给调度装置10(ID)。当在所提供的数据中包括的标识信息与标识信息ID1不匹配时,以太网交换机7连接以太网PHY电路6_1和6_2。因此,当经由网络传送线4_1或4_2提供给半导体装置2_1的数据具有与标识信息(ID1)匹配的标识信息时,所提供的数据被提供给调度装置10(ID1)。另一方面,当所提供的数据中包括的标识信息与标识信息(ID1)不匹配时,从网络传送线4_1提供的数据被传送到网络线4_2,并且从网络线4_2提供的数据被传送到网络线4_1。
以太网MAC8将数据从调度装置10(ID1)传送到网络传送线4_1或4_2。尽管没有特别限制,但是调度装置10(ID1)提供添加了标识信息(ID1)的数据。以太网MAC8控制以太网交换机7使得在将数据传送到数据传送装置3时,要传送的数据被提供给以太网PHY电路6_1,并且以太网MAC8控制以太网交换机7使得在将数据传送到半导体装置2_2或2_3时,要传送的数据被提供给以太网PHY电路6_2。
以太网MAC8还包括用作主设备的DMA控制器。当来自网络传送线4_1或4_2的数据被传送到调度装置10(ID1)时,以及当数据被传送到网络线4_1或4_2时,数据由内置DMA控制器传输。半导体装置2_1包括作为主设备的两个处理器CPU1和CPU2,以及上面描述的DMA控制器。在下面的讨论中,当区分主设备时,处理器CPU1和CPU2被称为第一主设备,DMA控制器被称为第二主设备。
计时器9连接到电路MAC8,并控制半导体装置2_1至2_3和数据传送装置3,使得时间相同。从计时器9向调度装置10(ID1)提供在半导体装置2_1至2_3与数据传送装置3之间同步的时间信息,并且在半导体装置2_1至2_3中的每个半导体装置中的调度装置之间的时间信息相同。
调度装置10(ID1)包括任务输入/输出数据控制电路11和任务输入/输出数据控制寄存器12。调度控制电路10(ID1)连接到以太网MAC8、处理器CPU1、CPU2、地址转换电路13和监控器电路15。ID1 10将任务分配给处理器CPU1和CPU2,并控制处理器CPU1和CPU2执行所分配的任务。ID1 10控制以太网MAC8中的DMA控制器。由于输入/输出数据控制电路11和任务输入/输出数据控制寄存器12将在后面描述,因此这里将不再描述它们。
地址转换电路13基于来自调度装置10(ID1)的转换信息CNV,转换来自处理器CPU1和CPU2以及任务输入/输出数据控制电路11的地址信号Ad_1、Ad_2和Ad_D,并将经转换的地址信号Add_1、Add_2和Add_D输出到总线交换机14。
总线交换机14是3主设备/8从设备总线交换机。总线交换机14根据来自调度装置10(ID1)的总线控制数据BSC改变三个主设备和八个从设备之间的连接。这里的三个主设备对应于处理器CPU1、CPU2和以太网MAC8中的DMA控制器,并且八个从设备对应于构成存储器17和18的八个存储器存储体。
存储器17由四个存储器存储体17_0至17_3配置,并且存储器18也由四个存储器存储体18_0至18_3配置。即,存储器17的地址区域被划分为四个地址区域,并且所划分的四个地址区域是存储器存储体17_0至17_3。类似地,存储器18被划分为四个地址区域,并且所划分的地址区域是存储器存储体18_0至18_3。在下文中,存储器存储体还被称为存储体。
例如,根据总线控制信息BSC,总线交换机14将转换后地址信号Add_1从例如处理器CPU1提供给存储体18_0、将转换后地址信号Add_2从处理器CPU2提供给存储体18_1,并且将转换后地址信号Add_D从DMA控制器提供给存储体17_0。这些存储体18_0、18_1和17_0由处理器CPU1、CPU2和DMA控制器读取或写入。调度装置10(ID1)可以根据总线控制数据BSC任意切换与主设备相对应的从设备。
监控器15监控从总线交换机14提供给存储体17_0至17_3和18_0至18_3的转换后地址信号Add_1、Add_2和Add_D,并将监控结果提供给调度装置10(ID1)。在本说明书中,转换后地址信号意指用于指定特定地址的地址信号和用于指示读取或写入由地址信号指定的地址的控制信号(传输控制信息)两者。
半导体装置2_2包括与半导体装置2_1不同的标识信息(ID2),作为用于由调度装置10(ID2)指定半导体装置2_2的标识信息。结果,半导体装置2_2中的通信装置5_2将包括标识信息(ID2)的数据从网络传送线输出到调度装置10(ID2)。从通信装置10(ID2)传送到网络传送线的数据包括标识信息(ID2)。类似地,半导体装置2_3具有与半导体装置2_1和2_2不同的标识信息(ID3),作为由调度装置10(ID3)指定半导体装置2_3的标识信息。结果,半导体装置2_3中的通信装置5_3将包括标识信息(ID3)的数据从网络传送线输出到调度装置10(ID3)。从通信装置10(ID3)传送到网络传送线的数据包括标识信息(ID3)。
与比较示例类似,将通过采用对传送块0至4执行操作的示例作为示例来概述与第一实施例有关的半导体装置2_1至2_3的操作和网络系统1的操作。图2是示出与第一实施例有关的半导体装置和网络系统中的数据流的示图。图3和图4是示出与第一实施例有关的半导体装置的操作的流程图。这里,图3(A)、图3(B)和图3(C)示出了半导体装置2_1和2_3的操作,并且图4(A)、图4(B)和图4(C)示出了半导体装置2_2和2_3的操作。
如图2中所示,数据传送装置3包括通信装置3_1和传送缓冲器3_2。类似于图62中所示的传送缓冲器458,传送块0至4被存储在传送缓冲器3_2中,并且被通信装置3_1传送到网络线4_1。
半导体装置2_1和2_2两者都接收从数据传送装置3传送的传送块0至4。在半导体装置2_1和2_2中,存储器17用作接收缓冲器,存储器18用作传送缓冲器或算术缓冲器。在半导体装置2_1中,被包括在通信装置5_1中的DMA控制器将所接收的传送块0至4作为接收块0至4传输到存储器17,并且将其存储在接收缓冲器17中。类似地,在半导体装置2_2中,内置在通信装置5_1中的DMA控制器将所接收的传送块0至4作为接收块0至4传输到存储器17,并将其存储在接收缓冲器17中。
在半导体装置2_1中,调度装置10(ID1)控制处理器CPU1和CPU2,使得用于在接收块0和1之间执行滤波操作A的任务(用于滤波操作A的任务)被分配给处理器CPU1,以及用于在接收块2和3之间执行滤波操作A的任务被分配给处理器CPU2。另一方面,在半导体装置2_2中,调度装置10(ID2)控制处理器CPU1和CPU2,使得用于在接收块1和2之间执行滤波操作B的任务(用于滤波操作B的任务)被分配给处理器CPU1,以及用于在接收块3和4之间执行滤波操作B的用于滤波操作B的任务被分配给处理器CPU2。
在半导体装置2_1和2_2中,监控器15监控所接收的块到存储器17的写入。半导体装置2_1和2_2在步骤S101和S211中等待直到操作开始(图3(A)和图4(A)中的步骤S100和S200),构成帧的接收块0至4被写入存储器17中,并且帧接收结束事件发生。当帧接收终止事件发生时,在半导体装置2_1和2_2中执行步骤S102(图3(A))和S202(图4(A))。即,任务在半导体装置2_1和2_2中开始。
在步骤S102中,半导体装置2_1中的处理器CPU1和CPU2执行使用两个连续接收块的接收数据作为输入数据的滤波操作A,并将滤波操作结果作为传送块f01和f02写入用作传送缓冲器的存储器18中。类似地,在步骤S202中,半导体装置2_2中的处理器CPU1和CPU2执行使用两个连续接收块的接收数据作为输入数据的滤波操作B,并将滤波操作的结果作为传送块f12和f34写入用作传送缓冲器的存储器18中。
在半导体装置2_1和2_2中,在图3(B)和图4(B)的步骤S110和S210中,调度装置10(ID1)和10(ID2)开始传送存储在存储器18中的数据,该存储器18是传送缓冲器。即,调度装置10(ID1)和10(ID2)通过监控器电路15监控处理器CPU1和CPU2对存储器18的访问。通过监控,确定存储在存储器18中的未传送的数据的大小是否已经达到预先确定的阈值(数据量)。这里,预先确定的阈值是一帧的数据大小。当存储在存储器18中的未传送的数据的大小达到一帧时,过程从步骤S111和S211移动到步骤S112(图3(B))和S212(图4(B))。
在半导体装置2_1中,在步骤S112中,内置在通信装置5_1中的DMA控制器将存储在存储器18中的滤波操作A的操作结果传送到半导体装置2_3。类似地,在步骤S212中,包括在通信装置5_2中的DMA控制器在步骤S212中将存储在存储器18中的滤波操作B的操作结果传送到半导体装置2_3。即,在半导体装置2_1和2_2中的每个半导体装置中,当未传送的数据达到预先确定的阈值时,未传送的数据被自动传送到半导体装置2_3。在这种情况下,半导体装置2_1和2_2传送包括以下的数据:指定半导体装置2_3的标识信息(ID3)以及作为传送源的半导体装置2_1和2_2的标识信息(ID1和ID2)。
在半导体装置2_3中,调度装置10(ID3)使用滤波操作A和B的操作结果作为处理器CPU1和CPU2的输入数据,来分配用于执行输出操作A和输出操作B的任务(用于输出操作A的任务和用于输出操作B的任务)。
在半导体装置2_3中,过程在步骤S310(图3(C))和320(图4(C))中开始。即,调度装置10(ID3)通过使用监控器电路15来监控对构成接收缓冲器的存储器17的访问。调度装置10(ID3)通过监控器电路15来监控从半导体装置2_1和2_2被传送到半导体装置2_3时未传送的数据作为接收块f01、f12、f23和f34存储在构成接收缓冲器的存储器17中。根据该监控,半导体装置2_3在步骤S311(图3(C))和步骤S321(图4(C))中等待,直到存储用于一帧的输入数据。
当用于一帧的输入数据被存储在存储器17中时,在半导体装置2_3中,调度装置10(ID3)开始针对处理器CPU1和CPU2的输出操作A任务和输出操作B任务。即,调度装置10(ID3)使处理器CPU1对从半导体装置2_1接收的接收块f01和f12执行输出操作A。调度装置10(ID3)使处理器CPU2对从半导体装置2_2接收的接收块f23和f34执行输出操作B。输出操作A和B的操作结果fg01、操作结果fg23、操作结果fg12和操作结果fg34被处理器CPU1和CPU2写入到构成传送缓冲器的存储器18中,并被提供给输出装置。尽管没有特别限制,但输出装置将所提供的操作结果传送到数据传送装置3。
在半导体装置2_3中,如在图3(C)和图4(C)中所示,在步骤S313和步骤S323中,确定在SYNC0事件发生之前是否完成了要执行的输出操作A和B,并且当输出操作A和B未完成时,过程返回到步骤S311和步骤S321,并且重复这些步骤。当要执行的输出操作A和B完成时,在步骤S314和步骤S324中,验证输出装置并验证输出数据。
以这种方式,在第一实施例中,滤波操作A和B在半导体装置2_1和2_2中并行执行,并且当滤波操作结果超过预先确定的阈值时,包括半导体装置2_3的标识信息的标识信息被自动传送。在半导体装置2_3中,当来自半导体装置2_1和2_2的滤波操作结果以执行输出操作所需的大小而被存储在接收缓冲器中时,优先开始用于输出操作A的任务和用于输出操作B的任务。
即,超过在一个半导体装置中包括的处理器的数目的任务被分发并分配给多个半导体装置。结果,可以并行执行超过处理器的数目的任务,并且可以抑制性能降级。
图5是与第一实施例有关的网络系统的时序图。图5与在比较示例1中描述的图64类似。在图5中,构成传送缓冲器的存储器18对应于图64中所示的操作缓冲器。在第一实施例中,如图5中所示,与时段T1和T2中的滤波操作有关的操作由半导体装置2_1执行。与时段T4和T5中的滤波操作有关的操作被移动到半导体装置2_2并由半导体装置2_2执行。另外,与时段T3和T6中的输出操作有关的操作被移动到半导体装置2_3并由半导体装置2_3执行。
在比较示例中,由于与在时段T4和T5中执行的滤波操作有关的操作被移动到半导体装置2_2,因此在时段T1和T2中,在半导体装置2_2中可以执行与滤波操作有关的操作。另外,在比较示例中,由于与在时段T3和T6中执行的输出操作有关的操作被移动到半导体装置2_3,所以在时段T1和T2之后,半导体装置2_3可以执行与所移动的输出操作有关的操作。这使得可以满足时序约束1。
首先,将描述半导体装置2_1至2_3中的存储器17和18的分配。图6和图7是用于说明与第一实施例有关的半导体装置的存储器的分配的示图。图6示出了半导体装置2_1和2_2的存储器17和18的分配,图7示出了半导体装置2_3的存储器17和18的分配。
在半导体装置2_1和2_2中,如图6中所示,存储器17被分配到逻辑地址00000H(H指示十六进制符号;以下相同)至0FFFFH的地址区域。存储体17_0至17_3中的每个存储体被分配到该地址区域,以具有1KB的地址区域。另一方面,半导体装置2_1和2_2的存储器18被分配到逻辑地址10000H到1FFFFH的地址区域。存储体18_0至18_3中的每个存储体被分配到该地址区域,以具有0.25KB的地址区域。
在半导体装置2_3中,如图7中所示,存储器17被分配到逻辑地址00000H到0FFFFH的地址区域,并且存储体17_0到17_3被分配到该地址区域,以便分别具有0.25KB的地址区域。另一方面,半导体装置2_3的存储器18被分配到逻辑地址10000H到1FFFFH的地址区域,并且存储体18_0到18_3被分配到该地址区域,以便分别具有1KB的地址区域。
即,在半导体装置2_1和2_2中,在构成接收缓冲器的存储器17中以1KB为单位切换存储体,并且在构成传送缓冲器的存储器18中以0.25KB为单位切换存储体。另一方面,在半导体装置2_3中,在构成接收缓冲器的存储器17中,以0.25KB为单位切换存储体,并且在构成传送缓冲器的存储器18中,以1KB为单位切换存储体。
(半导体装置2_1和2_2的存储器地址区域)
图8至图11是图示与第一实施例有关的半导体装置的存储器地址区域的示图。这里,图8示出了对应于用于滤波操作A的任务的半导体装置2_1中的存储器17的地址区域,图9示出了对应于用于滤波操作A的任务的半导体装置2_1中的存储器18的地址区域。图10示出了对应于用于滤波操作B的任务的半导体装置2_2中的存储器17的地址区域,图11示出了对应于用于滤波操作B的任务的半导体装置2_2中的存储器18的地址区域。
当半导体装置2_1从数据通信装置3接收数据时,通信装置5_1将所接收的数据写入构成半导体装置2_1的存储器17的存储体17_0至17_3的块0至4中,如图8中所示的那样。半导体装置2_1的处理器CPU1读取存储在块0和块1中的数据,并且处理器CPU2读取存储在块2和块3中的数据。处理器CPU1执行在从块0读取的数据和从块1读取的数据之间的滤波操作A。类似地,处理器CPU2执行在从块2读取的数据和从块3读取的数据之间的滤波操作A。存储在块4中的数据是要在以下滤波操作A中计算的数据。
半导体装置2_1的处理器CPU1将滤波操作A获得的操作结果写入到存储体18_0和18_1的块0至3,如图9中所示的那样。另一方面,处理器CPU2将滤波操作A获得的操作结果写入到存储体18_2和18_3的块4至7,如图9中所示的那样。在半导体装置2_1中,存储器17的块的大小是1KB,并且存储器18的块的大小是0.25KB。
图10与图8类似,并且图11与图9类似。半导体装置2_2中的通信装置5_2将所接收的数据写入到存储器17的存储体17_0至17_3中的块0至4中,如图10中所示的那样。半导体装置2_2的处理器CPU1从块1和块2读取数据,并执行滤波操作B。处理器CPU2还从块3和块4读取数据,并执行滤波操作B。再次,存储在块中的数据0指示在其他操作中使用的数据。
半导体装置2_2的处理器CPU1将滤波操作B获得的操作结果写入到存储体18_0和18_1的块0至3,如图11中所示的那样。另一方面,处理器CPU2将滤波操作B获得的操作结果写入存储体18_2和18_3的块4至7中,如图11中所示的那样。同样地,在半导体装置2_2中,存储器17的块的大小是1KB,并且存储器18的块的大小是0.25KB。
在图8至图11中,地址区域由物理地址指示。来自处理器CPU1和CPU2的地址信号被地址转换器13转换成逻辑地址。此时,根据图8至图11中所示的转换等式(例如,在图8中,块m的逻辑地址=2000H+400H×m)执行转换,并且来自处理器CPU1、CPU2的物理地址被转换为逻辑地址,该逻辑地址指定块。
图12至图15是图示与第一实施例有关的半导体装置2_1和2_2的任务输入/输出数据控制寄存器的配置的示图。任务输入/输出数据控制寄存器12包括多个寄存器。即,任务输入/输出数据控制寄存器12包括传输监控区域0设置寄存器:700_0、传输监控区域1设置寄存器:700_1、任务输入/输出数据传输控制寄存器0:701_0、任务输入/输出数据区域0设置寄存器:702_0、任务输入/输出数据区域1设置寄存器:702_1以及任务开始条件设置寄存器0:703_0,其中名称和符号之间的符号表示中断。这里,图12和图13图示了设置在半导体装置2_1中的任务输入/输出数据控制寄存器12,并示出了被配置成执行<操作概要>中描述的操作的状态。图14和图15示出了设置在半导体装置2_2中的任务输入/输出数据控制寄存器12,其被设置为执行<操作概要>中描述的操作的状态。
利用图12和图13中所示的任务输入/输出数据控制寄存器12作为示例,将描述构成任务输入/输出数据控制寄存器12的每个寄存器。
传输监控区域0设置寄存器:700_0是当构成接收缓冲器的存储器17用作目标存储器时,并且当检测到对目标存储器的访问和/或使用目标存储器作为任务输入/输出数据区域的任务开始时,用于对块分配顺序设置约束的寄存器。传输监控区域1设置寄存器:700_1是在构成传送存储器的存储器18被设置为目标存储器并且检测到对目标存储器的访问和/或使用目标存储器作为任务输入/输出数据区域的任务开始时,用于对块分配顺序设置约束的寄存器。当传输监控区域0设置寄存器:700_0和传输监控区域1设置寄存器:700_1检测到对目标存储器的访问时,和/或当使用目标存储器作为任务输入/输出数据区域的任务开始时,如在相应的“目标区域的块分配约束”中所描述的那样执行块分配。即,在存储器17中,从块0开始按顺序分配块,同时从存储体17_0开始按顺序以块为单位切换从设备。即,设置为按顺序从存储体17_0开始选择从设备,并按顺序从接收块0开始存储接收块。另一方面,如“目标区域的块分配约束”中所述,存储器18被设置为与存储器17不同。
传输监控区域0设置寄存器700_0被设置使得在首次写入(写入)到作为目标存储器的存储器17中的块未分配区域时自动执行块分配。另一方面,自动块分配没有被设置在传输监控区域1设置寄存器700_1中。传输监控区域0设置寄存器700_0的目标区域的每块的字节数被设置为1KB(1024字节),并且传输监控区域1设置寄存器700_1的目标区域的每块的字节数被设置为0.25KB(256字节)。在传输监控区域0设置寄存器:700_0和传输监控区域1设置寄存器:700_1中,目标区域的每个标志的字节数被设置为1。标志将在后面参考图35至图56等进行描述。
在任务输入/输出数据传输控制寄存器0:701_0中,设置读取(读取)检测区域(传输目的地)、读取任务(传输目的地)、写入检测区域(传输源)、写入任务(传输源)、每帧的最大传输字节数、传输开始触发1和传输开始触发2。这里,传输目的地的半导体装置2_3的传输监控区域0被设置在读取检测区域(传输目的地)中。即,在读取检测区域(传输目的地)中,设置指定传输目的地的半导体装置2_3的标识信息和指定传输监控区域0的地址区域的地址信息。用于输出操作A的任务(其是由半导体装置2_3执行的任务)被设置为读取任务(传输目的地)。
半导体装置2_1中的传输监控区域1被设置为写入检测区域(传输源)。即,在写入检测区域(传输源)中,设置指定半导体装置2_1的标识信息和指定传输监控区域1的地址区域的地址信息。用于滤波操作A的任务(其是在半导体装置2_1中执行的任务)被设置为写入任务(源)。每帧的最大传输字节数设置为512。当任务输入/输出数据等于或大于每帧的最大传输字节数时,设置传输开始触发1,并且当写任务结束或进入暂停状态时设置传输开始触发2。传输开始触发1意指,在半导体装置2_1中,当传输监控区域1(即存储器18)中的写入传输检测标记和读取传输检测标记之间的差的总和变为等于或大于最大传输字节数512时,传输开始。
在任务输入/输出数据区域0设置寄存器702_0和任务输入/输出数据区域1设置寄存器702_1中,设置要输入/输出的任务、输入/输出(输入或输出)的区别、输入/输出数据区域、任务启动时的自动分配块号码的初始值以及任务启动时的自动分配块的数目。由于在半导体装置2_1中开始的任务是用于滤波操作A的任务,因此用于滤波操作A的任务被设置为用于执行输入/输出的任务。传输监控区域0被设置在任务输入/输出数据区域0设置寄存器702_0的输入/输出数据区域中,并且传输监控区域1被设置在任务输入/输出数据区域1设置寄存器702_1的输入/输出数据区域中。由于目标存储器是存储器17,所以传输监控区域0的输入被设置为输出数据区域0设置寄存器702_0的输入和输出之间的区别。另一方面,在传输监控区域1中,由于目标存储器是存储器18,所以输出被设置为输出数据区域1设置寄存器702_1的输入和输出之间的区别。
另外,0被设置为在任务输入/输出数据区域0设置寄存器702_0和任务输入/输出数据区域1设置寄存器702_1中在任务启动时自动分配块号码的初始值。并且2和4被设置为在任务启动时自动分配块的数目。
任务启动条件设置寄存器0:703_0设置有要开始的任务、启动函数的名称、并行启动的数目、启动函数的参量、任务启动触发和任务暂停触发。在半导体装置2_1中,由于通过使用两个处理器CPU1和CPU2执行用于滤波操作A的任务,因此要开始的任务被设置为用于滤波操作A的任务,并且并行开始的数目被设置为2。激活函数的名称设置为f,并且如图中所示的那样设置激活函数的参量。在半导体装置2_1中,由于响应于帧接收结束事件的发生而开始任务,因此帧接收结束事件发生的时间被设置为任务开始触发。由于未具体定义用于暂停用于滤波操作A的任务的触发,因此未设置任务暂停触发。
图14和图15中所示的半导体装置2_2的任务输入/输出数据控制寄存器12的配置与图12和图13的配置相同。在图14和图15中所示的任务输入/输出数据控制寄存器12中,由于对应的半导体装置是半导体装置2_2,所以在任务输入/输出数据传输控制寄存器0:701_0中设置半导体装置2_2(标识数据ID2)代替半导体装置2_1。如图2中所示,在半导体装置2_2中,由于从接收块1开始按顺序执行用于滤波操作B的任务,所以在任务输入/输出数据区域0设置寄存器702_0中,在任务启动时,自动分配块号码的初始值被设置为1。另外,在半导体装置2_2的任务输入/输出数据控制寄存器12中,不是用于滤波操作A的任务而是用于滤波操作B的任务被设置为任务。
在半导体装置2_1和半导体装置2_2的寄存器设置操作中,通过执行软件来设置调度装置10(ID1)和10(ID2)中的寄存器。图16和图17是示出与第一实施例有关的半导体装置中的设置操作的流程图。这里,图16示出了半导体装置2_1中的操作,图17示出了半导体装置2_2中的操作。
在图16的S90中,开始调度装置10(ID1)的设置。在半导体装置2_1中,执行用于滤波操作A的任务。因此,在S91中,半导体装置2_1中的调度装置10(ID1)设置与用于滤波操作A的任务的控制有关的寄存器。在步骤S90中,如在图12和图13中所示的那样设置半导体装置2_1中的任务输入/输出数据控制寄存器12。接着,在步骤S92中,验证监控器电路15对传输监控区域0和1(存储器17和18)的监控。在步骤S93中,验证传输控制,以便根据在图12中所示的任务输入/输出数据传输控制寄存器0中设置的内容执行传输控制。另外,在S94中,通过帧接收结束事件来验证用于滤波操作A的任务的激活。此后,在S95中,半导体装置2_1中的调度装置10(ID1)的设置结束。
对于半导体装置2_2,执行与半导体装置2_1相同的步骤,如图17中所示的步骤S100~S105。图16和图17之间的不同之处在于:在图17中,在步骤S101中设置与用于滤波操作B的任务相关的寄存器,并且此时,如图14和图15中所示的那样设置任务输入/输出数据控制寄存器12。
现在将描述半导体装置2_1和2_2中的任务启动,并且将描述半导体装置2_1和2_2中的任务启动操作。在半导体装置2_1中,开始用于滤波操作A的任务,并且在半导体装置2_2中,开始用于滤波操作B的任务。当开始并执行用于滤波操作A的任务和用于滤波操作B的任务时,滤波操作结果被存储在半导体装置2_1和2_2中的传送缓冲器(操作缓冲器)中。
图18和图19是示出与第一实施例有关的半导体装置中的任务开始操作的流程图。这里,图18示出了半导体装置2_1中的任务启动操作,图19示出了半导体装置2_2中的任务启动操作。被包括在半导体装置2_1和2_2中的任务输入/输出数据控制电路11执行图18和图19中所示的控制。由于图18和图19类似,因此将首先描述图18,然后描述图18和图19之间的不同之处。
在图18中,任务开始操作在步骤S110开始。接下来,在步骤S111中,任务等待直到用于滤波操作A的任务的激活被验证。当用于滤波操作A的任务的激活被验证时,执行步骤S112。在步骤S112中,指示接收块的号码的变量m和指示传送块的号码的变量n被设置为0。此后,在步骤S113中,等待帧接收终止事件发生。帧接收完成事件的发生用作开始用于滤波操作A的任务的开始触发。
如果检测到激活触发,则执行步骤S114。在步骤S114中,指示并行开始的数目的变量c被设定为0。之后,执行步骤S115。
在步骤S115中,用于从块m开始的两个块的逻辑地址被分配为针对用于滤波操作A的任务的任务输入数据区域。另外,用于从块n开始的四个块的逻辑地址被分配为针对用于滤波操作A的任务的任务输出数据区域。结果,当开始用于滤波操作A的任务时,存储器17中的从块m开始的两个块成为用于滤波操作A的任务的输入数据,并且滤波操作A的操作结果被写入存储器18中的从块n开始的四个块中。另外,相应的地址区域的开始地址,即任务输入数据区域和任务输出数据区域被设置为用于滤波操作A的任务的激活函数f的参量。上面描述的两个块和四个块是在任务启动时自动分配的块的数目,并且是在图13中所示的任务输入/输出数据区域0设置寄存器702_0和任务输入/输出数据区域1设置寄存器702_1中设置的块的数目。
在步骤S115中,当完成对激活函数f的参量的设置时,执行步骤S116。在该步骤S116中,开始用于滤波操作A的任务。接下来,在步骤S117中,更新变量c、m和n。即,执行c=c+1、m=m+2和n=n+4的计算。这里,2和4是上面描述的块的数目。
接下来,执行步骤S118。在步骤S118中,基于变量c的值确定并行激活的数目是否等于或小于2。如果并行激活的数目是2或更少,则过程返回到步骤S115,并且重复步骤S115~S118,直到并行激活的数目超过2。另一方面,当并行激活数目超过2时,过程返回到步骤S113,等待在步骤S113中发生任务激活触发。在第一实施例中,由于半导体装置2_1包括两个处理器CPU1和CPU2,因此并行启动的数目可以设置为2。
如上所述,使用两个连续接收块(1KB)的接收数据来执行滤波操作A,并且滤波操作的结果被写入四个传送块(0.25KB)中。
同样地,在半导体装置2_2中,用于滤波操作B的任务由与图18中所示的步骤S110~S118类似的步骤S120~S128(图19)开始。在半导体装置2_2中执行的步骤S120~S128与步骤S110~S118的不同之处在于:目标任务是用于滤波操作B的任务,并且在步骤S122中设置的变量m是1而不是0。变量m被设置为1,因为半导体装置2_2从接收块1而不是从接收块0开始执行滤波操作B,如图2中所示。
存储在半导体装置2_1和2_2的传送缓冲器(操作缓冲器)中的滤波操作结果被传送(传输)到半导体装置2_3。接下来,将描述传送半导体装置2_1和2_2中的滤波操作结果(任务输出数据)的操作。图20和图21是示出与第一实施例有关的半导体装置中的传送操作的流程图。这里,图20示出了半导体装置2_1中的传送操作,图21示出了半导体装置2_2中的传送操作。图20和图21中所示的控制由半导体装置2_1和2_2中设置的任务输入/输出数据控制电路11执行。
由于图20和图21彼此类似,参考图20,将描述半导体装置2_1中的传送操作,此后,将参考图21描述与半导体装置2_2中的传送操作的不同之处。
在图20的步骤S130中,开始传送操作。接下来,在步骤S131中,任务等待,直到通过设置图12中所示的任务输入/输出数据传输控制寄存器0:701_0而使传输控制变为有效。当传输控制变为有效时,在步骤S132中,等待传输开始触发1和传输开始触发2发生。
例如,当生成传输开始触发1时,执行步骤S133。在步骤S133中,提取其中地址区域未被传输的写入检测区域(作为传输源的半导体装置2_1的传输监控区域1)中的所有块。这里,具有未被传输的地址区域的块意指其中存在“c.未引用标志”=“a.写入标志”-“b.读取标志”不是0的地址的块。上面描述的未引用标志、写入标志和读取标志稍后在图35至图56等中示出,但是写入标志被附加到已经执行了写入的地址,读取标志被附加到已经执行了读取的地址,并且未引用标志被附加到已经执行了写入并且尚未执行读取的地址。为此,在步骤S133中,监控器15监控构成传送缓冲器的存储器18,并且提取其中存在已经对其执行写入并且尚未对其执行读取的地址的所有块。
接下来,执行步骤S134。在步骤S134中,创建一列表,在该列表中,以传送顺序重新排列由S133提取的块号码的列表(在下文中,被称为以传送顺序的块号码列表)。作为重新排列块号码的方法,存在下面描述的第一到第四方法。这里,考虑与排序方法中的每个排序方法相对应的优先级评估函数,并且在步骤S134中,假定基于优先级评估函数以优先级的降序执行块号码的排序。
第一种方法适用于以下情况:期望优先传送其中存储有在传送缓冲器中具有长停留时间的数据的块。当采用第一种方法时,优先级评估函数fp1是fp1=tc-twe,其中当前时间为tc并且最后写入时间为twe。这里,当前时间tc是从计时器9提供给调度装置10(ID1)的时间信息,并且当前时间tc在半导体装置2_1至2_3与数据传送装置3之间同步。最后写入时间twe是在将稍后描述的图41至图46中的项目的CTB7中设置的值。另外,假设tc和twe在未来时间分别比在过去时间更大,并且fp1值越高,优先级越高。
第二种方法适用于以下情况:期望优先传送其中存储有由具有严格时序约束的任务引用的数据的块。当采用第二种方法时,通过使用当前时间tc,优先级评估函数fp2被设置为fp2=tc-tlm,其中tlm是必须完成引用要传送的数据的任务的时间。当采用第二种方法时,tlm的设置字段被添加到图12的任务输入/输出数据传输控制寄存器0:701_0。当多个任务引用存储在某个传输监控区域中的数据时,tlm使用任务的时间约束,该任务必须在引用存储在一个传输监控区域中的数据的所有任务中最早终止。假定tlm具有比之前的时间更大的值,当没有时间约束违反时,关系tlm≥tc成立,并且fp2变为负值或0。fp2的值越高,优先级越高。
第三种方法适用于以下情况:期望优先传送其中存储有由具有高执行优先级的任务引用的数据的块。当采用第三种方法时,优先级评估函数fp3是函数fp3=pr,其中引用要传送的数据的任务的执行优先级是pr。当采用第三种方法时,pr的设置字段被添加到图12的任务输入/输出数据传输控制寄存器0:701_0并被设置。这里,pr和fp3的值越高,优先级越高。
第四种方法适用于期望通过组合第一种方法、第二种方法和第三种方法来确定优先传送的块的情况。当根据第一种方法的评估结果的权重是w1、根据第二种方法的评估结果的权重是w2,以及根据第三种方法的评估结果的权重是w3时,当采用第四种方法时,优先权评估函数fp4是fp4=w1×fp1+w2×fp2+w3×fp3。这里,分别将任意实数设置为上述w1至w3中的权重。可以与任意事件同步地改变w1至w3的值。
例如,在第一实施例中,为了满足时序约束1,采用第四种方法,并且执行以下设置。当传送/接收结束事件发生时,设置w1=1、w2=1以及w3=0。当SYNC0事件发生时,设置w1=0、w2=0以及w3=1。当SYNC0事件发生时,在半导体装置2_1和半导体装置2_2中的每个半导体装置的任务输入/输出数据传输控制寄存器0中提供的tlm设置下一个SYNC0事件发生的时间。由于SYNC0事件与计时器9同步地以恒定周期发生,因此如上面所描述的,当SYNC0事件发生时,可以设置下一个SYNC0事件发生的时间。在半导体装置2_1和半导体装置2_2中的每个半导体装置的任务输入/输出数据传输控制寄存器0中提供的pr可以被设置为任何值,但是这里设置表示最低优先级的0。通过这些设置,通过在传送/接收结束事件和SYNC0事件之间的时段中组合第一种方法和第二种方法,来确定要以与时序约束1对应的优先级传送的块。另外,在除了传送/接收结束事件和SYNC0事件之间的时段之外的时段中确定在第三种方法中要优先传送的块。通过执行这些设置,例如,即使当大大超过CPU的数目的任务在半导体装置2_1和半导体装置2_2上并行操作时,也可以利用与相应的任务的时序约束相对应的优先级来确定要传送的块。
接下来,执行步骤S135。在步骤S135中,按照在步骤S134中创建的传送顺序中的块号码列表的顺序提取连续的未被传输的地址区域。对于每个提取的地址区域,创建数据报,对其添加所提取的地址区域的头地址(逻辑地址)和所提取的地址区域的区域大小(字节数)的报头信息。在下文中,所创建的数据报将按顺序被称为数据报0、数据报1、数据报2…。
在接下来的步骤S136中,其中组合了数据报0、数据报1、数据报2…的数据(下文中称为传送数据报)被创建,使得区域大小的总和(其是数据报的报头信息)不超过每帧的最大传输字节数(参见图12中的任务输入/输出数据传输控制寄存器0:701_0)。
在步骤S137中,包括读取检测区域的目的地信息(半导体装置2_3中的传输监控区域0作为传输目的地)的网络报头被添加到在步骤S136中创建的传送数据报,以创建传送帧。在图12中所示的任务输入/输出数据传输控制寄存器701_0中设置读取检测区域,并且目的地信息包括用于指定传输目的地的半导体装置的标识信息ID3和用于指定传输监控区域0的地址区域的地址信息。
在步骤S138中,使用被包括在通信装置5_1中的DMA控制器。所创建的传送帧被传送到半导体装置2_3。在步骤S138之后,过程返回到步骤S132,并且当检测到传输开始触发1或传输开始触发2的发生时,重复上述步骤。
在半导体装置2_2中,执行类似于步骤S130~S138(图20)的步骤S140~S148(图21)。图21和图20之间的不同之处在于:在图21中,半导体装置2_2将传送帧传送到半导体装置2_3,并且在步骤S147中,添加到传送数据报的目的地信息是半导体装置2_3的传输监控区域1。
在图20的S133~S137和图21的S143~S147中,尽管通过细分处理的一部分来并行执行处理的一部分或者改变执行处理的一部分的顺序可以缩短执行时间,但是在附图中按顺序描述按顺序执行每个处理的流程,以便使处理的流程易于理解。
接下来,将描述半导体装置2_3。在半导体装置2_3中,对从半导体装置2_1接收的滤波操作结果执行用于输出操作A的任务,并且对从半导体装置2_2接收的滤波操作结果执行用于输出操作B的任务。
在半导体装置2_3的存储器17和18中,设置与用于输出操作A的任务相对应的地址区域(传输监控区域)和与用于输出操作B的任务相对应的地址区域(传输监控区域)。图22至图25是用于说明与第一实施例有关的半导体装置的存储器地址区域的示图。这里,图22示出了与用于输出操作A的任务相对应的存储器17的地址区域(传输监控区域0),图23示出了与用于输出操作A的任务相对应的存储器18的地址区域(传输监控区域1)。图24示出了与用于输出操作B的任务相对应的存储器17的地址区域(传输监控区域2),图25示出了与用于输出操作B的任务相对应的存储器18的地址区域(传输监控区域3)。
如图22和图24中所示,存储器17的地址区域由以0.25KB为单位的存储体17_0至17_3组成。如图23和图25中所示,存储器18的地址区域由以1KB为单位的存储体18_0至18_3组成。在图22至图25中,存储器17和18的地址区域由物理地址表示,但是被地址转换电路13转换成逻辑地址。每个存储体中的块的逻辑地址根据每个附图中所示的转换公式转换。例如,在图22中,块m的逻辑地址=20000H+100H×m。
在构成存储器17的存储体17_0至17_3中,存储体17_0和17_1对应于关于来自半导体装置2_1的操作结果的用于输出操作A的任务,并且存储体17_2和17_3对应于关于来自半导体装置2_2的操作结果的用于输出操作B的任务。在构成存储器18的存储体18_0至18_3中,存储体18_0和18_2对应于用于输出操作A的任务,并且存储由用于输出操作A的任务产生的输出操作结果。另一方面,存储体18_1和18_3对应于用于输出操作B的任务,并且存储由用于输出操作B的任务产生的输出操作结果。
在半导体装置2_1中执行的用于滤波操作A的任务的操作结果被写入半导体装置2_1的存储器18中的存储体(写入),并且如图22中所示,所写入的操作结果从半导体装置2_1被传送到半导体装置2_3,并且被半导体装置2_3中的处理器读取(读取)。例如,在图22的存储体17_0中的块0中,在半导体装置2_1中,由处理器CPU1写入半导体装置2_1的存储体的操作结果的数据被传输到半导体装置2_3,并且该数据被写入块0。写入块0中的数据被半导体装置2_3中的处理器CPU1读取。这同样适用于图22中所示的其余块1至7。
在半导体装置2_3中,如图23中所示,处理器CPU1、CPU2对从块0到7读取的数据执行用于输出操作A的任务,并且处理器CPU1将操作结果写入存储体18_0的块0。类似地,如图23中所示,处理器CPU2将操作结果写入存储体18_2的块1。
另一方面,如图24所示,在半导体装置2_2中执行的用于滤波操作B的任务的操作结果被写入半导体装置2_2的存储器18的存储体中(写入),并且所写入的操作结果从半导体装置2_2被传输到半导体装置2_3,并且被半导体装置2_3中的处理器读取(读取)。例如,在图24的存储体17_2中的块0中,在半导体装置2_2中,由处理器CPU1写入半导体装置2_2的存储体的操作结果的数据被传送到半导体装置2_3,并且数据被写入块0。写入块0中的数据被半导体装置2_3中的处理器CPU1读取。这同样适用于图24中所示的其余块1至7。
在半导体装置2_3中,如图25中所示,处理器CPU1、CPU2对从块0到7读取的数据执行用于输出操作B的任务,并且处理器CPU1将操作结果写入到存储体18_1的块0。类似地,如图25中所示,处理器CPU2将操作结果写入存储体18_3的块1。
结果,已经对其执行了滤波操作和输出操作的数据被获取。
(半导体装置2_3任务输入/输出数据控制寄存器)
图26至29示出了与第一实施例有关的半导体装置的任务输入/输出数据控制寄存器的配置。由于图26至图29中图示的半导体装置2_3的任务输入/输出数据控制寄存器12与图12至图15类似,因此主要描述不同之处。
半导体装置2_1和2_2中的每个半导体装置具有两个传输监控区域0设置寄存器700_0和传输监控区域1设置寄存器700_1作为传输监控区域设置寄存器,但是半导体装置2_3是传输监控区域设置寄存器。提供四个传输监控区域设置寄存器。即,半导体装置2_3包括传输监控区域0设置寄存器:700_0、传输监控区域1设置寄存器:700_1、传输监控区域2设置寄存器:700_2以及传输监控区域3设置寄存器:700_3。
在传输监控区域0设置寄存器:700_0中,目标存储器是图22中所示的存储器17的存储体17_0和17_1,并且在传输监控区域1设置寄存器700_1中,目标存储器是图23中所示的存储器18的存储体18_0和18_2。另外,在传输监控区域2设置寄存器:700_2中,目标存储器是图24中所示的存储器17的存储体17_2和17_3,并且在传输监控区域3设置寄存器700_3中,目标存储器是图25中所示的存储器18的存储体18_1和18_3。如图22至图25中所示,当操作半导体装置2_3时,传输监控区域0设置寄存器700_0至传输监控区域3设置寄存器:700_3中的“目标区域的块分配约束”如图22和图25中所示。另外,在不需要设置的情况下,设置目标区域的自动块分配触发,并且还如图26和图28中所示的那样设置目标区域的每块的字节数和目标区域的每个标记的字节数。
在半导体装置2_1和2_2中,提供一个任务I/O数据传输控制寄存器0:701_0作为任务I/O数据传输控制寄存器,而半导体装置2_3包括两个任务I/O数据传输控制寄存器0:701_0和701_1作为任务I/O数据传输控制寄存器。
在任务输入/输出数据传输控制寄存器0:701_0中,半导体装置2_3的传输监控区域0(图22)被设置为读取检测区域(传输目的地),并且半导体装置2_3的用于输出操作A的任务被设置为读取任务(传输目的地)。半导体装置2_1的传输监控区域1被设置在写入检测区域(传输源)中,并且半导体装置2_1的用于滤波操作A的任务被设置为写入任务(传输源)。另一方面,在任务输入/输出数据传输控制寄存器1:701_1中,半导体装置2_3的传输监控区域2(图24)被设置为读取检测区域(传输目的地),并且半导体装置2_3的用于输出操作B的任务被设置为读取任务(传输目的地)。半导体装置2_2的传输监控区域1被设置在写入检测区域(传输源)中,并且半导体装置2_2的用于滤波操作B的任务被设置为写入任务(传输源)。
在任务输入/输出数据传输控制寄存器0:701_0和任务输入/输出数据传输控制寄存器1:701_1中,每帧的最大传输字节数被设置为512,并且如图26和图28中所示的那样设置传输开始触发1和2。
半导体装置2_1和2_2具有两个任务I/O数据区域0设置寄存器702_0和任务I/O数据区域1设置寄存器702_1作为任务I/O数据区域设置寄存器,但是半导体装置2_3具有四个任务I/O数据区域设置寄存器作为任务I/O数据区域设置寄存器。即,半导体装置2_3包括任务输入/输出数据区域0设置寄存器:702_0、任务输入/输出数据区域1设置寄存器:702_1、任务输入/输出数据区域2设置寄存器:702_2以及任务输入/输出数据区域3设置寄存器:702_3。
作为任务输入/输出数据区域0设置寄存器702_0至任务输入/输出数据区域3设置寄存器:702_3的输入/输出数据区域,传输监控区域0至3(图22至图25)被设置。如图27和图29中所示的那样设置待输入/输出的任务的初始值、输入或输出(输入/输出)、任务启动时自动分配的块号码以及任务启动时的自动分配块数目。
另外,半导体装置2_1和2_2具有一个任务激活条件设置寄存器0:703_0作为任务激活条件设置寄存器,但是半导体装置2_3具有两个任务激活条件设置寄存器0:703_0和任务激活条件设置寄存器1:703_1。如图27和图29中所示的那样设置启动目标任务、启动函数的名称、并行启动的数目、启动函数的参量、任务启动触发以及任务暂停触发。
半导体装置2_1和2_2的任务输入/输出数据控制寄存器12可以具有与半导体装置2_3相同的配置,并且在半导体装置2_1和2_2中,可以如参考图12至图15所描述的那样设置构成任务输入/输出数据控制寄存器的寄存器中的一些寄存器。
同样地,在半导体装置2_3中,通过执行软件来设置调度装置10(ID3)中的寄存器等。图30是示出与第一实施例有关的半导体装置中的设置操作的流程图。
在图30的步骤S210中,开始调度装置10(ID3)的设置。半导体装置2_3执行用于输出操作A和用于输出操作B的任务。因此,在步骤S211中,在半导体装置2_3中的调度装置10(ID3)中设置与对用于输出操作A的任务和用于输出操作B的任务的控制相关的寄存器。在该步骤S211中,如图26至图29中所示的那样设置半导体装置2_3中的任务输入/输出数据控制寄存器12。接下来,在步骤S212中,验证由监控器电路15对传输监控区域0至3(存储器17和18)的监控。在步骤S213中,验证传输控制,以便根据在图26和图28中所示的任务输入/输出数据传输控制寄存器0和1中设置的内容来执行传输控制。另外,在步骤S214中,当使用监控器15,由任务激活触发检测到向传输监控区域0的数据传输的完成时,用于输出操作A的任务的激活被验证。当在步骤S215中通过使用监控器15,由任务激活触发检测到向传输监控区域2的数据传输的完成时,用于输出操作B的任务的激活被验证。此后,在步骤S216中终止寄存器设置操作。
半导体装置2_3执行从半导体装置2_1接收用于输出操作A的任务的输入数据的操作以及从半导体装置2_2接收用于输出操作B的任务的输入数据的操作。该操作由半导体装置2_3中的任务输入/输出数据控制电路13执行。图31和图32是示出与第一实施例有关的任务输入数据的接收流程的示图。这里,图31示出了在接收用于输出操作A的任务的输入数据时的操作,图32示出了在接收用于输出操作B的任务的输入数据时的操作。
在图31中,接收在步骤S220中开始。在步骤S221中,图26中所示的任务输入/输出数据传输控制寄存器0:701_0被设置成等待传输控制的使能。当传输控制被任务输入/输出数据传输控制寄存器0:701_0验证时,执行步骤S222。在步骤S222中,该步骤等待从半导体装置2_1接收所接收的帧。
如果接收到所接收的帧,则执行步骤S223。在步骤S223中,基于在所接收的帧中的相应的数据报的报头信息(头地址信息和区域大小信息),在任务输入数据区域(传输监控区域0)中产生与报头信息相对应的数据(任务输入数据)。当完成对所接收的帧的数据的扩展时,过程返回到步骤S222并等待接收新的所接收的帧。
图32与图31类似,除了以下之外:在对应于步骤S221的步骤S231中,图28中所示的任务输入/输出数据传输控制寄存器1:701_1等待传输控制被激活,并且在对应于步骤S223的步骤S233中,任务输入数据被扩展到传输监控区域2(任务输入数据区域)。
在上述操作中,通过执行用于滤波操作A的任务获得的数据被通信装置5_3中包括的DMA控制器在传输监控区域1中进行扩展,并且通过执行用于滤波操作B的任务获得的数据被DMA控制器在传输监控区域2中进行扩展。
接下来,将描述半导体装置2_3中的任务启动的操作。图33和图34是示出与第一实施例有关的半导体装置中的任务开始操作的流程图。这里,图33示出了开始用于输出操作A的任务的操作,图34示出了开始用于输出操作B的任务的操作。被包括在半导体装置2_3中的任务输入/输出数据控制电路11执行图33和图34中所示的控制。因为图33和图34类似,因此将首先描述图33,之后将描述图33和图34之间的不同之处。
在图33中,任务开始操作在步骤S240开始。接下来,在步骤S241中,处理等待,直到用于输出操作A的任务的激活被验证。当用于输出操作A的任务的激活被验证时,执行步骤S242。在步骤S242中,指示任务输入数据区域中的块的号码的变量m和表示任务输出数据区域中的块的号码的变量n被设置为0。此后,在步骤S243中,等待任务开始触发,即,任务开始触发等待完成向图26中所示的读取检测区域(传输目的地)中设置的传输监控区域0的数据传输。
在完成向传输监控区域0的数据传输之后,生成传输开始触发1,然后执行步骤S244。在步骤S244中,指示并行开始的数目的变量c被设置为0。此后,执行步骤S245。
在步骤S245中,用于从块m开始的四个块的逻辑地址被分配为针对用于输出操作A的任务的任务输入数据区域。另外,作为针对用于输出操作A的任务的任务输出数据区域,从块n开始分配用于一个块的逻辑地址。结果,当执行用于输出操作A的任务时,存储操作结果的任务输出数据区域被存储在存储器18中。另外,每个地址区域的起始地址,即任务输入数据区域和任务输出数据区域。该属性被设置为用于输出操作A的任务的开始函数fg的参量。上述四个块和两个块是任务启动时自动分配的块的数目,并且是在图27中所示的任务输入/输出数据区域0设置寄存器702_0和任务输入/输出数据区域1设置寄存器702_1中设置的块的数目。
在步骤S245中,当完成对激活函数fg的参量的设置时,执行步骤S246。在该步骤S246中,开始用于输出操作A的任务。接下来,在步骤S247中,更新变量c、m和n。即,执行c=c+1、m=m+4和n=n+1的计算。这里,4和1是上面描述的块的数目。
接下来,执行步骤S248。在步骤S248中,基于变量c的值来确定并行激活的数目是否等于或小于2。如果并行激活的数目是2或更少,则过程返回到步骤S245,并且重复步骤S245~S248,直到并行激活的数目超过2。另一方面,当并行激活数目超过2时,过程返回步骤S243,并且在步骤S243中等待任务激活触发发生。在第一实施例中,由于半导体装置2_3包括两个处理器CPU1和CPU2,因此并行启动的数目可以被设置为2。
如上所述,使用四个连续块(0.25KB)的数据来执行输出操作A,并且输出操作结果被写入一个块(1KB)中。
同样地,在用于输出操作B的任务中,以与图33中所示的步骤S240~S248类似的在图34中所示的步骤S250~S258开始用于输出操作B的任务。在半导体装置2_3中执行的步骤S250~S258与步骤S240~S248的不同之处在于:目标任务是用于输出操作B的任务、任务输入数据区域是传输监控区域2,以及任务输出数据区域是传输监控区域3。
在上述操作中,对在传输监控区域0中的四个连续块中存储的滤波操作A的验证结果执行输出操作A,并且输出操作的结果被存储在传输监控区域1的一个块中。类似地,对在传输监控区域2中的四个连续块中存储的滤波操作B的结果执行输出操作B,并且输出操作B的结果被存储在传输监控区域3的一个块中。
如图1中所示,调度装置12中的任务输入/输出数据控制电路10(ID1)至10(ID3)被连接到监控器电路15。监控器电路15监控从总线交换机14提供给存储器17和18的地址信号,并且将通过监控获得的信息提供给任务输入/输出数据控制电路10(ID1)至10(ID3)。任务输入/输出数据控制电路10(ID1)至10(ID3)基于所提供的数据进行操作。这里,为了便于说明,假定任务输入/输出数据控制电路10(ID1)至10(ID3)基于所提供的信息创建管理表,并且基于所创建的管理表进行操作。当然,任务输入/输出数据控制电路10(ID1)至10(ID3)不需要创建管理表进行操作。
图35至图56是用于说明与第一实施例有关的控制表的示图。这里,图35至图46、图53和图54示出了由半导体装置2_1的任务输入/输出数据控制电路10(ID1)形成的管理表,并且图47至图52、图55和图56示出了由半导体装置2_3的任务输入/输出数据控制电路10(ID3)形成的管理表。由于由半导体装置2_2的任务输入/输出数据控制电路10(ID2)形成的管理表类似于由任务输入/输出数据控制电路10(ID1)形成的管理表,所以省略其说明。
由于图35和图36中所示的管理表的项目相同,因此将首先参考图35描述管理表的项目。管理表具有项目CTB1~CTB10。
在项目CTB1中设置对象传输监控区域,并且在项目CTB2中设置监控对象半导体装置。在项目CTB3中设置目标物理地址的基地址和逻辑地址的基地址,在项目CTB4中设置目标监控区域的区域大小,并且在项目CTB5中设置每个标志的字节数,稍后将对其进行描述。
另外,在项目CTB6中设置对目标传输监控区域的第一写入(写入)时间,并且在项目CTB7中设置对目标传输监控区域的最后写入(写入)时间。在项目CTB8中设置目标传输监控区域的第一读取(读取)时间,在项目CTB9中设置目标传输监控区域的最后读取(读取)时间。
在项目CTB10中,设置目标传输监控区域的状态。项目CTB10包括指定传输监控区域中的地址的偏移地址、a.写入标志、b.读取标志以及c.未引用标志。当开始使用监控器电路15的监控时,写入标志被设置为逻辑值“0”,并且当对由对应的偏移地址指定的地址执行写入时,写入标志被设置为逻辑值“1”。在b.读取标志中设置逻辑值“0”,并且当对由对应的偏移地址指定的地址执行读取时,在b.读取标志中设置逻辑值“1”。
在未引用标志中设置(a.写入标志)-(b.读取标志)。即,当对对应的地址执行写入并且不执行读取时,c.未引用标志被设置为逻辑值“1”,并且在对对应的地址执行写入之后,执行读取时,c.未引用标志被设置为逻辑值“0”。注意,即使不对对应的地址执行写入,c.未引用标志也被设置为逻辑值“0”。在条目CTB10中,设置a.写入标志、b.读取标志和c.未引用标志的总和。
(半导体装置2_1中的信息)
图35至图40图示了与构成接收缓冲器的存储器17相对应的管理表。为了对应于存储器17,在项目CTB1中设置作为存储器17的传输监控区域0,并且在项目CTB1中设置半导体装置2_1(ID1)。在项目CTB4中,1024字节被设置为传输监控区域的区域大小。由于项目CTB10中的偏移地址以1字节为单位,因此1被设置为项目CTB5的每个标志的字节数。
图35示出了监控开始时(在监控开始时)的管理表的状态。图36示出了当检测到初始写入传输时(当检测到初始写入传输时(当初始写入是4字节写入时))的状态。图37示出了当检测到1020字节的写入传输时(紧接在检测到1020字节的写入之后)的状态,图38示出了当检测到对所有地址的写入传输时(当检测到对所有地址的写入传输时)的状态。即,图35-图40示出了当对接收缓冲器顺序执行写入传输时管理表中的改变。
由于在开始监控时尚未执行读取或写入(图35),因此项目CTB6~CTB9尚未被设置。条目CTB3的基地址也未被设置。由于在监控器电路15中没有检测到从总线交换机14到存储器17的访问,所以不执行对由在项目CTB10中设置的偏移地址指定的地址的写入和读取,并且因此,如图35中所示,对于所有a.写入标志、b.读取标志和c.未引用标志,项目CTB10被设置为逻辑值“0”。
如图36中所示,当调度装置10(ID1)将物理地址的基地址设置为00000H,将逻辑地址的基地址设置为20000H,并且写入4个字节时,此时的时间id1m0tw4被设置为第一写入时间和最后写入时间。另一方面,监控器电路15检测到对连续偏移地址0000H至0003H的4字节的写入,通知任务输入/输出数据控制电路10(ID1),并且将与这些对应的a.写入标志改变为逻辑值“1”,并且将与这些对应的c.未引用标志也改变为逻辑值“1”。
当写入1020个字节时,此时的时间id1m0tw1020被设置为最后写入时间,如图37中所示。另外,根据来自监控器电路15的通知,任务输入/输出数据控制电路10(ID1)将对应于1020个偏移地址的a.写入标志和c.未引用标志设置为逻辑值“1”。当写入1024个字节时,对应于偏移地址0000H至03FFH的a.写入标志和c.未引用标志改变为逻辑值“1”,如图38中所示。
当处理器从存储器17读取数据时,b.读取标志和c.未引用标志改变,并且第一读取时间和最后读取时间改变。即,当检测到第一读取传输时(当第一读取是4字节读取时),第一读取时间和最后读取时间被设置为读取时间id1m0tr4,如图30中所示。监控器电路15检测对连续偏移地址0000H至0003H的四个字节的读取,并通知任务输入/输出数据控制电路10(ID1)。结果,任务输入/输出数据控制电路10(ID1)将与这些偏移地址对应的a.读取标志改变为逻辑值“1”,并将与这些偏移地址对应的c.未引用标志改变为逻辑值“0”。
当从作为存储器17的传输监控区域0检测到在所有地址的读取传输时,如图40中所示,对应于偏移地址0000H至03FFH的b.读取标志改变为逻辑值“1”,并且对应于这些的c.未引用标志改变为逻辑值“0”。
结果,包括任务输入/输出数据控制电路11的调度装置10(ID1)可以通过参考“c.未引用”标记来掌握处理器尚未读取的数据的量。
图41至图46示出了与构成操作缓冲器(传送缓冲器)的存储器18相对应的管理表的状态。由于图41至图46与图35至图40类似,因此将主要解释不同之处。
如图41中所示,在开始监控时,对应于操作缓冲器的传输监控区域1被设置为项目CTB1。另外,传输监控区域1的大小被设置为256字节。由于开始监控,因此对应于条目CT10中所示的偏移地址的所有的a.写入标志、b.读取标志和c.未引用标志被设置为逻辑值“0”。
在检测到处理器的第一写入传输时(当第一写入是4字节时),如图42中所示,物理地址的基地址被设置为10000H,逻辑地址的基地址被设置为30000H,并且此时的时间(id1m1tw4)被设置为第一写入时间和最后写入时间。另外,基于来自监控器电路15的检测结果,任务输入/输出数据控制电路11将对应于偏移地址0000H至0003H的a.写入标志和c.未引用标志改变为逻辑值“1”。
当处理器写入操作缓冲器并写入252个字节时,如图43所示,252个a.写入标志和c.未引用标志改变为逻辑值“1”,并且此时的时间(id1m1tw252)被设置为最后写入时间。当检测到在所有地址的写入传输时,如图44中所示,256个a.写入标志和c.未引用标志改变为逻辑值“1”,并且此时的时间(id1m1tw256)被设置为最后写入时间。
另一方面,当调度装置10(ID1)从存储器18读取数据时,读取标志(b)和未引用标志(c)改变,并且第一读取时间和最后读取时间改变。如图45中所示,当检测到初始读取传输操作时(当初始读取是4个字节时),此时的时间(id1m1tr4)被设置为初始读取时间和最后读取时间。另外,根据来自监控器电路15的检测结果,任务输入/输出数据控制电路11将对应于偏移地址0000H至0003H的b.读取标志改变为逻辑值“1”,并且将对应的c.未引用标志改变为逻辑值“0”。当通过调度装置10(ID1)进行读取并且检测到在所有地址的读取传输时,256个b.读取标志改变为逻辑值“1”,并且对应的c.未引用标志改变为逻辑值“0”,如图46中所示。此时的时间id1m1tr256被设置为最后读取时间。
结果,包括任务输入/输出数据控制电路11的调度装置10(ID1)可以通过参考“c.未引用”标记来掌握处理器写入的数据中的未被读出的数据的量。
(半导体装置2_3中的信息)
在半导体装置2_3中,获取四个传输监控区域(传输监控区域0至3)的信息,并创建对应的管理表。由于管理表彼此相似,因此这里将描述与传输监控区域0对应的管理表。
图47-图52与图41-图46类似。不同之处在于:在图47至图52中,在项目CTB2中,半导体装置2_3被设置为监控目标,并且半导体装置2_3中的存储器17被设置为传输监控区域0。另外,图47至图50的不同之处在于:检测调度装置10(ID3)对传输监控区域0的写入传输,并且在图51和图52中,检测处理器从传输监控区域0的读取传输。即,图48示出了调度装置10(ID3)的第一写入传输检测时间(当第一写入是4字节写入时),图49示出了紧跟在调度装置10(ID3)进行的252个字节写入检测之后的情况,图50示出了调度装置10(ID3)在所有地址的写入传输检测时间。图51示出了对处理器进行的第一读取的检测(当第一读取是4字节读取时),图52示出了对处理器在所有地址进行读取传输的检测。图47示出了监控开始时间。
图53示出了从图46中所示的状态再次对偏移地址0004H至0007H执行写入的状态。在这种情况下,对偏移地址的写入访问被监控器电路15检测,并且任务输入/输出数据控制电路11将对应于偏移地址的b.读取标志改变为逻辑值“0”,并且将对应的c.未引用标志改变为逻辑值“1”。
图54示出了从图53中所示的状态再次检测到在所有地址的读取传输的状态。在这种情况下,基于监控器电路15的检测,任务输入/输出数据控制电路11将对应于偏移地址0004H至0007H的b.读取标志改变为逻辑值“1”,并且将对应的c.未引用标志改变为逻辑值“0”。
另外,图55示出了在图54之后的情况,其中再次对半导体装置2_3中的传输监控区域0中的偏移地址0004H至0007H执行写入。任务输入/输出数据控制电路11将对应于偏移地址的b.读取标志改变为逻辑值“0”,并且将对应的c.未引用标志改变为逻辑值“1”。图56示出了在图55之后再次检测到在所有地址的读取传输的状态。在这种情况下,基于监控器电路15的检测,任务输入/输出数据控制电路11将对应于偏移地址0004H至0007H的b.读取标志改变为逻辑值“1”,并且将对应的c.未引用标志改变为逻辑值“0”。
在与第一实施例有关的网络系统1中,对从数据传送装置3传送的帧执行的操作(滤波操作和输出操作)被分配给半导体装置2_1至2_3并被执行。即,滤波操作被分成滤波操作A和滤波操作B,并且在半导体装置2_1和2_2中执行,并且在半导体装置2_3中对滤波操作A和滤波操作B的操作结果执行输出操作。下面将描述当执行这些操作时半导体装置2_1至2_3的操作。图57至图60是示出与第一实施例有关的网络系统中的半导体装置的操作的时序图。
图57和图58示出了与半导体装置2_1和2_3有关的操作,并且通过将图58布置在图57的下侧,获得了示出半导体装置2_1和2_3的操作的时序图。类似地,图59和图60示出了与半导体装置2_2和2_3有关的操作,并且通过将图60布置在图59的下侧,获得了示出半导体装置2_2和2_3的操作的时序图。
在图57中,当半导体装置2_1接收到所接收的帧时,任务输入/输出数据控制电路11将所接收的帧的数据写入构成接收缓冲器的存储器17的存储体17_0至17_3中。此时,任务输入/输出数据控制电路11使用监控器电路15来监控写入存储体17_0至17_3中的每个存储体中的数据是否已经达到1024字节的预先确定的数据量。
当写入存储体17_0至17_3中的数据达到预先确定的数据量时,包括任务输入/输出数据控制电路11的调度装置10(ID1)根据图12中所示的传输监控区域0设置寄存器700_0的“目标区域的块分配约束”将存储体17_0至17_3分配给块0至3,将处理器CPU1和CPU2分配给两个块单元,并且开始用于滤波操作A的任务。结果,处理器CPU1和CPU2从存储体17_0至17_3读取数据(图57:CPU1(f01-R)和CPU2(f23-R)),执行滤波操作A,并将滤波操作A的操作结果写入构成传送缓冲器(操作缓冲器)的存储器的存储体18_0至18_3,作为图12中所示的传输监控区域1设置寄存器700_1的“目标区域的块分配约束”中所示的块0至7(图57:CPU1(f01-W),CPU2(f23-W))。
此时,任务输入/输出数据控制电路11使用监控器电路15来监控存储体18_0至18_3中尚未被传送的数据量是否已经达到预先确定的数据量(256字节)。当写入存储体18_0至18_3中且尚未被传送的数据量达到预先确定的数据量(256字节)时,任务输入/输出数据控制电路11将写入存储体18_0至18_3中的数据传送(传输)至半导体装置2_3作为帧130至帧133。
在半导体装置2_3中,任务输入/输出数据控制电路11将从半导体装置2_1接收的帧130至帧133写入到构成接收帧的存储器17的存储体17_0和17_1中。此时,半导体装置2_3中的任务输入/输出数据控制电路11使用监控器电路15来监控写入存储体17_0和17_1中的数据量是否已经达到预先确定的数据量(256字节)。当在存储体17_0和17_1中写入预先确定的数据量的数据时,包括任务输入/输出数据控制电路11的调度装置10(ID3)开始用于输出操作A的任务。结果,半导体装置2_3中的处理器CPU1、CPU2读取写入存储体17_0和17_1的数据(图58:CPU1(fg01-R)和CPU2(fg23-R)),执行输出操作A,并且将输出操作A的操作结果写入到构成操作缓冲器(传送缓冲器)的存储器18的存储体18_0和18_2(图58:CPU1(fg01-W)和CPU2(fg23-W))。
即,在半导体装置2_1中,当在传送缓冲器中写入预先确定的数据量的滤波操作A的操作结果(未发送的数据)时,传送缓冲被自动传送到半导体装置2_3。同样地,在半导体装置2_3中,当在接收缓冲器中写入预先确定量的数据时,自动开始用于输出操作A的任务。即,在半导体装置2_3中,优先开始用于输出操作A的任务。
在半导体装置2_1中执行用于滤波操作A的任务,并且在半导体装置2_3中执行用于输出操作A的任务。由于在半导体装置2_3中写入预先确定的数据量时开始用于输出操作A的任务,所以用于滤波操作A的任务和用于输出操作A的任务并行执行,如图57和图58所示。结果,根据第一实施例,如图57和图58中所示,可以执行滤波操作A和输出操作A以满足时序约束1。
半导体装置2_2和2_3以与半导体装置2_1和2_3相同的方式操作。即,在半导体装置2_2中,当通过监控器电路15的监控,确定已经在存储体17_0至17_3中写入了预先确定的数据量时,如图59中所示,由处理器CPU1和CPU2执行读取(CPU1(f12-R)和CPU2(f34-R))。另外,执行使用读取数据的滤波操作B,并且对存储体18_0至18_3执行写入(图59:CPU1(f12-W);CPU2(f34-W))。对存储体18_0至18_3的写入也被监控器15监控,并且当达到预先确定的数据量时,该数据量被传送(传输)到半导体装置2_3作为帧230至帧233。
在半导体装置2_3中,所接收的帧230至帧233被写入存储体17_2和17_3。使用监控器电路15来监控在存储体17_2和17_3中写入的帧的数据量是否已经达到预先确定的数据量,并且当达到预先确定的数据量时,开始用于输出操作B的任务。即,从存储体17_2和17_3读取数据(图60:CPU1(fg12-R)和CPU2(fg34-R)),并且执行输出操作B以将数据写入存储体存储器18_1和18_3(图60:CPU1(fg12-W)和CPU2(fg34-W))。
结果,还可以执行滤波操作B和输出操作B以便满足时序约束1,如图59和图60中所示的那样。
在半导体装置2_1和2_2中并行执行用于滤波操作A的任务和用于滤波操作B的任务,并且在半导体装置2_3中并行执行用于输出操作A的任务和用于输出操作B的任务。结果,可以执行滤波和输出操作以满足时序约束1。
可以在访问监控器电路15中提供上述管理表。在这种情况下,管理表为通过细分地址区域而获得的每个地址区域保存指示是否存储了要传送的数据的信息和/或关于访问时间的信息。调度装置基于从访问监控器电路15提供的信息进行操作,以选择并优先传输在传送缓冲器中具有长停留时间的数据、由具有严格时序约束的任务所引用的数据和/或在分段地址区域中的每个分段地址区域中存储的数据中的由具有高执行优先级的任务引用的数据,并优先将所选择的数据传送到传送缓冲器。当数据被传输到半导体装置2_3时,半导体装置2_3中的访问监控器实时更新控制表的状态,控制表为通过细分半导体装置2_3的第一地址区域而获得的每个地址区域保持指示是否存储了从传输源半导体装置的存储器传输的数据的信息和/或关于访问时间的信息。另外,半导体装置2_3中的访问监控器电路基于管理表的状态实时地向半导体装置2_3中的调度装置提供信息,该信息是关于已经从传输源的半导体装置的存储器传输到半导体装置2_3的第一地址区域的数据量。在这种情况下,半导体装置2_3中的调度装置开始引用传输到第一地址区域的数据的任务,和/或基于从访问监控器电路提供的数据,改变执行引用传输到第一地址区域的数据的任务的顺序。
尽管已经基于实施例具体描述了由本发明人做出的本发明,但是本发明不限于上述实施例,并且不用说,可以在不脱离其主旨的情况下进行各种修改。

Claims (17)

1.一种半导体装置,包括:多个第一主设备;调度装置,被连接到所述多个第一主设备,以用于控制所述多个第一主设备实时执行多个任务;存储器,由所述多个第一主设备访问,以通过执行所述任务来存储数据;以及访问监控器电路,监控所述多个第一主设备对所述存储器的访问,其中当所述访问监控器电路检测到对所述存储器的访问时,存储在所述存储器中的所述数据基于目的地数据而被传输。
2.根据权利要求1所述的半导体装置,
其中当所述访问监控器检测到数据已经被存储在所述存储器的预先确定的地址区域中时,存储在所述存储器中的所述数据被传输。
3.根据权利要求2所述的半导体装置,还包括:
通信装置,用于传输存储在所述存储器中的数据;
所述目的地信息包括指定存储在所述存储器中的数据的传输目的地的标识信息;以及
地址信息,指定由所述标识信息指定的传输目的地在所述存储器中的地址区域;并且
当检测到数据已经被存储在所述存储器的所述预先确定的地址区域中时,所述通信装置包括第二主设备,所述第二主设备用于将存储在所述存储器中的数据传输到由所述标识信息和所述地址信息指定的所述传输目的地的所述地址区域。
4.根据权利要求3所述的半导体装置,
其中所述多个第一主设备是处理器,并且所述第二主设备是在半导体装置中的由所述调度装置控制的DMA控制器。
5.根据权利要求3所述的半导体装置,
所述半导体装置还包括控制寄存器,所述控制寄存器包括在其中设置所述目的地数据的寄存器。
6.根据权利要求1所述的半导体装置,
其中当所述访问监控器电路检测到对所述存储器的预先确定的地址区域的访问时,所述访问监控器电路针对每个地址区域更新控制表的状态,所述控制表保持:指示待传输的数据是否被存储的信息、和/或关于访问时间的信息,所述每个地址区域通过细分所述地址区域中的所述存储器而获得。
7.根据权利要求6所述的半导体装置,
其中所述调度装置基于从所述访问监控器电路提供的信息,从存储在分段地址区域中的每个分段地址区域中的数据中选择并优先传输以下数据:在传送缓冲器中具有长停留时间的数据、由具有严格时序约束的任务引用的数据、和/或由具有高执行优先级的任务引用的数据。
8.一种系统,包括通过网络彼此连接的多个半导体装置,
其中所述多个半导体装置中的每个半导体装置包括:
多个主设备;
调度装置,被连接到所述多个主设备,以控制所述多个主设备来实时执行多个任务;
存储器,由所述多个主设备访问,以用于通过执行任务来存储数据;以及
访问监控器电路,监控所述多个主设备对所述存储器的访问;
其中当所述多个半导体装置中的第一半导体装置中的所述访问监控器电路检测到对所述存储器的访问时,存储在所述存储器中的数据被传输到所述多个半导体装置中的由目的地数据指定的第二半导体装置的存储器。
9.根据权利要求8的系统,
其中所述第一半导体装置包括以下项作为所述目的地信息:从所述多个半导体装置中指定所述第二半导体装置的标识信息;以及指定所述第二半导体装置的第一地址区域的地址消息,并且在所述第一半导体装置中,当访问监控器检测到数据已经被存储在所述存储器中时,存储在所述存储器中的数据被传输到所述第二半导体装置的所述第一地址区域。
10.根据权利要求9所述的系统,
其中所述多个半导体装置包括第三半导体装置,所述第三半导体装置包括以下项作为所述目标信息:指定所述第二半导体装置的标识信息;以及指定所述第二半导体装置的存储器的第二地址区域的地址消息,并且
其中在所述第三半导体装置中,当所述访问监控器电路检测到存储器中的数据的存储时,存储在所述存储器中的数据被传输到由所述目的地信息指定的所述第二半导体装置的所述第二地址区域。
11.根据权利要求10所述的系统,其中所述第二半导体装置中的所述多个主设备使用从所述第一半导体装置和所述第三半导体装置传输的数据来执行任务。
12.根据权利要求11所述的系统,
其中所述第一半导体装置、所述第二半导体装置和所述第三半导体装置中的每个半导体装置还包括通信装置,并且所述通信装置包括用于在所述网络和所述存储器之间传输数据的主设备。
13.根据权利要求11所述的系统,还包括连接到所述网络的传送装置,以用于将数据传送到所述第一半导体装置和所述第三半导体装置。
14.根据权利要求10所述的系统,
其中所述第一半导体装置和所述第三半导体装置中的每个半导体装置还包括控制寄存器,所述控制寄存器包括在其中设置所述目的地的寄存器。
15.根据权利要求9所述的系统,
其中当所述第二半导体装置中的所述访问监控器电路检测到对所述第一地址区域的访问时,针对在所述第一地址区域内细分的每个地址区域,控制表的状态被更新,所述控制表保持:指示所传输的数据是否被存储的信息、和/或关于访问时间的信息。
16.根据权利要求9所述的系统,
其中所述第二半导体装置中的所述访问监控器电路提供关于已经从所述第一半导体装置的所述存储器传输到第二半导体装置的所述第一地址区域、传输到所述第二半导体装置中的所述调度装置的数据量的实时信息。
17.根据权利要求9所述的系统,
其中所述第二半导体装置中的所述调度装置基于从所述访问监控器电路提供的信息,激活用于引用被传输到所述第一地址区域的数据的任务,和/或基于从所述访问监控器电路提供的信息,改变执行用于引用被传输到所述第一地址区域的数据的任务的优先顺序。
CN201910865436.XA 2018-10-31 2019-09-12 半导体装置和使用该半导体装置的系统 Pending CN111124628A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018-205515 2018-10-31
JP2018205515A JP7257772B2 (ja) 2018-10-31 2018-10-31 半導体装置を用いるシステム

Publications (1)

Publication Number Publication Date
CN111124628A true CN111124628A (zh) 2020-05-08

Family

ID=70326713

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910865436.XA Pending CN111124628A (zh) 2018-10-31 2019-09-12 半导体装置和使用该半导体装置的系统

Country Status (3)

Country Link
US (1) US11204799B2 (zh)
JP (1) JP7257772B2 (zh)
CN (1) CN111124628A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2021124917A1 (zh) * 2019-12-18 2021-06-24
JP7126712B2 (ja) * 2020-05-12 2022-08-29 ラトナ株式会社 データ処理装置、方法、コンピュータプログラム、及び、記録媒体
JP2022138400A (ja) * 2021-03-10 2022-09-26 オムロン株式会社 制御システム、サポート方法およびプログラム
CN115269014B (zh) * 2022-09-26 2022-12-30 上海登临科技有限公司 一种指令调度方法、芯片及电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546576A (ja) * 1991-08-09 1993-02-26 Fujitsu Ltd 並列計算機の通信制御方法及び装置
JPH0628303A (ja) * 1992-07-09 1994-02-04 Fujitsu Ltd 通信処理装置
EP1069512A2 (en) * 1999-07-12 2001-01-17 Matsushita Electric Industrial Co., Ltd. Data processing apparatus with buffering between buses
US6202154B1 (en) * 1997-04-16 2001-03-13 Hitachi,Ltd. Data transfer controller, microcomputer and data processing system
US20040105298A1 (en) * 2002-11-18 2004-06-03 Arm Limited Apparatus and method for managing processor configuration data
US20040225760A1 (en) * 2003-05-11 2004-11-11 Samsung Electronics Co., Ltd. Method and apparatus for transferring data at high speed using direct memory access in multi-processor environments
CN101211653A (zh) * 2006-12-26 2008-07-02 尔必达存储器株式会社 半导体存储器件、半导体器件、存储系统和刷新控制方法
JP2011516950A (ja) * 2008-03-31 2011-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ピアツーピア専用プロセッサのアーキテクチャ及び方法
US20120265925A1 (en) * 2011-04-12 2012-10-18 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
CN105389274A (zh) * 2014-08-29 2016-03-09 三星电子株式会社 半导体装置、半导体系统和片上系统
CN106980465A (zh) * 2015-11-30 2017-07-25 瑞萨电子株式会社 半导体装置、数据处理系统和半导体装置控制方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62267833A (ja) * 1986-05-16 1987-11-20 Nippon Telegr & Teleph Corp <Ntt> プロセス間通信方法
JP3087696B2 (ja) * 1997-07-25 2000-09-11 日本電気株式会社 分散メモリ型マルチプロセッサ・システム制御方法およびコンピュータ読み取り可能な記録媒体
JP2000122880A (ja) 1998-10-15 2000-04-28 Nec Ic Microcomput Syst Ltd リアルタイムosを搭載した情報処理装置
JP2000293480A (ja) 1999-04-12 2000-10-20 Oki Data Corp Dma転送装置
JP3840045B2 (ja) 2000-08-04 2006-11-01 株式会社東芝 データ処理方法及びデータ処理装置
US20040139441A1 (en) 2003-01-09 2004-07-15 Kabushiki Kaisha Toshiba Processor, arithmetic operation processing method, and priority determination method
JP2004220093A (ja) 2003-01-09 2004-08-05 Toshiba Corp プロセッサ、実行タスク決定装置及び演算処理方法
US7631115B2 (en) * 2005-02-04 2009-12-08 Intel Corporation Techniques to manage data transfer utilizing buffer hints included in memory access requests
US9342350B2 (en) 2006-08-24 2016-05-17 Renesas Electronics Corporation System for selecting a task to be executed according to an output from a task control circuit
JP4476267B2 (ja) 2006-10-06 2010-06-09 株式会社日立製作所 プロセッサ及びデータ転送ユニット
JP2009211248A (ja) * 2008-03-03 2009-09-17 Panasonic Corp Dma転送装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0546576A (ja) * 1991-08-09 1993-02-26 Fujitsu Ltd 並列計算機の通信制御方法及び装置
JPH0628303A (ja) * 1992-07-09 1994-02-04 Fujitsu Ltd 通信処理装置
US6202154B1 (en) * 1997-04-16 2001-03-13 Hitachi,Ltd. Data transfer controller, microcomputer and data processing system
EP1069512A2 (en) * 1999-07-12 2001-01-17 Matsushita Electric Industrial Co., Ltd. Data processing apparatus with buffering between buses
US20040105298A1 (en) * 2002-11-18 2004-06-03 Arm Limited Apparatus and method for managing processor configuration data
US20040225760A1 (en) * 2003-05-11 2004-11-11 Samsung Electronics Co., Ltd. Method and apparatus for transferring data at high speed using direct memory access in multi-processor environments
CN101211653A (zh) * 2006-12-26 2008-07-02 尔必达存储器株式会社 半导体存储器件、半导体器件、存储系统和刷新控制方法
JP2011516950A (ja) * 2008-03-31 2011-05-26 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ピアツーピア専用プロセッサのアーキテクチャ及び方法
US20120265925A1 (en) * 2011-04-12 2012-10-18 Hitachi, Ltd. Semiconductor device and method of controlling non-volatile memory device
CN105389274A (zh) * 2014-08-29 2016-03-09 三星电子株式会社 半导体装置、半导体系统和片上系统
CN106980465A (zh) * 2015-11-30 2017-07-25 瑞萨电子株式会社 半导体装置、数据处理系统和半导体装置控制方法

Also Published As

Publication number Publication date
JP2020071689A (ja) 2020-05-07
US11204799B2 (en) 2021-12-21
US20200133721A1 (en) 2020-04-30
JP7257772B2 (ja) 2023-04-14

Similar Documents

Publication Publication Date Title
CN111124628A (zh) 半导体装置和使用该半导体装置的系统
US8635263B2 (en) Node processing device and its processing method
JP4947441B2 (ja) マルチプロセッサシステム、マルチプロセッサシステムにおけるシステム構成方法及びそのプログラム
EA003407B1 (ru) Способ исключающего взаимоблокировку конфигурирования потоковых процессоров и микросхем с двух- или многомерной структурой расположения программируемых ячеек (ппвм, дпвм и т.п.)
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
CN116302617B (zh) 共享内存的方法、通信方法、嵌入式系统以及电子设备
CN106900082B (zh) 传感器网络节点的数据处理方法及传感器网络节点
EP3304331A1 (en) Single-chip multi-processor communication
KR100708096B1 (ko) 버스 시스템 및 그 실행 순서 조정방법
CN116257364A (zh) 系统间的资源占用方法、装置、存储介质及电子装置
CN116244229A (zh) 硬件控制器的访问方法、装置、存储介质和电子设备
US8943238B2 (en) Operations using direct memory access
KR102303424B1 (ko) 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
US10990544B2 (en) PCIE root complex message interrupt generation method using endpoint
CN114928511A (zh) 数据处理设备及数据处理系统
JPH02242434A (ja) タスクのスケジューリング方法
JP3990569B2 (ja) データメモリ制御装置
JP2567063B2 (ja) ポーリング方法
JP7122942B2 (ja) 半導体装置
WO2022141297A1 (zh) 事件处理方法和装置
CN111913898B (zh) 使用端点的pcie根复合体消息中断产生方法
JPH11338523A (ja) プログラマブルコントローラにおける入出力制御方式
CN113157433A (zh) 资源分配方法、电子设备、计算机可读介质
JP2001236238A (ja) 割込処理方法

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