CN103793340A - 串行数据处理器 - Google Patents
串行数据处理器 Download PDFInfo
- Publication number
- CN103793340A CN103793340A CN201310470623.0A CN201310470623A CN103793340A CN 103793340 A CN103793340 A CN 103793340A CN 201310470623 A CN201310470623 A CN 201310470623A CN 103793340 A CN103793340 A CN 103793340A
- Authority
- CN
- China
- Prior art keywords
- serial
- data
- processing
- data processor
- interfaces
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 119
- 230000015654 memory Effects 0.000 claims description 72
- 238000013461 design Methods 0.000 claims description 3
- 238000003860 storage Methods 0.000 claims 4
- 230000014759 maintenance of location Effects 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 45
- 230000008901 benefit Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 4
- 239000004065 semiconductor Substances 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 17
- 238000000034 method Methods 0.000 description 14
- 238000013459 approach Methods 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 239000000872 buffer Substances 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000012546 transfer Methods 0.000 description 5
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000010561 standard procedure Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
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/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
- G06F15/8015—One dimensional arrays, e.g. rings, linear arrays, buses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Advance Control (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明提供一种利用以调制解调器架构为基础的串行数据处理器,本发明提供的技术提升了数字基频电路的弹性,并降低其面积及功耗。为移动电话提供基频芯片的半导体公司必须面对的挑战众多,诸如芯片尺寸、能源效率、效能、上市时间,以及不断演进的规格。软件无线电能提供快速的上市时间,专用硬件则是在芯片尺寸和耗能上具有优势。为结合软件无线电及专用硬件的优点,根据本发明的串行数据处理器被分割为串行处理单元及串行控制单元。串行处理单元以专用硬件实现处理功能,因此具有小面积和低功耗。利用软件实现的串行控制单元能够最小化产品上市时间。
Description
技术领域
本发明与运算系统中的数据处理器相关,尤其相关于利用串行数据处理器为无线通信系统中的数字基频集成电路提高弹性、缩减芯片面积、降低耗电量的技术相关。
背景技术
为移动电话提供基频芯片的半导体公司必须面对的挑战众多,诸如芯片尺寸、能源效率、效能、上市时间、支持多种无线存取模式,以及不断演进的规格。由于专用硬件能提供最佳的芯片尺寸及功率,在过去被广泛使用。近年来的趋势之一则是采用以软件无线电(software-defined radio,SDR)为基础的方案,以期缩短上市时间。产品需求与时俱进、变化快速。先期产品通常着重弹性,而后期产品通常较重视芯片尺寸及能源效率。因此在实务上,需要一个能衔接先期产品和后期产品的转型的数据处理器。
软件无线电系统是指利用嵌入式系统的软件来实现的无线通信系统。软件无线电的观念并不新颖,而数字电子技术的快速发展使过去许多不可行的构想得以实现。用来实现软件无线电的技术包含:粗粒可重组阵列(coarse grain reconfigurablearray,CGRA)、数字信号处理器(DSP),以及可重组运算平台(RCP)。
具有高处理功率及高弹性的CGRA包含多个可重组数据处理单元(rDPU)与一个可重组通信结构,其可重组性的层级为字组(word)或运算元(operand)(可参考2005年T.J.Todman等人发表的“Reconfigurable computing:architectures and designmethods”)。CGRA可采用数百个或仅少量的rDPU;这些rDPU可相同或不同。各rDPU被赋予不同的任务,其能力可低如最小运算逻辑单元(arithmetic logic unit,ALU)或缓冲器,亦可高如完整的处理器。在不同应用中,CGRA的可重组性可大不相同。CGRA的问题在于难以实现用以将高阶C语言映射至一平台的软件工具。软件设计师必须深入暸解该平台,始能写出适合CGRA的特定软件。
DSP的历史悠久,通常被用于实现GSM基频接收器。DSP被最佳化为适于处理大量数据,而非执行控制码。DSP系藉由平行演算法来达到高数据处理量。适用于嵌入式系统的DSP架构有:实现指令平行化的超长指令字集(very longinstruction word,VLIW)、实现数据平行化的单一指令多重数据(single instructionmultiple data,SIMD)、实现任务平行化及管道式(pipelining)执行指令的多工作线(multithreading)。
在超长指令字集(VLIW)架构中,提供至多个功能单元的多个指令是平行送出。最直接的VLIW架构允许数据载入、运算及数据储存同时发生。此外,亦有允许多个运算逻辑单元(ALU)同时独立运作的实现方式。所有的相关性皆由编译器静态处理,不需要检测及处理相关性的专用硬件。这种做法使得VLIW架构尤其适用于嵌入式方案。然而,从程序码大小的角度看,VLIW架构的数据平行化的效率相当低。即使相同的运算被多次执行,各功能单元仍各自需要个别指令。
程序码大小对嵌入式系统至关重要,而单一指令多重数据(SIMD)架构是可解决此问题的一种方案。在SIMD架构中,相同的指令被施于一数据向量的不同元素上。处理器处理的是一个向量档案,而非一暂存器档案。这些向量通常相当短;向量暂存器的宽度在64到512位元之间,对应于四个到三十二个十六位元的向量元素。长数据向量必须被分割为多个较短的向量。
根据阿姆达尔定律(Almdahl’s law),将子任务加速的有效性是有上限的。要突破此上限的方法便是利用指令平行化。超长指令字集(VLIW)架构常被用于控制一纯量(scalar)单元、一单一指令多重数据(SIMD)单元与一地址产生单元。
多工作线(multithreading)意指平行执行多个独立的软件任务并且分时共享(time-sharing)处理器核心。由于分时处理会增加负荷,这种做法在嵌入式系统中帮助不大。软件无线电方案通常必须在严格的时限内完成多种任务,是否同时进行多个任务相对而言并不重要。然而,多工作线可被用于采用闲置的功能单元。VLIW架构能藉此被最佳化。另一种实现多工作线的方式是允许不同的任务占据管道式指令中的不同阶段。
可重组运算平台(RCP)结合了一个或多个传统处理器与一个或多个可重组处理单元(可参考2002年G.Estrin于IEEE Annals of the History of Computing,vol.24,no.4,pp.3–9发表的“Reconfigurable computer origins:The UCLA fixed-plus-variable(F+V)structure computer”)。
加速一系统最直接的方法是透过复制(duplication),将一任务分割为多个平行执行的子任务。然而这种做法相当昂贵,且加速成效受限于这些子任务的相关性。
另一方面,可重组架构允许个别子功能的加速。因为重复使用的关系,额外的硬件成本有限。由于各子任务仍是平行执行,这种做法的一大优点是各子任务间的相关性并不重要。然而,阿姆达尔定律对于可达到的整体速度增进仍设有上限。
可重组运算平台(RCP)架构的整体调制解调器处理包含一系列的运算核心(例如傅利叶转换、解调、解码)。一运算核心通常包含处理一组数据的一个紧密回圈(tight loop)。这些核心之间数据传输的相当少。待处理事件被分割为两个任务:一个任务是执行该运算核心(理想上是由能有效执行该运算核心的可重组硬件完成),另一个任务则是重新配置硬件并为核心的运作排程(由传统处理器来实现)。
连接可重组硬件至处理器的方式有四种基本选择:透过外部、处理器总线、共处理器、暂存器档案(可参考Henrik Svensson于2008年出版的书籍“ReconfigurableArchitectures for Embedded Systems”)。
最合适的连接方式与可重组硬件的粒状性(granularity)有关。若是以场效可规划栅极阵列(field-programmable gate array,FPGA)来实现可重组硬件,且不需直接存取处理器存储器,则可采用外部连接。若可重组硬件实现了整个核心,且数据可透过直接存储器存取(DMA)被传输至处理器存储器或自处理器存储器输出,处理器总线也是一种选项。或者,可重组硬件可为能直接存取处理器快取存储器的一共处理器。此外,可重组硬件亦可为处理器的一功能单元,直接处理暂存器档案。
专用硬件的好处之一是其运算位元宽度可针对特定应用被最佳化。这种做法能将逻辑芯片和存储器的尺寸最小化。软件无线电方案通常限于利用8、16、32、64位元的运算,未必能完全实际处理需求。因此,相较于专用硬件,软件无线电方案的额外运算较多、芯片尺寸及存储器利用效率较差。
对移动装置来说,芯片尺寸及能源效率至关重要。对以处理器为基础的方案来说,这直接相关于程序码大小及运算宽度。用以实现软件无线电方案的先前技术所采用的处理器使用元素运算、短向量及标准运算宽度。藉由利用高阶运算、数据串行运算及特制运算宽度,串行数据处理器(SDP)方案增进了芯片尺寸及能源效率。一数据串行是具有任意长度的一数据取样序列。高阶运算及数据串行运算会降低指令数量。特制运算宽度则会降低数据记忆大小体及处理功能。
串行数据处理器的处理对象为数据串行,且能依任意顺序存取数据串行元素。这种做法能有效率地实现多种高阶功能,例如解扰、排序及矩阵运算。加扰是一种将错误平均分散于大数据封包中的标准技术,常用于电信标准中的多个层级。相对应地,接收端的数字基频必须进行解扰。由于需要以多重迭代的混洗(shuffle)程序来处理大数据封包,解扰难以有效率地实现在处理短向量的处理器上。然而,串行数据处理器能于单一路径有效率地将大数据封包解扰。
由于可直接转移至专用硬件,且一旦已知基本处理功能便可在开发演算法时便开始准备,以串行数据处理器为基础的架构能提供快速的上市时间。在开发演算法时,可同时开发处理元素及功能的专用硬件。初期平台中的功能的排列组合可保持为可程序化的。一旦演算法已确定,就能在较具芯片尺寸及能源效率的专用硬件上进行排列组合。这种做法使得开发处理引擎时能更有弹性、更适用目标应用。
发明内容
本发明的实施例采用多个串行数据处理器来实现有弹性的运算系统。该运算系统能在不耗费大量电力和芯片面积的情况下处理大量数据。本发明的应用领域之一是无线通信系统中的数字基频集成电路。
为了结合专用硬件的优点和传统软件无线电的优点,多个串行数据处理器中的每一个串行数据处理器各自被分割为一个或多个串行处理单元(SPU)及一个串行控制单元(SCU)。SPU以专用硬件实现处理功能,因此在芯片尺寸及能源效率方面是有效率的。这些运算的位元宽度可针对特定应用被最佳化。与SPU相关的数据存储器的大小相当于利用专用硬件实现整个基频电路时的存储器大小。相较于传统软件无线电方案,这种串行数据处理器方案在芯片尺寸方面更有效率。
SCU会将处理功能排序。有多种不同的SCU实现选择,范围涵盖具有弹性的传统软件无线电方案至芯片尺寸有效率的专用硬件方案。有弹性的软件定义SCU可被选择,以最小化产品的上市时间。以专用硬件为基础的SCU则可用于后续版本的产品中,以最小化芯片尺寸。
各个串行数据处理器可自外部或内部来源(例如其他串行数据处理器或专用硬件)接收一个或多个输入数据串行。这些数据串行能包含需要被处理的数字数据信号,或是对应于处理过程中的运算。输出数据串行可被写入串行数据处理器的数据存储器,或是透过数据介面输出至外部或内部接收器。
这些输入数据介面及输出数据介面是有弹性的,在接收数据串行时能允许连接至专用硬件或另一SPU,包含连接数据FIFO模块、数据缓冲器(包含直接存储器存取或仲裁后存储器存取),或是任意上述连接间的时间多工。
各串行数据处理器中的SPU包含一个或多个处理元素,各处理元素又包含一个或多个处理功能电路,用以接收一个或多个输入数据串行。这些数据串行可为自数据存储器读取的运算数据,或是自外部输入介面接收的数据。处理元素的输出可被传递至外部数据输出介面,或是透过硬件仲裁器提供至数据存储器。硬件仲裁器利用仲裁方案,使多个数据串行得共享存储器存取。处理功能的范例包含傅利叶转换/反向傅利叶转换、向量及矩阵运算、排序及过滤功能。
在一实施例中,各数据串行可被分散至所有的数据存储器。透过合适的地址解码方案,SCU不需要知道存储器的总数量。于另一实施例中,各数据串行被分别储存至不同的数据存储器。在这个情况下,SCU必须知道存储器的总数量。
SCU将组态数据提供给SPU。一种SCU方案是利用一专用微处理器来配置一个或多个SPU。一组态暂存器区块被用做一双重缓冲器,以于SPU依某种组态运作时先准备好下一种组态,藉此最小化SPU闲置时间。以微处理器做为组态控制器的一个优点是SPU及微处理器能共享数据存储器,以减少数据传输负荷。
另一个SCU方案则是利用有限状态机(FSM)自先进先出单元读取组态序列。该先进先出单元是由一较高阶处理器(例如DSP)更新。有限状态机亦可自只读存储器读取组态序列并将这些序列施加于SPU。另一种选择是直接透过设计于专用硬件或可重组硬件中的有限状态机产生组态序列程序。
串行数据处理器的处理对象为:自外部来源传递至串行数据处理器的串行、自串行数据处理器传递至外部接收器的串行、内部区块与串行数据处理器间的串行。RVG(Ready/Valid/Go)介面被用以于发送器和接收器间传递串行。所有的接收器已就绪且所有的发送器输出数据皆为正确时,才能进行传输。RVG介面提供了一种连接同步区块的弹性方法。
以软件无线电为基础的方案提供了快速的上市时间。专用硬件设计通常具有最佳芯片尺寸及能源效率。先前技术中并于整合这两种方案的方式。本发明利用以多个串行数据处理器为基础之一运算系统解决问题。各串行数据处理器各自被分割为以专用硬件实现的SPU及可配置的SCU。用于处理数据的SPU在芯片尺寸及能源方面是有效率的。SCU的不同实现选择在弹性及芯片尺寸及能源效率的取舍间提供了选择。
关于本发明的优点与精神可以藉由以下发明详述及附图得到进一步的了解。
附图说明
图1呈现典型数字基频方案的简易功能方块图。
图2绘示了实体层处理单元的一种实施例的功能方块图。
图3为串行数据处理模块的功能方块图。
图4A显示了串行数据处理器的简易功能方块图。
图4B~图4E是用以说明不同的实施例中的串行控制单元方案的简易功能方块图。
图5A绘示了串行处理器单元的一种功能方块图范例。
图5B及图5C呈现了两种可能的实施例,来说明如何将不同的数据串行映射至数据存储器。
图6呈现了RVG介面的简易功能方块图。
图7呈现了RVG介面的典型时序图。
图8为处理元素的功能方块图。
主要元件符号说明
110:天线 120:射频模块
130:数字基频模块 140:实体层处理单元
150:数字信号处理单元 160:微控制器单元
210(0)~210(L-1):串行数据处理模块
220:连接模块 230:传输端介面
310:串行数据处理器 320、325:专用硬件输入电路
330、335:专用硬件输出电路
410:串行处理单元 420:存储器
430:串行控制单元 440:SCU方案
450:专用硬件方案 460:可重组硬件方案
470:存储器存取路径 441:微处理器
442、443:有限状态机 444:组态暂存器
510(0)~510(N-1):处理元素 520、550:多工器
540:输入数据介面 560:输出数据介面
570(0)~570(M-1):硬件仲裁器
580(0)~580(M-1):数据存储器
910、920:数据串行 810(0)~810(W-1):处理功能
820(0)~820(U-1):读取区块 830(0)~830(V-1):写入区块
840:多工器
具体实施方式
使用者无线装置中的数字基频部份负责处理实体层(PHY)所需的数字信号。图1呈现一个根据本发明设置的数字基频方案的简易功能方块图。使用者装置中的天线110及射频模块120用以处理射频数据传送及接收,包含将基频信号升频至传输频率,以及将收到的信号降频为基频信号。数字数据处理是由数字基频模块130负责,其中包含实体层处理单元140、数字信号处理(DSP)单元150,以及微控制器(MCU)单元160。MCU单元160用以控制数字基频的功能,DSP单元150则是用以进一步处理实体层未处理的信号。
数字基频处理必须根据需要的程序类型被最佳化,以达到低成本及低功耗。为了符合这些需求,实体层必须为模块化、可缩放且可扩充的,也就是将多个模块组合为一特定实体层,以涵盖所需功能,并且可依据需要加入新的模块。
图2绘示了实体层处理单元140的一种实施例的功能方块图,其中包含多个串行数据处理模块210(0)~210(L-1)及一连接模块220,用以为串行数据处理模块210(0)~210(L-1)传递输入数据串行Rx及输出数据串行Tx。连接模块220也被用以在串行数据处理模块210(0)~210(L-1)间传递数据串行。顶层组态介面(传输端介面230)是由一较高阶处理器(例如图1中的DSP单元150或MCU单元160)使用,以对串行数据处理模块210(0)~210(L-1)进行配置。
图3为串行数据处理模块210的功能方块图,其中包含一串行数据处理器310,一个或多个专用硬件输入电路(320、325)及一个或多个专用硬件输出电路(330、335)。接收输入的专用硬件320、325可具备过滤或快速傅利叶转换功能;提供输出的专用硬件330、335可具备编码、解码、解调或介面功能。实务上,输入及输出的数据串行亦可为直接在串行数据处理器310与外部电路之间传递。
图4A显示了串行数据处理器310的简易功能方块图。串行数据处理器310的核心是串行处理单元(SPU)410。存储器420和串行控制单元(SCU)430用以协助SPU410;SCU430将组态数据提供至SPU410。SPU410的组态可根据不同的SCU方案440、450及460改变,容后详述。
如图4B所示,SCU方案440是指利用一专用微处理器441来配置一个或多个SPU。于一实施例中,可利用存储器420来实现微处理器的存储器,供微处理器441(透过存储器存取路径470)和SPU410存取。由于运算系储存于该存储器中,可由微处理器441或SPU410执行运算,不需要任何数据传输的额外负担(overhead)。因此,微处理器441亦能负担SPU410未提供的处理功能。图4(B)~图4(E)中绘示的组态暂存器444可为一双重缓冲器(double buffer),以利准备SPU410的下一个组态。这种做法可最小化SPU410于连续运作间的闲置时间。
在另一实施例中,SCU方案440可不使用专用微处理器。如图4C所示,一种弹性方案为利用连接至大指令先进先出(FIFO)单元的有限状态机(FSM)442来读取一连串的组态。一连串的组态可被预先决定或即时产生,并由较高阶处理器(例如DSP150或MCU160)依固定时间间隔填入FIFO单元。
图4D呈现了SCU方案440的另一种实施例。此方案利用连接只读存储器(ROM)的有限状态机(FSM)443读取一连串的组态,并将这些组态施加于SPU410。以专用硬件实现的有限状态机可依序配置运算并选择需要的暂存器。
其他SCU方案可为:使用以专用硬件450或可重组硬件460设计的有限状态机来提供所有的组态连续运作。利用有限状态机的方案皆需要由SPU410来执行所有的处理功能。
图4E呈现了SCU方案440的另一实施例,其中的SCU方案440平行使用前述微处理器441、有限状态机442、有限状态机443、专用硬件450及可重组硬件460的组合。其中一种范例是使用多个专用硬件有限状态机450处理平行任务、以专用微处理器441为其他任务提供弹性,并利用配合大指令FIFO的有限状态机442来处理较高阶处理器安排的任务。实务上,必须采用合适的仲裁方案来安排这些SPU的组态。
藉由安排一连串的处理元素运作,SCU430可执行演算法。SCU430亦能同时执行多个不同的演算法并于其间共用SPU410的处理能力。各演算法可被视为一个任务,且可能与其他任务相关。SCU430可利用多工作业来配置同时进行的处理元素运作。用于处理元素配置的仲裁方案可令多个任务共享处理元素资源。FIFO可被用于实现任务间通信。
SPU所处理的串行的数据位元宽度可依应用而设计。这种做法可最小化SPU410及相关存储器420的芯片尺寸。
图5A绘示了SPU410的一种功能方块图范例。此SPU410包含一个或多个处理元素510(0)~510(N-1),各自接收一个或多个输入数据串行。这些输入数据串行是由多工器(Mux)520自存储器420中的数据存储器580(0)~580(M-1)或是一个或多个外部输入数据介面540选择的运算数据。处理元素510提供的一个或多个输出数据串行被传递至多工器550,且随后被写入数据存储器580或输出至一个或多个外部输出数据介面560。对于数据存储器580(0)~580(M-1)的存取是由硬件仲裁器570(0)~570(M-1)控制。
各硬件仲裁器570采用一仲裁方案,以于同时流入或流出的数据串行间共用存储器580(0)~580(M-1)的存取。
输入数据由多工器排程并传递至这些处理元素中的一个接受处理。多工器亦针对将送入数据存储器580(0)~580(M-1)的数据排程。某些处理元素可提供绕路模式,以允许将数据直接传输至数据存储器。
各处理元素510一次能执行一种功能,且系由SCU430独立设定。不同的处理元素能独立运作、平行运作,亦能共用相同的数据存储器580。
图5B及图5C呈现了两种可能的实施例,来说明如何将不同的数据串行映射至数据存储器580(0)~580(M-1)。在图5B的实施例中,各数据串行910被分散为横跨所有的数据存储器。在图5C的实施例中,各数据串行920被提供至单一数据存储器。在这个情况下,SPU及微处理器必须知道存储器的总数量。
实务上,有多种为串行数据分派存储器地址空间的方式,以使数据串行910的分配跨越多个数据存储器580。各存储器地址(MemAddr)加上存储器指标(MemIdx=0,1,M-1)被映射为“数据串行地址空间”中的一个地址(DSAddr)。一种可能性是令DSAddr=MemAddr*M+MemIdx。在这个情况下,地址解码需要除以M;若M为2的次方数,除法可被大幅简化。SPU及微处理器的处理对象可为“数据串行地址空间”,且无须得知存储器的实际数量。SPU处理的数据流量通常会随着M增加,然而这种改良会与采用的处理功能相关。这些读取Rd及写入Wr区块能透过硬件仲裁器同时存取该存储器。各仲裁器是对应于一存储器且采用一种仲裁方案(例如循环制仲裁)。数据存储器的数量为微处理器、Rd区块、Wr区块及处理功能所知。存储器的数量不会影响功能,只影响数据量。
在各数据串行920各自储存于单一存储器580的情况下,必须注意存储器位置,以避免阻塞。由于每次只能存取一个数据串行,若位于相同的存储器中的不同的数据串行被同时要求存取,便可能会发生阻塞情况。阻塞情况限制了系统的数据处理量。
若一专用微处理器被用以配置一SPU,则可直接自该微处理器及SPU存取运算。由于C语言中的运算指标可被直接用以配置SPU,这种做法简化了为该微处理器编写的C语言。这也表示了数据处理可直接由微处理器及SPU执行,省去在多个处理器间传输数据的负担。该微处理器可负责SPU未涵盖的处理功能。该微处理器透过存储器存取路径470进行的存取的权限高于SPU的存取权限。当该微处理器存取数据存储器时,这些SPU存储器仲裁器被停用。
该外部输入数据介面及外部输出数据介面为有弹性的,且允许专用硬件或另一SPU连接输入数据串行,包含连接数据FIFO模块、数据缓冲器(包含直接存储器存取或仲裁后存储器存取),或是任意上述连接间的时间多工。
该串行数据处理器的处理对象为串行。串行系自外部来源传递至串行数据处理器、自串行数据处理器传递至外部接受器,且于串行数据处理器中的内部区块间传递。RVG(Ready/Valid/Go)介面被用于所有外部及内部介面,以自作为传送器的一区块将串行传递至作为接收器的另一区块。
图6呈现了RVG介面的简易功能方块图,用以说明多个接收器及多个传送器可如何连接。图7呈现了RVG介面的典型时序图。只有当所有接收器皆已就绪且所有待送输出数据为正确时,才能进行传输。RVG介面提供了一种连接同步区块的弹性方法。该介面支持连续的单一周期传输。Rdy、Val、Go为必须的控制信号。
发送器提供一输出Data、一正确输出信号Val,并读取一输入信号Go。当有新数据时,发送器启动正确输出信号Val,且于输入信号Go被启动时提供该新数据。输出Data必须保持稳定且正确输出信号Val必须保持为启动,直到输入信号Go被启动。
接收器提供一输出信号Rdy,并读取一输入Data及一输入信号Go。准备好接收新数据时,接收器启动输出信号Rdy,并于输入信号Go为启动时取样数据。输出信号Rdy必须被保持为启动,直到输入信号Go被启动。接收器及发送器在输入信号Go及Rdy/Val输出间不能有组合路径。
连接这些数据端及产生信号Go使接收器及发送器能传输数据。信号Go可藉由透过逻辑及闸结合信号Val和信号Rdy来产生。
图8为处理元素510的功能方块图。该处理元素包含一个或多个处理功能810(0)~810(W-1)、多个读取(Rd)区块820(0)~820(U-1)、多个写入(Wr)区块830(0)~830(V-1),以及多个多工器840。每个处理功能具有一个或多个用以输入数据串行的端,及一个或多个用以输出数据串行的端。各处理功能并不知道数据串行是否在存储器中。可提供相对地址串行给Rd及Wr区块,供其决定串行数据元素的顺序。Rd及Wr区块将一个可配置的起始地址与一相对地址串行相加,以产生一绝对地址串行。Rd区块随后输出该绝对地址串行至数据存储器。Rd区块自存储器读取数据,并将数据串行提供给这些处理功能。Wr区块自这些处理功能接收一数据串行与一相对地址串行。Wr区块随后输出一绝对地址串行至该数据存储器并将数据写入该存储器。这些数据处理功能及Rd/Wr区块透过该处理元素组态介面被配置。
某些处理功能可能只需要非常简单的地址产生。Rd/Wr区块可直接产生绝对地址,略过相对地址介面。
若未被平行使用,处理功能不同的输入数据端能共用Rd区块及Wr区块。对一处理元素来说,Rd/Wr区块及处理功能间的连接通常是固定的。
SCU提供了一独立组态、一独立同步致能及一共同触发给各Rd区块820、Wr区块830及处理功能810。在被致能并触发后,各区块便开始被分配到的工作。若一区块被禁能,则该触发无效。在将被分配到的工作完成后,各区块发布一完成旗标。一旦所有处于致能状态的区块皆发布该完成旗标,SCU会提供新的配置。若某一程序的结果并非下一个程序的输入,两个程序之间的间隔时间可被缩短。当这些Wr区块继续在传输前一个程序的最后几个输出取样时,这些Rd区块便可被触发,进入下一个程序。
Rd区块820自该存储器或一外部输入数据端读取数据,并将一数据串行提供至一处理功能。Rd区块并未分辨有标记或无标记、实数或多数据。不同的处理功能可以不同的方式解译数据串行。Rd区块中的地址产生被配置为具有一起始地址及一地址产生模式。Rd区块在程序的一开始先取样起始地址,并且随后根据地址产生模式,在每次存取后调整该地址。支持的模式包含:增加或减少、相对的(由处理功能提供一相对地址)、固定的(相同的地址被重复读取)及被禁能的(当一数据串行透过外部输入数据介面提供)。
Wr区块830自一处理功能接收一数据串行,并将该数据写入该存储器或外部输出数据端。Wr区块中的地址产生被配置为具有一起始地址及一地址产生模式。Wr区块在程序的一开始先取样起始地址,并且随后根据地址产生模式,在每次存取后调整该地址。支持的模式包含:增加、减少、相对及固定。
各硬件仲裁器570协调了同时发生的数据串行间的存储器存取。每个周期中只能发生一次存储器存取。一般而言,只会有某些同时发生的数据串行在每个周期都需要存取。Rd区块及Wr区块为地址串行及数据串行提供缓冲效果。此做法能缓和流入系统的数据流并减少存储器仲裁造成的数据量限制。
处理功能通常不储存各程序之间的状态资讯。处理功能的典型范例为FFT/IFFT、向量及矩阵运算、排序及过滤。
各处理功能具有一同步致能及一触发输入端。当致能信号为‘0’时,处理功能被停止,且触发输入信号为无效的。当致能信号为‘1’且触发输入信号中出现脉冲时,处理功能开始运作。
处理功能读取一个或多个输入数据串行。各数据串行透过一个独立的RVG介面提供且连接至一个独立的Rd区块。若数据总是同时被呼叫,数据串行的‘Ready’及‘Go’控制信号可结合。
针对各输入数据串行,处理功能可提供一个独立的相对读取地址。由于存储器仲裁会造成延迟,Rd区块会在相对读取地址的数个周期之后才提供数据。处理方式为针对地址及数据采用多个独立的RVG介面。多数处理功能不需要产生相对地址,除非处理功能需要依Rd区块未支持的特定次序读取输入数据。
该处理功能产生一个或多个输出数据串行。各数据串行透过一独立的RVG介面被提供,且被连接至一独立的Wr区块。输出数据和选择性的相对地址透过一RVG介面同时提供。多数处理功能不需要产生相对地址,除非处理功能需要依Wr区块未支持的特定次序写入输入数据。
SPU能缓冲FIFO中的外部输入数据,FIFO的大小为可配置的,且只要FIFO未完全满载便会产生新地址。该完全满载状态为可配置的。此方案允许单一循环数据传输,虽然发送器在读取地址及供应数据的时间点之间可能会有延迟。一种范例是一数据缓冲器加上受仲裁的存储器。
藉由以上较佳具体实施例的详述,希望能更加清楚描述本发明的特征与精神,而并非以上述所揭示的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的专利范围的范畴内。
Claims (12)
1.一种串行数据处理器,包含:
一个或多个串行输入介面;
一个或多个串行输出介面;
一个或多个存储器;
一个或多个串行处理单元,用以执行多个数据处理程序;以及
一串行控制单元,用以排列该多个数据处理程序。
2.如权利要求1所述的串行数据处理器,其特征在于,该串行控制单元包含:
一个或多个处理元素组态介面,连接该一个或多个串行处理单元;
一个或多个顶层组态介面,连接至少一较高阶处理器;以及
一有限状态机,用以藉由排列该多个数据处理程序以执行一任务。
3.如权利要求1所述的串行数据处理器,其特征在于,该串行控制单元包含:
一个或多个处理元素组态介面,连接该一个或多个串行处理单元;
一个或多个顶层组态介面,连接至少一高阶处理器;以及
多个有限状态机,被配置用来执行多个独立任务。
4.如权利要求1所述的串行数据处理器,其特征在于,该串行控制单元包含:
一个或多个处理元素组态介面,连接该一个或多个串行处理单元;
一个或多个顶层组态介面,连接至少一高阶处理器;以及
一组态暂存器,接收一专用微处理器提供的多个组态序列。
5.如权利要求1所述的串行数据处理器,其特征在于,该串行控制单元包含:
一个或多个处理元素组态介面,连接该一个或多个串行处理单元;
一个或多个顶层组态介面,连接至少一高阶处理器;以及
一组态暂存器,接收一有限状态机提供的一输出,该有限状态机所连接的一先进先出单元储存有被定期更新的多个组态序列。
6.如权利要求1所述的串行数据处理器,其特征在于,该串行控制单元包含:
一个或多个处理元素组态介面,连接该一个或多个串行处理单元;
一个或多个顶层组态介面,连接至少一高阶处理器;以及
一组态暂存器,接收一有限状态机提供的一输出,该有限状态机所连接的一只读存储器中储存有被预先决定的多个组态序列。
7.如权利要求1所述的串行数据处理器,其特征在于,该串行处理单元包含:
一个或多个存储器介面,各自包含一存储器仲裁单元;
一个或多个处理元素,用以执行该多个数据处理程序,各处理元素对应于一处理元素组态介面;
一串行输入多工器;以及
一串行输出多工器。
8.如权利要求7所述的串行数据处理器,其特征在于,各存储器仲裁单元用以仲裁同时发生的多个数据串行所要求的多个存储器存取,同时发生的该多个数据串行流入或流出这些相关存储器,其中该串行输入多工器安排一个或多个同时发生的该多数据串行自该一个或多个串行输入介面及自该一个或多个存储器仲裁单元传递至该一个或多个处理元素,并且随后自该一个或多个处理元素传递至该一个或多个串行输出介面及至该一个或多个存储器仲裁单元。
9.如权利要求7所述的串行数据处理器,其特征在于,各处理元素包含:
一个或多个处理功能,用以执行多个数据串行程序;
一个或多个读取区块,用以藉由执行一连串的读取程序,产生多个处理功能输入数据串行;以及
一个或多个写入区块,用以藉由执行一连串的写入程序,产生多个处理功能输出数据串行。
10.如权利要求9所述的串行数据处理器,其特征在于,各处理功能包含:
一个或多个串行输入数据介面;
一个或多个串行输出介面;以及
一可配置的串行程序。
11.如权利要求10所述的串行数据处理器,其特征在于,各输入串行介面及输出串行介面分别包含一相对地址串行介面,各相对地址串行介面具有一相对地址产生器。
12.如权利要求1所述的串行数据处理器,其特征在于,各存储器具有一位元宽度,该位元宽度针对该串行数据处理器设计。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP12190919.6A EP2728491A1 (en) | 2012-10-31 | 2012-10-31 | Stream Data Processor |
EP12190919.6 | 2012-10-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103793340A true CN103793340A (zh) | 2014-05-14 |
CN103793340B CN103793340B (zh) | 2017-03-01 |
Family
ID=47148629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310470623.0A Expired - Fee Related CN103793340B (zh) | 2012-10-31 | 2013-10-10 | 串行数据处理器 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2728491A1 (zh) |
CN (1) | CN103793340B (zh) |
TW (1) | TWI533210B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111106849A (zh) * | 2019-12-27 | 2020-05-05 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种信号处理装置及信号处理方法 |
TWI708149B (zh) * | 2018-11-28 | 2020-10-21 | 聚晶半導體股份有限公司 | 介面傳輸模組以及信號傳輸方法 |
TWI761008B (zh) * | 2020-12-30 | 2022-04-11 | 新唐科技股份有限公司 | 可編程串列輸入輸出控制器、操作系統及方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3001307B1 (en) | 2014-09-25 | 2019-11-13 | Intel Corporation | Bit shuffle processors, methods, systems, and instructions |
GB2545718A (en) * | 2015-12-23 | 2017-06-28 | Nordic Semiconductor Asa | Radio transceivers |
US11055141B2 (en) * | 2019-07-08 | 2021-07-06 | SambaNova Systems, Inc. | Quiesce reconfigurable data processor |
TWI735199B (zh) * | 2020-04-08 | 2021-08-01 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
CN119201796A (zh) | 2020-04-08 | 2024-12-27 | 慧荣科技股份有限公司 | 物理层的数据流切割装置及方法 |
TWI818274B (zh) * | 2020-04-08 | 2023-10-11 | 慧榮科技股份有限公司 | 實體層的資料串流切割裝置及方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1586063A (zh) * | 2002-04-02 | 2005-02-23 | 松下电器产业株式会社 | 流数据处理器、流数据处理方法、程序和媒体 |
CN1679281A (zh) * | 2002-08-24 | 2005-10-05 | 思科技术公司 | 分组处理引擎 |
US20060161696A1 (en) * | 2004-12-22 | 2006-07-20 | Nec Electronics Corporation | Stream processor and information processing apparatus |
US20060242617A1 (en) * | 2005-04-20 | 2006-10-26 | Nikos Bellas | Automatic generation of streaming processor architectures |
US20060277545A1 (en) * | 2005-06-03 | 2006-12-07 | Nec Electronics Corporation | Stream processor including DMA controller used in data processing apparatus |
-
2012
- 2012-10-31 EP EP12190919.6A patent/EP2728491A1/en not_active Withdrawn
-
2013
- 2013-09-18 TW TW102133996A patent/TWI533210B/zh not_active IP Right Cessation
- 2013-10-10 CN CN201310470623.0A patent/CN103793340B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1586063A (zh) * | 2002-04-02 | 2005-02-23 | 松下电器产业株式会社 | 流数据处理器、流数据处理方法、程序和媒体 |
CN1679281A (zh) * | 2002-08-24 | 2005-10-05 | 思科技术公司 | 分组处理引擎 |
US20060161696A1 (en) * | 2004-12-22 | 2006-07-20 | Nec Electronics Corporation | Stream processor and information processing apparatus |
US20060242617A1 (en) * | 2005-04-20 | 2006-10-26 | Nikos Bellas | Automatic generation of streaming processor architectures |
US20060277545A1 (en) * | 2005-06-03 | 2006-12-07 | Nec Electronics Corporation | Stream processor including DMA controller used in data processing apparatus |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI708149B (zh) * | 2018-11-28 | 2020-10-21 | 聚晶半導體股份有限公司 | 介面傳輸模組以及信號傳輸方法 |
CN111106849A (zh) * | 2019-12-27 | 2020-05-05 | 中科院计算技术研究所南京移动通信与计算创新研究院 | 一种信号处理装置及信号处理方法 |
TWI761008B (zh) * | 2020-12-30 | 2022-04-11 | 新唐科技股份有限公司 | 可編程串列輸入輸出控制器、操作系統及方法 |
CN114691582A (zh) * | 2020-12-30 | 2022-07-01 | 新唐科技股份有限公司 | 可编程串列输入输出控制器、操作系统及方法 |
US11615049B2 (en) | 2020-12-30 | 2023-03-28 | Nuvoton Technology Corporation | Programmable serial input-output controller, operation system and method |
CN114691582B (zh) * | 2020-12-30 | 2023-07-28 | 新唐科技股份有限公司 | 可编程串列输入输出控制器、操作系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2728491A1 (en) | 2014-05-07 |
CN103793340B (zh) | 2017-03-01 |
TWI533210B (zh) | 2016-05-11 |
TW201416973A (zh) | 2014-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103793340A (zh) | 串行数据处理器 | |
CN109213723B (zh) | 一种用于数据流图处理的处理器、方法、设备、及一种非暂时性机器可读介质 | |
US9195610B2 (en) | Transaction info bypass for nodes coupled to an interconnect fabric | |
CN111274025B (zh) | 用于在ssd中加速数据处理的系统和方法 | |
US6594713B1 (en) | Hub interface unit and application unit interfaces for expanded direct memory access processor | |
CN114503072A (zh) | 用于向量中的区的排序的方法及设备 | |
US9201828B2 (en) | Memory interconnect network architecture for vector processor | |
ES2300633T3 (es) | Coprocesador canalizado. | |
US9448967B2 (en) | Stream data processor | |
US6839831B2 (en) | Data processing apparatus with register file bypass | |
US6754809B1 (en) | Data processing apparatus with indirect register file access | |
WO2012068494A2 (en) | Context switch method and apparatus | |
EP1512100A2 (en) | A scalar/vector processor | |
CN117194311A (zh) | 存储器网络处理器 | |
JP7377811B2 (ja) | 集積回路のためのデータ処理エンジンタイルアーキテクチャ | |
US20080059764A1 (en) | Integral parallel machine | |
EP1849083A2 (en) | System and method for a memory with combined line and word access | |
US6694385B1 (en) | Configuration bus reconfigurable/reprogrammable interface for expanded direct memory access processor | |
EP2132645B1 (en) | A data transfer network and control apparatus for a system with an array of processing elements each either self- or common controlled | |
WO2014202825A1 (en) | Microprocessor apparatus | |
WO2022063269A1 (en) | Method and apparatus for configurable hardware accelerator | |
US20160162290A1 (en) | Processor with Polymorphic Instruction Set Architecture | |
US20230153114A1 (en) | Data processing system having distrubuted registers | |
US12242853B1 (en) | Configurable vector compute engine | |
US12271732B1 (en) | Configuration of a deep vector engine using an opcode table, control table, and datapath table |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170301 Termination date: 20191010 |