(57)【特許請求の範囲】
【請求項１】
二つのバッファを含み、二つのＣＰＵの間に接続されて、一方のＣＰＵから他方のＣＰＵへのデータ転送を中継するＣＰＵ接続回路であって、前記バッファのいずれか一方に送信側のＣＰＵによって蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、
前記送信側のＣＰＵによって前記バッファに蓄積されたデータ量が前記閾値に達した場合に、受信側のＣＰＵに前記バッファに蓄積されているデータの引き取りを要求するとともに、前記送信側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され前記受信側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも前記受信側のＣＰＵに対してオーバーラン信号を出力する手段とを有し、
前記閾値は、前記送信側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値であるＣＰＵ接続回路。
【請求項２】
前記バッファと前記送信側のＣＰＵとがシリアル伝送路を介して接続された、請求項１記載のＣＰＵ接続回路。
【請求項３】
前記バッファと前記受信側のＣＰＵとがパラレル伝送路を介して接続された、請求項１又は２記載のＣＰＵ接続回路。
【請求項４】
前記受信側のＣＰＵから入力される制御信号に応じて前記閾値を動的に設定する手段をさらに含むことを特徴とする請求項１から３のいずれか１項に記載のＣＰＵ接続回路。
【請求項５】
前記送信側のＣＰＵから前記バッファへのデータ転送速度よりも、前記受信側のＣＰＵが前記バッファからデータを引き取る速度の方が高速である、請求項１から４のいずれか１項に記載のＣＰＵ接続回路。
【請求項６】
前記送信側のＣＰＵが前記バッファへ送信するデータはパケットデータである、請求項１から５のいずれか１項に記載のＣＰＵ接続回路。
【請求項７】
二つのＣＰＵの間に接続され、データ伝送方向ごとに二つずつ含むバッファを用いて、各ＣＰＵ同士のデータ転送を中継するＣＰＵ接続回路であって、
各データ伝送方向について、上流側のＣＰＵによって前記バッファのいずれか一方に蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、
前記上流側のＣＰＵによって前記バッファに蓄積されたデータ量が前記閾値に達した場合に、下流側のＣＰＵに前記バッファに蓄積されているデータの引き取りを要求するとともに、前記上流側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記上流側のＣＰＵがデータの蓄積先とするバッファを変更する際に、以前に蓄積され前記下流側のＣＰＵに引き取られずに残っているデータが変更後のバッファに存在する場合には、少なくとも前記下流側のＣＰＵに対してオーバーラン信号を出力する手段とを有し、前記閾値は、前記上流側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値であるＣＰＵ接続回路。
【請求項８】
二つのバッファを含み、二つのＣＰＵの間に接続されて、各ＣＰＵ同士のデータ転送を中継するＣＰＵ接続回路であって、
前記バッファのいずれか一方に上流側のＣＰＵによって蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、
前記上流側のＣＰＵによって前記バッファに蓄積されたデータ量が前記閾値に達した場合に、下流側のＣＰＵに前記バッファに蓄積されているデータの引き取りを要求するとともに、前記上流側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記上流側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され前記下流側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも前記上流側のＣＰＵに対してオーバーラン信号を出力する手段とを有し、
前記閾値は、前記各ＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値であるＣＰＵ接続回路。
【請求項９】
前記二つのＣＰＵの双方が前記バッファにデータを転送しようとする場合に、いずれのＣＰＵを上流側とするかの優先順位が予め設定されている請求項８に記載のＣＰＵ接続回路。
【請求項１０】
それぞれの伝送方向について前記下流側のＣＰＵから入力される制御信号に応じて前記閾値を動的に設定する手段をさらに含むことを特徴とする請求項７から９のいずれか１項に記載のＣＰＵ接続回路。
【請求項１１】
前記上流側のＣＰＵから前記バッファへのデータ転送速度よりも、前記下流側のＣＰＵが前記バッファからデータを引き取る速度の方が高速であることを特徴とする請求項７から１０のいずれか１項に記載のＣＰＵ接続回路。
【請求項１２】
前記上流側のＣＰＵが前記バッファへ送信するデータはパケットデータであることを特徴とする請求項７から１１のいずれか１項に記載のＣＰＵ接続回路。
【請求項１３】
送信側のＣＰＵから二つのバッファを含む受信側のＣＰＵへとデータを転送して処理するデータ処理装置であって、
前記バッファのいずれか一方に送信側のＣＰＵによって蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、
前記送信側のＣＰＵによって前記バッファに蓄積されたデータ量が前記閾値に達した場合に、受信側のＣＰＵの演算処理手段に前記バッファに蓄積されているデータの引き取りを要求するとともに、前記送信側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され前記演算処理手段に引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも前記演算処理手段に対してオーバーラン信号を出力する手段とを有し、前記閾値は、前記送信側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値であるデータ処理装置。
【請求項１４】
前記バッファと前記送信側のＣＰＵとがシリアル伝送路を介して接続されたことを特徴とする請求項１３に記載のデータ処理装置。
【請求項１５】
前記バッファと前記演算処理手段とがパラレル伝送路を介して接続されたことを特徴とする請求項１３又は１４に記載のデータ処理装置。
【請求項１６】
前記演算処理手段が出力する制御信号に応じて前記閾値を動的に設定する手段をさらに含むことを特徴とする請求項１３から１５のいずれか１項に記載のデータ処理装置。
【請求項１７】
前記送信側のＣＰＵから前記バッファへのデータ転送速度よりも、前記受信側のＣＰＵの演算処理手段が前記バッファからデータを引き取る速度の方が高速であることを特徴とする請求項１３から１６のいずれか１項に記載のデータ処理装置。
【請求項１８】
前記送信側のＣＰＵが前記バッファへ送信するデータはパケットデータであることを特徴とする請求項１３から１７のいずれか１項に記載のデータ処理装置。
【請求項１９】
他のＣＰＵとデータ伝送路を介して接続された二つのバッファと、前記他のＣＰＵから転送されて前記バッファのいずれか一方に蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、
前記他のＣＰＵによって前記バッファに蓄積されたデータ量が前記閾値に達した場合に、前記バッファに蓄積されているデータの引き取りを演算処理手段に要求するとともに、前記他のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記他のＣＰＵから転送されてきたデータの蓄積先とするバッファを変更する際に、以前に蓄積され前記演算処理手段に引き取られずに残っているデータが変更後のバッファに存在する場合には、前記演算処理手段に対してオーバーラン信号を出力する手段とを有し、前記閾値は、前記他のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値である演算装置。
【請求項２０】
前記演算処理手段からの制御信号に応じて前記閾値を動的に設定する手段をさらに含むことを特徴とする請求項１９記載の演算装置。
【請求項２１】
前記他のＣＰＵから前記バッファへのデータ転送速度よりも、前記演算処理手段が前記バッファからデータを引き取る速度の方が高速であることを特徴とする請求項１９から２０のいずれか１項に記載の演算装置。
【請求項２２】
前記他のＣＰＵによって前記バッファへ蓄積されるデータはパケットデータであることを特徴とする請求項１９から２１のいずれか１項に記載の演算装置。
【請求項２３】
二つのバッファを備え二つのＣＰＵの間に接続されたＣＰＵ接続回路を用いたデータ転送方法であって、
前記バッファに、前記送信側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、
前記バッファの一方に送信側のＣＰＵによって蓄積されたデータ量が前記閾値に達したか否かを監視し、
送信側のＣＰＵによって蓄積されたデータ量が前記閾値に達した場合に、受信側のＣＰＵにデータの引き取りを要求するとともに、前記送信側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され前記受信側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも前記受信側のＣＰＵに対してオーバーラン信号を出力するデータ転送方法。
【請求項２４】
前記閾値を、前記受信側のＣＰＵから入力される制御信号に応じて動的に設定することを特徴とする請求項２３記載のデータ転送方法。
【請求項２５】
前記送信側のＣＰＵから前記バッファへのデータ転送速度よりも、前記受信側のＣＰＵが前記バッファからデータを引き取る速度の方が高速となるように前記二つのＣＰＵを接続することを特徴とする請求項２３から２４のいずれか１項に記載のデータ転送方法。
【請求項２６】
二つのバッファ及び演算処理手段を備えた受信側のＣＰＵと送信側のＣＰＵとを接続し、
前記バッファに、前記送信側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、
前記バッファの一方に、送信側のＣＰＵによって蓄積されたデータ量が前記閾値に達したか否かを監視し、
送信側のＣＰＵによって蓄積されたデータ量が前記閾値に達した場合に、前記演算処理手段にデータの引き取りを要求するとともに、前記送信側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、前記送信側のＣＰＵから転送されてきたデータの蓄積先とするバッファを切り換える際に、以前に蓄積され前記演算処理手段に引き取られずに残っているデータが切り替え後のバッファに存在する場合には、前記演算処理手段に対してオーバーラン信号を出力するデータ転送方法。
【請求項２７】
前記閾値は、前記演算処理手段が出力する制御信号に応じて動的に設定される請求項２６に記載のデータ転送方法。
【請求項２８】
前記送信側のＣＰＵから前記バッファへのデータ転送速度よりも、前記演算処理手段が前記バッファからデータを引き取る速度の方が高速となるように前記受信側のＣＰＵと前記送信側のＣＰＵとを接続することを特徴とする請求項２６から２７のいずれか１項に記載のデータ転送方法。
【請求項２９】
前記送信側のＣＰＵから前記バッファへパケットデータを送信することを特徴とする請求項２３から２８のいずれか１項に記載のデータ転送方法。
【請求項３０】
二つのＣＰＵの間に接続され、データ伝送方向ごとに二つずつのバッファを備えたＣＰＵ接続回路を用いたデータ転送方法であって、
各データ伝送方向について、前記バッファに、上流側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、
前記バッファの一方に、上流側のＣＰＵによって蓄積されたデータ量が前記閾値に達したか否かを監視し、上流側のＣＰＵによって蓄積されたデータ量が前記閾値に達した場合に、下流側のＣＰＵにデータの引き取りを要求するとともに、前記上流側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、上流側の前記ＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され下流側の前記ＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも前記下流側のＣＰＵに対してオーバーラン信号を出力するデータ転送方法。
【請求項３１】
二つのバッファを備え、二つのＣＰＵの間に接続されたＣＰＵ接続回路を用いたデータ転送方法であって、
前記二つのＣＰＵの双方が前記バッファにデータを転送しようとする場合に、いずれのＣＰＵを上流側とするかの優先順位を予め設定し、
各データ伝送方向について、前記バッファに、上流側のＣＰＵが前記バッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、
前記バッファの一方に、上流側のＣＰＵによって蓄積されたデータ量が前記閾値に達したか否かを監視し、
上流側のＣＰＵによって蓄積されたデータ量が前記閾値に達した場合に、下流側のＣＰＵにデータの引き取りを要求するとともに、前記上流側のＣＰＵからのデータの蓄積先を他方の前記バッファに変更し、上流側の前記ＣＰＵがデータの蓄積先とするバッファを変更する際に、以前に蓄積され下流側の前記ＣＰＵに引き取られずに残っているデータが変更後のバッファに存在する場合には、少なくとも前記下流側のＣＰＵに対してオーバーラン信号を出力するデータ転送方法。
【請求項３２】
前記閾値を、それぞれの伝送方向について前記下流側のＣＰＵから入力される制御信号に応じて動的に設定することを特徴とする請求項３０又は３１に記載のデータ転送方法。
【請求項３３】
各データ伝送方向について、前記上流側のＣＰＵから前記バッファへのデータ転送速度よりも、前記下流側のＣＰＵが前記バッファからデータを引き取る速度の方が高速となるように前記二つのＣＰＵを接続することを特徴とする請求項３０から３２のいずれか１項に記載のデータ転送方法。
【請求項３４】
各データ伝送方向について、前記上流側のＣＰＵから前記バッファへパケットデータを送信することを特徴とする請求項３０から３３のいずれか１項に記載のデータ転送方法。
【請求項３５】
通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、前記通信用ＣＰＵから前記アプリケーション用ＣＰＵへのデータ伝送路に請求項１から１２のいずれか１項記載のＣＰＵ接続回路が設置されたことを特徴とする携帯通信端末。
【請求項３６】
通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、前記通信用ＣＰＵが前記送信側のＣＰＵ、前記アプリケーション処理用のＣＰＵが前記受信側のＣＰＵとなって請求項１３から１８のいずれか１項に記載のデータ処理装置を形成している携帯通信端末。
【請求項３７】
通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、前記アプリケーション処理用のＣＰＵとして請求項１９から２２のいずれか１項に記載の演算装置が適用されている携帯通信端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二つのＣＰＵがそれらの間に設けられた二つのバッファを交互に切り換えて用いるための回路及び方法並びにその回路を用いた携帯通信端末に関し、特に、ＨＳＤＰＡ（High Speed Downlink Packet Access）通信対応の通信用ＣＰＵとアプリケーション用ＣＰＵとの接続回路及び方法並びに携帯通信端末に関する。
【背景技術】
【０００２】
従来、ＣＰＵを二つ備え、これらのＣＰＵ間でデータを送受信しつつ所定の処理を実行する情報処理装置が実用化されている。
例えば、通信用とアプリケーション用との二つのＣＰＵを備え、通信用ＣＰＵ（ＣＣＰＵ）で復調されたデータをアプリケーション用ＣＰＵ（ＡＣＰＵ）で処理することで、通信を伴う任意のアプリケーションを実行する携帯通信端末が知られている。【０００３】
通信用とアプリケーション用との二つのＣＰＵを備えた移動体通信端末に関連する技術としては、特許文献１に開示される「複数ＣＰＵ構成の通信機能付き携帯端末およびその制御方法」がある。【０００４】
しかし、データ転送レートの高い通信方式（例えばＨＳＤＰＡ）を採用すると、ＣＣＰＵからＡＣＰＵへ転送すべきデータ量が増大し、通信中の高負荷時に（特に、マルチタスク処理でアプリケーションを動かしているときに）、ＡＣＰＵ側でデータ処理が間に合わなくなる場合があった。【０００５】
これは、パケット通信では１パケット全体を受信しないと、そのパケットを処理できないためである。特に、ＨＳＤＰＡのようなデータ転送レートの高い通信方式では、単位時間当たりに処理する必要のあるパケット量が多くなるため、上記のことが特に問題となる。【０００６】
ここで例に挙げた移動体通信端末に限らず、一般的に、二つのＣＰＵを協働させる情報処理装置において両方のＣＰＵのデータ処理速度が同じとなることはほとんどない。よって、データの流れの上流側のＣＰＵのデータ処理の方が遅いならば、下流側のＣＰＵがデータの受信待ちをするだけで正常にデータを処理できるが、下流側のＣＰＵのデータ処理の方が遅いならば、上流側のＣＰＵが出力するデータを処理しきれなくなり、バッファオーバーランが発生してしまう。
【特許文献１】特開２００５−１４２９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明はかかる問題に鑑みてなされたものであり、二つのＣＰＵがそれらの間に設けられた二つのバッファを交互に切り換えて用いる回路であって、受け側のＣＰＵのデータ処理が追いつかなくなることを防ぐＣＰＵ接続回路、データ処理装置、演算装置及びこれらを用いた携帯通信端末並びにデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明は、第１の態様として、二つのバッファを含み、二つのＣＰＵの間に接続されて、一方のＣＰＵから他方のＣＰＵへのデータ転送を中継するＣＰＵ接続回路であって、バッファのいずれか一方に送信側のＣＰＵによって蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、送信側のＣＰＵによってバッファに蓄積されたデータ量が閾値に達した場合に、受信側のＣＰＵにバッファに蓄積されているデータの引き取りを要求するとともに、送信側のＣＰＵからのデータの蓄積先を他方のバッファに変更する手段とを有し、閾値は、送信側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値であることを特徴とするＣＰＵ接続回路を提供するものである。【０００９】
本発明の第１の態様においては、バッファと送信側のＣＰＵとがシリアル伝送路を介して接続されることが好ましい。また、バッファと受信側のＣＰＵとがパラレル伝送路を介して接続されることが好ましい。【００１０】
本発明の第１の態様の上記のいずれの構成においても、受信側のＣＰＵから入力される制御信号に応じて閾値を動的に設定する手段をさらに含むことが好ましい。また、送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され受信側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも受信側のＣＰＵに対してオーバーラン信号を出力することが好ましい。また、送信側のＣＰＵからバッファへのデータ転送速度よりも、受信側のＣＰＵが前記バッファからデータを引き取る速度の方が高速であることが好ましい。また、送信側のＣＰＵがバッファへ送信するデータはパケットデータであることが好ましい。【００１１】
また、上記目的を達成するため、本発明は、第２の態様として、二つのＣＰＵの間に接続され、データ伝送方向ごとに二つずつ含むバッファを用いて、各ＣＰＵ同士のデータ転送を中継するＣＰＵ接続回路であって、各データ伝送方向について、上流側のＣＰＵによってバッファのいずれか一方に蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、上流側のＣＰＵによってバッファに蓄積されたデータ量が閾値に達した場合に、下流側のＣＰＵにバッファに蓄積されているデータの引き取りを要求するとともに、上流側のＣＰＵからのデータの蓄積先を他方のバッファに変更する手段とを有し、閾値は、上流側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値であることを特徴とするＣＰＵ接続回路を提供するものである。【００１２】
また、上記目的を達成するため、本発明は、第３の態様として、二つのバッファを含み、二つのＣＰＵの間に接続されて、各ＣＰＵ同士のデータ転送を中継するＣＰＵ接続回路であって、バッファのいずれか一方に上流側のＣＰＵによって蓄積されたデータ量が所定の閾値に達した否かを監視する手段と、上流側のＣＰＵによってバッファに蓄積されたデータ量が閾値に達した場合に、下流側のＣＰＵにバッファに蓄積されているデータの引き取りを要求するとともに、上流側のＣＰＵからのデータの蓄積先を他方のバッファに変更する手段とを有し、閾値は、各ＣＰＵがバッファへ送信するデータの単位量よりも大きい値であり、上流側のＣＰＵからバッファへのデータ転送速度よりも、下流側のＣＰＵがバッファからデータを引き取る速度の方が高速であることを特徴とするＣＰＵ接続回路を提供するものである。【００１３】
本発明の第３の態様においては、二つのＣＰＵの双方がバッファにデータを転送しようとする場合に、いずれのＣＰＵを上流側とするかの優先順位が予め設定されていることが好ましい。【００１４】
本発明の第２又は第３の態様の上記のいずれの構成においても、それぞれの伝送方向について下流側のＣＰＵから入力される制御信号に応じて閾値を動的に設定する手段をさらに含むことが好ましい。また、上流側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され下流側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも下流側のＣＰＵに対してオーバーラン信号を出力することが好ましい。また、上流側のＣＰＵからバッファへのデータ転送速度よりも、下流側のＣＰＵがバッファからデータを引き取る速度の方が高速であることが好ましい。また、上流側のＣＰＵがバッファへ送信するデータはパケットデータであることが好ましい。【００１５】
また、上記目的を達成するため、本発明は、第４の態様として、送信側のＣＰＵから二つのバッファを含む受信側のＣＰＵへとデータを転送して処理するデータ処理装置であって、バッファのいずれか一方に送信側のＣＰＵによって蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、送信側のＣＰＵによってバッファに蓄積されたデータ量が閾値に達した場合に、受信側のＣＰＵの演算処理手段にバッファに蓄積されているデータの引き取りを要求するとともに、送信側のＣＰＵからのデータの蓄積先を他方のバッファに変更する手段とを有し、閾値は、送信側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値であることを特徴とするデータ処理装置を提供するものである。【００１６】
本発明の第４の態様においては、バッファと送信側のＣＰＵとがシリアル伝送路を介して接続されることが好ましい。また、バッファと演算処理手段とがパラレル伝送路を介して接続されることが好ましい。また、演算処理手段が出力する制御信号に応じて閾値を動的に設定する手段をさらに含むことが好ましい。【００１７】
本発明の第４の態様の上記のいずれの構成においても、送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され演算処理手段に引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも演算処理手段に対してオーバーラン信号を出力することが好ましい。また、送信側のＣＰＵからバッファへのデータ転送速度よりも、受信側のＣＰＵの演算処理手段がバッファからデータを引き取る速度の方が高速であることが好ましい。また、送信側のＣＰＵが前記バッファへ送信するデータはパケットデータであることが好ましい。【００１８】
また、上記目的を達成するため、本発明は、第５の態様として、他のＣＰＵとデータ伝送路を介して接続された二つのバッファと、他のＣＰＵから転送されてバッファのいずれか一方に蓄積されたデータ量が所定の閾値に達したか否かを監視する手段と、他のＣＰＵによってバッファに蓄積されたデータ量が閾値に達した場合に、バッファに蓄積されているデータの引き取りを演算処理手段に要求するとともに、他のＣＰＵからのデータの蓄積先を他方のバッファに変更する手段とを有し、閾値は、他のＣＰＵがバッファへ送信するデータの単位量よりも大きい値であることを特徴とする演算装置を提供するものである。【００１９】
本発明の第５の態様においては、閾値は、演算処理手段からの制御信号に応じて動的に設定されることが好ましい。また、他のＣＰＵから転送されてきたデータの蓄積先とするバッファを切り換える際に、以前に蓄積され演算処理手段に引き取られずに残っているデータが切り替え後のバッファに存在する場合には、演算処理手段に対してオーバーラン信号を出力することが好ましい。また、他のＣＰＵからバッファへのデータ転送速度よりも、演算処理手段がバッファからデータを引き取る速度の方が高速であることが好ましい。また、他のＣＰＵによってバッファへ蓄積されるデータはパケットデータであることが好ましい。【００２０】
また、上記目的を達成するため、本発明は、第６の態様として、バッファを二つ備え二つのＣＰＵの間に接続されたＣＰＵ接続回路を用いたデータ転送方法であって、バッファに、送信側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、バッファの一方に送信側のＣＰＵによって蓄積されたデータ量が閾値に達したか否かを監視し、送信側のＣＰＵによって蓄積されたデータ量が閾値に達した場合に、受信側のＣＰＵにデータの引き取りを要求するとともに、送信側のＣＰＵからのデータの蓄積先を他方のバッファに変更することを特徴とするＣＰＵ接続方法を提供するものである。【００２１】
本発明の第６の態様においては、閾値を、受信側のＣＰＵから入力される制御信号に応じて動的に設定することが好ましい。また、送信側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され受信側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも受信側のＣＰＵに対してオーバーラン信号を出力することが好ましい。また、送信側のＣＰＵからバッファへのデータ転送速度よりも、受信側のＣＰＵがバッファからデータを引き取る速度の方が高速となるように二つのＣＰＵを接続することが好ましい。【００２２】
また、上記目的を達成するため、本発明は、第７の態様として、二つのバッファ及び演算処理手段を備えた受信側のＣＰＵと送信側のＣＰＵとを接続し、バッファに、送信側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、バッファの一方に、送信側のＣＰＵによって蓄積されたデータ量が閾値に達したか否かを監視し、送信側のＣＰＵによって蓄積されたデータ量が閾値に達した場合に、演算処理手段にデータの引き取りを要求するとともに、送信側のＣＰＵからのデータの蓄積先を他方のバッファに変更することを特徴とするデータ転送方法を提供するものである。【００２３】
本発明の第７の態様においては、閾値は、演算処理手段が出力する制御信号に応じて動的に設定されることが好ましい。また、送信側のＣＰＵから転送されてきたデータの蓄積先とするバッファを切り換える際に、以前に蓄積され演算処理手段に引き取られずに残っているデータが切り替え後のバッファに存在する場合には、演算処理手段に対してオーバーラン信号を出力することが好ましい。また、送信側のＣＰＵからバッファへのデータ転送速度よりも、演算処理手段が前記バッファからデータを引き取る速度の方が高速となるように受信側のＣＰＵと送信側のＣＰＵとを接続することが好ましい。【００２４】
本発明の第６の態様又は第７の態様の上記のいずれの構成においても、送信側のＣＰＵからバッファへパケットデータを送信することが好ましい。【００２５】
また、上記目的を達成するため、本発明は、第８の態様として、二つのＣＰＵの間に接続され、データ伝送方向ごとに二つずつのバッファを備えたＣＰＵ接続回路を用いたデータ転送方法であって、各データ伝送方向について、バッファに、上流側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、バッファの一方に上流側のＣＰＵによって蓄積されたデータ量が閾値に達したか否かを監視し、上流側のＣＰＵによって蓄積されたデータ量が閾値に達した場合に、下流側のＣＰＵにデータの引き取りを要求するとともに、上流側のＣＰＵからのデータの蓄積先を他方のバッファに変更することを特徴とするデータ転送方法を提供するものである。【００２６】
また、上記目的を達成するため、本発明は、第９の態様として、二つのバッファを備え、二つのＣＰＵの間に接続されたＣＰＵ接続回路を用いたデータ転送方法であって、二つのＣＰＵの双方がバッファにデータを転送しようとする場合に、いずれのＣＰＵを上流側とするかの優先順位を予め設定し、各データ伝送方向について、バッファに、上流側のＣＰＵがバッファへ送信するデータの単位量よりも大きい値をデータ蓄積量の閾値として設定し、バッファの一方に、上流側のＣＰＵによって蓄積されたデータ量が閾値に達したか否かを監視し、上流側のＣＰＵによって蓄積されたデータ量が閾値に達した場合に、下流側のＣＰＵにデータの引き取りを要求するとともに、上流側のＣＰＵからのデータの蓄積先を他方のバッファに変更することを特徴とするデータ転送方法を提供するものである。【００２７】
本発明の第８又は第９の態様においては、閾値を、それぞれの伝送方向について下流側のＣＰＵから入力される制御信号に応じて動的に設定することが好ましい。また、上流側のＣＰＵがデータの蓄積先とするバッファを切り換える際に、以前に蓄積され下流側のＣＰＵに引き取られずに残っているデータが切り替え後のバッファに存在する場合には、少なくとも下流側のＣＰＵに対してオーバーラン信号を出力することが好ましい。また、各データ伝送方向について、上流側のＣＰＵからバッファへのデータ転送速度よりも、下流側のＣＰＵがバッファからデータを引き取る速度の方が高速となるように二つのＣＰＵを接続することが好ましい。また、各データ伝送方向について、上流側のＣＰＵからバッファへパケットデータを送信することが好ましい。【００２８】
また、上記目的を達成するため、本発明は、第１０の態様として、通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、通信用ＣＰＵから前記アプリケーション用ＣＰＵへのデータ伝送路に上記本発明の第１、第２又は第３の態様のいずれかの構成にかかるＣＰＵ接続回路が設置されたことを特徴とする携帯通信端末を提供するものである。【００２９】
また、上記目的を達成するため、本発明は、第１１の態様として、通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、通信用ＣＰＵが送信側のＣＰＵ、アプリケーション処理用のＣＰＵが受信側のＣＰＵとなって上記本発明の第４の態様のいずれかの構成にかかるデータ処理装置を形成していることを特徴とする携帯通信端末を提供するものである。【００３０】
また、上記目的を達成するため、本発明は、第１２の態様として、通信用のＣＰＵとアプリケーション処理用との二つのＣＰＵを有し、アプリケーション処理用のＣＰＵとして上記本発明の第５の態様のいずれかの構成にかかる演算装置が適用されていることを特徴とする携帯通信端末を提供するものである。
【発明の効果】
【００３１】
本発明によれば、二つのＣＰＵが各ＣＰＵ間に設けられた二つのバッファを交互に切り換えて用いる回路であって、受け側のＣＰＵのデータ処理が追いつかなくなることを防ぐＣＰＵ接続回路、データ処理装置、演算装置及びこれらを用いた携帯通信端末並びにデータ転送方法を提供できる。
【発明を実施するための最良の形態】
【００３２】
〔発明の原理〕
以下の説明では、二つのＣＰＵが通信用及びアプリケーション用である場合を例とするが、これ以外の処理を目的としたＣＰＵであっても同様である。
図１に、二つのＣＰＵとバッファリングＩＣとの接続状態を示す。
通信用ＣＰＵ（ＣＣＰＵ）１とアプリケーション用ＣＰＵ（ＡＣＰＵ）２との間のデータ転送において、二つのバッファとこれらのいずれをデータライト用とするかを交互に切り換えるスイッチとを有する回路が形成されたバッファリングＩＣ３を二つのＣＰＵの間に設置する。【００３３】
各ＣＰＵとバッファリングＩＣ３とは、バッファリングＩＣ３からＡＣＰＵ２へのデータ転送速度が、ＣＣＰＵ１からバッファリングＩＣ３へのデータ転送速度よりも高速となるように接続することが好ましい。ここでは、ＣＣＰＵ１とバッファリングＩＣ３とをシリアルＩＦ接続、バッファリングＩＣ３とＡＣＰＵ２とをバスＩＦ接続とすることで、上記条件を実現しているが、この他の接続方法であっても良い。【００３４】
二つのバッファのうちの一方（データライト用となっている方）の蓄積データ量が設定値に達すると、ＣＣＰＵ１から転送されてくるデータの蓄積先のバッファ（データライト用のバッファ）を他方へと切り換える。なお、設定値はバッファリングＩＣ３に設定がなされ、蓄積データ量の判断もバッファリングＩＣ３が行う。【００３５】
データライト用のバッファを切り換えたのち、バッファリングＩＣ３は、データ引取要求をＡＣＰＵ２へ出力する。ＡＣＰＵは２は、バッファリングＩＣ３からのデータ引取要求を受け取ると、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）で切り替え前にデータライト用だったバッファにデータを取りに行く。この際、バッファリングＩＣ３のバッファはＡＣＰＵ２からはメモリとして見えているため、メモリ上のデータを読みに行くのと同様の動作を行う。【００３６】
再びバッファの蓄積データ量が設定値に達すると、バッファリングＩＣ３は、データライト用のバッファをもう一方（最初にデータライト用だった方）に切り替えて同様にデータを蓄積するとともに、データ引取要求をＡＣＰＵ２へ出力し、同様の動作を繰り返す。【００３７】
なお、ＣＣＰＵ１は、バッファリングＩＣ３の存在を認識してはおらず、単にデータを出力するのみである。【００３８】
上記動作を行うことにより、バッファリングＩＣ３からのデータ引取要求を受けてすぐにＡＣＰＵ２がデータを引き取れなくても、データ損失が発生することはない。これにより、ＡＣＰＵ２のデータ処理が追いつかなくなることを防止できる。【００３９】
なお、設定値はＡＣＰＵ２が実行するアプリケーションに応じて任意に設定可能である。設定値を大きくした場合には、ＡＣＰＵ２のデータ引き取りの遅れによるデータ損失防止の効果が大きくなるが、ＡＣＰＵ２でのデータ処理に遅延が生じる。逆に、設定値を小さくした場合には、ＡＣＰＵ２のデータ引き取りの遅れによるデータ損失防止の効果は小さくなるが、ＡＣＰＵ２でのデータ処理がリアルタイムに近くなる。よって、ＡＣＰＵ２が実行するアプリケーションの種類に応じて設定値を定め、データ損失防止の効果とデータ処理のリアルタイム性とのバランスを調整すればよい。【００４０】
また、設定値は必ずしも二つのバッファに共通の値である必要はなく、それぞれのバッファに異なる値を設定しても良い。さらに、設定値はバッファの一部のみを使用する値に限定されることはなく、バッファ全体を使用することを妨げない。例えば、Ｘバイトのバッファに対してＸバイトという設定値を設定してもよい。【００４１】
設定値は、高く設定するとバッファあふれ防止効果が大きくなるとともにＡＣＰＵの動作率を低くできるが（ＡＣＰＵがデータを一度にまとめてバッファから引き取れるため）、バッファにある程度データがたまるまでＡＣＰＵ側にデータが引き取られないため、遅延が発生する。よって、目的に応じて、バッファあふれ防止効果とデータ遅延量とのバランスが最適となるように設定すればよい。
例えば、ＣＣＰＵとＡＣＰＵとでパケットデータをやりとりする場合には、１パケット分の容量をバッファの設定値とすると良い。これは、パケットデータの場合には、１パケット分のデータが揃って始めてアプリケーションでの処理が可能となる（換言すると、１パケットに満たないデータサイズごとにＡＣＰＵがバッファからデータを引き取ったとしても、ＡＣＰＵは引き取ったデータを処理できず、１パケット分のデータが揃った段階で処理することとなる。）ためである。【００４２】
ただし、両方のバッファの設定値がＣＣＰＵ１から入力されるデータの単位量と同じであると、ＡＣＰＵ２のデータ引き取りの遅れが即バッファあふれにつながることとなる。このため、どちらかのバッファの設定値は少なくともＣＣＰＵ１から入力されるデータの単位量よりも大きく設定する必要がある。
具体例を挙げると、ＣＣＰＵ１が１バイト単位でデータを処理（バッファリングＩＣ３へ入力）する場合、両方のバッファの設定値がともに１バイトであると、ＡＣＰＵ２のデータ引き取りが遅れたとたんにバッファあふれが発生してしまい、データ損失防止効果が得られない。この場合には、どちらかのバッファの設定値を２バイト以上とすることでデータ損失防止の効果が得られる。【００４３】
バッファの容量は、大きい分には動作上に不都合はない。ただし、容量の大きいバッファはコストが高くサイズも大きいため、バッファのごく一部しか使用しないような設定値を設定すると、製造コストなどの点では不利となる。
一方、バッファの容量が少なすぎると、バッファの全容量を使用するように設定値を設定してもバッファあふれの効果が十分に得られない可能性が生じる。このため、ＣＣＰＵから送られるデータのサイズやＡＣＰＵのデータ処理能力に応じて、バッファあふれ防止効果を得るのに十分な容量を備えたバッファを適用することが好ましい。【００４４】
以下、上記原理に基づく本発明の好適な実施の形態について説明する。【００４５】
〔第１の実施例〕
本発明を好適に実施した第１の実施例について説明する。本実施例にかかるデータ処理装置は、図１に示したように、通信用ＣＰＵ（ＣＣＰＵ）１とアプリケーション用ＣＰＵ（ＡＣＰＵ）２との間に、二つのバッファとこれらを交互に切り換えるスイッチとを有する回路が形成されたバッファリングＩＣ３が設置された構成である。【００４６】
図２に、バッファリングＩＣ３内部の構成を示す。バッファリングＩＣ３の内部にはＣＰＵ接続回路が形成されている。
バッファリングＩＣ３は、２面分のデータを格納できるバッファを有する。これらのうち、一面はＣＣＰＵ１からのデータライト用として使用され、もう一面はＡＣＰＵ２によるデータリーダ用として使用される。これらは、交互に切り換えて使用される。【００４７】
また、バッファリングＩＣ３内のメモリコントローラ３０１により、一面分のバッファに蓄積可能なデータ量が任意に設定されている。【００４８】
バッファリングＩＣ３からＡＣＰＵ２に対するデータの引取要求には、「データ引取要求信号」が用いられる。この信号は、ＡＣＰＵ２からのデータリード用バッファが読み出し可能な条件を満たしたタイミング（データライト用からデータリード用に切り替わったタイミング）でアサートし、ＡＣＰＵ２によりバッファ内の前データが読み出されたタイミングでネゲートする。【００４９】
また、バッファリングＩＣ３は、両方のバッファにデータが格納された状態で、さらにＣＣＰＵ１からのデータを受信した場合、オーバラン割り込み信号（Ｏ．Ｖ．Ｒ）を生成し、データ損失が生じたことをＡＣＰＵ２側に通知可能である。【００５０】
ＡＣＰＵ２は、割り込み検出時、各システムに適したエラー処理を行う。【００５１】
さらに、バッファリングＩＣ３はＡＣＰＵ２から制御可能なフロー制御信号の機能を有する。本信号を制御することにより、ＣＣＰＵ１に対しデータ再送を通知できる。【００５２】
図３に、バッファリングＩＣ３の動作の流れを示す。ここで、初期状態ではバッファ３０２がデータライト用、バッファ３０３がデータリード用であるとする。
ＣＣＰＵ１からのデータ受信すると、メモリコントローラ３０１は、データライト用のバッファ（バッファ３０２）に前回蓄積したデータが残っているか否かを確認する（ステップＳ１０１）。データが残っているならば、オーバーラン処理を行う。【００５３】
データライト用のバッファにデータが残っていなければ（ステップＳ１０１／Ｙｅｓ）、ＣＣＰＵ１から受信したデータをデータライト用のバッファに蓄積し、データライト用バッファのデータ蓄積量が設定値に達したか否かを確認する（ステップＳ１０２）。【００５４】
データライト用のバッファのデータ蓄積量が設定値に達していなければ（ステップＳ１０２／Ｎｏ）、メモリコントローラ３０１は設定値に達するまでＣＣＰＵ１から受信したデータをデータライト用バッファに蓄積する。【００５５】
データライト用バッファのデータ蓄積量が設定値に達したら（ステップＳ１０２／Ｙｅｓ）、メモリコントローラ３０１は、データライト用のバッファをバッファ３０２からバッファ３０３へと切り換える（ステップＳ１０３）。そして、メモリコントローラ３０１は、バッファ３０２に蓄積されているデータの引取要求をＡＣＰＵ２へ送信する（ステップＳ１０４）。【００５６】
メモリコントローラ３０１は、データライト用に切り換えたバッファ３０３に前回蓄積されていたデータが残っているか否かを確認する（ステップＳ１０１）。データが残っているならば、オーバーラン処理を行う。【００５７】
データライト用のバッファにデータが残っていなければ（ステップＳ１０１／Ｙｅｓ）、ＣＣＰＵ１から受信したデータをデータライト用のバッファに蓄積し、データライト用のバッファのデータ蓄積量が設定値に達したか否かを確認する（ステップＳ１０２）。【００５８】
データライト用のバッファのデータ蓄積量が設定値に達していなければ（ステップＳ１０２／Ｎｏ）、メモリコントローラ３０１は設定値に達するまでＣＣＰＵ１から受信したデータをデータライト用バッファに蓄積する。【００５９】
データライト用バッファのデータ蓄積量が設定値に達したら（ステップＳ１０２／Ｙｅｓ）、メモリコントローラ３０１は、データライト用のバッファをバッファ３０３からバッファ３０２へと切り換える（ステップＳ１０３）。そして、メモリコントローラ３０１は、バッファ３０３に蓄積されているデータの引取要求をＡＣＰＵ２へ送信する（ステップＳ１０４）。【００６０】
以降、ＣＣＰＵ１からのデータを受信している間、上記同様の処理を繰り返す。【００６１】
図４に、バッファリングＩＣ３を用いたＣＰＵ間のデータ転送動作の一例を示す。
ここで、ＣＣＰＵ１からバッファリングＩＣ３へのデータ転送速度と、バッファリングＩＣ３からＡＣＰＵ２へのデータ転送速度との比を１：４であるとする。【００６２】
時刻ｔ０において、ＣＣＰＵ１からバッファリングＩＣ３へデータが入力され始める。メモリコントローラ３０１は、入力されたデータをバッファ３０２に蓄積する。【００６３】
時刻ｔ１において、バッファ３０２のデータ蓄積量が設定値に達する。メモリコントローラ３０１は、データライト用のバッファをバッファ３０３へと切り換えるとともに、バッファ３０２に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。【００６４】
時刻ｔ２において、バッファ３０２に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００６５】
時刻ｔ３において、バッファ３０３のデータ蓄積量が設定値に達すると、メモリコントローラ３０１は、データライト用のバッファをバッファ３０２へと切り換えるとともに、バッファ３０３に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。【００６６】
時刻ｔ４において、バッファ３０２に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００６７】
以降同様の処理が繰り返され、時刻ｔ８においてデータ引取要求信号がネゲートすることでＣＣＰＵ１からＡＣＰＵ２へのデータの転送が完了する。【００６８】
図５に、バッファリングＩＣ３を用いたＣＰＵ間のデータ転送動作の別の一例を示す。
上記同様に、ＣＣＰＵ１からバッファリングＩＣ３へのデータ転送速度と、バッファリングＩＣ３からＡＣＰＵ２へのデータ転送速度との比を１：４であるとする。【００６９】
時刻ｔ０において、ＣＣＰＵ１からバッファリングＩＣ３へデータが入力され始める。メモリコントローラ３０１は、入力されたデータをバッファ３０１に蓄積する。【００７０】
時刻ｔ１において、バッファ３０２のデータ蓄積量が設定値に達する。メモリコントローラ３０１は、データライト用のバッファをバッファ３０３へと切り換えるとともに、バッファ３０２に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。【００７１】
時刻ｔ２において、バッファ３０２に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００７２】
時刻ｔ３において、バッファ３０３のデータ蓄積量が設定値に達すると、メモリコントローラ３０１は、データライト用のバッファをバッファ３０２へと切り換えるとともに、バッファ３０３に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。ここでＡＣＰＵ２はビジー状態にあり、データの引取要求を受けても即座にはデータの引き取りを開始できていない。【００７３】
時刻ｔ４１において、ＡＣＰＵ２はバッファ３０３に蓄積されているデータの引き取りを開始する。なお、時刻ｔ３から時刻ｔ４１までの間隔（Ｔ３）は、バッファのデータ蓄積量が設定値に達するまでの時間（Ｔ１）とＡＣＰＵ２がバッファからデータを引き取るのに要する時間（Ｔ２）との差（Ｔ１−Ｔ２）よりも短い（ここでは、蓄積所要時間Ｔ１＝４ａ、引き取り所要時間がＴ２＝ａ、遅延時間Ｔ３＝２ａ）ものとする。【００７４】
時刻ｔ４２において、バッファ３０３に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００７５】
時刻ｔ５において、バッファ３０２のデータ蓄積量が設定値に達する。メモリコントローラ３０１は、データライト用のバッファをバッファ３０３へと切り換えるとともに、バッファ３０２に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。【００７６】
時刻ｔ６において、バッファ３０２に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００７７】
以降同様の処理が繰り返され、時刻ｔ８においてデータ引取要求信号がネゲートすることでＣＣＰＵ１からＡＣＰＵ２へのデータの転送が完了する。【００７８】
図６に、バッファリングＩＣ３を用いたＣＰＵ間のデータ転送動作のさらに別の一例を示す。
上記同様に、ＣＣＰＵ１からバッファリングＩＣ３へのデータ転送速度と、バッファリングＩＣ３からＡＣＰＵ２へのデータ転送速度との比を１：４であるとする。【００７９】
時刻ｔ０において、ＣＣＰＵ１からバッファリングＩＣ３へデータが入力され始める。メモリコントローラ３０１は、入力されたデータをバッファ３０１に蓄積する。【００８０】
時刻ｔ１において、バッファ３０２のデータ蓄積量が設定値に達する。メモリコントローラ３０１は、データライト用のバッファをバッファ３０３へと切り換えるとともに、バッファ３０２に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。【００８１】
時刻ｔ２において、バッファ３０２に蓄積されていたデータのＡＣＰＵ２への引き取りが完了し、データ引取要求信号がネゲートする。【００８２】
時刻ｔ３において、バッファ３０３のデータ蓄積量が設定値に達すると、メモリコントローラ３０１は、データライト用のバッファをバッファ３０２へと切り換えるとともに、バッファ３０３に蓄積されているデータの引取要求信号をアサートしＡＣＰＵ２へ出力する。ここでＡＣＰＵ２はビジー状態にあり、データの引取要求を受けても即座にはデータの引き取りを開始できていない。【００８３】
時刻ｔ４３において、ＡＣＰＵ２はバッファ３０３に蓄積されているデータの引き取りを開始する。なお、時刻ｔ３から時刻ｔ４３までの間隔Ｔ３は、バッファのデータ蓄積量が設定値に達するまでの時間（Ｔ１）とＡＣＰＵ２がバッファからデータを引き取るのに要する時間（Ｔ２）との差（Ｔ１−Ｔ２）よりも長い（蓄積所要時間Ｔ１＝４ａ、引き取り所要時間Ｔ２＝ａ、遅延時間Ｔ３＝３．３ａ）ものとする。【００８４】
時刻ｔ４４において、バッファ３０２のデータ蓄積量が設定値に達する。メモリコントローラ３０１は、データライト用のバッファをバッファ３０３へと切り換えようとするが、この時点ではバッファ３０３に蓄積されているデータのＡＣＰＵ２への引き取りが完了していない。よって、メモリコントローラ３０１は、オーバーラン割り込み信号（Ｏ．Ｖ．Ｒ）を生成し、データ損失が生じたことをＡＣＰＵ２側に通知する。【００８５】
上記の例から明らかなように、ＡＣＰＵ２のデータ引き取りの遅延時間Ｔ３が、バッファのデータ蓄積量が設定値に達するまでの時間（Ｔ１）とＡＣＰＵ２がバッファからデータを引き取るのに要する時間（Ｔ２）との差（Ｔ１−Ｔ２）よりも短ければ、バッファあふれによるデータ損失の発生を防止できる。【００８６】
このように、本実施例にかかるＣＰＵ接続回路によれば、ＡＣＰＵ−ＣＣＰＵ間のシリアル転送速度を、ＣＣＰＵの平均処理速度に見合う速度に向上できる。【００８７】
〔第２の実施例〕
本発明を好適に実施した第２の実施例について説明する。
本実施例にかかるデータ処理装置は、第１の実施例と同様に、ＣＣＰＵ１とＡＣＰＵ２との間にバッファリングＩＣ３１が接続された構成である。ただし、図７に示すように、本実施例においては、バッファリングＩＣ３１（メモリコントローラ３１１）にはＡＣＰＵ２からアプリケーション通知信号が入力される。【００８８】
アプリケーション通知信号は、ＡＣＰＵ２が、どのアプリケーションを実行するのかを特定する情報である。【００８９】
ＡＣＰＵ２においてＣＣＰＵ１とのデータの授受を伴うアプリケーションが起動されると、ＡＣＰＵ２はバッファリングＩＣ３１に対してアプリケーション通知信号を出力する。
バッファリングＩＣ３がアプリケーション通知信号を受信すると、メモリコントローラ３１１は、起動されたアプリケーションがＣＣＰＵ１からのデータを受信するために最適となる閾値をバッファ３１２，３１３に設定する。【００９０】
このように、ＡＣＰＵ２が実行するアプリケーションの種類に応じて、バッファ３１２、３１３に設定する閾値を変化させることにより、アプリケーションの種類に応じて最適な条件（データ損失の発生を抑え、かつＡＣＰＵ側の引取遅延が生じにくい）でＣＣＰＵ１からＡＣＰＵ２へのデータ転送を行える。【００９１】
なお、ＡＣＰＵ２が複数のアプリケーションを同時に実行してマルチタスク処理を行う場合には、実行するアプリケーションの組み合わせに応じてバッファの設定値を変更しても良いことは言うまでもない。【００９２】
〔第３の実施例〕
本発明を好適に実施した第３の実施例について説明する。
図８に、本実施例にかかるデータ処理装置の構成を示す。図に示すように、本実施例においては、第１の実施例におけるバッファリングＩＣ３の機能がバッファリング部３０としてＡＣＰＵ２１内に取り込まれた構成となっている。
データ処理装置全体としての動作は、上記第１の実施例と同様であるため、重複する説明は省略する。【００９３】
〔第４の実施例〕
本発明を好適に実施した第４の実施例について説明する。
図９に本実施例にかかるデータ処理装置の構成を示す。本実施例にかかるデータ処理装置は、第１のＣＰＵ１０及び第２のＣＰＵ２０のそれぞれとバッファリングＩＣ３２とはシリアルＩＦ及びメモリＩＦを介して接続されている。そして、第１のＣＰＵ１０と第２のＣＰＵ２０とは、バッファリングＩＣ３２を介して双方向にデータを転送する。【００９４】
図１０に、バッファリングＩＣ３２内部のＣＰＵ接続回路の構成を示す。
本実施例においては、バッファリングＩＣ３２は、メモリコントローラ３２１は一つだけであるが、メモリ、シリアルＩＦ及びバスＩＦを二つずつ（メモリ３２２ａ，３２２ｂ、シリアルＩＦ３２３ａ，３２３ｂ、バスＩＦ３２４ａ，３２４ｂ）備えており、一方（メモリ３２２ａ、シリアルＩＦ３２３ａ、バスＩＦ３２４ａ）が第１のＣＰＵ１０から第２のＣＰＵ２０へのデータ伝送用、他方（メモリ３２２ｂ、シリアルＩＦ３２３ｂ、バスＩＦ３２４ｂ）が第２のＣＰＵ２０から第１のＣＰＵ１０へのデータ伝送用として用いられる。【００９５】
第１のＣＰＵ１０から第２のＣＰＵ２０へのデータ転送及び第２のＣＰＵ２０から第１のＣＰＵ１０へのデータ転送時の動作については上記第１の実施例におけるＣＣＰＵ１からＡＣＰＵ２への転送動作と同様である（メモリコントローラ３２１が両方向のデータ伝送を個別に制御する）ため、重複する説明は割愛する。【００９６】
〔第５の実施例〕
本発明を好適に実施した第５の実施例について説明する。
本実施例にかかるデータ処理装置の構成は、上記第４の実施例にかかるデータ処理装置と同様であり、第１のＣＰＵ及び第２のＣＰＵのそれぞれとバッファリングＩＣ３３とはシリアルＩＦ及びメモリＩＦを介して接続されている。そして、第１のＣＰＵと第２のＣＰＵとは、バッファリングＩＣ３３を介して双方向にデータを転送する。ただし、図１１に示すように、本実施例においては、第１のＣＰＵ及び第２のＣＰＵのそれぞれからデータライト要求信号がバッファリングＩＣ３３へと入力される。データライト要求信号は、ＣＰＵがバッファにデータを書き込む（転送する）のに先立ってバッファリングＩＣ３３内のメモリコントローラ３３１へ入力される。【００９７】
図１２に、バッファリングＩＣ３３内部のＣＰＵ接続回路の構成を示す。
本実施例においては、バッファリングＩＣ３３は、シリアルＩＦ及びバスＩＦを二つずつ（シリアルＩＦ３３３ａ，３３３ｂ、バスＩＦ３３４ａ，３３４ｂ）備えており、一方（シリアルＩＦ３３３ａ、バスＩＦ３３４ａ）が第１のＣＰＵから愛２のＣＰＵへのデータ伝送用、他方（シリアルＩＦ３３３ｂ、バスＩＦ３３４ｂ）が第２のＣＰＵから第１のＣＰＵへのデータ伝送用として用いられる。なお、第４の実施例とは異なりメモリ３３２を一つ（バッファ２面分）しか備えていない。【００９８】
本実施例にかかるデータ処理装置は、第１のＣＰＵ１０及び第２のＣＰＵ２０が一つメモリ３３２を共用するため、これらが同時にデータライト動作を行わないように制御する必要がある。このため、メモリコントローラ３３１は、各ＣＰＵからのデータライト要求に基づいて以下のような制御を行う。
第１のＣＰＵ１０と第２のＣＰＵ２０とに、データライト動作の優先順位を設定しておき、両方のＣＰＵがデータライト動作を要求する場合には、優先順位の高い方にデータライト動作を行わせる。優先順位が低い方がデータライト動作を行っている最中に優先順位の高い方からデータライト動作の要求があった場合には、処理中の動作を継続しても良いし、処理を中断して優先順位の高い方のデータライト動作を実行しても良い。【００９９】
なお、第１のＣＰＵ１０と第２のＣＰＵ２０とが、フロー制御信号を用いて相手側のＣＰＵにデータ送出タイミングを指示することによって、排他的にデータライト動作を行うように予めソフトウェアを設定しておいてもよい。この場合には、各ＣＰＵからのデータライト要求は不要となる。【０１００】
データ転送そのものの動作（バッファ）は上記第１の実施例と同様であるため、説明は割愛する。【０１０１】
〔第６の実施例〕
本発明を好適に実施した第６の実施例について説明する。
図１３に、本実施例にかかる携帯電話端末の構成を示す。この携帯電話端末は、通信用ＣＰＵとアプリケーション用ＣＰＵとの二つのＣＰＵを備えたデュアルＣＰＵ携帯電話端末である。【０１０２】
本実施例にかかる携帯電話端末の動作について説明する。
アンテナ２１において受信された無線信号は、無線回路２２で電気信号に変換され、さらにアナログ信号処理部２３においてデジタル信号に変換される。アナログ信号処理部２３においてデジタルに変換された信号は、デジタル信号処理部２４を介してＣＣＰＵ１に入力される。ＣＣＰＵ１に入力されたデジタル信号は、デジタルデータとしてバッファリングＩＣ３を介してＡＣＰＵ２へと送られる。ＡＣＰＵ２は、入力されたデジタルデータを処理し、処理したデータをメモリ２５に蓄積したり、音声出力部２６から音声を出力したり、表示部２８に画像を表示させるなどの処理を行う。
一方、ＡＣＰＵ２は、操作部２６を介して行われた入力操作や音声入力部２９を介して入力された音声を処理して、処理したデータをＣＣＰＵ１へと転送する。ＣＣＰＵ１はＡＣＰＵ２から入力されたデータをデジタル信号処理部２４へと送りアナログの電気信号に変換する。デジタル信号処理部２４は、アナログ電気信号をアナログ信号処理部２３を介して無線回路２２へ入力する。無線回路２２は、入力されたアナログ電気信号を無線信号に変換しアンテナ２１を介して送出する。【０１０３】
ＣＣＰＵ１とＡＣＰＵ２との間に上記第１の実施例と同様のバッファリングＩＣを設けることにより、通信中にＡＣＰＵがビジーとなっても、バッファあふれが発生しにくくなり、通信品質の安定性が向上する。【０１０４】
ＣＣＰＵからＡＣＰＵへのデータ転送動作そのものは、上記第１の実施例と同様であるため、重複する説明は省略する。【０１０５】
なお、ここではＣＣＰＵとＡＣＰＵとは第１の実施例と同様の回路構成で接続するものとしたが、第２又は第３の実施例と同様の回路構成でＣＣＰＵとＡＣＰＵとを接続しても良いことは言うまでもない。
また、第４又は第５の実施例における第１のＣＰＵ及び第２のＣＰＵをＣＣＰＵ及びＡＣＰＵとして適用可能であることも自明である。【０１０６】
なお、上記実施例は本発明の好適な実施の一例であり、本発明はこれに限定されることはない。
例えば、上記各実施例においては、２面分のバッファをデータリード用、データライト用に交互に切り換えて用いる構成を例としたが、図１４に示すように３以上のバッファを備える構成として、これらをローテーションして用いるようにしても良い。
このように、本発明は様々な変形が可能である。【０１０７】
この出願は、２００６年７月２８日に出願された日本出願特願２００６−２０６８０８を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【図面の簡単な説明】
【０１０８】
【図１】本発明を好適に実施した第１の実施例にかかるデータ処理装置の二つのＣＰＵとバッファリングＩＣとの接続状態を示す図である。
【図２】バッファリングＩＣの内部の構成を示す図である。
【図３】バッファリングＩＣの動作の流れを示すフローチャートである。
【図４】バッファリングＩＣを用いたＣＰＵ間のデータ転送動作の一例を示す図である。
【図５】バッファリングＩＣを用いたＣＰＵ間のデータ転送動作の一例を示す図である。
【図６】バッファリングＩＣを用いたＣＰＵ間のデータ転送動作の一例を示す図である。
【図７】本発明を好適に実施した第２の実施例にかかるデータ処理装置のバッファリングＩＣの構成を示す図である。
【図８】本発明を好適に実施した第３の実施例にかかるデータ処理装置のＡＣＰＵの構成を示す図である。
【図９】本発明を好適に実施した第４の実施例にかかるデータ処理装置の構成を示す図である。
【図１０】第４の実施例にかかるデータ処理装置のバッファリングＩＣの構成を示す図である。
【図１１】本発明を好適に実施した第５の実施例にかかるデータ処理装置の構成を示す図である。
【図１２】第５の実施例にかかるデータ処理装置のバッファリングＩＣの構成を示す図である。
【図１３】本発明を好適に実施した第６の実施例にかかる携帯電話端末の構成を示す図である。
【図１４】３面分のバッファを備えたバッファリングＩＣの構成を示す図である。
【符号の説明】
【０１０９】
１    通信用ＣＰＵ
２、２０１    アプリケーション用ＣＰＵ
３、３１、３２、３３    バッファリングＩＣ
１０    第１のＣＰＵ
２０    第２のＣＰＵ
２１    アンテナ
２２    無線回路
２３    アナログ信号処理部
２４    デジタル信号処理部
２５、３２２ａ、３２２ｂ    メモリ
２６    操作部
２７    音声出力部
２８    表示部
２９    音声入力部
３０    バッファリング部
３０１、３０２、３１２、３１３    バッファ
３０３、３１１、３２１、３３１    メモリコントローラ
３２３ａ、３２３ｂ、３３３ａ、３３３ｂ    シリアルＩＦ
３２４ａ、３２４ｂ、３３４ａ、３３４ｂ    バスＩＦ
【図１】
0005168144.tif 000002
【図２】
0005168144.tif 000003
【図３】
0005168144.tif 000004
【図４】
0005168144.tif 000005
【図５】
0005168144.tif 000006
【図６】
0005168144.tif 000007
【図７】
0005168144.tif 000008
【図８】
0005168144.tif 000009
【図９】
0005168144.tif 000010
【図１０】
0005168144.tif 000011
【図１１】
0005168144.tif 000012
【図１２】
0005168144.tif 000013
【図１３】
0005168144.tif 000014
【図１４】
0005168144.tif 000015