JP2006018536A - メモリ装置、メモリ制御方法並びに情報処理装置 - Google Patents
メモリ装置、メモリ制御方法並びに情報処理装置 Download PDFInfo
- Publication number
- JP2006018536A JP2006018536A JP2004195013A JP2004195013A JP2006018536A JP 2006018536 A JP2006018536 A JP 2006018536A JP 2004195013 A JP2004195013 A JP 2004195013A JP 2004195013 A JP2004195013 A JP 2004195013A JP 2006018536 A JP2006018536 A JP 2006018536A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- data
- address
- bits
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
【課題】 データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータが取り出せる等、データアクセスの自由度が増すメモリ装置・制御方法及び情報処理装置を提供すること。
【解決手段】所定のデータビット幅を持つ複数個のメモリと、個々の該メモリに対しアドレスを与えるメモリと同数のアドレス変換部と、個々の該メモリからのデータの並び替えと入出力の制御を行うデータ制御部と、外部からのアドレス信号とアクセス制御信号を元に、該アドレス変換部へアドレス変換指示と、該メモリへのライトリード制御と、該データ制御部に対しメモリデータの並び替えと入出力制御指示とを行うアクセス制御部とを具備して構成される。
【選択図】図1
【解決手段】所定のデータビット幅を持つ複数個のメモリと、個々の該メモリに対しアドレスを与えるメモリと同数のアドレス変換部と、個々の該メモリからのデータの並び替えと入出力の制御を行うデータ制御部と、外部からのアドレス信号とアクセス制御信号を元に、該アドレス変換部へアドレス変換指示と、該メモリへのライトリード制御と、該データ制御部に対しメモリデータの並び替えと入出力制御指示とを行うアクセス制御部とを具備して構成される。
【選択図】図1
Description
本発明は、例えばメモリ装置、メモリ制御方法並びに情報処理装置に係り、特にデータ幅に対してアライメントの合わないアドレスのデータをアクセスするメモリ装置、メモリ制御方法並びに情報処理装置に関する。
従来、必要データ幅に対してアライメントの合わないアドレスのデータをアクセスする(ワード境界をまたぐミスアライメント状態にある)場合、2回のアクセスが必要であった。
たとえば、(後述する)図3がこのような場合の一例を示す図である。
同図において、(図示しない)マイクロプロセッサは、まずアドレス「N+0」(Nは4の倍数)に相当するアドレスを(図示しない)アドレスバスA[31:2]に出力する。(図示しない)バイトイネーブル信号BE[3:0]は“HLLL”となる。すなわち、たとえば8ビットごとの4つの(図示しない)メモリのうちの1つのメモリがアクセスされる。この1つのメモリからデータを読み込んだ後、(図示しない)マイクロプロセッサはアドレス「N+4」に相当するアドレスを「N+0」アドレスバスA[31:2]に出力する。次に、マイクロプロセッサはバイトイネーブル信号BE[3:0]に“LLLH”を出力し、先にアクセスしなかった他の3つのメモリからデータを読み込む。
このようにして、ワード境界をまたぐミスアライメント状態にあるデータのアクセスが行われる。ここでは、アドレス「N+3」に対するワードアクセスを例としたが、アドレス「N+1」あるいはアドレス「N+2」に対するワードアクセス、アドレス「N+2」,アドレス「N+3」に対する3バイトアクセス、アドレス「N+3」に対するハーフワード(2バイト)アクセスの場合でも、上述したアクセスと同様に2回のバスサイクルが必要となる。
特開平08−030505号公報
特開平09−044397号公報
このように、ミスアライメント状態のデータをアクセスする場合は、そうでない場合に比べてバスサイクルの回数が増え、アクセス効率が悪かった。
これを回避するためには、ミスアライメント状態のデータのアクセスが生じないようにコンパイラあるいはアセンブラで命令やデータを配置することが考えられる。しかしながら、ミスアライメント状態でのアクセスがないように命令やデータを配置すると、メモリの利用効率が悪くなる。
一方、ミスアライメント状態のアクセスを意識せずに命令やデータを配置すると、上述したようにバスサイクルの回数が増え、システムの性能が低下することになる。
上記特許文献1は、アドレス変換して不連続データを連続にアクセスするという目的をもつものであるが、ビット単位でアドレス変換制御する点やデータの並び替えについては何ら開示も示唆もしていない。
上記特許文献2は、アドレス変換の機能をCPU及びメモリに依存しているが、回路として実現する技術については何ら開示も示唆もしていない。また上記特許文献2では、データの再配列(並び替え)の必要性につきその第30項で述べているのみであってかかるデータの並び替えを実現するための具体的な構成については何ら開示も示唆もしていない。さらに同文献ではアドレスを2回出力するタイミングについても従来の技術と同様以上のものは開示も示唆もしていない。
本発明は上記の従来技術の問題を解決するためになされたもので、データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータのとりだし・書きこみを可能とするメモリ装置、メモリ制御方法並びに情報処理装置を提供することを目的とする。
かかる課題を解決するため、請求項1に係るメモリ装置(メモリ回路)は、所定のデータビット幅を持つ複数個のメモリと、個々の該メモリに対しアドレスを与えメモリと同数のアドレス変換部と、個々の該メモリから送出されるデータの並び替えを行うデータ制御部と、外部からのアドレス信号に基づいて、該アドレス変換部に対しアドレスを供給し、該メモリに対しデータのライトリードの制御をし、該データ制御部に対し該メモリから送出されるデータの並び替えの指示を行うアクセス制御部とを具備する。
また、請求項5に係るメモリ制御方法は、所定のデータビット幅を持つ外部信号を受信し、該受信した信号に基づき変換したアドレスを個々のメモリに対して供給し、該メモリの個々に格納されるデータを該受信した信号に基づき並び替え、該変換されたアドレス及び並び替えられたデータを用いてデータ・アクセスすることを特徴とする。
さらに、請求項9に係る情報処理装置は、少なくともCPUと、該CPUによって制御されるメモリとを有する情報処理装置において、該メモリは、所定のデータビット幅を持つ複数個のメモリ部と、個々の該メモリに対しアドレスを与えメモリと同数のアドレス変換部と、個々の該メモリから送出されるデータの並び替えと入出力の制御を行うデータ制御部と、外部からのアドレス信号に基づいて、該アドレス変換部に対しアドレスを供給し、該メモリに対しデータのライトリードの制御をし、該データ制御部に対し該メモリから送出されるデータの並び替えの指示を行うアクセス制御部とを具備することを特徴とする。
データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータを取り出し、書きこむことを可能とする。
以下、図面を参照して本発明の最良の実施形態を説明する。
図1は、本発明の一実施形態に係るメモリ装置の回路構成を示す図である。図2は、このメモリ装置の更に詳細な回路構成を示す図である。なお、両図とも、本願発明の目的の達成のために説明に必要な範囲を模式的に示し、それ以外の箇所の記載及び説明は省略する。
図1に示すように、本メモリ装置10は、メモリ101、102、…100+nと、該各メモリに対応して設けられるアドレス変換部201、202、…200+nと、このアドレス変換部に対して(後述する)所定の規定に基づいて制御指示を与えるアクセス制御部300と、アクセス制御部からの制御信号に基づき(後述する)所定の規定に沿ってデータ変換を行うデータ変換部400とを備えて構成される。nは整数であり、特に限定はなく、本発明はメモリの個数(n)に制限を受けることなく適用可能である。また、メモリのビット数も限定を受けることはない。
図1は、本発明の一実施形態に係るメモリ装置の回路構成を示す図である。図2は、このメモリ装置の更に詳細な回路構成を示す図である。なお、両図とも、本願発明の目的の達成のために説明に必要な範囲を模式的に示し、それ以外の箇所の記載及び説明は省略する。
図1に示すように、本メモリ装置10は、メモリ101、102、…100+nと、該各メモリに対応して設けられるアドレス変換部201、202、…200+nと、このアドレス変換部に対して(後述する)所定の規定に基づいて制御指示を与えるアクセス制御部300と、アクセス制御部からの制御信号に基づき(後述する)所定の規定に沿ってデータ変換を行うデータ変換部400とを備えて構成される。nは整数であり、特に限定はなく、本発明はメモリの個数(n)に制限を受けることなく適用可能である。また、メモリのビット数も限定を受けることはない。
図2は、8bitデータ幅のメモリを4個使用したリトル・エンディアン構成の場合のメモリ構成を示すブロック図である。つまり図1においてnを3とし、メモリのデータ・ビット幅を8とした場合、即ちシステムのデータ・ビット幅を32とした場合であって、リトル・エンディアン構成の場合を示す。ここで、リトル・エンディアンとは、たとえばデータをメモリ上に格納する際、若しくはプロセッサがレジスタとメモリ間でデータ転送を行う際のワード内のバイト順序についての規約であり、たとえば、32ビットのデータをメモリ上の4n(nは0以上の整数)番地に格納する場合、データの最下位バイトから、4n番地、4n+1番地、4n+2番地、4n+3番地の順に格納する方式をいう。因みに、32ビットのデータをバイト(8ビット)毎に4分割して、データの最上位バイトから、4n番地、4n+1番地、4n+2番地、4n+3番地の順に格納する方式はビッグエンディアンという。
メモリ101、102、…100+nは、特定のデータbit幅を持ったメモリである。
各アドレス変換部201、202、…200+nは、かかるメモリに対して特定のアドレスを与えるが、特定のアドレスに対しては、アクセス制御部300から指示を受けてメモリに与えるアドレスを変換する。
アクセス制御部300は、外部からのアドレス信号とアクセス制御信号とをうけて、アドレス変換部201、202、…200+nに対し(後述する)所定の規則に従ったアドレス変換に係るアドレスを指示し、各メモリに101、102、…100+nに対しリード・ライトの制御指示を行い、データ変換部400に対し(後述する)所定の規則に従ったデータ並び替えに係る指示を行う。つまり取り出したデータを並び替えて出力するにあたり、アクセスのパターンを認識して、どういうアドレスに変換するのか、もしくは、読み出したデータをどのようなデータに並び替えるのか、を制御する。
データ制御部400は、アクセス制御部300から指示を受けて、メモリ101、102、…100+nから送出されるデータの並びの変換(データ並び替え)を行う。
Aは外部アドレス信号、d[31:0]は外部データ信号(ここでは32ビットの場合で説明するが、ビット数は32に制限されるものではない)、a3〜a0はそれぞれメモリ3(101)〜メモリ0(104)へ入力されるアドレス、を各々示す。
md3[7:0]、md2[7:0]、md1[7:0]及びmd0[7:0]は、それぞれ、メモリ3(101)、メモリ2(102)、メモリ1(103)及びメモリ0(104)へ出力される8ビットのデータを示す。
次に、本発明特有の構成であるアクセス制御部300のアドレス変換及びデータ変換部400のデータ並び替え機能・動作について説明する。
図3は、この説明をするためのメモリの状態を示した概念図の一であって、本願特有の構成によるアドレス変換/データ並び替えを行う前のメモリ状態を示す。同図において、dはデータ、nは8ビット単位でみたときのアドレスを示し、Nは外部アドレス信号で与えられる値で4の倍数を示す。また、同図では、N+3番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合の様子を示す。また、mdは図2の対応するメモリの出力するデータを示すものであり、たとえばmd3はメモリ3(101)が出力するデータを示す。
同図に示すシチュエーションにおいては、データのミスアライメントがおきているため、従来の情報処理装置によれば、D[31:0]をアクセスするには、N番地とN+4番地を1回ずつ、計2回のアクセスが必要である。
同図に示すシチュエーションにおいては、データのミスアライメントがおきているため、従来の情報処理装置によれば、D[31:0]をアクセスするには、N番地とN+4番地を1回ずつ、計2回のアクセスが必要である。
これに対し、本願では、図4に示すアドレス変換・データ並び替えの規則に基づき、アドレス変換及びデータ並び替えを回路的に実現する。
同図に示すように、外部からのアドレス信号AがN+0の場合(即ちアライメントがあっている場合)、N+1の場合、N+2の場合、N+3の場合のそれぞれの場合に、メモリに対して出力するアドレスをどの数値とするか、データをどう並び替えるかがテーブル形式で規定されている。本テーブルの内容は、個々のビットに対して演算を加えてメモリに渡すべく回路的に実装される。
同図に示すように、外部からのアドレス信号AがN+0の場合(即ちアライメントがあっている場合)、N+1の場合、N+2の場合、N+3の場合のそれぞれの場合に、メモリに対して出力するアドレスをどの数値とするか、データをどう並び替えるかがテーブル形式で規定されている。本テーブルの内容は、個々のビットに対して演算を加えてメモリに渡すべく回路的に実装される。
同図を用いて、アクセス制御部300がアドレス変換しデータ変換部400のデータ並び替えする詳細な機能・動作について説明する。図5は、アドレス変換及びデータ並び替え動作を説明するためのフローチャートである。
まず、入ってきたアドレス信号Aがアクセス制御部300及び各アドレス変換部201乃至204に入信する(ステップ501)。
次にアドレス信号Aを受信したアクセス制御部300は、アドレス信号Aを判断して、図4の規則に基づき、アドレス信号Aにあったアドレス変換及びデータ並び替えの規定を特定する(ステップ502)。具体的にはアドレス信号Aの下2ビットが00の場合には(4で割り切れるから)図4のN+0の類型に、下2ビットが01の場合には(4で割ると1余るから)図4のN+1の類型に、下2ビットが10の場合には(4で割ると2余るから)図4のN+2の類型に、下2ビットが11の場合には(4で割ると3余るから)図4のN+3の類型に、それぞれ該当する、と判断する(ステップ502)。たとえば図3の例では、外部からのアドレス信号AがN+3番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を(A>>2)+0とすることとなる。
ここで、「(A>>2)+0」とは、右に2ビット分シフトしたものに0を加える、という意味である。図6はこの様子を説明するためのビット構成図である。同図においいては、外部から入信した32ビットであるアドレス信号Aはメモリm0〜メモリm3にアクセスする際には、全体番地(Aの32ビット上の番地)の0バイト目はメモリm0(8ビット)の中の0バイト目、全体番地1バイト目はメモリm1(8ビット)の中の0バイト目、全体番地2バイト目はメモリm2(8ビット)の中の0バイト目、全体番地3バイト目はメモリm3(8ビット)の中の0バイト目に対応する。同じように、全体番地4バイト目はメモリm0の1バイト目、全体番地5バイト目はメモリm1の1バイト目、全体番地6バイト目はメモリm2の1バイト目、全体番地7バイト目はメモリm3の1バイト目、にそれぞれ対応する。このとき、たとえば全体アドレス6番地はビット表示では「110」であるが、これメモリm2に関しては1ビット目であり、ビット表示では「1」となる。「110」のうちの下2ビットを落としたものが「1」なわけで、このようなロジックは全体番地アドレスの全ビットについて成立することがわかる。つまり、メモリ全体のアドレスを個々のメモリに割り当てるときの個々のメモリ内の(相対的)アドレスは、メモリ全体のアドレスに係るビットを右に2ビットシフトする、換言すれば、右の2ビットをカットする、或いは4で割る、ということで得られる。上記のうち「(A>>2)」の部分はこのことを表している。
よって、先の図3のN+3番地に外部信号Aが該当する場合の、同規則の意味するところの一は、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図3では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+3番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図3では、Nにアクセスしたときのメモリm2のn+1番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図3では、Nにアクセスしたときのメモリm1のn+1番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図3では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。なお上記で「1加える」とは個々のメモリ内での(個々のメモリにとって)相対番地を1加えて考える、という意味である。
このようにアドレス変換すると結局、図3の個々のメモリ内で点線で示した箇所をアクセスするような指示をアクセス制御部300が発し、アクセス制御部300から指示を受けたアドレス変換部101乃至104がメモリに与えるアドレスを変換する結果、個々のメモリには図3の個々のメモリ内で点線で示した箇所のデータを1回のアクセスのみで読み出し、或いは当該箇所に1回のアクセスのみでデータを書き込みできることになる。
以上が図5におけるステップ502に係る詳細である。
同図に戻り、次に、このような規則から得られた具体的なアドレス変換に係る指示を、アクセス制御部300が個々のアドレス変換部101乃至104に対して発する(ステップ503)。具体的にはたとえば、先の図3の例の場合には、アドレス変換部202に対しては、外部信号Aに係るビット列のうち下2ビットを削除したものに1を加えた値を(変換後)アドレスとするように指示が与えられる。一方、アドレス変換部201に対しては、外部信号Aに係るビット列のうち下2ビットを削除した値を(変換後)アドレスとするように指示が与えられる。なお、このような指令を実現する方法としては、本願に係る図面を満たす回路を構成・設計することで既存技術的に実現可能である。また、上記の説明で明らかなように、外部信号Aに係るビット列のうち下2ビットはどんな場合にも変換後についてはカットされる(使わない)ので、「下2ビットを削除する」という指示をわざわざくださず、単にかかる下2ビットを無視する、用いない、ということで上記は実現(回路化)することができる。この場合には、アクセス制御部300は、「1加える」アドレスアクセスを要するアドレス変換部にのみ「(アクセスアドレスとして)1加える」指令を発するようにしてもよい(下2ビットを削除した値そのものを使う場合には0を加える指令を特に必要としない)。
同図に戻り、次に、このような規則から得られた具体的なアドレス変換に係る指示を、アクセス制御部300が個々のアドレス変換部101乃至104に対して発する(ステップ503)。具体的にはたとえば、先の図3の例の場合には、アドレス変換部202に対しては、外部信号Aに係るビット列のうち下2ビットを削除したものに1を加えた値を(変換後)アドレスとするように指示が与えられる。一方、アドレス変換部201に対しては、外部信号Aに係るビット列のうち下2ビットを削除した値を(変換後)アドレスとするように指示が与えられる。なお、このような指令を実現する方法としては、本願に係る図面を満たす回路を構成・設計することで既存技術的に実現可能である。また、上記の説明で明らかなように、外部信号Aに係るビット列のうち下2ビットはどんな場合にも変換後についてはカットされる(使わない)ので、「下2ビットを削除する」という指示をわざわざくださず、単にかかる下2ビットを無視する、用いない、ということで上記は実現(回路化)することができる。この場合には、アクセス制御部300は、「1加える」アドレスアクセスを要するアドレス変換部にのみ「(アクセスアドレスとして)1加える」指令を発するようにしてもよい(下2ビットを削除した値そのものを使う場合には0を加える指令を特に必要としない)。
次に、個々のメモリ101乃至104からデータ制御部400に対してデータが伝送される(ステップ504)。ここでは便宜的にステップ504としたが、データ制御部400へのデータ伝送は必ずしもステップ503の後になければならないわけではなく、その前にあってもよい。さらに上記ステップ502及び503、及び(以下に説明する)ステップ505及び506は、事象順序としてはこの通りであるが、実際には略同時になされ得る。
次に、アクセス制御部300が、図4の規則に基づき、アドレス信号Aにあったアドレス変換及びデータ並び替えの規定を特定する(ステップ505)。具体的にはアドレス信号Aの下2ビットが00の場合には(4で割り切れるから)図4のN+0の類型に、下2ビットが01の場合には(4で割ると1余るから)図4のN+1の類型に、下2ビットが10の場合には(4で割ると2余るから)図4のN+2の類型に、下2ビットが11の場合には(4で割ると3余るから)図4のN+3の類型に、それぞれ該当する、と判断する(ステップ505)。ステップ505はここでは行うこととしているが、上記ステップ502で判断しているのと同等の判断なので、同じことをせず、たとえば類型を示す値を(特に図示しない)内部メモリに退避しておいて、ステップ505の際に代替的に、退避されていた値を用いてステップ506以下に進むのでもよい(以下の説明において同様)。
たとえば図3の例では、外部からのアドレス信号AがN+3番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md3[7:0]」とすることとなる。
図7はこのデータ並び替えに係る詳細な説明を行うためのビット構成図である。同図に示すように、ここでは、32ビットの「ABCD」というデータがリトル・エンディアン形式でN+3番地にある、という場合を考える。
このとき、かかるデータはビット列表現としては、8ビット単位だからAについては「00001010」、Bについては「00001011」、Cについては「00001011」、Dについては「00001100」となる。リトル・エンディアン形式でN+3番地にあるから、図7のような並びとなって、このまま上記にした本願発明に係るアドレス変換のみを行っても、そのままでは、データとしては「DABC」となってしまう。そこで、所定のデータ並び替えの規定から、アクセス制御部300はデータ制御部400に対し、データ並び替えの指示を発する(ステップ506)。このデータ制御部400は、たとえば単なるセレクタとして、論理回路の組合せで実現できる。具体的には、1ビット単位のセレクト信号(4入力のうち1つを選択し出力する)回路としてセレクタの組合せにより実現可能である。
上記の例を続けて説明するならば、図4に示す規則より、N+3の類型の場合、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータ(図7の例では「D」)をd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+3番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータ(図7の例では「C」)をd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータ(図7の例では「B」)をd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータ(図7の例では「A」)をd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
このようにデータ並び替えを行うと結局、図3に示されるようなリトル・エンディアン形式でN+3番地にある「ABCD」というデータであっても、最終のアウトプット形態たる32ビットのデータに関し1回で正確に「ABCD」というデータとしてアクセスされることとなるような指示をアクセス制御部300が発し、アクセス制御部300から指示を受けたデータ変換部400がかかる指示に基づいてアクセスする結果、リトル・エンディアン形式等でアライメントの合わないデータであっても1回の動作かつ正しいデータの読み出し、或いは書き込みができることになる。
以上が図5におけるステップ506に係る詳細である。
以上が図5におけるステップ506に係る詳細である。
図8は、このように図3の状態のメモリに対して、上記のようなアクセス制御部300によりアドレス変換及びデータ変換部400によりデータ並び替えがされた後のメモリ状態を示す。つまり、アクセス制御部300が本願特有のアドレス変換及びデータ並び替え規則に基づき変換後アドレスの指定を個々のアドレス変換部101乃至104に対して行うという本願特有の構成を備える結果、たとえば上記図3の場合のミスアライメント状態にあるデータのアクセスでも、図8に示すように、1回のアクセスのみで所望のデータアクセスが実現できるという本願特有の効果を奏することになる。これによってたとえば高速のデータアクセスを回路として実現することが可能となる。
上述したものは、本願特有の構成に係るアドレス変換並びにデータ並び替えを回路的に実現する態様について主に説明した者であるが、上記の説明によって、本願発明は、そのまま、メモリ制御方法、メモリ構成方法としての発明として捉えることも可能である。
以上説明したように、上記のように構成することにより、アクセス制御部300とアドレス変換部201乃至204、データ制御部400により、図3を図8の様に、m2,m1,m0にアドレス値n+1をm3にはアドレス値nを与え、d[31:24]にmd2[7:0]、d[23:16]にmd1[7:0]、d[15:8]にmd0[7:0]、d[7:0]にmd3[7:0]、の様にデータを並び替えるように構成するので、D[31:0]へのアクセスが1回で可能になる。N+3番地を先頭に32bitデータが連続して存在していた場合でも、アドレスをN+3+4、N+3+4*2、....と指定していくことでDMA等での連続した領域のアクセスも可能となる。したがってアクセスが高速になるという効果がある。
換言すれば、本願発明によれば、データアクセスの自由度が増すという効果も奏される。この点で、たとえば上記した特許文献2によれば、たとえばその図1においてメモリ2a〜2dからD[31:0]バスに至るデータの並び替えはCPUで行っており、その図2において最初の2クロック分(つまり、A[31:2]の(4n+0)の間、BE[3:0]の「HHLL」の間、MAL[3:0]の「LLHH」の間)についてのアドレス集中力はCPUが行っており、さらにその図3において各メモリ12a乃至12d内の「NEXT」で示されるように次アドレスデータを出力する機能をメモリチップ内に持たせているのに対し、本願に係る発明ではアドレス変換及びデータ並び替えの機能を回路的に実現する方法を具体的に(図4のテーブル及びこれに則った回路接続で)実現する。
なお、上記では図4でアドレス信号AがN+3の類型である場合を詳細に説明したが、次項で本願の異なる実施形態について説明する前に、念のために、図4での上記の説明とは異なるアドレス信号Aの類型の場合について説明する。なお、その説明にあたっては、図5のフローの動きは同様であるから、このような同様の箇所について一部の記載は省略する。
(a)アドレス信号AがN+2の類型である場合
図9は、N+2番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが10であるから(4で割ると2余るから)図4のN+2の類型に該当する、と判断する(ステップ502)。たとえば図9の例では、外部からのアドレス信号AがN+2番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図9では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+2番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図9では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図9では、Nにアクセスしたときのメモリm1のn+1番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図9では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
図9は、N+2番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが10であるから(4で割ると2余るから)図4のN+2の類型に該当する、と判断する(ステップ502)。たとえば図9の例では、外部からのアドレス信号AがN+2番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図9では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+2番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図9では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図9では、Nにアクセスしたときのメモリm1のn+1番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図9では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
次にデータの並び替えについて説明する。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが10であるから(4で割ると2余るから)図4のN+2の類型に該当する、と判断する(ステップ505)。たとえば図9の例では、外部からのアドレス信号AがN+2番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+2番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
上記のようなアドレス変換及びデータ並び替えを、セレクタ等を用いた回路の論理接続を構成・設計することでハードウェアとして実現することが可能である。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが10であるから(4で割ると2余るから)図4のN+2の類型に該当する、と判断する(ステップ505)。たとえば図9の例では、外部からのアドレス信号AがN+2番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+2番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
上記のようなアドレス変換及びデータ並び替えを、セレクタ等を用いた回路の論理接続を構成・設計することでハードウェアとして実現することが可能である。
(b)アドレス信号AがN+1の類型である場合
図10は、N+1番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが01であるから(4で割ると1余るから)図4のN+1の類型に該当する、と判断する(ステップ502)。たとえば図10の例では、外部からのアドレス信号AがN+1番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図10では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+1番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図10では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図10では、Nにアクセスしたときのメモリm1のn番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図10では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
図10は、N+1番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが01であるから(4で割ると1余るから)図4のN+1の類型に該当する、と判断する(ステップ502)。たとえば図10の例では、外部からのアドレス信号AがN+1番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図10では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+1番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図10では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図10では、Nにアクセスしたときのメモリm1のn番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+1」とすることとあるから、全体番地ビットの下2ビットをカットした値に1加えた値(つまり図10では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
次にデータの並び替えについて説明する。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが01であるから(4で割ると1余るから)図4のN+1の類型に該当する、と判断する(ステップ505)。たとえば図10の例では、外部からのアドレス信号AがN+1番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+1番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
上記のようなアドレス変換及びデータ並び替えを、セレクタ等を用いた回路の論理接続を構成・設計することでハードウェアとして実現することが可能である。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが01であるから(4で割ると1余るから)図4のN+1の類型に該当する、と判断する(ステップ505)。たとえば図10の例では、外部からのアドレス信号AがN+1番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+1番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
上記のようなアドレス変換及びデータ並び替えを、セレクタ等を用いた回路の論理接続を構成・設計することでハードウェアとして実現することが可能である。
(c)アドレス信号AがNの類型である場合
図11は、N番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。この場合にはミスアライメントが起こっていない。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが00であるから(4で割ると0余るから)図4のN+0の類型に該当する、と判断する(ステップ502)。たとえば図11の例では、外部からのアドレス信号AがN+0番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図11では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+0番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm1のn番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
図11は、N番地の32ビットのデータをリトル・エンディアン構成でデータ・アクセスする場合のメモリの状態を示す概念図である。この場合にはミスアライメントが起こっていない。
まず、アドレス変換について説明する。
アドレス信号Aを受信したアクセス制御部300は、アドレス信号Aの下2ビットが00であるから(4で割ると0余るから)図4のN+0の類型に該当する、と判断する(ステップ502)。たとえば図11の例では、外部からのアドレス信号AがN+0番地の場合であるから、同規則によれば、メモリ3(101)にはアドレスとして送るa3を「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットしたままのアドレスに変換した値(つまり図11では、Nにアクセスしたときのメモリm3のn番地)を(変換後)アドレス信号a3として(図2に示すように)メモリ3(101)にアクセスすべし、ということになる。同様にして、N+0番地に外部信号Aが該当する場合の同規則の残りの意味するところは、メモリ2(102)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm2のn番地)を(変換後)アドレスたるa2としてアクセスすべし、ということになる。メモリ1(103)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm1のn番地)を(変換後)アドレスたるa1としてアクセスすべし、ということになる。メモリ0(104)にアクセスする際には、「(A>>2)+0」とすることとあるから、全体番地ビットの下2ビットをカットした値(つまり図11では、Nにアクセスしたときのメモリm0のn+1番地)を(変換後)アドレスたるa0としてアクセスすべし、ということになる。
次にデータの並び替えについて説明する。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが00であるから(4で割ると0余るから)図4のN+0の類型に該当する、と判断する(ステップ505)。たとえば図11の例では、外部からのアドレス信号AがN+0番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+0番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
アクセス制御部300が、図4の規則に基づき、アドレス信号Aの下2ビットが00であるから(4で割ると0余るから)図4のN+0の類型に該当する、と判断する(ステップ505)。たとえば図11の例では、外部からのアドレス信号AがN+0番地の場合であるから、同規則によれば、32ビット単位で考えたときの下から0〜7ビットたるd[7:0]は「md0[7:0]」とすることとあるから、メモリ0(104)のデータをd[7:0]に出す(或いはd[7:0]から読みこむ)べし、ということになる。同様にして、N+0番地に外部信号Aが該当する場合の同規則の残りの意味するところは、32ビット単位で考えたときの下から8〜15ビットたるd[15:8]は「md1[7:0]」とすることとあるから、メモリ1(103)のデータをd[15:8]に出す(或いはd[15:8]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から16〜23ビットたるd[23:16]は「md2[7:0]」とすることとあるから、メモリ2(102)のデータをd[23:16]に出す(或いはd[23:16]から読みこむ)べし、ということになる。32ビット単位で考えたときの下から24〜31ビットたるd[31:24]は「md3[7:0]」とすることとあるから、メモリ3(101)のデータをd[31:24]に出す(或いはd[31:24]から読みこむ)べし、ということになる。
上記のようなアドレス変換及びデータ並び替えを、セレクタ等を用いた回路の論理接続を構成・設計することでハードウェアとして実現することが可能である。
以上説明したように、本願の実施形態によれば、アクセス制御部300とアドレス変換部201乃至204、データ制御部400により、図3を図8の様に、m2,m1,m0にアドレス値n+1をm3にはアドレス値nを与え、d[31:24]にmd2[7:0]、d[23:16]にmd1[7:0]、d[15:8]にmd0[7:0]、d[7:0]にmd3[7:0]、の様にデータを並び替えるように構成するので、D[31:0]へのアクセスが1回で可能になる。N+3番地を先頭に32bitデータが連続して存在していた場合でも、アドレスをN+3+4、N+3+4*2、....と指定していくことでDMA等での連続した領域のアクセスも可能となる。したがってアクセスが高速になるという効果がある。
また上記の技術的思想は、リード時及びライト時のいずれに対しても適用可能であるのはいうまでもない。
次に、本願の異なる実施形態について説明する。
図12は、本願に係るメモリ構成・制御方法を情報処理装置として実現する場合の構成の一例を示すブロック図である。
同図に示すように、本情報処理装置20は、上記で説明した本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)と、全体の制御及びメモリ装置10へアクセスしデータ読み出し・書きこみを行うCPU21と、データのやり取りに用いるデータバス22と、(ネットワークを経由した)種々の装置との接続のインターフェースであるインターフェース23とを少なくとも備えて構成される。
図12は、本願に係るメモリ構成・制御方法を情報処理装置として実現する場合の構成の一例を示すブロック図である。
同図に示すように、本情報処理装置20は、上記で説明した本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)と、全体の制御及びメモリ装置10へアクセスしデータ読み出し・書きこみを行うCPU21と、データのやり取りに用いるデータバス22と、(ネットワークを経由した)種々の装置との接続のインターフェースであるインターフェース23とを少なくとも備えて構成される。
動作については、本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)については上記によるものとし、また本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)以外の部分については公知のものと同様であり、本願の本旨とするところを際立たせるために、ここでは記載を省略する。
このように本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)を構成要素として具備する情報処理装置によれば、CPUとメモリを備え情報処理装置として把握できるもの総てに本願に係る技術思想は適用することができる。つまり、マイコンを搭載している限り、炊飯ジャー、エアコン、冷蔵庫、給湯器等の家電製品、自動車、自転車、電車、航空機、船舶、ロケット等の乗り物等、あらゆる応用製品に本願に係る技術思想は適用することができる。それぞれの適用にあたっては、適用されるべき製品に特有の構成要素(公知)のものを附加するのみでよい。
図13は、たとえば本願に係るメモリ装置を適用した情報処理装置をプリンタ装置として実現する場合の構成を示すブロック図である。
即ち、同図に示すように、本プリンタ装置20Aは、上記で説明した本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)と、全体の制御及びメモリ装置10へアクセスしデータ読み出し・書きこみを行うCPU21と、データのやり取りに用いるデータバス22と、(ネットワークを経由した)ホスト30を含む種々の装置との接続のインターフェースであるインターフェース23と、CPU21との制御に基づきプリンタエンジンを制御するプリンタ制御部24と、プリンタ制御部24の制御に基づき印刷を行うためのプリンタエンジン25とを少なくとも備えて構成される。
動作については、本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)については上記によるものとし、また本願特有の構成を有するメモリ装置10及びブリッジ回路11(メモリコントローラ110を含む)以外の部分については公知のものと同様であり、本願の本旨とするところを際立たせるために、ここでは記載を省略する。
以上説明したように、本願特有の構成を有するメモリ装置を実装することにより、データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータが取り出せ、メモリアクセスの自由度が増す情報処理装置を実現することができる。
このように上記したいずれの実施形態によっても、下記を根拠としてハードウェア的にデータのアクセスの自由度が増すという本願特有の効果が奏される。
(1)従来、データ幅に対してアライメントの合わないアドレスのデータをアクセスする場合、2回のアクセスが必要であったが、本願では、データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータが取り出せる。
(2)従来、データ幅に対してアライメントの合わないアドレスが転送元のDMA開始番地であった場合、CPUによりメモリの別領域でデータの並びを再編成してから転送を開始するか、先頭及び最終データの転送をCPUで行うか、転送データ幅が小さい設定でDMA転送する、等の対策の必要があったが、本願では、データ幅に対してアライメントの合わないアドレスが転送元DMA開始番地であった場合でも、データの並び替え、CPUによる転送の介在、転送データ幅の変更、等の対策なしでDMA転送が可能になった。
(3)従来、データ幅に対してアライメントの合わないアドレスが転送先のDMA開始番地であった場合、先頭及び最終データの転送をCPUで行うか、転送データ幅が小さい設定で転送する、等の対策の必要があったが、本願では、データ幅に対してアライメントの合わないアドレスが転送先DMA開始番地であった場合でも、CPUによる転送の介在、転送データ幅の変更、等の対策なしでDMA転送が可能になった。
(4)従来、データバス幅がメモリより小さいシステムに接続する場合は、アクセスする側でデータバス切り替え等の制御が必要であったが、本願では、データバス幅がメモリより小さいシステムに接続する場合でも、クセスする側でデータバス切り替え等の制御を行わなくても、全領域アクセスができる。
(1)従来、データ幅に対してアライメントの合わないアドレスのデータをアクセスする場合、2回のアクセスが必要であったが、本願では、データ幅に対してアライメントの合わないアドレスがアクセスの対象となった場合でも、1回のアクセスで必要なデータが取り出せる。
(2)従来、データ幅に対してアライメントの合わないアドレスが転送元のDMA開始番地であった場合、CPUによりメモリの別領域でデータの並びを再編成してから転送を開始するか、先頭及び最終データの転送をCPUで行うか、転送データ幅が小さい設定でDMA転送する、等の対策の必要があったが、本願では、データ幅に対してアライメントの合わないアドレスが転送元DMA開始番地であった場合でも、データの並び替え、CPUによる転送の介在、転送データ幅の変更、等の対策なしでDMA転送が可能になった。
(3)従来、データ幅に対してアライメントの合わないアドレスが転送先のDMA開始番地であった場合、先頭及び最終データの転送をCPUで行うか、転送データ幅が小さい設定で転送する、等の対策の必要があったが、本願では、データ幅に対してアライメントの合わないアドレスが転送先DMA開始番地であった場合でも、CPUによる転送の介在、転送データ幅の変更、等の対策なしでDMA転送が可能になった。
(4)従来、データバス幅がメモリより小さいシステムに接続する場合は、アクセスする側でデータバス切り替え等の制御が必要であったが、本願では、データバス幅がメモリより小さいシステムに接続する場合でも、クセスする側でデータバス切り替え等の制御を行わなくても、全領域アクセスができる。
付記的に、上記(4)の点を補足説明する。
図14は、データバス幅がメモリより小さいシステムに接続されている場合の機器接続の具体的構成の一例を示すブロック図である。
同図に示すように、本願特有の構成に係るメモリ装置10’は、接続線40(バスでもネットワークでもよい)を介して32ビットCPU50及び8ビットCPU60と接続されている。ここで、8ビットCPUとはたとえば、キーボード・コントローラ等に現実用いられているものであり、32ビットCPUは情報処理装置に広く一般的に用いられているものである。
図14は、データバス幅がメモリより小さいシステムに接続されている場合の機器接続の具体的構成の一例を示すブロック図である。
同図に示すように、本願特有の構成に係るメモリ装置10’は、接続線40(バスでもネットワークでもよい)を介して32ビットCPU50及び8ビットCPU60と接続されている。ここで、8ビットCPUとはたとえば、キーボード・コントローラ等に現実用いられているものであり、32ビットCPUは情報処理装置に広く一般的に用いられているものである。
ここで、本願特有の構成に係るメモリ装置10’は上記したアドレス変換及びデータ並び替えの前述機能を実現する構成を備えるから、32ビットCPU50に対しても、同時に8ビットCPU60に対しても、データの授受が正しく行うことが可能である。しかもこの効果を、CPU側で2回のアクセスを行うことなく、また、(2回のアクセスを回避するための)プログラムによる処置なく、ハードウェア的に実現する。
なお、本発明は、上述した各実施形態には限定されず、本発明の技術思想の範囲内で様々な変形が可能である。
たとえば、上記のような構成をとれば、8ビット単位でなくたとえば1ビット単位のデータをある特定の場所から切り出して持ってくるというような場合にも1ビット単位でも本願の技術思想は適用可能である。具体的にはイメージデータの切りだし(ビット数は白黒の1ビットから数ビットまで、限定がない)等にも本願の考えかたを用いることが可能である。ただし、この場合にはリトル・エンディアンはない。つまり、本願は、メモリの中に貯えてあるデータの一部分をたとえば切り出してくるときに、本願に係るアクセス制御部、アドレス変換部、データ変換部を回路的に持たせることで、アライメントの合わないデータのアクセスに関して広く応用することが可能である。
また、たとえば、アドレス変換規則、データの並べ替え規則、個々のメモリのビット幅、アクセス制御信号等は上記したものに限定されることなく本願の技術思想は適用可能であり、たとえば、アドレス変換規則、データの並べ替え規則、個々のメモリのビット幅、アクセス制御信号の機能を追加することにより、様々なシステムに応用が可能である。
たとえばメモリアクセスにおけるビッグ・エンディアン、リトル・エンディアン等のビットの並び替えが可能になる。
また、たとえば外部データ幅がメモリが構成するデータ幅より小さくても、個々のメモリのビット幅単位で全空間のデータアクセスが可能となる。
さらに本願発明は、その技術思想の同一及び等価に及ぶ範囲において様々な変形、追加、置換、拡大、縮小等を許容するものである。また、本願発明を用いて生産される装置、方法、ソフトウェア、システムが、その2次的生産品に登載されて商品化された場合であっても、本願発明の価値は何ら減ずるものではない。
10…メモリ装置、20…情報処理装置、21…CPU、22…データバス、23…インターフェース、24…プリンタ制御部、25…プリンタエンジン、30…ホストコンピュータ、40…バス(或いはネットワーク)、50…32ビットCPU、60…8ビットCPU、101,102,・・100+n…メモリ(部)、201,202,・・200+n…アドレス変換部、300…アクセス制御部、400…データ制御部
Claims (12)
- 所定のデータビット幅を持つ複数個のメモリと、
個々の前記メモリに対しアドレスを与えメモリと同数のアドレス変換部と、
個々の前記メモリから送出されるデータの並び替えを行うデータ制御部と、
外部からのアドレス信号に基づいて、前記アドレス変換部に対しアドレスを供給し、前記メモリに対しデータのライトリードの制御をし、前記データ制御部に対し前記メモリから送出されるデータの並び替えの指示を行うアクセス制御部と
を具備することを特徴とするメモリ装置。 - 外部からの前記メモリ内データアクセスの際、外部からのアドレス信号とアクセス制御信号により個々のメモリ毎に個別のアドレスを与えてアクセスできることを特徴とする請求項1記載のメモリ装置。
- 外部からの前記メモリ内データアクセスの際、外部入出力データに対してメモリ入出力データの並べ替えができることを特徴とする請求項1記載のメモリ装置。
- 前記メモリ空間内データアクセスにおけるミスアライメントへの対応を行うことを特徴とする請求項1乃至3のいずれか1項記載のメモリ装置。
- 所定のデータビット幅を持つ外部信号を受信し、
前記受信した信号に基づき変換したアドレスを個々のメモリに対して供給し、
前記メモリの個々に格納されるデータを前記受信した信号に基づき並び替え、
前記変換されたアドレス及び並び替えられたデータを用いてデータ・アクセスする
ことを特徴とするメモリ制御方法。 - 外部からの前記メモリ内データアクセスの際、外部からのアドレス信号とアクセス制御信号により個々のメモリ毎に個別のアドレスを与えてアクセスできることを特徴とする請求項5記載のメモリ制御方法。
- 外部からの前記メモリ内データアクセスの際、外部入出力データに対してメモリ入出力データの並べ替えができることを特徴とする請求項5記載のメモリ制御方法。
- 前記メモリ空間内データアクセスにおけるミスアライメントへの対応を行うことを特徴とする請求項5乃至7のいずれか1項記載のメモリ制御方法。
- 少なくともCPUと、該CPUによって制御されるメモリとを有する情報処理装置において、該メモリは、
所定のデータビット幅を持つ複数個のメモリ部と、
個々の前記メモリに対しアドレスを与えメモリと同数のアドレス変換部と、
個々の前記メモリから送出されるデータの並び替えと入出力の制御を行うデータ制御部と、
外部からのアドレス信号に基づいて、前記アドレス変換部に対しアドレスを供給し、前記メモリに対しデータのライトリードの制御をし、前記データ制御部に対し前記メモリから送出されるデータの並び替えの指示を行うアクセス制御部と
を具備することを特徴とする情報処理装置。 - 外部からの前記メモリ部内データアクセスの際、外部からのアドレス信号とアクセス制御信号により個々のメモリ部毎に個別のアドレスを与えてアクセスできることを特徴とする請求項9記載の情報処理装置。
- 外部からの前記メモリ部内データアクセスの際、外部入出力データに対してメモリ部入出力データの並べ替えができることを特徴とする請求項9記載の情報処理装置。
- 前記メモリ部空間内データアクセスにおけるミスアライメントへの対応を行うことを特徴とする請求項9乃至11のいずれか1項記載の情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004195013A JP2006018536A (ja) | 2004-06-30 | 2004-06-30 | メモリ装置、メモリ制御方法並びに情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004195013A JP2006018536A (ja) | 2004-06-30 | 2004-06-30 | メモリ装置、メモリ制御方法並びに情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006018536A true JP2006018536A (ja) | 2006-01-19 |
Family
ID=35792757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004195013A Withdrawn JP2006018536A (ja) | 2004-06-30 | 2004-06-30 | メモリ装置、メモリ制御方法並びに情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006018536A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199040A (zh) * | 2020-09-18 | 2021-01-08 | 厦门星宸科技有限公司 | 存储访问方法及智能处理装置 |
CN112835842A (zh) * | 2021-03-05 | 2021-05-25 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
-
2004
- 2004-06-30 JP JP2004195013A patent/JP2006018536A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112199040A (zh) * | 2020-09-18 | 2021-01-08 | 厦门星宸科技有限公司 | 存储访问方法及智能处理装置 |
CN112199040B (zh) * | 2020-09-18 | 2022-10-14 | 星宸科技股份有限公司 | 存储访问方法及智能处理装置 |
CN112835842A (zh) * | 2021-03-05 | 2021-05-25 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
CN112835842B (zh) * | 2021-03-05 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6950910B2 (en) | Mobile wireless communication device architectures and methods therefor | |
US7975080B2 (en) | Methods and apparatus for providing bit-reversal and multicast functions utilizing DMA controller | |
JP4015986B2 (ja) | 半導体集積回路装置 | |
JP6294732B2 (ja) | データ転送制御装置及びメモリ内蔵装置 | |
JP2003223412A (ja) | 半導体集積回路 | |
JP2008263678A (ja) | サーボモータ制御装置 | |
JP2006018536A (ja) | メモリ装置、メモリ制御方法並びに情報処理装置 | |
JPH04363745A (ja) | Dmaコントローラ | |
JP4446968B2 (ja) | データ処理装置 | |
JP2009025896A (ja) | データ処理装置及びデータ処理方法 | |
JP2007148622A (ja) | インターフェース設定方法 | |
JP4647578B2 (ja) | レーダ信号処理装置 | |
JP3505551B2 (ja) | データ転送制御装置とデータ転送制御システム | |
JP4414689B2 (ja) | インターフェイス制御装置、画像形成装置、コンピュータプログラム及び記録媒体 | |
KR940010807B1 (ko) | 정보처리장치용 버스시스템 및 정보처리 버스시스템 컨트롤러용 ic디바이스 | |
US7406551B2 (en) | Bus configuration circuit | |
JP4102740B2 (ja) | 情報処理装置 | |
JP2001014270A (ja) | データ転送方法、データ転送装置及びその利用システム | |
JP2820054B2 (ja) | バスインタフェース装置 | |
JP2000076199A (ja) | デバッグ端子を有するマルチプロセッサ装置 | |
JP2004362176A (ja) | 集積回路 | |
JP2013142951A (ja) | 情報処理装置、通信方法 | |
JP2007323491A (ja) | ダイレクトメモリアクセス制御装置および制御方法 | |
JP2000047935A (ja) | 高速メモリアクセス処理装置 | |
JPH11296475A (ja) | 拡張スロット接続回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20070904 |