JP2017154466A - 印刷装置及び印刷装置の制御方法 - Google Patents

印刷装置及び印刷装置の制御方法 Download PDF

Info

Publication number
JP2017154466A
JP2017154466A JP2016042307A JP2016042307A JP2017154466A JP 2017154466 A JP2017154466 A JP 2017154466A JP 2016042307 A JP2016042307 A JP 2016042307A JP 2016042307 A JP2016042307 A JP 2016042307A JP 2017154466 A JP2017154466 A JP 2017154466A
Authority
JP
Japan
Prior art keywords
nonvolatile storage
control unit
printing apparatus
data
storage device
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.)
Granted
Application number
JP2016042307A
Other languages
English (en)
Other versions
JP2017154466A5 (ja
JP6672020B2 (ja
Inventor
松本 昭浩
Akihiro Matsumoto
昭浩 松本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2016042307A priority Critical patent/JP6672020B2/ja
Priority to US15/439,797 priority patent/US9967423B2/en
Publication of JP2017154466A publication Critical patent/JP2017154466A/ja
Publication of JP2017154466A5 publication Critical patent/JP2017154466A5/ja
Application granted granted Critical
Publication of JP6672020B2 publication Critical patent/JP6672020B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/21Intermediate information storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1817Buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1801Input data handling means
    • G06K15/1822Analysing the received data before processing
    • G06K15/1823Analysing the received data before processing for evaluating the resources needed, e.g. rasterizing time, ink, paper stock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/40Details not directly involved in printing, e.g. machine management, management of the arrangement as a whole or of its constitutive parts
    • G06K15/4045Managing the interface to the data source, e.g. choosing an interface for data reception
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/41Bandwidth or redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/64Systems for the transmission or the storage of the colour picture signal; Details therefor, e.g. coding or decoding means therefor
    • H04N1/648Transmitting or storing the primary (additive or subtractive) colour signals; Compression thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/40Specific encoding of data in memory or cache
    • G06F2212/401Compressed data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N2201/00Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
    • H04N2201/0077Types of the still picture apparatus
    • H04N2201/0094Multifunctional device, i.e. a device capable of all of reading, reproducing, copying, facsimile transception, file transception

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

【課題】不揮発性記憶装置の寿命を延長させることができる印刷装置及び印刷装置の制御方法を提供することを課題とする。
【解決手段】印刷装置は、書き込み速度が異なる複数の不揮発性記憶装置と、書き込みデータのサイズとしきい値とを比較することにより、前記複数の不揮発性記憶装置のうちのいずれか1個を選択し、前記選択した不揮発性記憶装置に前記書き込みデータを転送するように制御する制御部と、前記不揮発性記憶装置に書き込まれたデータを印刷する印刷部とを有する。
【選択図】図12

Description

本発明は、印刷装置及び印刷装置の制御方法に関する。
不揮発性記憶装置のストレージデバイスとして、HDD(ハードディスク装置)がある。HDDは、ビット単価が安い、大容量、書き換え可能回数に対する制限がない等の利点を持つが、メカ的な構造ゆえに処理パフォーマンスが中速程度で、且つ振動に弱い等の欠点がある。一方で、近年、フラッシュメモリを用いたSSD(ソリッドステートドライブ)の普及が目覚ましい。SSDは、半導体素子で構成されるストレージデバイスであるため振動に強く、HDDに比較して2倍以上処理スピードが高速である利点を持つ。その反面、SSDは、微細化に伴い、ブロック単位当たりの書き換え可能回数が少なく、MLC(マルチレベルセル)型で書き換え可能回数が1000〜3000回程度と極端に少ない。したがって、SSDの高速性は魅力的であるが、SSDの書き換え可能回数に対する寿命の短さは書き換え頻度の多いキャッシュシステムやデータベース装置及び印刷装置等においては致命的欠点となる。
SSD等のフラッシュメモリを利用したストレージデバイスに対しての寿命延長方法が知られている。特許文献1には、SSDとHDDをハイブリッド構成としたデータキャッシュシステムが開示されている。特許文献1では、データの書き込みキャッシュを一端HDDに格納し、SSDの寿命を考慮しながら移送ポリシーに従ってキャッシュデータをSSDへ転送する。
特許文献2には、データベース装置において書込みデータの更新頻度に基づき、更新頻度の高いデータテーブルは長寿命のストレージデバイス(HDD)上に作成し、更新頻度の低いデータテーブルはフラッシュメモリ上に作成する延命方法が開示されている。
特表2013−513186号公報 特開2012−14632号公報
しかし、特許文献1及び2の方法では、高解像度で、且つ高速印刷の両立を要求されるハイエンドクラスの印刷装置への適用は難しい。特許文献1は、HDDの処理性能に引きずられて、印刷装置の出力PPM(Page Per Minute)仕様を満たせない。また、特許文献2は、更新頻度等の統計値では、印刷装置への適用が困難である。
本発明の目的は、不揮発性記憶装置の寿命を延長させることができる印刷装置及び印刷装置の制御方法を提供することである。
本発明の印刷装置は、書き込み速度が異なる複数の不揮発性記憶装置と、書き込みデータのサイズとしきい値とを比較することにより、前記複数の不揮発性記憶装置のうちのいずれか1個を選択し、前記選択した不揮発性記憶装置に前記書き込みデータを転送するように制御する制御部と、前記不揮発性記憶装置に書き込まれたデータを印刷する印刷部とを有する。
選択されない不揮発性記憶装置の書き換え回数を減らして寿命を相対的に延長させることができる。
印刷装置の構成例を示す図である。 SATA制御部の構成例を示す図である。 圧縮処理部の構成例を示す図である。 ストレージ管理テーブルの構成例を示す図である。 メインメモリ上のファイル管理テーブルの構成例を示す図である。 ストレージデバイス上のファイル管理テーブルの構成例を示す図である。 ディスクリプタテーブルの構成例を示す図である。 メインメモリ上のマッピング構成例を示す図である。 SATA制御部に含まれるSRAM上のマッピング構成例を示す図である。 LBA管理テーブルの作成フローを示す図である。 メインメモリ上のファイル管理テーブルの作成フローを示す図である。 ストレージデバイス上のテーブルの作成フローを示す図である。 ディスクリプタテーブルを用いたデータ転送フローを示す図である。 寿命判定処理フローを示す図である。 暗号化装置の接続の構成例を示す図である。 暗号化装置の構成例を示す図である。 暗号化装置の制御及びステータス取得の拡張コマンド例を示す図である。 暗号化装置でのコマンド処理フローを示す図である。
(第1の実施形態)
図1は、本発明の第1の実施形態による印刷システムの構成例を示す図である。印刷システムは、印刷装置と、ローカルエリアネットワーク106と、ホストコンピュータ107とを有する。印刷装置は、メインコントローラ112と、外部画像処理装置108と、スキャナ装置111と、HDD114と、SSD115と、ROM116と、フラッシュメモリ103と、DRAM104と、パネル装置118と、印刷部120とを有する。HDD114は、ハードディスク装置であり、不揮発性記憶装置(ストレージデバイス)である。SSD115は、フラッシュメモリを用いたソリッドステートドライブであり、不揮発性記憶装置(ストレージデバイス)である。SSD115は、HDD114より書き込み速度及び読み出し速度が速い。すなわち、HDD114及びSSD115は、書き込み速度及び読み出し速度が異なる。メインコントローラ122は、メインCPU101と、メモリ制御部102と、LAN−IF部105と、圧縮処理部109と、リーダIF部110と、画像処理部112と、SATA制御部113と、パネルIF部117と、ビデオ出力IF部119とを有する。さらに、メインコントローラ122は、メインバス121を有する。
メインCPU(中央処理演算器)101は、制御部であり、システム制御や各種演算処理を行う。メモリ制御部102は、フラッシュメモリ103及びDRAM104の各種メモリデバイスへの入出力制御やDMA(ダイレクトメモリアクセス)制御を行う。フラッシュメモリ103は、書き換え可能な不揮発性メモリであり、システム全体の制御プログラムや制御パラメータ等を格納する。DRAM(ダイナミックランダムアクセスメモリ)104は、DDR(Double−Data−Rate)メモリに代表される揮発性の書き換え専用メモリであり、プログラムの作業領域や印刷データの格納領域、各種テーブル情報格納領域等の用途に用いられる。ここで、メモリ制御部102と各種メモリデバイスとの関係は、簡略化して表現したものであって、独立に制御される。LAN−IF部105は、ローカルエリアネットワーク106に対するインターフェース部であり、例えばTCP/IP(Transmission Control Protocol/Internet Protocol)プロトコルに対応する。印刷装置は、ローカルエリアネットワーク106を介して、外部のホストコンピュータ107等のネットワーク対応機器と接続され、印刷を行うことができる。
外部画像処理装置108は、ローカルエリアネットワーク106を介して受信した印刷データに各種画像処理を施し、圧縮処理部112に画像データを送信する。また、外部画像処理装置108は、LAN−IF部105と1対1で接続され、印刷情報やステータスの送受信を行う。圧縮処理部109は、外部画像処理装置108からの画像データを圧縮し、メモリ制御部102を介して、DRAM104の所定の場所に圧縮データを格納する。圧縮方式は、ロスレス圧縮やJPEG(Joint Photographic Expents Group)圧縮等である。リーダIF部110は、スキャナ装置111に対して通信制御を行うインターフェース部である。スキャナ装置111は、スキャンにより画像データを生成する。メインコントローラ122は、スキャナ装置111によってスキャンされた画像データを、印刷部120に印刷させることで、コピー機能を実現する。画像処理部112は、LAN−IF部105又はリーダIF部110を介して入力した画像データに対して各種画像処理を行う。
SATA制御部113は、SATA(Serial Advanced Technology Attachment)規格に準拠したインターフェースを有するデバイスとのデータ入出力制御を行う。SATA制御部113には、不揮発性記憶装置であるHDD114及びSSD115が接続される。ROM116は、SATA制御部113内部に含まれる第1のサブCPU201(図2)の制御プログラムや各種パラメータを格納する。印刷装置の起動時に、第1のサブCPU201は、メインCPU101とは独立に、ROM116のプログラムによりブート処理を行い起動する。SATA制御部113の内部構成は、図2を用いて後述する。パネルIF部117は、パネル装置118に対して通信制御を行う。パネル装置118は、UI(ユーザインターフェイス)として、パネル上の液晶画面表示やボタン等を操作することにより、印刷装置の各種設定及び状態の確認ができる。ビデオ出力IF部119は、印刷部120に対して、コマンド/ステータスの通信制御や印刷データの転送を行う。印刷部120は、印刷部本体と給紙系及び排紙系から構成され、主にビデオ出力IF部119からのコマンド情報に従い、印刷データを紙に印刷する。メインバス121は、バスコントローラ含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。例えば、メインバス121は、PCIe(PCI Express)やASIC(特定用途向け集積回路)の内部バス等を含む。
HDD114又はSSD115には、圧縮処理部109により圧縮された圧縮データが書き込まれる。また、圧縮処理部109は、HDD114又はSSD115に書き込まれた圧縮データを伸長する。印刷部120は、圧縮処理部109により伸長された画像データを印刷する。
図2は、SATA制御部113の内部構成例を示す図である。SATA制御部113は、第1のサブCPU201と、メモリ制御部202と、SRAM203と、第1のSATAポート制御部204と、第2のSATAポート制御部206と、DMAC208と、第1のサブバス209とを有する。第1のサブCPU201は、SATAコントローラであり、SATAコマンド発行処理、送受信データの転送処理、SATAステータス受信処理や各種計算処理等の全般的な制御を行う制御部である。メモリ制御部202は、ROM116及びSRAM(スタティックランダムアクセスメモリ)203の入出力制御や第1のサブCPU201への割り込み処理等を行う。SRAM203は、第1のサブCPU201の作業領域、各種制御テーブル、パラメータ格納領域及びデータバッファ等を有する。ここで、メモリ制御部202及びSRAM203は、1ポートRAM、2ポートRAM、FIFOメモリ等をそれぞれ独立に制御し、それらを複数個有していてもよい。
SATAポート制御部204及び205は、SATAのリンク層及び物理層から構成される。第1のサブCPU201は、SATAポート制御部204及び205の各種SATAレジスタの設定を行う。SATAポート制御部204及び205は、各種SATAレジスタの設定に応じて、SATA−IF205及び207に接続されるHDD114及びSSD115に対して物理的な(電気信号としての)SATA規格のコマンド発行やステータス受信を行う。第1のSATAポート制御部204にはHDD114が接続され、第2のSATAポート制御部205にはSSD115が接続される。DMAC(ダイレクトメモリアクセスコントローラ)208は、第1のサブCPU201より所定のレジスタに転送先の先頭アドレス及びサイズが設定され、起動が掛けられると所定のメモリ間でデータ転送を行う。第1のサブバス209は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。また、第1のサブバス209は、メインバス121に接続され、メインCPU101は、第1のサブバス209を介して、SARM203の読み出し及び書き込みが可能である。ここで、DMAC208は、メインバス121及び第1のサブバス209を介して、SRAM203及びメインメモリであるDRAM104間でのデータの読み出し及び書き込みの転送処理を行う。
図3は、圧縮処理部109の内部構成例を示す図である。圧縮処理部109は、ビデオ入力IF部301と、メモリ制御部302と、SRAM303と、圧縮伸長処理部304と、DMAC305と、第2のサブバス306とを有する。ビデオ入力IF部301は、外部画像処理装置108からの画像データの入力制御を行う。メモリ制御部302は、SRAM303の入出力制御や他の機能モジュールとの制御信号の入出力を行う。SRAM303は、画像データの一時的な格納領域として使用される。ここで、メモリ制御部302及びSRAM303は、1ポートRAM、2ポートRAM、FIFOメモリ等を独立に制御し、それらを複数個有していてもよい。圧縮伸長処理部304は、画像データの圧縮及び伸長処理を行う。前述したように、圧縮方式は、ロスレス圧縮やJPEG圧縮等である。圧縮伸長処理部304は、外部画像処理装置108から入力された画像データを、圧縮伸長処理部304内のラインバッファに一時格納し、ラインバッファに格納した画像データを逐次圧縮して、メモリ制御部302を介してSRAM303の所定の場所に格納する。伸長処理を行う場合には、圧縮伸長処理部304は、SRAM303内の所定の領域に格納された圧縮データをラインバッファに一時格納して伸長処理し、伸長処理した画像データを再びSRAM303の所定の領域に格納する。
DMAC305は、メモリ間のDMA(ダイレクトメモリアクセス)制御を行う。DMAC305は、転送元アドレス、転送先アドレス及びサイズ情報を設定し、起動を掛けることで、所定メモリ間でのデータ転送を行う。第2のサブバス306は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。また、第2のサブバス306は、メインバス121に接続され、メインCPU101は、メインバス121を介して、圧縮処理部109へのアクセスが可能である。例えば、メインCPU101は、DMAC305や圧縮伸長処理部304へのレジスタ設定や読み出しが可能である。また、DMAC305は、メインバス121及び第2のサブバス306を介して、SRAM303及びメインメモリであるDRAM104間でのデータの読み出し及び書き込みの転送処理を行う。
図4は、メインメモリであるDRAM104に格納されるストレージ管理テーブル414を示す図である。ストレージ管理テーブル414は、HDD114及びSSD115のストレージデバイスの各種情報及び判定情報を管理する。ストレージ管理テーブル414は、LBA管理テーブル413と、PMしきい値408と、寿命しきい値409と、現在の寿命値415とを有する。LBA管理テーブル413は、各ストレージデバイスのシリアル番号を示すデバイス番号401、総セクタ数402、最大物理LBA(最大物理アドレス)403、最小論理LBA(最小論理アドレス)404、最大論理LBA(最大論理アドレス)405を有する。デバイス番号401は、行406ではHDD114のシリアル番号を示し、行407ではSSD115のシリアル番号を示す。例えば、接続されているストレージデバイスの総セクタ数402は、ブロック数からセクタ数に換算した個数であり、HDD114がSNA個であり、SSD115がSNB個である。最大物理LBA403は、HDD114がLBAr1であり、SSD115がLBAr2である。最小論理LBA404は、HDD114がLBAm1(=0h)であり、SSD115がLBAn1である。最大論理LBA405は、HDD114がLBAm2であり、SSD115がLBAn2である。したがって、論理LBA(論理アドレス)の範囲は、HDD114がLBAm1(=0h)〜LBAm2であり、SSD115がLBAn1〜LBAn2であり、HDD114及びSSD115を合わせた論理LBAは0h〜LBAn2の通し番号となる。図4では、行406及び407においてHDD114及びSSD115の2個のストレージデバイスを管理しているケースを示しているが、2個に限定されず、3個以上のストレージデバイスが接続されていてもよい。
ストレージ管理テーブル414の残りの部分は、各種判定条件に用いられるパラメータを示す。PMしきい値408は、所定の単位(例えば、ページ単位)でHDD114又はSSD115に書き込まれる圧縮データサイズによって、HDD114又はSSD115を選定するための比較データサイズを示す。ここで、同一型番の複数個のHDD114を測定した書き込み速度の最大値の平均値をxMB/sとする。他方で、印刷装置の出力PPM性能仕様から1ページ処理時間が決まり、1ページの各種処理時間(画像処理時間、メモリ間転送時間、メモリとHDD間転送時間等)のバジェットからHDD114に対する要求転送帯域を予め推定することができる。すなわち、1秒間当たりのデータ転送能力(転送量)を予め推定することができる。例えば、1200dpi、A4サイズ、1/12圧縮、103ppmの性能を満たすためには、1ページのデータサイズ56MBに対して192MB/sの書き込み速度がHDD114に要求される。その場合、HDD114にx=200MB/sの書き込み速度があれば、要求値を満たすことになるが、x=180MB/sの書き込み速度しかなければ、要求値を満たせない。ここで、HDD114がxMB/sの書き込み速度を満たせる1ページの最大データサイズPをPMしきい値408として設定する。メインCPU101は、実際の1ページ当たりの転送データサイズ(書き込みデータサイズ)QとPMしきい値408との比較から、そのHDD114で要求値を満たせるかを判定することができる。HDD114は、SSD115より書き込み速度が遅い。実際の1ページ当たりの転送データサイズQがPMしきい値408より小さい場合には、使用するストレージデバイスとしてHDD114を選定する。これに対し、実際のページ当たりの転送データサイズQがPMしきい値408より大きい場合には、使用するストレージデバイスとしてSSD115を選定する。PMしきい値408は、複数のストレージデバイス(HDD114及びSSD115)の書き込み速度の境界を示す。具体的には、PMしきい値408は、HDD114の書き込み速度に対応する1ページ当たりの最大データサイズである。DRAM104は、PMしきい値408を記憶するしきい値記憶部である。
寿命しきい値409は、SSD115の許容される総書き込み量(例えばTB:テラバイト単位で示される)を幾つかの区間に分けて寿命レベルの判定に用いる値である。本実施形態では、3区間に分けて寿命に余裕のある側から寿命レベル1(410)→寿命レベル2(411)の2段階の例を示している。例えば、寿命レベル1(410)は、第1の閾値であり、SSD115の交換をユーザにお知らせする注意段階のイエローゾーンである。寿命レベル2(411)は、第2の閾値であり、SSD115の運用から完全にHDD114の運用に移行する警告段階のレッドゾーンを示し、早急なSSD115の交換をユーザに促す。SSD交換フラグ412は、寿命しきい値409が寿命レベル2(411)に達したことを示すフラグである。SSD交換フラグ412の値は、0が交換不要を示し、1が交換必要を示す。印刷装置の起動時に寿命判定処理を実施する場合、SSD交換フラグ412が1の場合には、寿命判定処理をスキップし、以後の起動時には、毎回SSD交換の警告をパネル装置118のUIに表示する。
現在の寿命値415は、前回の電源オフまでのSSD115の累積書き込み量(総書き込み量)を示す。現在の寿命値415と寿命しきい値409とを比較することにより、寿命のレベルに応じた注意や警告をパネル装置118に表示する。例えば、SSD115のSATA規格として定義されているスマート情報から現在の総書き込み量を得たり、書き込み処理毎に書き込んだサイズを加算して現在の総書き込み量を得ることができる。
図5は、メインメモリであるDRAM104上に格納されるmファイルの管理テーブル510を示す図である。mファイル管理テーブル510は、ファイル情報501を有する。ファイル情報501は、ファイルの属性情報502を示す。属性情報502は、ファイル番号、ファイル名称、タイムスタンプ、ファイルサイズ、用紙サイズ、ページ数等の基本情報を有する。また、mファイル管理テーブル510は、ページの番号を示すページ番号503、圧縮されたページのページ圧縮サイズ504、そのページが記録されているメモリ上の先頭アドレス505、先頭アドレス505から初めの記録領域のデータサイズ506を有する。対象ページがメモリ上の連続空間に記録されている場合、ページ圧縮サイズ504とページサイズ506は同値である。離散空間に記録されている場合、ページサイズ506は初回の連続空間のサイズを示し、以後は線形リスト構造で対象ページ全体にアクセスすることができる。1ページ目〜最後のnページ目507〜509の各ページには、項目503〜506の項目内容が示されている。また、図5で示しているのは、mファイル管理テーブル510の1個のファイルに対するエントリ情報を示す図であって、必要なファイル個数分のエントリ内容が記録されている。
図6は、ストレージデバイス(HDD114、SSD115)上に格納されるsファイル管理テーブル610を示す図である。sファイル管理テーブル610は、ファイル情報601を有する。ファイル情報601は、ファイルの属性情報602を示す。属性情報602の内容は、図5の属性情報502と基本的内容は同一である。また、sファイル管理テーブル610は、ページの番号を示すページ番号603、ページのサイズを示すページサイズ604、先頭アドレスを示す先頭論理LBA(先頭論理アドレス)605、ページ単位でのデータサイズ606を有する。ここで、本実施形態では、ストレージデバイス上のページデータは連続領域に格納されているものとする。1ページ目〜最後のnページ目607〜609の各ページには、項目603〜606の項目内容が示されている。また、図6で示しているのは、sファイル管理テーブル610の1個のファイルに対するエントリ情報を示す図であって、必要なファイル個数分のエントリ内容が記録されている。
図7は、ページ単位でDRAM(メインメモリ)104上のデータをストレージデバイス(HDD114、SSD115)上に書き込むためのディスクリプタテーブル719の構成例を示す図である。ディスクリプタテーブル719は、コマンドテーブル717とデータテーブル718とを有する。
コマンドテーブル717は、コマンドの発行番号を示すコマンドエントリ番号701と、先頭アドレスを示す論理LBA702と、セクタ数を示すセクタカウント703と、SATAコマンド番号704と、最終エントリの状態を示すEOFフラグ705とを有する。SATAコマンド番号704は、SATA規格でのコマンド番号(0x35はWrite DMA Extのコマンド番号)を示す。ここで、EOFフラグ705は、0が継続を示し、1が終了を示す。EOFフラグ705が1であることを検出した時点のコマンドを発行した後に、対象ページの転送処理を完了する。1ページの1番目のエントリ〜最終であるn番目のエントリ706〜708までのそれぞれにおいて、項目701〜705の項目内容が記録されている。
データテーブル718は、データの転送処理番号を示すデータエントリ番号709と、ソースアドレス710と、ディスティネーション711と、バイト単位での転送データ量を示すバイトカウント712と、最終エントリの状態を示すEOFフラグ713を有する。ソースアドレス710は、ライト(Write)コマンド時にDMAC208に設定するDRAM(メインメモリ)104上に格納されているデータの転送元の先頭アドレスを示す。ディスティネーション711は、ライト(Write)コマンド時と同様にリード(Read)コマンド時に受信したデータをDRAM(メインメモリ)104上に格納するための転送先の先頭アドレスを示す。EOFフラグ713の説明は、EOFフラグ705と同様である。なお、本実施形態では、1つのコマンドに対するメモリからの転送データは連続領域にあることを前提としているため、EOFフラグ705とEOFフラグ713が共に最終を示すエントリ番号は同一である。
図8は、DRAM(メインメモリ)104のメモリマップを部分的に示す図である。DRAM104上には、作業領域801、ページデータを格納するページデータ領域802、mファイル管理テーブル領域803、ストレージ管理テーブル領域804、及びsファイル管理テーブル領域805が、印刷可能な通常モード時に作成されている。mファイル管理テーブル領域803は、mファイル管理テーブル510を格納する。ストレージ管理テーブル領域804は、ストレージ管理テーブル414を格納する。sファイル管理テーブル領域805は、sファイル管理テーブル610を格納する。印刷情報格納領域806は、上記で説明したようにメインCPU101がLAN−IF部105を介して外部画像処理装置108との通信において取得した印刷情報(ページサイズ、ページ数、色情報等印刷に必要な属性情報)を格納する領域である。
図9は、SATA制御部113に含まれるSRAM203のメモリマップを部分的に示す図である。SRAM203上には、作業領域901、SATA規格の各種コマンドを設定するコマンド領域902、ディスクリプタテーブル領域903、及びLBA管理テーブル領域904が、印刷可能な通常モード時に作成されている。ディスクリプタテーブル領域903は、ディスクリプタテーブル719を格納する。LBA管理テーブル領域904は、ストレージ管理テーブル414の一部であるLBA管理テーブル413を格納する。ここで、コマンド領域902は、ディスクリプタテーブル719を用いた連続的なコマンド転送ではなく、SATA規格で定義されたDMA転送モード以外のPIO転送モード又はNon−Data転送モードのコマンド系をこの領域に設定する。これにより、単発的なコマンド転送を行うために用いられる。
ここで、図8で説明したテーブル領域803〜805は、即座に印刷可能な状態である通常モードから省電力モードや電源オフ状態に移行する場合にはDRAM(メインメモリ)104からフラッシュメモリ103へ退避される。そして、通常モードに復帰した際に、再びDRAM(メインメモリ)104の所定のテーブル領域803〜805に書き戻される。同様に、図9で説明したテーブル領域903及び904も、省電力モードや電源オフにはSRAM203からフラッシュメモリ103へ退避され、通常モードに復帰した際に再びSRAM203の所定の領域に書き戻される。
図10は、LBA管理テーブル413の生成フローを示す図である。ステップS1001では、メインCPU101は、SATA制御部113内の第1のサブCPU201に対してLBA管理テーブル413の作成要求を指示する。具体的には、メインCPU101は、所定の制御レジスタを設定し、LBA管理テーブル作成要求割り込みを発行する。次に、ステップS1002では、メインCPU101は、LBA管理テーブル413の完了を待つ。メインCPU101は、未完了の場合(NO)には、ステップS1002に留まり、作成完了通知を受信した場合(YES)には、ステップS1003に処理を進める。ここで、第1のサブCPU201は、接続されるHDD114及びSSD115に対してSATA規格で定義されているデバイス情報取得コマンドをそれぞれに発行する。そして、第1のサブCPU201は、デバイス型番、セクタ数等を取得してLBA管理テーブル413をSRAM203上のテーブル領域904に作成する。ステップS1003では、メインCPU101は、SRAM203上のテーブル領域904からLBA管理テーブル413を取得し、図8で説明したメインメモリDRAM104上のテーブル領域804内の所定に位置に登録する。
図11は、画像データの圧縮処理とmファイル管理テーブル510の作成フローを示す図である。S1101では、メインCPU101は、外部画像処理装置108との通信によって印刷情報を取得し、図8で説明した印刷情報格納領域806に保存する。また、メインCPU101は、印刷準備のための初期化処理(ページ数のカウント値n=0等)を行う。次に、ステップS1102では、メインCPU101は、第nページ目のページデータを外部画像処理装置108から取得し、圧縮処理したものを図8で説明したページデータ領域802に格納する。具体的には、メインCPU101は、圧縮伸長処理部304、ビデオ入力IF部301及びDMAC305に各種設定を行う。これによって、圧縮伸長処理部304はビデオ入力IF部301から受信した画像データを圧縮し、圧縮したページデータをSRAM303に格納する。また、圧縮伸長処理部304は、転送元アドレス及び圧縮サイズをDMAC305に設定及び起動を掛けることで、圧縮データをDRAM(メインメモリ)104の所定の位置に転送する。転送先アドレス及びサイズは、メインCPU101によって設定されている。前述の処理を逐次繰り返すことで、1ページ分の圧縮されたページデータがページデータ領域802の所定の位置に格納される。1ページ分の圧縮処理が完了すると、圧縮処理部109からメインCPU101へ通知を行う。
次に、ステップS1103では、メインCPU101は、1ページ分の圧縮処理及び転送処理が未完了(NO)である場合には、ステップS1103に留まり、転送完了通知を圧縮処理部109から受信(YES)すると、ステップS1104に処理を進める。ステップS1104では、メインCPU101は、圧縮伸長処理部304から第nページの圧縮データサイズを取得する。次に、ステップS1105では、メインCPU101は、図5で説明した第nページ目のページ番号503、ページ圧縮サイズ504、ページデータ領域の指定の位置に格納した先頭アドレス505及びデータサイズ506を登録する。次に、ステップS1106では、メインCPU101は、全ページ分の圧縮処理及びmファイル管理テーブル510の登録が完了したかを判定する。メインCPU101は、ステップS1106での判定結果がNOである場合にはステップS1107に処理を進め、ステップS1107では現在のページ数nにプラス1(n=n+1)して再びステップS1102へ処理を戻す。メインCPU101は、ステップS1103での判定結果がYESである場合には、処理を終了する。
図12は、メインCPU101によって処理されるsファイル管理テーブル610とディスクリプタテーブル719の作成及びストレージデバイスへの書き込みフローを示す図であり、印刷装置の制御方法を示す。ステップS1201では、メインCPU101は、ページデータの書き込み処理のための初期化処理(ページ数のカウント値n=0等)を行う。次に、ステップS1202では、メインCPU101は、mファイル管理テーブル510から第nページ目の情報を取得する。次に、ステップS1203では、メインCPU101は、取得した第nページ目の圧縮データサイズ(書き込みデータサイズ)とPMしきい値408(比較データサイズ)とを比較する。そして、メインCPU101は、複数のストレージデバイス(HDD114、SSD115)のうちのいずれか1個の使用するストレージデバイスとして、HDD114又はSSD115を選択する。具体的には、メインCPU101は、第nページ目の圧縮データサイズがPMしきい値408より小さい場合には、使用するストレージデバイスとして、HDD114を選定する。これに対し、メインCPU101は、第nページ目の圧縮データサイズがPMしきい値408より大きい場合には、使用するストレージデバイスとして、SSD115を選定する。次に、ステップS1204では、メインCPU101は、選定処理の結果、SSD115を使用すると決定した場合(YES)には、ステップS1205に処理を進め、HDD114を使用すると決定した場合(NO)には、ステップS1206に処理を進める。ステップS1205では、メインCPU101は、SSD用ディスクリプタテーブル719を作成し、ステップS1207に処理を進める。ステップS1206では、メインCPU101は、HDD用ディスクリプタテーブル719を作成し、ステップS1207に処理を進める。
ステップS1207では、メインCPU101は、sファイル管理テーブル610に第nページの管理情報603〜606(図6)の登録を行う。次に、ステップS1208では、メインCPU101は、ステップS1205又はS1206で作成したディスクリプタテーブル719をSATA制御部113のSRAM203の所定の場所に設定する。具体的には、図9で説明したSRAM203のディスクリプタテーブル領域903に設定する。次に、ステップS1209では、メインCPU101は、SATA制御部113に対して、ストレージデバイスへの転送要求を発行する。例えば、メインCPU101は、SATA制御部113への転送割り込み信号をイネーブルにすることにより転送開始の指示を行う。SATA制御部113はステップS1203で選択されたHDD114又はSSD115に圧縮データ(書き込みデータ)を転送し、その選択されたHDD114又はSSD115には圧縮データが書き込まれる。次に、ステップS1210では、メインCPU101は、第nページ目の転送が完了したか否かの判定を行い、完了していない場合(NO)には、ステップS1210で待ち続け、完了している場合(YES)には、ステップS1211に処理を進める。ステップS1211では、メインCPU101は、全ページ分の転送処理及びsファイル管理テーブル610の登録が完了したか否かを判定し、完了していない場合(NO)には、ステップS1212に処理を進め、完了している場合(YES)には処理を終了する。ステップS1212では、メインCPU101は、現在のページ数nにプラス1(n=n+1)して再びステップS1202に処理を戻す。以上のように、メインCPU101は、各ページの圧縮データのサイズとPMしきい値408とを比較し、ステップS1203の選択を行う。なお、本実施形態では、圧縮データサイズに基づいてストレージデバイスを選択する例を説明したが、これに限定されるものではなく、例えば生データサイズに基づいてストレージを選択する場合にも適用することができる。
図13は、メインCPU101からSATA113への転送要求に対して第1のサブCPU201がディスクリプタテーブル719を用いてストレージデバイスにデータ転送を行うフローを示す図である。ステップS1301では、第1のサブCPU201は、起動時の初期化処理を完了し、メインCPU101からの転送要求待ちを行う。次に、ステップS1302では、第1のサブCPU201は、転送要求の有無を判定し、無の場合(NO)には、ステップS1302に留まり、有の場合(YES)には、ステップS1303に処理を進める。ステップS1303では、第1のサブCPU201は、ディスクリプタテーブル719内部のコマンドテーブル717から第n番目のコマンド情報の読み出しを行う。次に、ステップS1304では、第1のサブCPU201は、第n番目の論理LBA(論理アドレス)を物理LBA(物理アドレス)に変換する。ステップS1304では、図9で説明したテーブル領域904に格納されているLBA管理テーブル413を用いて、論理LBAを物理LBAに変換し、論理LBAがHDD114及びSSD115のどちらのデバイスを指しているのかを特定することができる。
次に、ステップS1305では、第1のサブCPU201は、論理LBAがHDD114及びSSD115のどちらのストレージデバイスを指しているのかを判定を行う。そして、第1のサブCPU201は、SSD115を使用する場合にはステップS1306に処理を進め、HDD114を使用する場合にはステップS1307に処理を進める。すなわち、第1のサブCPU201は、論理LBAを基に、複数のストレージデバイス(HDD114及びSSD115)のうちのいずれか1個を特定する。ステップS1306では、第1のサブCPU201は、SSD115側のSATAポート制御部206のSATAレジスタの設定を行い、ステップS1308に処理を進める。ステップS1307では、第1のサブCPU201は、HDD114側のSATAポート制御部204のSATAレジスタの設定を行い、ステップS1308に処理を進める。
ステップS1308では、第1のサブCPU201は、ディスクリプタテーブル719内部のデータテーブル718から第n番目のデータ情報の読み出しを行う。次に、ステップS1309では、第1のサブCPU201は、第n番目のデータ情報からDMAC208にソースアドレス710とサイズであるバイトカウント712を設定する。次に、ステップS1310では、第1のサブCPU201は、ステップS1305で判定したストレージデバイス側にコマンド発行の指示を与える。それと同時に、第1のサブCPU201は、ステップS1309にて設定したDMAC208に対して起動の指示を与えて第n番目のコマンド転送を開始する。DMAC208は、DRAM(メインメモリ)104上のソースアドレス710から、ステップS1305で判定されたHDD114又はSSD115の物理LBAに書き込みデータを転送する。次に、ステップS1311では、第1のサブCPU201は、選択したストレージデバイスに発行したステータスを待ち、ステータス未受信の場合(NO)にはステップS1311に留まり、ステータス受信の場合(YES)にはステップS1312に処理を進める。ステップS1312では、第1のサブCPU201は、第n番目が最終コマンドか否かを示すEOFフラグ705及び713の判定を行う。第1のサブCPU201は、EOFフラグ705及び713が0である場合(NO)には、再びステップS1303に処理を戻し、次のコマンド情報を読み出して、ステップS1303〜S1311の処理を繰り返す。また、第1のサブCPU201は、EOFフラグ705及び713が1である場合(YES)には、ステップS1313に処理を進める。ステップS1313では、第1のサブCPU201は、対象ファイルの全ページのストレージデバイスへの転送処理(ここでは、書き込み処理)が完了したことをメインCPU101に通知し、処理を終了する。
なお、読み出し処理(Read DMA Extコマンドの発行)も、sファイル管理テーブル610から読み出し用ディスクリプタテーブルを作成し、図13のフローと基本的に同じ方法でストレージデバイス内に格納されたデータを読み出すことができる。
図14は、SSD115の寿命判定フローを示す図である。ステップS1401では、印刷装置は、電源オンにより起動する。次に、ステップS1402では、メインCPU101は、前回の寿命しきい値409をストレージ管理テーブル414から読み出す。次に、ステップS1403では、メインCPU101は、寿命しきい値409に登録されているSSD交換フラグ412から交換の必要性についての判定を行う。そして、メインCPU101は、交換が必要である場合(YES)には、ステップS1407に処理を進め、交換が不要である場合(NO)には、ステップS1404に処理を進める。ステップS1407では、メインCPU101は、パネル装置118のUIへ警告表示を表示するように指示を出して寿命判定処理を終了する。例えば、パネル装置118は、UI上のステータス表示領域にSSD交換を促す警告文を表示する。ステップS1404では、メインCPU101は、寿命比較処理を実行する。寿命比較処理とは、図4で説明したように現在の寿命値415と寿命レベル1及び2(410、411)との比較処理を意味する。次に、ステップS1405では、メインCPU101は、現在の寿命値415が寿命レベル2(411)より多いか否かを判定する。そして、メインCPU101は、現在の寿命値415が寿命レベル2(411)より多い場合(YES)には、ステップS1406に処理を進め、現在の寿命値415が寿命レベル2(411)より少ない場合(NO)には、ステップS1408に処理を進める。
ステップS1406では、メインCPU101は、SSD115を用いた書き込み処理を停止し、書き込み処理に対する以後の運用は全てHDD114を使用するように動作モードを切り替える。すなわち、メインCPU101は、SSD115の代わりに他のストレージデバイス(HDD114)を割り当てる。次に、ステップS1407では、メインCPU101は、パネル装置118のUIへSSD交換の警告表示を表示するようにパネル装置118に第2の通知を出して寿命判定処理を終了する。ステップS1408では、メインCPU101は、現在の寿命値415が寿命レベル1(410)より多いか否かを判定する。メインCPU101は、現在の寿命値415が寿命レベル1(410)より多い場合(YES)には、ステップS1409に処理を進め、現在の寿命値415が寿命レベル1(410)より少ない場合(NO)には、寿命判定処理を終了し、通常運用を開始する。ステップS1409では、メインCPU101は、パネル装置118のUIへSSD交換の注意表示を表示するようにパネル装置118に第1の通知を出して寿命判定処理を終了する。
以上のように、メインCPU101は、印刷データの処理過程でのページ単位書き込みに必要なデータサイズがPMしきい値408より小さい場合にはHDD114にデータを転送し、PMしきい値408より大きい場合にはSSD115にデータを転送する。すなわち、中速なHDD114の処理スピードで賄える書き込みは、SSD115の使用を避け、HDD115を使用し、高速な処理スピードが要求される書き込みのみにSSD115を利用する。これにより、SSD115の欠点である書き換え可能回数制限に対する寿命を相対的に延命させることができる。
(第2の実施形態)
図15は、SATA制御部113に暗号化装置1501が接続されたSATA−SATAブリッジ構成例を示す図である。暗号化装置1501のSATA−Device側にSATA制御部113が接続され、SATA−Host側にHDD114及びSSD115が接続される。なお、暗号化装置1501は、SATAケーブルで接続される外部装置でもよいし、メインコントローラ122上にオンチップとして搭載されてもよい。ROM116は、SATA制御部113に接続される。
図16は、暗号化装置1501の内部構成例を示す図である。第2のサブCPU1601は、SATAコマンド発行処理、送受信データの暗号・復号化処理及びデータ転送処理、SATAステータス受信処理や各種計算処理等のSATAコントローラとしての全般的な制御を行う制御部である。メモリ制御部1602は、フラッシュメモリ1603やSRAM1604の入出力制御や第2のサブCPU1601への割り込み処理等の制御を行う。フラッシュメモリ1603は、SATA制御プログラム、暗号化プログラム等の各種プログラムや制御パラメータ、暗号鍵情報等を格納する。第2のサブCPU1601は、起動時にフラッシュメモリ1603のプログラムからブートを行う。SRAM1604は、第2のサブCPU1601の作業領域、各種制御テーブルやパラメータ格納領域及びデータバッファ等に使用される。ここで、メモリ制御部1602及びSRAM1604は、1ポートRAM、2ポートRAM、FIFOメモリ等をそれぞれ独立に制御し、それらが複数個存在してもよい。SATAデバイス制御部1605は、SATA−IF205でSATA制御部113に接続され、SATA規格のコマンド受信やステータス送信の通信制御を行う。第1のSATAポート制御部1606及び第2のSATAポート制御部1608は、SATAのリンク層及び物理層から構成され、第2のサブCPU1601による各種SATAレジスタの設定に応じて、HDD114及びSSD115を制御する。第1のSATAポート制御部1606及び第2のSATAポート制御部1608は、SATA−IF1607及び1609に接続されるHDD114及びSSD115に対して物理的な(電気信号としての)SATA規格のコマンド発行やステータス受信を行う。第1のSATAポート制御部1606にはHDD114が接続され、第2のSATAポート制御部1608にはSSD115が接続されている。暗号/復号化部1610は、受信データに対して暗号化又は復号化を行うモジュールである。第3のサブバス1611は、バスコントローラを含み、制御バス、データバス及び任意ブロック間のローカルバスを含む。HDD114は、メインCPU101に対して、複数段のSATAポート制御部204及びSATAポート制御部1606を介して接続される。SSD115は、メインCPU101に対して、複数段のSATAポート制御部204及びSATAポート制御部1608を介して接続される。
ここで、第2のサブCPU1601は、SATA制御部113から受信したコマンドの解釈を行い、暗号/復号化部1610を制御することにより、必要なコマンドのデータペイロードに対して暗号化又は復号化を実施する。第2のサブCPU1601は、SATA制御部113から、SATA規格コマンド以外にユーザ独自に定義された拡張コマンドの受信も行う。後述するが、拡張コマンドは、ストレージデバイス(HDD114及びSSD115)には発行されず、暗号化装置1501へのメインコントローラ122からの制御やステータス取得のために用いられる。
図17は、拡張コマンドの例を示す図である。図17を用いて、SATA−SATAブリッジ構成時のLBA管理テーブル413の作成方法について説明する。メインCPU101は、拡張コマンドであるLBA管理テーブル作成コマンド1702を暗号化装置1501に発行する。LBA管理テーブル作成コマンド1702を受信した第2のサブCPU1601は、LBA管理テーブル413を作成する。その作成方法は、既に図10で説明した第1のサブCPU201が作成する手順と同様である。LBA管理テーブル413の作成を完了した第2のサブCPU1601は、予め定義されたステータスレジスタ内に配置された完了フラグビットを有効にする。メインCPU101は、定期的に拡張コマンドのステータスコマンド1701を暗号化装置1501に発行し、ステータスレジスタ情報を取得する。メインCPU101は、取得したステータスレジスタ情報の完了フラグが有効である場合には、さらに拡張コマンドのLBA管理テーブル取得コマンド1703を発行する。LBA管理テーブル取得コマンド1703を受信した第2のサブCPU1601は、作成したテーブル情報をSATA規格で定義されたデータFIS(Frame Instruction Strucutre)に載せてSATA制御部113に送信する。受信したLBA管理テーブル情報は、拡張コマンド発行時に予め設定されたDRAM(メインメモリ)104上の所定の位置に格納される。具体的には、既に説明した図8のストレージ管理テール領域804内のLBA管理テーブル格納位置に登録される。これによって、暗号化装置1501の第2のサブCPU1601とメインCPU101間でLBA管理テーブル413が共有されたことになる。
ここで、メインコントローラ122が受信したファイル(Nページ分)をストレージデバイス(HDD114及びSSD115)に書き込むためのフローは、既に第1の実施形態の図11〜図13で説明した内容と基本的に同様である。但し、図13で説明した第1のサブCPU201がディスクリプタテーブル719を用いてコマンドを発行する際のステップS1304での論理LBAから物理LBAへの変換は行わない。すなわち、SATA制御部113から暗号化装置1501へ発行されるコマンドのアドレスは、論理LBAのままである。SATA−SATAブリッジ構成において、実際のストレージデバイス(HDD114及びSSD115)を管理しているのは暗号化装置1501であるので、論理LBAから物理LBAに変換する処理は、第2のサブCPU1601が実施する。従って、第2の実施形態では、SATA制御部113がディスクリプタテーブル719に従って発行したコマンドを暗号化装置1501が受信した後の処理について説明を行う。
図18は、暗号化装置1501がディスクリプタテーブル719に従ってSATA制御部113から発行された受信コマンドの処理フローを示す図である。ステップS1801では、第2のサブCPU1601は、ブート処理後、上位ホスト(SATA制御部113)からの処理要求待ち準備を行う。具体的には、第2のサブCPU1601は、SATA規格で定義されたコマンド受付可能状態を示すステータスを上位ホスト(SATA制御部113)へ通知する。次に、ステップS1802では、第2のサブCPU1601は、上位ホスト(SATA制御部113)からのコマンド受信を監視し、コマンド未受信の場合(NO)にはステップS1802に留まる。第2のサブCPU1601は、コマンドの受信を検知(YES)するとステップS1803に処理を進める。ステップS1803では、第2のサブCPU1601は、受信したコマンドの解釈処理を実行する。次に、ステップS1804では、第2のサブCPU1601は、LBA管理テーブル413によって、受信した論理LBAから物理LBAに変換する。
次に、ステップS1805では、第2のサブCPU201は、論理LBAがHDD114及びSSD115のどちらのストレージデバイスを指しているのかを判定を行う。第2のサブCPU201は、HDD114を指している場合(NO)にはステップS1806に処理を進め、SSD115を指している場合(YES)にはステップS1807に処理を進める。ステップS1806では、第2のサブCPU1601は、HDD114側のSATAポート制御部1606のSATAレジスタの設定を行い、ステップS1808に処理を進める。ステップS1807では、第2のサブCPU1601は、SSD115側のSATAポート制御部1608のSATAレジスタの設定を行い、ステップS1808に処理を進める。
ステップS1808では、第2のサブCPU1601は、ステップS1805で判定したストレージデバイスに対してコマンド発行の設定を行う。次に、ステップS1809では、第2のサブCPU1601は、上位ホスト(SATA制御部113)からの受信データに対して暗号化処理(ここでは書き込みを前提としているので暗号化。読み出しの場合には復号化である)を開始し、下位のストレージデバイスに対してデータFISに載せて送信する。全てのデータ送信が完了すると、ステップS1810では、第2のサブCPU1601は、ステップS1805で判定したストレージデバイスからのステータス受信を待ち、ステータス未受信の場合(NO)にはステップS1810に留まる。第2のサブCPU1601は、ステータスを受信(YES)するとステップS1811に処理を進める。ステップS1811では、第2のサブCPU1601は、上位ホスト、すなわちSATA制御部113に対してステータス通知を行い、ひとつのコマンド処理を終了する。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 メインCPU、104 DRAM、114 HDD、115 SSD

Claims (12)

  1. 書き込み速度が異なる複数の不揮発性記憶装置と、
    書き込みデータのサイズとしきい値とを比較することにより、前記複数の不揮発性記憶装置のうちのいずれか1個を選択し、前記選択した不揮発性記憶装置に前記書き込みデータを転送するように制御する制御部と、
    前記不揮発性記憶装置に書き込まれたデータを印刷する印刷部と
    を有することを特徴とする印刷装置。
  2. さらに、前記複数の不揮発性記憶装置の書き込み速度の境界を示すしきい値を記憶するしきい値記憶部を有することを特徴とする請求項1記載の印刷装置。
  3. 前記しきい値は、前記書き込み速度に対応する1ページ当たりのデータサイズであり、
    前記制御部は、各ページの前記書き込みデータのサイズと前記しきい値とを比較し、ページ単位で前記選択を行うことを特徴とする請求項1又は2記載の印刷装置。
  4. 前記複数の不揮発性記憶装置は、ハードディスク装置及びソリッドステートドライブを含むことを特徴とする請求項1〜3のいずれか1項に記載の印刷装置。
  5. 前記制御部は、前記複数の不揮発性記憶装置の論理アドレスを物理アドレスに変換し、前記物理アドレスに書き込みデータを転送することを特徴とする請求項1〜4のいずれか1項に記載の印刷装置。
  6. 前記制御部は、前記論理アドレスを基に、前記複数の不揮発性記憶装置のうちのいずれか1個を特定することを特徴とする請求項5記載の印刷装置。
  7. さらに、データを圧縮する圧縮処理部を有し、
    前記制御部は、前記圧縮処理部により圧縮されたデータを前記書き込みデータとして前記選択した不揮発性記憶装置に転送することを特徴とする請求項1〜6のいずれか1項に記載の印刷装置。
  8. 前記制御部は、前記複数の不揮発性記憶装置のうちの1個の不揮発性記憶装置の累積書き込み量が閾値より多い場合には通知することを特徴とする請求項1〜7のいずれか1項に記載の印刷装置。
  9. 前記制御部は、前記複数の不揮発性記憶装置のうちの1個の不揮発性記憶装置の累積書き込み量が第1の閾値より多い場合には第1の通知を行い、第2の閾値より多い場合には第2の通知を行うことを特徴とする請求項1〜8のいずれか1項に記載の印刷装置。
  10. 前記制御部は、前記複数の不揮発性記憶装置のうちの1個の不揮発性記憶装置の累積書き込み量が閾値より多い場合には、前記1個の不揮発性記憶装置の代わりに他の不揮発性記憶装置を割り当てることを特徴とする請求項1〜9のいずれか1項に記載の印刷装置。
  11. 前記制御部は、複数段のSATAポート制御部を介して、前記不揮発性記憶装置に接続されることを特徴とする請求項1〜10のいずれか1項に記載の印刷装置。
  12. 書き込み速度が異なる複数の不揮発性記憶装置を有する印刷装置の制御方法であって、
    書き込みデータのサイズとしきい値を比較することにより、前記複数の不揮発性記憶装置のうちのいずれか1個を選択し、
    前記選択した不揮発性記憶装置に前記書き込みデータを転送し、
    前記不揮発性記憶装置に書き込まれたデータを印刷することを特徴とする印刷装置の制御方法。
JP2016042307A 2016-03-04 2016-03-04 画像形成装置及び画像形成装置の制御方法 Active JP6672020B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016042307A JP6672020B2 (ja) 2016-03-04 2016-03-04 画像形成装置及び画像形成装置の制御方法
US15/439,797 US9967423B2 (en) 2016-03-04 2017-02-22 Image forming apparatus and method for controlling image forming apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016042307A JP6672020B2 (ja) 2016-03-04 2016-03-04 画像形成装置及び画像形成装置の制御方法

Publications (3)

Publication Number Publication Date
JP2017154466A true JP2017154466A (ja) 2017-09-07
JP2017154466A5 JP2017154466A5 (ja) 2019-03-22
JP6672020B2 JP6672020B2 (ja) 2020-03-25

Family

ID=59722389

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016042307A Active JP6672020B2 (ja) 2016-03-04 2016-03-04 画像形成装置及び画像形成装置の制御方法

Country Status (2)

Country Link
US (1) US9967423B2 (ja)
JP (1) JP6672020B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019128891A (ja) * 2018-01-26 2019-08-01 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
JP2020071855A (ja) * 2018-10-25 2020-05-07 キヤノン株式会社 情報処理装置および情報処理装置の制御方法、ならびにプログラム
US10860257B2 (en) 2017-09-25 2020-12-08 Ricoh Company, Ltd. Information processing apparatus and information processing method
JP7384045B2 (ja) 2020-01-16 2023-11-21 富士フイルムビジネスイノベーション株式会社 画像処理システム、情報処理装置、及び情報処理プログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378560B2 (en) 2011-06-17 2016-06-28 Advanced Micro Devices, Inc. Real time on-chip texture decompression using shader processors
US10289549B1 (en) * 2016-06-28 2019-05-14 EMC IP Holding Company LLC Checkpointing cache status information
CN111724295B (zh) * 2019-03-18 2024-05-14 芯原微电子(成都)有限公司 一种外部存储器的协同访问方法及系统、协同访问架构
JP6858812B2 (ja) * 2019-07-26 2021-04-14 株式会社日立製作所 ストレージ制御システム及び方法
US11307986B1 (en) * 2021-06-10 2022-04-19 The Florida International University Board Of Trustees Machine learning based tiered memory systems and methods

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
JP2014032582A (ja) * 2012-08-06 2014-02-20 Canon Inc 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム
JP2014138342A (ja) * 2013-01-18 2014-07-28 Konica Minolta Inc 画像形成装置
JP2015133644A (ja) * 2014-01-14 2015-07-23 コニカミノルタ株式会社 画像処理装置、同装置における画像処理方法及び画像処理プログラム
JP2017134607A (ja) * 2016-01-27 2017-08-03 京セラドキュメントソリューションズ株式会社 画像形成装置およびデータ処理プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062628B2 (en) * 2004-09-28 2006-06-13 Hitachi, Ltd. Method and apparatus for storage pooling and provisioning for journal based storage and recovery
US8140811B2 (en) * 2009-06-22 2012-03-20 International Business Machines Corporation Nonvolatile storage thresholding
US8407403B2 (en) 2009-12-07 2013-03-26 Microsoft Corporation Extending SSD lifetime using hybrid storage
JP2012014632A (ja) 2010-07-05 2012-01-19 Toshiba Corp データベース装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005462A1 (en) * 2006-06-30 2008-01-03 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
JP2014032582A (ja) * 2012-08-06 2014-02-20 Canon Inc 画像処理装置、画像処理装置のストレージデバイス制御方法、及びプログラム
JP2014138342A (ja) * 2013-01-18 2014-07-28 Konica Minolta Inc 画像形成装置
JP2015133644A (ja) * 2014-01-14 2015-07-23 コニカミノルタ株式会社 画像処理装置、同装置における画像処理方法及び画像処理プログラム
JP2017134607A (ja) * 2016-01-27 2017-08-03 京セラドキュメントソリューションズ株式会社 画像形成装置およびデータ処理プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10860257B2 (en) 2017-09-25 2020-12-08 Ricoh Company, Ltd. Information processing apparatus and information processing method
JP2019128891A (ja) * 2018-01-26 2019-08-01 キヤノン株式会社 情報処理装置及び情報処理装置の制御方法
JP2020071855A (ja) * 2018-10-25 2020-05-07 キヤノン株式会社 情報処理装置および情報処理装置の制御方法、ならびにプログラム
JP7313840B2 (ja) 2018-10-25 2023-07-25 キヤノン株式会社 情報処理装置および情報処理装置の制御方法、ならびにプログラム
JP7384045B2 (ja) 2020-01-16 2023-11-21 富士フイルムビジネスイノベーション株式会社 画像処理システム、情報処理装置、及び情報処理プログラム

Also Published As

Publication number Publication date
US9967423B2 (en) 2018-05-08
US20170257513A1 (en) 2017-09-07
JP6672020B2 (ja) 2020-03-25

Similar Documents

Publication Publication Date Title
JP6672020B2 (ja) 画像形成装置及び画像形成装置の制御方法
US8850149B2 (en) Information processing apparatus, control method of the information processing apparatus and program
KR101992934B1 (ko) 메모리 시스템 및 이의 동작 방법
US20160162187A1 (en) Storage System And Method For Processing Writing Data Of Storage System
JP5641900B2 (ja) 管理装置及びその制御方法、並びにプログラム
JP6007332B2 (ja) ストレージシステム及びデータライト方法
JP2010033393A (ja) ストレージ装置、その記憶領域管理方法及びフラッシュメモリパッケージ
JPWO2005103903A1 (ja) 不揮発性記憶システム
US10209897B2 (en) Storage device and control method of the same
US8526049B2 (en) Systems and methods for display list management
US9223695B2 (en) Information processing apparatus
JPWO2015029230A1 (ja) 記憶装置及びデータ制御方法
JP2015518586A (ja) ストレージ装置及びデータ管理方法
US20070136549A1 (en) Information processing apparatus, controller and file reading method
JP2007287084A (ja) 画像処理装置及びプログラム
KR101859022B1 (ko) 화상형성장치, 외부 장치와 연결 방법 및 컴퓨터 판독가능 기록매체
JP2005327334A (ja) 画像処理装置
JP6995607B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP6746379B2 (ja) 情報処理装置、その制御方法及びプログラム
JP2010111099A (ja) 画像処理装置およびその制御方法
JP2020091776A (ja) 情報処理装置
US10853205B2 (en) Information processing apparatus, method of controlling the same and storage medium
JP5263574B2 (ja) データ処理装置及びデータ消去方法
US20200183609A1 (en) Information processing apparatus
JP2022040136A (ja) ジョブ処理装置、ジョブ処理装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200304

R151 Written notification of patent or utility model registration

Ref document number: 6672020

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151