CN1399749A - 根据应用项的通信类型综合通信支持的方法和设备 - Google Patents
根据应用项的通信类型综合通信支持的方法和设备 Download PDFInfo
- Publication number
- CN1399749A CN1399749A CN00805012A CN00805012A CN1399749A CN 1399749 A CN1399749 A CN 1399749A CN 00805012 A CN00805012 A CN 00805012A CN 00805012 A CN00805012 A CN 00805012A CN 1399749 A CN1399749 A CN 1399749A
- Authority
- CN
- China
- Prior art keywords
- communication
- task
- synchronous
- receiving element
- asynchronous
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种根据应用项的通信类型来综合通信支持的方法。在集成电路设计方法中,为应用项提供一个应用项时间安排表。应用项时间安排表描述用于执行特定的任务的多个单元和在特定的任务之间的一个或多个通信链路。在接收应用项时间安排表以后,对于在应用项时间安排表中的每个通信链路,确定其通信类型为异步通信还是同步通信。然后,对于每个异步通信,确定每个异步通信是否可被转换成使用中断和总线来传送数据的半同步通信。对于半同步通信,通过使用中断和总线,把通信支持综合为同步通信。另外,可以对于被确定为不是半同步通信的异步通信综合通信支持。
Description
发明背景
1.发明领域
本发明总的涉及集成电路设计领域。更具体地,本发明涉及通过综合异步通信进行集成电路的自动设计。
2.相关技术描述
现代电子器件典型地包括一个或多个集成电路(IC)芯片,被设计来满足特定的性能要求。由于集成电路变得越来越复杂,逻辑设计者越来越希望有能力把复杂的功能块快速实施为集成电路设计的能力。另外,由于应用项变得更复杂需要更复杂的处理,要求设计者快速分析增长数目的可能的解决方案。为了许可更容易的逻辑设计定做的或半定做的IC来满足性能约束或电路要求,以及帮助进行电路生产制造,已开发了用于设计和制造的自动系统。例如,使用计算机辅助设计(CAD)的自动设计系统常规地被使用来设计高度复杂的IC和具有短的存活周期的IC,诸如嵌入系统。
一种CAD系统被称为“逻辑综合系统”。在逻辑综合系统中,输入、输出、和高电平设计描述通过使用硬件描述语言(HDL)被输入到计算机。然后,通过使用综合软件,计算机创建一个执行以HDL描述的功能的逻辑设计。
通常,短的存活周期的系统,诸如嵌入系统,常常包括一个或多个多处理器,它们被使用来调配并行的应用项的任务来满足时间约束。因此,在这样的系统中,几个处理器可以通过通信接口,诸如用于同步传送的数据总线或用于异步传送的通信存储器(例如,FIFO,双端口等等),被连接到一个或多个IC。然而,传统的方法通常以通用方式把通信接口设计在这样的系统中,而不是针对特定的应用项使得它们最佳化。
例如,图1A是显示设计单元的示例性库100的方框图。如图所示,库100包括单元,诸如处理器P1和P2,以及硬件HW1和HW2。在库100中的每个设计单元能够执行分配的任务。例如,处理器P1可被使用来执行任务T1、T2、T3和T4,而处理器P2执行任务T13。同样地,硬件HW1可以执行任务T5、T6、T7和T8,而硬件HW2可被使用来执行任务T9、T10、T11和T12。典型地,任务T1到T13在库中作为函数被提供。
图1B通过使用来自库100的函数和设计单元显示应用项120的模型。在这个应用项模型中,任务被表示为节点,通过用箭头表示的边缘把它们一个一个地连接起来。边缘表示通信链路,二任务代表函数。应用项120用任务节点和通信边缘被模型化。具体地,处理器P1被分配任务T1、T2、T3和T4,它们分别通过通信边缘E1、E2、E3和E4被分别链接到任务T5、T6、T7和T8的节点。硬件HW2被分配任务T9、T10、T11和T12,它们分别通过通信边缘E5、E6、E7和E8被分别链接到任务T5、T6、T7和T8的节点。处理器P2的任务T13通过通信边缘E9、E10、E11和E12被分别链接到任务T9、T10、T11和T12的节点。
图1C是显示图1B上模型化的应用项120的时间安排的示意图。在这个时间安排图上,设计单元的分配的任务被安排为时间的函数。具体地,每个设计单元的任务被分配特定的持续时间以及按顺序进行安排。例如,处理器P1的任务按T1、T2、T3和T4的顺序被安排,以及硬件HW1的任务按T5、T6、T7和T8的顺序被安排。同样地,硬件HW2的任务按T9、T10、T11和T12的顺序被安排。
在这个图上,连接应用项120的任务节点的通信边缘被安排为同步通信或异步通信。在发送单元(即,发射机)和接收单元(即,接收机)之间的同步通信或异步通信的确定是通过在发射机完成任务时的接收机单元的可提供性而作出的。如果接收机在发射机完成任务时没有在执行任务,则通信被表征为同步。否则,通信是异步。例如,通信152、160、162、164、166、168和176是同步通信,而通信156、158、170、172和174是异步通信。
通信表征为同步通信或异步通信,影响应用项的综合。典型地,同步通信是通过使用在两个或多个设计单元之间的数据通信的总线而被综合和实施的。另一方面,异步通信通常是通过使用先进先出缓存器(FIFO),双端口等等存储用于同步的数据而被综合和实施的。
图1C的应用项时间安排表可被使用来综合用于应用项120的系统180的结构,如图1D所示。系统180包括处理器P1,P2,硬件HW1和HW2。另外,系统包括一对FIFO:FIFO1和FIFO2。FIFO1被配备在处理器P1和硬件HW1之间,以便允许进行异步通信。同样地,FIFO允许在硬件HW2与处理器P2之间的异步通信。
然而,特别遗憾的是FIFO以及一般的通信存储器,比起总线来说,典型地在IC芯片上需要更大的面积来实施。这意味着,具有FIFO或通信存储器的系统的实施通常比起具有总线的系统更昂贵。而且,由于嵌入系统的短的存活周期,通常,传统的方法没有使得异步通信有效地最佳化来减小花费和小片面积。
因此,所需要的是用于有效地实施异步通信的方法和设备,而没有传统技术上所需要的附带花费和小片面积。
发明概述
广义地说,本发明是通过提供根据应用项的通信类型来同步通信支持的方法和设备而满足这些需要的。应当看到,本发明可以以多种方式,包括处理过程,设备,系统,器件,或方法来实施。下面描述本发明的几个发明性实施例。
本发明提供根据应用项的通信类型来综合通信支持的方法。在本方法中,为应用项提供一个应用项时间安排表。应用项时间安排表描述用于执行特定的任务的多个单元和在特定的任务之间的一个或多个通信链路。在接收应用项时间安排表以后,对于在应用项时间安排表中的每个通信链路,确定其通信类型为异步通信还是同步通信。然后,对于每个异步通信,确定每个异步通信是否可被变换成半同步通信,它使用中断和总线来传送数据。对于半同步通信,通过使用中断和总线,把通信支持综合为同步通信。另外,通信支持可以对于被确定为不是半同步通信的异步通信被综合。
在另一个实施例中,本发明通过用于根据应用项的通信类型综合通信支持的集成电路设计工具。集成电路设计工具包括(a)用于提供用于应用项的应用项时间安排表的装置,应用项时间安排表具有多个用于执行特定任务的单元以及在特定的任务之间的一个或多个通信路径;(b)用于确定对于在应用项时间安排表中的每个通信路径的通信类型为异步通信或同步通信的装置;(c)用于对于每个异步通信确定是否能把每个异步通信转换成使用中断和总线来传送数据的半异步通信的装置;(d)用于通过使用中断和总线来同步用于半同步通信的第一硬件支持为同步通信的装置;以及(e)用于通过使用通信存储器来同步用于不是半同步通信的异步通信的第二硬件支持的装置。
本发明的方法和设备提供减小通信专用的硬件的尺寸,而保留应用项性能的目的。具体地,可被转换成半同步通信的异步通信的识别允许使用同步总线和中断机制来代替传统的FIFO。在IC芯片上实施总线允许大大地节省表面积以及成本的附带节省。结合附图,作为例子显示本发明的原理,从以下的详细说明,将明白本发明的其它方面和优点。
附图简述
通过结合附图的以下的详细说明,将容易了解本发明,其中相同的标号表示相同结构的单元。
图1A显示描述设计单元的示例性库的方框图。
图1B显示通过使用来自库的函数和设计单元对应用项的模型化。
图1C显示描述图1B上模型化的应用项的时间安排表的示意图。
图1D显示对于图1B的应用项模型的系统的结构。
图2显示按照本发明的一个实施例的集成电路制造系统方框图。
图3显示按照本发明的一个实施例的、用于开发集成电路设计的方法的流程图。
图4A-4C显示用于说明确定同步或异步通信的任务的移动性的更详细的时序图。
图5A显示说明从发射机u1的任务T1到接收机u2的任务的异步通信的示意图。
图5B显示按照本发明的一个实施例的、通过存储数据在接收机u2中而同步异步通信任务T1到任务T4的示意图。
图5C显示按照本发明的一个实施例的、通过存储数据在发射机u1中而同步异步通信任务T1到任务T4的示意图。
图6A显示按照本发明的一个实施例的、用于确定传播延时的接收机存储方法的流程图。
图6B显示按照本发明的一个实施例的、用于确定传播延时的发射机存储方法的流程图。
图7A显示具有同步时间tsyn的、在发射机u1和接收机u2之间的同步通信。
图7B显示具有发射时间te和传输时间tr的、在发射机u1和接收机u2之间的同步通信。
图8A显示代表通过总线的数据传输的模型。
图8B显示通过通信存储器的数据传输的模型。
图9A显示描述图1B上模型化的应用项的时间安排表的示意图。
图9B显示对于图9A上修改的应用项的系统的硬件结构。
图10A显示描述按照本发明的一个实施例的、使用中断机制的应用项的时间安排表的示意图。
图10B显示对于图10A上修改的应用项120的系统的硬件结构。
优选实施例详细描述
在本发明根据应用项的通信类型同步通信支持的方法和设备的以下的详细说明中,阐述多个具体细节,以便提供对本发明的透彻的了解。然而,本领域技术人员将会看到,本发明可以不用这些具体细节的某些部分或全部,而被实施。在其它情况下,熟知的电路,系统和处理运行没有加以详细描述,以免不必要地掩盖本发明。
本发明以同步方式实行在单元之间的数据传送。对于两个单元之间的同步传送,通信支持将是总线,它比起FIFO或所有其它存储系统花费更少的表面。为了实行这种通信同步,移动性的任务被使用来同步在发送单元与接收单元之间的发送和接收。然后,考虑到对于单元间通信所需要的数据贮存要求,中断驱动机制被使用来在发送单元与接收单元之间传送数据。这样,异步通信可以具有同步传送。
本发明的方法和设备提供减小通信专用的硬件的尺寸,而保留应用项性能的目的。另外,本发明允许在面积上规定最佳化的一组通信支持。而且,它可根据将在电路上实施的应用项估计在现有的多处理器电路(常常称为“预定的系统”)上通信支持的附加开销。
图2显示按照本发明的一个实施例的集成电路制造系统200的方框图。系统200包括处理器(例如,CPU)202,I/O端口204,键盘206,监视器208,ROM 210,RAM 212,磁盘驱动单元214,掩膜产生器216,和IC制作器218。处理器202被耦合到I/O端口204,和用户输入装置,诸如键盘206。HDL可被接收和通过I/O端口204、用户输入装置206或另一个输入信道,诸如磁盘驱动器214,被输入到系统200。集成电路制造系统常常被称为集成电路制造工具,以及在Dockser等的、题目为“Method and Apparatus for Efficiently ImplementingComplex Function Blocks in Integrated Circuit Designs(在集成电路设计中用于有效地实施复函数块的方法和设备)”的美国专利No.5,963,454中描述了这样的制造系统,该专利在此引用,以供参考。
系统200优选地配备有各种类型的数字贮存装置,诸如ROM 210,RAM 212,和磁盘驱动器214。磁盘驱动器214可被使用来存储从I/O端口204或用户输入装置206接收的HDL,或可被使用来输入HDL到系统中,它可以存储通过运行在系统200和它的处理器202中的处理过程创建的掩膜产生数据。磁盘驱动器214可以用其它永久贮存装置,诸如磁带或软盘代替或被增大。诸如应用项模型、设计约束、预设计系统、设计单元和函数的库、应用项时间安排表、和通信表等输入可以通过I/O端口204或用户输入装置206被输入,或它们可以在系统200上被直接综合。
根据输入,系统200综合硬件设计,和得出掩膜产生数据。这个掩膜产生数据可被存储在数字贮存器,例如磁盘驱动器214。掩膜产生器216接收来自处理器202的掩膜产生数据。替换地,(未示出)掩膜产生器216可以直接从数字贮存器,诸如磁盘驱动器214,接收掩膜产生数据。掩膜产生器216可以是系统200的一部分,或它可以是分开的装置。掩膜产生数据被掩膜产生器216用来创建光刻掩膜。这些掩膜将在集成电路制做器218中被使用来在晶片上形成集成电路的元件。该掩膜足以在集成电路上创建元件以及元件之间的连接。集成电路制做器218包括半导体制造设备,诸如蚀刻剂、化学汽相淀积(CVD)机,印刷机等等,正如在半导体制造领域中的技术人员熟知的。
被系统200处理的最后结果是封装的集成电路220。这个封装的IC220将包含通过使用由掩膜产生器216产生的掩膜创建的模224。半导体模224典型地包含数字集成电路和I/O焊盘222,用于把电路耦合到几个引线226。I/O焊盘222可以以任何传统的方式(诸如通过焊接连线)被耦合到引线226。
图3显示按照本发明的、用于得出集成电路设计的方法的流程图。在这种方法中,硬件通信单元通过多阶段通信特性处理过程而被分配。方法从操作步骤302开始,其中应用项时间安排表和通信表被提供为输入。在一个实施例中,应用项时间安排表对于多处理器系统提供以所有任务的已知的开始和结束时间。例如,所有数据进行传送的模型在发送任务的结束点和在接收任务的开始点时被完成。通信表包括在按照时间安排表的单元之间的所有通信的信息。
然后在操作步骤304,通过诸如任务的移动性的方法,单元之间的通信被确定为同步的还是异步的。例如,任务1可以以同步模式或异步模式与任务2通信。当发送和接收的时间移动性有重叠时,传送可以以同步方式被完成。否则,传送不能以同步方式来进行,而是通过使用诸如FIFO的通信存储器以异步通信来实行。在图4A到4C上将更详细地讨论通过任务的移动性确定同步或异步通信。
按照一个实施例,在通信表上的通信集被划分成两个子集:同步通信子集和异步通信子集。对于在操作步骤304和306被确定为同步的通信,方法进到操作步骤318,在该操作步骤,用于同步传送的支持被综合出来。另一方面,对于在操作步骤304和306被确定为异步的通信,方法进到操作步骤308,在该操作步骤,在异步通信类别中执行一个或多个寻求操作。寻求操作被使用来确定异步通信是否潜在地能通过使用接收机和发射机存储算法被转换成半同步的。
潜在地为半同步通信的那些异步通信是真正的异步通信。在这种情形下,方法通过操作步骤310进到操作步骤312,在其中综合异步支持用于真正的异步通信。在该操作步骤,确定硬件要求,以使得对于异步通信的存储器要求最小化。这可通过把技术上熟知的、加权的双方匹配算法施加到剩余的同步通信而达到。如果把综合应用到预定的系统,这个级别使用在预定的系统中可提供的、通信硬件信息(例如,总线,双端口等)。
在综合异步支持后,资源可被分配用于半同步和同步通信。对于被确定为潜在地半同步的那些异步通信,通过确定半同步通信的数据必须被存储的地方,而确定该潜在的半同步通信是否真正的半同步的。分配图象数据的操作步骤优选地按照时间安排表考虑单元中自由存储器的可提供性。在一个实施例中,通过使用化费γ作出这样的分配。例如,单元常常包括存储器,通信数据的分配可以是在接收端(例如,接收机),发送端(例如,发射机),或通信存储器,在先前的操作步骤312中被检测。如果任何这些本地化是可能的而不造成贮存容量空间的不足,则具有最低附加花费的本地化被扩展。
如果潜在的半同步通信保持为异步的,则在操作步骤316执行支持的新的综合。例如,如果使用通信存储器,则传送是异步的(即,不是真正的半同步)。在这种情形下,综合用于异步传送的支持,如需要的话,通过在操作步骤316进行新的分配,产生异步支持。例如,加上通信存储器,以及可以建立新的通信硬件。
对于真正的半同步通信,半同步通信被规定为接收机或发射机。由于这个特性,已知与这些传送事件有关的时间。通信硬件现在可以在同步传送的同时对于同步和半同步类型被最佳化,因为它们使用相同的硬件类型,诸如总线。正如下面更详细地描述的,在操作步骤318实行最佳化,在其中综合用于同步传送的支持。然后方法在操作步骤320结束。
图4A-4C更详细地显示用于说明确定同步或异步通信的任务的移动性的时序图。在这些图上,te是指发送通信的时间以及tr表示接收通信的时间。另外,u1是指发射机,以及u2表示接收机。在发射机u1与接收机u2之间,时间移动性是由于任务的尽可能早(ASAP)和尽可能迟(ALAP)的时间安排表造成的。然而,如果通信单元正在处理中断机制(正如通常在软件部件的情形下),则有可能实行同步传送,即使没有可能的移动性重叠。通过这种方法同步的通信被称为“半同步”。
对于开始时间Tbegin_ASAP_T1,由于应用项的最大时间,任务T1和T2可被移动。例如,任务T1和T2具有3.5的执行时间,而通信时间是0.5。在这种情形下,如果应用项的最大时间是12,则任务T1可以在时间0(Tbegin)和时间3.5(Tend)之间实行。通信可以从时间3.5(Tbegin)到时间4(Tend)在单元u1和u2之间实行。任务T2可以从时间4(Tbegin)到时间7(Tend)被实行。遵守12的时间约束。Tbegin ASAP T1被确定为时间0。
替换地,任务T2在时间12 Tmax应用项,也是T2的Tend时结束。这样,任务T2的Tbegin是时间8.5。在单元u1和u2之间的通信可以在时间8(Tbegin)和时间8.5(Tend)之间实行。任务T1可以从时间5(Tbegin)到时间8(Tend)被实行。遵守12的时间约束。时间Tbegin ALAP T1是时间5。因此,任务的开始时间Tbegin可以从Tbegin_ASAP到Tbegin_ALAP。这样的处理过程在这里称为“任务的移动性”。
应用任务的移动性,通信可被确定为同步或异步的。例如,当在任务T1和T2之间的通信中Tbegin_ASAP_T1大于Tend_ALAP_T1时,在两个任务之间的通信被确定为异步通信。否则,通信是同步通信。任务的移动性在技术上是熟知的,以及在以下的附录中更详细地描述。
按照优选实施例,本发明通过提供中断处理能力给通信单元,实行在图3的操作步骤304中被归类为异步通信的异步传送。例如,图5A显示说明从发射机u1的任务T1到接收机u2的任务T4的异步通信的示意图。异步通信用由长的任务T3引起的时间tasyn表示。在任务T1和T4之间的异步通信在传统的通信综合系统中需要FIFO。
通过存储通信数据在接收机u2或发射机u1中,来实行异步通信的同步。在本发明的接收机存储方法中,当发射机发送数据时,它在相关的任务结束时声称中断。接收机中断正在进行中的任务(例如T3),允许发射机以同步方式发送数据到接收机。接收机把数据存储在它的内部的存储器中,直至需要接收的数据的任务被准备好可以实行为止。
图5B显示按照本发明的一个实施例的、通过存储数据在接收机u2中而同步异步通信任务T1到任务T4的示意图。如图所示,发射机u1实行任务T1和T2,而接收机实行任务T3和T4。相反,图5B显示发射机u1向接收机u2声称中断504。中断允许通过总线而不是FIFO以同步方式实行从发射机u1到接收机u2的数据传送。接收机u2存储数据,直至任务可在以后时间被实行为止。
在替换的实施例中,发射机可以代替接收机,存储用于同步异步通信的数据。具体地,当发送数据时,发射机把通信数据存储在它自己的内部存储器中。当接收机想要数据时,它向发射机声称中断,发射机暂停它本身正在进行的任务,以及发送存储数据给接收机。
图5C显示按照本发明的一个实施例的、通过存储数据在发射机u1中而同步异步通信任务T1到任务T4的示意图。在图上,发射机在完成任务T1后存储数据在它的内部存储器中,以及开始任务T2。当接收机u2准备好执行任务T4时,它向发射机u1声称中断506。作为应答,发射机u1暂停任务T2,把存储的数据在总线而不是FIFO上以同步方式传送到接收机u2。
接收机和发射机存储方法因此把以异步传送的异步通信转换成以同步传送的异步通信。这些转换的通信在这里被称为“半同步通信”。应当指出,转换只是在发射机或接收机的存储器容量在特定的通信的存活期间足够存储数据的情况下才能实行。在这种情况下,由于中断,时间安排表需要被修改。
一般地,中断的产生增加处理时间。这个时间增加,在这里被称为差值(Δ),正比于中断程序执行时间。另外,数据传送的时刻将不同于最初的时间安排表。参照图5C,这样的差值不单可以出现在发射任务后,也可出现在接收任务前。时间增加Δ也具有修改总的时间安排表的效果,由此要求仍旧遵守时间约束。例如,由于使用中断连同存储通信数据,与中断有关的任务可以在时间上平移。由于中断将受到平移影响的任务连同贮存数据的尺寸和存活时间(例如持续时间)一起被存储。这允许把加权因子指派给通信类型的可能的转换的花费(通信时间、硅处理过程等)。Δ的传播如下地影响被中断的任务,其它任务,同步通信,和异步通信:
中断的任务:Tend=Tend+Δ
其它任务:Tbegin=Tbegin+Δ;Tend=Tend+Δ
同步通信:Tbegin=Tbegin+Δ;Tend=Tend+Δ;以及
异步通信:
如果Δ由边缘的末端点传播:Tend=Tend+Δ;以及
如果Δ由边缘的起始点传播:Tbegin=Tbegin+Δ
时间安排的应用项可以用数据流程图表示,其中节点代表任务,边缘代表在任务之间的通信,如图1B所示。按照优选实施例,本发明提供在应用项时间安排表上Δ的传播方法,允许确定受时间滞后Δ影响的任务。一种传播方法被提供来存储数据到接收机,以及另一种传播方法被提供来存储数据到发射机。在这些方法的任一种方法中,如果接收机或发射机单元没有中断系统和/或没有足够空间存储异步通信的数据,则通信传送不能与接收机存储通信或发射机存储通信同步,在一个实施例中,方法首先进行接收机存储通信,以及如果通信仍旧为异步,则执行发射机存储通信。
图6A显示按照本发明的一个实施例的、用于确定传播延时的接收机存储方法600的流程图。对于所有的异步通信,接收机存储方法600在操作步骤602确定接收机是否可中断的。如果接收机是不可中断的,则通信不能由接收机存储方法被同步,以及方法进到图6B的操作步骤652。另一方面,如果接收机是可中断的,则方法进到操作步骤604,确定当中断到达接收机时任务是否正在进行。
如果任务正在进行,则在操作步骤606,确定正在进行的任务是否可中断的。当确定任务是可中断时,方法进到操作步骤610,评估接收机是否具有足够的存储器空间来存储在通信存活期间的通信数据。如果接收机具有足够的存储器空间,则在操作步骤614,把通信归类为潜在的半同步的,以及在操作步骤618,传播与中断有关的延时。否则,该通信被确定为异步的,方法进到图6B的操作步骤652。
然而,在操作步骤604,如果确定当中断到达接收机时任务没有在进行,则进一步确定在Tinterrupt和Tinterrupt+Temission之间的时间间隔内任务是否正在进行。优选地,该时间间隔是[Tinterrupt,Tinterrupt+Temission]。如果是的话,则方法进到操作步骤612,在其中确定接收机是否具有足够的存储器空间来存储在通信存活期间的通信数据。如果接收机具有足够的存储器空间,则在操作步骤616,把通信归类为潜在的半同步的。然而,延时Δ不被传播,如在操作步骤620中所示的。否则,如果在操作步骤608,任务正在进行,这个整个任务可被移位一个延时Δ,而不用中断。在这种情形下,方法进到操作步骤610。然后方法在操作步骤622结束。
任务T2被称为是在一定的环境下直接时间依赖于任务T1的。例如,如果任务T1和T2被同一个单元执行,以及任务T2的执行紧接在任务T1的执行结束后开始,则存在直接时间依赖性。另外,当任务T1和T2在两个不同的单元上执行以及任务T2从任务T1结束同步数据,则也可存在这样的条件。
在实施接收机存储方法时,延时Δ被传送到接收机上的所有的任务Ti和通信,从中断的任务以后直至作为时间α的接收机任务为止。另外,延时Δ可被循环地传播到与任务Ti有直接时间依赖性的任务,优选地每个任务至多一个延时。
图6B显示按照本发明的一个实施例的、用于确定传播延时的发射机存储方法650的流程图。如图所示,发射机存储方法650的操作以与图6A的接收机存储方法600相同的方式进行。然而,在发射机存储方法650中,操作步骤是对于发射机而不是对于接收机实行的。
当实施发射机存储方法时,延时+Δ被传送到接收机单元上所有的任务Tj和通信,从接收机任务开始点直至时间安排表的末尾作为时间间隔β为止。另外,时间延时-Δ被传送到发射机单元上所有的任务Tk和通信,在发射机任务的末端之间直至中断的时间被接收的时间间隔x为止。而且,延时+Δ被循环地传播到与任务Tj有直接时间依赖性的任务,优选地每个任务至多一个延时。同样地,延时-Δ被循环地传播到与任务Tk有直接时间依赖性的任务,优选地每个任务至多一个延时。
对于这样规定的半同步通信和对于与被确定的这些传送事件有关的时间,通信硬件可以通过使用同一种类型的支持,诸如总线,同时地针对同步和半同步型而被最佳化。在由于预定的系统或存在已知的异步通信,支持硬件是通信的存储器的情况下,通信可被归类为同步的。在这种情形下,数据传输的模型将是不同的。例如,图7A和7B显示两种同步通信模型。具体地,图7A显示具有同步时间tsyn的、在发射机u1和接收机u2之间的同步通信,而图7B显示具有发射时间te和传输时间tr的、在发射机u1和接收机u2之间的同步通信。
按照一个实施例,同步传输模型是按照现有的硬件(预定的系统)适配的,或潜在地被加在异步通信硬件的确定级上。在连接用于同步传送的单元的通信存储器的情形下,使用图7B所示的同步模型,而不用图7A的模型,或者适合于简单的总线的情形。然后,熟知的、搜索加权的双方匹配算法被使用来使得支持所有的传送的总线数目最小化。图8A显示代表通过总线的数据传输的模型。Tsyn是数据从发射机u1传输到接收机u2的时间。图8B显示通过通信存储器(例如,FIFO,双端口等)的数据传输的模型。发送时间te是数据从u1传输到FIFO的时间,以及传输时间tr是数据从FIFO传输到接收机u2的时间。在这两个阶段末尾,通信硬件以及在单元之间的必要的协议(同步/半同步/异步)被产生。
例如,图9A显示描述图1B上模型化的应用项120的时间安排表的示意图。如图1C所示,时间安排表图安排设计单元的分配的任务为时间的函数。在这种配置下,通过使用任务的移动性,任务T3被安排在后面进行,以使得在任务T2与T6之间的通信成为同步的。同样地,任务T4被安排在后面进行,以使得在任务T3与T7之间的通信成为同步的。
图9B显示对于图9A上修改的应用项120的系统950的硬件结构。系统950在处理器P1与HW1之间包括总线952,而不是FIFO。然而,系统950仍包括FIFO。因此,虽然系统950比起图1C的系统协议较少的芯片表面,但FIFO 954仍旧比总线协议更大的表面。
图10A显示描述按照本发明的一个实施例的、使用中断机制的应用项120的时间安排表的示意图。如图所示,处理器P2配备有产生中断的中断机制和对于存储在任务T9到T13,任务T10到T13,任务T11到T13,和任务T12到T13之间的数据足够的存储器空间。
在这种配置下,在任务T9到T13,任务T10到T13,任务T11到T13,和任务T12到T13之间的异步通信通过使用接收机存储方法被转换成半同步的。处理器P2存储通信数据,直至任务T13准备好执行为止。应当指出,在使用接收机存储方法时,从任务到任务的花费,γi/j为如下:γ9/13=γ11/13=γ10/13=γ12/13=0
图10B显示对于图10A上修改的应用项120的系统1050的硬件结构。系统1050现在包括两条总线1052和1054,而没有任何FIFO。因此,系统1050比起图1C和9B的系统需要少得多的芯片表面。
本发明使用任务的移动性和中断驱动机制来减小数据贮存需要。它通过尽可能对地以同步的方式实行在单元之间的数据传输,而使得在给定的时间约束内表面面积最佳化。而且,预定的系统的规定可以考虑到复用硬件。另外,本发明的方法和设备考虑单元上空闲的存储器容量(例如,与任务的本地变量有关的空间),使得要被传送的数据的贮存最佳化。通过本方法,我们去除了与多处理器系统中的通信有关的冗余的存储器。
例如,基于BIP37双处理器的系统,具有由双端口RAM连接的两个核心,以及每个核心1K RAM,可以通过确定双端口RAM对于给定的应用项是否可被去除,而使得系统最佳化。例如,对于多通道音频压缩应用项,对于异步通信所需要的存储器尺寸是1K。在BiP3771上的1K代表芯片面积的15%。本发明通过把所需要的所有数据直接存储在本地处理器存储器中,而允许去除这样的存储器。
虽然借助于几个优选实施例描述了本发明,但可以有属于本发明的范围内的改变、置换和等价物。也应当指出,可以有实施本发明的方法、装置、和系统的替换的方法。所以,打算由以下的附属权利要求来包括属于本发明的真正的精神和范围内的所有的这样的改变、置换和等价物。
附录
传送的类型可以由在以下的论文中描述的任务算法的移动性来被确定:M.Israel L.Freund等,“A Codesign Experiment in AcousticEcho Cancellation(在回声抵消中代码符号实验)”,ACM Transactionon Design Automation of Electronics Systems,Vol.2,No.4,October1997,pp.365-383,该论文在此引用,以供参考。在划分后,提供在功能性单元上任务的时间安排表。目的是通过局部重新安排操作使得同步通信的使用最大化。然而,即使对于局部重新安排,也不总是可能只使用同步通信。在这样的情况下,要求异步通信,两种传送类型在最后的结构中被使用来实施应用项的所有的通信。算法是基于两个函数:Node_characterization和Edge_characterization。对于每个节点Vi,Node_characterization计算被规定为在ASAP开始时间ts(ASAP)i和ALAP结束时间te(ALAP)i之间的间隔的移动性间隔ΔM_Vi。
ΔM_Vi=[ts(ASAP)i,te(ALAP)i]
以下的算法可被使用来确定传送类型:
While all the communication edges are not labeled do For each potential synchronous communication edge in the list L do Preliminarily schedule the next edge eij that is not labeled; Analyze the impact of that solution on other communication edges; If no asynchronous communication edge is revealed then Schedule definitively the edge eij, Label the edge eij with a synchronous transfer; Reorder the list L; End if; End for; Definitively schedule the edge eij that has the lowest cost functionξij Label the edge eij with a synchronous transfer; Remove asynchronous communication edges from the list L; <!-- SIPO <DP n="14"> --> <dp n="d14"/> Reorder the list L; End while;
间隔移动性的计算考虑到时间约束。Edge_characterization计算通信边缘eij的移动性间隔ΔMeij(边缘连接的节点被分配给不同的单元)和它的移动性数值Meij。移动性间隔代表在两个节点Vi和Vj之间的通信可以发生的所有的时刻:
ΔMeij=[ts(ASAP)j,te(ALAP)i]
数值ts(ASAP)j代表接收数据的节点的ASAP开始时间,以及数值te(ALAP)i代表发送数据的节点的ALAP结束时间。移动性数值被规定为:
Meij=te(ALAP)i-ts(ASAP)j
如果ts(ASAP)j>te(ALAP)i,则Meij是负值,以及通信是异步的,因为在发送者与接收者之间没有时间重叠。否则,通信可被认为是潜在同步的。函数也提供对于潜在同步通信的边缘的花费数值ξeij,它代表通过这个边缘传送的数据量(通信量)Veij与它的移动性数值的比值:
ξeij=Vei,j/Mei,j
具有最大花费数值的边缘首先被考虑,因为与这些边缘有关的通信是同步的,预期更好的硬件最小化。
算法运行如下(图8)。首先,节点和边缘被表征。当传送类型(同步或异步)被分配给这个边缘时,边缘eij被加标签。具有异步通信的边缘(ts(ASAP)j>te(ALAP)i,即Meij<O)被加标签,以及不考虑用于其余部分。潜在同步边缘的排序表L按照ξeij被创建。相应于第一未加标签的L的边缘eij的节点Vi和Vj是最初安排的(局部重新安排)。这个时间安排表对其它通信边缘的影响通过再次表征节点和边缘而被分析。如果任何通信边缘ekl(k≠i和l≠j)变成为异步的,则eij肯定被安排,以及加标签为同步传送。否则,考虑来自L的另一个未加标签的边缘eij。处理过程被迭代进行,直至对其它边缘没有影响的、所有的通信边缘被加标签为止。
在这个步骤以后,在L中的其余潜在同步边缘涉及至少一个异步通信。令
ξij=(∑ data of asynchronous edges)/(∑ data of synchronousedges)是与eij有关的花费函数,被规定为与成为异步的L的边缘有关的数据的总量和与保持为同步的L的边缘有关的数据的总量的比值。带有ξij最小值的边缘eij被加标签为同步传送,因为目的是使得FIFO专用的面积最小化。
Claims (19)
1.一种根据应用项的通信类型综合通信支持的方法,包括:
为应用项提供一个应用项时间安排表,应用项时间安排表具有用于执行特定的任务的多个单元和在特定的任务之间的一个或多个通信链路;
对于在应用项时间安排表中的每个通信链路,确定其通信类型为异步通信还是同步通信;
对于每个异步通信,确定每个异步通信是否可被转换成使用中断和总线来传送数据的半同步通信;以及
通过使用中断和总线,综合用于半同步通信的通信支持为同步通信。
2.如权利要求1的方法,还包括:
通过使用通信存储器,综合不是半同步通信的异步通信。
3.如权利要求1的方法,其中每个异步通信从发送单元发起到接收单元,以及其中发送单元适合于执行用于产生通信数据的第一任务以及接收单元适合于接收用于执行第二任务的通信数据。
4.如权利要求3的方法,其中对于每个半同步通信,总线被使用来耦合发送单元与接收单元,用来把通信数据从发送单元同步传送到接收单元。
5.如权利要求4的方法,其中接收单元包括用于存储通信数据的内部存储器,其中发送单元在总线上向接收单元发出一个中断,以及发送通信数据到接收单元,以便存储在内部存储器。
6.如权利要求4的方法,其中发送单元包括用于存储通信数据的内部存储器,其中接收单元向发送单元发出一个中断,以便当接收单元准备好执行第二任务时从发送单元的内部存储器传送通信数据。
7.如权利要求4的方法,其中中断与在应用项时间安排表中传播的延时Δ有关。
8.一种根据应用项的通信类型综合通信支持的方法,包括:
为应用项提供一个应用项时间安排表,应用项时间安排表具有用于执行特定的任务的多个单元和在特定的任务之间的一个或多个通信路径;
对于在应用项时间安排表中的每个通信路径,确定其通信类型为异步通信还是同步通信;
对于每个异步通信,确定每个异步通信是否可被转换成使用中断和总线来传送数据的半同步通信;
通过使用中断和总线,综合用于半同步通信的第一硬件支持为同步通信;以及
通过使用通信存储器,综合用于不是半同步通信的异步通信的第二硬件支持。
9.如权利要求8的方法,其中每个异步通信从发送单元发起到接收单元,以及其中发送单元适合于执行用于产生通信数据的第一任务以及接收单元适合于接收用于执行第二任务的通信数据。
10.如权利要求9的方法,其中对于每个半同步通信,总线被使用来耦合发送单元与接收单元,用来把通信数据从发送单元同步传送到接收单元。
11.如权利要求10的方法,其中接收单元包括用于存储通信数据的内部存储器,其中发送单元在总线上向接收单元发出一个中断,以及发送通信数据到接收单元,以便存储在内部存储器。
12.如权利要求10的方法,其中发送单元包括用于存储通信数据的内部存储器,其中接收单元向发送单元发出一个中断,以便当接收单元准备好执行第二任务时从发送单元的内部存储器传送通信数据。
13.如权利要求10中阐述的方法,其中中断与在应用项时间安排表中传播的延时Δ有关。
14.一种根据应用项的通信类型用于综合通信支持的集成电路设计工具,包括:
为应用项提供一个应用项时间安排表的装置,应用项时间安排表具有用于执行特定的任务的多个单元和在特定的任务之间的一个或多个通信路径;
用于对于在应用项时间安排表中的每个通信路径,确定其通信类型为异步通信还是同步通信的装置;
用于对于每个异步通信,确定每个异步通信是否可被转换成使用中断和总线来传送数据的半同步通信的装置;
用于通过使用中断和总线,综合用于半同步通信的第一硬件支持为同步通信的装置;以及
用于通过使用通信存储器,综合用于不是半同步通信的异步通信的第二硬件支持的装置。
15.如权利要求14的集成电路设计工具,其中每个异步通信从发送单元发起到接收单元,以及其中发送单元适合于执行用于产生通信数据的第一任务以及接收单元适合于接收用于执行第二任务的通信数据。
16.如权利要求15的集成电路设计工具,其中对于每个半同步通信,总线被使用来耦合发送单元与接收单元,用来把通信数据从发送单元同步传送到接收单元。
17.如权利要求16的集成电路设计工具,其中接收单元包括用于存储通信数据的内部存储器,其中发送单元在总线上向接收单元发出一个中断,以及发送通信数据到接收单元,以便存储在内部存储器。
18.如权利要求16的集成电路设计工具,其中发送单元包括用于存储通信数据的内部存储器,其中接收单元向发送单元发出一个中断,以便当接收单元准备好执行第二任务时从发送单元的内部存储器传送通信数据。
19.如权利要求16的集成电路设计工具,其中中断与在应用项时间安排表中传播的延时Δ有关。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/458,585 US6625637B1 (en) | 1999-12-09 | 1999-12-09 | Method and apparatus for synthesizing communication support based on communication types of application |
US09/458585 | 1999-12-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1399749A true CN1399749A (zh) | 2003-02-26 |
Family
ID=23821355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN00805012A Pending CN1399749A (zh) | 1999-12-09 | 2000-12-08 | 根据应用项的通信类型综合通信支持的方法和设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US6625637B1 (zh) |
EP (1) | EP1238350A2 (zh) |
JP (1) | JP2004500636A (zh) |
KR (1) | KR20010103762A (zh) |
CN (1) | CN1399749A (zh) |
WO (1) | WO2001042997A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373436A (zh) * | 2014-08-19 | 2016-03-02 | 罗伯特·博世有限公司 | 控制设备和对此的运行方法 |
CN113242167A (zh) * | 2021-04-12 | 2021-08-10 | 成都尼晟科技有限公司 | 一种基于单比特位同步的半异步can总线控制方法及控制器 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2389684B (en) * | 2002-05-27 | 2004-05-05 | Radioscape Ltd | A method of designing a system for real time digital signal processing, in which the system uses a virtual machine layer |
KR100803254B1 (ko) * | 2005-01-19 | 2008-02-13 | 세이코 엡슨 가부시키가이샤 | 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 |
GB0516444D0 (en) * | 2005-08-10 | 2005-09-14 | Symbian Software Ltd | Improving the efficiency of file server requests in a computing device |
DE102009005399B4 (de) * | 2009-01-19 | 2024-02-08 | Phoenix Contact Gmbh & Co. Kg | Verfahren und Kommunikationssystem zum Konfigurieren eines einen Logikbaustein enthaltenden Kommunikationsmoduls |
US8549094B2 (en) | 2011-06-30 | 2013-10-01 | International Business Machines Corporation | Facilitating communication between isolated memory spaces of a communications environment |
US10135854B2 (en) * | 2015-04-07 | 2018-11-20 | Informatica Llc | Method, apparatus, and computer-readable medium for generating a data proliferation graph |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4317169A (en) * | 1979-02-14 | 1982-02-23 | Honeywell Information Systems Inc. | Data processing system having centralized memory refresh |
US4593282A (en) * | 1983-04-14 | 1986-06-03 | At&T Information Systems Inc. | Network protocol for integrating synchronous and asynchronous traffic on a common serial data bus |
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US5544347A (en) * | 1990-09-24 | 1996-08-06 | Emc Corporation | Data storage system controlled remote data mirroring with respectively maintained data indices |
US5473666A (en) * | 1992-09-11 | 1995-12-05 | Reliance Comm/Tec Corporation | Method and apparatus for digitally controlling gain in a talking path |
SE501373C2 (sv) * | 1992-12-17 | 1995-01-30 | Televerket | Anordning vid kommunikationsnät |
US6181257B1 (en) * | 1994-09-29 | 2001-01-30 | Kemp-Meek Manufacturing, Inc. | Universal utility usage data gathering system |
US5909560A (en) * | 1995-06-06 | 1999-06-01 | National Semiconductor Corporation | Target peripheral device detection in a multi-bus system |
EP0860823A4 (en) * | 1996-07-15 | 2001-05-02 | Toshiba Kk | DEVICE WITH DIGITAL INTERFACE, NETWORK SYSTEM WITH THIS DEVICE AND COPY PROTECTION PROCEDURE |
US5854908A (en) * | 1996-10-15 | 1998-12-29 | International Business Machines Corporation | Computer system generating a processor interrupt in response to receiving an interrupt/data synchronizing signal over a data bus |
JP3796870B2 (ja) * | 1997-01-21 | 2006-07-12 | ソニー株式会社 | 受信装置及び受信方法、並びに携帯電話システムの端末装置 |
US6105071A (en) | 1997-04-08 | 2000-08-15 | International Business Machines Corporation | Source and destination initiated interrupt system for message arrival notification |
US6219711B1 (en) * | 1997-05-13 | 2001-04-17 | Micron Electronics, Inc. | Synchronous communication interface |
US6068661A (en) * | 1997-10-01 | 2000-05-30 | Micron Electronics, Inc. | Method of emulating synchronous communication |
WO1999019854A1 (en) * | 1997-10-09 | 1999-04-22 | Interval Research Corporation | Method and apparatus for sending presence messages |
ATE215244T1 (de) * | 1997-11-14 | 2002-04-15 | Marathon Techn Corp | Verfahren zur erhaltung von synchronisierter ausführung bei fehler-betriebssicheren/ fehlertoleranten rechnersystemen |
US6434161B1 (en) * | 1998-02-25 | 2002-08-13 | 3Com Corporation | UART with direct memory access buffering of data and method therefor |
US6487198B1 (en) * | 1998-06-16 | 2002-11-26 | Mci Communications Corporation | Method and system for unloading T1 payloads from ATM cells |
-
1999
- 1999-12-09 US US09/458,585 patent/US6625637B1/en not_active Expired - Fee Related
-
2000
- 2000-12-08 EP EP00984229A patent/EP1238350A2/en not_active Withdrawn
- 2000-12-08 KR KR1020017009993A patent/KR20010103762A/ko not_active Application Discontinuation
- 2000-12-08 CN CN00805012A patent/CN1399749A/zh active Pending
- 2000-12-08 WO PCT/US2000/033621 patent/WO2001042997A2/en not_active Application Discontinuation
- 2000-12-08 JP JP2001544216A patent/JP2004500636A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105373436A (zh) * | 2014-08-19 | 2016-03-02 | 罗伯特·博世有限公司 | 控制设备和对此的运行方法 |
CN105373436B (zh) * | 2014-08-19 | 2020-11-06 | 罗伯特·博世有限公司 | 控制设备和对此的运行方法 |
CN113242167A (zh) * | 2021-04-12 | 2021-08-10 | 成都尼晟科技有限公司 | 一种基于单比特位同步的半异步can总线控制方法及控制器 |
Also Published As
Publication number | Publication date |
---|---|
WO2001042997A2 (en) | 2001-06-14 |
WO2001042997A3 (en) | 2002-07-04 |
JP2004500636A (ja) | 2004-01-08 |
KR20010103762A (ko) | 2001-11-23 |
US6625637B1 (en) | 2003-09-23 |
EP1238350A2 (en) | 2002-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101044485A (zh) | 集成电路开发系统 | |
CN1149806C (zh) | 高性能通信控制器 | |
JP2020537784A (ja) | ニューラルネットワークアクセラレーションのための機械学習ランタイムライブラリ | |
CN1910571A (zh) | 单芯片协议转换器 | |
CN1100822A (zh) | 系统总线外围总线间最佳数据传送用多总线系统总线桥 | |
US7007254B1 (en) | Method and apparatus for the design and analysis of digital circuits with time division multiplexing | |
US7096438B2 (en) | Method of using clock cycle-time in determining loop schedules during circuit design | |
CN1157662A (zh) | 专用处理器及其设计方法 | |
CN101055523A (zh) | 将软件程序代码断言转换为硬件描述语言程序代码的方法 | |
CN1478226A (zh) | 混合异步同步系统的低等待时间fifo电路 | |
CN1399749A (zh) | 根据应用项的通信类型综合通信支持的方法和设备 | |
CN1797382A (zh) | 主机设备、设备单元、通信系统和数据发送/接收方法 | |
US6834378B2 (en) | System on a chip bus with automatic pipeline stage insertion for timing closure | |
WO2010027579A2 (en) | Approximate functional matching in electronic systems | |
CN109919826B (zh) | 一种用于图计算加速器的图数据压缩方法及图计算加速器 | |
CN101770362B (zh) | 满足SystemC的处理器中的分布式动态进程生成单元 | |
CN1949184A (zh) | 一种芯片验证的方法及系统 | |
CN1036949C (zh) | 分布在网络中的单元的系统 | |
Thepayasuwan et al. | Layout conscious bus architecture synthesis for deep submicron systems on chip | |
CN1866233A (zh) | 信号处理装置,信号处理系统及信号处理方法 | |
Setiawan et al. | PHY layer design of OFDM-VLC system based on SoC using reuse methodology | |
CN1227448A (zh) | 异向传输模式交换设备的无瞬断交换系统 | |
Thepayasuwan et al. | Bus architecture synthesis for hardware-software co-design of deep submicron systems on chip | |
US6694488B1 (en) | System for the design of high-performance communication architecture for system-on-chips using communication architecture tuners | |
CN1114951C (zh) | 降低耗散功率的半导体集成电路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |