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

半導体集積回路

Info

Publication number
JPH08185320A
JPH08185320A JP6327596A JP32759694A JPH08185320A JP H08185320 A JPH08185320 A JP H08185320A JP 6327596 A JP6327596 A JP 6327596A JP 32759694 A JP32759694 A JP 32759694A JP H08185320 A JPH08185320 A JP H08185320A
Authority
JP
Japan
Prior art keywords
data
instruction
bit
queue
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
JP6327596A
Other languages
English (en)
Inventor
Mamoru Sakukawa
守 作川
Takeshi Hashizume
毅 橋爪
Kazuhiro Sakashita
和広 坂下
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 JP6327596A priority Critical patent/JPH08185320A/ja
Priority to US08/550,809 priority patent/US5621694A/en
Priority to KR1019950058784A priority patent/KR0169555B1/ko
Priority to CN95120103.4A priority patent/CN1133454A/zh
Publication of JPH08185320A publication Critical patent/JPH08185320A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR 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; CALCULATING OR 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/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System (AREA)

Abstract

(57)【要約】 【目的】 半導体集積回路の処理能力の向上させ、かつ
安価な半導体集積回路を得ることを目的とするものであ
る。 【構成】 Nビット(Nは整数;N>1)のデータある
いは命令を一度に処理可能な半導体集積回路において、
外部メモリから半導体集積回路内で処理可能な前記Nビ
ットのデータあるいは命令のM倍分(M>1)の命令あ
るいはデータをバスを介して受け取って記憶するキュー
を備えたものである。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、半導体集積回路に関
し、特に、半導体集積回路の処理能力を向上させること
に関する。
【0002】
【従来の技術】近年の半導体製造技術の急速な進歩に伴
い、マイクロプロセッサの性能が大きく向上しているの
に対し、メモリは集積度は向上したが、アクセス性能は
あまり向上していない。このために、マイクロプロセッ
サとメモリの性能差は開く一方で、高性能なマイクロプ
ロセッサを搭載してもシステム全体の性能が向上しなく
なってきた。なぜなら、マイクロプロセッサは、常にメ
モリとデータのやり取りをするために、メモリアクセス
に時間がかかると内部処理を有効に行うことができない
からである。そこで、メモリアクセスによる処理能力低
下を抑えて、システム全体の性能を向上させる必要があ
る。
【0003】その例として、図26は従来の半導体集積
回路を示す図であり、マイクロプロセッサとメモリの処
理能力の差を無くすように構成されている。1はメモ
リ、2はマイクロプロセッサ、3はバスコントローラで
ある。バスコントローラ3は、内部に制御部4、レジス
タ5を備えている。このシステムは、マイクロプロセッ
サ2の内部バス幅と、外部バス幅(アドレスバス、デー
タバス)とが異なる場合に、データ転送の効率を向上さ
せるために使用される例である。例えば、広いバス幅を
16ビット、狭いバス幅を8ビットとする。狭い幅のバ
スから広い幅のバスへデータを転送する場合には、狭い
幅のバスからの8ビットのデータをレジスタ5に記憶
し、16ビット揃った時に、広い幅のバスへ16ビット
のデータを転送させ、また、広い幅のバスから狭い幅の
バスへデータを転送する場合には、広い幅のバスからの
16ビットのデータを8ビットに分割してレジスタ5に
記憶させ、8ビット毎に、狭い幅のバスへデータを転送
させるように構成されている。
【0004】
【発明が解決しようとする課題】以上のように、従来の
半導体集積回路においては、バスコントローラは完全に
マイクロプロセッサと独立して動作するようになってい
るので、マイクロプロセッサの内部処理の状況を考慮し
てレジスタの制御を行うことができないために、半導体
集積回路の処理能力の低下につながるという問題点があ
った。例えば、分岐命令の実行、分岐成立によって、そ
れまでレジスタに記憶されていたデータをクリアした
り、ロードディレイの間にレジスタが一杯にならないよ
うに、内部処理を効率よく実行させることができないこ
とや、更に、複数個の命令を先取りしておくことによる
マイクロプロセッサ内部での動的スケジューリングの実
現が難しいということである。なお、動的スケジューリ
ングとは、命令の実行順序を変更しても問題にならない
という前提の元で、キューに入っている命令の中から実
行順序を変えた方が性能が向上すると思われる部分を変
えて実行することである。
【0005】また、データを分解する機能などの制御を
マイクロプロセッサ外部にもたせているために、半導体
集積回路の部品点数が多くなり、製造コストが高くなっ
てしまうという問題点もある。
【0006】この発明は、上記のような問題点を解決す
るためになされたものであり、半導体集積回路の処理能
力を向上させ、かつ安価な半導体集積回路を得ることを
目的とするものである。
【0007】
【課題を解決するための手段】この発明にかかる半導体
集積回路は、外部メモリから半導体集積回路内で処理可
能なNビットのデータあるいは命令のM倍分(M>1)
の命令あるいはデータをバスを介して受け取って記憶す
るキューを備えたものである。
【0008】また、L個(Lは整数;L>1)のキュー
を有し、外部メモリからN×Mビット幅のバスを介し
て、N×Mビットの命令あるいはデータを第1番目のキ
ューに記憶させ、その記憶したN×Mビットの命令ある
いはデータを第2番目から第L番目のキューへと順次シ
フトさせるキュー制御部と、L番目のキューに記憶され
たN×Mビットの命令あるいはデータを半導体集積回路
内で処理可能なNビットの命令あるいはデータに分割し
て演算部に出力させるマルチプレクサとを備えたもので
ある。また、N×Mビットのバスから可変長の命令ある
いはデータを受け取り、その命令あるいはデータを第1
番目のキューの所定の記憶位置に出力するセレクタを設
けたものである。
【0009】また、バスは、キャッシュメモリに接続さ
れているように構成している。また、キューは、外部メ
モリからN×Mビットの命令を受け取り記憶する命令キ
ューと、外部メモリからN×Mビットのデータを受け取
り記憶するデータキューとを有するものである。
【0010】また、L個の命令キューおよびデータキュ
ーを有し、外部メモリからN×Mビット幅のバスを介し
て、N×Mビットの命令を第1番目の命令キューに記憶
させ、その記憶したN×Mビットの命令を第2番目から
第L番目の命令キューへと順次シフトさせ、また、外部
メモリからN×Mビット幅のバスを介して、N×Mビッ
トのデータを第1番目のデータキューに記憶させ、その
記憶したN×Mビットのデータを第2番目から第L番目
のデータキューへと順次シフトさせるキュー制御部と、
L番目の命令キューに記憶されたN×Mビットの命令を
半導体集積回路内で処理可能なNビットの命令に分割し
て演算部に出力させる第1のマルチプレクサと、L番目
のデータキューに記憶されたN×Mビットのデータを半
導体集積回路内で処理可能なNビットのデータに分割し
て演算部に出力させる第2のマルチプレクサとを備えた
ものである。
【0011】また、命令バスからの可変長の命令を受け
取り、第1番目の命令キューの所定位置へその命令を出
力する第1のセレクタと、データバスからの可変長のデ
ータを受け取り、第1番目のデータキューの所定位置へ
そのデータを出力する第2のセレクタとを設けたもので
ある。
【0012】また、命令バスおよびデータバスは、キャ
ッシュメモリに接続されている。また、外部メモリは、
Nビットの命令を記憶する命令メモリとNビットのデー
タを記憶するデータメモリとからなり、第1番目の命令
キューは、N×Mビットの命令バスを介して命令メモリ
と接続され、第1番目のデータキューは、N×Mビット
のデータバスを介してデータメモリと接続されている。
【0013】また、第1番目の命令キューは、Nビット
の命令バスおよびN×(M−1)ビットの兼用バスを介
して外部メモリと接続され、第1番目のデータキュー
は、NビットのデータバスおよびN×(M−1)ビット
の兼用バスを介して外部メモリと接続されている。
【0014】また、命令バス、データバスおよび兼用バ
スは、キャッシュメモリに接続されている。 また、キ
ューは、外部メモリからN×Mビットの命令を受け取り
記憶する命令キューと、外部メモリからNビットのデー
タを受け取り記憶するデータキューとを有するように構
成している。
【0015】また、L個の命令キューおよびデータキュ
ーを有し、外部メモリからN×Mビット幅のバスを介し
て、N×Mビットの命令を第1番目の命令キューに記憶
させ、その記憶したN×Mビットの命令を第2番目から
第L番目の命令キューへと順次シフトさせ、また、外部
メモリからN×Mビット幅のバスを介して、Nビットの
データを第1番目のデータキューに記憶させ、その記憶
したNビットのデータを第2番目から第L番目のデータ
キューへと順次シフトさせるキュー制御部と、L番目の
命令キューに記憶されたN×Mビットの命令を半導体集
積回路内で処理可能なNビットの命令に分割して演算部
に出力させるマルチプレクサとを備えたものである。
【0016】また、外部メモリは、Nビットの命令を記
憶する命令メモリとNビットのデータを記憶するデータ
メモリとからなり、L個の命令キューおよびデータキュ
ーを有し、命令メモリからN×Mビット幅の命令バスを
介して、N×Mビットの命令を第1番目の命令キューに
記憶させ、その記憶したN×Mビットの命令を第2番目
から第L番目の命令キューへと順次シフトさせ、また、
データメモリからNビット幅のデータバスを介して、N
ビットのデータを第1番目のデータキューに記憶させ、
その記憶したNビットのデータを第2番目から第L番目
のデータキューへと順次シフトさせるキュー制御部と、
L番目の命令キューに記憶されたN×Mビットの命令を
半導体集積回路内で処理可能なNビットの命令に分割し
て演算部に出力させるマルチプレクサとを備えたもので
ある。
【0017】また、キューは、外部メモリからNビット
の命令を受け取り記憶する命令キューと、外部メモリか
らN×Mビットのデータを受け取り記憶するデータキュ
ーとを有する。
【0018】また、L個の命令キューおよびデータキュ
ーを有し、外部メモリからN×Mビット幅のバスを介し
て、Nビットの命令を第1番目の命令キューに記憶さ
せ、その記憶したNビットの命令を第2番目から第L番
目の命令キューへと順次シフトさせ、また、外部メモリ
からN×Mビット幅のバスを介して、N×Mビットのデ
ータを第1番目のデータキューに記憶させ、その記憶し
たN×Mビットのデータを第2番目から第L番目のデー
タキューへと順次シフトさせるキュー制御部と、L番目
のデータキューに記憶されたN×Mビットのデータを半
導体集積回路内で処理可能なNビットのデータに分割し
て演算部に出力させるマルチプレクサとを備えたもので
ある。
【0019】また、外部メモリは、Nビットの命令を記
憶する命令メモリとNビットのデータを記憶するデータ
メモリとからなり、L個の命令キューおよびデータキュ
ーを有し、命令メモリからNビット幅の命令バスを介し
て、Nビットの命令を第1番目の命令キューに記憶さ
せ、その記憶したNビットの命令を第2番目から第L番
目の命令キューへと順次シフトさせ、また、データメモ
リからN×Mビット幅のデータバスを介して、N×Mビ
ットのデータを第1番目のデータキューに記憶させ、そ
の記憶したN×Mビットのデータを第2番目から第L番
目のデータキューへと順次シフトさせるキュー制御部
と、L番目の前記データキューに記憶されたN×Mビッ
トのデータを半導体集積回路内で処理可能なNビットの
データに分割して演算部に出力させるマルチプレクサと
を備えたものである。
【0020】また、キューは、外部メモリからN×Mビ
ットの命令を受け取り記憶する命令キューと、外部メモ
リからN×K(K>M)ビットのデータを受け取り記憶
するデータキューとを有する。
【0021】また、L個の命令キューおよびデータキュ
ーを有し、外部メモリからN×Kビット幅のバスを介し
て、N×Mビットの命令を第1番目の命令キューに記憶
させ、その記憶したN×Mビットの命令を第2番目から
第L番目の命令キューへと順次シフトさせ、また、外部
メモリからN×Kビット幅のバスを介して、N×Kビッ
トのデータを第1番目のデータキューに記憶させ、その
記憶したN×Kビットのデータを第2番目から第L番目
のデータキューへと順次シフトさせるキュー制御部と、
L番目のデータキューに記憶されたN×Mビットのデー
タを半導体集積回路内で処理可能なNビットのデータに
分割して演算部に出力させる第1のマルチプレクサと、
L番目のデータキューに記憶されたN×Kビットのデー
タを半導体集積回路内で処理可能なNビットのデータに
分割して演算部に出力させる第2のマルチプレクサとを
備えたものである。
【0022】さらに、外部メモリは、Nビットの命令を
記憶する命令メモリとNビットのデータを記憶するデー
タメモリとからなり、L個の命令キューおよびデータキ
ューを有し、命令メモリからN×Mビット幅の命令バス
を介して、N×Mビットの命令を第1番目の命令キュー
に記憶させ、その記憶したN×Mビットの命令を第2番
目から第L番目の命令キューへと順次シフトさせ、ま
た、データメモリからN×Kビット幅のデータバスを介
して、N×Kビットのデータを第1番目のデータキュー
に記憶させ、その記憶したN×Kビットのデータを第2
番目から第L番目のデータキューへと順次シフトさせる
キュー制御部と、L番目の命令キューに記憶されたN×
Mビットのデータを半導体集積回路内で処理可能なNビ
ットのデータに分割して演算部に出力させる第1のマル
チプレクサと、L番目のデータキューに記憶されたN×
Kビットのデータを半導体集積回路内で処理可能なNビ
ットのデータに分割して演算部に出力させる第2のマル
チプレクサとを備えたものである。さらにまた、バス、
データバスまたはデータバスは、アライナに接続されて
いる。
【0023】
【作用】上記のように半導体集積回路は、半導体集積回
路内部で処理可能なNビットのM倍の多量の命令あるい
はデータを半導体集積回路内に設けられたキューに記憶
させているので、半導体集積回路内部の処理状況に応じ
た内部動作が可能となる。
【0024】また、半導体集積回路内部に、キューを設
けることにより、半導体集積回路の部品点数が減る。
【0025】
【実施例】
実施例1.図1は、この発明の第1の実施例である半導
体集積回路の構成を示した図である。6はマイクロプロ
セッサである。7はメモリであり、アドレスバス(nビ
ット)およびデータバス(n×mビット)を介してマイ
クロプロセッサ6と接続されている。8はコアであり、
演算部9やレジスタ10などを有し、nビットの演算を
実行する。この実施例では、マイクロプロセッサ6が処
理可能な命令あるいはデータの単位をnビットとする。
また、コア8には図示しないが、CPU(中央処理装
置)も含まれている。11はバスコントローラである。
12はマルチプレクサ(以下、MUXと称す)であり、
後述するキューからのデータを選択し、演算部9に出力
するためのものである。13はn×mビット(m>1)
のキューであり、マイクロプロセッサ6に複数個搭載さ
れており、マイクロプロセッサ6内で一度に処理可能な
nビットのm倍分(n×m)の命令およびデータを記憶
する。14はキュー制御部であり、キュー13を制御す
るためのものである。
【0026】図2は、図1に示した回路図の詳細を示し
た図ある。キュー13は、Dフリップフロップ15〜2
3で構成されており、1つのキュー13には、n×m個
のDフリップフロップが備わっており、メモリ7からn
×mビットの命令あるいはデータをクロック(以下、C
LK信号と称す)に同期して受け取り、受け取った命令
あるいはデータは、キュー13の下段(メモリ7側)か
ら上段(MUX12側)へとシフトされていく。キュー
制御部14は、CLK信号に基づき、Dフリップフロッ
プ15〜23のCK端子へ信号を出力して、キュー13
へ入力される命令およびデータの制御(下段から上段へ
のシフト動作など)を行い、また、CPUからのキュー
クリア信号に基づき、どれか1つのキュー13あるいは
すべてのキュー13、更にはキュー13の中の各Dフリ
ップフロップ15〜23の無効が実行される。キュー制
御部14からは、キュー13内部の状態を表すキュース
テイト信号がCPUへ出力される。キュー13内部の状
態とは、すべてのキュー13が満杯であることや空であ
ることなどを表すことである。MUX12は、コア8の
CPUからの選択信号を受け取り、最上段(MUX12
側)のキュー13のどのDフリップフロップ21〜23
に記憶されている命令およびデータを演算部9へ出力す
るかを制御する。
【0027】図3は、MUX12がキュー13を選択す
る動作を説明するための図である。以下、キュー13に
記憶されているのは、説明の都合上、命令とする。例え
ば、32ビット(8ビットの4倍)の命令A〜Dがキュ
ー13(最上段のキュー13を指す)に記憶されていた
とすると、通常はCPUからの選択信号に基づいて命令
Aが選択されるところ、演算部9におけるジャンプ命令
の実行により演算部9で命令Cが必要になった場合、M
UX12により命令Cを選択し、命令Cを演算部9へ出
力する。
【0028】この実施例においては、マイクロプロセッ
サ6で処理可能なバス幅nビットに対し、メモリ7に対
してアクセスするデータバス幅をnのm倍(m>1)と
し、命令は一度にm倍分(n×mビット)取り出すよう
に構成されている。メモリ7から取り出されたn×mビ
ットの命令は、マイクロプロセッサ6に設けれたキュー
13に記憶される。メモリ7からの命令の取り出しは、
マイクロプロセッサ6からの指示によって毎サイクルま
たは数サイクルごとに行われ、効率よく内部処理が行え
るようにキュー13に命令を記憶しておく。例えば、1
つのアドレス信号を受け取り、m個のnビットの命令を
メモリ7から出力するように構成する。キュー13に記
憶された命令は、キュー13の下段から上段へとシフト
され、最上段のキュー13に接続されているMUX12
により、マイクロプロセッサ6内部処理可能な命令のサ
イズに分解され、演算部9に出力される。キュー13か
ら演算部9へ命令が出力される際の分割は、マイクロプ
ロセッサ6で処理可能なバス幅を1単位として行われ
る。マイクロプロセッサ6で処理可能なバス幅nとは、
例えば、ALUを1個備えているのであれば32ビット
であり、2個備えているのであれば64ビットである。
キュー13に記憶される命令は、32ビットあるいは6
4ビットのm倍、例えば、その2倍あるいはそれ以上の
ビット幅でメモリ7から取り出されて記憶される。
【0029】図4および図5は、従来装置におけるメモ
リ7からマイクロプロセッサ6へデータを取り出すタイ
ミングチャートを示した図である。clockはマイク
ロプロセッサ6が動作するための基本クロックであるC
LK信号、addressはマイクロプロセッサ6から
メモリ7へアドレスバス(nビット)を介して出力され
るアドレス信号、A、Bは2つのレジスタ、MPUはマ
イクロプロセッサ6に取り込まれる命令を示す。図4は
マイクロプロセッサ6の処理速度に対し、メモリアクセ
スが1ウエイト(つまり2倍遅い)のときを示し、図5
は2ウエイトのときを示す。addressの1、2・
・は、アドレス信号の番号を示し、レジスタA、Bの
1、2・・は、アドレス信号1、2・・に対応したメモ
リ7の命令、MPUの1、2・・は、レジスタA、Bか
ら取り出された命令1、2・・の番号を示す。図4のよ
うに、1ウエイトの場合は、マイクロプロセッサ6にお
いて、レジスタから命令を取り込むための待ち状態はな
いが、図5のように2ウエイトの場合には、マイクロプ
ロセッサ6で待ち状態(網掛け部分)が発生してしま
う。待ち状態とは、マイクロプロセッサ6がレジスタか
ら命令の取り出しを行えるまで、マイクロプロセッサ6
の処理を止める状態である。このような待ち状態が発生
すると、高機能なマイクロプロセッサ6であっても、メ
モリ7からレジスタへの命令の取り込みのための時間を
要することにより、マイクロプロセッサ6の処理能力の
低下につながる。マイクロプロセッサ6とメモリ7との
処理能力の差、つまり、ウエイト数が大きくなるにした
がい、マイクロプロセッサ6における待ち状態が長く、
また多く発生する。これは、バスコントローラにおける
レジスタ数が限られていることと、1つのレジスタには
マイクロプロセッサ6で処理可能なバス幅しか記憶でき
ないことが原因である。しかし、この実施例において
は、マイクロプロセッサ6で処理可能なバス幅よりも大
きいバス幅(n×m)の命令をキュー13に取り込んで
いるために、メモリ7からレジスタへ命令が取り込まれ
るための時間をマイクロプロセッサ6が待つ必要がな
く、キュー13に取り込まれている命令の中から必要な
命令をMUX12を介して演算部9へ出力するように構
成されているので、図5に示すようなマイクロプロセッ
サ6での待ち状態が発生する頻度が少なくなる。この実
施例では、マイクロプロセッサ6に予めnビットのm倍
の命令を取り込んでいるので、図4に示されているMP
Uのように、待ち状態がなく、高速に演算部9へ命令が
出力される。
【0030】以上のように、マイクロプロセッサ6で処
理可能な命令(データ)数以上の命令(データ)を一度
にキュー13に記憶させることができるので、実際のメ
モリアクセスにかかる時間を1/mに縮小させることが
でき、メモリアクセス回数の減少によるマイクロプロセ
ッサ6の高性能化、マイクロプロセッサ6の内部処理の
軽減、マイクロプロセッサ6の処理とメモリアクセスと
の間の速度差を緩衝することができる。また、キュー1
3を複数個備えることにより、マイクロプロセッサ6と
メモリ7との処理の速度差を更に緩衝させることがで
き、キュー13に常時データが存在するように取り出し
を行えば、ロードディレイによるマイクロプロセッサ6
の性能低下を防ぐことができる。また、分岐命令の実行
に対し、キュー13から分岐先命令を取り出すことが可
能であり、従来のマイクロプロセッサよりも高速に分岐
先命令をアクセスできる。さらに、動的スケジューリン
グが実現しやすい。更に、マイクロプロセッサ6にキュ
ー13を設けることにより、部品点数が減り、製造コス
トが安くなる。
【0031】実施例2.図6は、この発明の第2の実施
例である半導体集積回路の構成を示した図である。6〜
11は、図1記載の構成と同様の構成である。この実施
例では、実施例1のデータバスを命令バスとデータバス
の2つの分け、各バスに対してキューが接続されてい
る。24、27はMUXであり、後述するキューからの
命令およびデータをそれぞれ選択し、演算部9にnビッ
トの命令およびデータを出力する。25、28は、マイ
クロプロセッサ6内で一度に処理可能なバス幅nビット
のm倍分(n×mビット)の命令およびデータをそれぞ
れ記憶する命令キューおよびデータキューであり、マイ
クロプロセッサ6にそれぞれ複数個備わっている。マイ
クロプロセッサ6で処理可能なバス幅とは、例えば、A
LUを1個備えているのであれば32ビットであり、2
個備えているのであれば64ビットであり、m倍(m>
1)とは、例えば32ビットの2倍(64ビット)とい
うことである。キュー25、28内部は、図2で示した
ように、Dフリップフロップで構成されている。命令キ
ュー25の最下段(メモリ7側)は、命令バスが接続さ
れ、データキュー28の最下段(メモリ7側)は、デー
タバスが接続されている。26は命令キュー制御部であ
り、命令キュー25を制御し、29はデータキュー制御
部であり、データキュー28を制御するためのものであ
る。メモリ7は単一構成にして、n×mビットの命令あ
るいはデータを共通のデータバスに出力し、キューに入
れる際に命令とデータとに分けるようにする。
【0032】マイクロプロセッサ6は、メモリ7に対し
て、nビットのアドレス信号を出力し、メモリ7からの
m×nビットの命令およびデータをバスを介して、命令
キュー25およびデータキュー28に取り込む。メモリ
7からの命令およびデータの取り出しは、コア8からバ
スコントローラ11へ取り出し要求信号を出力すること
により行われる。コア8への命令およびデータの取り込
みは、コア8から命令キュー制御部26およびデータキ
ュー制御部29へ要求信号およびMUX24、27への
選択信号を出力し、命令キュー25(MUX24側)お
よびデータキュー28(MUX27側)から、必要な命
令、データを適切なサイズにしてMUX24,27を通
って演算部9へ出力される。適切なサイズとは、マイク
ロプロセッサ6で処理可能なサイズのことであり、例え
ば32ビットである。メモリ7から出力されたものが命
令なのかデータなのかを区別するために、メモリ7のア
ドレス空間を命令用とデータ用に明確に分け、マイクロ
プロセッサ6からのアドレス信号によりどちらのアドレ
ス信号であるかを識別したり、マイクロプロセッサ6か
らの制御信号(図示しない)によって識別する。
【0033】以上のように、この実施例においては、マ
イクロプロセッサ6に命令用とデータ用にキューを分離
させた構成を採っているので、命令アクセスとデータア
クセスとを別々に独立して処理することが可能であるの
で、命令へのアクセスとデータのアクセスの競合を防止
することができるという効果を奏する。
【0034】実施例3.図7は、この発明の第3の実施
例である半導体集積回路の構成を示した図である。図に
おいて、6〜11、24〜29は上述した図6の構成と
同様の構成である。30は命令用のメモリ、31はデー
タ用のメモリである。命令メモリ30は、n×mビット
の命令バスを介して命令キュー25に接続され、データ
メモリ31はn×mビットのデータバスを介してデータ
キュー28に接続されている。命令メモリ30、データ
メモリ31は、nビットのアドレスバスを介してバスコ
ントローラ11と接続されている。マイクロプロセッサ
6は、命令メモリ30あるいはデータメモリ31に対し
て、バスコントローラ11からnビットのアドレス信号
を出力し、命令メモリ30あるいはデータメモリ31か
ら、m×nビットの命令あるいはデータを命令バス、デ
ータバスから命令キュー25、データキュー28にそれ
ぞれ取り込む。命令メモリ30あるいはデータメモリ3
1からの命令あるいはデータの取り出しは、コア8から
バスコントローラ11へ取り出し要求信号を出力するこ
とにより行われる。コア8への命令あるいはデータの取
り込みは、コア8から命令キュー制御部26およびデー
タキュー制御部29へ要求信号およびMUX24、27
への選択信号を出力し、命令キュー25(MUX24
側)あるいはデータキュー28(MUX27側)から、
必要な命令あるいはデータを適切なサイズにしてMUX
24,27を通って演算部9へ出力される。適切なサイ
ズとは、マイクロプロセッサ6で処理可能なバス幅のこ
とである。メモリは命令用とデータ用の2種類を使用
し、それぞれが独立して動作するような構成になってい
る。
【0035】以上のように、この実施例においては、マ
イクロプロセッサ6に命令用とデータ用のキューを分離
させた構成を採っているので、命令アクセスとデータア
クセスとを別々に独立して処理することが可能であるの
で、命令へのアクセスとデータのアクセスの競合を防止
することができる。また、命令メモリ30とデータメモ
リ31というようにメモリを分離させることにより、例
えば、プログラムサイズが小さければ命令メモリ30を
マイクロプロセッサ6に内蔵させことも可能になり、小
容量のメモリはアクセススピードも速くなるという効果
を奏する。
【0036】実施例4.図8は、この発明の第4の実施
例の半導体集積回路の構成を示す図である。6〜11、
24〜26、29は上述した図6で示した構成と同様で
ある。32は、命令キューであり、マイクロプロセッサ
6で処理可能なバス幅nビットのm倍分(n×mビッ
ト)の命令を記憶する。33は、データキューであり、
マイクロプロセッサ6で処理可能なバス幅nビットのデ
ータを記憶する。この実施例においては、命令キュー3
2側の命令バス幅のみをマイクロプロセッサ6の内部バ
ス幅よりも大きくし(n×mビット)、データバスは、
n×mビットの内、マイクロプロセッサ6の内部バス幅
(nビット)と同じnビットのみがデータキュー33と
接続されている。データキュー33もnビットのデータ
のみを記憶できるように構成されている。つまり、デー
タキュー33は、Dフリップフロップがn個で構成され
ている。データキュー33のnビットのデータは、MU
Xを通らずに、直接演算部9へ出力される。命令キュー
32およびデータキュー33とメモリ7との接続は、バ
スを共有しているので、データバスにおけるnビット以
外の不必要なビットはマイクロプロセッサ6へは入力さ
れない。この不要な部分は、開放にしておく方法やマル
チプレクサで選択させる方法をとる。メモリ7からマイ
クロプロセッサ6への命令あるいはデータの取り込み動
作、マイクロプロセッサ6の演算部9への命令あるいは
データの取り込み動作は、実施例2と同様なので説明は
省略する。
【0037】以上のように構成することで、データキュ
ー33を小型化できるので、半導体集積回路の回路規模
を削減することができるという効果を奏する。
【0038】実施例5.図9は、この発明の第5の実施
例の半導体集積回路の構成を示した図である。6〜1
1、24〜31は上述した図7で示した構成と同様であ
る。34は、命令キューであり、マイクロプロセッサ6
で処理可能なバス幅nビットのm倍分(n×mビット)
の命令を記憶する。35は、データキューであり、マイ
クロプロセッサ6で処理可能なバス幅nビットのデータ
を記憶する。この実施例においては、メモリを命令メモ
リ30とデータメモリ31とに分け、命令キュー34側
のバス幅のみをマイクロプロセッサ6内部バス幅より大
きくし(n×mビット)、データバスは、マイクロプロ
セッサ6の内部バス幅(nビット)と同じとする。デー
タキュー35もnビットのみ記憶できるように構成され
ている。つまり、データキュー35を構成するDフリッ
プフロップがn個有する。データキュー35のnビット
のデータは、MUXを通らずに、直接演算部9へ出力さ
れる。メモリ7からマイクロプロセッサ6への命令ある
いはデータの取り込み動作、マイクロプロセッサ6の演
算部9への命令あるいはデータの取り込み動作は、実施
例3と同様なので説明は省略する。
【0039】以上のように構成することで、データキュ
ー35が縮小されるので、半導体集積回路の回路規模を
削減することができるという効果を奏する。
【0040】実施例6.図10は、この発明の第6の実
施例の半導体集積回路の構成を示した図である。6〜1
1、26〜29は上述した実施例2と同様の構成であ
る。36は、命令キューであり、マイクロプロセッサ6
で処理可能なバス幅nビットの命令を記憶する。37
は、データキューであり、マイクロプロセッサ6で処理
可能なバス幅nビットのm倍分(n×mビット)のデー
タを記憶する。この実施例においては、データキュー3
7側のバス幅のみをマイクロプロセッサ6の内部バスよ
りも大きくし(n×mビット)、命令バスは、マイクロ
プロセッサ6の内部バス幅(nビット)と同じnビット
のみを接続し、残りのビットは接続せずに開放してい
る。メモリ7は単一構成にして、キューに取り込む際
に、データと命令とを分けるようにする。データキュー
37はnビットのみ記憶できるように構成されている。
つまり、命令キュー36を構成するDフリップフロップ
がn個有する。命令キュー36のnビットのデータは、
MUXを通らずに、直接演算部9へ出力される。命令キ
ュー36およびデータキュー37とメモリ7との接続
は、バスを共有しているので、命令バスにおけるnビッ
ト以外の不必要なビットはマイクロプロセッサ6へは入
力されない。この不要な部分は、開放にしておく方法や
マルチプレクサで選択させる方法をとる。メモリ7から
マイクロプロセッサ6への命令あるいはデータの取り込
み動作、マイクロプロセッサ6の演算部9への命令ある
いはデータの取り込み動作は、実施例2と同様である。
【0041】以上のように構成することで、命令キュー
36が縮小されるので、半導体集積回路の回路規模を削
減することができるという効果を奏する。
【0042】実施例7.図11は、この発明の第7の実
施例の半導体集積回路の構成を示した図である。38
は、命令キューであり、マイクロプロセッサ6で処理可
能なバス幅nビットの命令を記憶する。39はデータキ
ューであり、マイクロプロセッサ6で処理可能なバス幅
nビットのm倍分(n×mビット)のデータを記憶す
る。この実施例においては、メモリを命令メモリ30と
データメモリ31とに分け、データキュー39側のバス
幅のみをマイクロプロセッサ6内部バス幅より大きくし
(n×mビット)、命令バスは、マイクロプロセッサ6
の内部バス幅(nビット)と同じとする。命令キュー3
8はnビットのみ記憶できるように構成されている。つ
まり、命令キュー38を構成するDフリップフロップが
n個有する。命令キュー38のnビットのデータは、M
UXを通らずに、直接演算部9へ出力される。命令メモ
リ30およびデータメモリ31からマイクロプロセッサ
6への命令およびデータの取り込み動作、マイクロプロ
セッサ6の演算部9への命令あるいはデータの取り込み
動作は、実施例3と同様なので説明は省略する。
【0043】このように構成することで、メモリを命令
メモリ30とデータメモリ31とに分けた場合におい
て、命令キュー38が縮小されるので、半導体集積回路
の回路規模を削減できるという効果を奏する。
【0044】実施例8.図12は、この発明の第8の実
施例の半導体集積回路の構成を示した図である。40は
命令キューであり、マイクロプロセッサ6で処理可能な
バス幅nビットのm倍分(n×mビット)の命令を記憶
する。41はデータキューであり、マイクロプロセッサ
6で処理可能なバス幅nビットのk倍分(n×kビッ
ト)のデータを記憶する。なお、k>m>1とする。こ
の実施例においては、命令バスは、マイクロプロセッサ
6で処理可能なバス幅nビットのm倍のバス幅からな
り、データバスは、マイクロプロセッサ6で処理可能な
バス幅のk(k>m)倍のバス幅からなる。例えば、マ
イクロプロセッサ6で処理可能なバス幅が32ビットで
あれば、命令キュー40に取り込まれるビット幅をその
2倍の64ビット幅の命令、データキュー41はその3
倍の96ビット幅のデータをメモリ7から取り込むよう
にする。データキュー41は、n×kビットのメモリ7
からのデータが記憶できるように構成されており、Dフ
リップフロップをn×k個有する。メモリ7からは共通
のバス(n×kビット)を介して、マイクロプロセッサ
6へ命令およびデータが出力されているので、メモリ7
とマイクロプロセッサ6とは、n×kビットの幅のバス
で共通に接続されている。命令キュー40とは、命令バ
スから必要なビット分(n×mビット)のみを取り込む
ようにする。残りのバスは不要であるので開放してお
く。メモリ7は、単一構成にして、命令キュー40、デ
ータキュー41に入力される際に、命令とデータとを分
ける。メモリ7からマイクロプロセッサ6への命令ある
いはデータの取り込み動作、マイクロプロセッサ6の演
算部9への命令あるいはデータの取り込み動作は、実施
例2と同様である。
【0045】このように構成することで、データキュー
41を更に多くのデータを記憶できるように構成したの
で、動的スケジューリングが実現容易になり、半導体集
積回路の処理能力が向上する。
【0046】実施例9.図13は、この発明の第9の実
施例の半導体集積回路の構成を示した図である。42
は、命令キューであり、マイクロプロセッサ6で処理可
能なバス幅nビットのm倍分の命令(n×mビット)を
記憶する。43はデータキューであり、マイクロプロセ
ッサ6で処理可能なバス幅nビットのk倍分(n×kビ
ット)のデータを記憶する。なお、k>m>1とする。
例えば、マイクロプロセッサ6で処理可能なバス幅が3
2ビットであれば、命令キュー42に取り込まれるビッ
ト幅をその2倍の64ビット幅の命令、データキュー4
3はその3倍の96ビット幅のデータを取り込むように
する。この実施例においては、メモリを命令メモリ30
とデータメモリ31とに分け、命令メモリ30は、n×
mビットの命令バスを介して命令キュー42に接続さ
れ、データメモリ31はn×kビットのデータバスを介
してデータキュー43に接続されている。命令メモリ3
0、データメモリ31は、nビットのアドレスバスを介
してバスコントローラ11と接続されている。命令キュ
ー42は、Dフリップフロップをn×m個有し、データ
タキュー43は、Dフリップフロップをn×k個有する
ように構成されている。メモリ7からマイクロプロセッ
サ6への命令あるいはデータの取り込み動作、マイクロ
プロセッサ6の演算部9への命令あるいはデータの取り
込み動作は、実施例3と同様である。
【0047】このように構成することで、メモリを命令
メモリ30とデータメモリ31とに分けた構成におい
て、マイクロプロセッサ6は、命令バスとデータバスを
異なったバス幅でアクセスできるので、制御用、画像処
理用などの扱うデータ量に応じてバランスの取れた構成
をとることができる。
【0048】実施例10.図14は、この発明の第10
の実施例の半導体集積回路の構成を示した図である。4
4は命令キューであり、マイクロプロセッサ6で処理可
能なバス幅nビットのm倍分の命令(n×mビット)を
記憶する。45はデータキューであり、マイクロプロセ
ッサ6で処理可能なバス幅nビットのm倍分(n×mビ
ット)のデータを記憶する。命令キュー44、データキ
ュー45には、Dフリップフロップがn×m個有する。
この実施例においては、メモリ7からn×mビット分の
命令あるいはデータが出力されるが、nビットは命令バ
スあるいはデータバスを介してマイクロプロセッサ6の
命令キュー44あるいはデータキュー45に出力され、
残りのn×(m−1)ビットは兼用バスを介して、マイ
クロプロセッサ6の命令キュー44かデータキュー45
のどちらかに出力される。マイクロプロセッサ6は、分
岐命令により、分岐先の命令が新たに必要になったよう
な場合やキューの記憶状況によって、つまり、処理内容
に応じて、バスコントローラ11に命令あるいはデータ
取り込み要求信号を出力して、兼用バスでメモリ7から
命令あるいはデータを取り込むか、命令バスあるいはデ
ータバスから取り込むかを決める。
【0049】以上のように、兼用バスを設けたので、命
令アクセス、データアクセスの状態などのマイクロプロ
セッサ6内部の処理内容に応じて命令キュー44および
データキュー45の制御を効率よく行うことができる。
【0050】実施例11.図15は、この発明の第11
の実施例の半導体集積回路の構成を示した図である。こ
の実施例においては、実施例10と同様に兼用バスを設
けている。更に、メモリ7とマイクロプロセッサ6との
間にキャッシュメモリ46を設けている。キャッシュメ
モリ46は、メモリ7に比べて小容量、高速なメモリで
あるので、このキャッシュメモリ46に記憶されている
命令あるいはデータを命令バス、データバス、または兼
用バスを介してマイクロプロセッサ6に出力させるよう
にしている。マイクロプロセッサ6は、取り込み要求信
号とアドレス信号をバスコントローラ11に出力し、バ
スコントローラ11からキャッシュメモリ46へアドレ
ス信号を出力する。そして、そのアドレス信号に該当す
る命令あるいはデータがキャッシュメモリ46からマイ
クロプロセッサ6へ出力される。ただし、キャッシュミ
スした場合には、メモリ7から該当する命令あるいはデ
ータをキャッシュメモリ46に取り込み、更にその命令
あるいはデータをマイクロプロセッサ6へ取り込むよう
にする。キャッシュミス時におけるメモリ7からキャッ
シュメモリ46への命令あるいはデータの取り込み方法
は周知の技術であるので、説明は省略する。
【0051】以上のように、キャッシュメモリ46を設
けたので、命令あるいはデータのアクセスが高速化さ
れ、半導体集積回路の動作の高速化が図れる。
【0052】実施例12.図16は、この発明の第12
の実施例の半導体集積回路の構成を示した図である。6
〜14は図1の構成と同様である。47はセレクタであ
り、データバスからのn×mビットの命令あるいはデー
タを受け取り、キュー13に出力するものである。この
実施例においては、可変長の命令あるいはデータが効率
よくキュー13に取り込めるように構成している。例え
ば、図17の(a)のように、キュー13が4バイトの
命令あるいはデータが記憶できるとすると、命令1(4
バイト)、命令2(1バイト)、命令3(3バイト)の
命令あるいはデータがメモリ7からキュー13に順次記
憶される場合、キュー13の第2、3番目のように記憶
されない場所(網掛け部分)ができてしまう。しかし、
セレクタ47を使用すれば、図17(b)のように、キ
ュー13の空き状況に応じてメモリ7からの命令あるい
はデータを記憶できる。セレクタ47の制御は、キュー
制御部14からのキュー13(セレクタ47に接続され
ている後段のキュー)の空き状況、つまり、Dフリップ
ロップの記憶状態をマイクロプロセッサ6に出力し、マ
イクロプロセッサ6は、その空き状況とメモリ7からの
可変長の命令あるいはデータのバイト数とに基づいて、
後段のキュー13の空いている位置にメモリ7からの命
令あるいはデータが取り込み可能か否かを判断して、判
断結果をバスコントローラ11に出力する。キュー制御
部14は、その判断結果を受け取り、後段のキュー13
に命令あるいはデータが取り込みが不可能な場合には、
後段のキュー13に記憶されている命令あるいはデータ
を次段のキュー13(MUX12側へ)へシフトさせ、
後段のキュー13をクリアする。バスコントローラ11
は、コア8からの判断結果に基づいて、後段のキュー1
3にメモリ7からの命令あるいはデータが記憶可能なら
ば、セレクタ47に対して、取り込み許可信号を出力す
る。セレクタ47は取り込み許可信号を受け取った場合
には、後段のキュー13の記憶可能な位置を判断して、
その位置にメモリ7からの命令あるいはデータを記憶さ
せる。バスコントローラ11から取り込み許可信号がセ
レクタ47に出力されない場合には、上述のようにキュ
ー制御部14によりクリアされた後段のキュー13にメ
モリ7からの命令あるいはデータが記憶される。
【0053】また、図18のように、マイクロプロセッ
サ6とメモリ7との間にキャッシュメモリ48を設けて
も良い。このように構成することで、図16の回路構成
に比べて、マイクロプロセッサ6は、キャッシュメモリ
4から高速にn×mビットの命令あるいはデータをキュ
ー13に取り込むことができる。キャッシュミスした場
合は、メモリ7からのn×mビットの命令あるいはデー
タをキャッシュメモリ48に取り込み、更にマイクロプ
ロセッサ6のキュー13にも取り込むようにマイクロプ
ロセッサ6で制御する。
【0054】以上のように、セレクタ47を設けたの
で、可変長命令あるいはデータに対して、キュー13の
有効な利用を図ることができる。また、キャッシュメモ
リ48を設けることで、半導体集積回路の動作の高速化
を図ることができる。
【0055】実施例13.図19は、この発明の第13
の実施例の半導体集積回路の構成を示した図である。こ
の実施例においては、図6に示した回路構成にセレクタ
49、50を設けている。セレクタ49は、n×mビッ
ト幅の命令バスを介してメモリ7と接続され、セレクタ
50は、n×mビット幅のデータバスを介してメモリ7
と接続されている。また、セレクタ49は最下段の命令
キュー13、セレクタ50は最下段のデータキュー13
にそれぞれ接続されている。メモリ7からの可変長の命
令あるいはデータが、命令バスあるいはデータバスを介
してセレクタ49あるいはセレクタ50に取り込まれ、
図16のセレクタ47のように、バスコントローラ11
からの判断結果に基づいて、最下段(セレクタに接続さ
れたキュー)の命令キュー25あるいはデータキュー2
8の空き状況に応じて、メモリ7からの可変長の命令あ
るいはデータを命令キュー25あるいはデータキュー2
8へ記憶させることができる。
【0056】また、図20のように、メモリ7とマイク
ロプロセッサ6との間に、キャッシュメモリ51を設け
ても良い。
【0057】以上のように、キューを命令用とデータ用
に分離した構成において、セレクタ49およびセレクタ
50を設けたので、キューを効率良く使用できる。ま
た、キャッシュメモリ51を設けたので、半導体集積回
路の動作の高速化が図れる。
【0058】実施例14.図21は、この発明の第14
の実施例の半導体集積回路の構成を示す図である。52
はマイクロプロセッサ、53はメモリである。54はア
ライナと呼ばれるものであり、マイクロプロセッサ52
に入力されるデータの位置を適切な位置にシフトさせて
データの形式を整えるためのものである。例えば、図2
2のようにメモリ7から出力されたデータn×mビット
のうち、マイクロプロセッサ52で有効なデータ(網掛
け部分)の位置をシフトする必要が生じたときに、アラ
イナ54にマイクロプロセッサ52からの制御信号に基
づきシフトさせ、その結果をマイクロプロセッサ52に
取り込む。異なるサイズのデータを同じビット幅で処理
するためには、アライナ54が必要となる。マイクロプ
ロセッサ52内部は、上述の他の実施例のとおり、キュ
ーが備わっている。このようにマイクロプロセッサ52
の性能の低下の原因であったアライナをマイクロプロセ
ッサ52の外部に設けたので、マイクロプロセッサ52
内部の処理がより一層軽減される。
【0059】なお、データバス、命令バスはマイクロプ
ロセッサ52が処理可能なバス幅nビットのm倍分(n
×mビット)である。更に、マイクロプロセッサ52の
命令キューあるいはデータキューは複数個設けても良
い。
【0060】また、図23に示すように、命令バスとデ
ータバスとに分けている場合には、アライナ55、56
をそれぞれに設けるように構成すれば良い。更に、図2
4のように、キャッシュメモリ58、59を設けること
により、命令あるいはデータのアクセスが高速化され、
半導体集積回路の動作の高速化が図れる。そして、図2
5のように、共通のデータバスの場合に、アライナ54
とメモリ53との間に、キャッシュメモリ57を設ける
ことにより、半導体集積回路の動作の高速化が図れる。
【0061】
【発明の効果】この発明は、以上説明したように構成さ
れており、半導体集積回路内部で処理可能なNビットの
M倍の多量の命令あるいはデータを半導体集積回路内に
設けられたキューに記憶させているので、半導体集積回
路内部の処理状況に応じた内部動作が可能となるため
に、分岐処理などの実行時の半導体集積回路の内部処理
を効率良く行うことができ、更に動的スケジューリング
の実現が可能となるので、半導体集積回路の処理能力が
向上するという効果を奏する。
【0062】また、半導体集積回路内部に、キューを設
けることにより、半導体集積回路の部品点数が減るの
で、製造コストが減り安価な半導体集積回路を得るとい
う効果を奏する。
【図面の簡単な説明】
【図1】 この発明の第1の実施例である半導体集積回
路の構成を示した図である。
【図2】 図1に示した回路図の詳細を示した図ある。
【図3】 MUX12がキュー13を選択する動作を説
明するための図である。
【図4】 マイクロプロセッサ6の処理速度に対し、メ
モリアクセスが1ウエイトのときの動作を示した図であ
る。
【図5】 マイクロプロセッサ6の処理速度に対し、メ
モリアクセスが2ウエイトのときの動作を示した図であ
る。
【図6】 この発明の第2の実施例である半導体集積回
路の構成を示した図である。
【図7】 この発明の第3の実施例である半導体集積回
路の構成を示した図である。
【図8】 この発明の第4の実施例の半導体集積回路の
構成を示す図である。
【図9】 この発明の第5の実施例の半導体集積回路の
構成を示した図である。
【図10】 この発明の第6の実施例の半導体集積回路
の構成を示した図である。
【図11】 この発明の第7の実施例の半導体集積回路
の構成を示した図である。
【図12】 この発明の第8の実施例の半導体集積回路
の構成を示した図である。
【図13】 この発明の第9の実施例の半導体集積回路
の構成を示した図である。
【図14】 この発明の第10の実施例の半導体集積回
路の構成を示した図である。
【図15】 この発明の第11の実施例の半導体集積回
路の構成を示した図である。
【図16】 この発明の第12の実施例の半導体集積回
路の構成を示した図である。
【図17】 可変長の命令あるいはデータを記憶するキ
ュー13の状態を示す図である。
【図18】 マイクロプロセッサ6とメモリ7との間に
キャッシュメモリ48を設けた構成を示す図である。
【図19】 この発明の第13の実施例の半導体集積回
路の構成を示した図である。
【図20】 メモリ7とマイクロプロセッサ6との間
に、キャッシュメモリ51を設けた構成を示す図であ
る。
【図21】 この発明の第14の実施例の半導体集積回
路の構成を示す図である。
【図22】 アライナ54の動作を説明した図である。
【図23】 命令バスとデータバスとにアライナ55、
56をそれぞれに設けた構成を示した図である。
【図24】 図23の構成にキャッシュメモリ58、5
9を設けた構成を示した図である。
【図25】 アライナ54とメモリ53との間に、キャ
ッシュメモリ57を設けた構成を示した図である。
【図26】 従来の半導体集積回路の構成を示した図で
ある。
【符号の説明】
6、52…マイクロプロセッサ;7、53…メモリ;8
…コア;9…演算部;10…レジスタ;11…バスコン
トローラ;12、24、27…MUX;13…キュー;
14、26、29…キュー制御部;15〜23…Dフリ
ップフロップ;25、32、34、36、38、40、
42、44…命令キュー;28、33、35、37、3
9、41、43、45…データキュー;30…命令メモ
リ;31…データメモリ;46、48、51、57、5
8、59…キャッシュメモリ;47、49、50…セレ
クタ;54、55、56…アライナ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 坂下 和広 兵庫県伊丹市瑞原4丁目1番地 三菱電機 株式会社システムエル・エス・アイ開発研 究所内

Claims (21)

    【特許請求の範囲】
  1. 【請求項1】 Nビット(Nは整数;N>1)のデータ
    あるいは命令を一度に処理可能な半導体集積回路におい
    て、 外部メモリから半導体集積回路内で処理可能な前記Nビ
    ットのデータあるいは命令のM倍分(M>1)の命令あ
    るいはデータをバスを介して受け取って記憶するキュー
    を備えたことを特徴とする半導体集積回路。
  2. 【請求項2】 L個(Lは整数;L>1)の前記キュー
    を有し、前記外部メモリからN×Mビット幅のバスを介
    して、N×Mビットの命令あるいはデータを第1番目の
    前記キューに記憶させ、その記憶したN×Mビットの命
    令あるいはデータを第2番目から第L番目の前記キュー
    へと順次シフトさせるキュー制御部と、L番目の前記キ
    ューに記憶されたN×Mビットの命令あるいはデータを
    半導体集積回路内で処理可能なNビットの命令あるいは
    データに分割して演算部に出力させるマルチプレクサと
    を備えたことを特徴とする請求項1記載の半導体集積回
    路。
  3. 【請求項3】 前記N×Mビットのバスから可変長の命
    令あるいはデータを受け取り、その命令あるいはデータ
    を第1番目の前記キューの所定の記憶位置に出力するセ
    レクタを設けたことを特徴とする請求項2記載の半導体
    集積回路。
  4. 【請求項4】 前記バスは、キャッシュメモリに接続さ
    れていることを特徴とする請求項3記載の半導体集積回
    路。
  5. 【請求項5】 前記キューは、前記外部メモリからN×
    Mビットの命令を受け取り記憶する命令キューと、前記
    外部メモリからN×Mビットのデータを受け取り記憶す
    るデータキューとを有することを特徴とする請求項1記
    載の半導体集積回路。
  6. 【請求項6】 L個の前記命令キューおよび前記データ
    キューを有し、前記外部メモリからN×Mビット幅のバ
    スを介して、N×Mビットの命令を第1番目の前記命令
    キューに記憶させ、その記憶したN×Mビットの命令を
    第2番目から第L番目の前記命令キューへと順次シフト
    させ、また、前記外部メモリからN×Mビット幅のバス
    を介して、N×Mビットのデータを第1番目の前記デー
    タキューに記憶させ、その記憶したN×Mビットのデー
    タを第2番目から第L番目の前記データキューへと順次
    シフトさせるキュー制御部と、L番目の前記命令キュー
    に記憶されたN×Mビットの命令を半導体集積回路内で
    処理可能なNビットの命令に分割して演算部に出力させ
    る第1のマルチプレクサと、L番目の前記データキュー
    に記憶されたN×Mビットのデータを半導体集積回路内
    で処理可能なNビットのデータに分割して演算部に出力
    させる第2のマルチプレクサとを備えたことを特徴とす
    る請求項5記載の半導体集積回路。
  7. 【請求項7】 前記命令バスからの可変長の命令を受け
    取り、第1番目の前記命令キューの所定位置へその命令
    を出力する第1のセレクタと、前記データバスからの可
    変長のデータを受け取り、第1番目の前記データキュー
    の所定位置へそのデータを出力する第2のセレクタとを
    設けたことを特徴とする請求項6記載の半導体集積回
    路。
  8. 【請求項8】 前記命令バスおよび前記データバスは、
    キャッシュメモリに接続されていることを特徴とする請
    求項7記載の半導体集積回路。
  9. 【請求項9】 前記外部メモリは、Nビットの命令を記
    憶する命令メモリとNビットのデータを記憶するデータ
    メモリとからなり、第1番目の前記命令キューは、N×
    Mビットの命令バスを介して前記命令メモリと接続さ
    れ、第1番目の前記データキューは、N×Mビットのデ
    ータバスを介して前記データメモリと接続されているこ
    とを特徴とする請求項6記載の半導体集積回路。
  10. 【請求項10】 第1番目の前記命令キューは、Nビッ
    トの命令バスおよびN×(M−1)ビットの兼用バスを
    介して前記外部メモリと接続され、第1番目の前記デー
    タキューは、NビットのデータバスおよびN×(M−
    1)ビットの前記兼用バスを介して前記外部メモリと接
    続されていることを特徴とする請求項6記載の半導体集
    積回路。
  11. 【請求項11】 前記命令バス、データバスおよび兼用
    バスは、キャッシュメモリに接続されていることを特徴
    とする請求項10記載の半導体集積回路。
  12. 【請求項12】 前記キューは、前記外部メモリからN
    ×Mビットの命令を受け取り記憶する命令キューと、前
    記外部メモリからNビットのデータを受け取り記憶する
    データキューとを有することを特徴とする請求項1記載
    の半導体集積回路。
  13. 【請求項13】 L個の前記命令キューおよび前記デー
    タキューを有し、前記外部メモリからN×Mビット幅の
    バスを介して、N×Mビットの命令を第1番目の前記命
    令キューに記憶させ、その記憶したN×Mビットの命令
    を第2番目から第L番目の前記命令キューへと順次シフ
    トさせ、また、前記外部メモリからN×Mビット幅のバ
    スを介して、Nビットのデータを第1番目の前記データ
    キューに記憶させ、その記憶したNビットのデータを第
    2番目から第L番目の前記データキューへと順次シフト
    させるキュー制御部と、L番目の前記命令キューに記憶
    されたN×Mビットの命令を半導体集積回路内で処理可
    能なNビットの命令に分割して演算部に出力させるマル
    チプレクサとを備えたことを特徴とする請求項12記載
    の半導体集積回路。
  14. 【請求項14】 前記外部メモリは、Nビットの命令を
    記憶する命令メモリとNビットのデータを記憶するデー
    タメモリとからなり、L個の前記命令キューおよび前記
    データキューを有し、前記命令メモリからN×Mビット
    幅の命令バスを介して、N×Mビットの命令を第1番目
    の前記命令キューに記憶させ、その記憶したN×Mビッ
    トの命令を第2番目から第L番目の前記命令キューへと
    順次シフトさせ、また、前記データメモリからNビット
    幅のデータバスを介して、Nビットのデータを第1番目
    の前記データキューに記憶させ、その記憶したNビット
    のデータを第2番目から第L番目の前記データキューへ
    と順次シフトさせるキュー制御部と、L番目の前記命令
    キューに記憶されたN×Mビットの命令を半導体集積回
    路内で処理可能なNビットの命令に分割して演算部に出
    力させるマルチプレクサとを備えたことを特徴とする請
    求項12記載の半導体集積回路。
  15. 【請求項15】 前記キューは、前記外部メモリからN
    ビットの命令を受け取り記憶する命令キューと、前記外
    部メモリからN×Mビットのデータを受け取り記憶する
    データキューとを有するこを特徴とする請求項1記載の
    半導体集積回路。
  16. 【請求項16】 L個の前記命令キューおよび前記デー
    タキューを有し、前記外部メモリからN×Mビット幅の
    バスを介して、Nビットの命令を第1番目の前記命令キ
    ューに記憶させ、その記憶したNビットの命令を第2番
    目から第L番目の前記命令キューへと順次シフトさせ、
    また、前記外部メモリからN×Mビット幅のバスを介し
    て、N×Mビットのデータを第1番目の前記データキュ
    ーに記憶させ、その記憶したN×Mビットのデータを第
    2番目から第L番目の前記データキューへと順次シフト
    させるキュー制御部と、L番目の前記データキューに記
    憶されたN×Mビットのデータを半導体集積回路内で処
    理可能なNビットのデータに分割して演算部に出力させ
    るマルチプレクサとを備えたことを特徴とする請求項1
    5記載の半導体集積回路。
  17. 【請求項17】 前記外部メモリは、Nビットの命令を
    記憶する命令メモリとNビットのデータを記憶するデー
    タメモリとからなり、L個の前記命令キューおよび前記
    データキューを有し、前記命令メモリからNビット幅の
    命令バスを介して、Nビットの命令を第1番目の前記命
    令キューに記憶させ、その記憶したNビットの命令を第
    2番目から第L番目の前記命令キューへと順次シフトさ
    せ、また、前記データメモリからN×Mビット幅のデー
    タバスを介して、N×Mビットのデータを第1番目の前
    記データキューに記憶させ、その記憶したN×Mビット
    のデータを第2番目から第L番目の前記データキューへ
    と順次シフトさせるキュー制御部と、L番目の前記デー
    タキューに記憶されたN×Mビットのデータを半導体集
    積回路内で処理可能なNビットのデータに分割して演算
    部に出力させるマルチプレクサとを備えたことを特徴と
    する請求項15記載の半導体集積回路。
  18. 【請求項18】 前記キューは、前記外部メモリからN
    ×Mビットの命令を受け取り記憶する命令キューと、前
    記外部メモリからN×K(K>M)ビットのデータを受
    け取り記憶するデータキューとを有することを特徴とす
    る請求項1記載の半導体集積回路。
  19. 【請求項19】 L個の前記命令キューおよび前記デー
    タキューを有し、前記外部メモリからN×Kビット幅の
    バスを介して、N×Mビットの命令を第1番目の前記命
    令キューに記憶させ、その記憶したN×Mビットの命令
    を第2番目から第L番目の前記命令キューへと順次シフ
    トさせ、また、前記外部メモリからN×Kビット幅のバ
    スを介して、N×Kビットのデータを第1番目の前記デ
    ータキューに記憶させ、その記憶したN×Kビットのデ
    ータを第2番目から第L番目の前記データキューへと順
    次シフトさせるキュー制御部と、L番目の前記データキ
    ューに記憶されたN×Mビットのデータを半導体集積回
    路内で処理可能なNビットのデータに分割して演算部に
    出力させる第1のマルチプレクサと、L番目の前記デー
    タキューに記憶されたN×Kビットのデータを半導体集
    積回路内で処理可能なNビットのデータに分割して演算
    部に出力させる第2のマルチプレクサとを備えたことを
    特徴とする請求項18記載の半導体集積回路。
  20. 【請求項20】 前記外部メモリは、Nビットの命令を
    記憶する命令メモリとNビットのデータを記憶するデー
    タメモリとからなり、L個の前記命令キューおよび前記
    データキューを有し、前記命令メモリからN×Mビット
    幅の命令バスを介して、N×Mビットの命令を第1番目
    の前記命令キューに記憶させ、その記憶したN×Mビッ
    トの命令を第2番目から第L番目の前記命令キューへと
    順次シフトさせ、また、前記データメモリからN×Kビ
    ット幅のデータバスを介して、N×Kビットのデータを
    第1番目の前記データキューに記憶させ、その記憶した
    N×Kビットのデータを第2番目から第L番目の前記デ
    ータキューへと順次シフトさせるキュー制御部と、L番
    目の前記命令キューに記憶されたN×Mビットのデータ
    を半導体集積回路内で処理可能なNビットのデータに分
    割して演算部に出力させる第1のマルチプレクサと、L
    番目の前記データキューに記憶されたN×Kビットのデ
    ータを半導体集積回路内で処理可能なNビットのデータ
    に分割して演算部に出力させる第2のマルチプレクサと
    を備えたことを特徴とする請求項19記載の半導体集積
    回路。
  21. 【請求項21】 前記バス、前記データバスまたは前記
    データバスは、アライナに接続されていることを特徴と
    する請求項1ないし20のいずれかに記載の半導体集積
    回路。
JP6327596A 1994-12-28 1994-12-28 半導体集積回路 Pending JPH08185320A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP6327596A JPH08185320A (ja) 1994-12-28 1994-12-28 半導体集積回路
US08/550,809 US5621694A (en) 1994-12-28 1995-10-31 Semiconductor integrated device with an improved performance
KR1019950058784A KR0169555B1 (ko) 1994-12-28 1995-12-27 반도체 집적회로
CN95120103.4A CN1133454A (zh) 1994-12-28 1995-12-27 半导体集成电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6327596A JPH08185320A (ja) 1994-12-28 1994-12-28 半導体集積回路

Publications (1)

Publication Number Publication Date
JPH08185320A true JPH08185320A (ja) 1996-07-16

Family

ID=18200832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6327596A Pending JPH08185320A (ja) 1994-12-28 1994-12-28 半導体集積回路

Country Status (4)

Country Link
US (1) US5621694A (ja)
JP (1) JPH08185320A (ja)
KR (1) KR0169555B1 (ja)
CN (1) CN1133454A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006165665A (ja) * 2004-12-02 2006-06-22 Matsushita Electric Ind Co Ltd 半導体集積回路

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0858168A1 (en) 1997-01-29 1998-08-12 Hewlett-Packard Company Field programmable processor array
US5949272A (en) * 1997-06-12 1999-09-07 International Business Machines Corporation Bidirectional off-chip driver with receiver bypass
DE69827589T2 (de) 1997-12-17 2005-11-03 Elixent Ltd. Konfigurierbare Verarbeitungsanordnung und Verfahren zur Benutzung dieser Anordnung, um eine Zentraleinheit aufzubauen
US6567834B1 (en) 1997-12-17 2003-05-20 Elixent Limited Implementation of multipliers in programmable arrays
DE69841256D1 (de) 1997-12-17 2009-12-10 Panasonic Corp Befehlsmaskierung um Befehlsströme einem Prozessor zuzuleiten
JP2004240713A (ja) * 2003-02-06 2004-08-26 Matsushita Electric Ind Co Ltd データ転送方法及びデータ転送装置
US7900022B2 (en) 2005-12-30 2011-03-01 Intel Corporation Programmable processing unit with an input buffer and output buffer configured to exclusively exchange data with either a shared memory logic or a multiplier based upon a mode instruction
US20070157030A1 (en) * 2005-12-30 2007-07-05 Feghali Wajdi K Cryptographic system component
KR100867269B1 (ko) * 2007-02-22 2008-11-06 삼성전자주식회사 프로세서의 추론적 로드 명령 실행 방법 및 상기 방법을채용한 프로세서
WO2010029682A1 (ja) * 2008-09-10 2010-03-18 株式会社ルネサステクノロジ 情報処理装置
FR2984657B1 (fr) * 2011-12-19 2014-01-10 Kalray Systeme d'emission de flots de donnees concurrents sur un reseau
US10902166B2 (en) * 2017-12-31 2021-01-26 Arteris, Inc. System and method for isolating faults in a resilient system
US12019920B2 (en) 2018-01-29 2024-06-25 Micron Technology, Inc. Memory controller with programmable atomic operations
US10915271B2 (en) * 2018-01-29 2021-02-09 Micron Technology, Inc. Memory controller with programmable atomic operations

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6362064A (ja) * 1986-09-03 1988-03-18 Toyo Commun Equip Co Ltd バス変換装置
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
JPH0397340A (ja) * 1989-09-11 1991-04-23 Fujitsu Ltd データバス幅変換回路
JPH0546535A (ja) * 1991-08-09 1993-02-26 Iwatsu Electric Co Ltd データ転送インタフエース装置
JPH05120211A (ja) * 1991-10-28 1993-05-18 Matsushita Electric Ind Co Ltd データバス幅制御装置
JP2836321B2 (ja) * 1991-11-05 1998-12-14 三菱電機株式会社 データ処理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006165665A (ja) * 2004-12-02 2006-06-22 Matsushita Electric Ind Co Ltd 半導体集積回路

Also Published As

Publication number Publication date
US5621694A (en) 1997-04-15
KR960025044A (ko) 1996-07-20
CN1133454A (zh) 1996-10-16
KR0169555B1 (ko) 1999-01-15

Similar Documents

Publication Publication Date Title
US5233701A (en) System for managing interprocessor common memory
JPH08185320A (ja) 半導体集積回路
US7502896B2 (en) System and method for maintaining the integrity of data transfers in shared memory configurations
US6145027A (en) DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
JPH0728786A (ja) ベクトルプロセッサ
US7444442B2 (en) Data packing in a 32-bit DMA architecture
JP3971535B2 (ja) Simd型プロセッサ
US6457121B1 (en) Method and apparatus for reordering data in X86 ordering
JP2000293436A (ja) パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート
US7376777B2 (en) Performing an N-bit write access to an M×N-bit-only peripheral
JP2005536798A (ja) メモリバスのプロトコル特性に適合するプロセッサのプリフェッチ
US20020184471A1 (en) Semiconductor integrated circuit and computer-readable recording medium
US20010018734A1 (en) FIFO overflow management
JP2000029767A (ja) デ―タ処理装置における書き込みバッファ
EP1285340B1 (en) Shared bus interface for digital signal processor
US5677859A (en) Central processing unit and an arithmetic operation processing unit
JPH04104350A (ja) マイクロプロセッサ
JP3956652B2 (ja) プロセッサシステム
JP2534321B2 (ja) デ―タ転送制御方法及び装置
US7853737B2 (en) Data transfer and alignment device and method for transferring data acquired from memory
JPH06301600A (ja) 記憶装置
JPS6014435B2 (ja) 記憶装置
JPS6126104B2 (ja)
JPH05324539A (ja) 半導体装置
JP2635863B2 (ja) 中央処理装置