JPH08305547A - Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム - Google Patents

Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム

Info

Publication number
JPH08305547A
JPH08305547A JP7113236A JP11323695A JPH08305547A JP H08305547 A JPH08305547 A JP H08305547A JP 7113236 A JP7113236 A JP 7113236A JP 11323695 A JP11323695 A JP 11323695A JP H08305547 A JPH08305547 A JP H08305547A
Authority
JP
Japan
Prior art keywords
pld
program
operating system
compiler
input
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
JP7113236A
Other languages
English (en)
Inventor
Hiroyuki Hatanaka
浩行 畑中
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP7113236A priority Critical patent/JPH08305547A/ja
Publication of JPH08305547A publication Critical patent/JPH08305547A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 高速処理が可能なコンピュータを提供する。 【構成】 PLD(プログラム可能型論理デバイス)1
と入出力装置2でコンピュータを構成する。PLD1の
出力端子を該PLD1のプログラム端子に接続して、P
LD1が、プログラムを要求してこれを取り込み、自身
に書き込んで所望の処理を実行可能な論理回路を構成で
きるようにする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンピュータのアーキ
テクチャに関するものである。
【0002】
【従来の技術】従来のコンピュータは、1個または数個
のCPU、メモリ、入出力装置で構成される。プログラ
ムはメモリに記憶され、CPUによって1命令ずつ読み
出され、実行される。CPUは、その命令に応じて、演
算、メモリからの読み出し、書き込み、入出力を行う。
【0003】
【発明が解決しようとする課題】上述したコンピュータ
を高速化するためには、動作周波数を高くしてCPUを
高速化したり、CPUの数を増やして並列性を高めたり
している。しかしながら、CPUの高速化には限界があ
る。動作周波数の向上等で性能を上げるためには、高度
な電子技術が必要である。また、単純な命令を1つ実行
させるために、多くの電子回路を動作させなければなら
ないことは変わらない。
【0004】CPUの数を増やして高速化するには限界
がある。これは、同一資源に対するアクセスが複数あっ
た時の待ち合わせ時間等、並列処理を行う際のオーバヘ
ッドは、CPUの数が増えるほど増加するからである。
【0005】
【課題を解決するための手段】上述した課題を解決する
ため、本発明は、論理回路を構成する複数の素子からな
り、素子間の接続を変えることで所望の論理回路を構成
可能なPLD(プログラム可能型論理デバイス)を用
い、PLDがプログラムを取り込んで自身に書き込み、
所望の処理を実行可能な論理回路を構成する手段を備え
たPLDによるコンピュータである。
【0006】
【作用】上述した構成を有する本発明は、PLDがプロ
グラムを取り込み、自身に書き込むことで所望の処理を
実行可能な論理回路を構成する。PLDの大きさによっ
て、複数のプログラムを取り込み、互いに干渉すること
なく並行して処理が実行可能である。所望の処理が終了
すると、取り込んだプログラムを消滅させる。
【0007】
【実施例】図1は本発明の一実施例におけるコンピュー
タアーキテクチャを表すPLDによるコンピュータのブ
ロック図である。本実施例のコンピュータは、 PLD
(Programmable Logic Device :プログラム可能型論理
デバイス)1と、ハードディスク等の入出力装置2から
構成される。
【0008】PLD1は、論理回路を構成する複数の素
子からなり、素子間の接続を変えることで所望の論理回
路を構成可能なデバイスである。このPLD1の入出力
端子に入出力装置2を接続する。また、出力端子にプロ
グラム端子を接続し、PLD1の出力によってPLD自
身のプログラムができるようにする。そして、PLD1
は該PLD1内のメモリや入出力装置2に対してプログ
ラムを要求し、これを取り込んで自身に書き込み、所望
の処理を実行可能な論理回路を構成できる機構を備え
る。
【0009】従来のCPUでは、1つの演算部と1つの
制御部で全ての処理を行うものであるが、本実施例のP
LD1では、固定された演算部や制御部は持たず、実行
する処理に応じて演算部や制御部に該当する論理回路を
構成する。次に、上述したPLD1の条件を説明する。
PLD1は、十分に大きな規模のものとする。これによ
り、処理を実行するのに必要な論理回路をPLD1内に
複数構成することができるようになり、複数のプログラ
ムを取り込み、互いに干渉することなく並行して処理が
可能となる。規模を大きくするために、複数のPLDを
接続しても構わない。
【0010】また、高速にプログラムの書き換えができ
るように、例えば、S−RAM方式等のPLDを用い
る。さらに、PLDの出力によって、PLD自身のプロ
グラムができるように、図1で説明したようにPLDの
所定の端子間を接続するか、PLDのチップ内にそのよ
うな機能を持たせる。
【0011】また、PLD内部の出力であっても、その
出力情報を読むことができるようにする。例えば、プロ
グラミングの機構で、アドレスされた信号線の接続をプ
ログラムするだけではなく、その信号線の情報を読むこ
とができるようにする。また、PLD内にメモリ機能を
持ち、それらを組み合わせ、任意の大きさのメモリを構
成できるようにする。ここで、電源投入時、本装置が動
作を開始するために、以下に説明するような機構を備え
る。
【0012】例えば、電源投入時、入出力装置からブー
トプログラム、あるいはOSを読み込み、PLDに書き
込む装置を備える。この入力装置としては、ハードディ
スク、ROM等が適用できる。また、PLD内の一部を
不揮発として、その部分にブートプログラムあるいはO
Sをロードするための機構をプログラムしておく。
【0013】次に、本実施例のPLDによるコンピュー
タの動作例を説明する。 〔電源投入時〕図2は電源投入時の動作フローチャート
である。電源投入時は、まず、PLD1はブートプログ
ラムを入出力装置2から読み込み、PLD自身にそれを
書き込む(図2の1)。
【0014】次に、PLD1はブートプログラムを実行
してOSを入出力装置2から読み込み、PLD自身に書
き込む(図2の2)。そして、PLD1はOSを実行す
る(図2の3)。なお、ブートプログラムを用いない場
合は、OSを入出力装置から読み込み、PLDに書き込
んで、OSを実行する。 〔プロセスの実行〕図3はアプリケーション、ツール、
デーモン等のプロセス実行時の動作フローチャートであ
る。
【0015】まず、PLD1に読み込んだOSが実行開
始要求を受けて、プロセスを書き込むPLD内の領域を
確保する。PLD内の領域内の領域の管理はOSが行う
(図3の1)。次に、OSがプロセスのネットリストを
入出力装置2から読み込み、確保したPLD領域に書き
込む(図3の2)。
【0016】そして、プロセスの書き込みが終わると、
OSはプロセスを実行させる(図3の3)。プロセスは
目的の処理を行い、終了すると、OSに終了したことを
伝える(図3の4)。OSは、プロセスからの処理終了
通知を受けて、プロセスが使用していたPLD内の領域
を解放する(図3の5)。 〔入出力〕図4は入力処理の動作フローチャートであ
る。
【0017】入出力装置2を構成する入力装置から入力
があった場合、まず、PLD1内のOSがそのデータを
入力する(図4の1)。次に、OSはそのデータを渡す
べきプロセスに該データを渡す(図4の2)。そして、
プロセスはそのデータを処理する(図4の3)。図5は
出力処理の動作フローチャートである。
【0018】プロセスが出力を要求した場合は、そのデ
ータをPLD1内のOSに渡し(図5の1)、OSが入
出力装置2を構成する出力装置に出力する(図5の
2)。本実施例のコンピュータでは、すべてのプログラ
ムをネットリストで表し、それをPLDにプログラム
し、実行する。ネットリストは、PLD内の素子の接続
を表すデータであり、これを直接人間が作成するには多
大は労力を有する。従来のコンピュータと同様なプログ
ラミング可能を実現するためには、高級言語で書かれた
プログラムをネットリストに変換するコンパイラが必要
である。また、高度な操作環境を実現するためには、O
Sが必要である。
【0019】以降、コンパイラとOSについて説明す
る。まず、高級言語で書かれたプログラムを、ネットリ
ストに変換するコンパイラを考える。このコンパイラ
は、高級言語のプログラムを論理回路に変換し、次にネ
ットリストに変換する。論理回路をネットリストに変換
するには、配置・配線ツールのアルゴリズムを使う。高
級言語で書かれたプログラムを論理回路に変換するため
の方法を以降に示す。 〔変数〕変数は、PLD1の一部にメモリとしての機能
を持たせ、これを組み合わせて必要な大きさのレジスタ
を構成し、これを変数とする。配列変数の場合は、添字
をアドレスとするメモリを構成し、それを利用する。レ
ジスタへのライト、メモリのアクセスにはタイミングが
必要となるが、これについては後述する。 〔演算〕加減算、比較、論理演算、シフト等の演算は、
簡単な論理回路で構成できる。これらのものは、1ビッ
トにつき数ゲートで実現できるので、実行する処理に応
じて必要なビット数だけ用意する。
【0020】乗除算、累乗等は、複雑な論理回路が必要
となるので、サブルーチン(関数)にし、システム、あ
るいはプロセスで共有する。サブルーチンコールについ
ては後述する。 〔逐次処理〕演算処理の結果やレジスタの読み出しデー
タは、常に値を出力していれば良いため、実行の順序
や、そのタイミングを考える必要はない。しかし、レジ
スタへの書き込み、サブルーチンコールは、順序やタイ
ミングを考える必要がある。
【0021】タイミングの生成には、クロック信号とD
−フリップフロップを使う。図6はタイミング生成回路
の一例を表すブロック図で、複数のD−フリップフロッ
プを直列に接続し、それぞれのD−フリップフロップに
同じクロック信号が入力されるようにしたものである。
まず、1段目のD−フリップフロップの入力(図6の
1)にhighを入力するとともにクロック信号を入力
すると、1段目のD−フリップフロップの出力(図6の
2)がhighになる。この時には、入力1をlowに
する。次のクロック信号が入ると、2段目のD−フリッ
プフロップの出力(図6の3)がhighになる。この
様に、クロック信号が入る度に後段にシフトしていく。
highになるタイミングは、D−フリップフロップの
段数とクロック信号の周期によって決まる。この1,
2,3・・・をタイミング信号とする。適当なタイミン
グ信号によって、レジスタのアクセス、メモリアクセ
ス、サブルーチンコールを制御すれば、それらの処理は
定められた順序、タイミングで行われる。
【0022】また、タイミング信号を利用する、しない
に関わらず、全ての処理に、その処理時間に相当するD
−フリップフロップ列を用意する。1段目(図6の1)
にタイミング信号を入力することが、その処理の開始を
意味し、最終段(図6の5)にタイミング信号が現れる
ことが、その処理の終了を意味する。 〔サブルーチン(関数)〕図7はサブルーチンコール回
路の一例を表すブロック図である。
【0023】サブルーチンは、上述したタイミング信号
の機構を持つ。すなわち、複数のD−フリップフロップ
を直列に接続し、それぞれのD−フリップフロップに同
じクロック信号が入力されるようにしたものである。そ
して、1段目に信号を入力することが、サブルーチンコ
ールに対応し、最終段に信号が現れることが、リターン
に対応する。
【0024】caller(呼び出し元)のタイミング
信号をcallee(呼び出し先)の1段目に入力す
る。callerがcalleeの終了を待つ必要があ
る場合は、calleeの最終段の出力によりcall
erのタイミング機構を再開するようにする。引数や返
却値は、callerとcalleeを接続し、情報の
受渡しをする。
【0025】calleeが1つのcallerから呼
ばれる場合は、上述した方法でよいが、複数のcall
erから呼ばれる場合は、タイミング信号、引数、返却
値の接続を変える必要がある。その方法については、後
述する排他制御の所で説明する。 〔制御構造〕プログラムの流れを制御するものには、条
件分岐、繰り返し等があるが、これらはタイミング信号
を制御するD−フリップフロップ列の構造で実現でき
る。
【0026】図8は条件分岐回路の一例を表すブロック
図である。例えば、条件によって処理の流れを変えるに
は、D−フリップフロップ列を二股にする。分岐点で
は、条件に従ってどちらか一方にだけタイミング信号を
流す。タイミング信号が流れなかった方の処理では、変
数への代入、サブルーチンコール等が行われないため、
何も実行されないのと同じことになる。
【0027】図9は繰り返し回路の一例を表すブロック
図である。繰り返しの場合は、D−フリップフロップ列
をループさせれば良い。終了条件に従って、ループの外
にタイミング信号を出せば、繰り返しは終了する。 〔排他制御〕複数の箇所からアクセスされるレジスタ、
メモリ、サブルーチンの接続においては、それらは複数
の箇所から同時に行われてはならないので、排他制御が
必要である。以下に接続の方法とそれに応じた排他制御
の方法を述べる。
【0028】1.マルチプレクサで選択する方法 図10は排他制御回路の一例として、マルチプレクサを
使う回路のブロック図である。レジスタのデータ、メモ
リのアドレスおよびデータ、サブルーチンの引数、返却
値をマルチプレクサ、デマルチプレクサを通して呼び出
し側に接続する。マルチプレクサの選択は、呼び出し側
のタイミング信号で行う。
【0029】また、レジスタ、メモリ、サブルーチンが
使用中であることを示すRS−フリップフロップと、待
ち合わせのための繰り返し処理で排他制御を行う。RS
−フリップフロップは、呼び出し側のタイミング信号が
入るとセットされ(図10の1)、終了のタイミング信
号が入るとリセットされる(図10の2)。RS−フリ
ップフロップがセットされている間に、他の呼び出し側
がアクセスすると、タイミング信号がループし、待ち合
わせ状態になる(図10の3)。待ち合わせ状態は、レ
ジスタ、メモリアクセス、サブルーチンが終了するまで
続く。
【0030】このマルチプレクサを用いる方法は高速で
ある。 2.OSが仲介する方法 レジスタのデータ、メモリのアドレスおよびデータ、サ
ブルーチンの引数、返却値は特定の呼び出し側と接続せ
ず、必要に応じてOSがデータを受渡しする。呼び出し
側のタイミング信号を、OSのシステムコール信号に接
続する。呼び出し時にOSが、プロセス内の適当な箇所
からデータを読み取り、レジスタ、メモリアクセス、サ
ブルーチンコールを行う。サブルーチンコールの場合
は、リターン時にも同様な手順で返却値の受渡しをす
る。
【0031】排他制御をOSで行う場合、特別な回路は
必要なく、呼び出し側の数が増えても、多くのゲートを
必要としない。 3.呼び出し元の数だけ設ける方法 サブルーチン(関数)の場合は、callerの数だけ
calleeを用意し、それぞれに直接接続することが
可能である。この方法は高速である。
【0032】複数の箇所からアクセスされるレジスタ、
メモリ、サブルーチンの接続および排他制御の方法とし
ては、上述したような方法があり、条件に応じて最適な
ものをコンパイラが選択する。以上説明した方法で、高
級言語で書かれたプログラムを論理回路、ネットリスト
に変換することができる。
【0033】変換したネットリストをPLDにプログラ
ムすれば、PLDは意図した動作を行う。本コンピュー
タを利用するためには、入出力やPLD自身へのプログ
ラミング機能等を管理するプログラムが必要である。こ
の様にシステム内で共有する資源は、OSが管理する。
本発明の場合、OSも他のプログラムと同様にネットリ
ストである。
【0034】以下に、OSに必要な機能を説明する。 〔プロセス生成、消滅〕従来のコンピュータと同様、O
Sの管理下で動作しているプログラムをプロセスと呼
ぶ。動作中のアプリケーションやツールは、すべてプロ
セスである。図11はOSによるプロセス生成、消滅動
作を表すブロック図である。
【0035】OSは新しいプロセスを生成したり、終了
したプロセスを消滅させたりしなければならない。プロ
セスを生成するには、まず、PLD1の空いている領域
を確保し、そこに二次記憶装置3に保存されているプロ
グラムのネットマスクをプログラムする(図11の1,
2)。このとき、システムコールのための信号等、未接
続の配線があれば配線する。次に、プロセスを開始させ
るために、タイミング信号を入力する(図11の3)。
【0036】プロセスの終了は、D−フリップフロップ
の最終段の出力でわかる(図11の4)。その時、OS
はプロセスを消滅させるため、そのプロセスが使用して
いたPLDの領域等、すべての資源を解放する。 〔システムコール〕プロセスがOSに何らかの処理を依
頼する時には、システムコールを発行する。
【0037】図12はOSによるシステムコール動作を
表すブロック図である。プロセスとOSはシステムコー
ル信号で接続されており、プロセスがシステムコールを
発行する時は、その信号を出力に出す。OSはその信号
を受けて、引数を読み込み、処理を始める。処理が終わ
ると、OSはプロセス内に返却値を設定し、終了を示す
タイミング信号を出力する。
【0038】システムコール信号、システムコール終了
信号はプロセス生成時に接続され、プロセスが引数を設
定する箇所、返却値を設定すべき箇所も同時に登録され
る。ここで、引数の読み込みには、図1で説明したPL
D内部信号の読み込み機構を使う。返却値の設定は、返
却値を設定すべき箇所に定数をプログラムすることで実
現する。 〔PLD領域管理〕OSはPLD内の領域を管理しなく
てはならない。プロセス生成時や、プロセスがメモリを
要求した時のために、OSはPLDの空き領域を管理す
る。また、プロセス消滅時等のために、使用中の領域も
管理する。
【0039】図13はOSによるPLD領域確保動作を
表すブロック図である。PLDの空き領域が足らなくな
った時は、従来のコンピュータのスワップイン/アウト
の様に、一時的にプロセスの状態を二次記憶装置3に退
避させる(図13の1)。この場合、OSはプロセスの
スケジューリングを行う。また、空き領域よりも大きな
プロセスを動作させるために、プロセスの一部を二次記
憶装置3に退避させる(図13の2)。これは、従来の
コンピュータのページイン/アウトと同様の概念であ
る。従来のページイン/アウトは、メモリ上にない命令
/アドレスをアクセスした時にトラップが発生すること
を利用し、ページインするが、本発明のコンピュータ
は、PLD上にない回路へのアクセスは、システムコー
ル信号に接続されており、それの入力によってOSが二
次記憶装置から読み戻す。
【0040】これらの機構が使う一時退避様の二次記憶
装置には、ハードディスクの他に、RAMも有効であ
る。 〔ドライバ〕図1で説明した入出力装置2の制御は、P
LD1の入出力端子を通して行う。入出力端子へのアク
セスは、それと接続しているプログラムのみ可能であ
る。入出力装置毎にそのようなプログラムを用意し、そ
の入出力装置の管理を行う。このようなプログラムをド
ライバと呼ぶ。ドライバはOSの一部であり、プロセス
はシステムコールを通してドライバに処理を依頼する。
【0041】なお、アプリケーションやツール等、OS
より上位のソフトウエアに関する概念は、従来のコンピ
ュータと同じである。また、上述したコンパイラも、自
身をコンパイルしネットリストにすると、上述したOS
で動作するツールとして利用できる。以上説明した本発
明のコンピュータは、目的の処理を行う論理回路のみが
動作するため、従来のコンピュータが行っていた命令フ
ェッチ、命令デコードの時間がかからない。したがっ
て、高速に動作することができる。
【0042】また、PLD上の全てのプロセスは、CP
Uを必要とせず、独自に動作する。これにより、タイム
シェアリングの必要がないため、高速に動作することが
できる。さらに、プロセス内でも、同期を取る必要のな
い複数の処理は並行に動作させることができる。したが
って、高速に動作することができる。
【0043】また変数毎にメモリが独立しているため、
メモリアクセスの競合が少ない。従って、高速に動作す
ることができる。また、メモリアクセスや入出力のため
にバスを使用しないため、バスの競合が起こらない。し
たがって、高速に動作することができる。さらに、割り
込みやトラップが発生しないため、それらによって処理
が中断されない。したがって、高速に動作することがで
きる。
【0044】また、故障によってシステム全体が動作不
能になるような箇所は従来のコンピュータに比べて少な
い。このため、PLDの一部が故障しても、他の領域で
代替することができる。したがって、信頼性を向上する
ことができる。また、コンパイルしたアプリケーション
はネットリストの形になるため、これからASICや専
用のLSIを作ることは容易である。したがって、組み
込み用途向けのチップの開発効率が上がる。
【0045】次に本発明の利用形態を説明する。本実施
例では、高速にプログラムの書き換えができるPLDの
使用を前提としたが、書き換えの低速なPLDであって
も、プロセスの生成やスワップが頻繁に起こらないシス
テムであれば、適用可能である。また、図1で説明した
ように、PLD自身でプログラムを書き込むために、P
LDの出力端子とPLDへのプログラム端子をチップの
外部で接続しても良いし、チップの内部で接続しても良
い。
【0046】さらに、本実施例では、内部の出力を読み
込むような機構を持っているPLDを想定していたが、
そのような機構がないPLDでも、内部の出力とOSが
接続してからならば、その出力を読み込めるため、適用
可能である。ただし、そのPLDがどのような接続も可
能であるか、読み込む出力をOSから接続可能な位置に
置く必要がある。
【0047】また、本実施例では、内部にメモリを持つ
PLDを使用していたが、内部にメモリを持たないPL
Dであっても、外部にメモリを接続すれば、適用可能で
ある。また、本実施例では、メモリを組み合わせ、任意
の大きさを構成していたが、従来のコンピュータのよう
に、単一アドレス空間のメモリを複数のプロセスで共有
しても良い。ただし、この場合はメモリアクセスの競合
が起こる。
【0048】さらに、本実施例では、コンパイラを用い
て高級言語からネットリストへの変換をしていたが、直
接ネットリストを作成しても良いし、あるいは、論理回
路から配置・配線ツールを用いてネットリストを作成し
ても良い。また、ハードウエア記述言語からコンパイラ
を用いてネットリストを作成しても良い。また、本実施
例では、本装置上で動作するコンパイラを想定したが、
他の装置上で動作するコンパイラを用い、クロスコンパ
イルしても良い。
【0049】さらに、本実施例では、タイミング信号の
発生機構として、D−フリップフロップを用いたが、ラ
ッチ回路を用いることもできる。また、カウンタとデコ
ーダで構成することもできる。また、本実施例では、排
他制御にRS−フリップフロップを用いていたが、JK
−フリップフロップを用いることもできる。
【0050】また、本実施例では、複数の箇所からアク
セスされるレジスタ、メモリ、サブルーチンの接続を行
う方法をコンパイラが決定していたが、OSがプロセス
生成時に決定しても良い。また、条件によって変えるの
ではなく、1つの方法のみを採用しても良い。さらに、
本実施例では、プロセスの生成、消滅をOSで行ってい
たが、アプリケーションで行っても良い。
【0051】また、本実施例では、PLD領域の管理を
OSが行っていたが、アプリケーションが行ってもよ
い。また、本実施例では、PLDの空き領域が不足した
時に二次記憶装置にプロセスの一部、または全部を退避
するが、この機能はなくても良い。ただし、空き領域が
不足した時には、プロセスが動作不能になる。
【0052】さらに、本実施例では、PLDと入出力装
置のみによりコンピュータを構成したが、補助的にCP
Uを用いても良い。例えば、OSのみCPUが実行して
も良い。また、電源投入時に、ブートプログラム、OS
を読み込む装置があっても良いし、その機能をPLDの
一部に備えていても良い。
【0053】さらに、電源投入時にブートプログラム、
OSを読み込む入出力装置は、ハードディスク、光磁気
ディスク、ROMのいずれであっても良い。本実施例で
は、PLDの一部分を不揮発にする方法を述べたが、い
くつかのPLDで装置を構成する場合は、その中のいく
つかを不揮発のPLDで構成しても良い。
【0054】電源投入時、最初にブートプログラムを読
んでも良いし、直接OSを読んでも良い。本実施例で
は、電源投入時に入出力装置からOSを読み込んでいた
が、PLDの不揮発な部分にOSをプログラムしておい
ても良い。
【0055】
【発明の効果】以上説明したように、本発明は、PLD
がプログラムを取り込み、自身に書き込むことで所望の
処理を実行可能な論理回路を構成することとしたので、
PLDによるコンピュータが実現できる。これにより、
目的の処理を行う論理回路を構成して、この論理回路の
みを動作させて処理を行うことができるので、CPUの
ように常に多くの回路を動作させる必要がなく、また、
制御や演算を行う論理回路を複数構成して、これらを並
行して動作させて処理を行うことができるので、待ち時
間が必要なく、これにより、高速処理が可能となる。
【図面の簡単な説明】
【図1】本実施例のPLDによるコンピュータのブロッ
ク図である。
【図2】電源投入時の動作フローチャートである。
【図3】プロセス実行時の動作フローチャートである。
【図4】入力処理の動作フローチャートである。
【図5】出力処理の動作フローチャートである。
【図6】タイミング生成回路の一例を表すブロック図で
ある。
【図7】サブルーチンコール回路の一例を表すブロック
図である。
【図8】条件分岐回路の一例を表すブロック図である。
【図9】繰り返し回路の一例を表すブロック図である。
【図10】マルチプレクサを使う排他制御回路のブロッ
ク図である。
【図11】OSによるプロセス生成、消滅動作を表すブ
ロック図である。
【図12】OSによるシステムコール動作を表すブロッ
ク図である。
【図13】OSによるPLD領域確保動作を表すブロッ
ク図である。
【符号の説明】
1 PLD 2 入出力装置

Claims (25)

    【特許請求の範囲】
  1. 【請求項1】 論理回路を構成する複数の素子からな
    り、素子間の接続を変えることで所望の論理回路を構成
    可能なプログラム可能型論理デバイス(PLD)を用
    い、PLDがプログラムを取り込んで自身に書き込み、
    所望の処理を実行可能な論理回路を構成する手段を備え
    たことを特徴とするPLDによるコンピュータ。
  2. 【請求項2】 高級言語で書かれたプログラムを、PL
    D用のネットリストに変換する手段で構成されることを
    特徴とするコンパイラ。
  3. 【請求項3】 高級言語で書かれたプログラムを、論理
    回路に変換する手段で構成されることを特徴とするコン
    パイラ。
  4. 【請求項4】 請求項1記載のPLDによるコンピュー
    タにおいて、 前記PLDは、請求項2記載のコンパイラを介在させて
    プログラムを書き込むことを特徴とするPLDによるコ
    ンピュータ。
  5. 【請求項5】 請求項1記載のPLDによるコンピュー
    タにおいて、 前記PLDは、請求項3記載のコンパイラを介在させて
    プログラムを書き込むことを特徴とするPLDによるコ
    ンピュータ。
  6. 【請求項6】 請求項2または3記載のコンパイラにお
    いて、 PLD内のメモリ機能を用いて、必要な数のビット数の
    レジスタを構成し、それを変数に割り当てることを特徴
    とするコンパイラ。
  7. 【請求項7】 請求項2または3記載のコンパイラにお
    いて、 PLD内のメモリ機能を用いて、必要な容量のメモリを
    構成し、それを配列変数に割り当てることを特徴とする
    コンパイラ。
  8. 【請求項8】 請求項2または3記載のコンパイラにお
    いて、 逐次処理、サブルーチンコール、制御構造を順序回路の
    接続により実現することを特徴とするコンパイラ。
  9. 【請求項9】 請求項8記載のコンパイラにおいて、 前記順序回路が、D−フリップフロップ、ラッチあるい
    はカウンタとデコーダの組み合わせの中から選ばれるい
    ずれか1つであることを特徴とするコンパイラ。
  10. 【請求項10】 請求項2または3記載のコンパイラに
    おいて、 フリップフロップにより排他制御を行うことを特徴とす
    るコンパイラ。
  11. 【請求項11】 請求項10記載のコンパイラにおい
    て、 前記フリップフロップが、RS−フリップフロップある
    いはJK−フリップフロップの中から選ばれるいずれか
    1つであることを特徴とするコンパイラ。
  12. 【請求項12】 請求項2または3記載のコンパイラに
    おいて、 オペレーティングシステムによってサブルーチンコー
    ル、レジスタおよびメモリアクセスを行うことを特徴と
    するコンパイラ。
  13. 【請求項13】 請求項1記載のPLDによるコンピュ
    ータのPLDにプログラムを書き込んで所望の処理を実
    行可能な論理回路を構成する手段で構成されることを特
    徴とするオペレーティングシステム。
  14. 【請求項14】 請求項13記載のオペレーティングシ
    ステムにおいて、 PLD上にプロセスを生成する手段を備えたことを特徴
    とするオペレーティングシステム。
  15. 【請求項15】 請求項13記載のオペレーティングシ
    ステムにおいて、 システムコール信号によって、システムコールを発行す
    ることを特徴とするオペレーティングシステム。
  16. 【請求項16】 請求項13記載のオペレーティングシ
    ステムにおいて、 サブルーチンの引数、返却値、レジスタのデータ、メモ
    リアクセスのアドレス、データを受け渡す手段を備えた
    ことを特徴とするオペレーティングシステム。
  17. 【請求項17】 請求項13記載のオペレーティングシ
    ステムにおいて、 PLD上のプロセスの状態を、一時的に2次記憶装置に
    退避させ、PLDに空き領域を確保することを特徴とす
    るオペレーティングシステム。
  18. 【請求項18】 請求項13記載のオペレーティングシ
    ステムにおいて、 PLD上のプロセスの一部の状態を、一時的に2次記憶
    装置に退避させ、PLDに空き領域を確保することを特
    徴とするオペレーティングシステム。
  19. 【請求項19】 請求項17または18記載のオペレー
    ティングシステムにおいて、 前記2次記憶装置が、ハードディスク、光磁気ディスク
    あるいはRAMの中から選ばれる1つであることを特徴
    とするオペレーティングシステム。
  20. 【請求項20】 請求項13記載のオペレーティングシ
    ステムにおいて、 PLDに接続された入出力装置を制御するドライバを備
    えたことを特徴とするオペレーティングシステム。
  21. 【請求項21】 請求項1記載のPLDによるコンピュ
    ータにおいて、 電源投入時に、ブートプログラムを入出力装置から読み
    込むことを特徴とするPLDによるコンピュータ。
  22. 【請求項22】 請求項1記載のPLDによるコンピュ
    ータにおいて、 電源投入時に、ブートプログラムを入出力装置から読み
    込むプログラムを、不揮発な領域に持つことを特徴とす
    るPLDによるコンピュータ。
  23. 【請求項23】 請求項1記載のPLDによるコンピュ
    ータにおいて、 電源投入時に、オペレーティングシステムを入出力装置
    から読み込むことを特徴とするPLDによるコンピュー
    タ。
  24. 【請求項24】 請求項21または22または23記載
    のPLDによるコンピュータにおいて、 前記入出力装置が、ハードディスク、光磁気ディスクあ
    るいはROMの中から選ばれる1つであることを特徴と
    するPLDによるコンピュータ。
  25. 【請求項25】 請求項1記載のPLDによるコンピュ
    ータにおいて、 オペレーティングシステムを不揮発な領域に持つことを
    特徴とするPLDによるコンピュータ。
JP7113236A 1995-05-11 1995-05-11 Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム Pending JPH08305547A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7113236A JPH08305547A (ja) 1995-05-11 1995-05-11 Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7113236A JPH08305547A (ja) 1995-05-11 1995-05-11 Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム

Publications (1)

Publication Number Publication Date
JPH08305547A true JPH08305547A (ja) 1996-11-22

Family

ID=14607024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7113236A Pending JPH08305547A (ja) 1995-05-11 1995-05-11 Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム

Country Status (1)

Country Link
JP (1) JPH08305547A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530780A (ja) * 1998-11-20 2002-09-17 アルテラ・コーポレーション 再構成可能なプログラマブルロジックデバイスコンピュータシステム
CN111406379A (zh) * 2017-11-09 2020-07-10 区块链控股有限公司 用于可证实计算的类似c的智能合约的算术增强

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530780A (ja) * 1998-11-20 2002-09-17 アルテラ・コーポレーション 再構成可能なプログラマブルロジックデバイスコンピュータシステム
JP2011090710A (ja) * 1998-11-20 2011-05-06 Altera Corp 再構成可能なプログラマブルロジックデバイスコンピュータシステム
USRE42444E1 (en) 1998-11-20 2011-06-07 Altera Corporation Method for managing resources in a reconfigurable computer having programmable logic resources where automatically swapping configuration data between a secondary storage device and the programmable logic resources
JP2012252712A (ja) * 1998-11-20 2012-12-20 Altera Corp 再構成可能なプログラマブルロジックデバイスコンピュータシステム
CN111406379A (zh) * 2017-11-09 2020-07-10 区块链控股有限公司 用于可证实计算的类似c的智能合约的算术增强
JP2021502636A (ja) * 2017-11-09 2021-01-28 エヌチェーン ホールディングス リミテッドNchain Holdings Limited 検証可能な計算のためのcライクなスマートコントラクトの算術的強化

Similar Documents

Publication Publication Date Title
US4987537A (en) Computer capable of accessing a memory by supplying an address having a length shorter than that of a required address for the memory
JP5568566B2 (ja) 高水準言語コードをhdlコードに変換する方法及びシステム
JP4272108B2 (ja) データ処理装置用バス相互接続ブロックの設計に関するフレキシビリティの改善
US20060288337A1 (en) Apparatus, method and program for behavioral synthesis including loop processing
KR20070098760A (ko) 컴퓨터 프로세서 어레이를 동작하는 방법 및 시스템
US7032103B2 (en) System and method for executing hybridized code on a dynamically configurable hardware environment
US4956800A (en) Arithmetic operation processing apparatus of the parallel processing type and compiler which is used in this apparatus
JP4076973B2 (ja) データ処理装置を使用する場合のフレキシビリティの改善
US20060265571A1 (en) Processor with different types of control units for jointly used resources
CN111666210A (zh) 一种芯片验证方法及装置
CA2423824A1 (en) Hardware-assisted design verification system using a packet-based protocol logic synthesized for efficient data loading and unloading
JP5146451B2 (ja) ハードウエアエミュレーションシステムのプロセッサを同期化する方法及び装置
JP3561506B2 (ja) 演算システム
KR100781358B1 (ko) 데이터 처리 시스템 및 그의 데이터 처리방법
US7028162B2 (en) Configurable processing block capable of interacting with external hardware
US7765533B2 (en) Automatic task distribution in scalable processors
US4811201A (en) Interconnect circuit
US6341367B1 (en) Hardware realized state machine
JPH08305547A (ja) Pldによるコンピュータおよびコンパイラおよびオペレーティングシステム
US8200943B2 (en) Microprocessor
US6449763B1 (en) High-level synthesis apparatus, high level synthesis method, and recording medium carrying a program for implementing the same
JP3006676B2 (ja) マルチプロセッサ
US20050272197A1 (en) Semiconductor device
JPS6113607B2 (ja)
JP3006487B2 (ja) エミュレーション装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040120