(57)【特許請求の範囲】
【請求項１】
１バイトの整数倍以外の命令長を備えた命令コードをメモリから読み出して、演算動作を行う演算装置であって、
前記命令コードのうち１バイトの整数倍の下位ビットを格納する下位ビット格納領域と、前記下位ビット以外の上位ビットを空き領域を設けることなく連続して格納する上位ビット格納領域とを備えたメモリと、
入力される第１アドレス信号に基づいて、前記メモリから前記命令コードの下位ビットと上位ビットとを読み出す命令コード生成部と、
前記命令コード生成部に前記第１アドレス信号を出力するとともに、前記命令コード生成部から出力される命令コードに基づいて演算動作を行う演算器と
を備え、
前記命令コード生成部は、
前記第１アドレス信号の前記上位ビット格納領域に対応する上位アドレスにより前記メモリから読み出した前記命令コードの上位ビットデータ群を格納するバッファレジスタと、
前記第１アドレス信号の前記上位アドレスを保持する上位アドレス保持回路と、
第２アドレス信号の前記上位ビット格納領域に対応する上位アドレスと、前記上位アドレス保持回路に格納されている前記第１アドレス信号の前記上位アドレスとを比較して一致信号または不一致信号を出力する比較器と、
前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスで前記メモリにアクセスし、前記一致信号に基づいて、前記第２アドレス信号において前記下位ビット格納領域に対応する下位アドレスにより前記メモリをアクセスするアドレス信号切替え回路と、
を備え、
前記上位アドレス保持回路は、前記不一致信号に基づいて前記第２アドレス信号の前記上位アドレスを保持し、
前記バッファレジスタは、前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスに対応して前記メモリから出力される上位ビットデータ群を格納する
ことを特徴とする演算装置。
【請求項２】
前記命令コード生成部は、
入力されるアドレス信号に基づいて、前記上位ビット格納領域から前記命令コードの上位ビットを読み出すための上位アドレス信号と、前記下位ビット格納領域から前記命令コードの下位ビットを読み出すための下位アドレス信号とを生成して、前記メモリに出力するアドレス信号生成部を備えたことを特徴とする請求項１記載の演算装置。
【請求項３】
前記命令コード生成部は、
前記バッファレジスタに格納された前記上位ビットデータ群の中から前記アドレス信号に対応する上位ビットデータを前記下位ビット格納領域からの下位ビットデータの読み出しサイクルと同一サイクルで読み出すセレクタを備えたことを特徴とする請求項１又は２記載の演算装置。
【請求項４】
前記命令コード生成部は、入力されるアドレス信号の上位アドレスに基づいて、前記バッファレジスタに格納する上位ビットデータ群を書き換えることを特徴とする請求項１〜３のうちの何れか一項に記載の演算装置。
【請求項５】
１バイトの整数倍以外の命令長を備えた命令コードをメモリから読み出して、演算動作を行う演算装置により実行される演算方法であって、
前記メモリには、命令コードのうち１バイトの整数倍の下位ビットが下位ビット格納領域に格納され、前記下位ビット以外の上位ビットが上位ビット格納領域に空き領域を設けることなく連続して格納され、
第１アドレス信号の前記上位ビット格納領域に対応する上位アドレスにより前記メモリから読み出した前記命令コードの上位ビットデータ群をバッファレジスタに格納し、
前記第１アドレス信号の前記上位アドレスを上位アドレス保持回路に保持し、
第２アドレス信号の前記上位ビット格納領域に対応する上位アドレスと、前記上位アドレス保持回路に格納されている前記第１アドレス信号の前記上位アドレスとを比較して一致信号または不一致信号を出力し、
前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスで前記メモリにアクセスし、前記一致信号に基づいて、前記第２アドレス信号において前記下位ビット格納領域に対応する下位アドレスにより前記メモリをアクセスし、
前記上位アドレス保持回路は、前記不一致信号に基づいて前記第２アドレス信号の前記上位アドレスを前記上位アドレス保持回路に保持し、
前記バッファレジスタは、前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスに対応して前記メモリから出力される上位ビットデータ群を前記バッファレジスタに格納し、
前記メモリから前記命令コードの下位ビットを、前記バッファレジスタから前記命令コードの上位ビットを同一サイクルで読み出して命令コードを生成し、該命令コードに基づいて演算動作を行う、
ことを特徴とする演算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、メモリ領域に格納されている命令コードを読み出して、該命令コードに基づく演算動作を行う演算装置に関するものである。
【０００２】
メモリ領域に命令コードを格納し、あるいはメモリ領域に格納されている命令コードを読み出し、当該命令コードに対応する演算動作を行う演算装置では、近年、命令コードの命令長が１バイトの整数倍以外となるものがある。このような演算装置において、メモリ領域への命令コードの効率的な格納及び命令コードの転送時間の短縮を図ることが必要となっている。
【０００３】
【従来の技術】
従来、命令長が１バイトの整数倍以外となる命令コードに基づいて演算動作を行う演算装置では、次のような動作を行う。
【０００４】
命令コードをメモリ領域に格納する場合、例えば１６ビット長のメモリ領域に１８ビットの命令長の命令コードを格納する場合には、クロック信号に基づく第一の書き込みサイクルで、第一のアドレスにまず１６ビット分の命令コードが格納される。次いで、第二の書き込みサイクルで第二のアドレスに残り２ビット分の命令コードが格納される。
【０００５】
つづいて、新たに１８ビット長の命令コードを格納する場合には、第三の書き込みサイクルで第三のアドレスにまず１６ビット分の命令コードが格納され、次いで第四の書き込みサイクルで第四のアドレスに残り２ビット分の命令コードが格納される。
【０００６】
また、上記のように格納された命令コードを読み出す場合には、第一の読み出しサイクルで前記第一のアドレスから１６ビット分の命令コードが読み出され、次いで第二の読み出しサイクルで第二のアドレスから残り２ビット分の命令コードが読み出される。
【０００７】
そして、１６ビットの命令コードと、２ビットの命令コードが合成されて、１８ビットの命令コードが生成され、その命令コードに基づいて演算動作が行われる。
【０００８】
【発明が解決しようとする課題】
ところが、上記のような演算装置では、各命令コードの残り２ビット分の命令コードが格納されるアドレスには、それぞれ１４ビット分の空き領域が残る。
【０００９】
従って、多数の命令コードをメモリ領域に格納する場合、空き領域が増大して、データ格納効率が低下し、この結果大きなメモリ容量が必要となるという問題点がある。
【００１０】
また、１８ビットの各命令コードの書き込み動作及び読み出し動作を行うために、それぞれクロック信号の２サイクル分の転送サイクルを要するため、演算速度を高速化することができないという問題点がある。
【００１１】
この発明の目的は、命令コードをメモリ領域に効率よく格納可能とするとともに、格納された命令コードの転送サイクルの削減を図り得る演算装置を提供することにある。
【００１２】
【課題を解決するための手段】
図１は、本発明の原理説明図である。すなわち、１バイトの整数倍以外の命令長を備えた命令コードをメモリから読み出して、演算動作を行う演算装置を構成するものであり、メモリ１は、前記命令コードのうち１バイトの整数倍の下位ビットを格納する下位ビット格納領域２と、前記下位ビット以外の上位ビットを空き領域を設けることなく連続して格納する上位ビット格納領域３とを備えている。命令コード生成部２０は、入力される第１アドレス信号ＩＡに基づいて、前記メモリ１から前記命令コードの下位ビットと上位ビットとを同一サイクルで読み出す。演算器４は、前記命令コード生成部２０に前記第１アドレス信号ＩＡを出力するとともに、前記命令コード生成部２０から出力される命令コードに基づいて演算動作を行う。
また、前記第１アドレス信号の前記上位ビット格納領域に対応する上位アドレスにより前記メモリから読み出した前記命令コードの上位ビットデータ群を格納するバッファレジスタと、前記第１アドレス信号の前記上位アドレスを保持する上位アドレス保持回路と、第２アドレス信号の前記上位ビット格納領域に対応する上位アドレスと、前記上位アドレス保持回路に格納されている前記第１アドレス信号の前記上位アドレスとを比較して一致信号または不一致信号を出力する比較器と、前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスで前記メモリにアクセスし、前記一致信号に基づいて、前記第２アドレス信号において前記下位ビット格納領域に対応する下位アドレスにより前記メモリをアクセスするアドレス信号切替え回路と、を備え、前記上位アドレス保持回路は、前記不一致信号に基づいて前記第２アドレス信号の前記上位アドレスを保持し、前記バッファレジスタは、前記不一致信号に基づいて、前記第２アドレス信号の前記上位アドレスに対応して前記メモリから出力される上位ビットデータ群を格納する。
【００１３】
【発明の実施の形態】
（第一の実施の形態）
図２〜図４は、この発明を具体化した演算装置の第一の実施の形態を示す。図２に示すメモリ１は、シングルポートメモリで構成され、１つのアドレスに１６ビット、すなわち２バイト分のデータ幅を備えている。
【００１４】
前記メモリ１には、外部ＣＰＵ等からｎビット（この実施の形態では１７ビット）の命令長を備えた多数の命令コードが格納されている。そのメモリ１の内部構成を図３に従って説明すると、同メモリ１は下位ビット格納領域２と、上位ビット格納領域３とに分割されている。
【００１５】
前記下位ビット格納領域２の各アドレスには、前記各命令コードの下位ｍビット（この実施の形態では１６ビット）Ｉ００００Ｌ〜Ｉ００１０Ｌ等がそれぞれ格納されている。
【００１６】
前記上位ビット格納領域３の各アドレスには、前記各命令コードの上位ｎ−ｍビット（この実施の形態では１ビット）が、（ｎ−ｍ）ｂｉｔ０〜（ｎ−ｍ）ｂｉｔ１５として、１６ビットずつ格納されている。すなわち、前記上位ビット格納領域３の各アドレスには、１６個の命令コードの各上位１ビットが格納されている。
【００１７】
図２に示す演算器４は、前記メモリ１に格納されている命令コードを読み出すために、１６ビットのアドレス信号ＩＡ１５：０を出力する。前記アドレス信号ＩＡ１５：０のうち、上位１２ビットの信号ＩＡ１５：４は、上位アドレス保持回路５及び比較器６に入力される。
【００１８】
前記上位アドレス保持回路５は、入力された信号ＩＡ１５：４を保持して、前記比較器６に上位アドレス信号ＵＡとして出力する。なお、この上位アドレス保持回路５は、この演算装置の起動時等にＬレベルのリセット信号ＲＳＴＸが入力されると、保持信号が１１１ｈ（ｈは１６進コードを示す。以下同じ）にリセットされるようになっている。
【００１９】
前記比較器６は、演算器４から入力された信号ＩＡ１５：４と、上位アドレス保持回路５から出力される信号ＩＡ１５：４とを比較し、一致する場合にはＨレベルの出力信号ｈｉｔを出力し、不一致の場合には、Ｌレベルの出力信号ｈｉｔを出力する。
【００２０】
前記比較器６の出力信号ｈｉｔは、上位アドレス保持回路５に入力され、上位アドレス保持回路５はＬレベルの出力信号ｈｉｔが入力されると、入力されている、上位１２ビットの信号ＩＡ１５：４を保持する。
【００２１】
前記演算器４から出力されるアドレス信号ＩＡ１５：０は、第一のセレクタ７に入力される。
また、前記演算器４から出力されるアドレス信号ＩＡ１５：０は、オフセット回路８に入力される。前記オフセット回路８は、下位ビット格納領域２の各アドレスに対応する上位ビット格納領域３内の各アドレスを生成するためのものである。
【００２２】
そして、図３に示すように、例えば演算器４から出力されるアドレス信号ＩＡ１５：０が００００ｈであるとき、オフセット回路８は上位ｎ−ｍビットの命令コードが格納されているアドレス範囲を示すオフセット値を０００ｈに加算して、００００ｈに下位ｍビットが格納されている命令コードの上位ｎ−ｍビットが格納されているアドレス信号を生成する。
【００２３】
同様に、アドレス信号ＩＡ１５：０が００１０ｈであるとき、オフセット回路８は上位ｎ−ｍビットの命令コードが格納されているアドレス範囲を示すオフセット値を００１ｈに加算して、００１０ｈに下位ｍビットが格納されている命令コードの上位ｎ−ｍビットが格納されているアドレス信号を生成する。
【００２４】
前記第一のセレクタ７には、前記比較器６の出力信号ｈｉｔが入力される。そして、第一のセレクタ７は、比較器６の出力信号ｈｉｔがＨレベルであると、演算器４から入力されるアドレス信号ＩＡ１５：０を前記メモリ１にアドレス信号ＡＤとして出力する。また、比較器６の出力信号ｈｉｔがＬレベルであると、オフセット回路８から出力されるアドレス信号を前記メモリ１にアドレス信号ＡＤとして出力する。
【００２５】
前記メモリ１は、前記第一のセレクタ７からアドレス信号ＩＡ１５：０が入力されると、下位ビット格納領域２から当該アドレス信号に対応する命令コードの下位ビットを読み出しデータＲＯとして読み出して、前記演算器４に下位ビットデータＩＤ１５：０として出力する。
【００２６】
また、前記メモリ１は、前記第一のセレクタ７からオフセット回路８で生成されたアドレス信号が入力されると、当該アドレス信号に対応する命令コードの１６ビットの上位ビットデータ群を読み出しデータＲＯとして読み出して、バッファレジスタ９に出力する。
【００２７】
前記バッファレジスタ９には、前記比較器６から出力信号ｈｉｔが入力される。そして、出力信号ｈｉｔがＨレベルとなると、バッファレジスタ９は前記メモリ１から出力される命令コードの上位ビットデータ群をラッチして、第二のセレクタ１０に出力する。
【００２８】
前記第二のセレクタ１０には、前記演算器４から出力されるアドレス信号ＩＡ１５：０のうち、下位４ビットのアドレス信号ＩＡ３：０が入力される。そして、ラッチしている１６ビットの上位ビットデータ群の中から、アドレス信号ＩＡ３：０に基づいていずれかの上位ビットデータを選択して、前記演算器４に上位ビットデータＩＤ１６として出力する。
【００２９】
前記比較器６の出力信号ｈｉｔは前記演算器４に待機信号ＷＡＩＴとして入力される。そして、待機信号ＷＡＩＴがＬレベルとなると、演算器４は待機状態となって、同一のアドレス信号ＩＡ１５：０を出力し続けるようになっている。
【００３０】
次に、上記のように構成された演算装置の動作を図４に従って説明する。前記演算器４、上位アドレス保持回路５、メモリ１等は共通のクロック信号ＣＬＫに基づいて動作している
例えばこの演算装置の起動時に、Ｌレベルのリセット信号ＲＳＴＸが入力されている状態では、上位アドレス保持回路５には、１１１ｈのアドレスに初期化される。
【００３１】
次いで、リセット信号ＲＳＴＸがＨレベルとなってリセット動作が解除されると、演算器４からアドレス信号ＩＡ１５：０として、まず００００ｈのアドレス信号の出力が開始される。
【００３２】
すると、比較器６ではアドレス信号ＩＡ１５：０の上位１２ビットの信号ＩＡ１５：４と、上位アドレス保持回路５に格納されているアドレス信号１１１ｈとを比較する。
【００３３】
この結果、比較結果は不一致となるため、比較器６からＬレベルの出力信号ｈｉｔが出力される。
すると、待機信号ＷＡＩＴがＬレベルとなって、演算器４から出力されるアドレス信号ＩＡ１５：０は００００ｈに維持される。また、Ｌレベルの出力信号ｈｉｔに基づいて、第一のセレクタ７からメモリ１に出力されるアドレス信号ＡＤは、オフセット回路８から出力されるアドレス信号、すなわちアドレス信号００００ｈに対応する上位ビット格納領域３内のアドレス信号（ｏｆｆｓｅｔ＋０００ｈ）が入力される。
【００３４】
次いで、メモリ１からアドレス信号（ｏｆｆｓｅｔ＋０００ｈ）に格納されている１６ビットの上位ビットデータ群が読み出され、Ｌレベルの出力信号ｈｉｔに基づいてその上位ビットデータ群がバッファレジスタ９に格納される。
【００３５】
そして、バッファレジスタ９に格納された上位ビットデータ群の中からアドレス信号００００ｈの下位３ビットの信号ＩＡ３：０に基づいて、第二のセレクタ１０からｎ−ｍ０ビットの信号が選択されて出力される。
【００３６】
この時、待機信号ＷＡＩＴはＬレベルであるので、演算器４では第二のセレクタ１０の出力信号を上位ビットデータＩＤ１６として認識することはなく、メモリ１の読み出しデータＲＯを下位ビットデータＩＤ１５：０として認識することもない。
【００３７】
次いで、比較器６の出力信号ｈｉｔがＬレベルに維持されている状態で、クロック信号ＣＬＫが立ちがると、上位アドレス保持回路５には演算器４から出力されているアドレス信号００００ｈの上位１２ビットのアドレス信号０００ｈが格納される。
【００３８】
すると、上位アドレス保持回路５の格納データと、演算器４から出力されているアドレス信号００００ｈの上位１２ビットのアドレス信号とが一致するため、比較器６の出力信号ｈｉｔはＨレベルとなる。
【００３９】
すると、第一のセレクタ７からメモリ１にアドレス信号００００ｈが入力され、そのアドレス信号に基づいてメモリ１から命令コードの下位ビットデータＩ００００Ｌが読み出され、その下位ビットデータＩ００００Ｌが演算器４に１６ビットの下位ビットデータＩＤ１５：０として出力される。
【００４０】
また、比較器６の出力信号ｈｉｔがＨレベルであるため、バッファレジスタ９の格納内容に変更はない。そして、演算器４から出力されているアドレス信号００００ｈの下位４ビットＩＡ３：０に基づいて、バッファレジスタ９に格納されている上位ビットデータ群の中から、下位ビットデータＩ００００Ｌに対応する上位ビットデータｎ−ｍｂｉｔ０が第二のセレクタ１０により選択されて、演算器４に上位ビットデータＩＤ１６として出力される。
【００４１】
すると、演算器４では１６ビットの下位ビットデータＩＤ１５：０と、１ビットの上位ビットデータＩＤ１６とに基づいて、１７ビットの命令コードが合成される。
【００４２】
次いで、クロック信号ＣＬＫの立ち上がりに基づいて、演算器４からアドレス信号ＩＡ１５：０として、０００１ｈが出力されると、上位１２ビットのアドレス信号は一致するので、比較器６の出力信号ｈｉｔはＨレベルに維持される。
【００４３】
すると、第一のセレクタ７からメモリ１にアドレス信号０００１ｈが入力され、そのアドレス信号に基づいてメモリ１から命令コードの下位ビットデータＩ０００１Ｌが読み出され、その下位ビットデータＩ０００１Ｌが演算器４に１６ビットの下位ビットデータＩＤ１５：０として出力される。
【００４４】
また、比較器６の出力信号ｈｉｔがＨレベルであるため、バッファレジスタ９の格納内容に変更はない。そして、演算器４から出力されているアドレス信号０００１ｈの下位４ビットＩＡ３：０に基づいて、バッファレジスタ９に格納されている上位ビットデータの中から、下位ビットデータＩ０００１Ｌに対応する上位ビットデータｎ−ｍｂｉｔ１が第二のセレクタ１０により選択されて、演算器４に上位ビットデータＩＤ１６として出力される。
【００４５】
すると、演算器４では１６ビットの下位ビットデータＩＤ１５：０と、１ビットの上位ビットデータＩＤ１６とに基づいて、１７ビットの命令コードが合成される。
【００４６】
そして、演算器４からアドレス信号０００ｆｈが出力されるまで、このような動作が繰り返される。
次いで、演算器４からアドレス信号ＩＡ１５：０として、００１０ｈが出力されると、上位アドレス保持回路５に格納されている上位アドレス０００ｈとは不一致となるため、比較器６の出力信号ｈｉｔはＬレベルとなる。
【００４７】
すると、第一のセレクタ７からメモリ１に出力されるアドレス信号ＡＤは、アドレス信号００１０ｈに対応する上位ビット格納領域３内のアドレス信号（ｏｆｆｓｅｔ＋００１ｈ）が入力される。
【００４８】
次いで、メモリ１からアドレス信号（ｏｆｆｓｅｔ＋００１ｈ）に格納されている１６ビットの上位ビットデータ群が読み出され、Ｌレベルの出力信号ｈｉｔに基づいてその上位ビットデータ群がバッファレジスタ９に格納される。
【００４９】
そして、バッファレジスタ９に格納された上位ビットデータ群の中からアドレス信号００１０ｈの下位３ビットの信号ＩＡ３：０に基づいて、第二のセレクタ１０からｎ−ｍｂｉｔ０の信号が選択されて出力される。
【００５０】
この時、待機信号ＷＡＩＴはＬレベルであるので、演算器４では第二のセレクタ１０の出力信号を上位ビットデータＩＤ１６として認識することはなく、メモリ１の読み出しデータを下位ビットデータＩＤ１５：０として認識することもない。
【００５１】
次いで、比較器６の出力信号ｈｉｔがＬレベルに維持されている状態で、クロック信号ＣＬＫが立ちがると、上位アドレス保持回路５には演算器４から出力されているアドレス信号００１０ｈの上位１２ビットのアドレス信号００１ｈが格納される。
【００５２】
すると、上位アドレス保持回路５の格納データＵＡと、演算器４から出力されているアドレス信号００１０ｈの上位１２ビットのアドレス信号とが一致するため、比較器６の出力信号ｈｉｔは再びＨレベルとなる。
【００５３】
すると、第一のセレクタ７からメモリ１にアドレス信号ＡＤとして００１０ｈが入力され、そのアドレス信号に基づいてメモリ１から命令コードの下位ビットデータＩ００１０Ｌが読み出され、その下位ビットデータＩ００１０Ｌが演算器４に１６ビットの下位ビットデータＩＤ１５：０として出力される。
【００５４】
また、比較器６の出力信号ｈｉｔがＨレベルであるため、バッファレジスタ９の格納内容に変更はない。そして、演算器４から出力されているアドレス信号００１０ｈの下位４ビットＩＡ３：０に基づいて、バッファレジスタ９に格納されている上位ビットデータ群の中から、下位ビットデータＩ００１０Ｌに対応する上位ビットデータｎ−ｍｂｉｔ０が第二のセレクタ１０により選択されて、演算器４に上位ビットデータＩＤ１６として出力される。
【００５５】
すると、演算器４では１６ビットの下位ビットデータＩＤ１５：０と、１ビットの上位ビットデータＩＤ１６とに基づいて、１７ビットの命令コードが合成される。
【００５６】
次いで、アドレス信号００１１ｈ〜００１ｆｈが入力されると、上記と同様に下位ビット格納領域２から読み出された１６ビットの下位ビットデータＩＤ１５：０と、バッファレジスタ９から読み出された１ビットの上位ビットデータＩＤ１６に基づいて１７ビットの命令コードが合成される。
【００５７】
次いで、演算器４からアドレス信号ＩＡ１５：０として、００２０ｈが出力されると、上位アドレス保持回路５に格納されている上位アドレス００１ｈとは不一致となるため、比較器６の出力信号ｈｉｔはＬレベルとなる。
【００５８】
すると、バッファレジスタ９の格納データＵＡの書き換えが行われ、つづいて上記と同様な動作が繰り返される。
そして、演算器４は合成された命令コードに基づいて、各命令コードに対応した所定の演算動作を行う。
【００５９】
上記のように構成された演算装置では、次に示す作用効果を得ることができる。
（１）１バイトの整数倍以外の命令長を備えた１７ビットの命令コードを、１バイトの整数倍である１６ビットの下位ビットと、１ビットの上位ビットとに分割し、下位ビットを下位ビット格納領域２に格納し、上位ビットを上位ビット格納領域３に連続して格納した。従って、１バイトの整数倍以外の命令長を備えた命令コードを空き領域を発生させることなくメモリに格納することができるので、メモリの容量を削減することができる。
【００６０】
（２）クロック信号ＣＬＫの１７サイクル中の１サイクルを除いて、各サイクルにおいて１７ビットの命令コードを読み出すことができるので、メモリ１から演算器４への命令コードの転送速度を高速化することができる。
【００６１】
（３）１バイトの整数倍以外の命令長を備えた命令コードを、１バイトの整数倍のビット長を備えたメモリに空き領域を発生させることなく格納することができる。従って、メモリ１に汎用メモリを使用することができるので、演算装置のコストを低減することができる。
（第二の実施の形態）
図５は、この発明を具体化した第二の実施の形態を示す。この実施の形態のメモリ１１はデュアルポートメモリで構成される。そして、前記第一の実施の形態と同様に、１バイトの整数倍以外の命令長を備えた命令コードのうち、１バイトの整数倍の下位ビットが下位ビット格納領域１２に格納され、残りの上位ビットが上位ビット格納領域１３に空き領域を発生させることなく格納される。
【００６２】
演算器４から出力されるアドレス信号ＩＡは、制御回路１４に入力される。前記制御回路１４は、そのアドレス信号ＩＡを下位ビット格納領域１２に出力するとともに、前記第一の実施の形態のオフセット回路８から出力されるアドレス信号と同様なアドレス信号を上位ビット格納領域１３に並行して出力する。
【００６３】
そして、下位ビット格納領域１２から読み出された下位ビットデータは演算器４に出力され、上位ビット格納領域１３から読み出された上位ビットデータは、セレクタ１５に入力される。
【００６４】
前記セレクタ１５は、前記制御回路１４から出力される下位アドレス信号に基づいて、前記第一の実施の形態の第二のセレクタ１０と同様な動作を行い、下位ビット格納領域１２から読み出された下位ビットデータに対応する上位ビットデータを選択して演算器４に出力する。
【００６５】
演算器４は、入力された下位ビットデータ及び上位ビットデータに基づいて、命令コードを合成し、その命令コードに基づいて演算動作を行う。
上記のように構成された演算装置では、前記第一の実施の形態で得られた（１）（３）と同様な作用効果を得ることができる。また、メモリ１１にデュアルポートメモリを使用したことにより、下位ビット格納領域１２と、上位ビット格納領域１３とに並列にアクセスすることができるので、クロック信号のすべてのサイクルで、命令コードの読み出し動作を行うことができる。従って、メモリから演算器への命令コードの転送速度を更に高速化することができる。
（第三の実施の形態）
図６は、第三の実施の形態を示す。この実施の形態は、第二の実施の形態のデュアルポートメモリで構成されたメモリ１１に代えて、二つのシングルポートメモリで構成される第一及び第二のメモリ１６，１７を使用したものである。
【００６６】
そして、第一のメモリ１６は下位ビット格納領域として、命令コードの下位ビットが格納され、第二のメモリ１７は上位ビット格納領域として、命令コードの上位ビットが格納される。その他の構成は前記第二の実施の形態と同様である。
【００６７】
このような構成により、第二の実施の形態と同様な作用効果を得ることができる。
上記各実施の形態は、次のように変更してもよい。
・命令コードは、１７ビット以外の任意のビット数でもよい。
・上位ビットデータと、下位ビットデータは、１ビットと１６ビット以外のビット数で分割してもよい。
・メモリは、１６ビット以外の８ビットあるいは２４ビット等のデータ幅としてもよい。
【００６８】
【発明の効果】
以上詳述したように、この発明は命令コードをメモリ領域に効率よく格納可能とするとともに、格納された命令コードの転送サイクルの削減を図り得る演算装置を提供することができる。
【図面の簡単な説明】
【図１】  本発明の原理説明図である。
【図２】  第一の実施の形態を示すブロック図である。
【図３】  メモリの内部を示す説明図である。
【図４】  第一の実施の形態の動作を示すタイミング波形図である。
【図５】  第二の実施の形態を示すブロック図である。
【図６】  第三の実施の形態を示すブロック図である。
【符号の説明】
１          メモリ
２          下位ビット格納領域
３          上位ビット格納領域
４          演算器
２０        命令コード生成部
ＩＡ        アドレス信号
【図１】
0004629198.tif 000002
【図２】
0004629198.tif 000003
【図３】
0004629198.tif 000004
【図４】
0004629198.tif 000005
【図５】
0004629198.tif 000006
【図６】
0004629198.tif 000007