JP2003196156A - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法

Info

Publication number
JP2003196156A
JP2003196156A JP2001399389A JP2001399389A JP2003196156A JP 2003196156 A JP2003196156 A JP 2003196156A JP 2001399389 A JP2001399389 A JP 2001399389A JP 2001399389 A JP2001399389 A JP 2001399389A JP 2003196156 A JP2003196156 A JP 2003196156A
Authority
JP
Japan
Prior art keywords
address
data
memory
write
generating
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.)
Pending
Application number
JP2001399389A
Other languages
English (en)
Inventor
Hiroshi Okano
廣 岡野
Fumihiko Hayakawa
文彦 早川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001399389A priority Critical patent/JP2003196156A/ja
Priority to EP02258549A priority patent/EP1324202A3/en
Priority to US10/318,115 priority patent/US6931508B2/en
Publication of JP2003196156A publication Critical patent/JP2003196156A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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/04Addressing variable-length words or parts of words
    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Executing Machine-Instructions (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 キャッシュメモリやメモリを有するマイクロ
プロセッサ等において、データの読み出しまたは書き込
み時に指定されたデータのサイズに応じてアドレスが整
列していない場合でも、1回のメモリアクセスでデータ
の読み出しまたは書き込みをおこなうこと。 【解決手段】 データの書き込み先または読み出しデー
タの格納先を示す第1のアドレスを第1のアドレス加算
器24により生成する。第1のアドレスに8を加算した
第2のアドレスを第2のアドレス加算器34により生成
する。第1のアドレスおよび第2のアドレスのいずれか
一方を、第1〜第7のセレクタ51〜57により適宜選
択して第1〜第7のメモリ領域41〜47に供給する。
第8のメモリ領域48には第1のアドレスを供給する。

Description

【発明の詳細な説明】
【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’h
00000015で、指定されたデータサイズが8バイ
トの場合、アドレスの[2]のビットの値は1であり、
[1]のビットの値はゼロであり、[0]のビットの値
は1である。これは、データサイズが8バイトの場合
の、図7に示す条件を満たさない。したがって、図8に
示す例は、8バイトのデータサイズに対してアドレスが
整列していない場合の例である。この場合、32’h0
0000015を始点とする8バイトは、このメモリに
設定された8バイト境界にまたがってしまう。
【0011】なお、図8の例では、8バイト境界は3
2’h00000007と32’h00000008と
の境界、32’h0000000Fと32’h0000
0010との境界、32’h00000017と32’
h00000018との境界などである。
【0012】
【発明が解決しようとする課題】一般に読み出しまたは
書き込みのアドレスはソフトウエアの実行時にしかわか
らない。そのため、従来の情報処理装置は、上述したよ
うに読み出しまたは書き込みの対象となるデータのアド
レスが整列していない場合、最小単位である1バイトサ
イズのデータの読み出しまたは書き込みを、データサイ
ズが8バイトの場合には8回おこなう構成であったた
め、データの読み出しまたは書き込みに要する処理時間
が長くなるという問題点があった。
【0013】本発明は、上記問題点に鑑みてなされたも
のであって、データの読み出しまたは書き込み時に指定
されたデータのサイズに応じてアドレスが整列していな
い場合でも、1回のメモリアクセスでデータの読み出し
または書き込みをおこなうことができる情報処理装置お
よび情報処理方法を提供することを目的とする。
【0014】
【課題を解決するための手段】上記目的を達成するた
め、本発明にかかる情報処理装置はつぎのような構成と
なっている。図1に示すように、N個のメモリ領域14
1〜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のアドレス加算器1
24により生成されたアドレスと第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のアドレス加算器1
24により生成されたアドレスと第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,2
2,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]の1
0ビットのアドレスとして第1〜第7の各メモリ領域4
1〜47に供給される。
【0026】なお、アドレス空間は32ビットであると
したが、第1〜第8の各メモリ領域41〜48はキャッ
シュメモリを構成しているため、[31:13]のアド
レスの上位ビットは必ずしも必要ではなく、[12:
3]の10ビットで十分である。
【0027】書き込み制御回路25は、第3のレジスタ
23から供給された書き込みデータのサイズと、第1の
アドレス加算器24から供給された[2:0]のビット
の値とに基づいて、第1〜第8の各メモリ領域41〜4
8に対する[7:0]の書き込み制御信号を生成する。
[7:0]を構成する[0]〜[7]の各ビットの書き
込み制御信号は対応する各メモリ領域41〜48に供給
される。各メモリ領域41〜48では、データの書き込
み時には、書き込み制御回路25から供給された書き込
み制御信号に基づいて、上述した[12:3]のアドレ
スに[63:0]のメモリ書き込みデータ27が書き込
まれる。一方、データの読み出し時には、上述した[1
2:3]のアドレスからあらかじめ設定されたサイズ、
たとえば64ビットのデータがメモリ読み出しデータ2
8として読み出される。
【0028】つぎに、第1のアドレス加算器24から出
力される[2:0]のビットの値と、メモリアクセスサ
イズ(指定サイズ)と、第1〜第7のセレクタ51〜5
7の出力と、書き込み制御回路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’h000000
08、32’h00000010、32’h00000
018など(以下、32’h00000000等とす
る)のアドレスで始まる1バイトの番地に1バイトのメ
モリ書き込みデータ27が書き込まれる。あるいは、3
2’h00000000等のアドレスで始まる連続した
8バイトの番地に対応するデータがメモリ読み出しデー
タ28として読み出される。そのうち、実際にプロセッ
サでの演算等に供されるのは、32’h0000000
0等のアドレスで始まる1バイト分のデータである。
【0031】アクセスサイズがハーフワードの場合には
書き込み制御信号は[7]と[6]のビットのみ1とな
り、[5]〜[0]の各ビットの値はゼロとなる。した
がって、たとえば図8の例でいえば、32’h0000
0000等のアドレスで始まる連続した2バイトの番地
に2バイトのメモリ書き込みデータ27が書き込まれ
る。
【0032】データの読み出し時には、32’h000
00000等のアドレスで始まる連続した8バイトの番
地に対応するデータがメモリ読み出しデータ28として
読み出され、そのうち、実際にプロセッサでの演算に供
されるのは、32’h00000000等のアドレスで
始まる連続した2バイト分のデータである。
【0033】アクセスサイズがワードの場合には書き込
み制御信号は[7]〜[4]の各ビットの値が1とな
り、[3]〜[0]の各ビットの値はゼロとなる。した
がって、たとえば図8の例でいえば、32’h0000
0000等のアドレスで始まる連続した4バイトの番地
に4バイトのメモリ書き込みデータ27が書き込まれ
る。
【0034】データの読み出し時には、32’h000
00000等のアドレスで始まる連続した8バイトの番
地に対応するデータがメモリ読み出しデータ28として
読み出され、そのうち、実際にプロセッサでの演算に供
されるのは、32’h00000000等のアドレスで
始まる連続した4バイト分のデータである。
【0035】アクセスサイズがダブルワードの場合には
書き込み制御信号は[7]〜[0]のすべてのビットの
値が1となる。したがって、たとえば図8の例でいえ
ば、32’h00000000等のアドレスで始まる連
続した8バイトの番地に8バイトのメモリ書き込みデー
タ27が書き込まれる。
【0036】データの読み出し時には、32’h000
00000等のアドレスで始まる連続した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’h00
000009、32’h00000011、32’h0
0000019など(以下、32’h00000001
等とする)のアドレスで始まる1バイトの番地に1バイ
トのメモリ書き込みデータ27が書き込まれる。
【0038】データの読み出し時には、32’h000
00001等のアドレスで始まる連続した7バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等の1バイトの番地に対応する8バイト分のデータがメ
モリ読み出しデータ28として読み出され、そのうち、
32’h00000001等のアドレスで始まる1バイ
ト分のデータがプロセッサでの演算に供される。
【0039】アクセスサイズがハーフワードの場合には
書き込み制御信号は[6]と[5]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000001等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0040】データの読み出し時には、32’h000
00001等のアドレスで始まる連続した7バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等の1バイトの番地に対応する8バイト分のデータがメ
モリ読み出しデータ28として読み出され、そのうち、
32’h00000001等のアドレスで始まる2バイ
ト分のデータがプロセッサでの演算に供される。
【0041】アクセスサイズがワードの場合には書き込
み制御信号は[6]〜[3]の各ビットが1となり、他
のビットはゼロとなる。したがって、たとえば図8の例
でいえば、32’h00000001等のアドレスで始
まる連続した4バイトの番地に4バイトのメモリ書き込
みデータ27が書き込まれる。
【0042】データの読み出し時には、32’h000
00001等のアドレスで始まる連続した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’h000
00001等のアドレスで始まる連続した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’h
00000002、32’h0000000A、32’
h00000012、32’h0000001Aなど
(以下、32’h00000002等とする)のアドレ
スで始まる1バイトの番地に1バイトのメモリ書き込み
データ27が書き込まれる。
【0046】データの読み出し時には、32’h000
00002等のアドレスで始まる連続した6バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した2バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000002等のアドレス
で始まる1バイト分のデータがプロセッサでの演算に供
される。
【0047】アクセスサイズがハーフワードの場合には
書き込み制御信号は[5]と[4]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000002等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0048】データの読み出し時には、32’h000
00002等のアドレスで始まる連続した6バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した2バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000002等のアドレス
で始まる2バイト分のデータがプロセッサでの演算に供
される。
【0049】アクセスサイズがワードの場合には書き込
み制御信号は[5]〜[2]の各ビットが1となり、他
のビットはゼロとなる。したがって、たとえば図8の例
でいえば、32’h00000002等のアドレスで始
まる連続した4バイトの番地に4バイトのメモリ書き込
みデータ27が書き込まれる。
【0050】データの読み出し時には、32’h000
00002等のアドレスで始まる連続した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’h000
00002等のアドレスで始まる連続した6バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した2バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れてプロセッサでの演算に供される。
【0053】第1のアドレス加算器24から出力される
[2:0]の3ビットのうち[1]および[0]のビッ
トが1で、他のビットがゼロの場合、第1のセレクタ5
1、第2のセレクタおよび第3のセレクタが第2のアド
レス加算器34から供給された[5:3]の値を選択
し、第4〜第6のセレクタおよび第7のセレクタ57は
第1のアドレス加算器24から供給された[5:3]の
値を選択する。そして、アクセスサイズがバイトの場合
には書き込み制御信号は[4]のビットのみ1となり、
他のビットはゼロとなる。したがって、たとえば図8の
例でいえば、32’h00000003、32’h00
00000B、32’h00000013、32’h0
000001Bなど(以下、32’h00000003
等とする)のアドレスで始まる1バイトの番地に1バイ
トのメモリ書き込みデータ27が書き込まれる。
【0054】データの読み出し時には、32’h000
00003等のアドレスで始まる連続した5バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した3バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000003等のアドレス
で始まる1バイト分のデータがプロセッサでの演算に供
される。
【0055】アクセスサイズがハーフワードの場合には
書き込み制御信号は[4]と[3]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000003等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0056】データの読み出し時には、32’h000
00003等のアドレスで始まる連続した5バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した3バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000003等のアドレス
で始まる2バイト分のデータがプロセッサでの演算に供
される。
【0057】アクセスサイズがワードの場合には書き込
み制御信号は[4]〜[1]の各ビットが1となり、他
のビットはゼロとなる。したがって、たとえば図8の例
でいえば、32’h00000003等のアドレスで始
まる連続した4バイトの番地に4バイトのメモリ書き込
みデータ27が書き込まれる。
【0058】データの読み出し時には、32’h000
00003等のアドレスで始まる連続した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’h000
00003等のアドレスで始まる連続した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’h00000
00C、32’h00000014、32’h0000
001Cなど(以下、32’h00000004等とす
る)のアドレスで始まる1バイトの番地に1バイトのメ
モリ書き込みデータ27が書き込まれる。
【0062】データの読み出し時には、32’h000
00004等のアドレスで始まる連続した4バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した4バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000004等のアドレス
で始まる1バイト分のデータがプロセッサでの演算に供
される。
【0063】アクセスサイズがハーフワードの場合には
書き込み制御信号は[3]と[2]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000004等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0064】データの読み出し時には、32’h000
00004等のアドレスで始まる連続した4バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した4バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000004等のアドレス
で始まる2バイト分のデータがプロセッサでの演算に供
される。
【0065】アクセスサイズがワードの場合には書き込
み制御信号は[3]〜[0]の各ビットが1となり、他
のビットはゼロとなる。したがって、たとえば図8の例
でいえば、32’h00000004等のアドレスで始
まる連続した4バイトの番地に4バイトのメモリ書き込
みデータ27が書き込まれる。
【0066】データの読み出し時には、32’h000
00004等のアドレスで始まる連続した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’h000
00004等のアドレスで始まる連続した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の例でいえば、3
2’h00000005、32’h0000000D、
32’h00000015、32’h0000001D
など(以下、32’h00000005等とする)のア
ドレスで始まる1バイトの番地に1バイトのメモリ書き
込みデータ27が書き込まれる。
【0070】データの読み出し時には、32’h000
00005等のアドレスで始まる連続した3バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した5バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000005等のアドレス
で始まる1バイト分のデータがプロセッサでの演算に供
される。
【0071】アクセスサイズがハーフワードの場合には
書き込み制御信号は[2]と[1]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000005等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0072】データの読み出し時には、32’h000
00005等のアドレスで始まる連続した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’h000
00005等のアドレスで始まる連続した3バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した5バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000005等のアドレス
で始まる連続した3バイト分と、つぎの32’h000
00000等で始まる1バイト分のデータがプロセッサ
での演算に供される。
【0075】アクセスサイズがダブルワードの場合には
書き込み制御信号は[7]〜[0]のすべてのビットの
値が1となる。したがって、たとえば図8の例でいえ
ば、32’h00000005等のアドレスで始まる連
続した3バイトの番地と、このメモリに設定された8バ
イト境界を挟んでつぎのベースアドレスで決まる32’
h00000000等で始まる連続した5バイトの番地
に8バイトのメモリ書き込みデータ27が書き込まれ
る。
【0076】データの読み出し時には、32’h000
00005等のアドレスで始まる連続した3バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した5バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れてプロセッサでの演算に供される。図8に示す例で
は、32’h00000015〜32’h000000
17の連続した3バイトの番地と、そのつぎのベースア
ドレスである32’h00000018〜32’h00
00001Cの連続した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’h000000
06、32’h0000000E、32’h00000
016、32’h0000001Eなど(以下、32’
h00000006等とする)のアドレスで始まる1バ
イトの番地に1バイトのメモリ書き込みデータ27が書
き込まれる。
【0078】データの読み出し時には、32’h000
00006等のアドレスで始まる連続した2バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した6バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000006等のアドレス
で始まる1バイト分のデータがプロセッサでの演算に供
される。
【0079】アクセスサイズがハーフワードの場合には
書き込み制御信号は[1]と[0]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000006等のアドレ
スで始まる連続した2バイトの番地に2バイトのメモリ
書き込みデータ27が書き込まれる。
【0080】データの読み出し時には、32’h000
00006等のアドレスで始まる連続した2バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した6バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000006等のアドレス
で始まる2バイト分のデータがプロセッサでの演算に供
される。
【0081】アクセスサイズがワードの場合には書き込
み制御信号は[7]、[6]、[1]および[0]の各
ビットが1となり、他のビットはゼロとなる。したがっ
て、たとえば図8の例でいえば、32’h000000
06等のアドレスで始まる連続した2バイトの番地と、
このメモリに設定された8バイト境界を挟んでつぎのベ
ースアドレスで決まる32’h00000000等で始
まる連続した2バイトの番地に4バイトのメモリ書き込
みデータ27が書き込まれる。
【0082】データの読み出し時には、32’h000
00006等のアドレスで始まる連続した2バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した6バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れ、そのうち、32’h00000006等のアドレス
で始まる連続した2バイト分と、つぎの32’h000
00000等で始まる2バイト分のデータがプロセッサ
での演算に供される。
【0083】アクセスサイズがダブルワードの場合には
書き込み制御信号は[7]〜[0]のすべてのビットの
値が1となる。したがって、たとえば図8の例でいえ
ば、32’h00000006等のアドレスで始まる連
続した2バイトの番地と、このメモリに設定された8バ
イト境界を挟んでつぎのベースアドレスで決まる32’
h00000000等で始まる連続した6バイトの番地
に8バイトのメモリ書き込みデータ27が書き込まれ
る。
【0084】データの読み出し時には、32’h000
00006等のアドレスで始まる連続した2バイトの番
地と、このメモリに設定された8バイト境界を挟んでつ
ぎのベースアドレスで決まる32’h00000000
等で始まる連続した6バイトの番地に対応する8バイト
分のデータがメモリ読み出しデータ28として読み出さ
れてプロセッサでの演算に供される。
【0085】第1のアドレス加算器24から出力される
[2:0]の各ビットが1の場合、すべてのセレクタ5
1〜57が第2のアドレス加算器34から供給された
[5:3]の値を選択する。アクセスサイズがバイトの
場合には書き込み制御信号は[0]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000007、32’h
0000000F、32’h00000017、32’
h0000001Fなど(以下、32’h000000
07等とする)のアドレスで始まる1バイトの番地に1
バイトのメモリ書き込みデータ27が書き込まれる。
【0086】データの読み出し時には、32’h000
00007等のアドレスで始まる1バイトの番地と、こ
のメモリに設定された8バイト境界を挟んでつぎのベー
スアドレスで決まる32’h00000000等で始ま
る連続した7バイトの番地に対応する8バイト分のデー
タがメモリ読み出しデータ28として読み出され、その
うち、32’h00000007等のアドレスで始まる
1バイト分のデータがプロセッサでの演算に供される。
【0087】アクセスサイズがハーフワードの場合には
書き込み制御信号は[7]と[0]のビットのみ1とな
り、他のビットはゼロとなる。したがって、たとえば図
8の例でいえば、32’h00000007等のアドレ
スで始まる1バイトの番地と、このメモリに設定された
8バイト境界を挟んでつぎのベースアドレスで決まる3
2’h00000000等で始まる1バイトの番地に2
バイトのメモリ書き込みデータ27が書き込まれる。
【0088】データの読み出し時には、32’h000
00007等のアドレスで始まる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’h000
00007等のアドレスで始まる1バイトの番地と、こ
のメモリに設定された8バイト境界を挟んでつぎのベー
スアドレスで決まる32’h00000000等で始ま
る連続した7バイトの番地に対応する8バイト分のデー
タがメモリ読み出しデータ28として読み出され、その
うち、32’h00000007等のアドレスで始まる
1バイト分と、つぎの32’h00000000等で始
まる3バイト分のデータがプロセッサでの演算に供され
る。
【0091】アクセスサイズがダブルワードの場合には
書き込み制御信号は[7]〜[0]のすべてのビットの
値が1となる。したがって、たとえば図8の例でいえ
ば、32’h00000007等のアドレスで始まる1
バイトの番地と、このメモリに設定された8バイト境界
を挟んでつぎのベースアドレスで決まる32’h000
00000等で始まる連続した7バイトの番地に8バイ
トのメモリ書き込みデータ27が書き込まれる。
【0092】データの読み出し時には、32’h000
00007等のアドレスで始まる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回のメモリアクセスでデータ
の読み出しまたは書き込みをおこなうことが可能な情報
処理装置および情報処理方法が得られる。
【図面の簡単な説明】
【図1】本発明にかかる情報処理装置におけるデータの
書き込みに関する構成の原理を示すブロック図である。
【図2】本発明にかかる情報処理装置におけるデータの
読み出しに関する構成の原理を示すブロック図である。
【図3】本発明の実施の形態にかかる情報処理装置にお
けるデータの読み出しまたは書き込みに関する構成を示
すブロック図である。
【図4】本発明の実施の形態にかかる情報処理装置にお
ける各種信号の真理値をまとめて示す図表である。
【図5】本発明の実施の形態にかかる情報処理装置にお
けるデータの読み出しまたは書き込みに関する構成の他
の例を示すブロック図である。
【図6】従来の情報処理装置におけるデータの読み出し
または書き込みに関する構成を示すブロック図である。
【図7】従来の情報処理装置において指定されたデータ
サイズに応じてアドレスが整列している場合のアドレス
下位ビットの値とサイズの関係を示す図表である。
【図8】指定されたデータサイズに応じてアドレスが整
列していない場合について説明するための模式図であ
る。
【符号の説明】
21,121 第1のレジスタ 22,122 第2のレジスタ 23,123 第3のレジスタ 24,61,124 第1のアドレス加算器 25,125 書き込み制御回路 34,62,134 第2のアドレス加算器 41〜48,141〜144 メモリ領域 51〜57,71〜77,151〜153 セレクタ

Claims (10)

    【特許請求の範囲】
  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. 【請求項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. 【請求項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. 【請求項4】 前記第1のアドレス加算器は、前記第1
    のレジスタの格納データと前記第2のレジスタの格納デ
    ータとを加算して前記第1のアドレスを生成することを
    特徴とする請求項1〜3のいずれか一つに記載の情報処
    理装置。
  5. 【請求項5】 前記第2のアドレス加算器は、前記第1
    のレジスタの格納データと前記第2のレジスタの格納デ
    ータとを加算し、加算結果にさらにNを加算して前記第
    2のアドレスを生成することを特徴とする請求項1〜3
    のいずれか一つに記載の情報処理装置。
  6. 【請求項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. 【請求項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. 【請求項8】 前記メモリはキャッシュメモリであるこ
    とを特徴とする請求項1〜7のいずれか一つに記載の情
    報処理装置。
  9. 【請求項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. 【請求項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のアドレスに基づいてデータを読み出す
    読み出し工程と、 を含んだことを特徴とする情報処理方法。
JP2001399389A 2001-12-28 2001-12-28 情報処理装置および情報処理方法 Pending JP2003196156A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2001399389A JP2003196156A (ja) 2001-12-28 2001-12-28 情報処理装置および情報処理方法
EP02258549A EP1324202A3 (en) 2001-12-28 2002-12-11 Device and method for information processing
US10/318,115 US6931508B2 (en) 2001-12-28 2002-12-13 Device and method for information processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001399389A JP2003196156A (ja) 2001-12-28 2001-12-28 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JP2003196156A true JP2003196156A (ja) 2003-07-11

Family

ID=19189466

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001399389A Pending JP2003196156A (ja) 2001-12-28 2001-12-28 情報処理装置および情報処理方法

Country Status (3)

Country Link
US (1) US6931508B2 (ja)
EP (1) EP1324202A3 (ja)
JP (1) JP2003196156A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116431315A (zh) * 2023-06-07 2023-07-14 成都登临科技有限公司 批处理任务的处理方法、装置、电子设备及存储介质

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1569124A1 (en) * 2004-02-26 2005-08-31 Matsushita Electric Industrial Co., Ltd. Memory interface and data processing
US20060230198A1 (en) * 2005-03-30 2006-10-12 Kabushiki Kaisha Toshiba Data processing circuit, data processing method and image forming apparatus
FR2884002B1 (fr) * 2005-04-01 2008-03-07 St Microelectronics Sa Procede d'adressage d'un symbole dans une memoire, et dispositif de traitement de symboles
US7737985B2 (en) * 2006-11-09 2010-06-15 Qualcomm Incorporated Pixel cache for 3D graphics circuitry

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01175649A (ja) * 1987-12-29 1989-07-12 Oki Electric Ind Co Ltd マイクロプロセッサ
JP2722523B2 (ja) * 1988-09-21 1998-03-04 日本電気株式会社 命令先取り装置
JPH0553920A (ja) * 1991-08-26 1993-03-05 Toshiba Corp 構造化アドレス生成装置
JPH06332792A (ja) * 1993-05-21 1994-12-02 Mitsubishi Electric Corp データ処理装置及びそのデータ読み出し制御回路,データ書き込み制御回路
US5813045A (en) * 1996-07-24 1998-09-22 Advanced Micro Devices, Inc. Conditional early data address generation mechanism for a microprocessor
US6502177B1 (en) * 1999-12-02 2002-12-31 Intel Corporation Single cycle linear address calculation for relative branch addressing
JP2002236616A (ja) * 2001-02-13 2002-08-23 Fujitsu Ltd キャッシュメモリシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116431315A (zh) * 2023-06-07 2023-07-14 成都登临科技有限公司 批处理任务的处理方法、装置、电子设备及存储介质
CN116431315B (zh) * 2023-06-07 2023-08-29 成都登临科技有限公司 批处理任务的处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20030126402A1 (en) 2003-07-03
EP1324202A3 (en) 2004-01-02
US6931508B2 (en) 2005-08-16
EP1324202A2 (en) 2003-07-02

Similar Documents

Publication Publication Date Title
US7000099B2 (en) Large table vectorized lookup by selecting entries of vectors resulting from permute operations on sub-tables
JP2836321B2 (ja) データ処理装置
US5721874A (en) Configurable cache with variable, dynamically addressable line sizes
EP0044924B1 (en) Physical address developing unit and method
JPH04217051A (ja) マイクロプロセッサ
US5459847A (en) Program counter mechanism having selector for selecting up-to-date instruction prefetch address based upon carry signal of adder which adds instruction size and LSB portion of address register
CA2266259A1 (en) Variable length register device
JP2008077590A (ja) データ転送装置
JP2002342262A (ja) ダイレクトメモリアクセス制御装置およびダイレクトメモリアクセス制御方法
JP2003196156A (ja) 情報処理装置および情報処理方法
JP2551167B2 (ja) マイクロコンピュータ
US5860076A (en) 48-bit wide memory architecture addressing scheme reconfigurable for 8-bit, 16-bit and 32-bit data accesses
JPH0289132A (ja) 論理アドレス生成方式
JP2005222519A (ja) メモリに記憶されたデータワード内のビット値へのアクセス
JPH1040165A (ja) データ読み出し方法およびリードバッファ
JP2005505848A (ja) 拡張アドレス指定可能空間を有したマイクロプロセッサ
JP2954988B2 (ja) 情報処理装置
JP3224050B2 (ja) 可変長符号復号器、プロセッサ、および可変長符号復号テーブル
JP2576589B2 (ja) 仮想記憶アクセス制御方式
JPH0651751A (ja) 画像表示装置
JPH06139069A (ja) マイクロプロセッサの内部レジスタ
JPS592938B2 (ja) メモリ ワ−クスペ−ス アンドレツシングホウホウオヨビソウチ
JPH01169645A (ja) メモリ装置
JPH11249958A (ja) メモリ制御システム
JPS6371736A (ja) Romのパリテイビツト領域割当方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071207

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080108