TOP > 国内特許検索 > 演算装置

演算装置

国内特許コード P150011416
整理番号 S2013-0621-N0
掲載日 2015年2月26日
出願番号 特願2013-055660
公開番号 特開2014-182514
出願日 平成25年3月18日(2013.3.18)
公開日 平成26年9月29日(2014.9.29)
発明者
  • 中島 康彦
出願人
  • 国立大学法人 奈良先端科学技術大学院大学
発明の名称 演算装置
発明の概要 【課題】狭ビット幅の演算装置を用いて広ビット幅の演算装置をエミュレート可能なエミュレーション技術を提供する。
【解決手段】Nビット幅の演算ユニット10と、複数のエミュレーション命令を格納するエミュレーション命令記憶ユニット19と、演算ユニット10に入力されるデータを格納するNビット幅の入力演算レジスタ群を複数個有する入力演算レジスタ群13と、演算ユニット10の演算結果を格納するNビット幅の出力演算レジスタを複数個有する出力演算レジスタ群14とを備える演算装置100である。
【選択図】図1
従来技術、競合技術の概要



コンピュータ製造業者は、新たな命令セットへ移行することにより新たなコンピュータにおいてより大きなアドレス空間へ遷移する傾向がある。新たな命令組へ移行することは、ユーザ及び製造業者の両方にとって潜在的に致命的な結果をもたらすことがある。ユーザの観点からは、このことは、古いマシンに対して書かれたプログラムが新しいマシンでは稼動しないことを意味している。ソフトウェアにかなりの投資をしたユーザは、ソフトウェアを変換するか又は置換するための費用を支払うか又は新しいマシンにおいて組み込まれた種々の進んだものの利点を諦めるかの何れかの不快な決断に迫られる。製造業者の観点からは、このような移行は、ユーザの憤りを買い且つこのような新しいマシンの当初の販売が停滞することとなる蓋然性がある。





このような状況を考慮して、例えば、特許文献1には、コンピュータアーキテクチュアに関するものであって、より大きなワード寸法及びアドレス空間を持つために命令セットアーキテクチュアを拡張する技術が開示されている。この特許文献1に開示されたプロセッサによれば、例えば、32ビット整数演算をサブセットとして有する64ビット整数演算を実行し、且つ、32ビットアドレッシングをサブセットとして有する64ビットアドレッシングを実行することができる。

産業上の利用分野



本発明は、演算装置に関する。特に、本発明は、狭ビット幅の演算装置を用いて広ビット幅の演算装置をエミュレート可能なエミュレーション技術に関する。

特許請求の範囲 【請求項1】
Nビット幅の演算ユニットと、
複数のエミュレーション命令を格納する記憶ユニットと、
前記演算ユニットに入力されるデータを格納するNビット幅の入力演算レジスタを複数個有する入力演算レジスタ群と、
前記演算ユニットの演算結果を格納するNビット幅の出力演算レジスタを複数個有する出力演算レジスタ群と
を備えることを特徴とする演算装置。

【請求項2】
前記演算装置は、前記演算ユニットの演算結果を一時的に格納する作業レジスタをさらに備え、
前記エミュレーション命令は、前記記憶ユニットに含まれるNビットオペランドの値(S)を用いて、前記入力演算レジスタX1の下位(N-S)ビットと前記入力演算レジスタX0の上位Sビットとを連結し、当該連結されたNビットデータを前記作業レジスタに格納する命令であることを特徴とする請求項1に記載の演算装置。

【請求項3】
前記演算装置は、前記演算ユニットの演算結果を一時的に格納する作業レジスタをさらに備え、
前記エミュレーション命令は、前記記憶ユニットに含まれるNビットのオフセット値を用いてNビットデータを取得し、当該取得されたNビットデータの上位N/2ビットをU、前記Nビットデータの下位N/2ビットと前記作業レジスタの下位N/2ビットの反転値との論理積をL1、前記作業レジスタの上位N/2ビットと前記作業レジスタの下位N/2ビットとの論理積をL2として、前記Uと、前記L1と前記L2との論理和とを連結し、当該連結されたNビットデータを前記作業レジスタに格納する命令であることを特徴とする請求項1に記載の演算装置。

【請求項4】
前記演算装置は、前記演算ユニットの演算結果を一時的に格納する作業レジスタをさらに備え、
前記エミュレーション命令は、前記記憶ユニットに含まれるNビットのオフセット値を用いてNビットデータを取得し、当該取得されたNビットデータの上位N/2ビットと前記作業レジスタの下位N/2ビットの反転値との論理積をU1、前記作業レジスタの上位N/2ビットと前記作業レジスタの下位N/2ビットとの論理積をU2、前記Nビットデータの下位N/2ビットをLとして、前記U1と前記U2との論理和と、前記Lとを連結し、当該連結されたNビットデータを前記作業レジスタに格納する命令であることを特徴とする請求項1に記載の演算装置。

【請求項5】
前記演算装置は、
メモリからのデータ転送を行なうことなく、前記演算ユニットが演算する回数をカウントし、当該カウント数を格納する演算回数カウンタと、
4つの条件コードフラグである、ネガティブ、ゼロ、キャリーおよびオーバフローを格納する条件コードレジスタと
をさらに備え、
前記エミュレーション命令は、
前記演算回数カウンタが初期値の場合には、前記出力演算レジスタY3を右に1ビットシフトして前記出力演算レジスタY3に格納し、追い出される前記出力演算レジスタY3の最下位ビットを前記条件コードレジスタに格納し、前記出力演算レジスタY3に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+1の場合には、前記出力演算レジスタY2を右に1ビットシフトして前記出力演算レジスタY2に格納し、追い出される前記出力演算レジスタY2の最下位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY2に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+2の場合には、前記出力演算レジスタY1を右に1ビットシフトして前記出力演算レジスタY1に格納し、追い出される前記出力演算レジスタY1の最下位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY1に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+3の場合には、前記出力演算レジスタY0を右に1ビットシフトして前記出力演算レジスタY0に格納し、追い出される前記出力演算レジスタY0の最下位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY0に格納される値が0であるときに前記条件コードレジスタに1をセットする命令であることを特徴とする請求項1に記載の演算装置。

【請求項6】
前記エミュレーション命令は、
前記出力演算レジスタY3を右に1ビットシフトして前記出力演算レジスタY3に格納するとき、前記出力演算レジスタY3の最上位ビットに0または前記条件コードレジスタの値を格納し、
前記出力演算レジスタY2を右に1ビットシフトして前記出力演算レジスタY2に格納するとき、前記出力演算レジスタY2の最上位ビットに前記条件コードレジスタの値を格納し、
前記出力演算レジスタY1を右に1ビットシフトして前記出力演算レジスタY1に格納するとき、前記出力演算レジスタY1の最上位ビットに前記条件コードレジスタの値を格納し、
前記出力演算レジスタY0を右に1ビットシフトして前記出力演算レジスタY0に格納するとき、前記出力演算レジスタY0の最上位ビットに前記条件コードレジスタの値を格納する命令であることを特徴とする請求項5に記載の演算装置。

【請求項7】
前記演算装置は、
メモリからのデータ転送を行なうことなく、前記演算ユニットが演算する回数をカウントし、当該カウント数を格納する演算回数カウンタと、
4つの条件コードフラグである、ネガティブ、ゼロ、キャリーおよびオーバフローを格納する条件コードレジスタと
をさらに備え、
前記エミュレーション命令は、
前記演算回数カウンタが初期値の場合には、前記出力演算レジスタY0を左に1ビットシフトして前記出力演算レジスタY0に格納し、追い出される前記出力演算レジスタY0の最上位ビットを前記条件コードレジスタに格納し、前記出力演算レジスタY0に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+1の場合には、前記出力演算レジスタY1を左に1ビットシフトして前記出力演算レジスタY1に格納し、追い出される前記出力演算レジスタY1の最上位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY1に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+2の場合には、前記出力演算レジスタY2を左に1ビットシフトして前記出力演算レジスタY2に格納し、追い出される前記出力演算レジスタY2の最上位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY2に格納される値が0であるときに前記条件コードレジスタに1をセットし、前記演算回数カウンタに1を加え、
前記演算回数カウンタが初期値+3の場合には、前記出力演算レジスタY3を左に1ビットシフトして前記出力演算レジスタY3に格納し、追い出される前記出力演算レジスタY3の最上位ビットを前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY3に格納される値が0であるときに前記条件コードレジスタに1をセットする命令であることを特徴とする請求項1に記載の演算装置。

【請求項8】
前記エミュレーション命令は、
前記出力演算レジスタY0を左に1ビットシフトして前記出力演算レジスタY0に格納するとき、前記出力演算レジスタY0の最下位ビットには0または前記条件コードレジスタの値を格納し、
前記出力演算レジスタY1を左に1ビットシフトして前記出力演算レジスタY1に格納するとき、前記出力演算レジスタY1の最下位ビットには前記条件コードレジスタの値を格納し、
前記出力演算レジスタY2を左に1ビットシフトして前記出力演算レジスタY2に格納するとき、前記出力演算レジスタY2の最下位ビットには前記条件コードレジスタの値を格納し、
前記出力演算レジスタY3を左に1ビットシフトして前記出力演算レジスタY3に格納するとき、前記出力演算レジスタY3の最下位ビットには前記条件コードレジスタの値を格納する命令であることを特徴とする請求項7に記載の演算装置。

【請求項9】
前記演算装置は、前記演算ユニットが次に実行すべき命令のアドレスを格納するプログラムカウンタをさらに備え、
前記エミュレーション命令は、
前記記憶ユニットに含まれるオペランドの上位N/2ビットが第1の値の場合には、前記オペランドの次アドレスに、前記入力演算レジスタXの下位N/2ビットの値をQ倍した値を加え、新たなアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第2の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの下位N/2ビットとの論理和を求め、
当該論理和の結果がAll-1のとき、前記オペランドの次アドレスに、前記入力演算レジスタXの下位N/2ビットの値をQ倍した値を加え、新たなアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記論理和の結果がAll-1でないとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第3の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの下位N/2ビットとの論理積を求め、
当該論理積の結果がAll-0のとき、前記オペランドの次アドレスに、前記入力演算レジスタXの下位N/2ビットの値をQ倍した値を加え、新たなアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記論理積の結果がAll-0でないとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第4の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの下位N/2ビットとの排他論理和を求め、
当該排他論理和の結果がAll-0のとき、前記オペランドの次アドレスに、前記入力演算レジスタXの下位N/2ビットの値をQ倍した値を加え、新たなアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記排他論理和の結果がAll-0のとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加える命令であることを特徴とする請求項1に記載の演算装置。

【請求項10】
前記演算装置は、前記演算ユニットが次に実行すべき命令のアドレスを格納するプログラムカウンタをさらに備え、
前記エミュレーション命令は、
前記記憶ユニットに含まれるオペランドの上位N/2ビットが第1の値の場合には、前記オペランドの次アドレスに、前記入力演算レジスタXの上位N/2ビットの値をQ倍した値を加え、新たなアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第2の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの上位N/2ビットとの論理和を求め、
当該論理和の結果がAll-1のとき、前記オペランドの次アドレスにQを加えたアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記論理和の結果がAll-1でないとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第3の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの上位N/2ビットとの論理積を求め、
当該論理積の結果がAll-0のとき、前記オペランドの次アドレスにQを加えたアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記論理積の結果がAll-0でないとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記オペランドの上位N/2ビットが第4の値の場合には、前記オペランドの下位N/2ビットと前記入力演算レジスタXの上位N/2ビットとの排他論理和を求め、
当該排他論理和の結果がAll-0のとき、前記オペランドの次アドレスにQを加えたアドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加え、
前記排他論理和の結果がAll-0でないとき、前記オペランドの次アドレスから取得したQバイトの値の一部または全部を前記プログラムカウンタに加える命令であることを特徴とする請求項1に記載の演算装置。

【請求項11】
前記演算装置は、メモリからのバースト転送が開始すると、当該バースト転送開始後、前記メモリから到着するデータブロックをカウントし、当該カウント数を格納するレディカウンタと、
4つの条件コードフラグである、ネガティブ、ゼロ、キャリーおよびオーバフローを格納する条件コードレジスタと
をさらに備え、
前記エミュレーション命令は、
前記記憶ユニットに含まれるNビットのオフセット値を用いて、前記メモリから複数のNビットデータを取得し、
前記レディカウンタが初期値かつメモリバス上に前記メモリから到着した有効なデータがあることを示す信号であるデータレディ信号がオンの場合には、前記出力演算レジスタY0と前記メモリバス上のNビットデータD0とを加算して前記出力演算レジスタY0に格納し、桁上げ信号を前記条件コードレジスタに格納し、前記出力演算レジスタY0に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+1かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY1と前記メモリバス上のNビットデータD1と前記条件コードレジスタとを加算して前記出力演算レジスタY1に格納し、桁上げ信号を前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY1に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+2かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY2と前記メモリバス上のNビットデータD2と前記条件コードレジスタとを加算して前記出力演算レジスタY2に格納し、桁上げ信号を前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY2に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+3かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY3と前記メモリバス上のNビットデータD3と前記条件コードレジスタを加算して前記出力演算レジスタY3に格納し、桁上げ信号を前記条件コードレジスタに格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY3に格納される値が0であるときに前記条件コードレジスタに1をセットする命令であることを特徴とする請求項1に記載の演算装置。

【請求項12】
前記演算装置は、メモリからのバースト転送が開始すると、当該バースト転送開始後、前記メモリから到着するデータブロックをカウントし、当該カウント数を格納するレディカウンタと、
4つの条件コードフラグである、ネガティブ、ゼロ、キャリーおよびオーバフローを格納する条件コードレジスタと
をさらに備え、
前記エミュレーション命令は、
前記記憶ユニットに含まれるNビットのオフセット値を用いて、前記メモリから複数のNビットデータを取得し、
前記レディカウンタが初期値かつメモリバス上に前記メモリから到着した有効なデータがあることを示す信号であるデータレディ信号がオンの場合には、前記出力演算レジスタY0とメモリバス上のNビットデータD0とを論理演算して前記出力演算レジスタY0に格納し、前記出力演算レジスタY0に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+1かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY1と前記メモリバス上のNビットデータD1とを論理演算して前記出力演算レジスタY1に格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY1に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+2かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY2と前記メモリバス上のNビットデータD2とを論理演算して前記出力演算レジスタY2に格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY2に格納される値が0であるときに前記条件コードレジスタに1をセットし、
前記レディカウンタが初期値+3かつ前記データレディ信号がオンの場合には、前記出力演算レジスタY3と前記メモリバス上のNビットデータD3とを論理演算して前記出力演算レジスタY3に格納し、前記条件コードレジスタの値が1かつ前記出力演算レジスタY3に格納される値が0であるときに前記条件コードレジスタに1をセットする命令であることを特徴とする請求項1に記載の演算装置。
国際特許分類(IPC)
Fターム
画像

※ 画像をクリックすると拡大します。

JP2013055660thum.jpg
出願権利状態 公開
ライセンスをご希望の方、特許の内容に興味を持たれた方は、下記「問合せ先」までお問い合わせください。


PAGE TOP

close
close
close
close
close
close
close