JPH08202612A - 半導体集積回路 - Google Patents

半導体集積回路

Info

Publication number
JPH08202612A
JPH08202612A JP7014016A JP1401695A JPH08202612A JP H08202612 A JPH08202612 A JP H08202612A JP 7014016 A JP7014016 A JP 7014016A JP 1401695 A JP1401695 A JP 1401695A JP H08202612 A JPH08202612 A JP H08202612A
Authority
JP
Japan
Prior art keywords
address
value
output
address value
bus
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.)
Pending
Application number
JP7014016A
Other languages
English (en)
Inventor
Fumiyasu Asai
文康 浅井
Taketora Shiraishi
竹虎 白石
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7014016A priority Critical patent/JPH08202612A/ja
Publication of JPH08202612A publication Critical patent/JPH08202612A/ja
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 アドレスバスを駆動するバスドライバの消費
電力を低減することができる半導体集積回路を得ること
を目的とする。 【構成】 減算器26はプログラムカウンタ24より出
力されたアドレス値とその前に出力され、ラッチ回路2
5に保持されていたアドレス値との差分演算を行なう。
この差分値をバスドライバ27によりアドレスバス23
を介して加算器28に送られる。加算器28は、この差
分値とラッチ回路29に保持された加算器28の出力値
とを加算することにより、プログラムカウンタ24から
出力される元のアドレス値を再生する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、マイクロプロセッサ
等に使用される半導体集積回路であって、特にプログラ
ムを記憶したメモリにアクセスするためのアクセス制御
を行なう半導体集積回路に関するものである。
【0002】
【従来の技術】例えば、図10はメモリ内に保持された
プログラムの各命令にアクセスする制御を行なう半導体
集積回路の回路構成図で、アドレス生成部1、プログラ
ムメモリ2、アドレス生成部1で生成されたアドレスを
転送するプログラムメモリアドレスバス3(以下、アド
レスバス3と称す)からなる。アドレス生成部1は、ア
クセスするプログラムメモリ2のアドレスを生成するプ
ログラムカウンタ4、プログラムカウンタ4で生成され
たアドレスを伝搬するためにアドレスバス3を駆動させ
るバスドライバ5により構成される。一方、プログラム
メモリ2は、アドレスをデコードするためのデコーダ
6、プログラムの各命令コードを記憶保持するメモリセ
ル群7、このメモリセル群7から読み出した命令コード
を一時記憶するためのラッチ回路8により構成される。
【0003】図10の半導体集積回路における、プログ
ラムの各命令が実行されるときの動作について説明す
る。プログラム実行開始時はプログラムカウンタの出力
値は「0」にリセットされているものとする。まず始め
にプログラムカウンタ4の初期値0はアドレス値として
バスドライバ5、アドレスバス3を介してデコーダ6に
転送される。デコーダ6はこの初期値0をデコードし、
メモリセル群7の0番地の命令コードを読み出すデコー
ド信号を生成する。読み出された命令コードはラッチ回
路8にラッチされ、命令バス9を介して命令デコーダ1
0に転送される。命令デコーダ10は命令コードをデコ
ードし、半導体集積回路の各機能(演算回路等)を制御
するための制御信号を出力する。なお、プログラムカウ
ンタ4およびラッチ回路8はクロック信号11に同期し
てアドレス、および命令コードを出力する。
【0004】次いで、命令バス9よりジャンプ命令がな
いならば、プログラムカウンタ4は1だけカウントアッ
プし、アドレス値1を出力し、上記と同様の動作により
アドレス値1に対応する命令コードが実行される。以下
同様にしてジャンプ命令を除いてプログラムカウンタ4
はアドレス値2、3、4、…を出力し、上記動作を繰返
し行なうことによりプログラムが実行される。なお、こ
の半導体集積回路に関する文献として、「Texas Instru
ment社製DSP”TM2320FC25”ユーザーズマ
ニュアル」がある。
【0005】
【発明が解決しようとする課題】アドレス生成部1およ
びプログラムメモリ2は半導体集積回路内で機能ブロッ
クとしてユニット単位に分離されており、アドレスバス
3は配線により構成される。このような配線を介してア
ドレス値をプログラムメモリ2に伝搬させる場合、この
アドレス値が変化する毎にその配線容量に対して充放電
させなければならないので、この配線を駆動するバスド
ライバ5を要する。しかしながら、上記のようにプログ
ラムカウンタ4から出力されるアドレス値が変化する毎
にバスドライバ5で電力が消費されるので、プログラム
全体を実行するとき消費電力が著しく大きくなるという
問題点が生じた。
【0006】近年の微細加工技術の進展に伴い、半導体
集積回路上のトランジスタ単体の性能は飛躍的に向上す
る一方でトランジスタ間を接続する配線のピッチの微細
化により配線間の容量が増加するので、バスドライバの
消費電力もますます増加する。半導体集積回路は、トラ
ンジスタサイズの最適化を図りつつ、配線容量の大きい
配線を駆動するための配線負荷駆動能力を確保するよう
に設計されるので、上記従来の回路構成では十分な消費
電力の低減化を図ることができない。他方で電池を駆動
源とする携帯情報機器(携帯電話、携帯情報端末、ノー
ト型パーソナルコンピュータ等の半導体応用製品)の需
要に対応して、半導体集積回路の低消費電力化の要求が
ますます増大している。
【0007】この発明は上記問題点を解決するためにな
されたもので、配線容量の大きい配線で構成されたアド
レスバスに対してもその消費電力を削減しつつ、プログ
ラムの命令を実行することができる半導体集積回路を得
ることを目的とする。
【0008】
【課題を解決するための手段】この発明による半導体集
積回路は、第1のアドレス値、およびこれに連続して第
2のアドレス値を生成するプログラムカウンタ、第1お
よび第2のアドレス値を入力して読み出される命令を記
憶するメモリを備えたもので、さらにプログラムカウン
タより出力された第1のアドレス値を一時保持するアド
レス保持回路、プログラムカウンタより出力された第2
のアドレス値と第1のアドレス保持手段で保持された第
1のアドレス値との差分値を演算し出力する差分回路、
この差分回路で生成された差分値をアドレスバスを介し
て伝搬させるようアドレスバスを駆動するバスドライ
バ、差分値を前記アドレスバスを介して入力し、差分値
とメモリに入力される第1のアドレス値とを加算するこ
とにより第2アドレス値を生成して出力する加算回路を
備え、メモリは加算回路より出力された前記第2のアド
レス値を入力して命令を出力するようにしたものであ
る。
【0009】また、この発明による半導体集積回路で
は、アドレス値を生成するプログラムカウンタを備え、
このアドレス値により読み出される命令を実行するもの
で、さらにアドレス値がプログラムカウンタより所定の
一定値をインクリメントして出力されたとき制御信号を
出力する制御部、プログラムカウンタにより出力される
アドレス値をアドレスバスを介して伝搬させるようアド
レスバスを駆動し、制御部より制御信号を入力したとき
はプログラムカウンタより出力されるアドレス値を伝搬
させずにアドレスバスの出力値を変化させないバスドラ
イバ、アドレスバスを介して入力されたアドレス値をデ
コードしてアクセス信号を出力するアドレスデコーダ、
複数の段からなり、このアドレスデコーダの出力するア
クセス信号を各段のうちいずれか1つに保持し、また制
御部より制御信号を入力したときはアクセス信号を保持
する段よりこのアクセス信号を一定値分だけシフトさせ
るシフトレジスタ、命令がシフトレジスタの各段に対応
して記憶され、アクセス信号を保持した段に対応する命
令を出力するメモリを備えたものである。
【0010】また、この発明による半導体集積回路は、
第1のアドレス値、およびこれに連続して第2のアドレ
ス値を生成するプログラムカウンタ、第1および第2の
アドレス値を入力して読み出される命令を記憶するメモ
リを備えたもので第2のアドレス値がプログラムカウン
タより所定の一定値をインクリメントして出力されたと
き制御信号を出力する制御部、プログラムカウンタによ
り出力される第2のアドレス値をアドレスバスを介して
伝搬させるようアドレスバスを駆動し、制御部より制御
信号を入力したときはプログラムカウンタにより出力さ
れる第2のアドレス値を伝搬させずにアドレスバスの出
力値を変化させないバスドライバ、第1のアドレス値を
出力した後にアドレスバスから入力される前記第2のア
ドレス値をそのまま出力し、制御部より制御信号を入力
したときは第1のアドレス値に一定値をインクリメント
して第2のアドレス値を出力するカウンタを備え、メモ
リはカウンタにより出力される第2のアドレス値を入力
して命令を読み出すようにしたものである。
【0011】また、バスドライバは、ジャンプ命令によ
りジャンプ先の命令を指定するアドレス値をアドレスバ
スを介して伝搬するようにしたものである。
【0012】
【作用】この発明の半導体集積回路によると、差分回路
でプログラムカウンタの出力する第1のアドレス値と第
2のアドレス値との差分を計算するので、プログラムカ
ウンタから一定値ずつインクリメントしたアドレス値が
出力される間差分回路は一定の差分値を出力し、加算回
路はアドレスバスを介してこの一定の差分値を入力して
プログラムカウンタの出力したアドレス値を生成してメ
モリに出力する。従ってこの間、バスドライバは一定の
差分値をアドレスバスに伝搬させるので、電力は消費さ
れない。
【0013】また、この発明の半導体集積回路による
と、バスドライバは制御部から制御信号を入力すること
によりプログラムカウンタから一定値ずつインクリメン
トして出力されたアドレス値を伝搬させずにその出力値
を変化させないので、この間バスドライバは電力を消費
しない。一方、アドレス値がプログラムカウンタから一
定値ずつインクリメントして出力された場合、メモリは
シフトレジスタのアクセス信号を保持した段に対応する
命令を出力し、制御部からの制御信号によりシフトレジ
スタの各段のいずれか1つに保持されたアクセス信号を
その一定値分シフトさせるようにしたので、一定値ずつ
インクリメントして出力されたアドレス値の指定する命
令をメモリより出力させることができる。
【0014】また、この発明の半導体集積回路による
と、バスドライバは制御部から制御信号を入力すること
によりプログラムカウンタから一定値ずつインクリメン
トして出力されたアドレス値を伝搬させずにその出力値
を変化させないので、この間バスドライバは電力を消費
しない。一方、アドレス値がプログラムカウンタから一
定値ずつインクリメントして出力された場合、制御部か
らの制御信号によりカウンタが一定値分カウントアップ
したアドレス値を生成しメモリに入力するので、そのア
ドレス値の指定する命令をメモリより出力させることが
できる。
【0015】また、この発明の半導体集積回路による
と、バスドライバは、ジャンプ命令によりジャンプ先の
命令を指定するアドレス値をアドレスバスを介して伝搬
するようにしたので、メモリはこのアドレス値はそのま
まバスドライバを介してメモリに入力され、このジャン
プ先の命令を出力する。
【0016】
【実施例】
実施例1.以下、この発明の一実施例を説明する。図1
は本実施例に示す半導体集積回路の回路構成図である。
図の半導体集積回路は、特に Digital Signal Processo
r(以下、DSP)に用いられるアドレス生成部21、
プログラムメモリ22、およびアドレス生成部21で生
成されたアドレス信号をプログラムメモリ22に伝搬す
るための複数ビットからなるプログラムメモリアドレス
バス23(以下、アドレスバス23と称す)を示したも
のである。このアドレス生成部21とプログラムメモリ
22は機能ブロックとしてチップ上で分離して形成され
ており、アドレスバス23は配線接続で構成されてい
る。
【0017】アドレス生成部21において、24はプロ
グラムメモリ22に記憶されてた命令コードを読み出す
ためのアドレス値を生成するプログラムカウンタ、25
はプログラムカウンタの出力するアドレス値を一時保持
するラッチ回路、26はプログラムカウンタ24の出力
するアドレス値とラッチ回路25の保持するアドレス値
の差分演算を行なう減算器(SUB)、27は減算器2
6の出力する差分値をプログラムメモリ22に伝搬する
ためアドレスバス23を駆動させるバスドライバであ
る。バスドライバ27は減算器26からの入力を2つの
インバータを直列に接続してアドレスバス23に出力さ
せるように構成されている。
【0018】一方、プログラムメモリ22において、2
8は加算器(ADD)、29は加算器28の出力する加
算値を一時保持するラッチ回路で、加算器28はアドレ
スバス23を介して入力される減算器26の差分値とラ
ッチ回路29の保持する値との加算演算を行なう。30
は加算器28により生成された加算値(アドレス値)を
デコードするためのデコーダ、31はプログラムの各命
令コードを保持し、デコーダ30のデコード内容に応じ
て命令コードを出力するメモリセル群、32はメモリセ
ル群31から読み出した命令コードを一時記憶するため
のラッチ回路である。
【0019】また、33は各命令を伝搬する命令バス、
34は命令コードをデコードし、種々の制御信号を出力
する命令デコーダ、35はプログラムカウンタ24、ラ
ッチ回路25、29、32を同期して動作させるための
クロック信号、36はプログラムカウンタ24、ラッチ
回路25、29をリセットするためのリセット信号であ
る。
【0020】次に、この半導体集積回路におけるプログ
ラム命令の読み出し動作を図2に示すタイミングチャー
ト図を用いて説明する。図2は、クロック信号35、プ
ログラムカウンタ24、ラッチ回路25、減算器26、
加算器28およびラッチ回路29の出力を示したタイミ
ングチャートである。
【0021】読み出し動作開始前にリセット信号35に
よりプログラムカウンタ24、ラッチ回路25、29の
出力は「0」にリセットされるものとする。また、説明
を簡便化するために、プログラムカウンタ24、ラッチ
回路24、29はクロックの立上りで各種出力が変化す
るものとする。
【0022】リセット解除後、プログラムの実行が開始
されたものとする。まず最初にプログラムカウンタ2
4、ラッチ回路25、29の初期値0に対して減算器2
6の出力値は0、そして加算器28の出力値は0と計算
される。この加算器28の出力値0がアドレス値として
デコーダ30に入力され、0番地を指定するデコード信
号を生成する。メモリセル群31の0番地に記憶された
命令コードがこのデコード信号により読み出され、ラッ
チ回路32に一時保持される。クロック信号35に同期
して、命令バス33を介して読み出された命令コードは
命令デコーダ34に入力され、命令デコーダ34は図示
しない本半導体集積回路内のArithmeric Logic Unit
(ALU)、乗算器等への制御信号を出力して命令を実
行する。
【0023】プログラムカウンタ24はプログラムが1
ステップ進む毎に1ずつインクリメントした値を出力す
る。ラッチ回路32の出力する命令コード中にプログラ
ムカウンタへの即値指定(ジャンプ命令など)がある場
合、この即値は命令バス33を介してプログラムカウン
タ24に入力される。プログラムカウンタ24はその即
値により指定されたアドレス値を出力する。
【0024】即値指定がない場合、プログラムカウンタ
24は図2のように初期値0の次に時刻1でアドレス値
1を出力する。ラッチ回路25は時刻1でその時刻前に
プログラムカウンタ24より出力されたアドレス値0を
ラッチする。同様にしてプログラムカウンタ24が以降
1ずつインクリメントして時刻2、3、4…のタイミン
グでそれぞれアドレス値2、3、4…を出力した場合、
ラッチ回路25は同一の時刻で値1、2、3…をラッチ
して出力する。
【0025】減算器26はプログラムカウンタ24の出
力するアドレス値からラッチ回路25により保持された
アドレス値を減算する。上述のようにラッチ回路25は
プログラムカウンタ24の出力するアドレス値に対して
1だけ小さい値を出力するようにしたので、時刻1以降
では減算器26は常に差分値1を出力する。
【0026】減算器26の差分値1はバスドライバ27
によりプログラムメモリアドレスバス23を経て加算器
28に入力され、この差分値1とラッチ回路29の出力
値とが加算される。ラッチ回路29は加算器28の出力
する加算値をラッチする。時刻1のクロック立上りで、
時刻1直前の加算器28の出力値0をラッチし、次の時
刻2まで出力し続ける。従って時刻1から2の間加算器
28はアドレス値として値1を出力する。同じく時刻2
でその直前の加算器28の出力値1がラッチ回路29に
ラッチされ、時刻3まで出力し続ける。加算器28は時
刻2から時刻3までアドレス値2を出力する。以降同様
にして、時刻3、4…で加算値28はアドレス値3、4
…を出力する。
【0027】デコーダ30は、加算器28から順次入力
されるアドレス値1、2、…を各々デコードしてデコー
ド信号を出力する。メモリセル群31はそれぞれのデコ
ード信号を入力し、それにより指定された命令コードを
出力する。以降、上記と同様の動作によりこの命令コー
ドは実行される。
【0028】このように、図2のようにプログラムカウ
ンタから一定値だけインクリメントされて出力するシー
ケンシャルのアドレス値が出力される間、減算器26か
らはその一定値が出力される。プログラムメモリ22内
に備えた加算器28、ラッチ回路29によりプログラム
カウンタ24より出力された元のシーケンシャルのアド
レス値を再生し、メモリセル群31内の命令コードにア
クセスして読み出しを実行する。このときシーケンシャ
ルのアドレス値が出力される間は減算器26からバスド
ライバ27に入力される値は変化しないので、配線に対
して充放電させるためのバスドライバ27で電力を消費
しないようにすることができる。よってプログラムカウ
ンタからのアドレス値をそのままバスドライバにより伝
搬する従来の半導体集積回路に比べ十分な消費電力低減
を図ることができる。
【0029】また、命令バス33からプログラムカウン
タ24に即値指定された命令コードが入力された場合の
タイミングチャート図を図3に示す。例えば、図2のア
ドレス値出力後もプログラムカウンタ24は1ずつイン
クリメントし、時刻nでアドレス値n(なお、nは任意
の自然数)をした後に、次の時刻(n+1)でアドレス
値(n+k)にジャンプした値を出力したとする(kは
ある自然数)。このとき、ラッチ回路25はその前のア
ドレス値nを保持するので、減算器26は差分値kを演
算する。一方ラッチ回路29は時刻(n+1)前の加算
器28の出力であるアドレス値nを保持するので、時刻
(n+1)には加算器28はアドレス値(n+k)を出
力する。
【0030】時刻(n+2)以降、プログラムカウンタ
24は再び1ずつインクリメントしたアドレス値(n+
k+1)、(n+k+2)、…を出力した場合、図2に
示した動作と同様に、減算器26は差分値1の一定値を
出力し、加算器28からはプログラムカウンタ24と同
じタイミングで同一のアドレス値(n+k+1)、(n
+k+2)、…が出力される。
【0031】よって、ジャンプ命令等により即値アドレ
ス値に対しても、加算器28から同一のアドレス値を出
力することができ、即値アドレス値に対応した命令コー
ドへのアクセスを適切に実行することができる。
【0032】図3のようにジャンプ命令がある場合バス
ドライバ27に入力される値は差分値1からk、差分値
kから1へと変化し、電力が消費されてしまう。しかし
DSP等、一般に半導体集積回路においてプログラムに
おけるジャンプ命令はむしろ稀であることを考慮する
と、本実施例により低消費電力の半導体集積回路を実現
することができる。
【0033】また、近年の微細加工技術により回路面積
の縮小化を図ることができるので、減算器26、ラッチ
回路25、29、加算器28を新たに構成しても十分な
半導体集積回路の小型化は実現できる。また、これら減
算器26等を動作させるために消費電力は増大する。し
かし、この消費電力が微細加工により増大する配線容量
の配線を駆動するために要する消費電力に比べ十分小さ
いことを考慮すると、本半導体集積回路による消費電力
の削減効果は非常に大きく、十分な低消費電力を図るこ
とができる。
【0034】実施例2.図4は本実施例に示す別の半導
体集積回路の回路構成図である。図において、40は数
段のDフリップフロップ(以下、F・Fと呼ぶ)で構成
されたシフトレジスタ、41はシフトレジスタ40およ
びバスドライバ27を制御するための各種制御信号を出
力する制御部、42は制御部41からの制御信号で、シ
フトレジスタ40のシフト動作を制御するための1ビッ
トからなるアドレスシフト信号、43は制御部41から
の制御信号で、バスドライバ27の動作の許可・禁止を
制御するためのドライバイネーブル信号、44はアドレ
スシフト信号42を伝搬するために信号線を駆動するバ
スドライバ、45、46は命令デコーダで解読された命
令コードがジャンプ命令であることを示す制御信号であ
る。その他の符号は図1と同一または相当の機能を示す
ものである。本実施例の半導体集積回路においても、プ
ログラムカウンタ24、制御部41を有するアドレス生
成部21と、デコーダ30、シフトレジスタ40、メモ
リセル群31およびラッチ回路32を有するプログラム
メモリ22との機能ブロックに分離されており、アドレ
スバス23を介してアドレス値をバスドライバ27によ
り、またアドレスシフト信号42をバスドライバ44に
よりそれぞれプログラムメモリ22に伝搬させるように
構成されている。
【0035】図5はデコーダ30においてアドレスバス
23より入力されるアドレス値をデコードした結果であ
るデコード信号を示した表図である。デコーダ30はア
ドレスバス23を介して入力されるアドレス値を(M+
1)ビットの並列信号にデコードする。但し、Mは任意
の自然数である。例えばアドレス値0に対して、1ビッ
ト目のデータを「1」、その他のビットを「0」にデコ
ードする。同様に任意のアドレス値mに対して(m+
1)ビット目のデータを「1」、その他のビットを
「0」にデコードする。特に複数ビットのいずれか1つ
にある「1」をアクセス信号と呼ぶ。
【0036】図6はシフトレジスタ40の構成を示す構
成図である。このシフトレジスタ40はF・F0、F・
F1、…、F・FMの(M+1)個のF・Fで構成され
る。各F・Fにはメモリセル群31の各番地に記憶され
た命令コードにアクセスするためのアクセス信号が保持
される。例えば図6のように、メモリセル群31の0番
地に命令0、1番地に命令1、…M番地に命令Mが記憶
され、(M+1)個のF・Fの各々に1つの命令が対応
して記憶されている。シフトレジスタ40でF・F0に
「1」、その他のF・Fに「0」が保持され、各々メモ
リセル群31に入力されることにより、メモリセル群3
1は命令0を出力する。すなわち、メモリ群31はシフ
トレジスタ40の各F・Fのいずれか1つのうち、
「1」(アクセス信号)を保持したF・Fに対応した番
地の命令コードにアクセスするようにする。
【0037】シフトレジスタ40のシフト動作はアドレ
スシフト信号42により制御される。アドレスシフト信
号42が「1」のとき、各F・Fに保持されたデータは
クロック信号35の立上りに同期して1つ上位のF・F
へ順次シフトする。また、F・FMの保持データはF・
F0へシフトする。したがって、各F・Fが図6のよう
に保持されたデータ「0…001」は「0…010」に
変化し、アクセス信号はF・Fを1つ分だけシフトす
る。一方、アドレスシフト信号42が「0」の場合はシ
フト動作は禁止され、デコーダ30より出力された(M
+1)ビットの並列データを各F・Fにセットし保持さ
せる。この並列データの各ビットのいずれか1つにアク
セス信号を有し、シフトレジスタ40の対応するF・F
に保持される。
【0038】また、バスドライバ27は、制御部41よ
りドライバイネーブル信号27を入力し、このドライバ
イネーブル信号43が「1」状態の場合にはプログラム
カウンタ24から出力されるアドレス値を伝搬させるよ
うアドレスバス23を駆動する。一方「0」状態の場
合、プログラムカウンタ24からアドレス値を入力して
もそのアドレス値をアドレスバス23に伝搬させないよ
うにする。このバスドライバ27は例えばプログラムカ
ウンタ24からの入力をラッチ回路、および2つのイン
バータを直列に接続してアドレスバス23へ出力するよ
う構成する。さらにこのラッチ回路はドライバイネーブ
ル信号43を入力し、ドライバイネーブル信号43が
「1」のときはそのままプログラムカウンタ24から入
力されるアドレス値を出力し、「0」のときは前の出力
を保持する保持状態となるように構成する。
【0039】なお、通常行デコーダおよび列デコーダの
2種類のデコーダでメモリセルを選択することにより命
令コードにアクセスするようにしているが、本実施例で
は説明を簡便化するために1つのデコーダでアクセスす
るように構成している。
【0040】次に、図4の半導体集積回路においてプロ
グラムメモリ22の保持されたプログラム命令の読み出
し動作を図7に示したタイミングチャート図を用いて説
明する。図7は、クロック信号35、アドレスシフト信
号40、ドライバイネーブル信号43、アドレスバス2
3の出力信号、およびシフトレジスタ40の出力値を示
したタイミングチャート図である。
【0041】命令の読み出し動作開始前は、図4に図示
しないリセット信号によりプログラムカウンタ24の出
力は「0」にリセットされ、制御部41は同時にドライ
バイネーブル信号43を「1」状態にする。よってアド
レスバス23はバスドライバ27を介してこのプログラ
ムカウンタ24の初期値0をデコーダ30に伝搬され
る。またデコーダ30は初期値0をデコードして「0…
001」を出力する。さらに、このプログラムカウンタ
のリセットとともに制御部41はアドレスシフト信号4
0を「0」状態にする。シフトレジスタ40はデコーダ
30の出力するデコード値「0…001」を対応するレ
ジスタに保持させる(図6に示した状態)。
【0042】リセットが解除され、命令読み出し動作が
開始されると、図6に示されたシフトレジスタ40の保
持データによりメモリセル群31は命令0を出力する。
ラッチ回路32はこの命令0をラッチし、クロック信号
35に同期して出力する。この命令0は命令バス33を
介して命令デコーダ34に入力され、命令デコーダ34
は図示しない本半導体集積回路内のArithmeric Logic U
nit(ALU)、乗算器等への制御信号を出力すること
で命令0を実行する。
【0043】(1)アドレス値が1ずつインクリメント
して出力される場合 プログラムカウンタ24は、その次のクロック立上りに
同期して順次アドレスを出力する。図7に示したように
アドレス値0から1ずつインクリメントしたアドレス値
1、2、…、m(mは任意の自然数)を出力した場合を
考える。
【0044】制御部41はアドレス値0の次にアドレス
値1を出力することにより、命令読み出し後のクロック
立ち下がりに同期してアドレスシフト信号42を
「1」、バスイネーブル信号43を「0」に変化する。
その後、プログラムカウンタ24よりアドレス値mが出
力されるまでこれらの値を出力し続ける。バスドライバ
27はこのドライバイネーブル信号43の「0」を受
け、プログラムカウンタ24より出力されるアドレス値
をアドレスバス23に伝搬させず、そのままアドレス値
を変化させない。すなわちプログラムカウンタ24より
アドレス値0〜mが入力される間バスドライバ27は常
に値0を出力し、この間電力を消費しない。
【0045】シフトレジスタ40はこのアドレスシフト
信号によりクロック立上りに同期してシフト動作を行な
う。すなわち、図7のようにプログラムカウンタ24の
出力がアドレス値0から1に変化すると同時にシフトレ
ジスタ40は「0…0001」から「0…0010」へ
と、F・F0から順次各データをシフトし、各データは
メモリセル群31へ出力される。プログラムカウンタ2
4がアドレス値mを出力したときにはシフトレジスタ4
0のF・Fmが値1、その他は値0を保持し、メモリセ
ル群31へ出力する。メモリセル群31はこれらのデコ
ード値により対応する各命令をラッチ回路32に出力す
る。
【0046】(2)アドレス値がジャンプ命令等による
即値アドレスの場合 アドレス値mの指定する命令mがジャンプ命令である場
合、命令デコーダ34は命令mをデコードしてジャンプ
命令であることを示す制御信号45を制御部41へ、同
じくジャンプ命令であることを示す制御信号46をプロ
グラムカウンタ24へそれぞれ出力する。プログラムカ
ウンタ24は制御信号46により、命令mが有する即値
アドレス値n(nはある自然数)を命令バス33を介し
て入力し、アドレス値mの次にアドレス値nを出力す
る。一方、制御部41は制御信号45により、プログラ
ムカウンタ24でアドレス値nが出力されるクロック立
上りで、アドレスシフト信号42を「0」状態に、ドラ
イバイネーブル信号43を「1」状態にする。
【0047】ドライバイネーブル信号43の示す「1」
状態によりバスドライバ27はアドレスバス23を駆動
してアドレス値nを伝搬させる。デコーダ30はアドレ
ス値nをデコードし、同様に並列データを出力する。シ
フトレジスタ40はアドレスシフト信号42の示す
「0」状態によりデコーダ30の出力する並列データを
そのまま取り込む。この並列データに従って図7のよう
にF・Fnに「1」、その他のレジスタに「0」が取り
込まれ、それぞれメモリセル群31へ出力される。メモ
リセル群31はこのデコード値により命令nを出力す
る。また、アドレスシフト信号42、ドライバイネーブ
ル信号43は次のクロック立ち下がりでそれぞれ再び
「1」、「0」となるように制御部41は構成されてい
る。
【0048】プログラムカウンタ24はアドレス値nよ
り再び1ずつインクリメントしたアドレス値を(n+
1)、(n+2)、…という具合に出力した場合、各機
能は前述の(1)と同じ動作を行なう。ドライバイネー
ブル信号43が「0」を示すことにより、バスドライバ
27はアドレスバス23の駆動動作を禁止してアドレス
値nを出力させたままとし、一方アドレスシフト信号4
2は「1」を示すのでシフトレジスタ43は再びクロッ
ク立上りに同期してシフト動作を行なう。メモリセル群
31はアクセス信号を保持するF・Fに対応する命令コ
ードをラッチ回路32へ出力する。図7のようにシフト
レジスタ40に保持された信号により読み出された命令
コードは命令バス33を介して命令デコーダに送られ、
各々実行される。
【0049】このように、アドレスシフト信号42の
「1」、ドライバイネーブル信号43の「0」とは、命
令が1ずつインクリメントしたアドレス値により読み出
されることを示し、逆にアドレスシフト信号42の
「0」、ドライバイネーブル信号43の「1」とは、命
令がジャンプ命令等の即値アドレスにより読み出される
ことを示す。このドライバイネーブル信号43によりバ
スドライバ27はリセット時のアドレス値またはジャン
プ命令による即値アドレス値のみをアドレスバス23に
出力するようにする。図7からも明らかなように、1ず
つインクリメントされたアドレス値に対する命令にアク
セスするときバスドライバ27、42は出力値を変化さ
せないので両ドライバは電力を消費しない。即値アドレ
スが出力されるときのみ両バスドライバは電力を消費す
るようになるが、通常ジャンプ命令は稀に生ずることを
考慮すると、プログラム全体の実行においてバスドライ
バの消費電力はかなり削減される。一方アドレスシフト
信号42によりシフトレジスタ40に保持されたアクセ
ス信号を、実行されるべき命令の読み出しを行わせるF
・Fへシフトさせる。従って、1ずつインクリメントさ
れたアドレス値に対する命令へのアクセス時はアドレス
バスにアドレス値を伝搬させずに、そのアドレス値が指
定する命令を読み出すことができる。
【0050】なお、アドレスバス23は複数ビットで構
成され、一方アドレスシフト信号42は1ビットで構成
されるので、出力値変化に対する消費電力はバスドライ
バ44はバスドライバ27に比べて十分小さい。
【0051】また、上記ではアドレス値は1ずつインク
リメントした場合であるが、1以外のある一定値ずつイ
ンクリメントした場合でも、本装置の構成を同様に適用
できる。このとき、シフトレジスタ40のシフト動作に
おいて各F・Fのいづれか1つに保持されるアクセス信
号をその一定値分だけ上位のF・Fにシフトするように
構成すればよい。
【0052】実施例3.図8は本実施例に示す別の半導
体集積回路の回路構成図である。図4ではシフトレジス
タ40を備えたが、その代わりにカウンタ50を備えて
もよい。カウンタ50はアドレスバス23からアドレス
値を入力し、一方、出力される値はアドレス値としてデ
コーダ30に送られる。また51はアドレスカウント信
号で、実施例2のアドレスシフト信号42と同一のもの
である。その他の符号は図4と同一または相当の構成、
機能を示す。
【0053】カウンタ50のカウント動作は、クロック
信号35に同期してデコーダ30にアドレス値を出力す
る。このカウンタ50は制御部41からアドレスカウン
ト信号51を入力し、「1」状態のとき一定値、例えば
1ずつカウントアップしながらアドレス値を出力する。
一方、アドレスカウント信号51が「0」状態のときア
ドレスバス23に出力されたアドレス値をクロックに同
期させることなくそのまま出力する。
【0054】図9は、図7と同様にプログラムカウンタ
24が値0からmまで1ずつインクリメントしたアドレ
ス値を出力し、アドレス値mからアドレス値nへジャン
プする場合のカウンタ50の出力値を示すタイミングチ
ャート図である。なお、アドレスカウント信号51、ド
ライバイネーブル信号43およびアドレスバス23の各
出力値の変化は図7と同一となる。
【0055】読み出し動作開始前では、カウンタ50は
アドレスバス23の出力値であるアドレス値0を入力し
てそのまま出力されているものとする。読み出し動作が
開始されると、プログラムカウンタ24がアドレス値m
を出力するまで、アドレスカウント信号51は常に
「1」を示すので、カウンタ50はアドレス値0よりク
ロックに同期して順次1ずつカウントアップする。従っ
てプログラムカウンタ24の出力するアドレス値をカウ
ンタ50で再生することができる。ジャンプ命令があっ
たとき、プログラムカウンタ23がアドレス値mからジ
ャンプして即値のアドレス値nを出力するとともに、ア
ドレスカウント信号51は「0」、ドライバイネーブル
信号43は「1」を示す。したがって、バスドライバ2
7はアドレスバス23を介してアドレス値nがカウンタ
50に入力させ、カウンタ50はアドレス値mの次にア
ドレス値nをそのまま出力する。その後再び値(n+
1)、(n+2)、…とインクリメントするとカウンタ
50はアドレスカウント信号51は再び「1」を示すの
で、アドレス値nから再び1ずつインクリメントしたカ
ウンタ動作を行なう。ジャンプ命令後もプログラムカウ
ンタ24の出力するアドレス値をカウンタ50が再現す
ることになる。
【0056】デコーダ30は、カウンタ50の出力する
アドレス値を図6と同様にデコードし、そのままメモリ
セル群31に送られ、デコード信号に対応した命令コー
ドを読み出すようにする。
【0057】このように、半導体集積回路は実施例と同
様にジャンプ命令によりジャンプ先の命令を読み出すた
めのアドレス値以外はアドレスバス23に出力しないよ
うにするので、バスドライバ27、44の消費電力は大
幅に削減され、かつそのアドレス値の指定する命令を読
み出すことができる。
【0058】また、上記ではアドレス値は1ずつインク
リメントした場合であるが、1以外のある一定値ずつイ
ンクリメントした場合でも、本装置の構成を同様に適用
できる。このとき、カウンタ40のカウント動作におい
てその一定値分だけインクリメントした値を出力するよ
うに構成すればよい。
【0059】
【発明の効果】以上説明したように、この発明の半導体
集積回路によると、差分回路では連続して出力する第1
のアドレス値と第2のアドレス値との差分を計算し、バ
スドライバに出力するので、バスドライバは差分回路は
プログラムカウンタから一定値ずつインクリメントした
アドレス値が出力される間はその一定の差分値を入力す
る。従ってアドレスバスに伝搬されるアドレス値の変化
を少なくすることによりバスドライバの消費電力を削減
することができる。また、加算器は、この差分値から元
のアドレス値を再現するので、メモリはこのアドレス値
に対応する命令を出力することができる。
【0060】また、この発明の半導体集積回路による
と、バスドライバは制御部から制御信号を入力すること
によりプログラムカウンタから一定値ずつインクリメン
トして出力されたアドレス値を伝搬させないでその出力
値を変化させず、一方この間にシフトレジスタは制御部
から制御信号を入力することで各段のいずれか1つに保
持されたアクセス信号をその一定値分だけシフトさせ、
メモリはこのアクセス信号の保持した段に対応した命令
を出力するので、バスドライバの消費電力を削減しなが
ら、アドレス値の指定する命令を読み取り実行すること
ができる。
【0061】また、この発明の半導体集積回路による
と、バスドライバは制御部から制御信号を入力すること
によりプログラムカウンタから一定値ずつインクリメン
トして出力されたアドレス値を伝搬させないでその出力
値を変化させず、一方この間にカウンタは制御部から制
御信号を入力することでカウンタが一定値分カウントア
ップしたアドレス値を生成しメモリに入力するので、バ
スドライバの消費電力を削減しながら、アドレス値の指
定する命令を読み取り実行することができる。
【0062】また、この発明の半導体集積回路による
と、バスドライバは、ジャンプ命令によりジャンプ先の
命令を指定するアドレス値をアドレスバスを介して伝搬
するようにしたので、メモリはこのアドレス値はそのま
まバスドライバを介してメモリに入力され、このジャン
プ先の命令を出力することができる。
【0063】以上のように、バスドライバの消費電力を
削減により低消費電力の半導体集積回路を実現すること
ができる。
【図面の簡単な説明】
【図1】 この発明の実施例1に示す半導体集積回路の
回路構成図である。
【図2】 図1の半導体集積回路の各部動作を示すタイ
ミングチャート図である。
【図3】 図1の半導体集積回路の各部動作を示すタイ
ミングチャート図である。
【図4】 この発明の実施例2に示す半導体集積回路の
回路構成図である。
【図5】 図4におけるデコーダ30の真理値図であ
る。
【図6】 図4におけるシフトレジスタ40およびメモ
リセル群31の構成を示す概念図である。
【図7】 図4の半導体集積回路の各部動作を示すタイ
ミングチャート図である。
【図8】 この発明の実施例3に示す半導体集積回路の
回路構成図である。
【図9】 図8の半導体集積回路の各部動作を示すタイ
ミングチャート図である。
【図10】 従来技術による半導体集積回路の回路構成
図である。
【符号の説明】
21…アドレス生成部、22…プログラムメモリ、23
…プログラムメモリアドレスバス、24…プログラムカ
ウンタ、25…ラッチ回路、26…減算器、27…バス
ドライバ、28…加算器、29…ラッチ回路、30…デ
コーダ、31…メモリセル群、32…ラッチ回路、33
…命令バス、34…命令デコーダ、35…クロック信
号、40…シフトレジスタ、41…制御部、42…アド
レスシフト信号、43…ドライバイネーブル信号、44
…バスドライバ、45、46…制御信号、50…カウン
タ、51…アドレスカウント信号。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 第1のアドレス値、および該第1のアド
    レス値に連続して第2のアドレス値を生成するプログラ
    ムカウンタ、 前記第1および第2のアドレス値を入力して読み出され
    る命令を記憶するメモリを備えた半導体集積回路におい
    て、 前記プログラムカウンタより出力された前記第1のアド
    レス値を一時保持するアドレス保持回路、 前記プログラムカウンタより出力された前記第2のアド
    レス値と前記第1のアドレス保持手段で保持された前記
    第1のアドレス値との差分値を演算し、該差分値を出力
    する差分回路、 前記差分回路で生成された差分値をアドレスバスを介し
    て伝搬させるよう該アドレスバスを駆動するバスドライ
    バ、 前記差分値を前記アドレスバスを介して入力し、前記差
    分値と前記メモリに入力される前記第1のアドレス値と
    を加算することにより前記第2アドレス値を生成して出
    力する加算回路を備え、 前記メモリは、前記加算回路より出力された前記第2の
    アドレス値を入力して命令を読み出すようにしたことを
    特徴とする半導体集積回路。
  2. 【請求項2】 アドレス値を生成するプログラムカウン
    タを備え、前記アドレス値により読み出される命令を実
    行する半導体集積回路において、 前記アドレス値が前記プログラムカウンタより所定の一
    定値をインクリメントして出力されたとき制御信号を出
    力する制御部、 前記プログラムカウンタより出力される前記アドレス値
    をアドレスバスを介して伝搬させるよう前記アドレスバ
    スを駆動し、前記制御部より前記制御信号を入力したと
    きは前記プログラムカウンタにより出力される前記アド
    レス値を伝搬させずに前記アドレスバスの出力値を変化
    させないバスドライバ、 前記アドレスバスを介して入力されたアドレス値をデコ
    ードしてアクセス信号を出力するアドレスデコーダ、 複数の段からなり、前記アドレスデコーダの出力する前
    記アクセス信号を各段のうちいずれか1つに保持すると
    ともに、前記制御部より前記制御信号を入力したときは
    前記アクセス信号を保持する段より該アクセス信号を前
    記一定値分シフトさせるシフトレジスタ、 前記命令が前記シフトレジスタの各段に対応して記憶さ
    れ、前記アクセス信号を保持した段に対応する命令を出
    力するメモリを備えたことを特徴とする半導体集積回
    路。
  3. 【請求項3】 第1のアドレス値、および該第1のアド
    レス値に連続して第2のアドレス値を生成するプログラ
    ムカウンタ、 前記第1および第2のアドレス値を入力して読み出され
    る命令を記憶するメモリを備えた半導体集積回路におい
    て、 前記第2のアドレス値が前記プログラムカウンタより所
    定の一定値をインクリメントして出力されたとき制御信
    号を出力する制御部、 前記プログラムカウンタより出力される前記第2のアド
    レス値をアドレスバスを介して伝搬させるよう前記アド
    レスバスを駆動し、前記制御部より前記制御信号を入力
    したときは前記プログラムカウンタにより出力される前
    記第2のアドレス値を伝搬させずに前記アドレスバスの
    出力値を変化させないバスドライバ、 前記第1のアドレス値を出力した後に前記アドレスバス
    から入力される前記第2のアドレス値をそのまま出力
    し、前記制御部より前記制御信号を入力したときは前記
    第1のアドレス値に前記一定値をインクリメントして前
    記第2のアドレス値を出力するカウンタを備え、 前記メモリは、前記カウンタにより出力される前記第2
    のアドレス値を入力して命令を読み出すようにしたこと
    を特徴とする半導体集積回路。
  4. 【請求項4】 バスドライバは、ジャンプ命令によりジ
    ャンプ先の命令を指定するアドレス値をアドレスバスを
    介して伝搬するようにしたことを特徴とする請求項2も
    しくは請求項3に記載の半導体集積回路。
JP7014016A 1995-01-31 1995-01-31 半導体集積回路 Pending JPH08202612A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7014016A JPH08202612A (ja) 1995-01-31 1995-01-31 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7014016A JPH08202612A (ja) 1995-01-31 1995-01-31 半導体集積回路

Publications (1)

Publication Number Publication Date
JPH08202612A true JPH08202612A (ja) 1996-08-09

Family

ID=11849405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7014016A Pending JPH08202612A (ja) 1995-01-31 1995-01-31 半導体集積回路

Country Status (1)

Country Link
JP (1) JPH08202612A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2385688A (en) * 2002-02-26 2003-08-27 Nec Technologies Minimising power loss in addressing memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2385688A (en) * 2002-02-26 2003-08-27 Nec Technologies Minimising power loss in addressing memory

Similar Documents

Publication Publication Date Title
US6625740B1 (en) Dynamically activating and deactivating selected circuit blocks of a data processing integrated circuit during execution of instructions according to power code bits appended to selected instructions
JPS63308411A (ja) プログラマブル集積回路デバイス
JPH07168753A (ja) モジュロ加算回路およびその動作方法
JP2001332961A (ja) クロック切替回路
JPH08202612A (ja) 半導体集積回路
JP3098409B2 (ja) 命令をリアル・タイムで処理する装置または方法
JP2003196149A (ja) メモリ制御装置
JPH0721103A (ja) データ転送装置
JP2002300021A (ja) 集積回路装置
JP2004206480A (ja) 半導体集積回路
WO2008026273A1 (fr) Contrôleur dma
JP5447511B2 (ja) 通信回路および通信方法
JP2003067324A (ja) インタフェース回路
JPH0423511A (ja) Pwm出力回路
JP2001092658A (ja) データ処理回路及びデータ処理装置
JP3048762B2 (ja) 半導体集積回路装置
US7266581B2 (en) Arithmetic circuit
JPH0198046A (ja) キャッシュメモリ制御用集積回路
JP2002300035A (ja) A/dインタフェース回路
JP2001109657A (ja) アドレス生成回路
JPH08185386A (ja) 音響処理用集積回路
JPH09145803A (ja) テストモード設定回路
JPH1074190A (ja) 並列プロセッサ
JPH04303247A (ja) マイクロコンピュータ装置
JPH05120879A (ja) 半導体メモリ装置