(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6242615
(24)【登録日】2017年11月17日
(45)【発行日】2017年12月6日
(54)【発明の名称】マイクロプロセッサ内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステム
(51)【国際特許分類】
G06F 9/30 20060101AFI20171127BHJP
G06F 9/34 20060101ALI20171127BHJP
【FI】
G06F9/30 350E
G06F9/34 320C
【請求項の数】19
【外国語出願】
【全頁数】17
(21)【出願番号】特願2013-142053(P2013-142053)
(22)【出願日】2013年7月5日
(62)【分割の表示】特願2009-510126(P2009-510126)の分割
【原出願日】2007年5月7日
(65)【公開番号】特開2013-242892(P2013-242892A)
(43)【公開日】2013年12月5日
【審査請求日】2013年8月5日
【審判番号】不服2016-7342(P2016-7342/J1)
【審判請求日】2016年5月19日
(31)【優先権主張番号】11/431,300
(32)【優先日】2006年5月10日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100109830
【弁理士】
【氏名又は名称】福原 淑弘
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】マオ・ジェング
(72)【発明者】
【氏名】ルシアン・コドレスキュ
【合議体】
【審判長】
辻本 泰隆
【審判官】
高木 進
【審判官】
石井 茂和
(56)【参考文献】
【文献】
特開平10−512988(JP,A)
【文献】
特開2005−174293(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/38
(57)【特許請求の範囲】
【請求項1】
レジスタファイル構造内の隣接しないレジスタユニットからのデータを適切に整列させることが要求される演算を行うにあたって単一の命令を実行するプロセッサを含むコンピュータによって読み取り可能な記録媒体であって、
前記単一の命令は、前記記録媒体内に格納され、前記プロセッサによって実行されたときに、前記プロセッサに、
前記レジスタファイル構造内の2つの隣接しないソースレジスタユニットを特定させ、
最上位半語ユニットの特定された各々の幅に基づいて、対応する最上位半語ユニットを前記2つの隣接しないソースレジスタユニットから取り出させ、
前記最上位半語ユニットを結合して結合された最上位語ユニットを生成させ、
前記結合された最上位語ユニットを行き先レジスタユニットの最上位部分内に入力させ、ここにおいて、前記行き先レジスタユニットは、前記2つの隣接しないソースレジスタユニットのうちのいずれか一方よりも大きく、前記2つの隣接しないソースレジスタユニットは、レジスタユニットの整列された対としてアクセス不能であり、前記行き先レジスタユニットは、単一の倍語行き先レジスタユニットまたは整列された対のレジスタユニットを具備する、
前記2つの隣接しないソースレジスタユニットからの対応する最下位半語ユニットを結合して結合された最下位語ユニットを生成させ、
前記結合された最下位語ユニットを前記行き先レジスタユニットの最下位部分内に入力させ、
前記行き先レジスタユニットを前記レジスタファイル構造内に格納させる、コンピュータによって読み取り可能な記録媒体。
【請求項2】
前記単一の命令の実行は、さらに、前記プロセッサに、
前記2つの隣接しないソースレジスタユニットと関連づけられた第1のデータをメモリから取り出させ、
前記2つの隣接しないソースレジスタユニット内の前記第1のデータを格納させ、
前記最上位半語ユニットと関連づけられた第2のデータを前記2つの隣接しないソースレジスタユニットから取り出させ、
前記第2のデータを結合して前記結合された最上位語ユニットを生成させる、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項3】
前記単一の命令の実行は、さらに、前記プロセッサに、前記レジスタファイル構造と通信して前記2つの隣接しないソースレジスタユニットを特定させる、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項4】
前記単一の命令の実行は、前記プロセッサに、前記2つの隣接しないソースレジスタユニットを特定した後に、前記2つの隣接しないソースレジスタユニットを前記レジスタファイル構造から取り出させ、
前記行き先レジスタユニットは、前記単一の倍語行き先レジスタユニットを備える、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項5】
前記単一の命令の実行は、前記プロセッサに、前記2つの隣接しないソースレジスタユニットの各々のサイズを決定させ、
前記単一の命令は、
前記行き先レジスタユニットを特定する行き先レジスタフィールドと、
前記2つの隣接しないソースレジスタユニットの第1のソースレジスタユニットを特定する第1のソースレジスタフィールドと、
前記2つの隣接しないソースレジスタユニットの第2のソースレジスタユニットを特定する第2のソースレジスタフィールドと、
前記第1のソースレジスタユニット、前記第2のソースレジスタユニット、および前記行き先レジスタユニットのレジスタ型を示すレジスタ型フィールドと、
命令クラス情報を含む命令クラスフィールドと、を具備する、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項6】
前記単一の命令の実行は、さらに、前記プロセッサに、前記最上位半語ユニットを結合した後に、前記最下位半語ユニットを前記2つの隣接しないソースレジスタユニットから取り出させ、
前記結合された最上位語ユニットおよび前記結合された最下位語ユニットを前記行き先レジスタユニット内に入れた後に、前記行き先レジスタユニットは、前記2つの隣接しないソースレジスタユニットに格納された全データを含む、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項7】
前記プロセッサに、前記単一の命令の前記プロセッサによる実行に応答して、前記最上位半語ユニットの前記各々の幅を特定させ、前記単一の命令は、
前記2つの隣接しないソースレジスタユニットの第1のソースレジスタユニットの第1のレジスタタイプと、
前記2つの隣接しないソースレジスタユニットの第2のレジスタユニットの第2のレジスタタイプと、のインジケーションを備える、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【請求項8】
レジスタファイル構造内の隣接しないレジスタユニットからのデータを適切に整列させることが要求される演算を行うにあたって単一の命令を実行する処理ユニットを用いた方法であって、
前記レジスタファイル構造内の2つの隣接しないソースレジスタユニットを、前記処理ユニットによって、特定することと
最上位半語ユニットの特定された各々の幅に基づいて、対応する最上位半語ユニットを、前記処理ユニットによって、前記2つの隣接しないソースレジスタユニットから取り出すことと、
前記最上位半語ユニットを結合して結合された最上位語ユニットを、前記処理ユニットによって、生成することと、
前記結合された最上位語ユニットを行き先レジスタユニットの最上位部分内に、前記処理ユニットによって、入力することと、ここにおいて、前記行き先レジスタユニットは、前記2つの隣接しないソースレジスタユニットのうちのいずれか一方よりも大きく、前記2つの隣接しないソースレジスタユニットは、レジスタユニットの整列された対としてアクセス不能であり、前記行き先レジスタユニットは、単一の倍語行き先レジスタユニットまたは整列された対のレジスタユニットを具備する、
前記2つの隣接しないソースレジスタユニットからの対応する最下位半語ユニットを結合して結合された最下位語ユニットを、前記処理ユニットによって、生成することと、
前記結合された最下位語ユニットを前記行き先レジスタユニットの最下位部分内に、前記処理ユニットによって、入力することと、
前記行き先レジスタユニットを前記レジスタファイル構造内に、前記処理ユニットによって、格納することと、を具備する方法。
【請求項9】
前記2つの隣接しないソースレジスタユニットの各々は、32ビットの幅のレジスタユニットであり、前記行き先レジスタユニットは、64ビットの幅のレジスタユニットであり、前記行き先レジスタユニットは、4つの半語ユニットを格納するようにサイズ調整される、請求項8に記載の方法。
【請求項10】
前記最上位半語ユニットの各々と、前記最下位半語ユニットの各々は、16ビットの幅のユニットである、請求項9に記載の方法。
【請求項11】
前記レジスタファイル構造と通信して前記2つの隣接しないソースレジスタユニットを特定する前記処理ユニットをさらに具備する、請求項8に記載の方法。
【請求項12】
前記処理ユニットによる前記単一の命令の実行に応答して、前記2つの隣接しないソースレジスタユニットの各々のサイズを決定する前記処理ユニットをさらに具備し、前記単一の命令は、前記2つの隣接しないソースレジスタユニットの第1のソースレジスタユニットの第1のレジスタタイプと、前記2つの隣接しないソースレジスタユニットの第2のソースレジスタユニットの第2のレジスタタイプを示す、請求項8に記載の方法。
【請求項13】
装置であって、
単一の命令を具備するデータを格納するように構成されたメモリと、
前記メモリに結合されたプロセッサであって、前記単一の命令を実行する処理ユニットと前記処理ユニットに結合されたレジスタファイル構造とを具備し、前記処理ユニットによって、レジスタファイル構造内の隣接しないレジスタユニットからのデータを適切に整列させることが要求される演算を行うプロセッサと、を具備し、
前記処理ユニットは、前記レジスタファイル構造内の2つの隣接しないソースレジスタユニットを特定するように構成され、
前記処理ユニットは、最上位半語ユニットの特定された各々の幅に基づいて、対応する最上位半語ユニットを前記2つの隣接しないソースレジスタユニットから取り出すように構成され、
前記処理ユニットは、前記最上位半語ユニットを結合して結合された最上位語ユニットを生成するように構成され、
前記処理ユニットは、前記結合された最上位語ユニットを行き先レジスタユニットの最上位部分内に格納するように構成され、ここにおいて、前記行き先レジスタユニットは、前記2つの隣接しないソースレジスタユニットのうちのいずれか一方よりも大きく、前記2つの隣接しないソースレジスタユニットは、レジスタユニットの整列された対としてアクセス不能であり、前記行き先レジスタユニットは、単一の倍語行き先レジスタユニットまたは整列された対のレジスタユニットを具備する、
前記処理ユニットは、前記2つの隣接しないソースレジスタユニットからの対応する最下位半語ユニットを結合して結合された最下位語ユニットを生成するように構成され、
前記処理ユニットは、前記結合された最下位語ユニットを前記行き先レジスタユニットの最下位部分内に格納するように構成され、
前記処理ユニットは、前記行き先レジスタユニットを前記レジスタファイル構造内に格納するように構成される、装置。
【請求項14】
前記処理ユニットは、前記2つの隣接しないソースレジスタユニットと関連づけられた第1のデータを前記メモリから取り出し、
前記2つの隣接しないソースレジスタユニット内に前記第1のデータを格納し、
前記最下位半語ユニットと関連づけられた第2のデータを前記2つの隣接しないソースレジスタユニットから取り出し、
前記第2のデータを結合して前記結合された最下位語ユニットを生成するように構成される、請求項13に記載の装置。
【請求項15】
前記処理ユニットは、前記結合された最上位語ユニットおよび前記結合された最下位語ユニットを、前記処理ユニットによる前記単一の命令の実行中に、前記行き先レジスタユニット内に入力するように構成される、請求項13に記載の装置。
【請求項16】
レジスタファイル構造内の隣接しないレジスタユニットからのデータを適切に整列させることが要求される演算を行うにあたって単一の命令を実行するプロセッサを含む装置であって、
前記レジスタファイル構造内の2つの隣接しないソースレジスタユニットを特定するための手段と、
最上位半語ユニットの特定された各々の幅に基づいて、対応する最上位半語ユニットを前記2つの隣接しないソースレジスタユニットから取り出すための手段と、
前記最上位半語ユニットを結合して結合された最上位語ユニットを生成するための手段と、
前記結合された最上位語ユニットを行き先レジスタユニットの最上位部分内に入力するための手段と、ここにおいて、前記行き先レジスタユニットは、前記2つの隣接しないソースレジスタユニットのうちのいずれか一方よりも大きく、前記2つの隣接しないソースレジスタユニットは、レジスタユニットの整列された対としてアクセス不能であり、前記行き先レジスタユニットは、単一の倍語行き先レジスタユニットまたは整列された対のレジスタユニットを具備する、
前記2つの隣接しないソースレジスタユニットからの対応する最下位半語ユニットを結合して結合された最下位語ユニットを生成するための手段と、
前記結合された最下位語ユニットを前記行き先レジスタユニットの最下位部分内に入力するための手段と、
前記行き先レジスタユニットを前記レジスタファイル構造内に格納するための手段と、を具備する装置。
【請求項17】
前記2つの隣接しないソースレジスタユニットの各々は、32ビットの幅のレジスタユニットであり、前記行き先レジスタユニットは、64ビットの幅のレジスタユニットであり、ここにおいて、前記行き先レジスタユニットは、4つの半語ユニットを格納するようにサイズ調整され、前記最上位半語ユニットの各々と前記最下位半語ユニットの各々は、16ビットの幅のユニットである、請求項16に記載の装置。
【請求項18】
特定するための前記手段と、取り出すための前記手段と、前記最上位半語ユニットを結合するための前記手段と、前記結合された最上位語ユニットを入力するための前記手段と、対応する最下位半語ユニットを結合するための前記手段と、前記結合された最下位語ユニットを入力するための前記手段と、前記行き先レジスタユニットを前記レジスタファイル構造内に格納するための前記手段は、前記単一の命令を実行するように構成されたプロセッサに含まれる、請求項16に記載の装置。
【請求項19】
前記プロセッサに、前記プロセッサによる前記単一の命令の実行に応答して、前記2つの隣接しないソースレジスタユニットの各々のサイズを決定させ、前記単一の命令は、
前記2つの隣接しないソースレジスタユニットの第1のソースレジスタユニットの第1のレジスタタイプと、
前記2つの隣接しないソースレジスタユニットの第2のソースレジスタユニットの第2のレジスタタイプを示す、請求項1に記載のコンピュータによって読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、マイクロプロセッサに関するものである。本発明は、より具体的には、単一の命令の実行中に、マイクロプロセッサ、例えばデジタル信号プロセッサ、内において、複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステムに関するものである。
【背景技術】
【0002】
典型的には、コンピュータシステムは、1つ以上のマイクロプロセッサデバイスを含み、各マイクロプロセッサデバイスは、前記コンピュータシステムのメモリ内に格納された値に関する演算を行うように及び前記コンピュータシステムの動作全体を管理するように構成される。これらのコンピュータシステムは、様々なマルチメディアデバイス、例えばサウンドカード及び/又はビデオカード、を含むこともでき、各マルチメディアデバイスは、各々のマルチメディアデバイス内において複雑な数学計算を行う1つ以上のプロセッサ、例えばデジタル信号プロセッサ(DSP)、をさらに含む。
【0003】
デジタル信号プロセッサ(DSP)は、典型的には、前記数学計算を行うように特に構成されたハードウェア実行ユニット、例えば1つ以上の算術論理ユニット(ALU)、と、1つ以上の乗算−累積ユニット(MAC)と、DSP内において一組の命令によって指定された演算を行うように構成されたその他の機能ユニットと、を含む。該演算は、例えば、算術演算と、論理演算と、その他のデータ処理演算と、を含むことができ、各々の演算は、関連づけられた一組の命令によって定義される。
【0004】
一般的には、DSP内の実行ユニットは、メモリ及び実行ユニットに結合されたレジスタファイルからデータ及びオペランドを読み出し、命令演算を実行し、その結果をレジスタファイルに格納する。レジスタファイルは、複数のレジスタユニットを含み、各レジスタユニットは、単一のレジスタとして又は整列された対になった2つの隣接するレジスタユニットとしてアクセス可能である。しかしながら、一定の特定の演算、例えば、データを加算又は減算する演算、は、レジスタファイル内の異種のレジスタユニットからのデータを命令の実行のために適切に整列させることを要求する。従って、必要なことは、複数の隣接しない又は異種のレジスタユニット内に格納されたデータの適切な整列を可能にするために単一の命令の実行中にDSP内において前記レジスタユニットからの対応する半語ユニットを結合するための方法及びシステムである。
【発明の概要】
【0005】
単一の命令の実行中に、マイクロプロセッサ、例えばデジタル信号プロセッサ、内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステムが説明される。一実施形態においては、レジスタファイル構造からの予め決められた異種のソースレジスタユニットを結合するための命令が処理ユニット内において受け取られる。次に、前記命令が実行されて、前記ソースレジスタユニットからの対応する半語ユニットが結合され、結果的に得られた行き先レジスタユニットの各々の部分の中に前記半語ユニットが入力される。
【0006】
一実施形態においては、前記予め決められたソースレジスタユニットが識別され、対応する最上位半語ユニット及び関連づけられたデータが前記識別されたレジスタユニットから取り出される。前記取り出された半語ユニットは、さらに結合され、結果的に得られた行き先レジスタユニットの各々の最上位部分内に入力される。同様に、対応する最下位半語ユニット及び関連づけられたデータが、前記識別されたレジスタユニットから取り出される。前記取り出された半語ユニットは、さらに結合され、結果的に得られた行き先レジスタユニットの各々の最下位部分内に入力される。最後に、前記結果的に得られた行き先レジスタは、さらなる処理のために前記レジスタファイル構造内に格納される。
【図面の簡単な説明】
【0007】
【
図1】内部において一組の命令を実行することができるデジタル信号処理システムのブロック図である。
【
図2】デジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図である。
【
図3】超長命令語(VLIW)デジタル信号処理システムアーキテクチャの一実施形態を示すブロック図である。
【
図4】デジタル信号処理システム内において複数のレジスタユニットからの対応する半語ユニットを結合する方法の一実施形態を示した流れ図である。
【
図5】
図4に関連して説明される、複数のレジスタユニットからの対応する半語ユニットを結合する方法を示したブロック図である。
【
図6】デジタル信号処理システム内において複数のレジスタユニットからの対応する半語ユニットを結合するための命令の一実施形態を示したブロック図である。
【発明を実施するための形態】
【0008】
単一の命令の実行中に、マイクロプロセッサ、例えばデジタル信号プロセッサ、内において複数のレジスタユニットからの対応する半語ユニットを結合するための方法及びシステムが説明される。後述されるシステムは、デジタル信号プロセッサがレジスタユニットからの対応する半語ユニットを結合するのを可能にするが、システムは、単一の命令の実行中に複数のレジスタユニットからの前記対応する半語ユニットを結合して結果的に得られたレジスタユニット内に入れることができるマイクロプロセッサデバイス、又はその他いずれかの処理ユニット、を用いて実装できることが理解されるべきである。
【0009】
一実施形態においては、レジスタファイル構造からの予め決められた異種のソースレジスタユニットを結合するための命令が処理ユニット内において受け取られる。次に、命令が実行され、ソースレジスタユニットからの対応する半語ユニットを結合し、これらの半語ユニットを結果的に得られた行き先レジスタユニットの各々の部分内に入力する。
【0010】
命令の実行中において、予め決められたソースレジスタユニットが識別され、対応する最上位半語ユニット及び関連づけられたデータが識別されたレジスタユニットから取り出される。取り出された半語ユニットは、さらに結合され、結果的に得られた行き先レジスタユニットの各々の最上位部分内に入力される。同様に、対応する最下位半語ユニット及び関連づけられたデータが、識別されたレジスタユニットから取り出される。取り出された半語ユニットは、さらに結合され、結果的に得られた行き先レジスタユニットの各々の最下位部分内に入力される。最後に、結果的に得られた行き先レジスタユニットは、さらなる処理のためにレジスタファイル構造内に格納される。
【0011】
図1は、内部において一組の命令を実行することができるデジタル信号処理システムのブロック図である。
図1に示されるように、デジタル信号処理システム100は、処理ユニット110と、メモリ150と、処理ユニット110をメモリ150に結合する1つ以上のバス160と、を含む。
【0012】
メモリ150は、データ及び命令を、例えばVLIWコンパイラによって生成されるVLIWパケットの形で格納し、各VLIWパケットは、1つ以上の命令を具備する。パケットの各命令は、典型的には、予め決められた幅であり、メモリ150において特定のアドレスを有しており、従って、パケット内の第1の命令は、典型的には、前記パケットの最後の命令よりも低いメモリアドレスを有する。メモリに関するアドレッシング方式は、当業においては非常によく知られており、本明細書においては詳細には説明されない。メモリ150内の命令は、バス160を介して処理ユニット110内にロードされる。
【0013】
処理ユニット110は、1つ以上のパイプライン140を介して1つ以上のレジスタファイル構造120に結合された中央処理ユニットコア130をさらに具備する。処理ユニット110は、1つ以上のマイクロプロセッサ、デジタル信号プロセッサ、等をさらに具備することができる。
【0014】
レジスタファイル120は、汎用計算をサポートしさらに以下において
図2と関連させてさらに詳細に説明される一組の汎用レジスタユニットと、特殊目的の機能、例えばハードウェアループ、プレディケート、及びその他の特殊オペランド、をサポートする一組の制御レジスタユニットと、をさらに具備する。
【0015】
図2は、デジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図である。
図2に示されるように、一実施形態においては、レジスタファイル120内の汎用レジスタファイル構造200は、複数のレジスタユニット、例えば、32の幅が32ビットのレジスタユニット210、を含み、各レジスタユニットは、単一のレジスタとして又は整列された対220になった2つの隣接するレジスタユニット210としてアクセス可能である。
【0016】
汎用レジスタユニット210は、該当する命令に基づいて複数の名前で呼ぶことができる。例えば、レジスタユニット210は、R
0、R
1、...、R
30、及びR
31と個々に呼ぶことができる。さらに、レジスタユニットR
0及びR
1は、R
1:0と呼ばれる64ビットのレジスタ対220を形成することができる。同様に、レジスタユニットR
2及びR
3は、R
3:2と呼ばれる64ビットのレジスタ対220を形成することができ、レジスタユニットR
28及びR
29は、R
29:28と呼ばれる64ビットのレジスタ対220を形成することができ、レジスタユニットR
30及びR
31は、R
31:30と呼ばれる64ビットのレジスタ対220を形成することができる。
【0017】
一実施形態においては、汎用レジスタユニット210は、一般的計算目的、例えば、アドレス生成、スカラー算術、ベクトル算術、に関して用いられ、ロード/格納命令に関するアドレスを含む、命令に関する全オペランド、数値命令に関するデータオペランド、及びベクトル命令に関するベクトルオペランドを提供する。各レジスタユニット210は、レジスタユニット210の高部分に所在するデータを含む最上位半語ユニットと、レジスタユニット210の低部分に所在するデータを含む最下位半語ユニットと、をさらに含む。例えば、32ビットの幅のレジスタユニット210について検討すると、レジスタユニット210の最上位半語ユニット及び最下位半語ユニットは、両方とも16ビットの幅のユニットである。
【0018】
図3は、超長命令語(VLIW)デジタル信号処理システムアーキテクチャの一実施形態を示すブロック図である。VLIWシステムアーキテクチャ300は、命令ロードバス320、データロードバス322、及びデータロード/格納バス324を介してデジタル信号プロセッサ(DSP)330に結合されたメモリ310を含む。
【0019】
一実施形態においては、メモリ310は、データ及び命令を、例えば1乃至4つの命令を有するVLIWパケットの形で格納する。メモリ310内に格納された命令は、命令ロードバス320を介してDSP330にロードされる。一実施形態においては、各命令は、4語の幅を有する128ビットの命令ロードバス320を介してDSP330にロードされる32ビットの語幅を有する。一実施形態においては、メモリ310は、統一されたバイトアドレッシング可能なメモリであり、命令とデータの両方を格納する32ビットアドレス空間を有し、リトルエンディアンモードで動作する。
【0020】
一実施形態においては、DSP330は、シーケンサ335と、4つの処理又は実行ユニット345に関する4つのパイプライン340と、(複数の汎用レジスタユニットを具備する)汎用レジスタファイル構造350、例えば
図2に関係して詳細に説明される汎用レジスタファイル構造200と、制御レジスタファイル構造360と、を具備する。シーケンサ335は、命令のパケットをメモリ310から受け取り、命令内に含まれる情報を用いて各々の受け取られたパケットの各命令に関する該当するパイプライン340及び各々の実行ユニット345を決定する。パケットの各命令に関してこの決定を行った後、シーケンサ335は、該当する実行ユニット345による処理のために該当するパイプライン340内に命令を入力する。
【0021】
一実施形態においては、実行ユニット345は、ベクトルシフトユニットと、ベクトルMACユニットと、ロードユニットと、ロード/格納ユニットと、をさらに具備する。ベクトルシフトユニット345は、例えば、S型、A64型、A32型、J型、及びCR型の命令を実行する。ベクトルMACユニット345は、例えば、M型、A64型、A32型、J型、及びJR型の命令を実行する。ロードユニット345は、メモリ310から汎用レジスタファイル構造350にデータをロードし、例えば、ロード型及びA32型の命令を実行する。ロード/格納ユニット345は、汎用レジスタファイル構造350からデータをロードしてメモリ310に再度格納し、例えばロード型、格納型、及びA32型の命令を実行する。
【0022】
命令を受け取る各実行ユニット345は、4つの実行ユニット345によって共有される汎用レジスタファイル構造350を用いて命令を実行する。命令によって要求されるデータは、64ビットデータロードバス322を介して汎用レジスタファイル構造350にロードされる。パケットの命令が実行ユニット345によって実行された後は、その結果得られたデータは、汎用レジスタファイル構造350に格納され、次に64ビットデータロード/格納バス324を介してロードされてメモリ310に格納される。一実施形態においては、例えばRISC型機械に関しては、1つの命令は、メモリからデータをロードし、演算を実行し、その結果をメモリ内に格納することができる。代替として、DSPユニットに関しては、上記の演算は、一般的には分離される。典型的には、パケットの1乃至4つの命令が、4つの実行ユニット345によって1クロックサイクルで並行して実行され、各クロックサイクルに関して最大で1つの命令がパイプライン340によって受け取られて処理される。
【0023】
一実施形態においては、実行ユニット345は、対応する命令を実行するために制御レジスタファイル構造360を用いることもできる。制御レジスタファイル構造360は、一組の特殊レジスタユニット、例えば、修飾子、状態、及びプレディケートレジスタユニット、を具備する。
【0024】
図4は、デジタル信号処理システム100内の複数のレジスタユニットからの対応する半語ユニットを結合するための方法の一実施形態を示す流れ図である。
図4の実施形態において示されるように、処理ブロック410において、デジタル信号処理システム300内のレジスタユニットを結合するための命令が受け取られる。一実施形態においては、処理ユニット、例えばDSP330内の実行ユニット345、は、命令を受け取り、後述されるように命令を実行し、汎用レジスタファイル構造350内に格納された予め決められたソースレジスタユニットからの対応する半語ユニットを結合する。一実施形態においては、予め決められたソースレジスタユニットは、異種であり、汎用レジスタファイル構造350内において隣接せずに所在し、従って、整列された対220のレジスタユニットとしてはアクセス不能である。
【0025】
処理ブロック420において、予め決められたソースレジスタユニット、例えば第1の32ビット幅のソースレジスタユニット及び第2の32ビット幅のソースレジスタユニット、が識別される。一実施形態においては、実行ユニット345は、汎用レジスタファイル構造350と通信し、結合させることが要求されるソースレジスタユニットを識別する。一実施形態においては、メモリ310は、64ビットデータロードバス322及び/又は64ビットデータロード/格納バス324を介して命令によって要求されるデータを汎用レジスタファイル構造350にロードする。代替として、データは、識別された第1及び第2のソースレジスタユニット内に既に格納しておくことができる。
【0026】
処理ブロック430において、識別されたソースレジスタユニット及び関連づけられたデータが取り出される。一実施形態においては、実行ユニット345は、識別されたソースレジスタユニット及び関連づけられたデータを汎用レジスタファイル構造350から取り出す。
【0027】
処理ブロック440において、対応する最上位半語ユニットが、識別されたソースレジスタユニットから取り出される。一実施形態においては、実行ユニット345は、一実施形態においては第1のソースレジスタユニットの最上位又は高半語ユニットであることができる半語ユニット、例えば16ビットの幅のユニット、を第1のソースレジスタユニットから、及び、一実施形態においては第2のソースレジスタユニットの最上位又は高半語ユニットであることができる半語ユニット、例えば16ビットの幅のユニット、を第2のソースレジスタユニットからさらに取り出す。
【0028】
処理ブロック450において、最上位半語ユニットが結合され、結果的に得られた行き先レジスタユニットの最上位又は高部分内にさらに入力される。一実施形態においては、実行ユニット345は、取り出された最上位半語ユニットを結合し、結合された半語ユニットを結果的に得られた行き先レジスタユニットの最上位又は高部分内に入力する。
【0029】
処理ブロック460において、対応する最下位半語ユニットが識別されたソースレジスタユニットから取り出される。一実施形態においては、実行ユニット345は、一実施形態においては第1のソースレジスタユニットの最下位又は低半語ユニットであることができる半語ユニット、例えば16ビットの幅のユニット、を第1のソースレジスタユニットから、及び、一実施形態においては第2のソースレジスタユニットの最下位又は低半語ユニットであることができる半語ユニット、例えば16ビットの幅のユニット、を第2のソースレジスタユニットからさらに取り出す。
【0030】
処理ブロック470において、最下位半語ユニットが結合され、結果的に得られた行き先レジスタユニットの最下位又は低部分内にさらに入力される。一実施形態においては、実行ユニット345は、取り出された最下位半語ユニットを結合し、結合された半語ユニットを結果的に得られた行き先レジスタユニットの最下位又は低部分内に入力する。
【0031】
最後に、処理ブロック480において、結果的に得られた行き先レジスタユニットがさらなる処理のために格納される。一実施形態においては、実行ユニット345は、結果的に得られた行き先レジスタユニットを汎用レジスタファイル構造350に出力し、結果的に得られた行き先レジスタユニットを追加の命令のさらなる処理のために格納する。
【0032】
図5は、
図4と関係させて説明されるレジスタユニットを結合する方法を示すブロック図である。
図5に示されるように、ソースレジスタユニットR
S510及びR
T520は、識別されて汎用レジスタファイル構造200から取り出される。
【0033】
一実施形態においては、ソースレジスタユニットR
S510及びR
T520を結合して結果的に得られた行き先レジスタユニットR
D530内に入れるための命令は、以下のとおりである。
【0034】
R
D=packHL(R
S, R
T)
ここで、R
S及びR
Tは、各々の最上位又は高半語ユニットH及び最下位又は低半語ユニットLを有するソースレジスタユニットである。
【0035】
図5に示されるように、命令の実行時点で、ソースレジスタユニットR
S510の最上位又は高半語ユニットR
S1及びソースレジスタユニットR
T520の最上位又は高半語ユニットR
T1が結合され、行き先レジスタユニットR
D530の高部分内にさらに入力される。ソースレジスタユニットR
S510の最下位又は低半語ユニットR
S2及びソースレジスタユニットR
T520の最下位又は低半語ユニットR
T2が結合され、行き先レジスタユニットR
D530の低部分内にさらに入力される。例えば、R
S510及び
RT520が両方とも32ビット幅のレジスタユニットである場合は、一実施形態においては、結果的に得られた行き先レジスタユニットR
D530は、64ビットの幅のレジスタである。
【0036】
図6は、デジタル信号処理システム内の複数のレジスタユニットからの対応する半語ユニットを結合するための命令の一実施形態のブロック図である。
図6に示されるように、一実施形態においては、
図5と関係して説明される命令は、複数のフィールド、例えば、行き先レジスタユニットR
Dを符号化するために必要な情報を含むフィールド610と、将来の符号化に関して予約された空のフィールド620と、ソースレジスタユニットR
Tを符号化するために必要な情報を含むフィールド630と、将来の符号化に関して予約された他の空のフィールド640と、パケット/ループ構文解析ビット情報を含むフィールド650と、レジスタユニットR
Sを符号化するために必要な情報を含むフィールド660と、演算符号情報を含むフィールド670と、ソースレジスタユニット及び行き先レジスタユニットのレジスタ型に関連する情報を含むフィールド680と、命令クラス情報を含むフィールド690と、を含む。しかしながら、代替として、その他の追加のフィールドを、本発明の適用範囲から逸脱することなしに上記の命令の符号化内に含めることもできる。
【0037】
当業者は、情報及び信号は様々な異なる技術及び技法のうちのいずれかを用いて表すことができるということを理解するであろう。例えば、上記の説明全体を通じて参照することができるデータ、命令、コマンド、情報、信号、ビット、シンボル、及びチップは、電圧、電流、電磁波、磁場、磁気粒子、光学場、光学粒子、又はそのあらゆる組合せによって表すことができる。
【0038】
本明細書において開示される実施形態に関係させて説明される様々な例示的論理ブロック、モジュール、回路、及びアルゴリズム上のステップは、電子ハードウェアとして、コンピュータソフトウェアとして、又は両方の組合せとして実装できることを当業者はさらに理解するであろう。ハードウェアとソフトウェアのこの互換性を明確に例示するため、上記においては、様々な例示的構成要素、ブロック、モジュール、回路、及びステップが、各々の機能の観点で一般的に説明されている。該機能がハードウェアとして又はソフトウェアとして実装されるかは、全体的システムに対する特定の用途上の及び設計上の制約事項に依存する。当業者は、説明されている機能を各々の特定の用途に合わせて様々な形で実装することができるが、これらの実装決定は、本発明の適用範囲からの逸脱を生じさせるものであるとは解釈すべきではない。
【0039】
本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、及び回路は、本明細書において説明される機能を果たすように設計された汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、その他のプログラミング可能な論理デバイス、ディスクリートゲートロジック、ディスクリートトランジスタロジック、ディスクリートハードウェア構成品、又はそのあらゆる組合せ、とともに実装又は実行することができる。汎用プロセッサはマイクロプロセッサであることができるが、代替として、従来のどのようなプロセッサ、コントローラ、マイクロコントローラ、又はステートマシンであってもよい。さらに、プロセッサは、計算装置の組合せ、例えば、DSPと、1つのマイクロプロセッサとの組合せ、複数のマイクロプロセッサとの組合せ、DSPコアと関連する1つ以上のマイクロプロセッサとの組合せ、又はその他のあらゆる該コンフィギュレーションとの組合せ、として実装することもできる。
【0040】
本明細書において開示される実施形態に関して説明される方法又はアルゴリズムのステップは、ハードウェア内において直接具体化させること、プロセッサによって実行されるソフトウェア内において具体化させること、又はこれらの2つの組合せにおいて具体化させることができる。これらの実施形態は、何らかの形態のプロセッサ又はプロセッサコア(例えば、コンピュータのCPU)において実行されるソフトウェアプログラムとして又は該ソフトウェアプログラムをサポートするために用いることができること、又は機械又はコンピュータによって読み取り可能な媒体上に又は内部に実装するか実現させることができることが理解されるべきである。機械によって読み取り可能な媒体は、情報を機械(例えばコンピュータ)によって読み取り可能な形で格納又は送信するためのメカニズムを含む。例えば、機械によって読み取り可能な媒体は、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能なディスク、CD−ROM、又は当業において既知であるその他のあらゆる形態の記憶媒体を含む。1つの典型的な記憶媒体をプロセッサに結合させ、プロセッサが記憶媒体から情報を読み出すようにすること及び記憶媒体に情報を書き込むようにすることができる。代替として、記憶媒体は、プロセッサと一体化させることができる。プロセッサ及び記憶媒体は、ASIC内に常駐することができる。ASICは、ユーザー端末内に常駐することができる。代替として、プロセッサ及び記憶媒体は、ユーザー端末内において個別構成要素として常駐することができる。
【0041】
開示されている実施形態に関する上記の説明は、当業者が本発明を製造又は使用できるようにすることを目的とするものである。これらの実施形態に対する様々な修正は、当業者にとって容易に明確になるであろう。さらに、本明細書において定められている一般原理は、本発明の精神及び適用範囲を逸脱しない形でその他の実施形態に対しても適用することができる。以上のように、本発明は、本明細書において示されている実施形態に限定することを意図するものではなく、本明細書において開示されている原理及び斬新な特長に一致する限りにおいて最も広範な適用範囲が認められるべきである。
以下に、出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
コンピュータによって読み取り可能な媒体であって、
前記媒体内に含まれる複数の実行可能な命令のうちの1つの命令であって、処理システム内において実行されたときに、前記処理システムに、
レジスタファイル構造内の少なくとも2つのソースレジスタユニットからの対応する半語ユニットを結合させ前記対応する半語ユニットを、結果的に得られた行き先レジスタユニットの各々の部分の中に入力させる命令、を具備する、コンピュータによって読み取り可能な媒体。
[C2]
各ソースレジスタユニットは、32ビットの幅のレジスタユニットであり、前記結果的に得られた行き先レジスタユニットは、64ビットの幅のレジスタユニットであるC1に記載のコンピュータによって読み取り可能な媒体。
[C3]
各半語ユニットは、16ビットの幅のユニットであるC2に記載のコンピュータによって読み取り可能な媒体。
[C4]
前記命令の実行は、さらに、前記処理システムに、前記少なくとも2つの異種のソースレジスタユニットからの前記対応する半語ユニットと関連づけられたデータを、前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成させるC1に記載のコンピュータによって読み取り可能な媒体。
[C5]
前記命令の実行は、さらに、前記処理システムに、前記少なくとも2つのソースレジスタユニットと関連づけられたデータをメモリから取り出させ、前記データを前記各々のソースレジスタユニット内に格納させ、前記対応する半語ユニットと関連づけられたデータを前記各々のソースレジスタユニットから取り出させ、前記対応する半語ユニットと関連づけられた前記データを前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成させるC1に記載のコンピュータによって読み取り可能な媒体。
[C6]
前記処理システムは、デジタル信号プロセッサであるC1に記載のコンピュータによって読み取り可能な媒体。
[C7]
前記少なくとも2つのソースレジスタユニットは、異種であるC1に記載のコンピュータによって読み取り可能な媒体。
[C8]
前記命令の実行は、さらに、前記処理システムに、前記少なくとも2つのソースレジスタユニットの各々から最上位半語ユニットを取り出させ、前記最上位半語ユニットを前記行き先レジスタユニットの最上位部分内に入力させるC1に記載のコンピュータによって読み取り可能な媒体。
[C9]
前記命令の実行は、さらに、前記処理システムに、前記少なくとも2つのソースレジスタユニットの各々から最下位半語ユニットを取り出させ、前記最下位半語ユニットを前記行き先レジスタユニットの最下位部分内に入力させるC8に記載のコンピュータによって読み取り可能な媒体。
[C10]
方法であって、
実行可能な命令を受け取ることと、
レジスタファイル構造内の少なくとも2つの異種のソースレジスタユニットからの対応する半語ユニットを結合し、
前記対応する半語ユニットを、結果的に得られた行き先レジスタユニットの各々の部分の中に入力するための前記命令を実行すること、とを具備する、方法。
[C11]
各ソースレジスタユニットは、32ビットの幅のレジスタユニットであり、前記結果的に得られた行き先レジスタユニットは、64ビットの幅のレジスタユニットであるC10に記載の方法。
[C12]
各半語ユニットは、16ビットの幅のユニットであるC11に記載の方法。
[C13]
前記実行することは、さらに、前記少なくとも2つの異種のソースレジスタユニットからの前記対応する半語ユニットと関連づけられたデータを、前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成することを具備するC10に記載の方法。
[C14]
前記実行することは、
前記少なくとも2つのソースレジスタユニットと関連づけられたデータをメモリから取り出すことと、
前記データを前記各々のソースレジスタユニット内に格納することと、
前記対応する半語ユニットと関連づけられたデータを前記各々のソースレジスタユニットから取り出すことと、
前記対応する半語ユニットと関連づけられた前記データを前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成すること、とをさらに具備するC10に記載の方法。
[C15]
前記処理システムは、デジタル信号プロセッサであるC10に記載の方法。
[C16]
前記少なくとも2つのソースレジスタユニットは、異種であるC10に記載の方法。
[C17]
前記実行することは、
前記少なくとも2つのソースレジスタユニットの各々から最上位半語ユニットを取り出すことと、
前記最上位半語ユニットを前記行き先レジスタユニットの最上位部分内に入力すること、とをさらに具備するC10に記載の方法。
[C18]
前記実行することは、
前記少なくとも2つのソースレジスタユニットの各々から最下位半語ユニットを取り出すことと、
前記最下位半語ユニットを前記行き先レジスタユニットの最下位部分内に入力すること、とをさらに具備するC17に記載の方法。
[C19]
装置であって、
少なくとも1つの命令を具備するパケットを格納するためのメモリと、
前記メモリに結合されたプロセッサであって、処理ユニットと前記処理ユニットに結合されたレジスタファイル構造とをさらに具備するプロセッサと、を具備し、
前記処理ユニットは、
前記レジスタファイル構造内の少なくとも2つのソースレジスタユニットからの対応する半語ユニットを結合し、前記対応する半語ユニットを、結果的に得られた行き先レジスタユニットの各々の部分の中に入力する前記パケット内の命令を実行する、装置。
[C20]
各ソースレジスタユニットは、32ビットの幅のレジスタユニットであり、前記結果的に得られた行き先レジスタユニットは、64ビットの幅のレジスタユニットであるC19に記載の装置。
[C21]
各半語ユニットは、16ビットの幅のユニットであるC20に記載の装置。
[C22]
前記処理ユニットは、さらに、前記少なくとも2つの異種のソースレジスタユニットからの前記対応する半語ユニットと関連づけられたデータを、前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成するC19に記載の装置。
[C23]
前記処理ユニットは、さらに、前記少なくとも2つのソースレジスタユニットと関連づけられたデータを前記メモリから取り出し、前記データを前記各々のソースレジスタユニット内に格納し、前記対応する半語ユニットと関連づけられたデータを前記各々のソースレジスタユニットから取り出すことと、前記対応する半語ユニットと関連づけられた前記データを前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成するC19に記載の装置。
[C24]
前記プロセッサは、デジタル信号プロセッサであるC19に記載の装置。
[C25]
前記少なくとも2つのソースレジスタユニットは、異種であるC19に記載の装置。
[C26]
前記処理ユニットは、さらに、前記少なくとも2つのソースレジスタユニットの各々から最上位半語ユニットを取り出し、前記最上位半語ユニットを前記行き先レジスタユニットの最上位部分内に入力するC19に記載の装置。
[C27]
前記処理ユニットは、さらに、前記少なくとも2つのソースレジスタユニットの各々から最下位半語ユニットを取り出し、前記最下位半語ユニットを前記行き先レジスタユニットの最下位部分内に入力するC26に記載の装置。
[C28]
装置であって、
実行可能な命令を受け取るための手段と、
レジスタファイル構造内の少なくとも2つの異種のソースレジスタユニットからの対応する半語ユニットを結合し、
前記対応する半語ユニットを、結果的に得られた行き先レジスタユニットの各々の部分の中に入力するための前記命令を実行するための手段と、を具備する、装置。
[C29]
各ソースレジスタユニットは、32ビットの幅のレジスタユニットであり、前記結果的に得られた行き先レジスタユニットは、64ビットの幅のレジスタユニットであるC28に記載の装置。
[C30]
各半語ユニットは、16ビットの幅のユニットであるC29に記載の装置。
[C31]
さらに、前記少なくとも2つの異種のソースレジスタユニットからの前記対応する半語ユニットと関連づけられたデータを、前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成するための手段、を具備する、C28に記載の装置。
[C32]
前記少なくとも2つのソースレジスタユニットと関連づけられたデータをメモリから取り出すための手段と、
前記データを前記各々のソースレジスタユニット内に格納するための手段と、
前記対応する半語ユニットと関連づけられたデータを前記各々のソースレジスタユニットから取り出すための手段と、
前記対応する半語ユニットと関連づけられた前記データを前記結果的に得られた行き先レジスタユニットの前記各々の部分の中に合成するための手段と、をさらに具備するC28に記載の装置。
[C33]
前記少なくとも2つのソースレジスタユニットは、異種であるC28に記載の装置。
[C34]
前記少なくとも2つのソースレジスタユニットの各々から最上位半語ユニットを取り出すための手段と、
前記最上位半語ユニットを前記行き先レジスタユニットの最上位部分内に入力するための手段と、をさらに具備する、C28に記載の装置。
[C35]
前記少なくとも2つのソースレジスタユニットの各々から最下位半語ユニットを取り出すための手段と、
前記最下位半語ユニットを前記行き先レジスタユニットの最下位部分内に入力するための手段と、をさらに具備する、C34に記載の装置。