図面 (/)

技術 データ転送制御装置

出願人 株式会社リコー
発明者 嵯峨嘉孝
出願日 2014年8月26日 (5年3ヶ月経過) 出願番号 2014-172064
公開日 2016年4月4日 (3年8ヶ月経過) 公開番号 2016-045899
状態 特許登録済
技術分野 バス制御
主要キーワード マスターモジュール 疑似応答 スレーブインターフェース モジュール対 疑似データ 終了オフセット スレーブモジュール 方向画像サイズ
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年4月4日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題

所定のモジュールに対応して構成されたDMACと所定の機能を実現するために構成されたDMACとを併用する場合において効率的な制御を実現すること。

解決手段

所定のモジュールに対応して構成されたモジュール対応DMACと、モジュール対応DMACとは異なる機能を実現する機能対応DMACと、入力された順にデータを出力する一時記憶装置と備え、モジュール対応DMACは所定のモジュールから取得したデータを一時記憶装置に入力し、一時記憶装置はモジュール対応DMACにより入力されたデータを機能対応DMACに出力し、若しくは、機能対応DMACは所定のモジュールに転送するべきデータを一時記憶装置に入力し、一時記憶装置は機能対応DMACにより入力されたデータをモジュール対応DMACに出力し、モジュール対応DMACは一時記憶装置から出力されたデータを前記所定のモジュールに転送する

概要

背景

近年、PC(Personal Computer)や画像形成装置等の情報処理装置と、その情報処理装置に接続されて使用される周辺I/O(Input/Output)デバイスとの間におけるデータ通信高速化や、データ処理の高速化のために、バスに接続されたFIFO(First In First Out)を介してデータのやり取りを行う構成が提案されている(例えば、特許文献1を参照)。また、CPU(Central Proccessing Unit)を介さずに、周辺I/Oデバイスとメモリ間、若しくは、周辺I/Oデバイス同士の間で、直接データ転送を行なうために、機能モジュール毎マスター型DMAC(Direct Memory Access Controller:DMAコントローラ)を備える構成が提案されている。

周辺I/Oデバイスには、例えば、HDD(Hard Disc Drive)やSSD(Solid State Drive)、USB(Universal Serial Bus)メモリ、SD(Secure Digital)メモリカードPCIe(Peripheral Components Interconnect Express)をインタフェースとして接続される拡張カード等が挙げられる。また、データ処理には、例えば、画像処理データ圧縮処理データ伸長処理データ暗号化処理データ復号処理などが挙げられる。

上記のようなDMAコントローラは通常、モジュールに内蔵されて使用されるが、そのDMAコントローラ(以下、「内蔵DMAコントローラ」とする)に備えられていない独自の機能を使用したい場合、その機能を備える独自のDMAコントローラ(以下、「独自DMAコントローラ」とする)を併存して使用する必要がある。

概要

所定のモジュールに対応して構成されたDMACと所定の機能を実現するために構成されたDMACとを併用する場合において効率的な制御を実現すること。所定のモジュールに対応して構成されたモジュール対応DMACと、モジュール対応DMACとは異なる機能を実現する機能対応DMACと、入力された順にデータを出力する一時記憶装置と備え、モジュール対応DMACは所定のモジュールから取得したデータを一時記憶装置に入力し、一時記憶装置はモジュール対応DMACにより入力されたデータを機能対応DMACに出力し、若しくは、機能対応DMACは所定のモジュールに転送するべきデータを一時記憶装置に入力し、一時記憶装置は機能対応DMACにより入力されたデータをモジュール対応DMACに出力し、モジュール対応DMACは一時記憶装置から出力されたデータを前記所定のモジュールに転送する

目的

本発明は、このような課題を解決するためになされたものであり、所定のモジュールに対応して構成されたDMAコントローラと所定の機能を実現するために構成されたDMAコントローラとを併用する場合において効率的な制御を実現することを目的とする

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

異なるモジュール間でのデータ転送を制御するデータ転送制御装置であって、所定のモジュールに対応して構成されたモジュール対DMAコントローラと、前記モジュール対応DMAコントローラとは異なる機能を実現する機能対応DMAコントローラと、入力された順にデータを出力する一時記憶装置と、を備え、前記モジュール対応DMAコントローラは、前記所定のモジュールから取得したデータを取得した順に前記一時記憶装置に入力し、前記一時記憶装置は、前記モジュール対応DMAコントローラにより入力された前記所定のモジュールから取得されたデータを入力された順に前記機能対応DMAコントローラに出力し、若しくは、前記機能対応DMAコントローラは、前記所定のモジュールに転送するべきデータを前記一時記憶装置に入力し、前記一時記憶装置は、前記機能対応DMAコントローラにより入力された前記所定のモジュールに転送するべきデータを入力された順に前記モジュール対応DMAコントローラに出力し、前記モジュール対応DMAコントローラは、前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを出力された順に前記所定のモジュールに転送することを特徴とするデータ転送制御装置。

請求項2

前記機能対応DMAコントローラは、前記モジュール対応DMAコントローラよりもデータ転送サイズ最小単位が小さく、前記機能対応DMAコントローラが前記一時記憶装置に前記所定のモジュールに転送するべきデータを入力し、前記モジュール対応DMAコントローラが前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを前記所定のモジュールに転送する際に、前記一時記憶装置の記憶領域が空になった場合、前記一時記憶装置は、前記モジュール対応DMAコントローラに対して疑似データを出力することを特徴とする請求項1に記載のデータ転送制御装置。

請求項3

前記機能対応DMAコントローラは、前記モジュール対応DMAコントローラよりもデータ転送サイズの最小単位が小さく、前記モジュール対応DMAコントローラが前記一時記憶装置に前記所定のモジュールから取得されたデータを入力し、前記一時記憶装置が前記機能対応DMAコントローラに前記所定のモジュールから取得されたデータを出力する際に、前記一時記憶装置の記憶領域が満杯になった場合、前記一時記憶装置は、前記モジュール対応DMAコントローラから入力されたデータを破棄することを特徴とする請求項1又は2に記載のデータ転送制御装置。

請求項4

前記機能対応DMAコントローラは、前記モジュール対応DMAコントローラが前記一時記憶装置に前記所定のモジュールから取得されたデータを入力し、前記一時記憶装置が前記機能対応DMAコントローラに前記所定のモジュールから取得されたデータを出力する際に、前記一時記憶装置の記憶領域が満杯になった場合、前記一時記憶装置に前記モジュール対応DMAコントローラから入力されたデータを破棄させ、前記機能対応DMAコントローラが前記一時記憶装置に前記所定のモジュールに転送するべきデータを入力し、前記モジュール対応DMAコントローラが前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを前記所定のモジュールに転送する際に、前記一時記憶装置の記憶領域が空になった場合、前記一時記憶装置に前記モュール対応DMAコントローラに対して疑似データを出力させることを特徴とする請求項2又は3に記載のデータ転送制御装置。

請求項5

データの出力先となる主記憶装置にデータを書き込む際の書き込み先アドレス、若しくは、データの入力元となる主記憶装置からデータを読み出す際の読み出し元のアドレスを設定するアドレス設定部を備えることを特徴とする請求項1乃至4いずれか1項に記載のデータ転送制御装置。

請求項6

前記アドレス設定部は、2次元画像データのうち特定の矩形領域に対応する画像データが主記憶装置と他の装置との間で転送される際、前記2次元画像データの横方向の画素数、前記2次元画像データの縦方向の画素数、前記2次元画像データにおける前記画像データのうち最初に転送される画素の前記2次元画像データにおける横方向の位置情報、前記2次元画像データにおける前記画像データのうち最初に転送される画素の前記2次元画像データにおける縦方向の位置情報、前記2次元画像データにおける前記画像データのうち最後に転送される画素の前記2次元画像データにおける横方向の位置情報、前記2次元画像データにおける前記画像データのうち最後に転送される画素の前記2次元画像データにおける縦方向の位置情報に基づいて、前記画像データの出力先となる主記憶装置に前記画像データを書き込む際の書き込み先のアドレス、若しくは、前記画像データの入力元となる主記憶装置から前記画像データを読み出す際の読み出し元のアドレスを算出することを特徴とする請求項1乃至5いずれか1項に記載のデータ転送制御装置。

請求項7

前記アドレス設定部は、前記機能対応DMAコントローラであることを特徴とする請求項1乃至6いずれか1項に記載のデータ転送制御装置。

請求項8

前記データ転送の動作内容に関する転送パラメータを設定する転送パラメータ設定部を備え、前記転送パラメータ設定部は、複数回にわたって連続して制御されるデータ転送毎に、次に制御されるデータ転送の動作内容に関する転送パラメータの設定先のアドレスを、前記転送パラメータとして設定することを特徴とする請求項1乃至7いずれか1項に記載のデータ転送制御装置。

請求項9

前記一時記憶装置の記憶容量は、前記モジュール対応DMAコントローラの1回のバースト転送サイズの2倍であることを特徴とする請求項1乃至8いずれか1項に記載のデータ転送制御装置。

技術分野

0001

本発明は、データ転送制御装置に関する。

背景技術

0002

近年、PC(Personal Computer)や画像形成装置等の情報処理装置と、その情報処理装置に接続されて使用される周辺I/O(Input/Output)デバイスとの間におけるデータ通信高速化や、データ処理の高速化のために、バスに接続されたFIFO(First In First Out)を介してデータのやり取りを行う構成が提案されている(例えば、特許文献1を参照)。また、CPU(Central Proccessing Unit)を介さずに、周辺I/Oデバイスとメモリ間、若しくは、周辺I/Oデバイス同士の間で、直接データ転送を行なうために、機能モジュール毎マスター型DMAC(Direct Memory Access Controller:DMAコントローラ)を備える構成が提案されている。

0003

周辺I/Oデバイスには、例えば、HDD(Hard Disc Drive)やSSD(Solid State Drive)、USB(Universal Serial Bus)メモリ、SD(Secure Digital)メモリカードPCIe(Peripheral Components Interconnect Express)をインタフェースとして接続される拡張カード等が挙げられる。また、データ処理には、例えば、画像処理データ圧縮処理データ伸長処理データ暗号化処理データ復号処理などが挙げられる。

0004

上記のようなDMAコントローラは通常、モジュールに内蔵されて使用されるが、そのDMAコントローラ(以下、「内蔵DMAコントローラ」とする)に備えられていない独自の機能を使用したい場合、その機能を備える独自のDMAコントローラ(以下、「独自DMAコントローラ」とする)を併存して使用する必要がある。

発明が解決しようとする課題

0005

そうした場合、内蔵DMAコントローラ及び独自DMAコントローラは共にマスターとして動作するため、両者間でデータ転送を行うためには、スレーブであるメモリを介する必要がある。このとき、一方のDMAコントローラが一旦、転送対象のデータを全てメモリに書き込み、その後に、もう一方のDMAコントローラが上記メモリから転送順にデータを読み出すといった制御が必要になる。そのため、メモリアクセス回数メモリ使用量の浪費になり、非効率な制御となってしまう。尚、このような問題は、モジュールに内蔵されたDMAコントローラの他に、所定のモジュールに対応して構成されたDMAコントローラについても同様に起こり得る問題である。

0006

本発明は、このような課題を解決するためになされたものであり、所定のモジュールに対応して構成されたDMAコントローラと所定の機能を実現するために構成されたDMAコントローラとを併用する場合において効率的な制御を実現することを目的とする。

課題を解決するための手段

0007

上記課題を解決するために、本発明の一態様は、異なるモジュール間でのデータ転送を制御するデータ転送制御装置であって、所定のモジュールに対応して構成されたモジュール対応DMAコントローラと、前記モジュール対応DMAコントローラとは異なる機能を実現する機能対応DMAコントローラと、入力された順にデータを出力する一時記憶装置と、備え、前記モジュール対応DMAコントローラは、前記所定のモジュールから取得したデータを取得した順に前記一時記憶装置に入力し、前記一時記憶装置は、前記モジュール対応DMAコントローラにより入力された前記所定のモジュールから取得されたデータを入力された順に前記機能対応DMAコントローラに出力し、若しくは、前記機能対応DMAコントローラは、前記所定のモジュールに転送するべきデータを前記一時記憶装置に入力し、前記一時記憶装置は、前記機能対応DMAコントローラにより入力された前記所定のモジュールに転送するべきデータを入力された順に前記モジュール対応DMAコントローラに出力し、前記モジュール対応DMAコントローラは、前記一時記憶装置から出力された前記所定のモジュールに転送するべきデータを出力された順に前記所定のモジュールに転送することを特徴とする。

発明の効果

0008

本発明によれば、所定のモジュールに対応して構成されたDMAコントローラと所定の機能を実現するために構成されたDMAコントローラとを併用する場合において効率的な制御を実現することができる。

図面の簡単な説明

0009

本発明の実施形態に係る画像形成装置のハードウェア構成を模式的に示すブロック図である。
本発明の実施形態に係る情報処理装置におけるメモリのデータ構造を模式的に示す図である。
本発明の実施形態に係る画像記憶領域に記憶されている2次元画像データの画素情報メモリアドレスとの関係を示す図である。
本発明の実施形態に係る独自仕様DMACが2次元DMA転送によりメモリから画像データをリードする際のディスクリプタ設定を説明するための図である。
本発明の実施形態に係る独自仕様DMACが2次元DMA転送によりメモリに画像データをライトする際のディスクリプタ設定を説明するための図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介して行うデータ転送に先だってその準備を行う際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してメモリから画像データをリードしてHDDにライトする際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してメモリから画像データをリードしてHDDにライトする際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してメモリから画像データをリードしてHDDにライトする際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してHDDから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してHDDから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。
本発明の実施形態に係る情報処理装置において、独自仕様DMACと規格準拠DMACとがFIFOを介してHDDから画像データをリードしてメモリにライトする際の処理を説明するためのシーケンス図である。

実施例

0010

以下、図面を参照して、本発明の実施形態を詳細に説明する。本実施形態においては、データ転送制御装置として、規格で仕様が規定されていない独自仕様DMAC(Direct Memory Access Controler:DMAコントローラ)と、規格で仕様が規定されている規格準拠DMACとが、FIFO(First In First Out)を介して、メモリとHDD(Hard Disc Drive)との間でデータ転送を行うPC(Personal Cmputer)や画像形成装置等の情報処理装置を例として説明する。

0011

この独自仕様DMACと規格準拠DMACとは機能が異なり、独自仕様DMACは、規格準拠DMACにはない、2次元DMA転送機能やディスクリプタチェイン等の機能を備える。即ち、本実施形態においては、規格準拠DMACがモジュール対応DMACとして機能し、独自仕様DMACが機能対応DMACとして機能する。このように構成された情報処理装置1において、本実施形態に係る要旨の一つは、規格準拠DMACと独自仕様DMACとを併用する場合において効率的な制御を実現することにある。

0012

まず、本実施形態に係る情報処理装置1のハードウェア構成について図1を参照して説明する。図1は、本実施形態に係る情報処理装置1のハードウェア構成を模式的に示すブロック図である。

0013

図1に示すように、本実施形態に係る情報処理装置1は、独自仕様DMAC10、FIFO20、SATA(Serial Advanced Technology Attachment)制御部30、メモリ40、CPU(Central Processing Unit)50、HDD60、高速バス71、低速バス72、アドレス制御部80を備える。

0014

FIFO20は、先に記憶したデータから順番にデータを取り出すことができる一時記憶装置で、データ入力用とデータ出力用の2つのスレーブインターフェースで高速バス71に接続されており、バスに接続されているマスターインターフェースを備えた任意のモジュールからアクセスすることができる。

0015

FIFO20は、独自仕様DMAC10が出力する制御信号である疑似応答要求のアサートを検知すると、疑似応答を開始する。FIFO20は、疑似応答時、マスターインターフェースから送信要求があった場合には、FIFO20の状態に関わらず、即ち、空であっても、疑似データを送信する。一方、FIFO20は、疑似応答時、マスターインターフェースから受信要求があった場合には、FIFO20の状態に関わらず、即ち、満杯の状態であっても、データを受信し、受信したデータを記憶することなく破棄する。

0016

ここで、本実施形態に係るFIFO20がこのように、疑似応答時、マスターインターフェースから送信要求があった場合、空でも疑似データを送信し、マスターインターフェースから受信要求があった場合、満杯でもデータを受信する理由について説明する。

0017

HDD60等のストレージデバイスセクター単位でのアクセスが必要であるため、規格準拠DMAC31のデータ転送量セクタサイズ整数倍である。これに対し、独自仕様DMAC10のデータ転送サイズは1画素単位で設定可能である。そのため、規格準拠DMACと独自DMACとの間でデータ転送量の差が発生する。従って、本実施形態に係る情報処理装置1は、このときに上述したような疑似応答を実行することで、データ転送を正常に完了させるようになっている。

0018

即ち、情報処理装置は、仮に疑似応答を実行しない場合、FIFO20に対するデータの送信要求に対して、FIFO20にデータが入力されるのを待ち続けることになる。また、情報処理装置は、仮に疑似応答を実行しない場合、FIFO20に対する受信要求に対して、FIFO20に空きができるまで待ち続けることになる。そこで、本実施形態に係る情報処理装置1、上述したような疑似応答を実行することでデータ転送を正常に完了させるようになっている。本実施形態に係る情報処理装置1は、このことを要旨の一つとしている。

0019

データ送信用スレーブインターフェース21は、FIFO20に記憶してあるデータを、受信機能を備えた任意のマスターインターフェースへ送信する。受信機能を備えたマスターインターフェースを持つモジュールは、送信用スレーブインターフェース21に割り当てられたアドレスに対してリード動作を実行することで、FIFO20に記憶してあるデータを取得することができる。

0020

データ受信用スレーブインターフェース22は、送信機能を備えた任意のマスターインターフェースから送信されたデータを受信する。このとき受信されたデータはFIFO20に記憶される。送信機能を備えたマスターインターフェースを持つモジュールは、受信用スレーブインターフェース22に割り当てられたアドレスに対してライト動作を実行することで、FIFO20へのデータ入力を実施することができる。

0021

スレーブインターフェース21及び22は、データバス幅128bitで高速バス71に接続される。また、FIFO20の記憶容量は、8バースト動作×2回分=8×128bit×2=2048bit=256Byteとする。ここで、8バースト動作の転送サイズ(8×128bit)は、FIFO20を最も高い頻度で使用するSATA制御部30内部の規格準拠DMAC31の1回のバースト転送サイズである。FIFO20は、このように構成されることで、FIFO20にデータがライトされる速度と、FIFO20からデータがリードされる速度が同等である場合に、最小限の記憶容量でデータ転送速度を維持することが可能となる。

0022

高速バス71は、任意のマスターインターフェースを備えたモジュールと、任意のスレーブインターフェースを備えたモジュール間のデータ転送を仲介する。この高速バス71に接続された複数組マスターモジュールスレーブモジュール間のデータ転送は、並行して実行され得る。本実施形態に係る高速バス71の帯域は、数GByte/Sの帯域が想定されている。

0023

低速バス72は、各機能モジュール設定情報等の高速な転送を必要としないデータの送受信で使用され、任意のマスターインターフェースを備えたモジュールと、任意のスレーブインターフェースを備えたモジュール間のデータ転送を仲介する。この高速バス71に接続された1組のマスターモジュール/スレーブモジュール間でデータ転送中である場合には、他のマスターモジュール/スレーブモジュール間でデータ転送を実行することはできない。本実施例では、数十MByte/Sの帯域を想定している。

0024

CPU50は、各機能モジュールの動作を設定し、システムメイン制御を実行する。また、CPU50は、データ送受信用のマスターインターフェース51を通して、バスに接続された任意のスレーブインターフェースを持つモジュールにアクセスすることができる。CPU50は、各スレーブインターフェースには、スレーブモジュールの仕様に応じたアドレス範囲、または、特定アドレス値が割り当てられており、このアドレスを指定することで、所望のスレーブモジュールにアクセスすることができる。

0025

独自仕様DMAC10は、規格で仕様が規定されていない独自に設計・開発され、若しくは、独自に調達されたDMACである。この独自仕様DMAC10は、データ入力用のマスターインターフェース12とデータ出力用のマスターインターフェース13とで高速バス71に接続されており、バスに接続されているスレーブインターフェースを備えた任意のモジュールに対してアクセスすることができる。

0026

また、独自仕様DMAC10は、データ送信用のマスターインターフェース12を通して、任意の受信用スレーブインターフェースを持つモジュールにライトすることができる。また、独自仕様DMAC10は、データ受信用のマスターインターフェース13を通して、任意の送信用スレーブインターフェースを持つモジュールからデータをリードすることができる。

0027

また、独自仕様DMAC10は、2次元DMA転送機能を備えており、メモリ40とHDD60との間で、2次元画像として記憶しされている2次元画像データを転送する際、その全てを転送するのではなく、選択された特定の矩形領域のみを転送することができる。この2次元DMA転送機能の詳細については、図3図5にて説明する。

0028

また、独自仕様DMAC10は、データ転送が完了すると、疑似応答要求をアサートすることで、FIFO20に対して疑似応答を要求する。独自仕様DMAC10のディスクリプタアドレス等の各種設定は、低速バス72に接続されたデータ送受信用スレーブインターフェース11を通してCPU50により設定される。

0029

メモリ40は、HDD60からリードしたCPU50の動作プログラムを記憶し、若しくは、CPU50の処理したデータを記憶する等、各機能モジュールの作業領域として使用される主記憶装置である。データ送受信用のスレーブインターフェース41には、メモリ40の容量に応じたアドレス範囲が割り当てられており、バスに接続された任意のマスターインターフェースを持つモジュールは、このアドレスを指定することで、メモリ40にアクセスすることができる。

0030

SATA制御部30は、データ送受信用のマスター型の規格準拠DMAC31が内蔵されている。また、SATA制御部30は、SATA規格に準拠したデバイスを制御するためのSATAホストコントローラ機能を備え、HDD60へのデータライトデータリードを実行する。SATAのコマンド設定や、HDD60のステータス情報の取得は、低速バス72に接続された送受信用のスレーブインターフェース32を通して、CPU50により実行される。

0031

規格準拠DMAC31は、規格で仕様が規定されたDMACである。この規格準拠DMAC31は、マスターインターフェース33を通して高速バス71に接続され、スレーブインターフェースを持つ任意のモジュールにアクセスすることができる。規格準拠DMAC31のリード対象スレーブモジュール、ライト対象スレーブモジュール、転送データサイズ等の各種設定は、スレーブインターフェース32を通してCPU50により設定される。

0032

アドレス制御部80は、規格準拠DMAC31がFIFO20にアクセスする場合には、アドレスを固定することで、インクリメントしないようにする。

0033

HDD60は、SATA規格に準拠したストレージデバイスで、OS(Operating System)、アプリケーションプログラム等を記憶し、また、処理データの一時待避領域等に使用される。

0034

次に、本実施形態に係る情報処理装置1におけるメモリ40のデータ構造について、図2を参照して説明する。図2は、本実施形態に係る情報処理装置1におけるメモリ40のデータ構造を模式的に示す図である。

0035

図2に示すように、本実施形態に係る情報処理装置1において、メモリ40は、独自仕様DMAC制御レジスタ領域100、FIFO(出力)領域210、FIFO(入力)領域220、SATA制御レジスタ領域300、規格準拠DMAC制御レジスタ領域310、メモリ領域400、システム制御レジスタ領域500を含む。

0036

システム制御レジスタ領域500は、CPU50の動作モード等を設定する領域で、アドレス0x0008_0000〜0x0010_0FFFが割り当てられている。

0037

SATA制御レジスタ領域300は、送受信用スレーブインターフェース32を通してマスターモジュールがアクセスできる領域で、アドレス0x0010_1000〜0x0010_1FFFが割り当てられている。

0038

規格準拠DMAC制御レジスタ領域310は、送受信用スレーブインターフェース32を通してマスターモジュールがアクセスできる領域で、アドレス0x0010_2000〜0x0010_2FFFが割り当てられている。

0039

独自仕様DMAC制御レジスタ領域100は、送受信用スレーブインターフェース11を通してマスターモジュールがアクセスできる領域で、アドレス0x0010_3000〜0x0010_3FFFが割り当てられている。

0040

FIFO(入力)領域220は、受信用スレーブインターフェース22を通してマスターモジュールがアクセスできる領域で、アドレス0x0020_0000が割り当てられている。

0041

FIFO(出力)領域210は、送信用スレーブインターフェース21を通してマスターモジュールがアクセスできる領域で、アドレス0x0020_1000が割り当てられている。

0042

メモリ領域400は、送受信用スレーブインターフェース41を通してマスターモジュールがアクセスできる領域で、アドレス0x8000_0000〜0xFFFF_FFFFが割り当てられている。

0043

本実施例では、メモリ領域400は、画像記憶領域410、独自仕様DMACディスクリプタ(1)記憶領域420、独自仕様DMACディスクリプタ(2)記憶領域430、規格準拠DMACディスクリプタ記憶領域440を含む。

0044

画像記憶領域410は、横n画素×縦m画素の2次元画像を記憶する。独自仕様DMACディスクリプタ(1)記憶領域420、及び、独自仕様DMACディスクリプタ(2)記憶領域430は、CPU50が独自仕様DMAC10の動作パラメータ記述する領域である。

0045

このように、独自仕様DMACディスクリプタ(1)記憶領域420、及び、独自仕様DMACディスクリプタ(2)記憶領域430がチェインされている構成が、規格準拠DMAC31にはない、独自仕様DMAC10のみが備えるディスクリプタチェイン機能を実現するための構成である。尚、本実施例では、独自仕様DMACディスクリプタ記憶領域は、2段チェインされているが、同様のディスクリプタが追加作成されることにより、3段以上のチェインも可能になる。

0046

規格準拠DMACディスクリプタ記憶領域440は、CPU50が規格準拠DMAC31の動作パラメータを記述する領域である。

0047

次に、本実施形態に係る情報処理装置1における2次元DMA転送機能について、図3図5を参照して説明する。図3は、本実施形態に係る画像記憶領域410に記憶されている2次元画像データの画素情報とメモリアドレスとの関係を示す図である。図4は、本実施形態に係る独自仕様DMAC10が2次元DMA転送によりメモリ40から画像データをリードする際のディスクリプタ設定を説明するための図である。図5は、本実施形態に係る独自仕様DMAC10が2次元DMA転送によりメモリ40に画像データをライトする際のディスクリプタ設定を説明するための図である。

0048

尚、図4及び図5の内容は、CPU50若しくは独自仕様DMAC10により設定される。即ち、本実施形態においては、CPU50若しくは独自仕様DMAC10がアドレス設定部及び転送パラメータ設定部として機能する。

0049

図3に示すように、本実施形態に係る画像記憶領域410は、アドレス範囲0xC000_0000〜0xC000_0000+m*n−1に、横n画素×縦m画素の2次元画像データを記憶している。

0050

本実施形態に係る画像記憶領域410は、1画素あたりのデータサイズを8bit(1Byte)とし、1アドレスあたり8bit(1Byte)=1画素のデータを記憶することができるものとする。

0051

図3の一マスは、1画素に相当し、各画素に記述されている数値は、画素情報を記憶しているメモリアドレスのオフセットを示している。例えば、記載が「0」のマスならば、アドレス0xC000_0000に対応し、n−1ならば、アドレス0xC000_0000+(n−1)に対応する。

0052

独自仕様DMAC10の2次元DMA転送機能で転送する矩形領域を、4つのオフセットアドレスX1、Y1、X2、Y2で定義すると、図3太線で囲まれた領域が、転送対象の矩形領域となる。

0053

このように選択された矩形領域について、独自仕様DMAC10は、アドレスY1*n+X1、Y1*n+X1+1・・・の順番にアクセスしていき、アドレスY1*n+X2のアクセス後は、(Y1+1)*n+X1、(Y1+1)*n+X1+1・・・の順番でアクセスする。そして、独自仕様DMAC10は、アドレス(Y1+1)*n+X2のアクセス後は、(Y1+2)*n+X1、(Y1+2)*n+X1+1・・・の順番でアクセスし、以後、同様の動作を繰り返す。独自仕様DMAC10は、アドレスY2*n+X2へのアクセスが終了すると、転送完了となる。

0054

また、図4に示すように、本実施形態に係る独自仕様DMAC10が2次元DMA転送によりメモリ40から画像データをリードする際、CPU50により、独自仕様DMACディスクリプタ(1)記憶領域420及び独自仕様DMACディスクリプタ(2)記憶領域430にディスクリプタが作成される。このとき、独自仕様DMACディスクリプタ(1)記憶領域420には、アドレス0x8000_1000〜の40Byte分のディスクリプタが作成され、独自仕様DMACディスクリプタ(2)記憶領域430には、アドレス0x8000_1040〜の40Byte分のディスクリプタが作成される。尚、このディスクリプタ設定は、上記のアドレスの他、任意の空きメモリアドレスに作成可能である。

0055

独自仕様DMACディスクリプタ(1)記憶領域420には、DMAC起動後、最初に動作する転送パラメータが設定される。独自仕様DMACディスクリプタ(2)記憶領域430には、独自仕様DMACディスクリプタ(1)記憶領域420に設定された動作が終了した後に動作する転送パラメータが設定される。本実施例では、独自仕様DMACディスクリプタ記憶領域は、図2に示したように、2段チェインされている例について説明するが、独自仕様DMACディスクリプタ(2)記憶領域430に設定された動作が終了した後に動作する転送パラメータがさらに設定されることで、3段以上のチェインも可能になる。この転送パラメータには、データ転送の際に動作する動作内容が記述されている。

0056

転送モード設定4201には、メモリアクセスの方向が設定され、メモリ40から画像データをリードされる場合にはメモリリード方向に設定される。

0057

次ディスクリプタアドレス421には、独自仕様DMACディスクリプタ(1)記憶領域420に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、この次ディスクリプタアドレス421には、独自仕様DMACディスクリプタ(2)記憶領域430の開始アドレス0x8000_1040が設定される。

0058

データ転送元アドレス422には、メモリ40から画像データがリードされる場合には、転送対象画像を含む2次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送元アドレス422には0xC000_0000が設定される。

0059

データ転送先アドレス423には、メモリ40から画像データがリードされる場合には、FIFO20のデータ受信用スレーブインターフェース22のアドレスが設定される。本実施例では、このデータ転送先アドレス423には0x0020_0000が設定される。

0060

方向画像切り出し開始オフセットアドレス424には、2次元DMA転送時の転送対象となる矩形領域の横方向の開始位置が位置情報として指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス424にはX1が指定される。この横方向画像切り出し開始オフセットアドレス424にオフセットアドレスとしてX1が指定された場合には、横方向にX1−1番目の画素が転送対象領域開始画素となる。

0061

縦方向画像切り出し開始オフセットアドレス425には、2次元DMA転送時の転送対象となる矩形領域の縦方向の開始位置が位置情報として指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス425にはY1が指定される。この縦方向画像切り出し開始オフセットアドレス425にオフセットアドレスとしてY1が指定された場合には、縦方向にY1−1番目の画素が転送対象領域の開始画素となる。

0062

横方向画像切り出し終了オフセットアドレス426には、2次元DMA転送時の転送対象となる矩形領域の横方向の終了位置が位置情報として指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス426にはX2が指定される。この横方向画像切り出し終了オフセットアドレス426にオフセットアドレスとしてX2が指定された場合には、横方向にX2−1番目の画素が転送対象領域の終了画素となる。

0063

縦方向画像切り出し終了オフセットアドレス427には、2次元DMA転送時の転送対象となる矩形領域の縦方向の終了位置が位置情報として指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス427にはY2が指定される。この縦方向画像切り出し終了オフセットアドレス427にオフセットアドレスとしてY2が指定された場合には、縦方向にY2−1番目の画素が転送対象領域の終了画素となる。

0064

方向画像サイズ428には、転送対象画像を含む2次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ428にはnが設定される。縦方向画像サイズ429には、転送対象画像を含む2次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ429にはmが設定される。

0065

転送モード設定4301には、メモリアクセスの方向が設定され、メモリ40から画像データがリードされる場合にはメモリリード方向に設定される。

0066

次ディスクリプタアドレス431には、独自仕様DMACディスクリプタ(2)記憶領域430に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、独自仕様DMACディスクリプタ(2)記憶領域430が最後の転送となるため、次ディスクリプタアドレス431には0x0000_0000が設定される。独自仕様DMAC10は、次ディスクリプタアドレスが0x0000_0000の場合には、次の転送を実行しない仕様となっている。

0067

データ転送元アドレス432には、メモリ40から画像データがリードされる場合には、転送対象画像を含む2次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送元アドレス432には0xC000_0000が設定される。

0068

データ転送先アドレス433には、FIFO20のデータ受信用スレーブインターフェース22のアドレスが設定される。本実施例では、このデータ転送先アドレス433には0x0020_0000が設定される。

0069

横方向画像切り出し開始オフセットアドレス434には、2次元DMA転送時の転送対象となる矩形領域の横方向の開始位置が位置情報として指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス434にはX3が指定される。この横方向画像切り出し開始オフセットアドレス434にオフセットアドレスとしてX3が指定され場合には、横方向にX3−1番目の画素が転送対象領域の開始画素となる。

0070

縦方向画像切り出し開始オフセットアドレス435には、2次元DMA転送時の転送対象となる矩形領域の縦方向の開始位置が位置情報として指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス435にはY3が指定される。この縦方向画像切り出し開始オフセットアドレス435にオフセットアドレスとしてY3が指定された場合には、縦方向にY3−1番目の画素が転送対象領域の開始画素となる。

0071

横方向画像切り出し終了オフセットアドレス436には、2次元DMA転送時の転送対象となる矩形領域の横方向の終了位置が位置情報として指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス436にはX4が指定される。この横方向画像切り出し終了オフセットアドレス436にオフセットアドレスとしてX4が指定された場合には、横方向にX4−1番目の画素が転送対象領域の終了画素となる。

0072

縦方向画像切り出し終了オフセットアドレス437には、2次元DMA転送時の転送対象となる矩形領域の縦方向の終了位置が位置情報として指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス437にはY4が指定される。この縦方向画像切り出し終了オフセットアドレス437にオフセットアドレスとしてY4が指定された場合には、縦方向にY4−1番目の画素が転送対象領域の終了画素となる。

0073

横方向画像サイズ438には、転送対象画像を含む2次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ438にはnが設定される。縦方向画像サイズ439には、転送対象画像を含む2次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ439にはmが設定される。

0074

また、図5に示すように、本実施形態に係る独自仕様DMAC10が2次元DMA転送によりメモリ40へ画像データをライトする際とリードする際とでは、転送モード設定4201及び転送モード設定4301、データ転送元アドレス422及び423、データ転送先アドレス423及び433が異なる。

0075

転送モード設定4201には、メモリアクセスの方向が設定され、メモリ40へ画像データをライトする場合にはメモリライト方向に設定される。

0076

次ディスクリプタアドレス421には、独自仕様DMACディスクリプタ(1)記憶領域420に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスを設定する。本実施例では、この次ディスクリプタアドレス421には、独自仕様DMACディスクリプタ(2)記憶領域430の開始アドレス0x8000_1040が設定される。

0077

データ転送元アドレス422には、メモリ40へ画像データがライトされる場合には、FIFO20のデータ送信用スレーブインターフェース21のアドレスが設定される。本実施例では、このデータ転送元アドレス422には0x0020_1000が設定される。

0078

データ転送先のアドレス423には、メモリ40へ画像データがライトされる場合には、転送対象画像を含む2次元画像データの記憶開始アドレスが設定される。本実施例では、データ転送先のアドレス423には0xC000_0000が設定される。

0079

横方向画像切り出し開始オフセットアドレス424には、2次元DMA転送時の転送対象となる矩形領域の横方向の開始位置が指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス424にはX1が指定される。この横方向画像切り出し開始オフセットアドレス424にオフセットアドレスとしてX1が指定された場合には、横方向にX1−1番目の画素が転送対象領域の開始画素となる。

0080

縦方向画像切り出し開始オフセットアドレス425には、2次元DMA転送時の転送対象となる矩形領域の縦方向の開始位置が指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス425にはY1が指定される。この縦方向画像切り出し開始オフセットアドレス425にオフセットアドレスとしてY1が指定された場合には、縦方向にY1−1番目の画素が転送対象領域の開始画素となる。

0081

横方向画像切り出し終了オフセットアドレス426には、2次元DMA転送時の転送対象となる矩形領域の横方向の終了位置が指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス426にはX2が指定される。この横方向画像切り出し終了オフセットアドレス426にオフセットアドレスとしてX2が指定された場合には、横方向にX2−1番目の画素が転送対象領域の終了画素となる。

0082

縦方向画像切り出し終了オフセットアドレス427には、2次元DMA転送時の転送対象となる矩形領域の縦方向の終了位置を指定する。本実施例では、この縦方向画像切り出し終了オフセットアドレス427にはY2が指定される。この縦方向画像切り出し終了オフセットアドレス427にオフセットアドレスとしてY2が指定された場合には、縦方向にY2−1番目の画素が転送対象領域の終了画素となる。

0083

横方向画像サイズ428には、転送対象画像を含む2次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ428にはnが設定される。縦方向画像サイズ429には、転送対象画像を含む2次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ429にはmが設定される。

0084

転送モード設定4301には、メモリアクセスの方向が設定され、メモリ40へ画像データがライトされる場合にはメモリライト方向に設定される。

0085

次ディスクリプタアドレス431には、独自仕様DMACディスクリプタ(2)記憶領域430に設定された動作が終了した後に、次に実行するディスクリプタが存在する場合には、そのディスクリプタの記憶アドレスが設定される。本実施例では、独自仕様DMACディスクリプタ(2)記憶領域430が最後の転送となるため、この次ディスクリプタアドレス431には0x0000_0000が設定される。独自仕様DMAC10は、次ディスクリプタアドレスが0x0000_0000の場合には、次の転送を実行しない仕様となっている。

0086

データ転送元アドレス432には、メモリ40に画像データがライトされる場合には、FIFO20のデータ送信用スレーブインターフェース21のアドレスが設定される。本実施例では、このデータ転送元アドレス432には0x0020_1000が設定される。

0087

データ転送先のアドレス433には、メモリ40に画像データがライトされる場合には、転送対象画像を含む2次元画像データの記憶開始アドレスが設定される。本実施例では、このデータ転送先のアドレス433には0xC000_0000が設定される。

0088

横方向画像切り出し開始オフセットアドレス434には、2次元DMA転送時の転送対象となる矩形領域の横方向の開始位置が指定される。本実施例では、この横方向画像切り出し開始オフセットアドレス434にはX3が指定される。この横方向画像切り出し開始オフセットアドレス434にオフセットアドレスとしてX3が指定され場合には、横方向にX3−1番目の画素が転送対象領域の開始画素となる。

0089

縦方向画像切り出し開始オフセットアドレス435には、2次元DMA転送時の転送対象となる矩形領域の縦方向の開始位置が指定される。本実施例では、この縦方向画像切り出し開始オフセットアドレス435にはY3が指定される。この縦方向画像切り出し開始オフセットアドレス435にオフセットアドレスとしてY3が指定された場合には、縦方向にY3−1番目の画素が転送対象領域の開始画素となる。

0090

横方向画像切り出し終了オフセットアドレス436には、2次元DMA転送時の転送対象となる矩形領域の横方向の終了位置が指定される。本実施例では、この横方向画像切り出し終了オフセットアドレス436にはX4が指定される。この横方向画像切り出し終了オフセットアドレス436にオフセットアドレスとしてX4が指定された場合には、横方向にX4−1番目の画素が転送対象領域の終了画素となる。

0091

縦方向画像切り出し終了オフセットアドレス437には、2次元DMA転送時の転送対象となる矩形領域の縦方向の終了位置が指定される。本実施例では、この縦方向画像切り出し終了オフセットアドレス437にはY4が指定される。この縦方向画像切り出し終了オフセットアドレス437にオフセットアドレスとしてY4が指定された場合には、縦方向にY4−1番目の画素が転送対象領域の終了画素となる。

0092

横方向画像サイズ438には、転送対象画像を含む2次元画像データの横方向のページサイズが画素単位で設定される。本実施例では、この横方向画像サイズ438にはnが設定される。縦方向画像サイズ439には、転送対象画像を含む2次元画像データの縦方向のページサイズが画素単位で設定される。本実施例では、この縦方向画像サイズ439にはmが設定される。

0093

次に、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介して行うデータ転送に先だってその準備を行う際の処理について、図6を参照して説明する。図6は、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介して行うデータ転送に先だってその準備を行う際の処理を説明するためのシーケンス図である。

0094

図6に示すように、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介して行うデータ転送に先だってその準備を行う際にはまず、CPU50は、独自仕様DMAC10に対して、動作パラメータを記述するためのディスクリプタ(1)用の記憶アドレス(本実施例では、0x8000_1000)を通知し、割り込みマスク等の設定を実行する(S601)。

0095

そして、CPU50は、独自仕様DMAC10に通知したディスクリプタ(1)用の記憶アドレスにディスクリプタ(1)を作成する(S602)。このとき、CPU50が作成するディスクリプタ(1)の内容は、メモリ40から画像データがリードされる場合には、図4を参照して説明した内容となる。また、このとき、CPU50が作成するディスクリプタ(1)の内容は、メモリ40へ画像データがライトされる場合には、図5を参照して説明した内容となる。

0096

CPU50は、ディスクリプタ(1)の作成後、アドレス0x8000_1040にディスクリプタ(2)を作成する(S603)。このとき、CPU50が作成するディスクリプタ(2)の内容は、メモリ40から画像データがリードされる場合には、図4を参照して説明した内容となる。また、このとき、CPU50が作成するディスクリプタ(2)の内容は、メモリ40へ画像データがライトされる場合には、図5を参照して説明した内容となる。

0097

そして、CPU50は、例えば、AHCI(Advanced Host Controller Interface)規格で定められた設定等、規格準拠DMAC31の設定を実行するし、規格準拠DMAC31が参照するそれらのディスクリプタの内容を作成する(S604)。

0098

次に、CPU50は、例えば、AHCI規格で定められた設定等、SATA制御部30の設定を実行する(S605)。そして、CPU50は、独自仕様DMAC10を起動する(S606)。起動した独自仕様DMAC10は、独自仕様DMACディスクリプタ(1)記憶領域420(本実施例では、0x8000_1000)にアクセスし、転送パラメータを取得して、取得した転送パラメータからリードアドレス若しくはライトアドレスを算出する(S607)。

0099

そしてCPU50は、規格準拠DMAC31を起動する(S608)。起動した規格準拠DMAC31は、規格準拠DMACディスクリプタ記憶領域440(本実施例では、0x8001_0000)にアクセスし、転送パラメータを取得する(S609)。規格準拠DMAC31は、取得した転送パラメータに従い、SATA制御部30に対してSATAコマンド発行指令し(S610)、HDD60に対してSATAコマンドを発行させる(S611)。

0100

このようにして、本実施形態に係る情報処理装置1は、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介して行うデータ転送の準備を完了する。

0101

次に、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してメモリ40から画像データをリードしてHDD60にライトする際の処理について、図7図9を参照して説明する。図7図9は、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してメモリ40から画像データをリードしてHDD60にライトする際の処理を説明するためのシーケンス図である。尚、図7図9は、図6におけるデータ転送の準備が終了した直後からの処理について示している。

0102

本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してメモリ40から画像データをリードしてHDD60にライトする際にはまず、SATAコマンドを発行したSATA制御部30は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、規格準拠DMAC31に対してデータのライトを要求する(S701)。

0103

SATA制御部30からライト要求を受けた規格準拠DMAC31は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、FIFO20に対してリードを要求する(S702)。規格準拠DMAC31からリード要求を受けたFIFO20は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、独自仕様DMAC10に対してデータのライトを要求する(S703)。

0104

FIFO20からライト要求を受けた独自仕様DMAC10は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、メモリ40に対してリードを要求する(S704)。独自仕様DMAC10からリード要求を受けたメモリ40は、独自仕様DMAC10にデータを転送する(S705)。

0105

メモリ40からデータを受信した独自仕様DMAC10は、そのデータをFIFO20に転送する(S706)。独自仕様DMAC10からデータを受信したFIFO20は、そのデータを規格準拠DMAC31に転送する(S707)。FIFO20からデータを受信した規格準拠DMAC31は、そのデータをSATA制御部30に転送する(S708)。規格準拠DMAC31からデータを受信したSATA制御部30は、HDD60がデータ受信可能な状態である場合、そのデータをHDD60にライトする(S709)。

0106

このとき、本実施例では、データバス幅が128bitであるため、ディスクリプタ(1)に関する1回目の転送では、メモリ40上のアドレス0xC000_0000+Y1*n+X1〜0xC000_0000+Y1*n+X1+15に記憶されている128bit分の画像データがリードされる。同様に、2回目の転送では、メモリ40上のアドレス0xC000_0000+Y1*n+X1+16〜0xC000_0000+Y1*n+X1+31に記憶されている128bit分の画像データがリードされる。尚、2回目以降のリードアドレスは、独自仕様DMAC10がS607において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。

0107

そして、S701〜S709と同様の処理が繰り返し行われ、独自仕様DMACディスクリプタ(1)記憶領域420(本実施例では、0x8000_1000)に設定されている全てのデータ転送が終了すると、次に、独自仕様DMAC10は、独自仕様DMACディスクリプタ(2)記憶領域430(本実施例では、0x8000_1040)にアクセスし、転送パラメータを取得して、取得した転送パラメータからリードアドレスを算出する(S710)。このように、本実施形態に係る情報処理装置1は、規格準拠DMAC31にはない、独自仕様DMAC10のみが備えるディスクリプタチェイン機能を使用することが可能となっている。

0108

そして、本実施形態に係る情報処理装置1は、S701〜S709と同様の処理を繰り返し行う。このとき、本実施例では、データバス幅が128bitであるため、ディスクリプタ(2)に関する1回目の転送では、アドレス0xC000_0000+Y3*n+X3〜0xC000_0000+Y3*n+X3+15に記憶されている128bit分の画像データが転送される。

0109

同様に、2回目の転送では、アドレス0xC000_0000+Y3*n+X3+16〜0xC000_0000+Y3*n+X3+31に記憶されている128bit分の画像データが転送される。尚、2回目以降のリードアドレスは、独自仕様DMAC10がS710において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。このように、本実施形態に係る情報処理装置1は、規格準拠DMAC31にはない、独自仕様DMAC10のみが備える2次元DMA転送機能を使用することが可能となっている。

0110

尚、図7に示す例では、規格準拠DMAC31がリード要求を発行した後に、独自仕様DMAC10がリード要求を発行しているが、独自仕様DMAC10の方が先にリード要求を発行することも可能である。また、独自仕様DMAC10及び規格準拠DMAC31は、発行したリード要求に対するデータを受信する前に、次のリード要求を発行することが可能である。

0111

図8に示すように、独自仕様DMAC10は、独自仕様DMACディスクリプタ(2)記憶領域430(本実施例では、0x8000_1040)に設定されている全てのデータをFIFO20に転送すると(S801)、CPU50に対して転送が完了したことを通知すると共に(S802)、FIFO20に対して疑似応答を要求する(S803)。

0112

独自仕様DMAC10から疑似応答要求を受けたFIFO20は、以降、SATA制御部30から規格準拠DMAC31に対するライト要求に対し(S804)、規格準拠DMAC31からリード要求を受けると(S805)、規格準拠DMAC31に疑似データを転送する(S806)。

0113

FIFO20から疑似データを受信した規格準拠DMAC31は、その疑似データをSATA制御部30に転送する(S807)。規格準拠DMAC31から疑似データを受信したSATA制御部30は、その疑似データをHDD60にライトする(S808)。

0114

ここで、独自仕様DMACが全てのデータをFIFO20に転送するとFIFO20に対して疑似応答を要求し、以降、FIFO20が疑似データを転送する理由について説明する。

0115

独自仕様DMAC10が2次元DMA転送機能で転送することができるデータ転送サイズは、図3を参照して説明したように、特定の矩形領域であって1Byte刻みで設定可能であるが、規格準拠DMAC31が転送することができるデータ転送サイズは、セクタサイズ刻み(本実施例では、512Byte刻み)である。即ち、独自仕様DMAC10のデータ転送サイズの最小単位は、1Byteであり、規格準拠DMAC31のデータ転送サイズの最小単位は、512Byteである。

0116

そのため、FIFO20には、規格準拠DMAC31のデータ転送サイズに満たないデータが最後に残ることになり、そのデータも規格準拠DMAC31により転送されてしまうと、FIFO20は空となってしまう。

0117

例えば、メモリ40からHDD60へ600Byte分のデータが転送される場合、512Byte分のデータが転送されると、FIFO20には、残りの88Byte(600Byte−512Byte)分のデータが最後に残ることになり、その88Byte分のデータも規格準拠DMAC31により転送されてしまうと、FIFO20は空となってしまう。しかし、このとき、規格準拠DMAC31は、424Byte(512Byte−88Byte)分のデータを転送しなければならない状態となっている。

0118

ところが、FIFO20が空になってしまうと、FIFO20は、規格準拠DMAC31からリード要求があっても規格準拠DMAC31にデータを転送することができなくなってしまう。その結果、規格準拠DMAC31は、FIFO20からのデータの転送を待ち続けてしまい、いつまでたっても処理が終了しなくなってしまう。

0119

そこで、本実施形態に係る情報処理装置1においては、FIFO20は、独自仕様DMAC10から疑似応答要求を受けると、内部バッファが空になっても、規格準拠DMAC31のデータ転送サイズに達するまで、規格準拠DMAC31に疑似データを転送し続けるように構成されている。そのため、規格準拠DMAC31は、滞りなくデータ転送を続けることが可能となる。

0120

本実施形態に係る情報処理装置1は、このように構成されることで、規格準拠DMAC31にはない、2次元DMA転送機能やディスクリプタチェイン等、独自仕様DMAC10が備える機能を容易に使用することが可能となる。

0121

そして、本実施形態に係る情報処理装置1は、S804〜S808と同様の処理を繰り返し行う。その結果、図9に示すように、SATA制御部30は、規格準拠DMAC31に対して最後のライトを要求する(S901)。SATA制御部30から最後のライト要求を受けた規格準拠DMAC31は、FIFO20に対して最後のリードを要求する(S902)。

0122

規格準拠DMAC31から最後のリード要求を受けたFIFO20は、規格準拠DMAC31に最後の疑似データを転送する(S903)。FIFO20から最後の疑似データを受信した規格準拠DMAC31は、その最後の疑似データをSATA制御部30に転送する(S904)。規格準拠DMAC31から最後の疑似データを受信したSATA制御部30は、その最後の疑似データをHDD60にライトする(S905)。

0123

このとき、SATA制御部30に最後の疑似データを転送した規格準拠DMAC31は、CPU50に対して転送が完了したことを通知する(S906)。規格準拠DMAC31から転送完了通知を受けたCPU50は、独自仕様DMAC10に対して疑似応答解除を指令する(S907)。疑似応答解除要求を受けた独自仕様DMAC10は、FIFO20に対して疑似応答解除を要求する(S908)。

0124

本実施形態に係る情報処理装置1においては、このようにして、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してメモリ40から画像データをリードしてHDD60にライトする。

0125

次に、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してHDD60から画像データをリードしてメモリ40にライトする際の処理について、図10図12を参照して説明する。図10図12は、本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してHDD60から画像データをリードしてメモリ40にライトする際の処理を説明するためのシーケンス図である。尚、図10図12は、図6におけるデータ転送の準備が終了した直後からの処理について示している。

0126

本実施形態に係る情報処理装置1において、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してHDD60から画像データをリードしてメモリ40にライトする際にはまず、メモリ40は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、独自仕様DMAC10に対してデータのライトを要求する(S1001)。

0127

メモリ40からライト要求を受けた独自仕様DMAC10は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、FIFO20に対してリードを要求する(S1002)。独自仕様DMAC10からリード要求を受けたFIFO20は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、規格準拠DMAC31に対してデータのライトを要求する(S1003)。

0128

FIFO20からライト要求を受けた規格準拠DMAC31は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、SATA制御部30に対してリードを要求する(S1004)。規格準拠DMAC31からリード要求を受けたSATA制御部30は、データ受信可能な状態である場合、即ち、内部バッファに空きがある場合、HDD60からデータをリードし(S1005)、規格準拠DMAC31にそのデータを転送する(S1006)。

0129

SATA制御部30からデータを受信した規格準拠DMAC31は、そのデータをFIFO20に転送する(S1007)。規格準拠DMAC31からデータを受信したFIFO20は、そのデータを独自仕様DMAC10に転送する(S1008)。FIFO20からデータを受信した独自仕様DMAC10は、そのデータをメモリ40にライトする(S1009)。

0130

このとき、本実施例では、データバス幅が128bitであるため、ディスクリプタ(1)に関する1回目の転送では、メモリ40上のアドレス0xC000_0000+Y1*n+X1〜0xC000_0000+Y1*n+X1+15に128bit分の画像データがライトされる。同様に、2回目の転送では、メモリ40上のアドレス0xC000_0000+Y1*n+X1+16〜0xC000_0000+Y1*n+X1+31に128bit分の画像データがライトされる。尚、2回目以降のライトアドレスは、独自仕様DMAC10がS607において取得した転送パラメータから算出されたライトアドレスと前回のライトアドレスとから算出される。

0131

そして、S1001〜S1009と同様の処理が繰り返し行われ、独自仕様DMACディスクリプタ(1)記憶領域420(本実施例では、0x8000_1000)に設定されている全てのデータ転送が終了すると、次に、独自仕様DMAC10は、独自仕様DMACディスクリプタ(2)記憶領域430(本実施例では、0x8000_1040)にアクセスし、転送パラメータを取得して、取得した転送パラメータからライトアドレスを算出する(S1010)。このように、本実施形態に係る情報処理装置1は、規格準拠DMAC31にはない、独自仕様DMAC10のみが備えるディスクリプタチェイン機能を使用することが可能となっている。

0132

そして、本実施形態に係る情報処理装置1は、S1001〜S1009と同様の処理を繰り返し行う。このとき、本実施例では、データバス幅が128bitであるため、ディスクリプタ(2)に関する1回目の転送では、アドレス0xC000_0000+Y3*n+X3〜0xC000_0000+Y3*n+X3+15に記憶されている128bit分の画像データが転送される。

0133

同様に、2回目の転送では、アドレス0xC000_0000+Y3*n+X3+16〜0xC000_0000+Y3*n+X3+31に記憶されている128bit分の画像データが転送される。尚、2回目以降のリードアドレスは、独自仕様DMAC10がS710において取得した転送パラメータから算出されたリードアドレスと前回のリードアドレスとから算出される。このように、本実施形態に係る情報処理装置1は、規格準拠DMAC31にはない、独自仕様DMAC10のみが備える2次元DMA転送機能を使用することが可能となっている。

0134

尚、図10に示す例では、独自仕様DMAC10がリード要求を発行した後に、規格準拠DMAC31がリード要求を発行しているが、規格準拠DMAC31の方が先にリード要求を発行することも可能である。また、独自仕様DMAC10及び規格準拠DMAC31は、発行したリード要求に対するデータを受信する前に、次のリード要求を発行することが可能である。

0135

図11に示すように、独自仕様DMAC10は、独自仕様DMACディスクリプタ(2)記憶領域430(本実施例では、0x8000_1040)に設定されている全てのデータをメモリ40にライトすると(S1101)、CPU50に対して転送が完了したことを通知すると共に(S1102)、FIFO20に対して疑似応答を要求する(S1103)。

0136

独自仕様DMAC10から疑似応答要求を受けたFIFO20は、以降、規格準拠DMAC31に対するライト要求に対してデータが転送されてくると(S1104〜S1108)、そのデータを破棄する(S1109)。

0137

ここで、独自仕様DMACが全てのデータをメモリ40にライトするとFIFO20に対して疑似応答を要求し、以降、FIFO20が受信したデータを破棄する理由について説明する。

0138

上述したように、独自仕様DMAC10のデータ転送サイズの最小単位と規格準拠DMAC31のデータ転送サイズの最小単位とは異なり、独自仕様DMAC10のデータ転送サイズの最小単位の方が小さい。

0139

そのため、独自仕様DMAC10は、転送するべきデータを全てメモリ40へライトすると、それ以上のデータをFIFO20からリードする必要がなくなるが、それ以上のデータが規格準拠DMAC31によりFIFO20へライトされてしまうと、FIFO20は満杯となってしまう。

0140

例えば、HDD60からメモリ40へ600Byte分のデータが転送される場合、その600Byte分のデータ全てがメモリ40にライトされると、それ以上のデータはFIFO20からリードされなくなるが、規格準拠DMAC31により412Byte(512Byte−(600Byte−512Byte))分のデータがさらにFIFO20へライトされ続け、ついには、FIFO20は満杯となってしまう。

0141

ところが、FIFO20が満杯になってしまうと、FIFO20は、規格準拠DMAC31にライトを要求することができなくなってしまう。その結果、規格準拠DMAC31は、FIFO20からのライト要求を待ち続けてしまい、いつまでたっても処理が終了しなくなってしまう。

0142

そこで、本実施形態に係る情報処理装置1においては、FIFO20は、独自仕様DMAC10から疑似応答要求を受けると、内部バッファが満杯になっても、規格準拠DMAC31のデータ転送サイズに達するまで、規格準拠DMAC31にライトを要求し続け、それ以降受信したデータについては破棄するように構成されている。そのため、規格準拠DMAC31は、滞りなくデータ転送を続けることが可能となる。

0143

本実施形態に係る情報処理装置1は、このように構成されることで、規格準拠DMAC31にはない、2次元DMA転送機能やディスクリプタチェイン等、独自仕様DMAC10が備える機能を容易に使用することが可能となる。

0144

そして、本実施形態に係る情報処理装置1は、S1104〜S809と同様の処理を繰り返し行う。その結果、図12に示すように、FIFO20は、規格準拠DMAC31に対して最後のライトを要求する(S1201)。FIFO20から最後のライト要求を受けた規格準拠DMAC31は、SATA制御部30に対して最後のリードを要求する(S1202)。

0145

規格準拠DMAC31から最後のリード要求を受けたSATA制御部30は、HDD60から最後のデータをリードし(S1203)、規格準拠DMAC31にその最後のデータを転送する(S1204)。SATA制御部30から最後のデータを受信した規格準拠DMAC31は、その最後のデータをFIFO20に転送する(S1205)。規格準拠DMAC31から最後のデータを受信したFIFO20は、その最後のデータを破棄する(S1206)。

0146

このとき、FIFO20に最後のデータを転送した規格準拠DMAC31は、CPU50に対して転送が完了したことを通知する(S1207)。規格準拠DMAC31から転送完了通知を受けたCPU50は、独自仕様DMAC10に対して疑似応答解除を指令する(S1208)。疑似応答解除要求を受けた独自仕様DMAC10は、FIFO20に対して疑似応答解除を要求する(S1209)。

0147

本実施形態に係る情報処理装置1においては、このようにして、独自仕様DMAC10と規格準拠DMAC31とがFIFO20を介してHDD60から画像データをリードしてメモリ40にライトする。

0148

尚、本実施形態においては、メモリ40とHDD60との間でのデータ転送について説明したが、情報処理装置1に接続された異なる入出力装置間でのデータ転送についても同様に適用可能である。

0149

1情報処理装置
10 独自仕様DMAC
11データ送受信用スレーブインターフェース
12マスターインターフェース
13 マスターインターフェース
32 スレーブインターフェース
33 マスターインターフェース
20 FIFO
21データ送信用スレーブインターフェース
22データ受信用スレーブインターフェース
30 SATA制御部
31規格準拠DMAC
40メモリ
41 スレーブインターフェース
50 CPU
51 マスターインターフェース
60 HDD
71高速バス
72低速バス
80アドレス制御部

先行技術

0150

特開2003−337805号公報

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

該当するデータがありません

関連する公募課題

該当するデータがありません

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • キヤノン株式会社の「 通信装置およびその制御方法」が 公開されました。( 2019/09/12)

    【課題】より低いコストで通信パケットの送信を高速化する。【解決手段】パケットのペイロードを生成する第1生成手段と、パケットの通信ヘッダのひな型となる仮通信ヘッダを生成する第2生成手段と、ペイロードと仮... 詳細

  • 株式会社リコーの「 画像形成装置」が 公開されました。( 2019/09/12)

    【課題】SoCのクロック信号の動作周波数が低下している際には、エンジン側を動作させず、SoCが通常モードに復帰した後に、エンジンを動作させることにある。【解決手段】エンジン制御部1は、メモリ3にアクセ... 詳細

  • 三星電子株式会社の「 SSDに対するFPGAベースのアクセラレーションモジュール及びシステムとその動作方法」が 公開されました。( 2019/09/12)

    【課題】FPGAベースのアクセラレーションのための低コスト、低消費電力のSSD構造を有するアクセラレーションモジュール及びシステムとその動作方法を提供する。【解決手段】システムは、アプリケーションを実... 詳細

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

該当するデータがありません

この 技術と関連する公募課題

該当するデータがありません

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ