[go: up one dir, main page]

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

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

Info

Publication number
JP2012033032A
JP2012033032A JP2010172614A JP2010172614A JP2012033032A JP 2012033032 A JP2012033032 A JP 2012033032A JP 2010172614 A JP2010172614 A JP 2010172614A JP 2010172614 A JP2010172614 A JP 2010172614A JP 2012033032 A JP2012033032 A JP 2012033032A
Authority
JP
Japan
Prior art keywords
bit
output
input
register
circuit
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
JP2010172614A
Other languages
English (en)
Other versions
JP2012033032A5 (ja
Inventor
Eiji Iwata
英次 岩田
Ryohei Okada
良平 岡田
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.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Corp
Sony Computer Entertainment Inc
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 Sony Corp, Sony Computer Entertainment Inc filed Critical Sony Corp
Priority to JP2010172614A priority Critical patent/JP2012033032A/ja
Priority to US13/189,809 priority patent/US20120047355A1/en
Priority to CN2011102172973A priority patent/CN102347773A/zh
Publication of JP2012033032A publication Critical patent/JP2012033032A/ja
Publication of JP2012033032A5 publication Critical patent/JP2012033032A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】情報処理に必要なビット操作が多様化し、必要な処理も複雑化している。
【解決手段】情報処理装置10は入力レジスタ12に格納されたデータをビットごとに操作し、その結果を出力レジスタ14に格納する。セレクタ回路18は、入力レジスタ12からの128ビットの入力データから1ビットの出力データを選択する。アンド回路20は、対応するセレクタ回路18からのデータが有効な場合にのみ、当該データを出力レジスタ14の対応するビットに出力する。制御信号生成器16は各セレクタ回路18に、選択すべきビットの番号を示すセレクト信号を入力するとともに、各アンド回路20に、セレクタ回路18から入力されたデータが有効か無効かを示す信号を入力する。
【選択図】図1

Description

本発明は情報処理技術に関し、具体的にはデータをビット単位で操作する情報処理装置および情報処理方法に関する。
近年、オーディオデータ、ビデオデータの圧縮技術において、様々な可変長符号化手法が実用化されている。一般的に、可変長符号化処理によって得られた個々の可変長符号は、一旦、メモリやレジスタ内の固定ビット長の記憶領域に順次格納される。そして可変長符号ごとに、各記憶領域から符号部分のみが取り出せるようにビットシフトなどのビット操作を実施することによって、全可変長符号を隙間なく連結して最終的な圧縮データを生成する(例えば特許文献1参照)。
可変長符号の連結処理のみならず、ビット操作は多くの情報処理において必要とされる。一般的なマイクロプロセッサでは、主にハードウェアコスト低減のため、シフト/ローテート処理などのビット操作にバレルシフタを用いている。一方で、昨今のSIMD(Single Instruction Multiple Data)を適用したマイクロプロセッサなどにおいては、シフト/ローテート命令が多様化しており、さらにパーミュートやビットセレクトといった命令も付け加えられ、その処理は複雑化の一途をたどっている。
特開2006−13867号公報
バレルシフタなどを用いて可変長符号を連結する場合、ビット操作は可変長符号単位の処理が基本であるため、可変長符号の数だけ論理演算やシフト演算を行う必要がある。結果として元のデータのサイズが大きくなるほど連結処理に要する時間が増大し、最終的な圧縮データ生成時間に看過できない影響を及ぼす。さらに、上記のようなマイクロプロセッサで実現可能な命令をもってしても、高速フーリエ変換(FFT)アルゴリズムにおけるアドレス計算や、DES(Data Encryption Standard)アルゴリズムで必要なビット単位の操作などには脆弱であり、専用回路と比較して性能が劣る要因になっていた。
本発明はこのような課題に鑑みてなされたものであり、その目的は、様々なビット操作を汎用的かつ効率よく行うことのできる情報処理技術を提供することにある。
本発明のある態様は情報処理装置に関する。この情報処理装置は、入力レジスタに格納されたデータをビット単位で操作し出力レジスタに格納する情報処理装置であって、出力レジスタの各ビットに対応して設けられた入力回路と出力回路の対と、入力回路および出力回路のそれぞれへ入力する信号を、ビットの操作内容に応じて生成する制御信号生成器と、を備え、入力回路は、入力レジスタの複数のビットに格納された複数の値を入力値とし、制御信号生成器からのビット選択信号に従い、入力値のうちの一つを選択して対応する出力回路に出力し、出力回路は、制御信号生成器からの、データの有効、無効を示す信号に従い、有効な場合に、対応する入力回路からの出力値を出力レジスタの対応するビットに出力することを特徴とする。
本発明の別の態様は情報処理方法に関する。この情報処理方法は、入力レジスタに格納されたデータをビット単位で操作し出力レジスタに格納する情報処理方法であって、入力レジスタの各ビットのうち操作内容に応じて選択した一のビットに格納された値を取得するステップと、取得した値が有効であるか否かを、出力レジスタに格納すべきデータのビット数に基づき判定し、有効である場合に当該値を出力レジスタに格納するステップと、を出力レジスタのビットごとに並列して行うことを特徴とする。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
本発明によると、様々なビット操作を効率よく行うことができる。
本実施の形態におけるデータ生成装置の構成を示す図である。 本実施の形態において8ビットの単位領域ごとに可変長符号が格納されるときの、連結前後のビット列の例を示す図である。 本実施の形態において16ビットの単位領域ごとに可変長符号が格納されるときの、連結前後のビット列の例を示す図である。 本実施の形態において、可変長符号の連結に用いるデータ生成装置における、制御信号生成器の構成を詳細に示す図である。 本実施の形態において、セレクト信号生成部がセレクト信号を生成する処理手順を示すフローチャートである。 本実施の形態において、無効ビット指示部が対応するアンド回路へ入力する信号を生成する処理手順を示すフローチャートである。 本実施の形態において実現できる、ビットリバース前後のビット列の関係を模式的に示す図である。 本実施の形態においてビットリバースを行う際、情報処理装置の各セレクタ回路へ入力するセレクト信号を生成する原理を説明するための図である。 本実施の形態においてビットリバース処理を行う際のセレクト信号を生成するセレクト信号生成部の構成を詳細に示す図である。 本実施の形態において実現できる、ギャザー前後のビット列の関係を模式的に示す図である。 本実施の形態においてギャザーを行う際、情報処理装置の各セレクタ回路へ入力するセレクト信号を生成する原理を説明するための図である。 本実施の形態においてギャザー処理を行う際のセレクト信号を生成するセレクト信号生成部の構成を詳細に示す図である。
図1は本実施の形態におけるデータ生成装置の構成を示している。情報処理装置10は入力レジスタ12に格納されたデータをビット操作し、その結果を出力レジスタ14に格納する。入力レジスタ12および出力レジスタ14はいずれも128ビットのサイズを有し、図中、各レジスタを表す矩形内の1区画が1ビットを表している。なおレジスタのサイズはこれに限らず、処理対象のデータの種類、要求されるスペック、ハードウェア構成上の制限などに鑑み適宜決定してよい。
情報処理装置10はさらに、出力レジスタ14の各ビットに対応させて128対設けられたセレクタ回路18とアンド回路20、およびセレクタ回路18とアンド回路20を制御する制御信号生成器16を含む。同図では128個のセレクタ回路を総括してセレクタ回路18、128個のアンド回路を総括してアンド回路20として符号を付しているが、以後、図の左側から第0、第1、第2、・・・第127セレクタと第0、第1、第2、・・・、第127アンド回路が出力レジスタの第0、第1、第2、・・・第127ビットにそれぞれ対応するとして序数で説明する場合もある。
各セレクタ回路18は、入力レジスタ12の128ビットにそれぞれ接続する接続線を有し、各ビットに格納されたデータを入力値とする。そして制御信号生成器16からのセレクト信号によってそのうち一つを選択し、対応するアンド回路20へ出力する。アンド回路20は、対応するセレクタ回路18からのデータと、制御信号生成器16が出力する値とを入力値とし、その論理積を出力レジスタ14の対応するビットに出力する。
制御信号生成器16には、ビット操作に係る命令を表すオペコードと、入力レジスタ12に格納されたデータに係り、ビット操作に必要な補助データと、を入力する。補助データはビット操作の内容によっては入力されなくてもよい。また後述するように、別のレジスタ(図示せず)に格納されたデータでもよい。そして128個のセレクタ回路18およびアンド回路20のそれぞれに対する信号を生成して出力する。各セレクタ回路18に出力する信号は、当該セレクタ回路が、128ビットのデータのうち何番目のビットのデータを選択すべきかを指示するセレクト信号である。したがって同図に示すとおり、0〜127のいずれかを示す7ビットの情報となる。
制御信号生成器16が各アンド回路20に出力する信号は、当該アンド回路が対応するセレクタ回路18から受け取ったデータを出力レジスタ14に格納すべきか否かを指示する信号である。具体的には、格納すべきであれば「1」を、そうでなければ「0」をアンド回路に入力する。「0」が入力されたアンド回路20の出力値は常に「0」となる。このようにすることで、セレクタ回路18からのデータの有効/無効を明らかにし、出力レジスタ14へ最終的に格納されるデータに反映させる。以上述べた構成によって、ビット操作が必要な様々な処理に汎用的に適用可能なデータ生成装置を実現できる。以下、その具体例について述べる。
(1)可変長符号の連結
一般的に画像や音声のディジタルデータは圧縮処理によって可変長符号化される。生成された可変長符号は、メモリやレジスタのうち、8ビット、16ビット、32ビットなど、2のべき乗の固定ビット長を有する単位領域に順次格納される。一方で、最終的な圧縮データの出力時には、各単位領域を構成するビット列のうち、可変長符号を格納していないビットを除外して、全ての可変長符号を隙間なく連結する必要がある。この処理において情報処理装置10を用い、入力レジスタ12に格納した連結前の可変長符号を連結して出力レジスタ14に格納する。
図2は8ビットの単位領域ごとに可変長符号が格納されるときの、連結前後のビット列の例を示している。128ビットのレジスタにおいて、連結前は、太線矩形で示した、第0から第15までの単位領域16個(以後、当該単位領域の番号を「j」(8ビットの単位領域に対し0≦j≦15)で表す場合がある)のそれぞれに、最大8ビットの可変長符号が格納される。図中、網掛けが施されたビット以外のビットに有効な符号が格納されているものとする。例えば第0〜第7ビットで構成される第0単位領域(j=0)では、第3〜第7ビットの5ビット分に、「11000」なる符号が格納されている。第8〜第15ビットで構成される第1単位領域(j=1)では、第14〜第15ビットの2ビット分に、「01」なる符号が格納されている。
同図では連結前のビット列の上に、各単位領域に格納された符号のサイズを示している。例えば第0単位領域は「5」ビット、第1単位領域は「2」ビットの可変長符号を格納していることがわかる。当該データは、可変長符号化処理の途中で一般的に取得される。この連結前のデータのうち、網掛けで示された無効なビットを除外し、有効なデータをつめて格納することにより連結後のデータを生成する。その結果、「1100001・・・」なるデータが出力データとして生成される。
図3は同様の例で、16ビットの単位領域ごとに可変長符号が格納されるときの、連結前後のビット列の例を示している。この場合、連結前は、太線で示した第0から第7までの単位領域8個のそれぞれに、最大16ビットの可変長符号が格納される。例えば第0〜第15ビットで構成される第0単位領域(j=0)では、第9〜第15ビットの7ビット分に、「1100001」なる符号が格納されている。第16〜第31ビットで構成される第1単位領域(j=1)では、第19〜第31ビットの13ビット分に、「0111001010011」なる符号が格納されている。これを上記と同様に連結すると、「11000010111001010011・・・」なるデータが出力データとして生成される。
このような処理を行う場合、従来では単位領域ごとに、(1)有効な符号が格納されたビットが第0ビットから始まるようにビットシフト、(2)出力レジスタのうち、それまでに符号が格納されているビットの次のビットから、シフトしたビット列の符号を格納、という処理を、単位領域の数だけ繰り返すのが一般的であり、符号化処理と比較しても看過できない時間を要していた。
本発明では図1で示した情報処理装置10を用いて、入力レジスタ12のビット分の連結前のデータを、1ステップで連結して出力レジスタ14に格納する。なお図2および図3では、128ビットの入力レジスタにおいて8ビットまたは16ビットの単位領域に可変長符号が格納されている例を示したが、それらのビット数をどのように変化させても同様の処理を適用できる。
図4は可変長符号の連結に用いる情報処理装置10における、制御信号生成器16の構成を詳細に示している。図4において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、マイクロプロセッサ、レジスタ、比較回路、加算回路、その他の回路で構成することができ、ソフトウェア的には、オペコードとして入力されるプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
制御信号生成器16は、第0信号生成器22a、第1信号生成器22b、・・・、第127信号生成器22nの128個の信号生成器からなる。それらの構成は同様であるため、以下は第i信号生成器22i(0≦i≦127)について詳細を説明する。第i信号生成器22iは、セレクト信号生成部24と無効ビット指示部26を含む。セレクト信号生成部24は、入力レジスタ12の第0から第127までのビットのうち選択すべき1つのビットの番号を表すセレクト信号を生成する。第i信号生成器22iのセレクト信号生成部24で生成したセレクト信号は、図1の128個のセレクタ回路18のうち第iセレクタ回路に入力される。
無効ビット指示部26は、セレクタ回路18からの出力データを出力レジスタ14に出力するべきか否かを決定し、出力すべき場合は「1」、出力すべきでない場合は「0」を、図1の128個のアンド回路のうち第iアンド回路に出力する。図2および3で示したとおり、全ての可変長符号が単位領域と同じサイズでない限り、可変長符号を連結していった結果、出力レジスタ14には符号が格納されない余剰ビットが発生する。この余剰ビットに、セレクタ回路18からのいかなる出力データも出力しないようにすることで、不定のデータが格納されないようにする。
第i信号生成器22iには、次に述べる処理を行わせるオペコードと、「i」の値があらかじめ入力される。オペコードは単位領域のサイズごとに準備しておき、実際の単位領域のサイズに従い選択したものを入力する。また「i」の値は、セレクタ回路18またはアンド回路20を介して接続した出力レジスタ14の第0から第127のビット番号に対応するため、以後、「出力ビット番号」と呼ぶ。さらに上述したように、入力レジスタ12に格納された可変長符号に係る補助データとして、符号サイズ情報が入力される。符号サイズ情報は、各単位領域に格納された可変長符号のビット数を表し、図2および図3において「符号サイズ」として例示した情報である。
図2および図3に示したように、連結前の可変長符号を入力レジスタ12に格納する際、別のレジスタ(図示せず)に、各単位領域に対応するように符号サイズ情報を格納しておき、第i信号生成器22iが適宜読み出すようにしてもよい。なお入力レジスタ12に符号を格納する前段でなされる可変長符号化処理の内容は特に限定されず、符号サイズ情報の取得手法もそれに応じて様々考えられることは当業者には理解されるところである。
次に、以上の構成によって実現される動作について説明する。図5は、セレクト信号生成部24がセレクト信号を生成する処理手順を示すフローチャートである。同図において変数j(j=0,1,2,・・・)は上述のとおり、入力レジスタ12における単位領域番号を表す。図2の例では8ビットごとの単位領域のうち第0〜第7ビットがj=0、第8〜第15ビットがj=1、第16〜23ビットがj=2、・・・となる。第i信号生成器22iのセレクト信号生成部24はまず、対応する第i番目のセレクタ回路18が選択すべき入力レジスタ12中のビットがどの単位領域に属するかを決定する。
そのため、j=0の単位領域から各単位領域に格納されている可変長符号のサイズsize(j)を符号サイズ情報に基づき加算していき、その和が出力ビット番号iを超えたときのjを求める。具体的にはj=0から開始し、size(0)+size(1)+・・・+size(j)>iでなければjをインクリメントして同じ判定を繰り返す(S10、S12のN、S14)。size(0)+size(1)+・・・+size(j)>iとなったら、当該jの値が、選択すべきビットが属する単位領域番号である(S12のY)。
次に、求められた番号jの単位領域において、選択すべきビットが何番目のビットであるかを表す変数mを計算する。具体的には以下の式1を計算する(S16)。
Figure 2012033032
ここでNは単位領域のビット数である。したがって、このビットが入力レジスタ12の第0〜第127ビットのうち何番目のビットであるかを表す変数nを、求められた変数mを用いて以下の式2のように算出すれば、その値がすなわち、第i番目のセレクタ回路18に入力するセレクト信号の値となる(S18)。
n=N・j+m (式2)
例えば図2(N=8)の場合、連結後のビット列のうち第0ビット(i=0)へデータを出力する第0セレクタ回路が選択すべき連結前のビットは、単位領域番号j=0の単位領域の(size(0)=5>0であるため)、第3ビット(m=8−5+0=3であるため)であり、全ビット中の第3ビット(n=8・0+3=3)である。連結後のビット列のうち第6ビット(i=6)へデータを出力する第6セレクタ回路が選択すべき連結前のビットは、単位領域番号j=1の単位領域の(size(0)+size(1)=5+2>6であるため)、第7ビット(m=8−2+(6−5)=7であるため)であり、全ビット中の第15ビット(n=8・1+7=15)である。
図6は無効ビット指示部26が、対応するアンド回路20へ入力する信号を生成する処理手順を示すフローチャートである。無効ビット指示部26は、入力レジスタ12を構成する全単位領域の可変長符号のサイズsize(j)(j=0,1,2,・・・)の総和を出力ビット番号iと比較する(S20)。ここで単位領域の数は128/Nである。出力ビット番号iがサイズの総和以下であれば、第i番目のセレクタ回路18からの出力データは有効であるとして、入力信号sを「1」とする(S20のY、S22)。出力ビット番号iがサイズの総和がより大きければ、第i番目のセレクタ回路18からの出力データは無効であるとして、入力信号sを「0」とする(S20のN、S24)。
以上の処理を第0信号生成器22aから第127信号生成器22nまでが同様に行うことにより、128個のセレクト信号が第0〜127のセレクタ回路18へ、128個の有効/無効を表す信号が第0〜127のアンド回路20へ、それぞれ入力される。これにより入力レジスタ12に格納された連結前の可変長符号は、セレクタ回路18によりそれぞれ選択され、対応する出力レジスタ14の各ビットに格納されるとともに、可変長符号が格納されない余剰ビットには「0」が格納される。これにより、入力レジスタ12に格納された分の可変長符号の連結を一斉に行え、上述した従来の手法と比較して処理に要する時間を大幅に短縮できる。また、連結の結果発生した余剰ビットに不定の変数が代入されるのを防止できるため、さらにデータを連結する場合など後段の処理が容易になる。
(2)ビットリバース
図7はFFTアルゴリズムなどで実施されるビットリバース前後のビット列の関係を模式的に示している。ビットリバースは、8ビット、16ビット、32ビットなど、2のべき乗のビットで構成される単位領域ごとに、第0ビットのデータを最後のビットに、第1ビットのデータを最後から2番目のビットに、・・・というように格納していき、データのビット順を反転させる処理である。同図では太線矩形で単位領域を示しており、そのサイズは8ビットである。またビットリバース前後で同じデータを格納しているビットの対応関係を、各ビットを結ぶ直線で表している。
以下、図1で示した情報処理装置10を用いて、入力レジスタ12のサイズ分のデータを、1ステップでビットリバースさせ、出力レジスタ14に格納する手法について説明する。この場合も、制御信号生成器16は図4で示したのと同様の構成でよい。
図8は、ビットリバースを行う際、情報処理装置10の各セレクタ回路18へ入力するセレクト信号を生成する原理を説明するための図である。まず、セレクタ回路18の番号を表す変数iは、0≦i≦127であるため7ビットのデータである。ここで変数iは、ビットリバース後の、出力レジスタ14におけるビット番号と対応している。上述のとおり単位領域は2のべき乗のビット数を有するため、変数iの上位ビットは単位領域番号jに対応し、下位ビットは単位領域内でのビット番号に対応する。
例えば単位領域が8ビットのときは、上位4ビットが単位領域番号j、下位3ビットが単位領域内でのビット番号kを表す。図8の例(上段)では、変数i=75(0b1001011)に対応するビットが、j=9(0b1001)の単位領域内のk=3(0b011)番目のビットであることを示している。ビットリバース前後では、各ビットの単位領域番号は変化せず、単位領域内のビット番号が逆になる。すなわち、ビットリバース後のビット番号を表す7ビットのデータにおいて、単位領域番号を表す上位ビットはそのままとし、残りの下位ビットの0/1の値を反転して得られた値nがビットリバース前のビット番号を表すことになる。
図8の例(下段)では、j=9(0b1001)、k=4(0b100)で表されるn=76(0b1001100)が得られる。すなわちビットリバースにおいて、出力レジスタ14における第75ビットに格納するのは、入力レジスタ12における第76ビットのデータとなる。その他のビットも同様である。したがって当該値nが、i番目のセレクタ回路18に対して入力すべきセレクト信号の値となる。なお単位領域が16ビット、32ビットのときはそれぞれ、上位3ビット、2ビットが単位領域番号jを表すため、0/1の値を反転させる下位ビットの数もそれに応じて変化させる。
図9は図4における第i信号生成器22iのセレクト信号生成部24に対応し、ビットリバース処理を行う際のセレクト信号を生成するセレクト信号生成部24aの構成を詳細に示している。セレクト信号生成部24aは、2つのアンド回路30および32、減算回路34、加算回路36を含む。同図においてアンド回路30、32、および減算回路34への入力値として示された、スラッシュで区切られた3つの16進数はそれぞれ、単位領域が8ビット/16ビット/32ビットのときの値である。上述したように、これらの値は入力するオペコードによって切り替えることができる。このような構成によって、上述のセレクト信号の値nは、それぞれ以下のように導出できる。
単位領域8ビット:n=(i&0x78)+(0x07−(i&0x03))
単位領域16ビット:n=(i&0x70)+(0x0f−(i&0x07))
単位領域32ビット:n=(i&0x60)+(0x1f−(i&0x0f))(式3)
ここで「&」は論理積、「+」は算術加算、「−」は算術減算を表す。
式3において、右辺第1項は上位ビットの値を維持し、第2項は下位ビットの値を反転させる操作である。またビットリバースにおいては、出力レジスタ14に余剰ビットは発生しないため、図4の無効ビット指示部26は常に「1」を出力する。以上の処理を第0信号生成器22aから第127信号生成器22nまでが同様に行うことにより、128個のセレクト信号が第0〜127のセレクタ回路18へ、128個の「有効」を表す信号が第0〜127のアンド回路20へ、それぞれ入力される。この構成により、図1の情報処理装置10を用いてビットリバースを容易かつ短時間で実現することができる。
(3)ギャザー
ギャザーはレジスタ内の離れたビットに格納されたデータを集め、連続したデータを生成する処理である。図10はギャザー前後のビット列の関係を模式的に示している。同図では、入力データの8ビット、16個の単位領域から、第0ビットのデータ、第1ビットのデータ、・・・、第7ビットのデータをそれぞれ集めて単位領域とすることにより、16ビットの単位領域8個からなる出力データを生成している。なお入力データの単位領域が16ビットであれば出力データは8ビットの単位領域16個、入力データの単位領域が32ビットであれば出力データは4ビットの単位領域32個となる。
以下、図1で示した情報処理装置10を用いて、入力レジスタ12のサイズ分のデータに対し、1ステップでギャザー処理を施し出力レジスタ14に格納する手法について説明する。この場合も、制御信号生成器16は図4で示したのと同様の構成でよい。
図11は、ギャザーを行う際、情報処理装置10の各セレクタ回路18へ入力するセレクト信号を生成する原理を説明するための図である。ビットリバースと同様、ギャザーにおいても7ビットの変数i(0≦i≦127)を操作する。具体的には、ギャザー後のビット番号を表す7ビットのデータにおいて、単位領域番号jと、単位領域内でのビット番号kを入れ替えると、ギャザー前のビット番号となる。
図11に示した例では、i=75(0b1001011)におけるj=9(0b1001)とk=3(0b011)を入れ替え、j=3(0b011)、k=9(0b1001)とすると、n=57(0b0111001)が得られる。すなわちギャザーにおいて、出力レジスタ14における第75ビットに格納するのは、入力レジスタ12における第57ビットのデータとなる。その他のビットも同様である。したがって当該値nが、i番目のセレクタ回路18に対して入力すべきセレクト信号の値となる。
図12は図4における第i信号生成器22iのセレクト信号生成部24に対応し、ギャザー処理を行う際のセレクト信号を生成するセレクト信号生成部24bの構成を詳細に示している。セレクト信号生成部24bは、左シフトを行うシフト回路40、アンド回路42、右シフトを行うシフト回路44、および加算回路46を含む。同図においてアンド回路42への入力値として示された、スラッシュで区切られた3つの16進数はそれぞれ、入力データの単位領域が8ビット/16ビット/32ビットのときの値である。上述したように、これらの値は入力するオペコードによって切り替えることができる。このような構成によって、上述のセレクト信号の値nは、それぞれ以下のように導出できる。
単位領域8ビット:n=(i>>3)+((i&0x07)<<4)
単位領域16ビット:n=(i>>4)+((i&0x0f)<<5)
単位領域32ビット:n=(i>>5)+((i&0x1f)<<6) (式4)
ここで「<<」は論理左シフト、>>は論理右シフトを表す。
式4において、右辺第1項は上位ビットを下位ビットにシフトし、第2項は下位ビットを上位ビットにシフトする操作である。ギャザーもビットリバース同様、出力レジスタ14に余剰ビットは発生しないため、図4の無効ビット指示部26は常に「1」を出力する。以上の処理を第0信号生成器22aから第127信号生成器22nまでが同様に行うことにより、128個のセレクト信号が第0〜127のセレクタ回路18へ、128個の「有効」を表す信号が第0〜127のアンド回路20へ、それぞれ入力される。この構成により、図1の情報処理装置10を用いてギャザー処理を容易かつ短時間で実現することができる。
以上述べた本実施の形態によれば、出力レジスタの各ビットに対応する、セレクタ回路およびアンド回路の対を設ける。そしてセレクタ回路は入力レジスタの全ビットの値を入力値とし、そのうち1つを選択して出力する。各セレクタ回路が選択すべきビットは、行いたいビット操作および入力レジスタにおける単位領域のサイズによって適宜計算する。アンド回路は、対応するセレクタ回路からの出力値のうち有効な値のみを出力レジスタへ出力し、残りは「0」を出力する。このような構成により、可変長符号の連結、ビットリバース、ギャザーなど、様々なビット操作に汎用的に利用可能なデータ生成装置を、簡易な構成で実現できる。また入力レジスタを構成するビット分の処理を一斉に実行できるため、処理に要する時間を短縮できる。さらに、出力レジスタへ出力すべきデータの有効/無効を適応的に決定してデータに反映させることができるため、出力データをさらにビット操作する場合など後段の処理において無効なビットを識別しやすくなり、処理が容易になる。
なお本実施の形態で示したビット操作の内容はあくまで例示であり、図1の情報処理装置10の構成において制御信号生成器16に適当なオペコードおよび必要に応じた補助データを入力することにより、多様なビット操作を容易に実現でき、上記と同様の効果を得ることができることは当業者には理解されるところである。
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
10 情報処理装置、 12 入力レジスタ、 14 出力レジスタ、 16 制御信号生成器、 18 セレクタ回路、 20 アンド回路、 22i 第i信号生成器、 24 セレクト信号生成部、 26 無効ビット指示部。

Claims (6)

  1. 入力レジスタに格納されたデータをビット単位で操作し出力レジスタに格納する情報処理装置であって、
    前記出力レジスタの各ビットに対応して設けられた入力回路と出力回路の対と、前記入力回路および出力回路のそれぞれへ入力する信号を、ビットの操作内容に応じて生成する制御信号生成器と、を備え、
    前記入力回路は、前記入力レジスタの複数のビットに格納された複数の値を入力値とし、前記制御信号生成器からのビット選択信号に従い、前記入力値のうちの一つを選択して対応する前記出力回路に出力し、
    前記出力回路は、前記出力レジスタの対応するビットの有効、無効を示す信号を前記制御信号生成器から取得し、有効な場合に、対応する前記入力回路からの出力値を前記出力レジスタの対応するビットに出力することを特徴とする情報処理装置。
  2. 前記入力レジスタは固定長を有する単位領域ごとに可変長符号を格納し、
    前記入力回路は、前記入力レジスタのうち可変長符号が格納されていないビットを除外して可変長符号が連続するように、前記出力レジスタの対応するビットへ格納すべき値を選択し、
    前記出力レジスタのうち連結された可変長符号が格納されるべきビット以外のビットに対応する前記出力回路は、当該ビットを無効として、あらかじめ定めた固定値を格納することを特徴とする請求項1に記載の情報処理装置。
  3. 前記制御信号生成器は前記出力回路に対し、前記出力レジスタの対応するビットが有効の場合「1」を、無効の場合「0」を、前記有効、無効を示す信号として入力し、前記出力回路は当該信号と前記入力回路からの出力値との論理積を前記出力レジスタの対応するビットに出力することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記入力回路は、前記入力レジスタの固定長を有する単位領域ごとにビットの順列が反転されるように、前記出力レジスタの対応するビットへ格納すべき値を選択することを特徴とする請求項1に記載の情報処理装置。
  5. 前記入力回路は、前記入力レジスタの所定の間隔をおいた複数のビットが連続するように、前記出力レジスタの対応するビットへ格納すべき値を選択することを特徴とする請求項1に記載の情報処理装置。
  6. 入力レジスタに格納されたデータをビット単位で操作し出力レジスタに格納する情報処理方法であって、
    前記入力レジスタの各ビットのうち操作内容に応じて選択した一のビットに格納された値を取得するステップと、
    取得した値が有効であるか否かを、前記出力レジスタに格納すべきデータのビット数に基づき判定し、有効である場合に当該値を前記出力レジスタに格納するステップと、
    を前記出力レジスタのビットごとに並列して行うことを特徴とする情報処理方法。
JP2010172614A 2010-07-30 2010-07-30 情報処理装置および情報処理方法 Pending JP2012033032A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010172614A JP2012033032A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法
US13/189,809 US20120047355A1 (en) 2010-07-30 2011-07-25 Information Processing Apparatus Performing Various Bit Operation and Information Processing Method Thereof
CN2011102172973A CN102347773A (zh) 2010-07-30 2011-08-01 信息处理装置及信息处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010172614A JP2012033032A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法

Publications (2)

Publication Number Publication Date
JP2012033032A true JP2012033032A (ja) 2012-02-16
JP2012033032A5 JP2012033032A5 (ja) 2013-09-12

Family

ID=45546096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010172614A Pending JP2012033032A (ja) 2010-07-30 2010-07-30 情報処理装置および情報処理方法

Country Status (3)

Country Link
US (1) US20120047355A1 (ja)
JP (1) JP2012033032A (ja)
CN (1) CN102347773A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017529597A (ja) * 2014-09-25 2017-10-05 インテル・コーポレーション ビット群インターリーブプロセッサ、方法、システムおよび命令
JP2018500666A (ja) * 2014-12-27 2018-01-11 インテル・コーポレーション ベクトルビットギャザーを実行するための方法および装置
JP2018506096A (ja) * 2014-12-27 2018-03-01 インテル・コーポレーション ベクトルビットシャッフルを実行するための方法および装置
JP2022546615A (ja) * 2019-09-10 2022-11-04 アップル インコーポレイテッド 圧縮支援命令

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113436364B (zh) * 2021-06-22 2022-04-08 广汽埃安新能源汽车有限公司 Tbox无效信号值判断方法、装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04142618A (ja) * 1990-10-04 1992-05-15 Toshiba Corp 情報処理装置
US6125406A (en) * 1998-05-15 2000-09-26 Xerox Corporation Bi-directional packing data device enabling forward/reverse bit sequences with two output latches
JP2005352568A (ja) * 2004-06-08 2005-12-22 Hitachi-Lg Data Storage Inc アナログ信号処理回路、並びに、そのデータレジスタ書換方法とそのデータ通信方法
JP2008067361A (ja) * 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム
US20090138534A1 (en) * 2007-05-23 2009-05-28 The Trustees Of Princeton University Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5233690A (en) * 1989-07-28 1993-08-03 Texas Instruments Incorporated Video graphics display memory swizzle logic and expansion circuit and method
US5210839A (en) * 1990-12-21 1993-05-11 Sun Microsystems, Inc. Method and apparatus for providing a memory address from a computer instruction using a mask register
SG43256A1 (en) * 1995-03-29 1997-10-17 Toshiba Kk Apparatus and method for reading and writing data
US8463837B2 (en) * 2001-10-29 2013-06-11 Intel Corporation Method and apparatus for efficient bi-linear interpolation and motion compensation
KR100486251B1 (ko) * 2002-08-03 2005-05-03 삼성전자주식회사 가변 길이 코드 복호화 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04142618A (ja) * 1990-10-04 1992-05-15 Toshiba Corp 情報処理装置
US6125406A (en) * 1998-05-15 2000-09-26 Xerox Corporation Bi-directional packing data device enabling forward/reverse bit sequences with two output latches
JP2005352568A (ja) * 2004-06-08 2005-12-22 Hitachi-Lg Data Storage Inc アナログ信号処理回路、並びに、そのデータレジスタ書換方法とそのデータ通信方法
JP2008067361A (ja) * 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム
US20090138534A1 (en) * 2007-05-23 2009-05-28 The Trustees Of Princeton University Microprocessor Shifter Circuits Utilizing Butterfly and Inverse Butterfly Routing Circuits, and Control Circuits Therefor

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017529597A (ja) * 2014-09-25 2017-10-05 インテル・コーポレーション ビット群インターリーブプロセッサ、方法、システムおよび命令
JP2018500666A (ja) * 2014-12-27 2018-01-11 インテル・コーポレーション ベクトルビットギャザーを実行するための方法および装置
JP2018506096A (ja) * 2014-12-27 2018-03-01 インテル・コーポレーション ベクトルビットシャッフルを実行するための方法および装置
JP2022546615A (ja) * 2019-09-10 2022-11-04 アップル インコーポレイテッド 圧縮支援命令
JP7385009B2 (ja) 2019-09-10 2023-11-21 アップル インコーポレイテッド 圧縮支援命令

Also Published As

Publication number Publication date
US20120047355A1 (en) 2012-02-23
CN102347773A (zh) 2012-02-08

Similar Documents

Publication Publication Date Title
KR102137956B1 (ko) 블록 마이닝 방법 및 장치
CN115756391B (zh) 用于实现非对称算法rsa模幂计算的硬件电路及方法
CN1171682A (zh) 数据的加密方法及设备
JP2012033032A (ja) 情報処理装置および情報処理方法
JP6159240B2 (ja) 二値算術符号化装置、二値算術符号化方法及び二値算術符号化プログラム
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
WO2025036487A1 (zh) 可用于sha256的指令执行方法、设备、数据处理系统及芯片
WO2003084077A1 (en) Variable/fixed length data conversion method and device
JP4120193B2 (ja) 暗号復号回路
CN112564890B (zh) 一种加速sm4算法的方法、装置、处理器及电子设备
JP5113833B2 (ja) 中央演算処理装置の演算能力を高めるための暗号方法および暗号装置
EP1202488B1 (en) Encryption sub-key generation circuit
US9288041B2 (en) Apparatus and method for performing compression operation in hash algorithm
JP3661663B2 (ja) 乱数生成装置、乱数生成方法、乱数生成プログラムおよびオーディオ復号装置と復号方法
JP2010050697A (ja) 画像圧縮伸張装置および画像圧縮伸張方法
KR100954843B1 (ko) 센서 모트에서의 블록 인덱싱 기반의 타원 곡선 암호 연산 방법, 그 장치 및 이를 기록한 기록 매체
JP4953145B2 (ja) 文字列データ圧縮装置及びその方法並びに文字列データ復元装置及びその方法
JP2005534973A (ja) 有限体内でデータを操作する方法および装置
CN113971015B (zh) Uia2计算电路及其数据处理方法、芯片、电子设备及存储介质
JP4351106B2 (ja) Mac生成装置及びmac生成プログラム
KR102282363B1 (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
US7472154B2 (en) Multiplication remainder calculator
JP3494619B2 (ja) 逆順バイト列循環シフト装置及びそのプログラム記録媒体
JP2010258927A (ja) 符号データ処理装置、方法及びプログラム
JP2008046151A (ja) 暗号処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130730

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140624