JP2010049430A - 演算装置、行列演算装置、資源割当装置および演算方法 - Google Patents

演算装置、行列演算装置、資源割当装置および演算方法 Download PDF

Info

Publication number
JP2010049430A
JP2010049430A JP2008212270A JP2008212270A JP2010049430A JP 2010049430 A JP2010049430 A JP 2010049430A JP 2008212270 A JP2008212270 A JP 2008212270A JP 2008212270 A JP2008212270 A JP 2008212270A JP 2010049430 A JP2010049430 A JP 2010049430A
Authority
JP
Japan
Prior art keywords
bit
data
bit value
value
predetermined
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.)
Granted
Application number
JP2008212270A
Other languages
English (en)
Other versions
JP2010049430A5 (ja
JP5169618B2 (ja
Inventor
Koichi Nagami
康一 永見
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 JP2008212270A priority Critical patent/JP5169618B2/ja
Publication of JP2010049430A publication Critical patent/JP2010049430A/ja
Publication of JP2010049430A5 publication Critical patent/JP2010049430A5/ja
Application granted granted Critical
Publication of JP5169618B2 publication Critical patent/JP5169618B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】高速化が可能な演算装置を提供すること。
【解決手段】本演算装置は、2ビットのデータAおよびnビットのデータkを入力するデータ入力手段20、22と、データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk番目のビットのみが第2所定ビット値であり他の全てのビット値が第2所定ビット値の反対のビット値である2ビットのデータBを演算する演算手段と、データBの各ビット値を同時並行的に出力するデータ出力手段24と、を具備する。
【選択図】図5

Description

本発明は演算装置、行列演算装置、資源割当装置および演算方法に関する。
デジタル無線通信分野においては、同一の装置で複数の通信方式に対応する技術として、無線処理を専用ハードウェアではなくプロセッサによるソフトウェア実行によって実現する、いわゆるソフトウェア無線(Software Defined Radio; SDR)技術が知られている。この技術では、通信処理に含まれるビット並び替えは、プロセッサにより処理される。またデジタル情報処理分野における暗号技術である、DES(Data Encryption Standard)などのブロック暗号においても、置換と呼ばれるビット並び替え処理が行われる。
またプロセッサなどの実行主体が複数協調動作する情報処理システムにおいて、実行主体が記憶域や外部演算装置などの共通の資源集合を共有しながら処理を進める。このようなシステムにおいては、各実行主体が処理の進行に従い、必要となった資源の割当を受けてから処理を進め、かつ不要となった資源は解放するという、いわゆる資源の実行時管理が行われる。この場合、資源の二重割当によるシステムの壊滅的障害を回避するため、各資源の割当状況を表現する管理情報を一元管理し、この管理情報に対する更新は排他制御により逐次的に行われるよう制御される(非特許文献1)。
前記ビット並び替え処理では、与えられたビット列を所定の順序に従って並び替えた列に変換され、所定の順序の表現が必要である。任意の順序を一意に表現する方法として階乗進法という記数法が知られている。階乗進法はmを自然数として最下位桁0から最上位桁(m−1)までのm桁の数字の列により、0〜(m!−1)の範囲のm!個の整数を一意に表現する方法である。階乗進法により表現された数を階乗進数と呼ぶ。階乗進数の最下位桁から数えてi番目の桁(桁i)が取り得る数は、0〜iである。この規則により最下位桁は0に固定されるため、最下位桁は表現から省略することもできる。一般に桁iの数がd(i)である階乗進数は
d(m−1)(m−1)!+d(m−2)(m−2)!+…+d1(1!)+d0(0!)
で計算される整数を表現する。この表現方法は、付番された相異なるm個の要素からなる任意の順列を一意に表現する。すなわち、d(m−1)からd(0)に向けて順にd(i)を調べて、番号iの要素の順列における位置を割り当てる手順を繰り返せば、順列を構成できる。ここでd(i)を調べて位置を割り当てる手順は、桁iより上位桁の手順で割り当てられた位置を除いた位置のうちのd(i)番目を選択すればよい(非特許文献2)。
m桁の階乗進数の情報のサイズは
log(m)+log(m−1)+…+log(1)
に比例する。一方、付番された相異なるm個の要素からなる任意の順列を、番号iの要素の順列における位置をすべて並べて表現した場合、そのサイズは、
m×log(m)
に比例する。両者のサイズを比較すると、階乗進数の方が効率的である。
山崎傑, "オペレーティング・システムの基礎,"pp.49-54, CQ出版社, 1992年, ISBN4-7898-3668-1 奥村晴彦, "C言語による最新アルゴリズム事典," 技術評論社,1991年,ISBN4-87408-414-1
例えば、デジタル通信処理において、伝送路雑音による誤り混入の影響を拡散するなどの目的により、通信データのビット並び替え処理が行われる。前記ソフトウェア無線技術においては無線処理をプロセッサで行う。またデジタル情報暗号化技術においても、DESなどのブロック暗号においては基本処理として置換と呼ばれるビット並び替え処理が行われる。
一般にプロセッサは一定ビット長のワード単位での演算処理を基本としており、ビット単位の処理が必要な並び替え処理を効率的に行うことができないという課題がある。またこの並び替え処理は、規格などによって定められた所定の並び替え順に基づいて行われるが、ソフトウェア無線技術では複数規格への対応が前提となるため、多くの並び替え順を保持する必要が生じる。このため、所定の並び替え順をコンパクトに表現することが課題となる。
また、情報処理システムにおいて、複数のプロセッサが複数の共通資源を使用するシステムにおいて、資源の割り当てを要求しているプロセッサに資源を割り当てる処理が行われる。この場合、要求を待ち行列化し、複数の要求を一括処理することにより割当処理を高速化することができる。しかし、資源の使用状況の管理情報の一貫性を保持するため、割当可能な空き資源を探索する処理については各要求毎に逐次的に処理する。この逐次性により、一括処理による高速化が十分発揮されないという課題がある。
本発明は、上記課題に鑑みなされたものであり、ビット並び替え処理や資源割当処理などの処理を効率化することを目的とする。
本明細書記載の演算装置は、2ビットのデータAおよびnビットのデータkを入力するデータ入力手段と、前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータBを演算する演算手段と、前記データBの各ビット値を同時並行的に出力するデータ出力手段と、を具備する。
本明細書記載の行列演算装置は、2桁からなる階乗進数Pを入力するデータ入力手段と、自然数iが前記階乗進数Pの最大桁のとき、2ビットのデータAのビットを全て第1所定ビット値とし、前記階乗進数Pのi桁目をnビットのデータkとし、前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が前記第1所定ビット値であるk番目のビットのみが1であり他の全てのビット値が0である2ビットのデータBを演算し、前記データBを2×2行列Mのi行のデータとし、前記データAおよび前記データBの同じビットを比較し、前記データAのビットが前記第1所定ビット値の反対のビット値である場合および前記データBの対応するビットが1である場合の少なくとも一方の場合、前記データAの対応するビットを前記第1所定ビット値の反対のビット値とし、他の場合、前記データAの対応するビットを前記第1所定ビット値とする、ことを前記階乗進数Pの前記最大桁から最小桁まで繰り返す演算手段と、を具備する。これらの手段によって生成された行列Mは、前記並び順による並び替え行列となるため、長さ2の任意のビット列と行列Mとの行列ベクトル積を計算することにより、そのビット列を前記並び順に従って並び替えたビット列を求めることができる。
本明細書記載の資源割当装置は、各ビットが複数の資源のうち対応する資源の使用未使用を示す2ビットのデータA1と複数の第1演算手段毎に異なる値であるnビットのデータk1とが入力し、前記データA1の最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方に向かう所定のビットの方向に数え、ビット値が第1所定ビット値であるk1番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータB1を並列に演算する前記複数の第1演算手段と、複数の前記データB1の前記第2所定ビット値の対応する資源を、資源の割当を要求する複数のプロセッサにそれぞれ割り当てる割当手段と、を具備する。これらの手段により、複数のプロセッサによる資源割当獲得要求を処理する際に、各プロセッサに割り当てる資源の探索を並列に行うことができる。
本明細書記載の演算方法は、レジスタを備えるマイクロプロセッサを用い、2ビットのデータAおよびnビットのデータkから2ビットのデータBを演算する演算方法であって、前記レジスタから前記データAおよび前記データkを取得するステップと、前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータBを演算するステップと、前記レジスタに前記データBの各ビットを同時並行的に出力するステップと、を具備する。
ビット並び替え処理や資源割当処理などの処理を効率化することができる。
通信システムの分野では、プログラムの交換により複数の通信方式に対応可能な通信技術であるソフトウェア無線技術の確立が求められている。このためには、デジタル・データ通信の技術におけるビット並び替えを汎用的に行う技術が求められる。また、DESなどのデジタル情報暗号化技術においても置換と呼ばれるビット並び替え処理が必要となる。しかしながら、マイクロプロセッサのデータアクセス最小単位はワードであるため、汎用的なビット並び替えを効率的にプログラムすることが難しい。
この課題は、マイクロプロセッサのデータパス内にガロア素体GF(2)に基づく行列ベクトル積を行う演算器を配置し、その演算をマイクロプロセッサの命令により実行できるようにすることにより解決できる。なぜなら、任意のビット並び替え処理は、その並び順に対応するビット並び替え行列との行列ベクトル積で実現でき、かつ行列ベクトル積演算は他の処理、たとえばデジタル・データ通信の技術における畳込符号の符号化などにも汎用的に用いることができるからである。GF(2)に基づく行列ベクトル積演算器は、行列の各行とベクトルとの内積を行う演算器を行列の行数に等しい個数用意し、それらを並列に動作させることにより効率的に実現できる。各行とベクトルとの内積は、要素毎の論理積を求め、それら全ての排他的論理和を求めればよいため、ベクトルの長さmに等しい個数の2入力論理積演算素子と、mに等しい入力数を持つ排他的論理和演算器により構成することができる。
この解決法においては、並び替え処理の並び順を行列で表現することになり、その情報のサイズは行列要素数であるmに比例する。このサイズを効率化する方法として階乗進数が利用できる。すなわち、並び順を表現する行列要素全体を記憶しておくのではなく、同じ並び順を表現する階乗進数を記憶しておき、並び替え処理の事前に、その階乗進数表現から並び替え行列を再現し、並び替え処理を行う。階乗進数の情報のサイズは、
log(m)+log(m−1)+…+log(1)
に比例するので、行列全体を保持するよりも効率が良い。このサイズ削減効果は、ソフトウェア無線のように複数の並び順を切り替えながら処理する必要がある場合には、それぞれの並び順を保持する必要があるため、より効果的である。
階乗進数から並び替え行列を再現する処理は、後述の実施例2のとおり実現できる。この処理においては、階乗進数Pの各桁i(最上位桁がi=0とする)の値P(i)を最上位桁から順に見ていき、P(i)から行列の第i行の要素のうちのただ一つ1とすべきビット位置を割り当てることを繰り返す。P(i)からビット位置を割り当てる処理は、まだ現れていないビット位置のうちのP(i)番目を求めることにより実現される。
また、情報処理システムにおいて、資源割当装置が、複数の共通資源をプロセッサ等に割り当てる方法としては、要求の待ち行列化を用いることが考えられる。この方法では、資源割当装置が、プロセッサからの資源割当要求を待ち行列に格納する。資源割当装置は、待ち行列の先頭から順に要求を取り出し、空き資源を割り当てる。この際、資源割当装置は、割り当てられた資源の使用開始処理と同時に、次の資源割当要求を取り出す。このように使用開始処理と次の資源割当要求を、取り出しを並列処理することにより共通資源割当の高速化が図れる。しかしながら、一つの資源割当要求に対する空き資源の探索が他の要求に対する探索状況を全く考慮しない手順で行われる場合、空き資源の割り当ては、資源割当要求ごとに逐次処理しないと、資源の管理情報の一貫性が破壊される可能性がある。このような処理の逐次性のため、高速化することが難しい。
この課題を解決する方法として、資源に順序を付与し、かついくつかの割当要求を同時処理する際に各要求に番号jを付け、j番目の割当要求に対しては、空き資源のうちのj番目を割り当てる、という手順を用いることができる。この手順によれば、各割当要求に対して割り当てられる資源が重複することがないため、空き資源の探索を並列化することが可能となる。
このように、ビット並び替え処理および情報処理システムにおける共有資源の割当処理は、未割当の候補のうちから、指定番目に当たるものを求める、という基本処理により、共に効率化が可能となる。
本演算装置においては、k番目の第1所定ビット値のビット位置を探索する探索操作を行うことにより、この基本処理を実現する。以下、図面を参照して、本発明の実施例について説明する。
図1は、実施例1に係るマイクロプロセッサを有するコンピュータのブロック図である。コンピュータはマイクロプロセッサ10、主記憶装置26および入出力装置28を備えている。マイクロプロセッサ10、主記憶装置26および入出力装置28は互いにバス18で接続されている。図2は、実施例1に係るマイクロプロセッサを示すシステム図である。図2において、マイクロプロセッサ10は、探索回路12、レジスタ14(レジスタファイル)、ALU(Arithmetic Logical Unit)16、入力バス20、22および出力バス24を備えている。探索回路12には、データ入力手段である入力内部バス20および22からそれぞれデータAおよびkが入力し、データ出力手段である出力内部バス24にデータBが出力される。マイクロプロセッサ10は1つの命令に対応しデータAおよびデータkからデータBを演算することができる。
図3は、探索回路12の機能を説明するための図である。図3において、データAおよびBは各々2ビットのデータであり、データkはnビットのデータである。ここで、nは自然数である。図3では、データAは16ビット、データkは4ビットである。データAが「1011110111010011」であり、データkが3(二進数で「0011」)の場合、探索回路12は、データAの右側から3番目の「0」のビット位置を探索する。図3では、右側から9ビット目が3番目の「0」のビット位置である。そこで、探索回路12は、データBの右側から9ビット目を「1」とし、その他のビットを「0」とする。探索回路12は、データBの各ビットを同時並行的に出力する。
図3において、探索回路12は、データAの右側のビットからk番目の「0」のビット位置を探索したが、探索回路12は、データAの最小有効ビット位置および最大有効ビット位置のいずれか一方のビット位置から他方のビット位置に向かう方向のうち、応用形態によって定まる所定の方向に数えればよい。
また、図3において、探索回路12は、k番目のビット値が「0」のビット位置を探索したが、「0」および「1」のうち、応用形態によって定まる所定の一方(第1所定ビット値)のビット位置を探索すればよい。
さらに、図3において、探索回路12は、データBのうち探索したビット位置のビット値のみを「1」とし、その他のビット位置のビット値を「0」としたが、データBのうち探索したビット位置のビット値のみを「0」および「1」のうちの応用形態によって定まる所定のいずれか一方(第2所定ビット値)とし、他の全てのビット位置のビット値を「0」および「1」の他方(第2所定ビット値の反対のビット値)としてもよい。
図2のマイクロプロセッサ10はk番目の第1所定ビット値のビット位置を探索する探索命令を備えることができる。図4は、探索命令が入力された場合のマイクロプロセッサ10の処理を示すフローチャートである。レジスタ14は、主記憶装置26(図1参照)からデータAおよびkを記憶する(ステップS10)。探索回路12は、レジスタ14から入力バス20および22を介しデータAおよびkを取得する(ステップS12)。探索回路12はデータBを演算する(ステップS14)。探索回路12は出力バス24を介しデータBの各ビットを同時並行的にレジスタ14に出力する(ステップS16)。以上のように、マイクロプロセッサ10は、データAおよびkからデータBを算出する。
図5は、探索回路12の回路図である。探索回路12は、n個のiビット演算回路30を備えている。nはデータAのビット数であり、iは0からn−1の自然数である。iビット演算回路30はデータAのi番目のビット位置のビット値(これをビットA[i]とする)からデータBのi番目のビット位置のビット値(これをビットB[i]とする)を演算する。iビット演算回路30は、OR回路32とデクリメント回路34を備えている。デクリメント回路34は、データkのビット数に対応する全加算器34a〜34dを備えている。0ビット演算回路30aにおいては、OR回路32は、ビットA[0]とデータkの各ビットとのOR処理の反転を出力する。すなわち、ビットA[0]が「0」でかつデータkが全ビット「0」の場合「1」を、その他の場合「0」を出力する。デクリメント回路34の各全加算器34a〜34dには、ビットA[0]の反転とデータkの各ビットが入力する。これにより、デクリメント回路34は、ビットA[0]が「0」の場合、データkから1を減じ(つまりデクリメントし)、ビットA[0]が「1」の場合、デクリメントしない。
iビット演算回路30においては、OR回路32は、ビットA[i]とi−1ビット演算回路30のデクリメント回路34の出力の各ビットとのOR処理の反転を出力する。すなわち、ビットA[i]が「0」でかつi−1ビット演算回路30のデクリメント回路34の出力が全ビット「0」の場合「1」を、その他の場合「0」を出力する。デクリメント回路34の各全加算器34a〜34dには、ビットA[i]の反転とi−1ビット演算回路30のデクリメント回路34の出力の各ビットが入力する。これにより、デクリメント回路34は、ビットA[i]が「0」の場合、i−1ビット演算回路30のデクリメント回路34の出力をデクリメントし、ビットA[i]が「1」の場合、デクリメントしない。
図5の回路によれば、OR回路32の出力は、前段(i−1段)のデクリメント回路34の出力が全ビット「0」にならない限り「0」を出力する。デクリメント回路34は、ビットA[i]が「0」のたびにデータkから「1」ずつデクリメントする。ビットA[i]がk−1番目の「0」となったとき、デクリメント回路34は全ビット「0」を出力する。よって、その後、ビットA[i]が「0」となったとき、つまり、ビットA[i]がk−1番目の「0」となったとき、OR回路32は「1」を出力する。この段のデクリメント回路34は全ビット「1」を出力する。よって、その後のiビット演算回路30においては、ビットA[i]によらずビットB[i]として「0」を出力する。
図5のように、iビットデクリメント回路34は、i番目のビットのビット値(ビットA[i])が第1所定ビット値の場合、データkをデクリメントする。ここで、iはデータAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かうの方向のうち、応用形態によって定まる所定の方向にむけて数える。OR回路(判定回路)32は、データA[i]が「0」(つまり、第1所定ビット値)であり、かつ、iが1以上の場合i−1ビットデクリメント回路34の出力データk、またはiが0の場合入力されたデータkの全てのビットが「0」(つまり第1所定ビット値)の場合、ビットB[i]を「1」(つまり、第2所定ビット値)とする。また、他の場合、ビットB[i]を「0」(つまり、第2所定ビット値の反対のビット値)とする。このような回路で、図3の探索回路12を実現することができる。
実施例1によれば、図3で示した探索回路を、マイクロプロセッサに備え、1つの探索命令で、データBを演算できるため、実施例2および実施例3で説明するようにビット列並び替えや資源管理を高速に行うことができる。
実施例2は、実施例1を用い階乗進数からビット並べ替えの変換行列を演算する演算装置の例である。2ビットのビット列を2ビットのビット列に変換する場合、変換行列Mは2ビット×2ビット行列となる。この行列Mを階乗進数Pで表すことにより、並べ替え順序を表現する情報のサイズを小さくすることができる。
図6は、ワードサイズに対する行列Mおよび階乗進数Pの表現サイズを示す図である。図6において、階乗進数Pを用いることにより表現サイズを削減することができる。そこで、階乗進数Pを変換行列Mの変わりに記憶することにより、記憶装置の容量を節約することができる。しかしながら、階乗進数Pから行列Mを高速に演算することは難しい。実施例2は、階乗進数Pから行列Mを高速に演算する行列演算装置を提供する。
図7は、実施例2のマイクロプロセッサのシステム図である。図6において、マイクロプロセッサは、実施例1の図2と比較し、行列ベクトル積回路40および行列レジスタ42を備えている。行列レジスタ42は、2ビット×2ビット行列Mを2ビットの長さを有する2個のワードとして記憶し、ワード単位で入出力可能である。行列ベクトル積回路40は、2ビットの長さを有するベクトルX、2ビットの長さを有するベクトルbおよび行列レジスタ42に記憶された行列Mを用い、2ビットの長さを有するベクトルY=MX+bを演算する。ただし、この行列演算は、ガロア素体GF(2)の上で行われる。すなわち要素同士の積は論理積、和は排他的論理和で行われる。この行列演算において、Mをビット並び替え行列とし、bを全ビット0のワードに設定することにより、Xに与えたビット列にMが表すビット並び替えを施した結果のビット列をYとして得ることができる。ここでビット並び替え行列とは、元の列のj番目の要素を結果の列のi番目とする並び替えを、i行j列要素のみ「1」としその他は「0」としたビット行列で表現したものである。行列ベクトル積回路40は、ベクトルYをレジスタ14の任意のワードに書き込むことができる。
図8は実施例2に係る演算装置の機能ブロック図である。図7のマイクロプロセッサの探索回路12、レジスタ14、行列ベクトル積回路40および行列レジスタ42は、入出力手段54および演算手段52として機能する。演算手段52は、行列演算手段56および探索手段58を備えている。入出力手段54には、n桁の階乗進数Pが入力し、2ビット×2ビット行列Mを出力する。行列演算手段56は、階乗進数Pを行列Mに変換する。探索手段58は実施例1の探索回路と同じ機能を備え、データAおよびkからデータBを演算する。
図9は、実施例2に係る演算装置の処理を示すフローチャートである。図10は、階乗進数Pから行列Mを演算する処理の例を示す図である。図10の例では、行列Mは8×8行列であり、左より階乗進数P(i)、データAおよびデータBを示している。階乗進数P(i)は、i桁目のデータ値を示している。階乗進数Pのi桁目は、行列Mのi行に対応する。図9において、行列演算手段56は、汎用レジスタ14のデータAを0、データiをn−1とする(ステップS20)。図10の例では、i=7とする。行列演算手段56は、汎用レジスタのデータkをP(i)とする(ステップS22)。図10の例では、k=4とする。探索手段58は、汎用レジスタ14からデータAおよびkを取得し、データBを演算し汎用レジスタ14に格納する(ステップS24)。図10の例では、i=7でのデータAのビットは全て「0」である。よって、データBは、k列目つまり4列目のビットが「1」であり他のビットは「0」である。行列演算手段56は、行列Mのi行目のワードをデータBとする(ステップS26)。図10の例では、行列Mの7行目は、4列目が「1」その他は「0」となる。AとBのビット毎論理和を演算し、結果をデータAとする(ステップS28)。つまり、データAおよびデータBを比較し、少なくとも一方が「1」のデータAのビットを「1」、他のデータAのビットを「0」とする。図10の例ではデータAは、4列目のビットのみが「1」となる。行列演算手段56は、i=i−1とする(ステップS29)。図10の例では、i=6となる。
行列演算手段56は、iが1かを判定する(ステップS30)。Noの場合、ステップS22に戻る。i=6のため、行列演算手段56は、k=P(6)=1とする(ステップS22)。ステップS24において、探索手段58は、データAおよびkよりデータBを演算する。i=6のデータAの1番目が「0」のビットは1列である。よって、データBは1列目が「1」、他のビットが「0」となる。ステップS26において、行列Mの6行目をデータBとする。ステップS28において、データAの1列目と4列目のビットが「1」となり、他のビットは「0」となる。ステップS29において、i=i−1とする。よって、i=5となる。
さらに、ステップS22において、K=P(5)=5とする。ステップS24において、i=5のデータAの5番目が「0」のビットは7列目である。よって、データBは7列目が「1」、他のビットが「0」となる。ステップS26において、行列Mの5行目をデータBとする。ステップS28において、データAとして1、4、7列目が「1」、その他が「0」となる。このようにして、i=1まで、ステップS22からステップS29を繰り返す。
ステップS30において、i=0の場合、行列演算手段56は、行列Mの0行目は、データAの1の補数とする(ステップS32)。行列演算手段56は、行列Mを入出力手段54に出力する。入出力手段54は、行列Mを出力する。以上で、階乗進数Pの行列Mへの変換が完了する。
実施例2によれば、ステップS20のように、行列演算手段56は、iが階乗進数Pの最大桁のとき、データAのビットを全て「0」(第1所定ビット値)とする。ステップS22のように、行列演算手段56は、階乗進数Pのi桁目をデータkとする。ステップS24のように、探索手段58は、データAとデータkとから実施例1と同じようにデータBを演算する。ステップS26のように、行列演算手段56は、データBを行列Mのi行のデータとする。ステップS28のように、データAおよびデータBの同じビットを比較し、データAのビットが「1」(第1所定ビット値の反対のビット値)およびデータBの対応するビットが「1」(第2所定ビット値)の少なくとも一方の場合、データAの対応するビットを「1」(第1所定ビット値の反対のビット値)とし、他の場合、データAの対応するビットを「0」(第1所定ビット値)とする。以上を階乗進数Pの最大桁から最小桁まで繰り返す。このように、探索手段58が、データAからデータBに1命令で変換可能なため、階乗進数Pから行列Mへの変換を簡単に行うことができる。行列Mを用い、2ビットのデータCを2ビットのデータDに並び替えることができる。
実施例3では、空き資源の割り当てに実施例1の探索回路を用いることにより、複数の資源割当要求に対する空き資源の割り当てを並列に行うことができる。以下、実施例3について説明する。
実施例3は、資源管理プロセッサに実施例1の演算装置を用いた例である。図11は、実施例3の資源管理プロセッサを含むシステム図である。図11において、システムは、資源管理プロセッサ60、プロセッサ62a〜62d、共有資源64を備えている。プロセッサ62a〜62dと共有資源64とは資源アクセスバス65で接続されている。プロセッサ62a〜62dは、複数の共有資源64(例えばプロセッサやメモリ領域)をいくつか用いて処理を行う。プロセッサ62a〜62dは資源管理プロセッサ60と調停信号の送受信を行う。資源管理プロセッサ60は管理ワードに基づき、プロセッサ62a〜62dに使用可能な共有資源を割り当てる。
図12は、プロセッサ62a〜62dが共有資源64の割り当てを要求する際の処理を示すフローチャートである。図12において、プロセッサ62a〜62dは、割当完了信号が0から1になるまで待機する(ステップS40)。ここで、割当完了信号が1のとき割当てが完了していることを示している。プロセッサ62a〜62dは、割当要求信号を1とする(ステップS42)。割当要求信号=1は割当てを要求することを示している。プロセッサ62a〜62dは、割当完了信号が1になるまで待機する(ステップS44)。プロセッサ62a〜62dは、完了返値の中の割当資源IDを保存し、割当要求信号を0とする(ステップS46)。
図13は、プロセッサ62a〜62dが共有資源64の解放を要求する際の処理を示すフローチャートである。図13において、プロセッサ62a〜62dは、解放完了信号が0から1になるまで待機する(ステップS50)。ここで、解放完了信号が1のとき解放が完了していることを示している。プロセッサ62a〜62dは、解放要求信号を1とし、要求引数として解放する資源の集合を示す解放資源集合IDとする(ステップS52)。解放要求信号=1は解放を要求することを示している。プロセッサ62a〜62dは、解放完了信号が1になるまで待機する(ステップS54)。プロセッサ62a〜62dは、解放要求信号を0とする(ステップS56)。
図14は、資源管理プロセッサ60の処理を示すフローチャートである。資源管理プロセッサ60は、解放要求がある場合解放要求処理を行う(ステップS60)。資源管理プロセッサ60は、割当要求がある場合割当要求処理を行う(ステップS62)。資源管理プロセッサ60は、システム終了かを判定する(ステップS64)。Yesの場合終了し、Noの場合、ステップS60に戻る。
図15は、資源管理プロセッサのシステム図である。資源管理プロセッサ60において、プログラム・カウンタ142は命令アドレスにより命令メモリ140から所定の命令を命令フェッチ144に入力する。命令フェッチ144は命令をレジスタに格納する。命令デコード146は、命令を解読し、システム各部の動作を決定する。即値生成148は、即値データを含む命令についてその即値データを再生し、バス100に出力する。
さらに、資源管理プロセッサ60は、4並列資源割当回路70、応答信号結束レジスタ104、レジスタ120、演算回路122およびデータメモリ124を備えている。4並列資源割当回路70は、バス100から割当要求信号結束値96を、バス102から管理ワード66を取得し、応答返値112a〜112dとしてプロセッサ62a〜62dに出力する。ビット毎論理和演算器108は、4並列資源割当回路70の出力をビット毎に論理和し、結果を総合割当資源集合ID110としてバス114に出力する。応答信号結束レジスタ104はバス102から応答信号結束値を取得し、応答信号106a〜106dをプロセッサ62a〜62dに出力する。レジスタ120は、16ビット×16ワードレジスタファイルであり、レジスタR0〜R15を備えている。演算回路122はバス100および122からデータを取得し、演算結果をバス114に出力する。データメモリ124は管理ワード66を記憶しており、演算回路122に管理ワード66を入出力する。
バス84は、プロセッサ62a〜62dからの解放要求信号82a〜82d(各1ビット)を4ビットの解放要求信号結束値86に結束し、バス100に出力する。各セレクタ76a〜76dは、プロセッサ62a〜62dからの解放要求引数(解放する資源ID)72a〜72dと各ビット0の16ビット信号74a〜74dとを、それぞれ解放要求信号82a〜82dに基づき選択する。解放要求信号82a〜82dが「0」のとき、セレクタ76a〜76dは16ビット信号74a〜74dを選択し、解放要求信号82a〜82dが「1」のとき、セレクタ76a〜76dは解放要求引数72a〜72bを選択する。ビット毎論理和演算器78は、セレクタ72a〜72dの出力をビット毎に論理和し、総合解放資源集合ID80としてバス102に出力する。以上により、総合解放資源集合ID80は資源#0〜#15のうちプロセッサ62a〜62dが解放要求する資源に対応するビットが「1」となり、他のビットは「0」となる。バス94は、プロセッサ62a〜62dからの割当要求信号92a〜92d(各1ビット)を4ビットの割当要求信号結束値96に結束し、バス102に出力する。
図16は、図14における解放要求処理(ステップS60)の詳細の処理を示す図である。演算回路122は、バス100上の解放要求信号結束値86をレジスタR0にセットする(ステップS70)。演算回路122は、レジスタR0が「0」でないかを判定する(ステップS72)。Noの場合、終了する。Yesの場合、演算回路122は、バス102上の総合解放資源集合ID80をレジスタR1にセットする。レジスタR1のビット毎論理否定をレジスタR1にセットする。演算回路122を経由してバス114に出力された管理ワード66をレジスタR2にセットする。レジスタR1とレジスタR2とのビット毎論理積をレジスタR2にセットする。レジスタR2を、バス102および演算回路122を経由して管理ワード66にセットする(以上ステップS74)。以上により、総合解放資源集合ID80が「1」のビットに対応する管理ワードのビットが「0」(不使用)になる。
応答信号結束レジスタ104に、レジスタR0をセットする(ステップS76)。これにより、応答信号結束レジスタ104からプロセッサ62a〜62dのうち解放要求を行ったプロセッサに応答信号116a〜116d(ビットが「1」)が送信される。演算回路122は、解放要求信号結束値86をレジスタR2にセットし、レジスタR0とR2のビット毎論理積をレジスタR3にセットする(ステップS78)。演算回路122は、R3が0かを判定する(ステップS80)。Yesの場合終了し、Noの場合、ステップS78に戻る。これにより、全てのプロセッサ62a〜62dが解放要求信号を取り下げると、終了する。
図17は、図14における割当要求処理(ステップS62)の詳細の処理を示す図である。演算回路122は、バス100上の割当要求信号結束値96をレジスタR0にセットする(ステップS90)。演算回路122は、レジスタR0が「0」でないかを判定する(ステップS92)。Noの場合、終了する。Yesの場合、演算回路122は、管理ワード66をレジスタR1にセットし、レジスタR2に「0」をセットする(ステップS94)。ステップS96において、4並列資源割当回路70は、レジスタR0とj(jは0から3の整数)を入力に4ビット指定順ゼロビット探索を行い、結果をレジスタR3にセットする。4並列資源割当回路70は、レジスタR1とj(jは0から3の整数)とを入力に16ビット指定順ゼロビット探索を行い、結果をレジスタR4にセットする。レジスタR3が表す調停信号のプロセッサに対して、レジスタR4が表す資源を割り当てる。すなわち、レジスタR4が表す資源の使用開始処理を必要に応じて行うとともに、レジスタR3が表す調停信号の応答返値としてレジスタR4の値をセットする。レジスタR2とレジスタR4とのビット毎論理和をレジスタR2にセットする。ステップS96は、4並列資源割当回路70を用いることによりj=0からj=3について並列に実行することができる。レジスタR1とレジスタR2とのビット毎論理和をレジスタR1にセットする。レジスタR1を、バス102および演算回路122を経由して管理ワード66にセットする(ステップS97)。以上により、本割当要求処理により新たに割り当てられた各資源に対応する管理ワードのビットが「1」(使用)になる。
応答信号結束レジスタ104に、レジスタR0をセットする(ステップS98)。演算回路122は、割当要求信号結束値をレジスタR2にセットし、レジスタR0とR2のビット毎論理積をレジスタR3にセットする(ステップS100)。演算回路122は、R3が0かを判定する(ステップS102)。Yesの場合終了し、Noの場合、ステップS78に戻る。
図18は、4並列資源割当回路70を示すブロック図である。図18において、4並列資源割当回路70は、4ビット探索回路130a〜130d(第2演算手段)、16ビット探索回路132a〜132d(第1演算手段)および一進セレクタ回路136a〜136d(割当手段)を有している。4ビット探索回路130a〜130dと16ビット探索回路132a〜132dとは対応して設けられている。4ビット探索回路130a〜130dはデータA2として4ビットが入力する探索回路であり、実施例1の探索回路と同じ機能を備えている。16ビット探索回路132a〜132dはデータA1として16ビットが入力する探索回路であり、実施例1の探索回路と同じ機能を備えている。
16ビット探索回路132a〜132dには、バス102上の管理ワード66がデータA1、それぞれj=0〜3がデータk1として入力される。つまり、データA1は、各ビットが複数の共有資源64のうち対応する資源の使用未使用を示す。また、データk1は複数の4ビット探索回路130a〜130d毎に異なる値である。16ビット探索回路132a〜132dは、j番目の使用されていない共有資源64に対応するビットを「1」とし他のビットを「0」としたデータB1を一進セレクタ回路136a〜136dのそれぞれ入力DA〜DDに出力する。
図19(a)は、管理ワード66の例を示す図である。各ビットが資源#0〜#15に対応しており、ビット値が「0」に対応する資源は未使用、ビット値が「1」に対応する資源は使用中を示している。図19(a)の例では、未使用の資源は、資源#1、#4、#6、#7である。図19(b)は、各16ビット探索回路132a〜132dが出力するデータB1を示す図である。この例では、各16ビット探索回路132a〜132dが出力するデータB1は、それぞれ資源#1、#4、#6、#7〜#15に対応するビットが「1」、その他のビットが「0」となる。
4ビット探索回路130a〜130dには、バス100上の割当要求信号結束値96の反転(ビット毎論理否定値)97がデータA2、それぞれj=0〜3がデータk2として入力される。つまり、データA2は、各ビットが資源の割当を要求する複数のプロセッサのうち対応するプロセッサを示す。データk2は、対応する16ビット探索回路132a〜132dのデータk1と同じ値である。4ビット探索回路130a〜130dは、割当要求信号を送信したプロセッサ62a〜62dのうちの、62aから62dに向かう方向に数えてj番目に当たるプロセッサに対応するビットを「1」とし他のビットを「0」としたデータB2を4ビット信号分解点134aに出力する。
図20(a)は、割当要求信号結束値の反転97を示す図である。各ビットがプロセッサ62a〜62dに対応しており、ビット値が「1」に対応するプロセッサは資源の割り当てを要求していない。ビット値が「0」に対応するプロセッサは資源の割り当てを要求している。資源の割り当てを要求しているプロセッサはプロセッサ62aおよび62cである。図20(b)は、4ビット探索回路130a〜130dがそれぞれ出力するデータB2を示す図である。この例では、4ビット探索回路130aおよび130bが出力するデータB2は、それぞれプロセッサ62aおよび62bに対応するビットが「1」、その他のビットが「0」となる。4ビット探索回路130cおよび130dが出力するデータB2は対応するプロセッサがないため、全てのビットが「0」である。
4ビット信号分解点134aの0ビット目(最下位ビット)から3ビット目(最上位ビット)はそれぞれ一進セレクタ回路136a〜136dの入力SDに入力する。4ビット信号分解点134bの1ビット目から3ビット目はそれぞれ一進セレクタ回路136b〜136dの入力SCに入力する。4ビット信号分解点134cの2ビット目から3ビット目はそれぞれ一進セレクタ回路136c〜136dの入力SBに入力する。4ビット信号分解点134dの3ビット目は一進セレクタ回路136dの入力SAに入力する。一進セレクタ回路136aの入力SA〜SC、一進セレクタ回路136bの入力SA〜SB、一進セレクタ回路136cの入力SAには各々「0」が入力される。
一進セレクタ回路136は、入力SA〜SDに対応し、入力DA〜DDを出力する回路である。図21は、入力SA〜SDに対し出力Oを示す図である。図21において、入力SAのみが「1」で他が「0」のとき、一進セレクタ回路136は、入力DAを出力Oとして出力する。同様に、入力SB〜SDのみが「1」のとき、それぞれ入力DB〜DDを出力Oとして出力する。
図18において、一進セレクタ回路136a〜136dは、それぞれプロセッサ62a〜62dに、割り当てられた資源に対応するビットが「1」の応答返値112aを送信する。以上により、割当要求をしているプロセッサ62a〜62dのうちの、62aから62dに向かう方向に数えてj番目に当たるプロセッサには、j番目に未使用の資源を割り当てることができる。
図22は、図19(a)〜図20(b)の例における、各一進セレクタ回路136a〜136dの出力である各プロセッサ62a〜62dへの応答返値112a〜112dを示す図である。図22において、資源割り当てを要求したプロセッサのうちの0番目である62aには、0番目に未使用の資源#1が割り当てられる。よって、応答返値112aは、資源#1に対応する1番目のビットのみが「1」である。資源割り当てを要求したプロセッサのうちの1番目である62cには、1番目に未使用の資源#4が割り当てられる。よって、応答返値112cは、資源#4に対応する4番目のビットのみが「1」である。プロセッサ62bおよび62dは、資源割り当てを要求していないため、応答返値112bおよび112dは全てのビットが「0」である。
実施例3によれば、16ビット検索回路132a〜132dが並列にデータB1を演算する。一進セレクタ回路136a〜136dは、複数のデータB1の「1」(第2所定ビット値)であるビットに対応する資源を、資源の割当を要求する複数のプロセッサにそれぞれ割り当てる。これにより、管理ワード66から並列に資源をプロセッサ62a〜62dに割り当てることができる。
また、一進セレクタ回路136a〜136dは、データk1に対応する16ビット探索回路132a〜132dが演算したデータB1の「1」(第2所定ビット値)に対応する資源を、データk2と同じ値のデータk2に対応する4ビット探索回路130a〜130dが演算したデータB2の「1」(第2所定ビット値)に対応するプロセッサ62a〜62dに割り当てる。これにより、管理ワード66および割当要求信号結束値96から並列に資源をプロセッサ62a〜62dに割り当てることができる。
また、複数の探索回路132a〜132dが同一のデータAとそれぞれ異なるデータkを用い、それぞれデータBを並列に演算する。これにより、資源割当を逐次実行せず、並列に実行することができる。
以上、本発明の実施例について詳述したが、本発明は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
図1は、実施例1に係るマイクロプロセッサを有するコンピュータのブロック図である。 図2は、実施例1に係るマイクロプロセッサを示すシステム図である。 図3は、探索回路の機能を説明するための図である。 図4は、マイクロプロセッサの処理を示すフローチャートである。 図5は、探索回路の回路図である。 図6は、ワードサイズに対する行列Mおよび階乗進数Pの表現サイズを示す図である。 図7は、実施例2のマイクロプロセッサのシステム図である。 図8は、実施例2に係る演算装置の機能ブロック図である。 図9は、実施例2に係る演算装置の処理を示すフローチャートである。 図10は、階乗進数Pから行列Mを演算する処理の例を示す図である。 図11は、実施例3の資源管理プロセッサを含むシステム図である。 図12は、プロセッサが共有資源の割り当てを要求する際の処理を示すフローチャートである。 図13は、プロセッサが共有資源の解放を要求する際の処理を示すフローチャートである。 図14は、資源管理プロセッサの処理を示すフローチャートである。 図15は、資源管理プロセッサのシステム図である。 図16は、図14における解放要求処理の詳細の処理を示す図である。 図17は、図14における割当要求処理の詳細の処理を示す図である。 図18は、4並列資源割当回路を示すブロック図である。 図19(a)は、管理ワードの例を示す図であり、図19(b)は、データB1の例を示す図である。 図20(a)は、資源要求信号結束値の反転の例を示す図であり、図20(b)は、データB2の例を示す図である。 図21は、入力SA〜SDに対する出力Oを示す図である。 図22は、応答返値の例を示す図である。
符号の説明
10 マイクロプロセッサ
12 探索回路
14 レジスタ
30 iビット演算回路
32 OR回路
34 デクリメント回路
40 行列ベクトル積回路
42 行列レジスタ
52 演算手段
54 入出力手段
56 行列演算手段
58 探索手段
60 資源管理プロセッサ
62 プロセッサ
64 共有資源
66 管理ワード
70 4並列資源割当回路
130 4ビット探索回路
132 16ビット探索回路
136 一進セレクタ回路

Claims (8)

  1. ビットのデータAおよびnビットのデータkを入力するデータ入力手段と、
    前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータBを演算する演算手段と、
    前記データBの各ビット値を同時並行的に出力するデータ出力手段と、
    を具備することを特徴とする演算装置。
  2. 前記演算手段は、
    前記データAの前記所定方向に数えたi番目のビットのビット値が前記第1所定ビット値の場合、nビットのデータkから1を減ずるiビットデクリメント回路と、
    前記データAのi番目のビットが前記第1所定ビット値であり、かつ、iが1以上の場合はi−1ビットデクリメント回路の出力データk、またはiが0の場合は入力されたデータkの値のが0の場合、前記データBのi番目のビットのビット値を前記第2所定ビット値とし、他の場合、前記データBのi番目のビットのビット値を前記第2所定ビット値の反対のビット値とするiビット判定回路と、
    を具備することを特徴とする請求項1記載の演算装置。
  3. 前記演算装置はマイクロプロセッサであって、
    前記データA、前記データkおよび前記データBを記憶するレジスタを具備し、
    前記データ入力手段およびデータ出力手段は内部バスであり、
    前記演算手段は、前記レジスタから前記データ入力手段を介し前記データAおよびデータkを取得し、前記データ出力手段を介し前記レジスタに前記データBの各ビット値を同時並行的に出力することを特徴とする請求項1または2記載の演算装置。
  4. 前記演算手段は、1つの命令に対応し前記データBを演算することを特徴とする請求項3記載の演算装置。
  5. 桁からなる階乗進数Pを入力するデータ入力手段と、
    自然数iが前記階乗進数Pの最大桁のとき、2ビットのデータAのビットを全て第1所定ビット値とし、
    前記階乗進数Pのi桁目をnビットのデータkとし、
    前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が前記第1所定ビット値であるk番目のビットのみが1であり他の全てのビット値が0である2ビットのデータBを演算し、
    前記データBを2×2行列Mのi行のデータとし、
    前記データAおよび前記データBの同じビットを比較し、前記データAのビットが前記第1所定ビット値の反対のビット値である場合および前記データBの対応するビットが1である場合の少なくとも一方の場合、前記データAの対応するビットを前記第1所定ビット値の反対のビット値とし、他の場合、前記データAの対応するビットを前記第1所定ビット値とする、
    ことを前記階乗進数Pの前記最大桁から最小桁まで繰り返す演算手段と、
    を具備することを特徴とする行列演算装置。
  6. 各ビットが複数の資源のうち対応する資源の使用未使用を示す2ビットのデータA1と複数の第1演算手段毎に異なる値であるnビットのデータk1とが入力し、前記データA1の最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk1番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータB1を並列に演算する前記複数の第1演算手段と、
    複数の前記データB1の前記第2所定ビット値の対応する資源を、資源の割当を要求する複数のプロセッサにそれぞれ割り当てる割当手段と、
    を具備することを特徴とする資源割当装置。
  7. 前記複数の第1演算手段と対応し設けられ、各ビットが前記資源の割当を要求する複数のプロセッサのうち対応するプロセッサを示す2ビットのデータA2と対応する前記第1演算手段の前記データk1と同じ値であるmビットのデータk2とが入力し、前記データA2の最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk2番目のビットのみが第2所定ビット値であり他の全てのビット値が前期第2所定ビット値の反対のビット値である2ビットのデータB2を演算する前記複数の第2演算手段を具備し、
    前記割当手段は、前記データk1に対応する前記第1演算手段が演算したデータB1の前記第2所定ビット値の対応する資源を、前記データkと同じ値の前記データk2に対応する前記第2演算手段が演算したデータB1の前記第2所定ビット値の対応するプロセッサに割り当てることを特徴とする請求項6記載の資源割当装置。
  8. レジスタを備えるマイクロプロセッサを用い、2ビットのデータAおよびnビットのデータkから2ビットのデータBを演算する演算方法であって、
    前記レジスタから前記データAおよび前記データkを取得するステップと、
    前記データAの最小有効ビットおよび最大有効ビットのいずれか一方のビットから他方のビットに向かう所定の方向に数え、ビット値が第1所定ビット値であるk番目のビットのみが第2所定ビット値であり他の全てのビット値が前記第2所定ビット値の反対のビット値である2ビットのデータBを演算するステップと、
    前記レジスタに前記データBの各ビットを同時並行的に出力するステップと、
    を具備することを特徴とする演算方法。
JP2008212270A 2008-08-20 2008-08-20 演算装置、行列演算装置、資源割当装置および演算方法 Expired - Fee Related JP5169618B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008212270A JP5169618B2 (ja) 2008-08-20 2008-08-20 演算装置、行列演算装置、資源割当装置および演算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008212270A JP5169618B2 (ja) 2008-08-20 2008-08-20 演算装置、行列演算装置、資源割当装置および演算方法

Publications (3)

Publication Number Publication Date
JP2010049430A true JP2010049430A (ja) 2010-03-04
JP2010049430A5 JP2010049430A5 (ja) 2011-06-16
JP5169618B2 JP5169618B2 (ja) 2013-03-27

Family

ID=42066472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008212270A Expired - Fee Related JP5169618B2 (ja) 2008-08-20 2008-08-20 演算装置、行列演算装置、資源割当装置および演算方法

Country Status (1)

Country Link
JP (1) JP5169618B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04266119A (ja) * 1991-02-21 1992-09-22 Matsushita Electric Ind Co Ltd ビットサーチ回路
JPH04370830A (ja) * 1991-06-20 1992-12-24 Fujitsu Ltd 中央処理装置
JPH11296160A (ja) * 1998-04-07 1999-10-29 Sony Corp エンコーダおよびその方法とグラフィック演算装置
JP2000137597A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd ビットサーチ装置、及びビットサーチ方法
JP2000259392A (ja) * 1999-03-09 2000-09-22 Toshiba Corp 論理回路

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04266119A (ja) * 1991-02-21 1992-09-22 Matsushita Electric Ind Co Ltd ビットサーチ回路
JPH04370830A (ja) * 1991-06-20 1992-12-24 Fujitsu Ltd 中央処理装置
JPH11296160A (ja) * 1998-04-07 1999-10-29 Sony Corp エンコーダおよびその方法とグラフィック演算装置
JP2000137597A (ja) * 1998-10-30 2000-05-16 Fujitsu Ltd ビットサーチ装置、及びビットサーチ方法
JP2000259392A (ja) * 1999-03-09 2000-09-22 Toshiba Corp 論理回路

Also Published As

Publication number Publication date
JP5169618B2 (ja) 2013-03-27

Similar Documents

Publication Publication Date Title
US7856102B2 (en) Methods and apparatus for providing a message authentication code using a pipeline
US10545865B2 (en) Systems and methods for implementing low-latency lookup circuits using sparse hash functions
Salmon et al. Parallel random numbers: as easy as 1, 2, 3
CN102096609B (zh) 可编程循环冗余校验(crc)计算的指令集架构
Gupta et al. Pqc acceleration using gpus: Frodokem, newhope, and kyber
TWI610184B (zh) 有效地執行散列運算的方法及設備
JP2018500653A (ja) ベクトルブロードキャストおよびxorand論理命令のための装置および方法
US9240237B2 (en) Semiconductor device and method of writing/reading entry address into/from semiconductor device
Plaisance et al. Vectorized vbyte decoding
TW201337632A (zh) 用以處理blake安全雜湊演算法的指令處理器、方法及系統
US6119198A (en) Recursive address centrifuge for distributed memory massively parallel processing systems
TW201732734A (zh) 用於加速圖形分析的設備及方法
CN112930526B (zh) 使用水平聚合SIMD指令对d-堆进行向量化的方法
Zhai et al. Accelerating encrypted computing on intel gpus
US5765181A (en) System and method of addressing distributed memory within a massively parallel processing system
CN1735013A (zh) 用于执行md5摘要的设备和方法
CN114095149B (zh) 信息加密方法、装置、设备及存储介质
Wang et al. Saber on ESP32
JP6614632B2 (ja) ビットを選択する所定位置を変更することでハッシュ関数を1つ以上生成することが可能なハッシュ値を計算する方法、並びに、その為のコンピュータ及びコンピュータ・プログラム
CN104011709A (zh) 在256位数据路径中执行jh加密散列的指令
JP5169618B2 (ja) 演算装置、行列演算装置、資源割当装置および演算方法
CN101361278B (zh) 奇偶校验位生成电路、计数电路以及计数方法
Hernando et al. Algorithm 994: fast implementations of the Brouwer-Zimmermann algorithm for the computation of the minimum distance of a random linear code
US8495275B2 (en) List structure control circuit
Ali et al. Exploring the parallel capabilities of GPU: Berlekamp-Massey algorithm case study

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110421

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120814

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120815

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121010

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

LAPS Cancellation because of no payment of annual fees