(57)【要約】【課題】インクリメンタルにメモリアクセスを行った際に発生する放射ノイズを低減する。【解決手段】アドレス変換部は、８ビットで示されるアドレス値を４ビットずつに分割し、当該分割した数値を所定の変換規則に従って変換する。当該変換規則は、０から１５までの整数を定義域とし、０から１５までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から１５までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ず４未満となるような変換規則である。【選択図】図１
2013250645.tif 000002
【特許請求の範囲】
【請求項１】
２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス装置であって、
前記アドレス値をｎビットごとに所定の変換規則に従って変換するアドレス変換部と、
前記アドレス変換部による変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するアドレス転送部と
を備え、
前記変換規則は、０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則である
ことを特徴とするメモリアクセス装置。
【請求項２】
前記変換規則は、０を入力値としたときの出力値と、２のｎ乗−１を入力値としたときの出力値との間のハミング距離が１となるような変換規則である
ことを特徴とする請求項１に記載のメモリアクセス装置。
【請求項３】
前記変換規則は、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ず１となるような変換規則である
ことを特徴とする請求項２に記載のメモリアクセス装置。
【請求項４】
前記変換規則における入力値と出力値の対応付けを示す変換テーブルを記憶するテーブル記憶部を備え、
前記アドレス変換部は、前記テーブル記憶部が記憶する変換テーブルに基づいて、前記アドレス値の変換を行う
ことを特徴とする請求項１から請求項３のいずれか１項に記載のメモリアクセス装置。
【請求項５】
２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス方法であって、
０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則に従って、前記アドレス値をｎビットごとに変換するステップと、
前記変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するステップと
を有することを特徴とするメモリアクセス方法。
【請求項６】
２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス装置を、
０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則に従って、前記アドレス値をｎビットごとに変換するアドレス変換部、
前記変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するアドレス転送部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス装置、メモリアクセス方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、エンジンの運転を制御するコンピュータであるＥＣＵ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）を搭載する車両が普及している。
図４は、一般的なＥＣＵの構成を示す概略ブロック図である。
ＥＣＵは、ＣＰＵ８０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）及びメモリ９０を備える。ＣＰＵ８０とメモリ９０とは、並行する複数の信号線からなるアドレスバス及びデータバスを介して互いに接続される。
【０００３】
ＣＰＵ８０は、アプリケーション部８１、アドレス生成部８２、アドレス転送部８３、データＩ／Ｆ部８４を備える。
アプリケーション部８１は、エンジンのコントロールを行うための所定のアプリケーションを実行する。アドレス生成部８２は、アプリケーション部８１からの指示に従って、メモリアクセスのためのアドレス値を生成する。アドレス転送部８３は、アドレス生成部８２が生成したアドレス値をアドレスバスを介してメモリ９０に転送する。
データＩ／Ｆ部８４は、データバスを介してメモリ９０からデータを読み出してアプリケーション部８１に出力する。またデータＩ／Ｆ部８４は、アプリケーション部８１から取得したデータをデータバスを介してメモリ９０に記録する。
【０００４】
なお、特許文献１には、ＣＰＵによるメモリアクセスの際に、不定データの影響によりデータバスに生じるノイズを低減する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−２５９１９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、一般的にメモリアクセスのアドレス信号は、連続的なインクリメントデータとして生成される。しかしながら、インクリメンタルにメモリアクセスを行うと、アドレス信号が桁上がりをする際に、複数の出力ドライバが同時にＨからＬへスイッチするため、グランドバウンスが発生してしまうという問題がある。グランドバウンスとは、デバイスの内部回路に流れる電力が瞬間的に変化したときに、電源やピンなどの寄生容量やＧＮＤに対するインピーダンスなどにより、ＧＮＤの電圧レベルが変化することである。グランドバウンスは、その電子回路の誤動作の原因となるおそれがある。
【０００７】
本発明の目的は、インクリメンタルにメモリアクセスを行った際に発生するグランドバウンスを低減するメモリアクセス装置、メモリアクセス方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は上記の課題を解決するためになされたものであり、２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス装置であって、前記アドレス値をｎビットごとに所定の変換規則に従って変換するアドレス変換部と、前記アドレス変換部による変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するアドレス転送部とを備え、前記変換規則は、０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則であることを特徴とする。
【０００９】
また、本発明においては、前記変換規則は、０を入力値としたときの出力値と、２のｎ乗−１を入力値としたときの出力値との間のハミング距離が１となるような変換規則であることが好ましい。
【００１０】
また、本発明においては、前記変換規則は、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ず１となるような変換規則であることが好ましい。
【００１１】
また、本発明においては、前記変換規則における入力値と出力値の対応付けを示す変換テーブルを記憶するテーブル記憶部を備え、前記アドレス変換部は、前記テーブル記憶部が記憶する変換テーブルに基づいて、前記アドレス値の変換を行うことが好ましい。
【００１２】
また、本発明は、２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス方法であって、０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則に従って、前記アドレス値をｎビットごとに変換するステップと、前記変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するステップとを有することを特徴とする。
【００１３】
また、本発明は、２以上の整数であるｎの整数倍のビット数で表されるアドレス値を、複数の信号線からなるアドレスバスを介してメモリへパラレルに転送するメモリアクセス装置を、０から２のｎ乗−１までの整数を定義域とし、０から２のｎ乗−１までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則であって、当該変換規則を用いて０から２のｎ乗−１までの整数を昇順に並べた数列を順に変換したときに、隣り合う２つの数値間のハミング距離が必ずｎ未満の値である所定の閾値以下となるような変換規則に従って、前記アドレス値をｎビットごとに変換するアドレス変換部、前記変換後の数値を組み合わせてできるアドレス値を、前記アドレスバスを介して前記メモリへパラレルに転送するアドレス転送部として機能させるためのプログラムである。
【発明の効果】
【００１４】
本発明によれば、インクリメンタルにメモリアクセスを行った際にアドレスバスから出力される信号は、経時的に変化する信号の前後のハミング距離は、必ずアドレスのビット数未満となる。これにより、メモリアクセス装置は、インクリメンタルにメモリアクセスを行った際に発生するグランドバウンスを低減することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態によるＥＣＵの構成を示す概略ブロック図である。
【図２】アドレス変換回路におけるアドレスの変換規則を示す図である。
【図３】本発明の他の実施形態によるＥＣＵの構成を示す概略ブロック図である。
【図４】一般的なＥＣＵの構成を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら本発明の実施形態について詳しく説明する。
図１は、本発明の一実施形態によるＥＣＵの構成を示す概略ブロック図である。
ＥＣＵは、ＣＰＵ１０（メモリアクセス装置）とメモリ２０を備える。ＣＰＵ１０とメモリ２０とはアドレスバス及びデータバスを介して接続される。
アドレスバスは、メモリ２０に対してアドレス値を転送する際に用いられる信号線であって、アドレスを示すビット数と同じ本数の信号線からなるパラレルバスである。なお、本実施形態では、アドレス値は８ビットで表され、アドレスバスは８本の信号線で構成される。
データバスは、ＣＰＵ１０とメモリ２０との間でデータを転送する際に用いられる信号線である。
【００１７】
ＣＰＵ１０は、アプリケーション部１１、アドレス生成部１２、アドレス変換回路１３、アドレス転送部１４、データＩ／Ｆ部１５を備える。
アプリケーション部１１は、メモリアクセス以外の処理を行うＥＣＵの機能ブロックを示す。
アドレス生成部１２は、アプリケーション部１１からの指示に従って、メモリアクセスのためのアドレス値を生成する。なお、アドレス生成部１２は、インクリメンタルにアドレス値を生成する。アドレス生成部１２は、８本の信号線からなる内部バスを介してアドレス変換回路１３にアドレス値を入力する。
【００１８】
アドレス変換回路１３は、アドレス生成部１２から入力されたアドレス値を所定の変換規則に従って他のアドレス値に変換してアドレス転送部１４に出力する論理回路である。
アドレス転送部１４は、アドレス変換回路１３によって変換されたアドレス値をアドレスバスを介してメモリ２０に転送する。
【００１９】
データＩ／Ｆ部１５は、データバスを介してメモリ２０からデータを読み出してアプリケーション部１１に出力する。またデータＩ／Ｆ部１５は、アプリケーション部１１から取得したデータをデータバスを介してメモリ２０に記録する。
【００２０】
図２は、アドレス変換回路１３におけるアドレスの変換規則を示す図である。
まず、アドレス変換回路１３は、アドレス生成部１２から入力された図２（Ａ）に示すアドレス値を、４ビットずつの値に分割する。次に、アドレス変換回路１３は、分割した各々の数値を、図２（Ｂ）に示す変換規則に従って変換することで、図２（Ｃ）に示すアドレス値を得る。そして、アドレス変換回路１３は、得られたアドレス値をアドレス転送部１４に出力する。
【００２１】
本実施形態によるアドレス変換回路１３における変換規則は、図２（Ｂ）に示すとおりである。すなわち、入力値が「（０）１６＝（００００）２」である場合、出力値は「（５）１６＝（０１０１）２」である。入力値が「（１）１６＝（０００１）２」である場合、出力値は「（６）１６＝（０１１０）２」である。入力値が「（２）１６＝（００１０）２」である場合、出力値は「（３）１６＝（００１１）２」である。入力値が「（３）１６＝（００１１）２」である場合、出力値は「（０）１６＝（００００）２」である。
【００２２】
入力値が「（４）１６＝（０１００）２」である場合、出力値は「（９）１６＝（１００１）２」である。入力値が「（５）１６＝（０１０１）２」である場合、出力値は「（Ａ）１６＝（１０１０）２」である。入力値が「（６）１６＝（０１１０）２」である場合、出力値は「（Ｆ）１６＝（１１１１）２」である。入力値が「（７）１６＝（０１１１）２」である場合、出力値は「（Ｃ）１６＝（１１００）２」である。
【００２３】
入力値が「（８）１６＝（１０００）２」である場合、出力値は「（Ｄ）１６＝（１１０１）２」である。入力値が「（９）１６＝（１００１）２」である場合、出力値は「（Ｅ）１６＝（１１１０）２」である。入力値が「（Ａ）１６＝（１０１０）２」である場合、出力値は「（Ｂ）１６＝（１０１１）２」である。入力値が「（Ｂ）１６＝（１０１１）２」である場合、出力値は「（８）１６＝（１０００）２」である。
【００２４】
入力値が「（Ｃ）１６＝（１１００）２」である場合、出力値は「（１）１６＝（０００１）２」である。入力値が「（Ｄ）１６＝（１１０１）２」である場合、出力値は「（２）１６＝（００１０）２」である。入力値が「（Ｅ）１６＝（１１１０）２」である場合、出力値は「（７）１６＝（０１１１）２」である。入力値が「（Ｆ）１６＝（１１１１）２」である場合、出力値は「（４）１６＝（０１００）２」である。
【００２５】
なお、上述した値において（・）ｎは、小括弧の中の数値がｎ進法で位取りされていることを示す。
【００２６】
上述したように、アドレス変換部１７が用いる変換規則は、（０）１６から（Ｆ）１６（すなわち２４−１）までの整数を定義域とし、（０）１６から（Ｆ）１６までの整数を値域とし、入力値と出力値とが一対一に対応する変換規則である。また、当該変換規則を用いて（０）１６から（Ｆ）１６までの整数を昇順に並べた数列を順に変換した場合、変換によって得られる数列の隣り合う２つの数値間のハミング距離（動作ピン数）は、必ず２以下となる。
したがって、本実施形態のアドレス値は、変換規則に従って生成した２つの数値を組み合わせることにより生成されるため、アドレス生成部がインクリメンタルにアドレス値を生成した場合、アドレス転送部がアドレスバスに出力するアドレス値間のハミング距離は、必ず４以下となる。これに対し、図４に示すような従来のＥＣＵのＣＰＵ８０がインクリメンタルに出力するアドレス値間のハミング距離は、最大で８となる。
【００２７】
特に、本実施形態の変換規則によれば、当該変換規則によって（Ｆ）１６を変換して得られる数値（０１００）２と、（０）１６を変換して得られる数値（０１０１）２との間のハミング距離は、１である。そのため、１６進数で示されるアドレス値の繰り上がりが発生する際（例えば、（０Ｆ）１６から（１０）１６に変化する際）の、ハミング距離の変化は３または２となる。したがって、アドレス生成部がインクリメンタルにアドレス値を生成した場合、アドレス転送部がアドレスバスに出力するアドレス値間のハミング距離は、必ず３以下となる。
これにより、インクリメンタルにメモリアクセスを行った場合に発生するグランドバウンスを低減することができる。
【００２８】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【００２９】
例えば、上述した実施形態では、変換規則に従ってアドレス値を変換する論理回路であるアドレス変換回路１３を備える場合を説明したが、これに限られず、アドレス変換回路１３に代えてプログラムによって動作するアドレス変換部１７を備えてもよい。
【００３０】
図３は、本発明の他の実施形態によるＥＣＵの構成を示す概略ブロック図である。
図３に示す例では、ＣＰＵ１０は、上述した実施形態におけるアドレス変換回路１３に代えて、テーブル記憶部１６とアドレス変換部１７とを備える。
テーブル記憶部１６は、図２（Ｂ）に示すような変換規則における入力値と出力値の対応付けを示す変換テーブルを記憶する。
アドレス変換部１７は、テーブル記憶部１６が記憶する変換テーブルに基づいて、アドレス生成部１２が生成したアドレス値の変換を行う。
この場合、アドレス生成部１２とアドレス変換部１７、及びアドレス変換部１７とアドレス転送部１４は、それぞれシリアルバスで接続されても良い。
【００３１】
また、上述した実施形態では、アドレス値が８ビットで表現され、アドレス変換回路１３が当該アドレス値の４ビットごとに変換処理を行う場合を説明したが、これに限られない。例えば、アドレス変換回路１３は、アドレス値のビット数の約数であれば、２ビットごと、３ビットごと、８ビットごとなど、任意のビット（但し、２ビット以上）ごとに変換処理を行っても良い。また、アドレス値は、４ビット、６ビット、１６ビット、３２ビットなど、その他のビット数で表現されても良い。
したがって、例えばアドレス変換回路１３は、アドレス値を分割せずに８ビットの変換処理を行っても良い。
【００３２】
また、上述した実施形態の変換規則を用いて（０）１６から（Ｆ）１６までの整数を昇順に並べた数列を順に変換した場合、変換によって得られる数列の隣り合う２つの数値間のハミング距離が２以下となる場合について説明したが、これに限られない。すなわち、変換後の隣り合う２つの数値間のハミング距離が入力値のビット数未満となる変換規則であれば、ハミング距離が３以下となる変換規則を用いても良いし、ハミング距離が１となる変換規則を用いても良い。
例えば、変換規則として、ｎビットの入力値をｎビットのグレイコードに変換する変換規則を用いることで、変換によって得られる数列の隣り合う２つの数値間のハミング距離を必ず１にすることができる。グレイコードとは、交番二進符号とも言い、ｎ桁目のビット値が、入力値のｎ桁目のビット値と入力値のｎ＋１桁目のビット値の排他的論理和となる数値である。すなわち、変換規則として、入力値をｎビットのグレイコードに変換する変換規則を用いることで、アドレス転送部がアドレスバスに出力するアドレス値間のハミング距離を最小にすることができる。
【符号の説明】
【００３３】
１０…ＣＰＵ  １１…アプリケーション部  １２…アドレス生成部  １３…アドレス変換回路  １４…アドレス転送部  １５…データＩ／Ｆ部  １６…テーブル記憶部  １７…アドレス変換部  ２０…メモリ
【図１】
2013250645.tif 000003
【図２】
2013250645.tif 000004
【図３】
2013250645.tif 000005
【図４】
2013250645.tif 000006