交换装置的制作方法

文档序号:7946335阅读:314来源:国知局
专利名称:交换装置的制作方法
技术领域
本发明涉及交换装置,特别涉及容纳多个接口点、根据从各接口点的输入端口输入的ATM(异步传递方式)信元的题头信息把该ATM信元向所希望的接口点的输出端口转移的交换装置。
背景技术
以往,作为针对传递/交换技术的高速化技术,人们把注意力集中于ATM技术。ATM是针对把全部信息荷载于称之为信元的固定长短的信息包中转移,来进行信息包交换的硬件安装,而把容易进行高速的信息传送/交换为目标的技术。为了实现用这种方式进行信息通信的ATM通信网,就必须有一个根据来自某传送通路的信元的题头信息把该信元向所希望的传送通路进行转换的交换装置。
然而,原来的交换装置中存在如下问题,例如本发明人在美国专利US5,274,641中展示的原来的交换装置的情况下,沿通话话路的数据流配备有实现物理层功能、ATM层功能的专用硬件。这些串连的专用硬件系列对各个从全段硬件传送来的数据串进行处理,从而按所谓流水线方式进行物理层、ATM层处理,在这样构成的交换装置的情况下,为了用专用的硬件实现各自的每种层功能就要提高其总处理能力。但是,各自的每个层都要实现专用的硬件就存在成本变高的问题。特别是近年来人们把注意力集中于将ATM技术作为ATM-LAN用于接入对存在于较适宜的窄范围的终端提供取决于ATM信元的传送能力的通信系统和低输入PC等的ATM通信网,今后在扩大市场规模和予测市场规模时,例如为了适用于6.3Mbps、20Mbps接口即所谓低速接口,其成本将高得难以承受。
而且,由硬件决定的功能的规格变换的灵活性很差,虽然目前ITU-T(国际电信联盟)正在极力推行ATM通信网规格的标准化,但是还不能说已经完全固定下来,新的规格也还在层出不穷地推出来。
在这种状态下,在把各层功能硬件化时,每次规格变换必定提出新的规格,都必须产生实现这些规格的硬件,其结果,由于必须设计多种硬件,就把成本抬得更高。

发明内容
本发明的目的在于提供成本低的交换装置。
本发明的其他目的在于提供可以灵活地适应规格变换且能快捷地适应于新规格的交换装置。
按照本发明的交换装置,包括输入端口,具有接收构成ATM单元有关的信息数据的位串、并临时性保持该位串的输入FIFO存储器;按顺序进行帧同步处理和信元同步处理的处理器,所述帧同步处理通过参照所述输入FIFO存储器、在存储于该输入FIFO存储器的位串中检索表示帧开端的位特征,并核对该位特征是否存在于帧长的开头,所述信元同步处理先找到输入的位串中表示帧开端的位特征,并在该位特征按帧长的间隔顺序出现时、从该位特征最能够确认信元开端,和按信元单位进行信息数据的处理;以及输出端口,具有临时性存储由所述处理器作成的指示信元流的目标文件的信息、并将其输出的输出FIFO存储器器。
因此,由于削减了通话处理功能所必要的硬件量,从而可以实现低成本的交换装置。而且,由于把序列发生器的动作作成可编程的,所以可以灵活地适应规格变换和新的规格。
用原来技术的交换装置,物理层处理、ATM层处理都是把通话话路的位串源源不断地送到流水线中,通过流水线流畅地转换这些位串。对此,用本发明的交换装置,由于内部执行的处理是按多重时间分割来实现的,所以,通路话路的位串一旦存储在序列发生器外设的存储器中,序列发生器就对该存储单元采取用ALU把层处理按顺序实施下去的手段,此时,如果予定量的通话话路的位串被存储在序列发生器外设的存储器中时,也可以起动各种层处理程序。
在优选的实施例中,ALU和序列发生器中挪用了廉低的微处理器,在序列发生器中进行多重时间分割的各层功能间的用户信息转移时,由于使用指向该存储器的指示符,所以,能大大地提高本发明的交换装置的处理速度。
而且,用ALU和序列发生器不仅能实现各层所必要的功能,而且监视这些功能是否正常动作的OAM程序也可以实现多重时间分割。


图1是本发明一个实施例的交换装置的构成图。
图2是具有处理器交换处理插件的交换装置的整体构成图。
图3是实施例中的接口构成图。
图4是接收方通话话路数据输入格式。
图5是接收方通话话路帧同步处理的流程图。
图6是接收方通话话路信元同步处理的流程图。
图7是原来的信元同步处理的流程图。
图8是寻线状态下每移动了一个字节的信元同步处理的流程图。
图9是一次读出数据D1~D4的情况下的信元同步处理的流程图。
图10是信元同步运算的说明图。
图11是与图10的r[1]有关的信元同步运算的详细说明图。
图12是接收方ATM层处理器的简要构成图。
图13是接收方ATM层处理流程图。
图14是发送方通话话路处理子程序的分界说明图。
图15是发送方通话话路物理层处理的流程图。
图16是数据译码处理流程图。
图17是本发明其他实施例的ATM交换装置的构成示意图。
图18是命令流水线的构成图。
图19是该交换装置接收方的主要部分构成及数据流程图。
图20是该交换装置发送方的主要部分的构成及数据流程图。
图21是该交换装置接收方的处理定时图。
图22是该交换装置发送方的处理定时图。
图23是处理的优先度分配图。
图24是处理的优先度分配图。
图25是处理器交换处理插件中的处理流程的另一例。
具体实施例方式
参照图1说明本发明的第1实施例。
按照图1所示的交换装置,在硬件化了的信元开关103的各端口上连接有进行信元题头以外的直到物理层处理的处理器102-1~102-n,采用这种方式就能更便宜地接收采用较单纯的帧结构作为物理层的帧结构的接口点,而且,因为用硬件化了的信元开关进行信元交换,就可以提供通过量大的交换装置。
也就是说,按照图1所示的交换装置,在硬件化的信元开关103和接口点101-1,…101-n之间配置有分别对应于接口点1,…m的接口点接收电路101-1,…101-n和接口处理器102-1,…102-n。
接口点接收电路101-1,…101-n接收来自接口点1,…n的位串,把该位串变形成为可以由接口处理器102-1,…102-n接收的形式,同时接收来自接口处理器1021,…102n的位串,把该位串变形成为可以送到接口点1,…,n的形式。接口处理器102-1,…102-n接收来自接口点接收电路101-1,…,101n的位串并把那些位串变形成为能送到ATM开关103的信元串,同时把从信元开关103收到的信元串变形成为能送到接口点接收电路101-1,…101-n的位串。
接口点接收电路101-1,…101-n由接收来自接口点1,…,n的位串并进行电平变换等处理的线路接收器11011、参照来自线路接收器11011的输出而从该输出中提取对位串进行取样的时钟的时钟提取器11012、输入FIFO(先入先出)存储器11013、输出FIFO(先入先出)存储器11014和线路驱动器11015构成。其中输入FIFO存储器11013根据来自时钟提取器11012的时钟对来自线路接收器11011的位串进行取样并一次性存储起来,同时根据来自接口处理器102-1,…,102-n的参照把所存储的位串按FIFO规则送出去,输出FIFO存储器11014把接口处理器102-1,…102-n送出的位串一次性存储起来,同时,响应于由时钟提取器11012提取的时钟把所存储的位串按FIFO规则送出去;线路驱动器11015对输出FIFO存储器11014送出的位串在接口点进行电平变换等的处理。
另一方面,接口处理器102-1,…,102-n由处理器11021、附属于处理器11021的超高速缓冲存储器及MMU11022、附属于处理器11021的主存储器11023、第1信元FIFO存储器11024和第2信元FIFO存储器11025构成。其中处理器11021提供该接口处理器的处理能力;第1信元FIFO存储器11024一次性存储由处理器11021的处理得到的转移到信元开关103的信元串;第2信元FIFO存储器11025一次性存储来自信元开关103的信元串直到来自处理器11021的参照为止。
硬件化的信元开关103根据附加在信元串中的信元上的路由标记切换由上述接口处理器102-1,…,102-n送来的信元串。
以下详细说明图1中所示的实施例的交换装置的动作。
从接口点输入的位串由线路接收器11011交换为交换装置内部电平的同时,时钟提取器11012提取出对该位串取样用的时钟。输入FIFO存储器11013用时钟提取器11012提取的时钟对线路接收器11011的输出取样,准备来自处理器11021的基准并把位串一次性存储起来。
从处理器11021看,输入FIFO存储器11013就成了一个输入端口,处理器11021一面定期参照输入FIFO存储器11013进行下述的帧同步和信元同步操作,一面由存储在输入FIFO存储器11013中的位串形成信元。也就是说,对于输入FIFO存储器11013输入的位串,处理器11021首先进行确立如下的帧同步处理。
从被输入的位串中检索表示帧开端的位组合格式,如果发现表示帧开端的位特征,就确认帧长开头处存在位特征,这时,如果没有发现位特征,由于见不到帧开端,也可以废弃输入的位串。
一旦在输入的位串中找到表示帧开端的位特征,并确认该位特征处在帧长度方向的中间且顺次出现,接着处理器11021就从该位特征中寻找信元开端并进行信元同步。如ITU-T标准I.432中规定的那样,这种操作是在连续输入的4个字节的位串中进行预定的运算。运算结果判断是否与接着的一个字节一致,如果一致的话,那4个字节是信元题头,一致的一个字节是HEC,接着的48字节是信元的信息部分。这种操作的结果可以就输入的位串认识信元的开头,从而可以按信元单位进行处理。与帧同步相同,有关信元同步,在信元同步来确立期间也可以废弃输入的位串。
在确立信元同步时,处理器11021按顺序把信元重现到内装的寄存器上。然后,处理器11021参照内装寄存器上的信元的VPI/VCI,进一步参照设置在主存储器11023上的路由标志选择表,得到表示转移该信元的终点局的输出端口号码和输出端口处的新VPI/VCI。而且,首先把根据信元开关103的结构格式从输出端口号码计算出来的路由标志送到第1信元FIFO存储器11024,接着把从路由标志选择表得到的新的VPI/VCI送往第1信元FIFO存储器11024,然后按顺序输出被输入的信元的PTI/CLP/HCE/信息部分。就这样,在信元开关103上经交换处理的信元串被顺次输入到第1信元FIFO存储器11024上。
信元开关103周期性地参照第1信元FIFO存储器11024,信元FIFO存储器11024一面存储信元一面收受该信元并根据附加在该信元上的路由标志把它转移到所希望的输出端口。在此,信元开关103参照第1信元FIFO存储器11024时,如果信元FIFO存储器11024未存储信元,信元FIFO存储器11024也可以送出空信元。
由信元开关103切换的信元被转移到第2信元FIFO存储器11025,并被一次性存储起来。如果该第2信元FIFO存储器上由信元开关103转移来了空信元的话,那么最好把该空信元也存储起来。
处理器11021定期参照第2信元FIFO存储器11025,并把存在信元FIFO存储器内的信元存入内装的寄存器内,然后,处理器11021把路由标志从该信元中除掉,再计算该信元的HEC,把它与旧的HEC调换。
处理器11021一旦完成以上的动作,就对输出FIFO存储器11014输出该信元。这时,按一定间隔把帧同步所必要的位特征插入到信元中。就这样,把送到接口点的位串顺次写入到了输出FIFO存储器11014。
输出FIFO存储器11014的输出部同步于时钟提取器11012提取的时钟,把被存储的位串送出去。从输出FIFO存储器11014送出的位串输入到线路驱动器11015,在这里变换成接口点的电平后,送往接口点。
按照本实施例,输入FIFO存储器11013和输出FIFO存储器11014的功能可以吸收处理器11021执行的处理的处理时间的变动,从而可以按予定的速度从接口点输入信息并向接口点输出信息。
而且,虽然通信网是多个交换装置结合而构成,但这时,所谓网同步是构成通信网的全部交换装置的动作时钟的频率严格地吻合于唯一的振荡器的频率。如果在确立纲同步之前帧同步或是信元同步周期性地偏离的话,通信网整体的动作会不稳定。
在图1的交换装置中,因为按照从对置的交换装置作成的位串中提取的时钟来进行从输出FIFO的数据提取,所以向接口点的数据输出就进行得与对置交换装置的动作时钟的频率相一致。这种情况下,图1的交换装置本身就不是网同步的主体,为了适应自身成为网同步主体的情况,除了与接收方FIFO重现的时钟同步地向接口点发送位串的功能之外,也可以具有与自身作成的时钟同步地向接口点发送的功能。另外,此时也可以具有使自己本身的动作时钟的频率符合于自身具有的时钟提取功能群内予定的一个频率的功能。这种功能可以用称之为PLL的公知手段来实现。
下面,参照图2按照流程笼统地说明在本实施例的交换装置中接收到的数据在被发送之前要进行怎样的处理。
图2表示本实施例的交换装置中的各接收方接口部位和各发送方接口部位的处理流程图。
在本交换装置中执行的处理由通话话路处理101和OAM(操作和维护)处理102构成。
通话话路处理101又由两种处理构成,即接收方通话话路处理和发送方通话话路处理。其中接收方通话话路处理是先经过接收方输入部接收来自接收线路的数据,再对它按顺序进行物理层处理和ATM层处理,然后通过接收方输出部向ATM开关103输出;发送方通话话路处理是先通过发送方输入部收取来自ATM开关103的数据,再按顺序对它进行ATM层处理和物理层处理,然后经由发送方输出部向发送线路输出。
接收方通话话路处理慨述如下在接收方输入部中,从接收到的信号中提取网时钟的同时达到位同步,再把信号变换成位表示的数据串,到此为止的处理假想都不是用软件而是用硬件来实现的。
经过线路译码121、帧同步122、信元同步123、和信元有用荷载部分的译码124等物理层处理后,从这个位串中抽取ATM信元。此后,作为ATM层处理,要进行题头变换125、附加开关内路由用的路由标志126、流量监视127的处理,然后经由接收方的输出部(信元FIFO 11024)把信元送到ATM信元开关103。
另一方面,发送方通话话路处理程序慨述如下在发送方,先通过发送输入部把ATM信元开关103交换处理过的信元转移到发送通话话路处理器,在该信元数据上进行作为ATM层处理的流量监视137、除去路由标志136、题头变换135等处理。进一步作为物理层处理在该信元数据上进行信元有用荷载部分的编码134、信元题头的HEC字段生成133、帧形成132和线路编码131等处理,然后,通过发送输出部向发送线路输出位数据。
下面,分接收方通话话路处理和发送方通话话路处理详细说明对数据进行这些通话话路处理步骤的各程序,该数据是根据ITU-TS推荐G.804把根据ITU-TS推荐I.432的信元变换成TTC标准JT-G.703-a的帧的数据。另外,最好用C语言等的高级语言来记述各程序。
首先说明构成接收方通话话路处理的各子程序及其细节。
(关于子程序的划界)用软件对数据进行多种处理时,因为不能同时进行这些处理,先把数据分成适当的大小,再按顺序对其一进行多种处理,一系列的处理结束时再对下一个数据进行那些处理。以下,根据图3来说明对某数据群进行的各子程度的流程和它的时间数据及指示符之类有效信元等的信息流程。图3上的粗箭头表示数据流向,用P表示的细箭头表示指示符的流向。
首先,在接收方的输入部中,把被变换成为位表示的数据串并存储在接收方输入FIFO(未示出)内的接收数据,作成为某决定量的数据群,再由接收数据输入子程序203写入CPU内部的存储器上的帧数据收纳缓冲器209内。这个子程序203把指示数据已经写入存储器的哪个位置的指示符转移到下一个子程序即帧同步子程序204。
收受数据输入子程序203的帧同步子程序204只读取帧数据接收缓冲器209上的数据的必要部分,总之,在没有完全提取帧同步的状态下,从数据开关按顺序读取全部数据,进行检查,从建立起帧同步开始就只读取帧同步位的部分,对其进行确认。由帧同步所得到的帧同步位的位置信息等被转移到下一个子程序,即信元同步子程序205。
信元同步子程序205读取从帧同步子程序204收到的信息,仍然只读取帧数据接收缓冲器209上的数据的必要部分来进行信元同步等手续。总之,在未达到信元同步的时候,从头按顺序全部读取数据中的信元数据部分,来检索信元的题头,从信元同步确立开始只读取信元的题头部分,来进行其错误的检出和纠正。进一步,从信元同步确立开始,读取的数据把题头的4个字节汇总成一个字重新把存储器上的信元题头写入集中了信元题头的接收缓冲器210中。
在信元同步子程序204以后有译码和ATM层处理两个子程序。
来自信元同步子程序204的帧数据接收缓冲器209上的数据内的信元个数和起始位置等的有效无效信息被转移到译码子程序206,根据这个信息读取帧数据接收缓冲器209上的信元的有用荷载部分。在读出的数据上进行译码处理,然后对每个信元把译码后的数据写入信元有效荷载接收缓冲器212上。
另一方面,题头接收缓冲器的位置和所接收的题头的个数的信息转移到ATM层子程序287,根据该信息读取信元题头接收缓冲器210上的信元题头。在读取的题头上附加流量监视、路由标志,并进行数据换写等处理,再把新的题头写入到带有路由标志题头接收缓冲器211中(带RF的题头接收缓冲器)。
信元有效荷载的位置和带路由标志的题头的位置等从两个子程序206,207转移到最后的接收数据输出的子程序208。同时,由数据输出子程序208合成信元数据后进行输出。
如图1所示,输出的信元数据被一次性存储在通向信元开关103的信元FIFO11024上,信元开关103按接收信元的速度从FIFO11024依次读出数据。
由于采取了这样的子程序构成,就可以做到在各子程序之间不进行无效数据的转移,而且可以减少对CPU大负荷的数据荷载及存储次数,从而可以实现高速化。
而且,像这样使各子程序分离而独立、数据置于另外的存储器中、把指示器等作成可转移的结构,从而也能容易地用硬件来替换各子程序。例如帧同步之前的处理用硬件进行,其后的处理用软件进行、或者译码之前的处理用硬件进行等等可以比较灵活地选择。
下面更详细说明各步骤和子程序。
(接收方输入部分)在接收方通话话路数据输入部在时钟提取电路上用从数据本身提取的时钟把由通话线路输入的数据装入内部寄存器(未示出),再在串行并行变换器中进行串行-并行变换之后存储于通话线路输入FIFO。
(接收数据输入子程序203)用于本实施例的TTC标准JT-G.703-a的帧结构中,可以在由4个789比特的帧构成的一个复合帧上采用一次帧同步。由CPU对接收的数据进行的处理(各子程序),就是把这种复合帧的8份数据也就是说25248比特、789字的数据作为一个单位(当然这个数用其他值也行)。这时,即使一个复合帧中出现的两个帧同步信号跨在纳入的数据之间也能确认出来,而且可以读到包含数据的789字的最后一位的信元的最末位,这样,一次纳入帧数据接收缓冲器209的数据量就作成带有下次读取的789字的数据的头25个字的814字。总之,如图4所示,把输入的串行数据每789字分割为一组,在其前后数据间重复读取25个字的数据。以下,把一次读取的814字的数据称之为数据块。
数据输入子程序203把该数据块写入帧数据接收缓冲器209,并把那个缓冲器的位置通知其他子程序。
(帧同步子程序204)对于帧数据接收缓冲器209中接收的数据块首先进行帧同步,然后明确帧比特、用户信息转移区域的位置及那一帧是否有效。定义几个变量,以便在接下来进行的信元同步及对于下一次的数据块的帧同步的子程序内可以使用帧同步的结果以及其他信息。这些变量有三个,即帧同步状态显示变量、有效帧开始显示变量和帧同步信号开始显示变量。
帧同步状态显示变量的值表示帧同步的状态以及具有错误的帧比特的帧连到达的个数等等。帧同步状态显示变量的值如果变为-4,那么就是帧同步完全未达到;-3~-1是为确立帧同步确认3个连续的正确帧同步信号的状态(其绝对值表示达到同步状态之后必须确认几个正确同步信号);0~6是确立了帧同步的状态(其值表示具有连续接收到错误同步信号的帧数)。
有效帧开始显示变量表示由帧同步判明的有效帧的起始点,对该值以后的数据进行信元同步处理。该值如果是零,就认为全部数据有效,该值若为26049则判定全部数据无效。
帧同步信号开始显示变量代表校验帧同步信号到何处为止,该值如果超过25248就把那个值减去25248得到的值作为新的帧同步信号开始显示变量,从而结束帧同步子程序。这个被换上的帧同步信号显示变量代表必须开始对下一个数据块的帧同步的起始点。
下面根据图5说明实际的帧同步子程序204。当新的数据块被写入帧数据接收缓冲器内时,可以由这时的帧同步状态显示变量的值知道前一个数据块中的帧同步状态最后处于哪个状态。
当帧同步状态显示变量的值是-4时,对这个新的数据进行每比特的帧比特同步特征检索501,也就是说,从帧数据接收缓冲器209上的数据的最前面开始按顺序读取每一个字的数据,对于那个数据进行帧比特的同步特性的检索。
如果同步特征在两处帧比特中都被正确地确认,帧同步状态显示变量进1,把检索转移到下一个复合帧,并在该位置转入确认存在两个同步特征的前同步处理状态502。进行这种确认时,只读取帧数据接收缓冲器209的必要数据,如果有正确的同步特征,再把帧同步状态显示变量进1,并进行下一个复合帧的同步特征的确认。但是在检出错误的同步特征时,就设定帧同步状态显示变量为-4,并返回到每比特的检索501。
连续三次检出正确的同步特征而确立了帧同步的情况下,就把这一帧开端的比特数设定为有效帧开始显示变量,并进入同步状态503。此时,帧同步状态显示变量成为零。
在同步状态503,对数据内全部复合帧检查在帧比特中是否存在正确的同步特征,检出不正确的复合帧时,帧同步状态显示变量进1,另一方面,正确的帧到来时始终把帧同步状态显示变量设定为零。但是,如果变量达到了7的话,就再把变量设定为-4,把有效帧起始显示变量设定为表示帧的最末尾的26049,并把程序返回到比特单位的帧比特同步特征检索状态。
在这些步序进行到帧同步信号起始显示变量超过数据块的第789字的地方,从那时的帧同步信号起始显示变量的值中减去25248(步骤504),结束帧同步子程序204。
(信元同步子程序205)
由于进行了帧同步处理,可以识别帧数据收纳缓冲器209上的数据中的信元信息的区域以及信元数据的字节单位的同步。在此,接下来对那个信元信息所在的区域内的数据进行信元同步,明确信元题头的位置和信元荷载的位置,并且进行题头部分的纠错和检出。
为了能在接下来进行的译码以及对下一次数据块的信元同步子程序中使用信元同步的结果和其他信息,定义几个变量。即信元同步状态显示变量、同步信元数、同步信元首位排列、信元首位和无效信元显示排列等。
与帧同步时一样,信元同步状态显示变量表示信元同步的状态以及错误信元题头到达的个数。信元同步状态显示变量值如果是-7,表示完全未达到信元同步的状态(寻线状态);-6~01正在表示确认信元同步的6个连续正确的信元题头的状态(前同步状态);0表示正在确立信元同步、题头纠错模式;1~6表示正在确立信元同步而检出题头错误的检出模式。前同步状态下的信元同步状态显示变量的值代表达到同步状态所必要的正确的信元个数,而在同步状态的题头错误检出模式下,信元同步状态显示变量的值代表具有被连续观测到的错误题头的信元个数。
同步信元数表示数据块中达到信元同步的部分内存在的信元的总数;同步信元首位排列表示各信元的首位。当信元同步进行下去的时候,信元首位始终表示所针对的那个信元的开始位,信元同步进行到包含数据块的第789字的字的最后一位的信元为止。也就是说,在信元首位超过25248的时间点上结束信元同步子程序。这时,把最后的信元首位的值减去25248得到的值作为下一次的数据块中的信元同步必须开始的信元的首位,并作为新的信元首位存储起来。
无效信元显示排列表示由于上述的同步信元之中的题头错误而导致无效的信元是第几个信元。
下面根据图6来说明实际的信元同步子程序205。
一旦新纳入帧数据接收缓冲器209的数据块的帧同步结束,就接着起动信元同步子程序205。
来自帧同步子程序204的有效帧开始显示变量的值是26049时,判断为该数据块中不包含有效帧(步骤600a),信元同步子程序205设定信元同步状态显示变量的值为-7,并结束处理。
但是,有效帧开始显示变量的值为零时,判定该数据块的帧全部有效(步骤600b),所以,依据前次的信元同步子程序205中的最后的同步状态显示变量的值的状态开始处理。
前次的信元同步子程序205在前同步状态602及同步状态603下结束的情况下,把来自前次的信元同步子程序205的信元首位的数据从帧数据接收缓冲器209中读出来,对这个数据进行信元同步处理。
在寻找状态601的情况下,从有效帧的开端读取每个字的数据,再随着帧同步建立的字节同步来检索信元的题头。另外,如果有效帧开始显示变量的值落在数据块中途的帧上,就从该帧的数据开始进行寻找下的状态处理。若在寻找状态601上,发现正确的信元题头部分的情况下,就把信元同步状态显示变量的值设定为-6,并进入前同步状态602。
在前同步状态602,每个信元周期都确认题头,如果能确认出正确题头,信元同步状态显示变量进1;若检出错误题头,就把信元同步状态变量设定为-7;并把状态改变为寻找状态。连续确认6个正确的题头,而使信元同步状态变量变为0时,就进入同步状态纠错模式603。
在同步状态纠错模式603中,按照信元周期进行信元题头的确认,同时增加同步信元数的值,再把该信元的首位记录为表示同步信元首位排列的当时的同步信元数的值的要素,并且把信元题头存储在题头接收缓冲器209中。如果观测到错误的信元题头,这时仍然也把同步信元数的值加1,并在同步信元首位排列中作记录,此后试着进行信元题头的纠正。与上述同样,在纠正成功的情况下把该题头存入题头接收缓冲器中;如果纠正失败,该信元作为无效信元,并在无效信元显示排列中记录当时的同步信元数的值。另外,把空信元的题头输出到题头接收缓冲器209。观察到错误信元题头的情况下,不管什么情况都要把信元同步状态显示变量的值进1,再转移到同步状态的错误检出模式604。
在同步状态的错误检出模式604,同样对每个信元周期进行题头的确认,与纠正模式一样,同步信元数加1,并记录同步信元首位,如果观测到正确的题头就把信元同步状态显示变量设定为0,并把状态变化成为同步状态的修正模式603。如果观测到错误的题头,就不试着进行该题头的修正,把该信元作为无效信元记录在无效信元显示排列中,然后在信元同步状态显示变量上加1。如果信元同步状态显示变量的值达到7时,把信元同步状态显示变量作成-7,再把状态变到寻找状态601。
不管处在哪个状态,只要信元的首位或者寻找确认的字节超过数据块的789字,就结束信元同步处理,并从信元首位的当时的值减去25248得到的值作为新的信元首位,然后结束子程序。
一般认为实际的信元同步和题头纠错有几种方法。在原来那样在硬件上实现的情况下,例如有日本公开专利特开平4-363927上所公开的方法。就信元同步来说,如果用这种方法,就是每一比特或一个字节地纳入假定为题头的部分,再进行GF(2)上的除法运算,判定总计5个字节是否达到期望的值。另外,若在确立同步的状态下进行错误修正时,把对于5个字节的除法运算的结果作为初始值,继续用1比特单位或1字节单位作同样的除法运算,再进行寻找修正位置的处理。
在此所采用的信元同步的方法被认为是把上述信元同步的方法原原本本地用于软件程序的方法。首先,确立信元同步时,如图7所示,按连接题头部分的1字节数据D1,D2,D3,D4,D5的顺序读出(步骤701~步骤S705),然后交替地进行除法处理706和GF(2)上的加法运算(即每比特的排他逻辑和707的处理),最好进行是否是题头的判定708,这种情况下,对于一次处理必须读出5次。
若用多项式表示各除法处理706,输入为DI输出为DO,该多项式即为DO=DI*X^8 mod G(X)………(1)其中G(X)=X^8+X^2+X+1另一方面,如上所述,在寻找状态时,由于每位移一个字节的同时都要判定是否是信元题头,如特开平4-363927的方法那样,由于巧妙地使用前一个处理得到的结果,所以可以省略读出处理。
作为一个例子,在某一时序上对5个连续的数据D1,D2,D3,D4,D5进行了信元同步处理。这时,其除法运算和排他逻辑和的值作为H5。对只错开1个字节的数据D2,D3,D4,D5,D6的下一个处理就到了图8所示的流程。
首先,重新读出数据D1(步骤801),进行与先前不同的除法运算处理802,该除法运算处理802表示为多项式的话,输入为DI,输出为DO,那么系列式就是DO=DI*X^32 mod G(X)………(2)取该结果和H5的每比特的排他逻辑和803,然后对其全体进行由式(1)表示的除法运算处理B804。进一步再进行与读出的数据D6的排他逻辑和处理806,如果该值达到了期望的值(二进位数的01010101),就判定这一部分是题头,否则判定该部分不是题头。
对于图7中读出的次数为5次来说,用这种方式只要2次读出就可以解决,所以可以使处理量大为减少。
但是,上述特开平4-363927中公开的发明中,一次读出的数据被限定在8比特,这在本实施例那样使用32比特或64比特的高性能CPU的情况下效率就变得很差。
作为其他的方式,例如用32比特的CPU的情况下,由于一次读出开始的4个字节,所以比像图7那样为检查题头要进行5次读取的情况更能减少读出的次数。
例如如图9所示,首先一次读出题头中的开头4字节的D1,D2,D3,D4(步骤901),对其进行除法运算处理902。在这里的除法运算处理如果把32比特的数据用(1)式的G(X)顺次除下去的话要花费大量的时间,体现不出把读出次数减少到2次的优点。
因此,如果按每比特把上述除法运算处理下去的话,各比特及其结果有如下的关系,按D1~D5字节的各比特的顺序为
D1=(d[1]、d[2]、··、d[8]) …(3a)D2=(d[9]、d[10]、··、d[16]) …(3b)D3=(d[17]、d[18]、··、d[24]) …(3c)D4=(d[25]、d[26]、··、d[32]) …(3d)D5=(d[33]、d[34]、··、d[40]) …(3e)这样,把除法运算结果的8比特从上位的比特开始按顺序作成为r[i](i=1~8)r[1]=d[2]+d[3]+d[5]+d[10]+d[12]+d[14]+d[15]+d[17]+d[19]+d[21]+d[25]+d[26]+d[27]+d[33]…(4a)r[2]=d[3]+d[4]+d[6]+d[11]+d[13]+d[15]+d[16]+d[18]+d[20]+d[22]
+d[26]+d[27]+d[28]+d[34]…(4b)r[3]=d[1]+d[4]+d[5]+d[7]+d[12]+d[14]+d[16]+d[17]+d[19]+d[21]+d[23]+d[27]+d[28]+d[29]+d[35]…(4c)r[4]=d[1]+d[2]+d[5]+d[6]+d[8]+d[13]+d[15]+d[17]+d[18]+d[20]+d[22]+d[24]+d[28]+d[29]+d[30]+d[36] …(4d)r[5]=d[2]+d[3]+d[6]+d[7]+d[9]+d[14]+d[16]+d[18]+d[19]+d[21]+d[23]+d[25]+d[29]+d[30]+d[31]+d[37] …(4e)r[6]=d[3]+d[4]+d[7]+d[8]+d[10]+d[15]+d[17]+d[19]+d[20]+d[22]+d[24]+d[26]+d[30]+d[31]+d[32]+d[38] …(4f)r[7]=d[2]+d[3]+d[4]+d[8]+d[9]+d[10]+d[11]+d[12]+d[14]+d[15]+d[16]+d[17]+d[18]+d[19]+d[20]+d[23]+d[26]+d[31]+d[32]+d[39]…(4g)r[8]=d[1]+d[2]+d[4]+d[9]+d[11]+d[13]+d[14]+d[16]+d[18]+d[20]+d[24]+d[25]+d[26]+d[32]+d[40]…(4h)
其中+表示每比特的排他逻辑和。
在此所用的方法不是通常的除法运算,而是由排他的逻辑和运算直接处理这些比特,为得到与除法运算时同样的结果而编制程序,所以可以大幅度地减少处理时间。
具体说就是如图10所示,首先读取题头的D1,D2,D3,D4的32比特,把它们位移1比特,左侧位移到最大7比特,右侧位移到最大2比特,从不位移的D1到D4的相当于各自第1比特的位置取作r[1],第2比特的位置取作r[2]……,只提取出必要的数据进行排他逻辑和运算。
一旦这种处理结束,这次就读出数据D5。按顺序把D5的d[33]加入到r[1],d[34]加入到r[2],……,把上述的32比特的排他逻辑和的结果得到的8比特与D5的各比特位作单纯的排他逻辑和运算就备齐了最终的题头判定值r[1]~r[8]。如果这8比特达到了前述的01010101,就判定它是题头。
下面对图10的程序作更详细的说明,这里只示出了求r[1]部分的图11。如上所述,对r[1]的寄存器点是从D1到D4的各个最左侧的4个位置,设有位移的情况下的寄存器1101中所见到的是从D1到D4的各自最初的比特,即d[1],d[9],d[17],d[25]。沿左右顺序移动就能见到从d[1]到d[27]的数据。
首先在D1部分的寄存器1102处只取出d[2]和d[3]作排他逻辑和运算。这时忽略不计d[1]。同样,在D2部分的寄存器1103处计算d[5]+d[10];D3部分的寄存器1104处计算d[12]+d[14]+d[15]+d[17]+d[19];D4部分的寄存器1105处计算d[21]+d[25]+d[26]+d[27]。再把这4个寄存器和D5的开头的V比特即d[33]作逻辑和运算,从而完成r[1],其他怕r[i](i=2~8)也是同样的。
这时,在涉及r[1]的寄存器中见不到d[28]~d[32],这是作为除法运算的结果的形式,没有必要用这些比特,所以是见不到的。因此,为了能见到全部比特(即d[1]~d[32]),左右各自必须移动到7比特,但是,由于省略了不产生影响的部分,所以如上述那样,左侧位移可以到2比特。
在这些数据处理中,有多次反复使用的数据,例如用C语言的寄存器变量说明等在寄存器上进行演算,可以减少多余存储器中的荷载,实现处理的高速化。
纠错时的方法虽然可以考虑上述的特开平4-363927那样用(1)式进行与上述相同的除法运算,但是问题是这仍然必须作5次重复的处理,在软件上要花费处理的时间。
在此,一旦r[i](i=1~8)决定下来,就决定了能怎样纠错,进一步可以纠正哪个比特。内装有对全部r[i]的组(64组)纠正可能性及纠正比特特征表,求出r[i]来,在它不是(01010101)的时间点上引用特征表,采用这种得知纠正特征的步骤就能进行瞬时纠错。当然,不用说必要的条件是确立了信元同步并处在可以纠错的模式。
(译码子程序206)由信元同步子程序205明确了数据块中包含的同步信元的个数及其其位,接下来从帧数据收纳缓冲器209读出信元有用荷载数据,一面按顺序进行译码214,一面把集中于每个信元的12个字写入到荷载收纳缓冲器212内。
为了进行对信元有用荷载数据的某一位的译码处理,仍然必须要荷载上的43比特前到达的数据。为此,把前次的数据块的最后信元的荷载的最后2个字作为译码用数据存储起来。
实际的操作进行如下。
提取数据块最初的信元的荷载的起始32比特写入寄存器。把该数据和译码用的数据左右位移,对各比特取与恰好对应于43比特之前的数据的比特位的排他逻辑和,把所得到的数据写入有用荷载输出用存储器。存在寄存器中的头32比特在以后2次译码中作为译码用数据使用之后被清除。用于这种译码的数据也作寄存器变量说明,这就有可能减少来自存储器的数据装载的次数,从而实现高速化。
反复进行这个操作,在数据块中的最后的信元有用荷载的最后一字的译码结束的时刻终止对该数据块的译码,这时,把该信元的最后2字的数据存起来,可以在下一个数据块的译码时使用。
最后,根据无效信元显示排列把空信元数据写入无效信元的有用荷载部分。另外,也可以从开始就对无效信元部分不作译码处理,而把固定特征写入信元荷载收纳缓冲器212中。
用原来的硬件概念的译码方法中,虽然同样是采用了按每比特或每字节进行译码处理的方法,但是1个信元的有用荷载也有48个字节,为对此进行译码处理最少也必须重复读出一次,而如本实施例那样,由于用CPU的数据的最大值32比特进行处理,所以可以大幅度地减少从存储器中读出的次数,从而可以抑止软件处理量。
(ATM层子程序207)如图12所示,接收方ATM层子程序207由ATM层处理器1201和题头变换表1202构成。用ATM层处理器1201,对物理层处理器2中抽取的ATM信元的信息从题头变换表中查出来,再根据该信息进行题头变换、附加开关电路由标志、流量监视等ATM层处理,然后把该数据送到数据输出程序1204。
在题头变换表1202中存储有为进行ATM层处理所必要的信息。具体说,在表中存储有新的VPI/VCI或复制连接用的连接标识符、开关内路由信息(路由标志)、流量监测参数以及过去某一定个数的信元到达时间(计数器值;Tp(n))。新的VPI/VCI及路由标志值如果在呼叫设定时被设定,那么直到下次进行设定变更为止都不变更,就连流量监测用申报值(T0,X0,T1,X1)也不变更。每当对应于到达时间信息的VPI/VCI到达时,到达时间信息就被更新。
以下,有关接收方ATM层处理器结合图13所示的程序图加以说明。
(与物理层的数据交接;步骤1301)由接收方物理层处理提取的ATM信元被分成为信元题头和有用荷载两部分,接收方的ATM层子程序207只接收ATM信元中的题头部分,有效荷载部分直接送往开关输出部1204。因此,数据为32比特时,因为原来的ATM信元题头有5个8位位组,所以为了原样转移题头就必须要2个字。
因此,由于在接收方物理层以后的处理中削去了不被使用的HEC区域,所以就把从物理层送到ATM层的题头作成了1个字。而且,在数据在64比特以上时,虽然不削除HEC区域也按1个字接收题头,但在附加ATM开关中的控制信息区域(路由标志、复制信息等)时,为扩大这个区域也可以去掉HEC区域。
(信元数的计数终了;步骤1302)在接收方的ATM层处理器1201中进行流量监视,但必须知道为进行这种流量监视的信元到达交换装置的时间或从同一个VPI/VCI的前一个信元起所经过的时间。因为来自物理层处理器2的全部输入的ATM信元(有效信元、无效信元和空信元)都送到接收方ATM层处理器3中,而把这些信元全部进行计数,所以可以按照以1个信元时间作单位的时间得知信元到达的时间。按照这种方法,不用交换装置、CPU等使用的外部信息包就能知道这个接口处的正确的信元到达时间,即使接口速度发生变化也不必变更程序。实际的时间可以用该计数器值乘以1个信元时间求出来。
在此,如果设可以用于信元数计数的数据为m比特,计数器值按增量1增加,直到2^m-1时计数器值复位到0,再增加下去。
(VPI/VCI取出;步骤1303)从收到的题头信息中分别取出路由和流量监视所必要的VPI/VCI的值,先把从物理层处理器2转移来的题头数据(HD)右移(VCI的位长)+4比特,然后把VPI的位长以外掩盖而得到VPI。而把HD右移4比特之后掩盖VCI的位长以外部分得到VCI。这样,即使VPI/VCI的位长发生变化,只变更VPI/VCI的位长参数,就可以简单地适应。
(变换表地址计算;步骤1304)首先从取出的VPI/VCI中计算对应于该VPI/VCI的变换表1202的参照位置。先把VPI/VCI的参照长作为VPI/VCI的位长以下的a(比特),b(比特),再用VPI/VCI的下位a(比特),b(比特)参照对应于各个VPI/VCI的变换表1202进行计算。
(读出各信息;步骤1305)参照变换表1202读出各信息。
流量监视~峰值速率和平均速率计算;步骤1306)流量监视按照ATM的公式中规定的UNI标准进行,关于具体的实现方法说明如下。
(1.峰值速率计算)本实施例中,作为峰值速率监视的申报值,使用时间T0和时间T0中所得到的最大信元个数X0,用X0/T0表示峰值速率。如图23所示,假定信元流在时间Tk(K=…,n-X0,…,n,…)到达,测定对象信元的到达时间Tn从X0个前面的信元到达时间Tn-X0算起不足T0时间的话,该信元就违反申报的峰值速率,也就是说如果Tac=Tn-Tn-X0小于T0的话该信元违反峰值速率。
但是,即使在末端遵守申报值把信元发送出去,由于经过交换装置等的内部交换装置的缓冲作用也会在信元流中产生波动,而变成为违反状态。因此,为了容许某种程度的波动,确定一个时间τ,若Tac>T0-τ,就在波动的范围内,就不作为违反信元。但是,这时的到达时间Tn不是计数器值,而是Tn=Tn-1+T0。
在此,如果信元在计数器回零之后到达,与其前面的信元到达时间间隔就成了负值,不是正确的值。因此,信元在Trb时到达,然后计数器回零,下一个信元在Tra时间到达。而且把Tcm作为计数器的最大值。这样,信元的到达时间间隔不是Tra-Trb,而变成为(Tcm-Trb)+Tra。虽然插入计数器回零的到达时间间隔可以用该式算出来,但判定回零的有无很麻烦,所以,用(Tra-Trb+Tcm)modTcm来作到达时间间隔的计算,就与计数器的回零没有关系,而可以算出到达时间间隔。
(2.平均速率计算)为了进行平均速率的监视,用时间T1和信元个数X1作为申报值,这样就把监视值平均速率表示为X1/T1。假定信元流在时间Tk(K=…,n,…)到达,每次信元到达时,把与刚到达的信元间的时间和T1/X1的差累加起来。也就是说,每次信元到达时,Tad更换为Tad+((Tk-Tk-1)-T1/X1)(k=…,n,…,)如果这个值是负的,该信元就违反申报的平均速率。
信元到达时间间隔的计算和峰值速率监视情况一样,这时的计算也不受计数器回零的影响。
(VPI/VCI替换;步骤1312)对于在上述流量监视中被判定不违反的信元,用从对应于题头变换表1202中附加在信元题头上的VPI/VCI的部分求出来的新的VPI/VCI或者复制连接用的连接标识符重新写上题头。
(路由标志的附加;步骤1313)信元为了在开关中进行自己的路由,按照符合开关信元格式把记有根据VPI/VCI从题头变换表1202中检索到的开关中的切换信息的路由标志附加在题头部分。
(违反峰值速率、平均速率情况的处理;步骤1307~步骤1311)
另一方面,输入的ATM信元流不管在违反上述哪一个流量监视(峰值速率,平均速率)的情况下,ATM层处理器都要进行如下处理。即在附加路由标志时,附加在ATM开关中判定为无效信元或空信元的路由标志(步骤1311,1313)。或者在该信元上记上称为违反信元的标记(步骤1310),再原样进行题头变换(步骤1312)。
(流量监视用信元到达时间的更新;步骤1314)附加路由标志(步骤1313)之后,进行流量监视用信元到达时间的更新。作为流量监视的变量,除上述的申报值X0,T0,X1,T1之外,关于各VPI/VCI还必须要直到X0个信元之前的信元到达时间。例如在本实施例中,这些到达时间存储在排列Tp(n)(n=0,1,…,X0-1)中。这个排列的内容按如下的算法更新。
设Tp(k)=Tn,那么,Tp(k-1)=Tn-1,Tp(k-2)=Tn-2,……,Tp(0)=Tn-k,Tp(X0-1)=Tn-k-1,……Tp(k+1)=T0-X0。当下一个信元到达时,把Tp(k+1)更新为Tp(k+1)=Tn+1。这样,下一个信元到达时为进行流量监视而使用k,参照/更新Tp(k),Tp(k+1)(k=X0-1的情况下,为Tp(X0-1),Tp(0))。
(接收数据输出子程序(对应于图3的201))把ATM层子程序的处理结果即必须输出到ATM开关103的信元的题头上附加了路由标志的数据,存入带有路由标志的题头收纳缓冲器211中。同时在信元同步子程序所得到的信元中得到不输出到ATM开关104的数据的信息。从这些信息和译码子程序的结果的信元荷载收纳缓冲器212上的数据,再形成输出到ATM开关103的信元并进行输出。
(接收方输出部分)
把来自数据输出子程序的信元数据存入接收方输出部,即接收方FIFO。接收方输出FIFO根据来自ATM开关103的时序把信元数据输出到ATM开关103。
下面说明发送方通话话路处理子程序的构成及其细节。
(关于子程序的划界)发送方的通话话路处理也进行与接收方同样的处理。以下,根据图14说明通话话路处理中的各子程序的流程和它的数据、指示符、有效信元等信息流程。在图14中用粗箭头表示数据流向,标记为P的细箭头表示指示符流向。
首先,把来自ATM开关103的信元输入到发送方输入部,即发送方输入FIFO。发送方输入子程序1403把发送方输入FIFO内的信元数据写入CPU存储器上的开关信元接收缓冲器1409。在此,若发送方输入FIFO的容量相当大的情况下,不必把信元数据一次存入开关信元收纳缓冲器1409,所以就无需图14的上部用点线围成的部分1414。
从发送方输入子程序1403向发送方ATM层处理子程序1404只转移开关信元接收缓冲器1409的指示字,ATM层处理子程序1404根据这个指示字把信元数据从开关信元接收缓冲器1409中取出来。如上所述,在省略了开关信元接收缓冲器1409的情况下,信元数据被直接送到发送方ATM层处理器。
在发送方ATM层处理器中,把在接收方ATM层处理器中附加的路由标志从开关格式的信元中削掉,然后变换成为ATM格式的信元。另外,根据需要进行VPI/VCI的变换和整形处理。
整形的结果使信元顺序和输入到发送方ATM层处理器5时不一样,所以,信元顺序接收缓冲器1412中记录整形后的信元顺序,然后把它的指示字转移到物理层处理子程序1405。
而且,先把信元分离为题头和有用荷载,分别收纳在题头接收缓冲器1410和有效荷载接收缓冲器1411中,只把它的指示字转移到物理层处理子程序1405。
用物理层处理子程序1405主要是进行有效荷载部分的编码和题头的HEC部分的计算以及把信元数据编排入帧。首先,按照信元顺序接收缓冲器1412中存在的信元送出顺序,以信元为单位从有效荷载接收缓冲器中读出成帧所必要的数据,逐次进行编码。另一方面,在编排时,从题头接收缓冲器1410中读出对应于有效荷载的题头,计算对应于读出的4字节题头的HEC,把它附加在题头上,然后与经过编码的有效荷载部分组合构成信元数据,把该数据编入帧内。把该数据写入输出帧数据接收缓冲器1413内,然后转移到输出处理程序1408。这时,如果发送方的输出FIFO容量十分大,或者在物理层处理子程序感知发送方输出FIFO有空而被起动的情况下,就不必一次性把帧数据存入输出帧数据接收缓冲器1413,而直接把数据转移到发送方输出子程序1406,可以写入外部的FIFO中。这种情况下,就无需图14下部的点线所围成的部分1415。
如上所述,发送方通话话路处理也和接收方通话话路的处理一样分割成为子程序。这样,把有效荷载部分的编码替换成硬件,可以灵活地进行这样的软件和硬件的组合。
对于这些发送方的物理层处理和接收方的物理层处理一样,也是用CPU的数据进行处理,所以也能减轻软件处理量。
在原来的硬件概念的处理中,生成HEC时每个字节要4次读取题头,每次要进行除法运算,但是用本实施例的32比特CPU,一次就读出题头的前4个字节,进行排他逻辑和运算或者查表就可以很容易地得到HEC的值。
对于编码也和译码一样,因为每个信元必须读出48个字节的数据,所以与按1比特和1字节单位读取数据的原来的方式相比,用32比特等的数据读取就能减少读出次数。
而且,由于把已编码的数据直接写入帧输出用的FIFO中,所以就不必写入一次性内部超高速缓冲存储器,从而使写入次数减少。
一般,把数据写入存储器和FIFO以及从它们读取数据时,在CPU中要进行许多处理。因此,由于有效地使用超过上述1字节的那种CPU的数据进行数据处理,所以减少了写入和读出的次数,从而减轻了CPU处理负担。
以下,对各步骤,子程序作更加详细的说明。
(发送方输入处理子程序1403)把ATM开关4输出的信元数据存入发送方输入FIFO。发送方输入子程序1403把这个FIFO内的数据写入CPU存储器上的开关信元接收缓冲器1409。再把该开关信元接收缓冲器1409的指示字和收纳的信元数等加到下一个子程序ATM层处理子程序1404。在省略图14上部点线围成的部分1414的情况下,这个子程序只是单纯地把数据从FIFO转移到ATM层处理子程序1404。
(发送方ATM层处理子程序1404)在接收方ATM层处理部附加上路由标志、复制标志等信息,而把开关信元格式中变换的信元在发送方ATM层削掉由接收方附加的部分,还原成ATM信元格式。同时为了使后述的发送方物理层处理部进行的有效荷载部的编码容易进行,进行信元题头和有效荷载部分的分离。
在ATM开关103具备复制功能的情况下,取代在接收方ATM层处理部进行VPI/VCI的变换,而附加只在交换装置内部有效的连接标识符,在发送方ATM层处理部,按照这个连接标识符参照VPI/VCI变换表更换写入新的VPI/VCI,这种方式也是有效的。
另外,ATM开关中的会聚控制、与来自其他通道的信元的多重化,使信无流的形态变为被输入时的状态。因此,在发送方ATM层处理部实施对信元流的整形处理使之符合申报值是有效的。
进行整形时,必须知道进行整形的信元的输出信元流中的时间位置。因此,要对从ATM层处理部向物理层处理部转移的信元计数,因为是把这个计数作为以1个信元的时间为单位的时间用于整形,所以CPU不必具备计时功能。这样,通过对转移到物理层处理部的信元数的计数例如为了提高信元废弃特性,即使是对应于使信元转移速度比接口点处的信元转移速度还高的ATM开关103的ATM层处理子程序,用这种方法也能以物理层处理部中的信元转移速度进行整形。
(物理层处理子程序1405)在形成帧时,以1帧为单位形成的。在此,作为一个模型的帧结构其一帧所包含的信元数据是96字节,作成信元数是2个信元弱,并且希望信元的分段和帧形成的分段相一致。因此,在生成帧的子程序间必须转移以下的数据。它们是帧写入点、信元读取点、编码数据、存储器内信元写入变量、存储器内信元读出变量等。帧写入点是以字节为单位表示帧内进行下一次写入的位置,取值为0~95。信元读出点是以字节为单位表示CPU内部存储器上的信元内进行下一次读出的位置,取值为-52~52。
值为负的情况是由于存储器上不存在能输出的信元而输出空信元的情况,其绝对值表示空信元的第几个字节。编码数据是对该数据块的最初2字的数据进行编码所使用的数据,也是前面数据块中进行编码后的最后2字的数据。当然,在这个数据块的成帧结束时要输入该数据块编码后的最后2字。
存储器内信元写入变量表示在CPU的存储器上下一次写入信元的写入点,把代表信元读出点的存储器内信元读出变量的值与该值比较来判别有无能输出的信元。如果写入变量和读出变量的值相等,是不读出信元的时间,若写入变量大于读出变量,则是存在能读出信元的时间。如果读完一个信元,就把信元读出点进1,同时与写入变量进行比较。
下面,根据图15对实际形成新帧时的步骤予以说明。
首先,把上次成帧中剩余的未写入的最后的字的数据(0~3字节)写入这次的帧的始端(步骤1501)。虽然是进行写入整个一个字的操作,但实际上是接收对应于所剩余的数据的字节数的帧写入点,再根据这个值开始下一次的数据写入,实现向剩余数据帧的写入。
接着,根据信元读出点的值,检查上一次物理层处理是在怎样的状态下结束的。
如果上次物理层处理的成帧在空信元的输出过程中结束(步骤1502中Yes的情况),若有来自HEC的输出(步骤1503中的Yes;信元读出点是-4),首先把空信元的HEC写入输出帧数据收纳缓冲器1413(步骤1504),然后,一面对空信元的数据编码一面把它写入缓冲器(步骤1505)。此处,因为空信元的题头特征是固定值,所以程序中把HEC的值保持为常数,可以只输出该空信元HEC数据。另一方面,如果有来自有用荷载部分的输出(步骤1503中No的情况;信元读出点为-5以下),一面把空信元的有用荷载的剩余部分编码,一面存入缓冲器(步骤1505)。
如果上一次成帧是处于有效信元的输出过程中的情况(步骤1506的Yes),若有来自HEC的输出(步骤1507中的Yes;信元读出点是4),首先从题头的值算出HEC,再把它写入缓冲器中(步骤1508),然后,一面把有用荷载部分编码一面写入缓冲器(步骤1509)。另一方面,若是来自有用荷载部分(步骤1506中的No;信元读出点是5以上),那么,一面把剩余的有用荷载部分编码一面写入缓冲器(步骤1509)。
接着,在进行过上述步骤1505,1509之后,或者在步骤1506No的情况下,也就是上次的处理恰好在信元终端结束的情况下(信元读出点是0),进行如下的处理。
首先查问CPU上的存储器中有没有能输出的有效信元(步骤1510或1515),根据查询结果输出有效信元(步骤1511~1513或步骤1516~1518)或者输出空信元(步骤1514或1519)。这些向缓冲器写入数据的位置沿着全部帧写入点的值进行。而且在进行写入时,必须进行帧写入点和信元读出点的值的更新。在空信元、有效信元不管哪种信元输出的情况下,输出到一个信元的终端也都要把信元读出点置0,把存储器内信元读出变量进1,再检查CPU上是否存在可以输出的有效信元,根据检查结果进行下一个信元的输出。
上述处理一直进行到充满帧的数据为止,也就是说一直进行到帧写入点达到96以上为止。作满一帧的情况下,就进行编码用数据的存储、存储从帧数据中剩余的数据、设定下次成帧用的帧写入点等步骤,然后结束物理层处理子程序。
接下来根据图16来说明信元的有效荷载的编码步骤。为进行信元有用荷载的某位的编码,必须有从该位向前数43位中输出并进行了编码后的数据。因此,为进行对现在的数据字的编码,始终要把编码后的数据中最新的2个字存在寄存器内。这时,由于用C语言进行寄存器变量指定,从而可以削减存储器间的无用的荷载,而实现高速化。实际的译码数据是这样得到的,即用从信元有效荷载接收缓冲器中读取到的1个字的数据,与编码用的数据2个字中的旧的数据左移21位及新的数据右移11位的数据三者作排他逻辑和处理得到实际译码数据。把新得到的数据作为信元数据输出到帧上的同时,把它作为对下一个数据编码用的数据存储在CPU内部的寄存器上。而且,把编码用的2字数据中的旧数据废弃掉。在内部存储器中没有可读出的信元的情况下,当然要用成帧子程序输出空信元,这时,也可以考虑不进行数据的有效荷载部分的编码。
HEC的计算可以这样来进行,即如信元同步部分所详细说明的那样,先把1个字长的题头数据向左移位最大7比特向右移位最大2比特,然后掩盖住共计10个数据的各各数据,使必要的比特位能作用于4个字节任意位置,最后,取对应于那4个字节的各比特的排他逻辑和。
输出数据时,转移到发送方输出部7b的FIFO的1帧的数据变成为24字21比特,不符合一般的处理器的字长。因此,可以用软件把不齐全的数据存在内部,加在下次发送的帧的开头处。
按照上述的那样的子程序群,可以构成把处理器作为程序发生器和ALU的交换装置。按这种结构构成交换装置的情况下,一次性存储经过处理器和输入FIFO(11013)、输出FIFO(11014)、信元开关(103)的信元的FIFO(11024)、一次性存储来自信元开关(103)的信元的FIFO(11025)和处理器(11021)连接部分的通过量就成了阻碍交换装置本身数据通过量的主要因素。下面,说明为了提高交换装置的数据通过量而提高这些FIFO和处理器之间的数据通过量的方法。
图17中,微处理器(CPU)1701-1是如MIPS公司制的R3000那样的RISC型微处理器,它用来对含有输入输出端口(I/O)1701-1~1701-n中分别被输入输出的ATM信元的信息进行交换处理。
在此,本发明中,所谓信息输入输出功能的意思是为处理器和外部(即接口点或ATM开关)的信息对话而设置的硬件。如到此为止的描述那样,信息输入输出功能包含有为制定用处理器的处理时间而一次性存储来自/发往外部的信息的FIFO。
超高速缓冲存储器母线1791-1与CPU1701-1、指令超高速缓冲存储器1702-1以及数据超高速缓冲存储器1703-1相连接,而输入输出端口1710-1~1710-n直接连在超高速缓冲存储器总线1791-1上。本实施例中,不同于把输入输出端口连接在存储器总线1799上的一般的处理器系统的构成法,而是连接在超高速缓冲存储器总线1791-1上。因此,使信息输入输出功能和数据超高速缓冲存储器1703-1之间的通信执行时间降低,从而提高了交换装置的数据通过量。
当然,和通常的方式一样,不写入到超高速缓冲存储器中的信息等经过读/写缓冲器1703-1写入到接在存储器总线1799上的主存储器1761中。在本实施例中,存储器总线1799由DMA控制器1751来控制,由DMA转移进行数据的发送接收。
图17是本实施例中的输入输出端口的一种构成方法,对各输入输出线送来的数据取得位同步后,顺序地存入到输入FIFO1722中,CPU1701-1再把从输入FIFO1722的开头输入的数据顺次转移到数据超高速缓冲存储器1703-1。然后把切换处理结束后的数据顺次从数据超高速缓冲存储器1703-1写入到输入输出端口1710-1~1710-n的输出FIFO1723中,再把数据从输出FIFO1723的开头顺次送到输出线上。
微处理器CPU1701-1把来自输入输出端口1710-1~1710-n的输入数据写入数据超高速缓冲存储器1703-1的适当存储区,然后把物理层处理、ATM层处理和切换处理等顺次进行下去。
本实施例中所用的软件等都存储在指令超高速缓冲存储器1702-1或ROM1741中。
在此,在上述的本实施例中,其构成是把输出输入端口1710-1~1710-n直接连在超高速缓冲存储器总线上。众所周知,由于近年来微处理器技术及器件技术急剧进步,使微处理器的处理速度和超高速缓冲存储器的大容量化和高速化也在进步。另外,虽然设想输入到ATM交换装置的数据是原来那种猝发性高的数据,但是,这种数据的转移速率的上限取决于于传送线路的速度,用低于传送线路速度的速率发送有效的数据还是可能的,而以高于传送线路速度的速率发送就不可能了。目前称之为最高速的微处理器(例如α芯片200MHz)就是以比ATM通信方式的典型的接口速度15MHz还高的高速时钟来动作的。
另外,现在的微处理器可以具有大容量的超高速缓冲存储器(例如R3000可以装载256KB的超高速缓冲存储器),可以说为进行通常的数据信息包的处理,这个容量是足够的。
更进一步,作为高速SRAM,已经在开发具有存取时间为10ns的1MB存储容量的存储器,可望将来开发出容量更大更高速的超高速缓冲存储器。
由于这种各功能的进步,如本实施例那样,以输入输出端口直接连在超高速缓冲存储器上的结构来进行ATM交换处理的情况下,不会把微处理器1701-1中的在输入输出端口1710-1~1710-n和数据超高速缓冲存储器1703-1之间转移信息的命令通路搅乱,所以,按照本实施例就能实现比原来更高速的ATM交换装置。
例如可以考虑用6.4Mbps I/F作为ATM接口之一。6.4Mbps I/F的帧长是789比特×4帧=3156比特,所以这一帧的数据顶多是3K比特=0.4KB。对此,本实施例中所用的微处理器R3000的超高速缓冲存储器可达256KB,所以,可以提供充分的字节作为超高速缓冲存储器的容量。
另外,即使把这种6.4Mbps I/F的全部用来发送有意义的数据,由于微处理器R3000是按其标准速度35MHz时钟(1时钟-1命令)来动作的,所以能充分地进行从其接口点到超高速缓冲存储器的数据转移。
在如上述的那样的用25MHz时钟动作的R3000(微处理器11)来处理6.4Mbps I/F的情况下,如果输入输出端口1710-1~1710-n内的输入输出FIFO1722,1723中写入3156比特的数据,那么R3000分配到各输入输出端口1710-1~1710-n的处理的命令循环数约为12000/n。换言之,例如微处理器1701-1进行100MHz的高速动作的情况下,如果各输入输出线所必要的ATM交换处理是12000命令以下,用本实施例的ATM交换装置可以实现4×4的ATM交换处理,这种情况下的输入输出FIFO1722,1723有大约8000比特的FIFO长就可以说是充分了。
在此,图18表示用R3000时的微处理器1701-1中的命令通路的构成。用图18中所示的命令通路中的各循环的处理如下IF命令取数(此处是向指令超高速缓冲存储器存取)RD从CPU寄存器中取出操作数ALU命令操作数的执行MEM存储器存取(在此是向数据超高速缓冲存储器存取)WB向寄存器文件写入结果微处理器1701-1用这样的命令通路各循环中的MEM循环进行从数据超高速缓冲存储器1703-1及输入输出端口1710-1~1710-n的数据读取,和分别向它们的数据写入等的处理。另外,从图18也可知,MEM循环和IF循环(向指令超高速缓冲存储器1702-1存取)是重复的,所以,在R3000中一个循环内在1702-1和1703-1两方进行存取。实际上,在R3000以25MHz动作的情况下,对各个超高速缓冲存储器1702-1,1703-1来说就变成以50MHz的存取速度进行存取了。因此,本实施例所示的指令超高速缓冲存储器1702-1、数据超高速缓冲存储器1703-1、输入输出端口1710-1~1710-n内的双向FIFO1722,1723就都是以50MHz的存取速度进行数据的输入输出。
如前所述,作为高速SRAM已经在开发存取时间为10ns(存取速度100MHz),容量为1MB的产品。而且,作为FIFO,也在开发存取时间为20ns以下(存取速度50MHz以上)容量为3K比特以上的产品。
从这一点来看,用本实施例所示的构成对输入输出端口1710-1~1710-n送出的数据进行ATM交换处理而不搅乱微处理器1701-1的命令通路是可以实现的。
另外,因为ATM信元的题头部分是由4个字节(32比特)构成的,如本实施例那样用32比特的微处理器进行处理的情况下,可以用图2所示的命令通路的1个命令(1个MEM循环)读出该ATM信元的题头部分和把它写入,所以能以非常高的效率来进行ATM层处理和切换处理。
再回到图2,来描述OAM处理过程。
发送接收线路和本交换装置之间输入输出的数据除用户数据之外还有OAM数据。上述通话话路处理都是针对用户数据,对于OAM数据考虑用OAM数据专用的处理。
例如,作为OAM数据有故障地点特定中使用的回送信元,回送指示信元用连接路径和端点的任意交换装置(或终端设备)来决定进行返回该信元的指示。
因为把专用的信元题头分配给承担OAM数据的信元,所以能用ATM层的处理来进行某个信元是承担OAM数据信元还是用户信元的判定。但是,对于承担该OAM数据的信元是否是指示回送或者返回点是否是该节点等,只用信元题头的值是不能断定的。回送信元中有返回前和返回后两种状态,只有返回前的信元回送。可是,写有表示返回前还是返回后的信息的不是信元题头而是信元有用荷载,处理就更复杂。
像这样,由于OAM数据的处理比通常的通话话路处理复杂,即使用原来的硬件构成的通话话路处理,提取这种OAM信元也不同于用户数据,多半是用软件来处理。
另外,连接状态的变更所引起的路由标志表的更新以及通话话路处理中所产生的统计信息的对外通知等的处理,通常也是用软件来进行的。这些处理也被称为OAM处理。
在本实施例中,OAM处理是用处理器上的OAM处理程序来进行的。如图2所示,OAM处理具备有OAM信元信息的发送接收器141和针对表及统计信息等的监视控制处理142。通话话路处理具有OAM信元交叉插入部113和监视控制接口114。另外,OAM处理还具有与控制交换装置整体的上位交换机控制处理器104的接口143。
作为OAM处理以外的例外处理有速度调整处理。在接收方从帧缓冲器输入的数据因位差错而丢失的情况下,必须转移到ATM开关103的数据可能不足。用硬件进行信元处理时,在图2所示的各处理阶段之间设置缓冲器,如果输出缓冲器的数据不足就插入空数据(空信元)。
这里,用CPU进行信元处理的情况下,也有信息的输出速度必须独立地与接收到的有效信息的速度相统一的接口点。发送点和与以一定速度动作的ATM开关的接口点处于其中。用CPU进行信元处理有必要用软件处理来实现速度调整。在本实施例中,速度调整是由空信元发生器129,139进行的。
下面对本实施例的交换装置中满足各处理过程要求的处理起动方法、CPU等的资源分配方法及数据的交接方法等详细地说明2个具体实例。按图19(接收方)、图20(发送方)进行说明,处理的时间流序表示于图21(接收方)和图22(发送方)中。
首先根据图19说明第1例的接收方的处理。
从接收线路输入的比特数据存储到用FIFO的帧缓冲器1911中,如果硬件缓冲器中积存的数据量达到予定的一定值(当然其前提是只能认识帧的长度的数据积存在缓冲器中)时,帧缓冲器1911对处理器R产生起动通话话路处理的插入要求。这个起动条件的意思是说空出的容量达到一定值以下,接收缓冲器溢出之前起动接收处理。根据插入起动要求起动物理层处理步骤1932。
作为接收方物理层处理的起动条件,除上述帧缓冲器1911送来的插入之外,还要考虑时间插入的方法。处理器R每隔一定时间从帧缓冲器1911接收一次数据,这就是开始物理层处理的方法。根据插入,起动物理层、ATM层的通话话路处理程序1931。
直到积存在帧缓冲器1911内的比特数据的一个块的处理结束把数据转移到ATM开关1902之前,由其他基本的处理程序来不中断地进行通话话路的一系列的处理。为了不中断处理,除去更优先的程序插入的情况之外,通话话路处理必然能在一定的时间之内结束。也就是说满足严格的实时处理条件。
但是,在处理的过程中加入优先度更高的程序处理的情况下,如果知道那个处理过程的处理时间的上限值,本处理也能在下式表示的时间内结束处理。
(本处理的执行时间)+(比本处理更优先的程序的执行时间)因为在一预定的时间内完成了处理,即使输入帧缓冲器1911中发生接收数据的溢出也不丢失接收的数据。当然,为了防止发生溢出,必须预先估计通话话路处理程序1931所需的处理时间和该程序开始前最长的等待时间,考虑到溢出的可能性,必须通过产生一个中断来起动通话话路处理1931。
进行这样的CPU资源分配,由于在通话话路处理中加上适当的电平处理优先度而禁止插入,从而可以不产生其他处理程序对CPU资源的抢占。
那么,在物理层处理步骤1932中,对输入位串进行行译码之后确立帧同步。这个处理由检出物理层帧结构的同步位来进行。这时,不一定对所有的数据进行同步位的判定,对某些比特数据检查,如果未达到同步,就结束帧同步处理,也可以把偏离帧同步通知OAM处理程序1941。这种方法将从不包含帧信息的输入数据中检出帧同步特征,所以在避免白白消耗CPU时间意义上讲是有效的。
除了表示偏离帧同步之外,作为从物理层处理步骤1932转移到OAM处理1941的信息还有接收帧的误码数和其他的统计信息。另外,根据物理层的接口规定,有时要把接收数据的误码数通知对方,但交接这个值的数据量是极少的,并且对延迟的要求也不严格。这样的数据交接为使通话话路1931的安装作得简单,简便的方法是一次转移到OAM处理过程1941。在以高速动作为目的的通话话路程序1931中,不希望具有与对方通话话路等的多种处理(作为其安装形态可能有各种各样的处理步骤)的接口。后面还要描述有关物理层处理1932和OAM处理1941之间的接口(由统计信息表的项目详细描述)。
接下来进行在取得帧同步的位串的用户数据转移用区域中的ATM信元同步,即进行ATM信元题头的探索。在信元同步处理中,还同时进行信元题头修正处理和题头错误信元及物理层空信元的废弃处理。对以上处理中未被废弃的有效信元有用荷载进行译码处理。
用这些处理来确定位串中的有效信元题头和有用荷载的位置。
接着,对信元进行ATM层处理1933,在ATM层中读出基本的信元题头的值,并进行题头变换、附加路由标志、流量监视、信元发送等处理。
在ATM层处理1933中不直接参照有用荷载的数据。为此,在物理层处理1932和ATM层处理1933共有同一存储器的CPU处理中,为了减少从物理层处理1932向ATM层处理1933的数据转移的额外的操作,不转移信元有用荷载而只转移信元有用荷载的被存储的指示字的方法,对减少存储器存取的次数和提高执行速度都是有效的。在本实施例中,物理层处理步骤1932把信元有用荷载的内容写入共有的缓冲器1921内,再把它的指示符和题头值写入物理层/ATM层输入信元指示符队列1923中。
接下来起动ATM层处理1933。由于接收方的物理层、ATM层的数据流是连续的,如果在OS上把它们分别作成处理程序的前半部分和后半部分,就能节约处理过程的上下关系的转移和共有缓冲器存取的排他控制的处理。
在ATM层处理1933中,先从队列1923中取出信元题头和指示符,然后进行题头变换、附加路由标志和流量监视处理。最后,ATM层处理把信元送到ATM开关1902时,该信元的指示符所指位置的数据与信元题头、路由标志结合起来,再转移到输出ATM/SW缓冲器1912。
因此,在认识帧结构的必要上,起动物理层处理的单位必须有至少1帧以上的周期。为了简化排他控制,起动继续物理层处理1932的ATM层处理1933的情况下,用包含在传送帧中的信元数来规定ATM层处理产生结果后写入ATM/SW缓冲1912内的信元数。例如在620Mbps的SDH传送帧处理中,1帧的处理产生约160个信元。在物理层中为了认识帧结构必须处理至少1帧以上的数据,所以继物理层处理之后起动ATM层处理的情况下,必须进行至少160个信元以上的处理。
该处理结果所产生的信元几乎全都写入到ATM/SW缓冲器1912中。由于ATM/SW缓冲器1912的容量小而不能把这些信元存入时,就必须把ATM层处理的单位作得更小。例如把物理层处理的处理单位分割得比1帧更小,处理尽可能存入ATM/SW缓冲器1912内的信元,再起动ATM处理来处理信元。
另一方面,在用专用硬件构成物理层处理的情况下,因为没有物理层处理,也可以根据从物理层处理的硬件送来的"信元生成信号"的定时来起动ATM层处理。
转移结束后指示变为空状态的指示符送入空缓冲器指示符队列1922。物理层处理在把信元写入缓冲器时,从空缓冲器指示符队列1922中取出空缓冲器的地址,再把信元有用荷载写入那个地址。就这样循环利用信元缓冲器1921。
对于缓冲器管理来说,由于ATM信元是固定长,所以,即使把缓冲器分割开,管理存储区域的情况下,只要予先准备多个予先固定长的区域也就足够了。在把存储区的管理单位作成可变长的情况下,为避免成为侵蚀存储区域的状态要进行无用数据的收集处理。无用数据收集是妨害处理步骤实时性的原因之一,但处理ATM信元的情况下不必进行这种处理。
在ATM信元中有用户信元和OAM信元。上面,对用户信元作了说明,但是对OAM信元要进行区别于用户信元的处理。下面说明OAM信元的处理。
用ATM层处理读题头时,如果是OAM信元,就把存储该信元的缓冲器的指示符从ATM层处理1933转移到OAM处理1941。
从确保通话话路处理的实时性的观点来看,OAM处理步骤1941在指示符转移时刻并不起动,而是继续进行通话话路处理。即使这样,由于比通话话路处理缓慢,所以OAM处理的时间的约束也不成问题。
根据协议规定虽然物理层的OAM信元是在物理层分支,但安装方法并不作规定。因为物理层的OAM信元的识别是由调查信元题头的值来进行,所以从处理的简便性的观点来看,与OAM层的OAM信元一样,也希望用ATM层的OAM信元分支处理来进行分支。
因为处理层中并不处理信元,为确保前述的通话话路的实时性,在ATM层处理的动作中实施于OAM信元的处理,只能把OAM信元在OAM处理过程中予以分支。
另外,接收到OAM信元分支的同时如果要求必须从OAM处理插入ATM层的信元流的信元,就插入那个信元取代已经分支的信元。在检出ATM层的空信元时,如果有来自OAM处理的信元插入要求,也要废弃空信元插入OAM信元。
把来自OAM处理1941的信元插入要求写入OAM/通话话路转移信元指示符队列1925。ATM层处理步骤1933从输入信元指示符队列1923中取出信元时,如果该信元是空信元,就检查OAM/通话话路转移信元指示符队列1925中是否写入有指示符。如果队列1925中写有指示符,ATM层处理就判定为有来自OAM处理1941的信元输出要求,并把输出的OAM信元题头和有用荷载取代该空信元写入到SW/ATM缓冲器1912。
把OAM处理1941所作成的信元转移到通话话路处理步骤1931的情况下,必须确保在共有缓冲器1921上写入该信元的区域。为此,虽然OAM处理1941也可以在空的缓冲器指示符队列1922中存取,但是必须有对空缓冲器指示符队列1922的竞争控制,通话话路处理1931的执行时间最好不要延长。而且,在本实施例中,把为从通话话路处理1931转移的信元保留的区域用来把来自OAM处理1941作成的信元向通话话路处理1931转移。在此,若从通话话路处理1931转移来的信元的个数少,而发生OAM处理1941作成的信元存储区域不满的情况,是不好的,但是,在予先确定的条件下,例如OAM/通话话路转移信元指示符队列1925空的时候,如果把空信元的有用荷载所存储的指示符和题头写入到通话话路/OAM转移信元指示符队列1924中,就可以解决这个问题。
通话话路/OAM转移信元指示符队列1324内有空信元时,为了输出OAM信元,OAM处理1941也可以优先利用该空信元。因为指示符所指示的共有缓冲器1921的地址上还没有写入有效信息,所以把输出的OAM信元的有用荷载写在这里,再把信元题头换写成适当的值,与指示符一道与入OAM/通话话路转移信元指示符队列1325。信元的输出由通话话路处理1931进行。
被废弃的空信元的有用荷载所存入的指示符和题头被写入通话话路/OAM转移信元指示符队列1925中。通话话路/OAM转移信元指示符队列1324中有空信元时,OAM处理把该空信元用来输出OAM信元。因为指示符所指的共有缓冲器1921的地址上还没有写入有效的信息,所以就把输出的OAM信元的有用荷载写在这里,再把信元题头改写为适当的值,与指示符一起写入OAM/通话话路转移信元指示符队列1925。信元的输出由通话话路处理1931来进行。
在ATM层的处理中用指向信元题头和信元有用荷载的指示符的形式处理过的信元,在ATM层处理过程1933结束时,再按照信元题头上连接了路由标志符、有用荷载的数据节内的信元格式被写入向ATM开关1902输出的缓冲器1912。
该缓冲器由硬件构成,它以与ATM开关1902的数据读取速度一致的一定速度读出数据和输出数据到ATM开关1902。从物理层转移来的用户信息信元全都进行处理,在写入对ATM开关1902的输出缓冲器的时间点结ATM层、物理层以及配合ATM层处理的通话话路处理1931。
接收方通话话路处理1931的起动取决于帧缓冲器1911的缓冲存储量。由于位同步错误而未把接收位串写入帧缓冲器1911的情况下,不起动通话话路处理程序1931。当然,这时必须写入输出缓冲器的数据也不写入。而且未确立帧同步、未确立信元同步时也不进行ATM层处理。为了使ATM开关1902动作,在必要的情况下不管用什么方法制作假数据都有必要加上信元特征。
执行这项任务的是空信元生成步骤1934。如果输出缓冲器的容量低于一定值,空信元生成程序1934就依靠缓冲器装置的硬逻辑引起的插入来起动。空信元生成具有比通话话路处理1931更高的优先度,通话话路处理1931的动作被起动立刻把予定数的空信元特征写入输出缓冲器。如果空信元生成程序一次写的空信元数多,程序起动的次数就少,程序的起动操作就减少。但是,本来不必要的空信元,在ATM开关1902送出的变多。如果一次写入的空信元的个数少时,结果与此相反。
在接收方通话话路处理1931的过程中,把最大的优先度加在空信元的生成上。ATM开关1902正常动作,ATM/SW缓冲器1912存在的前提条件是交换装置全体动作。空信元发生要求由ATM/SW缓冲器1912发出。空信元产生过程中不插入其他处理。因此,ATM/SW缓冲器1912的数据量只有(空信元发生程序的起动额外操作量)+(使空信元产生的必要时间),在连续送到ATM开关1902的信元量不减少时必须发出空信元产生要求。
整度调整处理也可以在CPU信元处理的一连串的处理的某处进行。但是,从安装的容易性和处理的时间应答性(空信元的插入被认为是输出缓冲存储长度的反馈控制)的观点来看,应尽量在CPU信元处理的输出方,即最好刚好在ATM/SW缓冲器1912之前进行。而且,这种处理也能由专用硬件构成,这种硬件先输出ATM/SW缓冲器1912的缓冲存储长度再产生予定的空信元特征。
下面根据图20说明第1例的发送方的处理。
发送方的处理对前述的接收方的处理来说大体上沿相反的途径进行。从ATM开关1902朝CPU接口在其输入部设有用硬件构成的信元缓冲器2012。与接收方的行输入一样,积存在信元缓冲器2012的数据超过予定的某一定值时就起动ATM层处理程序2033。
作为发送方ATM层处理的起动条件与前述的方法不同,其方法是用时间插入定期的监视信元缓冲器2012的空间容量,空间容量在一定值以下时,起动ATM层处理2033。另外,发送方物理层处理2032为3成帧对ATM层处理2033要求信元时,起动ATM层处理2033,开始从信元缓冲器2012接收信元。
把带有路由标志的信元从缓冲器2012中取出来,并把有用荷载存入共有缓冲器2021。进行流量监视、削除路由标志、题头变换,然后把变换过的题头和指示符输入到ATM层/物理层输出信元指示符队列2023。OAM信元的分支/插入也在此刻进行。然后结束对SW/ATM缓冲器2012中的全部信元或予定数的信元的处理的ATM层处理程序2031。
在接收方,按ATM层处理和物理层处理的顺序起动。但在发送方则是在ATM层处理2031结束时根据发送方线路接口的帧缓冲器2031送来的插入独立地起动物理层处理2032。
这是因为即将进行物理层处理之前为调整速度进行空信元产生程序2034,如果不备齐信元数据就不能构成帧(编码影响前面的比特数据)。在接收方,速度调整可以只生成空信元的特征再写入缓冲器。但是,在发送方,在为速度调整而进行的空信元插入之后必须进行成帧处理,所以希望物理层处理和ATM层处理分别起动。如果空信元插入点设置在ATM层处理之前,虽然可以把物理层处理和ATM层处理一体化,但与把接收方的空信元的产生放在刚好在SW缓冲器之前的理由相同,最好把空信元的产生放在接近输出的地方。
而且,物理层处理程序2032从输出信元指示符队列2023中取出构成帧所必要的予定数的信元,然后构成帧。取出信元内容后把不要的指示符送入空的缓冲器指示符队列2022。缓冲器2021再次用于ATM层的信元存储。
在输出信元指示符队列2023中的信元不足以构成帧的情况下,物理层处理2033呼叫空信元生成处理程序2034,生在空信元特征,从而构成帧。作为接收方速度调整功能的空信元生成对应于物理层+空信元生成。这是因为物理层中的处理以帧为单位。
当由硬件构成的FIFO处在ATM层处理和物理层处理之间而该FIFO内的数据变空时,也可以用把予存于主存储器内的指示空信元特征的指示符和指示空信元的题头写入硬件的FIFO的功能来取代这种处理。
至此已说明的接收和发送处理,其处理时间的限制是严格的实时处理,即根据有无发送和接收数据来起动。处理帧全部数据的时间必须集中在一定的范围。
另一方面,剩下来的OAM处理过程是处理时间限制比较慢的实时处理,也可以在故障、OAM信元大多数到达后,OAM处理负荷增大了的情况下,再由OAM处理程序对它们一一接顺序进行处理。因此,在通话话路处理和OAM处理竞争CPU交换装置的系统资源(主要是CPU时间)时,最好优先分配给通话话路处理,把剩下的资源再分配给OAM处理。关于CPU时间的分配,只要使OAM处理的执行优先度低于通话话路处理的优先度就能简单地实现。
在此,说明从通话话路处理向OAM处理转移信元的方法以及在OAM处理中的OAM信元的处理。
用图19所示的接收方的ATM处理步骤1933检出OAM信元。ATM层处理把信元题头和有用荷载的存储指示符写入通话话路/OAM转移信元指示符队列1924。有用荷载予先存在通话话路/OAM处理的共有缓冲器1921内。通话话路处理1931中的OAM信元的处理到此结束。通话话路处理步骤1931的处理结束后,从控制转移到OAM处理步骤1941,开始进行OAM处理1941的动作。
OAM信元的处理中有故障通知、回送等各种各样的处理,各自的动作、处理时间也都很不同。因此,在处理时间受限的通话话路处理1931中只能进行向OAM处理1941发通知的处理。
OAM处理1941从信息色中读取OAM信元题头和有用荷载的指示符。从题头和有用荷载的值知道所必要的处理,从而起动处理。OAM处理1941把必须插入的信元的内容写入到只在处理起动时用而在结束处理后就不必要的共有缓冲器1921的有用荷载存储区(1信元部分)。该信元必须附加的题头值和指示符写入OAM/通话话路信元指示符队列1925中。
ATM层处理1933一旦检出空信元或者OAM信元(把OAM信元分支,废弃空信元),再从OAM/通话话路信息包中取出一个信元的信息来代替并插入信元流中。存储被废弃的空信元和向ATM开关1902输出的OAM信元的缓冲器,再次排到空缓冲器指示符队列1922中,物理层处理步骤1932存储输入的信元。
OAM处理和通话话路处理间的缓冲器存取的排他控制可以这样实现。即转移到OAM处理1941的共有缓冲器1921的存储器资源循环再利用。由于把信元缓冲器作为共有缓冲器,即使通话话路处理和OAM处理之间交换信元数增加,因两者之间转移的信息量只有信元题头和指示符部分,所以不必转移信元有用荷载。
通话话路处理1931收集的误码数和通过信元数的统计信息转移到OAM处理1941。而且,对方的误码率和信元题头变换表从OAM处理1941转移到通话话路处理1931用于通话话路处理。把指定通话话路处理1931的动作的信息,如路由标志表,从OAM处理1941送到通话话路处理1931。
因为通话话路处理1931插入在OAM处理1941中被起动,所以处理之间必须为交接这些值进行排他控制。
为了实现排他控制,也能使用一般的OS的信息包,但对于处理像统计信息这样的短数据来说额外操作太大。
实现表更新的排他控制的简单方式,有如下三种方法。
作为交接值的处理系统呼叫,禁止在它中间插入。把表的值的变更作为OS的系统呼叫,表值变更过程中禁止来自优先度更高的处理的插入。但是,由于禁止插入会使优先度高的处理的等待时间变大。
表的一个项目收在一个字中,如果读写用一条命令结束的话,用CPU自身的命令执行的排他性能达到处理之间的排他控制。可是,这仅限于信息的一贯性在一个项目中结束的情况,而不能用于多个项目要求时刻一贯性的场合。
如美国专利US5203024所公开的方法,表的一条项目未收在一个字中的情况下,在项中间设置"项目换写中间标志",OAM处理把该标志设置在项目换写中间,通话话路处理参照过设置该标志的项目的情况下把那个信元废弃掉。即在本实施例中,写有那个信元的共有存储器1921的指示符没输出到空缓冲器指示符队列1922中,而不排队。
至此所描述的处理可以作为一般的OS的任务来实现。这时,由来自硬件的插入起动通话话路的任务,而且,如果直接作为插入处理程序实现由来自CPU交换装置所特有的硬件的信号起动的通话话路处理的话,起动就更快。
至此所说明的处理优先度分配都汇集在图23中。高优先度基本上被分配到属于通话话路处理的处理中。其中,输出数据处理的优先度最高。OAM处理的优先度低。当然,通话话路处理必须在处理时间单位内结束。与此相比,OAM处理被通话话路处理中断,但是恢复到先前的状态。
下面参照图21、图22说明接收方和发送方由1个处理器构成的情况下的处理起动时期。
图21是接收方的处理定时图。上下方向是时间轴,向下方表示时间过程。
在这里,来自帧缓冲器1911和SW缓冲器1912的硬件插入起动通话话路处理1931。没有来自硬件的处理开始要求时,执OAM处理1941。
一旦送入来自帧缓冲器1911的插入,由于OAM处理的优先度最低,处理就被中断,通话话路处理的物理层处理被起动。物理层处理只对那些积存在帧缓冲器1911中的比特数据中被予先指定的数据进行处理,处理结束时,转移到ATM层处理。
ATM层处理对由物理层处理转移来的信元数据按顺序处理。可是,如果在此期间SW缓冲器1912中的信元数比予先指定的数少,SW缓冲器1912就产生插入输入,从而起动空信元生成处理。空信元生成处理产生定时数据,并把它写入SW缓冲器1912,而供给ATM-SW1902的特征不被去掉。
被予定数的空信元特征写入SW缓冲器1912,并结束信元生成处理,这时再开始ATM层处理。进一步把由物理层处理转移来的信元全都处理之后,ATM信元处理结束时,再开始执行OAM处理。
因为空信元生成处理在接收方处理中是优先度最高的,所以,不仅在ATM层处理执行中,就是在OAM处理和物理层处理的执行中它也都是优先执行。
如果在时间经过过程的同时在帧缓冲器1911内积存了比特数据时,就再起动通话话路处理。产生帧缓冲器1911的插入的条件是积存1帧语句的数据,而且在达到接收方行的位同步并且帧缓冲器1911正常存储数据的情况下,来自帧缓冲器1911的插入即通话话路处理起动的周期与1帧部分的帧时间一致。
图22是发送方的处理定时图,上下方向是时间轴,向下方表示时间的过程。
在这里,ATM层处理步骤和物理层(空信元生成)处理步骤分别由SW缓冲器2012和来自帧缓冲器2011的硬件插入信号起动。在没有来自硬件的处理开始要求时,执行OAM处理1941。
一旦ATM-SW1902送来予定的一定数以上的信元积存在SW缓冲器2012内时,OAM处理就被中断,而起动ATM层处理。在ATM层处理过程中,如果发送数据不足而由帧缓冲器2011产生插入时,起动物理层处理。在发送方物理层处理的优先度是最高的。
物理层处理根据输出信元指示符队列2023的信息把物理层处理前由ATM层处理过的信元取出来构成帧数据。这时,如果队列中没有使作成的帧填满的数据,就起动空信元生成处理来补充不足的信元。
这样,一旦生成予定数的帧数据,物理层处理结束,再开始被中断了的ATM层处理。ATM层处理把在SW缓冲器2012内的信元全都处理后它就结束,再次开通中断了的OAM处理。
若在处理期间,没有来自帧缓冲器2011的插入,则ATM层处理继续进行,到其结束时,再开始OAM处理。
时间经过的同时,由于输出而使帧缓冲器2011的比特数据减少,这时再次起动物理层处理程序。帧缓冲器2011的插入产生的条件是来自积存起一帧的数据,且帧缓冲器2011的插入即物理层处理起动的周期与一帧的帧时间相一致。
图24说明在发送方由一个处理器构成的情况下优先度的分配情况。OAM处理能容易地对发送方和接收方进行并行处理。从减少处理起动的额外操作的观点来看,希望把发送和接收方的OAM处理作为一个处理步骤来实现。
发送方处理基本上优先于接收方,这是为了把该交换装置内积存的数据尽快地送出去,从而能有效地使用全部缓冲器。假如让接收方处理优先的话,一旦延迟了发送方的处理,数据就要被存储在所有缓冲器中。
下面,用图25来说明图2所示的接收方、发送方的各个接口部分中的处理流程的另一个例子。
本例中,为了谋求通话话路处理的高速化,把分别进行的几个子程序进行子程序的合成。这里的子程序的合成的基本考虑是对一次写入寄存器的数据,能同时进行的处理全都同时进行完。
具体的处理流程说明如下。
在本例中也和图2的情况一样,由通话话路处理2501和OAM处理2502构成,通话话路处理2501进一步由发送方处理程序和接收方处理程序构成。
在接收方处理中,位同步部2511、网同步部2512从在接收方线路接口处收到的信号中提取网同步时钟,同时取得位同步,再把信号变换成位串。该位串送去行译码2521,把经译码的接收数据输入接收方输入FIFO2611。通话话路处理的数据接收子程序2521把这个输入FIFO2611中的数据写入到处理器内部的存储器上。对存储器上读入的数据首先由帧同步子程序2523确立帧同步。接着由信元同步子程序2524确立信元同步。然后,由几个ATM层处理子程序2525(具体是题头变换、附加路由标志、流量监视等子程序)施以接收方的ATM层处理。最后,由被合成的子程序2526(具体是译码处理和信元送出子程序)一面进行译码处理一面把能随时处理完的数据输出到接收方FIFO2612。
在发送方的处理中,从ATM开关到达的信元数据被输入到发送方输入FIFO2613。被输入到FIFO2613的信元数据由发送方合成的子程序2533(具体是信元接收和发送方的ATM层处理子程序)读入到处理器内部的存储器上,再进行发送方ATM层处理。在此,作为发送方的ATM层处理,是实施整形处理、削除路由标志处理和题头变换处理等。ATM层处理也可以只对题头部分进行,所以,可以不伴随负荷大的信元的有用荷载部分的存储器与寄存器之间的读出写入处理一起进行。因此,可以考虑把发送方、接收方的ATM层处理子程序合成起来进行,而其他子程序群则独立进行。其次,仍然用合成的子程序2532(具体说是发送方的物理层处理和数据发送子程序)一面进行编码、HEC生成、帧的制成等发送方的物理层处理,一面把能随时处理完的数据输出到发送方输出FIFO2614。
在本例中,表示了通话话路处理2501中的子程序合成方法。但是,这种子程序合成对于OAM处理2502的子程序群来说也是可以套用的,和通话话路处理的情况一样,在OAM处理中当然也可以考虑把能同时进行处理的子程序合成起来。
由于进行以上那样的子程序的合成,对于一次读入寄存器的数据来说,那时可能进行的处理可以全都进行完,所以能大大地减少数据在寄存-存储器之间的读出写入的次数,当然可以实现处理的高速化。
在此,在图25中所示的实施例的情况下,必须注意向信元开关送去的信元的译码处理。即在译码处理中,关面送出的信元的译码的结果所得到的2字节的作业变量值必须用于下一个信元的译码中。在该图上,把来自接口点的信元和来自OAM处理器的信元混合起来输入到译码子程序。这种情况下,虽然译码程序不处理来自OAM处理的信元,但对来自接口点的信元一面继续前期作业的变量值,同时必须进行处理。因此,也可以设置一个表示是否是从接口点输入的信元的标志作为译码子程序的独立变量。
另外,用该图所示的方式的情况下,必须注意到如果从接口点输入的OAM信元在OAM处理中分支的情况下,其信息部分必须一次通过编码子程序。
权利要求
1.一种交换装置,包括输入端口,具有接收构成ATM单元有关的信息数据的位串、并临时性保持该位串的输入FIFO存储器;按顺序进行帧同步处理和信元同步处理的处理器,所述帧同步处理通过参照所述输入FIFO存储器、在存储于该输入FIFO存储器的位串中检索表示帧开端的位特征,并核对该位特征是否存在于帧长的开头;所述信元同步处理先找到输入的位串中表示帧开端的位特征,并在该位特征按帧长的间隔顺序出现时、从该位特征最能够确认信元开端,和按信元单位进行信息数据的处理;以及输出端口,具有临时性存储由所述处理器作成的指示信元流的目标文件的信息、并将其输出的输出FIFO存储器。
2.根据权利要求1的交换装置,其特征在于当所述FIFO存储器中积存到预定量的信息数据时,所述处理器按顺序执行所述帧同步处理和所述ATM信元同步处理。
3.根据权利要求2的交换装置,其特征在于在所述输出FIFO存储器内存储的信息数据少于预定的数据量的情况下,所述处理器把预定特征的信息数据插入到所述输出FIFO存储器中。
全文摘要
一种交换装置,包括输入端口,具有接收构成ATM单元有关的信息数据的位串、并临时性保持该位串的输入FIFO存储器;按顺序进行帧同步处理和信元同步处理的处理器,所述帧同步处理通过参照所述输入FIFO存储器、在存储于该输入FIFO存储器的位串中检索表示帧开端的位特征,并核对该位特征是否存在于帧长的开头,所述信元同步处理先找到输入的位串中表示帧开端的位特征,并在该位特征按帧长的间隔顺序出现时、从该位特征最能够确认信元开端,和按信元单位进行信息数据的处理;以及输出端口,具有临时性存储由所述处理器作成的指示信元流的目标文件的信息、并将其输出的输出FIFO存储器。
文档编号H04L12/56GK1489331SQ0215783
公开日2004年4月14日 申请日期1994年12月1日 优先权日1993年12月1日
发明者正畑康郎, 角田启治, 高畠由彰, 桥本干生, 辻田武俊, 武田纯一, 木村成人, 一, 人, 俊, 彰, 正 康郎, 治, 生 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1