JP2004012871A - Data transfer control system, electronic appliance, and data transfer control method - Google Patents

Data transfer control system, electronic appliance, and data transfer control method Download PDF

Info

Publication number
JP2004012871A
JP2004012871A JP2002167095A JP2002167095A JP2004012871A JP 2004012871 A JP2004012871 A JP 2004012871A JP 2002167095 A JP2002167095 A JP 2002167095A JP 2002167095 A JP2002167095 A JP 2002167095A JP 2004012871 A JP2004012871 A JP 2004012871A
Authority
JP
Japan
Prior art keywords
data
transfer
controller
memory
amount
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.)
Withdrawn
Application number
JP2002167095A
Other languages
Japanese (ja)
Inventor
Yoshio Arai
新井 義雄
Daisuke Sato
佐藤 大輔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002167095A priority Critical patent/JP2004012871A/en
Publication of JP2004012871A publication Critical patent/JP2004012871A/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

<P>PROBLEM TO BE SOLVED: To provide a data transfer control system, an electronic appliance, and a data transfer control method capable of realizing a data transfer with less power consumption and saving memory resources. <P>SOLUTION: The data transfer control system includes a transfer controller 160 that transfers compressed data including compressed image data to a device controller 210 via a bus 200, and a transfer rate setting section 130 that sets the transfer rate of the transfer controller 160 based on the data storage status of a memory 290 on the side of the device for storing the received compressed data. The transfer rate of the transfer controller 160 is set so as to make the stored data amount of the memory 290 between a 1st data amount DA1 and a 2nd data amount DA2. The transfer rate setting section 130 analyses the compressed data and sets the transfer rate based on image data amount specifying information (bit rate) included in the compressed data. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は、データ転送制御システム、電子機器及びデータ転送制御方法に関する。
【0002】
【背景技術及び発明が解決しようとする課題】
従来の液晶表示装置(広義には表示装置)では、表示のため各種制御信号や表示データを、ホストコントローラ(CPU)、デバイスコントローラ(表示コントローラ)間でパラレル転送している。このため、信号線が多くなり、ホストコントローラが実装される基板(circuit board)とデバイスコントローラが実装される基板とを接続するコネクタが大きくなる等の事態が生じ、製造コストの上昇を招く。
【0003】
このような問題を解決するために、制御信号や表示データをシリアル転送する従来技術が知られている。例えば特開平6−9506号では、デバイスコントローラにデータ保持回路を持たせ、ホストコントローラ、デバイスコントローラ間での制御信号、表示データの高速シリアル転送を実現している。
【0004】
一方、近年、静止画のみならず動画も表示できる液晶表示装置への要望が強まっている。しかしながら、動画データをリアルタイムに転送しようとすると、ホストコントローラ、デバイスコントローラ間の転送データ量が更に増加する。このため、より高速なシリアル転送が必要になる。また、この高速シリアル転送が原因となって、消費電力の増加や、EMIノイズの発生などの問題が生じる可能性もある。
【0005】
このような問題を解決する従来技術としては、例えば特開平4−330489、特開平8−202526、特開平11−65535などがある。
【0006】
しかしながら、これらの従来技術によっても、消費電力の低減や、EMIノイズの発生の抑制という技術課題の達成は不十分であった。
【0007】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、低消費電力のデータ転送を実現できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0008】
また本発明の他の目的は、受信した圧縮データを記憶するメモリの資源を節約できるデータ転送制御システム、電子機器及びデータ転送制御方法を提供することにある。
【0009】
【課題を解決するための手段】
本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0010】
本発明では、圧縮画像データを含む圧縮データがバスを介して転送される。ここで、圧縮画像データは、デバイスの1つである表示部の表示に使用されるデータであってもよいし、デバイスの1つである撮像素子により取得されるデータであってもよい。
【0011】
そして本発明では、第1のコントローラ(送信側)の転送コントローラの転送速度が、第2のコントローラ(受信側)の第2のメモリのデータ蓄積状況に基づいて設定される。これにより、第1、第2のコントローラ間の転送速度が最適な速度に設定され、データ転送の低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0012】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度を設定してもよい。
【0013】
このようにすれば、蓄積データ量が、第1のデータ量を上回ったり、第2のデータ量を下回ったりする事態を抑制できる。
【0014】
また本発明では、前記第1のデータ量が、第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定してもよい。
【0015】
なお、第1のデータ量を、第2のメモリがフル状態になる時の蓄積データ量と同じに設定することも可能である。
【0016】
また本発明では、前記第2のデータ量が、圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定してもよい。
【0017】
ここで、伸長処理単位となるデータ量とは、例えば、1フレーム分の画像データ量である。なお、第2のデータ量を、0よりも大きなデータ量(伸長処理単位とは無関係なデータ量)に設定してもよい。
【0018】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラのデータ転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0019】
このようにすれば、転送コントローラの転送速度が速くなりすぎてしまう事態を防止できる。
【0020】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第1のデータ量になった場合には、転送コントローラを転送待ち状態に設定してもよい。
【0021】
なお、転送待ち状態で所与の時間が経過した場合(蓄積データ量が第2のデータ量になった場合)に、転送コントローラの転送速度を、第1の転送速度よりも遅い第2の転送速度に設定してもよい。
【0022】
また本発明では、前記転送速度設定部が、第2のメモリの蓄積データ量が第2のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラの転送速度を、第1の転送速度よりも速い第3の転送速度に設定すしてもよい。
【0023】
このようにすれば、転送コントローラの転送速度が遅くなりすぎてしまう事態を防止できる。
【0024】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のコントローラから第2のメモリのデータ蓄積状況を取得してもよい。
【0025】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、転送速度の設定コマンドを第2のコントローラに知らせてもよい。
【0026】
また本発明では、前記転送速度設定部が、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定してもよい。
【0027】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0028】
本発明では、圧縮データが解析され、圧縮データの中から画像データ量特定情報が取得される(データ伸長処理を行うことなく取得される)。そして、この取得された画像データ量特定情報に基づいて、転送コントローラの転送速度が設定される。
【0029】
このようにすることで、圧縮データに含まれる画像データの量を、ある程度予測することができ、転送コントローラの転送速度を最適な速度に設定できる。
【0030】
また本発明では、前記転送速度設定部が、圧縮データのシーケンス層に含まれるビットレートに基づいて、転送コントローラの転送速度を設定してもよい。
【0031】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、バスを介して第1のコントローラから転送される圧縮データを受信する転送コントローラと、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得するメモリ管理部と、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定する転送速度設定部とを含むデータ転送制御システムに関係する。
【0032】
本発明によれば、バスを介して第1のコントローラから転送される圧縮データが、第2のコントローラの転送コントローラにより受信され、第2のコントローラの第2のメモリに蓄積される。そして、この第2のメモリのデータ蓄積状況が取得され、第2のコントローラから第1のコントローラに知らされる。
【0033】
第1のコントローラは、このデータ蓄積状況に基づいて転送速度を決定し、決定した転送速度の設定コマンドを第2のコントローラに転送する。すると、第2のコントローラの転送速度設定部が、この転送速度設定コマンドに基づいて、第2のコントローラの転送コントローラの転送速度を設定する。これにより、第1、第2のコントローラ間の転送速度を最適な速度に設定でき、低消費電力化を図れる。また、第2のメモリの資源を節約でき、回路の小規模化を図れる。
【0034】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第1のコントローラから転送速度設定コマンドを取得してもよい。
【0035】
また本発明では、前記転送速度設定部が、バスを介したパケット転送を用いて、第2のメモリのデータ蓄積状況を第1のコントローラに知らせてもよい。
【0036】
また本発明は、第1のコントローラと、第1のコントローラとバスを介して接続される第2のコントローラと、圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するための上記のいずれかのデータ転送制御システムと、第1のコントローラ又は第2のコントローラにより制御されるデバイスとを含む電子機器に関係する。
【0037】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定するデータ転送制御方法に関係する。
【0038】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0039】
また本発明は、圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、バスを介して第1のコントローラから転送される圧縮データを転送コントローラにより受信し、受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得し、取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定するデータ転送制御方法に関係する。
【0040】
【発明の実施の形態】
以下、本実施形態について説明する。
【0041】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0042】
1.構成
図1に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義には表示装置)の構成例を示す。図1において、ホスト側(マスター側、送信側)のデータ転送制御システムは、転送コントローラ160、転送速度設定部130等により構成される。また、デバイス側(スレーブ側、受信側)のデータ転送制御システムは、転送コントローラ260、転送速度設定部230等により構成される。なお、図1の回路ブロック一部を省略する構成としてもよい。
【0043】
1.1 ホストコントローラ
ホストコントローラ110(広義には第1のコントローラ)は、ホスト側(マスター側、送信側)のコントローラであり、処理部120、転送コントローラ160、メモリ190(第1のメモリ)を含む。このホストコントローラ110(第1のコントローラ)は例えば第1の基板(circuit board)に実装される。なお、メモリ190をホストコントローラ110の外付けメモリにしてもよい。
【0044】
処理部120は、ホストコントローラ110内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部120の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0045】
転送コントローラ160(ホスト側、マスター側、或いは送信側の転送コントローラ。シリアル・インターフェース・コントローラ)は、基地局等から送られてくる圧縮データを、バス200(狭義には、双方向シリアルバス)を介してデバイスコントローラ210(広義には第2のコントローラ)に転送する処理を行う。より具体的には、メモリ190から圧縮データを読み出し、この圧縮データ(マックスパケットサイズのデータ)をペイロードとして含むパケットを組み立てる。そして、組み立てられたパケットを、所与のプロトコルに従って、バス200を介してデバイスコントローラ210(転送コントローラ260)に転送(送信)する。
【0046】
メモリ190(ホスト側、マスター側、或いは送信側のメモリ)は、基地局等から送られてくる圧縮データ(例えばMPEGのビットストリーム)を記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0047】
なお、メモリ190に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部120のワーク領域として使用するようにしてもよい。
【0048】
処理部120は転送速度設定部130を含む。この転送速度設定部130(転送速度切り替え部)は、デバイスコントローラ210(第2のコントローラ)が有するメモリ290(第2のメモリ)のデータ蓄積状況(メモリの蓄積データ量、空き容量等)に基づいて、転送コントローラ160の転送速度(パケット転送の速度。単位時間に転送される平均データ量)を設定する。より具体的には、メモリ290のデータ蓄積の程度や空きの程度を表すデータ蓄積状況(メモリ・ステータス)に応じて、転送コントローラ160の転送速度(transfer rate)を切り替え、転送速度を動的に変化させる。
【0049】
更に、転送速度設定部130は、決定した転送速度をデバイスコントローラ210に知らせる。より具体的には、転送速度の設定コマンドをパケット転送等を利用してデバイスコントローラ210(転送コントローラ260)に転送する。この場合の転送速度設定コマンドの転送は、例えばUSBのコントロール転送、或いはこの転送に準じたパケット転送により実現できる。
【0050】
なお、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、転送速度設定コマンドをデバイスコントローラ210に伝えてもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して転送することで、転送速度設定コマンド(転送速度情報)をデバイスコントローラ210に伝えてもよい。
【0051】
また本実施形態の転送速度設定部130は、デバイス側(受信側、スレーブ側)のメモリ290の蓄積データ量(空き容量)が、第1のデータ量DA1(許容される最大の蓄積データ量)と第2のデータ量DA2(許容される最小の蓄積データ量)の間のデータ量DA(DA2≦DA≦DA1)になるように、転送速度を設定する。
【0052】
この場合のデータ量DA1は、例えば、メモリ290がフル状態になる時の蓄積データ量(フル・メモリ容量)よりも小さなデータ量に設定できる。またデータ量DA2は、圧縮データ(MPEG)の伸長処理単位となるデータ量(例えば1フレーム分のデータ量)よりも大きなデータ量に設定できる。
【0053】
なお、メモリ290のデータ蓄積状況(メモリ・ステータス)は、バス200を介したパケット転送により取得することが望ましい。より具体的には、USBのコントロール転送、インタラプト転送或いはこれらの転送に準じたパケット転送によりデータ蓄積状況を取得する。このようにパケット転送を利用することで、データ蓄積状況の効率的な取得が可能になる。
【0054】
但し、ホストコントローラ110、デバイスコントローラ210間を接続する制御線(制御信号)を用いて、データ蓄積状況をデバイスコントローラ210から取得してもよい。或いは、フォーマットの異なる何種類かのデータパターン(マーク)をバス200を介して受信することで、データ蓄積状況を取得してもよい。
【0055】
また、転送速度の設定を、ホストコントローラ110(第1のコントローラ)のメモリ190(第1のメモリ)のデータ蓄積状況に基づいて設定してもよい。例えば本実施形態では、基地局等から送られてくる圧縮データ(ビットストリーム)のメモリ190への書き込み処理と並行して、転送コントローラ160のデータ転送処理が行われる。従って、この場合には、転送速度設定部130は、メモリ190のデータ蓄積状況に基づいて、転送コントローラ160の転送速度の設定処理や転送のウェイト処理を行うことが望ましい。
【0056】
また、バス200(転送コントローラ)の転送方式としては、差動信号を用いたシリアル転送方式が望ましい。より具体的には、USB(Universal Serial Bus)、IEEE1394、或いはこれらの転送方式に準じた独自のプロトコルの転送方式(USB、IEEE1394の中から不要な機能を取り除いた転送方式)を採用できる。或いは、物理層の転送方式としてLVDS(Low Voltage Differential Signaling)を採用してもよい。
【0057】
また、バス200の転送方式としてUSB(USB2.0、USB1.1、USB On−The−Go)やそれに準じた転送方式を採用する場合には、転送速度の設定を、転送速度が480Mbpsであるハイスピードモード(HS)、12Mbpsであるフルスピードモード(FS)、1.5Mbpsであるロースピードモード(LS)の切り替えにより実現してもよい。或いは、HS、FS間、或いはFS、LS間の中間の転送速度への切り替えにより実現してもよい。
【0058】
転送速度設定部130が含む解析部132は、メモリ190に書き込まれた圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報を取得する。そして、転送速度設定部130は、この画像データ量の特定情報に基づいて、転送コントローラ160の転送速度を設定する。
【0059】
ここで、画像データ量の特定情報としては、圧縮データのビットレート(例えばMPEGのシーケンス層に含まれるBRV)、画像サイズ(例えばMPEGのシーケンス層に含まれるHSV、VSV)、或いは動きベクトル情報(例えばMEPGのマクロブロック層に含まれるMHC、MVC)などを用いることができる。即ち、ビットレート、画像サイズ、又は動きベクトルを用いることで、圧縮データを伸長することなく、圧縮データ中の画像データの占める割合を予測できる。そして、画像データ量が大きいと予測される場合には転送速度を速くし、画像データ量が小さいと予測される場合には転送速度を遅くする。これにより、最適な転送速度でのデータ転送を実現できる。
【0060】
なお、転送速度設定部130の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部130をハードウェア回路により実現する場合には、転送速度設定部130の一部又は全部を実現する回路を、転送コントローラ160内に設ければよい。
【0061】
1.2 デバイスコントローラ
デバイスコントローラ210(広義には第2のコントローラ)は、デバイス側(スレイブ側、受信側)のコントローラであり、処理部220、転送コントローラ260、メモリ290(第2のメモリ)を含む。また、データ伸長部240、表示コントローラ250を含む。このホストコントローラ210(第2のコントローラ)は例えば第2の基板(circuit board)に実装される。なお、メモリ290をデバイスコントローラ210の外付けメモリにしてもよい。
【0062】
処理部220は、デバイスコントローラ210内の各回路ブロックの制御や、バス200を介したデータ転送の制御の一部を行うものである。この処理部220の機能は、CPUなどのハードウェアと、そのハードウェア上で動作するファームウェア(ソフトウェア、プログラム)により実現される。
【0063】
データ伸長部240は、メモリ290に記憶された圧縮データを伸長する処理を行う。例えば、圧縮データがMPEGやJPEGにより圧縮されていた場合には、MPEGやJPEGの規格に応じた伸長処理を行う。
【0064】
なお、データ伸長部240の機能は、その一部又は全部をハードウェア回路により実現してもよいし、データ伸長部240を処理部220に含ませ、その機能をファームウェア(プログラム)により実現してもよい。
【0065】
表示コントローラ250は、データ伸長部240により得られた伸長画像データを受け、表示部300(広義にはデバイス)の表示制御を行う。例えば、表示部300に表示データを転送したり、表示部300が含む表示ドライバ304を制御する。
【0066】
表示部300(狭義には液晶表示装置)は、表示パネル300(電気光学パネル)、表示ドライバ304を含む。表示パネル300は、複数の走査線と、複数のデータ線と、複数の画素を含む。表示ドライバ304は、これらの走査線、データ線を駆動し、電気光学物質(液晶素子)を用いた画像表示を実現する。
【0067】
転送コントローラ260(デバイス側、スレイブ側、或いは受信側の転送コントローラ)は、バス200を介してホストコントローラ110(第1のコントローラ)から転送される圧縮データを受信する処理を行う。より具体的には、バス200を介して所与のプロトコルに従って転送されてきたパケットを分解し、パケットのペイロードに含まれる圧縮データを取得する。そして、取得した圧縮データをメモり290に出力する。
【0068】
メモリ290(デバイス側、スレイブ側、或いは受信側のメモリ)は、転送コントローラ260からの圧縮データを記憶するものであり、その機能はSRAMやDRAMなどにより実現される。
【0069】
なお、メモリ290に第1、第2の領域を含む複数の領域を確保し、第1の領域には圧縮データを記憶し、第2の領域は処理部220のワーク領域として使用するようにしてもよい。
【0070】
処理部220は転送速度設定部230を含む。この転送速度設定部230(転送速度切り替え部)は、転送コントローラ260の転送速度を、メモリ290のデータ蓄積状況に応じた転送速度に設定する。より具体的には、メモリ290のデータ蓄積状況を取得し、ホストコントローラ110(第1のコントローラ)に知らせる。すると、ホストコントローラ110は、このデータ蓄積状況に基づいて転送速度を決定する。そして転送速度設定部230は、ホストコントローラ110から転送速度設定コマンドを受け、この転送速度設定コマンドに基づいて、転送コントローラ260の転送速度を設定する。これにより、メモリ290のデータ蓄積状況に応じて、転送コントローラ260の転送速度を動的に変化させることができる。
【0071】
なお、データ蓄積状況は、バス200を介したパケット転送(コントロール転送、インタラプト転送)によりホストコントローラ110に伝えることが望ましい。或いは、ホストコントローラ110、デバイスコントローラ210間の制御線を用いたり、フォーマットの異なる何種類かのデータパターンを用いて、ホストコントローラ110にデータ蓄積状況を知らせてもよい。また、転送速度設定コマンドも、パケット転送により取得してもよいし、制御線を用いたり、データパターンを用いて取得してもよい。
【0072】
メモリ管理部234はメモリ290のメモリ管理(ポインタ制御、アドレス生成等)を行う。そして、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。より具体的には、メモリ290の読み出しポインタ、書き込みポインタの差分を計算することで、蓄積データ量を取得する。そして、この蓄積データ量がペイロードに設定されたパケットが、ホストコントローラ110に転送され、データ蓄積状況がホストコントローラ110に知らされる。
【0073】
また、転送速度設定部230の機能は、ファームウェア(ソフトウェア)により実現してもよいし、その一部又は全部の機能を、ハードウェア回路により実現してもよい。転送速度設定部230をハードウェア回路により実現する場合には、転送速度設定部230の一部又は全部を実現する回路を、転送コントローラ260内に設ければよい。
【0074】
2.データ蓄積状況に応じた転送速度の設定
本実施形態では、メモリ290のデータ蓄積状況に応じて、バス200の転送速度を設定している。
【0075】
図2(A)、(B)に、転送速度とメモリの蓄積データ量の関係を示す。これらの図から明らかなように、転送速度を低くすることで使用メモリ容量を節約できる。
【0076】
例えば図2(A)では、T1、T2、T3に示すように、圧縮データ(ビットストリーム)が、所与の時間間隔でデータパケットとして転送され、転送コントローラ260が受信する。そして、受信された圧縮データがメモリ290に書き込まれる。これにより、A1、A2、A3に示すように、メモリ290の蓄積データ量DAが増加する。この場合に、転送速度を速くすると(TR1)、蓄積データ量DAの増え方も速くなる。
【0077】
そして、T4、T5、T6では、メモリ290の圧縮データがデータ伸長部240により読み出され、メモリデータが消費される。これにより、A4、A5、A6に示すように、メモリ290の蓄積データ量DAが減少する。
【0078】
一方、図2(B)では、図2(A)と同じ時間間隔でデータパケットが転送されている。しかしながら、図2(B)の転送速度TR2は図2(A)の転送速度TR1よりも遅い速度に設定されている。
【0079】
このように、ゆっくりした転送速度でデータを転送することで、図2(A)、(B)を比べれば明らかなように、メモリ290の蓄積データ量DAの最大値DAMAXが少なくなる。従って、メモリ290の最大使用メモリ容量が少なくて済むようになり、メモリ資源の節約や、回路規模の削減を図れる。また、転送速度を低くすることで、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0080】
本実施形態では、このような転送速度と蓄積データ量の関係に着目し、メモリ290のデータ蓄積状況に応じて転送速度を制御している。この本実施形態の転送速度の制御手法を、図3を用いて説明する。
【0081】
図3のB1、B2、B3では、転送速度TR1でパケット転送が行われている。そして、B4では、メモリ290の蓄積データ量DAが第1のデータ量DA1(最大許容蓄積データ量)に達している(DA=DA1或いはDA≧DA1)。この場合に本実施形態では、B5に示すように、転送コントローラ160が転送待ち状態に設定される。また、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、B6、B7に示すように、TR1よりも遅いTR2(第2の転送速度)に設定(変更)される。
【0082】
より具体的には、転送コントローラ160が転送待ち状態に設定された後、B8に示すようにメモリ290の蓄積データ量DA(使用メモリ容量)が第2のデータ量DA2(最小許容蓄積データ量)に達すると(DA=DA2或いはDA≦DA2)、転送コントローラ160の転送速度が、TR1より遅いTR2に設定される。そして、B6、B7に示すように、この遅い転送速度TR2で転送コントローラ160によるパケット転送が行われる。
【0083】
また図4のC1、C2では、転送速度TR1でパケット転送が行われている。そして、C3では、メモリ290の蓄積データ量DAが第2のデータ量DA2(最小許容蓄積データ量)に達している(DA=DA2或いはDA≦DA2)。この場合に本実施形態では、TR1(第1の転送速度)でパケット転送(圧縮データの転送)を行っていた転送コントローラ160の転送速度が、C4、C5に示すように、TR1よりも速いTR3(第3の転送速度)に設定(変更)される。
【0084】
以上のようにすることで、メモリ290の蓄積データ量DAが、DA1(第1のデータ量)とDA2(第2のデータ量)の間のデータ量になるように、転送コントローラ160の転送速度が設定されるようになる。
【0085】
このようにすることで、メモリ290の蓄積データ量DAが多くなりすぎたり、少なくなりすぎたりする事態を抑制できる。これにより、メモリ290の資源を節約でき、そのメモリ容量を小さくすることが可能になる。この結果、回路の小規模化を図れる。
【0086】
また本実施形態によれば、バス200を介したデータ転送が不必要に高速になってしまう事態を防止でき、最適な転送速度でのデータ転送が可能になる。これにより、消費電力を低減できると共にEMIノイズの発生を抑制できる。
【0087】
なお、第1のデータ量DA1としては、例えば、メモリ290がフル状態になる時の蓄積データ量FDA(フル・メモリ容量)よりも小さなデータ量(DA1<FDA)を採用できる。このようにすれば、蓄積データ量DAがFDAに達する前に、転送コントローラ160を転送待ち状態に設定したり、転送速度を遅くすることが可能になる。これにより、メモリ290がフルになってしまう事態を未然に防止できる。なお、第1のデータ量DA1をFDAと同じにすることも可能である。
【0088】
また、第2のデータ量DA2としては、例えば、0よりも大きなデータ量を採用できる(DA2>0)。更に具体的には、DA2として、圧縮データの伸長処理単位となるデータ量EDA(画像処理に必要なデータ量)よりも大きなデータ量を採用できる(DA2>EDA)。
【0089】
ここで、伸長処理単位となるデータ量EDAは、例えば、1フレーム分の画像データ量、或いはGOP層(MPEG)の数ピクチャ分(I、B、Pピクチャ)の画像データ量などである。このようにすれば、メモリ290には、最低限、EDAの大きさの圧縮データが常に存在するようになる。従って、データ伸長部240(処理部220)は、メモリ290の圧縮データを用いて、データ伸長処理を途切れることなく実行できる。これにより、データ伸長処理の効率化を図れる。
【0090】
3.画像データ量特定情報に基づく転送速度の設定
本実施形態では、圧縮データの画像データ量特定情報に基づいて、バス200を介したデータ転送(パケット転送)の転送速度を設定している。
【0091】
ここで画像データ量特定情報は、圧縮データに含まれる情報である。より具体的には、圧縮データの所与の層(シーケンス層又はマクロブロック層等)に含まれる情報である。また、圧縮データの伸長処理を行うことなく、取り出すことができる情報である。そして、この画像データ量特定情報は、圧縮データの画像データ量を特定(予測)するための情報である。
【0092】
図5に、MPEG(Motion Picture Group)データの階層構造の例を示す。MPEG(MPEG2)データは、シーケンス層、GOP(Group Of Picture)層、ピクチャ層、スライス層、マクロブロック層、ブロック層により構成される。本実施形態では、画像データ量特定情報として、シーケンス層のシーケンスヘッダSHに含まれるビットレート(BRV)や画像サイズ(HSV、VSV)などを採用している。また、マクロブロック層に含まれる動きベクトル情報(MHC、MVC等)を採用している。
【0093】
ここで、BRV(Bit Rate Value)は、発生ビット量に対する制限のためのビットレートの下位18ビットである。ビットレートを用いることで、圧縮データのうちの平均的な画像データ量を知ることができる。そして、ビットレートが高く、画像データ量が多い場合には、データ転送の転送速度を速くする。なお、MPEGのコンテンツのファイル・フォーマットのヘッダに含まれるビットレート(ビットレートの公称値)を用いてもよい。
【0094】
また、HSV(Horizontal Size Value)、VSV(Vertical Size Value)は、画像の横の画素数、縦のライン数の下位12ビットである。画像サイズ(HSV、VSV)を用いることで、各フレームの画像のデータ量を知ることができる。そして、画像サイズが大きく、各フレームの画像データ量が多い場合には、データ転送の転送速度を速くする。
【0095】
また、MHC(Motion Horizontal Code)、MVC(Motion Vertical Code)は、動きベクトルの水平成分、垂直成分と前のベクトルとの差分をVLCで符号化したものである。例えば、表示物の動きが大きいか、小さいかは、動きベクトル情報に基づいて判断できる。そして、動きベクトル情報に基づき、表示物の動きが大きいと判断された場合には、データ転送の転送速度を速くする。
【0096】
以上のように、画像データ量特定情報を用いて、バス200を介したデータ転送(パケット転送)の転送速度を制御することで、画像データ量に応じて、予測的に転送速度を変化させることが可能になる。これにより、更に細かでインテリジェントな転送速度の制御が可能になる。
【0097】
4.データ蓄積状況、転送速度設定コマンドのパケット転送
本実施形態では、データ蓄積状況や転送速度設定コマンドを、パケット転送を利用してバスを介して転送している。
【0098】
例えば図6(A)、(B)に、USBのコントロール転送のタイミングチャートを示す。なお、「H→D」は、ホスト側からデバイス側にパケットが転送されることを示し、「H←D」は、デバイス側からホスト側にパケットが転送されることを示す。
【0099】
まず、図6(A)のセットアップステージにおいては、ホスト側(ホストコントローラ110、第1のコントローラ)がデバイス側(デバイスコントローラ210、第2のコントローラ)に、SETUPトークンパケットを転送する。そして、ホスト側がデバイス側に、デバイスリクエストのデータパケットを転送する。この時に本実施形態では、ホスト側が、データパケットのペイロードにデータ蓄積状況の転送指示コマンドを設定する。そして、データパケットの転送が成功すると、デバイス側がホスト側にACK(ハンドシェークパケット)を返す。
【0100】
次のデータステージおいては、ホスト側がデバイス側にINトークンパケットを転送する。すると、デバイス側が、データ蓄積状況(メモリ290の蓄積データ量等)をデータパケットのペイロードに設定して、ホスト側に転送する。そして、データパケットの転送が成功すると、ホスト側がデバイス側にACKを返す。
【0101】
次のステータスステージにおいては、ホスト側がデバイス側にOUTトークンパケットを転送した後、0長のデータパケットをデバイス側に転送する。そして、デバイス側がホスト側にACKを返すと、コントロール転送が終了する。
【0102】
図6(A)の手法によれば、データ蓄積状況を、パケット転送(コントロール転送)を利用して、デバイス側からホスト側に伝えることができる。これにより、簡素な処理でデータ蓄積状況を伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0103】
一方、図6(B)では、セットアップステージにおいて、ホスト側が、データパケットのペイロードに転送速度設定コマンドを設定して、デバイス側に転送している。そして、次のステータスステージにおいては、ホスト側からのINトークンを受けたデバイス側が、0長のデータパケットをホスト側に転送する。
【0104】
図6(B)の手法によれば、転送速度設定コマンドを、パケット転送(コントロール転送)を利用して、ホスト側からデバイス側に伝えることができる。これにより、簡素な処理で転送速度設定コマンドを伝えることが可能になる。また、ホスト側とデバイス側に新たな制御信号線を設けなくて済むようになり、回路の小規模化を図れる。
【0105】
なお、図7に示すように、USBのインタラプト転送(或いはこれに準じた転送方式)を利用して、データ蓄積状況をデバイス側からホスト側に伝えてもよい。
【0106】
即ち、インタラプト転送においては、ホスト側が、所与のフレーム間隔(Nフレーム間隔)で、INトークンをデバイス側に転送する(ポーリングを行う)。なお、図7において、SOFは、フレーム毎にホスト側が発生するスタート・オブ・フレーム・パケットである。
【0107】
ホスト側からINトークンを受けたデバイス側は、自身のステータスをホスト側に転送する。この時に本実施形態では、デバイス側が、データ蓄積状況(蓄積データ量等)をステータスに含ませて、ホスト側に転送する。このようにすることで、所与のフレーム毎にデバイス側からホスト側にデータ蓄積状況が自動的に伝えられるようになり、ホスト側の処理負荷等を軽減できる。
【0108】
なお、データ蓄積状況や転送速度設定コマンドの転送を、コントロール転送やインタラプト転送以外のパケット転送で転送してもよい。また、コントロール転送やインタラプト転送を用いる場合(既知のデバイスが繋がりっぱなしの場合)に、転送コントローラ160、260の転送方式は、USB規格に完全に準拠していなくてもよい。例えば、USBの転送方式の機能の一部(プラグ&プレイの機能等)を省略すると共に、コントロール転送、インタラプト転送については、USB規格の転送方式に準拠するようにしてもよい。
【0109】
5.動作
次に、図8、図9のフローチャートを用いて、本実施形態のデータ転送制御システムの動作について説明する。
【0110】
まず、受信した圧縮データ(ビットストリーム)をホスト側のメモリ190に蓄積する(ステップS1)。そして、ホスト側及びデバイス側の転送コントローラ160、260の初期転送速度を設定する(ステップS2)。
【0111】
次に、所与(所定)の転送サイズのデータを、転送コントローラ160のパケットバッファ(FIFO)に取得する(ステップS3)。
【0112】
次に、そのデータにシーケンスヘッダが含まれるか否かを判断し(ステップS4)、含まれる場合には、シーケンスヘッダに含まれるビットレート(BR)を取得する(ステップS5)。そして、ホスト側(送信側)の転送コントローラ160の転送速度をTR1=α×BR(α<1)に設定する(ステップS6)。そして、転送速度が変化した場合には、ホスト側(送信側)の転送コントローラ160からデバイス側(受信側)の転送コントローラ260に、転送速度設定コマンドをパケット転送する(ステップS7、ステップS8)。
【0113】
次に、デバイス側のメモリ290の蓄積データ量DA(データ蓄積状況)をパケット転送により取得する(ステップS9。図6(A)、図7参照)。
【0114】
次に、蓄積データ量DAが第1のデータ量DA1よりも小さいか否かを判断する(ステップS10)。そして、DA<DA1の場合には、DAが第2のデータ量DA2よりも大きいか否かを判断する(ステップS11)。そして、DA>DA2の場合、即ちDA2<DA<DA1の場合には、データをパケット転送する(ステップS12)。そして、全てのデータの転送が終了したか否かを判断し(ステップS13)、終了していない場合には、図8のステップS3に戻る。
【0115】
図9のステップS10で、DA≧DA1と判断された場合には、所与(所定)の時間だけ、データ転送を待ち状態にする(ステップS14。図3のB5参照)。そして、デバイス側の蓄積データ量DAをパケット転送により取得する(ステップS15。図6(A)、図7参照)。
【0116】
次に、DAがDA1に達したか否かを判断する(ステップS16)。そして、DA=DA1になった場合には、ホスト側の転送コントローラ160の転送速度を、TR2=β×TR1(β<1)に設定する(ステップS17。図3のB6、B7参照)。そして、ホスト側からデバイス側に転送速度設定(切り替え)コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0117】
図9のステップS11で、DA≦DA2と判断された場合には、ホスト側の転送コントローラ160の転送速度を、TR3=γ×TR1(γ>1)に設定する(ステップS19.図4のC4、C5参照)。そして、ホスト側からデバイス側に転送速度設定コマンドをパケット転送し(ステップS18。図6(B)参照)、その後、データをパケット転送する(ステップS12)。
【0118】
6.変形例
図10に、本実施形態のデータ転送制御システム及びこれを含む電子機器(狭義にはデジタルカメラなどの撮像装置)の第1の変形例を示す。
【0119】
図10では、デバイスコントローラ210が第1のコントローラ(送信側コントローラ)として機能し、ホストコントローラ110が第2のコントローラ(受信側コントローラ)として機能する。また、デバイス側のメモリ290が第1のメモリとして機能し、ホスト側のメモリ190が第2のメモリとして機能する。
【0120】
そして、デバイスコントローラ210には、CCD等の撮像素子(広義にはデバイス)が接続される。また、デバイスコントローラー210は、データ圧縮部242と撮像素子コントローラ252を含む。
【0121】
データ圧縮部242は、撮像素子コントローラ252を介して撮像素子310から取得された画像データをMPEG、JPEG方式等により圧縮する。そして、圧縮データはメモリ290に蓄積される。
【0122】
転送コントローラ260は、メモリ290に蓄積された圧縮データを、バス200を介して転送する。この時に、転送速度設定部230は、ホスト側のメモリ190のデータ蓄積状況に基づいて、転送速度を設定する。そして、設定された転送速度で、転送コントローラ260、160間でバス200を介したデータ転送が行われる。そして、ホスト側の転送コントローラ160は、圧縮データを受信すると、その圧縮データをメモリ190に蓄積する。
【0123】
図11に、本実施形態のデータ転送制御システム及びこれを含む電子機器の第2の変形例を示す。
【0124】
図11では、ホストコントローラ110、デバイスコントローラ210間において、表示部300に表示する画像データ(圧縮画像データ)が転送されると共に、撮像素子310により取得された画像データも転送される。即ち、バス200を介して双方向で画像データが転送される。
【0125】
そして、表示部300の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第1、第2のコントローラとして機能し、メモリ190、290は、各々、第1、第2のメモリとして機能する。
【0126】
一方、撮像素子310の画像データがバス200を介して転送される場合には、ホストコントローラ110、デバイスコントローラ210は、各々、第2、第1のコントローラとして機能し、メモリ190、290は、各々、第2、第1のメモリとして機能する。
【0127】
7.詳細な構成例
図12に、ホスト側の転送コントローラ160の詳細な構成例を示す。この転送コントローラ160は、物理層回路162、FIFO168、DMAC170、CPUインターフェース回路172、制御回路174、クロック生成回路180を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。
【0128】
物理層回路162は、バス200を介したシリアル転送(差動信号を用いた転送)を実現するための回路であり、シリアル/パラレル変換回路164、パラレル/シリアル変換回路166を含む。
【0129】
例えば、受信時においては、バス200を介して受信したシリアルデータを、シリアル/パラレル変換回路164がパラレルデータに変換し、FIFO168に出力する。一方、送信時においては、FIFO168からのパラレルデータを、パラレル/シリアル変換回路166がシリアルデータに変換し、バス200を介して転送する。
【0130】
FIFO(First In First Out)168は、物理層回路162により送受信されるデータを一時的に記憶するバッファである。このFIFO168(広義にはパケットバッファ)は、SRAM、DRAM等のメモリにより実現してもよいし、Dフリップフロップ等により実現してもよい。
【0131】
DMAC(Direct Memory Access Controller)170は、処理部120の処理を介在することなく、FIFO168のデータをメモリ190に出力したり、メモリ190のデータを読み込む処理を行う。
【0132】
CPUインターフェース回路172は、処理部120とのインターフェースとして機能する回路である。処理部120は、このCPUインターフェース回路172を介して、FIFO168や制御回路174の制御レジスタ176にアクセスできる。
【0133】
制御回路174は、転送コントローラ160の全体的な制御や各回路ブロックの制御を行う回路であり、制御レジスタ176を含む。
【0134】
制御レジスタ176は、処理部120からのコマンドを設定したり、処理部120にステータスを表示(indicate)するためのレジスタである。
【0135】
クロック生成回路180は、転送コントローラ160の各回路ブロックが使用するクロックを生成する回路であり、PLL(Phase Locked Loop)回路等を内蔵する。
【0136】
図12において、転送速度設定部130は、転送速度設定コマンドをCPUインターフェース回路172を介して制御レジスタ176に書き込む。すると、クロック生成回路180は、制御レジスタ176に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ160は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0137】
また、転送速度設定部130は、転送速度設定コマンドがペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168に書き込む。これにより、デバイスコントローラ210に対して、転送速度設定コマンドをバス200を介してパケット転送できるようになる。
【0138】
また、転送速度設定部130は、蓄積データ量(広義にはデータ蓄積状況)がペイロードに設定されたパケットを、CPUインターフェース回路172を介してFIFO168から読み出す。これにより、デバイスコントローラ210から蓄積データ量を取得できるようになる。
【0139】
図13に、デバイス側の転送コントローラ260の詳細な構成例を示す。この転送コントローラ260は、物理層回路262、FIFO268、DMAC270、CPUインターフェース回路272、制御回路274、クロック生成回路280を含む。なお、これらの回路ブロックの一部を省略する構成としてもよい。また、これらの回路ブロックの機能は、図12の同じ名前の回路ブロックと同様であるため、その説明を省略する。
【0140】
図13において、転送速度設定部230は、FIFO268に蓄積されたパケットのデータをCPUインターフェース回路272を介して読み出すことで、ホストコントローラ110からの転送速度設定コマンドを取得する。そして、転送速度設定部230は、取得された転送速度設定コマンドを、CPUインターフェース回路272を介して制御レジスタ276に書き込む。すると、クロック生成回路280は、制御レジスタ276に書き込まれた転送速度設定コマンドに基づいて、データ転送に使用するクロックの周波数を変化させる。これにより、転送コントローラ260は、転送速度設定コマンドで指定された転送速度でデータ転送を行うようになる。
【0141】
また、メモリ管理部234は、図14に示すように書き込みポインタWRP、読み出しポインタRDPを管理し、各ポインタ位置に対応するアドレスを発生する。そして、メモリ290の読み出し処理、書き込み処理を管理する。
【0142】
そして、メモリ管理部234は、これらのポインタWRP、RDPを用いて、メモリ290の蓄積データ量(広義にはデータ蓄積状況)を取得する。具体的には、これらのポインタWRP、RDPの位置の差を求めることで、蓄積データ量を計算する。
【0143】
そして、転送速度設定部230は、取得された蓄積データ量がペイロードに設定されたパケットを、CPUインターフェース回路272を介してFIFO268に書き込む。これにより、ホストコントローラ110に対して、蓄積データ量をバス200を介してパケット転送できるようになる。
【0144】
図15(A)に、クロック生成回路180、280の構成例を示す。
【0145】
図15(A)のクロック生成回路(PLL回路)は、位相比較器400、チャージポンプ回路402、フィルタ回路404、VCO406、分周器408を含む。なお、これらの回路ブロックの一部(例えばフィルタ回路)を省略する構成とすることもできる。
【0146】
ここで位相比較器400は、基準クロックRCLKと分周器408からのクロックDCLKの位相を比較し、位相誤差信号PUP、PDWを出力する(PUPは位相進み信号、PDWは位相遅れ信号)。
【0147】
チャージポンプ回路402は、位相比較器400からのPUP、PDWに基づいてチャージポンプ動作を行う。より具体的には、PUPがアクティブになると、フィルタ回路404が含むコンデンサを充電する動作を行い、PDWがアクティブになると、コンデンサを放電する動作を行う。そして、フィルタ回路404により平滑化された制御電圧VCがVCO406に与えられる。
【0148】
VCO(Voltage Control Oscillator)406は、制御電圧VCに応じてその発振周波数が可変に制御される発振動作を行い、データ転送用のクロックCLKを生成する。例えば、制御電圧VCが高くなるとCLKの発振周波数も高くなり、制御電圧VCが低くなるとCLKの発振周波数も低くなる。
【0149】
分周器408は、VCO406から入力されるクロックCLKを分周(1/N)して、分周後のクロックDCLKを位相比較器400に出力する。
【0150】
図15(A)のクロック生成回路によれば、分周比Nの設定により、データ転送用のクロックCLKの周波数を可変に制御できる。従って、転送速度設定コマンドに基づいて分周比Nを設定し、その分周比Nで設定されたクロックCLKを用いてデータ転送を行うようにすれば、転送速度設定コマンドに応じた転送速度でデータ転送を実現できるようになる。
【0151】
図15(B)に、クロック生成回路の他の構成例を示す。
【0152】
このクロック生成回路は、高速転送用PLL回路410と、中速転送用PLL回路412と、低速転送用PLL回路414と、セレクタ420を含む。
【0153】
ここで、高速転送用、中速転送用、低速転送用のPLL回路410、412、414は、各々、高速転送用、中速転送用、低速転送用のクロックCLKH、CLKM、CLKLを生成する。なお、これらのPLL回路410、412、414の構成としては、図15(A)に示す構成等を採用できる。
【0154】
セレクタ420は、これらのクロックCLKH、CLKM、CLKLのいずれかを選択して、データ転送用のクロックCLKとして出力する。そして本実施形態では、このCLKを用いてデータ転送が行われる。
【0155】
図15(B)のクロック生成回路によれば、例えば、転送速度設定コマンドにより、高速の転送速度が設定された場合には、セレクタ420がCLKHを選択する。同様に、転送速度設定コマンドにより、中速、低速の転送速度が設定された場合には、セレクタ420がCLKM、CLKLを選択する。これにより、転送速度設定コマンドに応じた転送速度でのデータ転送を実現できる。
【0156】
なお、図15(B)のクロック生成回路では、クロック周波数(発振周波数)が異なる3つのPLL回路を用いているが、クロック周波数が異なる2つのPLL回路を用いたり、クロック周波数が異なる4つ以上のPLL回路を用いてもよい。この場合のクロック周波数(発振周波数)が異なる複数のPLL回路は、図15(A)の分周器408の分周比Nを変えることで実現できる。
【0157】
また、USBによるデータ転送の場合には、PLL410、412、414として、ハイスピードモード(HS)用、フルスピードモード(FS)用、ロースピードモード(LS)用のPLL回路を用いることができる。
【0158】
なお、本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
【0159】
例えば、本発明のデータ転送制御システムや電子機器の構成は、図1、図10、図11等で説明した構成に限定されるものではなく、種々の変形実施が可能である。
【0160】
また、転送コントローラやクロック生成回路の構成も、図12、図13、図15(A)、(B)で説明した構成に限定されず、種々の変形実施が可能である。
【0161】
また、本発明の転送速度の設定手法も、図3、図4、図5、図8、図9等で説明した手法に限定されるものではない。
【0162】
また、本発明のデータ転送制御システムを適用できる電子機器も、本実施形態で説明した表示装置、撮像装置に限定されない。例えば、液晶パネル以外のパネル(有機ELパネル等)を用いた表示装置でもよい。また、CCD以外の撮像素子を用いた撮像装置でもよい。また、表示装置、撮像装置以外の電子機器にも本発明は適用できる。
【0163】
また、明細書中の記載において広義な用語(第1のコントローラ、第2のコントローラ、第1のメモリ、第2のメモリ、データ蓄積状況、パケットバッファ、デバイス等)として引用された用語(ホストコントローラ、デバイスコントローラ、ホスト側のメモリ、デイバス側のメモリ、蓄積データ量、FIFO、表示部・撮像素子等)は、明細書中の他の記載においても広義な用語に置き換えることができる。
【0164】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【図1】本実施形態のデータ転送制御システム、電子機器の構成例を示す図である。
【図2】図2(A)、(B)は、転送速度と蓄積データ量の関係を示す図である。
【図3】転送速度の設定手法について説明するための図である。
【図4】転送速度の設定手法について説明するための図である。
【図5】画像データ量特定情報に基づき転送速度を設定する手法について説明するための図である。
【図6】図6(A)、(B)は、データ蓄積状況や転送速度設定コマンドをコントロール転送を用いて転送する手法について説明するための図である。
【図7】データ蓄積状況をインタラプト転送を用いて転送する手法について説明するための図である。
【図8】データ転送制御システムの動作について説明するためのフローチャートである。
【図9】データ転送制御システムの動作について説明するためのフローチャートである。
【図10】データ転送制御システム、電子機器の第1の変形例を示す図である。
【図11】データ転送制御システム、電子機器の第2の変形例を示す図である。
【図12】ホスト側の転送コントローラの構成例を示す図である。
【図13】デバイス側の転送コントローラの構成例を示す図である。
【図14】蓄積データ量の取得手法について説明するための図である。
【図15】図15(A)、(B)は、クロック生成回路の構成例を示す図である。
【符号の説明】
110 ホストコントローラ(第1のコントローラ)
120 処理部
130 速度設定部
132 解析部
134 メモリ管理部
160 転送コントローラ
162 物理層回路
164 シリアル/パラレル変換回路
166 パラレル/シリアル変換回路
168 FIFO(パケットバッファ)
170 DMAC
172 CPUインターフェース回路
174 制御回路
176 制御レジスタ
180 クロック生成回路
190 メモリ(第1のメモリ)
200 バス
210 デバイスコントローラ(第2のコントローラ)
220 処理部
230 速度設定部
234 メモリ管理部
240 データ伸長部
242 データ圧縮部
250 表示コントローラ
252 撮像素子コントローラ
260 転送コントローラ
262 物理層回路
264 シリアル/パラレル変換回路
266 パラレル/シリアル変換回路
268 FIFO(パケットバッファ)
270 DMAC
272 CPUインターフェース回路
274 制御回路
276 制御レジスタ
280 クロック生成回路
290 メモリ(第1のメモリ)
300 表示部(デバイス)
302 表示パネル
304 表示ドライバ
310 撮像素子(デバイス)
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a data transfer control system, an electronic device, and a data transfer control method.
[0002]
BACKGROUND ART AND PROBLEMS TO BE SOLVED BY THE INVENTION
In a conventional liquid crystal display device (display device in a broad sense), various control signals and display data for display are transferred in parallel between a host controller (CPU) and a device controller (display controller). As a result, the number of signal lines increases, and a connector for connecting a circuit board on which the host controller is mounted and a circuit board on which the device controller is mounted becomes large. This causes an increase in manufacturing cost.
[0003]
In order to solve such a problem, a conventional technique for serially transferring a control signal and display data is known. For example, in Japanese Patent Laid-Open No. 6-9506, a device controller is provided with a data holding circuit to realize high-speed serial transfer of control signals and display data between a host controller and a device controller.
[0004]
On the other hand, in recent years, there has been an increasing demand for a liquid crystal display device capable of displaying not only a still image but also a moving image. However, when attempting to transfer moving image data in real time, the amount of data transferred between the host controller and the device controller further increases. Therefore, higher-speed serial transfer is required. In addition, the high-speed serial transfer may cause problems such as an increase in power consumption and generation of EMI noise.
[0005]
Conventional techniques for solving such a problem include, for example, JP-A-4-330489, JP-A-8-202526, and JP-A-11-65535.
[0006]
However, even with these conventional techniques, the achievement of the technical problems of reducing power consumption and suppressing the generation of EMI noise has been insufficient.
[0007]
The present invention has been made in view of the above technical problems, and an object of the present invention is to provide a data transfer control system, an electronic device, and a data transfer control method capable of realizing low power consumption data transfer. Is to do.
[0008]
Another object of the present invention is to provide a data transfer control system, an electronic device, and a data transfer control method that can save resources of a memory for storing received compressed data.
[0009]
[Means for Solving the Problems]
The present invention is a data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the compressed data is transferred to a second controller via a bus. A transfer controller for transferring data to a second controller, and data transfer via a bus by the transfer controller based on a data accumulation state of a second memory for storing received compressed data in a memory of the second controller. And a transfer rate setting unit for setting the transfer rate of the data.
[0010]
According to the present invention, compressed data including compressed image data is transferred via a bus. Here, the compressed image data may be data used for display on a display unit, which is one of the devices, or may be data obtained by an imaging device, which is one of the devices.
[0011]
Then, in the present invention, the transfer speed of the transfer controller of the first controller (transmitting side) is set based on the data accumulation state of the second memory of the second controller (receiving side). As a result, the transfer speed between the first and second controllers is set to an optimum speed, and power consumption for data transfer can be reduced. Further, the resources of the second memory can be saved, and the circuit can be downsized.
[0012]
Further, in the present invention, the transfer speed setting unit sets the transfer speed of the transfer controller so that the amount of data stored in the second memory is the amount of data between the first data amount and the second data amount. May be.
[0013]
By doing so, it is possible to suppress the situation where the accumulated data amount exceeds the first data amount or falls below the second data amount.
[0014]
In the present invention, the first data amount may be set to be smaller than the accumulated data amount when the second memory is full.
[0015]
It should be noted that the first data amount can be set to be the same as the accumulated data amount when the second memory becomes full.
[0016]
Further, in the present invention, the second data amount may be set to a data amount larger than a data amount serving as a unit for decompression processing of compressed data.
[0017]
Here, the data amount as a unit of decompression processing is, for example, the image data amount for one frame. Note that the second data amount may be set to a data amount larger than 0 (a data amount irrelevant to the decompression processing unit).
[0018]
Further, in the present invention, the transfer speed setting unit is configured to, when the amount of data stored in the second memory becomes the first data amount, transfer data of the transfer controller transferring the compressed data at the first transfer speed. The transfer rate may be set to a second transfer rate lower than the first transfer rate.
[0019]
This can prevent the transfer speed of the transfer controller from becoming too high.
[0020]
In the present invention, the transfer speed setting unit may set the transfer controller to a transfer waiting state when the amount of data stored in the second memory has reached the first amount of data.
[0021]
When a given time has elapsed in the transfer waiting state (when the accumulated data amount has reached the second data amount), the transfer speed of the transfer controller is changed to the second transfer speed lower than the first transfer speed. The speed may be set.
[0022]
Further, in the present invention, when the amount of data stored in the second memory reaches the second amount of data, the transfer rate setting unit may control the transfer of the transfer data by the transfer controller that transfers the compressed data at the first transfer rate. The speed may be set to a third transfer speed higher than the first transfer speed.
[0023]
This can prevent the transfer speed of the transfer controller from becoming too slow.
[0024]
Further, in the present invention, the transfer rate setting unit may acquire the data storage status of the second memory from the second controller using packet transfer via a bus.
[0025]
Further, in the present invention, the transfer speed setting unit may notify the second controller of a transfer speed setting command using packet transfer via a bus.
[0026]
In the present invention, the transfer speed setting unit may analyze the compressed data and set a transfer speed of a transfer controller based on information included in the compressed data and specifying the amount of image data. .
[0027]
The present invention is also a data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the compressed data is transferred via the bus. A transfer controller that transfers the data to the second controller; and a transfer speed setting unit that analyzes the compressed data and sets a transfer speed of the transfer controller based on information included in the compressed data and information for specifying the amount of image data. And a data transfer control system including:
[0028]
In the present invention, the compressed data is analyzed, and the image data amount specifying information is obtained from the compressed data (obtained without performing the data decompression process). Then, the transfer speed of the transfer controller is set based on the acquired image data amount specifying information.
[0029]
By doing so, the amount of image data included in the compressed data can be predicted to some extent, and the transfer speed of the transfer controller can be set to an optimum speed.
[0030]
In the present invention, the transfer rate setting unit may set a transfer rate of a transfer controller based on a bit rate included in a sequence layer of the compressed data.
[0031]
Further, the present invention is a data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the first controller includes a first controller via the bus. A transfer controller that receives compressed data transferred from the storage device, a memory management unit that manages a second memory that stores the received compressed data, and obtains a data storage status of the second memory, And a transfer rate setting unit for setting a transfer rate of the transfer controller based on a transfer rate setting command from the first controller.
[0032]
According to the present invention, compressed data transferred from the first controller via the bus is received by the transfer controller of the second controller, and is stored in the second memory of the second controller. Then, the data accumulation state of the second memory is obtained, and the second controller notifies the first controller.
[0033]
The first controller determines a transfer rate based on the data accumulation status, and transfers a set command of the determined transfer rate to the second controller. Then, the transfer speed setting unit of the second controller sets the transfer speed of the transfer controller of the second controller based on the transfer speed setting command. As a result, the transfer speed between the first and second controllers can be set to an optimum speed, and low power consumption can be achieved. Further, the resources of the second memory can be saved, and the circuit can be downsized.
[0034]
In the present invention, the transfer speed setting unit may acquire a transfer speed setting command from the first controller using packet transfer via a bus.
[0035]
Further, in the present invention, the transfer rate setting unit may notify the first controller of the data accumulation status of the second memory using packet transfer via a bus.
[0036]
The present invention also provides a first controller, a second controller connected to the first controller via a bus, and transfer of compressed data between the first controller and the second controller via the bus. The present invention relates to an electronic apparatus including any one of the above-described data transfer control systems and a device controlled by the first controller or the second controller.
[0037]
The present invention is also a data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the compressed data is transferred via the bus. A transfer controller transfers data to a second controller, and based on a data accumulation state of a second memory that stores the received compressed data in the memory of the second controller, the data transferred by the transfer controller via a bus. The present invention relates to a data transfer control method for setting a transfer speed of transfer.
[0038]
The present invention is also a data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the compressed data is transferred via the bus. A data transfer control method in which a transfer controller transfers the data to a second controller, analyzes the compressed data, and sets a transfer speed of the transfer controller based on information included in the compressed data and information for specifying an image data amount. Related to
[0039]
The present invention is also a data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus, wherein the first controller includes a first controller via the bus. Receiving the compressed data transferred from the first controller, managing the second memory for storing the received compressed data, acquiring the data storage status of the second memory, and storing the obtained data storage status in the first memory. And a data transfer control method for setting the transfer speed of the transfer controller based on the transfer speed setting command from the first controller.
[0040]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, the present embodiment will be described.
[0041]
The present embodiment described below does not unduly limit the contents of the present invention described in the claims. Also, not all of the configurations described in the present embodiment are necessarily indispensable as means for solving the present invention.
[0042]
1. Constitution
FIG. 1 shows a configuration example of a data transfer control system of the present embodiment and an electronic device (display device in a narrow sense) including the same. In FIG. 1, the data transfer control system on the host side (master side, transmission side) includes a transfer controller 160, a transfer speed setting unit 130, and the like. Further, the data transfer control system on the device side (slave side, reception side) includes a transfer controller 260, a transfer speed setting unit 230, and the like. Note that a configuration in which part of the circuit block in FIG. 1 is omitted may be adopted.
[0043]
1.1 Host controller
The host controller 110 (first controller in a broad sense) is a host-side (master-side, transmission-side) controller and includes a processing unit 120, a transfer controller 160, and a memory 190 (first memory). The host controller 110 (first controller) is mounted on, for example, a first circuit board. Note that the memory 190 may be an external memory of the host controller 110.
[0044]
The processing unit 120 performs control of each circuit block in the host controller 110 and part of control of data transfer via the bus 200. The function of the processing unit 120 is realized by hardware such as a CPU and firmware (software, program) operating on the hardware.
[0045]
A transfer controller 160 (host-side, master-side, or transmission-side transfer controller; serial interface controller) transmits compressed data transmitted from a base station or the like to a bus 200 (a bidirectional serial bus in a narrow sense). A process of transferring the data to the device controller 210 (in a broad sense, a second controller) is performed. More specifically, compressed data is read from the memory 190, and a packet including the compressed data (maximum packet size data) as a payload is assembled. Then, the assembled packet is transferred (transmitted) to the device controller 210 (the transfer controller 260) via the bus 200 according to a given protocol.
[0046]
The memory 190 (host side, master side, or transmission side memory) stores compressed data (eg, an MPEG bit stream) sent from a base station or the like, and its function is realized by an SRAM, a DRAM, or the like. Is done.
[0047]
A plurality of areas including a first area and a second area are secured in the memory 190, compressed data is stored in the first area, and the second area is used as a work area of the processing unit 120. Is also good.
[0048]
The processing unit 120 includes a transfer speed setting unit 130. The transfer speed setting unit 130 (transfer speed switching unit) is based on the data accumulation state (the amount of data stored in the memory, the free space, etc.) in the memory 290 (second memory) of the device controller 210 (second controller). Then, the transfer rate of the transfer controller 160 (the packet transfer rate; the average amount of data transferred per unit time) is set. More specifically, the transfer rate (transfer rate) of the transfer controller 160 is switched according to the data accumulation state (memory status) indicating the degree of data accumulation or the degree of empty space in the memory 290, and the transfer rate is dynamically changed. Change.
[0049]
Further, the transfer rate setting unit 130 notifies the device controller 210 of the determined transfer rate. More specifically, the transfer rate setting command is transferred to the device controller 210 (the transfer controller 260) using packet transfer or the like. In this case, the transfer of the transfer speed setting command can be realized by, for example, USB control transfer or packet transfer according to this transfer.
[0050]
The transfer speed setting command may be transmitted to the device controller 210 using a control line (control signal) connecting the host controller 110 and the device controller 210. Alternatively, a transfer speed setting command (transfer speed information) may be transmitted to the device controller 210 by transferring several types of data patterns (marks) having different formats via the bus 200.
[0051]
Further, the transfer speed setting unit 130 of the present embodiment determines that the storage data amount (free space) of the memory 290 on the device side (reception side, slave side) is the first data amount DA1 (the maximum allowable storage data amount). The transfer speed is set such that the data amount DA (DA2 ≦ DA ≦ DA1) is between the second data amount DA2 and the second data amount DA2 (the minimum allowable accumulated data amount).
[0052]
In this case, the data amount DA1 can be set to a smaller data amount than the accumulated data amount (full memory capacity) when the memory 290 becomes full, for example. The data amount DA2 can be set to a data amount larger than the data amount (for example, the data amount for one frame) which is a unit for decompressing the compressed data (MPEG).
[0053]
It is desirable that the data accumulation status (memory status) of the memory 290 be obtained by packet transfer via the bus 200. More specifically, the data storage status is acquired by USB control transfer, interrupt transfer, or packet transfer based on these transfers. By utilizing the packet transfer in this way, it is possible to efficiently obtain the data accumulation status.
[0054]
However, the data storage status may be acquired from the device controller 210 by using a control line (control signal) connecting the host controller 110 and the device controller 210. Alternatively, the data storage status may be acquired by receiving several types of data patterns (marks) having different formats via the bus 200.
[0055]
Further, the setting of the transfer speed may be set based on the data accumulation state of the memory 190 (first memory) of the host controller 110 (first controller). For example, in the present embodiment, the data transfer process of the transfer controller 160 is performed in parallel with the process of writing the compressed data (bit stream) sent from the base station or the like to the memory 190. Therefore, in this case, it is desirable that the transfer speed setting unit 130 performs the transfer speed setting process and the transfer wait process of the transfer controller 160 based on the data accumulation state of the memory 190.
[0056]
As a transfer method of the bus 200 (transfer controller), a serial transfer method using a differential signal is preferable. More specifically, USB (Universal Serial Bus), IEEE1394, or a transfer method of a unique protocol based on these transfer methods (a transfer method in which unnecessary functions are removed from USB and IEEE1394) can be adopted. Alternatively, LVDS (Low Voltage Differential Signaling) may be adopted as a physical layer transfer method.
[0057]
When USB (USB 2.0, USB 1.1, USB On-The-Go) or a transfer method similar thereto is adopted as the transfer method of the bus 200, the transfer speed is set to 480 Mbps. It may be realized by switching between a high speed mode (HS), a full speed mode (FS) of 12 Mbps, and a low speed mode (LS) of 1.5 Mbps. Alternatively, it may be realized by switching to an intermediate transfer speed between HS and FS or between FS and LS.
[0058]
The analysis unit 132 included in the transfer speed setting unit 130 analyzes the compressed data written in the memory 190, and obtains information included in the compressed data and for specifying the amount of image data. Then, the transfer speed setting unit 130 sets the transfer speed of the transfer controller 160 based on the specific information of the image data amount.
[0059]
Here, as the specific information of the image data amount, the bit rate of the compressed data (for example, BRV included in the MPEG sequence layer), the image size (for example, HSV and VSV included in the MPEG sequence layer), or the motion vector information ( For example, MHC, MVC, etc. included in the macro block layer of MEPG can be used. That is, by using the bit rate, the image size, or the motion vector, the ratio of the image data in the compressed data can be predicted without decompressing the compressed data. When the image data amount is predicted to be large, the transfer speed is increased, and when the image data amount is predicted to be small, the transfer speed is decreased. Thereby, data transfer at an optimum transfer speed can be realized.
[0060]
The function of the transfer rate setting unit 130 may be realized by firmware (software), or a part or all of the functions may be realized by a hardware circuit. When the transfer rate setting unit 130 is implemented by a hardware circuit, a circuit that implements part or all of the transfer rate setting unit 130 may be provided in the transfer controller 160.
[0061]
1.2 Device Controller
The device controller 210 (second controller in a broad sense) is a device-side (slave-side, reception-side) controller, and includes a processing unit 220, a transfer controller 260, and a memory 290 (second memory). Further, it includes a data decompression unit 240 and a display controller 250. The host controller 210 (second controller) is mounted on, for example, a second circuit board. Note that the memory 290 may be an external memory of the device controller 210.
[0062]
The processing unit 220 performs control of each circuit block in the device controller 210 and part of control of data transfer via the bus 200. The function of the processing unit 220 is realized by hardware such as a CPU and firmware (software and programs) operating on the hardware.
[0063]
The data decompression unit 240 performs a process of decompressing the compressed data stored in the memory 290. For example, if the compressed data has been compressed by MPEG or JPEG, a decompression process according to the MPEG or JPEG standard is performed.
[0064]
A part or all of the function of the data decompression unit 240 may be realized by a hardware circuit, or the data decompression unit 240 may be included in the processing unit 220 and the function may be realized by firmware (program). Is also good.
[0065]
The display controller 250 receives the decompressed image data obtained by the data decompression unit 240 and controls the display of the display unit 300 (device in a broad sense). For example, it transfers display data to the display unit 300 and controls the display driver 304 included in the display unit 300.
[0066]
The display unit 300 (liquid crystal display device in a narrow sense) includes a display panel 300 (electro-optical panel) and a display driver 304. The display panel 300 includes a plurality of scanning lines, a plurality of data lines, and a plurality of pixels. The display driver 304 drives these scanning lines and data lines to realize an image display using an electro-optical material (liquid crystal element).
[0067]
The transfer controller 260 (device-side, slave-side, or reception-side transfer controller) performs processing for receiving compressed data transferred from the host controller 110 (first controller) via the bus 200. More specifically, it decomposes a packet transferred according to a given protocol via the bus 200 and obtains compressed data included in the payload of the packet. Then, the acquired compressed data is output to the memory 290.
[0068]
The memory 290 (device-side, slave-side, or reception-side memory) stores compressed data from the transfer controller 260, and its function is realized by an SRAM, a DRAM, or the like.
[0069]
A plurality of areas including a first area and a second area are secured in the memory 290, compressed data is stored in the first area, and the second area is used as a work area of the processing unit 220. Is also good.
[0070]
The processing unit 220 includes a transfer speed setting unit 230. The transfer speed setting unit 230 (transfer speed switching unit) sets the transfer speed of the transfer controller 260 to a transfer speed according to the data accumulation status of the memory 290. More specifically, the data storage status of the memory 290 is acquired and notified to the host controller 110 (first controller). Then, the host controller 110 determines the transfer speed based on the data accumulation status. Then, the transfer speed setting unit 230 receives the transfer speed setting command from the host controller 110, and sets the transfer speed of the transfer controller 260 based on the transfer speed setting command. Thus, the transfer speed of the transfer controller 260 can be dynamically changed according to the data accumulation state of the memory 290.
[0071]
It is desirable that the data accumulation status be transmitted to the host controller 110 by packet transfer (control transfer, interrupt transfer) via the bus 200. Alternatively, the data storage status may be notified to the host controller 110 using a control line between the host controller 110 and the device controller 210, or using several types of data patterns having different formats. Also, the transfer speed setting command may be obtained by packet transfer, or may be obtained using a control line or using a data pattern.
[0072]
The memory management unit 234 performs memory management (pointer control, address generation, and the like) of the memory 290. Then, the amount of data stored in the memory 290 (data storage status in a broad sense) is acquired. More specifically, the accumulated data amount is obtained by calculating the difference between the read pointer and the write pointer of the memory 290. Then, the packet in which the amount of stored data is set as the payload is transferred to the host controller 110, and the data storage status is notified to the host controller 110.
[0073]
The function of the transfer speed setting unit 230 may be realized by firmware (software), or a part or all of the functions may be realized by a hardware circuit. When the transfer speed setting unit 230 is realized by a hardware circuit, a circuit that realizes a part or all of the transfer speed setting unit 230 may be provided in the transfer controller 260.
[0074]
2. Setting the transfer speed according to the data storage status
In the present embodiment, the transfer speed of the bus 200 is set according to the data accumulation status of the memory 290.
[0075]
2A and 2B show the relationship between the transfer speed and the amount of data stored in the memory. As is apparent from these figures, the memory used can be saved by lowering the transfer speed.
[0076]
For example, in FIG. 2A, as shown at T1, T2, and T3, compressed data (bit stream) is transferred as data packets at given time intervals and received by the transfer controller 260. Then, the received compressed data is written to the memory 290. As a result, the amount of data DA stored in the memory 290 increases as indicated by A1, A2, and A3. In this case, if the transfer speed is increased (TR1), the increase in the accumulated data amount DA is also increased.
[0077]
Then, at T4, T5, and T6, the compressed data in the memory 290 is read by the data decompression unit 240, and the memory data is consumed. As a result, the amount of data DA stored in the memory 290 decreases as indicated by A4, A5, and A6.
[0078]
On the other hand, in FIG. 2B, data packets are transferred at the same time intervals as in FIG. 2A. However, the transfer rate TR2 in FIG. 2B is set to be lower than the transfer rate TR1 in FIG.
[0079]
As described above, by transferring data at a slow transfer rate, the maximum value DAMAX of the accumulated data amount DA of the memory 290 becomes smaller as apparent from comparison between FIGS. 2A and 2B. Therefore, the maximum used memory capacity of the memory 290 can be reduced, so that memory resources can be saved and the circuit size can be reduced. In addition, by lowering the transfer rate, power consumption can be reduced and generation of EMI noise can be suppressed.
[0080]
In the present embodiment, focusing on such a relationship between the transfer speed and the amount of stored data, the transfer speed is controlled according to the data storage state of the memory 290. The transfer rate control method according to this embodiment will be described with reference to FIG.
[0081]
At B1, B2, and B3 in FIG. 3, packet transfer is performed at the transfer rate TR1. Then, in B4, the accumulated data amount DA of the memory 290 has reached the first data amount DA1 (maximum allowable accumulated data amount) (DA = DA1 or DA ≧ DA1). In this case, in the present embodiment, as indicated by B5, the transfer controller 160 is set in a transfer waiting state. Further, as shown in B6 and B7, the transfer rate of the transfer controller 160 that has been performing packet transfer (transfer of compressed data) at TR1 (first transfer rate) is TR2 (second transfer rate) lower than TR1. ) Is set (changed).
[0082]
More specifically, after the transfer controller 160 is set in the transfer waiting state, the accumulated data amount DA (used memory capacity) of the memory 290 becomes the second data amount DA2 (minimum allowable accumulated data amount) as indicated by B8. (DA = DA2 or DA ≦ DA2), the transfer speed of the transfer controller 160 is set to TR2, which is lower than TR1. Then, as indicated by B6 and B7, the packet transfer by the transfer controller 160 is performed at the low transfer rate TR2.
[0083]
At C1 and C2 in FIG. 4, packet transfer is performed at the transfer rate TR1. Then, in C3, the accumulated data amount DA of the memory 290 reaches the second data amount DA2 (minimum allowable accumulated data amount) (DA = DA2 or DA ≦ DA2). In this case, in the present embodiment, the transfer speed of the transfer controller 160 performing packet transfer (transfer of compressed data) at TR1 (first transfer speed) is TR3 higher than TR1 as indicated by C4 and C5. (Third transfer speed) is set (changed).
[0084]
By doing as described above, the transfer speed of the transfer controller 160 is set so that the accumulated data amount DA of the memory 290 becomes the data amount between DA1 (first data amount) and DA2 (second data amount). Will be set.
[0085]
By doing so, it is possible to suppress a situation where the amount of data DA stored in the memory 290 becomes too large or too small. As a result, resources of the memory 290 can be saved, and the memory capacity can be reduced. As a result, the circuit can be downsized.
[0086]
Further, according to the present embodiment, it is possible to prevent a situation in which data transfer via the bus 200 becomes unnecessarily high, and to perform data transfer at an optimum transfer speed. Thus, power consumption can be reduced and generation of EMI noise can be suppressed.
[0087]
Note that, as the first data amount DA1, for example, a data amount (DA1 <FDA) smaller than the accumulated data amount FDA (full memory capacity) when the memory 290 enters the full state can be adopted. This makes it possible to set the transfer controller 160 to a transfer waiting state or to reduce the transfer speed before the accumulated data amount DA reaches the FDA. This can prevent a situation where the memory 290 becomes full. Note that the first data amount DA1 can be the same as FDA.
[0088]
Further, as the second data amount DA2, for example, a data amount larger than 0 can be adopted (DA2> 0). More specifically, a data amount larger than the data amount EDA (data amount required for image processing) as a unit for decompressing compressed data can be adopted as DA2 (DA2> EDA).
[0089]
Here, the data amount EDA as a unit of decompression processing is, for example, the image data amount for one frame or the image data amount for several pictures (I, B, P pictures) of the GOP layer (MPEG). In this way, the memory 290 always has at least compressed data of the size of EDA. Therefore, the data decompression unit 240 (processing unit 220) can execute the data decompression processing without interruption using the compressed data in the memory 290. Thereby, the efficiency of the data decompression process can be improved.
[0090]
3. Setting of transfer speed based on image data amount identification information
In the present embodiment, the transfer speed of data transfer (packet transfer) via the bus 200 is set based on the image data amount specifying information of the compressed data.
[0091]
Here, the image data amount specifying information is information included in the compressed data. More specifically, it is information included in a given layer (such as a sequence layer or a macroblock layer) of the compressed data. It is information that can be extracted without decompressing the compressed data. The image data amount specifying information is information for specifying (predicting) the image data amount of the compressed data.
[0092]
FIG. 5 shows an example of a hierarchical structure of MPEG (Motion Picture Group) data. MPEG (MPEG2) data includes a sequence layer, a GOP (Group Of Picture) layer, a picture layer, a slice layer, a macroblock layer, and a block layer. In the present embodiment, a bit rate (BRV), an image size (HSV, VSV) and the like included in the sequence header SH of the sequence layer are adopted as the image data amount specifying information. Also, motion vector information (MHC, MVC, etc.) included in the macroblock layer is adopted.
[0093]
Here, BRV (Bit Rate Value) is the lower 18 bits of a bit rate for limiting the amount of generated bits. By using the bit rate, the average image data amount of the compressed data can be known. When the bit rate is high and the amount of image data is large, the data transfer speed is increased. The bit rate (the nominal value of the bit rate) included in the header of the file format of the MPEG content may be used.
[0094]
HSV (Horizontal Size Value) and VSV (Vertical Size Value) are the lower 12 bits of the number of horizontal pixels and the number of vertical lines of an image. By using the image size (HSV, VSV), the data amount of the image of each frame can be known. When the image size is large and the amount of image data of each frame is large, the transfer speed of data transfer is increased.
[0095]
In addition, MHC (Motion Horizontal Code) and MVC (Motion Vertical Code) are obtained by encoding a difference between a horizontal component and a vertical component of a motion vector and a previous vector by VLC. For example, whether the movement of the display object is large or small can be determined based on the motion vector information. Then, when it is determined based on the motion vector information that the movement of the display object is large, the transfer speed of the data transfer is increased.
[0096]
As described above, by controlling the transfer speed of data transfer (packet transfer) via the bus 200 using the image data amount specifying information, it is possible to predictively change the transfer speed according to the image data amount. Becomes possible. This enables more detailed and intelligent control of the transfer rate.
[0097]
4. Packet transfer of data accumulation status and transfer speed setting command
In the present embodiment, the data accumulation status and the transfer speed setting command are transferred via the bus using packet transfer.
[0098]
For example, FIGS. 6A and 6B show timing charts of USB control transfer. “H → D” indicates that the packet is transferred from the host to the device, and “H ← D” indicates that the packet is transferred from the device to the host.
[0099]
First, in the setup stage of FIG. 6A, the host side (host controller 110, first controller) transfers the SETUP token packet to the device side (device controller 210, second controller). Then, the host transfers the data packet of the device request to the device. At this time, in the present embodiment, the host sets a data storage status transfer instruction command in the payload of the data packet. Then, when the data packet transfer is successful, the device returns an ACK (handshake packet) to the host.
[0100]
In the next data stage, the host transfers an IN token packet to the device. Then, the device sets the data accumulation state (the amount of data stored in the memory 290, etc.) as the payload of the data packet and transfers the data packet to the host. When the transfer of the data packet is successful, the host returns an ACK to the device.
[0101]
In the next status stage, the host transfers the OUT token packet to the device, and then transfers the zero-length data packet to the device. When the device returns an ACK to the host, the control transfer ends.
[0102]
According to the method shown in FIG. 6A, the data storage status can be transmitted from the device to the host using packet transfer (control transfer). As a result, it is possible to communicate the data accumulation status by simple processing. Further, it is not necessary to provide new control signal lines on the host side and the device side, and the circuit can be downsized.
[0103]
On the other hand, in FIG. 6B, in the setup stage, the host sets the transfer rate setting command in the payload of the data packet and transfers the data packet to the device. Then, in the next status stage, the device receiving the IN token from the host transfers a zero-length data packet to the host.
[0104]
According to the method of FIG. 6B, the transfer speed setting command can be transmitted from the host to the device using packet transfer (control transfer). This makes it possible to transmit the transfer speed setting command by a simple process. Further, it is not necessary to provide new control signal lines on the host side and the device side, and the circuit can be downsized.
[0105]
As shown in FIG. 7, the data storage status may be transmitted from the device side to the host side using USB interrupt transfer (or a transfer method according to this).
[0106]
That is, in the interrupt transfer, the host transfers the IN token to the device at a given frame interval (N frame interval) (performs polling). In FIG. 7, the SOF is a start-of-frame packet generated by the host for each frame.
[0107]
The device receiving the IN token from the host transfers its own status to the host. At this time, in the present embodiment, the device side includes the data accumulation status (accumulated data amount and the like) in the status and transfers the status to the host side. By doing so, the data storage status can be automatically transmitted from the device to the host for each given frame, and the processing load on the host can be reduced.
[0108]
The transfer of the data accumulation status and the transfer speed setting command may be transferred by packet transfer other than control transfer and interrupt transfer. Further, when control transfer or interrupt transfer is used (when known devices remain connected), the transfer method of the transfer controllers 160 and 260 does not need to completely comply with the USB standard. For example, some of the functions of the USB transfer method (such as a plug-and-play function) may be omitted, and the control transfer and the interrupt transfer may conform to the USB transfer method.
[0109]
5. motion
Next, the operation of the data transfer control system of the present embodiment will be described with reference to the flowcharts of FIGS.
[0110]
First, the received compressed data (bit stream) is stored in the memory 190 on the host side (step S1). Then, the initial transfer rates of the transfer controllers 160 and 260 on the host and device sides are set (step S2).
[0111]
Next, data of a given (predetermined) transfer size is obtained in the packet buffer (FIFO) of the transfer controller 160 (step S3).
[0112]
Next, it is determined whether or not the data includes a sequence header (step S4). If so, a bit rate (BR) included in the sequence header is obtained (step S5). Then, the transfer speed of the transfer controller 160 on the host side (transmission side) is set to TR1 = α × BR (α <1) (step S6). When the transfer speed changes, a transfer speed setting command is transferred from the transfer controller 160 on the host side (transmission side) to the transfer controller 260 on the device side (reception side) by packet (steps S7 and S8).
[0113]
Next, the storage data amount DA (data storage state) of the memory 290 on the device side is obtained by packet transfer (step S9; see FIGS. 6A and 7).
[0114]
Next, it is determined whether or not the accumulated data amount DA is smaller than the first data amount DA1 (step S10). If DA <DA1, it is determined whether DA is larger than the second data amount DA2 (step S11). If DA> DA2, that is, if DA2 <DA <DA1, data is transferred in packets (step S12). Then, it is determined whether or not the transfer of all data has been completed (step S13). If not completed, the process returns to step S3 in FIG.
[0115]
If it is determined in step S10 of FIG. 9 that DA ≧ DA1, data transfer is waited for a given (predetermined) time (step S14; see B5 of FIG. 3). Then, the accumulated data amount DA on the device side is acquired by packet transfer (step S15; see FIGS. 6A and 7).
[0116]
Next, it is determined whether DA has reached DA1 (step S16). Then, when DA = DA1, the transfer speed of the transfer controller 160 on the host side is set to TR2 = β × TR1 (β <1) (step S17; see B6 and B7 in FIG. 3). Then, a transfer rate setting (switching) command is transferred from the host to the device by packet (step S18; see FIG. 6B), and then the data is transferred by packet (step S12).
[0117]
If it is determined in step S11 in FIG. 9 that DA ≦ DA2, the transfer speed of the transfer controller 160 on the host side is set to TR3 = γ × TR1 (γ> 1) (step S19. C4 in FIG. 4). , C5). Then, the host transfers the transfer speed setting command to the device by packet (step S18; see FIG. 6B), and then transfers the data by packet (step S12).
[0118]
6. Modified example
FIG. 10 shows a first modification of the data transfer control system of the present embodiment and an electronic device (an imaging device such as a digital camera in a narrow sense) including the same.
[0119]
In FIG. 10, the device controller 210 functions as a first controller (transmission-side controller), and the host controller 110 functions as a second controller (reception-side controller). Further, the memory 290 on the device side functions as a first memory, and the memory 190 on the host side functions as a second memory.
[0120]
An imaging device (device in a broad sense) such as a CCD is connected to the device controller 210. The device controller 210 includes a data compression unit 242 and an image sensor controller 252.
[0121]
The data compression unit 242 compresses the image data acquired from the image sensor 310 via the image sensor controller 252 using the MPEG, JPEG, or the like. Then, the compressed data is stored in the memory 290.
[0122]
The transfer controller 260 transfers the compressed data stored in the memory 290 via the bus 200. At this time, the transfer speed setting unit 230 sets the transfer speed based on the data accumulation status of the memory 190 on the host side. Then, data is transferred between the transfer controllers 260 and 160 via the bus 200 at the set transfer speed. Then, upon receiving the compressed data, the transfer controller 160 on the host side stores the compressed data in the memory 190.
[0123]
FIG. 11 shows a second modification of the data transfer control system of the present embodiment and an electronic device including the same.
[0124]
In FIG. 11, image data (compressed image data) to be displayed on the display unit 300 is transferred between the host controller 110 and the device controller 210, and image data acquired by the image sensor 310 is also transferred. That is, image data is transferred bidirectionally via the bus 200.
[0125]
When the image data of the display unit 300 is transferred via the bus 200, the host controller 110 and the device controller 210 function as first and second controllers, respectively, and the memories 190 and 290 , Function as first and second memories.
[0126]
On the other hand, when the image data of the image sensor 310 is transferred via the bus 200, the host controller 110 and the device controller 210 function as second and first controllers, respectively, and the memories 190 and 290 , Second, and first memories.
[0127]
7. Detailed configuration example
FIG. 12 shows a detailed configuration example of the transfer controller 160 on the host side. The transfer controller 160 includes a physical layer circuit 162, a FIFO 168, a DMAC 170, a CPU interface circuit 172, a control circuit 174, and a clock generation circuit 180. Note that a configuration in which some of these circuit blocks are omitted may be employed.
[0128]
The physical layer circuit 162 is a circuit for realizing serial transfer (transfer using a differential signal) via the bus 200, and includes a serial / parallel conversion circuit 164 and a parallel / serial conversion circuit 166.
[0129]
For example, during reception, the serial / parallel conversion circuit 164 converts serial data received via the bus 200 into parallel data, and outputs the parallel data to the FIFO 168. On the other hand, at the time of transmission, the parallel data from the FIFO 168 is converted to serial data by the parallel / serial conversion circuit 166 and transferred via the bus 200.
[0130]
The FIFO (First In First Out) 168 is a buffer that temporarily stores data transmitted and received by the physical layer circuit 162. The FIFO 168 (packet buffer in a broad sense) may be realized by a memory such as an SRAM or a DRAM, or may be realized by a D flip-flop or the like.
[0131]
A DMAC (Direct Memory Access Controller) 170 outputs data of the FIFO 168 to the memory 190 and performs processing of reading data of the memory 190 without intervening the processing of the processing unit 120.
[0132]
The CPU interface circuit 172 is a circuit that functions as an interface with the processing unit 120. The processing unit 120 can access the FIFO 168 and the control register 176 of the control circuit 174 via the CPU interface circuit 172.
[0133]
The control circuit 174 is a circuit that performs overall control of the transfer controller 160 and control of each circuit block, and includes a control register 176.
[0134]
The control register 176 is a register for setting a command from the processing unit 120 and displaying a status on the processing unit 120 (indicate).
[0135]
The clock generation circuit 180 is a circuit that generates a clock used by each circuit block of the transfer controller 160, and includes a PLL (Phase Locked Loop) circuit and the like.
[0136]
12, the transfer speed setting unit 130 writes a transfer speed setting command into the control register 176 via the CPU interface circuit 172. Then, the clock generation circuit 180 changes the frequency of the clock used for data transfer based on the transfer speed setting command written in the control register 176. As a result, the transfer controller 160 performs data transfer at the transfer speed specified by the transfer speed setting command.
[0137]
Further, the transfer rate setting unit 130 writes the packet in which the transfer rate setting command is set in the payload to the FIFO 168 via the CPU interface circuit 172. As a result, it becomes possible to transfer the transfer speed setting command to the device controller 210 via the bus 200.
[0138]
Further, the transfer speed setting unit 130 reads out a packet in which the amount of stored data (data storage status in a broad sense) is set in the payload from the FIFO 168 via the CPU interface circuit 172. As a result, the accumulated data amount can be obtained from the device controller 210.
[0139]
FIG. 13 shows a detailed configuration example of the transfer controller 260 on the device side. The transfer controller 260 includes a physical layer circuit 262, a FIFO 268, a DMAC 270, a CPU interface circuit 272, a control circuit 274, and a clock generation circuit 280. Note that a configuration in which some of these circuit blocks are omitted may be employed. The functions of these circuit blocks are the same as those of the circuit blocks having the same names in FIG.
[0140]
13, the transfer rate setting unit 230 obtains a transfer rate setting command from the host controller 110 by reading out the data of the packet stored in the FIFO 268 via the CPU interface circuit 272. Then, the transfer speed setting unit 230 writes the obtained transfer speed setting command into the control register 276 via the CPU interface circuit 272. Then, the clock generation circuit 280 changes the frequency of the clock used for data transfer based on the transfer speed setting command written in the control register 276. As a result, the transfer controller 260 performs data transfer at the transfer speed specified by the transfer speed setting command.
[0141]
The memory management unit 234 manages the write pointer WRP and the read pointer RDP as shown in FIG. 14, and generates an address corresponding to each pointer position. Then, the reading and writing processes of the memory 290 are managed.
[0142]
Then, the memory management unit 234 uses the pointers WRP and RDP to acquire the amount of data stored in the memory 290 (data storage status in a broad sense). Specifically, the accumulated data amount is calculated by calculating the difference between the positions of the pointers WRP and RDP.
[0143]
Then, the transfer rate setting unit 230 writes the packet in which the acquired accumulated data amount is set in the payload to the FIFO 268 via the CPU interface circuit 272. As a result, the amount of stored data can be transferred to the host controller 110 via the bus 200 as a packet.
[0144]
FIG. 15A illustrates a configuration example of the clock generation circuits 180 and 280.
[0145]
The clock generation circuit (PLL circuit) in FIG. 15A includes a phase comparator 400, a charge pump circuit 402, a filter circuit 404, a VCO 406, and a frequency divider 408. Note that a configuration in which part of these circuit blocks (for example, a filter circuit) is omitted may be employed.
[0146]
Here, the phase comparator 400 compares the phase of the reference clock RCLK with the phase of the clock DCLK from the frequency divider 408, and outputs phase error signals PUP and PDW (PUP is a phase advance signal, and PDW is a phase delay signal).
[0147]
The charge pump circuit 402 performs a charge pump operation based on PUP and PDW from the phase comparator 400. More specifically, when PUP becomes active, an operation of charging a capacitor included in the filter circuit 404 is performed, and when PDW becomes active, an operation of discharging the capacitor is performed. Then, the control voltage VC smoothed by the filter circuit 404 is supplied to the VCO 406.
[0148]
A VCO (Voltage Control Oscillator) 406 performs an oscillation operation whose oscillation frequency is variably controlled in accordance with a control voltage VC, and generates a clock CLK for data transfer. For example, when the control voltage VC increases, the oscillation frequency of CLK also increases, and when the control voltage VC decreases, the oscillation frequency of CLK also decreases.
[0149]
The frequency divider 408 divides the frequency of the clock CLK input from the VCO 406 (1 / N), and outputs the frequency-divided clock DCLK to the phase comparator 400.
[0150]
According to the clock generation circuit in FIG. 15A, the frequency of the data transfer clock CLK can be variably controlled by setting the frequency division ratio N. Therefore, if the frequency division ratio N is set based on the transfer speed setting command, and data transfer is performed using the clock CLK set at the frequency division ratio N, the data is transferred at the transfer speed according to the transfer speed setting command. Data transfer can be realized.
[0151]
FIG. 15B illustrates another configuration example of the clock generation circuit.
[0152]
This clock generation circuit includes a high-speed transfer PLL circuit 410, a medium-speed transfer PLL circuit 412, a low-speed transfer PLL circuit 414, and a selector 420.
[0153]
Here, the PLL circuits 410, 412, and 414 for high-speed transfer, medium-speed transfer, and low-speed transfer generate clocks CLKH, CLKM, and CLKL for high-speed transfer, medium-speed transfer, and low-speed transfer, respectively. Note that as the configuration of these PLL circuits 410, 412, and 414, the configuration shown in FIG.
[0154]
The selector 420 selects any one of these clocks CLKH, CLKM, and CLKL and outputs it as a clock CLK for data transfer. In the present embodiment, data transfer is performed using this CLK.
[0155]
According to the clock generation circuit of FIG. 15B, for example, when a high transfer rate is set by a transfer rate setting command, the selector 420 selects CLKH. Similarly, when the medium speed and the low speed are set by the transfer speed setting command, the selector 420 selects CLKM and CLKL. Thus, data transfer at a transfer speed according to the transfer speed setting command can be realized.
[0156]
Although the clock generation circuit in FIG. 15B uses three PLL circuits having different clock frequencies (oscillation frequencies), two PLL circuits having different clock frequencies are used, or four or more clock circuits having different clock frequencies are used. May be used. In this case, a plurality of PLL circuits having different clock frequencies (oscillation frequencies) can be realized by changing the frequency division ratio N of the frequency divider 408 in FIG.
[0157]
In the case of USB data transfer, PLL circuits for high-speed mode (HS), full-speed mode (FS), and low-speed mode (LS) can be used as PLLs 410, 412, and 414.
[0158]
The present invention is not limited to the present embodiment, and various modifications can be made within the scope of the present invention.
[0159]
For example, the configurations of the data transfer control system and the electronic device according to the present invention are not limited to the configurations described with reference to FIGS. 1, 10, and 11, and various modifications can be made.
[0160]
Further, the configurations of the transfer controller and the clock generation circuit are not limited to the configurations described with reference to FIGS. 12, 13, 15A, and 15B, and various modifications can be made.
[0161]
Further, the method of setting the transfer rate according to the present invention is not limited to the method described with reference to FIG. 3, FIG. 4, FIG. 5, FIG.
[0162]
Further, the electronic device to which the data transfer control system of the present invention can be applied is not limited to the display device and the imaging device described in the present embodiment. For example, a display device using a panel other than a liquid crystal panel (such as an organic EL panel) may be used. Further, an imaging device using an imaging device other than the CCD may be used. Further, the present invention can be applied to electronic devices other than the display device and the imaging device.
[0163]
Further, in the description in the specification, terms (host controller) cited as broad terms (first controller, second controller, first memory, second memory, data storage status, packet buffer, device, etc.) , Device controller, memory on the host side, memory on the device side, stored data amount, FIFO, display unit / imaging element, etc.) can be replaced with broad terms in other descriptions in the specification.
[0164]
Further, in the invention according to the dependent claims of the present invention, a configuration in which some of the constituent elements of the dependent claims are omitted may be adopted. In addition, a main part of the invention according to one independent claim of the present invention can be made dependent on another independent claim.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating a configuration example of a data transfer control system and an electronic device according to an embodiment.
FIGS. 2A and 2B are diagrams showing a relationship between a transfer speed and a stored data amount.
FIG. 3 is a diagram for explaining a transfer speed setting technique.
FIG. 4 is a diagram for explaining a transfer speed setting technique.
FIG. 5 is a diagram for describing a method of setting a transfer speed based on image data amount specifying information.
FIGS. 6A and 6B are diagrams for explaining a method of transferring a data accumulation status and a transfer speed setting command using control transfer.
FIG. 7 is a diagram illustrating a method of transferring a data accumulation state using interrupt transfer.
FIG. 8 is a flowchart for explaining the operation of the data transfer control system.
FIG. 9 is a flowchart for explaining the operation of the data transfer control system.
FIG. 10 is a diagram illustrating a data transfer control system and a first modified example of an electronic apparatus.
FIG. 11 is a diagram illustrating a data transfer control system and a second modification of the electronic apparatus.
FIG. 12 is a diagram illustrating a configuration example of a transfer controller on the host side.
FIG. 13 is a diagram illustrating a configuration example of a transfer controller on the device side.
FIG. 14 is a diagram for describing a method of acquiring a stored data amount.
FIGS. 15A and 15B are diagrams illustrating a configuration example of a clock generation circuit.
[Explanation of symbols]
110 Host controller (first controller)
120 processing unit
130 Speed setting section
132 Analysis unit
134 Memory Management Unit
160 transfer controller
162 Physical layer circuit
164 serial / parallel conversion circuit
166 Parallel / Serial Conversion Circuit
168 FIFO (packet buffer)
170 DMAC
172 CPU interface circuit
174 control circuit
176 control register
180 clock generation circuit
190 memory (first memory)
200 bus
210 Device controller (second controller)
220 processing unit
230 Speed setting section
234 Memory management unit
240 Data decompression unit
242 Data compression unit
250 Display controller
252 Image sensor controller
260 transfer controller
262 Physical Layer Circuit
H.264 serial / parallel conversion circuit
266 Parallel / serial conversion circuit
268 FIFO (packet buffer)
270 DMAC
272 CPU interface circuit
274 control circuit
276 control register
280 clock generation circuit
290 memory (first memory)
300 Display (device)
302 Display panel
304 Display Driver
310 Image sensor (device)

Claims (22)

圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、
前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。
A data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
A transfer controller for transferring the compressed data to a second controller via a bus;
A transfer rate setting unit that sets a transfer rate of data transfer via a bus by a transfer controller based on a data accumulation state of a second memory that stores received compressed data in a memory of the second controller; When,
A data transfer control system comprising:
請求項1において、
前記転送速度設定部が、
第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。
In claim 1,
The transfer rate setting unit,
A data transfer control system, wherein a transfer speed of a transfer controller is set such that an amount of data stored in a second memory is between a first data amount and a second data amount.
請求項2において、
前記第1のデータ量が、
第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定されることを特徴とするデータ転送制御システム。
In claim 2,
The first data amount is:
A data transfer control system, wherein the data amount is set to be smaller than the accumulated data amount when the second memory becomes full.
請求項2又は3において、
前記第2のデータ量が、
圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定されることを特徴とするデータ転送制御システム。
In claim 2 or 3,
The second data amount is
A data transfer control system, wherein a data amount is set to be larger than a data amount serving as a unit for decompression processing of compressed data.
請求項2乃至4のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第1のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラのデータ転送速度を、第1の転送速度よりも遅い第2の転送速度に設定することを特徴とするデータ転送制御システム。
In any one of claims 2 to 4,
The transfer rate setting unit,
When the amount of data stored in the second memory reaches the first data amount, the data transfer speed of the transfer controller that is transferring the compressed data at the first transfer speed is lower than the first transfer speed. A data transfer control system, wherein the data transfer control system is set to a second transfer speed.
請求項2乃至5のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第1のデータ量になった場合には、転送コントローラを転送待ち状態に設定することを特徴とするデータ転送制御システム。
In any one of claims 2 to 5,
The transfer rate setting unit,
A data transfer control system wherein the transfer controller is set to a transfer waiting state when the amount of data stored in the second memory reaches the first data amount.
請求項2乃至6のいずれかにおいて、
前記転送速度設定部が、
第2のメモリの蓄積データ量が第2のデータ量になった場合には、第1の転送速度で圧縮データを転送している転送コントローラの転送速度を、第1の転送速度よりも速い第3の転送速度に設定することを特徴とするデータ転送制御システム。
In any one of claims 2 to 6,
The transfer rate setting unit,
When the amount of data stored in the second memory has reached the second amount of data, the transfer speed of the transfer controller that is transferring the compressed data at the first transfer speed is increased to the second transfer speed higher than the first transfer speed. 3. A data transfer control system wherein the transfer rate is set to 3.
請求項1乃至7のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第2のコントローラから第2のメモリのデータ蓄積状況を取得することを特徴とするデータ転送制御システム。
In any one of claims 1 to 7,
The transfer rate setting unit,
A data transfer control system, wherein a data accumulation state of a second memory is obtained from a second controller by using packet transfer via a bus.
請求項1乃至8のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、転送速度の設定コマンドを第2のコントローラに知らせることを特徴とするデータ転送制御システム。
In any one of claims 1 to 8,
The transfer rate setting unit,
A data transfer control system for notifying a second controller of a transfer speed setting command using packet transfer via a bus.
請求項1乃至9のいずれかにおいて、
前記転送速度設定部が、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。
In any one of claims 1 to 9,
The transfer rate setting unit,
A data transfer control system that analyzes compressed data and sets a transfer speed of a transfer controller based on information included in the compressed data and information for specifying an image data amount.
圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
圧縮データを、バスを介して第2のコントローラに転送する転送コントローラと、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。
A data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
A transfer controller for transferring the compressed data to a second controller via a bus;
A transfer speed setting unit that analyzes the compressed data and sets the transfer speed of the transfer controller based on information included in the compressed data and information for specifying the amount of image data,
A data transfer control system comprising:
請求項11において、
前記転送速度設定部が、
圧縮データのシーケンス層に含まれるビットレートに基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御システム。
In claim 11,
The transfer rate setting unit,
A data transfer control system, wherein a transfer rate of a transfer controller is set based on a bit rate included in a sequence layer of compressed data.
圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御システムであって、
バスを介して第1のコントローラから転送される圧縮データを受信する転送コントローラと、
受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得するメモリ管理部と、
取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定する転送速度設定部と、
を含むことを特徴とするデータ転送制御システム。
A data transfer control system for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
A transfer controller for receiving compressed data transferred from the first controller via the bus;
A memory management unit that manages a second memory that stores the received compressed data and obtains a data accumulation state of the second memory;
A transfer rate setting unit that notifies the first controller of the acquired data accumulation status and sets a transfer rate of the transfer controller based on a transfer rate setting command from the first controller;
A data transfer control system comprising:
請求項13において、
第2のメモリの蓄積データ量が、第1のデータ量と第2のデータ量の間のデータ量になるように、転送コントローラの転送速度が設定されることを特徴とするデータ転送制御システム。
In claim 13,
A data transfer control system, wherein a transfer speed of a transfer controller is set such that an amount of data stored in a second memory is a data amount between the first data amount and the second data amount.
請求項14において、
前記第1のデータ量が、
第2のメモリがフル状態になる時の蓄積データ量よりも小さなデータ量に設定されることを特徴とするデータ転送制御システム。
In claim 14,
The first data amount is:
A data transfer control system, wherein the data amount is set to be smaller than the accumulated data amount when the second memory becomes full.
請求項14又は15において、
前記第2のデータ量が、
圧縮データの伸長処理単位となるデータ量よりも大きなデータ量に設定されることを特徴とするデータ転送制御システム。
In claim 14 or 15,
The second data amount is
A data transfer control system, wherein a data amount is set to be larger than a data amount serving as a unit for decompression processing of compressed data.
請求項13乃至16のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第1のコントローラから転送速度設定コマンドを取得することを特徴とするデータ転送制御システム。
In any one of claims 13 to 16,
The transfer rate setting unit,
A data transfer control system, wherein a transfer speed setting command is obtained from a first controller by using packet transfer via a bus.
請求項13乃至17のいずれかにおいて、
前記転送速度設定部が、
バスを介したパケット転送を用いて、第2のメモリのデータ蓄積状況を第1のコントローラに知らせることを特徴とするデータ転送制御システム。
In any one of claims 13 to 17,
The transfer rate setting unit,
A data transfer control system for notifying a first controller of a data accumulation state of a second memory by using packet transfer via a bus.
第1のコントローラと、
第1のコントローラとバスを介して接続される第2のコントローラと、
圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するための請求項1乃至18のいずれかのデータ転送制御システムと、
第1のコントローラ又は第2のコントローラにより制御されるデバイスと、
を含むことを特徴とする電子機器。
A first controller;
A second controller connected to the first controller via a bus,
19. A data transfer control system according to any one of claims 1 to 18 for transferring compressed data between a first controller and a second controller via a bus.
A device controlled by the first controller or the second controller;
An electronic device comprising:
圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、
前記第2のコントローラが有するメモリであって受信された圧縮データを記憶する第2のメモリのデータ蓄積状況に基づいて、転送コントローラによるバスを介したデータ転送の転送速度を設定することを特徴とするデータ転送制御方法。
A data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
Transferring the compressed data to a second controller via a bus by a transfer controller;
A transfer rate of data transfer via a bus by a transfer controller is set based on a data accumulation state of a second memory that stores the received compressed data in a memory of the second controller. Data transfer control method.
圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
圧縮データを、バスを介して転送コントローラにより第2のコントローラに転送し、
圧縮データを解析し、圧縮データに含まれる情報であり画像データ量を特定するための情報に基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御方法。
A data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
Transferring the compressed data to a second controller via a bus by a transfer controller;
A data transfer control method comprising: analyzing compressed data; and setting a transfer speed of a transfer controller based on information included in the compressed data and specifying information on an amount of image data.
圧縮画像データを含む圧縮データを第1のコントローラと第2のコントローラとの間でバスを介して転送するためのデータ転送制御方法であって、
バスを介して第1のコントローラから転送される圧縮データを転送コントローラにより受信し、
受信された圧縮データを記憶する第2のメモリを管理し、第2のメモリのデータ蓄積状況を取得し、
取得されたデータ蓄積状況を第1のコントローラに知らせ、第1のコントローラからの転送速度設定コマンドに基づいて、転送コントローラの転送速度を設定することを特徴とするデータ転送制御方法。
A data transfer control method for transferring compressed data including compressed image data between a first controller and a second controller via a bus,
Receiving compressed data transferred from the first controller via the bus by the transfer controller;
Managing a second memory for storing the received compressed data, acquiring a data accumulation state of the second memory,
A data transfer control method, comprising: informing a first controller of an acquired data accumulation state; and setting a transfer speed of the transfer controller based on a transfer speed setting command from the first controller.
JP2002167095A 2002-06-07 2002-06-07 Data transfer control system, electronic appliance, and data transfer control method Withdrawn JP2004012871A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002167095A JP2004012871A (en) 2002-06-07 2002-06-07 Data transfer control system, electronic appliance, and data transfer control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002167095A JP2004012871A (en) 2002-06-07 2002-06-07 Data transfer control system, electronic appliance, and data transfer control method

Publications (1)

Publication Number Publication Date
JP2004012871A true JP2004012871A (en) 2004-01-15

Family

ID=30434446

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002167095A Withdrawn JP2004012871A (en) 2002-06-07 2002-06-07 Data transfer control system, electronic appliance, and data transfer control method

Country Status (1)

Country Link
JP (1) JP2004012871A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009195293A (en) * 2008-02-19 2009-09-03 Sophia Co Ltd Game machine
JP4888591B1 (en) * 2010-09-17 2012-02-29 オムロン株式会社 Image data transmission system and electronic device
JP2012250111A (en) * 2012-09-27 2012-12-20 Sophia Co Ltd Game machine
JP2013063330A (en) * 2013-01-11 2013-04-11 Sophia Co Ltd Game machine
JP5652388B2 (en) * 2009-03-06 2015-01-14 日本電気株式会社 COMMUNICATION RATE CONTROL METHOD, TRANSMITTER, AND COMMUNICATION SYSTEM

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009195293A (en) * 2008-02-19 2009-09-03 Sophia Co Ltd Game machine
JP5652388B2 (en) * 2009-03-06 2015-01-14 日本電気株式会社 COMMUNICATION RATE CONTROL METHOD, TRANSMITTER, AND COMMUNICATION SYSTEM
JP4888591B1 (en) * 2010-09-17 2012-02-29 オムロン株式会社 Image data transmission system and electronic device
JP2012250111A (en) * 2012-09-27 2012-12-20 Sophia Co Ltd Game machine
JP2013063330A (en) * 2013-01-11 2013-04-11 Sophia Co Ltd Game machine

Similar Documents

Publication Publication Date Title
JP3649226B2 (en) Data transfer control device, electronic device, and data transfer control method
US5801973A (en) Video decompression
US6665810B1 (en) Interface controller that controls the rate at which data is transfer based on the destination address of the data
KR100449102B1 (en) System on chip processor for multimedia
US20150220472A1 (en) Increasing throughput on multi-wire and multi-lane interfaces
US20030229749A1 (en) Data transfer control device, electronic equipment, and data transfer control method
US10841355B2 (en) Methods and apparatus for streaming media conversion with reduced buffering memories
US7337382B2 (en) Data transfer control device, electronic instrument, and data transfer control method
WO1998059494A1 (en) Apparatus and method for controlling transfer of data between processing elements
JP3726898B2 (en) Data transfer control device, electronic device, and data transfer control method
KR100944892B1 (en) Bus system and bus interface for connection to a bus
US20050231597A1 (en) Image-capturing apparatus, image processing system, control method, and storage medium
US7359996B2 (en) Data transfer control device, electronic equipment, and data transfer control method
CN113099133A (en) Method for transmitting high-bandwidth camera data by serial deserializer link
US7469304B2 (en) Data transfer control device, electronic equipment, and method for a data transfer through a bus, the data transfer control device including a register and a packet buffer that are commonly used during a host operation and a peripheral operation
JP2005354173A (en) Display controller, electronic apparatus, and image data supply method
JP2004012871A (en) Data transfer control system, electronic appliance, and data transfer control method
TW545047B (en) Data transfer device
JP3614161B2 (en) Data transfer control device, electronic device, and data transfer control method
JP2000057318A (en) Moving image decoding method and device
JP2597040B2 (en) FIFO memory device
JP3945328B2 (en) Image processing apparatus and image processing method
CN213365516U (en) Interface conversion circuit and interface conversion device
JP3908928B2 (en) Network interface circuit
CN101674401B (en) Method, terminal and camera module for transmitting image data

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050906