JPS5847738B2 - 可変長フィ−ルドのアクセス方法 - Google Patents

可変長フィ−ルドのアクセス方法

Info

Publication number
JPS5847738B2
JPS5847738B2 JP52145769A JP14576977A JPS5847738B2 JP S5847738 B2 JPS5847738 B2 JP S5847738B2 JP 52145769 A JP52145769 A JP 52145769A JP 14576977 A JP14576977 A JP 14576977A JP S5847738 B2 JPS5847738 B2 JP S5847738B2
Authority
JP
Japan
Prior art keywords
register
bit
byte
bus
storage
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.)
Expired
Application number
JP52145769A
Other languages
English (en)
Other versions
JPS5383537A (en
Inventor
ゲリー・ウエイン・メイス
ミカエル・イアン・デービス
ロバート・アレン・フード
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS5383537A publication Critical patent/JPS5383537A/ja
Publication of JPS5847738B2 publication Critical patent/JPS5847738B2/ja
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words

Description

【発明の詳細な説明】 本発明は本来の記憶装置アドレシング素子及び境界に関
係なくビット・フィールドを取扱うことに関するもので
ある。
本発明の好適な実施例は電子式データ処理システム内で
実施されるものであり、このシステムの種々な部分が以
下の特許出願において詳細に述べられている。
特願昭52−47512号(特公昭54−41458号
公報)は本発明を使用し得るデータ処理システムを開示
しており、特願昭52−48623号(特公昭57−3
092号公報)は本願のプロセッサ、I/Oデバイス、
チャネル、I/Oデバイスとの間でデータを転送するた
めのI/Oインターフェースと関連する制御装置の好適
な形体を開示している。
特願昭52−38623号(特公昭56−53782号
公報)は本願のプロセッサ及び主記憶装置と関連するア
ドレシング制御装置の好適な形体を開示している。
更に、特願公52−38620(特公昭5738998
号公報)、5 2−3 8 6 2 4 (特公昭57
−51133号公報)、52−38621(特公昭57
−51133号公報)、52−39621(特公昭57
−36678号公報)、52−41045(特公昭57
−36679号公報)、52−39622(特公昭57
−39000号公報)、52−39623(特公昭56
−53782号公報)、52−47513(特公昭55
−43136号公報)、52−48622(特公昭53
−941号公報)、52−486240特公昭57−1
1445号公報)、52−41047(特公昭58−2
1308号公報)は本発明を実施し得る代表的なシステ
ムの種々な部分を開示している。
本発明の背景 上記のような代表的なデータ処理システムでは、主記憶
装置の内容はアドレシングの目的のために小さなビット
群に分割される。
これらの群(即ち、アドレス可能性のある素子)は例え
ばfBMシステム/360におけるバイト或いはI B
M 1130システムにおけるワード(それぞれ2バイ
ト)如きものでよい。
注意すべき重要なことは、すべての記憶装置アドレシン
グ装置はアドレス可能性のある素子の境界に置かれた情
報を参照し得るだけであること及びデータはアドレス可
能性のある単一の素子又は複数の素子として主記憶装置
からフエツチされ又は貯蔵されること、である。
アドレス可能性のある素子の境界と揃えられてない主記
憶装置オペランド又はアドレス可能性のある1つの素子
若しくは或る整数個の素子と同じ大きさでない主記憶装
置オペランドを処理しようとする場合、従来のデータ処
理システムのユーザ及びプログラマはかなり困難な状況
の下にこれを操作しなければならなかった。
歴史的6こは、ビット・フィールド全体の質問(即ち、
読出し)は情報を含むワード又はバイトをロードし然る
後ソフト(又は同等のこと)を行って分離させ関連ある
フィールドを揃えることを意味する。
エミュレーション及ひ翻訳技法はこのような技法を大い
に重要なものにする。
その反対の動作(ビット・フィールド全体を貯蔵する)
は歴史的には、データがその後の無作為的な更新を必要
とする場合にはそのデータはパンクされないことが多い
ので余分な操作を必要とした。
従来の技法はこの問題に対する部分的に解決を示すもの
であり、それが示している手段によって1つの揃えられ
てないオペランドの先端がアクセス可能となる。
しかし、その従来技法はオペランドがアドレス可能性の
ある次の素子の境界と重畳しない場合を扱うものである
これは直接にアクセス可能な揃えられてないすべてのオ
ペランドがアドレス可能性のある1つの単位内に存在し
なければならないことを意味する。
これは(プログラマがアドレス可能性を再計算しなけれ
ばならない頻度を減少させることによって)ユーザの負
担を少なくするけれども、それは問題を取除くものでは
ないことは明らかである。
本発明とは対照的に、その従来技法はシステムにおける
アドレス可能性のある素子の境界に関係なく可変長の揃
えられてないビット・フィールドの全体的アクセシング
を可能にするものではない。
本発明は単一の機械命令によって可変長の不揃いのビッ
ト・フィールドを容易に処理するのを可能にすることに
よって上記の問題を解決するものである。
それはバイト又はワード境界に関係なく任意の長さ(所
定の最大長まで)のビット・フィールドとして表わされ
た情報に対する記憶装置の最適化を与えるものである。
発明の要約 以下の詳細な説明では、4つの新しい命令を認識しそし
て実行するための装置が与えられる。
それら命令のうち本発明に関連する3つは特定のビット
・フィールドを記憶装置から1つの指定されたレジスタ
にロードさせる”ロード″命令である。
第4の命令は指定されたレジスタに貯蔵されているビッ
ト・フィールドを記憶装置へ貯蔵させる”ストア′”命
令である。
好適な実施例では、それら命令の各々は、オペレーショ
ン・コードに加えて (1)ビット・フィールドの発生源(ソース)又は宛先
(テステイネーション)であるマシン・レジスタの指定 (2)記憶装置バイトのベース・アドレスを含むレジス
タの指定 (3)ビット・フィールドの長さの指定(この実施例で
はビット・フィールドの実際の長さよりも1だけ少ない
値) を含んでいる。
ビット・フィールドの始めの記憶装置における特定のビ
ット・ロケーションはそのビット・フィールドが記憶装
置におけるベース・アドレス力)ら隔てられている量を
表わす所定の機械レジスタの内容とバイト・ベース・ア
ドレス・レジスタの内容とを加えることによって得られ
る。
この装置の好ましい実施例では、連続する可変長のビン
ト・フィールドをロードする時にディスプレースメント
・レジスタの内容を適正に更新するための手段が設けら
れる。
システムの一般的説明 第1図は本発明が組込まれる好適なンステムの全体的ブ
ロック図である。
中央処理装置(CPU)即ちプロセッサ1はこのシステ
ムの主要素子であり、第2A〜2H図において更に詳細
に示される。
これは命令を実行し且つそのシステムの2つの主要イン
ターフェース即ち入出力(I/O)インターフェース2
及び記憶装置一変換器インターフェース3における活動
を制御する。
複数の入出力(I/O)デバイス4−1乃至4 − n
がそれぞれのデバイス・アタッチメント5−1乃至5−
nによってI/Oインターフェース2に接続される。
デバイス・アタッチメント5−1乃至5−nはCPU1
と共にCPU1とI/Oデバイス4−1乃至4 − n
との間のデータの転送を制御する。
記憶装置一変換器アタッチメント3はCPU1を主記憶
装置8及びリロケーション変換器9 ニ接続する。
インターフエイス11はリロケーション変換器9を非同
期記憶装置10に接続する。
主記憶装置8は内部記憶装置14及び外部記憶装置15
を持っている。
インターフェース12はCPU1と内部記憶装置14と
の間のデータの転送を制御するようCPU1を主記憶装
置8に接続する。
外部記憶装置インターフェース13はCPU1と外部記
憶装置15との間のデータの転送を制御するよう主記憶
装置8をリロケーション変換器9に接続する。
操作卓6がインターフェース7によってCPUに接続さ
れる。
インターフェース2は第2A〜2H図に関連して更に詳
細に述べられるI/Oアドレス・バス、I/Oデータ・
バス及びI/Oインターフェース制御信号バスを含んで
いる。
インターフェース3は主記憶装置バス及びCPU一変換
器制御信号バスを含んでいる。
インターフェース12及び13はそれぞれデータの転送
中内部記憶装置制御信号及び外部記憶装置制御信号のた
めの通路となる。
インターフェース11はインターフェースilJ御{H
号線と共にデータ・バス・アウト及びデータ・バス・イ
ンを含んでいる。
これらインターフェースは以下で簡単に説明される。
CPUデータ・フロー CPU1は通常の構造の演算論理装置(ALU)51(
第2E図)を含んでいる。
ALU51に対して1対の入力レジスタ、即ちWAレジ
スク52及びYレジスタ53が設けられ、それらレジス
タはそれぞれバス54及び55によってALU51に接
続される。
ALU51は出力バス56を有し、それはANDゲート
58によってプロセッサ・バス57に接続される。
プロセッサ・バス57はANDゲート60及び61によ
ってレジスタ52及び53に接続され、入カデータをA
LU51へ供給する。
プロセッサ・バス57はソース及びデステイネーション
・データの両方に対する主データ・バス57′として作
用する。
従って、ソースとして作用するプロセッサの各機能素子
はANDゲートによってプロセッサ・バス57に接続さ
れ、デステイネーションとして作用するCPU1の各機
能素子はそれぞれのANDゲートによってプロセッサ・
バスに接続される。
そのシステムのほとんどの機能素子はデータに対するソ
ース及びデステイネーションの両方として作用する。
従ってそれらはソースANDゲート及びデステイネーシ
ョンANDゲートの両方によってプロセッサ・バス57
に接続される。
従って、プロセッサ・バス57はデステイネ−ションA
NDゲート66及びソースANDゲート67によってZ
レジスタ65に、デステイネーションANDゲート71
及びソースANDゲート72によってプロセッサ記憶装
置データ・レジスタ10に、デステイネーションAND
ゲート76及びソースANDゲート77によってカウン
タ75に、デステイネーションANDゲート81及びソ
ースANDゲート82によってレジスタ・スタック80
に、デステイネーションANDゲート86及びソースA
NDゲート87によってアドレス・キー・レジスタ85
に、デステイネーションANDゲート91及びソースA
NDゲート92によってハードウエア・レベル・ステー
タス・レジスタ90に、そしてデステイネーションAN
Dゲート96及びソースANDゲート97によってプロ
セッサ記憶装置アドレス・レジスタ95にそれぞれ接続
される。
プロセッサ・バス57はソースANDゲート100及び
インターフェース・バス7aによって制御卓6(第2A
図)に接続される。
データはプロセッサ・バス57からANDゲート66、
Zレジスタ65及びインターフェース・バス7bを介し
て制御卓6へ送られる。
オペレーション(OP)レジスタ101(第2F図)が
ソースANDゲート102を介してプロセッサ・バス5
7に接続される。
オペレーション・コードがプロセッサ記憶装置データ・
レジスタ70からANDゲート103を介してOPレジ
スク101に貯蔵される。
スタック・アドレス・レジスタ105(第2G図)がデ
ステイネーションANDゲート106を介してプロセッ
サ・バス51に接続される。
現在命令アドレス・レジスタ107がソースANDゲー
ト109を介してプロセッサ・バス57に接続される。
レジスタ107の入力はバス108を介してスタック・
レジスタ80の出力に接続される。
記憶保護アレ−110(第2H図)がデステイネーショ
ン及びソースANDゲート111及び113によってプ
ロセッサ・バス57に接続される。
プログラム・ステータス・ワード(psw)レジスタ1
15はその出力116をソースANDゲ゛−H 1 7
によってプロセッサ・バス51に接続される。
レジスタ115への入力は種々のシステム・チェック入
力線120から、キー比較一致レジスタ121からそし
て記憶装置チェック状態バス136から与えられる。
キー比較一致レジスタ121への入力は記憶保護アレ−
110からその出力バス125によって及びキー選択ロ
ジック回路126からバス127によって与えられる。
レジスタ85からの出力12Bが回路126の1つの入
力へ接続される。
回路126への第2の入力129はサイクル・スチール
保護ラツチ130(第2D図)によって与えられる。
ラツチ130からの入カバス129はレジスタ90にも
接続される。
キー選択ロジック回路126の出力は記憶装置一変換器
インターフェース3の一部分を形或する出力バス127
によって主記憶装置8及びリロケーション変換器9にも
接続される。
インター71−ス3は同期化バス135(第2H図)、
チェック状態バス136、アドレス・バス137、入カ
バス138及び出力バス139をも含んでいる。
プロセッサ記憶装置アドレス・レジスタ95の出力14
0はANDゲ゛一ト141を介してアドレス・バス13
7に接続される。
サイクル・スチール記憶装置アドレス・レジスタ142
はその出力143をANDゲート144によってアドレ
ス・バス137に接続される。
ゼロ検出回路150はその入力をプロセッサ・バス57
にそしてその出力を条件付きブランチ論理回路152(
第2A図)に接続される。
ゼロ検出回路150の出力151は結果表示回路153
(第2G図)の入力にも接続される。
結果表示回路153の第2人力154はALU51の出
力から与えられる。
プロセッサ・バス5Tは条件付きブランチ論理回路15
2への入力をも形或する。
カウンタ75(第2F図)の出力160はホルト■/O
デコーダ161への入力及びサイクル・スチール記憶装
置アドレス・レジスタ142への入力を与える。
デコーダ161の出力162はインターフエーズ・ゲー
ト制御回路239(第2D図)に接続される。
主記憶装置から入カデータ・バス138はANDゲート
165を介してプロセッサ記憶装置データ・レジスタ7
0(第2E図)に及びANDゲート167を介してサイ
クル・スチール記憶装置データ・レジスタ166に接続
される。
プロセッサ記憶装置データ・レジスタ70からの出力1
68はANDゲ゛ー1169を介して主記憶装置への出
力データ・バス139に接続される。
レジスタ166はANDゲート170を介してバス13
9に接続される。
レジスタ70及び166の出力は記憶パリテイ・チェッ
ク171(第2F図)にも接続される。
その回路171はパリテイ・エラーが存在しない時に出
力データ・バス139にパリテイ・ビットを与え、パリ
テイ・エラーが検出される時線173上に出力信号を与
える。
マスク・レジスタ1γ5(第2A図)は入カゲート17
6及び出力ゲ゛−41 77を介してプロセッサ・バス
57のビツH2,13に接続される。
マスク・レジスタ115の出力178は駆動回路180
及びバス182を介して現在レベル・レジスタ181に
も接続される。
選択済レベル・レジスタ185はその入力をプロセッサ
・バス57のビット14,15に接続される。
レジスタ185の出力185aはゲート185bを介し
てスタックSAR105(第2G図)に接続される。
出力185aはデコーダ回路190及びその出力線19
1を介して現在レベル・レジスタ181にも接続される
現在レベル・レジスタ181の出力192はCPU1の
マイクロプログラム制御機構200の読取専用記憶装置
アドレス・レジスタ(ROSAR)1 93(第2B図
)に接続される。
レジスタ181の出力181aはエンコーダ181cに
より4ビットカ)ら2ビットにエンコーダされた後ゲー
ト181bによってスタックSAR105に接続される
マイクロプログラム制御機構200は読取専用記憶装置
(ROS)201を有し、それはROS出力データ・レ
ジスタ202及びソースANDゲ′−l−203を介し
てプロセッサ・バス57に接続される。
ROS出力データ・レジスタ202の第2出力204は
ソース・デコーダ論理回路205、デステイネーション
・デコーダ論理回路206、記憶装置制御デコーダ論理
回路207,ALU機能デコーダ論理回路208、他の
制御デコーダ論理回路209及びROS AR193
に接続される。
ROS201に対するアドレス選択はROSAR193
からバス212及びアドレス・デコーダ論理回路213
を介して与えられる。
リンク・レジスター1 210及びリンク・レジスター
2211はそれらの入力をバス212を介してROSA
R193に接続されそしてそれらの出力214,215
を有する。
プロセッサ記憶装置データ・レジスタ70(第2E図)
がバス73を介してROS AR193へのもう1つ
の入力を与える。
条件付きブランチ論理回路152はバス216を介して
ROS AR193への入力を与える。
ソース・デコーダ回路205は出力ソース制御線231
を有し、それら線はゲート102の如き種々のソースA
NDゲートを制御してソース・データをアクセスするの
に利用される。
デステイネーション・デコーダ206は出力デステイネ
ーション制御線232に有し、それら線はゲート76の
如き種々のデステイネーションANDゲートを制御して
デステイネーション・データを適当なレジスタ又は他の
素子へ与える。
ALU機能デコーダ回路208は出力ALU機能制御線
223を有し、それら線はプロセッサ・サイクル中AL
Uの種々の機能を制御するのに利用される。
これらデステイネーション制御、ソース制御及びALU
制御はそれらが本願の発明に関連する限りにおいて以下
で詳細に説明される。
記憶装置制御デコーダ論理回理207は出力235を記
憶装置制御回路236に接続される。
その回路236はデコーダ回路209から与えられる第
2人力237及びチャネル・インターフェース・ゲート
制御回路239(第2D図)からの第3人力238を有
する。
このバス238は双方向性であり、I/Oデバイス4−
1乃至4−1 0とCPU1との間のデータ転送中利用
される。
インターフェース・バス12及び同期化バス135はい
ずれも記憶装置制御論理回路236に接続される。
デコーダ回路209は状態制御出力240、サンプル割
込要求出力241及びチェック状態出力242を有する
更に、デコーダ回路209からの出力243はクロツク
制御回路245(第2C図)に接続される。
水晶発振器246は周波数分割器247に信号を与え、
一方その分割器247はクロツク制御回路245の入力
に接続されCPUIのデータ・フロー及び制御のための
タイミング・パルスを与える。
CPUデータ・フロー及び制御回路へのこれらタイミン
グ・パルスはクロツク制御回路245の出力線248−
1乃至248−nによって与えられる。
同期化バス135はクロツク制御回路245に接続され
そしてこの目的のため(こ2ウエイ・コミュニケーショ
ン・バスである。
次にチャネル・ハードウエア250(第2A図及び2D
図)が詳細に述べられる。
チャネル・ハードウエア250は■/0インターフェー
ス2の種々の線及びバスに接続される多数の1駆動回路
(ドライバ)及び受信回路〔レシーバ)251乃至25
6を有する。
従って、レシーバ251はリクエスト・イン・バス26
1のビツhO−3に接続される。
レシーバ252はリクエスト・イン・バス262のビッ
ト16に接続される。
レシーバ及ひドライバの群253はポール線263、ポ
ール・リターン線264及びバースト・リターン線26
5に接続される。
ドライバ254はポール識別バス266のビット0−4
に接続される。
ドライバ及びレシーバ255は線2 6 7−1乃至2
67−10に接続され、それらはサービス・ゲート線、
サービス・ゲート・リターン線、アドレス・ゲート線、
アドレス・ゲート・リターン線、データ・ストローブ線
、ホールド又はマシン・チェック線、システム・リセッ
ト線、ワード・バイト表示線、サイクル・スチール・ス
テータス・ノくスのビット0−3を含んでいる。
レシーバ256は条件コード入カバス268のビット1
−2に接続される。
インターフェース2はデータ・バス269、アドレス・
バス270のビットO−15、アドレス・バスのビット
16線272及びパワー・オン・リセット線271を含
んでいる。
データ・バス269はI/Oインターフェース・パリテ
イチェック及び発生回路275(第2F図)の入力に接
続される。
その回路275はI/OデバイスからCPUlに送られ
たデータにエラーがない時I/Oインターフェース・デ
ータ・バス269にパリテイ・ビットを与える第1出力
276を有する。
その回路275はデータ・バス269上にパリテイ・エ
ラーが生ずる時に信号を与える第2出力277を有する
データ・バス269はソースANDゲート278を介し
てプロセッサ・バス57にも接続される。
データ・バス269はANDゲート280(第2E図)
を介してサイクル・スチール記憶装置データ・レジスタ
166の入力に接続され、そしてANDゲート279を
介してそのサイクル・スチール記憶装置データ・レジス
タ166の出力に接続される。
データ・バス269はANDゲート281を介してYレ
ジスタ53の出力55にも接続される。
アドレス・バス270はサイクル・スチール記憶装置ア
ドレス・レジスタ142(第2G図)の入力に接続され
る。
そのアドレス・バス270はゲート273(第2F図)
を介してカウンタ75の出力160にも接続される。
レシーバ251の出力182は現在レベル・レジスタ1
81の入力に接続される。
ドライバ及びレシーバ回路252,253,254はボ
ール・シーケンス制御回路285に接続される。
現レベル・レジスク181は出力181aを介して回路
285へのもう1つの入力を与える。
リクエスト承認線286がポール・シーケンス制御回路
285へのもう1つの入力を与える。
そのポール・シーケンス制御回路285は線289を介
してインターフェース・ゲート制御回路239にも接続
される。
インターフェース・シーケンス及ひタイムアウト・チェ
ック制御回路288が線287を介してポール・シーケ
ンス制御回路285に接続される。
パワー・オン・リセット線271が回路285へのもう
1つの入力を与える。
線2 9 0−1乃至290−10(第2D図)はドラ
イバ及びレシーバ回路255をインターフェース・ゲー
ト制御回路239に接続する。
プロセッサ・バス57は16ビット幅のバスであり、マ
イクロプログラム制御回路により選択されたようにCP
Uデータ・フローにおけるソース素子とデステイネーシ
ョン素子との間で情報を転送する。
オペレーション・レジスク(OP REG)1 0
1 (iZF図)は16ビット・レジスタであり、命令
の解読中レジスタ・スタック80に対するレジスタ・ア
ドレス・アーギュメントを含む命令の第1ワードを有す
る。
それは命令の第1ワードを保持していない場合一時的デ
ータ・レジスタとしても使用される。
その出力はプロセッサ・バス57へのソース素子である
それはその入力を記憶装置データ・レジスタ70から受
ける。
ALU51(第2E図)は16ビット素子であり、命令
によって指定された演算及び論理機能を遂行する。
その出力56はプロセッサ・バス57へのソース素子と
なる。
それはその入力をWAレジスタ52及びYレジスタ53
から受ける。
WAレジスタ52は16ビット・レジスタであり、演算
及び論理オペレーションに対するALU51への第1入
力である。
それはプロセッサ・バス57からデステイネーション素
子として入力を受ける。
Yレジスタ53は16ビット・レジスクであり、演算及
び論理オペレーションに対するALU51への第2人力
である。
WAレジスタ52と関連シてそれは2ワード・シフト・
オペレーションに関するシフト動作を行う。
それはプロセッサ・バス57からデステイネーション素
子として入力を受ける。
このレジスタ53は直接プログラム制御I/Oオペレー
ションに対してはI/Oデータ・バス269へのアウト
バウンド・データ用のデータ路ともなる。
プロセッサ記憶装置データ・レジスタ(PROCSDR
)70は16ビット・レジスタであり、サイクル・スチ
ール・データを除く主記憶装置への又は主記憶装置から
のすべてのデータがこれを介してゲートされる。
主記憶装置8からフエソチされる各命令の第1ワードは
、PROC SDR70を介してOPレジスタ101ヘ
ゲートされる。
このレジスタ70は他のプロセッサ・オペレーション中
一時的データ・レジスタとしても使用される。
従って、それはプロセッサ・バス57からデステイネー
ション素子として入力を受け且つプロセッサ・バス57
にソース素子として出力を与え・る。
サイクル・スチール記憶装置データ・レジスタ(CS
SDR)166は16ビットレジスタであり、サイク
ル・スチール・オペレーション中I/Oデータ・バス2
69及び記憶装置バス138又は139の一方を通る主
記憶装置8への及び主記憶装置8からのすべてのデータ
がそのレジスタ166を介してゲートされる。
第2F図のl6ビット・カウンタ(CTR)75は種々
のプロセッサ・オペレーションを追跡するためのカウン
タとして使用される。
それは他のプロセッサ・オペレーションに対して一時的
レジスタとしても使用される。
従って、それはプロセッサ・バス57に対するソース及
びデステイネーション素子となる。
それはデバイス選択のためのデバイス・アドレスを保持
するためにも使用されそして直接プログラム制御オペレ
ーション中I/Oコマンドがゲート2γ3を介してI/
Oアドレス・バス270ヘゲートされる。
第2G図のプロセッサ記憶装置アドレス・レジスタ(P
ROC SAR)95は主として主記憶装置アドレスを
保持するために使用される16ビットレジスタである。
その内容は通常の処理オペレーション中及び直接プログ
ラム制御オペレーション中の記憶装置アクセスのために
ゲート141を介して記憶装置アドレス・バス137に
ゲートされる。
それは主記憶装置をアドレスする必要のない時には一時
的データ・レジスタとしても使用される。
サイクル・スチール記憶装置アドレス・レジスタ(CS
SAR)142は16ビット・レジスタであり、サ
イクル・スチール・データ転送オペレーション中I/O
デバイスからI/Oアドレスバス270を介して転送さ
れる主記憶装置を保持するのに使用される。
それはサイクル・スナール記憶装置アクセスに対しての
みゲート144を介して記憶装置アドレス・バス137
にゲートされる。
第2A図の16ビットZレジスタ65の主要目的は制御
卓6のオペレータ・データ・ディスプレイ表示器(図示
されてない)に対するデータを保持することである。
それは他のプロセッサ・オペレーションに対しては一時
的レジスタとしても使用される。
それはプロセッサ・バス57に対するソース及びテステ
イネーション素子である。
レジスタ・アレー(スタック)80(第3図)は4つの
割込みレベルの各々に対するレベル・ステータス、アド
レス・キー及び命令アドレスをレジスタに保持するのに
使用されるモノリシツク・ラッチのアレーである。
それはマイクロプログラムによって使用されるいくつか
のワーキング・レジスタ、即ち第3図に示されるように
構或されたTEMP ,TEMP 1−3 ,DBUF
,SOAI,SOA2、現在レベル・セーブ及びAK
Rセーブ、を含んでいる。
TEMP及びTEMPI−3レジスタは正規の処理動作
中マイクロプログラムによって使用される一時的データ
を含んでいる。
SOAIは「ストップ・オン・アドレス」オペレーショ
ンのために使用されるべき手で入れられたアドレスを含
み、SOA2は下位3ビットに制御卓記憶キーをそして
残りビットにゼロを含んでいる。
DBUFレジスタは制御卓データ・バツファである。
このバッファの内容は制御卓6上のデータ・ディスプレ
イ表示器(図示されてない)を駆動する。
現在レベル・レジスタはストップ状態に入った時にアク
ティブであったレベルを含んでいる。
AKRセーブ・レジスタは現在レベルAKRのコピーを
含んでいる。
現在のレベルに対するスタック80のLSR,AKR及
びIARレジスタにおけるデータはパフォーマンス上の
理由で、即ちスタック・アクセスの数を減りすために、
その対応するハードウエア・レジスタ90,85,10
7にも保持される。
好適な実施例のスタック80は64X18のアレーを形
成するように並列に接続された2つの64×9のアレー
より成る。
スタック・アドレス・レジスタ105はスタック80を
アドレスするための6ビット・レジスタである。
レジスタ105への入力(第2G図)はインクレメンタ
320からスタック・リンク・レジスタ321及びデス
テイネーション・ゲート322を介して与えられるもの
、選択済レベル・レジスタ185からバス185a及び
ゲート185bを介して与えられるもの、現在レベル・
レジスタ181からバス181a及びゲート181bを
介して与えられるもの、OPレジスタ101からバス1
01a及びゲート101bを介して与えられるもの及び
プロセッサ・バス57から与えられるものがある。
スタック・アドレス・レジスタ105はプロセッサ・バ
ス57からゲート106を介してロードされる。
ハードウエア・レベル・ステータス・レジスタ(LSR
)90は現在レベル・ステータスを保持するために使用
される16ビットのハードウエア・レジスタである。
或る特定なレベルに関する処理動作中、ハードウエア・
レジスタLSR90の内容は演算及び論理オペレーショ
ンの結果に従って変化する。
レジスタ・スタック80における現在レヘルLSRはレ
ベル終了が生ずるまでそのまま変化しない。
同時に、ハードウエアLSRレジスタ90の内容は終了
するレベルのレジスタ・スタック80におけるLSRレ
ジスタの中に置かれる。
そしてそのレジスタ・スタック80からの新しいレベル
・ステータスがハードウエアLSRレジスタ90の中に
置かれる。
LSRレジスタ90の内容のうちの或るものは次のよう
になる。
結果表示は意志決定のためのソフトウエアによって使用
される。
等価、桁上げ及び溢れ表示器はI/Oデバイス4−1乃
至4−nによってプロセッサ1に送ラれた条件コードを
保持するように工,。
/Oオペレーションによっても使用される。
1つのI/O命令の実行中、等価、桁上げ及び溢れ表示
器は次のような条件コード値を割当てられる。
割込受付中すべての条件コードがデバイスによりリポー
トされる。
等価、桁上げ及び溢れの表示申本は次のような条件コー
ド値を割当てられる。
プロセッサ1は符号のある数又は符号のない数に関係せ
ず、与えられた数値に関する指定されたオペレーション
を実行する。
すべての表示はオペレーションの結果を反映する。
これは実行されたオペレーションの型に対する結果をプ
ログラマがテストするのを可能にする。
プロセッサ・ステータス・ワード(psw)レジスタ1
15は16ビ゛ントのレジスタであり、フ゜申ーログラ
ム・チェック、マシン・チェック、ソフト例外トラップ
又はパワー・サーマル警報の割込みを生じさせるエラー
及び例外情報を含んでいる。
PSWレジスタ115には3つのステータス・フラッグ
も含まれる。
PSWレジスタ115はハードウエア及びマイクロプロ
グラム検出された条件によってセットされる。
アドレス・キー・レジスク(AKR)85(第2G図)
は16ビットのハードウエア・レジスタであり、現レベ
ルAKRの内容をその特定レベルに関する処理中持つた
めに使用される。
AKRレジスタ85は回路121(第2C図)において
記憶保護アレ−110における保護キーと比較されるア
ドレス・キーを与える。
これはサイクル・スチール・オペレーションを除く各記
憶アクセスに対して行われる。
AKRの命令スペース・キー(ISK)フィールドは制
御卓6からの任意の手操作の記憶装置アクセスする制御
卓アドレス・キーとしても使用される。
第2G図の現命令アドレス・レジスタ(CIAR)10
7は実行されている命令のアドレスを含んでいる。
CIARレジスタ107は各命令の始めにロードされる
命令の実行中、スタック80におけるレベルIARは次
の命令アドレスに更新される。
現在の命令が十分に実行されるのをクラス割込みか禁止
する場合、その割込みは処理され、CIARレジスク1
07は再び実行されるその割込まれた命令を再アドレス
するのに使用される。
第2G図の記憶保護アレ−110は32個の記憶装置キ
ー・レジスタ(図示されてない)より成る。
そのアレーは記憶保護機構が設けられそして可能にされ
る時にいつも可能にされる。
各レジスタは記憶装置8の2つの2048バイト・ブロ
ックを制御するための読取専用ビット及び保護ビットを
含んでいる。
セット記憶キー命令はそのキーと読取専用ビットを特定
の記憶キー・レジスタにセットする。
コピー記憶キー命令は特定の記憶キー・レジスタを読出
す。
第2A図の現レベル・レジスタ185は現在有効な現レ
ベル表示器を保持するのに使用される2ビット・レジス
タより成る。
レジスタ185はレベルが変更される時にいつもセット
される。
レジスタ185はローカル記憶装置スタック80におけ
る適切なレベル・ステータス・ブロックをアドレスする
場合に使用され、割込みが受付け可能であるかどうかを
決めるのに使用される。
その後者の目的のために、2乃至4ビットのレベル・デ
コーダ190が使用される。
レジスタ185はプロセッサ・バス57に対するソース
及びデステイネーション素子である。
第2A図のマスク・レジスタ175は4ビット・レジス
タであり、以下のように4つの割込みレベルに関する優
先順位割込みを不能にするのを可能にするのに使用され
る。
マスク・レジスタ175はロード・マスク命令によって
セットされる。
それはプロセッサ・バス57に対するソース及びデステ
イネーション素子である。
マスク・レジスタ出力178はマスク・アンロード・ド
ライバ180にも接続され、そしてそのドライバは割込
み受付け作用を設定する場合に使用するためのI/Oイ
ンターフェース受信線251及び261からの適正な優
先順位割込みリクエスト・ビットとマスク・レジスタ1
γ5の4ビットとをANDするのを可能にする。
クリスタル発振器246はCPU1のための基本的クロ
ツク周波数を発生する。
周波数分割器247は第8図に示されるようなクロツク
・パルスA,B,C及びDを発生する。
アップ・レベルは論理″1″を示す。
各パルスは220ナノ秒毎に55ナノ秒の間アクティブ
となる。
クロツク制御器245はゲート・クロック・パルスの停
止及び開始を制御し、クロツク・パルスをデータ・フロ
ー及び制御器へ分配し、そして主記憶装置のタイミング
のために或る特別のクロツク・パルスを発生する。
ゲートされたクロツク・パルスは上記のA,B,C及び
Dパルスと同じ形のものであるが、ハードウエアとして
マイクロプログラムで生ずる条件によって停止又は開始
される。
第2C図のバス・ゼロ検出ロジック150はプロセッサ
・バスにおける値がゼロであるかどうかを決めることが
できる一群の組合せ論理素子である。
その出力は意志決定の場合マイクロプログラムによって
使用される。
第2F図のパリテイ発生及びチェック回路171は主記
憶装置8からのCPU1により受け取られるすべてのバ
イトに関して奇数パリテイをチェックする。
それはCPUIによって主記憶装置8へ送られるすべて
のバイトに関するパリテイもチェックする。
プロセッサ・サイクルの記憶装置パリテイ・エラーの検
出はPSWレジスタ115における記憶装置パリテイ・
ビットをセットし、マシン・チェックのクラス割込みを
生じさせる。
サイクル・スチール・サイクルの記憶装置パリテイ・エ
ラーの検出はエラー条件をアクティブI/Oデバイスへ
信号させる。
第2F図のI/Oインターフェース・パリテイ発生及び
チェック装置275はI/Oインターフェース・データ
・バス2を介して受け取られたすべてのバイトにおける
奇数パリテイをチェックする。
それはI/Oインターフェース・データ・バス2を介し
て送られるすべてのバイトに関する奇数パリテイを発生
する。
インバウンド・データにおけるパリテイ・エラーの検出
はエラー条件をアクティブI/Oデバイスに信号させる
第2F図のホルトI/0デコーダ161はI/Oデバイ
スによってではなくチャネル250によって実行される
ホルトI/Oコマンドを解説する。
それはそのシステムに接続されたすべてのI/Oデバイ
ス4−1乃至4nをリセットさせる。
第2c図のキー選択ロジック126は主記憶装置の参照
のためにレジスタ85における3つのAKRキーの1つ
又はバス129を通るサイクル・スチール・キーを選択
するのに使用される。
サイクル・スチール中、I/Oサイクル・スチール・キ
ーがI/Oインターフェース2の条件コード・イン・バ
ス268を介してCPUIへ転送される。
このロジック128の出力は変換器9及びキー比較ロジ
ック121へ送られる。
キー比較ロジック121は選択されたキーを記憶保護ア
レ−110からの記憶保護キーと比較するのに使用され
る。
PSWにおける保護チェック・ビットが1つの違犯によ
ってセットされ、割込みが生ずる。
第2A図のポール・シーケンス制御回路285は線26
3上にポール・タグをそしてバス266上にポール識別
をスキューして発生し、サービス・ゲート・オペレーシ
ョンのために第2D図のインターフェース・ゲート制御
回路239へ信号を与え、そしてエラー・チェックのた
めにインターフェース・デバイス及びライン・アウト制
御回路288へ与えられる。
そのボール・シーケンスは同じCPU資源に対する多数
の要求デバイス間の競合を解決するものである。
第2D図のインターフェース自動制御回路239はその
インターフェースのためのアドレス及びサービス・ゲー
トをスキューして発生し、デバイスへの供給のための同
じレジスタのサイクル・スチール記憶装置アクセス・エ
ラー相互間の競合の解決を与え、記憶制御装置との間で
信号する線を与エ、インターフェース・バスのスキュー
を戻しそしてラツチ130における条件コードを制御す
る。
インターフェース・シーケンス及びタイムーアウト制御
回路288はインターフェース2に関するシーケンス・
エラーのチェックをするためのタイム・アウト制御を与
え、インターフェース・タグの無効な組合せを検出し、
そしてプロセッサ1へのインターフェースにおけるマシ
ン・チェック条件の検出を報告する。
I/Oインターフェース2はCPUチャネル250をデ
バイス・アタッチメント5−1乃至5−nに接続する。
それは以下で述べる素子より成る。I/Oデータ・バス
269は16本のデータ線及び2本のパリテイ線より或
る双方向性バスである。
それは直接プログラム制御オペレーション中及ヒサイク
ル・スチール・オペレーション中I/Oデバイス4−1
乃至4 − nとの間をデータを転送するのに使用され
且つ割込み受付け中CPU1ヘデバイス・アドレス及び
割込みステータス・バイトを転送するのに使用される。
I/Oアドレス・バス270は16本の線より成る双方
向性バスであり、直接プログラム制御されるオぴレーシ
ョン中デバイス選択のための各デバイス・アドレス及び
I/OコマンドをI/Oデバイス4−1乃至4nへ送る
のに使用される。
それはサイクル・スチール・オペレーション中主記憶装
置アドレスをアクティブI/OデバイスからCPUIへ
転送するためにも使用される。
線2 6 7−1乃至267−10上のI/Oインター
フェース制御信号は一群の信号であり、それらは条件コ
ードをCPUIへ送るために、ステータスをI/Oデバ
イス4−1乃至4nへ送るために、I/Oオペレーショ
ンを選択し且つ制御するために、割込み及びサイクル・
スチール要求をCPU1へ送るために、割込み及びサイ
クル・スチールに対する受付けシーケンスをポールし且
つ制御するために、リセットを制御するために、そして
直接プログラム制御及びサイクル・スチール・オペレー
ションの適正なシーケンスを与えるために、使用される
デバイス・アタッチメント5−1乃至5 − nはI/
Oデバイス4−1乃至4nをI/Oインターフェース2
に接続し且つ制御する。
5−1のようなアタッチメントは4−1の如きI/0デ
バイスを複数個制御してもよい。
記憶装置一変換器インターフェース3は主記憶装置8を
アドレスしCPU1とリロケーション変換器9との間で
論理記憶アドレス及び実記憶アドレスを転送するための
アドレス・バス137及び主記憶装置8とCPUIとの
間及びリロケーション変換器9とCPUIとの間でデー
タを転送するためのバス138及び139より成る主記
憶装置バスを含んでいる。
インターフェース3はアクティブ・アドレス・キー、チ
ェック条件、及び同期化信号をCPU1とリロケーショ
ン変換器9との間で転送するためにCPU一変換器制御
信号バス127,136及び135も含んでいる。
内部記憶装置制御信号バス12は内部記憶領域14の物
理的選択、選択された領域における部分的なアレー選択
、及び内部記憶領域14のO乃至64キロバイトの範囲
をアクセスするための適正にシーケンスされた読取・書
込み制御信号を与える0 制御卓6はCPU1のデータ・フロー素子及び主記憶装
置8への広範囲なアクセスをオペレータ及びプログラマ
に与える。
それはCPU1のデータ・フローに組込まれたマイクロ
プログラム制御インターフェースによってCPU1に接
続される。
マイクロプログラム制御装置(第6図乃至第9図)第6
図及び第7図はROS制御装置のデータ・フロー及びフ
ォーマットを示す。
第8図はサイクル・タイミング及び第9図はROS20
1のマップである。
マイクロプログラム制御装置は各マシン・レベル命令が
必要なだけマイクロサイクルを使うという原則で動作す
る。
各マイクロサイクル中、1つのソースが双方向プロセッ
サ・バス5γヘゲートされそして1つ又は複数のデステ
イネーションがこのバス57からロードされてよい。
好適な実施例では、プロセッサ1は32ビットROS2
01を使うものと仮定する。
それらビットのうちの22個はバス204bを介してプ
ロセッサ1のデータ・フローを制御するのに使用される
各ROSワードの次アドレス(NA)フィールド(ビッ
ト22〜31)は下位桁10ビットをバス204aを介
してROSAR 1 93(第6図)へ供給する。
ROSAR 1 93の上位桁1ビットはセットROS
ARラツチ302及びANDゲート303を介してハー
ドウエア又はマイクロコードによって供給される。
バス204a及び204bは第2B図のバス204を構
成する。
命令実行の開始 第2B図に示されるようにROSには5個のハードウエ
ア強制エントリ・ロケーションがある。
これらエントリの各々はそのエントリを強制するための
1つ又は複数のハードウエア条件を有する。
ハードウエア強制エントリが生じない場合、命令の最初
の5ビットが第9図の右上方部分に示されるようなRO
Sエントリを強制する。
命令強制エントリの時第6図のセットROSARラツチ
302がセットされる。
この時点から命令の終了まで、ROSデータ・レジスタ
(ROSDR)202からの10ビット次アドレス(N
A)フィールド又は10ビット・リンク・レジスタ(R
OSLR)2 1 0又は211の一方の内容と共にセ
ットROSAR Oラツチ302は実行されるべき次の
ROSワードを指定する。
停止及び命令実行 各タイムCはROSアドレス・レジスタ (ROSAR)1 93をクロツクする。
各タイムAはROSDR202をクロツクする。
サブルーチン’f(SR1)ラツチ35がオンである時
を除いて各タイムAはROSARビット1−8をROS
リンク・レジスタ1 (ROSLR1 )2 1 0ビ
ット1−8ヘクロツクし、一方ROSARビット9−1
0は2ビット・インクレメンタ307を介してROSL
R 1のビット9−10へ送られる。
これの効果はROSAR 1 83の最後の2ビットが
ともにオンである場合(この場合ROSLR 2 1
0はROSAR−3の値にセットされる)を除いてRO
SAR+1の値にROSLR 1をセットすることであ
る。
これは第1レベル・サブルーチンからメインライン・コ
ードに戻されるリターン・アドレスである。
SR2ランチ306がオンである時を除いて各タイムA
はROSLR1 210に対して述べたのと全く同じ
値をROSLR2 211にクロツクする。
これは第2レベルのリターン・アドレスである。
SR1及びSR2ラツチ305及び306(それはそれ
ぞれROSI,R1 21 0及びROSLR2
211を凍結する)はタイムCの時にロックされる。
第1レベル・サブルーチン・コール サブルーチン・コールは特定の領域(ROSアドレスの
グループ)へのブランチより成る。
低いメイン・ラインからサブルーチン領域1へのブラン
チが行われる場合、サブルーチン・リターン・アドレス
はタイムAの終りにはROSLR1 2 1 0にある
タイムC中、SR1ラツチ305はセットされ、従って
ROSLA1 210におけるこの値を凍結する。
第1レベル・サブルーチンはサブルーチン領域2におけ
るアドレスを除いてROSアドレスの任意のものを使う
ことができる。
高いメイン・ライン領域からROS201以上の領域、
即らIIX XXXX XXXXへのブランチが行
われる場合、セットROSAROラツチとROSARビ
ット0との間のAND回路303がクロツクされ、低い
メイン・ラインからのブランチと全く同じサブルーチン
である01x xxxx××××へのブランチが生ず
る。
第1レベル・サブルーチン・エクシット 第1レベル・サブルーチンはハードウエア209によっ
て別個の機能として解読される03FのNA16進値に
よりメインライン・コードに戻る。
タイムCの時、SR1ラツチ305はリセットされ、R
OSAR 1 9 3はROSLA1 21 0から
ロードされ、従って前に凍結されたサブルーチン・リタ
ーン・アドレスでメインライン・コードを回復する。
コール・ロケーションが高いメインライン領域にあった
場合、セットROSAROラツチ302はオンのままで
あり且っROSARビット1へのセットはオフであるの
で、リターンは高いメインライン領域へ戻る。
最後のマイクロサイクル・デコードはサブルーチン・エ
クシットを強制する。
第2 L/ヘ/L/・サフルーチン・コールサブルーチ
ン領域2へのブランチが行われる場合、サブルーチン・
リターン・アドレスは第1レベル・サブルーチン・コー
ル{こ関して上述したのと同じ方法でSR2ラッチ30
6を介してROSLR2211に凍結される。
第2レベル・サブルーチンはROSアドレスのうちの任
意のものを使用することができる。
第2レベル・サブルーチン・エクシット 第2レベル・サブルーチンは03EのNA16進値によ
って第1レベル・サブルーチンに戻る。
タイムCの時、SR2ランチ306がリセットされ、R
OSAR193がROSLR2 211からロードさ
れ、従って前に凍結されたサブルーチン・リターン・ア
ドレスで第1レベル・サブルーチン・コードを回復する
最後のマイクロサイクル・デコードはサブルーチン・エ
クシットを強制する。
第2レベル・サブルーチンは03Fの次アドレスを使う
ことによってメインラインに言接に戻ることができる。
タイムCの時、ROSAR1 93がROSLRI
210からロードされ、従って前lこ凍結されたサブル
ーチン・リターン・アドレスでメインラインを回復する
タイムCの時、SR1及びSR2ラツチ305及び30
6の両方がリセットされ、従ってメインライン・コード
の唯1つのワードの後に新しいサブルーチン・コールを
可能にする。
サブルーチン領域2{こおける第1レベル・サブルーチ
ン メインライン・コードからサブルーチン領域2(NAビ
ット1,2 1.1)へ直接にブランチが行われる場
合、SA2ラツチ306がセットされ、ROSLR2
21 1が第2レベル・コールに関しては正確に凍結
される。
メインラインへのエクシット・バックは第2レベル・エ
クシットに関しては正確に次アドレス03Eである。
これは領域2におけるサブルーチンが第1レベル・サブ
ルーチンとして又は第2レベル・サブルーチンとして使
用されるのを可能にする。
リターンは以下のように要約される。
条件つきROSブランチ・ロジック152このプロセッ
サは4通り、8通り及び16通りの条件つきROSブラ
ンチを有する。
条件つきブランチが選択されその条件が遭遇される場合
、適正なNAビットがONに強制される。
NAビットの1つがすでにONである場合、その条件は
無配慮( don’ t care)であり、従ってす
べての4通りブランチが2通りブランチに細分され、1
6通りブランチが12通りブランチになる。
条件つきROSブランチに関するNAビットはビット5
−8である。
リターンのために使用されるNAビットはビット9−1
0であるので、これらは条件つきサブルーチン・リター
ンを行うために条件つきROSブランチと共に使用され
る。
例えば、ロケーション0001 1000010が第1
レベル・サブルーチン・コールを行いそしてそのサブル
ーチンが4通りの条件つきROSブランチ・リターンを
行った場合、4つのリターン・アドレスは、 0001 100001 1 00011010011 00011100011 00011110011 である。
ROSビット解読装置 制御解読装置はCPUIにおける種々のオペレーション
を制御する。
条件つきROSブランチはマシン状態に従ってマイクロ
コードが種々の位置へブランチするのを可能にする。
ソース・フィールドはどのソースがプロセッサ・バス5
7上にゲートされるべきかを指定する。
デステイネーション・フィールドはプロセッサ・バス5
7からロードされるべき1つ又は複数のデステイネーシ
ョンを指定する。
次アドレス・フィールドは次の実行されるべきROSワ
ードを指定する。
エミット・フィールド デステイネーションを指定するのみならずソースとして
プロセッサ・バス57にROSビット〇一15をエミッ
トする4つのテ゛ステイネーション解読装置がある。
プロセッサ・バス57へROSビット8−15をエミッ
トするように指定する12個のデステイネーション解読
装置がある。
これは8ビット・エミットと同じROSワードにおける
制御・条件つきブランチ・フィールドの使用を可能にす
る。
主記憶装置制御解読装置−ROSビット1315(ノッ
ト・エミット) オペレーション 正規の記憶装置リクエストはLIW,LW及びSWであ
る。
その他のすべてはこれらを修正する。共通のサブルーチ
ンを修正するために4つの修正記憶装置制御解読装置が
使用される。
SR,BR及びSBY解読装置はそれらが修正しようと
しているLW又はSWを含む共通サブルーチンの前に実
行される。
これら3つはLIWには影響を与えない。
BTR解読装置は共通サブルーチンの最後のワードにお
けるLIW,LW又はSWに続いて直ちに実行される。
SBYは後で記憶装置制御解読装置(LW及びSW)を
修正するのみならず後で結果表示器のクロツクを修正し
て16ビットの代りに8ビットに関してのみ動作するよ
うにする。
修正リクエストの優先順位 BRは最高優先順位であり、SR及びSBYをリセット
する。
SRは第2優先順位であり、SBYをリセットする。
SBYは最低優先順位である。
第10図乃至第14図は本発明による改良が意図されて
いる好適なプロセッサにおける種々のサイクル・タイミ
ングを説明するために示されたものである。
第10図はマシン・レベルの加算即値命令を遂行するた
めに実行される5個のマイクロ命令を示し、第11図は
その5個のマイクロ命令の実行中のソース、デステイネ
ーション及び記憶装置アクセスのタイミングを示してい
る。
第12図は主記憶装置制御のサイクル・タイミングを示
している。
第13図及び第14図はマシン・レベルの命令を実行す
るための各ルーチンの最終マイクロ命令として実行され
るマイクロ命令型のサイクル・タイミングを示している
サンプルされた条件の検出(又は検出の失敗)に依って
、第13図又は第14図のどちらかのタイミングが有効
6こされる。
割込み プロセッサ1の如き中央処理装置の効率的オペレーショ
ンはI/Oデバイスのサービス要求に対する迅速な応答
6こ依存する。
これは、現在のプロセッサ・オペレーションを停止して
デバイス・サービス・ルーチンにブランチし、デバイス
・サービスを処理した後その割込まれたオペレーション
を継続するために戻るという割込み概念により達せられ
る。
1つのプロセッサ1は多くのI/Oデバイス4−1乃至
4−17を制御することが出来、従って重要度の低いオ
ペレーションの前6こもつと重要なオペレーションを処
理するように割込み優先順位が設定される。
或るエラー又は例外条件(マシン・チェックのようなも
の)も割込みを生じさせる。
これらはクラス割込みと呼ばれ、レO割込みと同様の方
法で処理される。
割込み優先順位は4つの優先順位処理レベルによって設
定される。
優先順位シーケンスにおいてリストされるこれらのレベ
ルは0,L2及び3と番号づけられ、レベル0が最高優
先順位を有する。
割込みレベルはプログラム制御を介してI/Oデバイス
4−1乃至4 − nに割当てられる。
これはアプリケーションが変更する場合にデバイス優先
順位を再割当てするための融通性を与える。
4つの優先順位レベルの各々は第4図に示されるように
スタック80におけるレジスタLSBレベル0乃至LS
Bレベル3のそれ自身のセットを有する。
これらはアドレス・キー・レジスタ(AKR)、レベル
・ステータス・レジスタ(LSA)8個の汎用レジスタ
RO−R7及び命令アドレス・レジスタ(IAR)より
或る。
レベルに関する情報は割込みが生じた時自動的Oここれ
らスタック・ハードウエア・レジスタに保存される。
I/O割込み及びクラス割込みはサービス・ルーチンへ
の自動的ブランチを含んでいる。
主記憶装置8における一定のロケーションがブランチ・
アドレス即ち割込み処理中6こ参照されるポイントのた
めに予約されている。
割込みのハードウエア処理はサービス・ルーチンへの自
動的ブランチを含むものである。
プロセッサ1はブランチ情報のためOこ主記憶装置8に
おける予約された記憶領域を使用する。
その予約された領域は主記憶装置のアドレス0030で
始まる。
その領域全体の大きさは接続された割込みデバイス4−
1乃至4 − nの数に依る。
1ワード(2バイト)が各割込みデバイスに対して予約
されている。
クラス割込みに対して使用される記憶装置ロケーション
の各々はレベル・ステータス・ブロック(LSB)ポイ
ンタ及びスタート命令アドレス(SIA)を含み、レベ
ル・ステータス・ブロックはレベル・ステータス・ブロ
ックが貯蔵される主記憶装置9内の領域の第1アドレス
を指し、スタート命令アドレスはサービス・ルーチンの
第1命令を指す。
I/O割込みに対して使用される各記憶装置ワードはデ
バイス・データ・ブロックの第1ワードのアドレスであ
るデバイス・データ・ブロック(DDB)ポインタを持
っている。
このワードはサービス・ルーチンに対するスタート命令
アドレスを得るために使用される。
割込みマスク機構はこれら4つの優先順位レベルの上に
及び付加的なプログラム制御を与える。
システム及びレベル・マスクはサマリ・マスク及び割込
みレベル・マスク・レジスタ175によって制御される
デバイス・マスクは「準備I/01コマンドによって送
られる情報におけるデバイス・マスクによって制御され
る。
マスク・ビットの操作はすべてのレベル、特定のレベル
又は特定のデバイスに関する割込みを可能又は不能にす
ることができる。
前述のように4つの優先順位割込みレベルが存在する。
各I/Oデバイス4−1乃至4nはそのアフリケーショ
ンに依って1つのレベルを動的に割当てられる。
所与のレベルに関する割込みが受付けられる時、レベル
・エクシツl−(LEX)命令が実行されるか或いはよ
り高い優先順位割込みが受付けられるまでそのレベルは
アクティブのままである。
後者の場合、プロセッサ1はそのより高いレベルにスイ
ッチして実行(LEX命令を含む)を完了し、然る後割
込まれたレベルに自動的に戻る。
この自動復帰は他の高い優先順位割込みによって遅延可
能である。
現在アクティブのレベルにおいて割込み要求が未決であ
る場合、それは現在のプログラムによるLEX命令の実
行後まで受付けられない。
レベル・エクシット命令が実行される時に他の割込みレ
ベルで未決のものがない場合、プロセッサ1は待ち状態
に入る。
待ち状態では処理は行われないが、プロセッサは起こる
のが期待される割込みを受付けることができる。
すべての優先順位割込みの受付けの際にプロセッサはス
ーパーバイザ状態に入る。
優先順位割込みアルゴリズムは、 ■.サマリ・マスクはオン(可能)でなければならない
2.割込みをするレベルに対するマスク・ビット(割込
みレベル・マスク・レジスタ175)はオン(可能)で
なければならない。
3. I/O割込みに対しては、そのデバイスはその
デバイス・マスク・ビットがオン(可能)でなければな
らない。
4.割込み要求は未決の要求のうち最高の優先順位であ
り且つプロセッサの現レベルよりも高くなければならな
い。
5.プロセッサは停止状態6こあってはならない。
クラス割込みは優先順位レベルを変化させない。
それらは現在アクティブなレベルで処理される。
クラス割込みが生じた時プロセッサが待ち状態にある場
合、その割込みを処理するために優先順位レベル0が使
用される。
上記の割込み条件に加えて、前記特公昭5441 45
8号に開示されたLLSB命令及びSTLSB命令を使
ってプログラム制御の割込みスイッチが行われる。
この機構は能率的なソフトウエア・タスク管理を与える
ビット・フィールド命令 可変長のビット・フィールドを記憶装置にアドレス可能
な素子の境界に関係なく貯蔵し及びそのようなフィール
ドを記憶装置からレジスタにロードするという能力を得
るために4つの新しい命令を認識し且つ実行するための
手段を与えられる。
新しい命令のフォーマットは第16図に示される。
第16図に示されるように、好適な実施例においてはそ
れら命令はそれぞれ16ビットを有する。
最初の5ビット(ビットO−4)はオペレーション・コ
ードである。
これら4つの命令はすべて同じオペレーション・コード
(10110)を有する。
次の3ビット(ビット5−7)はビット・フィールドの
ソース(ストア命令が実行される時)又はデステイネー
ション(3つのロード命令0うらの1つを行う時)であ
るマシン・レジスタRを指定する。
次の2ビット(ビット8及び9)はその記憶装置内のア
ドレス可能な素子(例えば、バイト又はワード)のアド
レスを有するレジスタRBを指定する。
そのアドレスはベース・アドレスとして利用される。
その命令における次の2ビットFN(ビット10及び1
1)はこれら4つの新しい命令のうちのどの特定なもの
が実行されるべきかを示すためにこのシステムによって
解読される。
最後の4ビットL(ビット12−15)はビット・フィ
ールドの長さよりも1小さい2進数を含む。
従って、16ビットまでの長さのビット・フィールドが
収容可能である。
第16図に示される命令によって明示的に指定されるマ
シン・レジスタの他にもう1つのマシン・レジスタが重
要なものとなる。
この好適な実施例では、1つの特定な汎用レジスタ即ち
汎用レジスタ7(R7)がRBにより指定されたレジス
タの内容によりアドレスされた境界から符号づけられた
変位(ディスプレースメント)を保持するのにいつも利
用される。
R7におけるこの符号付き変位はそのレジスタにおける
上位13ビットにおける符号付きバイト変位及びそのレ
ジスクの下位3ビットにおけるビット変位(バイト境界
から)より成る。
これらの命令の1つを実行する場合、ビット・フィール
ドにおける第1ビットの有効ビット・アドレスはまずそ
のビット・フィールドが始まる記憶装置バイトを決定す
ることによって計算される。
これはRBにより指定されたレジスタの内容をR7の符
号付きバイト変位(上位13ビット)に加えることによ
って行われる。
この加算を行う場合、R7のバイト変位ビットは右揃え
されなければならない。
R1の元の下位3ビットは所望のビット・フィールドの
始めであるこのバイト内のビットを決定する。
本発明の好適な実施例に含まれるこれら4つの命令は3
つのロード命令及び1つのストア命令であり、それらロ
ード命令の各々は記憶装置から1つの指定されたレジス
タ{こビット・フィールドをロードするために利用され
、そしてストア命令は指定されたレジスタに含まれたビ
ット・フィールドを記憶装置の中Oこ貯蔵するために使
用される。
それら4つの命令は下記のような機能を有する。
ロード・フィールド(LF): FN=0 0指定され
たビット・フィールドが記憶装置からレジスタRにロー
ドされる。
このフィールドは上位桁ビットをOで満してレジスタR
で右揃えされる。
システム結果表示器はレジスタRにロードされた最終値
を反映するように変更される。
ロード・フィールド及びインクレメント(LF+):F
N=01 指定されたビット・フィールドがレジスタRにロードさ
れる。
こりビット・フィールドは上位桁ビットをOで満してレ
ジスタR内で右揃えされる。
L+1に等しい値がR7に加算されてR7の内容を置き
換え、従って次のビット・フィールドの始めを指すよう
にそれを更新する。
システム結果表示器はレジスタRにロードされた最終値
を反映するように変更される。
デクレメント及びロード・フィールド(LF−):FN
=10 L+1の値がR7から減じられモしてR7の内容を置き
換える。
そこで、指定されたビット・フィールドがレジスタR?
こロードされそして上位桁ビットをOで満してレジスタ
Rにおいて右揃えされる。
これは一連のビット・フィールドが右から左へ処理され
るのを可能にする。
システム結果表示器はレジスタRにロードされた最終値
を反映するように変更される。
ストア・フィールド(STF): FN=1 1レジス
タRの下位桁L+1ビットが指定された記憶装置フィー
ルドに他のビットを乱すことなく貯蔵される。
ロード・フィールド及びインクレメント(LF+1)命
令の使用例を次に述べる。
第17図は記憶装置の一部分であり、それは5つのビッ
ト・フィールドA,B,C,D及びEを有し、それらは
それぞれ7ビット、11ビット、8ビット、5ビット及
び7ビットを含んでいる。
第17図に示されるように、フィールドAにおける第1
ビットはバイトロケーション1000の境界から2ビッ
トだけずれている(即ち、フィールドAにおける第1ビ
ットは記憶装置の第1000番目のバイトにおける第3
ビットである)と仮定する。
更に、フィールトA , B , C , D及びEは
5個のマシン・レジスタR1,R2,R3,R4及びR
5にそれぞれロードされることが望まれていると仮定す
る。
これを達戒するためのコンピュータ・プログラムはまず
ベース・レジスタRB及びレジスタR7を初期設定する
必要があろう。
レジスタROがベース・レジスタとして使用されるもの
と仮定すると、初期設定はROに1000をロードする
命令及びR7に2をロードする命令より成るであろう(
R7の上位桁13ビットはこの場合0のバイト変位を示
している)。
初期設定の後、5個のレジスタR1乃至R5のローデイ
ングは次のような5つい命令によって容易に達或可能で
ある。
LF+ R=R1, RB=RO,L=6LP+
R=R2, RB=RO,L=10LP+ R=
R3, RB=RO,L=7LP+ R=R4,
RB=RO,L=4LF+− R=R5 , RB
=’[{O ,L=6これら5個の命令の実行後、レジ
スタR1乃至R5はそれぞれビット・フィールドA乃至
Eを口−ドされてしまったであろう。
そしてこれらビット・フィールドの各々は上位桁位置を
Oで満たされてそのレジスタにおいて右揃えされたであ
ろう。
R7は2進数101000(10進数40に等しい)を
含むようにインクレメントされたであろう。
そしてシステムは次のフィールドFを、それが関連すべ
き場合には、ロードする準備ができたであろう。
(フィールドFが関連のない場合、第5番目の命令はL
P十の代りOこLFとなったであろう)上記のように、
R7の内容はバイト変位を(上位桁13ビットにおいて
)及びビット変位を(下位桁3ビットにおいて)表示す
る。
この例では、R7における2進数101000は101
(10進数5に等しい)のバイト変位及びOOOのビッ
ト変位を表わす。
これはベース・レジスクRO/Lこおいて示されたアド
レスから5バイト変位されたビット・フィールドFの始
めを正確に指している。
勿論、この例はROが他の数値、例えば456、を初期
設定されモしてR7の上位桁(バイト変伽部分が100
0−ROの内容、即tE)544、に等しい値を初期設
定された場合も同様に動作したであろう。
本発明が遂次論理装置又はマイクロプログラミング、又
はそれらの組合せを持った所与Qつプロセッサにおいて
実施し得ることは当業者の認めるところであろう。
特定の実施態様は周囲のシステムに課せられた拘束に依
存するところが太きい。
従って、本発明の好適な実施例を説明する最善の方法は
ここに示した例示的な周囲のシステムにおいて上記の命
令を実行する場合に利用される基本的なステップに関す
る次のような説明を与えることであろう。
この説明は本発明を実施するために使用可能な遂次論理
装置の明確な定義を与える。
それは使用可能なマイクロ命令の明確な定義をも与える
具体的動作例 まず、上記の命令の1つであるロード命令がOPレジス
ク101(第2F図)に読出されており、そのアドレス
は作業領域(WA)レジスタ52(第2E図)にあるも
のと仮定する。
更に、レジスタRBとして使用されるレジスタ・スタッ
ク80(第2G図)の汎用レジスタ0(RO)にベース
・アドレスが初期設定され、ディスプレースメント・レ
ジスタとして使用されるそのレジスタ・スタック80の
汎用レジスタ7 ( R7 )Iこ前記ベース・アドレ
ス6こ対する所望のフィールドのバイト変位及びビット
変位が初期設定される。
又、デイステイネーション(ターゲット)レジスタRは
レジスタ・スタック80における汎用レジスクの1つと
する。
次に第18a図乃至第18c図及び第2A図乃至第2H
図を参照してロード命令による制御を説明する。
WAレジスタ52における命令アドレスは、この命令の
終了に続いて次の遂次命令をフエツチする場合に使用す
るために、ALU51(第2E図)で2だけインクレメ
ントされて記憶装置アドレス・レジスタ95(第2G図
)及び命令アドレス・レジスタ107(第2G図)に貯
蔵される(ブロック1参照)。
デイステイネーションの制御は記憶装置アドレス・レジ
スタ及び命令アドレス・レジスタの間で共通であるので
その更新された命令アドレスを両方に置く方が都合がよ
い。
e+ 3 11の値がWAレジスタ52及びカウンタ7
5(第2F図)に与えられる。
(この説明では、すべての数値は断り書きのない場合1
0進表示で表わされる。
)次の10個のブロック即ちブロック2〜11の機能は
命令のLフィールドにおいて指定された長さよりも1だ
け大きい値(こ等しい長さで右揃えされた1のビットの
マスクを形戒することである。
このために、Lフィールドの上位有効ビット即ちビット
12及び13のテストが行われ(ブロック2)モして1
の補数がYレジスタ53(第2E図)にエミットされる
即ち与えられる(ブロック3,4,5.6)。
然る後、Lフィールドの2つの下位有効ビット即ちビツ
h 14 , 15がテストされ(ブロック7)、Yレ
ジスタ53における値がlの補数のマスクを形成するに
適した量だけ左又は右にシフトされる(ブロック8,9
,10)。
そこで、そのマスクは反転され、スタック80における
TEMP(第4図)として示されたロケーションに貯蔵
される(ブロック11)。
OPレジスタの内容即ちLフィールドがWAレジスタ5
2に移され(ブロック12)そしてこれに続いて直ちに
OOOF(16進数)のエミット・フィールドがYレジ
スタ53に移される(ブロック13)。
そこでWA及びYレジスタがANDされその結果が記憶
装置データ・レジスタ70(第2E図)に置かれる(ブ
ロック14)。
フロック12.13及び14に示されたオペレーション
の効果はビット・フィールドを、その後の使用のために
、その命令から記憶装置データ・レジスタ70にそのま
まコピーすることである。
そこで、符号付きビット変位を含む汎用レジスク7 (
. R7 )がフエツチされWAレジスタ52へ移動さ
れる(ブロック15)。
同じサイクルにおいてYレジスタ53の内容が1位置右
ヘシフトされるので、そのサイクルの終りにおけるその
値は0007となる。
そこで、これら2つの値がANDされ、レジスタ・スタ
ック80内のTEMPIとして表わされたロケーション
に書込まれる(ブロック16)。
これの終了時にはTEMP1はビット変位の下位桁3ビ
ットを含んでおり、そしてその後その選択されたビット
・フィールドに対する開始ビット番号を表わすために使
用される。
ブロック17において示されるように、OPレジスタ1
01のビット10及び11のテストが行われる。
このフィールドにおけるOOの値は゛ロード・フィール
ド″命令に対応し、01は゛ロード・フィールド及びイ
ンクレメント″命令に対応する。
10及び11はそれぞれ゛デクレメント及びロード・フ
ィールド″及び“ストア・フィールド″命令に対応する
ブロック17において01(ロード・フィールド及びイ
ンクレメント)が得られると、システムは記憶装置デー
タ・レジスタ70に前に貯蔵されたビット・フィールド
の長さを(ブロック14参照)Yレジスタ53へ供給し
(ブロック18)、その値とWAレジスタ52における
ビット変位値と゛1′”とを加算し、その結果は次のロ
ード・フィールド命令を介して処理されるべき次のビツ
ド・フィールドを指定する。
これの結果はレジスク・スタックの現在のレベルに対す
るレジスタ7の位置に置かれる(ブロック19)。
ブロック18及び19により実行されたステップは符号
付きビット変位の値を+1だけインクレメントさせてビ
ット・ポインタの自動的更新を行ったことになる。
下記のステップは゛ロード・フィールド″及び゛′ロー
ド・フィールド及びインクレメント“の両方に共通であ
る。
そこで、システムはそのフィールドの第1ビットを含む
ロケーションのバイト変位値を設定する。
ビット変位を含んだWAレジスタ52は右へ3シフトさ
れて(ブロック20)ビット・アドレス部分を取除き、
バイト・アドレスを残す。
同じサイクルにおいてRB即ち汎用レジスタ0からのベ
ース・アドレスがレジスタ・スタックからフエツチされ
Yレジスタ53に移動される。
ブロック21に示されるように、WA及びYレジスクが
加算され、その結果が記憶装置アドレス・レジスタ95
に置かれる。
従って、そのアドレス・レジスクは選択されたフィール
ドの第1ビットを有するバイトの有効バイト・アドレス
を含む。
そこで記憶装置データ・レジスタ70がWAレジスタ5
2にコピーされる(ブロック22)。
(すべての記憶装置サイクルにおいて記憶装置データ・
レジスタは記憶装置データにセットされるのでそれまで
保持していたデータをWAレジスタ52にコピーしなけ
ればならない。
)第1バイトを得るためにこのサイクルでは主記憶装置
の読出しが行われる。
ビット番号がレジスタ・スタック80におけるTEMP
1から検索され、Yレジスタ53に移動される(ブロッ
ク23)。
(レジスタ・スタックへの参照は、汎用レジスタ、レベ
ル・ステータス・レジスタ、アドし・ス・キー・レジス
タを含み且つ内部作業領域として使用されるがプログラ
マには直接にアクセスし得ないTEMP及びTEMPI
の如き内部レジスタをも含む部分を参照することに注意
されたい。
)開始ビット番号が今やYレジスタ53に存在する。
それを長さに加え(ブロック24)、然る後その和から
8の定数を減算する(フロック25及び26)。
このオペレーションの目的は、開始ビット位置からのビ
ット・フィールドの長さが主記憶装置の次のバイトへの
溢れを生じさせるようなもの即ちバイトの境界を越える
ものであるかどうかを決定することである。
このテストはブロック27において示されるようにWA
レジスタ52の内容を反転しカウンタ75に供給してそ
の値が負であるかどうかをテストするものである。
ブロック26において示された減算の結果が負である場
合、それはビット・フィールドが次のバイト位置まで及
んでいないことを意味し、従って記憶装置データ・レジ
スタ70の内容はYレジスタ53へ移動される(ブロッ
ク28)。
記憶装置データ・レジスタからYレジスタに移されたバ
イトは、ビット・フィールドがこのバイトの境界を越え
ていないことが決定されているので、この場合ビット・
フイルードの始めと終りとを含んでいる。
そこでYレジスタが右シフトされ、カウンタ75はそれ
がOになるまで各シフト毎にデクレメントされる。
(そのカウンタはブロック27で示されるようにWAレ
ジスタの反転値を設定されていた。
)カウンタが0になった時、そのバイトは適正に右まで
シフトされてしまい、Yレジスタ53の右側バイト位置
にあるであろう。
そこで、命令アドレス・レジスタの内容が記憶装置アド
レス・レジスタ95に転送され、次の逐次命令のアクセ
シングに備える(ブロック30)。
ブロック31に示されるように、ブロック2乃至11で
設定されたマスクを含むTEMPの値がWAレジスタ5
2にロードされ、そして次の逐次命令を(好ましくは、
最適のパフォーマンスを得るためにこの命令の実行の終
了と重畳して)フエツチするために主記憶装置の読出し
が行われる。
そこでWA及びYレジスタの内容がANDされてレジス
タ・スタック80におけるターゲット・レジスタ即ちレ
ジスタRの中におかれる(ブロック32)。
これの効果はビット・フィールド・パラメータによって
指定されたようにYレジスタ53におけるバイトの適正
なビットをRフィールドにより指定されたレジスタの中
に置くことである。
これによってシステムは命令実行を完了する。
ブロック27に示されたテストが負でなかった場合、そ
のビット・フィールドは次のバイトにまできたがり、実
際には第3バイトにまたがることもある。
このサイクルにおいて、Yレジスタにあった値e+ 8
ttの内容が再び長さ十ビット番号の和から減算され
(ブロック34)。
そのビット・フィールド長が更に1バイトまたがるか或
いは更に2バイトまたがるかを決定する。
減算の結果は反転され、そして負に関するテストが行わ
れる(ブロック35)。
結果が負である(即ち、ビット・フィールドが2バイト
を占める)場合、第1バイトのために使用された記憶装
置アドレスはWAレジスク52へ移される。
ブロック37に示されるように、記憶装置データ・レジ
スタ70(ブロック22において記憶装置から読取られ
た第1バイトを含んでいる)がYレジスタ53にロード
される。
そこで、第1バイトに対する前の記憶装置アドレスが1
だけインクレメントされて記憶装置アドレス・レジスタ
95に戻され、そして主記憶装置に対する読取り要求が
行われる(ブロック38)。
Yレジスタ53は8位置左ヘシフトされ前のバイト及び
現在のバイトのその後の結合を可能にする。
この時までにそのバイトは記憶装置データ・レジスタ7
0の下位桁バイト位置に読込まれており、それはWAレ
ジスタ52にコピーされる(ブロック40)。
そこでWAレジスタ52はYレジスタ53とORされ、
その結果はYレジスタ53に置かれる(ブロック41)
これはYレジスタ53への適当な2バイトとビット0−
7を占める上位バイト及びビット8−15を占める下位
バイトとを結合させるものである。
今や実行ステップは前述のブロック29に続く。
ビット・フィールドが3個のバイト上に及ぶ場合、負に
関するテスト(ブロック35)に続いてWAレジスタ5
2からYレジスタ53における8の値を減算してその結
果をWAレジスタ52に入れること及びシフトされるべ
きビット位置の適正な数即ちWAレジスタの反転値をカ
ウンタに置くことが行われる(ブロック43)。
記憶装置アドレス・レジスタの内容がWAレジスタ52
に入れられる(ブロック44)。
記憶装置データ・レジスタ70は主記憶装置からフエツ
チされた第1バイトを既に持っており、それがTEMP
1に貯蔵される(ブロック45)。
WAレジスタの内容が1だけインクレメントされて再び
WAレジスタに入れられ且つ記憶装置アドレス・レジス
タSARにも入れられて記憶装置から第2バイトが読取
られる(ブロック46)。
記憶装置から読取られたデータが記憶装置データ・レジ
スタSDRからYレジスタ53へ移される(ブロック4
7)。
従って、Yレジスタ53はそのビット・フィールドと関
連ある第2バイトを持つ。
WAレジスタ(そのバイトの記憶装置アドレスを持って
いた)は1だけインクレメントされ、第3バイトをアド
レスするために記憶装置アドレス・レジスタに置かれる
(ブロック48)。
主記憶装置がこのサイクルにおいて読出される。
そこでYレジスタが左へ″8″シフトされる(ブロック
49)。
主記憶装置から読出された最下位バイトが記憶装置デー
タ・レジスタ70からWAレジスタ52へ移される(ブ
ロック50)。
第2及び第3バイトがORされ、従って結合される(ブ
ロック51)。
そこで最上位バイトがスタックにおけるTEMP1から
検索され、WAレジスタ52に置かれる(ブロック52
)。
然る後ブロック29に戻って、WA及びYレジスタの値
全体が、カウンタがOになるまで、右シフトされそして
命令の終了は前と同様に進行する。
0ロ一ド・フィールド”′及び゛゜ロード・フィールド
及びインクレメント″の特別の実施に関する前述の詳細
な説明はこの命令の一部分として含まれ得る他の命令を
実施する方法を正しゃ当業者に教示するに十分なもので
ある。
従って、”デクレメント及びロード・フィールド″又は
”ストア・フィールド″について同様に詳細な説明を行
う必要はないであろう。
本発明を具体化する場合に前述の好適な実施例に対する
多くの変更を行うことができることは当業者の認めると
ころであろう。
この変更は主として2つの要因、即ち(1)本発明が実
施されるシステムによって課せられた拘束及び(2)所
望のアプリケーションに関する特定の要件、に依存して
いる。
例えば、ビット・フィールドの最大許容長は16以外の
ものでもよい。
命令における5ビットがLの指定のために利用できる場
合、32ビットまでのフィールドが処理可能である。
わずか3個の命令ビットしかLを指定するのに利用でき
ない場合、8個のビットが最犬のフィールド長となるで
あろう。
更に、変位レジスタ(好適な実施例ではR7)が予め指
定されるということは必ずしも本質的なことではない。
周辺システムの構戒がそれを許す場合、プログラマは変
位レジスタを指定してもよい0 別の方法として、デステイネーション・レジスタR及び
(又は)ベース・レジスタRBはプログラマにより選択
可能となる代りに予め指定されてもよい。
しかし、大多数のアプリケーションでは、プログラマが
少なくともデステイネーション(ソース)・レジスタR
を指定するようにオプションを与えられない場合、かな
りの隔通性が損われるであろう。
好適な実施例では、4つの命令の各々は、同じオペレー
ション・コードを持ちそれ以上の定義はフィールドFN
によって与えるものとして示された、本発明がこの特定
の態様で実施されるかどうか、或いは2つ又はそれ以上
の全く別個のオペレーション・コードがそれら命令のた
めに使用されるかどうかは一般に周辺システムの構成に
よって決定されるであろう。
3つの相異なるロード命令及び唯1つのストア命令がこ
のとおりに存在することも本質的なことではない。
3つより多くの又は3つより少ないロード命令が存在し
てもよく、同様に種々のストア命令が存在してもよい。
どの形のロード命令及びストア命令が実施されるべきか
の決定は主としてそのシステムの意図された用途に依存
するであろつQ
【図面の簡単な説明】
第1図は本発明を効果的に組込み得るデータ処理システ
ムのブロック図、第2図は第2A図乃至第2H図の配置
を示すものでありそれらは第1図のプロセッサの好適な
形式の主要素子及びデータ・フローを説明する図、第3
図はプロセッサ・タスク管理システムの主要素子の概略
図、第4図はスタック・レジスタの好適な形のマップを
示す図、第5図はプロセッサにおいて利用される種々な
レベルのレジスタの相互接続及び割込み機構を示す概略
図、第6図は第2A図乃至第2H図に示されたプロセッ
サの読取専用記憶装置(ROS)制御装置の概略図、第
7図はマイクロプログラム命令の好適なフォーマットを
示す図、第8図はマイクロプログラム実行のための基本
的タイミング信号を示す図、第9図はプロセッサの読取
専用記憶装置における種々の領域のマップを示す図、第
10図及び第11図はそれぞれ例示的なマシン・レベル
命令゛即値加算″を逐行するために実行されるマイクロ
プログラム・ルーチン及びその即値加算ルーチンのため
の基本的タイミング・サイクルを説明する図、第12図
は記憶装置サイクルのタイミングを示す図、第13図及
び第14図は各マシン・レベル実行ルーチンにおける最
後のマイクロプログラム・ワードの実行を説明するタイ
ミング図、第15図は本発明の好適な実施例において利
用される或る条件付きブランチ・ロジックを説明する図
、第16図は本発明によって利用される4つの新しい命
令のフォーマットを示す図、第17図はパックされたデ
ータ内の可変長ビット・フィールドをアクセスするため
の”ロード・フィールド及びインクレメント″命令の使
用例を示す図、第18図はデータ処理システムにおいて
本発明の好適な実施例を具体化するために使用し得るマ
イクロコードを示す図である。

Claims (1)

  1. 【特許請求の範囲】 1 命令によって指定された記憶装置における可変長の
    ビット・フィールドをデステイネーション・レジスタR
    にロードするための方法であって、該記憶装置における
    アドレス可能なバイトのベース・アドレスを持つよっベ
    ース・レジスタRBを初期設定し、 前記ベース・アドレスに対する前記ビット・フィールド
    の第1ビットを含んだアドレス可能なバイトの変位を表
    わすバイト変位及び前記第1ビットを含んだアドレス可
    能なバイトに対する前記第1ビットの変位を表わすビッ
    ト変位を持つようディスプレースメント・レジスタR7
    を初期設定し、ロード命令を表わすコードと、前記ベー
    ス・レジスタとして使用されるべき第1レジスタの標識
    と、前記デステイネーション・レジスタRとして使用さ
    れるべき第2レジスタの標識と、該ビットフィールドの
    長さを表わすビット長データとを含んだ命令を命令レジ
    スタに読出し、 前記ベース・レジスタの内容に前記バイト変位を加算し
    て得られたバイト・アドレスに従って前記記憶装置から
    データ・バイトを読出し、前記ビット長データ及び前記
    ディスプレースメント・レジスタにおける前記ビント変
    位を加算して得られた値とアドレス可能なバイトの境界
    を表わす値との差を算出し、 前記差に基づいて前記ビット・フィールドが前記バイト
    の境界を越えることが判定された時のみ、前記加算して
    得られた値以上の値を表わすアドレス可能なバイトの境
    界までのデータ・バイトを読出し、 前記読出したすべてのデータ・バイトを前記差に相当す
    る量だけ右にシフトし、 前記シフトによって得られたデータ・バイトを前記第2
    レジスタに転送する ステップより成る可変長ビット・フィールドをロードす
    る方法。
JP52145769A 1976-12-28 1977-12-06 可変長フィ−ルドのアクセス方法 Expired JPS5847738B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/755,105 US4103329A (en) 1976-12-28 1976-12-28 Data processing system with improved bit field handling

Publications (2)

Publication Number Publication Date
JPS5383537A JPS5383537A (en) 1978-07-24
JPS5847738B2 true JPS5847738B2 (ja) 1983-10-24

Family

ID=25037752

Family Applications (1)

Application Number Title Priority Date Filing Date
JP52145769A Expired JPS5847738B2 (ja) 1976-12-28 1977-12-06 可変長フィ−ルドのアクセス方法

Country Status (8)

Country Link
US (1) US4103329A (ja)
JP (1) JPS5847738B2 (ja)
BR (1) BR7708707A (ja)
DE (1) DE2756762A1 (ja)
ES (1) ES464418A1 (ja)
FR (1) FR2376460A1 (ja)
GB (1) GB1593053A (ja)
IT (1) IT1114166B (ja)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
US4321665A (en) * 1979-01-31 1982-03-23 Honeywell Information Systems Inc. Data processing system having centralized data alignment for I/O controllers
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
US4388682A (en) * 1979-09-04 1983-06-14 Raytheon Company Microprogrammable instruction translator
JPS5652454A (en) * 1979-10-05 1981-05-11 Hitachi Ltd Input/output control method of variable word length memory
US4287563A (en) * 1979-11-13 1981-09-01 Motorola, Inc. Versatile microprocessor bus interface
US4342081A (en) * 1979-12-12 1982-07-27 Honeywell Information Systems Inc. Tape device adapter
US4520439A (en) * 1981-01-05 1985-05-28 Sperry Corporation Variable field partial write data merge
US4574349A (en) * 1981-03-30 1986-03-04 International Business Machines Corp. Apparatus for addressing a larger number of instruction addressable central processor registers than can be identified by a program instruction
JPS57201940A (en) * 1981-06-04 1982-12-10 Fujitsu Ltd Assignment system for memory digit
US4433377A (en) * 1981-06-29 1984-02-21 Eustis Mary S Data processing with format varying
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
JPS61502566A (ja) * 1984-06-27 1986-11-06 モトロ−ラ・インコ−ポレ−テツド ビツト・フイ−ルド命令の方法と装置
US6552730B1 (en) 1984-10-05 2003-04-22 Hitachi, Ltd. Method and apparatus for bit operational process
JP2914966B2 (ja) * 1984-10-05 1999-07-05 株式会社日立製作所 画像処理方法および装置
US5034900A (en) * 1984-10-05 1991-07-23 Hitachi, Ltd. Method and apparatus for bit operational process
US5265204A (en) * 1984-10-05 1993-11-23 Hitachi, Ltd. Method and apparatus for bit operational process
US4760515A (en) * 1985-10-28 1988-07-26 International Business Machines Corporation Arbitration apparatus for determining priority of access to a shared bus on a rotating priority basis
DE3539129A1 (de) * 1985-11-05 1987-05-14 Kloeckner Moeller Elektrizit Schaltung zur aufbereitung externer daten fuer mikroprozessoren
US5210835A (en) * 1986-08-27 1993-05-11 Ken Sakamura Data processing system having apparatus for increasing the execution speed of bit field instructions
JP2520882B2 (ja) * 1986-08-27 1996-07-31 株式会社日立製作所 デ−タ処理装置およびデ−タ処理方法
JPS63170736A (ja) * 1987-01-09 1988-07-14 Toshiba Corp マイクロプロセツサ
DE3837847A1 (de) * 1988-02-19 1989-08-31 Hercules Computer Technology N Einrichtung und verfahren zum verschieben eines bitfoermigen datenblocks
US4977497A (en) * 1988-03-23 1990-12-11 Mitsubishi Denki Kabushiki Kaisha Data processor
JPH02306339A (ja) * 1989-02-09 1990-12-19 Nec Corp ビット・アドレシング方式
EP0382246A3 (en) * 1989-02-09 1991-09-11 Nec Corporation Bit addressing system
US5121354A (en) * 1990-03-12 1992-06-09 International Business Machines Corp. Random access memory with access on bit boundaries
JPH06180653A (ja) * 1992-10-02 1994-06-28 Hudson Soft Co Ltd 割り込み処理方法および装置
US5809524A (en) * 1994-01-04 1998-09-15 Intel Corporation Method and apparatus for cache memory replacement line identification
US6061783A (en) * 1996-11-13 2000-05-09 Nortel Networks Corporation Method and apparatus for manipulation of bit fields directly in a memory source
JP3110404B2 (ja) * 1998-11-18 2000-11-20 甲府日本電気株式会社 マイクロプロセッサ装置及びそのソフトウェア命令高速化方法並びにその制御プログラムを記録した記録媒体
US9176847B2 (en) * 2013-05-22 2015-11-03 International Business Machines Corporation Managing diagnostic information

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3401375A (en) * 1965-10-01 1968-09-10 Digital Equipment Corp Apparatus for performing character operations
NL6815506A (ja) * 1968-10-31 1970-05-04
BE758815A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Systeme de traitement d'information presentant des moyens pour la preparation dynamique d'adresses de memoire
US3624616A (en) * 1969-12-04 1971-11-30 Burroughs Corp Dynamic allocation of multidimensional array memory space
BE752149A (nl) * 1970-06-18 1970-12-18 Bell Telephone Mfg Gegevens verwerkend systeem,

Also Published As

Publication number Publication date
US4103329A (en) 1978-07-25
ES464418A1 (es) 1978-09-01
GB1593053A (en) 1981-07-15
DE2756762A1 (de) 1978-07-06
FR2376460A1 (fr) 1978-07-28
IT1114166B (it) 1986-01-27
BR7708707A (pt) 1979-07-24
FR2376460B1 (ja) 1980-08-22
JPS5383537A (en) 1978-07-24

Similar Documents

Publication Publication Date Title
JPS5847738B2 (ja) 可変長フィ−ルドのアクセス方法
US4047161A (en) Task management apparatus
US3983539A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4016545A (en) Plural memory controller apparatus
US4514803A (en) Methods for partitioning mainframe instruction sets to implement microprocessor based emulation thereof
EP0019392B1 (en) Instruction register sequence decoder for microprogrammed data processor and method
US3983541A (en) Polymorphic programmable units employing plural levels of phased sub-instruction sets
US4296470A (en) Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
EP0138419B1 (en) Central processing unit for a digital computer
US4395758A (en) Accelerator processor for a data processing system
US3886523A (en) Micro program data processor having parallel instruction flow streams for plural levels of sub instruction sets
US4558411A (en) Polymorphic programmable units employing plural levels of sub-instruction sets
US4229801A (en) Floating point processor having concurrent exponent/mantissa operation
US3585605A (en) Associative memory data processor
US5249280A (en) Microcomputer having a memory bank switching apparatus for accessing a selected memory bank in an external memory
US4434462A (en) Off-chip access for psuedo-microprogramming in microprocessor
EP0011412B1 (en) Bipartite control store for microprogrammed data processor
US4312034A (en) ALU and Condition code control unit for data processor
JPS5831014B2 (ja) 命令先取り装置
JPS5935056B2 (ja) デ−タ処理装置
US4279016A (en) Instruction pre-fetch microprocessor interrupt system
US3786434A (en) Full capacity small size microprogrammed control unit
US4346437A (en) Microcomputer using a double opcode instruction
NO324825B1 (no) Atte-bit mikroprosessor med RISC-arkitektur
US4491908A (en) Microprogrammed control of extended integer and commercial instruction processor instructions through use of a data type field in a central processor unit