トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 情報処理装置および情報処理方法
【発明者】 【氏名】岡野 廣
【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号 富士通株式会社内

【氏名】早川 文彦
【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号 富士通株式会社内

【要約】 【課題】キャッシュメモリやメモリを有するマイクロプロセッサ等において、データの読み出しまたは書き込み時に指定されたデータのサイズに応じてアドレスが整列していない場合でも、1回のメモリアクセスでデータの読み出しまたは書き込みをおこなうこと。

【解決手段】データの書き込み先または読み出しデータの格納先を示す第1のアドレスを第1のアドレス加算器24により生成する。第1のアドレスに8を加算した第2のアドレスを第2のアドレス加算器34により生成する。第1のアドレスおよび第2のアドレスのいずれか一方を、第1〜第7のセレクタ51〜57により適宜選択して第1〜第7のメモリ領域41〜47に供給する。第8のメモリ領域48には第1のアドレスを供給する。
【特許請求の範囲】
【請求項1】 MおよびNを自然数とすると、Mビット幅のN個のメモリ領域よりなるM×Nビットの書き込み幅を有するメモリを備えた情報処理装置において、アドレスを生成するための第1のデータを格納する第1のレジスタと、アドレスを生成するための第2のデータを格納する第2のレジスタと、書き込みサイズを格納する第3のレジスタと、前記第1のレジスタの格納データと前記第2のレジスタの格納データとに基づいて第1のアドレスを生成する第1のアドレス加算器と、前記第1のアドレスにNが加算された第2のアドレスを生成する第2のアドレス加算器と、前記第1のアドレスと前記書き込みサイズとに基づいてN個の前記メモリ領域に対する書き込み制御信号を生成する書き込み制御回路と、前記第1のアドレスおよび前記第2のアドレスのいずれか一方を前記第1のアドレスに応じて選択する(N−1)個のセレクタと、前記セレクタから供給されたアドレスおよび前記書き込み制御信号に基づいてデータが書き込まれる第1から第(N−1)までの(N−1)個の前記メモリ領域と、前記第1のアドレスおよび前記書き込み制御信号に基づいてデータが書き込まれる第Nの前記メモリ領域と、を具備することを特徴とする情報処理装置。
【請求項2】 MおよびNを自然数とすると、Mビット幅のN個のメモリ領域よりなるM×Nビットの読み出し幅を有するメモリを備えた情報処理装置において、アドレスを生成するための第1のデータを格納する第1のレジスタと、アドレスを生成するための第2のデータを格納する第2のレジスタと、前記第1のレジスタの格納データと前記第2のレジスタの格納データとに基づいて第1のアドレスを生成する第1のアドレス加算器と、前記第1のアドレスにNが加算された第2のアドレスを生成する第2のアドレス加算器と、前記第1のアドレスおよび前記第2のアドレスのいずれか一方を前記第1のアドレスに応じて選択する(N−1)個のセレクタと、前記セレクタから供給されたアドレスに基づいてデータが読み出される第1から第(N−1)までの(N−1)個の前記メモリ領域と、前記第1のアドレスに基づいてデータが読み出される第Nの前記メモリ領域と、を具備することを特徴とする情報処理装置。
【請求項3】 MおよびNを自然数とすると、Mビット幅のN個のメモリ領域よりなるM×Nビットの書き込み幅およびM×Nビットの読み出し幅を有するメモリを備えた情報処理装置において、アドレスを生成するための第1のデータを格納する第1のレジスタと、アドレスを生成するための第2のデータを格納する第2のレジスタと、書き込みサイズを格納する第3のレジスタと、前記第1のレジスタの格納データと前記第2のレジスタの格納データとに基づいて第1のアドレスを生成する第1のアドレス加算器と、前記第1のアドレスにNが加算された第2のアドレスを生成する第2のアドレス加算器と、前記第1のアドレスと前記書き込みサイズとに基づいてN個の前記メモリ領域に対する書き込み制御信号を生成する書き込み制御回路と、前記第1のアドレスおよび前記第2のアドレスのいずれか一方を前記第1のアドレスに応じて選択する(N−1)個のセレクタと、前記セレクタから供給されたアドレスおよび前記書き込み制御信号に基づいてデータが書き込まれ、また前記セレクタから供給されたアドレスに基づいてデータが読み出される第1から第(N−1)までの(N−1)個の前記メモリ領域と、前記第1のアドレスおよび前記書き込み制御信号に基づいてデータが書き込まれ、また前記第1のアドレスに基づいてデータが読み出される第Nの前記メモリ領域と、を具備することを特徴とする情報処理装置。
【請求項4】 前記第1のアドレス加算器は、前記第1のレジスタの格納データと前記第2のレジスタの格納データとを加算して前記第1のアドレスを生成することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項5】 前記第2のアドレス加算器は、前記第1のレジスタの格納データと前記第2のレジスタの格納データとを加算し、加算結果にさらにNを加算して前記第2のアドレスを生成することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項6】 N=8のとき、前記第1のアドレスの下位の3ビットで表される整数をKとすると、K=0のときにはすべての前記セレクタは前記第1のアドレスを選択し、1≦K≦6のときには第1から第Kまでの前記セレクタは前記第2のアドレスを選択し、かつ第(K+1)から第7までの前記セレクタは前記第1のアドレスを選択し、K=7のときにはすべての前記セレクタは前記第2のアドレスを選択することを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項7】 N=8のとき、前記第1のアドレスの下位の3ビットで表される整数をKとし、前記書き込みサイズをJバイトとすると、前記書き込み制御回路は、1≦(K+J)≦8のとき第(K+1)から第(K+J)の前記メモリ領域を書き込み可能な状態とし、また(K+J)≧9のとき第(K+1)から第8の前記メモリ領域と第1から第(K+J−8)の前記メモリ領域を書き込み可能な状態とすることを特徴とする請求項1〜3のいずれか一つに記載の情報処理装置。
【請求項8】 前記メモリはキャッシュメモリであることを特徴とする請求項1〜7のいずれか一つに記載の情報処理装置。
【請求項9】 MおよびNを自然数とすると、Mビット幅のN個のメモリ領域よりなるM×Nビットの書き込み幅を有するメモリを備えた情報処理装置における情報処理方法であって、アドレスを生成するための第1のデータおよび第2のデータと、書き込サイズとを入力する入力工程と、前記第1のデータと前記第2のデータとに基づいて第1のアドレスを生成する第1のアドレス生成工程と、前記第1のアドレスにNが加算された第2のアドレスを生成する第2のアドレス生成工程と、前記第1のアドレスと前記書き込みサイズとに基づいてN個の前記メモリ領域に対する書き込み制御信号を生成する書き込み制御信号生成工程と、前記第1のアドレスおよび前記第2のアドレスのいずれか一方を前記第1のアドレスに応じて選択する選択工程と、前記選択工程によって選択されたアドレスおよび前記書き込み制御信号に基づいて第1から第(N−1)までの(N−1)個の前記メモリ領域にデータ書き込こむとともに、前記第1のアドレスおよび前記書き込み制御信号に基づいて第Nの前記メモリ領域にデータを書き込む書き込み工程と、を含んだことを特徴とする情報処理方法。
【請求項10】 MおよびNを自然数とすると、Mビット幅のN個のメモリ領域よりなるM×Nビットの書き込み幅およびM×Nビットの読み出し幅を有するメモリを備えた情報処理装置における情報処理方法であって、アドレスを生成するための第1のデータおよび第2のデータと、書き込サイズとを入力する入力工程と、前記第1のデータと前記第2のデータとに基づいて第1のアドレスを生成する第1のアドレス生成工程と、前記第1のアドレスにNが加算された第2のアドレスを生成する第2のアドレス生成工程と、前記第1のアドレスと前記書き込みサイズとに基づいてN個の前記メモリ領域に対する書き込み制御信号を生成する書き込み制御信号生成工程と、前記第1のアドレスおよび前記第2のアドレスのいずれか一方を前記第1のアドレスに応じて選択する選択工程と、前記選択工程によって選択されたアドレスおよび前記書き込み制御信号に基づいて第1から第(N−1)までの(N−1)個の前記メモリ領域にデータを書き込むとともに、前記第1のアドレスおよび前記書き込み制御信号に基づいて第Nの前記メモリ領域にデータが書き込む書き込み工程と、前記選択工程によって選択されたアドレスに基づいて第1から第(N−1)までの(N−1)個の前記メモリ領域からデータを読み出すとともに、第Nの前記メモリ領域から前記第1のアドレスに基づいてデータを読み出す読み出し工程と、を含んだことを特徴とする情報処理方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、キャッシュメモリやメモリを有するマイクロプロセッサまたはデジタルシグナルプロセッサなどの情報処理装置および情報処理方法に関し、特に画像処理用プロセッサなどにおけるキャッシュメモリやその他のメモリに対するデータの読み出しまたは書き込みに適用して好適な技術に関する。
【0002】マイクロプロセッサやデジタルシグナルプロセッサ(以下、単に情報処理装置とする)などでは、データの演算処理をおこなう際に、キャッシュメモリ、またはRAMやROMなどのメモリから被演算データが読み出されて演算がおこなわれる。演算終了後、演算結果データはキャッシュメモリやメモリに書き込まれる。その際、対象となるデータのアドレスとサイズが指定され、指定されたアドレスから始まるデータが読み出される。また、指定されたアドレスから指定されたサイズ分の領域にデータが書き込まれる。
【0003】
【従来の技術】従来の情報処理装置におけるデータの読み出しまたは書き込みに関する構成を、読み出しまたは書き込みのサイズが最大で64ビット幅であり、かつ最小で8ビット幅である、容量8Kバイトのダイレクトマップ方式のキャッシュメモリを例にして説明する。なお、読み出しおよび書き込みのバス幅を8バイト、すなわち64ビットとする。
【0004】図6は、このような従来のキャッシュメモリにおけるデータの読み出しまたは書き込みに関する構成を示すブロック図である。図6に示すように、従来の情報処理装置では、データの書き込み時には、第1のレジスタ(レジスタ1)11および第2のレジスタ(レジスタ2)12にそれぞれ書き込み先のベースアドレスおよびオフセットが格納される。また、第3のレジスタ(レジスタ3)13に書き込みデータのサイズが格納される。
【0005】第1および第2のレジスタ11,12に格納されたベースアドレスおよびオフセットはアドレス加算器14により加算され、それによってデータの書き込み先を示す[12:0]のアドレスが生成される。ここで、本明細書では、aおよびbをゼロ以上の整数とすると、[a:b]は(b+1)ビット目から(a+1)ビット目までの(a−b+1)ビット幅のデータを表す。アドレス加算器14から出力された[12:0]のアドレスのうち、[2:0]で表される下位の3ビット分は書き込み制御回路15に供給され、残りの[12:3]、すなわち4ビット目から13ビット目までの10ビット分はメモリ16に供給される。
【0006】また、書き込み制御回路15には、第3のレジスタ13からデータサイズが供給され、これとアドレス加算器14から供給された[2:0]のアドレス下位ビットに基づいて[7:0]の書き込み制御信号が生成される。メモリ16の、8ビット幅の8個の各メモリ領域には、それそれに対応する[0]〜[7]の1ビットの書き込み制御信号が供給され、それによって指定されたメモリ領域にメモリ書き込みデータ17が書き込まれる。ここで、cをゼロ以上の整数とすると、[c]はLSBから(c+1)ビット目のデータを表す。
【0007】また、データの読み出し時には、第1のレジスタ11および第2のレジスタ12にそれぞれ格納されたベースアドレスおよびオフセットに基づいて、書き込み時と同様に、アドレス加算器14からメモリ16に[12:3]のアドレスが供給される。そして、メモリ16から、所定の読み出しサイズ、たとえばワード単位であれば32ビット、ダブルワード単位であれば64ビットのデータがメモリ読み出しデータ18として読み出される。
【0008】ところで、従来の情報処理装置では、データの書き込みまたは読み出し時に、メモリ16に書き込まれるデータのサイズまたはメモリ16から読み出されるデータのサイズに応じてアドレスが整列していない場合、ハードウエアにおいてデータの読み出しまたは書き込みをおこなうことができない。そのため、例外を検出して処理が中断される。あるいは、処理の中断が起こらないように、ソフトウエアにおいてデータサイズに応じてアドレスを整列させる必要がある。
【0009】ここで、指定されたデータのサイズに応じてアドレスが整列している場合とは、図7に示すように、[2:0]のアドレス下位ビットにおいて、指定サイズがバイトの場合にはいずれのビットの値も問わない。また、指定サイズがハーフワードの場合には[0]のビットの値のみゼロでなければならない。また、指定サイズがワードの場合には[1]と[0]のビットの値はゼロでなければならない。また、指定サイズがダブルワードの場合にはいずれのビットの値もゼロでなければならない。したがって、指定されたデータのサイズに応じてアドレスが整列していない場合とは、図7に示す条件を満たさない場合のことをいう。
【0010】たとえば、図8に示すように、読み出しまたは書き込みの対象となるデータのアドレスが32’h00000015で、指定されたデータサイズが8バイトの場合、アドレスの[2]のビットの値は1であり、[1]のビットの値はゼロであり、[0]のビットの値は1である。これは、データサイズが8バイトの場合の、図7に示す条件を満たさない。したがって、図8に示す例は、8バイトのデータサイズに対してアドレスが整列していない場合の例である。この場合、32’h00000015を始点とする8バイトは、このメモリに設定された8バイト境界にまたがってしまう。
【0011】なお、図8の例では、8バイト境界は32’h00000007と32’h00000008との境界、32’h0000000Fと32’h00000010との境界、32’h00000017と32’h00000018との境界などである。
【0012】
【発明が解決しようとする課題】一般に読み出しまたは書き込みのアドレスはソフトウエアの実行時にしかわからない。そのため、従来の情報処理装置は、上述したように読み出しまたは書き込みの対象となるデータのアドレスが整列していない場合、最小単位である1バイトサイズのデータの読み出しまたは書き込みを、データサイズが8バイトの場合には8回おこなう構成であったため、データの読み出しまたは書き込みに要する処理時間が長くなるという問題点があった。
【0013】本発明は、上記問題点に鑑みてなされたものであって、データの読み出しまたは書き込み時に指定されたデータのサイズに応じてアドレスが整列していない場合でも、1回のメモリアクセスでデータの読み出しまたは書き込みをおこなうことができる情報処理装置および情報処理方法を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するため、本発明にかかる情報処理装置はつぎのような構成となっている。図1に示すように、N個のメモリ領域141〜144からなり、かつM×Nビット(MおよびNは自然数)の書き込み幅を有するメモリに対して、第1のレジスタ(レジスタ1)121および第2のレジスタ(レジスタ2)122の格納値に基づいて、第1のアドレス加算器(加算器1)124によりデータの書き込み先のアドレスを生成するとともに、第2のアドレス加算器(加算器2)134により、その生成された書き込み先のアドレスにさらにNを加算したアドレスを生成する。
【0015】そして、第1〜第(N−1)のメモリ領域141〜143の前に置かれた第1〜第(N−1)のセレクタ151〜153により、第1のアドレス加算器124により生成されたアドレスと第2のアドレス加算器134により生成されたアドレスのうちのいずれか一方を選択して、それぞれのメモリ領域141〜143に供給する。また、第Nのメモリ領域144には、第1のアドレス加算器124により生成されたアドレスを供給する。書き込み制御回路125は、第3のレジスタ(レジスタ3)123に格納されたデータサイズと、第1のアドレス加算器124により生成されたアドレスとに基づいて、書き込み制御信号を生成し、各メモリ領域141〜144に供給する。
【0016】この発明によれば、データの書き込みサイズがM×Nビット境界にまたがる場合でも、書き込み先のアドレスとデータの書き込みサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを書き込むことが可能となる。
【0017】また、上記目的を達成するため、本発明にかかる情報処理装置はつぎのような構成となっている。図2に示すように、N個のメモリ領域141〜144からなり、かつM×Nビット(MおよびNは自然数)の読み出し幅を有するメモリに対して、第1および第2のレジスタ121,122の格納値に基づいて、第1のアドレス加算器124により読み出しデータの格納先のアドレスを生成するとともに、第2のアドレス加算器134により、その生成された格納先のアドレスにさらにNを加算したアドレスを生成する。
【0018】そして、第1〜第(N−1)のメモリ領域141〜143の前に置かれた第1〜第(N−1)のセレクタ151〜153により、第1のアドレス加算器124により生成されたアドレスと第2のアドレス加算器134により生成されたアドレスのうちのいずれか一方を選択して、それぞれのメモリ領域141〜143に供給する。また、第Nのメモリ領域144には、第1のアドレス加算器124により生成されたアドレスを供給する。
【0019】この発明によれば、データの読み出しサイズがM×Nビット境界にまたがる場合でも、読み出しデータの格納先のアドレスとデータの読み出しサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを読み出すことが可能となる。
【0020】
【発明の実施の形態】以下に、本発明の実施の形態について図面を参照しつつ詳細に説明する。特に限定しないが、説明の便宜上、読み出しまたは書き込みのサイズが最大で64ビット幅であり、かつ最小で8ビット幅である、容量8Kバイトのダイレクトマップ方式のキャッシュメモリを例にして説明する。また、このキャッシュメモリは8ビット幅の8個のメモリ領域で構成されており、たとえば図8に示すメモリ空間を有しているとする。また、アドレス空間は32ビットとし、読み出しおよび書き込みのバス幅を8バイトとする。
【0021】図3は、本発明の実施の形態にかかる情報処理装置におけるデータの読み出しまたは書き込み書き込みに関する構成を示すブロック図である。図3に示すように、この情報処理装置は、3個のレジスタ21,22,23、2個のアドレス加算器24,34、書き込み制御回路25、8個のメモリ領域41〜47,48および7個のセレクタ51〜57を備えている。なお、図3では、5個のメモリ領域および5個のセレクタが省略されている。
【0022】読み出しデータの格納場所を示すアドレス、および書き込みデータの書き込み先を示すアドレスは、第1のレジスタ(レジスタ1)21と第2のレジスタ(レジスタ2)22に格納された値に基づいて求められる。たとえば第1のレジスタ21は、読み出しデータの格納場所を示すアドレスのベースアドレス、または書き込みデータの書き込み先を示すアドレスのベースアドレスを格納する。また、たとえば第2のレジスタ22は、ベースアドレスからのオフセットを格納する。第3のレジスタ(レジスタ3)23は、書き込みデータのサイズを格納する。
【0023】第1のアドレス加算器(加算器1)24は、第1のレジスタ21の格納値と第2のレジスタ22の格納値との加算をおこない、読み出しデータの格納場所を示すアドレス、または書き込みデータの書き込み先を示すアドレスを生成する。第1のアドレス加算器24により生成された[12:0]の13ビットのアドレスのうち、[2:0]の下位3ビットの値は書き込み制御回路25および各セレクタ51〜57に供給され、そのつぎに下位となる[5:3]の3ビットの値は各セレクタ51〜57に供給される。また、第1のアドレス加算器24により生成されたアドレスのうち、[12:3]の10ビットの値は第8のメモリ領域48に供給される。
【0024】第2のアドレス加算器34は、第1のレジスタ21の格納値と第2のレジスタ22の格納値との加算をおこない、さらにその値に8を加算する。つまり、第1のアドレス加算器24で生成されたアドレスに対して8を加算したアドレスが生成される。第2のアドレス加算器34により生成されたアドレスのうち、[5:3]のビットの値のみが各セレクタ51〜57に供給される。
【0025】各セレクタ51〜57は、第1のアドレス加算器24から供給された[5:3]のビットの値、および第2のアドレス加算器34から供給された[5:3]のビットの値のうちのいずれか一方を選択して出力する。その際、各セレクタ51〜57は、第1のアドレス加算器24から供給された[2:0]のビットの値に基づいて選択をおこなう。各セレクタ51〜57から出力された[5:3]のビットの値は、第1のアドレス加算器24により生成されたアドレスのうちの[12:6]の上位7ビットの値と結合され、[12:3]の10ビットのアドレスとして第1〜第7の各メモリ領域41〜47に供給される。
【0026】なお、アドレス空間は32ビットであるとしたが、第1〜第8の各メモリ領域41〜48はキャッシュメモリを構成しているため、[31:13]のアドレスの上位ビットは必ずしも必要ではなく、[12:3]の10ビットで十分である。
【0027】書き込み制御回路25は、第3のレジスタ23から供給された書き込みデータのサイズと、第1のアドレス加算器24から供給された[2:0]のビットの値とに基づいて、第1〜第8の各メモリ領域41〜48に対する[7:0]の書き込み制御信号を生成する。[7:0]を構成する[0]〜[7]の各ビットの書き込み制御信号は対応する各メモリ領域41〜48に供給される。各メモリ領域41〜48では、データの書き込み時には、書き込み制御回路25から供給された書き込み制御信号に基づいて、上述した[12:3]のアドレスに[63:0]のメモリ書き込みデータ27が書き込まれる。一方、データの読み出し時には、上述した[12:3]のアドレスからあらかじめ設定されたサイズ、たとえば64ビットのデータがメモリ読み出しデータ28として読み出される。
【0028】つぎに、第1のアドレス加算器24から出力される[2:0]のビットの値と、メモリアクセスサイズ(指定サイズ)と、第1〜第7のセレクタ51〜57の出力と、書き込み制御回路25から出力される[7:0]の書き込み制御信号の値との関係について説明する。
【0029】図4は、この関係をまとめた図表である。アクセスサイズは、バイト(8ビット)、ハーフワード(16ビット)、ワード(32ビット)およびダブルワード(64ビット)とする。また、図4において、「セレクタ1出力」〜「セレクタ7出力」の欄は第1〜第7のセレクタ51〜57が、第1のアドレス加算器24から供給された[5:3]と第2のアドレス加算器34から供給された[5:3]のいずれを選択したかを表しており、第1のアドレス加算器24の出力を選択すれば「1」、第2のアドレス加算器34の出力を選択すれば「2」である。また、「書き込み制御回路[7:0]出力」の欄において「1」のビットに対応するメモリ領域にデータが書き込まれる。
【0030】第1のアドレス加算器24から出力される[2:0]の各ビットの値がすべてゼロの場合、すべてのセレクタ51〜57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[7]のビットのみ1となり、[6]〜[0]の各ビットの値はゼロとなる。したがって、たとえば図8の例でいえば、32’h00000000、32’h00000008、32’h00000010、32’h00000018など(以下、32’h00000000等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。あるいは、32’h00000000等のアドレスで始まる連続した8バイトの番地に対応するデータがメモリ読み出しデータ28として読み出される。そのうち、実際にプロセッサでの演算等に供されるのは、32’h00000000等のアドレスで始まる1バイト分のデータである。
【0031】アクセスサイズがハーフワードの場合には書き込み制御信号は[7]と[6]のビットのみ1となり、[5]〜[0]の各ビットの値はゼロとなる。したがって、たとえば図8の例でいえば、32’h00000000等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0032】データの読み出し時には、32’h00000000等のアドレスで始まる連続した8バイトの番地に対応するデータがメモリ読み出しデータ28として読み出され、そのうち、実際にプロセッサでの演算に供されるのは、32’h00000000等のアドレスで始まる連続した2バイト分のデータである。
【0033】アクセスサイズがワードの場合には書き込み制御信号は[7]〜[4]の各ビットの値が1となり、[3]〜[0]の各ビットの値はゼロとなる。したがって、たとえば図8の例でいえば、32’h00000000等のアドレスで始まる連続した4バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0034】データの読み出し時には、32’h00000000等のアドレスで始まる連続した8バイトの番地に対応するデータがメモリ読み出しデータ28として読み出され、そのうち、実際にプロセッサでの演算に供されるのは、32’h00000000等のアドレスで始まる連続した4バイト分のデータである。
【0035】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000000等のアドレスで始まる連続した8バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0036】データの読み出し時には、32’h00000000等のアドレスで始まる連続した8バイトの番地に対応するデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0037】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[0]のビットのみが1で、他のビットがゼロの場合、第1のセレクタ51のみが第2のアドレス加算器34から供給された[5:3]の値を選択し、第2のセレクタ〜第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[6]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000001、32’h00000009、32’h00000011、32’h00000019など(以下、32’h00000001等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0038】データの読み出し時には、32’h00000001等のアドレスで始まる連続した7バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等の1バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000001等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0039】アクセスサイズがハーフワードの場合には書き込み制御信号は[6]と[5]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000001等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0040】データの読み出し時には、32’h00000001等のアドレスで始まる連続した7バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等の1バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000001等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0041】アクセスサイズがワードの場合には書き込み制御信号は[6]〜[3]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000001等のアドレスで始まる連続した4バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0042】データの読み出し時には、32’h00000001等のアドレスで始まる連続した7バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等の1バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000001等のアドレスで始まる4バイト分のデータがプロセッサでの演算に供される。
【0043】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000001等のアドレスで始まる連続した7バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等の1バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0044】データの読み出し時には、32’h00000001等のアドレスで始まる連続した7バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等の1バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0045】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[1]のビットのみが1で、他のビットがゼロの場合、第1のセレクタ51および第2のセレクタが第2のアドレス加算器34から供給された[5:3]の値を選択し、第3〜第6のセレクタおよび第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[5]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000002、32’h0000000A、32’h00000012、32’h0000001Aなど(以下、32’h00000002等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0046】データの読み出し時には、32’h00000002等のアドレスで始まる連続した6バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000002等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0047】アクセスサイズがハーフワードの場合には書き込み制御信号は[5]と[4]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000002等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0048】データの読み出し時には、32’h00000002等のアドレスで始まる連続した6バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000002等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0049】アクセスサイズがワードの場合には書き込み制御信号は[5]〜[2]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000002等のアドレスで始まる連続した4バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0050】データの読み出し時には、32’h00000002等のアドレスで始まる連続した6バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000002等のアドレスで始まる4バイト分のデータがプロセッサでの演算に供される。
【0051】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000002等のアドレスで始まる連続した6バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0052】データの読み出し時には、32’h00000002等のアドレスで始まる連続した6バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0053】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[1]および[0]のビットが1で、他のビットがゼロの場合、第1のセレクタ51、第2のセレクタおよび第3のセレクタが第2のアドレス加算器34から供給された[5:3]の値を選択し、第4〜第6のセレクタおよび第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[4]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000003、32’h0000000B、32’h00000013、32’h0000001Bなど(以下、32’h00000003等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0054】データの読み出し時には、32’h00000003等のアドレスで始まる連続した5バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000003等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0055】アクセスサイズがハーフワードの場合には書き込み制御信号は[4]と[3]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000003等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0056】データの読み出し時には、32’h00000003等のアドレスで始まる連続した5バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000003等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0057】アクセスサイズがワードの場合には書き込み制御信号は[4]〜[1]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000003等のアドレスで始まる連続した4バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0058】データの読み出し時には、32’h00000003等のアドレスで始まる連続した5バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000003等のアドレスで始まる4バイト分のデータがプロセッサでの演算に供される。
【0059】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000003等のアドレスで始まる連続した5バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0060】データの読み出し時には、32’h00000003等のアドレスで始まる連続した5バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0061】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[2]のビットのみが1で、他のビットがゼロの場合、第1のセレクタ51および第2〜第4のセレクタが第2のアドレス加算器34から供給された[5:3]の値を選択し、第5のセレクタ、第6のセレクタおよび第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[3]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000004、32’h0000000C、32’h00000014、32’h0000001Cなど(以下、32’h00000004等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0062】データの読み出し時には、32’h00000004等のアドレスで始まる連続した4バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した4バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000004等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0063】アクセスサイズがハーフワードの場合には書き込み制御信号は[3]と[2]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000004等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0064】データの読み出し時には、32’h00000004等のアドレスで始まる連続した4バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した4バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000004等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0065】アクセスサイズがワードの場合には書き込み制御信号は[3]〜[0]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000004等のアドレスで始まる連続した4バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0066】データの読み出し時には、32’h00000004等のアドレスで始まる連続した4バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した4バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000004等のアドレスで始まる4バイト分のデータがプロセッサでの演算に供される。
【0067】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000004等のアドレスで始まる連続した4バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した4バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0068】データの読み出し時には、32’h00000004等のアドレスで始まる連続した4バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した4バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0069】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[2]および[0]のビットが1で、[1]のビットがゼロの場合、第1のセレクタ51および第2〜第5のセレクタが第2のアドレス加算器34から供給された[5:3]の値を選択し、第6のセレクタおよび第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[2]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000005、32’h0000000D、32’h00000015、32’h0000001Dなど(以下、32’h00000005等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0070】データの読み出し時には、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した5バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000005等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0071】アクセスサイズがハーフワードの場合には書き込み制御信号は[2]と[1]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000005等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0072】データの読み出し時には、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した5バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000005等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0073】アクセスサイズがワードの場合には書き込み制御信号は[7]および[2]〜[0]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる1バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0074】データの読み出し時には、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した5バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000005等のアドレスで始まる連続した3バイト分と、つぎの32’h00000000等で始まる1バイト分のデータがプロセッサでの演算に供される。
【0075】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した5バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0076】データの読み出し時には、32’h00000005等のアドレスで始まる連続した3バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した5バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。図8に示す例では、32’h00000015〜32’h00000017の連続した3バイトの番地と、そのつぎのベースアドレスである32’h00000018〜32’h0000001Cの連続した5バイトの番地に対応する8バイトである。
【0077】第1のアドレス加算器24から出力される[2:0]の3ビットのうち[2]および[1]のビットが1で、[0]のビットがゼロの場合、第1のセレクタ51および第2〜第6のセレクタが第2のアドレス加算器34から供給された[5:3]の値を選択し、第7のセレクタ57は第1のアドレス加算器24から供給された[5:3]の値を選択する。そして、アクセスサイズがバイトの場合には書き込み制御信号は[1]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000006、32’h0000000E、32’h00000016、32’h0000001Eなど(以下、32’h00000006等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0078】データの読み出し時には、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した6バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000006等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0079】アクセスサイズがハーフワードの場合には書き込み制御信号は[1]と[0]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000006等のアドレスで始まる連続した2バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0080】データの読み出し時には、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した6バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000006等のアドレスで始まる2バイト分のデータがプロセッサでの演算に供される。
【0081】アクセスサイズがワードの場合には書き込み制御信号は[7]、[6]、[1]および[0]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した2バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0082】データの読み出し時には、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した6バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000006等のアドレスで始まる連続した2バイト分と、つぎの32’h00000000等で始まる2バイト分のデータがプロセッサでの演算に供される。
【0083】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した6バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0084】データの読み出し時には、32’h00000006等のアドレスで始まる連続した2バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した6バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0085】第1のアドレス加算器24から出力される[2:0]の各ビットが1の場合、すべてのセレクタ51〜57が第2のアドレス加算器34から供給された[5:3]の値を選択する。アクセスサイズがバイトの場合には書き込み制御信号は[0]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000007、32’h0000000F、32’h00000017、32’h0000001Fなど(以下、32’h00000007等とする)のアドレスで始まる1バイトの番地に1バイトのメモリ書き込みデータ27が書き込まれる。
【0086】データの読み出し時には、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した7バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000007等のアドレスで始まる1バイト分のデータがプロセッサでの演算に供される。
【0087】アクセスサイズがハーフワードの場合には書き込み制御信号は[7]と[0]のビットのみ1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる1バイトの番地に2バイトのメモリ書き込みデータ27が書き込まれる。
【0088】データの読み出し時には、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した7バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000007等のアドレスで始まる1バイト分と、つぎの32’h00000000等で始まる1バイト分のデータがプロセッサでの演算に供される。
【0089】アクセスサイズがワードの場合には書き込み制御信号は[7]〜[5]および[0]の各ビットが1となり、他のビットはゼロとなる。したがって、たとえば図8の例でいえば、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した3バイトの番地に4バイトのメモリ書き込みデータ27が書き込まれる。
【0090】データの読み出し時には、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した7バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出され、そのうち、32’h00000007等のアドレスで始まる1バイト分と、つぎの32’h00000000等で始まる3バイト分のデータがプロセッサでの演算に供される。
【0091】アクセスサイズがダブルワードの場合には書き込み制御信号は[7]〜[0]のすべてのビットの値が1となる。したがって、たとえば図8の例でいえば、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した7バイトの番地に8バイトのメモリ書き込みデータ27が書き込まれる。
【0092】データの読み出し時には、32’h00000007等のアドレスで始まる1バイトの番地と、このメモリに設定された8バイト境界を挟んでつぎのベースアドレスで決まる32’h00000000等で始まる連続した7バイトの番地に対応する8バイト分のデータがメモリ読み出しデータ28として読み出されてプロセッサでの演算に供される。
【0093】上述した実施の形態によれば、書き込みデータが8バイト境界にまたがる場合でも、書き込み先のアドレスとデータの書き込みサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを書き込むことが可能となる。
【0094】また、上述した実施の形態によれば、メモリから読み出されるデータのサイズが8バイト境界にまたがる場合でも、読み出しデータの格納先のアドレスとデータの読み出しサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを読み出すことが可能となる。したがって、データの読み出しまたは書き込み時に指定されたデータのサイズに応じてアドレスが整列していない場合でも、1回のメモリアクセスでデータの読み出しまたは書き込みをおこなうことができる。
【0095】以上において本発明は、上述した構成のキャッシュメモリに対するデータの読み出しまたは書き込みに限らず、RAMやROMなどのメモリに対するデータの読み出しまたは書き込み時のアドレスの選択にも適用することができる。また、ダイレクトマップ方式のキャッシュメモリだけでなく、セットアソシアティブ方式のキャッシュメモリに対しても適用することができる。
【0096】また、上述したアドレスやサイズなどに関する数値は一例であり、種々変更可能である。たとえば、上述した実施の形態では、キャッシュメモリのブロックサイズが64バイトの場合について説明したが、その他のブロックサイズであってもよく、その場合には、ブロックサイズに応じて、各セレクタで選択されるアドレスと第2のアドレス加算器の出力のビット幅を増減すればよい。
【0097】図5に、キャッシュメモリのブロックサイズが128バイトの場合の構成を示すが、第2のアドレス加算器62は、生成したアドレスのうち[6:3]のビットの値を各セレクタ71〜77に供給する。第1のアドレス加算器61も、生成したアドレスのうち[5:3]のビットの値を各セレクタ71〜77に供給する。その他の構成は、上述したブロックサイズが64バイトの場合と同様である。
【0098】
【発明の効果】本発明によれば、データの書き込みサイズがM×Nビット境界にまたがる場合でも、書き込み先のアドレスとデータの書き込みサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを書き込むことが可能となる。
【0099】また、データの読み出しサイズがM×Nビット境界にまたがる場合でも、読み出しデータの格納先のアドレスとデータの読み出しサイズに応じて、メモリに供給するアドレスを切り替えることにより、1回のメモリアクセスでもって必要なデータを読み出すことが可能となる。したがって、データの読み出しまたは書き込み時に指定されたデータのサイズに応じてアドレスが整列していない場合でも、1回のメモリアクセスでデータの読み出しまたは書き込みをおこなうことが可能な情報処理装置および情報処理方法が得られる。
【出願人】 【識別番号】000005223
【氏名又は名称】富士通株式会社
【住所又は居所】神奈川県川崎市中原区上小田中4丁目1番1号
【出願日】 平成13年12月28日(2001.12.28)
【代理人】 【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
【公開番号】 特開2003−196156(P2003−196156A)
【公開日】 平成15年7月11日(2003.7.11)
【出願番号】 特願2001−399389(P2001−399389)