IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 東芝メモリ株式会社の特許一覧

<>
  • 特開-情報処理装置および方法 図1
  • 特開-情報処理装置および方法 図2
  • 特開-情報処理装置および方法 図3
  • 特開-情報処理装置および方法 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024179931
(43)【公開日】2024-12-26
(54)【発明の名称】情報処理装置および方法
(51)【国際特許分類】
   G06F 11/22 20060101AFI20241219BHJP
   G06F 12/00 20060101ALI20241219BHJP
   G06F 3/06 20060101ALI20241219BHJP
【FI】
G06F11/22 673Z
G06F12/00 560A
G06F3/06 304R
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023099271
(22)【出願日】2023-06-16
(71)【出願人】
【識別番号】318010018
【氏名又は名称】キオクシア株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】吉屋 史生
【テーマコード(参考)】
5B048
5B160
【Fターム(参考)】
5B048DD18
5B160AA12
5B160AA13
(57)【要約】
【課題】デバイスの動作検証を好適に行うことが可能な情報処理装置および方法を提供すること。
【解決手段】情報処理装置は、プロセッサと、インタフェース回路と、メモリと、処理回路と、を備える。インタフェース回路は、デバイスが接続可能である。メモリは、プロセッサからのアクセスおよびインタフェース回路を介したデバイスからのアクセスが可能である。処理回路は、インタフェース回路がメモリからデータをリードするリード要求をデバイスから受信した場合、メモリがリード要求によって要求されたデータである第1データを正常に出力した場合であってもエラー通知を生成する。インタフェース回路は、エラー通知に基づき、リード要求に対応し前記デバイスに対する応答としてエラー応答を出力する。
【選択図】図4
【特許請求の範囲】
【請求項1】
プロセッサと、
デバイスが接続可能なインタフェース回路と、
前記プロセッサからのアクセスおよび前記インタフェース回路を介した前記デバイスからのアクセスが可能なメモリと、
前記インタフェース回路が前記メモリからデータをリードするリード要求を前記デバイスから受信した場合、前記メモリが前記リード要求によって要求された前記データである第1データを正常に出力した場合であってもエラー通知を生成する処理回路と、
を備え、
前記インタフェース回路は、前記エラー通知に基づき、前記リード要求に対応し前記デバイスに対する応答としてエラー応答を出力する、
情報処理装置。
【請求項2】
バスをさらに備え、
前記プロセッサおよび前記メモリは前記バスに電気的に接続され、
前記インタフェース回路は、前記処理回路を介して前記バスに電気的に接続される、
請求項1に記載の情報処理装置。
【請求項3】
前記インタフェース回路は、前記リード要求を受信した場合に、前記バスに対し、前記メモリから前記第1データをリードするバスアクセス要求を発行し、
前記処理回路は、前記バスアクセス要求に基づき、前記メモリが前記第1データを正常に出力した場合であってもエラー通知を生成する第1動作を実行するか否かを判定する、
請求項2に記載の情報処理装置。
【請求項4】
前記メモリの記憶領域のうちの少なくとも一部をターゲット領域として設定する情報が格納されるレジスタをさらに備え、
前記処理回路は、
前記第1データの格納位置が前記ターゲット領域に該当する場合、前記メモリが前記第1データを正常に出力した場合であってもエラー通知を生成する第1動作を実行し、
前記第1データの格納位置が前記ターゲット領域に該当しない場合、前記第1動作を実行しない、
請求項2に記載の情報処理装置。
【請求項5】
前記リード要求は、リード先の指定を含み、
前記インタフェース回路は、前記リード要求を受信した場合に、前記バスに対し、前記第1データの格納位置の情報を含み前記第1データをリードするバスアクセス要求を発行し、
前記処理回路は、前記バスアクセス要求に基づき、前記第1動作を実行するか否かを判定する、
請求項4に記載の情報処理装置。
【請求項6】
前記メモリは、
前記デバイスに対するコマンドを格納する第1領域と、
前記デバイスが前記コマンドの実行を完了した場合に前記デバイスが前記実行の完了の通知を格納する第2領域と、
前記デバイスへのライトデータまたは前記デバイスからのリードデータが格納される第3領域と、
前記第3領域における前記ライトデータまたは前記リードデータの格納位置の記述を格納する第4領域と、
を含み、
前記ターゲット領域の一部は、前記第1領域、前記第2領域、前記第3領域、および前記第4領域の何れかの領域に含まれる、
請求項4または請求項5に記載の情報処理装置。
【請求項7】
プロセッサと、デバイスが接続可能なインタフェース回路と、前記プロセッサからのアクセスおよび前記インタフェース回路を介した前記デバイスからのアクセスが可能なメモリと、を備える情報処理装置を制御する方法であって、
前記インタフェース回路が前記メモリからデータをリードするリード要求を前記デバイスから受信した場合、前記メモリが前記リード要求によって要求された前記データである第1データを正常に出力した場合であってもエラー通知を生成することと、
前記エラー通知に基づき、前記リード要求に対応し前記デバイスに対する応答としてエラー応答を前記インタフェース回路から出力することと、
を含む方法。
【発明の詳細な説明】
【技術分野】
【0001】
本実施形態は、情報処理装置および方法に関する。
【背景技術】
【0002】
従来、情報処理装置とフラッシュメモリなどのデバイスとの間の通信プロトコルの規格として、Non-Volatile Memory Express (NVMe(TM))が知られている。この規格では、情報処理装置が備えるシステムメモリ内の所定の領域にデバイスがアクセスできる。
【0003】
また、デバイスが接続される上記のような情報処理装置は、情報処理装置とデバイスとの間の通信プロトコルを使用できるようにするために、プロトコル変換を行うインタフェース回路を備える。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014-99847号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
一つの実施形態は、デバイスの動作検証を好適に行うことが可能な情報処理装置および方法を提供すること、を目的とする。
【課題を解決するための手段】
【0006】
一つの実施形態によれば、情報処理装置は、プロセッサと、インタフェース回路と、メモリと、処理回路と、を備える。インタフェース回路は、デバイスが接続可能である。メモリは、プロセッサからのアクセスおよびインタフェース回路を介したデバイスからのアクセスが可能である。処理回路は、インタフェース回路がメモリからデータをリードするリード要求をデバイスから受信した場合、メモリがリード要求によって要求されたデータである第1データを正常に出力した場合であってもエラー通知を生成する。インタフェース回路は、エラー通知に基づき、リード要求に対応しデバイスに対する応答としてエラー応答を出力する。
【図面の簡単な説明】
【0007】
図1】実施形態にかかる情報処理装置の構成の一例を示す図。
図2】実施形態の情報処理装置において実行されるターゲット領域が設定される動作を示す図。
図3】システムメモリをリードするリード要求に応じた実施形態の情報処理装置の動作の一例の前半部分を説明するための図。
図4】システムメモリをリードするリード要求に応じた実施形態の情報処理装置の動作の一例の後半部分を説明するための図。
【発明を実施するための形態】
【0008】
以下に添付図面を参照して、実施形態にかかる情報処理装置および方法を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【0009】
(実施形態)
図1は、実施形態にかかる情報処理装置の構成の一例を示す図である。
【0010】
情報処理装置IPDは、通信路100を介してデバイスが接続可能に構成される。図1に示される例では、デバイスの一例として、メモリデバイスMDが情報処理装置IPDに接続されている。
【0011】
通信路100が準拠する接続規格は、ホストが有するシステムメモリにデバイスがアクセスすることが可能とされる接続規格であれば任意である。一例では、通信路100は、PCI(Peripheral Components Interconnect) Express(TM)に準拠する。
【0012】
通信路100を介した通信のプロトコルの規格は、ホストが有するシステムメモリにデバイスがアクセスすることが可能とされる規格であれば任意である。一例では、情報処理装置IPDとメモリデバイスMDとは、Non-Volatile Memory Express (NVMe(TM))に準拠した通信を行う。
【0013】
なお、通信路100を介した通信において、情報処理装置IPDはホストに相当し、メモリデバイスMDはデバイスに相当する。情報処理装置IPDに接続されるデバイスは、メモリデバイスMDに限定されない。
【0014】
メモリデバイスMDは、データを不揮発に記憶することができるストレージである。メモリデバイスMDは、フラッシュメモリを備えるSSD(Solid State Drive)のようなメモリシステムであってもよいし、磁気ディスク装置などのようなディスク装置であってもよい。メモリデバイスMDは、情報処理装置IPDが備えるシステムメモリ2に通信路100を介してアクセスすることができる。
【0015】
情報処理装置IPDは、CPU(Central Processing Unit)1、システムメモリ2、インタフェース回路3、エラー通知生成回路4、およびシステムバス5を備える。CPU1およびシステムメモリ2は、システムバス5に電気的に接続される。インタフェース回路3は、エラー通知生成回路4を介してシステムバス5に電気的に接続される。なお、エラー通知生成回路4は処理回路の一例である。
【0016】
システムバス5は、それに接続された各構成要素間でデータの転送を行う。システムバス5は、所定の通信プロトコルに従ってデータの転送を行う。システムバス5が準拠する通信プロトコルの規格は任意である。一例では、システムバス5は、AXI(Advanced eXtensible Interface)に準拠する。
【0017】
CPU1は、コンピュータプログラムに従って種々の動作を実行するプロセッサである。
【0018】
システムメモリ2は、CPU1に、CPU1が使用するプログラムがロードされる領域、CPU1が使用するデータがキャッシュまたはバッファされる領域、などを提供する。システムメモリ2は、例えばRAM(Random Access Memory)によって構成される。なお、システムメモリ2を構成するメモリの種類はRAMに限定されない。
【0019】
システムメモリ2には、さらに、デバイス、この例ではメモリデバイスMD、がアクセス可能な領域がアロケートされる。つまり、システムメモリ2は、CPU1およびメモリデバイスMDからのアクセスが可能である。
【0020】
図1に示される例では、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24のそれぞれが、メモリデバイスMDがアクセス可能な領域である。なお、これらの領域にはCPU1もアクセス可能である。
【0021】
サブミッションキュー21は、キュー構造を有する記憶領域である。サブミッションキュー21には、CPU1によって、メモリデバイスMDに対するコマンドが1以上格納され得る。例えば、サブミッションキュー21には、メモリデバイスMDにデータを格納させるためのコマンドであるライトコマンドや、メモリデバイスMDからデータをリードするためのコマンドであるリードコマンドが格納され得る。
【0022】
コンプリーションキュー22は、キュー構造を有する記憶領域である。コンプリーションキュー22は、メモリデバイスMDがサブミッションキュー21に格納されているコマンドの実行を完了した場合に、メモリデバイスMDがそのコマンドの実行の完了の通知を格納する領域である。コンプリーションキュー22には、1以上、完了の通知が格納され得る。
【0023】
データメモリ領域23は、種々のデータが格納され得る記憶領域である。データメモリ領域23には、ライトデータ、つまりライトコマンドによってメモリデバイスMDにライトが指示されたデータ、や、リードデータ、つまりメモリデバイスMDがリードコマンドに応じてリードしたデータ、が格納され得る。
【0024】
ディスクリプタメモリ領域24は、データメモリ領域23におけるライトデータまたはリードデータの格納位置が記述されたディスクリプタが格納される領域である。
【0025】
例えば、メモリデバイスMDに対するデータのライトの際には、次のような動作が実行される。即ち、CPU1は、まず、サブミッションキュー21にライトコマンドを格納し、データメモリ領域23にライトデータを格納し、ディスクリプタメモリ領域24にデータメモリ領域23における当該ライトデータの格納位置を記述したディスクリプタを格納する。メモリデバイスMDは、サブミッションキュー21に格納されているライトコマンドとディスクリプタメモリ領域24に格納されているディスクリプタとをリードする。メモリデバイスMDは、データメモリ領域23内のライトデータの格納位置をディスクリプタに基づいて特定し、特定した格納位置からライトデータをリードする。そして、メモリデバイスMDは、リードしたライトデータをメモリデバイスMDに具備される記憶媒体に格納する。メモリデバイスMDは、ライトデータの格納が完了すると、コンプリーションキュー22にライトコマンドの実行の完了の通知を格納する。
【0026】
また、例えば、メモリデバイスMDからのデータのリードの際には、次のような動作が実行される。即ち、CPU1は、まず、サブミッションキュー21にリードコマンドを格納し、ディスクリプタメモリ領域24にデータメモリ領域23におけるリードデータの格納先の位置を示すディスクリプタを格納する。メモリデバイスMDは、サブミッションキュー21に格納されているリードコマンドとディスクリプタメモリ領域24に格納されているディスクリプタとをリードする。メモリデバイスMDは、リードコマンドによって指示されたデータをメモリデバイスMDに具備される記憶媒体からリードして、リードされたデータ、つまりリードデータを、ディスクリプタが示すデータメモリ領域23内の格納先の位置に格納する。メモリデバイスMDは、リードデータの格納が完了すると、コンプリーションキュー22にリードコマンドの実行の完了の通知を格納する。
【0027】
インタフェース回路3は、情報処理装置IPDが通信路100を介したデバイスとの通信を行うための機能部である。
【0028】
インタフェース回路3は、リンクコントローラ31と、PHY回路32と、を備える。
【0029】
PHY回路32は、通信路100を介した電気信号の制御を行う回路である。例えば、PHY回路32は、受信したアナログ信号をデジタル信号に変換してリンクコントローラ31に渡したり、リンクコントローラ31から出力されるデジタル信号をアナログ信号に変換して通信路100を介して送信したりする。
【0030】
リンクコントローラ31は、通信路100を介したデバイスとの間の通信のための通信プロトコルと、システムバス5を介した通信(以降、バスアクセスと表記する)のための通信プロトコルと、の間の変換を行う。また、リンクコントローラ31は、通信路100を介して送信される信号に対してスクランブル処理を行ったり、通信路100を介して受信した信号に対してスクランブル処理の逆処理を行ったりすることができる。また、リンクコントローラ31は、通信路100を介して受信したデータに対し、パケット解析を実行することができる。
【0031】
エラー通知生成回路4は、システムメモリ2からデータをリードするリード要求をインタフェース回路3がメモリデバイスMDから受信した場合、システムメモリ2がリード要求によって要求されたデータを正常に出力した場合であっても正常にデータが出力されなかったことを示すエラー通知を生成する。システムメモリ2がデータを正常に出力した場合であってもエラー通知を生成する動作を、エラー通知生成動作と表記する。
【0032】
デバイスは、ホストに備わるシステムメモリに対するリードを行うとき、リード要求をホストに送信する。ホストは、リード要求に応じて、システムメモリに格納されたデータをリードしてデバイスに送信する。ホストは、システムメモリからのデータのリードに失敗すると、リード要求に対応するエラー応答をデバイスに送信する。
【0033】
メモリデバイスの製造の際には、メモリデバイスに対し、種々の試験が実行される。メモリデバイスに対する試験は、エラー応答を受信したときのメモリデバイスの動作の検証を含み得る。
【0034】
実施形態のエラー通知生成回路4は、メモリデバイスMDによるリード要求に応じてシステムメモリ2から正常にデータがリードされたとしても、エラー通知を生成する。インタフェース回路3においては、リンクコントローラ31は、エラー通知に応じてエラー応答を生成し、当該エラー応答をメモリデバイスMDに送信する。これによって、エラー応答を受信したときのメモリデバイスMDの動作を検証することが可能になる。
【0035】
半導体装置の設計の際には、設計に要するコストまたは時間を抑制するために、既に設計済みの部分的な回路データが流用され得る。設計済みの部分的な回路データは、IPコア(Intellectual Property Core)とも称され、市販されている場合もある。IPコアの改変は、不可能であるか、または多大な労力を要する。
【0036】
情報処理装置IPDに関しては、リンクコントローラ31の回路データまたはインタフェース回路3の回路データがIPコアとして利用可能な場合がある。
【0037】
実施形態では、リンクコントローラ31やインタフェース回路3の改変を行うことなくエラー応答を生成する機能を実現するために、エラー通知生成回路4は、インタフェース回路3の外部に配置されている。
【0038】
また、実施形態では、エラー通知生成回路4は、特定の条件が満たされた場合にはエラー通知生成動作を実行し、特定の条件が満たされていない場合にはエラー通知生成動作を実行しないように構成される。特定の条件は、リード要求によるリード先がシステムメモリ2内のメモリデバイスMDがアクセス可能な領域のうちの予め設定された特定の領域に含まれることである。以降、エラー通知を生成するための特定の条件を、エラー応答条件と表記する。
【0039】
エラー応答条件が満たされたか否かを知るために、エラー通知生成回路4は、リンクコントローラ31から発行されるバスアクセス要求を監視する。リンクコントローラ31からバスアクセス要求が発行されたとき、エラー通知生成回路4は、当該バスアクセス要求に基づき、当該バスアクセス要求がリード要求に対応するか否かと、そのリード要求によるリード先が特定の領域に該当するか否かと、を判定する。リード先が特定の領域に該当するとは、リードの範囲の一部または全部が特定の領域に含まれることである。以降、上記した特定の領域を、ターゲット領域と表記する。
【0040】
実施形態と比較される技術について説明する。実施形態と比較される技術を、比較例(comparative embodiment)と表記する。比較例によれば、エラー応答条件が満たされたか否かが、PHY回路とリンクコントローラとの間の信号に基づいて判定される。
【0041】
前述されたように、PHY回路からリンクコントローラに入力される信号は、スクランブル処理などを含む種々の処理が施されている。よって、比較例によれば、PHY回路とリンクコントローラとの間の信号からリード要求の検出やリード先の特定を行うためには、PHY回路からリンクコントローラに送られる信号に対し、リンクコントローラで実行されるいくつかの処理(例えばスクランブル処理やパケット解析)と同等の処理を実行する必要がある。そのため、エラー通知生成動作と同等の処理を実現するための回路の規模が大きくなる。
【0042】
これに対し、実施形態によれば、エラー通知生成回路4は、リンクコントローラ31とシステムバス5との間に配置され、リンクコントローラ31が発行するバスアクセスの要求を監視する。システムバス5に対して発行されるバスアクセスの要求は、システムバス5の通信プロトコルに準拠するものであり、リンクコントローラ31の内部の処理に依存しない。よって、比較例と異なり、エラー通知生成回路4は、規模が抑制された簡単な構成の回路で実現され得る。
【0043】
エラー通知生成回路4は、判定回路41、応答検出回路42、置換回路43、および設定レジスタ44を備える。
【0044】
設定レジスタ44は、ターゲット領域を設定する情報が格納されるレジスタである。ターゲット領域の設定方法としては種々の方法が適用され得る。
【0045】
一例では、ターゲット領域の先頭のアドレスが設定レジスタ44に設定される。その場合、例えば、設定レジスタ44に設定されたアドレスが示す位置を先頭とする所定サイズの領域が、ターゲット領域と見なされる。
【0046】
別の例では、ターゲット領域の先頭のアドレスとターゲット領域のサイズが設定レジスタ44に設定される。
【0047】
さらに別の例では、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24のそれぞれについて、ターゲット領域とするか否かを示すフラグが設定レジスタ44に設定される。その場合、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24のうち、対応するフラグが設定レジスタ44に立てられた領域が、ターゲット領域と見なされる。
【0048】
さらに別の例では、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24のそれぞれについて、ターゲット領域とするか否かを示すフラグと、オフセット量と、が設定レジスタ44に設定される。その場合、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24のうち、対応するフラグが設定レジスタ44に立てられた領域の先頭から、設定されたオフセット量だけオフセットして得られる領域が、ターゲット領域と見なされる。
【0049】
なお、設定レジスタ44には、ターゲット領域の設定の他に任意の情報が設定され得る。例えば、設定レジスタ44には、エラー通知を生成する機能をオンしたりオフしたりするための設定情報が設定されてもよい。エラー通知生成回路4は、エラー通知を生成する機能が設定情報によってオフされている場合には、エラー応答条件が満たされたか否かに関わらず、エラー通知の生成を行わない。
【0050】
また、メモリデバイスMDがアクセス可能な領域であれば任意の領域がターゲット領域として設定され得る。システムメモリ2の記憶領域の全域に対してメモリデバイスMDがアクセス可能であれば、システムメモリ2の記憶領域の全域がターゲット領域として設定されてもよい。
【0051】
また、メモリデバイスMDがアクセス可能な領域の全域がターゲット領域と見なされてもよい。そのような場合、設定レジスタ44への、ターゲット領域を設定する情報の格納は省略され得る。
【0052】
判定回路41は、リンクコントローラ31がバスアクセス要求を発行した場合、当該バスアクセス要求はターゲット領域がリード先のリード要求であるか否かを判定する。つまり、判定回路41は、バスアクセス要求に基づき、エラー通知生成条件が満たされているか否かを判定する。
【0053】
リンクコントローラ31は、メモリデバイスMDからリード要求を受信した場合、システムバス5の通信プロトコルに準拠したバスアクセス要求を発行する。リードのためのバスアクセス要求は、リードアクセス信号、アドレス信号、およびサイズ信号(またはサイズ信号に替えてバースト長信号)を含む。リードアクセス信号は、リードのためのバスアクセス要求を示す信号である。アドレス信号は、リード先のアドレスを示す信号である。サイズ信号およびバースト長信号は、リードの範囲(長さ)を示す信号である。
【0054】
例えばAXIの仕様によれば、リードアクセス信号としてのARVALID信号と、アドレス信号としてのARADDR信号と、サイズ信号としてのARSIZE信号と、バースト長信号としてのARLEN信号と、が定義されている。他の通信プロトコルにおいても、これらと同等の意味を有する信号群が定義されている。
【0055】
判定回路41は、バスアクセス要求にリードアクセス信号が含まれているか否かに基づいてバスアクセス要求がリード要求であるか否かを判定する。また、判定回路41は、ターゲット領域がリード先であるか否かを、設定レジスタ44に格納されたターゲット領域の設定と、アドレス信号と、サイズ信号(またはサイズ信号に替えてバースト長信号)と、に基づいて判定する。
【0056】
応答検出回路42は、エラー通知生成条件が満たされていると判定された場合に、システムメモリ2からのリードデータの出力を監視する。システムメモリ2からリードデータが出力された場合、応答検出回路42は、エラー通知の生成を置換回路43に指示する。
【0057】
システムメモリ2は、リードを要求するバスアクセス要求に応じて、リードデータを含む各種信号をシステムバス5の通信プロトコルに準拠した方式で出力する。具体的には、システムメモリ2は、リードデータと、リード有効信号と、ステータス信号と、を出力する。リード有効信号は、リードデータの出力期間を示す信号である。リードデータは、リード有効信号と同期して出力される。ステータス信号は、リードデータが正常に出力されたか否かを示す信号である。
【0058】
例えば、システムメモリ2はリードデータに対して誤り訂正を行う。リードデータに誤りが含まれていない場合にはシステムメモリ2はリードデータが正常に出力されたことを示す正常通知をステータス信号として出力する。リードデータに誤りが含まれている場合にはシステムメモリ2はリードデータが正常に出力されなかったことを示すエラー通知をステータス信号として出力する。正常通知およびエラー通知の何れをステータス信号として出力するかの判定方法はこれだけに限定されない。
【0059】
AXIの仕様によれば、リード有効信号としてのRVALID信号と、ステータス信号としてのRRESP信号と、が定義されている。他の通信プロトコルにおいても、これらと同等の意味を有する信号群が定義されている。
【0060】
応答検出回路42は、リード有効信号に基づき、システムメモリ2からのリードデータの出力を検出する。応答検出回路42は、システムメモリ2からのリードデータの出力に応じて、置換回路43にエラー通知の生成を指示する。
【0061】
置換回路43は、エラー通知の生成が指示された場合、システムメモリ2から出力されたステータス信号として正常通知が出力されたとしても、ステータス信号の内容を正常通知からエラー通知に置き換える(replace)。そして、置換回路43は、エラー通知を示すステータス信号をリンクコントローラ31に入力する。
【0062】
リンクコントローラ31は、エラー通知を示すステータス信号に基づき、リード要求に対応しメモリデバイスMDに対する応答としてエラー応答を出力する。エラー応答は、PHY回路32および通信路100を介してメモリデバイスMDに転送される。
【0063】
図2図4は、実施形態の情報処理装置IPDの動作の一例を説明するための図である。
【0064】
図2は、実施形態の情報処理装置IPDにおいて実行されるターゲット領域が設定される動作を示す図である。CPU1は、まず、所定のコンピュータプログラムに従って、システムメモリ2におけるターゲット領域を設定レジスタ44に設定する(S1)。前述されたように、ターゲット領域は、アドレス、サイズ、またはフラグなどによって設定され得る。
【0065】
図3は、システムメモリ2からデータをリードするリード要求に応じた実施形態の情報処理装置IPDの動作の一例の前半部分を説明するための図である。
【0066】
リンクコントローラ31が、メモリデバイスMDから、システムメモリ2からデータをリードするリード要求を受信すると(S2)、リンクコントローラ31は、システムメモリからデータをリードするバスアクセス要求を発行する(S3)。
【0067】
バスアクセス要求は、エラー通知生成回路4を介してシステムバス5に転送され、システムバス5は、バスアクセス要求をシステムメモリ2に転送する。
【0068】
エラー通知生成回路4においては、判定回路41は、システムバス5に送られたバスアクセス要求はターゲット領域がリード先であるリード要求であるか否かを判定する(S4)。
【0069】
システムバス5に送られたバスアクセス要求はターゲット領域がリード先であるリード要求でない場合(S4:No)、エラー通知生成回路4はエラー通知生成動作を実行せずに動作を終了する。
【0070】
システムバス5に送られたバスアクセス要求はターゲット領域がリード先であるリード要求である場合(S4:Yes)、判定回路41は、エラー通知生成動作のための動作を開始する。
【0071】
図4は、システムメモリ2からデータをリードするリード要求に応じた実施形態の情報処理装置IPDの動作の一例の後半部分、つまりエラー通知生成動作の一例、を説明するための図である。
【0072】
判定回路41は、バスアクセス要求に対する応答の検出を応答検出回路42に指示する(S5)。
【0073】
システムメモリ2は、バスアクセス要求に応じて自身が備える記憶領域からデータをリードして、誤り訂正などを実行する。そして、システムメモリ2は、リードデータ、リード有効信号、およびステータス信号を出力する。ステータス信号としては、正常通知およびエラー通知のうちの誤り訂正などの結果に応じた通知が出力される。図4の説明では、正常通知がステータス信号として出力されたこととする。
【0074】
応答検出回路42は、リード有効信号に基づいてシステムメモリ2からのリードデータの出力を検出すると、置換回路43にエラー通知の生成を指示する(S6)。
【0075】
置換回路43は、応答検出回路42からの指示に応じて、ステータス信号の通知内容を正常通知からエラー通知に置き換える(S7)。
【0076】
リンクコントローラ31は、リード有効信号およびリードデータと、通知内容が置換回路43によってエラー通知に置き換えられたステータス信号と、を受信する。
【0077】
ステータス信号として正常通知を受信した場合、リンクコントローラ31は、メモリデバイスMDに対し、通信路100の接続規格および通信プロトコルに従ってリードデータを転送する。しかしながら、リンクコントローラ31は、置換回路43を介したステータス信号としてエラー通知を受信している。よって、リンクコントローラ31は、エラー通知に基づき、メモリデバイスMDに対し、リードデータを転送することなくエラー応答を転送する(S8)。つまり、リンクコントローラ31は、エラー通知生成回路4からエラー通知が入力されたことによって、リード要求に対する応答としてメモリデバイスMDにエラー応答を転送する。
【0078】
S8の処理の後、情報処理装置IPDのオペレータは、メモリデバイスMDがエラー応答に応じて所定の動作を正しく実行するか否かを確認することができる。
【0079】
なお、図4に示された例では、システムメモリ2は、正常通知をステータス信号として出力した。システムメモリ2がエラー通知をステータス信号として出力した場合のエラー通知生成回路4の動作は任意である。
【0080】
一例では、置換回路43は、ステータス信号として出力されたエラー通知をそのままリンクコントローラ31に転送する。その場合、システムメモリ2がリードデータを正常に出力できなかった場合であっても、リード要求に対応する応答としてエラー応答がメモリデバイスMDに転送される。つまり、システムメモリ2がリードデータを正常に出力したか否かに関係なくエラー応答に応じたメモリデバイスMDの動作の検証が可能である。
【0081】
以上述べたように、実施形態によれば、システムメモリ2からデータをリードするリード要求を、インタフェース回路3がメモリデバイスMDから受信した場合、エラー通知生成回路4は、システムメモリ2がリードデータを正常に出力した場合であってもエラー通知を生成する。インタフェース回路3は、エラー通知に基づき、リード要求に対応しメモリデバイスMDに対する応答としてエラー応答を出力する。
【0082】
よって、メモリデバイスMDがエラー応答に応じて所定の動作を正しく実行するか否かを検証することが可能となる。また、エラー通知生成回路4がインタフェース回路3の外部に配置されているため、インタフェース回路3の改変を行わなくてもエラー応答を生成する機能が実現される。つまり、インタフェース回路3の改変を行うことなくデバイスの動作検証を行うことが可能な情報処理装置IPDを得ることができる。
【0083】
また、実施形態によれば、インタフェース回路3はエラー通知生成回路4を介してシステムバス5に電気的に接続される。
【0084】
よって、インタフェース回路3の改変を行わなくてもエラー応答を生成する機能が実現される。
【0085】
また、実施形態によれば、インタフェース回路3は、メモリデバイスMDからリード要求を受信した場合に、システムバス5に対し、リード要求によって要求されたデータをリードするバスアクセス要求を発行する。エラー通知生成回路4は、バスアクセス要求に基づき、エラー通知生成動作を実行するか否かを判定する。
【0086】
システムバス5に対して発行されるバスアクセスの要求は、システムバス5の通信プロトコルに準拠するものであり、リンクコントローラ31やインタフェース回路3の内部の処理に依存しない。よって、エラー通知生成回路4は、前述された比較例と異なり、規模が抑制された簡単な構成の回路で実現され得る。
【0087】
また、実施形態によれば、システムメモリ2の記憶領域のうちの一部または全部をターゲット領域として設定する情報が格納される設定レジスタ44をさらに備える。エラー通知生成回路4は、バスアクセス要求によるリード先、つまりリードデータの格納位置、がターゲット領域に該当する場合にはエラー通知生成動作を実行する。エラー通知生成回路4は、バスアクセス要求によるリード先がターゲット領域に該当しない場合にはエラー通知生成動作を実行しない。
【0088】
よって、エラー応答を生成させるためのアクセス位置を設定可能となる。
【0089】
なお、前述されたように、ターゲット領域の設定方法は特定の方法に限定されない。例えば、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、またはディスクリプタメモリ領域24が、ターゲット領域として設定されてもよい。換言すると、ターゲット領域の少なくとも一部が、サブミッションキュー21、コンプリーションキュー22、データメモリ領域23、およびディスクリプタメモリ領域24の何れかに含まれるようにターゲット領域が設定され得る。
【0090】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0091】
1 CPU、2 システムメモリ、3 インタフェース回路、4 エラー通知生成回路、5 システムバス、21 サブミッションキュー、22 コンプリーションキュー、23 データメモリ領域、24 ディスクリプタメモリ領域、31 リンクコントローラ、32 PHY回路、41 判定回路、42 応答検出回路、43 置換回路、44 設定レジスタ、100 通信路、IPD 情報処理装置、MD メモリデバイス。
図1
図2
図3
図4