JP6152558B2 - デジタル信号プロセッサ - Google Patents
デジタル信号プロセッサ Download PDFInfo
- Publication number
- JP6152558B2 JP6152558B2 JP2014181387A JP2014181387A JP6152558B2 JP 6152558 B2 JP6152558 B2 JP 6152558B2 JP 2014181387 A JP2014181387 A JP 2014181387A JP 2014181387 A JP2014181387 A JP 2014181387A JP 6152558 B2 JP6152558 B2 JP 6152558B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- data
- instruction data
- memory
- instructions
- 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.)
- Expired - Lifetime
Links
- 230000015654 memory Effects 0.000 claims description 230
- 238000012545 processing Methods 0.000 claims description 165
- 239000012634 fragment Substances 0.000 claims description 142
- 238000000034 method Methods 0.000 claims description 77
- 230000004044 response Effects 0.000 claims description 8
- 230000008021 deposition Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 18
- 230000008901 benefit Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 230000035508 accumulation Effects 0.000 description 12
- 238000009825 accumulation Methods 0.000 description 12
- 238000012856 packing Methods 0.000 description 12
- 238000001914 filtration Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002195 synergetic effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101100325756 Arabidopsis thaliana BAM5 gene Proteins 0.000 description 1
- 101150046378 RAM1 gene Proteins 0.000 description 1
- 101100476489 Rattus norvegicus Slc20a2 gene Proteins 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000006249 magnetic particle Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000000819 phase cycle Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0886—Variable-length word access
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30141—Implementation provisions of register files, e.g. ports
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System (AREA)
Description
本発明は、可変長命令セットの使用により実現されてもよい。可変長命令セットの一部分は、メモリスペース内において隣接する位置に記憶され、それら命令の始めと終りはメモリワード境界を横切って生成されてもよい。本発明の追加の観点は、可変数の命令フラグメント(fragments)を含む命令を有することによって実現され得る。各命令フラグメントにより1または複数の特定の動作が実行され、各クロックサイクル中におけるマルチプル(multiple)演算を可能にする。したがって、マルチプル演算は各クロックサイクル中に行われ、1つのタスクを行うために必要なクロックサイクルの合計数を減少させる。
図2は本発明の具体例に対応して形成されたデジタル信号プロセッサ(DSP)回路の一部分のブロックダイアグラムである。データメモリ102-104はアドレス生成ユニット(AGU)105-107を介してデータバスA、BおよびCに、そしてデータインターフェース100にそれぞれ結合される。データバスA、BおよびCは、マルチプレクサ122−126を介して、レジスタバンク120の出力ポートPO1、PO2およびPO3のそれぞれに、そしてレジスタバンク120の入力ポートPI1、PI2およびPI3のそれぞれに結合される。望ましくは、データバスA、BおよびCは、データメモリ102-104とレジスタバンク120内のレジスタ間のデータを読み出しそして書き込む。
S1(t+1),S0(t+1) = S1(t),S0(t)+I0,I1 (1)
ブランチ或いはリセット状態においては、値S1,S0は、処理がブランチ或いはリセットされる特別の命令に基づきリセットされるので、式(1)は利用されない。ブランチ、リセット或いはストール命令を処理する種々の方法は当業者に周知であり、この処理は本発明に特に関係がないので、これ以上説明しない。
A.概要
図9は本発明の例示的実施形態において使用される命令階層を示すブロック図である。ブロック402はDSPの演算を制御する16、32、または48ビットからなる可変長の全命令を示している。さらに可変長の命令は、ブロック403に示したように、一般命令フラグメントとメモリ移動およびプログラムフロー(MMPF、memory move and program flow)命令とを含む命令フラグメントから構成されている。本発明の例示的実施形態において使用された一般命令フラグメントは、MAC8、MAC16、ALU8、ALU16、DMOV16、DMOV24、およびDL40の命令フラグメントを含む。MMPF命令フラグメントは、OneMem11、TwoMem19、TwoMov19、およびThreeMem24の命令フラグメントを含む。MMPF命令フラグメントはブロック406に示したMMPF命令サブフラグメントから構成されている。MMPF命令サブフラグメントはLD(A)、LD(B)、ST(A)、ST(B)、LS(C)、DMOVA、DMOVB、およびPF8を含む。種々の全命令、命令フラグメント、および命令サブフラグメントは後でより詳しく記載する。
発明の好ましい実施例において、DSPは16、32および48ビットの長さを有する全命令を使用して制御される。全命令は1つまたはそれ以上の命令フラグメントを結合することにより形成される。全命令は命令メモリ152内における連続的な記憶およびDSPによる処理を許容するように形成される。全命令のフォーマットおよび構成は、命令フラグメントのフォーマットと構成とにより後続の以下に記述される。演算中、DPSは各クロックサイクル毎に全命令を処理する。かくして、マルチプル演算は各全命令の処理中実行され得るものであり、特定の演算が選択された特定の組の命令フラグメントにより決定される。
上に記述されたように、全命令は、予め定められた方法で、1つ、もしくはそれより多くの一まとめにされた命令フラグメントのセットからなる。本発明の実施の形態の一例に利用可能な命令フラグメントのセットが、表5に示されている。発明の実施の形態の一例の全命令を使用して利用可能にされた命令フラグメントと結合とは、共に行われる最も可能性のある演算のセットが結合されることを可能にするようにデザインされているので、与えられた演算を行うために必要な命令メモリの総数が、減らされる。本発明の実施の形態の一例で使用された様々な命令フラグメントのフォーマットと演算のディスカッションを次に示す。
命令フラグメントとサブフラグメントの次のディスカッションを通して、次のアブレビエーション(abbreviations)は、下の表9と10とにリストされたレジスタを指示するために使用される。加えて、本発明の実施の形態の一例で使用される特定のビットコード(マッピング)は、左に示される。
命令・フラグメントのセットは、MAC命令・フラグメントの2つのタイプ、即ちMAC8及びMAC16を含んでいる。このMAC8命令・フラグメントは符号付き−符号なし(signed-unsigned)及び符号付き−符号付き(signed-signed)の乗算タイプをサポートしており、その結果はアキュムレータL0又はL1の中に格納されている。MAC8命令フラグメントは、16ビット全命令を使用して1つのMAC演算を許すことにより、また、多数の並列命令結合については48ビット命令の代わりに32ビット命令に符号化されることをMAC演算に要求することにより、命令RAMを節約する。一般に、MAC8命令によって実行される処理は、以下の式に従う:
表記<<は、算術シフトを意味するが、<<<は論理シフトを意味する。
addr)は同様に動作する。
以下に、本願の出願当初請求項に記載された発明を付記する。
[C1]
可変数の命令フラグメントを含む可変長命令に応答してデジタル信号処理を実行するデジタル信号プロセッサにおいて、
命令データが可変長命令を含み、少なくとも1つの最大長の完全な命令にとって十分な命令データをフェッチする命令フェッチユニットと
前記命令を復号して、制御信号を発生する命令復号器と、
処理すべきデータを記憶するレジスタバンクと、
第1のデータを記憶する第1のメモリバンクと、
第2のデータを記憶する第2のメモリバンクと、
第3のデータを記憶する第3のメモリバンクと、
前記第1のデータを前記レジスタバンク中の第1のレジスタに読み込む第1のデータバスと、
前記第2のデータを前記レジスタバンク中の第2のレジスタに読み込む第2のデータバスと、
前記第1および第2のレジスタ中の処理すべきデータを処理し、結果を前記レジスタバンク中の第3のレジスタに書き込む第1の処理ユニットと、
前記結果を前記第3のレジスタから前記第3のメモリに書き込む第3のデータバスとを具備するデジタル信号プロセッサ。
[C2]
前記結果を処理することによりさらに処理された結果を発生し、前記結果を前記レジスタバンク中の第4のレジスタに記憶させる第2の処理ユニットをさらに具備し、ここにおいて、前記第3のデータバスは前記さらに処理された結果を前記第4のレジスタから前記第3のメモリにさらに書き込む上記C1記載のデジタル信号プロセッサ。
[C3]
前記第3のデータバスは前記第1のデータバスおよび前記第2のデータバスより幅が広い上記C1記載のデジタル信号プロセッサ。
[C4]
前記レジスタバンク中の第1組のレジスタは前記第1の処理ユニットおよび前記第2の処理ユニットの両方に書き込むことができ、前記レジスタバンク中の第2組のレジスタは前記第1の処理ユニットまたは前記第2の処理ユニットの組のうちの1つに書き込むことができる上記C2記載のデジタル信号プロセッサ。
[C5]
前記レジスタバンク中の第1組のレジスタは前記第1の処理ユニットおよび前記第2の処理ユニットの両方から読み出すことができ、前記レジスタバンク中の第2組のレジスタは前記第1の処理ユニットまたは前記第2の処理ユニットの組のうちの1つから読み出すことができる上記C2記載のデジタル信号プロセッサ。
[C6]
デジタル信号には1組が含まれ、命令データに応答してデジタル信号を処理するデジタル信号プロセッサにおいて、
第1のメモリとレジスタバンクとの間でデータを読み出しおよび書き込む第1のデータバスと、
第2のメモリと前記レジスタバンクとの間でデータを読み出しおよび書き込む第2のデータバスと、
第3のメモリと前記レジスタバンクとの間でデータを読み出しおよび書き込む第3のデータバスとを具備し、
ここにおいて、前記第1のデータバス、前記第2のデータバス、前記第3のデータバスは同時に動作するデジタル信号プロセッサ。
[C7]
前記レジスタバンク中に記憶されているデータを処理する処理ユニットをさらに具備する上記C6記載のデジタル信号プロセッサ。
[C8]
1組の演算を要求する可変長の命令をフェッチする命令フェッチユニットと、
前記可変長の命令を復号し、前記1組の演算を実行させる命令復号器とをさらに具備する上記C6記載のデジタル信号プロセッサ。
[C9]
前記第1の処理ユニットと同時に前記レジスタバンク中のデータを処理する第2の処理ユニットをさらに具備する上記C6記載のデジタル信号プロセッサ。
[C10]
第1のデータバスを通して第1のデータ値を受け取り、
第2のデータバスを通して第2のデータ値を受け取り、
前記第1のデータ値と前記第2のデータ値を使用して結果を発生し、
第3のデータバスを通して前記結果をメモリに書き込むステップを含むデータを処理する方法。
[C11]
前記第3のデータバスは前記第1のデータバスよりも幅が広い上記C10記載の方法。
[C12]
前記第3のバスは前記第1のバスよりも幅が広い上記C10記載の方法。
[C13]
第1のレジスタ中に前記第1のデータ値を記憶し、
第2のレジスタ中に前記第2のデータ値を記憶し、
第3のレジスタ中に前記結果を記憶するステップをさらに含む上記C10記載の方法。
[C14]
第1の処理ユニットを使用して前記結果を発生し、
前記第3のレジスタに結合された第2の処理ユニットを使用して前記第1の結果から第2の結果を発生するステップをさらに含む上記C13記載の方法。
[C15]
デジタル信号を処理するデジタル信号プロセッサにおいて、
第1の入力データと第2の入力データに応答して結果データを発生する処理ユニットと、
前記第1の入力データを前記処理ユニットに送る第1のデータバスと、
前記第2の入力データを前記処理ユニットに送る第2のデータバスと、
前記結果データを送る第3のデータバスとを具備するデジタル信号プロセッサ。
[C16]
前記第1の入力データを読み出すために前記第1のデータバスに結合された第1のメモリシステムと、
第2のメモリシステムを読み出すために前記第2のデータバスに結合された第2のメモリシステムと、
前記結果データを書き込むために前記第3のデータバスに結合された第3のメモリシステムとをさらに具備する上記C15記載のデジタル信号プロセッサ。
[C17]
前記第1のデータバスは前記第3のデータバスよりも幅が狭い上記C15記載のデジタル信号プロセッサ。
[C18]
前記第1のデータバスおよび前記第2のデータバスは前記第3のデータバスよりも幅が狭い上記C15記載のデジタル信号プロセッサ。
[C19]
前記第1のデータバス、前記第2のデータバス、前記第3のデータバス、前記処理ユニットに結合され、前記第1のデータと前記第2のデータを記憶する第1のレジスタと、 前記結果データを記憶する第2のレジスタと、
前記第2のレジスタに結合され、前記結果データを処理する第2の処理ユニットとをさらに具備する上記C15記載のデジタル信号プロセッサ。
[C20]
前記第1のデータバス、前記第2のデータバス、前記第3のデータバスを制御する制御システムをさらに具備する上記C19記載のデジタル信号プロセッサ。
[C21]
前記第1の処理ユニットは乗算累算ユニットであり、前記第2の処理ユニットは演算論理ユニットである上記C19記載のデジタル信号プロセッサ。
[C22]
少なくとも3つのデータバスを有する1組のデータバスと、
前記1組のデータバス中の各データバスからデータを受け取る複数の処理ユニットとを具備するデジタル信号プロセッサ。
[C23]
前記複数の処理ユニット中の第1の処理ユニットは乗算累算ユニットであり、前記複数の処理ユニット中の前記第2の処理ユニットは演算論理ユニットである上記C22記載のデジタル信号プロセッサ。
[C24]
データを記憶するメモリユニットと、
1組のレジスタを備え、データを記憶するレジスタバンクとをさらに具備し、
ここにおいて、前記1組のデータバスは対応するデータの組を対応するレジスタに読み込む上記C22記載のデジタル信号プロセッサ。
[C25]
データを記憶するメモリユニットと、
1組のレジスタを備え、データを記憶するレジスタバンクとをさらに具備し、
ここにおいて、前記1組のデータバスは対応するデータの組を対応するレジスタに書き込む上記C22記載のデジタル信号プロセッサ。
[C26]
それぞれが1つの演算を要求する1組の命令フラグメントを有する可変長の命令を使用してデジタル信号プロセッサを動作させる方法において、
(a)第1のクロックサイクルの第1のクロックフェーズ中に、前に処理されたデータを第1のレジスタから第1の処理ユニットに読み込み、
(b)前記1組の命令フラグメント中の第1の命令フラグメントに基づいて前記前に処理されたデータを処理し、前記第1のクロックサイクル中に、2度処理されたデータを生成し、
(c)前記1組の命令フラグメント中の第2の命令フラグメントに基づいて新しいデータを処理し、前記第1のクロックサイクル中に、新しく処理されたデータを生成し、
(d)前記第1のクロックサイクルの第2のフェーズ中に、前記新しく処理されたデータを前記第1のレジスタに書き込み、
(e)前記第1のクロックサイクルの第2のフェーズ中に、前記2度処理されたデータを第2のレジスタに書き込むステップを含む方法。
[C27]
ステップ(b)は第1の処理ユニットにより実行され、ステップ(c)は第2の処理ユニットにより実行される上記C26記載の方法。
[C28]
前記可変長の命令を含む命令データを読み出し、
次の命令長を決定し、
前記次の命令長に等しい前記命令データ中のデータ量を復号するステップを含む上記C26記載の方法。
[C29]
第1の処理ユニットと、
第2の処理ユニットと、
前記第1の処理ユニットおよび前記第2の処理ユニットに読み出し可能に結合されたレジスタとを具備するマイクロプロセッサ。
[C30]
前記レジスタに結合されたデータバスと、
前記データバスに結合されたデータメモリとをさらに具備する上記C29記載のマイクロプロセッサ。
[C31]
前記第1の処理ユニットに結合されているが、前記第2の処理ユニットには結合されていない第2のレジスタと、
前記第2の処理ユニットに結合されているが、前記第1の処理ユニットには結合されていない第3のレジスタとをさらに具備する上記C29記載のマイクロプロセッサ。
[C32]
前記レジスタは2つのフェーズクロックサイクルで動作し、前記レジスタは前記2つのフェーズクロックサイクルの第1のフェーズ中に読み出され、前記レジスタは前記2つのフェーズクロックサイクルの第2のフェーズ中に書き込まれる上記C29記載のマイクロプロセッサ。
[C33]
前記第1の処理ユニットを前記レジスタに第1の構成で結合し、前記第2の処理ユニットを前記レジスタに第2の構成で結合するマルチプレクサをさらに具備する上記C29記載のマイクロプロセッサ。
[C34]
命令データに基づいて前記マルチプレクサを構成する制御システムをさらに具備する上記C33記載のマイクロプロセッサ。
[C35]
前記第1の処理ユニットは乗算アキュムレータである上記C29記載のマイクロプロセッサ。
[C36]
前記第1の処理ユニットは演算論理ユニットである上記C35記載のマイクロプロセッサ。
[C37]
第1のデータメモリと、
第2のデータメモリと、
前記第1のデータメモリと前記レジスタとに結合された第1のバスと、
前記第2のデータメモリと前記レジスタとに結合された第2のバスとをさらに具備する上記C29記載のマイクロプロセッサ。
[C38]
前記レジスタは前記レジスタの出力を通して前記第1の処理ユニットと前記第2の処理ユニットとに結合され、前記第1の処理ユニットの出力は前記レジスタの入力に結合されている上記C29記載のマイクロプロセッサ。
[C39]
デジタル信号プロセッサを動作させる方法において、
第1のクロックサイクルの第1のクロックフェーズ中に、処理されたデータをレジスタから第1の処理ユニットに読み込み、
前記第1のクロックサイクル中に、前記第1の処理ユニットを使用して前記処理されたデータを処理して、さらに処理されたデータを生成し、
前記第1のクロックサイクル中に、第2の処理ユニット中の他のデータを処理して、新しく処理されたデータを生成し、
前記第1のクロックサイクルの第2のフェーズ中に、前記新しく処理されたデータを前記レジスタに書き込むステップを含む方法。
[C40]
前記第1のクロックサイクルの前記第2のフェーズ中に、前記さらに処理されたデータを第2のレジスタに書き込むステップをさらに含む上記C39記載の方法。
[C41]
データを処理する第1の処理ユニットと、
データを処理する第2の処理ユニットと、
前記第1の処理ユニットと前記第2の処理ユニットの両方にデータを書き込むことができる第1組のレジスタと、
前記第1の処理ユニットにはデータを書き込むことができるが、前記第2の処理ユニットにはデータを書き込むことができない第2組のレジスタとを具備するデジタル信号プロセッサ。
[C42]
前記第1の処理ユニットは乗算累算ユニットであり、前記第2の処理ユニットは演算論理ユニットである上記C41記載のデジタル信号プロセッサ。
[C43]
アドレス空間を有するメモリ中に記憶された命令を使用してデジタル信号プロセッサを制御する方法において、
第1の命令の第1の部分を含むメモリの第1のデータワードを書き出し、
第1の命令の第2の部分と第2の命令の第1の部分を含むメモリの第2のデータワードを書き出すステップを含む方法。
[C44]
前記第1の命令は複数の命令フラグメントから構成され、各命令フラグメントは特定の演算を実行する上記C43記載の方法。
[C45]
前記第1の命令と前記第2の命令は異なる長さである上記C43記載の方法。
[C46]
前記第1の命令と前記第2の命令は複数組の命令フラグメントから構成され、各命令フラグメントは特定の演算を実行する上記C43記載の方法。
[C47]
前記命令フラグメントには第1の命令フラグメントと第2の命令フラグメントとが含まれ、前記第1の命令フラグメントは1組の演算を要求し、1組の演算は前記第2の命令フラグメントにより実行される1組の演算のサブセットである上記C46記載の方法。
[C48]
前記第1の命令フラグメントは前記第2の命令フラグメントよりも短い上記C47記載の方法。
[C49]
デジタル信号プロセッサを制御するシステムにおいて、
フロントエッジワード境界を有するアドレスワードでアドレス可能なアドレス空間を持つメモリと、
前記メモリに記憶された1組の可変長の命令と、前記可変長の命令のそれぞれがフロントエッジ命令境界を有する、具備し、
ここにおいて、前記フロントエッジ命令境界の第1の部分は前記フロントエッジワード境界に対応し、前記フロントエッジ命令境界の第2の部分は前記フロントエッジワード境界と異なっているシステム。
[C50]
前記可変長の命令は可変数の命令フラグメントを含む上記C49記載のシステム。
[C51]
前記可変長の命令は各可変長の命令がどれ位長いかを示すヘッダを含む上記C49記載のシステム。
[C52]
前記メモリは前記デジタル信号プロセッサの命令メモリ内に配置されている上記C49記載のシステム。
[C53]
デジタル信号プロセッサを制御するシステムにおいて、
バックエッジワード境界を有するアドレスワードでアドレス可能なアドレス空間を持つメモリと、
前記メモリに記憶された1組の可変長の命令と、前記可変長の命令のそれぞれがバックエッジ命令境界を有する、具備し、
ここにおいて、前記バックエッジ命令境界の第1の部分は前記バックエッジワード境界に対応し、前記バックエッジ命令境界の第2の部分は前記バックエッジワード境界と異なっているシステム。
[C54]
前記可変長の命令は可変数の命令フラグメントを含む上記C53記載のシステム。
[C55]
前記可変長の命令は各可変長の命令がどれ位長いかを示すヘッダを含む上記C53記載のシステム。
[C56]
前記メモリは前記デジタル信号プロセッサの命令メモリ内に配置されている上記C53記載のシステム。
[C57]
マイクロプロセッサを制御するシステムにおいて、
命令データを記憶し、アドレス空間を有するメモリと、
演算を要求する複数の可変長の命令とを具備し、
前記複数の可変長の命令の実質的な部分は前記アドレス空間のほぼ連続した位置に配置されているシステム。
[C58]
10より多い命令が前記メモリ内のほぼ連続した位置に配置されている上記C57記載のシステム。
[C59]
前記命令の90パーセントより多い命令が前記メモリ空間内のほぼ連続した位置に配置されている上記C57記載のシステム。
[C60]
前記命令の25パーセントより多い命令が前記メモリ空間内のほぼ連続した位置に配置されている上記C57記載のシステム。
[C61]
前記可変長の命令はどれ位多くの命令データが可変長の命令に存在しているかにしたがって変化する上記C57記載のシステム。
[C62]
集積回路を制御する方法において、
(a)実行すべき1組の演算に対応する1組の命令フラグメントを発生し、
(b)同時に実行することができる前記命令フラグメントを命令フラグメント組にグループ分けし、
(c)その可変長の命令がどれ位長い可変長の全命令を生成するかを示すヘッダを各命令フラグメント組に付加し、
(d)前記可変長の全命令をアドレス空間の連続したアドレスで前記集積回路に書き込むステップを含み、
ここにおいて、前記アドレス空間はワード境界を有する方法。
[C63]
前記可変長の命令は16ビットの命令、32ビットの命令、48ビットの命令から構成されている上記C62記載の方法。
[C64]
各ヘッダは前記可変長の全長の命令内で最上位の位置に配置され、5ビットから構成されている上記C62記載の方法。
[C65]
前記命令フラグメントのサブセットは、1つ、2つあるいは3つの命令フラグメントを含むことができる上記C62記載の方法。
[C66]
デジタル信号プロセッサを制御する方法において、
(a)減少された数の演算が並列に処理されるべきときに短い命令を発生し、
(b)より多い数の演算が並列に処理されるべきときに長い命令を発生するステップを含む方法。
[C67]
前記短い命令と前記長い命令はアドレスワード境界を有するメモリ中の連続した位置に記憶される上記C66記載の方法。
[C68]
ステップ(a)は、
他の任意の演算と同時に実行できない演算を識別し、
命令フラグメントと、短い命令がどれ位の長さかを示すヘッダとから前記短い命令を構成するステップからなる上記C66記載の方法。
[C69]
ステップ(b)は、
同時に実行できる1組の演算を識別し、
前記1組の演算を実行する1組の命令フラグメントと、長い命令がどれ位の長さかを示すヘッダとから前記長い命令を構成するステップからなる上記C66記載の方法。
[C70]
前記ヘッダは5ビットから構成されている上記C68記載の方法。
[C71]
前記ヘッダは5ビットから構成されている上記C69記載の方法。
[C72]
可変数の命令フラグメントを含む可変長の命令を処理する方法において、
(a)可能な最大長の可変長命令を含むのに十分な大きさの第1組の命令データを読み出し、
(b)前記第1組の命令データ内に記憶されている第1の可変長の命令を処理し、
(c)未処理の命令データ量が前記可能な最大長よりも少ないときに追加的な命令データをロードするステップを含む方法。
[C73]
ステップ(a)は、
第1のデータワードを読み出し、
第2のデータワードを読み出すステップから構成されている上記C72記載の方法。
[C74]
ステップ(c)は、
未処理の命令データ量が前記可能な最大長の1つの命令ワード内であるときに1つの命令ワードを読み出し、
未処理の命令データ量が前記可能な最大長よりも少ない1つより多くの命令ワードであるときに2つの命令ワードを読み出すステップを含む上記C73記載の方法。
[C75]
メモリ内のほぼ連続したメモリ空間中に間隔をあけられた複数の可変長の命令を具備し、
前記複数の可変長の命令中の各命令は、
命令の長さを示すヘッダと、
実行すべき演算を特定する本体部とを有するメモリ。
[C76]
デジタル信号プロセッサ中の命令データを処理する制御システムにおいて、
ワードでアドレス可能な第1のメモリバンクと第2のメモリバンクとを備え、未処理の命令データを記憶し、前記命令データは最大命令長を有する命令メモリと、
前記命令メモリから読み出す命令レジスタと、
前記命令レジスタ中の未処理の命令データ量が前記最大命令長の1つのワード内であるときに、命令データの1つのワードを前記命令メモリから前記命令レジスタにロードし、前記最大命令長と前記命令レジスタ中の前記未処理データとの間に1つよりも多いワードの不足があるときに命令データの2つのワードを前記命令メモリから前記命令レジスタにロードする制御システムとを具備する制御システム。
[C77]
1組の回転された構成のうちの1つで前記命令レジスタ中に記憶されたデータを出力するローテータをさらに具備し、
ここにおいて、前記制御システムはさらに、前記命令レジスタからの未処理データを前記ローテータを使用して最上位位置に保持する上記C76記載の制御システム。
[C78]
前記可変長の命令は前記ワード以下の長さを有する上記C76記載の制御システム。
[C79]
前記可変長の命令はフロントエッジ命令境界とバックエッジ命令境界を有し、前記可変長の命令は、メモリアドレス空間中で相互に隣接する2つの連続した命令のフロントエッジ命令境界とバックエッジ命令境界を有する前記命令メモリ内で、ワード境界間に記憶される上記C76記載の制御システム。
[C80]
前記可変長の命令は可変数の命令フラグメントを含み、各命令フラグメントは特定の演算を実行する上記C76記載の制御システム。
[C81]
データを記憶するレジスタバンクと、
前記データに乗算累算演算を実行する乗算累算ユニットと、
前記乗算累算ユニットの入力に結合され、第1の構成で入力データをシフトし、第2の構成で前記入力データを通過させるシフトユニットとを具備するデジタル信号プロセッサ。
[C82]
前記シフトユニットは前記入力データをシフトし、前記乗算累算ユニットは単一の処理サイクル中に前記乗算累算演算を実行する上記C81記載のデジタル信号プロセッサ。
[C83]
下位16ビットAlおよび上位16ビットAhを有する32ビット数Aと、16ビット数Bとに2倍精度乗法演算を実行するシステムにおいて、
(a)第1のクロックサイクル中にBによりAlを乗算して、第1の中間値I1を生成し、
(b)16ビットだけ右に前記中間値I1をシフトして、シフトされた中間値SI1を生成し、
(c)BとAhを乗算して、第2の中間値I2を生成し、
(d)I2に前記シフトされた中間値SI1を加算し、
ここにおいて、ステップ(b)−(d)は第2のクロックサイクル中に実行されるシステム。
[C84]
メモリと処理装置との間の可変長のデータの転送が最適化されるように選択された第2の複数の選択可能なバスを通して第1の複数の処理装置とメモリが接続可能であるデジタル信号プロセッサ。
Claims (18)
- 可変長命令を処理する方法であって、
命令メモリから命令データの第1のセットを読み取ることと、
命令データの前記第1のセット内に記憶された第1の可変長命令を処理することであって、前記第1の可変長命令は、最大の許容可能な命令サイズを超えない第1の命令サイズを有する、処理することと、
前記第1の可変長命令が処理された後に残っている未処理の命令データの量が命令フェッチ閾サイズを満たすかどうかの決定に基づいて前記命令メモリから命令データの第2のセットを選択的にロードすることであって、前記未処理の命令データの量が命令データの前記第1のセットに対応し、前記命令フェッチ閾サイズは、前記最大の許容可能な命令サイズに対応する、選択的にロードすることと、
複数の回転された構成のうちの1つの回転された構成で命令データを出力することであって、前記1つの回転された構成は、前記命令データの命令フラグメントの特定の順序に対応し、前記複数の回転された構成は、前記命令フラグメントの許容される順序各々に対応し、前記命令データは、命令データの前記第1のセットの少なくとも一部分、命令データの前記第2のセットの少なくとも一部分、またはこれらの結合を含む、出力することと、
を備える方法。 - 前記命令メモリから命令データの前記第2のセットを選択的にロードすることは、前記未処理の命令データの量が前記命令フェッチ閾サイズを満たさないことに応答して命令データの前記第2のセットを読み出すこと、または前記未処理の命令データの量が前記命令フェッチ閾サイズを満たすことに応答して命令データの前記第2のセットを読み出さないことを含み、特定の回転された構成で前記命令フラグメントを回転させることをさらに備え、前記特定の回転された構成は、前記命令データの長さを示すビットに基づいて決定される、請求項1に記載の方法。
- 前記未処理の命令データの量が前記命令フェッチ閾サイズを満たさないことに応答して命令データの前記第2のセットを読み出すことは、
新たな命令データの第2の量を読み出すことを含み、前記新たな命令データの第2の量は処理された命令データのワード数に基づいて決定される、請求項2に記載の方法。 - 前記命令データは、命令データの前記第1のセットおよび命令データの前記第2のセットを含み、前記命令データを出力することは、前記命令データを命令復号器へ出力することを備える、請求項1に記載の方法。
- 前記命令メモリは複数のアドレスワードを備える、請求項1に記載の方法。
- 命令データの前記第1のセットは、複数の命令フラグメントを備える、請求項1に記載の方法。
- 前記命令メモリは、第1のワードと第2のワードとを備えており、命令データの前記第1のセットの第1の部分は、前記第1のワードに存在し、命令データの前記第1のセットの第2の部分は、前記第2のワードに存在する、請求項1に記載の方法。
- 命令データの前記第1のセットの前記第2の部分は、前記第2のワードにおいて命令データの前記第2のセットの少なくとも一部分と隣接して記憶される、請求項7に記載の方法。
- 命令データの前記第2のセットは、少なくとも部分的に前記第2のワードにおいて記憶され、命令セパレータコードが、前記第2のワード内で命令データの前記第1のセットと命令データの前記第2のセットとを隔てる、請求項7に記載の方法。
- 前記第1の可変長命令は、複数の命令フラグメントを備えており、前記第1の可変長命令が出力されるときには、第1の命令フラグメントは、第1の実行ユニットによって実行され、第2の命令フラグメントは、第2の実行ユニットによって実行される、請求項1に記載の方法。
- 前記第1の命令サイズは48ビット以下であり、前記第1の命令データの最初の5ビットは、前記第1の命令サイズを示す、請求項1に記載の方法。
- 未処理の命令データを記憶するように構成された命令メモリであって、前記命令メモリは、第1のメモリバンクと第2のメモリバンクとを含み、前記第1のメモリバンクおよび前記第2のメモリバンクは、ワードでアドレス可能である、命令メモリと、
前記命令メモリから第1の可変長命令を含む命令データの第1のセットを読み取るように構成された命令レジスタであって、前記第1の可変長命令は、最大の許容可能な命令サイズを超えない第1の命令サイズを有する、命令レジスタと、
前記第1の可変長命令が処理された後に残っている未処理の命令データの量が命令フェッチ閾サイズを満たすかどうかの決定に基づいて前記命令メモリから命令データの第2のセットを選択的にロードするように構成された制御論理であって、前記未処理の命令データの量が命令データの前記第1のセットに対応し、前記命令フェッチ閾サイズは、前記最大の許容可能な命令サイズに対応する、制御論理と、
前記命令レジスタに記憶された命令データを出力するように構成されたローテータであって、前記ローテータは、さらに、複数の回転された構成のうちの第1の回転された構成で前記命令データを出力するように構成され、前記第1の回転された構成は、前記命令データの命令フラグメントの特定の順序に対応し、前記複数の回転された構成は、前記命令フラグメントの許容される順序各々に対応し、前記命令データは、命令データの前記第1のセットの少なくとも一部分、命令データの前記第2のセットの少なくとも一部分、またはこれらの結合を含む、ローテータと、
を備える装置。 - 前記制御論理は、さらに、前記未処理の命令データの量が前記命令フェッチ閾サイズを満たさないときには命令データの前記第2のセットをロードすること、または前記未処理の命令データの量が前記命令フェッチ閾サイズを満たすときには命令データの前記第2のセットをロードすることを控えることによって、前記命令メモリから命令データの前記第2のセットを選択的にロードするように構成される、請求項12に記載の装置。
- 前記制御論理は、さらに、新たな命令データの第2の量を読み出すように構成され、前記第2の量は、処理された命令データのワード数に基づいて決定される、請求項12に記載の装置。
- 前記第1の可変長命令は、命令フラグメントを含んでおり、前記命令フラグメントの各々は、特定の操作を実行するために使用される、請求項12に記載の装置。
- 命令メモリから、第1の可変長命令を含む命令データの第1のセットを読み取ることと、
命令データの前記第1のセット内に記憶された前記第1の可変長命令を処理することであって、前記第1の可変長命令は、最大の許容可能な命令サイズを超えない第1の命令サイズを有する、処理することと、
前記第1の可変長命令が処理された後に命令データの前記第1のセット内に残っている未処理の命令データの量が命令フェッチ閾サイズを満たすかどうかの決定に基づいて前記命令メモリから命令データの第2のセットを選択的にロードすることであって、前記未処理の命令データの量が命令データの前記第1のセットに対応し、前記命令フェッチ閾サイズは、前記最大の許容可能な命令サイズに対応する、選択的にロードすることと、
複数の回転された構成のうちの1つの回転された構成で命令データを出力することであって、前記1つの回転された構成は、前記命令データの命令フラグメントの特定の順序に対応し、前記複数の回転された構成は、前記命令フラグメントの許容される順序各々に対応し、前記命令データは、命令データの前記第1のセットの少なくとも一部分、命令データの前記第2のセットの少なくとも一部分、またはこれらの結合を含む、出力することと、
を備える操作をコンピュータに実行させるプログラムを記憶した、コンピュータ読取可能な記憶媒体。 - 前記命令メモリから命令データの前記第2のセットを選択的にロードすることは、前記未処理の命令データの量が前記命令フェッチ閾サイズを満たさないときには命令データの前記第2のセットを読み出すが、前記未処理の命令データの量が前記命令フェッチ閾サイズを満たすときには命令データの前記第2のセットを読み出さないことを含む、請求項16に記載のコンピュータ読取可能な記憶媒体。
- 前記未処理の命令データの量が前記命令フェッチ閾サイズを満たさないときに命令データの前記第2のセットを読み出すことは、処理された命令データのワード数に基づいて決定された新たな命令データの第2の量を読み出すことを含む、請求項17に記載のコンピュータ読取可能な記憶媒体。
Applications Claiming Priority (12)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US4410498A | 1998-03-18 | 1998-03-18 | |
US4408998A | 1998-03-18 | 1998-03-18 | |
US4408798A | 1998-03-18 | 1998-03-18 | |
US4410898A | 1998-03-18 | 1998-03-18 | |
US09/044,087 | 1998-03-18 | ||
US09/044,088 US6496920B1 (en) | 1998-03-18 | 1998-03-18 | Digital signal processor having multiple access registers |
US09/044,086 | 1998-03-18 | ||
US09/044,086 US6425070B1 (en) | 1998-03-18 | 1998-03-18 | Variable length instruction decoder |
US09/044,089 | 1998-03-18 | ||
US09/044,088 | 1998-03-18 | ||
US09/044,108 | 1998-03-18 | ||
US09/044,104 | 1998-03-18 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010157075A Division JP5677774B2 (ja) | 1998-03-18 | 2010-07-09 | デジタル信号プロセッサ |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016040960A Division JP6300284B2 (ja) | 1998-03-18 | 2016-03-03 | デジタル信号プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015028793A JP2015028793A (ja) | 2015-02-12 |
JP6152558B2 true JP6152558B2 (ja) | 2017-06-28 |
Family
ID=27556460
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000537132A Withdrawn JP2002507789A (ja) | 1998-03-18 | 1999-03-04 | デジタル信号プロセッサ |
JP2010157075A Expired - Lifetime JP5677774B2 (ja) | 1998-03-18 | 2010-07-09 | デジタル信号プロセッサ |
JP2014181387A Expired - Lifetime JP6152558B2 (ja) | 1998-03-18 | 2014-09-05 | デジタル信号プロセッサ |
JP2016040960A Expired - Lifetime JP6300284B2 (ja) | 1998-03-18 | 2016-03-03 | デジタル信号プロセッサ |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000537132A Withdrawn JP2002507789A (ja) | 1998-03-18 | 1999-03-04 | デジタル信号プロセッサ |
JP2010157075A Expired - Lifetime JP5677774B2 (ja) | 1998-03-18 | 2010-07-09 | デジタル信号プロセッサ |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016040960A Expired - Lifetime JP6300284B2 (ja) | 1998-03-18 | 2016-03-03 | デジタル信号プロセッサ |
Country Status (12)
Country | Link |
---|---|
EP (2) | EP1457876B1 (ja) |
JP (4) | JP2002507789A (ja) |
KR (3) | KR100835148B1 (ja) |
CN (2) | CN1279435C (ja) |
AR (5) | AR026080A2 (ja) |
AT (1) | ATE297567T1 (ja) |
AU (1) | AU2986099A (ja) |
CA (1) | CA2324219C (ja) |
DE (1) | DE69925720T2 (ja) |
DK (1) | DK1066559T3 (ja) |
HK (2) | HK1094608A1 (ja) |
WO (1) | WO1999047999A1 (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1457876B1 (en) * | 1998-03-18 | 2017-10-04 | Qualcomm Incorporated | Systems for and method of controlling a digital signal processor using a variable length instruction set, method of generating and storing said instructions and memory comprising said instructions |
JP4100300B2 (ja) | 2003-09-02 | 2008-06-11 | セイコーエプソン株式会社 | 信号出力調整回路及び表示ドライバ |
JP4661169B2 (ja) * | 2003-11-14 | 2011-03-30 | ヤマハ株式会社 | ディジタルシグナルプロセッサ |
JP4300151B2 (ja) * | 2004-04-19 | 2009-07-22 | Okiセミコンダクタ株式会社 | 演算処理装置 |
US7246218B2 (en) * | 2004-11-01 | 2007-07-17 | Via Technologies, Inc. | Systems for increasing register addressing space in instruction-width limited processors |
US7337272B2 (en) * | 2006-05-01 | 2008-02-26 | Qualcomm Incorporated | Method and apparatus for caching variable length instructions |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
FR3021427B1 (fr) * | 2014-05-22 | 2016-06-24 | Kalray | Structure de paquet d'instructions de type vliw et processeur adapte pour traiter un tel paquet d'instructions |
EP3175320B1 (en) * | 2014-07-30 | 2019-03-06 | Linear Algebra Technologies Limited | Low power computational imaging |
BR112017001981B1 (pt) * | 2014-07-30 | 2023-05-02 | Movidius Limited | Método para gerenciar buffer de instruções, sistema e memória legível por computador relacionados |
CN109496306B (zh) | 2016-07-13 | 2023-08-29 | 莫鲁米有限公司 | 多功能运算装置及快速傅里叶变换运算装置 |
JP7384374B2 (ja) * | 2019-02-27 | 2023-11-21 | 株式会社ウーノラボ | 中央演算処理装置 |
US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099229A (en) * | 1977-02-14 | 1978-07-04 | The United States Of America As Represented By The Secretary Of The Navy | Variable architecture digital computer |
US5293611A (en) * | 1988-09-20 | 1994-03-08 | Hitachi, Ltd. | Digital signal processor utilizing a multiply-and-add function for digital filter realization |
JP2791086B2 (ja) * | 1989-03-15 | 1998-08-27 | 富士通株式会社 | 命令プリフェッチ装置 |
EP0436341B1 (en) * | 1990-01-02 | 1997-05-07 | Motorola, Inc. | Sequential prefetch method for 1, 2 or 3 word instructions |
US5295249A (en) * | 1990-05-04 | 1994-03-15 | International Business Machines Corporation | Compounding preprocessor for cache for identifying multiple instructions which may be executed in parallel |
JP2560889B2 (ja) * | 1990-05-22 | 1996-12-04 | 日本電気株式会社 | マイクロプロセッサ |
JP2682761B2 (ja) * | 1991-06-18 | 1997-11-26 | 松下電器産業株式会社 | 命令プリフェッチ装置 |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
JPH06103068A (ja) * | 1992-09-18 | 1994-04-15 | Toyota Motor Corp | データ処理装置 |
JPH06250854A (ja) * | 1993-02-24 | 1994-09-09 | Matsushita Electric Ind Co Ltd | 命令プリフェッチ装置 |
JP3168845B2 (ja) * | 1994-10-13 | 2001-05-21 | ヤマハ株式会社 | ディジタル信号処理装置 |
US5819056A (en) * | 1995-10-06 | 1998-10-06 | Advanced Micro Devices, Inc. | Instruction buffer organization method and system |
JP3655403B2 (ja) * | 1995-10-09 | 2005-06-02 | 株式会社ルネサステクノロジ | データ処理装置 |
US5710914A (en) * | 1995-12-29 | 1998-01-20 | Atmel Corporation | Digital signal processing method and system implementing pipelined read and write operations |
JP2806359B2 (ja) * | 1996-04-30 | 1998-09-30 | 日本電気株式会社 | 命令処理方法及び命令処理装置 |
EP1457876B1 (en) * | 1998-03-18 | 2017-10-04 | Qualcomm Incorporated | Systems for and method of controlling a digital signal processor using a variable length instruction set, method of generating and storing said instructions and memory comprising said instructions |
-
1999
- 1999-03-04 EP EP04005665.7A patent/EP1457876B1/en not_active Expired - Lifetime
- 1999-03-04 WO PCT/US1999/004887 patent/WO1999047999A1/en active IP Right Grant
- 1999-03-04 CN CNB998063665A patent/CN1279435C/zh not_active Expired - Lifetime
- 1999-03-04 EP EP99911150A patent/EP1066559B1/en not_active Expired - Lifetime
- 1999-03-04 CA CA2324219A patent/CA2324219C/en not_active Expired - Fee Related
- 1999-03-04 DK DK99911150T patent/DK1066559T3/da active
- 1999-03-04 JP JP2000537132A patent/JP2002507789A/ja not_active Withdrawn
- 1999-03-04 DE DE69925720T patent/DE69925720T2/de not_active Expired - Lifetime
- 1999-03-04 KR KR1020067005980A patent/KR100835148B1/ko not_active IP Right Cessation
- 1999-03-04 AT AT99911150T patent/ATE297567T1/de not_active IP Right Cessation
- 1999-03-04 KR KR1020007010577A patent/KR100940465B1/ko not_active IP Right Cessation
- 1999-03-04 CN CNA031530303A patent/CN1523491A/zh active Pending
- 1999-03-04 KR KR1020067005979A patent/KR100896674B1/ko not_active IP Right Cessation
- 1999-03-04 AU AU29860/99A patent/AU2986099A/en not_active Abandoned
-
2000
- 2000-10-18 AR ARP000105484A patent/AR026080A2/es unknown
- 2000-10-18 AR ARP000105482A patent/AR026078A2/es unknown
- 2000-10-18 AR ARP000105483A patent/AR026079A2/es unknown
- 2000-10-18 AR ARP000105486A patent/AR026082A2/es unknown
- 2000-10-18 AR ARP000105485A patent/AR026081A2/es unknown
-
2001
- 2001-09-04 HK HK07101408.7A patent/HK1094608A1/xx not_active IP Right Cessation
- 2001-09-04 HK HK01106221A patent/HK1035594A1/xx not_active IP Right Cessation
-
2010
- 2010-07-09 JP JP2010157075A patent/JP5677774B2/ja not_active Expired - Lifetime
-
2014
- 2014-09-05 JP JP2014181387A patent/JP6152558B2/ja not_active Expired - Lifetime
-
2016
- 2016-03-03 JP JP2016040960A patent/JP6300284B2/ja not_active Expired - Lifetime
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6300284B2 (ja) | デジタル信号プロセッサ | |
JP2016146189A5 (ja) | ||
US7502911B2 (en) | Variable length instruction fetching that retrieves second instruction in dependence upon first instruction length | |
US6425070B1 (en) | Variable length instruction decoder | |
US7694109B2 (en) | Data processing apparatus of high speed process using memory of low speed and low power consumption | |
US7694084B2 (en) | Ultra low power ASIP architecture | |
WO1999036852A1 (en) | Digital signal processor having data alignment buffer for performing unaligned data accesses | |
JP2008003708A (ja) | 映像処理エンジンおよびそれを含む映像処理システム | |
EP2267596B1 (en) | Processor core for processing instructions of different formats | |
JP2002529847A (ja) | ビットfifoを有するディジタル信号プロセッサ | |
JPH08212075A (ja) | 情報処理装置 | |
US6859872B1 (en) | Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation | |
US6820189B1 (en) | Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation | |
US20030005269A1 (en) | Multi-precision barrel shifting | |
JPH10198550A (ja) | シフタ回路及びマイクロプロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20151006 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160208 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160830 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20161130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161226 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170328 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170426 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6152558 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
EXPY | Cancellation because of completion of term |