JP2000510620A - 読出中の電力消費を低減するためにエンコードされた命令を記憶するromを伴う信号処理システムおよび方法 - Google Patents

読出中の電力消費を低減するためにエンコードされた命令を記憶するromを伴う信号処理システムおよび方法

Info

Publication number
JP2000510620A
JP2000510620A JP09539016A JP53901697A JP2000510620A JP 2000510620 A JP2000510620 A JP 2000510620A JP 09539016 A JP09539016 A JP 09539016A JP 53901697 A JP53901697 A JP 53901697A JP 2000510620 A JP2000510620 A JP 2000510620A
Authority
JP
Japan
Prior art keywords
encoded
memory
program memory
bit
bits
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.)
Ceased
Application number
JP09539016A
Other languages
English (en)
Inventor
バーボーウィード,イングリッド
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.)
Atmel Corp
Original Assignee
Atmel Corp
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 Atmel Corp filed Critical Atmel Corp
Publication of JP2000510620A publication Critical patent/JP2000510620A/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3814Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30156Special purpose encoding of instructions, e.g. Gray coding
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/08Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements
    • G11C17/10Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM
    • G11C17/12Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards using semiconductor devices, e.g. bipolar elements in which contents are determined during manufacturing by a predetermined arrangement of coupling elements, e.g. mask-programmable ROM using field-effect devices
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Microcomputers (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

(57)【要約】 命令を実行しデータを処理するためのデジタル信号処理システムは、エンコードされた命令を記憶するプログラムメモリを含み、このプログラムメモリ(4)は、第1の論理レベルを有するビットがそこから読出されるときの方が、第2の論理レベルを有するビットがそこから読出されるときよりも消費電力が小さく、最も一般的に読出されるエンコードされた命令は、第2の論理レベルを有するビットよりも第1の論理レベルを有するビットをより多く(好ましくははるかにより多く)含む。好ましくは、このプログラムメモリ(4)はリードオンリメモリ(ROM)として実現される。本発明の他の局面は、そのようなエンコードされた命令を発生させ、それらエンコードされた命令をROM(4)に記憶するための方法と、そのようなエンコードされた命令を記憶するROMと、そのようなエンコードされた命令を記憶するリードオンリプログラムメモリを有するデジタル信号処理システムと、そのような処理システムを動作させるための方法とである。

Description

【発明の詳細な説明】 読出中の電力消費を低減するためにエンコードされた命令を記憶するROMを伴 う信号処理システムおよび方法 発明の分野 本発明は、エンコードされた命令を発生し、その命令をROM(好ましくはN OR構造を有する)として実施されるプログラムメモリに記憶する方法に関する 。このプログラムメモリは、第2の論理レベルを有するビットをそこから読出す ときよりも、第1の論理レベルを有するビットをそこから読出すときの方が消費 電力が小さく、エンコードされた命令は第1の論理レベルを有するビットから主 になる。本発明は、さらに、そのようなエンコードされた命令を記憶するROM と、そのようなエンコードされた命令を記憶するプログラムメモリ(ROM)を 有するデジタル信号処理システムと、そのような処理システムを動作させるため の方法とに関する。 発明の背景 当該技術分野においては、数多くのさまざまな、デジタル信号プロセッサ(D SP)の実現例が周知である。ある従来のDSPは、典型的には、実行されるべ き命令を記憶するためのプログラムメモリと、そのプログラムメモリから命令を フェッチしデコードするためのプログラム制御ユニットと、命令の実行の結果と して処理されるべきデータ(および/または命令の実行の結果として処理された データ)を記憶するためのデータメモリと、処理ユニット(たとえば算術計算ユ ニット)とを含む。このようなDSPは、しばしば、単一の集積回路(単一のチ ップ)として実現される。 好ましい実施例のクラスとして、本発明は、図1に示される、そのプログラム メモリ4が本発明に従ってエンコードされたデータを記憶する型のDSPである 。図1のDSPは、プログラムメモリ4と、プログラムメモリ4から命令をフェ ッチしてデコードし(したがって命令の実行を制御するための制御信号を発生す る)ためのプログラム制御ユニット(PCU)2と、PCU2からの制御信号に 従ってデータに対し演算(たとえば算術計算)を行なうための処理ユニット10 と、メモリ管理ユニット(MMU)3と、入力/出力ユニット(IOU)12と 、命令の実行の結果としてDSPによって処理されるべきデータ(および、オプ ションとして、処理されたデータ)を記憶するためのデータメモリ6とを含む。 データメモリ6はデータが書込まれ読出され得るランダムアクセスメモリ(R AM)であり、データメモリ6はアドレスバスAB0およびAB1ならびにデー タバスRB0およびRB1に接続される。データは、バスRB0からパイプライ ンレジスタM0へ、およびレジスタM0からデータバスDB0へ転送され得る。 同様に、データは、バスRB1からパイプラインレジスタM1へ、およびレジス タM1からデータバスDB1へ転送され得る。 プログラムメモリ4は、典型的には、記憶場所からなる行列のアレイのうちの 任意の選択された行から記憶されたデータを読出すための手段を含む単一ポート 型リードオンリメモリ(ROM)である(好ましくは、各行は32ビットを記憶 するための場所を含み、各列は64K(216を示す)ワードを記憶するための場 所を含む)。PCU2からのアドレス信号は各選択された行を決定する。PCU 2は、そのようなアドレス信号のシーケンス(および、オプションとして、さら には、1つ以上の制御信号)をアサートすることにより、メモリ4の行のシーケ ンスの各行に記憶されるビットの読出をトリガする。 データメモリ6が、16ビット幅および64Kワード深さの記憶場所のアレイ を伴うデュアルポートRAMである好ましい実施例では、デュアルポートメモリ 6の一方のポートは16ビットのアドレスを(16ビットのアドレスバスAB0 から)受取ることができ、同時に、メモリ6の他方のポートは別の16ビットの アドレスを(16ビットのアドレスバスAB1から)受取ることができる。制御 手段は、メモリ6からの2つの同時読出、メモリ6における同時の読出および書 込、またはメモリ6における1つの読出(または書込)を行ない得るように設け られる。 MMU3は、好ましくは、(データを書込みおよび読出しするための、メモリ 6におけるメモリ場所を各々が識別する)2つのアドレス信号を発生し、そのよ うなアドレス信号をアドレスバスAB0およびAB1にアサートするための2つ の独立したアドレス発生ユニットを含む。より特定的には、(プログラムメモリ 4からの命令をデコードすることによってPCU2において発生された)PCU 2からの制御ビットに応答して、MMU3はアドレスバスAB0および/または アドレスバスAB1上においてアドレス信号をアサートする。データは、各アド レスによって識別された(メモリ6内の)メモリ場所から読出されてパイプライ ンレジスタM0またはパイプラインレジスタM1に読込まれる(かまたは、デー タは、データバスRB0および/またはデータバスRB1から、各アドレスによ って識別されるメモリ場所に書込まれる)。 図1のDSPでは、第1のデータバスDB0および第2のデータバスDB1の 各々は好ましくは16ビット幅である。図1のシステムの変形例では、本発明を 実施するようプログラムされるDSPは、(2ポートデータメモリではなく)1 ポートデータメモリと、(2つのアドレスバスおよび2つのデータバスではなく )単一のアドレスバスおよび単一のデータバスとを有し得る。 PCU2は、(プログラムメモリ4から命令をフェッチするための)命令フェ ッチ手段と、命令デコードユニットと、(MMU3、データバスDB0、ACU 10、または命令フェッチ手段へのアサートのために)デコードユニットで発生 された制御ビットを記憶するためのレジスタとを含む。 IOU12は、アドレスバスAB0およびAB1上のアドレスを監視すること により、実行されている最中のメモリアクセスのタイプを決定するための手段を 含む。アドレスが所定のアドレス範囲外(たとえば、バスAB0および/または AB1に沿って接続されるポートを介してアクセス可能な、メモリ6以外の外部 メモリのためのアドレス)である場合、IOU12はPCU2に対しフラグをセ ットする。PCU2は、そのようなフラグに応答して、より低速のメモリアクセ スに対し待機状態をアサートし得る。 プログラムメモリ4は、典型的には、メモリセルからなる行列のアレイを含む 1ぽートROMである。セル(記憶場所)からなる各行は行アドレスで指標付け される。各行アドレス(「命令アドレス」として記される場合もある)は典型的 には16ビットのワードであり、各行は典型的には32個のセルからなる(ので 各行は32ビットの命令または他の32ビットのワードを記憶する)。たとえば 、PCU2は、16ビットの命令アドレスのシーケンスを記憶するプログラムカ ウンタレジスタと、プログラムカウンタレジスタからメモリ4へアサートされた 各命令アドレスに応答してプログラムメモリ4から32ビットのワード(データ 値または命令のいずれか)を受取る命令レジスタとを含み得る。この例では、命 令のシーケンスを含むプログラムを実行する際、PCU2はプログラムメモリ4 をアドレス指定するために16ビットの命令アドレスのシーケンスをプログラム カウンタレジスタにロードし、命令レジスタはそれらアドレスに応答してプログ ラムメモリから32ビットのワードのシーケンスを受取る(メモリ4は、プログ ラムカウンタレジスタからメモリ4へアサートされた各16ビットの命令アドレ スに応答して、命令レジスタに1つの32ビットワードをアサートする)。 注記されるように、プログラムメモリ4は、典型的には、セルからなる32の 列と64Kの行とのアレイとしてメモリセルが組織化されるROMである。この サイズのアレイの場合、ROMは、典型的には、図2を参照して記載されること になる従来のNOR構造を有する。代替的に(特に、ROMが、メモリセルから なるより小さなアレイを有する場合)、そのROMは擬似NMOS NORまた はNAND構造を有し得る。 図2は、プログラムメモリ4の従来のNOR実現例の或る部分を表わす。メモ リセルからなる4つの行のみが図2に示される。図2に示されるメモリ4の実現 例のセルの各列は「X」個のメモリセルを含む(Xは典型的には216に等しい) 。論理零(0)を示すビットを記憶する各セルはNチャネルトランジスタ(たと えば図2のトランジスタN1)によって実現される。列のすべてのトランジスタ のドレインは共通のビット線(たとえば、図2に示されるビット線BL[0]〜 BL[31]のうちの1つ)に接続される。列の各トランジスタのゲートは異な るワード線(たとえば、図2のワード線WL[0]、WL[1]、WL[2]、 またはWL[3])に接続される。トランジスタのソースはソース電位(典型的 には、図2に示されるように、接地電位)に保持される。PMOSトランジスタ の行もクロック線(図2においては「clk」として示される)に沿って接続さ れ、各PMOSトランジスタのゲートはそのクロック線に接続され、各PMOS トラ ンジスタのソースは供給電圧(VDD)に接続され、各PMOSトランジスタのド レインはそれらビット線のうちの異なる1つに接続される。 ROMの「プログラミング」は、(トランジスタN1は、ワード線WL[0] とビット線BL[1]との交点にあるセルで接続されるように)論理0を示すビ ットを記憶する各セルの場所においてNMOSトランジスタを接続すること、お よび論理1を示すビットを記憶する各セル(たとえば、ワード線WL[0]とビ ット線BL[2]との交点にあるセル)の場所からトランジスタを省略すること によってなされる。 以下の手順は、図2の構造を有するプログラミングされたROMのセルの行か ら読出を行なうために用いられる。プリチャージ段階において、Lレベルのクロ ック信号がクロック線(図2においては「clk」で示される)にアサートされ る。このアサートは、そのクロック線に沿って接続されるPMOSトランジスタ の各々を導通させ、それによって、各ビット線を、論理1を示す電圧にプリチャ ージする。このプリチャージ段階において、ワード線はすべてLレベルに保持さ れ(て、ゲートがそれらワード線に沿って接続されるNMOSトランジスタを非 導通状態にす)る。次いで、「上昇」段階において、ワード線のうちの選択され た1つ(現在アサートされている命令アドレスによって識別されるワード線)が H電圧レベルに切換えられ、したがって、その選択されたワード線にゲートが接 続される各NMOSトランジスタを導通させる。そのような各NMOSトランジ スタが接続されるそのビット線の電圧は(論理0を示す)接地電位にプルされる 。これは、オンに切換えられていたNMOSを介して電流が流れるためである。 (「擬似NMOS NOR」実施例として知られる代替的ROM実現例では、上 昇中において、トランジスタが接続されるビット線の電圧は、論理0も示す、接 地電位に近い値にプルされる。)。再び図2の例を参照して、この上昇段階中に ワード線WL[0]が選択される場合、トランジスタN1はオンに切換わり、ビ ット線BL[1]の電圧は、トランジスタN1がオンに切換わった結果、論理0 を示すレベルへの遷移を経ることになる(が、他のビット線は、論理1を示すそ れらのプリチャージ段階電圧にとどまるままとなる)。 (クロック信号「CLK」の複数回のサイクルにわたって)図2の構造を有す るROMの中の任意の1行を繰返して読む場合に消費される電力量は、その行に 対応するワード線に沿って接続されるNMOSトランジスタの数に依存する。1 本のビット線の容量をCとする場合、1クロックサイクル中に1本のビット線を 充電し放電するために消費されるエネルギの量は、(そのビット線が、そのクロ ック信号中にオンおよびオフに切換えられる、接続されたNMOSトランジスタ を有し、かつ、そのワード線はそのクロックサイクルの上昇段階中に選択される ものであると仮定して) E=(C)(VDD2 である。簡単に説明するために、そのビットライン上では、そのクロックサイク ル中において、フルスイングが仮定される。 このビットラインがクロックサイクルごとに切換わる場合、その行の1本のビ ット線に対する電力消費は、fをクロック周波数として: P1ヒ゛ット =(C)(VDD2(f) である。 N本のビット線があり、かつその行に対するビット割当(つまり、その行に対 する割当てられたセル状態)が無作為である場合、(平均すると、多数の無作為 に選択されるビット割当にわたって)それらビット線の半分は各クロックサイク ル中にスイングすることになる(これは、平均すると、その行に沿ったセルの半 分は論理1を示す状態または「ビット割当」を有し、その行に沿ったセルの半分 は論理0を示す「ビット割当」を有するからである)。したがって、その行のす べてのビット線に対する電力消費(多数の無作為に選択されるビット割当にわた って平均される)は、 P平均=(C)(VDD2(f)(N/2) である。このように、各行に沿ったビット割当が無作為であり(したがって、平 均すると、各行を構成するセルの半分は論理1を示す状態を有し、各行を構成す るセルの半分は論理0を示す状態を有する)と仮定すると、図2の構造を有する ROMの電力消費(メモリセルからなる同じまたは異なる行の多数回の読出にわ たり平均される)はビットラインの数(N)に比例することになる。 本発明は、各行に沿った無作為なビット割当が2つの理由から望ましくないと いう認識に基づくものである。 たとえば、ROMに記憶されるべき、より多数の異なるワード(1ワードは各 行に記憶され、各行は、Xを列の数として、Xビットからなる)を斟酌するため に、列の数を増やしてROMを実施することが望ましい場合がしばしばある。し かしながら、各行に沿った無作為ビット割当では、列の数が増大するにつれて、 ROMから命令のシーケンスを読出す間に消費される平均電力が(比例的に)増 大する。本発明は、ROMに記憶される命令のエンコードを改善することにより 、ROMから命令のシーケンスを読出す間に消費される平均電力を大きく増加さ せることなくROMの列の数を増やすことを可能にする。たとえば、本発明は、 本発明に先行する技術においてより広く用いられてきた16ビット幅のプログラ ミングされたROM(各行に16ビットの命令を記憶する)ではなく、32ビッ ト幅のプログラミングされたROM(各行に32ビットのエンコードされた命令 を記憶する)の使用を、そのプログラミングされたROMの各行を読出すのに必 要とされる電力を大きく増大させることなく可能にする。 さらには、ROMの列の数が固定されると仮定される場合でさえ、各行に沿っ た無作為ビット割当は、ROMからの命令のシーケンスを読出す間における実質 的な電力消費をもたらす。このような電力消費の低減は、本発明に従うと、RO Mに記憶される命令(ROMの各行に1つの命令)が本発明に従って(平均して 、等しい数の「0」ビットと「1」ビットとがROMの各行に記憶されるコード に従ってエンコードされた命令のシーケンスを読出すのに必要とされる電力消費 のレベルより下に)エンコードされる場合に可能となる。 発明の概要 好ましい実施例において、本発明は、エンコードされた命令を発生させ、それ らの命令を(好ましくは、NOR構造を有するROMのようなROMとして実現 される)プログラムメモリに記憶するための方法であって、このプログラムメモ リは、第1の論理レベルを有するビットがそこから読出されるときの方が、第2 の論理レベルを有するビットがそこから読出されるときよりも、消費電力が小さ く、それらエンコードされた命令は、第1の論理レベルを有するビットを、第2 の論理レベルを有するビットよりも多く(好ましくははるかにより多く)含む。 換言すれば、第1の論理値を示すビットを記憶する各メモリセルを読む方が、第 2の論理値を示すビットを記憶する各セルを読むよりも、消費電力が小さい。エ ンコードされた命令が一旦プログラムメモリに記憶されると、そのプログラムメ モリのうちのより多くの、好ましくははるかにより多くのセルが、(第2の論理 レベルを有するビット(第2の論理値を示すビット)よりも第1の論理レベルを 有するビット(第1の論理値を示すビット)を記憶するという意味において、そ のプログラムメモリは(第1の論理値を示す)第1の論理レベルを有するビット から主になるエンコードされた命令ビットを記憶する。 好ましくは、これらエンコードされた命令ビットは2進ビットである。さらに 好ましくは、唯1つのエンコードされた命令が、プログラムメモリの行の少なく ともサブセットにおいて(たとえば、各行において)記憶される。さらに好まし くは、最も一般的に読出される命令(そのプログラムメモリがインストールされ るデジタル信号プロセッサの通常動作において最も一般的に読出されることが期 待される命令)は、第1の論理レベルを有するビットの、第2の論理レベルを有 するビットに対する最大の比でエンコードされ(最も一般的に読出されない命令 は、第1の論理レベルを有するビットの、第2の論理レベルを有するビットに対 する最小の比でエンコードされ)る。 さらに、本発明の範囲内には、本発明に従ってエンコードされた命令ビットを 記憶するプログラムメモリ(好ましくはROMとして実現される)を有するデジ タル信号プロセッサを動作させるための方法が含まれる。さらに、本発明の範囲 内には、本発明に従ってエンコードされた命令ビットを記憶するROMが含まれ 、少なくとも1つのそのようなROMがデジタル信号プロセッサの各々に含まれ る。1つのそのようなデジタル信号プロセッサは、命令を実行しそれによってデ ータを処理するための回路系と、それら命令を記憶するリードオンリプログラム メモリ(それら命令はこの発明に従ってエンコードされている)と、プログラム メモリに接続され、それら命令に応答してシステムの動作を制御するための制御 信号を発生するようそれら命令のシーケンスを受取り処理するためのプログラム 制御ユニットとを含む。 本発明の代替的実施例は、エンコードされたデータを発生させ、そのエンコー ドされたデータを(好ましくはNOR構造を有する)ROMとして実現されるプ ログラムメモリに記憶するための方法であって、このプログラムメモリは、第1 の論理レベルを有するビットがそこから読出されるときの方が、第2の論理レベ ルを有するビットがそこから読出されるときよりも、消費電力が小さく、エンコ ードされたデータは、第2の論理レベルを有するビットよりも第1の論理レベル を有するビットをより多く(好ましくははるかにより多く)含む。これらデータ は、デジタル信号プロセッサによる実行のための命令を典型的には決定する(が 、決定をする必要はない)。 NOR構造を有するROM(論理「0」を示すビットを読むよりも論理「1」 を示すビットを読む方が消費電力が小さい)をプログラミングするための好まし い実施例の或るクラスにおいて、この新規な方法は、少なくとも最も一般的に用 いられる命令を、論理「0」を示す2進ビットよりも多くの(好ましくははるか により多くの)論理「1」を示す2進ビットからなるようエンコードするステッ プと、エンコードされたそのような命令を、NOR構造を有するROMに記憶す るステップとを含む。いくつかの命令(たとえば滅多に読出されないと思われる 命令)は、論理「1」を示す2進ビットよりも多くの論理「0」を示す2進ビッ トからなるようにエンコードされ得る。好ましくは、ただ1つのエンコードされ た命令がROMの各行に記憶される。これらの実施例のいくつかでは、ROMの 各行は、1つの、32ビットのエンコードされた命令を記憶する。代替的に、各 エンコードされた命令は、「0」ビットよりも「1」ビットがはるかに多いN個 の2進ビット(Nは32以外の数字である)からなる。 図面の簡単な説明 図1は、ROMとして実現されるプログラムメモリ4を含むデジタル信号処理 システム(DSP)の概略ブロックレベル図である。 図2は、図1のプログラムメモリ4の好ましい実現例の或る部分の概略図であ る。 好ましい実施例の詳細な説明 好ましい実施例の或るクラスにおいて、本発明は、図1を参照してここに記載 されるタイプのデジタル信号プロセッサ(DSP)であって、そのデジタル信号 プロセッサにおいては、プログラムメモリ4は、(図2を参照して記載されるタ イプのNOR構造を有する)ROMであり、本発明に従ってエンコードされた命 令(各エンコードされた命令は2進ビットからなる)でプログラミングされてい る。プログラムメモリ4のこのような実現例は、メモリセルからなる行および列 からなるアレイを含み、セルからなる各行は、32ビットからなるエンコードさ れた命令を、(そのエンコードされた命令のうちの1つのビットがその行の各セ ルに記憶される状態で)記憶する。このROMの、セルからなる各行は、PCU 2からのアドレス(および制御信号)に応答して読出され得る。 プログラムメモリ4(NOR構造を有するプログラミングされたROM)のセ ルが読出されるたびにメモリ4によって消費される電力は、論理「0」を示すエ ンコードされたビットがそのセルに記憶される場合よりも、論理「1」を示すエ ンコードされたビットがそのセルに記憶される場合の方が、小さい。 この発明に従うと、最も一般的に用いられる命令の各々(DSPの動作中に最 も一般的に読出され実行されることが期待される命令の各々)は、論理「0」を 示す2進ビットよりも多くの(好ましくははるかにより多くの)論理「1」を示 す2進ビットからなるようエンコードされる。たとえば、ループ、繰返し命令、 または頻繁に使用されるサブルーチンにおいて頻繁に現われる命令は、論理「0 」を示すビットよりも多くの論理「1」を示すビットからなるようエンコードさ れるべきである。しかしながら、プログラムの開始時もしくは終了時または滅多 に用いられないサブルーチン(たとえば誤り処理ルーチン)においてのみ現われ る命令は論理「1」を示すビットよりも多くの論理「0」を示すビットからなる ようエンコードされ得る。各命令の、期待される使い方は、実行されるべきアプ リケーションプログラムをプロファイルすることによって決定され得る。 このエンコードステップの後、プログラムメモリ4は、それらエンコードされ た命令の1つをその各行に記憶することによってプログラミングされる。好まし くは、ただ1つのエンコードされた命令がメモリ4の各行に記憶される。好まし い実現例では、メモリ4の各行は32ビット幅であり(換言すれば、メモリ4の 各行は32個のメモリセルからなる)、1つの、32ビットのエンコードされた 命令を記憶する。 たとえば、演算「a0=a0+(*r0)(*r1)」を実施するために図1の システムによって実行され得る基本的な「乗算−累算」命令を考えた場合、前記 演算は、2つのデータワード(それぞれの識別は、図1のMMU3内のレジスタ* r0および*r1においてアドレスによりなされる)を乗算するステップと、累 算器レジスタ「a0」(たとえば図1のACU10内の累算器レジスタa0)の 内容をそれら2つのワードの積に加算するステップとからなる。この発明に従っ てエンコードされプログラムメモリ4のうちの1つの行に記憶される、上述の命 令を特定化する32ビット命令の例は、101100111110011111 11011111111111である。このエンコードされた命令は、6つの「 0」ビットと26個の「1」ビットとの順序付けられたシーケンスからなる。 好ましくは、(プログラムメモリ4に記憶される)エンコードされた命令のう ち、そのプログラムメモリから最も一般的に読出されることが期待される命令は 、より高い「1」ビット(レベルが論理1を示すビット)対「0」ビット(レベ ルが論理0を示すビット)比でエンコードされ、プログラムメモリからそれほど 一般的に読出されることが期待されないエンコードされた命令は、より低い「1 」ビット対「0」ビット比でエンコードされる。たとえば(プログラムメモリ4 に記憶され)システム全体の動作中にそのプログラムメモリから最も一般的に読 出されることが期待されるエンコードされた命令は好ましくは32個の「1」ビ ットのシーケンスとしてエンコードされ、(メモリ4に記憶され)システムの動 作中にそのプログラムメモリから次に最も一般的に読出されることが期待される 32個のエンコードされた命令の各々は好ましくは31個の「1」ビットと1個 の「0」ビットとを含み、(プログラムメモリ4に記憶され)システムの動作中 にそのプログラムメモリから一般的に読出されることが最もないと期待されるエ ンコードされた命令の各々は好ましくは17個の「1」ビットと15個の「0」 ビットとからなるシーケンスとしてエンコードされる。もちろん、多数の命令を エンコードすることが必要である場合(制約によって、各エンコードされた命令 に 対するビットの最大数が指令される)、頻繁に用いられることが最も少ないと思 われる命令は「1」ビットよりも多くの「0」ビットのシーケンスとしてエンコ ードされ得る。(これら滅多に用いられない命令が統計的に見て低い命令読出率 で用いられる場合、本発明は先行技術に対する正味節電をもたらす結果となる。 代替的に、各エンコードされた命令は、「0」ビットよりも「1」ビットの方 が多いN個の2進ビット(Nは32以外の数である)からなり、メモリ4の各行 はN個のメモリセルからなる。 本発明の他の局面は、プログラミングされたメモリ4それ自体(本発明に従っ てエンコードされた命令でセルがプログラミングされるメモリ)である。 さらに、本発明の範囲内には、本発明に従ってエンコードされた命令でメモリ が予めプログラミングされている、図1のDSPを動作させる方法が含まれる。 このような動作方法は、(たとえば、プログラムメモリ4からエンコードされた 命令のシーケンスを受取るようPCU2を動作させることにより)そのプログラ ムメモリからエンコードされた命令のシーケンスを読出すステップと、データを 処理するようそれら命令を実行するステップ(たとえば、PCU2を動作させる ことにより、プログラムメモリから読出された命令に応答してDSPの動作を制 御するための制御信号を発生させ、それら制御信号に応答してデータメモリ6か ら読出されるデータワードの対をACUIOにおいて処理する)と、それら処理 されたデータを(たとえばデータメモリ6に)選択的に記憶するステップとを含 む。 上述のDSP、プログラムメモリおよび方法の好ましい実現例では、(プログ ラミングされたROMがインストールされる)DSPの通常動作において最も一 般的に読出されることが期待される命令は最大の「1」ビット対「0」ビット比 でエンコードされ(一般的に読出されることが最も期待されない命令は最小の「 1」ビット対「0」ビット比でエンコードされ)る。たとえば、ループ、繰返し 命令、または頻繁に用いられるサブルーチンにしばしば現われる命令は、論理「 0」を示すビットよりもはるかに多くの論理「1」を示すビットからなるようエ ンコードされるべきである。しかしながら、プログラムの開始時もしくは終了時 または滅多に用いられないサブルーチン(たとえば誤り処理ルーチン)におい てのみ現われる命令は、論理「1」を示すビットよりも多くの論理「0」を示す ビットからなるようエンコードされ得る。 この新規な方法の他の実施例は、ビット(好ましくは2進ビット)からなる特 別にエンコードされたワードでのROMのプログラミングを達成する。これらエ ンコードされたワードは、デジタル信号プロセッサによる実行のための命令を、 典型的には決定する(が決定をする必要はない)。このROMは、第2の論理レ ベルを有するビットを読むよりも第1の論理レベルを有するビットを読む方が消 費電力が小さいものであれば、どのようなタイプのものであってもよい。本発明 に従うと、データ(または最も頻繁に読出されることが期待されるデータのみ) は第2の論理レベルを有するビットよりも多く(好ましくははるかにより多く) の第1の論理レベルを有するビットからなるようエンコードされ、それらエンコ ードされたデータはROMに記憶される。たとえば、ROMのプログラミングは (それがNOR構造を有する場合には)、NMOSトランジスタを、(トランジ スタN1がそのセルにおいて図2に示されるように接続されるのと同じ態様で、 )第1の論理レベルを有するビットを記憶することになる各セルにおいて、接続 することによってなされてもよい。 このプログラミングされたROMは、(ROMのうちより多くの、好ましくは はるかにより多くのセルが、第2の論理レベルを有するビットよりも第1の論理 レベルを有するビットを記憶するという意味において)第1の論理レベルを有す るビットから主になるエンコードされた命令ビットを記憶する。好ましくは、た だ1つのエンコードされた命令がそのROMの各行に記憶される。好ましくは、 最も一般的に読出される命令(プログラミングされたROMがインストールされ るデジタル信号プロセッサの通常動作において最も一般的に読出されることが期 待される命令)は、第1の論理レベルを有するビットの、第2の論理レベルを有 するビットに対する最大の比でエンコードされ(最も一般的に読出されない命令 は、第1の論理レベルを有するビットの、第2の論理レベルを有するビットに対 する最小の比でエンコードされ)る。 さらに、本発明の範囲には、ROM(本発明の新規な方法の任意の実施例に従 ってプログラミングされている)として実施されるプログラムメモリを有するデ ジタル信号プロセッサを動作させるための方法が含まれる。さらに、本発明の範 囲には、本発明のこの新規な方法の任意の実施例に従ってプログラミングされて いる、プログラミングされたROMが含まれ、少なくとも1つのそのようなプロ グラミングされたROMがデジタル信号プロセッサに含まれる。 図1および図2を参照して、本発明の方法およびシステムの好ましい実施例を 記載した。これら実施例はいくらか詳細に記載されているが、請求の範囲に規定 されるとおりの本発明の精神および範囲から逸脱することなくこれら実施例から 数多くの変更(および変形)がなされ得る。

Claims (1)

  1. 【特許請求の範囲】 1.デジタル信号処理システムであって、 命令ビットからなるエンコードされた命令を記憶するプログラムメモリを含み 、前記プログラムメモリの消費電力は、第1の論理レベルを有するビットがそこ から読出されるときの方が、第2の論理レベルを有するビットがそこから読出さ れるときよりも小さく、前記エンコードされた命令の各々は、前記第1のレベル を有するM個のビットと、前記第2のレベルを有するN個のビットとを含み、N およびMは整数であり、したがって、前記エンコードされた命令の前記各々は、 前記第1の論理レベルを有するビットの、前記第2の論理レベルを有するビット に対する比M/Nを決定し、前記エンコードされた命令のうち、前記プログラム メモリからより一般的に読出される前記エンコードされた命令はより高い値の前 記比でエンコードされ、前記エンコードされた命令のうち、前記プログラムメモ リから一般的に読出されることがより少ない前記エンコードされた命令はより低 い値の前記比でエンコードされ、前記デジタル信号処理システムはさらに、 前記プログラムメモリから前記エンコードされた命令のシーケンスを受取り、 前記エンコードされた命令に応答して制御信号を発生させるためのプログラム制 御手段とを含む、デジタル信号処理システム。 2.前記プログラムメモリの消費電力は、論理1を示すビットを読む方が、論理 0を示すビットを読むよりも小さいNOR構造を有するリードオンリメモリであ る、請求項1に記載のシステム。 3.前記プログラムメモリはメモリセルからなる行および列を有し、前記エンコ ードされた命令のうちのただ1つが、少なくとも1つのサブセットを構成する行 の各々に記憶される、請求項2に記載のシステム。 4.前記行の各々は前記メモリセルのうちの32個のメモリセルからなり、前記 エンコードされた命令の各々は32個の命令ビットからなる、請求項3に記載の システム。 5.前記プログラムメモリはリードオンリメモリである、請求項1に記載のシス テム。 6.前記プログラムメモリはメモリセルからなる行および列を有し、前記エンコ ードされた命令のうちのただ1つが、少なくともサブセットを構成する前記行の 各々に記憶される、請求項5に記載のシステム。 7.前記行の各々は前記メモリセルのうちの32個のメモリセルからなり、前記 エンコードされた命令の各々は32個の命令ビットからなる、請求項6に記載の システム。 8.前記プログラム制御手段から前記制御信号のサブセットを受取り、前記制御 信号の前記サブセットに応答してデータを処理するための処理手段をさらに含む 、請求項1に記載のシステム。 9.リードオンリプログラムメモリであって、 行および列に配されるメモリセルのアレイを含み、前記セルの各々はビットを 記憶し、第1の論理値を示すビットを記憶する前記セルの各々を読む方が、第2 の論理値を示すビットを記憶する前記セルの各々を読むよりも、消費電力が小さ く、前記行の少なくもサブセットの前記セルはエンコードされたデータワードを 記憶し、前記エンコードされたデータワードの各々は前記第1の論理レベルを有 するM個のビットと前記第2の論理レベルを有するN個のビットとを含み、Nお よびMは整数であり、したがって、前記エンコードされたデータワードの前記各 々は、前記第1の論理レベルを有するビットの、前記第2の論理レベルを有する ビットに対する比M/Nを決定し、前記エンコードされたデータワードのうち、 前記プログラムメモリからより一般的に読出される前記エンコードされたデータ ワードはより高い値の前記比でエンコードされ、前記エンコードされたデータワ ードのうち前記プログラムメモリから一般的に読出されることがより少ない前記 エンコードされたデータワードはより低い値の前記比でエンコードされる、リー ドオンリプログラムメモリ。 10.前記エンコードされたデワードのうちただ1つが、前記サブセットを構成 する前記行の各々に記憶される、請求項9に記載のプログラムメモリ。 11.前記エンコードされたデータワードはエンコードされた命令であり、前記 エンコードされた命令の各々を含むビットの各々は2進ビットである、請求項9 に記載のプログラムメモリ。 12.前記プログラムメモリはNOR構造を有するリードオンリメモリであって 、 消費される電力は、論理1を示すビットを記憶するセルの各々を読む場合の方が 、論理0を示すビットを記憶するセルの各々を読む場合においてよりも小さい、 請求項11に記載のプログラムメモリ。 13.前記エンコードされた命令の各々は、論理0を示すビットよりも、論理1 を示すビットをより多く含む、請求項12に記載のプログラムメモリ。 14.前記エンコードされた命令のうちのただ1つが、前記サブセットを構成す る前記行の各々に記憶される、請求項11に記載のプログラムメモリ。 15.前記行の各々は前記メモリセルのうちの32個のメモリセルからなり、前 記エンコードされた命令の各々は32個の命令ビットからなる、請求項14に記 載のプログラムメモリ。
JP09539016A 1996-04-29 1997-04-22 読出中の電力消費を低減するためにエンコードされた命令を記憶するromを伴う信号処理システムおよび方法 Ceased JP2000510620A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/639,780 1996-04-29
US08/639,780 US5732255A (en) 1996-04-29 1996-04-29 Signal processing system with ROM storing instructions encoded for reducing power consumpton during reads and method for encoding such instructions
PCT/US1997/006836 WO1997041501A1 (en) 1996-04-29 1997-04-22 Signal processing system and method with rom storing instructions encoded for reducing power consumption during reads

Publications (1)

Publication Number Publication Date
JP2000510620A true JP2000510620A (ja) 2000-08-15

Family

ID=24565512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP09539016A Ceased JP2000510620A (ja) 1996-04-29 1997-04-22 読出中の電力消費を低減するためにエンコードされた命令を記憶するromを伴う信号処理システムおよび方法

Country Status (8)

Country Link
US (1) US5732255A (ja)
EP (1) EP1012693B1 (ja)
JP (1) JP2000510620A (ja)
KR (1) KR100452830B1 (ja)
CN (1) CN1123811C (ja)
DE (1) DE69735678T2 (ja)
TW (1) TW331603B (ja)
WO (1) WO1997041501A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219796B1 (en) * 1997-12-23 2001-04-17 Texas Instruments Incorporated Power reduction for processors by software control of functional units
US6237101B1 (en) 1998-08-03 2001-05-22 International Business Machines Corporation Microprocessor including controller for reduced power consumption and method therefor
DE10116862A1 (de) * 2001-04-04 2002-10-17 Infineon Technologies Ag Programmgesteuerte Einheit
US7363467B2 (en) * 2002-01-03 2008-04-22 Intel Corporation Dependence-chain processing using trace descriptors having dependency descriptors
US20060212644A1 (en) * 2005-03-21 2006-09-21 Acton John D Non-volatile backup for data cache
CN106775591B (zh) * 2016-11-21 2019-06-18 江苏宏云技术有限公司 一种处理器的硬件循环处理方法和系统
CN110647234B (zh) * 2019-09-27 2021-08-17 联想(北京)有限公司 一种指令处理方法及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3478322A (en) * 1967-05-23 1969-11-11 Ibm Data processor employing electronically changeable control storage
BE795789A (fr) * 1972-03-08 1973-06-18 Burroughs Corp Microprogramme comportant une micro-instruction de recouvrement
US4204252A (en) * 1978-03-03 1980-05-20 Digital Equipment Corporation Writeable control store for use in a data processing system
JP2559382B2 (ja) * 1986-11-05 1996-12-04 株式会社日立製作所 情報処理装置
US5572736A (en) * 1995-03-31 1996-11-05 International Business Machines Corporation Method and apparatus for reducing bus noise and power consumption

Also Published As

Publication number Publication date
CN1222236A (zh) 1999-07-07
EP1012693B1 (en) 2006-04-12
TW331603B (en) 1998-05-11
HK1018717A1 (en) 1999-12-30
US5732255A (en) 1998-03-24
DE69735678T2 (de) 2007-04-05
KR100452830B1 (ko) 2005-06-10
EP1012693A4 (en) 2000-06-28
DE69735678D1 (de) 2006-05-24
CN1123811C (zh) 2003-10-08
EP1012693A1 (en) 2000-06-28
KR20000065075A (ko) 2000-11-06
WO1997041501A1 (en) 1997-11-06

Similar Documents

Publication Publication Date Title
US5508968A (en) Dynamic random access memory persistent page implemented as processor register sets
US5592435A (en) Pipelined read architecture for memory
KR100685547B1 (ko) 메모리 제어 시스템 및 메모리 뱅크 리프레쉬 방법
JPH03286495A (ja) 半導体記憶装置
US6505282B1 (en) Method and apparatus for determining memory types of a multi-type memory subsystem where memory of the different types are accessed using column control signals with different timing characteristics
JPH03147152A (ja) メモリ・システム
US5802586A (en) Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
WO2001075607A2 (en) Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US6091667A (en) Semiconductor memory device and a data reading method and a data writing method therefor
JP2000510620A (ja) 読出中の電力消費を低減するためにエンコードされた命令を記憶するromを伴う信号処理システムおよび方法
JP3709302B2 (ja) 半導体記憶装置及びそれを用いたセンサ
US7305514B2 (en) Command sequence for optimized power consumption
US6393514B1 (en) Method of generating an almost full flag and a full flag in a content addressable memory
US5577221A (en) Method and device for expanding ROM capacity
US6888777B2 (en) Address decode
US5737566A (en) Data processing system having a memory with both a high speed operating mode and a low power operating mode and method therefor
JPWO2006003693A1 (ja) データプロセッサ
US20050188154A1 (en) Cache memory with reduced power and increased memory bandwidth
EP0505051A1 (en) Data storage system with intrinsic burst detection
HK1018717B (en) Signal processing system with low power consuming memory
US6628539B2 (en) Multi-entry register cell
US6023441A (en) Method and apparatus for selectively enabling individual sets of registers in a row of a register array
JPH0660632A (ja) 半導体記憶回路
JPH08263366A (ja) メモリ装置
JPH1011316A (ja) シングルチップマイクロコンピュータおよびそのテスト 方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050714

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050830

A313 Final decision of rejection without a dissenting response from the applicant

Free format text: JAPANESE INTERMEDIATE CODE: A313

Effective date: 20060116

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060221