JP2011022877A - Information processing apparatus and method - Google Patents
Information processing apparatus and method Download PDFInfo
- Publication number
- JP2011022877A JP2011022877A JP2009168438A JP2009168438A JP2011022877A JP 2011022877 A JP2011022877 A JP 2011022877A JP 2009168438 A JP2009168438 A JP 2009168438A JP 2009168438 A JP2009168438 A JP 2009168438A JP 2011022877 A JP2011022877 A JP 2011022877A
- Authority
- JP
- Japan
- Prior art keywords
- decoding
- information processing
- data
- data transfer
- common buffer
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
本発明は、情報処理装置および方法に関し、特に、デコード処理全体の時間を短縮することができるようにした情報処理装置および方法に関する。 The present invention relates to an information processing apparatus and method, and more particularly, to an information processing apparatus and method capable of shortening the entire decoding process.
従来、MPEG(Moving Picture Experts Group)と呼ばれる符号化方式により動画像を符号化して得られた符号化ストリームを復号する復号装置がある。規格化されてきたMPEGシリーズの中ではMPEG2が一般的ではあるが、最近では圧縮率を高めたMPEG4や、AVC(Advanced Video Coding)といった圧縮符号化方式も規格化されている。 2. Description of the Related Art Conventionally, there is a decoding device that decodes an encoded stream obtained by encoding a moving image using an encoding method called MPEG (Moving Picture Experts Group). Of the MPEG series that have been standardized, MPEG2 is common, but recently, compression coding schemes such as MPEG4 with an increased compression rate and AVC (Advanced Video Coding) have also been standardized.
このような符号化ストリームを復号する場合、例えば、マイクロコンピュータなど一般的なCPUを用いる方法がある(特許文献1参照)。 When decoding such an encoded stream, for example, there is a method using a general CPU such as a microcomputer (see Patent Document 1).
これに対して、パーソナルコンピュータにおいて符号化ストリームを復号する場合、例えば拡張ボード等によってパーソナルコンピュータに増設された、ハードウエアで構成される復号器(デコードハードウェア)を用いて復号する方法がある。 On the other hand, when a coded stream is decoded in a personal computer, there is a method of decoding using a hardware decoder (decode hardware) added to the personal computer, for example, by an expansion board.
この方法においては、パーソナルコンピュータは、符号化ストリームを復号する必要が生じたときに、その符号化ストリームを復号器に供給する。復号器は、パーソナルコンピュータから符号化ストリームを取得するとそれを復号し、ベースバンドのデータをパーソナルコンピュータに返す。 In this method, the personal computer supplies the encoded stream to the decoder when it becomes necessary to decode the encoded stream. When the decoder acquires the encoded stream from the personal computer, the decoder decodes the encoded stream and returns baseband data to the personal computer.
以上のように、この方法の場合、パーソナルコンピュータと復号器の間でデータやコマンドの転送を行う必要がある。 As described above, in this method, it is necessary to transfer data and commands between the personal computer and the decoder.
図1を参照して、パーソナルコンピュータと復号器とのデータ転送の第1の方法について説明する。なお、図1の例においては、2つのデコード処理が連続で行われる例が示されている。 A first method of data transfer between the personal computer and the decoder will be described with reference to FIG. In the example of FIG. 1, an example in which two decoding processes are performed in succession is shown.
図1の上段には、パーソナルコンピュータ上で動作するアプリケーションの処理が示されている。中段には、パーソナルコンピュータ上のデバイスドライバと復号器間のデータ転送処理が示されている。下段には、復号器の処理が示されている。以下、図面の丸数字は、括弧付き数字で置き換えて説明する。 The upper part of FIG. 1 shows processing of an application that runs on a personal computer. The middle part shows the data transfer process between the device driver on the personal computer and the decoder. The lower part shows the processing of the decoder. In the following description, the circled numbers in the drawings are replaced with numbers in parentheses.
まず、アプリケーション上でデコード(1)要求コマンドが発行されると、デバイスドライバにおいて、パーソナルコンピュータ上の主記憶領域に置かれたデコード(1)用データの管理処理が行われ、復号器に対して、デコード(1)用データ転送が行われる。 First, when a decode (1) request command is issued on the application, the device driver performs a management process of the decode (1) data placed in the main storage area on the personal computer, and Decode (1) data transfer is performed.
デコード(1)用データ転送が終了すると、デバイスドライバから、復号器に対してデコード(1)用データ転送完了通知が行われ、復号器においてデコード(1)処理が開始される。 When the data transfer for decoding (1) ends, the device driver notifies the decoder of the completion of data transfer for decoding (1), and the decoder starts the decoding (1) process.
復号器でのデコード(1)処理が完了すると、データ転送処理として、アプリケーションに対してデコード(1)用結果データ転送が行われる。アプリケーション上では、そのデコード(1)用結果データが取得された後で、次のデコード(2)要求コマンドが発行される。 When the decoding (1) processing in the decoder is completed, decoding (1) result data transfer is performed to the application as data transfer processing. On the application, after the decoding (1) result data is acquired, the next decoding (2) request command is issued.
その後、デコード(1)の処理と同様に、デバイスドライバにおいて、パーソナルコンピュータ上の主記憶領域に置かれたデコード(2)用データの管理処理が行われ、復号器に対してデコード(2)用データ転送が行われる。 After that, in the same way as the process of decoding (1), the device driver performs the management process of the data for decoding (2) placed in the main storage area on the personal computer, and the decoder performs the processing for decoding (2). Data transfer is performed.
デコード(2)用データ転送が終了すると、デバイスドライバから、復号器に対してデコード(2)用データ転送完了通知が行われ、復号器において、デコード(2)処理が開始される。 When the data transfer for decoding (2) is completed, the device driver notifies the decoder of the completion of data transfer for decoding (2), and the decoder starts the decoding (2) process.
復号器でのデコード(2)処理が完了すると、データ転送処理として、アプリケーションに対してデコード(2)用結果データ転送が行われる。 When the decoding (2) processing in the decoder is completed, decoding (2) result data transfer is performed to the application as data transfer processing.
このように、第1の方法においては、復号器によるデコードの完了を待ってから、次のデコード要求が行われる。このため、第1の方法においては、データ転送処理における、デコード(1)用データ転送完了通知を行ってから、次のデコード(2)用データの管理処理を行うまでの時間T1に、タイムラグが生じていた。 As described above, in the first method, after the decoding by the decoder is completed, the next decoding request is made. For this reason, in the first method, there is a time lag at the time T1 from the notification of the completion of the data transfer for decoding (1) in the data transfer processing to the time when the management processing of the data for decoding (2) is performed. It was happening.
この結果、復号器においては、デコード(1)処理を終了してから、デコード(2)処理を開始するまでの時間T2に示されるように、高速で動作するデコード処理を実行する時間間隔が大幅に開いてしまい、全体的なデコード処理時間の短縮を行うことが困難であった。 As a result, in the decoder, as shown in time T2 from the end of the decoding (1) process to the start of the decoding (2) process, the time interval for executing the decoding process that operates at a high speed is greatly increased. It was difficult to reduce the overall decoding processing time.
次に、図2を参照して、パーソナルコンピュータと復号器とのデータ転送の第2の方法について説明する。なお、図2の例においても、図1の例と同様に、2つのデコード処理が連続で行われる例が示されている。 Next, a second method of data transfer between the personal computer and the decoder will be described with reference to FIG. 2 also shows an example in which two decoding processes are performed continuously, as in the example of FIG.
まず、アプリケーション上でデコード(1)要求コマンドが発行されると、デバイスドライバにおいて、パーソナルコンピュータ上の主記憶領域に置かれたデコード(1)用データの管理処理が行われ、復号器に対して、デコード(1)用データ転送が行われる。 First, when a decode (1) request command is issued on the application, the device driver performs a management process of the decode (1) data placed in the main storage area on the personal computer, and Decode (1) data transfer is performed.
このとき、アプリケーション上においては、アプリケーション上に設けられたデコード要求コマンドを複数回実行可能にする機構(コマンドキューイング)により、次のデコード(2)要求コマンドがキューイングされる。 At this time, on the application, the next decode (2) request command is queued by a mechanism (command queuing) that allows the decode request command provided on the application to be executed a plurality of times.
デコード(1)用データ転送が終了すると、デバイスドライバから、復号器に対してデコード(1)用データ転送完了通知が行われ、復号器においてデコード(1)処理が開始される。 When the data transfer for decoding (1) ends, the device driver notifies the decoder of the completion of data transfer for decoding (1), and the decoder starts the decoding (1) process.
また、アプリケーションに対するデコード(1)用データ転送完了通知も行われ、アプリケーション上においては、キューイングされていた次のデコード(2)要求コマンドが、デコード(2)用結果データの取得を待たずに発行される。 In addition, the decode (1) data transfer completion notification to the application is also made, and the next decode (2) request command queued on the application does not wait for acquisition of the result data for decode (2). publish.
これに対応して、デバイスドライバにおいて、パーソナルコンピュータ上の主記憶領域に置かれたデコード(2)用データの管理処理が行われる。 Correspondingly, the device driver performs a management process of data for decoding (2) placed in the main storage area on the personal computer.
一方、復号器でのデコード(1)処理が完了すると、データ転送処理として、パーソナルコンピュータに対してデコード(1)用結果データ転送が行われ、アプリケーション上では、デコード(1)用結果データが取得される。 On the other hand, when the decoding (1) process at the decoder is completed, the decoding (1) result data is transferred to the personal computer as the data transfer process, and the decoding (1) result data is obtained on the application. Is done.
デコード(1)用結果データ転送後、デコード(2)用データの管理処理が終了すると、すぐに、復号器に対して、デコード(2)用データ転送が行われる。 After the decoding (1) result data transfer, when the decoding (2) data management process is completed, the decoding (2) data transfer is performed to the decoder.
デコード(2)用データ転送が終了すると、デバイスドライバから、復号器に対してデコード(2)用データ転送完了通知が行われ、復号器においてデコード(2)処理が開始される。復号器でのデコード(2)処理が完了すると、データ転送処理として、アプリケーションに対してデコード(2)用結果データ転送が行われる。 When the data transfer for decoding (2) is completed, the device driver notifies the decoder of the completion of data transfer for decoding (2), and the decoder starts the decoding (2) process. When the decoding (2) processing in the decoder is completed, decoding (2) result data transfer is performed to the application as data transfer processing.
このように、第2の方法においては、アプリケーションによるデコードコマンドキューイングなどが用いられる。これにより、デコード(1)用結果データ転送の間に、次のデコード(2)要求コマンドによるデコード(2)用データ完了処理を行い、その後、すぐに、デコード(2)用データ転送を開始することが可能になる。しかしながら、先のデコード(1)処理の間には、次のデコード(2)用データ転送を行うことは困難であった。 Thus, in the second method, decode command queuing by an application is used. As a result, during the decode (1) result data transfer, the decode (2) data completion processing is performed by the next decode (2) request command, and then the decode (2) data transfer is started immediately. It becomes possible. However, it is difficult to transfer the next data for decoding (2) during the previous decoding (1) process.
この結果、第2の方法の復号器においても、デコード(1)処理を終了してから、デコード(2)処理を開始するまでの時間T3に示されるように、デコード処理を実行する時間間隔が大幅に開いてしまい、全体的なデコード処理時間の短縮が難しかった。 As a result, also in the decoder of the second method, the time interval for executing the decoding process is as shown by time T3 from the end of the decoding (1) process to the start of the decoding (2) process. It opened greatly and it was difficult to shorten the overall decoding process time.
さらに、パーソナルコンピュータと復号器とのデータ転送の第3の方法を説明する。復号器上に搭載されるDMAC(Direct Memory Access Controller)は、1つのデータ転送方向(DMA ChannelまたはDMA Adapterと称する)に対し、RxとTxといった個別の制御レジスタを有している。 Further, a third method of data transfer between the personal computer and the decoder will be described. A direct memory access controller (DMAC) mounted on the decoder has individual control registers such as Rx and Tx for one data transfer direction (referred to as DMA channel or DMA adapter).
DMA上の各制御レジスタは、1方向のデータ転送中は、その方向におけるデータ転送が不可能であるが、逆方向のデータ転送は可能である。第3の方法においては、その制御レジスタで、1回のデータ転送要求につき、1つのSGL(Scatter Gather List)が作成され、コモンバッファへのコピーが行われてから、データ転送が行われる。 Each control register on the DMA cannot transfer data in one direction during data transfer in one direction, but can transfer data in the reverse direction. In the third method, one SGL (Scatter Gather List) is created for each data transfer request in the control register, data is copied to the common buffer, and then data transfer is performed.
すなわち、第3の方法においては、デバイスドライバがアプリケーションからデータ要求を受信後に、データ転送に必要となるデータ管理処理(SGLの作成とコモンバッファへのコピー)を行っていた。この結果、データ転送のための前処理に要する時間がボトルネックとなっていた。 That is, in the third method, after the device driver receives a data request from an application, data management processing (SGL creation and copying to a common buffer) necessary for data transfer is performed. As a result, the time required for preprocessing for data transfer has become a bottleneck.
以上のように、従来においては、復号器のデコードがいくら高速化されても、データ転送時間がボトルネックとなり、全体的なデコード処理時間の短縮を行うことが困難であった。したがって、デコード処理全体の高速化の効果を得ることが困難であった。 As described above, conventionally, even if the decoding speed of the decoder is increased, the data transfer time becomes a bottleneck, and it is difficult to reduce the entire decoding processing time. Therefore, it is difficult to obtain the effect of speeding up the entire decoding process.
本発明はこのような状況に鑑みてなされたものであり、デコード処理全体の時間を短縮することができるようにするものである。 The present invention has been made in view of such a situation, and makes it possible to shorten the time of the entire decoding process.
本発明の一側面の情報処理装置は、他の情報処理装置が行う所定の処理に対して発行される要求コマンドに対応して、必要な主記憶上のデータの管理リストを作成し、前記管理リストを含む、仮想メモリ空間と物理メモリ空間の関連付けがなされたコモンバッファ構造体をキューに積む管理情報作成手段と、前記管理情報作成手段により前記キューに積まれた前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、データ転送を行い、それに対応して前記他の情報処理装置から送られてくる前記データ転送の完了通知を受けた場合、前記キューから、前記データ転送に対応する前記コモンバッファ構造体を解放するとともに、前記キューに積まれた次の前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、次のデータ転送を行う。 An information processing apparatus according to an aspect of the present invention creates a management list of necessary data in main memory in response to a request command issued for a predetermined process performed by another information processing apparatus, and A management information creating unit that loads a common buffer structure associated with a virtual memory space and a physical memory space in a queue, including a list, and the common buffer structure stacked in the queue by the management information creating unit When the data transfer is performed to the other information processing apparatus and the data transfer completion notification sent from the other information processing apparatus is received correspondingly, the data transfer is performed from the queue to the data transfer. The corresponding common buffer structure is released, and the next common buffer structure stacked in the queue is used for the next information processing apparatus. And performs data transfer.
前記管理情報作成手段は、前記他の情報処理装置が行うデコード処理に対して発行されるデコード要求コマンド毎に、前記管理リストを作成し、前記コモンバッファ構造体をキューに積むことができる。 The management information creating means can create the management list for each decode request command issued for a decoding process performed by the other information processing apparatus, and load the common buffer structure in a queue.
前記データ転送手段は、前記他の情報処理装置に対する前記次のデータ転送を、前記他の情報処理装置の一方のレジスタにより行い、前記他の情報処理装置からの、前記他の情報処理装置において前記所定の処理がなされた結果データの転送を、前記他の情報処理装置の他方のレジスタにより行うことができる。 The data transfer means performs the next data transfer to the other information processing apparatus using one register of the other information processing apparatus, and the other information processing apparatus receives the data from the other information processing apparatus. Transfer of the result data that has been subjected to the predetermined processing can be performed by the other register of the other information processing apparatus.
本発明の一側面の情報処理方法は、情報処理装置が、他の情報処理装置が行う所定の処理に対して発行される要求コマンドに対応して、必要な主記憶上のデータの管理リストを作成し、前記管理リストを含む、仮想メモリ空間と物理メモリ空間の関連付けがなされたコモンバッファ構造体をキューに積み、前記キューに積まれた前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、データ転送を行い、それに対応して前記他の情報処理装置から送られてくる前記データ転送の完了通知を受けた場合、前記キューから、前記データ転送に対応する前記コモンバッファ構造体を解放するとともに、前記キューに積まれた次の前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、次のデータ転送を行うステップを含む。 According to an information processing method of one aspect of the present invention, an information processing apparatus displays a management list of necessary data in main memory in response to a request command issued for a predetermined process performed by another information processing apparatus. A common buffer structure that is created and includes the management list and associated with a virtual memory space and a physical memory space is stacked in a queue, and the other information processing is performed using the common buffer structure stacked in the queue. The common buffer structure corresponding to the data transfer from the queue when the data transfer is performed to the device and the completion notification of the data transfer sent from the other information processing device correspondingly is received. Releasing the body and performing the next data transfer to the other information processing apparatus using the next common buffer structure stacked in the queue. No.
本発明の一側面においては、他の情報処理装置が行う所定の処理に対して発行される要求コマンドに対応して、必要な主記憶上のデータの管理リストが作成され、前記管理リストを含む、仮想メモリ空間と物理メモリ空間の関連付けがなされたコモンバッファ構造体がキューに積まれる。そして、前記キューに積まれた前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、データ転送が行われ、それに対応して前記他の情報処理装置から送られてくる前記データ転送の完了通知を受けた場合、前記キューから、前記データ転送に対応する前記コモンバッファ構造体が解放され、前記キューに積まれた次の前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、次のデータ転送が行われる。 In one aspect of the present invention, a management list of necessary data on the main memory is created in response to a request command issued for a predetermined process performed by another information processing apparatus, and includes the management list The common buffer structure in which the virtual memory space and the physical memory space are associated with each other is stacked in the queue. Then, using the common buffer structure stacked in the queue, the data is transferred to the other information processing apparatus, and the data sent from the other information processing apparatus correspondingly When the transfer completion notification is received, the common buffer structure corresponding to the data transfer is released from the queue, and the other information processing is performed using the next common buffer structure loaded in the queue. The next data transfer is performed to the device.
本発明によれば、デコード処理全体の時間を短縮することができる。 According to the present invention, the entire decoding process can be shortened.
[ハードウエアの構成例]
図3は、本発明を適用した情報処理システムの一実施形態の構成例を示すブロック図である。
[Hardware configuration example]
FIG. 3 is a block diagram showing a configuration example of an embodiment of an information processing system to which the present invention is applied.
図3に示される情報処理システムは、パーソナルコンピュータ12が、デコード用データ(圧縮ビデオデータ)を、図示せぬPCIe(PCI express)スロットに接続される復号ハードウエア11に供給してデコード処理させ、デコード結果データ(非圧縮ビデオデータ)を取得するシステムである。
In the information processing system shown in FIG. 3, the
デコード用データは、例えば、MPEG(Moving Picture Experts Group)2、MPEG4、またはAVC(Advanced Video Coding)などの圧縮符号化方式で圧縮符号化されている。 The decoding data is compressed and encoded by a compression encoding method such as MPEG (Moving Picture Experts Group) 2, MPEG4, or AVC (Advanced Video Coding).
復号ハードウエア11は、PCIeボード、あるいはカセット型のPCIeハードウエアユニットなどで構成される。復号ハードウエア11は、デコード部21、CPU(Central Processing Unit)22、DMA (Direct Memory Access)コントローラ23、およびメモリ24を含むように構成される。
The
デコード部21は、デコードIC(Integrated Circuit)などで構成される。デコード部21は、CPU22上で動作するファームウエア31の制御のもと、メモリ24に記憶されたデコード用データを、上述した圧縮符号化方式に対応する方式でデコードし、デコード結果データをメモリ24に記憶させる。
The
CPU22上には、専用ソフトウエアであるファームウエア31が動作している。ファームウエア31は、パーソナルコンピュータ12からのデコード要求コマンドを受信し、デコード部21の制御を行う。
On the
DMAコントローラ23は、パーソナルコンピュータ12と復号ハードウエア11間のデータ転送を制御する。DMAコントローラ23は、パーソナルコンピュータ12から、メモリ24へのデータ転送を行う制御レジスタであるRxレジスタ41と、メモリ24から、パーソナルコンピュータ12へのデータ転送を行う制御レジスタであるTxレジスタ42を有している。
The
Rxレジスタ41とTxレジスタ42は、1つずつDMAコントローラ23に搭載されているため、1方向のデータ転送中は、逆方向へのデータ転送は可能であるが、同じ方向へのデータ転送が不可能である。例えば、パーソナルコンピュータ12から、メモリ24へのデータ転送中は、Rxレジスタ41が使用中であるので、逆方向のTxレジスタ42を使用することはできるが、Rxレジスタ41での次のデータ転送はできない。
Since the
メモリ24は、DMAコントローラ23の制御により、パーソナルコンピュータ12と復号ハードウエア11の間でデータのハンドリングを行う。また、メモリ24は、デコード部21との間で、圧縮または非圧縮データのハンドリングが可能である。
The
パーソナルコンピュータ12は、ユーザによる図示せぬ入力部の操作に応じて、デコード要求コマンドを発行し、ファームウエア31に対して送信する。パーソナルコンピュータ12は、デコード用データを、Rxレジスタ41を介して、メモリ24に送信し、メモリ24のデコード結果データを、Txレジスタ42を介して受信する。
The
なお、パーソナルコンピュータ12はパーソナルコンピュータで構成されるが、それに限らない。
The
[パーソナルコンピュータのモジュール構成例]
図4は、パーソナルコンピュータにおけるモジュール構成例を示している。
[Personal computer module configuration example]
FIG. 4 shows a module configuration example in a personal computer.
図4の例においては、パーソナルコンピュータ12の図示せぬCPU上で動作する、ユーザモードレイヤ(User Mode Layer)、カーネルモードレイヤ(Kernel Mode Layer) 、およびハードウエアレイヤ(Hardware Layer)のすべてのモジュールが示されている。なお、それらのモジュールのうち、本発明に関するモジュールは実線で示されており、それ以外については点線で示されている。したがって、図4の例においては、本発明に関するモジュールのみ符号を付して、デコード結果作成までの流れのみ説明する。
In the example of FIG. 4, all modules of a user mode layer (User Mode Layer), a kernel mode layer (Kernel Mode Layer), and a hardware layer (Hardware Layer) that operate on a CPU (not shown) of the
ユーザモードレイヤは、アプリケーションレイヤ(Application Layer)とアプリケーションインタフェースレイヤ(API Layer)で構成される。アプリケーションインタフェースレイヤは、さらに、アプリケーションインタフェース(Application Interface)と、ドライバアクセスインタフェース(Driver Access Interface)により構成されている。 The user mode layer includes an application layer (Application Layer) and an application interface layer (API Layer). The application interface layer is further configured by an application interface and a driver access interface.
また、カーネルモードレイヤは、ウインドウズエグザクティブサービス(Windows Executive Service)で構成される。ウインドウズエグザクティブサービスは、OSであるウインドウズシステムサービス(Windows System Services)と、OS上で動作するI/Oマネージャ(I/O Manager)54やメモリマネージャ(Memory Manager)57などの各モジュールで構成されている。 The kernel mode layer is composed of a Windows Executive Service. The Windows Executive Service consists of Windows System Services, which is an OS, and modules such as an I / O Manager (I / O Manager) 54 and a memory manager (Memory Manager) 57 that run on the OS. ing.
ハードウエアレイヤは、図3の復号ハードウエア11で構成されている。
The hardware layer is composed of the
アプリケーションレイヤにおける編集アプリケーション(Editing Application)51は、GUI(Graphical User Interface)機能を有している。編集アプリケーション51は、GUI機能を介して入力されるユーザの操作に応じて、アプリケーションインタフェース(のApplicationIF.dll)52に対してデコード要求コマンドを発行する。なお、編集アプリケーションを例に説明するが、もちろん、他のアプリケーションでもよい。
An
アプリケーションインタフェース52は、I/Oマネージャ54のファイルシステムドライバ(File System Driver)56に対し、パーソナルコンピュータ12上に搭載される、図示せぬ補助記憶装置(HDD)より、デコードを必要とする圧縮ビデオデータを取得する。アプリケーションインタフェース52は、OS上のメモリマネージャ57により、取得した圧縮ビデオデータを、図示せぬ主記憶装置(システムメモリ)(以下、主記憶とも称する)にコピーする。
The
アプリケーションインタフェース52は、また、ドライバアクセスインタフェース(のDriverIF.dll)53に、システムメモリ上にコピーされたデータのアドレスとデコード要求コマンドを発行する。ドライバアクセスインタフェース53は、I/Oマネージャ54を構成するモジュールの1つであるデバイスドライバ(Device Driver)55に対し、システムメモリ上にコピーされたデータのアドレスとデコード要求コマンドを発行する。
The
デバイスドライバ55は、OS上で動作するI/Oマネージャ54に、主記憶上にコピーされたデータの管理リスト(Scatter Gather List:SGL)を作成する。デバイスドライバ55は、SGLの作成後、DMAの制御が可能である合間を見て、DMAにより、データ転送処理要求をDMAコントローラ23に対して行う。また、デバイスドライバ55は、メモリ24への圧縮ビデオデータの転送後、すぐに、CMD I/F Accessにより、ファームウエア31に対してデコード要求コマンドを発行する。
The
DMAコントローラ23は、デバイスドライバ55から通知されたパーソナルコンピュータ12上の主記憶のアドレス(物理アドレス)が格納されるSGLを利用し、圧縮ビデオデータを、復号ハードウエア11のメモリ24に転送する。
The
ファームウエア31は、デコード部21に対し、デコード処理を要求する。デコード部21は、メモリ24上から圧縮ビデオデータを読み取って、デコード処理を行い、結果として得られる非圧縮ビデオデータをメモリ24に書き込む。
The
[メモリアーキテクチャの説明]
まず、図5を参照して、パーソナルコンピュータにおけるメモリアーキテクチャについて説明する。
[Description of memory architecture]
First, a memory architecture in a personal computer will be described with reference to FIG.
図5の例においては、一番左に、仮想メモリ空間における仮想メモリアドレス「0x00000000」乃至「0x7FFFFFFF」のユーザ空間および仮想メモリアドレス「0x80000000」乃至「0xFFFFFFFF」のシステム空間が示されている。その右側には、仮想メモリ空間におけるシステム空間の詳細が示されている。システム空間の詳細の右側の上部には、システム空間における仮想アドレス「0x88C25EA8」から始まる領域に含まれるコモンバッファ構造体の詳細が示されている。 In the example of FIG. 5, the user space of virtual memory addresses “0x00000000” to “0x7FFFFFFF” and the system space of virtual memory addresses “0x80000000” to “0xFFFFFFFF” in the virtual memory space are shown on the leftmost side. On the right side, details of the system space in the virtual memory space are shown. In the upper right part of the details of the system space, details of the common buffer structure included in the area starting from the virtual address “0x88C25EA8” in the system space are shown.
コモンバッファ構造体の詳細の下部には、システム空間における仮想アドレス「0xA1B33200」乃至「0xA1B31FF」に配置されるSGL実体の詳細が示されている。さらに、その右側には、物理メモリ空間上の、SGLが含まれるコモンバッファと、データバッファが示されており、一番右側には、コモンバッファMDLの詳細が示されている。 Below the details of the common buffer structure, details of the SGL entity arranged at virtual addresses “0xA1B33200” to “0xA1B31FF” in the system space are shown. Furthermore, on the right side, a common buffer including a SGL and a data buffer on the physical memory space are shown, and on the right side, details of the common buffer MDL are shown.
物理メモリ空間上のアドレスは、パーソナルコンピュータ12に接続される復号ハードウエア11からアクセス可能となっている。物理メモリ空間は、OSのカーネル内で動作するデバイスドライバ55からアドレスを取得することは可能である。しかしながら、デバイスドライバ55は、物理メモリ空間への直接制御を行うことはできず、デバイスドライバ55も、編集アプリケーション51と同様に、仮想メモリ空間上のアドレスを使用して、物理メモリ空間の制御を行う。
The address on the physical memory space can be accessed from the
ここで、デバイスドライバ55からの物理メモリ空間のアドレス取得とは、次のように行われる。すなわち、OS内のI/Oマネージャ54で管理されるMemory Descriptor List(MDL)が、物理メモリ空間アドレスと仮想メモリ空間アドレスの関連付けをリスト化している。したがって、デバイスドライバ55は、MDLの中身を見ることで、どの物理メモリ空間アドレスが仮想メモリ空間にマッピングされているのかを理解することができる。
Here, the acquisition of the physical memory space address from the
[SGLを用いたDMA処理の説明]
このようなアーキテクチャを踏まえ、図6のフローチャートを参照して、本発明に関するデータ転送方法として用いられるSGLを用いた一般的なDMA処理について説明する。なお、図6の処理に沿って、図5に示されたメモリアーキテクチャも適宜参照される。
[Description of DMA processing using SGL]
Based on such an architecture, a general DMA process using SGL used as a data transfer method according to the present invention will be described with reference to the flowchart of FIG. Note that the memory architecture shown in FIG. 5 is also referred to as appropriate along the processing of FIG.
図6のステップS1において、編集アプリケーション51は、主記憶へデータを格納するためのデータバッファを、仮想メモリ空間のユーザ空間に配置(アロケート)する。これにより、図5のA1に示されるように、仮想メモリ空間のユーザ空間の「0x013A0000」乃至「0x01B9FFFF」の仮想メモリアドレスに、8Mbytesのデータバッファが配置される。
In step S1 in FIG. 6, the
ステップS2において、OS内のメモリマネージャ57は、仮想メモリ空間のユーザ空間に配置されたデータバッファを、主記憶上の物理メモリ空間に最小4KBytes単位で分散して配置する。これにより、図5のA2に示されるように、主記憶の物理メモリ空間には、データバッファが、データバッファ1乃至Xとして分散されて配置される。
In step S2, the
デバイスドライバ55は、ステップS3において、I/Oマネージャ54に対し、分散されたデータバッファの各バッファポインタ(物理メモリ空間アドレス)とバッファサイズを格納したリストであるSGLの作成を要求する。これに対応して、I/Oマネージャ54により、図5のA3に示されるように、各8Bytesのデータバッファ1ポインタ、データバッファ1サイズ、…、データバッファXポインタ、データバッファXサイズからなるSGLが作成される。
In step S3, the
ステップS4において、I/Oマネージャ54は、SGLがデバイスドライバ55からアクセス可能となるように、SGLの実体を仮想メモリ空間(のシステム空間)上に書き込む。これにより、図5のA4に示されるように、仮想メモリ空間のシステム空間の「0xA1B33200」乃至「0xA1B3B1FF」の仮想メモリアドレスに、最大32KbytesのSGL実体が配置される。
In step S4, the I /
ここで、このSGLには、ハードウエアからアクセス可能な物理メモリ空間アドレスが格納されているものの、ステップS4において仮想メモリ空間に書き込まれていることから、SGLを復号ハードウエア11から参照することができない。SGLを参照可能とするために、物理メモリ空間上にコモンバッファと呼ばれるパーソナルコンピュータ12と復号ハードウエア11との両者で参照可能なバッファを作成する必要がある。
Here, although the physical memory space address accessible from the hardware is stored in this SGL, it is written in the virtual memory space in step S4, so that the SGL can be referred to from the
ステップS5において、デバイスドライバ55は、コモンバッファ作成のための構造体を用意し、仮想メモリ空間上の「0x88C25EA8」に配置する。コモンバッファ構造体は、図5のA5に示されるように、DMAアダプタポインタ、コモンバッファ実体の仮想アドレス(0x89F72000)、およびコモンバッファMDLアドレス(0x88C2D020)により構成される。
In step S5, the
デバイスドライバ55は、ステップS6において、コモンバッファを、主記憶上に連続領域として確保するように作成する。これにより、図6のA6に示されるように、主記憶上の物理メモリ空間の物理アドレス「0x09A00000」乃至「0x09A7FFFF」の連続領域に、SGLバッファ1乃至128が作成される。
In step S6, the
そして、デバイスドライバ55は、ステップS7において、コモンバッファにおける仮想メモリ空間と物理メモリ空間の関連付けのためのMDLを作成する。これにより、図6のA7に示されるように、SGLバッファ1乃至128を指し示すポインタまたはアドレスであるバッファ1ポインタ乃至バッファ128ポインタで構成されるコモンバッファMDLが作成される。このコモンバッファMDLは、コモンバッファ構造体に含まれるコモンバッファMDLアドレス「0x88C2D020」(システム空間内)に配置される。
In step S7, the
このように、コモンバッファは、連続したアドレッシングであり、かつ、物理メモリ空間上に配置されることから、復号ハードウエア11は、容易にコモンバッファ内のデータを参照することができる。
As described above, since the common buffer has continuous addressing and is arranged in the physical memory space, the
ステップS8において、デバイスドライバ55は、ステップS4において仮想メモリ空間に配置されたSGLを、コモンバッファ実体にコピーを行う。ただし、デバイスドライバ55は、仮想メモリ空間への制御しか許されていないため、コピー時のアドレスとして、仮想メモリ空間アドレスを使用する。なお、コモンバッファが仮想メモリ空間へデータコピーされることで、物理メモリ空間上のアドレスにも同様のデータが配置されることになる。
In step S8, the
すなわち、SGL実体(A4)が、図5のA8に示されるように、システム空間における仮想メモリアドレス「0x89F72000」乃至「0x8A771FFF」のコモンバッファ実体(512Kbytes)にコピーされる。コモンバッファ構造体(A5)を参照することで、SGL実体(A4)は、コモンバッファ実体の仮想アドレスに対応する、物理メモリ空間上のコモンバッファ(A6)にも配置される。 That is, the SGL entity (A4) is copied to the common buffer entity (512 Kbytes) of the virtual memory addresses “0x89F72000” to “0x8A771FFF” in the system space, as indicated by A8 in FIG. By referring to the common buffer structure (A5), the SGL entity (A4) is also arranged in the common buffer (A6) in the physical memory space corresponding to the virtual address of the common buffer entity.
そこで、ステップS9において、デバイスドライバ55は、図5のA9に示される、物理メモリ空間上のコモンバッファの物理アドレス「0x09A00000」乃至「0x09A7FFFF」を、復号ハードウエア11のDMAコントローラ23に通知する。これにより、DMAコントローラ23は、SGL内の物理メモリ空間上に置かれたアプリケーションデータバッファの中身を参照することが可能となる。
Therefore, in step S9, the
ステップS10において、DMAコントローラ23は、これらの物理アドレス(A9)を使用して、復号ハードウエア11内のメモリ24へのデータ転送を行う。
In step S10, the
以上が、一般的なDMAの制御処理である。これに対して、本発明においては、次に説明するように、この制御処理中のコモンバッファへのSGLの格納(ステップS8)を、デコード要求コマンドが発行されたタイミングで行うことを特徴としている。また、本発明においては、コマンドが連続して発行された場合には、複数のコモンバッファの作成を行い、かつ、コモンバッファ構造体をキューイングすることにより、DMAのための準備を予め行うことを特徴としている。 The above is a general DMA control process. On the other hand, the present invention is characterized in that the SGL is stored in the common buffer (step S8) during the control process at the timing when the decode request command is issued, as will be described below. . In the present invention, when a command is issued continuously, a plurality of common buffers are created, and a common buffer structure is queued to prepare for DMA in advance. It is characterized by.
[SGLのキューイング処理の説明]
次に、図7のフローチャートを参照して、SGLのキューイング処理について説明する。この処理は、デバイスドライバ55によりデータ(スレッド)毎に行われる処理である。なお、図7の処理に沿って、図8も適宜参照される。以下、図面の丸数字は、括弧付き数字で置き換えて説明する。
[Description of SGL queuing]
Next, SGL queuing processing will be described with reference to the flowchart of FIG. This process is performed for each data (thread) by the
図8の例においては、左側から、編集アプリケーション51の処理、デバイスドライバ55の処理、復号ハードウエア11の処理が示されており、デバイスドライバ55の処理に示されるキュー71は、例えばI/Oマネージャ54に内蔵される。
In the example of FIG. 8, the process of the
デバイスドライバ55は、スレッド1として(以下、デバイスドライバ55(スレッド1)と称する)、ステップS21において、編集アプリケーション51から、デコード要求コマンドが送信されるまで待機している。ステップS21において、編集アプリケーション51から、デコード(1)の要求コマンドが送信されたと判定されると、図8に示されるように、デバイスドライバ55(スレッド1)にデコード(1)用データが通知され、処理は、ステップS22に進む。
The
すなわち、編集アプリケーション51から、デコード(1)の要求コマンドが送信されると、デコードに必要とするデータのアドレスがドライバアクセスインタフェース53からデバイスドライバ55(スレッド1)に通知される。これにより、デバイスドライバ55においては、SGLの作成が可能となる。
That is, when a decoding (1) request command is transmitted from the
デバイスドライバ55(スレッド1)は、ステップS22において、図8に示されるように、デコード(1)用SGLを作成するとともに、ステップS23において、SGLをコモンバッファへのコピーを行うため、デコード(1)用のコモンバッファ構造体を作成する。図6を参照して上述したように、これにより、デコード(1)用のSGL、すなわち、デコード(1)用データが格納されたデコード(1)用のコモンバッファ構造体が作成される。 In step S22, the device driver 55 (thread 1) creates an SGL for decoding (1) as shown in FIG. 8, and in step S23, the device driver 55 (thread 1) decodes (1 Create a common buffer structure for). As described above with reference to FIG. 6, the SGL for decoding (1), that is, the common buffer structure for decoding (1) storing the data for decoding (1) is created.
デバイスドライバ55(スレッド1)は、ステップS24において、作成したデコード(1)用のコモンバッファ構造体をキュー71に積む(キューイングする)。 In step S24, the device driver 55 (thread 1) loads (queues) the created common buffer structure for decoding (1) in the queue 71.
デコード(2)の場合も同様である。すなわち、編集アプリケーション51から、ステップS21において、デコード要求コマンドが送信されたと判定され、図8のデコード(2)用データが通知される。これに対応して、デバイスドライバ55は、スレッド2として、(以下、デバイスドライバ55(スレッド2)と称する)、図8に示されるように、ステップS22において、デコード(2)用SGLを作成する。そして、デバイスドライバ55(スレッド2)は、ステップS23において、デコード(2)用のコモンバッファ構造体を作成する。これにより、デコード(2)用のSGL、すなわち、デコード(2)用データが格納されたデコード(2)用のコモンバッファ構造体が作成される。
The same applies to the case of decoding (2). That is, it is determined from the
デバイスドライバ55(スレッド2)は、ステップS24において、作成したデコード(2)用のコモンバッファ構造体をキュー71に積む。これにより、キュー71には、デコード(1)用のコモンバッファ構造体の上に、デコード(2)用のコモンバッファ構造体が積まれる。 In step S24, the device driver 55 (thread 2) loads the created common buffer structure for decoding (2) in the queue 71. As a result, the common buffer structure for decoding (2) is stacked on the queue 71 on the common buffer structure for decoding (1).
なお、復号ハードウエア11がコモンバッファ内のSGLによる物理メモリ空間アドレスを参照している可能性があるので、デバイスドライバ55(スレッド1)は、ステップS25において、デコード(1)用データの転送完了通知を受け取るまで、待機している。その間、デコード(1)用のコモンバッファ構造体は、キュー71の中に保持される。
Since there is a possibility that the
ステップS25において、先のデコード(1)用データの転送完了通知が復号ハードウエア11から受け取ったと判定されると、デバイスドライバ55(スレッド1)は、SGLの参照がないものとして、処理は、ステップS26に進む。デバイスドライバ55(スレッド1)は、ステップS26において、デコード(1)用のコモンバッファ構造体を、図8のキュー71からプッシュして(追い出して)、デコード(1)用のコモンバッファ構造体の解放(=コモンバッファ自体の解放)を行う。
If it is determined in step S25 that the previous transfer completion notification of the data for decoding (1) has been received from the
次に、デコード(3)の場合も同様に、編集アプリケーション51から、ステップS21において、デコード要求コマンドが送信されたと判定され、図8のデコード(3)用データが通知される。これに対応して、デバイスドライバ55は、スレッド3として(以下、デバイスドライバ55(スレッド3)と称する)、図8に示されるように、ステップS22において、デコード(3)用SGLを作成する。そして、デバイスドライバ55(スレッド3)は、ステップS23において、デコード(3)用のコモンバッファ構造体を作成する。図6を参照して上述したように、これにより、デコード(3)用のSGL、すなわち、デコード(3)用データが格納されたデコード(2)用のコモンバッファ構造体が作成される。
Next, in the case of decoding (3) as well, the
デバイスドライバ55(スレッド3)は、ステップS24において、作成したデコード(3)用のコモンバッファ構造体をキュー71に積む。これにより、キュー71には、デコード(1)用のコモンバッファ構造体の上に、デコード(3)用のコモンバッファ構造体が積まれる。 The device driver 55 (thread 3) loads the created common buffer structure for decoding (3) in the queue 71 in step S24. As a result, the common buffer structure for decoding (3) is stacked on the queue 71 on the common buffer structure for decoding (1).
以降、図8の例においては、図示が省略されているが、次のデコード(2)用データの転送完了通知が復号ハードウエア11から受信され、デコード(2)用データおよびデコード(3)用データについても、デコード(1)用データの場合と同様の処理が繰り返される。
Thereafter, although not shown in the example of FIG. 8, a notification of completion of transfer of the next data for decoding (2) is received from the
すなわち、デバイスドライバ55(スレッド2または3)は、ステップS25において、デコード(2)または(3)用データの転送完了通知を受け取るまで待機している。
That is, the device driver 55 (
ステップS25において、デコード(2)または(3)用データの転送完了通知が復号ハードウエア11から受け取ったと判定されると、デバイスドライバ55(スレッド2または3)は、SGLの参照がないものとして、処理は、ステップS26に進む。そして、ステップS26において、デコード(2)または(3)用のコモンバッファ構造体が、図8のキュー71からプッシュされて、デコード(1)用のコモンバッファ構造体の解放(=コモンバッファ自体の解放)が行われる。
If it is determined in step S25 that the transfer completion notification of the data for decoding (2) or (3) has been received from the
[デコード処理の説明]
次に、図9および図10のフローチャートを参照して、図3の情報処理システムによるデコード処理について説明する。
[Description of decoding process]
Next, decoding processing by the information processing system in FIG. 3 will be described with reference to the flowcharts in FIGS. 9 and 10.
編集アプリケーション51は、ステップS51において、デバイスドライバ55に対して、デコード(1)用要求を行い、ステップS52において、デバイスドライバ55に対して、デコード(2)用要求を行う。すなわち、編集アプリケーション51は、連続してデコード要求コマンドの発行を行う。
In step S51, the
デコード(1)用要求に対応して、デバイスドライバ55は、スレッド1として(以下、デバイスドライバ55(スレッド1)と称する)、ステップS71において、I/Oマネージャ54に対して、デコード(1)用SGL作成要求を行う。これに対応して、I/Oマネージャ54は、ステップS91において、デコード(1)用SGL作成を行い、その完了をデバイスドライバ55(スレッド1)に通知する。
In response to the request for decoding (1), the
一方、デコード(2)用要求に対応して、デバイスドライバ55は、スレッド2として(以下、デバイスドライバ55(スレッド2)と称する)、ステップS111において、I/Oマネージャ54に対して、デコード(2)用SGL作成要求を行う。これに対応して、I/Oマネージャ54は、ステップS92において、デコード(2)用SGL作成を行い、その完了をデバイスドライバ55(スレッド2)に通知する。
On the other hand, in response to the request for decoding (2), the
デコード(1)用SGL作成完了通知を受けると、デバイスドライバ55(スレッド1)は、ステップS72において、I/Oマネージャ54に対して、デコード(1)用コモンバッファ作成要求を行う。これに対応して、I/Oマネージャ54は、ステップS93において、デコード(1)用コモンバッファ作成を行い、その完了をデバイスドライバ55(スレッド1)に通知する。
Upon receipt of the decode (1) SGL creation completion notification, the device driver 55 (thread 1) issues a decode (1) common buffer creation request to the I /
デコード(2)用SGL作成完了通知を受けると、デバイスドライバ55(スレッド2)は、ステップS112において、I/Oマネージャ54に対して、デコード(2)用コモンバッファ作成要求を行う。これに対応して、I/Oマネージャ54は、ステップS94において、デコード(2)用コモンバッファ作成を行い、その完了をデバイスドライバ55(スレッド2)に通知する。
Upon receipt of the decode (2) SGL creation completion notification, the device driver 55 (thread 2) issues a decode (2) common buffer creation request to the I /
デコード(1)用コモンバッファ作成完了通知を受けると、デバイスドライバ55(スレッド1)は、ステップS73において、I/Oマネージャ54に対して、デコード(1)用SGLのコモンバッファコピー要求を行う。これに対応して、I/Oマネージャ54は、ステップS95において、デコード(1)用SGLコピーを行い、その完了をデバイスドライバ55(スレッド1)に通知する。
Upon receiving the completion notification of the creation of the common buffer for decoding (1), the device driver 55 (thread 1) makes a common buffer copy request for the SGL for decoding (1) to the I /
デコード(2)用コモンバッファ作成完了通知を受けると、デバイスドライバ55(スレッド2)は、ステップS113において、I/Oマネージャ54に対して、デコード(2)用SGLのコモンバッファコピー要求を行う。これに対応して、I/Oマネージャ54は、ステップS96において、デコード(2)用SGLコピーを行い、その完了をデバイスドライバ55(スレッド2)に通知する。
Upon receiving the completion notification of the creation of the common buffer for decoding (2), the device driver 55 (thread 2) makes a common buffer copy request for the SGL for decoding (2) to the I /
デコード(1)用SGLコピー完了通知を受けると、デバイスドライバ55(スレッド1)は、ステップS74において、I/Oマネージャ54に対して、デコード(1)用コモンバッファ構造体キューイング要求を行う。これに対応して、I/Oマネージャ54は、ステップS97において、キュー71に、デコード(1)用キューイングを行い、その完了をデバイスドライバ55(スレッド1)に通知する。
Upon receipt of the decode (1) SGL copy completion notification, the device driver 55 (thread 1) issues a decode (1) common buffer structure queuing request to the I /
デコード(2)用SGLコピー完了通知を受けると、デバイスドライバ(スレッド2)は、ステップS114において、I/Oマネージャ54に対して、デコード(2)用コモンバッファ構造体キューイング要求を行う。これに対応して、I/Oマネージャ54は、ステップS98において、キュー71に、デコード(2)用キューイングを行い、その完了をデバイスドライバ55(スレッド2)に通知する。
Upon receipt of the decode (2) SGL copy completion notification, the device driver (thread 2) issues a decode (2) common buffer structure queuing request to the I /
デコード(1)用キューイング完了通知を受けると、デバイスドライバ55(スレッド1)は、即時に、ステップS75において、DMAコントローラ23に対して、デコード(1)用データDMAを実行する。具体的には、デバイスドライバ55(スレッド1)は、キュー71に積まれたコモンバッファ構造体を用い、コモンバッファ構造体を参照して、デコード(1)用データDMAの実行を、DMAコントローラ23のRxレジスタ41に仕掛ける。
Upon receiving the decoding (1) queuing completion notification, the device driver 55 (thread 1) immediately executes the decoding (1) data DMA to the
また、それとほぼ同時に、デバイスドライバ55(スレッド1)は、ステップS76において、デコード(1)実行コマンドをファームウエア31に対して発行する。
At almost the same time, the device driver 55 (thread 1) issues a decode (1) execution command to the
DMAコントローラ23は、デバイスドライバ55(スレッド1)からのDMAの実行に対して、Rxレジスタ41を用いて、メモリ24へのデコード(1)用データ転送を行う。デコード(1)用データ転送が完了すると、DMAコントローラ23は、ステップS131において、Rxレジスタ41でのデータ転送完了を、デバイスドライバ55(スレッド1およびスレッド2)に通知する。
In response to execution of DMA from the device driver 55 (thread 1), the
図10の例においては図示されないが、Rxレジスタ41でのデータ転送完了に対応して、デバイスドライバ55(スレッド1)は、キュー71から、デコード(1)用のコモンバッファ構造体をプッシュする(図7のステップS26)。 Although not shown in the example of FIG. 10, the device driver 55 (thread 1) pushes the common buffer structure for decoding (1) from the queue 71 in response to the completion of the data transfer in the Rx register 41 ( Step S26 in FIG.
また、Rxレジスタ41でのデータ転送完了を受けると、Rxレジスタ41における次のDMA実行が可能になるため、デバイスドライバ55(スレッド2)は、ステップS115において、DMAコントローラ23に対して、デコード(2)用データDMAを実行する。具体的には、デバイスドライバ55(スレッド2)は、キュー71に積まれたコモンバッファ構造体を用い、コモンバッファ構造体を参照して、デコード(2)用データDMAの実行を、DMAコントローラ23のRxレジスタ41に仕掛ける。 Further, when the completion of data transfer in the Rx register 41 is received, the next DMA execution in the Rx register 41 becomes possible. Therefore, in step S115, the device driver 55 (thread 2) decodes ( 2) Execute the data DMA. Specifically, the device driver 55 (thread 2) uses the common buffer structure stacked in the queue 71 and refers to the common buffer structure to execute the data DMA for decoding (2). The Rx register 41 is set.
DMAコントローラ23は、デバイスドライバ55(スレッド2)からのDMAの実行に対して、Rxレジスタ41を用いて、メモリ24へのデコード(2)用データ転送を行う。デコード(2)用データ転送が完了すると、DMAコントローラ23は、ステップS132において、Rxレジスタ41でのデータ転送完了を、デバイスドライバ55(スレッド1およびスレッド2)に通知する。
In response to execution of DMA from the device driver 55 (thread 2), the
図10の例においては図示されないが、Rxレジスタ41でのデータ転送完了に対応して、デバイスドライバ55(スレッド2)は、キュー71から、デコード(2)用のコモンバッファ構造体をプッシュする(図7のステップS26)。 Although not shown in the example of FIG. 10, the device driver 55 (thread 2) pushes a common buffer structure for decoding (2) from the queue 71 in response to the completion of data transfer in the Rx register 41 ( Step S26 in FIG.
一方、ファームウエア31は、デバイスドライバ55(スレッド1)からのデコード(1)実行コマンドを受信すると、ステップS151において、デコード部21にデコード(1)処理を実行させる。デコード部21は、メモリ24のデコード(1)用データを読み出し、デコードして、デコードしたデータを、再度メモリ24に書き込む。デコード部21がデコード(1)処理を完了すると、ファームウエア31は、ステップS152において、デコード(1)処理完了を、デバイスドライバ55(スレッド1およびスレッド2)並びに編集アプリケーション51に通知する。
On the other hand, when receiving the decode (1) execution command from the device driver 55 (thread 1), the
デコード(1)処理完了通知を受けると、デバイスドライバ55(スレッド2)は、ステップS116において、デコード(2)実行コマンドをファームウエア31に対して発行する。デバイスドライバ55(スレッド2)からのデコード(2)実行コマンドを受信すると、ファームウエア31は、ステップS153において、デコード部21にデコード(2)処理を実行させる。
Upon receiving the decode (1) process completion notification, the device driver 55 (thread 2) issues a decode (2) execution command to the
一方、デコード(1)処理完了通知を受けると、編集アプリケーション51は、ステップS53において、デバイスドライバ55(スレッド1)に対して、デコード(1)用結果取得要求を行う。
On the other hand, when receiving the notification of completion of the decoding (1) process, the
これに対応して、デバイスドライバ55(スレッド1)は、ステップS77において、DMAコントローラ23に対して、デコード(1)用結果データ取得DMAを実行する。具体的には、デバイスドライバ55(スレッド1)は、デコード(1)用結果データ取得DMAの実行を、DMAコントローラ23のTxレジスタ42に仕掛ける。
In response to this, the device driver 55 (thread 1) executes the decoding (1) result data acquisition DMA to the
なお、Txレジスタ42の場合も、DMA実行の前(点線に示される)に、Rxレジスタ41の場合と同様に、デバイスドライバ55(スレッド1)およびI/Oマネージャ54間で行われるSGL作成およびコモンバッファ構造体のキューイングを行うようにしてもよい。すなわち、ステップS77の処理の前にも、ステップS71乃至S74と、それに対応するステップS91,S93,S95,S97と同様の処理を行うことが可能である。
In the case of the
DMAコントローラ23は、デバイスドライバ55(スレッド1)からのDMAの実行に対して、Txレジスタ42を用いて、デバイスドライバ55(スレッド1)に対して、メモリ24からのデコード(1)用結果データ転送を行う。デコード(1)用結果データ転送が完了すると、DMAコントローラ23は、ステップS133において、Txレジスタ42での結果データ転送完了を、デバイスドライバ55(スレッド1およびスレッド2)に通知する。
The
結果データ転送完了をDMAコントローラ23から受けると、デバイスドライバ55(スレッド1)は、ステップS78において、編集アプリケーション51に対して、デコード(1)用結果データを供給する。これにより、編集アプリケーション51においては、デコード(1)用結果データが取得される。
When the result data transfer completion is received from the
また、ステップS153において、デコード部21は、メモリ24のデコード(2)用データを読み出し、デコードして、デコードしたデータを、再度メモリ24に書き込む。デコード部21がデコード(2)処理を完了すると、ファームウエア31は、ステップS154において、デコード(2)処理完了を、デバイスドライバ55(スレッド1およびスレッド2)並びに編集アプリケーション51に通知する。
In step S153, the
このデコード(2)処理完了通知を受けると、編集アプリケーション51は、ステップS54において、デバイスドライバ55(スレッド2)に対して、デコード(2)用結果取得要求を行う。
Upon receiving this decoding (2) processing completion notification, the
これに対応して、デバイスドライバ55(スレッド2)は、ステップS117において、DMAコントローラ23に対して、デコード(2)用結果データ取得DMAを実行する。具体的には、デバイスドライバ55(スレッド2)は、デコード(2)用結果データ取得DMAの実行を、DMAコントローラ23のTxレジスタ42に仕掛ける。
In response to this, the device driver 55 (thread 2) executes the decoding (2) result data acquisition DMA to the
なお、Txレジスタ42の場合も、DMA実行の前(点線に示される)に、Rxレジスタ41の場合と同様に、デバイスドライバ55(スレッド2)およびI/Oマネージャ54間で行われるSGL作成およびコモンバッファ構造体のキューイングを行うようにしてもよい。すなわち、ステップS77の処理の前にも、ステップS111乃至S114と、それに対応するステップS92,S94,S96,S98と同様の処理を行うことが可能である。
In the case of the Tx register 42 as well, the SGL creation and the I /
DMAコントローラ23は、デバイスドライバ55(スレッド2)からのDMAの実行に対して、Txレジスタ42を用いて、デバイスドライバ55(スレッド2)に対して、メモリ24からのデコード(2)用結果データ転送を行う。デコード(2)用結果データ転送が完了すると、DMAコントローラ23は、ステップS134において、Txレジスタ42での結果データ転送完了を、デバイスドライバ55(スレッド1およびスレッド2)に通知する。
For the DMA execution from the device driver 55 (thread 2), the
結果データ転送完了をDMAコントローラ23から受けると、デバイスドライバ55(スレッド2)は、ステップS118において、編集アプリケーション51に対して、デコード(2)用結果データを供給する。これにより、編集アプリケーション51においては、デコード(2)用結果データが取得される。
When the result data transfer completion is received from the
なお、図9および図10の例においては、デコード(1)用データ転送準備と並行して、デコード(2)用データ転送準備を行う例を説明したが、処理の例はこれに限らない。例えば、デコード(1)用データ転送準備が完了され、デコード(1)用データが転送されている間に、デコード(2)用データ転送準備を行うことも可能である。 In the example of FIGS. 9 and 10, the example in which the data transfer preparation for decoding (2) is performed in parallel with the data transfer preparation for decoding (1) has been described, but the processing example is not limited to this. For example, the decode (2) data transfer preparation can be performed while the decode (1) data transfer preparation is completed and the decode (1) data is being transferred.
以上のように、編集アプリケーション51からのデコード要求毎に、SGLを作成し、コモンバッファ構造体自体をキューイングするようにしたので、復号ハードウエア11がデコード処理を行っている間に次のデコード用データを、メモリに転送することができる。
As described above, since the SGL is created and the common buffer structure itself is queued for each decoding request from the
なお、アプリケーションでのキューイング機構の利用は、図2を参照して上述したように、主に実行コマンドをキューイングすることが一般的である。これに対して、本発明においては、DMAを実行するためのメモリ管理データ(コモンバッファ構造体)をキューイングすることを特徴としている。 Note that the use of a queuing mechanism in an application is generally performed mainly by queuing an execution command as described above with reference to FIG. On the other hand, the present invention is characterized by queuing memory management data (common buffer structure) for executing DMA.
すなわち、予め用意されたDMA実行用データのキューイングを行い、かつ、そのデータをデバイスドライバ内で管理することにより、復号ハードウエアからの実行トリガを受けると、即時に次のコマンド実行を行わせることが可能になる。これにより、図11に示されるような効果を得ることができる。 In other words, the DMA execution data prepared in advance is queued and the data is managed in the device driver, so that when the execution trigger is received from the decoding hardware, the next command is immediately executed. It becomes possible. Thereby, the effect as shown in FIG. 11 can be obtained.
[情報処理システムによる効果の説明]
次に、図11を参照して、パーソナルコンピュータ12と復号ハードウエア11とのデータ転送による効果について説明する。なお、図11の例においては、2つのデコード処理が連続で行われる例が示されている。
[Explanation of information processing system effects]
Next, with reference to FIG. 11, the effect of data transfer between the
また、図11の例において、上段には、パーソナルコンピュータ12上で動作する編集アプリケーション51の処理が示されている。中段には、パーソナルコンピュータ12上のデバイスドライバ55と、復号ハードウエア11間のデータ転送処理が示されている。下段には、復号ハードウエア11の処理が示されている。
In the example of FIG. 11, the upper part shows processing of the
まず、編集アプリケーション51上でデコード(1)要求コマンドが発行されると、データ転送処理として、パーソナルコンピュータ12上の主記憶領域に置かれたデコード(1)用データの管理処理が行われる。その後、DMAコントローラ23のRxレジスタ41でのデコード(1)用データ転送が行われる。このデータ転送には、上述したSGLを用いたパケットDMA処理が使用される。
First, when a decode (1) request command is issued on the
編集アプリケーション51上では、デバイスドライバ55の処理を並列化(図9におけるスレッド処理化)することにより、デコード(1)要求コマンドの発行後、すぐにデコード(2)要求コマンドが発行される。これにより、データ転送処理として、デコード(1)用データ転送と並行して、パーソナルコンピュータ12上の主記憶領域に置かれたデコード(2)用データの管理処理を行うことができる。
On the
デコード(1)用データ転送が完了すると、デコード(1)用データ転送の完了通知がデバイスドライバ55に通知されるとともに、復号ハードウエア11においては、デコード(1)処理が実行される。
When the decoding (1) data transfer is completed, the
デコード(2)用データの管理処理においては、SGL(すなわち、コモンバッファ構造体)のキューイングが行われている。これにより、デコード(1)用データ転送の完了通知がデバイスドライバ55で受信されると、即座に、DMAコントローラ23のRxレジスタ41でのデコード(2)用データ転送を行うことができる。
In the data management process for decoding (2), queuing of SGL (that is, common buffer structure) is performed. Accordingly, when the
また、DMAコントローラ23のRxレジスタ41とTxレジスタ42は、独立した制御が可能である。これにより、デコード(2)用データ転送中に、復号ハードウエア11におけるデコード(1)処理が終了したとしても、DMAコントローラ23のTxレジスタ42でのデコード(1)用結果データを転送することができる。
Further, the
さらに、デコード(1)用結果データ転送中に、デコード(2)用データ転送が完了し、編集アプリケーション51においては、デコード(1)結果が取得されるとともに、そのデコード(2)用データ転送完了が、デバイスドライバ55に対して通知される。
Further, during the decoding (1) result data transfer, the decoding (2) data transfer is completed, and the
復号ハードウエア11においては、デコード(2)処理が実行され、DMAコントローラ23のTxレジスタ42でのデコード(2)用結果データが転送され、編集アプリケーション51においては、デコード(2)結果が取得される。
In the
図3の情報処理システムにおいては、データ転送のためのパーソナルコンピュータ12の主記憶管理処理を行うことができるデバイスドライバ55において、データ転送管理を行うようにしたので、このようなデータ転送のパイプライン化を図ることができる。
In the information processing system of FIG. 3, since data transfer management is performed in the
すなわち、デコード(1)処理を行っている間にデコード(2)用データ転送を行うことができるので、デコード用データ転送の効率が上がる。これにより、時間T11に示されるように、デコード(1)処理を終了してから、デコード(2)処理を開始するまでの復号ハードウエア11におけるデコード処理実行間隔が、従来(図1および図2)に比して短縮される。
That is, since the decoding (2) data transfer can be performed while the decoding (1) process is being performed, the efficiency of the decoding data transfer is increased. As a result, as shown at time T11, the decoding process execution interval in the
その結果、編集アプリケーション51側からみた全体的な復号ハードウエア11におけるデコード処理時間を高速化することができる。
As a result, it is possible to speed up the decoding processing time in the
また、デバイスドライバ55内での処理となるので、編集アプリケーション51へのデータ転送完了通知などのオーバヘッドを生じることがなくなるため、処理時間の短縮化を図ることができる。
Further, since processing is performed within the
以上のように、本発明においては、アプリケーションからのデコード要求コマンドに対応して、データ転送時にパケットDMAで使用されるSGLが複数作成される。デバイスドライバにより、作成されたSGLがコモンバッファへ構築され、そのコモンバッファ構造体がキューイングされる。そして、データ転送完了が通知されると、デバイスドライバにより、作成されたコモンバッファ構造体が即座に次のデータ転送に利用される。 As described above, in the present invention, a plurality of SGLs used in the packet DMA at the time of data transfer are created in response to the decode request command from the application. The created SGL is built into the common buffer by the device driver, and the common buffer structure is queued. When the completion of data transfer is notified, the created common buffer structure is immediately used for the next data transfer by the device driver.
これにより、復号ハードウエア上のメモリへ転送するデータの転送効率が向上され、デコード処理が高速化される。 Thereby, the transfer efficiency of the data transferred to the memory on the decoding hardware is improved, and the decoding process is speeded up.
また、デバイスドライバにおいて、データ転送用のデータ管理処理がパイプライン処理により逐次実行することができる。これにより、処理のオーバヘッドが削減される。 In the device driver, data management processing for data transfer can be sequentially executed by pipeline processing. This reduces processing overhead.
なお、上記説明においては、2つのデコード処理が連続で行われる例を説明したが、2つに限らず、本発明は、複数のデコード処理に適用することができる。 In the above description, an example in which two decoding processes are performed continuously has been described. However, the present invention is not limited to two, and the present invention can be applied to a plurality of decoding processes.
また、上記説明においては、デコードを復号ハードウエアに行わせる例を説明したが、ハードウエアに行わせる処理は、デコードに限らず、エンコードであってもよいし、その他の処理であってもよい。例えば、パーソナルコンピュータで行うには演算能力を必要とするような重い処理を、接続されるハードウエアに行わせることにも本発明を適用することができる。 In the above description, the example in which decoding is performed by the decoding hardware has been described. However, the processing to be performed by the hardware is not limited to decoding, and may be encoding or other processing. . For example, the present invention can also be applied to causing the connected hardware to perform heavy processing that requires computing power to be performed by a personal computer.
また、パーソナルコンピュータとハードウエアのインタフェースは、PCIeに限らず、他のインタフェースであってもよい。 Further, the interface between the personal computer and the hardware is not limited to PCIe, but may be another interface.
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な汎用のパーソナルコンピュータなどが含まれる。 The series of processes described above can be executed by hardware or can be executed by software. When a series of processing is executed by software, a program constituting the software is installed in the computer. Here, the computer includes a computer incorporated in dedicated hardware, a general-purpose personal computer capable of executing various functions by installing various programs, and the like.
図12は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。すなわち、図3のパーソナルコンピュータ12は、図12に示すように構成される。
FIG. 12 is a block diagram showing an example of the hardware configuration of a computer that executes the above-described series of processing by a program. That is, the
コンピュータにおいて、CPU(Central Processing Unit)301、ROM(Read Only Memory)302、RAM(Random Access Memory)303は、バス304により相互に接続されている。
In a computer, a central processing unit (CPU) 301, a read only memory (ROM) 302, and a random access memory (RAM) 303 are connected to each other via a
バス304には、さらに、入出力インタフェース305が接続されている。入出力インタフェース305には、入力部306、出力部307、記憶部308、通信部309、およびドライブ310が接続されている。
An input /
入力部306は、キーボード、マウス、マイクロフォンなどよりなる。出力部307は、ディスプレイ、スピーカなどよりなる。記憶部308は、ハードディスクや不揮発性のメモリなどよりなる。通信部309は、ネットワークインタフェースなどよりなる。ドライブ310は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア311を駆動する。
The
以上のように構成されるコンピュータでは、CPU301が、例えば、記憶部308に記憶されているプログラムを入出力インタフェース305およびバス304を介してRAM303にロードして実行することにより、上述した一連の処理が行われる。
In the computer configured as described above, the
コンピュータ(CPU301)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア311に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供することができる。
The program executed by the computer (CPU 301) can be provided by being recorded on a
コンピュータでは、プログラムは、リムーバブルメディア311をドライブ310に装着することにより、入出力インタフェース305を介して、記憶部308にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部309で受信し、記憶部308にインストールすることができる。その他、プログラムは、ROM302や記憶部308に、あらかじめインストールしておくことができる。
In the computer, the program can be installed in the
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。 The program executed by the computer may be a program that is processed in time series in the order described in this specification, or in parallel or at a necessary timing such as when a call is made. It may be a program for processing.
本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。 The embodiments of the present invention are not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the present invention.
11 復号ハードウエア, 12 パーソナルコンピュータ, 22 CPU, 23 DMAコントローラ, 24 メモリ, 31 ファームウエア, 41 Rx レジスタ, 42 Tx レジスタ, 51 編集アプリケーション, 54 I/Oマネージャ, 55 デバイスドライバ, 56 ファイルシステムドライバ, 57 メモリマネージャ, 71 キュー 11 Decoding hardware, 12 Personal computer, 22 CPU, 23 DMA controller, 24 Memory, 31 Firmware, 41 Rx register, 42 Tx register, 51 Editing application, 54 I / O manager, 55 Device driver, 56 File system driver, 57 memory manager, 71 queue
Claims (4)
前記管理情報作成手段により前記キューに積まれた前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、データ転送を行い、それに対応して前記他の情報処理装置から送られてくる前記データ転送の完了通知を受けた場合、前記キューから、前記データ転送に対応する前記コモンバッファ構造体を解放するとともに、前記キューに積まれた次の前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、次のデータ転送を行う
情報処理装置。 A virtual memory space and a physical memory space including a management list of necessary data on the main memory, corresponding to a request command issued for a predetermined process performed by another information processing apparatus, and including the management list Management information creation means for placing a common buffer structure associated with each other in a queue;
Using the common buffer structure stacked in the queue by the management information creating means, data is transferred to the other information processing apparatus, and the corresponding information is sent from the other information processing apparatus. When the completion notification of the data transfer is received, the common buffer structure corresponding to the data transfer is released from the queue, and the next common buffer structure loaded in the queue is used, An information processing apparatus that performs the next data transfer to another information processing apparatus.
請求項1に記載の情報処理装置。 The management information creation unit creates the management list for each decode request command issued for a decoding process performed by the other information processing apparatus, and loads the common buffer structure in a queue. Information processing device.
請求項1に記載の情報処理装置。 The data transfer means performs the next data transfer to the other information processing apparatus using one register of the other information processing apparatus, and the other information processing apparatus receives the data from the other information processing apparatus. The information processing apparatus according to claim 1, wherein the result data subjected to the predetermined processing is transferred by the other register of the other information processing apparatus.
他の情報処理装置が行う所定の処理に対して発行される要求コマンドに対応して、必要な主記憶上のデータの管理リストを作成し、前記管理リストを含む、仮想メモリ空間と物理メモリ空間の関連付けがなされたコモンバッファ構造体をキューに積み、
前記キューに積まれた前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、データ転送を行い、それに対応して前記他の情報処理装置から送られてくる前記データ転送の完了通知を受けた場合、前記キューから、前記データ転送に対応する前記コモンバッファ構造体を解放するとともに、前記キューに積まれた次の前記コモンバッファ構造体を用いて、前記他の情報処理装置に対して、次のデータ転送を行う
ステップを含む情報処理方法。 Information processing device
A virtual memory space and a physical memory space including a management list of necessary data on the main memory, corresponding to a request command issued for a predetermined process performed by another information processing apparatus, and including the management list Queue the common buffer structure associated with
Using the common buffer structure loaded in the queue, data transfer is performed to the other information processing apparatus, and the data transfer sent from the other information processing apparatus corresponding thereto is completed. When the notification is received, the common buffer structure corresponding to the data transfer is released from the queue, and the next information processing apparatus uses the next common buffer structure stacked in the queue. An information processing method including a step of performing next data transfer.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009168438A JP2011022877A (en) | 2009-07-17 | 2009-07-17 | Information processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009168438A JP2011022877A (en) | 2009-07-17 | 2009-07-17 | Information processing apparatus and method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011022877A true JP2011022877A (en) | 2011-02-03 |
Family
ID=43632886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009168438A Withdrawn JP2011022877A (en) | 2009-07-17 | 2009-07-17 | Information processing apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011022877A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
-
2009
- 2009-07-17 JP JP2009168438A patent/JP2011022877A/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9304938B2 (en) | 2012-11-26 | 2016-04-05 | Samsung Electronics Co., Ltd. | Storage device and data transferring method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI269168B (en) | Image signal processor, method of processing image signals, machine-readable medium having stored thereon instructions and image processor system | |
US9086916B2 (en) | Architecture for efficient computation of heterogeneous workloads | |
JP2005202767A (en) | Processor system, dma control circuit, dma control method, control method for dma controller, image processing method, and image processing circuit | |
EP2593862A1 (en) | Out-of-order command execution in a multimedia processor | |
US20220236911A1 (en) | Data streaming for computational storage | |
US8522254B2 (en) | Programmable integrated processor blocks | |
US10671401B1 (en) | Memory hierarchy to transfer vector data for operators of a directed acyclic graph | |
US9690720B2 (en) | Providing command trapping using a request filter circuit in an input/output virtualization (IOV) host controller (HC) (IOV-HC) of a flash-memory-based storage device | |
JP2013005452A (en) | Configurable buffer allocation for multi-format video processing | |
KR20150076207A (en) | Scalable compute fabric | |
US10437601B2 (en) | Centralized memory management for multiple device streams | |
JP2006259898A (en) | I/o controller, signal processing system and data transferring method | |
JP2008186345A (en) | Data processing method and data processing apparatus | |
US20200364163A1 (en) | Dynamic performance enhancement for block i/o devices | |
US7861012B2 (en) | Data transmitting device and data transmitting method | |
TW202107408A (en) | Methods and apparatus for wave slot management | |
TWI567652B (en) | Delivering real time interrupts with an advanced programmable interrupt controller | |
JP2011022877A (en) | Information processing apparatus and method | |
US8928927B2 (en) | Image forming apparatus that buffers data in a storage device and reduces delays in process | |
JP2010198138A (en) | Data transfer device, data transfer control method, data transfer control program, and recording medium | |
US20220012201A1 (en) | Scatter and Gather Streaming Data through a Circular FIFO | |
CN110764710B (en) | Low-delay high-IOPS data access method and storage system | |
US20220416997A1 (en) | Handling unaligned transactions for inline encryption | |
US11010318B2 (en) | Method and apparatus for efficient and flexible direct memory access | |
US20230289229A1 (en) | Confidential computing extensions for highly scalable accelerators |
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: 20121002 |