CN108304344B - 计算单元及其运行方法 - Google Patents
计算单元及其运行方法 Download PDFInfo
- Publication number
- CN108304344B CN108304344B CN201810026602.2A CN201810026602A CN108304344B CN 108304344 B CN108304344 B CN 108304344B CN 201810026602 A CN201810026602 A CN 201810026602A CN 108304344 B CN108304344 B CN 108304344B
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- functional
- functional units
- functional unit
- 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 35
- 238000003860 storage Methods 0.000 claims abstract description 82
- 230000015654 memory Effects 0.000 claims description 129
- 230000006870 function Effects 0.000 claims description 66
- 230000008878 coupling Effects 0.000 claims description 51
- 238000010168 coupling process Methods 0.000 claims description 51
- 238000005859 coupling reaction Methods 0.000 claims description 51
- 230000002093 peripheral effect Effects 0.000 claims description 41
- 238000004891 communication Methods 0.000 claims description 34
- 238000009826 distribution Methods 0.000 claims description 11
- 238000003491 array Methods 0.000 claims description 6
- 238000002485 combustion reaction Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 26
- 230000005540 biological transmission Effects 0.000 description 21
- 238000007792 addition Methods 0.000 description 18
- 230000008901 benefit Effects 0.000 description 18
- 230000000903 blocking effect Effects 0.000 description 18
- 230000008859 change Effects 0.000 description 18
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000012913 prioritisation Methods 0.000 description 9
- 238000011156 evaluation Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 7
- 238000012986 modification Methods 0.000 description 7
- 239000004065 semiconductor Substances 0.000 description 7
- 101150022075 ADR1 gene Proteins 0.000 description 6
- 101100490566 Arabidopsis thaliana ADR2 gene Proteins 0.000 description 6
- 101100269260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) ADH2 gene Proteins 0.000 description 6
- 230000006978 adaptation Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 230000015572 biosynthetic process Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000036961 partial effect Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 230000036962 time dependent Effects 0.000 description 3
- 101100490563 Caenorhabditis elegans adr-1 gene Proteins 0.000 description 2
- 101000588232 Homo sapiens N-alpha-acetyltransferase 11 Proteins 0.000 description 2
- 102100031640 N-alpha-acetyltransferase 11 Human genes 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 101100388220 Caenorhabditis elegans adr-2 gene Proteins 0.000 description 1
- 101100537937 Caenorhabditis elegans arc-1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Advance Control (AREA)
- Electrotherapy Devices (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及计算单元,具有至少一个计算核心(110a、110b、110c)、初级存储装置(120)和至少一个主连接单元(130),主连接单元用于将至少一个计算核心与初级存储装置(120)连接,计算单元(100)具有至少两个功能单元(140、140a、140b......140m;1400;1400a;1400b;1400c;1400e;1400f;1400g),其中,至少两个功能单元中的至少一个第一功能单元(140a)被构造用于,a)从至少两个功能单元中的至少一个另外的功能单元(140、140b)接收第一数据,和/或b)将第二数据发送到至少两个功能单元中的至少一个另外的功能单元(140、140b)。
Description
技术领域
本发明涉及一种计算单元,所述计算单元具有至少一个计算核心、初级存储装置和至少一个主连接单元,所述主连接单元用于将所述至少一个计算核心与所述初级存储装置连接。
此外,本发明涉及一种用于这种计算单元的运行方法。
背景技术
这种计算单元是已知的,并且,例如以微控制器的形式能够在商业上使用。
本发明的任务是,如下地改进开头提到的类型的计算单元,使得它具有提高的灵活性以及提高的使用收益。
发明内容
就开头提到的类型的计算单元而言,这个任务根据本发明地通过下述方式被解决:所述计算单元具有至少两个功能单元,其中,所述至少两个功能单元中的至少一个第一功能单元被构造用于,a)从所述至少两个功能单元中的至少一个另外的功能单元接收第一数据,和/或,b)将第二数据发送到所述至少两个功能单元中的至少一个另外的功能单元。
有利地,根据本发明的功能单元提供了这样的可能性:扩展计算单元的计算性能和/或功能性。尤其地,通过根据本发明的、直接的数据交换的可能性实现了数据流,所述数据交换在功能单元之间,所述数据流没有包含计算单元的、另外的部件(例如,所述计算单元的计算核心或者初级存储装置)。计算核心或者初级存储装置或者主连接单元能够以这种方式被减轻负荷,而同时一个或者多个根据本发明的功能单元感知设置用于其的运算任务或者其他的任务。
特别优选地,根据本发明的计算单元能够被使用在用于目标系统的控制设备中,例如,在用于机动车的内燃机的或者用于基于雷达的距离测量系统的控制设备或者类似物中。不同于传统的计算单元(如,传统的微控制器),根据本发明的计算单元有利地扩展了功能性,并且,因而也能够被视为具有根据本发明所实现的附加功能性的微控制器,所述功能性由功能单元提供并且在下面被更详细地描述。一般而言,根据本发明的计算单元能够被使用在任何这样的地方:常规的计算单元(如,微控制器或者微处理器或者数字的信号处理器或者类似物)被使用在那里,并且,附加的功能性和/或更高的性能能力(如它由根据本发明的功能单元所提供的)在那里是期望的。此外,可能的是,在现存的系统中,以根据本发明的计算单元来替换现有的、常规的计算单元,以便实现对运算任务以及其他的任务的、更有效的执行,所述运算任务以及其他的任务从那以后由常规的计算单元执行。特别有利地,也能够设想的是,根据有些实施方式,将根据本发明的计算单元也使用在处理安全相关的数据的领域中或者用于处理加密算法。
就有利的实施方式而言设置了,至少一个初级连接单元被设置,所述初级连接单元被构造用于,至少暂时地在所述第一功能单元和所述至少两个功能单元中的至少一个另外的功能单元之间建立尤其是直接的数据连接。这有利地实现了控制在不同的功能单元之间的数据交换或者数据流,使得在计算单元的运行期间,在相关的功能单元之间的数据连接的配置或者重新配置也是可能的,由此,获得了提高的灵活性。
就优选的实施方式而言,所述初级连接单元具有至少一个耦合网。特别优选地,所述耦合网被设计为无阻塞的耦合网。在这种情况下,耦合网在任何时间都实现了在所有与耦合网连接的功能单元之间的以及如有必要在另外的、与耦合网连接的单元(例如,计算单元的部件)之间的数据连接的建立。
就另外的实施方式而言,也能够设想的是,所述初级连接单元被执行为耦合网,然而,所述耦合网没有无阻塞地被设计。
就另外的实施方式而言,所述初级连接单元也能够包括其他的结构、例如至少一个总线系统,所述总线系统在与总线系统连接的功能单元之间建立数据连接。
就另外的实施方式而言,所述初级连接单元也能够具有至少一个在至少两个功能单元之间的、直接的数据连接。此外,就其他的实施方式而言,在多于两个功能单元之间的、直接的数据连接也是能够设想的。
就另一个实施方式而言,能够设置所述至少一个初级连接单元具有前述连接机构中的多个,即:例如用于连接一些功能单元或者使所有功能单元彼此连接的耦合网,以及,例如总线系统,所述总线系统将多个或者所有功能单元连接,以及,例如在多个或者所有功能单元之间的、直接的数据连接。
就另一个有利的实施方式而言设置了,功能单元的多个组被设置,其中,至少一个初级连接单元被配属于所述多个组中的每一个,所述初级连接单元被构造用于,至少暂时地在所述相关的组的功能单元之间建立尤其是直接的数据连接。由此,功能单元的多个群集(Cluster)仿佛能够被提供,所述群集能够分别执行同类的或者不同类的运算或者其他的任务。
就另一个有利的实施方式而言设置了,初级连接单元被构造用于在不同组的功能单元之间建立数据连接,所述初级连接单元被配属于功能单元的组。
就另外的实施方式而言,初级连接单元(所述初级连接单元被配属于相应的组)又具有以下部件中的至少一个:耦合网、总线系统、至少一个直接的数据连接。
就另一个有利的实施方式而言,至少一个次级连接单元被设置,所述次级连接单元被构造用于,在所述主连接单元和至少一个功能单元之间建立数据连接,和/或,在所述主连接单元和至少一个初级连接单元之间建立数据连接,由此,效率高的连接(Anbindung)被给出,所述连接用于在相关的功能单元和主连接单元之间的数据传输。主连接单元能够例如被构造为所谓的“核心-互连(Core-Interconnect)”,即,能够是中央的连接单元,所述中央的连接单元用于根据本发明的计算单元的部件彼此之间的、高性能的连接(尤其地,具有高的数据率和/或短的潜伏期)。就一个优选的实施方式而言,主连接单元优选也能够被设计为耦合网、尤其是无阻塞的耦合网。
就另一个优选的实施方式而言,至少一个次级存储装置被设置,其中,在所述至少一个次级存储装置和至少一个功能单元之间存在直接的数据连接。在当前的上下文中,在次级存储装置和至少一个功能单元之间的、直接的数据连接应当被理解为这样的数据连接:所述数据连接实现了在次级存储装置和至少一个功能单元之间的数据交换,而没有为此使用主连接单元。换言之,就当前的实施方式而言,数据交换能够直接发生在功能单元中的一个或者多个功能单元和次级存储装置之间,由此,主连接单元没有被加负荷,使得这个主连接单元如有必要另外地能够被用于例如在计算核心和初级存储装置之间的数据交换以及类似物。
就另一个有利的实施方式而言,所述至少一个次级存储装置具有多个存储器库,其中,尤其是所述至少一个次级存储装置被构造用于实现对所述多个存储器库中的至少两个的、平行的数据访问。由此,有利地实现了高的带宽,所述带宽用于对或者从次级存储装置或者其库的访问,并且,尤其地,不关联的数据块也能够平行地或者同时在参与的功能单元和次级存储装置或者其存储器库之间被传输。
就另一个优选的实施方式而言,所述功能单元中的至少一个功能单元被构造为硬件电路、尤其是完全被构造为硬件电路。由此,有利地,运算、逻辑操作以及其他的功能能够特别快并且有效地被执行,所述功能由相关的功能单元提供。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有以下元件中的至少一个:微控制器、数字的信号处理器(DSP),能够编程的逻辑电路(例如,FPGA,现场可编程门阵列),应用特定的、集成的电路(ASIC,特定用途集成电路)。
就一个实施方式而言设置了,所有功能单元被构造为硬件电路、尤其是完全被构造为硬件电路。就其他的实施方式而言,可能的是:一个或者多个功能单元被构造为硬件电路、尤其是完全被构造为硬件电路,并且,至少一个没有完全被构造为硬件电路的部件或者其他的部件以至少一个另外的功能单元的形式被设置。
例如,就特别优选的实施方式而言,第一数目的功能单元能够被设置,所述功能单元被完全构造为硬件电路,并且,另外的功能单元能够例如具有微控制器或者能够编程的逻辑模块或者能够编程的逻辑电路。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有以下部件中的至少一个部件:加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器(MAC)、算术-逻辑单元(ALU)、存储器单元、寄存器、复用器、解复用器、接口、用于评估指数函数的单元、用于评估三角函数的单元。
就另一个优选的实施方式而言,所述功能单元中的至少一个功能单元具有至少一个粗粒的硬件元件。可替代地或者补充地,所述功能单元中的至少一个功能单元能够被构造为粗粒的硬件元件。
当前,概念“粗粒的”意味着,相关的硬件元件具有多于一个的逻辑门或者由多于一个的逻辑门形成。根据一实施方式,所述门在功能上和/或在彼此的连接上是不能够改变的。
一般来说,“粒度”被理解为:系统到何种程度由能够彼此区分的、单个的单元组成。粗粒的系统由相对较少的、相对较大的粗粒的元件组成,而细粒的系统由相对较多的、相对较小的细粒的元件组成。
具体而言,“粒度”能够在计算机-体系结构的领域中通过逻辑门的数目并且与之伴随地尤其通过下述关系来描述,所述关系是在运算操作或者执行时间与通信或者数据交换之间的关系。在细粒的硬件元件(每个逻辑门)中,简单的、逻辑的操作能够在相对较短的执行时间中被快速地执行,然而,数据频繁地在各个元件之间交换。与此不同地,在粗粒的硬件元件(每多个逻辑门)中,尤其是复杂的操作分别以相对较长的执行时间被执行,并且,数据更稀少地在各个单元之间交换。
因此,“粗粒的硬件元件”应当尤其被理解为下述元件,所述元件能够分别自动地执行复杂的运算操作,尤其地,而为此没有频繁地彼此交换数据。例如,单个的、粗粒的硬件元件被分别构造为以下元件中的一个:更高度复杂的元件和/或较不复杂的单元,所述更高度复杂的元件如算术-逻辑单元(ALU)、存储器访问单元、通信接口,所述较不复杂的单元如比较器、加法器、乘法器、除法器、移位寄存器、桶式-移位器、乘法累加器(“Multiply-Accumulate”,(MAC))、寄存器或寄存器块、存储器单元(例如,RAM、闪存等)、复用器(例如2:1-MUX、M:N-MUX)、解复用器。
ALU尤其运算算数函数和逻辑函数。例如,它能够作为算数函数执行至少一次加法(ADD),并且,作为逻辑函数执行至少一次“非”运算(NOT)和“与”运算(与-联接,AND)。优选地,它作为算数函数也能够执行减法(SUB)和/或比较(compare,CMP)和/或乘法(MUL)和/或除法和/或十进制数加调整(Decimal Adjust after Addition)。优选地,它作为逻辑函数也能够执行“或”运算(或-联接,OR)和/或“异或”运算(异-或-联接,XOR,EOR)和/或右移位和左移位(右移、左移、ASR-算数右移位、ASL-算数左移位、LSR-逻辑右移、LSL-逻辑左移)和/或左旋转和右旋转(ROL、ROR)和/或寄存器-操纵和/或位-变化(设置、清除和测试位)和/或位和字节的再分类和/或AES-指令和/或CRC-指令。
就特别优选的实施方式而言,相对较复杂的运算装置通过多个彼此连接的部件(例如,加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器、算术-逻辑单元、存储器单元、寄存器、复用器、接口或者一般粗粒的硬件元件,所述硬件元件能够形成功能单元或者其组成部分)被提供,其中,根据本发明,至少一个第一功能单元有利地被构造用于,从至少一个另外的功能单元接收第一数据和/或将第二数据发送到至少一个另外的功能单元,如这已经在前面所描述的那样。由此,数据流能够被定义,所述数据流除其他外也实现了对相对较复杂的运算的执行,所述运算例如使用多个前述的部件或者粗粒的硬件元件,例如在能够预先给定的、根据待评估的算法或者其他的计算规则的顺序中。
根据本发明的另一个方面,特别有利地,这个数据流也能够动态地(这意味着,在根据本发明的计算单元的运行时间期间)被影响或者改变,即,再配置或者重新配置。就一个优选的实施方式而言,这能够例如通过对初级连接单元的、对应的控制来实现。
根据另一个优选的实施方式设置了,所述计算单元被构造用于,改变至少一个功能单元(或者一个或者多个包含在其中的、粗粒的元件)的配置,和/或,检查至少一个功能单元的状态或者所述配置。由此,根据本发明的计算单元的灵活性和使用收益被进一步提升。例如,就一个实施方式而言能够设置,至少一个功能单元具有配置寄存器,所述配置寄存器能够例如本地化地被布置在所述功能单元中。因而,通过对计算单元的写入访问,例如借助其计算核心中的一个,计算单元因此能够改变相关的功能单元的配置。
换言之,就一些实施方式而言,例如计算单元的计算核心能够被构造用于,改变至少一个功能单元的配置,和/或,检查至少一个功能单元的状态或者所述配置。
就另外的实施方式而言,能够想到的是,至少一个功能单元被构造用于,改变至少一个(其他的)功能单元的配置,和/或,检查至少一个功能单元的状态或者配置。此外,能够想到的是,就其他的实施方式而言,功能单元被构造用于,改变和/或检查它自己的配置。
就另外的实施方式而言,能够想到的是,计算单元的至少一个外围单元被构造用于,改变至少一个功能单元的配置,和/或,检查至少一个功能单元的状态或者所述配置。例如,外围单元能够是DMA-控制装置。由此,有利地实现了,DMA-控制装置基本上自主地从计算单元的第一存储器区域读出例如用于确定的功能单元的配置信息,并且,将读出的配置信息写入相关的功能单元的、对应的配置寄存器中。
就另一个实施方式而言设置了,所述功能单元中的至少一个功能单元被构造用于,改变所述初级连接单元的和/或至少一个次级连接单元的配置,和/或,检查至少所述初级连接单元的和/或至少一个次级连接单元的状态或者所述配置。
根据另一个实施方式,粗粒的硬件元件的配置应当被理解为粗粒的硬件元件的功能从能够使用的可能性以及尤其是单个的元件(例如,初级连接单元)的连接结构中的具体化。因此,通过配置的改变,计算单元或者功能单元能够在硬件层面上(改)配置元件的功能,以及,以不同的方式使所述元件彼此(重新)连接,并且,由此在硬件层面上实现了计算单元对不同的算法的适配。就特别优选的实施方式而言,不同的功能单元彼此之间的配置或者连接能够通过预先给定对应的目标地址完成,所述目标地址用于在功能单元之间的、例如以数据包形式交换的数据。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有到所述计算单元的中断请求-分配装置(英语:interrupt router)的、至少一个尤其是直接的数据连接,和/或,具有到所述计算单元的中断请求-分配装置的、至少一个尤其是间接地经由前置级延伸的数据连接。由此,有利地给出了这样的可能性:相关的功能单元能够直接地或者至少间接地影响在计算单元之内的中断请求的处理,例如,以便产生中断请求,和/或,以便延迟或者以其他的方式影响(例如,屏蔽)由其他单元产生的中断请求。此外,就其他的实施方式而言,有利地给出了这种可能性:将中断请求发送到功能单元,以便影响其运行或者改变其配置。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有到所述计算单元的输入接口和/或输出接口(或者组合的输入接口和输出接口,英语:I/O-Port)的、尤其是直接的数据连接。由此,有利地给出了这样的可能性:功能单元将输入信号发送到计算单元的输入接口,或者,将输出信号经由计算单元的输出接口输出,例如,输出到布置在计算单元外部的单元。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有尤其是直接的数据连接,所述数据连接到计算单元的定时器-模块和/或模拟/数字-转换器和/或计算单元的、至少一个另外的、必要时存在的部件(例如,硬件加速器单元或者类似物)。由此,有利地给出了这样的可能性:至少一个功能单元能够直接影响定时器-模块,或者,能够查询数据(例如,定时器的计数器读数),而不必使用计算单元的主连接单元。类似的优点也适用于发明方面,所述发明方面包括直接的数据连接,所述数据连接在至少一个功能单元和模拟/数字-转换器之间或者是到如有必要存在的硬件加速器单元的数据连接。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元被构造用于,改变它们自己的配置。可替代地或者补充地,所述功能单元能够被构造用于,改变至少一个另外的功能单元的配置。就优选的实施方式而言,这能够例如通过下述方式实现:第一功能单元将对应的配置数据直接写入第二功能单元的配置寄存器中。为此所需的数据连接能够由初级连接单元实现,所述数据连接从第一功能单元到其第二功能单元的配置寄存器,如前面已经多次描述的那样。
就另一个有利的实施方式而言设置了,为了配置或者再配置一个或者多个功能单元,对应的配置信息从来源(例如,配置存储器)中读出,并且,这些配置信息被写入相关的功能单元的、对应的配置寄存器中。配置寄存器能够例如被布置在次级存储装置中。可替代地或者补充地,配置存储器也能够被布置在初级存储装置中。此外,就另外的实施方式而言能够设想的是,借助在计算单元外部的部件提供配置信息,例如以(串行的)闪存的形式,所述部件例如与计算单元的、对应的接口连接。
一般而言,就一个实施方式而言,计算单元的初级存储装置既能够具有工作存储器(直接访问存储器,RAM,Random Access Memory),也能够具有至少一个闪存,即非易失性存储器。
就另外的实施方式而言,次级存储装置优选被构造为RAM-存储器,尤其是被构造为静态的RAM存储器(SRAM)。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有输入接口和/或输出接口,所述输入接口用于接收所述第一数据,所述输出接口用于输出所述第二数据。就优选的实施方式而言,这个输入接口或者输出接口能够尤其被用于与其他的、同类的或者不同类的功能单元的数据交换(发送和/或接收),或者,必要时也与其他的部件的数据交换,所述其他的部件具有与功能单元的所述输入接口或者输出接口兼容的、对应的接口。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元被构造用于,从初级存储装置和/或从次级存储装置和/或从另外的外围模块(例如,从能够寻址的寄存器和/或DMA-控制单元的存储器区域和/或中断请求-分配装置和/或其他的硬件加速器)读取数据,和/或,将数据写入在它们中。就一个优选的实施方式而言,这能够尤其经由与前述的输入接口或者输出接口不同的(其他种类的)接口来完成,例如也间接地经由与前述的输入接口或者输出接口不同的(其他种类的)接口,并且,例如经由至少一个初级和/或次级连接单元。
根据另一种实施方式,输入接口和/或输出接口能够例如被构造用于,为功能单元接收确定的、以能够预先给定的格式(例如,以数据包的形式)的第一数据,或者,为了到其他的单元(例如,其他的功能单元)的输出,输出确定的、以能够预先给定的格式(例如,再次以数据包的形式)的第二数据。
输入接口能够例如被构造用于与初级连接单元连接。根据初级连接单元的实施,输入接口因此能够例如被构造用于与耦合网和/或总线系统连接。可替代地或者补充地,输入接口也能够被构造用于,在相关的功能单元和至少一个另外的功能单元之间建立直接的数据连接,例如借助直接互连的数据线。同样的实施方式以对应的方式适用于在本发明的、其他的实施方式中的输出接口的构造。
就另一个实施方式而言设置了,所述功能单元中的至少一个功能单元具有本地的控制装置,所述本地的控制装置用于控制所述功能单元的运行。例如,这种本地的控制装置能够包括至少一个状态机(英语:state machine)。
就特别优选的其他实施方式而言,本地的再配置装置也能够被配属于本地的控制装置,所述再配置装置尤其是也动态地(即在功能单元的运行期间)实现了功能单元的再配置或者配置。就另一种实施方式,也能够设想的是,通过状态机的或者本地的控制装置的、对应的部分来描绘本地的后配置装置(Rückkonfigurationseinrichtung)的功能性。
就另一个有利的实施方式而言,所述功能单元中的至少一个功能单元具有本地的运算单元。就另一个有利的实施方式而言,本地的运算单元能够具有至少一个粗粒的硬件元件,或者,能够被构造为粗粒的硬件元件。就另一个有利的实施方式而言,本地的运算单元能够具有以下部件中的至少一个:加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器(MAC)、算术-逻辑单元(ALU)、存储器单元、寄存器、复用器、解复用器、接口、用于评估指数函数的单元、用于评估三角函数的单元。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有本地的配置存储器。特别优选地,所述本地的配置存储器能够包括寄存器存储器,其中,尤其地,所述本地的配置存储器包括多个配置寄存器。由此,通过以期望的方式修改一个或者多个配置寄存器,有效的配置和重新配置或者再配置即使在功能单元的运行期间也是可能的。配置寄存器的修改能够例如通过功能单元本身和/或通过计算单元的、其他的功能单元和/或另外的部件(例如,计算核心)完成。
就另一个有利的实施方式而言设置了,所述功能单元中的至少一个功能单元具有本地的功能存储器。特别优选地,本地的功能存储器能够包括寄存器存储器,或者,能够是寄存器存储器的一部分。尤其地,本地的功能存储器能够包括至少一个功能寄存器。有利地,本地的功能存储器能够被用于至少暂时地存储功能单元的输入数据和/或输出数据或者功能单元的运算的中间结果。
就另一个有利的实施方式而言,也能够设想的是,所述功能单元配备有多个寄存器存储器,其中,第一数目的寄存器存储器能够作为配置寄存器被使用,并且其中,第二数目的寄存器存储器能够作为功能寄存器被使用。就另外实施方式而言,此外能够设想的是,第一数目或者第二数目是变化的,并且例如通过配置是能够改变的。以这种方式,功能单元的运行能够非常灵活地被构造,并且,尤其是本地的(寄存器)存储器能够动态地适配于运算,所述运算能够由功能单元执行。
本发明的、其他的特征、应用可能性和优点由下面的、对本发明的实施例的描述得出,所述实施例在附图中被示出。在此,所有所描述的或者所示出的特征单独或者在任意的组合中形成本发明的对象,独立于其在说明书或者在附图中的表述或者表达。
附图说明
在附图中示出:
图1A示意性地示出根据本发明的计算单元的实施方式的框图,
图1B-1H示意性地示出根据本发明的计算单元的、另外的实施方式,
图2A示意性地示出根据本发明的实施方式的功能单元的、简化的框图,
图2B示意性地示出根据本发明的实施方式的数据结构,
图2C示意性地示出根据本发明的另一个实施方式的功能单元的、简化的框图,
图3A、3B分别示意性地示出根据本发明的另一个实施方式的功能单元的、简化的框图,
图4示意性地示出根据一个实施方式的数据流链,
图5A示意性地示出根据本发明的方法的一个实施方式的、简化的流程图,
图5B示意性地示出根据本发明的方法的另一个实施方式的、简化的流程图,
图5C示意性地示出根据本发明的方法的另一个实施方式的、简化的流程图,
图6示意性地示出根据一个实施方式的运行场景,
图7示意性地示出根据一个实施方式的两个功能单元的、简化的框图,
图8A示意性地示出一个实施方式的、简化的数据流,以及
图8B在包含根据一个实施方式的初级连接单元的情况下示意性地示出根据图8A的数据流。
具体实施方式
图1A示意性地示出根据本发明的计算单元100的一个实施方式的框图。计算单元100具有多个计算核心110a、110b、110c以及初级存储装置120。主连接单元130被设置用于使计算核心彼此连接或者用于使计算核心与初级存储装置120连接,所述主连接单元例如能够是主线系统或者耦合网(英语:crossbar switch)。可选地,计算单元100具有另外的外围部件,当前,这由虚线示出的框125表明。例如,这种外围部件能够是模拟/数字-转换器、输入/输出接口、定时器模块或者类似物。
就一个实施例而言,初级存储装置120能够有利地既具有至少一个尤其是SRAM-类型的和/或DRAM-类型的工作存储器(直接访问存储器,RAM,Random Access Memory),又具有至少一个非易失性存储器(non-volatile RAM(NVRAM)),所述非易失性存储器例如作为闪存、EPROM、铁电RAM(FeRAM),磁阻RAM(MRAM)、相变RAM(PCRAM)。
根据本发明,计算单元100具有至少两个功能单元,其中,至少一个第一功能单元140a被构造用于,从至少一个另外的功能单元140、140b接收第一数据,和/或,将第二数据发送或者输出到至少一个另外的功能单元140、140b。
根据本发明的功能单元140、140a、140b有利地提供了这样的可能性:扩展计算单元100的计算性能和/或功能性。尤其地,通过直接的数据交换的、根据本发明的可能性实现了数据流,所述数据交换在功能单元之间,所述数据流没有包含计算单元100的、另外的部件(例如,所述计算单元的计算核心110a、110b、110c或者初级存储装置120或者主连接单元130)。以这种方式,计算核心110a、110b、110c,初级存储装置120和主连接单元130能够被减轻负荷,而同时一个或者多个根据本发明的功能单元140、140a、140b感知为其设置的运算任务或者其他的任务。
例如,根据本发明的功能单元140、140a、140b能够被构造用于,执行运算、逻辑操作和/或其他的功能,所述功能单元优选主要、特别优选然而完全地被实现为硬件电路。查找表、特性曲线和/或特性场通过功能单元的实现也是能够设想的。除其他外,参考图2A、2B、2C、3A、3B,关于功能单元的、内部的结构的细节进一步在下面被说明。然而,下面首先参考图1A到1H,探讨了功能单元在根据本发明的计算单元100之内的布置以及其与计算单元100的、中央的部件110a、110b、110c、120、130的数据连接。
就一个有利的实施方式而言,至少一个初级连接单元150被设置,所述初级连接单元被构造用于,至少暂时地在第一功能单元140a和至少一个另外的功能单元140、140b之间建立尤其是直接的数据连接。这有利地实现了对在不同的功能单元之间的数据交换或者数据流的控制,使得即使在计算单元的运行期间,在相关的功能单元之间的数据连接的配置或者重新配置也是可能的,由此,提升的灵活性被实现。当前,“直接的数据连接”被理解为:数据能够在两个参与的功能单元之间被交换,而没有使用计算单元100的主连接单元130。更确切地说,例如初级连接单元150实现了这样的、在与它连接的功能单元之间的、直接的数据连接,参阅箭头a1、a2,所述箭头表明在部件140、140a、140b和初级连接单元150之间的数据流。
就一个优选的实施方式而言,初级连接单元150具有至少一个耦合网152a。特别优选地,耦合网被设计为无阻塞的耦合网。在这种情况下,耦合网152a在任何时间都实现了在所有与耦合网152a连接的功能单元140、140a、140b之间的以及如有必要在另外的、与耦合网连接的单元(例如,计算单元的部件130)之间的数据连接的建立。
特别有利地,根据一个实施方式,为了获得连接单元150的、无阻塞的或者阻塞减少的功能方式,仅写入的数据连接受限,其中,读取的数据连接要么在技术上没有被设置,要么也不能够被允许或者被禁止。禁止(如果设置了)能够有利地被激活并且停用。
就另外的实施方式而言,将初级连接单元150设计为非无阻塞的耦合网也是能够设想的。
就另外的实施方式而言,初级连接单元150也能够具有其他的结构,例如至少一个总线系统(参阅,图1B),所述总线系统建立了在功能单元140之间的数据连接,所述功能单元与总线系统152b连接。
就另外的实施方式而言,初级连接单元150也能够具有在至少两个功能单元140、140a之间的、至少一个直接的数据连接(参阅:图1A中的箭头152c)。此外,就其他的实施方式而言,在其他的或者多于两个的功能单元之间的、直接的数据连接也是能够设想的。
就另一个实施方式而言能够设置的是,至少一个初级连接单元150具有多个前述的连接机构,即,例如使一些功能单元或者所有功能单元彼此连接的耦合网以及例如总线系统,所述总线系统使多个或者所有功能单元连接。
就另一个实施方式而言,至少一个次级连接单元155(参阅:图1A)被设置,所述次级连接单元被构造用于,在主连接单元130和至少一个功能单元140之间或者直接和/或间接地通过初级连接单元150地建立数据连接(参阅:箭头a3),由此,效率高的连接被给出,所述连接用于在相关的功能单元140、140a、140b和110a、110b、110c、120、125之间通过主连接单元130的数据传输。
根据一个实施方式,主连接单元130能够例如被构造为所谓的“核心-互连”,即,能够被构造为中央的连接单元,所述中央的连接单元用于根据本发明的计算单元100的部件110a、110b、110c、120、125、140彼此之间的、高性能的连接(尤其地,具有高的数据率和/或短的潜伏期)。就一个特别优选的实施方式而言,主连接单元130也能够被设计为耦合网、尤其是无阻塞的耦合网,如前述已经描述的那样。
总体而言,功能单元140、140a、140b的设置以及它们彼此之间灵活的连接(所述连接借助于初级连接单元150建立)实现了在根据本发明的计算单元100之内的、附加的计算性能或者附加的功能性的提供。因此,部件140、140a、140b、150的整体能够有利地也被理解为计算单元100的、“灵活的硬件扩展”1500,其中,特别有利地,这个灵活的硬件扩展1500能够基本上独立自主地(即,独立于部件110a、110b、110c、120、125、130地)执行计算任务,然而在需要时,也能够通过次级连接单元155的连接与部件110a、110b、110c、120、125、130中的至少一个有效地交换数据。
图1B示出根据本发明的计算单元的、另一个实施方式1O0a。就当前的实施方式而言,部件110a、110b、110c、120、125、130、152c、155基本上不变地存在,然而,灵活的硬件扩展当前具有不同的结构并且因此在图1B中以附图标记1500a表示。当前,初级连接单元150以总线系统152b的形式被实现,多个同类的或者不同的功能单元140与所述总线系统连接。功能单元140能够通过总线系统152b彼此交换数据。此外,功能单元140中的一些功能单元能够通过直接连接152c直接地交换数据。在主连接单元130和总线系统152b之间的数据连接由次级连接单元155与图1A类似地实现(参阅:箭头a3)。
图1C示出根据本发明的计算单元的另一个实施方式100b。类似于图1A、1B,根据图1C的计算单元100b再次具有三个计算核心100a、110b、110c以及初级存储装置120以及必要时具有另外的外围单元,所述外围单元然而在图1C中没有被明确地描绘出,而是由初级存储装置120右边的三个点象征。
就当前的实施方式而言,灵活的硬件扩展以功能单元的多个组G1、G2的形式被设置。第一组G1当前例如具有三个功能单元140c、140d、140e,所述功能单元通过第一初级连接单元150_1彼此连接。第二组G2当前例如具有两个功能单元140f、140g,所述功能单元通过第二初级连接单元150_2彼此连接。第一初级连接单元150_1被构造用于,至少暂时地在第一组G1的功能单元140c、140d、140e之间建立尤其是直接的数据连接。第二初级连接单元150_2被构造用于,至少暂时地在第二组G2的功能单元140f、140g之间建立尤其是直接的数据连接。第一初级连接单元150_1和/或第二初级连接单元150_2能够例如被构造为耦合网(尤其是无阻塞的耦合网)、总线系统、直接的数据连接,或者以其他的方式被构造。在图1C中,同一个组的、相应的功能单元的对应的数据连接由未详细表明的方框箭头象征,所述方框箭头在相关的功能单元和分别配属的初级连接单元之间。
通过计算单元的、当前的实施方式100b,似乎功能单元的多个群集G1、G2能够被提供,所述群集能够分别执行同类的或者不同类的运算或者其他的任务。
当前,在组G1、G2和主连接单元130之间的数据连接由次级连接单元155a实现,所述次级连接单元例如能够被构造为耦合网、总线系统,或者能够以其他的形式被构造。对应的、在组G1、G2和主连接单元130之间的数据连接由方框箭头a4、a5象征。此外,次级连接单元155a能够被构造用于建立在组G1、G2或者其功能单元之间、直接的数据连接,即不包含用于这种数据连接的主连接单元130。
就另一个实施方式(未示出)而言设置了,初级连接单元150_1被构造用于在不同组G1、G2的功能单元之间建立数据连接,所述初级连接单元被配属于功能单元的组G1。
就另一个实施方式(未示出)而言设置了,多个组被综合成多个上级组(OG)。如果在名称上分开上级组、组和功能单元,则例如得到标识符(Bezeichner)OG1-G1-140a或者OG2-G3-140i。在这个划分等级的体系结构之内,初级连接体系结构150被设计用于建立数据连接,尤其是在同样的结构层次上在组(150-OG1-G1、150-OG2-G3)的功能单元之间、在上级组(150-OG1、150-OG2)的各个组之间、在上级组(150x)之间以及在150x和次级连接单元155之间以及跨层级的连接(例如在150-OG1和150-OG1-G1之间或者在150x和150-OG1之间)以及如有必要在单元之间现存的、非-划分等级的交叉连接之间。
就另一个实施方式(未示出)而言,另外的结构层次能够存在于类似的方法步骤中。
图1D示出根据本发明的计算单元的另一个实施方式100c。不同于根据图1C的实施方式,次级连接单元155c被设置,所述次级连接单元分别在组G1、G2的初级连接单元150_1、150_2之间建立数据连接a6、a7,以及,在这些元件和主连接单元130之间建立数据连接a8。
图1E出根据本发明的计算单元的另一个实施方式100d。在此,计算单元100d的、另外的外围部件(例如,模拟/数字-转换器125a、接口模块125b)被示出。此外,就这个实施方式而言,总线系统155d被设置为次级连接单元,所述总线系统在主连接单元130和初级连接单元150之间建立数据连接a8′。优选地,初级连接单元150又具有耦合网152,以便使不同的功能单元140i、140k......140p彼此连接。可选地,功能单元140k除了其到耦合网152的数据连接还具有到总线系统155d的、直接的数据连接a9。以类似的方式,另一个功能单元140i通过耦合网152和直接连接a10被连接到总线系统155d。
就一些实施方式而言,计算单元100、100a、100b、100c、100d的初级存储装置120能够具有至少一个直接访问存储器(RAM,random access memory)。附加地,初级存储装置120能够可选地具有其他的存储器系统、尤其是也是非易失性的存储器系统,例如,一个或者多个闪存。
就一些实施方式而言可能的是,一个或者多个功能单元140能够访问初级存储装置120,这通常在使用主连接单元130、次级连接单元155的情况下以及如有必要在使用初级连接单元150(图1A)的情况下进行。
就根据本发明的计算单元的另一个优选的实施方式100e而言,至少一个次级存储装置160被设置,所述实施方式参考图1F在下面被描述。次级存储装置160优选被构造为直接访问存储器(RAM)、尤其是静态的直接访问存储器(SRAM,static RAM)。当前,一个次级存储装置160被示例性地描绘,然而,就另外的实施方式而言,多个次级存储装置160也能够被设置。对应地,下述的方面适用于这些实施方式,所述方面例如以在图1F中描绘的次级存储装置160为例被阐述。
就一个特别有利的实施方式而言,次级存储装置160具有多个存储器库162a、162b、162c......162n。尤其地,次级存储装置能够被构造用于,实现对所述多个存储器库162a、162b、162c......162n中的至少两个的、平行的数据访问。由此,有利地实现了高的带宽,所述带宽用于访问次级存储装置160或者其库,并且,尤其地,不关联的数据块也能够平行地或者同时地被写入次级存储装置160中,或者,由次级存储装置160读取。
当前,存储器总线系统164被配属于次级存储装置160,所述存储器总线系统实现了对次级存储装置160的存储器库的访问(参阅:方块剪头a11)。存储器总线系统164有利地通过总线耦合单元165与总线系统155d耦合,所述总线系统实现了在耦合网152或者功能单元140i、140k......140p和总连接单元130之间的数据连接,所述数据连接在前面已经被描述的那样。总线耦合单元165实现了在总线系统155d和存储器总线系统164之间的数据交换(参阅:剪头a14)。由此,尤其地实现了,次级存储装置160的存储器区域在计算单元100e的、全局的地址空间中变得能够看见,并且,因此对于根据本发明的计算单元100的、其他的外围部件125a、125b来说,例如也是能够访问的(读取和/或写入)。
此外,在一个特别优选的实施方式中,在各个功能单元140k、140i和存储器总线系统164之间能够存在直接的数据连接a12、a13,使得相关的功能单元140k、140i能够直接访问次级存储装置160,尤其地,而不必使用初级连接单元150的耦合网或者如有必要不必使用主连接单元130。
就另一个实施方式(未示出)而言,多个平行的存储装置160能够存在,所述存储装置具有先前提到的特征。
图1G示出根据本发明的计算单元的另一个实施方式100f。不同于根据图1F的配置,在总线系统155d和初级连接单元150之间的数据连接a15被如此设置,使得来自总线系统155d的数据唯独能够被写入到初级连接单元150。在此,能够例如涉及数据,所述数据应当由计算核心110a、110b、110c中的一个提供,并且,被传送到一个或者多个功能单元140i、140k。尤其地,数据连接a15没有实现来自总线系统155d的、对初级连接单元150的读取访问。
在图1G的另一个实施方式中,在总线系统155d和初级连接单元150之间的数据连接a15被如此设置,使得初级连接单元150不可能执行对总线系统155d的、读取的和写入的访问。同义地,功能单元因而仅仅还能够通过如有必要存在的直接连接访问155d或者访问164或者随后的单元(例如,120或者160),然而,没有通过初级连接单元150。
在图1G的另一个实施方式中,在功能单元140h、140i......和初级连接单元150之间的数据连接a150唯独写入地(然而不是读取地)被设置。因此,功能单元能够通过第一数据连接主动地写入,并且,通过第二数据连接(被动第)被描述。就另一个实施方式而言也能够设置,这仅仅适用于现存的功能单元中的一些,即仅仅在一些功能单元和初级连接单元150之间设置了数据连接a150,所述数据连接唯独允许写入访问。
图1H示出根据本发明的计算单元的另一个实施方式100g。除了已经从根据图1G的配置中已知的部件,计算单元100g的中断请求-分配装置170(英语:interrupt router)被描绘在图1H中,所述中断请求-分配装置以本身已知的方式在计算单元100g的部件之间分配中断请求(英语:interrupts)。
就当前的实施方式而言设置了,功能单元140j、140k中的至少一个具有至少一个尤其是直接的、到计算单元100g的中断请求-分配装置170的数据连接(参阅:箭头a16),所述数据连接优选只通过位于灵活的硬件扩展1500之内的前置级170a而被实现。由此,有利地给出了这样的可能性:相关的功能单元140j、140k能够直接地影响在计算单元100g之内的中断请求的处理或者通过a16、通过170a、通过a18影响所述计算单元的中断请求-分配装置170,以便例如产生中断请求或者以其他的方式影响(例如,屏蔽)中断请求。
位于灵活的硬件扩展1500之内的前置级170a能够优选地通过次级连接单元155(或者,在图1H中的155d)由计算单元100g的部件(尤其是计算核心110a、110b、110c)配置和/或复位和/或此外例如被设定或者读出,尤其地通过访问位于170a之内的寄存器。同样地,无前置级170a的实施方式也是能够设想的,使得功能单元140j、140k的信号被直接引导到中断请求-分配装置170上(箭头a16和a18直接彼此转入)。
就其他的实施方式而言也能够设想的是,功能单元140j被构造用于,如有必要通过前置级170a接收中断请求-分配装置170的中断请求(参阅:箭头a16、a18)。由此,有利地给出了这样的可能性:将计算单元100的、其他的部件的中断请求通过170并且如有必要170a发送到功能单元140j,以便影响其运行或者改变其配置。
就另一个有利的实施方式而言设置了,功能单元140l、140m中的至少一个具有到计算单元100g的输入接口和/或输出接口(或者组合的输入接口和输出接口)的、尤其是直接的数据连接a17。输入和输出接口例如是简单的、数字的或者模拟的或者模拟/数字的管脚(I/O Pins)或者是由一个或者多个管脚构成的接口并且在它们的、共同的协同作用中操作例如特定的通信协议。计算单元100g的这些输入和输出接口在图1H中例如由框180表示。由此,有利地给出了这样的可能性:功能单元1401、140m从计算单元100g的输入接口180接收输入信号,或者,通过计算单元100g的输出接口180输出输出信号,例如从布置在计算单元100g外部的单元(未示出)输出输出信号或者将输出信号输出到布置在计算单元100g外部的单元(未示出)。
在另一个有利的实施方式(未示出)中,180能够被分成接收或者发送数据的部分180a以及操作接口的通信协议的部分180b。在此,180a直接被连接到功能单元1401、140m。180b能够位于灵活的硬件扩展1500之内或者之外。有利地,180b能够与计算单元100g的、其他的部件分开。
接下来,参考图2A、2B、2C更详细地描述了关于根据本发明的功能单元的构造的细节。为此,图2A示意性地示出根据本发明的一个实施方式的功能单元1400的、简化的框图。就一个或者多个或者所有功能单元140、140a......140q而言,功能单元1400的、接下来参考图2A所描述的结构能够以在图A1中所描绘的方式或者至少以类似的方式存在,所述功能单元在前面被提到并且参考图1A到1H被描述。应当理解,根据另外的实施方式,从描述图2A的结构的偏离同样也是可能的。
功能单元1400具有输入接口1402,所述输入接口用于接收第一数据,所述第一数据例如由另外的功能单元(未示出)传输到根据图2A的功能单元1400。对于图2A的、另外的描述来说,出发点例如是,功能单元1400通过其输入接口1402具有至少一个到初级连接单元150(参阅:图1A)的数据连接,其中,初级连接单元150优选具有耦合网152a。耦合网152a的、对应的输出接口在图2A中由虚线绘制的矩形1502象征,所述输出接口与功能单元1400的输入接口1402连接。第一输入数据在图2A中以方框箭头a20表示,所述第一数据能够通过耦合网152(图1A)的输出接口1502被供应给功能单元1400的输入接口1402。
就另一个有利的实施方式而言能够设置,多个输入数据能够尤其是同时地被供应给功能单元1400,这在图2A中由虚线绘制的方框箭头a21以及在方框箭头a20、a21之间的点表明。就一个实施方式而言,例如对应地多个输入接口1402能够被设置用于输入数据的、同时的或者平行的接收(未示出)。
就一个实施方式而言设置了,输入接口1402被构造用于接收第一数据或者输入数据,所述第一数据或者输入数据以数据包的形式。数据包能够例如具有格式,所述格式对于在多个根据本发明的功能单元1400之间的通信来说是特定的。
就一个实施方式而言能够设置,输入接口1402仅仅能够接收写入的输入,但是明确地不支持来自外部的读取访问或者能够可替代地禁止这些读取访问。同样地,在另一个实施方式中能够设置,功能单元1400即不能够读取地也不能够写入地通过接口1402取消(absetzen)或者发起(initiieren)数据传送。为此,接口1402在技术上能够对应地受限制,或者,然而能够禁止这种访问可能性。
就另外的实施方式(未示出)而言也能够设置,功能单元1400具有前述的类型的、多个输入接口1402。例如,输入接口1402也能够被称作功能单元特定的输入接口,因为它专门被设置用于在不同的功能单元彼此之间的、优选直接的数据通信。在此,在功能单元之间的、直接的数据通信被理解为下述数据通信,所述数据通信除了参与的功能单元必要时还具有初级连接单元150,但是不具有例如根据本发明的计算单元100(图1A)的主连接单元130,所述初级连接单元例如具有耦合网152。
可替代地,就另外的实施方式(未示出)而言也能够设想的是,功能单元完全不具有上述的类型的输入接口1402,即不具有功能单元特定的输入接口。据此,如此配置的功能单元不能够经由前述的输入接口1402接受其他的功能单元的输入数据。例如,这样的功能单元然而能够被构造用于,加载来自其他的来源数据,例如通过连接a9(图1F)加载来自计算单元的初级存储装置120的数据和/或加载来自次级存储装置160的数据(参阅:图1F)。加载来自其他的来源的、这种数据能够通过对应配置的、其他种类的接口进行,例如通过直接的数据连接,所述数据连接例在功能单元和次级存储装置160之间,如这在图1F中通过方框箭头a12象征的。这种其他种类的接口在图2A中也由虚线绘制的方框箭头a24表明。
就一个优选的实施方式而言,功能单元被构造用于,通过接口a24读入数据字的能够预先给定的量或者将数据字的能够预先给定的量输出到这个接口,例如至少一个数据字,或者例如N多个数据字,N>=1。这优选能够独立自主地进行,即:在所有待读入的或者待输出的数据字被读取或者被写入之前,不需要功能单元的(再)配置或者功能单元与其他的部件的交互。可选地,功能单元也能够被构造用于,将信息输出到随后的功能单元,所述信息表征数据字的读入的或者输出的量。
可选地,功能单元也能够被构造用于,或者一次地(例如,在完成整个存储器操作之后),或者一次或者多次地分别在完成(完整的)存储器操作的部分之后,将数据输出到随后的功能单元。这些输出到随后的功能单元的数据能够例如包含关于当前的进展和/或存储器地址和/或偏移量的信息,或者也能够从中分离出。
有利地,功能单元1400能够根据另外的实施方式被如此构造,使得第一输入数据经由接口a24不变化地或者以加工过的形式被输出,尤其被输出到次级存储装置160和/或尤其是也被输出到计算单元100的、剩余的部件中的一个,尤其是被输出到初级存储装置120或者到其他的外围部件125,所述第一输入数据通过功能单元经由输入接口1402被接收。
根据一个实施方式,为了输出输出数据,功能单元1400具有输出接口1404。例如,输出数据由功能单元1400根据第一数据形成并且作为第二数据经由输出接口1404被输出到例如一个或者多个其他的功能单元(在图2A中未示出),所述第一数据经由输入接口1402被接收。就一些实施方式而言,从功能单元1400经由其输出接口1404将数据输出例如经由输入接口1042输出到其本身也是能够设想的。输出数据在图2A中由方框箭头a22象征。特别有利地,输出接口1404也被连接到耦合网152a(图1A),参阅耦合网152a的输入接口1504,所述输入接口在图2A中由虚线矩形象征。
就另外的实施方式(未示出)而言也能够设置,功能单元具有多个前述的类型的输出接口1404。示例性地,输出接口1404也能够被称为功能单元特定的输出接口,因为它被专门设置用于在不同的功能单元彼此之间的、优选直接的数据通信。
就另一个有利的实施方式而言能够设置,功能单元1400能够尤其同时输出多个输出数据,这在图2A中由虚线绘制的方框箭头a23以及在方框箭头a22、a23之间的点表明。如先前所描写的,对应地,多个输出接口1404能够被设置用于同时的或者平行的输出。
就另一个实施方式而言能够设置,输出接口1404只能够写入数据,然而不支持向外部的读取访问或者可选地能够禁止这些读取访问。在一个实施方式中也能够设置,功能单元1400即不能够读取地也不能够写入地经由接口1404接收由外部发起的数据传送。为此,接口1404能够在技术上对应地受限,或者,这种访问可能性能够被禁止。
可替代地,就另外的实施方式(未示出)而言也能够设想的是,功能单元完全不具有前述的类型的输出接口1404,即完全不具有功能单元特定的输出接口。据此,如此配置的功能单元不能够经由前述的输出接口1404将输出数据输出到其他的功能单元。例如,这样的功能单元然而能够被构造用于,将数据输出到其他的单元,例如通过到计算单元的初级存储装置120中的、例如经由连接a9(图1F)的和/或到次级存储装置160中的、例如经由连接a12的写入,参阅图1F。这种数据的写入能够经由对应地配置的、其他种类的接口完成,例如经由在功能单元和次级存储装置160之间的、直接的数据连接,如这在图1F中由方框箭头a12象征的。这种其他种类的接口在图2A中也由已经提到的、虚线绘制的方框箭头a24表明。
就另外的实施方式而言,功能单元1400有利地能够被如此构造,使得数据经由输出接口1404不变化的或者以加工过的形式被输出到一个或者多个随后的功能单元1400,所述数据由功能单元经由接口a24接收,其中,借助接口a24,尤其是次级存储装置160和/或尤其是计算单元100的、剩余的部件(尤其是初级存储装置120或者另外的外围部件125)的数据也被读入。
此外,功能单元1400具有本地的控制装置1410,所述控制装置被构造用于控制功能单元1400的运行。例如,本地的控制装置1410能够包括至少一个状态机(英语:statemachine)1410a。就可替代的实施方式而言,本地的控制装置1410也能够包括其他的、优选固定布线的硬件电路。
就特别优选的、另一个实施方式而言,本地的再配置装置1412也能够被配属于本地的控制装置1410,所述再配置装置尤其是动态地(即,在功能单元1400的运行期间)实现了功能单元1400的配置或者再配置。就另一个实施方式而言也能够设想的是,通过状态机1410a或者本地的控制装置1410的、对应的部分描绘本地的再配置装置1412的功能性。
就另一个实施方式而言,再配置装置1412被构造用于,在配置或者再配置期间考虑相关的功能单元1400的、可能的配置变型,和/或,确保配置从定义的、有效的起始点或者起始状态出发和/或再配置没有妨碍地或者无意地中断功能单元1400的、当前进行的运算或者其他的功能。
就另一个有利的实施方式而言,功能单元具有本地的运算单元1420。根据另一个有利的实施方式,本地的运算单元1420能够具有至少一个粗粒的硬件元件,或者,能够被构造为粗粒的硬件元件。在这种情况下,本地的再配置装置1412有利地能够控制例如粗粒的硬件元件的(再)配置。
例如,传统的、硬件能够配置的逻辑电路(例如,FPGA或者CPLD)通常只具有细粒的硬件元件,所述硬件元件的配置能够仅仅通过外部的预先给定被改变。因此,这种传统的、硬件能够配置的逻辑电路被视为(集成的)电路,所述电路能够在硬件层面在专门的编程阶段被编程。这也适用于FPGA,FPGA具有部分的(局部的)再配置的可能性。这里,对应数目的、确定功能的再配置可能性被保持,所述再配置可能性根据外部的预先给定被改变,其中,相关的FPGA-部分借助局部的再配置在各个特定的再编程阶段对应地被重新编程并且被互连。在此,重配置的FPGA-部分改变逻辑功能本身。
与此不同地,根据本发明的功能单元1400示出运算单元或者运算单元的部件,所述运算单元的元件(例如,粗粒的硬件元件)由功能单元1400本身或者它们的、本地的控制装置1410内部地在功能上能够被配置并且例如能够重新彼此互联,例如在使用复用器并且对应地设定复用器的情况下。也能够设置,计算单元100(图1A)的另一个部件(例如,计算核心100a)配置功能单元1400或者其部件。
根据本发明的能够配置性的另一个方面由在不同的功能单元140、140a、104b(图1A)之间的通信的以及数据流的影响给出,这例如能够通过相应的功能单元的、对应的配置和/或通过对初级连接单元150的运行的控制而被控制,所述初级连接单元使相应的功能单元连接(参阅,图1A)。
就一个实施方式而言,单个的、粗粒的硬件元件或者功能单元1400的、其他的元件的内部功能(例如,逻辑功能)被分别固定地布线,并且,因而不同于传统的硬件能够配置的逻辑电路地是不变的。在此,如前面描述的,能够进行在不同的功能单元之间的通信和数据流的影响,以便实现再配置。
有利地,就一些实施方式而言,根据本发明的计算单元或者其功能单元1400中的至少一个的重新配置或者再配置能够由计算单元100或者控制装置1410本身(即,从内部地)控制、执行并且如有必要监控,所述控制装置被集成在相关的功能单元1400中。因此,功能单元1400能够独立地并且自动地再配置。
特别优选地,(再)配置能够在计算单元100或者功能单元1400的运行中进行,例如,作为整体算法的组成部分,所述整体算法能够由功能单元1400、140、140a......中的一个或者多个评估。有利地能够设置,功能单元1400(例如,140a和140b)配置其他的功能单元1400(例如,140c和140d)或者其部件,以便实现例如这样全面的整体算法。
就一种优选的实施方式而言设置了,功能单元1400尤其是再配置其自身,当能够预先给定的计算部分或者能够预先给定的运算任务被执行或者结束并且因此不再需要功能单元的、对应的资源来用于这个运算任务时。在这种情况下,功能单元1400能够有利地自己例如如此改变其配置,使得它被配置来适于随后的计算部分或者随后的运算任务。
有利地,根据另外的实施方式,在算法上前置的功能单元1400构建在在算法上后置的功能单元1400的这种再配置上,并且,能够在计算部分结束之后为后置的功能单元提供其他待处理的数据,而无明确的再配置措施。
在一个有利的实施方式中,一个功能单元1400(例如,140a,所述功能单元将数据发送到另一个功能单元1400,例如,140b)在计算部分结束之后能够指示另一个功能单元1400(例如,140c),现在将数据发送到功能单元140b。基于先前提到的再配置,功能单元140c能够无缝地继续将数据发送到功能单元140b。
就另一个有利的实施方式而言,本地的运算单元1420能够具有以下部件中的至少一个:加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器(MAC)、算术-逻辑单元(ALU)、存储器单元、寄存器、复用器、解复用器、接口(尤其是通信接口)、存储器访问单元(例如,DMA单元)、用于运算指数函数的单元、用于运算对数函数的单元、用于运算指数函数的单元、用于运算根函数的单元、用于运算三角函数的单元、查找表。就其他的实施方式而言,其组合也是能够设想的。优选地,前述的部件中的一个或者多个能够被布置在根据本发明的功能单元1400的运算单元1420中。
与此相应地,运算单元1420能够对供应给功能单元1400的输入数据执行运算并且将由此得到的结果例如作为输出数据输出。在此,用于这个过称的数据流优选经由输入接口1402(接收输入数据)、运算单元1420(执行运算)、输出接口1404(输出输出数据)。这个数据流表征对在功能单元1400之内的数据的运算或者处理。
根据一个优选的实施方式,数据流能够在功能单元1400之外由预先给定影响,第一功能单元的输出数据能够被传递到所述(另外的)功能单元,这通过对初级连接单元150的、对应的控制是能够实现的。有利地,对初级连接单元150的控制能够被一次设定并且因此能够在特定的时间间隔中持久地被设定。对初级连接单元150的控制独立于控制数据,也能够是有利的,所述控制数据与单个的或者也与每个包一起被发送,尤其是通过目标-功能单元1400的给出。
如果执行更复杂的运算,就另外的实施方式而言,例如在图2A中描绘的类型的多个功能单元能够被设置,所述功能单元具有同类或者不同类地配置的运算单元1420。在此,数据在不同的功能单元之间的数据流能够有利地由算法或者待执行的、更复杂的运算的结构来定义。
就另一个优选的实施方式而言设置了,功能单元1400具有本地的配置存储器1430。特别有利地,本地的配置存储器1430能够包括寄存器存储器,其中,尤其是本地的配置存储器1430包括至少一个、以有利的方式然而包括多个配置寄存器1432a、1432b、1432c、1432d。
在另一个实施方式中,本地的配置存储器也能够由SRAM或者由寄存器存储器和SRAM的组合来表示。下面,包括SRAM的实施方式被概括为寄存器存储器。
通过本地的配置存储器1430,有效的配置和再配置即使在功能单元1400的运行期间也是可能的,例如通过以所期望的方式修改一个或者多个配置寄存器1432a、1432b、1432c、1432d。配置寄存器1432a、1432b、1432c、1432d的修改能够例如通过功能单元1400本身和/或通过另一个功能单元(未示出)来进行。
此外,能够设想的是,就另外的实施方式而言,功能单元1400的配置寄存器的修改通过计算单元100(图1A)的、另外的部件(例如,通过计算核心110a)是可能的,通过相关的部件110a将对应的数据写入功能单元1400的所述配置寄存器中的方式。
就另一个实施方式而言设置了,功能单元1400具有本地的功能存储器1440。特别有利地,本地的功能存储器1440能够包括寄存器存储器或者是寄存器存储器的一部分。尤其地,本地的功能存储器1440能够包括至少一个功能寄存器1442a。本地的功能存储器1440能够有利地被用于功能单元1400的输入数据和/或输出数据的或者功能单元1400的运算的中间结果的、至少暂时的存储,如运算由运算单元1420所执行的那样。
就另一个有利的实施方式而言,功能单元1400配备有多个寄存器存储器也是能够设想的,其中,第一数目的寄存器存储器能够被用作配置寄存器1432a、1432b、1432c、1432d,并且其中,第二数目的寄存器存储器能够被用作功能寄存器1442a。
就另外的实施方式而言,此外能够设想的是,对于功能单元1400的、不同的配置可能性来说,所需的寄存器存储器的第一数目或者所需的寄存器存储器的第二数目变化,并且,例如通过主配置是能够改变的。以这种方式,功能单元1400的运行能够非常灵活的被构造,并且,尤其是本地的(寄存器)存储器能够动态地适配于运算,所述运算能够由功能单元1400执行。
就一个优选的实施方式而言,确定的数据结构(例如,以数据包的形式)被设置用于在不同的功能单元1400之间的数据交换。图2B示意性地示出根据一个实施方式的数据结构DS的、简化的视图,所述数据结构用于这种数据包。数据结构DS具有地址场ADR。地址场ADR被分成第一地址ADR1,所述第一地址规定了确定的功能单元,具有数据结构DS的数据包被确定用于所述功能单元。
可选的第二地址ADR2定义了在由第一地址ADR1确定的功能单元之内的目标地址,由此,有利地能够影响:包含在数据包中的数据被存储在目标-功能单元的、哪个本地的存储器区域中。例如,第二地址ARD2能够被用于,为目标-功能单元的、确定的存储器寄存器寻址。
就根据本发明的计算单元的实施而言,通常,少的位、例如大约10到5位(即例如,6位)即足以定义第一地址ADR1,所述计算单元例如具有几十个功能单元1400。类似地也适用于借助第二地址ARD2关于在功能单元1400中可用的存储器寄存器的“内部的寻址”,所述存储器寄存器就一个实施方式而言例如由4到0位来选择。
进一步可选地,数据结构DS能够具有数据场DAT,所述数据场具有输入数据和/或配置数据,所述输入数据例如用于通过目标-功能单元的运算,所述配置数据例如被设置用于控制目标-功能单元的配置。
就其他的实施方式而言,数据包在功能单元之间被交换同样也是可能的,所述功能单元包含空的数据场DAT,也就是说即不包含用于运算的输入数据也不包含用于目标-功能单元的配置数据。这能够例如对于不同的功能单元的同步是重要的。
可选地,控制数据也能够被包含在数据结构DS中,所述控制数据能够被布置在数据场中,所述数据场以附图标记CTRL表示。在此,例如能够是附加的控制数据(即,除了配置数据之外,所述配置数据也能够被包含在数据场DAT中),例如,状态信息、安全信息、在嵌套执行循环(Schleifen)或者递归的运算时关于循环深度或者递归深度的信息。可替代地或者补充地,控制数据CTRL也能够包含奇偶校验信息()和/或校验和以及类似的。前述信息的组合也能够同样被设想用于控制数据。
就另一个优选的实施方式而言,至少一个功能单元1400(图3A)被构造用于,以前面参考图2B所示出的格式(即,以具有数据结构DS的数据包的形式)与至少一个其他的功能单元交换(即,发送或者接受)数据。
就另一个优选的实施方式而言,新到达的配置可选地(例如,总是)能够被立即写入本地的配置存储器1430中或者(例如,总是)能够被丢弃,只要新的配置(还)不是可能的或者(例如,总是)如此久地被保留,直到功能单元1400对应于规定地准备好接受新的配置或者(例如,总是)被中间存储在缓冲器中,相关的功能单元1400收到所述新到达的配置,只有当功能单元1400对应于规定地准备好接受新的配置时,所述缓冲器如有必要才被读出。在倒数第二种情况下或者在最后一种情况下,当缓冲器满时,有利地进行输入数据的阻塞,所述阻塞如此久地禁止利用本地的配置存储器1430到功能单元1400中的、另外的写入,直到数据能够被处理。以非常有利的方式,阻塞也被用作在至少两个功能单元1400之间的同步器件。
有利地,在功能单元1400中的、通过阻塞实现的同步也能够被应用于本地的功能存储器1440。如果例如具有两个输入接口1402的功能单元1400执行加法操作A+B=C,优选A和B应当存在于1440的寄存器中,以便C的运算能够开始。在A和B的读取之后,新的A‘和B‘才能够被接收。如果在这个时间点之前新的A‘和/或B‘已经应当被发送到在功能单元1400的功能存储器1440中的、对应的寄存器,则功能单元1400如有必要如此长地保留这些数据,直到它们的接收是可能的。
有利地,哪些寄存器能够并且哪些寄存器不能够在配置存储器1430和/或功能存储器1440之内导致阻塞,对于功能单元1400来说是能够配置的。这样,能够有利的是,单个的寄存器例如必须仅仅被写入一次或者也例如允许仅仅被写入一次,以便持久地或者在时间间隔中是有效的,所述时间间隔根据确定的标准被确定。就先前提到的、加法操作的示例而言例如能够配置,寄存器“B”的值必须仅仅被一次写入。于是,操作A+B、A‘+B、A“+B等等被执行用于每个接收到的“A”,直到例如新的值B‘被写入到寄存器“B”中。
就另一个优选的实施方式而言,功能单元中的至少一个(如前面已经表明的)被构造为硬件电路,尤其是完全被构造为硬件电路。由此,有利地,运算、逻辑操作、存储器操作和其他的、由相关的功能单元所提供的功能(例如,查找表的实现)、特性曲线和/或特性场能够特别快速并且有效地被执行。
就另一个有利的实施方式而言设置了,功能单元中的至少一个具有以下元件中的至少一个:微控制器、执行软件的计算核心(例如,计算核心,所述计算核心被构造用于执行软件),数字的信号处理器(DSP),能够编程的逻辑电路(例如,FPGA,现场可编程门阵列),应用特定的集成电路(ASIC,应用特定集成电路),尤其是通过门阵列和/或晶体管-阵列预先制造的、然而不是应用特定地布线的、集成的电路,所述电路例如在后面的制造步骤中才应用特定地被布线,并且,所述电路例如能够被称作“门海(Sea-of-Gates)”。由此,如果必要,特殊功能能够在根据本发明的功能单元之内被实现。尤其地,这种功能单元的、待执行的功能在后面的时间点才能够被确定和/或能够以相对较小的花费被改变。尤其地,例如相对较小的微控制器能够被包含在确定的功能单元中,以便为一些应用情形如有必要提供必需的灵活性和/或以便能够示出更高的复杂性,所述微控制器至少部分地能够借助软件被编程。在这种情况下,通过多个功能单元的相互作用得出已经描述的优点,所述优点关于根据本发明的计算单元100、100a、100b、100c、100d、100e、100f、100g的主连接单元130以及计算核心110a、110b、110c的减轻负荷。
就一个特别有利的实施方式而言设置了,所有功能单元被构造为硬件电路、尤其是完全被构造为硬件电路。由此,得到特别有效的、效率高的和小构造的布置。
就其他的实施方式而言可能的是,一个或者多个功能单元被构造为硬件电路、尤其是完全被构造为硬件电路,并且,至少一个没有完全被构造为硬件电路的部件或者其他的部件以至少一个另外的功能单元的形式被设置。例如,就一个特别优选的实施方式而言,第一数目的功能单元能够被设置,所述功能单元被完全构造为硬件电路,并且,另外的功能单元能够例如具有微控制器或者能够编程的逻辑模块或者能够编程的逻辑电路或者相对较简单地能够改变的逻辑电路。
就另一个优选的实施方式而言,如前面已经提到的,功能单元中的至少一个具有至少一个粗粒的硬件元件。可替代地或者补充地,功能单元中的至少一个能够被构造为粗粒的硬件元件。当前,概念“粗粒的”意味着,相关的硬件元件具有多于一个逻辑门或者由多于一个的逻辑门形成。根据一个实施方式,所述门在功能上和/或在彼此的连接上是不能够改变的。
因此,“粗粒的硬件元件”尤其应当被理解为下述元件,所述元件能够分别自动地执行复杂的运算操作,尤其地,而对于运算来说彼此之间另外的数据交换不是必需的,在数据经由输出接口和输入接口(1402和1404)的发送和接收通过先前描述的方式和方法实现之后。例如,各个粗粒的硬件元件被分别构造为以下元件中的一个:更高度复杂的元件和/或较不复杂的单元,所述更高度复杂的元件如算术-逻辑单元(ALU)、存储器访问单元、通信接口,所述较不复杂的单元如比较器、加法器、乘法器、除法器、移位寄存器、桶式-移位器、乘法累加器(“Multiply-Accumulate”,(MAC))、指数单元、对数单元、三角单元、寄存器或者寄存器块、存储器单元(例如,RAM、Flash等)、复用器(例如2:1-MUX、M:N-MUX)。
ALU尤其运算算数函数和逻辑函数。例如,它能够作为算数函数执行至少一次加法(ADD),并且,作为逻辑函数执行至少一次“非”运算(NOT)和“与”运算(与-联接,AND)。优选地,它作为算数函数也能够执行减法(SUB)和/或比较(compare,CMP)和/或乘法(MUL)和/或除法和/或十进制数加调整(Decimal Adjust after Addition)。优选地,它作为逻辑函数也能够执行“或”运算(或-联接,OR)和/或“异或”运算(异-或-联接,XOR,EOR)和/或右移位和左移位(右移、左移、ASR-算数右移位、ASL-算数左移位、LSR-逻辑右移动、LSL-逻辑左移动)和/或左旋转和右旋转(ROL、ROR)和/或寄存器-操纵和/或位-变化(设置、清楚和测试位)和/或位和字节的再分类和/或AES-指令和/或CRC-指令。
就特别优选的实施方式而言,相对较复杂的运算装置通过多个彼此连接的部件(例如,加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器、算术-逻辑单元、指数单元、对数单元、三角单元、存储器单元、存储器访问单元、寄存器、复用器、接口、尤其是通信接口或者一般粗粒的硬件元件(所述硬件元件能够形成功能单元或者其组成部分)被提供,其中,根据本发明,至少一个第一功能单元有利地被构造用于,从至少一个另外的功能单元接收第一数据和/或将第二数据发送到至少一个另外的功能单元,如这已经在前面所描述的。由此,数据流能够被定义,所述数据流除其他外也实现了对相对较复杂的运算的执行,所述运算例如使用多个前述的部件或者粗粒的硬件元件或者一般的运算单元在例如能够预先给定的、根据待评估的算法或者其他的运算规则的顺序中,所述运算单元能够被分布在多个功能单元上。能够预先给定的顺序能够例如由在不同的功能单元之间的数据流控制。如前面已经描述的,这能够例如通过对应的目标地址ARD1在各个数据包之内的确定来实现,参阅图2B。
根据本发明的另一个方面,特别有利地,这个数据流也能够动态地(这意味着,在根据本发明的计算单元的运行时间期间)被影响或者改变,即,被再配置。就一个优选的实施方式而言,这能够例如通过对初级连接单元150的、对应的控制来实现。在一个实施中,对初级连接单元150的控制有利地通过计算核心110a、110b、110c和/或通过另外的外围部件120(尤其是通过DMA-控制装置)来实现。在另一个实施中,有利地,对初级连接单元150的控制可替代地或者补充地通过功能单元140来实现。
根据另一个优选的实施方式设置了,计算单元100a......100g被构造用于,改变至少一个功能单元1400的配置,和/或,检查至少一个功能单元1400的状态或者配置。由此,根据本发明的计算单元的灵活性和使用收益被进一步提升。例如,就一个实施方式而言能够设置,至少一个功能单元具有一个或者多个前面已经描述过的配置寄存器1432a、1432b......和/或功能寄存器1442a(图2A),所述配置寄存器和/或功能寄存器能够例如本地化地布置在功能单元中。因此,通过计算单元的读取访问,例如借助其计算核心中的一个110a(图1A),计算单元能够读出或者监控相关的功能单元的配置,并且,如有必要通过写入访问修改相关的功能单元的配置。
就另一个实施方式而言设置了,功能单元140、140a、140b......1400中的至少一个被构造用于,改变初级连接单元150的和/或至少一个次级连接单元155的配置,和/或,检查至少所述初级连接单元150的和/或至少一个次级连接单元155的状态或者配置。
就另一个有利的实施方式而言设置了,功能单元中的至少一个具有尤其是直接的数据连接,所述数据连接到计算单元100的定时器-模块和/或模拟/数字-转换器和/或计算单元的、至少一个另外的、如有必要存在的部件(例如,硬件加速器单元或者通信接口单元或者类似物)。由此,有利地给出了下述可能性:至少一个功能单元能够直接影响定时器-模块,或者,能够查询数据(例如,定时器的计数器读数),而不必使用计算单元100的主连接单元130(图1A)。类似的优点也适用于下述发明方面,所述发明方面包括直接的数据连接,所述数据连接在至少一个功能单元和模拟/数字-转换器之间或者是到如有必要存在的硬件加速器单元或者是到如有必要存在的通信接口单元。
就另一个有利的实施方式而言设置了,功能单元1400(图2A)中的至少一个被构造用于,改变它自己的配置。可替代地或者补充地,功能单元能够被构造用于,改变至少一个另外的功能单元的配置。就一个优选的实施方式而言,这能够例如通过第一功能单元将对应的配置数据直接写入在第二功能单元的配置寄存器1432a(图2A)中来实现。为此所必需的、从第一功能单元到第二功能单元的配置寄存器的数据连接能够例如由初级连接单元150(图1A)实现,如前面已经多次描述的那样。
可替代地或者补充地,在相关的功能单元140、140a之间的、直接的数据连接152c(图1A)也能够被使用,以便借助第一功能单元140a来操纵另一个配置单元140的配置数据。
就另一个有利的实施方式而言设置了,为了配置或者再配置一个或者多个功能单元,对应的配置信息从来源(例如,配置存储器)中被读出,并且,这些配置信息被写入在相关的功能单元的、对应的配置寄存器中。配置寄存器能够例如被布置在次级存储装置160(图1F)中。可替代地或者补充地,配置存储器也能够被布置在初级存储装置120中,尤其也能够被布置在初级存储装置120的非易失性存储区域中。
此外,就另外的实施方式而言能够设想的是,借助计算单元100外部的部件提供配置信息,例如以(串行的)闪存(SPI Flash)的形式,所述部件例如与计算单元的、对应的接口连接。
以下,示例性地描写了在根据图2A的功能单元1400之内的数据流或者信息流的方面。如前面已经提到的,功能单元1400例如能够经由它的输入接口1402接收结构DS的一个或者多个数据包,所述结构在图2B中被详细地描写。包含在其中的输入数据由输入接口1402传递到确定的配置寄存器1432b,如在图2A中通过箭头a25所表明的,当前所述输入数据能够是配置数据。信息——“配置数据a25应当写入在哪个配置寄存器中”——由地址信息a26中获得或者例如由另一个配置寄存器1432c获得,所述地址信息同样也被包含在相关的数据包中(参阅:来自图2A的数据结构DS的附图标记ADR2)。当前,地址信息a26或者配置寄存器1432c由地址识别-和选择单元1452评估,所述地址识别和选择单元给出:配置数据a25应当被写入确认寄存器1432b中。
就一个优选的实施方式而言,地址识别单元1452能够具有例如解复用器-结构,所述解复用器-结构直接由地址信息ADR2控制,所述地址信息被包含在数据包中。此外,功能单元1400具有检验单元1453,借助所述检验单元能够检查:在功能单元1400中是否存在有效的输入数据。这个信息能够由检验单元1453例如传输到功能单元1400的、本地的控制装置1410(参阅:来自图2A的箭头a30),所述控制装置独立于这个信息地控制功能单元1400的运行和例如运算单元1420的运行。
当前,在本地的控制装置1410和配置存储器1430或者功能存储器1440之间的数据连接由箭头a31表明。当前,在运算单元1420和配置存储器1430或者功能存储器1440之间的数据连接由箭头a32表明。就一些实施方式而言,特别有利地,在控制装置1410和运算单元1420之间存在直接的数据连接(参阅箭头a33)。
就另一个优选的实施方式而言,复用器结构1454被设置,所述复用器结构被构造用于确定:由哪一个或者哪些寄存器存储器和/或配置存储器或者由功能单元1400的、哪些其他的来源获得可能的输出数据,所述输出数据用于经由输出接口1404的输出。示例性地,复用器结构1454能够经由配置寄存器1432d的内容被控制(参阅:箭头a29)。
为了待输出的数据包的编排,待输出的数据能够例如通过复用器结构1454被提供(参阅:箭头a27)。用于待输出的数据包的地址信息能够例如由配置存储器1432c提供或者读出(参阅:箭头a28)。用于待输出的数据包的地址信息能够例如又包括用于目标-功能单元的地址ADR1(图2B),待输出的数据包以及如有必要另外的地址信息ADR2应当被输出到所述目标-功能单元,所述另外的地址信息用于在目标-功能单元之内的、内部的寻址。
如前面已经描述的,就根据另一个实施方式的功能单元1400而言,除了输入接口1402或者输出接口1404,到关于功能单元1400外部的部件的(例如到其他的功能单元或者到根据本发明的计算单元的、其他的单元的)、另外的数据连接也能够被设置。为此,图2C示出根据本发明的功能单元的、另一个实施方式1400a。根据图2C的功能单元1400a的结构基本上对应于来自图2A的配置。然而,与此不同,除了本地的功能存储器之外或者替代本地的功能存储器地,外围存储器1460被设置,所述外围存储器当前包括三个外围寄存器1462a、1462b、1462c。
在根据本发明的功能单元1400a外部的部件200同样也被描绘在图2C中,所述外部的部件能够是根据本发明的计算单元100(图1A)的、其他的外围部件。当前,数据连接a34被设置在功能单元1400a的第一外围寄存器1462a和外部的部件200的寄存器存储器202的寄存器202a之间,所述寄存器存储器寄存器存储允许功能单元1400a直接访问(写入和/或读取)外部的部件200的寄存器202a的内容。例如,功能单元1400a能够通过对外部的部件200的寄存器存储器202a的内容的读取访问将这个内容经由数据连接a34直接传输到其本地的外围寄存器1462a中。可替代地,使寄存器202a的内容直接镜像到外围寄存器1462a中也是可能的。就另外的实施方式(尤其是后者的这种实施例)而言能够设想的是,如此构造数据连接a34,使得在访问(读取、写入)功能单元的外围寄存器时,直接访问外部的部件200的、“映射的”(英语:mapped)寄存器。
到外部的部件200的寄存器202c的、类似的数据连接a35被设置用于另外的外围寄存器1462b。到外部的部件200的寄存器202d的、类似的数据连接a36被设置用于另外的外围寄存器1462c,其中,然而在这里缓冲器单元1464被布置在数据连接a36中,所述缓冲器单元被构造用于,在写入和/或读取的方向上缓冲外部的部件200的、对应的寄存器202d的数据。可替代地或者补充地,缓冲器单元1464也能够被构造用于,修改外部的部件200的、对应的寄存器202d的数据,而这些数据通过功能单元1400a被读取和/或写入。
前面所描述的、直接的数据连接a34、a35、a36有利地实现了在参与的部件1400a、200之间的、有效的数据交换,尤其地,而用于数据交换的、如有必要由其他部件分享的通信资源(例如,耦合网152或者主连接单元130)不是必需的,使得在时间上不受影响的、直接的通信能够发生。特别优选地,这种直接的数据交换能够通过外部的部件200的一个或者多个寄存器或者通过将数据写入外部的部件200的一个或者多个寄存器中来实现。
就另外的实施方式而言能够设想的是,在一个或者多个功能单元1400a的、对应的外围寄存器上描绘一个或者多个外部的部件200的寄存器。
就另外的实施方式而言,有利地,一个或者多个外部的部件200的一个或者多个线路信号(在下文中,简写为“信号”)能够被直接读入和/或被写入在这些信号上。不同于前述的寄存器202a、20b、202c、202d,“信号”在根据本发明的意义上不被理解为对寄存器或者其输入线路或者输出线路的、直接的访问,而是在读取的访问时被理解为寄存器的、逻辑的连接的和/或其他的信号的结果,以及,在写入的访问时作为到逻辑的电路联结中的输入。因此,先前提到的、用于寄存器的所有实施方式也应当被描绘到信号上,尤其是到在外部的部件200和1400a的信号之间的数据连接的存在上、到外部的部件200的信号至1400a之内的寄存器中的镜像上、到用于数据缓冲的可能性以及在从或者到一个或者多个外部的部件200的读取和/或写入时用于数据操纵的可能性上。
就另外的实施方式而言可能的是,就其值和/或时间上的变化过程(英语:Timing)修改数据,所述值和/或时间上的变化过程用于相关的读取过程或者写入过程,所述数据由功能单元1400a经由数据连接a34、a35、a36被读取或者写入。就另一个实施放射而言设置了,缓冲器单元1464被构造用于,执行前面提到的修改中的一个或者多个。
就一个实施方式而言设置了,值在读取和/或写入期间没有被修改。
就另一个实施方而言设置了,值在读取和/或写入期间被修改,尤其是通过缓冲器单元1464。例如,在功能单元1400a方面读取访问外部的部件200的寄存器202d时,相关的值能够被修改,在它们被写入在功能单元1400a的外围寄存器1462c中之前。以类似的方式,值的修改在功能单元1400a方面写入访问外部的部件200的寄存器202d时同样也是可能的。
就另外的实施方式而言,修改能够包括以下步骤中的至少一个:改变一个或者多个标志(Flags)(尤其是位标志)、待读取或者待写入的值,添加(加上)偏移量,倒置,待读取或者待写入的值的、其他的、逻辑的或者数字的操纵。这个实施方式有利地实现了关于值的、功能的操纵,所述值由功能单元1400a处理。
就其他的实施方式而言,能够设想的是,操纵从外部的寄存器2002d到功能单元1400a的、本地的外围寄存器的数据传输的、时间上的变化过程,或者,反之亦然。
就一个实施方式而言,这种时间上的操纵优选没有被应用。换言之,对应的数据或者寄存器内容尽可能快地从源寄存器被传输或者被镜像到目标寄存器。
就另一个实施方式而言能够设置,在读取期间或者在写入期间使用能够预先给定的延迟时间。在此,以下变型是能够设想的:简答的缓冲器、FIFO(first in first out)原理的应用、能够设定的可变的延迟时间、事件控制的延迟时间(待读取或者待写入的数据被延迟,直到预先给定的事件出现)。前述措施能够有利地被用于,有意识地引起在数据传输的、时间上的行为时的波动,或者,也出于同步目的例如为了读入或者输出与预先给定的时间戳同步的数据,和/或为了实现脉冲宽度调制,和/或,为了使数据与时钟源同步,和/或,为了补偿计算单元100的潜伏期和/或也补偿系统范围的潜伏期,所述系统宽度的潜伏期(在计算单元100之外产生),所述措施能够影响在不同的寄存器之间的数据传输的定时。
就另一个有利的实施方式而言,前述的功能性的单个或者多个方面能够通过缓冲器单元1464被实现,所述功能性关于待传输的数据的操纵或者在此发生的定时的操纵。可替代地或者补充地,就根据本发明的计算单元而言,关于所考虑的功能单元1400a布置在外部的部件(未示出)也能够被设置,所述部件实现了前述的功能性。
前面示例性提到的、在功能单元1400a和外部的部件200之间的、直接的数据连接a34、a35、a36实现了以下功能或者优点:
-直接访问外部的资源200,尤其地,而无附加的通信花费(英语:overhead),由此,功能单元1400a的或者根据本发明的整个计算单元100的功能性能够被扩展和/或加速。这是特别有利地,当功能单元1400a需要对应的功能性时,所述功能性然而完全不存在或者不存在于在功能单元1400a自身中的、必需的形式或者功率能力中。
-反之,外部的部件200也能够直接访问在功能单元1400a中的数据,尤其地,而无附加的通信花费,由此,外部的部件200的功能性能够对应地被扩展和/或加速。
-功能单元1400a的功能性与外部的部件200的功能性的组合。
-在功能单元1400a和外部的部件200之间的、有效的同步。
-借助硬件-原语在部件1400a、200之间进行直接的数据交换。
-如果外部的部件200具有例如通信接口,如有必要,功能单元1400a能够经由直接的数据连接a34直接使用通信接口来与另外的装置进行通信,所述通信接口被布置在外部的部件200中,而功能单元1400a中的通信接口的功能性是不存在的。
下面提到了可能的应用示例或者场景,其中,数据通过功能单元1400a经由直接的数据连接a34例如被写入在外部的部件200的寄存器中:
-功能单元1400a的、本地的控制装置1410促使将数据写入到外部的寄存器202a中。
-在获得确定的输入数据(例如,以一个或者多个数据包的形式)时,地址信息ADR(图2B)能够被求得,所述地址信息促使对外围寄存器1462a的写入过程,所述外围寄存器被直接镜像到外部的寄存器202a上。换言之,外围寄存器通过地址信息来寻址,所述地址信息被包含在所接收的数据包中,所述外围寄存器被镜像到外部的寄存器202a上。
下面提到了可能的应用实例或者场景,其中,数据通过功能单元1400a经由直接的数据连接a34被读取:
-功能单元1400a的、本地的控制装置1410促使对来自外部的寄存器202a的数据的读取。
-在创建数据包时确定了,来自功能单元1400a的外围寄存器1462a的待输出的数据的至少一部分应当被读取,所述外围寄存器镜像外部的寄存器202a,所述数据包应当经由输出接口1404(图2C)被输出。
下面描述了另外的实施方式,其中,示例性的可能的、外部的部件200的特定类型在前面的描述的意义上被提到,并且,因此对其寄存器的、相关的数据访问经由直接的数据连接被提到,所述数据连接是根据前述的数据连接a34、a35、a36的类型的数据连接。
就一个实施方式而言,外部的部件200能够被构造为计算单元100的定时器模块(英语:timer)。在此,它例如能够是集成的(系统)定时器,或者也能够是相对复杂的定时器模块,定时器模块被设置为计算单元100的外围部件并且优选也集成在其中。例如,相对复杂的定时器模块能够是这个类型的定时器模块,如它在国际专利申请WO2011/120823A1中所描述的那样。
在将外部的部件200实施为定时器模块时,对寄存器202a的、直接的数据访问能够包括例如读取定时器值(英语:timer value)或者写入定时器值。可替代地或者补充地,以这样的目标进行对定时器模块或者其寄存器的、直接的数据访问:读取或者写入所谓的定时器比较寄存器(timer compare Register)的值,或者,一般读取或者描述定时器模块的控制寄存器。就一些实施方式而言,定时器模块的运行也能够由这种数据传输控制,尤其地,定时器模块被激活或者停用和/或开关时间被设置。
一般而言,通过根据本发明的功能单元1400a对外部的部件200的、直接的数据访问,根据本发明的功能单元1400a的功能性能够以时间控制的运算的或者与计算单元100的、全局的定时器的同步的执行来扩展,所述外部的部件被构造为定时器模块。此外,功能单元1400a由此能够直接对计算单元100的系统事件做出反应,和/或,关于时间利用由计算单元100所处理的数据框架(例如,通过本地的运算单元1420)来设置运算操作,所述系统事件由定时器模块200控制。
就另一个实施方式而言,外部的部件200能够被构造为计算单元100的(用于I/O管脚的)输入接口和/或输出接口(参阅:来自图1H的元件180)。直接的数据连接a34(图2C)使功能单元1400a在这种情况下能够直接访问接口180,并且因此实现了在这方面输出或者读入数据的可能性,确切地说,而在此没有出现计算单元的、系统决定的延迟时间。由此时间上的波动(英语:jitter)也能够有利地被避免以及如有必要阻塞状态也能够被避免,如其在常规的计算单元中能够与对这种接口的、公共的访问一起出现。
就另一个实施方式而言,外部的部件200能够被构造为输入接口和/或输出接口,例如以便读出或者设置计算单元100的计算核心110a、110b、110c的和/或另外的外围部件125的状态值和/或配置。直接的数据连接a34(图2C)使功能单元1400a在这种情况下能够直接访问状态值和/或配置寄存器,并且,因此实现了在这方面输出或者读入数据的可能性,确切地说,而在此没有出现计算单元的、系统决定的延迟时间。
就另一个实施方式而言,外部的部件200能够被构造为外部的通信接口。在这个上下文中,“外部”意味着,外部的通信接口200实现了与至少一个单元的通信,所述单元被布置在关于根据本发明的计算单元100的外部。在此,外部的通信接口200自身能够集成到计算单元100中或者被布置在计算单元100之外。例如,前述的种类的、外部的通信接口能够是至少一个接口模块,所述接口模块用于下述的通信协议中的至少一个:SPI(串行外设接口)、CAN(控制器局域网)、CAN-FD(CAN灵活数据率)、FlexRay、以太网、SENT(单边半字节传输)、微秒通道(Micro Second Channel)、12C、PSI5、LIN(本地互联网络)、UART(通用异步收发传输器)以及类似物。由此,根据本发明的功能单元1400a能够有利地以前述的通信接口的、对应的功能性来扩展。
就另一个实施方式而言,外部的部件200能够被构造为模拟/数字-转换器。由此,根据本发明的功能单元1400a能够有利地以模拟/数字-转换器200的、对应的功能性来扩展,并且,尤其能够直接从镜像的寄存器中的一个或者多个读出数字值,所述数字值由模拟值推导出,所述模拟值借助模拟/数字-转换器被检测出。此外,如有必要,功能单元1400a也能够读取地或者写入地访问模拟/数字-转换器的一个或者多个控制寄存器,以便监控和/或控制模拟/数字-转换器的运行。在此有利地,计算单元的、系统决定的延迟时间由于借助数据连接a34的、直接的访问再次被避免。
就另一个实施方式而言,部件200能够被构造为作为模拟/数字-转换器的、先前所述的、外部的部件200和作为定时器模块的、外部的部件200的组合,也就是说,就这个实施方式而言,所述部件实现了至少一个模拟/数字-转换器和至少一个定时器模块的功能性。由此,例如与定时器模块的系统时钟信号时间同步地读出由模拟/数字-转换器检测到的模拟值和推导出的数字值。此外,如有必要,功能单元1400a也能够时间同步地读取或者写入地访问模拟/数字-转换器的一个或者多个控制寄存器,以便监控和/或控制模拟/数字-转换器的运行。在此有利地,计算单元的、系统决定的延迟时间由于借助数据连接a34的、直接的访问再次被避免。
就另一个有利的实施方式而言,外部的部件200能够被构造为故障处理单元。由此,根据本发明的功能单元1400a能够有利地直接将故障信号或者故障矢量输出到故障处理单元200。此外,由此有利地存在这样的可能性:功能单元1400a查询其他的部件的、可能的故障状态,所述故障状态必要时同样也被存储在故障处理单元的至少一个寄存器中。
就另一个有利的实施方式而言,外部的部件200能够被构造为其他的硬件加速器单元。由此,有利地给出了这样的可能性:功能单元1400a直接与其他的硬件加速器单元200交换数据。尤其地,由此避免了主连接单元130的使用,并且,实现了1400a和200的、时间上紧密的耦合。
就另一个有利的实施方式而言,外部的部件200也能够被构造为存储器直接访问(DMA,英语:direct memory access)-控制单元。DMA-控制单元是存储器访问单元,所述存储器访问单元优选能够主动地和/或独立自主地以及直接地访问存储器和/或访问在能够寻址的存储器区域之内的、其他的外围部件。DMA-控制单元200以其本身已知的方式被构造用于,经由计算单元的总线系统(例如,经由主连接单元130的总线系统)执行存储器直接访问,由此,数据能够在通过主连接单元130连接的部件之间被传输,而为此无需计算核心110a、110b、110c。这决定了这样的优点:根据本发明功能单元1400a能够使用DMA-控制单元的功能性。例如,功能单元1400a能够在这个路径上促使在初级存储器单元120和计算单元100的另一个外围部件120之间的存储器直接访问,而为此不需要在功能单元1400a和DMA-控制单元200之间的交互。此外,就这个实施方式而言存在这样的可能性:功能单元1400a通过读出或者写入DMA-控制单元200的一个或者多个控制寄存器来影响DMA-控制单元200的运行。
就另一个有利的实施方式而言设置了,功能单元1400a自身具有DMA-控制单元(未示出),以便执行对计算单元100的至少一个总线系统的、优选对主连接单元130的总线系统的(存储器-)直接访问。在此,DMA-控制单元能够有利地直接集成到功能单元1400a中,并且,例如能够实现功能单元1400a对计算单元的、全局的地址空间的访问。特别有利地,就另一个实施方式而言,功能单元1400a能够作为“母版(Master)”工作,并且,因此能够经由主连接单元130主动地并且独立自主地读取地和/或写入地访问全局的地址空间。对主连接单元130的访问能够例如通过接口a24(图2A)完成。
图3A示意性地示出根据本发明的另一个实施方式的功能单元1400b的、简化的框图。功能单元1400b被设置用于实现乘法累加器(MAC)的功能性。在这种情况下,例如三个输入量A、B、C被定义,所述输入量根据下面的等式被评估并且因此求得输出量Y=A*B+C,其中,“*”定义了乘法运算。输入量A、B、C能够例如经由至少一个数据包经由输入接口1402被供应给功能单元1400b,所述数据包被包含在输入数据a20中,并且,功能单元1400b能够将输出量Y(如前面已经多次描述的)作为数据包a22经由输出接口1404输出到至少一个另外的功能单元(未示出)。功能单元1400b的、本地的运算单元1420a能够执行计算步骤(乘法、加法),所述计算步骤对于前面的等式来说是必需的。为此,本地的运算单元1420a具有例如乘法器1421a并且具有加法器1421b,所述乘法器优选被构造为硬件电路,所述加法器优选也被构造为硬件电路,出于更有效的实施的目的、根据另外的实施方式,所述硬件电路也能够被实施在公共的并且优选构造为硬件电路的乘法累加器1420中,而不分离成1421a和1421b。功能单元1400b的、剩余的部件1410、1412、1430、1440能够与根据图2A的配置一致地被构造。就另外的实施方式而言,剩余的部件1410、1412、1430、1440然而也能够与之不同地被构造。
图3B示意性地示出根据本发明的另一个实施方式的功能单元1400c的、简化的框图。功能单元1400c例如被设置用于,从分别具有一个输出接口1404的、另外两个功能单元1400或者从具有两个输出接口1404的另一个功能单元1400接收数据,所述功能单元又加载例如来自次级存储装置160(图1F)的数据。为此,功能单元1400c能够具有例如前面参考图2A所描述的类型1402的两个输入接口1402a、1402b,使得输入数据能够经由两个平行的输入接口被供应给功能单元1400c。特别优选地,数据能够经由两个输入接口彼此独立地被接收。可替代地,在使用两个输入接口1402a、1402b的情况下,具有双倍的数据宽度或者字宽度的数据能够被接收,其中,第一数据接口1402a接收例如数据的、低比特位a20_1,并且其中,第二数据接口1402b接收例如数据的、高比特位a20_2。在先前提到的乘法累加器1440b(MAC,图3A)的、特别高效的变型中,输入量A、B、C能够例如经由三个平行的输入接口1402(只有一个输入接口1402被绘制出)被供应给运算单元1420a。
根据另一个实施例,功能单元1400c能够被设置用于,将数据输出到数据接收器(Datensenke)。为此,功能单元1400c能够具有例如两个输出接口1404a、1404b,所述输出接口是前面参考图2A所描述的类型1404的输出接口,使得两个平行的写入操作是可能的。特别优选地,两个写入操作能够彼此独立地被执行。可替代地,在使用两个输出接口1404a、1404b的情况下,具有双倍的数据宽度或者字宽度的数据能够被输出,其中,第一输出接口1404a输出例如数据的、低比特位a22_1,其中,第二输出接口1404b输出例如数据的、高比特位a22_2。
根据另一个实施例,功能单元1400c能够被设置用于,加载来自数据来源、例如次级存储装置160(图1F)的数据或者将数据写入其中。为此,功能单元1400c能够具有例如前面参考图2A所描述的类型a24的、两个其他种类的接口a24_1、a24_2,使得两个并行的读取操作或者两个并行的写入操作或者一个并行的读取操作和写入操作或者两个并行的读取操作连同两个并行的写入操作是可能的。特别优选地,读取/写入操作能够彼此独立地被执行。可替代地,在使用两个其他种类的接口a24_1、a24_2的情况下,具有双倍的数据宽度或者字宽度的数据能够被读入或者写入,其中,第一其他种类的接口a24_1读出或者写入例如数据的、低比特位,并且,其中,第二其他种类的接口a24_2读出或者写入例如数据的、高比特位。
就其他的实施方式而言,不同数目的输入接口1402或者输出接口1404以及用于根据本发明的功能单元的、不同种类的接口a24也是能够设想的。
根据另一个实施方式,功能单元1400(图2A)能够经由输出接口1404如此输出输出数据a22,使得输出数据包括至少两个地址场ADR(图2B),其中,ADR分别被分成第一地址ADR1和可选的第二地址ADR2,所述第一地址规定了确定的功能单元,具有数据结构DS的数据包被确定用于所述功能单元,所述第二地址定义了在由第一地址ADR1确定的功能单元之内的目标地址。通过初级连接单元150,功能单元的输出数据a22然后被传递到至少两个目标-功能单元1400。
根据又一个实施方式,能够在输出数据的输出时给出,是否至少两个地址ADR是有效的或者至少两个地址ADR中的哪一个是有效的,使得初级连接单元150将数据对应地传递或者没有将数据对应地传递到相应的目标-功能单元。根据另外的实施方式,地址的有效性的给出能够通过在输出数据中的、附加的场来实现,例如通过每个地址场的、附加的有效性-位。可替代地或者补充地,地址的有效性能够例如通过场ADR和/或ADR1和/或ADR2的、特定的值被给出。
本发明的、显著的优点在于,功能单元140、140a......140q、1400、1400a、1400b、1440c能够主动地、直接地并且自主地(没有通过例如计算单元的计算核心的控制的需要)彼此通信或者交换数据。就一个实施方式而言,这有利地被实现,通过功能单元能够将数据包(尤其是功能单元特定的数据包)输出到其他的功能单元的方式。就另一个实施方式而言,这有利地被实现,通过功能单元能够从其他的功能单元接收数据包(尤其是功能单元特定的数据包)的方式。
特别优选地,根据另一个实施方式,功能单元自身能够确定,功能单元的输出数据(例如,以一个或者多个数据包的形式)被输出到哪个另外的功能单元或者数据接收器。尤其地,这种确定也能够是动态地(这意味着,在功能单元的运行时间期间)进行。例如,为此能够使用数据结构DS(图2B)的地址场ADR,其中,数据关于运行时间动态地被输出到各个不同的功能单元或者数据接收器。
特别有利地是,除了功能单元和连接它们的初级连接单元150,不需要计算单元100的、其他的部件,以便实现在功能单元之间的、对应的数据交换。尤其地,不需要功能单元上级的单元(例如,计算核心110a),以便实现数据交换。特别有利地是,不需要功能单元1400上级的单元,以便在功能单元的运行期间获取用于功能单元的输出数据的、相应的目标,因为就优选的实施方式而言这个任务能够由本地的控制装置1410(图2A)承担,或者,目标地址的预先给定能够由输入数据和配置数据中推导出,所述输入数据和配置数据经由输入接口1402被得到。
根据本发明的功能单元的另一个优点在于,它们执行其运算任务,一旦它们被正确地配置并且对应的输入数据被供应给它们。就一个优选的实施方式而言,功能单元的运算数据或者输出数据取决于本地的运算单元1420的功能性,以及,取决于与本地的再配置装置1412结合的本地控制装置1410(为此参阅:例如前面参考图3A所描述的、具有乘法累加器的实施例)。
就其他有利的实施方式而言,功能单元的运算数据或者输出数据能够取决于功能单元的配置、取决于供给的输入数据、必要时也取决于附加的输入数据或者输入信号,所述附加的输入数据或者输入信号例如经由另外的输入接口能够供给至功能单元(参阅:例如根据图2A的、经由其他种类的接口a24的数据连接,和/或,根据图2C的、直接的数据连接a34)。如果例如直接的数据连接a34被设置在功能单元和外部的部件200(图2C)之间,例如寄存器的值也能够影响功能单元的输出数据,所述寄存器由外部的部件200镜像在功能单元中。
功能单元的、根据本发明的构造有利地实现了特别简单和有效的数据流,所述数据流能够以简单的方式被分析、尤其是关于相关的数据传输的、时间上的变化过程,所述功能单元具有定义的输入接口1402和输出接口1404。此外,由此读取访问和写入访问的嵌套有利地被避免,并且,既在各个功能单元之内也在包括数据流链的多个功能单元中实现了特别深的流水线操作(Pipelining)。
图4示意性地示出用于给出在根据本发明的计算单元之内的数据处理的数据流链,所述数据流链总共包括三个不同的功能单元1400e、1400f、1400g,所述数据处理包括多个数据单元。总体而言,所描绘的数据流链用于等式Z=D*exp(E)+F+sin(G)的评估,其中,exp()代表指数函数,其中sin()代表正弦函数,其中,D、E、F、G代表输入数据,并且其中,Z代表通过等式的评估而获得的输出数据。为了清楚起见,对于各个功能单元分别仅仅描绘了本地的控制单元1410和本地的运算单元1420。功能单元中的至少一个的、另外的、内部的结构能够例如与在图2A中所描绘的配置是一致的或者至少是与其类似的。
为了指数函数exp(E)的评估,功能单元1400e的、本地的运算单元1420具有用于运算指数函数的单元e1。此外,功能单元1400e的、本地的运算单元1420具有用于运算表达式D*exp(E)的乘法器e2。参数D、E作为输入数据被供应给功能单元1400e,并且,功能单元1400e提供作为输出数据的中间结果Z1=D*exp(E)。这个中间结果Z1(如同参数F)作为输入数据被供应给另外的功能单元1400f。
功能单元1400f的、本地的算单元1420具有加法器e3,所述加法器求得另外的中间结果Z2=Z1+F。另外的中间结果Z2(如同参数G)作为输入数据被供应给另外的功能单元1400g。
功能单元1400g的、本地的运算单元1420具有单元e4以及加法器5e,所述单元用于运算正弦函数sin(G),所述单元和所述加法器根据数据Z2、G求得最终结果Z,所述最终结果最后能够由功能单元1400g的输出接口(未示出)输出。
特别有利地,根据另外的实施,在图4中所描绘的配置能够执行在流水线结构中的数据流(Datenstrom)的运算。在此,数据流的数据、因而输入数据D、E、F、G以及中间结果Z1、Z2和结果Z获得例如索引“i”、“i-1”、“i-2”、“i+1”、“i+2”等,所述索引根据运算公式的、逻辑的相关联性对于所有D、E、F、G、Z1、Z2、Z来说都是一致的,例如,Z[i]=D[i]*exp(E[i])+F[i]+sin(G[i]),以及,Z[i-1]=D[i-1]*exp(E[i-1])+F[i-1]+sin(G[i-1]),以及,Z[i-2]=D[i-2]*exp(E[i-2])+F[i-2]+sin(G[i-2])。因此,与图4对应地,功能单元1400e能够由输入数据D[i]、E[i]计算出中间结果Z1[i],与此同时,功能单元1400f由前一个索引的输入数据F[i-1]和前一个索引的中间数据Z1[i-1]计算出中间结果Z2[i-1],并且,对应地,功能单元1400g由再前一个索引的输入数据G[i-2]和中间结果Z2[i-2]计算出结果Z2[i-2]。
特别有利地,在图4中所描绘的配置基本上自主地对具有结果Z的前述等式的进行评估,尤其地,为此而不需要与计算单元的计算核心的交互或者对主连接单元130的访问或者类似的。更确切地说,在前述的等式的评估开始时,通过对应的配置能够确保:正确的输入数据被提供给各个功能单元1400e、1400f、1400g,或者,所述功能单元的、本地的运算单元1420在前述等式的评估的意义上被配置。然后,功能单元能够在使用其相应的、本地的运算单元1420的情况下自主地运算前述的等式,并且,结果Z在运算之后才能够例如经由输出接口1404必要时被传送到另外的功能单元1400,和/或,经由其他种类的接口a24(图2A)被写入初级存储器单元120(图1A)和/或次级存储装置160(图1F)中,和/或,被传输到另外的外围部件125(图1A),和/或经由数据连接a34被传输到外部的部件200(图2C)。
就另一个有利的实施方式而言设置了,平衡根据本发明的计算单元的所有功能单元的吞吐量(Durchsatz)或者数据流,由此实现了所有处理阶段(这意味着,尤其是所有的功能单元和它们的运算单元)尽可能平行地工作。如有必要,前面参考图4描写的、纯示例性的结构能够关于这种平衡被优化。
特别有利地,根据另外的实施方式,灵活的硬件扩展1500(图1A)的功能单元1400的数目/或配置被如此选择,使得在单元之间的数据流被均衡,使得单个的功能单元的阻塞没有不利地作用于其他的功能单元。如果操作的复杂性过高,使得这种均衡性不能够由各个功能单元确保,则在特别有利的实施方式中,例如多个相同种类的功能单元能够被使用。
例如,来自图4的功能单元1400g能够作为“1400g_1”和“1400g_2”(未示出)存在两次,所述功能单元具有用于运算正弦函数sin(G)的单元e4以及加法器e5。然后,具有索引“i-2”、“i”、“i+2”等的输入数据能够例如被供应给功能单元1400g_1,并且,具有索引“i-1”、“i+1”、“i+3”等的输入数据能够例如被供应给功能单元1400g_2。功能单元1400g_1于是提供结果Z[i-2]、Z[i]、Z[i+2],功能单元1400g_2于是提供结果Z[i-1]、Z[i+1]、Z[i+3]。结果Z能够例如通过选择或者一致的、随后的目标-功能单元的配置再次被汇合。
根据本发明的配置的、另一个显著的优点在于,系统资源基本上限于初级连接单元150(图1A)、尤其是不包括主连接单元130,所述系统资源对于在功能单元之间的数据交换是必需的。有利地,这在使用基本上没有由功能单元加负荷的主连接单元130的情况下实现了根据本发明的计算单元100的、另外的部件110a、110b、110c、120、125a、125b的有效通信,以及,实现了对可能的阻塞状态的、有效的并且精确的预测,所述阻塞状态在灵活的硬件扩展1500(图1A)之内。因此,在应用根据本发明的原则的情况下,阻塞的风险在数据处理时也有利地由根据本发明的计算单元降低或者排除。
如前面已经多次描述的,就另一个有利的实施方式而言设置了,在不同的功能单元140、140A、140B之间的数据交换经由初级连接单元150进行(参阅:图1A),其中,初级连接单元150优选被构造为耦合网、特别优选被构造无阻塞的耦合网。特别有利地,初级连接单元150实现了在不同的功能单元之间的、多个同时的或者至少在时间上部分重叠的数据传输。
可替代或者补充耦合网的设置地,一个或者多个直接布线的数据连接能够被设置在不同的功能单元之间。例如,就在不同的功能单元之间的直接布线而言能够设置,确定的功能单元能够选择一个或者多个功能单元或者也能够选择所有其他的功能单元作为目标(“目标-功能单元”)来用于输出输出数据(例如,数据包)。根据可能的目标-功能单元的数目,许多直接的数据连接能够被对应地设置。可选地,就一个或者多个这种直接布线的数据连接而言,适配逻辑(英语:glue logic)也能够被设置,所述适配逻辑例如包括复用器结构或者解复用器结构或者类似物。此外,能够设想的是,三个单独的输出接口被设置用于确定的功能单元,所述功能单元应当能够将数据包输出到例如三个可能的目标-功能单元,所述三个单独的输出接口中的每个都与可能的目标-功能单元中的一个的、对应的输入接口直接连接。
就其他的实施方式而言,比前述的、直接布线的或者直接互连的数据连接更灵活的连接技术也能够被使用。为此的示例是耦合网、总线系统以及类似物。前述技术的组合也是能够设想的。
就另一个特别优选的实施方式而言,初级连接单元150被构造用于,修改供应给它的数据(如,包括例如数据包的目标地址),例如通过减去目标-功能单元的偏移地址、尤其是在将这个数据传递到对应的目标-功能单元之前,以如此有利的方式,使得到接收的目标-功能单元的数据包仅仅包括本地的地址和/或本地的功能存储器,所述本地的地址用于本地的配置存储器。
就另一个特别优选的实施方式而言,多个相同种类的或者不同种类的功能单元能够彼此组合并且能够经由初级连接单元数据适度地彼此连接,由此,获得运算网络的形式或者运算装置,所述运算装置能够被构造用于,计算确定的算法。特别优选地,运算装置能够计算算法,所述算法比能够由各个功能单元计算的算法具有更高的复杂性,所述功能单元形成运算装置的组成部分。在前面例如参考图1A、1B、1C、4已经描述了用于这种运算装置的示例。尤其地,如同来自图1B的、另外的灵活的硬件扩展或者来自图1C的组G1、G2中的每一个组,来自图1A的“灵活的硬件扩展”1500示出了这样的运算装置。
就一个优选的实施方式而言,根据本发明所实现的运算网络的运算算法的特征在于以下方面中的一个或者多个:每个参与的功能单元的、特定的功能性;每个参与的功能单元的能够配置性的、特定的可能性,尤其是关于其(运算-)功能性;每个参与的功能单元关于到其他的功能单元或者初级连接单元的数据连接的建立的、特定的连通性或者连接能力;经由其他类型的接口a24的数据连接的建立;与外部的部件200的数据连接a34的建立;每个参与的功能单元的、特定的能力和可能性,所述能力和可能性用于配置或者再配置关于与其他的功能单元或者初级连接单元的连通性;每个参与的功能单元的、初始的、功能的配置;每个参与的功能单元的连通性或者连接的、初始的配置,所述连通性或者连接关于与其他的功能单元或者初级连接单元的数据连接的建立;用于建立经由其他类型的接口a24的数据连接的、初始的配置;用于建立与外部的部件200的数据连接a34的、初始的配置;每个参与的功能单元在运行时关于其功能性的、特定的、动态的再配置,所述功能性例如是本地的运算单元1420的特性;每个参与的功能单元关于其与其他的功能单元或者初级连接单元的连通性的、特定的、动态的(在功能单元的运行期间)再配置;用于建立经由其他种类的接口a24的数据连接的、特定的、动态的配置;用于建立与外部的部件200的数据连接a34的、特定的、动态的配置;在参与的功能单元的运行时间开始时的输出配置;输入数据;结果,所述结果能够影响至少一个参与的功能单元的或者初级连接单元的运算结果或者配置。
就另一个特别优选的实施方式而言,功能单元中的至少一个被构造用于,尤其是动态地(即,在功能单元或者另外的功能单元的运行时间期间)配置或者再配置其自身或者另外的功能单元。由此,取消了通过外部的部件的配置的要求。换言之,就这个实施方式而言,为了配置或者再配置根据本发明的功能单元,不需要外部的部件。
然而,就另外的实施方式而言能够设置,根据本发明的计算单元100的、至少一个其他的部件(例如,计算核心110a或者外围部件125a、125b中的一个)被构造用于,配置或者再配置根据本发明的功能单元中的至少一个。
根据本发明的功能单元的另一个优点在于高的程度的“分布式智能”或者计算容量和灵活性、其灵活的能够配置性以及能够再配置性,所述灵活性由例如各个本地的运算单元的功能性得出。特别有利地,这些优点利用根据本发明的计算单元的功能单元的数目而缩放。这种功能性和灵活性能够利用例如仅一个中央的、上级的单元(如它从常规的系统中已知的)非经济性地被实现。本发明的、显著的优点是多个可能性,所述可能性关于数据路径的建立和(动态的)改变或者功能单元彼此之间的连接,这例如通过使用在数据包中的、对应的地址来实现,所述数据包在功能单元之间被交换。另一个优点是高的平行性,功能单元在算法上能够彼此独立地被运行,由此得出所述高的平行性。另一个优点是高的平行性,功能单元在算法上能够彼此独立地被运行在跨功能单元的流水线操作中,由此得出所述高的平行性。
根据本发明,已经认识到了:越多的数据包被传输,越多的功能单元平行地工作,其中,各个数据包的目标地址根据优选的实施方式也能够在数据包的两次连续的传输之间改变。尤其地,特别大的数目的数据包也能够通过初级连接单元被同时传输或者被传送到目标-功能单元,因为根据本发明的功能单元自身被构造用于对应地预先给定目标地址。
就另一个优选的实施方式而言,根据本发明的计算单元的、所有的部件都被布置在同样的半导体基底上,或者,在使用同样的半导体制造技术的情况下被制造。特别有利地,如计算单元的、其他的部件110a、110b、110c、120、125a、125b、130,根据本发明的功能单元140、140a、140b......140q;1400、1400a、1400b......1400g也被布置在同一个半导体基底上。由此,有利地得出特别小地建造的配置以及有效的并且高性能的数据连接的建立的可能性,例如在包含主连接单元130和至少一个初级连接单元150的情况下,所述数据连接在部件之间。
下面,借助不同的实施方式并且参考图5A、5B、5C的流程图,根据本发明的、用于计算单元100(图1A)的运行方法的方面被描述。
图5A示意性地示出用于运行根据本发明的计算单元100、100a、100b、100c、100d、100e、100f、100g(参阅:图1A到1H)的方法的实施方式的、简化的流程图。如前面已经描述了的,计算单元具有至少一个计算核心110a、110b、110c,初级存储装置120以及至少一个主连接单元130,所述主连接单元用于将至少一个计算核心110a、110b、110c与初级存储装置120连接,其中,计算单元还具有至少两个功能单元140、140a、140b、1400。
在可选的第一步骤300中进行至少一个第一功能单元1400(图2A)的配置。可选的配置300能够包括例如通过功能单元1400自身(例如,借助其再配置装置1412)、计算单元的另一个功能单元或者另一个部件(例如,计算核心110a)来描写功能单元1400的配置寄存器1432a、1432b、1432c、1432d中的一个或者多个。可替代地,功能单元能够可选地通过初始的配置被预先配置,所述初始的配置在其第一次激活之后是直接可用的。
在步骤302(图5A)中,第一功能单元1400从至少一个另外的功能单元接收第一数据。这些接收到的第一数据能够被用作用于第一功能单元1400的输入数据,并且,例如能够基于通过本地的运算单元1420的运算。
在步骤304中,第一功能单元1400将第二数据发送到至少一个另外的功能单元。这些第二数据能够例如是输出数据,所述输出数据在先前的运算中通过第一功能单元1400而获得。按照根据图5A的实施方式,对应的运算步骤能够在步骤302、304之间进行,但未被示出。
根据优选的实施方式,数据的接收或者发送能够经由对应的输入接口1402(图2A)或者输出接口1404以及至少一个部件(例如,初级连接单元150)完成,所述部件在功能单元或者其接口1402、1404之间建立数据连接。
就根据本发明的方法的、另外的实施方式而言,可选的步骤300也能够发生。就根据本发明的方法的、另外的实施方式而言,两个步骤302、304中只有一个也能够被执行,并且,如有必要能够被重复。就根据本发明的方法的、另外的、有利的实施方式而言,功能单元中的一个或者多个能够执行前面示例性地参考图5A所描写的运行方式的方面,在所述实施方式中多个功能单元被包含在根据本发明的计算单元中。
图5B示意性地示出根据本发明的方法的另一个实施方式的、简化的流程图。在此,从根据本发明的功能单元1400(图2A)的角度描述了示例性的方法流程。
在第一可选的步骤400中,输入数据被可选地提供,所述输入数据应当被提供给用于运算的功能单元。可替代地或者补充地,配置信息能够在步骤400中被提供,所述配置信息控制例如功能单元的运行。在这个步骤中,功能单元例如经由输入接口1402接收输入数据。这能够例如通过将输入数据或者配置信息直接存储在功能单元的、本地的配置存储器中(例如,在其配置寄存器中的一个或者多个中)来完成。
在同样可选的步骤402中,功能单元可选地等待前述的输入数据或者配置信息,并且,如有必要存储输入的数据。存储在功能单元的、本地的配置存储器1430中和/或在其配置寄存器中的一个或者多个中和/或例如在本地的功能存储器1440中,所述功能存储器例如在其功能寄存器中的一个或者多个中。
步骤404(所述步骤也是可选的)的主题是可选的检查,是否完整地存在输入数据和/或配置信息,所述输入数据和/或配置信息用于通过功能单元的评估或者运算。如果输入数据和/或配置信息不是完整地存在,则分支到步骤402。否则,如果输入数据和/或配置信息完整地存在,则转入步骤406。
步骤406(所述步骤也是可选的)的主题是前述的通过功能单元的评估或者运算,例如在使用其本地的运算单元1420的情况下,例如由本地的控制装置1410控制。
在步骤408(所述步骤也是可选的)中检查,输出数据是否可用,所述输出数据例如在通过功能单元的评估或者运算时(参阅:步骤406)已经被获得。如果在步骤408中的检查表明输出数据可用,则转入步骤410。否则,再次分支到步骤402,由此如果必要能够获得另外的输入数据和/或配置信息,并且,如有必要另外的运算能够被执行,以便获得所希望的输出值。
在步骤410中,输出值被输出,所述步骤也是可选的。输出值的输出410能够例如包括:将输出值发送到至少一个另外的功能单元,和/或,将输出值发送到计算单元的、至少一个另外的部件(例如发送到初级存储装置120、次级存储装置160、另一个外围部件125、外部的部件200,、中断请求-分配装置170或者类似物)。所输出的输出值能够例如包括来自运算406和/或状态信息和/或配置数据的结果,所述配置数据用于配置后续的功能单元。
如果例如输出值被输出(参见:步骤410),则根据另一个实施方式对应的输出-数据包能够在步骤412中以前面已经描述的方式经由输出接口1404(图2A)被创建并且被输出。
就另一个实施方式而言能够设置,输出-数据包的形成412也包括提供地址信息ADR(图2B)和/或配置信息和/或控制信息CTRL,所述地址信息和/或配置信息和/或控制信息根据来自图2B的数据结构DS也能够被集成到输出-数据包中,如已经描述的那样。
根据另一个实施方式,在上述步骤400、402、404、406、408、410、412中的每一个步骤中,然而尤其是在步骤406、410中,功能单元由于其特定的功能性和/或其能够配置性的、特定的可能性和/或其初始的、功能的配置和/或其在运行时间中的、动态的再配置和/或其在运行时间开始时的、输出配置,通过输入数据、事件以及运算结果能够分别可选地执行内部的再配置。换言之,根据另一个实施方式,功能单元能够根据其特定的功能性和/或其能够配置性的、特定的可能性和/或其初始的、功能的配置和/或其在运行时间中的、动态的再配置和/或其在运行时间开始时的、输出配置,和/或,根据输入数据和/或事件和/或运算结果分别可选地执行内部的再配置。
在特别优选的实施方式中在,上述步骤400、402、404、406、408、410、412中的至少两个、然而尤其是全部能够平行地被执行,例如通过功能单元的、内部的流水线操作。
图5C示意性地示出根据本发明的方法的另一个实施方式的、简化的流程图。在此,从根据本发明的计算单元100(图1A)或者其计算核心11a的角度描述了示例性的方法流程。
步骤420标记方法的开始。在可选的步骤422中,计算单元(例如,为此而设置的计算核心110a)准备数据,所述数据稍后应当被分配为一个或者多个功能单元的输入数据。优选地,就所述方法的一个实施方式而言输入数据被保存在计算单元的、全局的地址空间中,尤其是在初级存储装置120中。
在可选的步骤424中,灵活的硬件扩展的、全局的配置被执行,所述硬件扩展能够包括多个功能单元和/或初级连接单元。在此,根据另一个实施方式,功能单元优选没有经由输入接口1402被配置。例如,配置能够包括时钟频率的设定和/或故障模式的设定和/或中断的处理和/或与在灵活的硬件扩展之外的、另外的部件的连接等等。
根据另外的实施方式,全局的配置也能够包括初级连接结构150的、初始的设定,尤其是如果数据包a20、a21、a22、a23(图2A)的寻址并非仅仅经由对应于图2B地受影响的、借助ADR、ADR1、ADR2的寻址而进行。
在步骤426中,至少一个功能单元被预先配置。这能够例如通过将对应的配置信息优选经由输入接口1402写入在为此而设置的、功能单元的配置寄存器1432a、1432b、1432c、1432d(图2A)中来完成。配置信息的写入426能够例如通过计算核心110a被执行。可替代地或者补充地,写入也能够通过计算单元的存储器直接访问(DMA)-控制装置而完成。在这种情况下,有利地,为了执行根据图5C的步骤424,计算核心110a的动作不是必需的或者只有取消到存储器直接访问-控制装置的启动指令是必需的。在使用存储器直接访问-控制装置时,配置数据尤其是在这个步骤开始之前有利地存在于初级存储装置120中。
在步骤428中,至少一个功能单元被配置,根据一个优选的实施方式,所述功能单元优选在配置之后直接启动对运算的执行。
在步骤430中,计算单元或者计算核心110a等待,直到功能单元完成运算的执行。就一些实施方式而言,运算的完成能够从功能单元方面经由中断请求(英语:中断)的触发进行信令交换,所述中断请求经由中断请求-分配装置170被发送到相关的计算核心110a和/或到存储器直接访问-控制装置。可替代地或者补充地,计算单元或者计算核心110a和/或另一个外围部件125也能够使用轮询(polling)(循环的查询)-机制,以便求得功能单元的运行状态、尤其是运算的完成。
在步骤432中,计算单元或者其计算核心110a和/或其存储器直接访问-控制装置和/或另一个外围部件125读取运算的结果。在步骤434中,结束所述方法。
可选地,在执行步骤428之后也能够分支到步骤431,步骤431以一个或者多个功能单元的、动态的配置或者再配置为主题。在此,确定的功能单元能够配置或者再配置自身,和/或,配置另外的功能单元。可替代地或者补充地,至少一个功能单元的再配置也能够由计算核心110a或者另一个外部的部件执行,所述部件关于待再配置的功能单元。
在另外的实施方式中,步骤420、422、424、426、428、430、432、434能够以变化的顺序被执行。
图6示意性地示出根据本发明的计算单元100的运行场景。计算单元100是控制器1004的组成部分,所述控制器用于机动车1000的内燃机1002。计算单元100例如具有如前面参考图1A到1H所描述的配置以及至少两个如其前面例如参考图1A到2C所描述的功能单元140、1400。根据本发明的计算单元100具有特别高的灵活性,因为包含在其中的功能单元能够动态地被配置或者被再配置。同时,有利地,通过根据本发明的功能单元,计算单元100的计算性能的扩展超出其计算核心110a、110b、110c以及其他的外围部件125的计算能力地被给出。
用于根据本发明的原理和根据本发明的计算单元的、另外的、有利的应用领域是用于运行电动机或者发电机的控制器,用于电池、驾驶员辅助系统、底盘系统、电动工具、家用电器以及类似物的控制器。
后面,本发明的、另外的、有利的实施方式和方面被描述。
就一个特别优选的实施方式而言,多个功能单元1400(图2A)通过至少一个连接结构、尤其是初级连接单元150(图1A)、即例如耦合网和/或总线系统以及类似物如此彼此连接,使得整体的数据流被形成,所述数据流实现了特定的算法的运算或者也实现了多个平行的、特定的算法的运算,所述连接结构建立数据连接。
就另外的实施方式而言,特别优选地,这些数据连接中的至少一些能够动态地再配置,使得算法也能够动态地改变。如前面已经描述的,这能够例如通过对应的、数据包的寻址来完成,所述数据包在参与的功能单元之间被交换。
就另外的实施方式而言,例如在功能单元之间的、直接的数据连接的情况下(参阅:来自图1A的附图标记152c)这能够在使用复用器结构或者解复用器结构的情况下被实现,所述复用器结构或者解复用器结构在对应的控制下使直接的数据连接152c适配于相关的算法的、待执行的修改。
就优选实施方式而言,初级的连接单元150具有高的平行性,由此,许多同时的或者在时间上重叠的数据连接或者数据传输被实现,所述数据连接或者数据传输在不同的功能单元之间。
进一步有利地,根据一个实施方式,高的数据吞吐量和高的计算性能在数据处理时能够由根据本发明的功能单元通过下述方式来实现:功能单元优选写入地、优选仅写入地互相传递其输出数据,由此,流(streaming)-机制被创建。尤其地,由此在数据流中的、不希望的中断也能够被避免。
特别优选地,没有数据流的、中央的控制器被设置用于通过根据本发明的功能单元的数据处理,如就传统的微控制器而言例如以计算核心的形式普遍的那样。更确切地说,就本发明的、优选的实施方式而言,用于通过根据本发明的功能单元的数据处理的数据流仅仅由功能单元自身决定。在此,尤其是初级连接单元150(图1A)例如直接和/或例如对应于功能单元的配置如此被接通或者控制,使得功能单元的输出数据被发送到配置过的目标-功能单元。就一些实施方式而言,这能够例如被设定分别用于确定的时间间隔、尤其是直到初级连接单元150的重新的配置或者再配置。就一些实施方式而言,然而,这也能够例如通过下述方式被实现:由功能单元所发送的、至少一些、优选所有数据包设置目标地址,所述目标地址例如给出用于数据传输的目标-功能单元,可选附加地给出在目标-功能单元的、本地的地址空间中的目标-存储器区域或者目标-存储间或者类似物。关于此的细节在前面已经参考根据图2A的数据结构DS被描述了。
就另一个实施方式而言设置了,(只有)当配置过的输入数据能够使用时,功能单元执行操作或者运算任务。如果例如功能单元的、作为乘法累加器(MAC)的、本地的运算单元根据下面的等式O=A*B+C仅仅被配置到运算种类“乘法”,则当两个输入值A、B存在时是足够的,从而相关的功能单元或者其本地的运算单元能够开始运算。与此相反,功能单元或者其本地的运算单元必须附加地等待另一个输入值C的存在,如果功能单元或者其本地的运算单元被配置到运算种类“乘法”和“加法”(即,完整的乘法累加)。
就另一个实施方式而言设置了,功能单元例如关于其本地的运算单元的功能性如此灵活地被设计,使得它可选地(例如,根据配置)能够被用于对应的运算任务的、不同类型或者变型。例如,本地的运算单元的加法器能够优选被如此设计,使得它也能够执行减法而非加法,其中,不同的功能性或者在这些功能性之间的切换能够借助配置被设定。此外,就加法器而言能够配置,是否利用“Carry”(进位:)、具有或者不具有累加寄存器和类似物地执行加法。
就另一个实施方式而言,至少一个、优选多个能够配置的偏移-寄存器可选地被设置在功能单元中,所述功能单元被配置用于加载数据和/或用于存储数据。以固定或者优选能够配置的方式,利用每个数据访问操作完成这个至少一个偏移的变化,例如以大于、小于或者等于0的值增量或者减量地,作为向左或者向右移动了N位的移位操作、到0或者其他的值的复位,作为所谓的“位反转”值(英语:Bit-reverse,高比特位被镜像或者反转到低比特位上),等等。特别优选地,如有必要现存的至少两个偏移彼此依赖和/或彼此独立地能够配置地被设定,使得例如第一偏移随着每个数据访问而改变,并且,当第一偏移已经执行确定数目的访问之后,第二偏移例如才改变。特别优选地,功能单元具有优选能够配置的、集成的单元,所述功能单元用于加载和/或存储数据,所述集成的单元用于类型转换(尤其是从浮点数到定点数的类型转换,并且,反之亦然)和/或用于使位宽度例如从16位适配到32位等等。
就另一个有利的实施方式而言,功能单元1400e(图4)能够被构造用于,考虑算法的循环的特征量。尤其地,功能单元1400e能够被构造用于,将所考虑的计算操作的、当前的循环深度输出到后续的功能单元1400f,例如以控制数据CTRL的形式(参见:来自图2A的数据结构DS),此后,至少一个接收这种数据的功能单元1400f例如能够根据由先前的功能单元1400e通知的循环深度执行运算步骤的、有条件的实施,所述运算步骤由功能单元的、本地的运算单元1420设置。
就另一个有利的实施方式而言,功能单元能够被构造用于,获取关于至少一个算法的循环(或者多个循环-层面,“第一转移(first transfer)/最后的转移(lasttransfer)”)的开始和/或结束的信息。例如,功能单元能够根据这样获取的信息来控制其自身的、本地的运算单元1410的运行。
就另一个有利的实施方式而言,功能单元能够被构造用于,将先前获取的信息传输到至少一个另外的(目标-)功能单元,所述信息关于至少一个算法的循环的开始和/或结束。(目标-)功能单元能够根据接收到的信息再次有利地执行例如运算任务的、有条件的实施。为此,根据一个实施方式,在功能单元中的、数据的累加示例性地被考虑,所述功能单元被构造用于执行计算操作“加法”。在循环开始时进行累加器寄存器的复位(英语:reset),在执行循环期间进行累加(这意味着,在循环期间,连续的输入数据被持续地相加并且被缓存在累加器寄存器中),并且,在循环结束时,尤其是仅在此时,将作为输出数据的、累加的数据传递到例如后续的功能单元。
就另一个有利的实施方式而言,功能单元能够被构造用于,基于获取的信息优选根据同样能够配置的预先给定来执行内部的再配置,使得例如计算出的函数被改变,所述信息关于至少一个算法的循环在同一个功能单元之内或者之外的开始和/或结束。例如,乘法累加器在获取的循环结束时被再配置成单纯的乘法器,即没有另外的加法。
就另一个实施方式而言设置了,多个功能单元(例如,两个功能单元)能够可选分离地、尤其是彼此独立地工作,并且在此,能够同时处理例如多个(例如两个)数据字连同第一、分别低的、例如为32位的位宽度,或者,可选地多个功能单元能够互连或者在这个意义上协作:它们能够共同处理减少的数目的(例如,一个)的数据字,所述数据字然而具有例如为64位的、更高的位宽度。
就另一个有利的实施方式而言设置了,功能单元1400的一个或者多个配置寄存器1432a、1432b、1432c、1432d(图2A)直接或者间接地被映射在根据本发明的计算单元100的、其他的寄存器中,例如上级的外围寄存器中,例如,在另一个外围部件125中或者在外部的部件200中,所述外围寄存器在灵活的硬件扩展1500之内和/或在灵活的硬件扩展1500之外。由此,根据本发明的计算单元100的、其他的部件(例如,计算核心110a)能够有效地访问功能单元1400的配置寄存器。
就另一个有利的实施方式而言能够设置,用于综合(Synthese)电路布局的方法被用于制造根据本发明的计算单元或者单个的功能单元或者其中其他的部件,如在德国专利申请DE102015207323.8中所描述的。根据一个优选的实施方式,这个方法包括以下步骤:
-将初级电路功能放置在电路布局上;
-将次级电路功能放置在电路布局上;
-如此生成至少一个第一掩模(Maske),使得第一掩模映射初级(abbilden)电路功能并且遮蔽(verdecken)次级电路功能,当半导体基底根据电路布局由至少第一掩模结构化时;以及
-如此进行电路功能的放置,使得至少一个改变的掩模映射初级电路功能和次级电路功能,当半导体基底根据电路布局由至少一个第二掩模结构化时。
这个实施方式的优点在于开放的可能性:目前不实施需要的功能,以便能够相对低成本地稍后在掩模变化的路径以及由此改变的、作为有意义的功能扩展的功能中使用这些功能,例如在例如当前的、根据本发明的计算单元100的微控制器中。在此,特别的优点是,用于实施新的功能的成本是相对较低的,因为代替完整的掩模组只有单个的掩模是必须被生成的,所述新的功能在理想情况下仅要求掩模改变或者只是更少的掩模的改变。就当前的实施方式而言,面积开销()也不是必需的,如它由传统的、完全能够编程的逻辑模块(例如,FPGA)已知的,由于细粒的基础-元件的选择和数目能够被限制,所述基础-元件在所提到的半导体基底之内,并且,由于复用器/解复用器-电路没有被设置用于在这些基础-元件之间的、动态的连接,因为在所描述的半导体基底之内的连接直接借助掩模被固定地布线。最后,根据当前的实施方式,与传统的电路布局相比,功能扩展基本上更晚并且更快地进行。
在相关的开发项目的、相当的持续时间上(所述持续时间能够是五年、直到产生的电路的系列成熟),根据项目而不同的要求(如,算法、所需的计算性能或者吞吐量和等待时间、在后面的开发阶段的适配等等)根据本发明能够通过灵活的硬件扩展(如有必要,结合对应于方法的、用于硬件电路的适配的扩展,所述方法是根据专利申请DE102015207323.8的方法)被实施。以这种方式,软件的、替换的适配或者补充——伴随着后续的电路功能的、更低效的、计算性能更弱的实施的固有缺点——能够被避免。
下面是本发明的、另外的、有利的实施方式,所述实施方式的收益以及优选的应用示例被给出。
根据本发明的计算单元100有利地实现了对计算密集的并且昂贵的数学运算(所述数学运算尤其具有大的(计算)深度、许多计算操作)的、有效的执行,而不需要为此特定的加速器软件,例如不需要除了常规的微控制器还使用多个数字的信号处理器(DSP)或者ASIC,或者,或者集成在微控制器中或者类似物。更确切地说,计算密集的并且昂贵的数学运算能够有利地由根据本发明的功能单元140......1400执行,所述功能单元此外能够灵活地彼此连接,由此,根据本发明的计算单元100对各种计算密集的并且昂贵的数学运算或者算法的、简单适配是可能的。例如,根据本发明的计算单元100能够有利地被用于处理例如在机动车的控制设备中的传感器值。
就一个优选的实施方式而言,示例性的数据处理链如下产生:(例如,转速传感器的)传感器信号形成用于计算单元100的输入数据,在计算单元100的计算核心110a之内的运算,通过根据本发明的功能单元140的、另外的运算,通过计算核心110a的、重新的运算,产生控制信号作为计算单元100的输出信号,所述控制信号用于下级的系统(例如致动器或者用于操控致动器的末级)。
就其他的实施方式而言,也能够得到示例性的数据处理链的前述元件的其他的顺序。例如,替代计算核心110a地,根据本发明的功能单元也能够直接位于数据处理链的开端或者数据处理链的末端处。就另外的实施方式而言,多个输入量和/或多个输出量也可能替代传感器信号。
就一些实施方式而言,在这种数据处理链的末端的输出量的输出能够例如直接由计算单元的驱动的管脚(“output pin”)形成,或者也由计算出的数值的输出例如借助合适的通信接口来形成。尤其地,就一些实施方式而言,在这种数据处理链的末端的输出量的输出能够例如由管脚形成,所述管脚直接由灵活的硬件电路或者其一定的功能单元驱动。
一般来说,根据本发明的原理的应用实现了计算单元100的计算核心110a、110b、110c的减轻负荷,所述原理基于多个功能单元的设置。特别优选地,运算单元的流水线被填充并且(大规模)平行地工作,这使非常快的运算变得可能,所述运算单元由功能单元代表。
根据本发明的计算单元由于其效率特别适于用于(尤其是机动车的)内燃机的控制设备,其中,多个输入值(例如,传感器信号)经受复杂的加工,以便形成用于致动器的、对应的输出信号(例如,用于内燃机的燃料喷射系统的、磁性或压电操纵的喷射阀)。
此外,根据本发明的计算单元能够有利地被使用在用于驾驶员辅助系统的控制设备中,所述控制设备例如用于评估雷达数据以控制驾驶员辅助功能,其中,传统的控制设备典型地具有多个数字的信号处理器,以便能够处理雷达传感器件的、积累的数据量。
此外,根据本发明的、具有灵活的硬件扩展的计算单元能够有利地被使用在控制设备中,复杂的、调节技术的模型在所述控制设备中被计算,和/或,复杂的、数字的信号处理在所述控制设备中进行。
除了前面已经描述的运算可能性,所述运算可能性能够由各个功能单元1400(图2A)或者由各个功能单元的组合、尤其是由其相应的、本地的运算单元1420实现,以组合的形式通过一个或者多个根据本发明的功能单元提供下面的功能性也是可能的,如果在灵活的硬件扩展1500的、对应的扩建阶段中,所需要的基础功能性、配置和彼此连接存在并且允许具有所需要的总计算性能的运算,所述基础功能性总的来说以包括运算单元的功能单元的形式并且此外以所需的数目:运算(甚到是高维度的)特性场(具有例如多于五个的维度),运算基于数据的模型,运算物理模型,运算神经网络,求解线性方程组,形成逆矩阵(尤其是更高阶的矩阵),求解非线性的方程组,例如通过运算快速傅立叶变换(FFT)的、时间-频率的转换,例如通过运算快速傅立叶逆变换(iFFT)的、频率-时间的转换,运算如FIR(有限脉冲响应)、IIR(无限脉冲响应)的、不同的过滤器类型。
就另一个有利的实施方式而言设置了,至少两个功能单元彼此耦合,以便实现提高待处理的数据的数据宽度。为此,图7示意性地示出简化的框图,根据实施方式的计算单元的两个功能单元1400h、1400i被示出在所述框图中。
就当前描述的实施方式而言,功能单元1400h、1400i能够在第一运行模式中彼此独立地工作,在此,例如功能单元1400h处理供应给它的、第一数据宽度(例如32位)的输入数据a40,由此获得例如也具有32位的数据宽度的、输出数据a42。功能单元1400i独立于功能单元1400h的运行或者独立于输入数据a40的处理地处理供应给它的、输入数据a41(具有例如也是32位的数据宽度),由此获得例如也具有32位的数据宽度的、输出数据a43。
然而,在第二运行模式中,功能单元1400h、1400i也能够彼此耦合,这由方框箭头a44表明。这实现了数据的数据宽度的、例如目前到64位的提高,所述数据目前由功能单元1400h、1400i共同处理。特别优选地,参与的功能单元能够被构造用于,相互间分配操作数(Operanden)和在其上待执行的计算步骤,和/或,在功能单元1400h、1400i或者其相应的、本地的运算单元(未示出)之间分离操作数和在其上待执行的计算步骤(参阅:箭头a44)。在此,箭头a44表征在功能单元1400h、1400i之间的、单独的数据连接,所述数据连接实现了功能单元1400h、1400i关于共同的数据处理的协调。
就一个实施方式而言,功能单元1400h、1400i能够被构造用于,动态地(在功能单元1400h、1400i的运行期间)在第一运行模式和第二运行模式之间切换。这能够例如通过功能单元1400h、1400i的、对应的配置实现。
就另一个有利的实施方式而言设置了,功能单元关于其相应的输入数据a40、a41同步,以便能够正确地执行共同的数据处理。这例如能够包括:所有参与的功能单元连同运算的执行如此长地等待,直到所有参与的功能单元都具有有效的输入数据,尤其是当没有同步化的运算启动导致有误的运算。有利地,功能单元在执行运算期间也彼此同步。如果输出数据超过了功能单元的数据长度(例如,32位),就一些实施方式而言能够设置,功能单元1400h、1400i例如以分开的形式将输出数据发送到一个或者多个目标-功能单元,所述输出数据由共同的数据处理产生。
在一个实施方式中,部分-输出数据能够仅仅通过参与的功能单元的一部分来发送,例如通过恰好一个功能单元。
在一可替代的实施方式中,所有参与的功能单元能够发送分离的部分-输出数据的、对应的部分。
在前述的两个实施方式中,部分-输出数据的发送能够例如在时间上依次进行,在后一个实施方式中也能够平行地进行。
例如,根据一个实施方式,两个功能单元1400h、1400i能够被构造用于,执行具有32位的数据宽度的加法(“ADD”)或者减法(“SUB”)。在对应于第二运行模式的、耦合的运行方式中,功能单元1400h、1400i因而能够执行具有64位的数据宽度的加法或者减法。例如,功能单元1400h运算32高比特位,而功能单元1400i运算32低比特位。此外,能够设置,从功能单元1400i向功能单元1400a传输进位比特位(英语:Carry Bit)(参阅:方框箭头a44)。
在另一个运行模式中,尤其是执行定点数的两个功能单元1400h、1400i被如此耦合,使得在组合中目前实现了浮点运算。在有利的实施方式中,尤其是对于浮点运算来说必需的、在尾数上运算以及在指数上的运算在各个不同的功能单元中被执行。
就另外的实施方式而言,也能够设想的是,以前面示例性地描述的方式将多于两个的功能单元设计为是能够彼此耦合的,由此,对应地,被处理的数据宽度进一步增加。
图8A示意性地示出根据另一个实施方式的、简化的数据流,其中,示例性地描绘了总共四个功能单元1400_A1、1400_A2、1400_B、1400_C。从功能单元1400_A1到功能单元1400_B的、可能的数据流以箭头a50表征。从功能单元1400_A2到功能单元1400_B的、可能的数据流以箭头a51表征。从功能单元1400_B到其自身(实现了递归)的、可能的数据流以箭头a52表征。从功能单元1400_B到功能单元1400_C的、可能的数据流以箭头a53表征。功能单元1400_C的输出数据以箭头a54表征。
如从图8A中可以看出的,在输入侧上,数据从两个不同的功能单元1400_A1、1400_A2被供应给功能单元1400_B。例如,功能单元1400_B能够被构造用于,接受第一功能单元1400_A1的数据a50,而第二功能单元1400_A2的数据a51尚未被接受。此外,功能单元1400_B能够被构造用于,接受第二功能单元1400_A2的数据a51,而第一功能单元1400_A1的数据a50尚未被接受。此外,功能单元1400_B能够被构造用于,经由递归分支a52接受其自身的数据,而功能单元1400_A1、1400_A2的数据a50、a51尚未被接受。根据另外的实施方式,用于控制在功能单元之间的数据流的、其他的情况(Konstellation)也是能够设想的。尤其地,就另外的实施方式而言,对多于一个的功能单元1400_A1、1400_A2的数据或者信息的同时接收或者通过1400_B向其自身的递归的同时接收也是可能的。
图8B在包含初级连接单元150的情况下示意性地示出类似的数据流,所述初级连接单元使在图8A中所描绘的功能单元彼此连接,所述初级连接单元当前例如被构造为耦合网或者具有至少一个耦合网。
为了确保数据在(在图8A、8B中所描绘的)数据流中的、正确的顺序,就本发明的、优选的实施方式而言下述措施中的一个或者多个能够分别单独地或者以彼此任意组合的形式被使用。根据一个有利的实施方式,下述的措施能够例如通过功能单元的、本地的控制装置1410(图2A)被应用。
措施1:“忙状态(Busy Status)”(德语:“Belegt”-Zustand),该状态说明,数据是否能够在功能单元的输入接口1402(图2A)处被接受。尤其优选地,就一种实施方式而言,这种“忙状态”能够被示出用于功能单元的每个输入接口(替代地,仅仅用于一些输入接口)。例如,初级连接单元150(图1A)能够被构造用于,仅仅将数据或者数据包传输或者发送到功能单元的这些输入接口:对于所述输入接口来说,没有“忙”-状态进行信令交换,所述输入接口已经准备好接收数据或者数据包。
就另一个实施方式而言能够设置,初级连接单元150被构造用于,如有必要用于到对应的输入接口的、将来的传输或者发送地至少暂时地缓存数据或者数据包,所述数据或者数据包被设置用于瞬时占用的输入接口。就一个实施方式而言,“忙”-状态能够例如由功能单元的、本地的控制装置1410进行获取或者给出。
措施2:给出用于一个或者多个数据包的包类型(英语:packet typeidentifier)。就优选的实施方式而言,数据包能够具有包类型,以便在不同类型的数据包之间进行区分。尤其地,根据一些实施方式,能够进行对不同的包类型的区别,所述区别在用于加工而设置的数据包以及包含配置数据的数据包之间进行区分。就一些实施方式而言,具有配置数据的数据包例如能够被用于,改变在不同的功能单元之间的数据流。例如,包类型能够作为单独的值被列入在数据包中,例如在控制数据CTRL(图2B)中,或者,包类型能够根据另外的实施方式从其他的值中是能够导出的,例如从数据包的源地址和/或目标地址中或者从其他的信息中,所述信息标识源-功能单元和/或目标-功能单元。
就另一个实施方式而言能够设置,功能单元被构造用于,给出用于数据包的、对应的包类型,所述功能单元输出数据包。就其他的发明变型而言,也能够设想的是,使包类型的输出是能够配置的,也就是说,借助配置来确定,功能单元是否定义和给出包类型(并且如有必要,定义和给出哪些包类型)。
就另一个实施方式而言能够设置,初级连接单元150被构造用于,给出用于数据包的、对应的包类型,所述初级连接单元传递数据包。
就另外的实施方式而言能够设想的是,功能单元给出,它经由一定的输入接口(仅仅)接受一定的包类型的数据包。例如,初级连接单元150(图1)仅能够将这样的数据包传递到一定的功能单元的输入接口,所述初级连接单元能够包括例如耦合网152,所述功能单元用信号表明,它能够接受一定的数据类型的数据。
措施3:就一个实施方式而言,功能单元能够被构造用于,监控和/或检查由其接收的数据或者由其加工的或者待加工的数据。当例如对于运算任务来说两个操作数被预期作为输入值,根据一个实施方式,功能单元被构造用于,监控:两个操作数对于每个计算任务来说都准确地被接收或使用了一次,并且,例如不是更频繁地或者更不频繁地。例如,由此能够认识到,当第一操作数已经被接收到并且然后被重新接收时,存在故障情况。更确切地说,首先必须基于运算的第一次接收到的操作数,在第二操作数出现之后,并且然后在功能单元例如能够从其他的功能单元接收另外的第一操作数以及另外的第二操作数之后,必须执行运算。就另一个有利的实施方式而言能够设置的是,功能单元在运行的运算期间不执行配置或者再配置,而是更确切地说首先完成运行的运算,或者等待作为输入数据的、如有必要必需的(另外的)操作数。
措施4:拒绝(Abweisung)数据包。就一些实施方式而言能够设置,至少一个功能单元被构造用于,拒绝数据包,所述数据包在输入侧(例如,经由输入接口或者直接的数据连接)被供应给它。就一个变型而言能够设置,拒绝是至少暂时可能的。
如果初级连接单元150(图1A)识别出,供应给功能单元的数据包已经被拒绝,则初级连接单元能够阻止将同一个数据包重新发送到动作单元,例如直到功能单元已经接收到至少一个其他的数据包。就一个优选的实施方式而言,初级连接单元被构造用于,使得到功能单元的、其他的、附加的传输请求优先,所述传输请求关于另外的数据包,从而例如其他的数据包能够被发送到功能单元,所述功能单元先前已经拒绝了一定的数据包。
就另一个实施方式而言,初级连接单元被构造用于,执行所拒绝的数据包的重新的传输,例如周期性地,或者,至少当所有自那以后用于功能单元的、确定的数据包已经被传输到这个功能单元时,因此除了先前拒绝的、用于确定的功能单元的数据包,不存在其他的数据包。就另一个有利的实施方式而言能够设置,初级连接单元监控对功能单元的一个或者多个、优选所有输入接口的写入访问,所述功能单元与初级连接单元连接,由此,前述的步骤能够特别有效并且精确地被执行。就一个实施方式而言能够设置,(至少暂时)被拒绝的数据包被缓存或者被缓冲在初级连接单元之内和/或在发送它的功能单元之内。
就另一个有利的实施方式而言能够设置,功能单元被构造用于,显示它现在能够接收或者想要接收先前被拒绝的数据包。对应的信号通知能够例如由相关的功能单元传输到初级连接单元。由此,有利地能够通过下述方式避免对数据包的、重复的拒绝:在接收到信号通知之后,初级连接单元将之前拒绝的数据包重新发送到目前准备好接收的功能单元。
措施5:优先化数据包,尤其是根据相关的功能单元的位置,所述相关的功能单元在功能单元的组的或者根据本发明的计算单元的数据流图中。
就特别优选的实施方式而言,优先化数据包是可能的,所述数据包被寻址到一定的功能单元的、同一个输入接口。特别优选地,这种优选化能够根据所有功能单元的优先级和/或功能单元1400_A1、1400_A2、1400_B(图8A)的所有输出接口的优先级来完成,所述输出接口同时访问确定的功能单元1400_B的、同一个输入接口。根据一个优选的实施方式,优先化实现了在不同的功能单元之间和/或在功能单元的、不同的输出接口之间的区分:哪些访问所有写入(通过发送数据包)相同目标-功能单元的,然而,哪些例如被布置在不同的位置处,所述位置在功能单元的组的或者根据本发明的计算单元的数据流图中。
就一个特别优选的实施方式而言,为功能单元的、个别的输入接口预先给定优先化是可能的。也能够设想的是,为功能单元的不同的输入接口预先给定不同的优先化。
就另一个有利的实施方式而言,为所有可能的关系预先给定如此的优先化是可能的,所述关系在发送数据或者数据包的功能单元和接收的功能单元或者其输入接口之间。
就另一个实施方式而言设置了,优先化静态固定布线地被预先给定。替代地或者补充地,静态的但是能够配置的优先化也能够被设置。替代地或者补充地,动态的优先化也能够被设置。例如,动态的优先化能够适用于确保:所有功能单元能够传输相同数目的数据包,或者,一个功能单元能够接收不同的功能单元的、相同数目的数据包,和/或,当在相应的时间点上数据包没有或者没有优选地被接受时,执行优先级的降级,和/或,当功能单元在当前的时间点上忙时,降低优先级,和/或,当数据包-缓冲器在初级连接单元中完全或者部分地被填充时,降低优先级,和/或,当功能单元的、内部的缓冲器完全或者部分地被填充时,减低优先级,和/或,当数据包具有对应的标识时,提高优先级,等等。
优选地,如有必要存在的、动态的优先化在其行为方面是能够配置的。
优先化独立于实施方式、优选借助硬件电路被实现。
就另外的实施方式而言,在初级连接单元1500(图8B)之内和在至少一个功能单元1400_A1、14000_A2之内设置措施是可能的,所述措施用于实施前述的优先化。
就一个有利的实施方式而言,根据待传输的数据包的内容、例如根据控制旗(Steuerflags)或者控制信息来设置优先化是可能的,所述控制旗或者控制信息能够被包含在数据包中。
前述的措施能够有利地与实施方式的、其他的、前述的方面中的一些或者全部组合。尤其地,前述的措施也能够与多个功能单元的耦合组合,如它在前面示例性地参考图7所描绘的。
根据其他的实施方式,前述的措施也能够被用于在根据本发明的功能单元的一个或者多个和至少一个存储装置、例如次级存储装置160(图1F)之间的数据的传输,所述措施用于数据流控制,或者一般来说用于单个地或者以彼此任意组合的形式地影响数据流。
通过前述的措施,有利地也能够避免死锁(英语:deadlocks)。
就另外的实施方式而言也能够设想的是,如此构造至少一个功能单元,使得它能够关于其自身和/或初级连接单元150和/或关于至少一个另外的功能单元和/或关于第二存储装置160执行前述的、用于影响数据流的措施中的一个或者多个。
就另一个有利的实施方式而言设置了,计算单元具有至少一个监控单元(英语:watchdog),所述监控单元被构造用于,识别至少一个功能单元和/或至少一个计算核心的阻塞(Blockierung),并且,然后如有必要引入应对措施(例如,故障反应,或者,计算单元的或者相关的功能单元的重新启动)。就一个实施方式而言,相关的功能单元的重新启动能够例如直接地和/或间接地通过整个灵活的硬件扩展1500的重启,或者通过整个运算单元100的重新启动来完成。监控单元能够例如集成在功能单元中,和/或,被配属于根据本发明的计算单元的、其他的部件,和/或,位于计算单元的外部。
就另一个实施方式而言,例如,监控单元的功能性也能够被配属于初级连接单元。
Claims (25)
1.计算单元(100),所述计算单元具有至少一个计算核心(110a、110b、110c)、初级存储装置(120)和至少一个主连接单元(130),所述主连接单元用于将所述至少一个计算核心(110a、110b、110c)与所述初级存储装置(120)连接,其中,所述计算单元(100)具有至少两个功能单元(140;1400),其中,所述至少两个功能单元(140;1400)中的至少一个第一功能单元(140a)被构造用于,
a)从所述至少两个功能单元(140;1400)中的至少一个另外的功能单元(140;1400)接收(302)第一数据,和/或,
b)将第二数据发送(304)到所述至少两个功能单元(140;1400)中的至少一个另外的功能单元(140;1400)。
2.根据权利要求1所述的计算单元(100),其中,至少一个初级连接单元(150)被设置,所述初级连接单元被构造用于,至少暂时地在所述第一功能单元(140a)和所述至少两个功能单元(140;1400)中的至少一个另外的功能单元(140;1400)之间建立直接的数据连接。
3.根据权利要求2所述的计算单元(100),其中,所述初级连接单元(150)具有以下部件中的至少一个:耦合网(152a),总线系统(152b),在至少两个功能单元(140;1400)之间的、至少一个直接的数据连接。
4.根据权利要求1所述的计算单元(100),其中,功能单元(140;1400)的多个组(G1、G2)被设置,并且其中,至少一个初级连接单元(150)被配属于所述多个组(G1、G2)中的每一个组,所述初级连接单元被构造用于,至少暂时地在相关的组的功能单元(140;1400)之间建立直接的数据连接。
5.根据权利要求2所述的计算单元(100),其中,至少一个次级连接单元(155)被设置,所述次级连接单元被构造用于,
a)在所述主连接单元(130)和至少一个功能单元(140;1400)之间建立数据连接,和/或,
b)在所述主连接单元(130)和至少一个初级连接单元(150)之间建立数据连接。
6.根据权利要求1所述的计算单元(100),其中,至少一个次级存储装置(160)被设置,其中,在所述至少一个次级存储装置(160)和至少一个功能单元(140;1400)之间存在直接的数据连接。
7.根据权利要求6所述的计算单元(100),其中,所述至少一个次级存储装置(160)具有多个存储器库(162a、162b、162c……162n),其中,所述至少一个次级存储装置(160)被构造用于,实现对所述多个存储器库(162a、162b、162c……162n)中的至少两个存储器库的、平行的数据访问。
8.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元被构造为硬件电路。
9.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有以下元件中的至少一个:微控制器、执行软件的计算核心、数字的信号处理器、能够编程的逻辑电路、应用特定的集成的电路、由门阵列和/或晶体管阵列预先制造的然而还没有应用特定地布线的集成的电路。
10.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有以下部件中的至少一个:加法器、乘法器、除法器、移位寄存器、桶式-移位器、比较器、乘法累加器、算术-逻辑单元、存储器单元、存储器访问单元、寄存器、复用器、解复用器、接口、通信接口、用于运算指数函数的单元、用于运算三角函数的单元、用于运算对数函数的单元、用于运算根函数的单元、查找表。
11.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有至少一个粗粒的硬件元件(e1、e2;1420),或者,被构造为粗粒的硬件元件。
12.根据权利要求1所述的计算单元(100),其中,所述计算单元(100)被构造用于,改变至少一个功能单元(140;1400)的配置,和/或,检查至少一个功能单元(140;1400)的状态或者所述配置。
13.根据权利要求5所述的计算单元(100),其中,所述计算单元(100)被构造用于,改变所述初级连接单元(150)的和/或至少一个次级连接单元(155)的配置,和/或,检查至少所述初级连接单元(150)的和/或至少一个次级连接单元(155)的状态或者所述配置。
14.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有至少一个到所述计算单元(100)的中断请求-分配装置(170)的直接的数据连接,和/或,具有至少一个到所述计算单元(100)的中断请求-分配装置(170)的间接地经由前置级(170a)延伸的数据连接。
15.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有至少一个到所述计算单元(100)的输入接口和/或输出接口的直接的数据连接。
16.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元被构造用于,改变其自身的配置和/或至少一个另外的功能单元(140;1400)的配置。
17.根据权利要求5所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元被构造用于,改变所述初级连接单元(150)的和/或至少一个次级连接单元(155)的配置,和/或,检查至少所述初级连接单元(150)的和/或至少一个次级连接单元(155)的状态或者所述配置。
18.根据权利要求6所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元被构造用于,读取来自所述初级存储装置(120)和/或来自次级存储装置(160)和/或来自另外的外围部件(125)的数据,和/或,将数据写入在其中。
19.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有输入接口(1402)和/或输出接口(1404),所述输入接口用于接收所述第一数据,所述输出接口用于输出所述第二数据。
20.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有本地的控制装置(1410),所述本地的控制装置用于控制所述功能单元的运行。
21.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有本地的运算单元(1420)。
22.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有本地的配置存储器(1430),其中,所述本地的配置存储器(1430)包括多个配置寄存器(1432a、1432b、1432c、1432d)。
23.根据权利要求1所述的计算单元(100),其中,所述功能单元(140;1400)中的至少一个功能单元具有本地的功能存储器(1440),其中,所述本地的功能存储器(1440)包括至少一个功能寄存器(1442a)。
24.控制设备(1004),用于机动车(1000)的内燃机(1002)的控制设备,具有至少一个根据前述权利要求1-23中任一项所述的计算单元(100)。
25.用于运行计算单元(100)方法,所述计算单元具有至少一个计算核心(110a、110b、110c)、初级存储装置(120)和至少一个主连接单元(130),所述主连接单元用于将所述至少一个计算核心(110a、110b、110c)与所述初级存储装置(120)连接,其中,所述计算单元(100)具有至少两个功能单元(140;1400),其中,所述至少两个功能单元(140;1400)中的至少一个第一功能单元(140a)
a)从所述至少两个功能单元(140;1400)中的至少一个另外的功能单元(140;1400)接收(302)第一数据,和/或,
b)将第二数据发送(304)到所述至少两个功能单元(140;1400)中的至少一个另外的功能单元(140;1400)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102017200456.8A DE102017200456A1 (de) | 2017-01-12 | 2017-01-12 | Recheneinheit und Betriebsverfahren hierfür |
DE102017200456.8 | 2017-01-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108304344A CN108304344A (zh) | 2018-07-20 |
CN108304344B true CN108304344B (zh) | 2023-09-26 |
Family
ID=62636644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810026602.2A Active CN108304344B (zh) | 2017-01-12 | 2018-01-11 | 计算单元及其运行方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108304344B (zh) |
DE (1) | DE102017200456A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102017209856A1 (de) * | 2017-06-12 | 2018-12-13 | Robert Bosch Gmbh | Recheneinheit und Betriebsverfahren hierfür |
CN111488963B (zh) * | 2019-01-28 | 2023-11-24 | 中科寒武纪科技股份有限公司 | 神经网络计算装置和方法 |
EP4063977B1 (en) | 2020-03-27 | 2024-09-25 | Huawei Technologies Co., Ltd. | Interface circuit for vehicle-mounted control unit, device, vehicle and control method |
CN112972892A (zh) * | 2021-02-05 | 2021-06-18 | 杭州诺为医疗技术有限公司 | 植入式闭环系统基于线长算法自动检测癫痫的方法和装置 |
CN117687953A (zh) * | 2023-09-11 | 2024-03-12 | 灿芯半导体(上海)股份有限公司 | 一种支持动态分配的运算单元结构 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5548774A (en) * | 1988-03-22 | 1996-08-20 | Texas Instruments Incorporated | Microcomputer system providing time management enabling control and acquisition of data indicative of condition changes occurring at high speed |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
WO2003046725A1 (fr) * | 2001-11-30 | 2003-06-05 | Fujitsu Ten Limited | Appareil de mise au point de logique de micro-ordinateur |
DE10302061A1 (de) * | 2003-01-21 | 2004-07-29 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Brennkraftmaschine, insbesondere in einem Kraftfahrzeug |
CN102144225A (zh) * | 2008-05-29 | 2011-08-03 | 阿克西斯半导体有限公司 | 实时数据处理方法和装置 |
CN106169045A (zh) * | 2015-05-19 | 2016-11-30 | 罗伯特·博世有限公司 | 计算装置和对此的运行方法 |
CN106257431A (zh) * | 2015-06-19 | 2016-12-28 | 罗伯特·博世有限公司 | 自动倍增存储位的内容的存储单元和具有其的数据网络 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058065B2 (en) * | 2000-02-08 | 2006-06-06 | Mips Tech Inc | Method and apparatus for preventing undesirable packet download with pending read/write operations in data packet processing |
JP4795025B2 (ja) * | 2006-01-13 | 2011-10-19 | キヤノン株式会社 | ダイナミックリコンフィギャラブルデバイス、制御方法、及びプログラム |
US20080263319A1 (en) * | 2007-04-17 | 2008-10-23 | Cypress Semiconductor Corporation | Universal digital block with integrated arithmetic logic unit |
US8706914B2 (en) * | 2007-04-23 | 2014-04-22 | David D. Duchesneau | Computing infrastructure |
EP2372490A1 (en) | 2010-03-31 | 2011-10-05 | Robert Bosch GmbH | Circuit arrangement for a data processing system and method for data processing |
DE102015207323A1 (de) | 2015-04-22 | 2016-10-27 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Synthese eines Schaltungslayouts |
-
2017
- 2017-01-12 DE DE102017200456.8A patent/DE102017200456A1/de active Pending
-
2018
- 2018-01-11 CN CN201810026602.2A patent/CN108304344B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5548774A (en) * | 1988-03-22 | 1996-08-20 | Texas Instruments Incorporated | Microcomputer system providing time management enabling control and acquisition of data indicative of condition changes occurring at high speed |
US5699537A (en) * | 1995-12-22 | 1997-12-16 | Intel Corporation | Processor microarchitecture for efficient dynamic scheduling and execution of chains of dependent instructions |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
WO2003046725A1 (fr) * | 2001-11-30 | 2003-06-05 | Fujitsu Ten Limited | Appareil de mise au point de logique de micro-ordinateur |
DE10302061A1 (de) * | 2003-01-21 | 2004-07-29 | Robert Bosch Gmbh | Verfahren zum Betreiben einer Brennkraftmaschine, insbesondere in einem Kraftfahrzeug |
CN102144225A (zh) * | 2008-05-29 | 2011-08-03 | 阿克西斯半导体有限公司 | 实时数据处理方法和装置 |
CN106169045A (zh) * | 2015-05-19 | 2016-11-30 | 罗伯特·博世有限公司 | 计算装置和对此的运行方法 |
CN106257431A (zh) * | 2015-06-19 | 2016-12-28 | 罗伯特·博世有限公司 | 自动倍增存储位的内容的存储单元和具有其的数据网络 |
Also Published As
Publication number | Publication date |
---|---|
CN108304344A (zh) | 2018-07-20 |
DE102017200456A1 (de) | 2018-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108304344B (zh) | 计算单元及其运行方法 | |
JP3961028B2 (ja) | データフロープロセッサ(dfp)の自動的なダイナミックアンロード方法並びに2次元または3次元のプログラミング可能なセルストラクチャを有するモジュール(fpga,dpga等) | |
US20060123282A1 (en) | Service layer architecture for memory access system and method | |
CA2503617A1 (en) | Pipeline accelerator for improved computing architecture and related system and method | |
US10564929B2 (en) | Communication between dataflow processing units and memories | |
WO2004042562A2 (en) | Pipeline accelerator and related system and method | |
KR102539571B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
US20060015701A1 (en) | Arithmetic node including general digital signal processing functions for an adaptive computing machine | |
JP2021518591A (ja) | 機械知覚および高密度アルゴリズム集積回路を実装するためのシステムおよび方法 | |
US7716458B2 (en) | Reconfigurable integrated circuit, system development method and data processing method | |
CN112771498A (zh) | 用于实施智能处理计算架构的系统和方法 | |
CN114691354A (zh) | 动态分解及线程分配 | |
EP2132645B1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
CN109634691B (zh) | 计算单元和对此的运行方法 | |
CN109033006B (zh) | 计算单元和对此的运行方法 | |
CN108269601B (zh) | 非易失性存储器中的处理器 | |
US8171259B2 (en) | Multi-cluster dynamic reconfigurable circuit for context valid processing of data by clearing received data with added context change indicative signal | |
KR102539573B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
KR102539574B1 (ko) | 네트워크 온칩 데이터 처리 방법 및 장치 | |
CN111788553B (zh) | 用于针对可变位宽度数据格式的打包和解包网络以及方法 | |
TWI810262B (zh) | 用於計算機器的可變位元寬資料格式的單打包和拆包網路及方法 | |
US20180196908A1 (en) | Hardware-configurable logic unit and microcontroller having such a hardware-configurable logic unit | |
CN118311916B (zh) | 一种可编程逻辑系统和微处理器 | |
JP5701930B2 (ja) | 半導体装置 | |
US20040230319A1 (en) | Microcontroller device for complex processing procedures and corresponding interrupt management process |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |