JPH0746316B2 - デイジタル・デ−タ処理システム - Google Patents

デイジタル・デ−タ処理システム

Info

Publication number
JPH0746316B2
JPH0746316B2 JP57085095A JP8509582A JPH0746316B2 JP H0746316 B2 JPH0746316 B2 JP H0746316B2 JP 57085095 A JP57085095 A JP 57085095A JP 8509582 A JP8509582 A JP 8509582A JP H0746316 B2 JPH0746316 B2 JP H0746316B2
Authority
JP
Japan
Prior art keywords
data
bus
procedure
information
execution
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 - Lifetime
Application number
JP57085095A
Other languages
English (en)
Other versions
JPS57197652A (en
Inventor
ジヨン・ケイ・ア−ルストロ−ム
ブレツト・エル・バツチマン
リチヤ−ド・エイ・ベルガ−ド
デ−ビツド・エツチ・バ−ンスタイン
リチヤ−ド・グレン・ブラツト
ジエラルド・エフ・クランシ−
エドワ−ド・エス・ガブリン
ロナルド・ハンス・グルナ−
ロ−レンス・エツチ・カツツ
クレイグ・ジエ−ムズ・マンデイ
マイケル・エス・リツチモンド
スチ−ブン・アイ・シユレイマ−
スチ−ブン・ジエイ・ウオラツチ
ウオルタ−・エイ・ウオラツチ・ジユニア−
ダグラス・エム・ウエ−ルズ
ト−マス・エム・ジヨ−ンズ
ジヨン・エフ・ピラツト
デ−ビツド・エル・ハウズマン
デ−ビツド・エイ・フア−バ−
Original Assignee
デ−タ−・ゼネラル・コ−ポレ−シヨン
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
Priority claimed from US06/266,521 external-priority patent/US4517642A/en
Priority claimed from US06/266,408 external-priority patent/US4498131A/en
Priority claimed from US06/266,401 external-priority patent/US4532586A/en
Priority claimed from US06/266,414 external-priority patent/US4513368A/en
Priority claimed from US06/266,403 external-priority patent/US4493023A/en
Priority claimed from US06/266,413 external-priority patent/US4498132A/en
Application filed by デ−タ−・ゼネラル・コ−ポレ−シヨン filed Critical デ−タ−・ゼネラル・コ−ポレ−シヨン
Publication of JPS57197652A publication Critical patent/JPS57197652A/ja
Publication of JPH0746316B2 publication Critical patent/JPH0746316B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318505Test of Modular systems, e.g. Wafers, MCM's
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/35Indirect addressing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/49926Division by zero

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)
  • Devices For Executing Special Programs (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】 本発明は、デイジタル・データ処理システムに関し、特
にデータ処理回路網において使用するのに適し、かつ簡
単な柔軟性に富んだユーザ・インターフエースおよび柔
軟性に富む多重レベルを有する内部機構を備えた多重プ
ロセス型デイジタルデータ処理システムに関する。
データ処理システムの発展における一般的に傾向は、相
互に結合されたデータ処理回路網における使用に適する
システムに対するものであつた。別の傾向は、システム
の内部構造が柔軟性に富みユーザから保護されかつユー
ザの側からは有効に認識できず、かつまたユーザがシス
テムに対する柔軟性のある簡単なインターフエースが与
えられるデータ処理システムに対するものであつた。
このようにデータ処理システムの実現に影響を及ぼすい
くつかの問題および短所が従来技術においては繰返えし
て発現し、従来技術の諸問題および制約には下記の主題
が含まれている。
最初に、従来技術のデータ処理システムは1つの回路網
に連結された膨大な数のデータ処理システムにより共用
するに適したシステム的なアドレス指定システムを提供
するものではなかつた。従来技術のアドレス指定システ
ムは、充分に大きなアドレス空間を持たず、また情報が
恒久的かつ一義的に識別され得なかつた。従来のアドレ
ス指定システムは、情報の形式即ちフオーマツトに関し
て判定ならびに識別を行なわなかつた。更に、従来のア
ドレス指定システムは特定のデータ処理システムの物理
的な構造を反映するものであつた。即ち、このアドレス
指定システムは、ある特定のコンピュータが、例えば
8、16、32、64または128ビツトの機械であるかどうか
に依存してきた。従来のデータ処理システムが処理シス
テムの実際の物理的構造がユーザーにとつて明らかであ
るアドレス指定機構を内蔵していたため、ユーザが実施
し得る諸操作はアドレス指定機構によつて制約されるも
のであつた。更にまた、従来の処理システムは、固定さ
れたワード長の機械として作動し、更にユーザの操作を
制約するものであつた。
従来のデータ処理システムは、あるユーザが別のユーザ
のデータおよびプログラムを許可なく使用することを禁
止する有効な機密保護機構を備えていなかつた。このよ
うな機密保護機構は、情報に対するアクセスを要求する
ユーザあるいは情報の一義的かつ確実な識別を可能にす
るものではなく、あるいは操作において充分に柔軟性を
有する機構でもなかつた。更にまた、アクセスの権利は
情報に関してではなくむしろユーザに関するものであつ
て、そのためアクセス権の管理は難しかつた。最後に、
従来技術の機密保護機構は「トロイの木馬の論議」の適
用を許すものであつた。即ちある情報に対するアクセス
権を持たないユーザがかかるアクセス権を有する別のユ
ーザまたは手順を介してかかる情報に対するアクセスを
行なうことができたのである。
従来技術の更に別の問題は、データ処理システムに対す
る簡単かつ柔軟性に富んだインターフエースのユーザの
インターフエースの提供の問題である。あるデータ処理
システムに対するユーザ・インターフエースの性格は、
これによりユーザがユーザのプログラムのオペランドお
よび手順を照合しかつこれを識別する手段によつて、ま
たそのシステムの命令構造によつて部分的に決定される
ものである。オペライドおよび手順は、慣例的に単にユ
ーザのプログラム以内での基準点および妥当性を有する
ある形態の論理アドレスと呼ばれかつこれにより識別さ
れる。これらのアドレスは、あるプログラムが実行され
る毎にあるデータ処理システム内の論理アドレスおよび
物理アドレスに翻訳されねばならず、また従つてしばし
ばあるプログラムの実行中に再び翻訳または再生されな
ければならない。加えて、ユーザはデータ・フオーマツ
トおよびハンドリングに関する特定の命令を提供しなけ
ればならない。かかるオペランドまたは手順に対する照
合は、典型的には、ユーザ・プログラムの命令ストリー
ムの大部分からなり、構築のため多くの機械の翻訳およ
び操作を必要とする。これにより、従来のシステムに対
するユーザのインターフエースが複雑化し、プログラム
の実行速度は低下するが、これはオペランドおよび手順
に関するプログラム照合の複雑なためである。
データ処理システムの命令構造は、システムの諸操作の
制御のための諸命令と、これらの命令が実行される手段
の双方を含む。従来のデータ処理システムは、1つか2
つのユーザ言語、例えば、FORTRANまたはCOBOLにおける
諸命令を有効に実行するように構成されている。他のど
んな言語で書かれたプログラムでも有効に実行され得な
い。更に、ユーザはしばしば、ある特定の従来のシステ
ムが使用を意図される特定の1つまたは2つの言語以外
のどんな高水準の言語を用いる時も困難なプログラミン
グ上の諸問題に遭遇する。
従来のデータ処理システムにおける更に別の問題は、シ
ステムの内部機構、例えばスタツク機構および内部制御
機構をユーザによる偶発的あるいは意図的な妨害から保
護する問題である。
最後に、従来技術のデータ処理システムの内部構造およ
び作用は構造および作用において柔軟性または適合性を
持たなかつた。即ち、従来のシステムの内部構造の構成
および作用は、特定のデータ処理要件に見合うようにシ
ステムを容易に変更もしくは適合させることは許されな
かつた。このような変更には、特殊な目的のサブシステ
ム、例えば、浮動小数点またはアレー処理装置の加除の
如き内部メモリーの容量の変更を含み得る。更にこのよ
うな変更は、システムとのユーザのインターフエースを
大幅に有効化するものであつた。理想的には、データ処
理システムの実際の物理的構造および作用はユーザ・イ
ンターフエースにおいては明らかであるべきではない。
本発明は、前述の諸問題および制約を解決するデータ処
理システムの改良ならびにその諸特徴を提供するもので
ある。
本発明は、相互に結合されたデータ処理回路網において
使用するに適したデータ処理システムの構造ならびに作
用に関するものであるが、その内部構造は柔軟性に富
み、ユーザから保護され、ユーザからは充分に不可視で
あり、かつユーザに対する柔軟性に富みかつ簡単なイン
ターフエースを提供するものである。このデータ処理シ
ステムはシステムにおける使用のため、あるいはシステ
ムの操作により生成される全ての情報の恒久的かつ一義
的な識別を可能にするアドレス指定機構、およびかかる
全てのデータ処理システムに対するアクセスが可能であ
りかつかかる全てのデータ処理システムに対して共通の
非常に大きなアドレス空間を提供するものである。この
アドレス指定機構は、システムの物理的形態からは独立
的でありかつ1つのアドレスを用いてビツト細分レベル
でかつ情報の形式即ちフオーマツトに関して情報を完全
に識別することを可能にするアドレスを提供する。本発
明は、更に、種々のアクセス権が個々の情報と関連する
保護機構の提供にある。情報ならびに情報に対するアク
セスを要求するユーザは、システムのアドレス機構によ
り一義的に識別される。本保護機構はまたトロイの木馬
的論議の適用を防止する。また本発明は、高水準のユー
ザ言後命令が特定の適用符号に符号化され統一された中
間レベルの命令に変換されて複数のユーザ言後に対する
実行の等しい容易性を提供する命令構造を提供するもの
である。別の特徴は、ユーザから明らかな内部機構によ
つて各アドレスに変換される統一されたフオーマツト名
によりユーザのプログラムにおいてオペランドが照合さ
れるオペランド照合機構の提供にある。本発明は更に、
システムの内部機構をユーザによる妨害から保護する多
重レベルの制御およびスタツク機構を提供するものであ
る。更に他の特徴は、多くの同時の操作の実行が可能で
ありかつ複数の別個の独立するプロセツサからなる柔軟
性に富んだ内部構造を有するデータ処理システムにあ
る。かかる独立した各プロセツサは別のマイクロ命令制
御装置、および中央部の通信ならびに記憶ノードに対す
る少なくとも1つの独立した別個のポートを有する。こ
の通信および記憶ノードはまた、別個の独立したマイク
ロ命令制御を有する独立のプロセツサである。このメモ
リー・プロセツサの内部は、多くの同時の記憶および通
信操作を実施することが可能な複数の独立的に作用する
マイクロ命令により制御されたプロセツサからなつてい
る。本発明はまた、前述の特徴を構成するためのデータ
処理システムの構造ならびに作用上の特徴を提供するも
のである。
このように、本発明をデータ処理システムに内蔵するこ
とは、本発明が大きな相互に結合されたデータ処理シス
テムにおける使用に適するアドレス指定機構を提供する
故に有効である。加えて、本発明は、大きな相互に結合
されたデータ処理回路網における使用に適する情報保護
機構を提供する点で有効である。本発明は更に、データ
処理システムに対して簡単な、柔軟性に富んだ更に効率
の良いインターフエースを提供する点で有効である。本
発明は更にまた、特異な符号化され統一された中間レベ
ル命令を包含する統一されたフオーマツト名および命令
構造によつて、ユーザ・プログラムにおけるオペランド
を照合するための機構を提供することにより、どんなユ
ーザ・レベルの言語においても等しく有効であるデータ
処理システムを提供する点において有効である。加え
て、本発明は、多重レベルの制御およびスタツク機構の
提供により、データ処理システムの内部機構をユーザの
妨害から保護する。更に本発明は、同時の多重操作を実
施することが可能であり、かつ各々が別個のマイクロ命
令制御装置と、同時の多重記憶ならびに通信操作の実施
が可能な複数の独立したプロセツサからなる中央の独立
した通信兼記憶プロセツサに対する少なくとも1つの別
個の独立したポートとを有する複数の別個の独立したプ
ロセツサから構成される柔軟性に富んだ内部システムの
提供において有効である。
従つて、本発明の目的は改良されたデータ処理システム
の提供にある。
本発明の別の目的は、大型の相互に結合されたデータ処
理回路網において使用が可能なデータ処理システムの提
供にある。
本発明の更に別の目的は、大型の相互に結合されたデー
タ処理回路網における使用に適する改良されたアドレス
指定機構の提供にある。
本発明の他の目的は、改良された情報保護機構の提供に
ある。
本発明の更に他の目的は、データ処理システムに対する
簡単で柔軟性に富むユーザ・インターフエースの提供に
ある。
本発明の更に他の目的は、オペランドの照合のための改
良された機構の提供にある。
本発明の更に他の目的は、複数の高水準のユーザ言語を
用いる有効なデータ処理システムの作用を可能にする命
令構造の提供にある。
本発明の更に他の目的は、ユーザの妨害から保護された
データ処理の内部機構の提供にある。
本発明の更に他の目的は、同時の多重操作が可能な柔軟
性に富んだ内部機構を有するデータ処理システムの提供
にある。
本発明の他の目的、長所および特徴については望ましい
実施態様および図面の以下の詳細な説明を照合すれば、
当業者には充分に理解されよう。
図面は第1図乃至第5図から成り、さらに各図は数字お
よび英字から成る1桁乃至4桁の番号を付された複数の
図を含む。以下の説明においては図面との対応関係を簡
単かつ明瞭にするため、実際の第1図乃至第5図の代り
に、これら1乃至4桁の番号をそれ自体あたかも独立し
た図の番号を示すものとして扱う。例えば、第1図で1
として示される図は第1図、第2図で101として示され
る図は第101図、第3図で230Bとして示される図は第230
B図というように参照して説明を進める。
したがつて、上記の約束によれば、以下の説明において
照合される各図は概説項を除いて3桁または4桁の番号
により示される。最上桁は、ある特定の図面が最初に述
べられる以下の記述における章の番号を表わしている。
2つの下位桁は、ある特定の章の順番の表示番号を表わ
す。例えば、第319図は、第3章に現われる19番目であ
る。概説項に現われる図面は、これら図面がこの概説項
において言及される順序を表わす1桁または2桁の番号
によつて照合される。
第2に、照合番号は2桁の番号から成り、対応する要素
が最初に現われる図面の番号がその前に置かれる。例え
ば、照合番号31901乃至31999は第319図に現われる要素
1乃至99を示すことになる。
最後に、関連する回路間の相互の接続は2通りの方法で
示される。最初に、説明を明瞭にするため、回路間の相
互接続は、ワイヤ即ちバスの表示ではなく共通の信号名
即ち称号によって表わすことができる。第2に、関連す
る回路が2つ以上の図面において示される場合、この図
面は共通の図番を共有し、文字の付記により、例えば第
319図、第319A図および第1図319B図により区別され
る。このような回路間の共通の電気的な地点は、このよ
うな地点に至るリードを含む括弧および表示「A−b」
により示すことができる。「A」は、同じ共通点を有す
る他の図面、例えば第319A図を示し、「b」は特定の共
通の電気的点を表わす。このように2つ以上の図面にお
いて示された関連する回路の場合、構成要素に対する照
合番号は図面のグループに関する順序で与えられ、かか
る照合番号の図番部分はこれら図面のグループの最初の
図面のそれである。
概説 A.ハードウエアの概説(第1図) B.個別的な作用の特徴(第2図、第3図、第4図、第5
図、第6図) 1.アドレス指定(第2図) 2.S言語命令および名前空間のアドレス指定(第3図) 3.アーキテクチヤ基底ポインタのアドレス指定 4.スタツクの機構(第4図〜第5図) C.手順のプロセスおよび仮想プロセツサ(第6図) D.CS101の全体的構造および作用(第7図、第8図、第
9図、第10図、第11図、第12図、第13図、第14図、第15
図) 1.序説(第7図) 2.コンパイラ702(第7図) 3.バインダ703(第7図) 4.FOS704(第7図) 5.KOSおよびアーキテクチヤ・インターフエース708(第
7図) 6.プロセス610および仮想プロセツサ612(第8図) 7.プロセス610およびスタツク(第9図) 8.プロセス610および呼出し(第10図、第11図) 9.メモリーの照合および仮想メモリー管理システム(第
12図、第13図) 10.アクセス制御(第14図) 11.仮想プロセツサおよび仮想プロセツサのスワツピン
グ(第15図) E.CS101の構造的な構成(第16図、第17図、第18図、第1
9図および第20図) 1.(IOS)116(第16図、第17図) 2.メモリー(MEM)112(第18図) 3.取出し装置(FU)120(第19図) 4.実行装置(EU)122(第20図) 1.序説(第101図〜第110図) A.全体的な構造および作用(第101図) a.全体的な構造 b.全体的な作用 c.用語の定義 d.多種プログラム操作 e.多重言語操作 f.アドレス指定構造 g.機密保護機構 B.コンピユータ・システム10110の情報構造および機構
(第102図、第103図、第104図、第105図) a.序説(第102) b.プロセス構造10210(第103図、第104図、第105図) 1.手順目的(第103図) 2.スタツク機構(第104図、第105図) 3.FURSM10214(第103図) C.仮想プロセツサ状態ブロツクおよび仮想プロセスの形
成(第102図) D.アドレス指定構造10220(第103図、第106図、第107
図、第108図) 1.目的、UID、AON、名前および物理アドレス(第106
図) 2.アドレス指定機構10220(第107図) 3.名前の解明(第103図、第108図) 4.AONアドレスの物理アドレスに対する評価(第107図) E.調整10110の機密保護機構(第109図) F.CS10110のマイクロ命令機構(第110図) G.CS10110の特徴および別の実施態様の要約 2.CS10110主要サブシステムの詳細な説明(第201図〜第
206図、第207図〜第274図) A.MEM10112(第201図、第206図、第207図、第237図) a.用語の説明 b.MEM10112の物理的構造(第201図) c.MEM10112の全体的作用 d.MEM10112のポート構造 1.JOポートの特性 2.JOポートの特性 3.JIポートの特性 e.MEM10112の制御構造および作用(第207図) 1.MEM10112の制御構造 2.MEM10112の制御作用 f.MEM10112の作用 g.JP10114およびIOS10116に対するMEM10112のインター
フエース(第209図、第210図、第211図、第204図) 1.IOポート20910の作用特性(第209図、第204図) 2.JPOポート21010の作用特性(第210図) 3.JPIポート21110の作用特性(第211図) h.FIU20120(第201図、第230図、第231図) B.取出し装置10120(第202図、第206図、第101図、第10
3図、第104図、第238図) 1.記述子プロセツサ20210(第202図、第101図、第103
図、第104図、第238図、第239図) a.オフセツト・プロセツサ20218の構造 b.AONプロセツサ20216の構造 c.長さプロセツサ20220の構造 d.記述子プロセツサ20218の作用 aa.オフセツト・セレクタ20238 bb.オフセツト・マルチプレクサ20240の詳細な構造(第
238図) cc.オフセツト・マルチプレクサ20240の詳細な作用 aaa.内部作用 bbb.DESP20210に関する作用 e.長さプロセツサ20220(第239図) aa.長さALU20252 bb.BIAS20246(第2.39図) f.AONプロセツサ20216 aa.AONGRF20232 bb.AONセレクタ20248 2.メモリー・インターフエース20212(第106図、第240
図) aa.記述子トラツプ20256およびデータ・トラツプ20258 bb.名前カツシエ装置10226、アドレス翻訳装置10228お
よび保護カツシエ装置10234(第106図) cc.汎用カツシエ装置およびNC10226(第240図) dd.ATU10228およびPC10234 3.取出し装置制御ロジツク20214(第202図) aa.取出し装置制御ロジツク20214の全体的構造 bb.取出し装置制御ロジツク20214の作用 aaa.取出し装置20264、命令バツフア20262、オペランド
解析装置20264、命令コード・レジスタ20268、CPC2027
0、IPC20272およびEPC20274第241図 bbb.取出し装置のタスク指名テーブル11010、実行装置
のタスク指名テーブル20266および命令コードレジスタ2
0268(第242図) ccc.次のアドレス・ゼネレータ24310(第243図) cc.CS10110の内部機構に対するFUCTL20214の回路(第24
4図〜第250図) aaa.状態ロジツク20294(第244図、第244図(A〜
Z)) bbb.事象ロジツク20284(第254図、第246図、第247図、
第248図) ccc.取出し装置のSインタプリタ・テーブル11012(第2
49図) dd.CS10110の内部機構制御 aaa.戻り制御ワード・スタツク10358(第251図) bbb.機械制御ブロツク(第252図) ccc.レジスタのアドレス・ゼネレータ20288(第253図) ddd.タイマー20296(第254図) eee.取出し装置10120の実行装置10122に対するインター
フエース C.実行装置10122(第203図、第255図乃至第268図) a.実行装置10122の一般構造 1.実行装置の入出力装置20312 2.実行装置の制御ロジツク20310 3.乗算ロジツク20314 4.指数ロジツク20316 5.乗算制御装置20318 6.テストおよびインターフエース・ロジツク20320 b.実行装置10122の作用(第255図) 1.実行装置の制御ロジツク20310(第255図) aa.指令キユー20342 bb.指令キユーの事象制御記憶装置25514および指令キユ
ー事象アドレス制御記憶装置25516 cc.実行装置のSインタプリタ・テーブル20344 dd.マイクロコード制御復号レジスタ20346 ee.次のアドレス・ゼネレータ20340 2.オペランド・バツフア20322 3.乗算器20314(第257図、第258図) aa.乗算器20314の入出力データ経路およびメモリー(第
257図) aaa.コンテナ・サイズの検査 bbb.最終結果の出力マルチプレクサ20324 4.テストおよびインターフエース・ロジツク20320(第2
60図〜第268図) aa.FU10120/EU10122のインターフエース aaa.指令キユー20342のローデイング(第260図) bbb.オペランド・バツフア20320のローデイング(第261
図) ccc.再記憶(第262図) ddd.テスト条件(第263図) eee.例外検査(第264図) fff.遊休状態ルーチン ggg.EU10122スタツクの機構(第265図、第265図、第267
図) hhh.実行装置のSインタプリタ・テーブル20344のロー
デイング(第268図) D.入出力システム10116(第204図、第206図、第269図) a.入出力システム10116の構造(第204図) b.入出力システム10116の作用(第269図) 1.データ・チヤネル素子 2.入出力制御プロセツサ20412 3.データ移動器20410(第269図) aa.入力データバツフア20440および出力データバツフア
20442 bb.優先順位分解能および制御装置20444(第269図) E.診断プロセサ10118(第101図、第205図) F.CS10110のマイクロ機械構造および作用(第270図〜第
274図) a.序説 b.FUマイクロ機械を構成する諸素子のまとめ(第270
図) 1.大半のマイクロコードにより使用される諸素子 aa.MODバス10144、JPDバス10142およびDBバス27021 bb.マイクロコードのアドレス指定 cc.記述子プロセツサ20218(第271図) dd.EU10122のインターフエース 2.特定化されたマイクロ機械素子 aa.命令ストリーム・リーダ27001 bb.SOPデコーダ27003 cc.名前翻訳装置27015 dd.メモリー照合装置27017 ee.機密保護装置27019 ff.KOSマイクロ機械素子 c.マイクロ機械スタツクおよびマイクロルーチン呼出し
および戻り(第272図、第273図) 1.マイクロ機械スタツク(第272図) 2.マイクロ呼出し兼戻し 3.マイクロルーチンの呼出しの手段 4.事象の呼出しの発生(第273図) d.仮想マイクロ機械およびモニター・マイクロ機械 1.仮想モード 2.モニターマイクロ機械 e.割込みおよび障害の取扱い 1.一般的な原理 2.CS10110におけるハードウエア割込みおよび障害の取
扱い 3.モニター・モード:差動マスキングおよびハードウエ
ア割込みの取扱い f.FUマイクロ機械およびCS10110サブシステム 3.名前空間、Sインタプリタおよびポインタ(第301図
〜第307図、第274図) A.ポインタおよびポインタの分解能(第301図、第302
図) a.ポインタのフオーマツト(第301図) b.FU10120におけるポインタ(第302図) 記述子からポインタへの変換 B.名前の空間およびSインタプリタ(第303図〜第307
図) a.手順の目的606の総括(第303図) b.名前の空間 1.名前の分解能および評価 2.名前のテーブル(第304図) 3.アーキテクチヤ基底ポインタ(第305図、第306図) aa.名前の分解および評価(第305図) bb.CS10110における名前の評価および名前の分解の構成 cc.名前のカツシエ装置10226の記入(第306図) dd.名前のカツシエ装置10226のヒツト ee.名前のカツシエ装置10226のミス ff.名前のカツシエ装置10226のフラツシング gg.命令ストリームの取出し hh.命令ストリームのオペランド解析 c.Sインタプリタ(第307図) 1.SIPの特異数への翻訳(第307図) 2.タスク指名 4.核心のオペレーテイング・システム A.序説 a.オペレーテイング・システム(第401図) 1.オペレーテイング・システムにより制御される資源
(第402図) b.CS10110におけるオペレーテイング・システム c.拡張されるオペレーテイング・システムおよび核心オ
ペレーテイング・システム(第403図) B.目的および目的管理(第404図) a.目的およびユーザ・プログラム(第405図) b.UID40401(第406図) c.目的の属性 d.属性とアクセス制御 e.目的の構成 1.序説(第407図、第408図) 2.2次記憶装置10124の目的(第409図、第410図) aa.2次記憶装置10124における目的の内容の表示 bb.LAUD40903(第411図、第412図) 3.活動状態の目的(第413図) aa.UID40401からAON41304への変換 C.アクセス制御システム a.主題 b.定義域 c.アクセス制御リスト 1.主題のテンプレート(第416図) 2.初期アクセス制御リスト(PACL) 3.APAM10918および機密保護カツシエ装置10234(第421
図) 4.機密保護カツシエ装置10234および機密保護検査(第4
22図) D.プロセス 1.プロセス610および仮想プロセス612の同期 a.事象カウンタ44801、待機記入44804および待機テーブ
ル(第448図、第449図) b.事象カウンタ44801および待機記入44804との同期 E.仮想プロセツサ612(第453図) a.仮想プロセツサの管理(第453図) b.仮想プロセツサ612および同期(第454図) F.プロセツサ610のスタツク操作 1.呼出しおよび戻り操作の序説 2.マクロスタツク(MAS)502(第467図) aa.MASベース10410(第468図) bb.定義域によるデータ領域46853(第468図) cc.MASフレーム46709の詳細(第469図) 3.SS504(第470図) aa.SSベース47001(第471図) bb.SSフレーム47003(第471図) aaa.通常のSSフレーム・ヘツダー10514(第471図) bbb.マクロスタツク10516の詳細な構造(第471図) ccc.交差領域SSフレーム47039(第471図) 4.呼出しおよび戻りに関する手順目的608の各部(第472
図) 5.仲介呼出しの実行 aa.仲介呼出しSIN bb.簡単な仲介呼出し(第270図、第468図、第469図、第
470図、第471図、第472図) cc.SEBを要求する手順602の呼出し(第270図、第468
図、第469図、第470図、第471図、第472図) dd.交差手順の目的呼出し(第270図、第468図、第469
図、第470図、第471図、第472図) ee.交差領域の呼出し(第270図、第408図、第418図、第
468図、第469図、第470図、第471図、第472図) ff.障害を生じた交差領域呼出し(第270図、第468図、
第469図、第470図、第471図、第472図) 6.近接域の呼出し(第468図、第469図、第472図) 概説 以下の概説は、最初に、本発明を実施したデイジタルコ
ンピユータ・システムの望ましい実施態様の全体的な物
理的構造および作用について簡単に述べる。次いで、こ
のコンピユータ・システムのいくつかの作用上の特徴に
ついて個々に述べることにする。次に、本コンピユータ
・システムの全体的な作用について前述の個々の特徴に
関して説明することになろう。
A.ハードウエアの概説(第1図) 第1図においては、本発明を実施したコンピユータ・シ
ステム(CS)101のブロツク図が示される。このCS101の
主要な要素は、入出力システム(IOS)と、メモリー(M
EM)112と、ジヨブ・プロセツサ(JP)114である。JP11
4は、取出し装置(FU)120と、実行装置(EU)122とか
らなる。CS101はまた、本項においては示さない診断プ
ロセツサ(DP)を含む。
最初にIOS116について述べれば、IOS116の主な機能はME
M112と外部間の情報の転送の制御である。情報はMEM112
からIOMバス130を介してIOS116に対し、またIOS116から
MIOバス129を介してMEM112に対して転送される。IOMCバ
ス131は、MEM112とIOS116の作用を連携させる両方向の
制御信号からなつている。IOS116はまたIOJPバス132を
介してFU120に至るインターフエースを有する。IOJPバ
ス132は、主として2つの割込み回線からなる両方向の
制御バスである。これらの割込み回線は、FU120がIOS11
6に対して、FU120による情報要求がMEM112に置かれたこ
とを表示することを許容し、またIOS116がFU120に対し
て、FU120により要求された情報がMEM112のある場所に
転送されたことを通知することを許容する。MEM112はCS
101の主記憶装置であり、外部とJP114間の情報の転送の
ための経路として作用する。MEM112は、メモリー出力デ
ータ(MOD)バス140を介してFU120およびEU122に対し命
令およびデータを提供し、かつジヨブ・プロセツサのデ
ータ(JPD)バス142を介してFU120とEU122から情報を受
取る。FU120は物理的記述子(PD)バス146を介してMEM1
12に対し読出しおよび書込み要求を提供する。
JP114はCS101のCPUであり、かつ前に述べたように、FU1
20およびEU122からなる。FU120の主な機能は、ユーザ・
プログラムの操作の実行である。この機能の一部とし
て、FU120はMEM112からの命令およびデータの転送、な
らびにJP114の操作の結果のMEM112に対する返送を制御
する。またFU120はオペレーテイング・システム型の機
能を実施し、完全な汎用CPUとしての動作が可能であ
る。EU122は、主としてある算術演算をFU120から免除す
るため設けられた論理演算装置である。しかし、FU120
はEU122の諸操作を行なうことができる。CS101の別の実
施態様においては、EU122は特定の算術的要件を有する
ユーザに対する選択としてのみ提供することができる。
FU120とEU122の動作の連携は、両方向の制御信号と相互
の割込み回線を含むFU/EU(FUEU)バス148により達成さ
れる。以下に更に述べるように、FU120およびEU122の両
者は、例えば、ALUと関連するレジスタに加えて、それ
ぞれCRFおよびERFと呼ばれる如きレジスタ・フアイル・
アレーを含んでいる。
CS101の主な特徴はIOS116、MEM112、FU120およびEU122
は各々が個々のと独立したマイクロ命令制御を有し、従
つてIOS116、MEM112およびEU122がFU120の総体的な制御
の下で非同期的に作動することである。例えば、EU122
は、FU120からのデータと1つの最初の指令の受取りと
同時に複雑な算術的演算を実行することができる。
CS101の全体的な構造および作用について簡単に説明し
たが、CS101のいくつかの特徴については次に更に個別
的に説明しよう。
B.個別的な作用の特徴(第2図、第3図、第4図、第5
図および第6図) 1.アドレス指定(第2図) 第2図においては、CS101のアドレス指定構造の各部を
示す図が示されている。CS101のアドレス指定構造は、
「目的」の概念に依存している。目的は、ある特定の情
報の形式を保有するコンテナと見做すことができる。更
に別の形式の目的はマイクロコードを有する。一般に、
ある特定の目的は唯1つの情報の形式即ち種類を有す
る。ある目的は、例えば、2ビツトまでの情報を含み得
るが、ある特定の目的の実際のサイズは柔軟性に富んで
いる。即ち、ある特定の目的の実際のサイズは、情報が
この目的に書込まれる時増大し、また情報がこの目的か
ら取出される時に減少する。一般に、目的における情報
は順次、即ち間隙なしに記憶されるのである。
CS101システムに存在し得る各目的は、一義的記述子(U
ID)と呼ばれる通し番号により一義的に識別される。1
つのUIDは、例えば特定のCS101システムおよびユーザに
依存し、かつこの目的の形成時間を示す時間コードに依
存する通し番号からなる128ビツトの値である。UIDは恒
久的に目的に割当てられ、2つの目的が同じUIDを有す
ることはできず、またUIDは再使用することはできな
い。UIDはこれまで存在し得た全てのCS101に対して共通
のアドレス指定ベースを提供し、これにより形成された
どんな目的でも恒久的かつ一義的に識別可能である。
前述の如く、UIDは128ビツトの値でありこのためCS101
の本実施例において便利に取扱うことができる。従つて
各CS101においては、本システムにおいて活動状態であ
る目的は14ビツトの活動状態の目的番号AONが与えられ
る。このシステムにおいて活動状態の各目的は単に一時
的に特定の目的に割当てられるに過ぎない。AONは特定
のCS101の内部においてのみ有効であり、両システム間
では一義的ではない。目的は1つのAONが割当てられる
べくシステム内に物理的に存在する必要はなく、単にAO
Nが割当てられたならばそれだけでシステム内で活動状
態になり得る。
ある特定の目的内の特定のビツトは、UIDアドレスまた
はAONアドレスによつて識別することができる。CS101に
おいては、UIDおよびUIDアドレスがMEM112その他で使用
される間、AONおよびAONアドレスが有効である。UIDお
よびAONアドレスは、この目的のUIDまたはAONに対して3
2ビツトのオフセツト(0)フイールドを関連させるこ
とにより形成される。
0フイールドは、ある特定の目的の開始に関するある特
定のビツトのオフセツトすなわち場所を表示する。
特定の目的内の情報のセグメント(情報ビツトのシーケ
ンス)は、記述子によつて識別することができる。UID
記述子は、あるUIDアドレス32ビツトの長さのフイール
ドを付加することにより形成される。AON即ち論理記述
子は、あるAONアドレスに32ビツトのLフイールドを付
加することにより形成される。LフイールドはUIDアド
レスまたはAONアドレスにより識別される情報ビツトか
ら開始するある目的内の情報ビツトのあるセグメントの
長さを識別する。長さの情報に加えて、UIDおよび論理
記述子もまた情報セグメント内の情報のある特性に関す
る情報を含む形式フイールドを含んでいる。再び、AON
に基づく記述子はJP114内部で使用されるが、UIDに基づ
く記述子はMEM112において使用される。
第1図および第2図を一緒に考察すれば、UIDアドレス
と記述子、およびAONアドレスと記述子間の翻訳は、MEM
112とJP114間のインターフエースにおいて実施される。
即ち、JP114内のアドレスおよび記述子はAON形態である
がMEM112、IOS116および外部におけるアドレスおよび記
述子はUID形態にある。AONを用いるCS101の他の実施態
様においては、UIDアドレス指定からAONアドレス指定へ
の変換は他のインターフエースにおいて、例えば、IOS1
16からMEM112へのインターフエースにおいて、あるいは
IOS116から外部へのインターフエースにおいて生じ得
る。CS101の他の実施態様は、全てUIDを用い、即ち、JP
114内においてさえもAONは使用しないのである。
最後に、MEM112内の情報は、その記憶空間内の特定の物
理的場所を識別するMEM112の物理的アドレスを介して見
出される。IOS116とJP114の両者は、MEM112に対して物
理的アドレスを与えることによつてMEM112内の情報をア
ドレス指定する。JP114により与えられる物理的アドレ
スの場合には、これらのアドレスは物理的記述子(PD)
と呼ばれる。以下に述べるように、JP114は、論理記述
子を物理的記述子に翻訳する回路を有する。
2.S言語命令および名前空間のアドレス指定(第3図) CS101は、S言語機械および名前空間機械の両者であ
る。即ち、CS101により実行されるべき命令はS言語命
令(SOP)として表現され、オペランドは名前により識
別される。SOPは例えばFORTRANおよびCOBOLの如きユー
ザ言語命令より低いレベルの更に詳細な命令であるが、
従来の機械語命令よりは高いレベルの命令である。SOP
はCS101のある特定の実施態様ではなく特定のユーザ言
語に固有のものであるが、従来の機械語の命令は特定の
機械に特定される。SOPは更にマイクロコードにより翻
訳されて実行される。各ユーザ言語に対しては、1組の
SOPであるS言語ダイアレクトがある。例えば、CS101は
COBOL、FORTRANおよびSPLに対するSOPダイアレクトを有
し得る。CS101の特定の区別は、全てのSOPが例えば16ビ
ツトの一定の固定された長さであることである。CS101
は一般に各S言語ダイアレクトに対して1組以上のマイ
クロコードを含んでいる。これらのマイクロコード・ダ
イアレクトの組は、1つ以上のSOPが同じマイクロコー
ドを用いる場合に、完全に異なるか、あるいは重複す
る。
前述の如く、CS101においては、全てのオペランドが、
8、12または16ビツトの数である名前によつて識別され
る。CS101は、現在実行中のプログラムに現われる各オ
ペランドの名前に対する記入を含む1つ以上の「名前テ
ーブル」を含んでいる。各名前テーブルの記入は、ある
特定の名前で呼ばれるオペランドを記述する情報、なら
びにこの情報を対応する論理記述子に翻訳するためCS10
1に必要な指令を含んでいる。前述の如く、論理記述子
は物理的記述子に翻訳されてMEM112に関する読出しおよ
び書込みを行なうことができる。前述の如く、UIDは全
てのCS101システムに対して一義的であり、AONは個々の
CS101システム内では一義的である。しかし、名前はユ
ーザ・プログラムの文脈内においてのみ一義的である。
即ち、ある特定の名前が2つの異なるユーザ・プログラ
ムに現われ、また各プログラム内では、異なる名前テー
ブル記入を有し異なるオペランドを意味する。
CS101はこれにより、2組の命令を用いるものとして考
えることができる。第1の組は、実行されるべき算法を
選定する命令であるSOPからなる。第2組の命令は、オ
ペランドに関する照合を行なうための命令のテーブルへ
の記入点と見做すことができる。
第3図においては、CS命令ストリームが表示されてい
る。典型的なSINは1つのSOPからなり、オペランドに関
する1つ以上の名前を有する。SOPおよび名前は、ユー
ザ・プログラムを非常にコンパクトなコードにおいて表
示することを可能にする。ユーザ・プログラムの表示に
は機械語の命令よりも少ないSOPがHTとされる。また、S
OPの使用によつてコンパイラの構造が容易かつ簡単にな
り、またCS101システムの新たなユーザ言語への適用を
容易にする。更に、オペランドに関する名前の使用は、
SOPが作動するオペランドの形態に依存することを意味
する。このため、更に、オペランドの形態に依存する命
令を指定するSOPが必要とされないユーザ・プログラム
の表示の際、更にコンパクトなコードを可能にするので
ある。
3.アーキテクチヤ基底ポインタのアドレス指定 以下において更に詳細に述べるように、CS101に存在す
るユーザ・プログラムは1つ以上の目的を含むことにな
る。最初に、ある手順目的はユーザ・プログラムの少な
くともSINおよびプログラムのオペランド名前に対する
記入を含む名前テーブルとを含んでいる。このSINは、
例えば、多くのユーザに共通に使用可能な手順を含む他
の手順目的に対する照合即ち呼出しを含み得る。第2
に、静的データ領域は、プログラムの少なくとも1つの
実行のための存在を有するデータである静的データを含
み得る。また第3に、以下に説明するマクロスタツク
は、あるプログラムの実行中に生成されたデータである
局所データを含み得る。各手順目的、静的データ領域お
よびマクロスタツクは、UIDおよびAONにより識別されか
つUIDおよびAONのアドレスおよび記述子によりアドレス
指定可能な個々の目的である。
ユーザの手順目的、静的データ領域およびマクロスタツ
クにおける情報の場所は、3つの値、即ちアーキテクチ
ヤ基底ポインタ(ABP)等と呼ばれる基底アドレスの内
の1つからのオフセツトとして表示される。例えば、名
前テーブルにおける場所の情報は、前記ABPの1つから
のオフセツトとして表示される。ABPは、前に述べた如
くに表示することができるのである。
これらの3つのABPとは、フレーム・ポインタ(FP)、
手順の基底ポインタ(PBP)および静的データポインタ
(SDP)である。手順に対して局所となるデータの場
所、例えば、手順のマクロスタツクにおけるデータの場
所については、FPからのオフセツトとして説明される。
局所データでないデータ、即ち静的データの場所は、SD
Pからのオフセツトとして説明される。手順目的におけ
るSINの場所はPBPからのオフセツトとして説明され、こ
れらのオフセツトはプログラム・カウンタ(PC)の値と
して決定される。ABPの値はプログラムの実行中に変化
し、従つてユーザの高レベルの言語プログラムをCS101
システムにおいて実行されるべきプログラムへ変換する
コンパイラによつては与えられない。プログラムが実行
される時は、CS101はABPに対する適正な値を提供する。
あるプログラムが実際に実行されつつある時は、ABPの
値はFU120のGRFに記憶される。
他のポインタが、例えば、CS101の機密保護スタツクの
最上位のフレーム(以下に述べるマイクロコード・レベ
ルのスタツク)の識別、あるいはある手順のSINの実行
中においてその時使用中であるマイクロコードのダイア
レクトの識別のために使用される。これらのポインタは
FP、SDPおよびPBPと同じものである。
4.スタツクの機構(第4図乃至第5図) 第4図および第A4図においては、それぞれ従来の機械お
よびCS101の種々の制御レベルおよびスタツク機構を表
わす図が示されている。最初に、第4図においては、制
御の最上位のレベルが例えば、FORTRANまたはCOBOLにお
けるユーザ言語命令402により与えられる。ユーザ言語
命令402はユーザ・プログラムの実行のため機械内部で
使用される多数の更に詳細な機械語命令404に変換され
る。機械内部においては、機械語命令404は、更に直接
機械のハードウエア408を制御する一連のマイクロ命令
であるマイクロコード命令406により翻訳され実行され
る。ある従来の機械は、もしその時の機械語命令404が
実行できないか、あるいは割込みされるならばその時の
マイクロ命令でありかつ種々の機械のレジスタであるそ
の時の機械の状態の保管のため使用されるスタツク機構
410を含み得る。一般にマイクロコードおよびハードウ
エア・レベルにおける機械の状態は保管されない。その
時の機械語命令404の実行は、この機械語命令404の実行
のためのマイクロ命令シーケンスの開始時に後で再開さ
れるのである。
第4A図においては、CS101における最上レベルの制御は
従来の機械における如くユーザ言語命令412によるもの
である。しかし、CS101においては、ユーザ言語命令412
は、従来の機械語命令よりも高いレベルであるSOP414に
翻訳される。一般に、1つのユーザ言語命令412は、従
来の機械語命令404の全シーケンスとは対照的に、最大
2つ乃至3つのSOP414に変換される。SOP414は、直接CS
101のハードウエア418を制御するマイクロコード命令41
6(マイクロ命令のシーケンス)により翻訳され実行さ
れる。CS101は、SOP414のレベルにおいてマクロスタツ
ク機構(MAS)420を含むが、これは従来の機械語スタツ
ク機構410とは構造も作用も異なるものと対比できる。C
S101はまたマイクロコード命令416のレベルで動作する
マイクロコード・スタツク機構422を含み、そのためマ
イクロ命令シーケンスの割込みされたマイクロ命令の実
行は、この割込みの時点において活動状態であつた特定
のマイクロ命令によつて後で再開することができる。CS
101は、従つて、あるマイクロ命令のシーケンスの開始
時からではなくこのシーケンスが割込みされた特定の時
点からマイクロ命令シーケンスの実行が再開される如き
割込み動作の取扱いにおいて更に有効である。以下にお
いて更に説明するように、マイクロコード・レベルにお
けるCS101のマイクロコード・スタツク機構422は有効に
2つのスタツク機構からなる。最初のスタツクはマイク
ロ命令スタツク(MIS)424であり、第2のスタツクはモ
ニター・スタツク(MOS)426と呼ばれる。CS101のSINマ
イクロコード428およびMIS424は、主として、ユーザ・
プログラムのSOPの実行と関連する。モニター・マイク
ロコード430およびMOS426はCS101のある内部機能の動作
と関連している。
CS101のマイクロスタツクのMIS424およびMOS426への分
割は、CS101の別の特徴を示している。従来の機械にお
いては、モニター機能は機械の主CPUと関連して作動す
る別のCPUによつて行なうことができる。CS101において
は、1つのハードウエアCPUが別のグループのマイクロ
コードによつて実施される両機能の実際の実行により両
機能に使用される。モニター・マイクロコード操作は、
あるSOP414により、またはCS101ハードウエア418により
直接生成される制御信号により始動し得る。ハードウエ
ア418が生成した信号によるモニター・マイクロコード4
30の呼出しは、CS101のモニター機能が常に呼出し可能
であることを保証する。
第5図によれば、単一のユーザ・プログラムまたは手順
のためのCS101のスタツク機構が示される。基本的に
は、MOS426Aを例外として、CS101のスタツクがMEM112に
存在し、これらスタツクのある部分がFU120およびEU122
に対して加速されて操作速度を向上させるのである。
MEM112の記憶空間のある領域は、マクロスタツク(MA
S)502の前述の如くSINレベルにおいて作動するスタツ
ク機能を含むため残されている。MEM112の他の領域は、
前述の如くマイクロコード・レベルで作動しMIS424がそ
の一部である機密保護スタツク(SS)504含むため残さ
れている。
以下に更に説明するように、例えば、ALUと関連するレ
ジスタに加えて、それぞれGRFおよびERFと呼ばれるレジ
スタ・フアイル・アレーを含む。FU120においては、同
図に示されているのはFU120のGRF506である。GRF506は
水平方向に3つの領域に分割されている。汎用レジスタ
(GR)と呼ばれる第1の領域は、一般に従来の機械にお
けるレジスタと同じ方法で使用することができる。GRF5
06の第2の領域はマクロスタツク(MIS)424であり、プ
ロセスのSS504の一部を含むため残されている。GRF506
の第3の部分はMOS426を含むように残されている。また
FU120内に示されるのはマイクロコード制御状態(mCS)
510と呼ばれるブロツクである。このmCS510はマイクロ
命令およびハードウエア・レベルに関するその時のFU12
0の作動状態を含むレジスタその他のFU120のハードウエ
アを示している。mCS510は、例えば、FU120の動作を制
御するその時のマイクロ命令を含み得る。
EU122においては、その内部に実行装置(EUS)512と呼
ばれる第1のブロツクと、SOPスタツク514と呼ばれる第
2のブロツクとである。EUS512はFU120におけるmCS510
と類似し、EU122のその時の作動状態を反映する情報を
含む全てのレジスタおよび他のEU122のハードウエアを
含んでいる。SOPスタツク518は、EU122の作用に関して
プロセスのSS504の一部を含むためスタツク機構として
残されたEU122のERF516の一部である。
最初にMAS502について考察すれば、前述の如く一般にMA
S502が、ユーザ・プログラムのあるプロセス(以下に述
べる)の実行のその時の状態を記憶するため使用され
る。
次にMIS424について見れば、CS101の本実施例において
はMIS424の保持のため残されたGRF506の前記部分は、8
つのスタツク・フレームの容量を有する。即ち、ユーザ
・プログラムの実行に関する8つまでのマイクロ命令レ
ベルの割込み即ち呼出しがMIS424内にスタツクすること
が可能である。MIS424のスタツク・フレームに記憶され
た情報は一般にGR508およびmCS510からの情報である。M
IS424のスタツク・フレームは、SS504の少なくとも1つ
のフレームであつて8つ以下のフレームがGRF506内に存
在するように、MIS424およびSS504間に転送される。こ
のことは、プロセスのSS504の少なくとも最上位のフレ
ームがFU120に存在することを保証し、これによりこの
最上位のフレームへのアクセスが迅速になることにより
FU120の作用速度を向上させるのである。MEM112に存在
するSS504は、あらゆる実際的な目的のため、MIS424お
よびSS504があたかもユーザにとつて無限に長いスタツ
クのように思われるように、無制限のフレーム数を含み
得るのである。
MOS426は完全にFU120に存在し、またCS101の本事例にお
いては、8つのスタツク・フレームを有する。CS101の
作用の特徴は、ある事象または割込みの取扱いのための
CS101の機構がその作用において、この作用がかかる障
害または割込みを惹起したCS101の各部に依存しないこ
とである。CS101のモニター・マイクロコードにより取
扱われる事象の内には、例えばMEM112のページの障害が
ある。MEM112のページ障害は、FU120がMEM112における
データの照合を行ないかつこのデータがMEM112にはない
時は常に生じる。この操作および同様な操作のため、MO
S426は完全にFU120に存在し、またこのためMEM112にお
ける情報には依存しない。
前述の如く、汎用レジスタ508、MIS424およびMOS426は
各々GRF506のある割当てられた部分に存在する。このた
め、経験により示されるように、汎用レジスタ508、MIS
424およびMOS426の容量の変更における柔軟性を可能に
し、あるいは特定の目的のための個々のCS101の変更を
可能にするものである。
最後に、EU122について述べれば、EUS512は機能的には
プロセツサのSS504の一部である。また前述の如く、EU1
22はSINに応答して算術演算を行ない、またFU120によつ
てあるFU120の操作に割込ませることができる。EUS512
は割込みのスタツキングを可能にする。例えば、FU120
は最初に算術演算SOPに割込んでEU122に名前テーブル記
入の評価を助けることを要求することができる。この最
初の割込みが完了する前に、FU120は再び割込みが可能
である如きである。
SOPスタツク514は、割込みがある算術演算SOPに行なわ
れる時、EU122のその時の状態を記憶するための単一の
フレームである。割込まれたSOPの状態がSOPスタツク51
4に転送され、割込みがEUS512における実行を開始す
る。第2の割込みの発生(最初の割込みが完了する前)
と同時に、EUの最初の割込み状態はEUS512からSS504に
おけるスタツク・フレームに対して転送され、第2の割
込みの実行がEUS512において開始する。もし第3の割込
みが第2の割込みの完了の前に生じるならば、EUの第2
の割込み状態はEUS512からSS504におけるスタツク・フ
レームに対して転送され、第3の割込みの実行はEUS512
において開始される、等々である。このように、EUS512
およびSS504は、EU122に対する無限に長く見えるマイク
ロスタツクを提供する。この第3の割込みが完了するも
のと仮定すると、第2の割込みの状態がSS504からEUS51
2に転送され、第2の割込みの実行に再開される。第2
の割込みの完了と同時に、第1の割込みの状態がSS504
からEUS512へ転送されて完了される。第1の割込みの完
了後に、元のSOPの状態がSOPスタツク514からEUS512へ
転送されて、このSOPの実行が再開されるのである。
C.手順のプロセスおよび仮想プロセツサ(第6図) 第6図においては、手順、プロセスおよび仮想プロセス
が示されている。前述の如く、実行されるべきユーザ・
プログラムがコンパイルされて、その結果手順602とな
る。手順602は、ユーザ・プログラムのSOP、ユーザ・プ
ログラムのオペランド名前に対する記入を含む名前テー
ブルならびに静的データ領域606を含むユーザ手順目的6
04を含む。手順602はまた、他の手順目的608、例えば、
多くのユーザに共通に使用可能なユーテイリテイ・プロ
グラムも含んでいる。作用において、手順602はユーザ
・プログラムの命令(手順)およびデータを含むもので
ある。
プロセス610は、前述の如く、SOPレベルのユーザの手順
602の状態を記憶するマクロスタツク(MAS)502と、マ
イクロコードにおけるユーザの手順602の実行の状態を
記憶する機密保護スタツク(SS)504とを含む。プロセ
ス610は、プロセス610のMAS502に記憶される前述のABP
を介してユーザの手順602と関連する。同様に、プロセ
ス610のMAS502およびSS504は、前述のアーキテクチヤ的
でないポインタを介して関連している。手順602は、有
効にユーザの手順602に対してCS101の資源、ハードウエ
ア、マイクロコードおよびソフトウエアをリンクする情
報の主体である。作用において、プロセス610は、前記
手順602の実行のためにユーザの手順602からCS101の資
源を使用可能にする。CS101は、例えば、128までのプロ
セス610を同時に使用可能にすることができる多重ポイ
ンタの機械である。同時に実行可能なプロセス610の数
は、CS101の仮想プロセツサ612の数によつて決定され
る。例えば、16までの仮想プロセツサ612がある。
第6図に示されるように、仮想プロセツサ612は、そのS
S504と関連する仮想ポインタの状態ブロツク(VPSB)61
4からなつている。VPSB614は、作用においては、CS101
のオペレーテイング・システムに対してアクセス可能な
情報の実態であり、これによりCS101のオペレーテイン
グ・システムが前記プロセス610のSS504を介してプロセ
ス610について通知されかつこれを与えられる。VPSB614
は、前記プロセス610に関する情報を前記VPSB614に書込
むことにより、ある特定のプロセス610と関連させられ
る。CS101のオペレーテイング・システムは、PSB614を
介してプロセス610に対してアクセスを行なうことによ
つて、前記プロセス610からFU120に対するABPの如き情
報を読出すことができ、これにより実行のため前記プロ
セス610をFU120にスワツピングする。仮想プロセツサ61
2はこれによりプロセス610を実行し、仮想プロセツサ61
2は従つて、関連するプロセス610がFU120にスワツピン
グされる時に「実在」となる「仮想的な」、即ち潜在的
存在である仮想プロセツサと見做すことができると言わ
れる。CS101においては、第6図に示されるように、一
時に唯1つの仮想プロセツサ612がFU120について実行可
能であり、またオペレーテイング・システムは如何なる
時にも、どの仮想プロセツサ612がFU120について実行す
るかを選定する。更に、CS101のオペレーテイング・シ
ステムは、どのプロセス610が使用可能状態の仮想プロ
セツサ612と関連させられるかを選定するのである。
CS101のある個々の構造および作用上の特徴について述
べたが、CS101の全体的作用については更に詳細にこれ
らの個々の特徴に関して以下に述べることにする。
D.CS101の全体的構造および作用(第7図、第8図、第
9図、第10図、第11図、第12図、第13図、第14図および
第15図) 1.序説(第7図) 第7図に示すように、CS101は、1つのレベルの操作が
一般に更に高いレベルに対して可視である多重レベル・
システムである。ユーザ701は、アーキテクチヤ・レベ
ル708において規定されるS言語、アドレス指定および
機密保護機能を知らない。その代り、ユーザは、コンパ
イラ702、バインダ703および拡張された(高水準の)オ
ペレーテイング・システム(EOS)704によつて規定され
るユーザ・インターフエース709については判る。コン
パイラ702は、高水準の言語コードをSINに翻訳し、また
バインダ703はプログラムにおける記号名をUIDオフセツ
ト・アドレスに翻訳するのである。
第7図に示すように、アーキテクチヤ・レベル708はFU1
20のインターフエース711によつて規定されることはな
い。その代り、プログラムが実行される時アーキテクチ
ヤ資源レベルがS言語で翻訳されたSINにより生成さ
れ、名前インタープリタ715がS言語インタプリタ・マ
イクロコード705の制御下で作動し、名前を論理記述子
に翻訳する。CS101においては、S言語インタプリタ・
マイクロコード705と名前インタプリタ・マイクロコー
ド715の双方がFU120について実行するマイクロコードと
して構成される。またS言語インタプリタ・マイクロコ
ード705はEU122を用いて計算を行なう。核心オペレーテ
イング・システム(KOS)は、CS101に以下に更に説明す
るUIDオフセツト・アドレス指定、目的、アクセス検
査、プロセスおよび仮想プロセツサを提供する。KOSは
3つの種類の構成要素を有する。即ち、KOSマイクロコ
ード710、KOSソフトウエア706およびMEM112におけるKOS
テーブルである。KOSマイクロコード710の構成要素は、
ある必要な操作を実施する際FU120を補佐するマイクロ
コードルーチンである。他の高水準の言語のルーチンと
同様に、KOSソフトウエア706の構成要素はS言語インタ
プリタ・マイクロコード705により翻訳されるSINを含
む。特殊なKOSプロセスによつて多くのKOSの高水準の言
語ルーチン706が実行され、他のルーチンはいずれかの
プロセスによつて実行することができる。KOS高水準言
語ルーチン706およびKOSマイクロコード710はMEM112に
おけるKOSテーブルを操作するのである。
FU120のインターフエース711は、KOSならびにS言語イ
ンタプリタ・マイクロコード705からのみ可視である。
本論の目的のため、FU120は以下の主な素子を含むプロ
セツサとして考えることができる。即ち、 一書込み可能制御ストア713に記憶されたマイクロコー
ドを実行して、このマイクロコードにより指定される如
きFU120の諸素子を操作する制御機構725 −データが記憶されるレジスタを含むGRF506−処理装置
715 FU120に関して実行する全てのマイクロコードはこれら
の素子を使用し、更に特殊な機能を実施するための一群
の素子があり、これらの素子は単に前記機能と関連した
マイクロコードによつてのみ使用される。このマイクロ
コード、特殊素子、また時々はMEM112におけるテーブル
がいくつかの機能を実施するための論理機械を構成す
る。これらの機械については以下に詳細に説明すること
にする。
以下においては、第7図に示された各レベルにより順次
説明することにする。最初に、ユーザ・インターフエー
ス709における構成要素は、これらが如何にユーザ・プ
ログラムならびに要求をCS101により使用可能な形態に
翻訳するかについて調べることにする。次いで、ユーザ
・インターフエース709に関わる構成要素について、こ
れらが如何にCS101の諸操作の実施のための論理機械を
形成するかを調べることにする。
2.コンパイラ702(第7図) コンパイラ702は、ユーザ701により手順目的608に書込
まれた高水準の言語コードを含むフアイルを翻訳する。
手順目的608の2つの構成要素は前に説明したコード(S
OP)および名前である。SOPが諸操作を表わし、また名
前はデータを表わす。このように、単一のSINは名前に
より示されるデータについて実施されるべき一操作を規
定する。
3.バインダ703(第7図) ある場合には、コンパイラ702はABPからのオフセツトと
して場所を規定することができない。例えば、もしある
手順が別の手順目的に含まれるある手順を呼出すなら
ば、この呼出しが制御を転送する場所は呼出し手順によ
り使用されるPBPからのオフセツトとして規定すること
ができない。このような場合には、コンパイラは場所の
規定のため記号名を使用する。バインダ703は、記号名
をUIDオフセツト・アドレスに翻訳するユーテイリテイ
である。これは次の2つの方法で行なわれる。即ち、別
の手順目的608と1つの大きな手順目的608に結合した後
この手順目的608のABPからのオフセツトとして記号名を
再規定することにより、あるいはプログラムが実行され
る時記号名を翻訳することにより行なわれる。この2番
目の場合には、バインダ703がEOS704から補佐を要求す
る。
4.EOS704(第7図) EOS704は、ユーザ701が自分プログラムの実行を要求す
る資源を管理する。ユーザ701の観点からは、これらの
資源の最も重要なものはフアイルおよびプロセスであ
る。EOS704は、KOSに目的を形成することを要求するこ
とによつてフアイルを構成し、次いでこのフアイルを目
的にマツピングする。ユーザ701があるフアイルにおけ
る一操作を実施する時、EOS704はフアイルの操作をある
目的の一操作に翻訳する。
KOSはEOS704の要求においてこれらを形成して、これら
をEOS704に対して使用可能にし更にユーザ701に対して
使用可能にする。
EOS704は、あるプロセスをある仮想プロセツサ612と関
連させることによつてこのプロセスを実行させる。論理
的観点においては、仮想プロセツサ612はプロセス610の
実行のためKOSがEOS704を与える手段である。明らか
に、仮想プロセツサ612の数と同数のプロセス610が同時
にCS101において実行することができる。この同時実行
の鎖覚は、仮想プロセツサ612間にJP114を多重化するこ
とによつて生じ、プロセス610と仮想プロセツサ612が構
成される態様については以下に詳細に説明することにす
る。
5.KOSおよびアーキテクチヤ・インターフエース708(第
7図) KOSマイクロコード710および名前インタプリタ・マイク
ロコード715は、SIN実行のためKOSマイクロコード710お
よびKOSソフトウエア706により与えられる環境を要求す
る。例えば、前述の如く、名前およびプログラムの場所
はその値がプログラムの実行中変化するABPに関して規
定される。このKOS環境は、ABPに対する値を提供し、従
つてMEM112における場所としての名前およびプログラム
の場所を翻訳することが可能となる。同様に、論理記述
子をMEM112に対する照合に翻訳して保護検査を実施する
ためにKOSの補佐が要求される。
KOSにより提供される環境は下記の諸素子を有する。即
ち、 −あるユーザ710に対するプログラムの実行の状態を含
むプロセス610 −JP114に対するプロセス610のアクセスを生じる仮想プ
ロセツサ612 −UIDをJP114内部で使用可能な値に翻訳する目的管理シ
ステム −プロセス610がある目的についての操作を実施する権
利を有するかどうかについて検査する保護システム −プロセス610が実際に外部からMEM112に対して照合し
て論理記述子を物理的記述子に翻訳する目的の部分を移
動する仮想メモリ−管理システム 以下においては、このような環境の論理特性およびプロ
グラムがこれにおいて実行される状態について説明する
ことにする。
6.プロセス610および仮想プロセツサ612(第8図) プロセス610および仮想プロセツサ612は既に論理的観点
において説明したが、第8図はその高水準の物理的構成
を示している。
第8図は、プロセス610、仮想プロセツサ612およびJP11
4間の関係を示している。物理的な観点においては、プ
ロセス610はあるプログラムのユーザのその時の実行の
状態を含むMEM112の領域である。このような状態の一例
は、ABPおよびプログラム・カウンタ(PC)のその時の
値である。PBPおよびPCのその時の値が与えられると、
プログラムにおける次のSOPが実行可能であり、同様
に、SDPおよびFPのその時の値が与えられると、プログ
ラムの名前が正確に解かれる。プロセス610はあるプロ
グラムの実行のその時の状態を含むため、プログラムの
物理的実行はいかなる時点においても停止および再開が
可能である。このように、プロセス610によつてプログ
ラムの実行を制御することが可能となる。
既に述べたように、KOSがプロセス610を仮想プロセツサ
612に、即ちJP114のハードウエアについてマイクロ命令
を実行することを必要とする状態を含むMEM112のある領
域に結合した時のみプロセス610の実行が進行する。こ
の結合操作は、単にプロセス610の状態をそのMEM112の
領域からMEM112の仮想プロセツサ612の領域へ転送する
ことに過ぎない。結合および解除はいかなる時にも生じ
得るため、EOS704は仮想プロセツサ612間においてプロ
セス610を多重化することができる。第8図において
は、仮想プロセツサ612よりも多くのプロセス610が存在
する。JP114に関するプロセス610の物理的実行は、プロ
セス610の仮想プロセツサ612がJP114に結合される時、
即ち状態が仮想プロセツサ612のMEM112の領域からJP114
のレジスタに対して転送される時にのみ生じる。EOS704
が丁度プロセス610間で仮想プロセツサ612の多重化を行
なう時、KOSは仮想プロセツサ612間でJP114の多重化を
行なう。第8図においては、唯1つのプロセス610が物
理的に実行されつつある。JP114が仮想プロセツサ612間
で多重化を行なわれる手段については更に以下において
詳細に説明することにする。
7.プロセス610およびスタツク(第9図) CS101においては、プロセス610は6つの目的、即ち1つ
の手順目的901と5つのスタツク目的902乃至906からな
る。第9図はプロセス610を示している。手順目的901
は、EOS704がプロセス610の管理を要求する情報を含ん
でいる。EO704は手順目的901に対する直接的なアクセス
は行なわず、その代りKOSソフトウエア706、KOSマイク
ロコード710によつて与えられる機能により必要とする
情報を得る。この情報に含まれているのは手順目的902
乃至手順目的906のUIDである。スタツク目的902乃至906
はプロセス610の状態を含んでいる。
スタツク目的902乃至905がCS101の定義域保護法により
要求され、プロセス610のMAS502を含む。簡単に述べれ
ば、定義域は一部はシステムがこの定義域において作用
中に実施される操作により決定される。例えば、このシ
ステムは、EOS704の実行中EOS704の定義域にあり、また
KOSソフトウエア706、KOSマイクロコード710の諸操作の
実行中はKOSソフトウエア706、KOSマイクロコード710の
定義域にある。プロセス610はこれが入る各定義域に対
して1つのスタツクを持たねばならない。本例において
は、定義域の数は4に固定されているが、別の実施態様
においては、どんな数の定義域でもよく、従つてどんな
数のスタツク目的でもよい。スタツク目的906はプロセ
ス610の機密保護スタツク504からなり、KOSソフトウエ
ア706、KOSマイクロコード710によつてのみ操作可能な
状態を記憶することを必要とするのである。
プロセス610によりなされる各呼出しの結果機密保護ス
タツク504およびMAS502に対するフアイルの付加にもた
らす、機密保護スタツク504のフアイルにおいて記憶さ
れるこの状態は呼出しのためのマクロ状態、即ち仮想プ
ロセツサ612に対してプロセス610を拘束することを必要
とする状態を含んでいる。MAS502に付加されたフアイル
は、スタツク目的902乃至905の1つに置かれる。どのス
タツク目的902乃至905がフアイルを得たかは、呼出され
た手順の実行領域によつて決定されるのである。
第9図は、プロセス610が4個の呼出しを実行した後
で、プロセス610のMAS502と機密保護スタツク504の状態
を示している。機密保護スタツク504は呼出し毎に1つ
のフアイルを有し、プロセス610のMAS502のフアイルは
スタツク目的902、904および905において見出される。
これらの場所により明らかにされるように、フレーム1
はKOSソフトウエア706、KOSマイクロコード710の実行領
域によるルーチンの呼出しのためであり、フレーム2は
EOS704の実行領域によるルーチンの呼出しのためフレー
ム3および4はユーザの実行領域によるルーチンの呼出
しのためのものである。プロセス610は未だ、データベ
ース管理システム(DBMS)によるルーチンの呼出しは行
わない。スタツク目的902乃至905におけるフレームは一
緒にリンクされ、1つのフレームがスタツク目的902乃
至905に付加される毎に1つのフレームが機密保護スタ
ツク504に付加されあるいはこれから取除かれる。これ
によりMAS502およびSS504は、仮りに5つの別個の目的
に論理的に包含されようとも、1つの論理スタツクとし
て機能する。
8.プロセス610および呼出し(第10図、第11図) CS101においては、呼出しおよび戻し動作はKOSソフトウ
エア706、KOSマイクロコード710によつて実行される。K
OSソフトウエア706、KOSマイクロコード710が1つのプ
ロセスに対する呼出しを行なう時、これは次の如く行な
われる。即ち、 −機密保護スタツク504の最上位のフレームにおける呼
出しのマクロ状態を保管する(第9図) −その名前が呼出しに保持される手順を見出す。手順に
おける最初のSINの場所は新たなABPとなる。
−呼出された手順に含まれる情報を用いて、適正なスタ
ツク目的902乃至905における新たなMAS502のフレーム
と、機密保護スタツク504における新たな機密保護スタ
ツク504のフレームを生じる。FPはこの新たなMAS502を
指定するように更新される。もし必要ならば、SDPもま
た更新される。
一旦ABPの値が更新されると、PCが規定され、名前の解
明が可能となり、呼出されたルーチンの実行の開始が可
能となる。呼出されたルーチンに対する呼出しからの戻
りと同時に、スタツク・フレームは削除され、ABPは呼
出しルーチンのマクロ状態に保管された値に設定され
る。この呼出しルーチンは次に、この呼出しに続く時点
における実行を続行する。
プロセス610は、FORTRANステートメントA+BをEXAMPL
Eと呼ばれるFORTRANルーチンに置き、またこれをCALLER
と名付けられた別のFORTRANルーチンから呼出すことに
より詳細に示すことができる。この事例を簡単にするた
め、前記CALLERおよびEXAMPLEの両者が同じ実行領域を
有するものと仮定する。問題となるEXAMPLEの部分は下
記の如く示される。即ち、 サブルーチン(C) 整数X、C 整数A、B ・・・・・・ A=B ・・・・・・ 戻り 終り 新たな要素は新しい形式アーギユメントCと新しい局所
変数Xである。形式アーギユメントは、呼出しルーチン
において使用されるデータ項目からその値を受取るデー
タ項目である。このように、形式アーギユメントは呼出
し間で変化する。問題となるINVOKERの各部は下記の如
くに見える。
即ち、 サブルーチンINVOKER 整数Z ・・・・・・ CALL EXAMPLE(Z) ・・・・・・ 終り INVOKERにおけるCALL(呼出し)ステートントは、呼出
されつつあるサブルーチンの名前とサブルーチンの形式
アーギユメントに対する実際のアーギユメントの名前を
指定する。呼出しの間、サブルーチンの形式アーギユメ
ントは実際のアーギユメントにおいて生じる。このよう
に、このCALLステートメントにより規定される呼出しの
間、形式アーギユメントCはINVOKERにおける変数Zに
より表わされる値を有することになる。
INVOKERが編集される時、コンパイラはCALLのステート
メントと対応するCALL SINを生じる。CALL SINは手順目
的における呼出されたルーチンの場所の始めに対応する
ポインタを表わす名前および呼出しの実際のアーギユメ
ントを表わす名前のリストを含んでいる。CALLが実行さ
れる時、名前は、MAS502と機密保護スタツク504の諸操
作の実施のため前に述べた如くSINの名前とKOSマイクロ
コード710のマイクロコードを解くよう翻訳される。
第10図は、KOSマイクロコード710の呼出しマイクロコー
ドがMAS502と機密保護スタツク504を操作する方法を示
している。第10図は下記の要素を含む。即ち、 −FU120のFUレジスタ1014に含まれる呼出しマイクロコ
ード1001 −CALLステートメントを実行しつつあるINVOKERの呼出
しに帰属するマクロ状態の部分を含むPC装置1002 −FUレジスタ1014におけるレジスタ。FUレジスタ1014の
内容はマクロ状態の残りとEXAMPLEの場所と実際のアー
ギユメントZに対応する記述子を含む。
−手順目的1006はINVOKERとEXAMPLEとその名前テーブル
とそのコードに対する記入を含む。
−マイクロスタツク目的1008(MAS502)および機密保護
スタツク目的1010(機密保護スタツク504)は、ここで
論述するINVOKERおよびEXAMPLEの呼出しのためのスタツ
ク・フレームを含む。EXAMPLEのフレームは、両方のル
ーチンが同じ手順目的1006において含まれるため、INVO
KERのフレームと同じマクロスタツクの目的に存在し、
従つて同じ実行定義域を有する。
KOS呼出しマイクロコード1001は、最初に機密保護スタ
ツク504に関するINVOKERの呼出しのマクロ状態を保管す
る。以下に論述するように、この状態が保管される時、
KOSソフトウエア706の呼出しマイクロコード1001は他の
KOSソフトウエア706を使用してマクロ状態に保持された
場所の情報をMEM112において使用されたポインタの形式
に変換する。次に、呼出しマイクロコード1001はルーチ
ンの名前に対する記述子を用いて手順目的1006における
EXAMPLEの記入に対するポインタを見出す。この記入か
ら、呼出しマイクロコード1001はEXAMPLEの名前テーブ
ルに対するポインタとEXAMPLEのコードの始めを見出
す。呼出しマイクロコード1001はこれらのポインタを取
り、他のKOSソフトウエア706のマイクロコードを用いて
これらを記述子に翻訳し、またこの記述子をPBPおよびN
TPの値に対して保存されたレジスタ1004における場所に
記述子を置く。次に、この呼出しマイクロコード1001は
PC装置1002に含まれた値を更新して、これによりこの呼
出しが完了する時、実行されるべき次のSINがEXAMPLEに
おける最初のSINとなるのである。
呼出しマイクロコード1001は、次にSS504とMAS502に関
するEXAMPLEのフレームを構成する。この論議は、それ
自体MAS502におけるフレーム1102にのみ関する。第11図
はEXAMPLEのフレーム1102を示す。フレーム1102のサイ
ズは、EXAMPLEの局所変数(X、AおよびB)および形
式アーギユメントCによつて決定される。フレーム1102
のEXAMPLEの底部にはヘツダ1104がある。ヘツダ1104
は、スタツクを管理するためKOSソフトウエア706、KOS
マイクロコード710により使用される情報を含む。次に
は、アーギユメントCにより表わされる値を含む場所に
対するポインタ1106がくる。呼出しにおいては、Cに対
する実際の値はINVOKERにおける局所変数Zである。全
ての局所変数に言えることである。Zにより表わされる
記憶域はINVOKERの呼出しに帰属するスタツク・フレー
ムに含まれる。名前インタプリタがCの名前を解いた
時、記述子をレジスタに置く。呼出しマイクロコード10
01はこの記述子を取りこれを1つのポインタに変換し、
このポインタをヘツダ1104の上に記憶する。
FPのABPは、実際のアーギユメントに対する最後のポイ
ンタに続く場所を示すため、呼出しマイクロコード1001
はこの時前記場所を計算しこれを記述子に変換し、これ
をFPに対して予約されたレジスタ1004に置く。次のステ
ツプはEXAMPLEの局所変数に記憶域を与えることであ
る。EXAMPLEの手順目的1006は局所変数に必要とされる
記憶域のサイズを保持し、そのため呼出しマイクロコー
ド1001は手順目的1006からこの情報を得、それだけの記
憶域をフレーム1102に付加する。FPの新たな値および局
所データに対する名前のテーブルの記入に含まれる情報
を用いて、名前インタプリタ・マイクロコード715はこ
の時局所データに対する記述子を構成することができ
る。例えば、名前テーブルにおけるAの記入は、これが
FPから32ビツトオフセツトされて32ビツトの長さである
ことを規定する。このように、その記憶域は第11図にお
けるXおよびBに対する記憶域の間に該当する。
9.メモリーの照合および仮想メモリー管理システム(第
12図および第13図) 既に説明したように、局所記述子はAONフイールドとオ
フセツトフイールドと長さのフイールドを含む。第12図
は物理的記述子を示している。物理的記述子1202は、フ
レーム番号(FN)フイールド、変位(D)フイールドお
よび長さ(L)フイールドを含む。フレーム番号フイー
ルドおよび変位フイールドは共に、データを含むMEM112
における場所を指定し、また長さフイールドはデータの
長さを指定する。
以上のことから明らかなように、仮想メモリー管理シス
テムは、論理記述子1204に含まれるAONオフセツト場所
をフレーム番号変位場所に変換せねばならない。これは
論理ページをMEM112のフレームと関連させることによつ
て上記の如くになる。(註記、MEM112のフレームはスタ
ツク・フレームと混同するべきでない。)第13図は、MA
S502の目的1302が如何にして2次記憶において論理ペー
ジ1304に分割されるか、また論理ページ1304が如何にし
てMEM112におけるフレーム1306に移動されるかを示して
いる。フレーム1306はサイズが固定されたMEM112の連続
領域である。仮想メモリー管理システムがデータをMEM1
12に与える時、これは論理ページ1308と呼ばれるフレー
ム・サイズの領域において前記の状態になる。このよう
に仮想メモリーシステムの観点からは、各目的は論理ペ
ージ1308に分割され、1つのページにおけるデータのア
ドレスはこのデータの目的のAON、この目的におけるペ
ージ数およびこのページにおけるその変位からなる。第
13図においては、EXAMPLEの局所変数Bの場所は仮想メ
モリー・システムにより規定される如く示される。Bの
場所はUIDおよびオフセツト、あるいはJP114の内部にお
けるAONおよびオフセツトである。仮想メモリー・シス
テムにより規定されるように、Bの場所はAON、ページ
数1308およびこのページ内の変位である。あるプロセス
が変数Bを照合する時、仮想メモリー管理システムは全
ての論理ページ1308をMEM112のフレーム1306へ移動させ
る。Bの変位は同じ状態を維持し、仮想メモリー・シス
テムはその論理ページ番号1308をページを含むMEM112に
おけるフレーム1306の数に変換する。
仮想メモリー管理システムは、従つて2種類の変換を行
なう。即ち、(1)AONオフセツト・アドレスからAONペ
ージ番号変位アドレスへ、および(2)AONページ番号
からフレーム番号への変換である。
10.アクセス制御(第14図) 1つの目的が照合される毎に、KOSソフトウエア706、KO
Sマイクロコード710はこの照合が妥当であるかどうかを
検査する。以下の論議は、最初にCS101におけるアクセ
ス制御の論理的構造について述べ、次いでこれを構成す
るマイクロコードおよび素子について論述する。
CS101は、主題に関するアクセス、アクセスのモードお
よび目的サイズを規定する。以下の3つの状態が守られ
るならば、1つのプロセスが目的に見出されたデータ項
目を照合することがてきる。即ち、 1)プロセスの主題が目的に対するアクセスを行なう場
合 2)主題に対して規定されたアクセスのモードが意図さ
れた操作の実施に必要とされるモードを含む場合 3)データ項目が目的に完全に含まれる場合、即ちデー
タ項目のオフセツトに対して付加されたデータ項目の長
さが目的におけるビツト数を越えない場合 ある目的に対してアクセスする主題およびこれらの主題
の目的に対するアクセスの種類が、アクセス制御リスト
(ACL)と呼ばれる目的と関連するデータ構造により規
定される。目的のサイズはその属性の1つである。目的
のサイズまたはそのACLはいずれも目的には保持される
ことがない。両者はシステムのテーブルに含まれ、目的
のUIDによつてアクセス可能である。
第14図は、CS101におけるアクセス制御の論理的構造を
示す。主題1408は4つの構成要素を有する。即ち、主部
1404、プロセス1405、定義域1406およびタツグ1407であ
る。タツグ1407はCS101の本実施例においては構成され
ず、そのため以下の記述は主部1404、プロセス1405およ
び定義域1406についてのみ述べる。
−主部1404は照合を行なうプロセスが生じたユーザを規
定する。
−プロセス1405は照合を行なう時、プロセスを規定す
る。
−定義域1406は、手順が照合を行なう時、プロセスが実
行する手順の実行領域を規定する。
主題1408の各要素はUIDにより表わされる。もしUIDが零
UIDであるならば、主題の前記要素はアクセス検査には
影響を及ぼさない。非零UIDは、主題の要素についての
情報を含む目的のUIDである。主部目的1404はシステム
のユーザに関する識別ならびに勘定情報を含み、プロセ
ス目的1405はプロセス管理情報を含み、定義域目的1406
は定義域毎のエラー処理部についての情報を含んでい
る。
1つの目的に対するモードには次の3つのモードがあ
る。即ち、読出し、書込みおよび実行のモードである。
読出しおよび書込みは自明であり、実行は主題が目的に
含まれる命令を実行することを可能にするアクセスであ
る。
アクセス制御リスト(ACL)1412は記入1414からなる。
各記入は2つの要素、即ち主題テンプレート1416とモー
ド規定子1418である。主題テンプレート1416は目的を規
定する一群の主題を規定し、規定子1418はこれらの主題
の目的に対するアクセスの種類を規定する。論理的に見
れば、ACL1412は1つのプロセスがある目的1410を照合
する度に検査される。この照合は、プロセスのその時の
主題1408が目的1410のACL1412に関するものの1つであ
る場合、また主題1408に対する記入1414におけるモード
がプロセスが実施を要求する種類のアクセスを可能にす
る場合にのみ成功し得るものである。
11.仮想プロセサおよび仮想プロセツサのスワツピング
(第15図) 前述の如く、プロセス610によるプログラムの実行は、E
OS704がプロセス610を仮想プロセツサ612に対して拘束
しなければ生じ得ない。プロセス610の物理的実行は、
プロセツサの仮想プロセツサ612がJP114に対して拘束さ
れる間にのみ生じる。以下の論議は、仮想プロセツサ61
2に帰属するデータベースならびに仮想プロセツサ612が
JP114に対して拘束されかつこれから解除される手段に
関するものである。
第15図は、KOSソフトウエア706、KOSマイクロコード710
が仮想プロセツサ612を構成するため使用する素子およ
びテーブルを示している。FU120のWCSは、仮想プロセツ
サ612をJP114に対して結合しかつこれらをJP114から解
除するためのKOSソフトウエア706を保有する。タイマー
1502および割込み回線1504は、KOSソフトウエア706の呼
出しを生じる信号を生じるハードウエア素子である。タ
イマー1502は2つの素子、即ちある時点に達した時を信
号するようKOSソフトウエア706KOSマイクロコード710に
より設定することができる間隔タイマー1506と、仮想プ
ロセツサ612がKOSソフトウエア706を呼出す前にJP114に
対して拘束することができる最大時間間隔が存在するこ
とを保証するエツグ・タイマー1508とを含んでいる。割
込み回線1504は、JP114がIOS116からメツセージを受取
る時例えばIOS116がMEM112への論理ページのローデイン
グを完了する時に作用状態になる。
FU120の汎用レジスタ508は、その時JP114に拘束されて
いる仮想プロセツサ612に帰属する状態を保持する。こ
こで、仮想プロセツサ612は仮想プロセツサAと呼ばれ
る。更に、汎用レジスタ508はVPスワツピング・マイク
ロコード1510の実行のため予約されたレジスタを含む。
ALU1942(FU120の一部)は、仮想プロセツサ612の1つ
がJP114から解除され別の1つがJP114に拘束される時要
求される記述子からポインタへの変換、およびポインタ
から記述子への変換のために使用される。MEM112は、仮
想プロセツサ612に対するデータベースと、仮想プロセ
ツサ612の管理のためKOSソフトウエア706、KOSマイクロ
コード710により使用されるデータベースとを含む。KOS
ソフトウエア706、KOSマイクロコード710は、CS101に対
する固定数の仮想プロセツサ612を提供する。各仮想プ
ロセツサ612は仮想プロセツサ状態ブロツク(VPSB)614
により表わされる。各VPSB614は仮想プロセツサ612の管
理のためKOSソフトウエア706、KOSマイクロコード710に
より使用される情報を保有し、また更に仮想プロセツサ
612をあるプロセスと関連される情報を含んでいる。第1
5図は、一方が仮想プロセツサ612Aに帰属し、JP114にお
いて仮想プロセツサ612Aと置換することになる他方が仮
想プロセツサ612Bに帰属する2つのVPSB614を示す。VPS
B614はVPSBアレー1512に保持される。この1512における
VPSB614の指標は、VPSB614により表わされる仮想プロセ
ツサ612に帰属する仮想プロセツサ数1514である。仮想
プロセツサリスト1516は、仮想プロセツサ612の管理の
ためKOSソフトウエア706、KOSマイクロコード710が使用
するリストである。もし仮想プロセツサ612が実行可能
であれば、その仮想プロセツサ数1514は実行可能リスト
と呼ばれるリスト上にあり、また仮想プロセツサ612が
実行不能である場合はその理由に従つて実行不能の仮想
プロセツサ612は他のリストにある。仮想プロセツサ612
Bの仮想プロセツサ数1514は最初実行可能リストにある
ものと仮定しよう。
あるプロセスが仮想プロセツサ612に拘束される時、仮
想プロセツサ数1514はプロセスの手順目的901に複写さ
れ、プロセスの手順目的901のAONおよびスタツクは仮想
プロセツサ612のVPSB614に複写される。(あるプロセス
が仮想プロセツサ612に対して拘束される限り、このプ
ロセスのスタツクが活動状態に結合されるためAONが使
用される。)拘束操作はEOS704の要求におていKOSソフ
トウエア706、KOSマイクロコード710によつて実施され
る。第15図においては2つの手順目的906が示される
が、その一方は仮想プロセツサ612Aが拘束されるプロセ
スに帰属し、他方は仮想プロセツサ612Bが拘束されるプ
ロセスに帰属する。
CS101の全体的な作用上のある特徴について述べたが、C
S101の構造の一構成について更に以下に述べることにす
る。
E.CS101の構造的な構成(第16図、第17図、第18図、第1
9図、第20図) 1.(IOS)116(第16図、第17図) 第16図においては、IOS116の部分ブロツク図が示されて
いる。IOS116の主要素子には、ECLIPSEバースト・マル
チプレクサ・チヤネル(BMC)1614と、NOVAデータ・チ
ヤネル(NDC)1616と、IOコントローラ(IOC)1618と、
データ移動器(DM)1610とが含まれる。IOS116のデータ
・チヤネル素子、例えばBMC1614およびNDC1616は、外部
に対するIOS116のインターフエースを含む。情報および
アドレスは、デイスク・ドライブ、通信モードまたは他
のコンピユータ・システムの如き外部素子からIOS116の
データ・チヤネル素子によつて受取られ、MEM112に書込
まれるべくDM1610(以下に説明する)に対して送られ
る。同様に、MEM112から読出された情報はDM1610を介し
てIOS116のデータ・チヤネルの素子に与えられ、従つて
前述の外部の素子に対して与えられる。これらの外部素
子はCS101のアドレス指定可能な記憶空間の一部であ
り、UIDのアドレスを介してアドレス指定可能である。
IOC1618は汎用CPU、例えばデータ・ゼネラル社から入手
可能なECLIPSE系コンピユータである。IOC1618の主な機
能は、IOS116によるデータ伝送の制御である。更に、IO
C1618は、外部素子のアドレスをMEM112内の物理的アド
レスに翻訳するため各データ・チヤネル素子に対する個
々のマツプを生成する。第16図に示すように、各データ
・チヤネル素子は個々のアドレス翻訳マツプ(MAP)163
2および1636を含む。これは、IOS116がMEM112の物理的
アドレス空間の個々の領域を各データ・チヤネル素子に
対して割当てることを可能にする。この特徴は、1つの
データ・チヤネル素子が別のデータ・チヤネル素子に帰
属する情報の書込みまたは読出しをしないようにする保
護作用を提供する。更にIOC1618は、2つ以上のデータ
・チヤネル素子に対する重合するアドレス翻訳マツプを
生成して、これらのデータ・チヤネル素子がMEM112の物
理的アドレス空間の共通領域を共用することを可能にす
るのである。
IOS116のデータ・チヤネル素子およびMEM112間のデータ
転送は、バツフア・メモリー(BUF)1641を含むDM1610
を介する。バツフア1614は、MEM112およびIOS116が非同
期的に作用することを可能にする。DM1610はまた、MEM1
12に対する種々のデータ・チヤネル素子のアクセスを制
御するリング許与ゼネレータ(RGG)1644を含んでい
る。RGG1644は、種々のデータ・チヤネル素子により与
えられる負荷が変化する時IOS116のデータ・チヤネル素
子間のMEM112へのアクセスを割当てる際に柔軟性を有す
るように構成されている。更に、RGG1644は、データ・
チヤネル素子のどれもあるいはどのグループもMEM112に
対するアクセスを独占しないことを保証する。
第17図においては、RGG1644の作用を表わす図が示され
ている。更に、以下の説明において記述するよう、RGG1
644は種々のチヤネル素子に対して割当てられた多数の
ポートを走査する整流子として見做すことができる。例
えば、ポートA、C、EおよびGはBMC1614に、ポート
BおよびFはNDC1616に、またポートDおよびHは別の
データ・チヤネルに対して割当てることができる。RGG1
644はこれらポートの各々を順次走査し、もしある特定
のポートと関連するデータ・チヤネル素子がMEM112に対
するアクセス要求中であるならば、このデータ・チヤネ
ル素子に対してMEM112へのアクセスを許与することにな
る。もしあるポートに要求がなければ、RGG1644は即時
次のポートへの走査を続行する。1つ以上のポートが割
当てられた各データ・チヤネル素子は、これによりMEM1
12に対するアクセスの機会を保証される。例えば、その
時情報転送に関与していないデータ・チヤネル素子を表
示する未使用のポートは、MEM112に対するアクセスが種
々のデータ・チヤネル素子の情報転送負荷により動的に
変更されるように、有効に飛越される。RGG1644のポー
トは、必要に応じてある特定のCS101システムの適する
如きIOS116の種々のデータ・チヤネル素子間で再割当て
することができる。もし例えばある特定のCS101がBMC16
14ではなくてNDC1616を使用するならば、このCS101のND
C1616はこれ以上のポートの割当てが可能であるが、CS1
01のBMC1614はそれより少ない数のポートが割当てられ
る。
2.メモリー(MEM)112(第18図) 第18図においては、MEM112の部分的なブロツク図が示さ
れる。MEM112の主要な要素は主記憶バンク(MSB)1810
と、バンク・コントローラ(BC)1814と、メモリー・カ
ツシエ装置(MC)1816と、フイールド・インターフエー
ス装置(FIU)1820と、メモリー・インターフエース・
コントローラ(MIC)1822である。これらの要素のMEM11
2の入出力バスによるIOS116およびJP114に対する相互の
結合の状態が示されている。
MEM112は、IOMバス130とMIOバス129とIOMCバス131から
なるIOS116に対する単一ポートと、JP114に対する二重
ポートとを有する優先順位決定用インテリジエント・メ
モリーである。最初のJP114ポートMODバス140とPDバス1
46からなり、第2のポートはJPDバス142とPDバス146と
からなる。一般に、IOS116およびJP114によるMEM112に
関する全ての出入り転送は1つの32ビツト・ワードであ
り、IOMバス130、MIOバス129、MODバス140、JPDバス142
はそれぞれ32ビツトの巾を有する。しかし、CS101は、
データ・バスの実際の物理的は巾はユーザには明らかで
ない可変ワード長さの機械である。例えば、ユーザ・プ
ログラムにおける1つの名前は97ビツトのデータを含む
オペランドを指す。ユーザにとつては、この97ビツトの
データ項目は1回の操作でMEM112からJP114に対して読
出されるように見える。実際には、JP114はストリング
転送と呼ばれる一連の読出し操作においてMEM112からこ
のオペランドを読出すことになる。本例においては、こ
のストリング転送は3回の32ビツトの読出し転送と一回
の単ビツト転送からなる。単一のデータ・ビツトを含む
最後の単ビツト転送は、1つのビツトがデータであり32
ビツトが充填である32ビツトのワードとなる。MEM112に
対する書込み操作は同じ方法で行なうことができる。も
しMEM112に対する一回の読出しまたは書込み要求がデー
タの32ビツトより少ないデータ項目を指定するならば、
この転送は前述の最終転送と同じ方法で行なわれること
になる。即ち、単一の32ビツト・ワードは、非データビ
ツトが充填ビツトである場合に転送されることになるの
である。MEM112における大量のデータ記憶は、1つ以上
のメモリー・アレーのカード(MA)1812からなるMSB181
0において提供される。MA1812に関するデータの入出経
路は、MA1812に関する全ての制御およびタイミング機能
を実施するBC1814による。BC1814の機能は、アドレス指
定、データの転送、読出しまたは書込み操作が実施され
るかどうかの制御、リフレツシユ、スニツフイングおよ
びエラー訂正コードの諸操作を含む。BC1814によるMA18
12に関する全ての読出しおよび書込み操作は、4つの32
ビツト・ワードのブロツクにある。
MSB1810を含む種々のMA1812は、同じデータ記憶容量で
ある必要はない。例えば、あるMA1812は256Kバイトの容
量を有するが、他のMA1812は512Kバイトの容量でよい。
MSB1810におけるMA1812のアドレス指定は種々のMA1812
の形態に対して自動的に適合する。第18図に示したよう
に、各MA1812は、次の下位のMA1812における最も上位の
アドレスを表示するこのMA1812からの入力を受取るアド
レス回路(A)を含む。MA1812におけるこのA回路はま
た、MA1812からの全アドレス空間を表示する入力を受取
る。このMA1812のA回路は、次の下位のMA1812からの最
も上位のアドレスをそれ自体の容量を表わすそれ自体の
入力に加え、それ自体の最も上位のアドレスを表示する
次のMA1812に対する出力を生じる。MSB1810の全てのMA1
812はBC1814により並例にアドレス指定される。各MA181
2は、このようなアドレスを、前記の次の下位のMA1812
の最も上位のアドレスを表わす次の下位のMA1812からの
その入力、およびそれ自体の最も上位のアドレスを表わ
すそれ自体の出力と比較し、BC1814により与えられるあ
る特定のアドレスが前記の特定のMA1812内部に含まれる
アドレスの範囲内にあるかどうかを判定する。そのアド
レス空間が前記のアドレスを含む特定のMA1812は、この
時BC1814からの読出しまたは書込み要求を受入れること
により応答する。
MC1816はBC1814とIOS116とJP114間のデータの転送のた
めのデータ経路である。MC1816は、IOS16またはJP114の
いずれかによりその時使用されつつあるMSB1810からの
データを記憶する高速カツシエ装置を含む。これによ
り、MSB1810はMEM112に大きな記憶容量を提供し、MC181
6は高速のメモリーの様相を呈する。カツシエ装置とし
ての作用に加えMC1816は、IOS116がBC1814を介してMSB1
810に直接4つの32ビツトのワードのブロツクを書込む
ことを可能にするバイパス書込み経路を含んでいる。更
に、MC1816は、データがMC1816のカツシエから送出さ
れ、別のデータがMC1816のカツシエに転送される間記憶
されることを許容するカツシエ書戻し経路を含む。MC18
16のカツシエからの変位されたデータはこの時、更に都
合の良い時点でMSB1810に書戻すことができる。この書
戻し経路は、新たなデータがMC1816に書込まれる前に、
データをMC1816からMSB1810へ転送することにより生じ
る遅延を避けることによつてMC1816の作用速度を強化す
るのである。
MEM112のFIU1820、JP114とIOS116の両者によるMEM112に
関する書込みおよび読出しにおけるデータ・フオーマツ
トの操作を可能にする。例えば、FIU1820はアンパツク
状態の10進数データをパツク状態の10進数データに、ま
たその逆に変換することができる。更に、FIU1820はMEM
112がビツト・アドレス指定可能なメモリーとして作用
することを可能にする。例えば、前述の如く、MEM112に
関する全てのデータ転送は32ビツト・ワードである。も
し32ビツト以下のデータ転送が要求されるならば、これ
らのデータ・ビツトを含む32ビツト・ワードはMC1816か
らFIU1820へ読出されここで所要のデータ・ビツトを抽
出するため操作することができる。次に、FIU1820はこ
れらの要求されたデータ・ビツト・プラス充填ビツトを
含む32ビツト・ワードを生成し、この新たな32ビツト・
ワードをJP114またはIOS116に対して与える。IOS116か
らFIU1820を介するMEM112への書込みにおいて、データ
はIOMバス130上に転送され、FIU1820に読込まれ、これ
について処理され、MODバス140上に送出され、MODバス1
40からMC1816へ送出される。MEM112からの読出し操作に
おいて、データはMC1816からMODバス140に対して転送さ
れ、FIU1820に書込まれてこれにつれて処理され、IOS11
6に対するMIOバス129上に転送される。MEM112からJP114
へのデータ読出しにおいて、データはMC1816からMODバ
ス140上に送出され、FIU1820に送出されてこれについて
処理され、再びJP114に対するMODバス140上に送出され
る。JP114からMEM112への書込み操作においては、JPDバ
ス142上のデータはFIU1820に送出されてこれについて処
理され、次いでMC1816に対するMODバス上に転送され
る。MODバス140はこれによりFIU1820の操作のためのMEM
112の内部バスとして使用されるのである。
最後に、MIC1822は、BC1814とMC1816とFIU1820の主な制
御を行なう。MIC1822はPDバス146およびIOMCバス131か
らの制御入力を受取つてこれらに対して制御出力を与え
る。MIC1822はMEM112に対する主なマイクロコード制御
を有するが、BC1814とMC1816とFIU1820は各々内部マイ
クロコード制御を含む。独立した内部マイクロコード制
御は、BC1814とMC1816とFIU1820が、それらの諸操作がM
IC1822によつて開始された後に、MIC1822からは独立的
に作動することを可能にする。このため、BC1814とFIU1
820とMC1816とFIU1820とが独立的かつ非同期的に作動す
ることを可能にする。これにより、MEM112の作用効率お
よび速度はMEM112の操作のパイプライン作用を許容する
ことによつて促進されるのである。
3.取出し装置(FU)(第19図) FU120の主な機能はSINの実行である。これにおいて、FU
120はMEM112から命令およびデータ(SOPおよび名前)を
取出し、処理の結果をMEM112に戻し、EU122の作用を指
令し、ユーザ・プログラムの命令を実行し、CS101のオ
ペレーテイング・システムの諸機能を実施する。これら
の機能の一部として、FU120は論理アドレスおよび記述
子を生成してこれを操作し、汎用CPUとして作用するこ
とができる。
第19図においては、FU120の主要素子は記述子プロセツ
サ(DESP)1910である。DESP1910は汎用レジスタ・フア
イル(GRF)506を含んでいる。GRF506は、並列にアドレ
ス指定される3つの部分に垂直方向に分割された大きな
レジスタ・アレーである。最初の部分、即ちAONGRF1932
は論理アドレスおよび記述子のAONフイールドを記憶す
る。第2の部分、即ちOFFGRF1934は論理アドレスおよび
記述子のオフセツト・フイールドを記憶し、32ビツト巾
の汎用レジスタ・アレーとして使用される。第3の部分
であるGRF506のLENGRF1936は、論理記述子の長さフイー
ルドの記憶のための32ビツト巾のレジスタであり、また
データの記憶のための汎用レジスタでもある。MEM112か
らFU120への主要データ経路は、OFFGRF1934に対して入
力を提供するMODバス140による。第19図において示すよ
うに、データは種々の相互接続を経てOFFGRF1934からAO
NGRF1932およびLENGRF1936の入力側に転送することがで
きる。同様に、LENGRF1936およびAONGRF1932からの出力
は、AONGRF1932OFFGRF1934およびLENGRF1936の入力側に
対して送出することができる。
OFFGRF1934の出力は、DESP1910の演算論理装置(ALU)1
942の入力側に接続されている。ALU1942は、MUX1940に
より実行される汎用算術論理オペランドとは異なり、論
理アドレスおよび記述子の生成および操作において使用
することができる汎用32ビツトのALUである。ALU1942の
出力は、算術および論理演算の結果をMEM112またはEU12
2に対して転送することを可能にするためJPDバス142に
結合されている。
また、OFFGRF1934の出力側から結合されているのはMUX1
940である。MUX1940の出力はALU1942の入力側に与えら
れる。MUX1940は32ビツトのALUで、データ操作のための
アキユムレータを含む。MUX1940は、ALU1942と共に、DE
SP1910が32ビツトの算術および論理演算を実施すること
を可能にする。
MUX1940およびALU1942は、更に大きなオペランドの連続
する32ビツト・ワードについて連続的な操作を実施する
ことにより、32ビツトより大きなオペランドについての
算術および論理演算を可能にし得る。
DESP1910により生成されあるいは与えられる論理述子ま
たはアドレス、論理記述子(LD)バス1902に対して与え
られる。LDバス1902は更に、アドレス翻訳装置(ATU)1
928の入力側に結合されている。ATU1928は、論理記述子
をMEM112の物理的記述子に変換するためのカツシエ機構
である。
LDバス1902はまた名前カツシエ装置(NC)1926の書込み
入力側に結合されている。NC1926は、ユーザ・プログラ
ムにおいてその時使用中のオペランドの名前と対応する
論理記述子を記憶するカツシエ機構である。前述の如
く、その時使用中のオペランドと対応する名前テーブル
記入はMEM112において記憶される。その時実行中のユー
ザ・プログラムのオペランドに対するある名前テーブル
記入は、MEM112におけるこれらの名前テーブルからFU12
0に対して転送され、ここで対応する論理記述子を生成
するため評価される。これらの論理記述子はこの時NC19
26に記憶される。以下に更に述べるように、ユーザ・プ
ログラムの命令ストリームはMODバス140を介してFU120
の命令バツフア(IB)1962に対して与えられる。FU120
のオペランド分解装置(P)1964はIB1962からの名前を
分離即ち分解して、これらの名前をNC1924に対するアド
レス入力として与える。NC1924は更に、LDバス1902に対
して、従つてATU1928の入力側にも論理記述子出力を与
える。LDバス1902からのNC1926の入力は、名前テーブル
の記入の評価結果の論理記述子をNC1926に書込むことを
可能にする。FU120のOFFGRF1934は、以下に更に述べる
ように、LDバス1902から結合された入力を有し、ユーザ
・プログラムによるMEM112におけるデータの照合の保護
機能に関する情報を与えるカツシエ機構である。これに
より、NC1926、ATU1928およびPC1934は論理アドレスか
ら物理的アドレスに至る構造をアドレス指定するCS101
の名前空間のそれぞれの加速機構および保護機構であ
る。
再びDESP1910に関して、DESP1910はLENGRF1936の出力側
と結合されたBIAS1952を含んでいる。前述の如く、32デ
ータ・ビツトより多くのビツトを含むオペランドはスト
リング転送によつてMEM112およびJP114間に転送され
る。ストリング転送を実施するためには、FU120が対応
する一連の論理記述子を生成することが必要であり、こ
の場合これらの論理記述子の長さフイールドは5ビツト
以上ではなく、即ち32データ・ビツトより大きくない長
さを規定する。
ストリング転送により転送されるべきデータ項目を説明
する論理記述子はGRF506に記憶される。論理記述子のAO
Nフイールドは、AONGRF1932、OFFGRF1934のOフイール
ドおよびLENGRF1936のLフイールドに存在する。ストリ
ング転送における32ビツト・ワードの連続する転送毎
に、前記の元の論理記述子のOフイールドは転送される
データ・ビツトの数だけ増分されるが、このためLフイ
ールドは減分されることになる。GRF506に存在する論理
記述子はこれにより、ストリング転送の連続する転送毎
に、未だ転送されるべきデータ項目の部分を記述する。
OFFGRF1934のOフイールドはこのデータ項目への漸増的
に大きくなるオフセツトを表示するが、Lフイールドは
連続的に小さくなる長さを表示することになる。GRF506
における論理記述子のAONおよびOフイールドは、スト
リング転送の連続する論理記述子のAONおよびOフイー
ルドである。しかし、LENGRF1936に存在する論理記述子
のLフイールドは、このLフイールドが未だ転送される
べきデータ項目の残る長さを表示するため、連続するス
トリング転送の論理記述子のLフイールドのようには使
用されない。その代り、BIAS1952は連続するストリング
転送の論理記述子の5ビツトのLフイールドを生成する
が、LENGRF1936における論理記述子のLフイールドはこ
れに対応して減分する。各転送の間、BIAS1952は次のス
トリング転送の論理記述子のLフイールドを生成する
が、同時にその時のストリング転送の論理記述子のLフ
イールドを提供する。これにより、BIAS1952はその間、
Lフイールドのパイプライン化された諸操作の実施によ
つてストリング転送の実行速度を増加する。これにより
BIAS1952は、CS101がユーザにとつてストリング転送を
自動的に実施することによつて可変ワード長さの機械で
あるかのように見えるようにする。この機構は、例え
ば、32ビツトより大きな2倍精度の浮動小数点数のデー
タ項目の転送に使用されるのである。
最後に、FU120は、前述の全てのFU120操作を制御するた
めのマイクロコード回路を含む。特に、FU120はFU120の
全操作の段階的な実行を制御するための一連のマイクロ
命令を記憶するマイクロ命令シーケンス制御記憶(mC)
1920を含んでいる。一般に、これらのFU120の操作は2
つの種類に該当する。第1の種類は、ユーザ・プログラ
ムのSOPの実行に直接関連するマイクロ命令シーケンス
を含む。第2の種類は、名前テーブルの記入の評価の如
きいくつかの自動的な内部FU120機能を含むCS101のオペ
レーテイング・システムと関連するマイクロ命令シーケ
ンスを含む。
前述の如く、CS101は多重S言語機械である。例えば、
マイクロ命令シーケンス1920は少なくとも4つの異なる
ダイアレクトにおいてユーザのSOPを実行するためのmC1
920を含むことができる。mC1920は、書込み可能な制御
記憶装置からなり、種々のダイアレクトに対する組をな
すmC1920は種々のユーザのプログラムの実行に必要とさ
れる如くmC1920に関して転入および転出することができ
る。mC1920における1つ以上のダイアレクトに対する組
をなすmC1920を記憶することにより、ユーザ・プログラ
ムがユーザの言語のある組合せにより書込むことが可能
である。例えば、ある特定のユーザ・プログラムは、主
としてFORTRANで書込み可能であるが、あるCOBOLルーチ
ンも読出し可能である。これらのCOBOLルーチンは、こ
れと対応してCOBOLダイアレクトのSOPに翻訳され、mC19
20に記憶されたCOBOLmC1920によつて実行されることに
なる。
MEM112からFU120に対して与えられる命令ストリーム
は、第3図に関して前に述べた。この命令ストリームの
SOPおよび名前は、これらがMEM112から与えられる時、M
ODバス140からIB1962に翻訳される。IB1962は2つの32
ビツト(1ワード)レジスタを含む。IB1962はまた、こ
れが常に少なくとも1つのSOPまたは名前を有するよう
な方法でMEM112からの命令ストリームのSOPおよび名前
に対して読出すための取出し回路を含む。FU120は、IB1
962からSOPおよび名前を読出し、分離即ち分解する
(P)1964を含む。前述の如く、P1964はこれらの名前
をNC1926に与え、従つてこれが対応するオペランドをME
M112から読出すようにATU1928に対して論理記述子を与
える。P1964により分解されるSOPは、取出し装置のタス
ク指名テーブル(FUDT)1904および実行装置のタスク指
名テーブル(EUDT)1966に対する入力として与えられ
る。先ずFUDT1904について見れば、FUDT1904は有効に対
応するマイクロ命令シーケンスのmC1912における始動ア
ドレスSOPを翻訳するためのテーブルである。SOPのmC19
12のアドレスへのこの中間的な翻訳は、mC1912内のマイ
クロ命令シーケンスの有効なパツキングを可能にする。
即ち、あるマイクロ命令シーケンスは2つ以上のS言語
ダイアレクトに共通である。このようなマイクロ命令シ
ーケンスは従つて一旦mC1912に書込んで、異なるS言語
ダイアレクトの異なるSOPにより照合することができ
る。
EUDT1966はEU122に関する同様な機能を実施する。以下
において述べるように、EU122は、その操作を規定するS
OPによりEUDT1966を介してアドレス指定されるmC1912と
類似のmCを含む。更に、FU120はこのようなアドレスをm
C1912に与えて、必要に応じてあるFU120の操作を助ける
ためEU122の諸操作を開始する。FU120により要求される
このような諸操作の事例は、NC1926にロードされるべき
論理記述子を与えるため名前テーブル記入において必要
とされる計算を含んでいる。
EUDT1904およびEUDT1966の両者と関連しているのはダイ
アレクト(D)レジスタ1905と1967である。Dレジスタ
1905および1967は、あるユーザ・プログラムの実行にお
いてその時使用されつつある特定のS言語のダイアレク
トを示す情報を記憶する。Dレジスタ1905および1967の
出力は、mC1912とEU122のmCに対するアドレス入力の一
部として使用される。
4.実行装置(EU)122(第20図) 前述の如く、EU122は、ある算術演算操作からFU120を解
除するため設けられた演算論理装置である。EU122は、
パツクされあるいはアンパツクされた10進数の整数およ
び単精度および二倍精度の浮動小数オペランドについて
加減算、乗除算を実施することができる。EU122は、前
述の如くEUDT1966によりアドレス指定されてEU122の諸
操作を開始するマイクロコード制御(mC)2010を含む独
立的に作用するマイクロコード制御機械である。mC2010
はまた、FU120とEU122間で相互の割込みを取扱うための
ロジツクを含む。即ち、FU120はその時のEU122の操作に
割込んでFU120の操作を助けるためEU122を呼出すことが
できる。例えば、FU120は名前テーブル記入からの論理
記述子を生成する際に補佐を行なうためEU122を呼出す
ため、その時EU122により実行中の算術演算に割込みを
行なうことができる。同様に、その時の算術演算の実行
の際にFU120の補佐をEU122が要求する時、EU122はFU120
のその時の操作に割込みを行なうことができる。例え
ば、もしEU122がこれに零除算を行なうことを要求する
命令およびオペランドを受取るならば、EU122はその時
のFU120の操作に割込みを行なうことができるのであ
る。第20図においては、EU122の部分ブロツク図が示さ
れる。EU122は2つの演算論理装置を含む。第1の演算
論理装置(MULT)2014は整数および10進数のオペランド
について、また単精度および二倍精度の浮動小数点オペ
ランドの仮数フイールドについて加減算、乗算および除
算を行なうため使用される。第2の演算論理装置ALU(E
XP)2016は、MULT2014により浮動小数点の仮数フイール
ドについて行なわれた演算と平行して、単精度および二
倍精度の浮動小数点オペランドの指数フイールドについ
ての演算を行なうため使用される。MULT2014とEXP2016
の両者は、それぞれ1つの演算論理装置、即ちMULT2074
とEXPALU2084を含む。MULT2014とEXP2016はまた、AONGR
F1932とOFFGRF1984とLENGRF1936と同様に平行して作動
しかつアドレス指定されるレジスタ・フアイル、即ちそ
れぞれMRG2050とERF2080とを含む。
EU122に対して演算するオペランドはMODバス140を介し
てMEM112から与えられ、オペランド・バツフア(OPB)2
022に対して転送される。入力バツフアとしての作用に
加えて、OPB2022はあるデータ・フオーマツト操作を行
なつて入力オペランドをEU122により最も有効に操作さ
れるフオーマツトに変換する。特に、EU122とMULT2014
は、パツクされた10進数オペランドにより有効に演算す
るように設計することができる。OPB2020は、アンパツ
クされた10進数オペランドをパツクされた10進数オペラ
ンドに変換することができる。アンパツクされた10進数
オペランドは、各々の文字の4ビツトが零と9の間の10
進数の値を指定する2進数コードであるASCIIコードの
形態である。各文字の他のビツトはゾーン・フイールド
と呼ばれ、一般に特定のASCIIコードを識別する情報を
含む。例えば、零フイールド・ビツトは、ある特定のAS
CII文字が数字であるか、文字であるか、あるいは句読
点であるかを規定することができる。パツクされた10進
数オペランドは、零と9の間の10進数を指定する2進数
を各フイールドが含む一連の4ビツトのフイールドから
なつている。OPB2022は、ゾーン・フイールド・ビツト
を抽出して各文字の4つの数値ビツトをパツクされた10
進数の4つのビツトのフイールドにパツクすることによ
つて、アンパツクされた10進数オペランドをパツクされ
た10進数オペランドに変換するのである。
EU122はまた、例えばパツクされた10進数のフオーマツ
トにおいて、算術演算オペランドの結果を再びMEM112ま
たはFU120に対して転送するためのアンパツクされた10
進数フオーマツトに変換することもできる。この場合、
MALU2074の出力に現われるパツクされた10進数の結果
は、第20図には示されないマルチプレクサを介してMRF2
050に書込まれるが、このマルチプレクサはパツクされ
た10進数の結果の4ビツトの数字コード・フイールドを
アンパツクされた10進数のオペランド文字の対応するビ
ツトに変換して、ブランクをこれらのアンパツクされた
10進数の文字のゾーン・フイールド・ビツトに強制す
る。この操作の結果は、次にMRF2050からMALU2074に読
込まれ、これらのアンパツク10進数の文字に対するゾー
ン・フイールド・ビツトは定数ストア(CST)2060からM
ALU2074に読込まれる。MRF2050およびCST2060からのこ
れらの入力はMALU2074に加えられてアンパツク10進数フ
オーマツトにおける最終的な演算結果の出力を生じる。
これらの最終的結果は次に出力マルチプレクサ(OM)20
24を介してJPDバス142上に送出することができる。第1
の浮動小数点数の操作について考察すれば、浮動小数点
オペランドの加減算に加えて、浮動小数点オペランドの
指数フイールドの値を等化することが必要である。これ
は事前の位置合せと呼ばれる。浮動小数点数の演算にお
いては、2つのオペランドの指数フイールドはEXPALU20
34に送られて、指数フイールド間の差を判定するため比
較される。指数フイールド間の差を表わす出力はEXPALU
2034から浮動小数点制御装置(EPC)2002の入力側に与
えられる。FPC2002は更に、2つのオペランドの仮数フ
イールドを受取つたMALU2074に対して制御出力を与え
る。これに従つて、FPC2002の指令の下に作用するMALU2
074は、左右に1つのオペランドの仮数フイールドだけ
変位させてこのオペランドの指数フイールドを他のオペ
ランドの指数フイールドと有効に位置合せする。次いで
このオペランドの仮数フイールドの加減演算が進行し得
る。
EXPALU2034はまた乗算または除算における浮動小数点数
オペランドの指数フイールドの加減演算も実施するが、
MALU2074はオペランドの仮数フイールドの乗除算を実施
する。MALU2074による浮動小数点オペランドの仮数フイ
ールドの乗除算は、他のオペランドの部分積の発生に対
応する1つのオペランドの連続的な変位により実施さ
れ、またこれらの部分積の連続的な加減演算により実施
されるのである。
最後に、EU122は、最終結果の仮数フイールドの最上位
文字における零を除去するため最終結果の仮数フイール
ドの左寄せにより、また最終結果の指数フイールドの対
応する変位によつて浮動小数点オペランドの演算結果の
正規化を行なう。浮動小数点演算結果の正規化はFPC200
2により制御される。FPC2002は、MALU2074の正規化され
ない浮動小数点数の演算結果出力を検査して、この結果
の最上位文字(もしあれば)のどれが零を含むかを判定
する。次に、FPC2002はこれにより、EXPALU2034とMALU2
074に対して制御出力を与え、仮数フイールドから先頭
文字の零を除去するようにこれらの結果の指数および仮
数フイールドを対応するよう変位させる。浮動小数点数
の演算結果の正規化された仮数および指数フイールド
は、次に、MALU2074およびEXPALU2034からOM2024を介し
てJPDバス142に転送することができる。
前述の如く、EU122もまたオペランドについて加算、減
算、乗算および除算を行なう。この点に関して、EU122
は乗算および除算を有効に実施する際にFPC2002におけ
る先行零検出器を使用する。FPC2002の先行零検出器は
乗算または除算されるべき2つのオペランドの文字即ち
ビツトについて最も大きなものを検査して、どれが(も
しあるならば)乗算または除算演算を必要としないよう
零を含むかを判定する。従つて、FPC2002はオペランド
を左寄せしてこれら文字即ちビツトを有効に除去し、こ
れによりオペランドを乗算または除算する演算数を減少
し、従つてオペランドについての演算に要する時間を短
縮するのである。
最後に、EU122は、さもなければ浮動小数点数オペラン
ドに関する演算の実施のためのみにしかこれまで使用さ
れなかつた回路を用いることによつて、10進数値に関す
る算術演算を実施するために関連するハードウエアを用
いる独自の方法を使用する。前述の如く、MALU2074はパ
ツク状態の10進数値オペランド、即ち4ビツトの各ブロ
ツクが零と9間の数値を表わす2進数コードを含む4ビ
ツトの連続するブロツクの形態のオペランドについて演
算するよう構成されている。浮動小数点数オペランドは
同様に、4ビツトの連続するブロツクの形態である。し
かし、1つの浮動小数点数オペランドにおける4ビツト
の各ブロツクは、零と15の間の16進数値を表わす2進数
を含んでいる。パツク状態の10進数値オペランドによる
演算における最初のステツプとして、これらのオペラン
ドは一時に1つずつMALU2074にロードされ、またかかる
各オペランドを用いて全ての16進数値の6からなる数が
CST2060からMALU2074にロードされる。このCST2060の数
はパツクされた各10進数値オペランドに付加されて、こ
れらのパツクされた10進数値オペランドを16進数値オペ
ランドに有効に変換するが、この場合4ビツト・ブロツ
クは元の零から9までの範囲におけるものではなく6か
ら15の範囲内の数値を含んでいる。次に、MULT2014はこ
れらの変換されたオペランドについての算術演算を行な
い、この際これらのオペランドの4ビツト文字のどれが
算術演算における桁送りの発生をもたらしたかに関する
情報を検出してこれを保管する。最後のステツプにおい
ては、これらの変換されたオペランドに関する算術演算
の完了の結果による中間結果が、桁送りが発生したこれ
らの文字からの16進数値の6の控除により、パツクされ
た10進数値フオーマツトに再び変換される。EU122は、
有効にパツクされた10進数値オペランドを「6増し」オ
ペランドに変換し、これらの「6増し」オペランドにつ
いて算術演算を行ない、これらの算術演算の「6増し」
の結果をパツクされた10進数値フオーマツトに再び変換
するのである。
最後に、前述の如く、FU120がEU122からMEM112に対する
算術演算結果の転送を制御する。この際、FU120はMEM11
2のアドレス空間、即ち前記演算結果が転送されるべき
「コンテナ」のサイズを記述する論理記述子を生成す
る。ある算術演算、例えば整数の演算において、算術演
算結果は予期されたものよりも大きくなり得、またMEM1
12の「コンテナ」よりも多くのビツトを含み得る。コン
テナ・サイズ検査回路(CSC)2052は算術演算結果の実
際のサイズとMEM112の「コンテナ」論理記述子のLフイ
ールドとを比較する。CSC2052は、MEM112「コンテナ」
が算術演算結果より小さいかどうかを表示する出力を生
成する。
上述の序説においてCS101の構造および作用のいくつか
の特徴について簡単に述べたが、CS101のこれらの特徴
および他の特徴についてはCS101の構造および作用につ
いて更に詳細な説明において以下に更に詳細に説明す
る。更に、以下の説明においては、CS101の構造および
作用の前記および他の特徴について詳細に記述する。
1.序説(第101図乃至第110図) A.全体的な構造および作用(第101図) a.全体的な構造 第101図においては、コンピユータ・システム(CS)101
10の部分ブロツク図が示される。CS10110の主要素子
は、二重ポート・メモリー(MEM)10112と、ジヨブ・プ
ロセツサ(JP)10114と、入出力システム(IOS)10116
と、診断プロセツサ(DP)10118である。JP10114は取出
し装置(FU)10120と実行装置(FU)10122を含む。
最初に、IOS10116について述べれば、IOS10116は入出力
(I/O)バス10126を介して外部素子(ED)10124と相互
に結合されている。ED10124は、例えば、他のコンピユ
ータ・システム、キーボード/デイスプレイ装置および
デイスク駆動装置メモリーを含む。IOS10116は、対メモ
リー入出力(IOM)バス10130および対入出力メモリー
(MIO)10129を介してMEM10112のメモリー入出力(MI
O)ポート10128と、また入出力ジヨブ・プロセツサ(IO
JP)バス10132を介してFU10128と相互に結合されてい
る。
DP10118は、例えば、診断プロセツサ入出力(DPIO)バ
ス10136を介して外部キーボード/CRTデイスプレイ装置
(DU)10134と相互に結合されている。DP10118は診断プ
ロセツサ(DP)バス10138を介してIOS10116と、MEM1011
2と、FU10120と、EU10122と相互に結合されている。
MEM10112の対ジヨブ・プロセツサ(MJP)メモリー・ポ
ート10140は、ジヨブ・プロセツサ・データ(JPD)バス
10142を介してFU10120とEU10122と相互に結合されてい
る。MJP10140の出力は、メモリー出力データ(MOD)バ
ス10144を介してFU10120およびEU10122の入力側に結合
される。FU10120の出力は、物理的記述子(PD)バス101
46を介してMJP10140の入力側と結合されている。FU1012
0とEU10122は、取出し/実行(F/E)バス10148を介して
相互に結合されている。
b.全体的な作用 更に、以下に説明するように、IOS10116およびMEM10112
は、多重ユーザ・プログラムの実行の際JP10114の全体
的な制御の下で独立的に作用する。この点に関して、ME
M10112は、それぞれIOS10116およびJP10114に対する別
個の独立的なポートMIO10128およびMJP10140を有する優
先順序決定インテリジエント・メモリーである。MEM101
12は、外部素子10124(IOS10116を介して)およびJP101
14間の情報の転送のための主要経路である。このよう
に、MEM10112は種々の個々のユーザ・プログラム(例え
ば、データ、命令およびプログラムの実行結果)を受取
つてこれを記憶するためのバツフアとして、またJP1011
4に対する主メモリーとして作用する。
IOS10116の主要機能は、CS10110とED10124間の入出力バ
ツフアとしてである。データおよび命令は、ED10124と
共用できる方法およびフオーマツトによりI/Oバス10126
を介してED10124からIOS10116に対して転送される。IOS
10116はこの情報を受取つて記憶し、この情報をMEM1011
2への転送に適したフオーマツトに操作する。この時IOS
10116はMEM10112に対して、新たな情報がMEM10112へ転
送のため使用可能であることを表示する。MEM10112によ
る確認と同時に、この情報はIOMバス10130とMIO10128を
介してMEM10112に対して転送される。MEM10112は、この
情報をMEM10112の物理的アドレス空間の選択された部分
に記憶する。この時、IOS10116はJP10114に対して、IOJ
Pバス10132を介してFU10120に「注意」信号を与えるこ
とによつて新たな情報がMEM10112に存在することを通知
する。以下において更に説明するように、CS10110は、M
EM10112に記憶されたデータおよび命令をユーザ・プロ
グラムの実行において使用されたいくつかの情報構成に
なるように操作する。このような構成には、以下に更に
述べるように、ユーザ・プログラムの流れと実行を構成
しかつ制御する際にCS10110によつて使用されるいくつ
かの構成が含まれる。
FU10120とEU10122は、MEM10112に記憶されたユーザ・プ
ログラムの実行のためのCS10110のマイクロ機械を構成
するマイクロコードで共に制御される「機械」を独立的
に操作する。FU10120の主な機能の中には下記のものが
含まれる。即ち、(1)FU10120とEU10122による使用の
ためにMEM10112から命令およびデータを取出してこれを
翻訳すること、(2」ユーザ・プログラムの流れを構成
し制御すること、 (3)EU10122操作の初期化、(4)データについての
算術演算および論理演算の実施、(5)FU10120およびE
U10122からMEM10112へのデータの転送の制御、および
(6)以下に述べるある「スタツク」および「レジス
タ」機構の維持である。これもまた以下に述べるFU1012
0の「カツシエ」機構はJP10114の作用速度を強化するた
めに与えられる。これらのカツシエ機構は、MEM10112に
記憶され選定された情報のコピーを記憶するための高速
メモリーを部分的に含む加速回路である。この加速回路
に記憶される情報は、従つて、JP10114に対して更に迅
速に使用可能となる。EU10122は、整数、10進数または
浮動小数点数の算術演算の実行が可能な演算装置であ
る。EU1022の主な機能は、ある外部の算術演算からFU10
120を免除することであり、これによりCS10110の効率を
強化する。
一般に、JP10114における諸操作はメモリー対メモリー
単位で実行され、データはMEM10112から読出され、MEM1
0112に関して演算され、その結果はMEM10112に対して戻
される。この点に関して、JP10114におけるあるスタツ
クおよびカツシエ機構(以下に述べる)はMEM10112のア
ドレス空間の拡張部分として作用する。
作用においては、FU10120は、PA10146とMJP10140を介し
てMEM10112に対し物理的アドレスを提供することによつ
て、MEM10112からデータおよび命令を読出す。この命令
およびデータは、MJP10140およびMODバス10144を介して
FU10120およびEU10122に対して転送される。命令は第10
1図には示さないが以下において説明するFU10120のマイ
クロコード回路によつて翻訳され、必要に応じて、マイ
クロコード命令はF/Eバス10148またはJPD1042を介してF
U10120のマイクロコード制御装置からEU10122に対して
与えられる。
前述の如く、FU10120およびEU10122は、相互の機能に関
して非同期的に作用する。FU10120のマイクロコード回
路からEU10122に対するマイクロ命令は、EU10122の選択
された操作を開始することができる。この時、EU10122
は選択された操作を独立的に実行するように進行するこ
とができる。FU10020は多くの操作を同時に実行するよ
うに進行できるが、EU10122は選択された算術演算を完
了しつつある。この選択された算術演算の完了時に、EU
10122はFU10120に対して、演算結果がF/Eバス10148を介
して「初期接続手続」信号により使用可能であることを
信号する。FU10120は次に更に別の処理のための算術演
算結果を受取り、あるいは今述べたように、MEM10112に
対して算術演算結果を直接転送することができる。以下
に更に述べるように、FU10120とEU10122間の「キユー」
と呼ばれる命令バツフアは、EU10122により実施される
べき一連の算術演算を割当てることをFU10120に許容す
る。
命令の実行の結果の如き情報は、JPDバス10142によりFU
10120またはEU10122からMEM10112に書込まれる。FU1012
0は、PDバス10146およびMJPポート10140によつてMEM101
12に対して「物理的な書込みアドレス」信号を与える。
同時に、MEM10112に対して書込まれるべき情報はJPDバ
ス10142に置かれ、その後物理的書込みアドレスにより
選定される場所においてMEM10112に書込まれる。
FU10120はIOJPバス10132に注意信号を送つて、ユーザ・
プログラムの実行結果の如き情報がCS10110から読出さ
れることが可能である旨IOS10116に対して信号する。IO
S10116はこの時、MIOポート10128およびIOMバス10130に
より、MEM10112からIOS10116に対してこの情報を転送す
ることができる。IOS10116に記憶された情報はこの時I/
Oバス10126を介してED10124に対して転送される。
あるユーザ・プログラムの実行中、IOS10116により要求
されるある情報はMEM10112においては使用できない。こ
のような場合、更に以下の論議において述べるように、
IOJPバス10132により、JP10114は情報要求をMEM10112に
対して書込んで、かかる要求が行なわれた旨IOS10116に
通知することができる。IOS10116はこの時、以上述べた
方法でIOS10116を介して前記要求を読出して所要の情報
をED10124からMEM10112に転送する。このような操作に
おいては、JP10114によりアドレス指定可能な記憶空間
が仮想記憶空間と呼ばれるメモリーの管理プログラムと
してIOS10116およびJP10114が一緒に作用し、MEM10112
の記憶空間およびIOS10116がアクセスする全ての外部素
子の双方を含む。
前述の如く、DP10118、DPIOバス10136によりコンピユー
タ・システム10110と外部との間に第2のインターフエ
ースを提供する。DP10118、DU10134例えばCRTおよびキ
ーボード装置またはテレタイプがハードウエア(即ちス
イツチおよび表示灯)の制御盤により従来通り与えられ
る全ての機能を実施することを可能にする。例えば、DP
10118、DU10134がシステムの初期化および始動、診断プ
ロセスの実行および障害条件の監視および識別の如き目
的のためコンピユータ・システム10110の制御を行なう
ことを可能にする。DP10118はDPバス10138を介してIOS1
0116、MEM10112、FU10120およびEU10122の各々における
ほとんどのメモリーおよびレジスタ部分に対する読出し
および書込みアクセスを備える。従つて、CS10110にお
けるメモリーおよびレジスタは、システムの始動の間直
接にロードまたは初期化を行なうことができまた障害の
監視および識別のためのテストおよび診断信号により直
接の読出しまたはロードが可能である。更に、以下に更
に述べるように、システムの始動時または必要に応じ
て、マイクロ命令をJP10114のマイクロコード回路にロ
ードすることができる。
コンピユータ・システム10110の全体的な構造ならびに
作用について述べたが、このシステムのこれらの特徴お
よび他の特徴の以下の更に詳細な説明の理解を助けるた
め、CS10110のいくつかの特徴について次に簡単に説明
する。
C.用語の定義 以下の論述においては、CS10110の構造および作用に関
していくつかの用語が使用される。以下の記述の理解の
一助としてこれらの用語のあるものについて最初に説明
し定義することにする。他の用語については必要に応じ
て以下の説明の中で紹介する。
手順とは、ある操作の実施のため実行されるべき一連の
操作ステツプ即ち命令である。1つの手順は、操作の実
施においてこれについて作用されるべきデータを含む。
プログラムとは、1つ以上の手順の静的なグループであ
る。一般に、プログラムはユーザ・プログラム、ユーテ
イリテイ・プログラムおよびオペレーテイング・システ
ム・プログラムとして分類することができる。ユーザ・
プログラムは、CS10110とインターフエースする一群の
ユーザの内ある特定のユーザにより生成されかつこれに
特有の一群の手順である。ユーテイリテイ・プログラム
は、全てのユーザにとつて共通に使用可能であり、例え
ば、1つのコンパイラは、あるユーザの言語のプログラ
ムを1つのS言語プログラムにコンパイルするための1
組の手順からなる。オペレーテイング・システム・プロ
グラムはCS10110の資源の割当ておよび制御のためCS101
10に関して内部の一群の手順である。オペレーテイング
・システム・プログラムはまたCS10110内の各インター
フエースを規定する。例えば、以下において更に論述す
るように、あるプログラムにおける全てのオペランドは
「名前」で呼ばれる。あるオペレーテイング・システム
・プログラムは、オペランド名をMEM10112における各オ
ペランドの物理的場所に翻訳する。この名前の翻訳プロ
グラムは、このように、オペランドの名前(名前の空間
アドレス)とMEM10112の物理的アドレスとの間のインタ
ーフエースを規定する。
プロセスとは、物理的、論理的または仮想アドレス空間
を通る独立的な制御の軌跡であり、特に一連のプログラ
ム(即ち、手順)を介する実行経路である。1つのプロ
セスは一般に、1つのユーザ・プログラムおよびデー
タ、1つ以上のユーテイリテイ・プログラム、およびユ
ーザ・プログラムの実行に必要なオペレーテイング・シ
ステム・プログラムを含む。
目的とは、CS10110に対してアクセス可能な「データ空
間」の一義的に識別可能な一部分である。1つの目的
は、ある情報に対するコンテナと見做され、データ情
報、または手順情報、またはその両方を含み得る。1つ
の目的は、例えば、あるプログラム全体、または1組の
手順、またはデータの1ビツトを含み得る。目的はCS10
110にアクセス可能なデータ空間に連続的に配される必
要はなく、またある目的に含まれる情報はこの目的にお
いて連続的に配される必要もない。
定義域とは、CS10110の機密保護機構のためのCS10110の
作用状態である。各定義域は、1組の手順の実行のため
この定義域内の各目的にアクセスするこれら手順によつ
て定義される。各目的は、もしこれがある手順目的であ
る場合に実行され、あるいはもしこれがあるデータ目的
である場合に使用される1つの実行領域を有する。CS10
110は、もしこれが前記の実行域を有するある手順を実
行中であれば、ある特定の定義域において操作されるも
のと言われる。各目的は1つ以上の定義域に帰属するこ
とができ、1つの目的はもしこの定義域において実行中
のある手順がこの目的に対する潜在的なアクセスを有す
るならば、この定義域に帰属する。例えば、CS10110は
4つの定義域を有する。即ち、ユーザ領域、データベー
ス管理システム(DBMS)領域、拡張されたオペレーテイ
ング・システム(EOS)領域、および核心オペレーテイ
ング・システム(KOS)領域である。ユーザ領域は、ユ
ーザまたはユーテイリテイの手順の如き全てのユーザが
提供した手順の実行の領域である。DBMS領域は、データ
を記憶し、検索しかつこれを取扱うためのオペレーテイ
ング・システム手順に対する実行領域である。EOS領域
はCS10110とのユーザ・レベルのインターフエースを規
定しかつこれを形成するオペレーテイング・システム手
順、例えば実行フアイル、プロセスおよびI/O操作の制
御のための手順の実行領域である。KOS領域は、CS10110
の物理的資源を管理し制御する低レベルの保護オペレー
テイング・システムの実行領域である。CS10110の他の
実施態様は、これらの今述べた許りのもの以下または以
上の領域を有する。例えば、DBMS手順は、EOS領域に内
蔵することができ、またはEOS領域はI/O手順をI/O領域
に内蔵することにより分割することができる。CS10110
の各領域の数およびその間の境界数については何等ハー
ドウエアが強制する制限はない。しかし、あるCS10110
のハードウエアの機能および構造は領域に依存してい
る。
主題とは、CS10110の機密保護機構の諸目的のために、
その時の主体(ユーザ)、その時実行中のプロセスおよ
びこのプロセスがその時実行中である定義域の組合せと
して定義される。UIDにより識別される主体、プロセス
および定義域に加えて、主題はこれ以上の保護が要求さ
れる場合に使用されるユーザが割当てる識別コードであ
るタツグを含むことができる。あるプロセスにおいて
は、主体とプロセスは一定であるが、定義域はその時実
行中の手順によつて決定される。従つてプロセスの関連
する主題は目的の実行経路に沿つて変更可能である。
以上の用語について説明し定義したが、CS10110のいく
つかの特徴については次に簡単に説明する。
d、多重プログラム操作 CS10110は、2つ以上のプログラムを同時に実行するこ
とができ、またCS10110の資源を最も有効に使用するた
めプログラムの実行シーケンスを選択することができ
る。これは多重プログラミングと呼ばれる。この点に関
して、CS10110は一時的に、例えば1つのプログラムに
要求されるある資源即ちある情報が即時使用不可能であ
る時にこのプログラムの実行を中止し、所要の資源即ち
情報が使用可能になるまで別のプログラムの実行を進め
る。例えば、第1のプログラムにより要求される特定の
情報は、呼出される時にはMEM10112においては使用可能
ではない。JP10114は、更に以下に述べるように、第1
のプログラムの実行を中止し、この情報をIOS10116に対
して転送し、第2のプログラムを呼出して実行すること
ができる。IOS10116はED10124から所要の情報を取出し
てこれをMEM10112に転送することになる。ある時には、
IOS10116がJP10114に対し、要求された情報がMEM10112
において使用可能である旨通知した後、JP10114は第2
のプログラムの実行を中止し、第1のプログラムの実行
を再開することもできる。
e.多重言語操作 前述の如く、CS10110は多重言語機械である。COBOLまた
はFORTRANの如き高水準のユーザ言語で書かれた各プロ
グラムは、対応するソフト(S)言語プログラムにコン
パイルされる。即ち従来のコンピユータ・システムに関
しては、各ユーザ・レベル言語は、アセンブル言語とし
て古くから定義される対応する機械語を有する。古典的
なアセンブル言語とは対照的に、S言語は、ユーザの高
水準な言語における各指令が一般に2つまたは3つのSI
Nと呼ばれるS言語命令により置換される。あるSINは2
つ以上の高水準のユーザ言語によつて共有することがで
きる。以下の論議において更に記述するように、CS1011
0は各S言語に対する1組の、即ち、ダイアレクトのマ
イクロコード命令(Sインタプリタ)を提供する。Sイ
ンタプリタはSINを翻訳して、CS10110の詳細な制御に対
する対応する一連のマイクロ命令を提供する。CS10110
の命令の設定組および操作は、従つて、ユーザ・プログ
ラムを最も有効に実行するように特定のユーザ言語の如
何に拘わらず、各ユーザ・プログラムに対して誂らえる
ことができる。コンピユータ・システム10110は例え
ば、同等の効率でFORTRANおよびCOBOLの双方においてプ
ログラムの実行が可能である。更に、一人のユーザは、
効率を犠牲にすることなく、1つ以上の高水準のユーザ
言語において1つのプログラムを書くことができる。例
えば、あるユーザはCOBOLにより自分のプログラムの一
部を書き、ある部分をFORTRANで書くことを欲するかも
知れない。このような場合、COBOLの部分はCOBOLのSIN
コンパイルされて、COBOLのダイアレクトのSインタプ
リタを用いで実行されることになろう。FORTRANの部分
はFORTRANのSINにコンパイルされてFORTRANダイアレク
トのSインタプリタにより実行されることになろう。CS
10110の本実施例は全てのSINに対して1つの一定のフオ
ーマツトを使用する。この特徴により、各ダイアレクト
を個々に翻訳するための手段を設けることは不必要であ
るため、更に簡単なSインタプリタ構造が可能となりま
たSINの翻訳動作の効率を増進する。
f.アドレス指定構造 CS10110における使用のため、あるいはその操作により
形成される各目的は恒久的にある1つの識別子(UID)
が割当てられる。ある目的のUIDにより、これによりあ
るいはそのためこれが生成された特定のCS10110の如何
に拘わらずあるいはこれが後で見出される場所の如何に
拘わらず、この目的が如何なる時も識別され位置決めさ
れることを可能にする。このように、ある新たな目的が
規定される毎に、個々に割当てられる社会保証番号の数
の如何に拘わらず新たな1つのUIDが割当てられる。あ
る目的に含まれる情報のある特定の部分は、この目的の
UID、このセグメントの最初のビツトの目的の開始から
のオフセツトおよび情報セグメントの長さ(ビツトの
数)からなる局所アドレスによつて見出すことができ
る。従つて、ある目的内のデータは、あるビツトの細分
性に基いてアドレス指定することができる。以下の論議
において更に記述されるように、UIDは論理アドレス、
例えばポインタとしてCS10110内で使用される。論理的
には、CS10110における全てのアドレスおよびポインタ
がUIDアドレスおよびポインタである。しかし、前述の
如く、また以下に述べるように、JP10114内においての
み有効であり活動状態の目的数と呼ばれる短い一時的な
独自の識別子がJP10114内で使用されて、アドレス・バ
スの巾および取扱われたアドレス情報の量を低減する。
ある目的が1つのプロセスの実行の際使用するために補
助ストアCED10124からMEM10112に対して転送される時、
この目的はCS10110において活動状態となる時、このよ
うな各目的は1つの活動状態の目的数(AON)が与えら
れる。AONは短い特有の識別子であり、以下に述べるCS1
0110のある情報構造を介して目的のUIDと関連させられ
る。AONは、JP10114のアドレス・バスの所要巾およびJP
10114において取扱われるアドレス・データの量を減少
させるためUIDの代りにJP10114内でのみ使用され、また
JP10114において使用される。UIDの論理アドレスにおけ
るように、ある目的におけるデータの一部は、この目的
のAON、この目的におけるデータの部分の第1のビツト
の目的の開始からのオフセツトおよび前記部分の長さか
らなるあるビツトの細分性のAON論理アドレスを介して
アドレス指定することができる。
あるプロセスの実行中のMEM10112(UIDA)とJP10114(A
ON)間の論理アドレス、例えばポインタの転送は、UID
とAON間の変換を必要とする。以下の論議において述べ
るように、この変換は、部分的に前述の情報構造によつ
て達成される。同様に、MEM10112に記憶された情報を物
理的にアクセスするため、MEM10112における論理アドレ
スから物理的アドレスへの変換は、AONの論理アドレス
をMEM10112の物理的アドレスと関連させるCS10110の情
報構造によつて達成される。
あるプログラムに現われる各オペランドは、このプログ
ラムがコンパイルされる時1つの名前を割当てられる。
その後のこれらのオペランドに対する全ての照合はそれ
らの割当てられた名前による。以下の論議において詳細
に述べるように、CS10110のアドレス指定構造は、ある
命令ストリームおよび名前をAON論理アドレスに解明す
るための指令を含む名前テーブルに現われる時、名前を
識別するための機構を含んでいる。この時実際のオペラ
ンドを得るためにAON論理アドレスを評価することがで
き、例えば、MEM10112の物理的アドレスに変換すること
ができる。命令ストリーム(プロセス)におけるオペラ
ンドを識別するための名前の使用は、(1)一定のフオ
ーマツトの簡単な照合により複雑なアドレスの置換を可
能にし、(2)命令ストリームにおけるデータ形式によ
りある操作が直接規定されることを要求せず、(3)あ
るオペランドに対する反復照合が単にオペランドの名前
を反復することによつて1つの命令ストリームにおいて
実施することができ、(4)アドレス変換に対する部分
的に完成した名前をあるカツシエ装置に記憶させてオペ
ランドの照合の迅速化を可能にするものである。これに
よつて名前の使用は、オペランドの照合のために命令ス
トリームにおいて必要とされる情報の量を実質的に減少
しまた並列に作動する下位の機構によりオペランドの照
合を実施することによつて有効にCS10110の速度を向上
させる。
最後に、CS10110のアドレス構造は、各プロセスに対す
る1組のアーキテクチヤ基底ポインタ(ABP)を内蔵す
る。ABPは、1つのプロセスに帰属するデータおよび手
順情報を見出すための1つのアドレス指定フレームワー
クを提供し、また例えば、名前をAON論理アドレスに変
える際に使用される。
g.機密保護機構 CS10110の機密保護機構は、ユーザが(1)データを含
む別のユーザのプロセスにアクセスすることまたは破壊
すること、および(2)CS10110の動作を妨害するかさ
もなければ破壊することを防止するように構成されてい
る。各々の特定の活動状態の目的に対するアクセス権
は、その時活動状態の1つの機能として動的に許与され
る。主題は、その時の主体(ユーザ)、実行中のその時
のプロセスおよびプロセスがその時実行されつつある定
義の組合せによつて規定される。主体、プロセスおよび
領域の他、主題は機密保護の付加を必要とする場合に使
用されるユーザ割当て識別コードであるタツグを含む。
あるプロセスにおいては、主体とプロセスは一定である
が、定義はその時実行中の手順によつて決定される。従
つて、プロセスの関連する主題は、プロセスの実行経路
に沿つて変更可能である。
CS10110の本実施例においては、実行のKO制御領域を有
する手順がKOS、EOS、DBMSおよびユーザ領域における目
的に対するアクセスを行ない、EOS実行領域を有する手
順はEOS、EBMSおよびユーザ領域における目的に対する
アクセスを行ない、DBMS実行領域を有する手順がDBMSお
よびユーザ領域における目的に対するアクセスを行な
い、ユーザ実行領域を有する手順はユーザ領域における
目的に対してのみアクセスする。従つて、ユーザはKOS
実行領域における目的に対するアクセスを行ない得ず、
またCS10110の低レベルの機密保護オペレーテイング・
システムには影響を及ぼし得ない。しかし、ユーザ・プ
ログラムは、KOS実行領域を有する手順の実行の呼出し
を行なうことができる。この時、プロセスの主題はKOS
領域にあり、手順はKOS領域におけるいくつかの目的に
対してアクセスすることになる。
以下の論議においても記述されるCS10110の本実施例に
おいては、各目的はこれとアクセス制御リスト(ACL)
を関連させる。ACLは、この目的に対するアクセスを行
なう各主題に対するアクセス制御記入(ACE)を含む。A
CEは、各主題毎に、この目的に関して主題が有するアク
セス権を規定する。
通常、主題と目的との間には、目的のACLにより規定さ
れるもの以外には何の関係も存在しない。しかし、CS10
110は、ユーザが特にどの主題が目的に対してどんなア
クセスを有するかを規定できる拡張ACLを有する拡張形
式の目的を保持している。
以下の論述において述べるCS10110の別の実施態様にお
いては、アクセス権は動的に与えられる。あるプロセス
の実行中、1つの手順は第2の手順を呼出して呼出され
た手順に対し1つのアーギユメントを送る。この呼出し
側の手順はまた、呼出された手順に対する前述アーギユ
メントに対して選定されたアクセス権を送る。この送ら
れたアクセス権は、呼出し期間においてのみ存在する。
動的なアクセスの実施においては、アクセス権は要求さ
れる時にのみ与えられる。ACLの実施においては、アク
セス権は目的の形成または特定の要求と同時に与えられ
る。いずれの実施態様においても、ある交差領域におい
てアーギユメントが送られる各手順はこれとアクセス情
報アレー(AIA)を関連させる。手順のAIAは、呼出され
た手順が送られたアーギユメントについて処理できる前
に呼出し側の手順(主題)がどのアクセス権を持たねば
ならないかを記述する。CS10110の機密保護機構は、呼
出し側の手順のアクセス権を呼出された手順により必要
とされるアクセス権と比較する。このため、呼出し側の
手順がしてはならないことを呼出された手順に行なわせ
ることはできない。呼出し側の手順は、呼出された手順
に対して呼出し手順により保有されるアクセス権のみを
与えることができる。
CS10110の構造、作用およびいくつかの特徴について述
べたが、CS10110のこれらの特徴および他の特徴につい
ては以下において更に詳細に説明することにする。
B.コンピユータ・システム10110の情報構造および機構
(第102図、第103図、第104図、第105図) CS10110は、効率的なプロセス実行においてこれを助け
るある情報構造および機構を有する。これらの構造およ
び機構は3つの一般的な形式に該当するものと考えるこ
とができる。第1の形式は、プロセス自体、あるユーザ
のプロセスからなる、即ちユーザのプロセスの実行と直
接関連する手順およびデータ目的に関する。第2の形式
はプロセスの管理、制御および実行のためのものであ
る。これらの構造は一般にCS10110において活動状態に
ある全てのプロセスにより共有される。第3の形式は、
CS10110のマイクロ機械情報構造および機構である。こ
れらの構造は、CS10110のマイクロ機械の不変の操作と
関連し、CS10110のマイクロ機械に対して特定のもので
ある。
a.序説(第102図) 第102図においては、ある情報構造および機構を示したC
S10110の構成(MEM10112、FU10120およびEU10122)が示
される。これらの情報構造および機構はMEM10112、FU10
120、EU10122およびIOS10116間の境界を越える、即ちこ
れを「分断」することを理解すべきである。第103図の
上部について見ればプロセス構造10210は、前述の第1
と第3の形式の情報構造である個々プロセスと最も緊密
に関連する情報構造および機構を有する。プロセス構造
10210はMEM10112に存在し、仮想プロセス10212は仮想プ
ロセスVP1乃至Nを含む。仮想プロセス10212は、CS1011
0の本実施例においては、256までのVPを含む。前述の如
く、各VPは1つのユーザのプロセスに特定のある目的、
例えば、これまでに述べかつ以下の記述において更に述
べるスタツク目的を保有する。各VPはまた、例えば他の
プロセス情報に対するポインタであるプロセスの実行に
必要なある情報を含むプロセス目的を含む。
仮想プロセス・スタツク・ブロツク(VPSB)10218は、C
S10110による実行のため選定されたVPの実行を管理する
ためのあるテーブルおよび機構を含むVPSBを含む。
ある特定のVPは、以下の論議において説明される仮想プ
ロセス・デイスパツチヤが実行に妥当な前記VPを選択す
る時に、CS10110に対して拘束される。この選択されたV
Pプロセス目的は前述の如く、VPSBにスワツプされる。V
PSB10218は、例えば、CS10110が同時に16または32まで
のVPを実行することができるように16または32の状態ブ
ロツクを有することができる。VPSBに割当てられたVPが
実行される時、このVPはFU10120とEU10122に示された情
報構造および機構にスワツプされる。FU10120およびEU1
0122においてそれぞれ示されたFUレジスタおよびスタツ
ク機構(FURSM)10214およびEUレジスタおよびスタツク
機構(FURSM)10216は、CS10110に対して拘束されたVP
の実行において使用されるレジスタおよびスタツク機構
を含む。これらのレジスタおよびスタツク機構もまた、
以下に述べるように、あるCS10110のプロセス管理機能
に対して使用される。手順目的(PO)10213は、CS10110
において実行中のプロセスの手順目的(PO)1乃至Nを
含む。
アドレス指定機構(AM)10220は、CS10110のプロセス管
理システムの一部であり、一般に以下の論議において説
明するようにコンピユータ・システム10110のアドレス
指定機能と関連している。UID/AONテーブル10222は、前
述のUIDおよびAONを関連させるための構造である。メモ
リー管理テーブル10224は、(1)AONの論理アドレスお
よびMEM10112の物理的アドレスを関連させ、(2)MEM1
0112の物理的アドレス空間を管理し、(3)MEM10112と
CS10110の補助ストア(ED10124)との間の情報の転送を
管理し、(4)目的をCS10110に活性化するための構造
を含み、名前カツシエ装置(NC)10226およびアドレス
翻訳カツシエ装置(ATC)10228はCS10110に対してその
時拘束されたVPに関連するアドレス指定情報を記憶する
ための加速機能である。以下に更に述べるNC10226は、
オペランド名をAONアドレスに関連させる情報を含む。
これもまた以下において更に述べるATC10228はAONアド
レスをMEM10112の物理的アドレスと関連させる情報を含
む。
AM10220に続いて示す機密保護機構10230は、機密保護テ
ーブル10232と機密保護カツシエ装置(PC)10234を含
む。機密保護テーブル10232はCS10110において活動状態
の各目的に対するアクセス権に関する情報を含む。PC10
234は、CS10110に対してその時拘束されるV先行のある
目的に関する機密保護情報を含む。
PM10230に続いて示されるマイクロ命令機構10236は、マ
イクロコード(Mコード)ストア10238と、FU(マイク
ロコード)Mコード構造10240と、EUマイクロコード
(Mコード)構造10242を含む。これらの構造は、SINの
翻訳のため、またCS10110の詳細な作動の制御のための
マイクロ命令機構およびテーブルを含む。マイクロ命令
機構10232はまた、CS10110の物理的資源を制御する低レ
ベルの機密保護操作システムの操作中部分的に使用され
るマイクロコード・テーブルおよび機構を提供する。
このように、第102図の助けを借りてCS10110の情報構造
および機構のいくつかについて簡単に述べたが、これら
の情報構造および機構について更に詳細に以上述べた順
序で説明することにする。この説明においては、第102
図および以下の論述の他の図面に示したMEM10112を示す
にあたつて、MEM10112のアドレス指定可能な記憶空間が
示されることに注意されたい。MEM10112の記憶空間のあ
る部分は、ある情報構造および機構を含むものとして構
成されている。これらの構造および機構はMEM10112にお
ける実際の物理的存在であるが、これらが占めるMEM101
12のアドレス空間の場所および量の双方において変化し
得る。これらの構造および機構を含む単一の大きなメモ
リーの割当て位置は、これらの構造および機構がCS1011
0の最も有効な作用に必要とされる如く再構成すること
を可能にする。別の実施態様においては、物理的別個の
メモリーを用いて、単一のメモリーの割当てられた部分
以外のMEM10112に示された構造および機構を含むように
することができる。
b.プロセス構造10210(第103図、第104図および第105
図) 第103図においては、プロセス構造10210の部分的な表示
が示される。特に、第103図は実行のために選択された
プロセス(P)10310とプロセス目的(PO)10213におけ
るその関連する手順目的(PO)とを示している。P10310
はPO10213における4つの手順目的を含むものとして第1
03図に示される。この表示は表示の明瞭化のためであ
り、ある特定のP10310はどんな数の手順目的でも含み得
ることを理解すべきである。また、表示の明瞭化のた
め、EURSM10216がFURSM10214と類似するためこのFURSM1
0216は示さない。FURSM10216については、CS10110の構
造および作用の以下の詳細な論議において詳細に記述す
る。
前述の如く、各プロセスはあるデータおよび手順目的を
含む。P10310について第103図に示したように、手順目
的はP010213に存在する。データ目的は、P10310におい
て静的でデータ領域とスタツク機構を含む。PO、例えば
KOS手順目的(KOSPO)10318は、各々がプロセスの実行
において実施されるべき演算を規定する一連のSINであ
るプロセスの種々の手順を含んでいる。以下に述べるよ
うに、手順目的はまた、内部に含まれる手順の実行に際
して使用されある情報を含む。静的なデータ領域(SD
A)は、プロセスの持続期間の間存在するデータを記憶
するため一般に保留されたデータ目的である。P10310の
スタツク機構は、手順の呼出しおよび戻し、およびJP10
114に関するプロセスの出入れスワツピングのための手
順のスタツキングを可能にする。マクロスタツク(MA
S)10328乃至10334は、一般に、ある自動データ(ある
手順の実行中に生成されかつこの手順の持続期間中存続
するデータ)を記憶するために使用される。P10310にお
けるスタツクとは別個に示したがSDAはMAS10328乃至103
34と共に含むことができる。機密保護スタツク(SS)10
336は一般に、呼出された各手順に対するCS10110のマイ
クロ機械の状態を記憶する。SS10336に記憶された情報
は、ある呼出された手順からの戻りと同時に、またはあ
るVPをCS10110に対して拘束(スワツピング)する時、
機械の状態が回復することを許容する。
P10310において示したように、各プロセスは領域に基づ
いて構成される。従つて、P10310は、各領域毎に、それ
らの実行領域であるSDAおよびMASとしてこの領域を有す
る手順を含む1つ以上の手順目的を含むことができる。
例えばP10310のKOS領域は、KOSPO10318とKOSSDA10326と
KOSMAS10334を含む。P10310のSS10336はP10310のどの単
一領域にも存在しないが、その代りスタツク機構がCS10
110のマイクロ機械に帰属する。
P10310の全体的な構造について記述したがP10310の個々
の情報構造および機構については次に更に詳細に説明す
る。
1.手順目的(第103図) KOSPO10318はCS10110の手順目的の典型であり、以下の
論議においては例示のため触れることにする。KOSPO103
18の主な構成要素は、ヘツダ10338と、外部記入記述子
(EED)領域10340と、内部記入記述子(IED)10342と、
S−OPコード領域10344と、手順環境記述子(PED)1034
8と、名前テーブル(NT)10350とアクセス情報アレー
(AIA)領域10352である。
ヘツダ10338は、KOSPO10318を識別し、今論議するEED領
域10340における記入数を表示するある情報を含む。
EED領域10340とIED領域10342は共にKOSPO10318における
各手順に対する記入記述子(ED)を含む。KOSPO10318は
手順1、2および11を含むものとして示され、その内手
順11は論議において一例として使用されよう。EDは有効
に、KOSPO10318における全ての情報が見出すことができ
るもののあるものを介する指標からなる。IEDは、KOSPO
10318に含まれる他の手順からのみ呼出すことができるK
OSPO10318の全ての手順に対する指標を構成する。EED
は、KOSPO10318に対して外部の手順によつて呼出し可能
なKOSPO10318の全ての手順に対する指標を構成する。外
部で呼出し可能な手順は、外部の呼出し側の手順のアク
セス権を確認する際、CS10110の機密保護機構について
以下に論述するように、顕著な手段である。
ED11、即ち手順11に対するEDに関しては3つのフールド
が内部に示される。手順環境記述子オフセツト(PEDO)
フイールドは、PED領域10348においてKOSPO10318の開始
に関連する手順11のPEDの開始を表示する。以下におい
て更に述べるように、手順のPEDはこの手順の実行にお
いて使用される情報の決定のための1組のポインタを含
む。PED領域10348は、KOSPO10318に含まれる各手順に対
するPED領域を含む。CS10110の本実施例においては、単
一のPEDは2つ以上の手順により共有することができ
る。コード記入点(CEP)フイールドは、以下に説明す
る手順ベース・ポインタ(PBP)に関連する。手順11のS
INコードおよびSINコード領域10344の開始を示す。最後
に、ED11の最初のフレーム・サイズ(IFS)フイールド
は、手順11の自動データを記憶するKOSMAS10334のフレ
ームの所要の初期フレーム・サイズを表示する。
PED11、即ちPED領域10348における手順11のPEDは、手順
11の実行において使用される情報を決定するための1組
のポインタを含む。PED11における最初の記入は、PED11
を識別する情報を含むヘツダである。PED11の手順ベー
ス・ポインタ(PBP)の記入は、これからKOSPO10318に
おける他の情報が決定可能である固定基準を提供するポ
インタである。ある特定の事例においては、手順11のCE
Pは、PBPに対する、S−OPコード領域10344における手
順11のS−OPコードの開始の位置を表示する。以下にお
いて更に述べるように、PBPはCS10110のアーキテクチヤ
・ベース・ポインタ(ABP)である。CS10110のABPはCS1
0110のアドレス空間のアドレス指定を容易にするためCS
10110において使用される1組のアーキテクチヤ・ポイ
ンタである。PED11の静的データ・ポインタ(SDP)の記
入は、KOSPO10318においてP10310のKOSSDA10326のある
パラメータを指定するデータを指示する。名前テーブル
・ポインタ(NTP)の記入は、手順11のオペランドに対
する名前テーブル記入(NTE)のNT10350における決定を
表示するポインタである。NT10350およびNETについて
は、コンピユータ・システムの10110のアドレス指定構
造の以下の論議において更に詳細に記述することにす
る。PED11のSインタプリタ・ポインタ(SIP)記入は、
CS10110のマイクロコード構造の以下の論議において更
に詳細に論述する、手順11のSINコードの翻訳において
使用されるべき特定のSインタプリタ(SINT)を指示す
るポインタである。
最後に、AIA10352に関しては、このAIA10352は、前述の
如く、KOSPO10318を呼出すどんな外部の手順でも要求す
るアクセス権に関する情報を含んでいる。外部手順によ
り呼出すことができる各KOSPO10318の手順のためにAIA1
0352が存在する。ある特定のAIAの記入は、EED領域1034
0におけるEDを有する1つ以上の手順により共有するこ
とができる。各EEDは、説明の明瞭化のため示されない
が、この手順に対応するAIA記入が照合されねばならず
またこの手順が呼出される時は常に呼出し側の手順のア
クセス権が確認されねばならないことを示すある情報を
含んでいる。
2.スタツク機構(第104図、第105図) 前述の如く、P10310のスタツク機構は、部分的に機械の
状態を記憶するために使用されるSS10336と、P10310の
手順の実行中に生成される局所データを記憶するために
使用されるMAS10328乃至10334を含む。P10310はCS10110
の各領域に対するMASを含むものとして示されている。C
S10110の別の実施態様においては、ある特定のP10310
は、P10310がある手順を実行しつつある定義に対しての
みMASを含む。
MAS10328乃至10334およびSS10336に関しては、P10310が
11の手順呼出しを有するものとして示される。手順0は
手順1を呼出し手順1は手順2を呼出す、等々である。
1つの手順が呼出され毎に、呼出された手順が実行され
る定義のMASには対応するスタツク・フレームが構成さ
れる。例えば、手順1、2および11がKOS領域において
実行し、従つて手順1、2および11に対するMASフレー
ムがKOSMAS10334に配される。同様に、手順3および9
がEOS領域におてい実行し、その結果それらのスタツク
・フレームがEOSMAS10332に配される。手順5および6
はDBMS領域において実行し、この結果それらのスタツク
・フレームはDBMSMAS10330に配される。手順4、7、8
および10はユーザ領域において実行し、それらのスタツ
ク・フレームはUSERMAS10328に配される。手順11は最も
後で呼出された手順であり、KOSMAS10334における手順1
1のスタツク・フレームはその時のフレームと呼ばれ
る。手順11は、VP10310がCS10110に対して拘束されるそ
の時に実行中の手順である。
CS10110のマイクロ機械のスタツク機構であるSS10336は
手順1乃至11の各々に対するフレームを含む。SS10336
の各フレームは、部分的に、その対応する手順に対する
CS10110の作動状態を含む。
第104図においては、典型的なMAS、例えばKOSMAS10334
が示されている。KOSMAS10334は、これに関する各手順
に対してスタツク・ヘツダ10410とフレーム10412を含
む。各フレーム10412はフレーム・ヘツダ10414を含み、
リンク・ポインタ・ブロツク10416と局所ポインタ・ブ
ロツク10418と、局所(自動)データ・ブロツク10420を
含む。
MAS10334のスタツク・ヘツダ10410は、少なくとも以下
の情報を含む。即ち、 (1)KOSMAS10334に関する第1のフレームのフレーム
・ヘツダ10414の場所を表示するスタツク・ヘツダ10410
に関するオフセツト。
(2)KOSMAS10334の開始に関して、その最上位の場所
を示すスタツク最上位オフセツト。KOSMAS10334の最上
位は、手順11のフレーム10412の局所データ・ブロツク1
0420の最後の記入の最上位を指示するポインタSTOによ
り示される。
(3)KOSMAS10334の開始に関して、その時の最上位の
フレームのフレーム・ヘツダ10414の場所を示すオフセ
ツト。第104図においては、このオフセツトはフレーム
・ポインタ(FP)により表わされるが、ABPについては
以下において更に論述する。
(4)VP10310のUID (5)以下の論議において更に述べるある領域環境情報
の場所を示すUIDポインタ。
(6)CS10110のあるオペレーテイング・システムの障
害を取扱うためのあるルーチンの場所を示す記号ポイン
タ。
(7)KOSSDA10326の場所を示すUIDポインタ、および (8)他の領域におけるフレームのヘツダに対するポイ
ンタを含むフレーム・ラベル・シーケンサ。これらのポ
インタは非局所的なgo-to操作を実行する際使用され
る。
KOSMAS10334のスタツク・ヘツダ10410は、これにより、
MAS10334の構造におけるある重要な点を判定し、またKO
S領域における手順の実行に関するある情報を判定する
ための情報を含む。
各フレーム・ヘツダ10414は少なくとも下記の情報を含
む。即ち、 (1)フレーム・ヘツダ10414に関して、MAS10334の前
および次のフレームのフレーム・ヘツダ10414の場所を
表示するオフセツト。
(2)フレーム・ヘツダ10414に関して、前記フレーム1
0412の最上位の場所を示すオフセツト。
(3)前記フレーム10412に含まれる送つたアーギユメ
ントの数を示す情報。
(4)UID/オフセツト・フオーマツトにおいて、別の定
義域に前記の前のフレーム・ヘツダ10414が存在するか
どうかに関するフレーム10412に対する動的バツクカウ
ンタ。
(5)前記手順を呼出す手順の環境記述子に対するUID/
オフセツト・ポインタ。
(6)MAS10334における他のフレーム・ヘツダ10414の
場所を示す情報を含むフレーム・ラベル・シーケンス。
この情報は、局所のgo−to操作の実行の目的のためMAS1
0334における他のフレームを決定する。フレーム・ヘツ
ダ10414はこれによりMAS10334の構造におけるある重要
な点を決定するための情報および関連する手順の実行に
関するあるデータを含む。更に、フレーム・ヘツダ1041
4は、スタツク・ヘツダ10410と共に、各VP10310のMASの
活性化レコードをリンクするためまた個々のMASの活性
化レコードを共にリンクするための情報を含む。
リンク・ポインタ・ブロツク10416は、呼出し側の手順
から呼出される手順に対して送られるアーギユメントに
対するポインタを含む。例えば手順11のフレーム10412
のリンク・ポインタ・ブロツク10416は手順10から手順1
1に対して送られるアーギユメントに対するポインタを
含む。CS10110のアドレス構造におけるリンク・ポイン
タの使用については、CS10110のアドレス構造の以下の
論述において更に論議する。局所データ・ポインタ・ブ
ロツク10418は、関連する手順の局所データのあるもの
に対するポインタを含む。第104図に示されているの
は、最上位のフレーム10412のリンク・ポインタ・ブロ
ツク10416と局所データ・ポインタ・ブロツク10418間で
指示するポインタ、即ちフレーム・ポインタ(FP)であ
る。以下の論述において更に説明するように、FPはプロ
セスのその時の手順のMASフレーム10412に対するABPで
ある。
各フレーム10412の局所(自動)データ・ブロツク10420
は、関連する手順の自動データの内のあるものを含む。
前述の如く、各手順の呼出し毎に、MASフレームは呼出
された手順が実行される定義のMASの最上位に構成され
る。例えば、手順10が手順11を呼出す時、手順11に対す
るフレーム・ヘツダ10414はKOSMAS10334に構成され配置
される。手順11のリンク・ポインタがこの時生成され、
手順11のリンク・ポインタ・ブロツク10416に置かれ
る。次の手順11の局所ポインタが生成されて、手順11の
局所ポインタ・ブロツク10418に配置される。最後に、
手順11の局所データが手順11の局所データ・ブロツク10
420に配される。この操作の間、USERMAS10328のフレー
ム・ラベル構造は、手順11のフレーム・ヘツダ10414を
指示する記入を含むように更新される。KOSMAS10334の
スタツク・ヘツダ10410は、KOSMAS10334の新たな最上位
に対するSTOに関して更新される。手順2のフレーム・
ヘツダ10414は、手順11のフレーム10412のフレーム・ヘ
ツダ10414に対するオフセツトに関して、また手順11の
フレーム・ヘツダ10414の場所を表示するフレーム・ラ
ベル・シーケンスに関して更新される。この時手順11が
その時の手順であるため、FPは手順11のフレーム10412
のリンク・ポインタ・ブロツク10416とリンク・ポイン
タ・ブロツク10418の間の点に更新される。また、以下
において論述するように、新たなフレームがSS10336即
ち手順11において構成される。CS10110はこの時手順11
を実行するため進行することになる。手順11の実行中、
更に生成された他の局所データを手順11の局所データ・
ブロツク10420の最上位に配することができる。手順11
のフレーム・ヘツダ10414およびKOSMAS10334のスタツク
・ヘツダ10410におけるスタツクのオフセツト情報の最
上位が適宜更新される。
これにより、MAS10328乃至10334はこの手順に関するデ
ータを記憶するための定義域単位のスタツク機構を提供
し、このためこのデータを失うことなく手順のスタツキ
ングを可能する。定義域単位で構成されているが、MAS1
0328乃至10334は、MASスタツクおよびフレーム・ヘツダ
において記憶された情報を介して、一緒に通される統一
された局所スタツク構造を有する。
前述の如く、SS10336は、スタツクされた各VP10310手順
に対するCS10110のマイクロ機械の状態を部分的に記憶
するためのCS10110のマイクロ機械のスタツク構造であ
る。第105図においては、SS10336のスタツク・フレーム
10510の部分的な図が示される。SS10336のスタツク・ヘ
ツダ10512とフレーム・ヘツダ10514は、MASスタツク・
ヘツダ10410とフレーム・ヘツダ10414における情報と類
似の情報を含んでいる。再び、これらに含まれた情報
は、SS10336内のある点を見出して、MAS10328乃至KOSMA
S10334と共にSS10336を挿通する。
SS10336のスタツク・フレーム10510は、このフレームが
関連するVP10212の手順の実行中CS10110のマイクロ機械
によつて使用されるある情報を含む。手順ポインタ・ブ
ロツク10516は、VP10310の情報構造内の情報を見出する
際CS10110のマイクロ機械により使用されるABPを含むあ
るポインタを含んでいる。マイクロ・ルーチン・フレー
ム(MRF)10518は共に、各SS10336のスタツク・フレー
ム10510内のマイクロ・ルーチン・スタツク(MRS)1052
0を含む。MRS10520は、スタツク・フレーム10510と関連
したVP10212の手順の実行中に実行されたCS10110のマイ
クロルーチンの内部操作と関連している。SS10336は、
このように二重機能のCS10110のマイクロ機械スタツク
である。ポインタブロツク10516の記入は、CS10110のマ
イクロ機械とその時のプロセスの手順との間のインター
フエースを有効に規定する。MRS10520はCS10110のマイ
クロ機械の内部操作にするスタツク機構を含む。
仮想プロセス10212について簡単に説明したが、FURSM10
214については次に説明する。前述の如く、EURSM10216
は作用においてFURSM10214と類似し、CS10110の構造お
よび作用についての以下の詳細な説明において説明す
る。
3.FURSM10214(第103図) 再び第103図において、FURSM10214は、P10310の手順の
実行中CS10110のマイクロ機械に対して内部で使用され
るCS10110マイクロ機械の情報構造を含む。あるVP、例
えばVP10310が実行される時、このVPに関するある情報
がこの手順の実行において使用されるためVP10212からF
URSM10214に転送される。この点に関して、FURSM10214
はその時のVP10212に対する加速機構と見做すことがで
きる。
FURSM10214は、汎用レジスタ・フアイル(GRF)10354
と、マイクロ・スタツク・ポインタ・レジスタ機構(MI
SPR)10356と、戻し制御ワード・スタツク(RCWS)1035
8を含む。GRF10354は、大域レジスタ(GR)10360とスタ
ツク・レジスタ(SR)10362を含む。GR10360は、アーキ
テクチヤ規定レジスタ(ABR)10364とマイクロ制御レジ
スタ(MCR)10366を含んでいる。スタツク・レジスタ10
362は、マイクロ・スタツク(MIS)10368とモニター・
スタツク(MOS)10370とを含んでいる。
最初にGRF10354について、例えばVP10310の手順11がそ
の時実行中であると仮定すると、GRF10354は主として手
順11の実行において使用されたVP10310に対するあるポ
インタを含んでいる。前述の如く、CS10110のアドレス
指定構造は、各手順に対するあるアーキテクチヤ規定ポ
インタ(APB)を含む。APBはCS10110のアドレス空間を
アクセスするためのフレームワークを提供する。各手順
のABPは、フレーム・ポインタ(FP)と手順規定ポイン
タ(PBP)と静的データ・ポインタ(STP)とを含む。KO
SPO10318に関して前に論述したように、これらのABPは
手順のPEDに内在する。ある手順が呼出される時、これ
らのABPはこの手順のPEDからABR10364に転送され、この
手順の持続期間の間これに内在する。第103図に示すよ
うに、FPはKOSMAS10334における手順11のフレーム10412
のリンク・ポインタ・ブロツク10416と局所ポインタ・
ブロツク10418間を指示する。PBPは、KOSPO10318の諸素
子が見出される基準点を指示する。SDPはKOSSDA10326を
指示する。もし手順11が例えば手順12を呼出すならば、
手順11のABPは、手順11に対するSS10336のスタツク・フ
レーム10510の手順ポインタ・ブロツク10516に転送され
る。手順11に戻ると同時に、手順11のABPは手順ポイン
タ・ブロツク10516からABR10364に対して転送され、手
順11の実行が再開される。
MCR10336は、手順11の実行においてCS10110のマイクロ
機械により使用されるあるポインタを含む。第103図に
示されるCS10110のマイクロ機械ポインタは、プログラ
ム・カウンタ(PC)と、名前テーブル・ポインタ(名前
形式)と、Sインタプリタ・ポインタ(SIP)と、機密
保護スタツク・ポインタ(SSP)と、機密保護スタツク
の最上位オフセツト(SSTO)を含む。NTPおよびSIPにつ
いては、KOSPO10318に関して前に説明したが、KOSPO103
18に内在する。NTPおよびSIPは、手順11の実行の開始時
においてMCR10336に転送される。第103図に示されるよ
うに、PCはCS10110によりその時実行中の手順11のSINに
対するポインタである。PCは最初に手順11のPBPおよびC
EPから生成され、その後手順11のSINシーケンスが実行
される時CS10110のマイクロ機械により増分される。以
下の論議において説明するように、SSPおよびSSTOは、S
S10336のスタツク・ヘツダ10512とフレーム・ヘツダ105
14に含まれる情報から生成される。第103図に示される
ように、SSPはSS10336の開始を指示するが、SSTOはSS10
336のその時の最上位フレームが、SSPに関するオフセツ
トを表示することによりMRS10520の手順ポインタ・ブロ
ツク10516とMRF10518のいずれであるかを表示する。も
し手順11が後続の手順を呼出すならば、MCR10366の内容
はSS10336における手順11の手順ポインタ・ブロツク105
16に転送され、手順11への戻りと同時にMCR10366に戻さ
れる。
レジスタ10360は、CS10110の操作についての以下の詳細
な論述において述べる更に別のポインタと、その時の手
順の局所データを含むため使用可能なあるレジスタを含
む。
次にスタツク・レジスタ10362について述べれば、MIS10
368はその時の手順のMRS10520の上方へ拡張即ち加速で
ある。前に述べたように、MRS10520は、ある特定の手順
の実行中あるマイクロルーチンの実行の際CS10110のマ
イクロ機械によつて使用される。MIS10368は、FU10120
に対する前記手順のMRS10520のある最も後のMRF10518を
加速することによつてこれらのマイクロルーチンを実行
する際のCS10110のマイクロ機械の効率を強化する。MIS
10368は、例えば、その時の手順のMRS10520の8つまで
の最も後のMRF10518を含むことができる。種々のマイク
ロルーチンがMRS10520から呼出されあるいはこれから戻
される時、MRF10518はSS10336とMIS10368間で適宜転送
され、その結果MIS10368は常に少なくともMRS10520の最
上位のMRF10518を含み、またはとんどの場合MRS10520の
8つのMRF10518を含む。MISPR10356はMIS10368を保持す
るためのCS10110のマイクロ機械機構である。MISPR1035
6とその時のポインタと、前のポインタと最下位のポイ
ンタとを含む。前のポインタはMIS10368における前のMR
F10518を指示し、最下位のポインタはMIS10368における
最下位のMRF10518を指示する。MISPR10356のその時のポ
インタ、前のポインタおよび最下位のポインタは、MRF1
0518がSS10336とMIS10368間で転送される時更新され
る。もし手順11が後続の手順を呼出すならば、全ての手
順11のMRF10518はMIS10368からSS10336における手順11
のMRS10520に対して転送される。手順11への変換と同時
に、手順11のMRF10518のフレームの内7つまでがSS1033
6からMIS10368に戻される。
MOS10370について述べれば、MOS10370は、障害即ちエラ
ー条件を取扱うためのあるマイクロルーチンに対するCS
10110のマイクロ機械により使用されるスタツク機構で
ある。これらのマイクロルーチンは常に完了するまでラ
ンし、その結果MOS10370は完全にFU10120内に存在し、M
EM10112におけるVP10310に内在するスタツクの拡張では
ない。MOS10370は、例えば、8つのフレームを含むこと
ができる。もし8つ以上の連続的な障害即ちエラー条件
が生じるならば、これはCS10110の主な故障と考えられ
る。CS10110の制御はこの時DP10118に対して転送するこ
とができる。以下の論述において述べるように、次にDP
10118における診断プログラムがCS10110の障害即ちエラ
ーを診断してこれを判定するために使用される。CS1011
0の他の実施態様においては、MOS10370は、CS10110に要
求されるそれ自体の診断および補正能力の程度に依存し
て、更に多いか少ないスタツク・フレームを含むことが
できる。
RCWS10358は2つの部分からなるスタツク機構である。
第1の部分はMIS10368と並列に作用し、第2の部分はMO
S10370と並列に作用する。前述の如く、CS10110はマイ
クロコード制御されたシステムである。RCWSは、その時
の手順が障害即ちエラー条件により遮断される時あるい
はその後の手順が呼出される時、CS10110マイクロ機械
によつて実行されつつあるその時のマイクロ命令を記憶
するためのスタツクである。MIS10368と関連するRCWS10
358の部分は、MIS10368に内在する各MRF10518に対する
記入を含む。これらのRCWS10358の記入は、それらの関
連するMRF10518と並列にSS10355とMIS10368間に転送さ
れる。SS10336に存在する時は、これらのRCWS10358の記
入はその関連するMRF10518内に記憶される。MOS10370と
関連するRCWS10358の部分は、同様にMOS10370と並列に
作用し、MOS10370と同様に、MEM10112にに常駐するスタ
ツクの拡張ではない。
要約すれば、CS10110において活動状態の各プロセスは
個々の完全な自立した要素、即ち仮想プロセスとして存
在し、構造的に定義域単位に構成される。各仮想プロセ
スは、手順およびデータ目的以外に、このプロセスの手
順の局所データを記憶する1組のMASを含む。各仮想プ
ロセスはまた、CS10110のマイクロ機械スタツクの、仮
想プロセスのスタツクされた各手順に関するCS10110の
マイクロ機械の状態を記憶するためのSS10336を含む。C
S10110のマイクロ機械は仮想プロセスの手順の実行の際
CS10110のマイクロ機械により使用される1組の情報構
造とレジスタ10360とMIS10368とMOS10370とRCWS10358と
を含む。これらのCS10110のマイクロ機械の情報構造は
その時実行中の仮想プロセスと共有され、このためその
時の仮想プロセスに対する有効な加速機構であるが、他
のものはCS10110のマイクロ機械に対して完全に内部的
である。
CS10110の主な特徴は、プロセスのマクロスタツクおよ
び機密保護スタツクの各々がMEM10112に存在することで
ある。CS10110のマクロスタツクおよび機密保護スタツ
クは、従つて深さにおいて実質的に制約を受けない。
CS10110のマイクロ機械の更に別の特徴はGRF10354の使
用である。GRF10354は、CS10110の1つの実施態様にお
いては、例えば256個のレジスタを含む一体のレジスタ
・アレーである。GRF10354のある部分、即ちアドレス場
所は、それぞれGR10360と、MIS10368とMOS10370に対し
て専用化さるている。従つて、GR10360と、MIS10368
と、MOS10370は、GRF10354のアドレス空間の再割当てに
よりCS10110の最適効率を得るのに必要な如くに調整す
ることができる。CS10110の他の実施態様においては、G
R10360と、MIS10368とMOS10370は機能的に別個のレジス
タ・アレーとして構成することができる。
プロセス構造10210の構造および作用について簡単に説
明したが、次にVP状態ブロツク10218について説明しよ
う。
C.仮想プロセサ状態ブロツクおよび仮想プロセスの形成
(第102図) 再び第102図において、VP状態ブロツク10218はプロセス
の管理および制御において使用される。VP状態ブロツク
10218は、CS10110による実行のため選択された各仮想プ
ロセス(VP)に対するVP状態ブロツクを含む。かかる各
VP状態ブロツクは少なくとも下記の情報を含む。即ち、 (1)VPの状態即ち識別番号。
(2)VPの特定の主体および特定のプロセスを識別する
記入。
(3)前記VPの機密保護スタツク(例えば、SS10336)
に対するAONポインタ。
(4)VPのMASスタツク目的(例えば、MAS10328乃至103
34)のAON。
(5)CS10110のVP管理システムにより使用されるある
情報。
各VP状態ブロツクに含まれる情報は、これにより関連す
るVPのその時の状態を規定する。
プロセスは、即ち存在するVPとして現われるように元の
アクセス・レコードを形成してこのアクセス・レコード
をCS10110にロードすることによりCS10110にロードされ
る。VPは、そのマイクロ機械の状態記入のため形成され
たマクロスタツクおよび機密保護スタツクの目的に対す
るポインタと、ユーザ・プログラムに対するポインタと
を含むプロセス目的を形成することによつて形成され
る。この時、CS10110のKOSは、このプロセスに対するヘ
ツダを用いてマクロスタツクおよび機密保護スタツクの
目的を生成し、以下に述べるように、機密保護機構1023
0に対して前記プロセス目的に関する保護情報をロード
する。次いで、CS10110のKOSはCS10110のVP管理プログ
ラムにより選択される空のVPSBに対してこの元の機械状
態レコードを複写し、これにより新たに形成されたVPを
CS10110に拘束する。この時、KOS初期設定手順が、例え
ば、あるコンパイラを介してユーザ・プログラムにおけ
る呼出しによつてVPの形成を完了する。新たに形成され
たVPはこの時CS10110によつて実行することができる。
VP状態ブロツク10218およびVPの形成について簡単に述
べたが、CS10110のアドレス指定構造10220については以
下に説明することにする。
D.アドレス指定構造10220(第103図、第106図、第107
図、第108図) 1.目的、UID、AON、名前および物理的アドレス(第106
図) 前述の如く、CS10110に対してアクセス可能なデータ空
間は、セグメント、即ち目的と呼ばれるコンテナに分割
される。CS10110の一実施態様においては、各目的のア
クセス可能なデータ空間は情報の232ビツトの容量を有
し、各々が214ビツトの情報を有する218ページに構成さ
れる。
第106A図においては、CS10110のアドレス指定構造の略
図が示されている。CS10110において使用するため、あ
るいはその操作により生成される各目的は、個々の記述
子(UID)が恒久的に割当てられる。1つの目的のUID
は、如何なる時点においても目的を一義的に識別して見
出すことを可能にする。各UIDは80ビツトの数であり、
このため全てのCS10110のアドレス指定可能な総空間
は、各目的が232ビツトまでの情報を含み得る280の目的
を含む。第106図に示されるように、各80ビツトUIDは、
32ビツトの局所割当て単位識別子(LAUID)と48ビツト
の目的連続番号(OSN)とからなる。LAUIDは個々のCS10
110システムと関連している。LAUIDは、ある特定の目的
を生成する特定のCS10110システムを識別する。各UID
は、局所割当て単位グループ数(LAUGN)と局所割当て
単位連続数(LAUSN)とからなる。LAUGNは個々のCS1011
0システムに対して割当てされ、ある特定のシステムに
対して一義的になるように保証することができる。しか
し、ある特定のシステムは、LAUGNとCS10110システム間
で時間が変化するマツピングが存在するように、1つ以
上のLAUGNの割当てが可能である。LAUSNはある特定のシ
ステム内部で割当てられ、LAUSNはある特定のシステム
内部で一義的であるが、LAUSNはシステム間では一義的
である必要はなく、またある特定のシステムの物理的構
造にマツプする必要はない。
OSNはLAUにより形成された個々の目的と関連させられ、
また各CS10110においてアーキテクチヤ・クロツクによ
り生成される。アーキテクチヤ・クロツクは、増加する
時間を表わす64ビツトの2進数として定義される。アー
キテクチヤ・クロツクの最下位ビツトは600ピコ秒の増
分を表わし、最上位ビツトは127年の増分を表わす。CS1
0110の本実施例においては、アーキテクチヤ・クロツク
時間のある最上位および最下位ビツトは一般に必要とさ
れない構成として看過される。アーキテクチヤ・クロツ
クにより表示される時間は任意の固定された時点に関し
て測定される。この時点は、およそ構成される全てのCS
10110に対して同じである。従つて、経験的に全てのCS1
0110は同じアーキテクチヤ・クロツク時間を呈し、生成
される全てのUIDは共通の基礎を有することになる。OSN
の生成のためのアーキテクチヤ・クロツクの使用は、も
しCS10110が故障して後で再び初期化される場合にOSNの
偶発的な複写の可能性を回避するという点で有利とな
る。
前述の如く、CS10110によりあるいはこれにおいて使用
するため生成される各目的はその関連するUIDによつて
一義的に識別される。目的のUIDに対してオフセツト
(O)および長さ(L)の情報を付属させることによ
り、ある特定の目的に存在するデータの特定のセグメン
トを見出すために使用することができるUID論理アドレ
スが生成される。第106図に示すように、UID論理アドレ
スのOおよびLフイールドは各々32ビツトである。従つ
て、OおよびLフイールドは1つの目的において232-1
ビツトからどんな特定のビツトでも表示することがで
き、このため目的における情報のビツトの細分性を有す
るアドレス指定を可能にする。
第106図に示すように、またこれまでに述べたように、C
S10110において活動状態の各目的は、JP10114内でのみ
有効な活動状態目的番号(AON)と呼ばれる短い一時的
な単一の識別子を割当てられる。CS10110のアドレス空
間において存在するものよりも少ない目的がCS10110に
おいて活動状態であるため、CS10110の本実施例におい
ては、AONは長さが14ビツトである。ある特定のCS10110
は、従つて、214までの活動状態の目的を保有すること
ができる。1つの目的のAONは、その目的のUIDの代りに
JP10114内で使用される。例えば、プロセス構造10210に
関して前に論述したように、ある手順のFPはそのプロセ
スのMASにおける前記手順のフレームの開始を指示す
る。このFPがSS10336に存在する時、これはUIDとして表
示される。この手順が実行される時、FPはSS10336からA
BR10364に対して転送され、対応するAONに変換される。
同様に、この手順がスタツクされる時、FPはSS10336に
戻され、またこの際対応するUIDに変換される。再び、
ある目的における特定のデータ・セグメントは、目的の
AONプラス関連する32ビツトのオフセツト(O)および
(L)のフイールドからなるAON論理アドレスによりア
ドレス指定することができる。
あるプロセスに現われる各オペランドは1つの名前が割
当てられ、1つのプロセスのオペランドに関する全ての
照合はこれらの割当てられた名前による。第106B図に示
されるように、CS10110の本実施例においては、各名前
は8または12または16ビツト数である。ある特定のプロ
セスにおける全ての名前は同じ長さとなる。これまでの
論述において述べたように、あるプロセスの実行中に現
われる名前は、手順の名前テーブル10350または名前カ
ツシエ装置10226を介してAONの論理アドレスに変えるこ
とができる。以下に述べるように、あるオペランドの名
前に対応するあるAONの論理アドレスは、従つて、問題
のオペランドを見出すためMEM10112の物理的アドレスに
対して評価することができる。
MEM10112の物理的アドレスに対するAONの論理アドレス
の評価については第106C図において示される。AONの論
理アドレスのLフイールドは、ある物理的アドレスに対
するあるAONの論理アドレスの評価においては関与せ
ず、従つて明瞭化の目的のため、第106C図には示されな
い。AONの論理アドレスLフイールドは、第106C図に示
された評価手順の各ステツプにおいて示されるアドレス
に帰属することが理解されよう。
前述の如く、目的は各々が214ビツトのデータを含む218
に構成された232ビツトである。MEM10112は、CS10110の
本実施例においては各々が214ビツトのデータを含むフ
レームに同様に物理的に構成されている。CS10110の他
の実施態様においては、ページとフレームの双方が異な
るサイズであるが、AON論理アドレスのMEM10112の物理
的アドレスへの翻訳は今述べたものと類似することにな
ろう。
AONの論理アドレスのOフイールドは、目的の開始に関
連して、目的内のアドレス指定されたデータセグメント
の開始を表わす32ビツト数として前に説明された。この
Oフイールドの18の最上位ビツトは、アドレス指定され
たデータの第1のビツトが生じる目的内のページの番号
(P)を表わす。Oフイールドのこの14の最下位ビツト
は、アドレス指定されたデータの第1のビツトの前記ペ
ージ内の、ページの開始に関するオフセツ(Op)を表わ
す。従つて、AONの論理アドレスのOフイールドは、第1
06C図に示されるように、18ビツトのページ(P)フイ
ールドとページ(Op)フイールド内の14ビツトのオフセ
ツトとに分割される。前述の如く、MEM10112の物理的フ
レームのサイズが目的のページ・サイズに等しいため、
AONの論理アドレスOpフイールドは物理的アドレスのフ
レーム(Op)フイールド内のオフセツトとして直接使用
することができる。以下に述べるように、この時AONの
論理アドレスのAONおよびPフイールドは、アドレス指
定機構10220を介して、前記ページが存在するMEM10112
のフレームのフレーム番号(FN)と関連させることがで
きるのである。
UID、UIDの論理アドレス、名前、AON、AON論理アドレス
およびMEM10112の物理的アドレス間の関係について簡単
に説明したが、アドレス指定機構10220について以下に
説明することにする。
2.アドレス指定機構10220(第107図) 第107図においては、コンピユータ・システム10110のア
ドレス指定機構10220の略図が示される。前述の如く、
アドレス指定機構10220は、UID/AONテーブル10220と、
記憶管理テーブル10224と、名前カツシエ装置10226と、
アドレス翻訳装置10228とからなる。
UID/AONテーブル10222は、各々の目的UIDをその割当て
られたAONと関連させ、AOTハツシユ・テーブル(AOTH
T)10710と活動状態目的テーブル(AOT)10712と、活動
状態目的テーブル別表(AOTA)10714とを含む。
ある特定のUIDと対応するAONはAOTHT10710を介して決定
される。このUIDはAOTHT10710に対するUID指標を提供す
るためハツシユされ、このAOTHTは次に対応するAONを提
供する。AOTHT10710は、丁度今述べたように、有効にAO
NへのUIDの迅速な翻訳を提供するAOT10712の加速機構で
ある。AONは、対応するAON記入(AOTE)を提供するAOT1
0712に対する指標として使用される。以下のCS10110の
詳細な論述において論議される如きAOTEは、他の情報の
他に、AOTEを指示するAONと対応するUIDを含む。AONとU
ID間の翻訳を提供することに加えて、AOTEのUIDは元のU
IDと比較されてAOTHT10710からAONの適正さを判定す
る。
AON10712と関連しているのはAOTA10714である。AOTA107
14はAOT10714の拡張であり、活動状態の目的に関するあ
る情報、例えば活動状態の各手順目的の実行領域御含
む。
UIDおよびAONを関連させるためのCS10110の機構につい
て簡単に述べたが、オペランド名をAONの論理アドレス
に対して解明するためのCS10110の機構について以下に
説明することにする。
3.名前の解明(第103図、第108図) 最初に、第103図において、VPにおける各手順目的、例
えばVP10310におけるKOSPO10318については、名前テー
ブル(NT)10350を含む如くに説明した。各NT10350は、
その名前がその手順に現われる各オペランドに対する名
前テーブルの記入(NTE)を含む。各NTEはこの名前によ
りテータの形式が表示されまたDTセグメントの長さが表
示される取出しモード情報を含むAON論理アドレスに対
して対応する名前を解明する方法についての記述を含
む。
第108図においては、NTEの略図が示されている。説明し
たように、このNTEは7つの情報フイールド、即ち、フ
ラツグ、ベース(B)、事前変位(PR)、長さ(L)、
変位(D)、指標(I)および素子間空間(IES)を含
む。フラツグ・フイールドは、部分的に、NTEの残りの
フイールドが如何にして翻訳されたかを説明する情報、
NTEにより表示された情報の形式、またこの情報がMEM10
112から取出される時に如何にして取扱われるかを説明
する情報を含む。Lフイールドは、前に説明したよう
に、データ・セグメントにおけるビツトの長さ、即ちビ
ツト数を表示する。以下の論議において、他のNTEフイ
ールドの機構について説明する。CS10110の本実施例に
おいては、5つの形式のNTEが存在する。即ち、(1)
ベース(B)が名前でなく、アドレスの解が間接的でな
い、(2)Bが名前でなく、アドレスの解が間接的でな
い(3)Bが名前であり、アドレスの解が間接的である
(4)Bが名前であり、アドレスの解が間接的である。
第5の形式は、ある素子アレーからある特定の素子を選
定するNTEである。これらの5つの形式のNTEおよびその
解について、以上述べた順序で以下に説明する。
第1の形式においては、Bは名前でなく、アドレス解は
間接でなく、BフイールドはAONプラス・オフセツト(A
ON/O)ポインタを含むABR10364を指定する。Dフイール
ドの内容はこのポインタのOフイールドに加算され、こ
の結果はオペランドのAONの論理アドレスである。第2
の形式においては、Bは名前でなく、アドレス解は間接
であり、Bフイールドは再びAON/Oポインタを含むABR10
364を指定する。
PRフイールドの内容は、AON/OポインタのOフイールド
に加算されて、基底ポインタのAON論理アドレスを提供
する。基底ポインタのAONの論理アドレスは以下に説明
するように評価され基底ポインタはMEM10112から取出さ
れる。
Dフイールドの内容は基底ポインタのOフイールドに対
して加算され、その結果はオペランドのAON論理アドレ
スである。
NTEの形式3および4は、それぞれNTE1および2に対応
し、Bフイールドが名前を含む点を除いて同じ方法で解
明される。Bフイールドの名前は別のNTEを介して解明
され、形式1および2の論議において説明されるABR103
64のポインタの代りに使用されるAON/Oポインタを得
る。
第5の形式のNTEはアレーの諸素子の照合において使用
される。これらのアレーのNTEは前述のNTE形式1乃至4
と同じ方法で解かれて、アレーの始動のAON論理アドレ
スを得る。IおよびIESフイールドはアレーにおけるあ
る特定の素子を見出すため別の情報を提供する。Iフイ
ールドは常に、アレーにおける特定の素子を表わすある
オペランドの値を得るべく解かれる名前である。IESフ
イールドは、アレーの各素子間の空間に関する情報、即
ち、アレーの隣接する素子間のビツト数に関する情報を
提供する。IESフイールドは実際のIES値を含み、あるい
は素子間の空間を導くAON論理アドレスに解かれる名前
を保有する。今述べた許りのこのIおよびIESフイール
ドを解明することにより得られるIおよびIES言語フイ
ールド値は、NTEにより示される特定の素子の、アレー
の開始に関するオフセツトを判定するため一緒に乗算さ
れる。このアレー内オフセツトはアレーの開始のAON論
理アドレスのOフイールドに加算されて、素子のAON論
理アドレスを得る。
CS10110の本実施例においては、あるNTEフイールド、例
えばB、Dおよびフラツグ・フイールドは、常にリテラ
ルを含む。ある他のフイールド、例えば、IES、D、PRE
およびLフイールドは、リテラルあるいは解明されるべ
き名前を含む。更に別のフイールド、例えばIフイール
ドは常に解明されねばならない名前を含む。呼出し側の
ある手順からある呼出された手順に対するアーギユメン
トの通過については、前述の仮想プロセス10212に関し
て、また特にVP10310のMAS10428乃至10334に関して前に
説明した。アーギユメントの通過は、呼出し側および呼
出された側の手順の名前テーブル10350により達成され
る。事例として、ある手順W(a,b,c)はアーギユメン
トa,b,cを手順X(u,v,w)に通過させることを望むこと
ができるがこの場合手順vおよびwはアーギユメントa,
b,cに対応する。コンパイルにおいては、NTEは手順Wの
手順目的においてアーギユメントa,b,cに対して生成さ
れ、NTEは手順Xの手順目的におけるアーギユメントu,v
およびwに対し生成される。アーギユメントu,vおよび
wに対する手順XのNTEは、MASにおけるXのフレーム10
412のリンク・ポインタ・ブロツク10416におけるポイン
タを指示するため解を出すように構成されている。手順
Wから手順Xへアーギユメントa,bおよびcを通すた
め、アーギユメントa・bおよびcのNTEはAONの論理ア
ドレスになるように(即ち、AON/O形態)解かれる。ア
ーギユメントa,bおよびcのAON論理アドレスは、次に、
u,vおよびwに対して手順XのNTEにより指示される場所
において手順Xのリンク・ポインタ・ブロツク10416に
配される対応するUIDアドレスに翻訳される。手順Xが
実行される時、手順Xのu,v,およびwに対するNETの解
は、手順Xのリンク・ポインタ・ブロツク10416におけ
る各ポインタをアーギユメントa,bおよびcになるよう
に解かれる。このようにアーギユメントが通される時、
データの形式および長さの情報は、呼出し側の手順のNT
Eではなく、呼出された側の手順NTEから得られる。この
ため、呼出し側の手順が例えば呼出された手順に対して
アーギユメントa、またはb、またはcの一部のみを通
過させることを可能にし、これによりCS10110の機密保
護機構の特徴として見做すことができる。
名前のAON/オフセツト・アドレスへの解について簡単に
述べ、またUIDアドレスのAONアドレスへの翻訳について
前に述べたが、次にMEM10112の物理的アドレスに対する
AONアドレスの評価について述べる。
4.AONアドレスの物理的アドレスに対する評価(第107
図) 再び第107図において、CS10110のメモリ−管理テーブル
10224の部分図が示される。メモリー・ハツシユ・テー
ブル(MHT)10716とメモリー・フレーム・テーブル(MF
T)10718は、AONアドレスのMEM10112の物理的アドレス
への変換と関連し、これについて最初に論述する。作業
設定マトリックス(WSM)10720と仮想メモリー管理要求
キユー(VMMRQ)10772はMEM10112の使用可能な物理的ア
ドレス・ベースの管理に関し、これについて二番目に論
述する。活動状態の目的要求キユー(AORQ)10728と論
理的割当て装置登録簿(LAUD)10730は不活動状態の目
的の発見およびどの目的がCS10110において活動状態で
あるかの管理と関連するが、これについては最後に論述
する。
AON/O論理アドレスのMEM10112の物理的アドレスへの変
換については、第106C図に関して前に述べた。この論議
において述べたように、目的はページに分割される。こ
れに対応してAON/O論理アドレスのOフイールドは、18
ビツトのページ数(P)とページ(Op)フイールド内の
14ビツトのオフセツトに分割される。
MEM10112はフレームに構成されるが、CS10110の本実施
例においては、その各々は1つの目的のページと等し
い。AON/OアドレスのOpフイールドは、従つて、対応す
る物理的アドレスのフレーム(Of)内のオフセツトとし
て直接使用することができる。しかし、AONアドレスNOA
およびPフイールドは、対応するフレーム番号(FN)に
より表わされるMEM10112のフレームに変換されねばなら
ない。次に第107図においては、AONアドレスおよびPフ
イールドは「ハツシユ」されてMHT10716に対する指標と
して使用されるMHT指標を生成する。簡単に述べれば、
「ハツシユ操作」とは、情報に対する指標が「ハツシュ
機能」により情報自体から生成されるテーブルにおける
情報の指標化即ち判定の方法である。ハツシュ機能は、
この機能によりこれから生成された対応する指標に対す
る個々の情報をマツプする。この時MHT10716は、前記ペ
ージが設定されるMEM10112のフレームの対応するFNを提
供する。FNはMFG10718に対する指標として使用され、こ
れは例えば、このフレームに記憶されたページを記述す
る記入を保持する。この情報は、前記MEM10112のフレー
ムに機構されたページのAONおよびPを含んでいる。従
つて、MHT10716からのFNは問題最初に特定の10718に対
する指標として使用することができ、MFT10718の結果の
AON/Pは元のAON/Pと比較されてMHT10716から得たFNの適
合性を確認する。MHT10716は、AONアドレスのMEM10112
の物理的アドレスへの迅速な変換を提供するMFT10718の
有効な加速機構である。
MFT10718はまた、MEM10112における各ページに対する
「使用された」および「変更された」情報を記憶する。
この情報は、その内部に記憶されたどのページ・フレー
ムが使用され、かつどのページ・フレームが変更された
かを表示する。この情報は、ページが補助ストア(ED10
124)からMEM10112へ書込まれる時、どのフレームがMEM
10112から削除することができ、あるいは自由状態であ
るかを判定する際にCS10110により使用される。例え
ば、もしあるページの変更されたビツトがこのページが
書込まれなかつたことを表示するならば、このページが
MEM10112から削除される時これを補助ストアに書戻すこ
とは必要なく、その代り、このページは簡単に消去する
ことができる。
最後にATU10228に関して、このATUはMHT10716に対する
加速機構である。AON/Oアドレスは、ATU10228に対する
指標としてハツシユすることなく直接に使用され、ATU1
0228は対応するFNおよびO出力を適正に生じる。以下の
CS10110の作用に関する詳細な論述に述べるCS10110の機
構は、ATU10228がその時プロセスによつて最も頻繁に照
合されるページのFNおよびOp(Of)を含むように、ATU1
0228の内容を連続的に更新する。もしATU10228があるAO
N入力に対する対応する記入を含まなければ、ATUの障害
が生じ、FNおよびO情報がMHT10716から直接得ることが
できる。
次にWSM10720およびVMMRQ10722に関して述べれば、前述
の如く、これらの機構はMEM10112の使用可能なアドレス
空間の管理と関連している。例えば、もしMHT10716とMF
T10718がその時の手順により照合されるページに対する
記入を含まなければ、MHT/MFT障害が生じ、また照合ペ
ージ・ヘツダ・アレー補助ストア(ED10124)から取出
されてMEM10112に読込まれなければならない。WSM10720
はMEM10112に常駐する各ページに対する記入を保持す
る。これらの記入は、ページの照合を行なう仮想プロセ
スの仮想プロセツサ番号(VPN)と照合されつつあるペ
ージのPを含む指標によつてアクセスされる。各WSM107
20の記入は、特定のページがVPの作業設定の一部であ
る、即ちVPによつて使用されるかどうか、またこのペー
ジが前記VPにより照合されたかどうかを示すビツトを含
む。この情報は前記MFT10718の前記の記入に保持される
情報と共に、ページのMEM10112に関する転出入において
CS10110の仮想メモリー管理(VMM)によつて使用され
る。
CS10110のVMMは、ページのMEM10112に関する転出入を説
明するためVMMにより使用されるVMMRQ10722を保持す
る。
VMMRQ10722は、仮想メモリー要求カウンタ(VMRC)1072
4と仮想メモリー要求記入(VMRE)10726のキユーを含ん
でいる。今述べるように、VMRC10724はページに対する
その時未済の要求の数を追跡する。VMRE10726は要求さ
れた特定のページを記述する。MHT/MFT(即ち、ペー
ジ)の障害の発生と同時にVMRC10724は増分され、この
状態はCS10110のVMMの操作を開始し、VMRE10726はキユ
ーに配される。各VMRE10726は、ページを要求するプロ
セスのVPNおよび要求されたページのAON/Oを含む。この
時、この要求を行なうVPはJP10114からスワツプされ、
別のVPがJP10114に拘束される。MFT10718とWSM10720に
おける前に述べた情報を用いてこのフレームを選定する
ため、VMMはMEM10112のフレームを要求されたページを
含むように割当てる。この際、VMMは、例えば最も古い
ページ、または未使用のページ、または補助ストアに書
戻さくともよい未変更のページに基づいて、MEM10112に
その時駐在するページを捨てることができる。次にVMM
は、これにより選定されるフレームに要求されるページ
を転送するため入出力操作を要求する。入出力操作が進
行中、VMMは要求されたページに対するMHT10716とMFT10
718における新たな記入を生成し、このページにより占
められるべきMEM10112のフレームを払拭し、操作を延期
する。IOS10116は入出力操作を実行するため進行し、所
要のページを直接VMMにより指定されるフレームのMEM10
112に書込む。次にIOS10116はCS10110のVMMに対し、こ
のページがこの時メモリーに存在して照合可能であるこ
とを通知する。やや後で、このページを要求するVPは実
行を再開し、この照合操作を反復する。VP10212は未だ
このページを保持するように更新されていないため、最
初にATU10228に達した後、前記VPはATU10228の障害を捕
捉する。次に、このVPは所要の情報を求めてMHT10716と
MFT10718に行き同時にWSM10720とATU10228は更新され
る。
前記の諸操作に関して、CS10110において活動状態にあ
る各VPは、そのVPの連続するページ障害間の間隔が最適
の時間範囲内に存在するように前記VPの作業設定を調整
するためCS10110のVMMにより使用されるページ障害頻度
の時間因子(PFET)を割当てられている。
CS10110のVMMを保証するこの補助作用は最も有効に作用
してCS10110のVMMが所要の如く同調することを可能にす
る。
以上の論議は、UID/Oアドレス、またはAON/Oアドレス、
または名前のいずれかから照合されつつあるページがCS
10110において活動状態にある目的に存在することを前
提とする。目的はMEM10112におけるあるページを活動状
態にさせる必要はないが、この目的はMEM10112のあるペ
ージを有するべく活動状態に置かれなければならない。
しかし、VPはCS10110において活動状態にない目的にお
けるページを照合することはできる。もしこのような照
合が行なわれるならば、目的は、このページがMEM10112
に置くことができる前にCS10110において活動状態にさ
せられねばならない。その結果は、上に述べたページの
障害操作と似た操作となる。CS10110は、作用においてC
S10110のVMMおよびVMMRQ10722と類似の活動状態目的要
求キユー(AORQ)10728を含む活動状態の目的管理プロ
グラム(AOM)を保持する。CS10110のAOMおよびAORQ107
28はAOTHT10710およびAOT10712と関連して、不活動状態
の目的を見出してこれをAONを割当てて、AOTHT10710とA
OT10712とAOTA10714においてこれらに対する記入を生成
することにより活動状態にさせるよう作用する。
ある特定の目的がCS10110において活動状態にさせるこ
とができる前に、最初に補助ストア(ED10124)におい
て見出されねばならない。補助ストアに関する全ての目
的は、補助ストアに存在する論理割当て装置登録簿(LA
UD)10730を介して見出される。LAUD10730は、特定のCS
10110に対してアクセス可能な各目的に対する記入を保
持する。各LAUD10730の記入には、この目的に対するAOT
10712の記入を生成するのに必要な情報が含まれる。LAU
D10730は、CS10110VMMに含まれるUID/Oアドレスを介し
てアクセスされる。LAUD10730に関する照合の結果、MEM
10112のフレームが前記LAUD10730に割当てられることに
なる。もしLAUD10730の記入が照合された不活動状態の
目的に対して存在するならば、LAUD10730の記入はAOT10
712に転送される。この目的におけるあるページに関す
る次の照合において、AOT10712はこの目的に対してAON
を与えることになるが、このページが未だMEM10112に転
送されていないため、ページ障害が生じることになろ
う。このページ障害は、以上に述べた方法で取扱われ、
照合されたページはMEM10112に転送される。
UID、名前、AON間の関係およびCS10110がMEM10112の使
用可能なアドレス空間を含む、CS10110のアドレス指定
構造の構造および作用について簡単に説明したが、CS10
110の機密保護機構について以下に説明する。
E。CS10110の機密保護機構(第109図) 第109図においては、機密保護機構10230の略図が示され
る。機密保護テーブル10232は活動状態の初期アクセス
・マトリツクス(APAM)10910と、活動状態主題番号ハ
ツシユ・テーブル(ASNHT)10912と、活動状態主題テー
ブル(AST)10914とを含む。FU10120に存在する機密保
護機構10230のこれらの部分は、ASNレジスタ10916と機
密保護カツシエ装置(PC)10234を含む。
前に述べたように、各目的に対するアクセス権は主題に
基づいて調整される。主題は、その各々が対応するUID
により識別される主体、プロセスおよび領域(PPD)の
特定の組合せとして定義されている。各目的は、これと
この目的に対するアクセス権を有する各主題に対するAC
L記入(ACLE)を含むアクセス制御リスト(ACL)10918
を関連させている。
1つの目的がCS10110において活動状態となる(即ち、
1つのAONが割当てられる)時、この目的のACL10918に
おける各ACLEはAPAM10910に書込まれる。同時に、この
目的に対するアクセス権を有し、かつこれに対しこの目
的のACL10918にACLEが存在する各主題は、活動状態主題
番号(ASN)が割当てられる。これらのASNはASNHT10912
に書込まれ、その対応するPPDはAST10914に書込まれ
る。その後、この目的に対するアクセスを要求する如何
なる主題のASNも、この主題のPPDをハツシユしてASNHT1
0912に対するPPD指標を得ることによつて得られる。ASN
HT10912は更に、対応するASNを提供することになる。AS
NはAST10914に対する指標として使用することができ
る。AST10914は対応するPPDを提供し、これはASNの精度
を確認するため元のPPDと比較することができる。
前述の如く、APAM10910はCS10110において活動状態にあ
る各目的に対して1つのACL10918を保有する。ある特定
の活動状態の目的に対するどんな特定の活動状態の主題
のアクセス権も、APAM10910に対する指標としてこの主
題のASNとこの目的AONを用いることによつて決定され
る。APAM10910は更に、前記主題が前記目的に関して読
出し(R)、または書込み(W)、または実行(E)の
権利を有するかどうか、またこの特定の記入が妥当であ
るか(V)どうかを判定する4ビツト出力を提供する。
ASNレジスタ10916およびPC10234は機密保護テーブル102
32の有効な加速機構である。ASNレジスタ10916はその時
活動状態の主題のASNを記憶するが、PC10234はその時の
プロセスにより使用中である目的に対するあるアクセス
権情報を記憶する。PC10234の記入は、ASNレジスタ1091
6からのASNにより、またJP10114からのモード入力によ
つて割出される。モード入力は、その時の手順がPC1023
4における記入を有するある特定の目的に関して読出
し、書込にまたは実行を意図するかどうかを規定する。
ASN入力およびモード入力の受取りと同時に、PC10234
は、問題の主題が前記目的に関する意図された操作を実
行することを要求されたアクセス権を有するかどうかを
表示するgo/no−go出力を提供する。
前記の機構に加えて、アーギユメントを交差領域呼出し
において通過可能である各手順は、これに対して、仮想
プロセス10212に関して論述したように、アクセス情報
アレー(AIA)10352を関連させている。手順のAIA10352
は、呼出された手順が通過したアーギユメントについて
作動し得る前に、呼出し側の手順(主題)がどんなアク
セス権を特定の目的(アーギユメント)に対して持たね
ばならないかを通知する。CS10110の機密保護機構は、
呼出し側の手順のアクセス権を呼出された手順により要
求される権利と比較する。このことは、呼出し側の手順
が、実施を許されないことを実施するよう呼出された手
順に要求しないことを保証する。呼出し側の手順は、呼
出された手順に対して呼出し側の手順により保有される
アクセス権のみを有効に通過可能である。
最後に、PC10234またはAPAM10910またはAST10914の障害
状態(即ち、失敗)はCS10110のアクセス指定機構10220
の論議においてページ障害に関して前に述べた方法と同
じ方法で取扱われる。このように、機密保護作用の失敗
の取扱いについてはこの観点からこれ以上は説明しな
い。
CS10110の機密保護機構10230の構造および作用について
簡単に説明したが、CS10110のマイクロ命令機構10236に
ついて以下に述べる。
F.CS10110のマイクロ命令機構(第110図) 前述の如く、CS10110は多重言語機械である。高水準の
ユーザ言語において書込まれた各プログラムは、SINと
して示される命令を含む対応するS言語プログラムにコ
ンパイルされる。CS10110は、各S言語に対するSイン
タプリタ(SINT)と呼ばれる1組の即ちダイアレクトの
マイクロコード命令を提供する。SINTはSINの翻訳を行
ない、CS10110の詳細な制御のための対応するシーケン
スをなすマイクロ命令を提供する。
第110図においては、CS10110のマイクロ命令機構10236
の部分図が示される。システムの初期化において、SINT
および全ての機械補助マイクロコードを含む全てのCS10
110のマイクロコードが、補助ストアからMEM10112にお
けるマイクロコード制御ストア(mCCS)10238に対して
転送される。このマイクロコードは次に、mCCS10238か
らFUマイクロコード構造(FUmC)10240およびEUマイク
ロコード構造(EUmC)10242に対して転送される。EUmC1
0242は構造および作用においてFUmC10240と類似し、こ
のためCS10110の構造および作用についての以下の詳細
な説明において説明することにする。同様に、CS10110
の機械補助マイクロコードについても以下の詳細な論述
において説明することにする。本論はCS10110のSイン
タプリタ機構に関する。
CS10110のSインタプリタ(SINT)は、第110図において
Sインタプリタ1乃至Nを含むものとして表わされるS
インタプリタテーブル(SINT)11012にロードされる。
各SITは1連以上のマイクロコードを含み、各連のマイ
クロコードは前記S言語ダイアレクトにおける特定のSI
Nと対応している。Sインタプリタ・デイスパツチ表(S
DT)11010はSインタプリタのデイスパツチヤ(SD)1
乃至Nを含んでいる。
SINT11012における各SINTに対して1つのSDが存在し、
このため各S言語ダイアレクトに対して1つのSDが存在
する。各SDは1組のポインタからなる。ある特定のSDに
おける各ポインタは、この速度のダイアレクトの特定の
SINに対応し、またSITT11012におけるこのダイアレクト
のSITにおける前記SINを翻訳するための対応する一連の
マイクロ命令を指示する。事例においては、前に述べた
ように、ある特定の手順が実行中である時、この手順に
対するSIPがmCR10336の1つに転送される。このSIPは前
記手順のSINの翻訳のため使用されるべきSITに対するSD
の開始を指示する。第110図においては、mCR10336のSIP
がSD2の開始を指示する如くに示されている。この手順
の実行中に現われる各S−Opは、対応するSDポインタを
指示する選定されたSDの開始に関するオフセツトであ
る。このSDポインタは更に、SITT11012における対応す
るSITの前記SINの翻訳のための対応する一連のマイクロ
命令を指示する。以下の論議において説明するように、
一旦あるSINを翻訳するための一連のシーケンスの開始
が選択されると、CS10110のマイクロ機械はSITT11012か
らの前記の一連のマイクロ命令を順次呼出してCS10110
の作用の制御のためこれらのマイクロ命令を使用するよ
うに進行する。
G。CS10110の特徴および別の実施態様の要約 前記の概要では、CS101、即ちCS10110の全般的な構造お
よび作用、ならびにある特徴について説明した。以上の
序説は、更に、CS10110の構造および作用、および更に
他の特徴について特にCS10110の情報、制御ならびにア
ドレス指定の諸機構の物理的構成および作用について更
に説明した。これらCS10110の特徴のあるものについて
は、CS10110に構成された如きこれら特徴の基本的概念
を簡単に述べるため以下において要約する。更に、これ
ら概念のあるものの可能な別の実施態様について説明す
る。
最初に、CS10110は、各々が別個のマイクロ命令制御装
置を有する複数の独立的に作用するプロセツサからなつ
ている。CS10110の本実施例においては、これらのプロ
セツサにはFU10120と、MEM10112と、IOS10116が含まれ
る。他のこのような独立的に作用するプロセツサ、例え
ばアレー・プロセツサの如き特殊な算術演算プロセツ
サ、または多重FU10120を本CS10110に付加することがで
きる。
この点に関して、MEM10112は、1つ以上の別個でありか
つCS10110の各プロセツサに対する独立的なポートを有
する多重プロセツサである。CS10110のプロセツサ間の
全ての通信はMEM10112を介し、そのためMEM10112は記憶
操作の実施と共に、CS10110の中央通信ノードとして作
用する。この他のプロセツサがCS10110に対して付加さ
れるため、更に別個の独立ポートをMEM10112に対して付
設することができる。従つて、CS10110は、各々が個々
のマイクロ命令制御装置を有し、かつそれ自体が別個の
独立のマイクロ命令制御装置を有する独立プロセツサで
ある中央通信兼記憶ノードに対する別個の独立ポートを
有する複数の別個で独立したプロセツサからなるものと
して説明することができる。以下のMEM10112の詳細な説
明において更に述べるように、MEM10112はそれ自体、各
々がメモリーと関連する諸操作を行ないかつ各々が別個
のマイクロ命令制御装置を有する複数の独立的に作用す
るプロセツサからなつている。CS10110のプロセツサ間
の諸操作の連携は、プロセツサ間、例えばSOPと記述子
間に「メツセージ」を送ることによつて達成される。
CS10110アドレス機構は、最初に、目的のUIDアドレス指
定動作に基づくものである。即ち、CS10110の作用にお
いて使用され、あるいはその作用によつて生成される全
ての情報、例えば、データおよび手順は目的に構成さ
れ、各目的は恒久的なUIDに割当てられる。各UIDはある
特定のCS10110内部において、また全てのCS10110間で一
義的であり、かつある特定の目的と恒久的に関連させら
れている。UIDアドレス指定動作の使用により、全てのC
S10110に対して共通であり、かつCS10110のUIDアドレス
指定作用を用いる他のコンピュータ・システムに対して
共通である恒久的な独自のアドレス指定装置が提供され
る。
UIDのアドレス指定操作は、ある特定のCS10110のアドレ
ス(即ち、メモリー)空間が全てのシステムのアドレス
空間、例えば、デイスク駆動機構または特定のCS10110
がアクセスを行なう他のCS10110のアドレス空間を含ん
でいる。UIDのアドレス指定操作は、どのCS10110におけ
るどのプロセスでも、これが物理的なアクセスを行なう
CS10110におけるどの目的、例えば外部における別のCS1
0110に対してもアクセスすることを可能にする。このア
クセスは、CS10110の機密保護機構によつてのみ制約さ
れる。CS10110の別の実施態様においては、あるUIDがあ
る特定のCS10110内でのみ使用されるため保留すること
ができ、またこの特定のCS10110内部でのみ一義的であ
るようにすることもできる。しかし、これらの保留され
たUIDは、各システム間で一義的を持たないものである
ことが全てのCS10110のシステムにおいて知られる限定
的なグループとなり、そのためCS10110のUIDのアドレス
指定動作の一義的な目的アドレス指定能力は保留される
ことになる。
前に述べたように、AONならびに物理的記述子は、現在
は、短縮されたUIDとして有効にCS10110内部でのアドレ
ス指定のために生されている。CS10110の別の実施態様
においては、他の形態のAONが使用でき、あるいは、AON
は完全に見捨てられ、UIDがCS10110内ならびにその相互
間でのアドレス指定操作のため使用される。
CS10110のアドレス指定機構はまた、CS10110内部および
その相互間での記述子の使用に基づいている。各記述子
は、ある特定の目的の識別のためのAONまたはUIDフイー
ルド、目的内でのビツトの細分オフセツトを規定するオ
フセツト・フイールド、および指定されたオフセツトに
おいて開始する特定のビツト数を規定する長さフイール
ドとを含んでいる。記述子はまた、これにより言及され
るデータの特定のフオーマツトを識別する形式即ちフオ
ーマツト・フイールドをも含むことができる。物理的な
記述子はMEM10112をアドレス指定するために使用され、
この場合AONまたはUIDフイールドはMEM10112におけるあ
る物理的場所と呼ばれるフレーム番号フイールドにより
置換される。
前述の如く、記述子は、CS10110を構成する別個の独立
的なプロセツサ(FU10120、EU10122、MEM10112およびIO
S10116)内部およびこれら相互間でアドレス指定を行な
うために使用され、これによりフオーマツト情報を含む
共通のシステム巾を有するビツトの細分性に富んだアド
レス指定操作を提供する。特に、MEM10112は書式化操作
の実施により記述子の形式情報フイールドに応答して、
記述子における要求側により規定されるフオーマツトに
おけるデータを要求側に提供する。MEM10112はまた、記
述子において規定されるフオーマツトにおけるデータを
受入れ、データを記憶するためMEM10112により最も有効
に使用されるフオーマツトにおいてこのデータを再書式
化する。
前述の如く、全てのオペランドは、ある特定のS言語ダ
イアレクト内の全ての名前が統一された固定のサイズお
よびフオーマツトである場合に、名前によりCS10110に
おいて表示される。名前のサイズを規定するK値がS言
語のダイアレクトにおける変更毎にFU10120に対して与
えられ、命令ストリームからの名前の解析の際にFU1012
0により使用される。CS10110の別の実施態様において
は、全ての名前が全てのS言語において同じサイズであ
り、そのためFU10120の解析部における関連する回路は
必要でない。
最後に、CS10110のSOPの使用の説明において、FU10120
のマイクロ命令回路について1つ以上のSインタプリタ
を記憶するものとして説明された。Sポインタが、種々
のS言語のダイアレクトのSOPを翻訳するための組をな
す一連のマイクロ命令であり、かつCS10110を制御する
対応する一連のマイクロ命令を提供する。CS10110の別
の実施態様においては、これらのSインタプリタ(SITT
11012)はMEM10112において記憶されることになる。FU1
0120は命令ストリームからSOPを受取り、また1つ以上
のSインタプリタ基底ポインタ(即ち、MEM10112におけ
るSITT11012と指示するアーキテクチヤ基底ポインタ)
を用いてMEM10112に記憶されたSITT11012をアドレス指
定することになる。MEM10112は、MEM10112におけるSITT
11012から、CS10110の制御において直接使用すべき数連
のマイクロ命令を提供することによつて応答する。ある
いはまた、MEM10112におけるSITT11012は、従来のCPUに
より使用可能な従来の命令、例えばFORTRANまたは機械
語の命令により使用可能な従来の命令を提供することも
できる。このため、例えば、FU10120がデータ・ゼネラ
ル社の「Eclipse」の如き従来周知のCPUで置換すること
が可能になる。
CS10110のいくつかの特徴およびこれらの特徴のあるも
のの別の実施態様について簡単に要約したが、CS10110
の構造および作用については以下に詳細に説明する。
2.CS10110の主要サブシステムの詳細な説明(第201図〜
第206図、第207図〜第274図) これまでCS10110の全体的な構造および作用について説
明したが、CS10110の主なサブシステムの構造および作
用は次に更に詳細に個々に説明することにする。前に述
べたように、CS10110の主なサブシステムは、これから
説明する順序で言うと、MEM10112と、FU10120と、EU101
22と、IOS10116と、DP10118である。MEM10112と、FU101
20と、EU10122と、IOS10116と、DP10118の個々のブロツ
ク図は、それぞれ第201図乃載第205図に示されている。
第201図乃至第205図は第101図に示されるものと対応す
るCS10110の更に詳細なブロツク図を構成するために第2
06図に示される如く組合すことができる。以下に記述の
目的のため、第201図乃至第205図はこのようなブロツク
図を構成するため第206図に示されるように組合される
ものとする。更に別の図が、当業者に対してCS10110の
構造および作用を示すために必要とされる如くに以下の
記述において示される。
前述の如く、MEM10112はそれぞれIOS10116およびJP1011
4に対する個々の独立したポートのMIO10128とMJP10140
を有する優先順位決定用のインテリジエント・メモリー
である。MEM10112はJP10114およびIOS10116により共有
されてこれによりアクセス可能であり、CS10110の主な
メモリーである。更に、MEM10112は外部(IOS10116を介
して)とJP10114間に伝送される情報に対する主な経路
である。
更に以下に述べるように、MEM10112は内部に記憶された
データに対して迅速なアクセスを提供する2つのレベル
のメモリーである。MEM10112の第1のレベルは大きな組
のランダム・アクセス・アレーからなり、MEM10112の第
2のレベルは、その作用が一般にメモリーのユーザから
可視である高速のカツシエ装置、即ちJP10114およびIOS
10116からなつている。MEM10112に記憶される情報は、
いずれのレベルにおいても、JP10114およびIOS10116の
双方にとつてアドレスに指定可能なビツトであるように
見える。更に、MEM10112はJP10114とIOS10116の双方に
対する簡単なインターフエースである。高度のパイプラ
イン構成(同時および重合するメモリー操作)のため、
JP10114およびIOS10116の双方に対するMEM10112のイン
ターフエースは、あたかもJP10114およびIOS10116の各
々がMEM10112に対する完全なアクセスを有する。この特
徴のため、例えば、MEM10112からは63.6メガバイト/秒
まで、MEM10112からは50メガバイト/秒までのデータ転
送速度を可能にする。
以下の記述においては、MEM10112の物理的構成の説明の
前にこれらの記述において使用するある用語について最
初に説明することにする。次にMEM10112のポート構造を
説明し、続いて、MEM10112の制御機構を制御フローにつ
いて説明する。次に、JP10114とIOS10116に対するMEM10
112のインターフエースについて説明する。このような
全体的な説明に続いて、MEM10112の主な論理的構成につ
いての説明は、JP10114とIOS10116に対するMEM10112の
インターフエースから始めて、MEM10112の記憶されたデ
ータの第1の(即ち、大容量の)レベルに向つて内側に
進みながら個々に説明する。最後に、MEM10112のマイク
ロコード制御構造のある特徴について説明することにす
る。
A.MEM10112(第201図、第206図、第207図〜第237図) a.用語の説明 以下の説明においては幾つかの用語が使用されるが、読
者の照合の更のため以下の如く定義する。即ち、 1ワードとは32ビツトのデータである。
1バイトとは8ビツトのデータである。
1ブロツクとは128ビツトのデータ(即ち、4ワード)
である。
1ブロツクは常に、1つのブロツクの境界に関して常に
整合される。即ち、論理アドレスまたは物理的アドレス
の下位の7ビツトが零である(第1章 A.fおよびD
節、CS10110のアドレス指定動作の説明参照)。
用語「整合」とは、あるアドレス境界に対するあるデー
タ項目の開始ビツトのアドレスを意味する。開始ビツト
・アドレスは、開始ビツトのアドレスの下位の7ビツト
が零に等しい時、即ち開始ビツトのアドレスが隣接する
ブロツク間の境界に該当する時、ブロツク整合される。
ワード整合開始ビツト・アドレスとは、開始ビツトのア
ドレスの下位の5ビツトが零であることを意味し、この
開始ビツト・アドレスは隣接するワード間の境界を指示
する。バイト整合開始ビツト・アドレスとは、開始ビツ
ト・アドレスの下位の3ビツトが零であることを意味
し、この開始ビツト・アドレスは隣接するバイト間の境
界を指示する。
ビツトの細分性データは、1つのバイトの境界ではなく
このバイト内に該当する開始ビツト・アドレスを有し、
あるいはこのアドレスはあるバイトの境界と整合される
が、このデータの長さはビツト細分性を有し、即ち8ビ
ツトの倍数ではない。
b.MEM10112の物理的構造(第201図) 第201図においては、MEM10112の部分ブロツク図が示さ
れる。MEM10112の主な機能装置は、メモリー・アレー
(MA)20112を含む主記憶装置バンク(MSB)20110と、
バンク・コントローラ(BC)20114と、バイパス書込み
フアイル(BYF)20118を含むメモリー・カツシエ装置
(MC)と、フイールド隔離装置(FIU)20120と、メモリ
ーインターフエース・コントローラ(MIC)20122であ
る。
MSB20110は、MEM10112の第1の、即ち大容量の記憶レベ
ルを有する。MSB20110は、1から例えば16までのMA2011
2を含む。各MA20112は、例えば、256Kバイト、512Kバイ
ト、1メガバイトまたは2メガバイトの記憶容量を有す
るものでよい。以下において更に説明するように、異な
る容量のMA20112がMSB20110において一緒に使用するこ
とができる。各MA20112は、書込みデータ(WD)バス201
24と並列に接続されたデータ入力と、読出しデータ(R
D)バス20126と並列に接続されたデータ出力を有する。
MA20112はまた(ADCTL)バス20128をアドレス指定して
制御するため並列に接続された制御およびアドレス指定
ポートを有する。特に、MA20112のWDバス20124はRD2012
6と並列に接続され、MA20112のADCTLバス20128は読出し
データ(RD)バス20130と並列に接続されている。MA201
12の制御アドレス・ポート20132はアドレス兼制御(ADC
TL)バス20134と並列に接続される。
BC20114のデータ出力20136はRD20126と接続され、BC201
14のデータ入力20138はRDバス20130と接続される。BC20
114の制御兼アドレス・ポート20140はADCTLバス20134と
接続される。BC20114のデータ入力20142は記憶戻しデー
タ(SBD)バス20146を介してMC20116のデータ出力20144
と接続されている。BC20144の記憶戻しアドレス入力201
48は、記憶戻しアドレス(SBA)バス20152を介してMC20
116の記憶戻しアドレス出力20150と接続されている。BC
20114の読出しデータ出力20154は、読出しデータアウト
(RDO)バス20158を介してMC20116の読出しデータ入力2
0156と接続されている。BC20114の制御ポート20160はメ
モリー制御(MCNTL)バス20164と結合されている。
MC20116は出力20166をMIO10128を介してMIOバス10131と
接続され、ポート20168はMJP10140を介してMODバス1014
4と接続される。MC20116の制御ポート20170はMCNTLバス
20164と接続される。BYF20118の入力20172はMIO10128を
介してIOMバス10130と接続され、出力20176はBWIバス20
178を介してSBDバス20146と接続される。
最後に、FIU20120は、MIO101282を介して出力20180と入
力20182をそれぞれMIOバス10129とIOMバス10130に接続
させている。入力201894とポート20186はそれぞれMJP10
140を介してJPDバス142とMODバス10144と接続されてい
る。制御ポート20188はMCNTLバス20164に接続されてい
る。最後にMIC20122について見れば、MIC20122はMIO101
28を介して制御ポート20190と入力20192をそれぞれMMIO
バス10131とIOMバス10130に接続させている。制御ポー
ト20194と入力20196は、それぞれMJP10140を介してJPMC
バス10147と物理的記述子(PD)10146とに接続されてい
る。制御ポート20198はMCNTLバス20164に接続されてい
る。
C.MEM10112の全体的作用 最初に、MEM10112のIOS10116に対するインターフエース
について述べれば、このインターフエースはMIOバス101
29と、IOMバス10130と、IOMCバス10131を含んでいる。M
EM10112に対して書込まれるべき読出しおよび書込みア
ドレスおよびデータは、IOS10116からIOMバス10130を介
してMEM10112に対して転送される。MEM10112から読出さ
れたデータは、MIOバス10129を介してIOS10116に対して
転送される。IOMCバス10131は、MEM10112とIOS10116間
の両方向制御バスであり、以下において更に説明するよ
うに、MEM10112とIOS10116間に制御信号を転送して、ME
M10112とIOS10116間のデータの転送を制御する。
JP10114に対するMEM10112のインターフエースはMJPバス
10140であり、JPDバス10142と、MODバス10144と、PDバ
ス10146と、JPMCバス10147を含んでいる。物理的記述
子、即ちMEM10112の物理的読出しおよび書込みアドレス
は、JP10114からPDバス10146を介してMEM10112に対して
送られる。SOp、即ち一連のS命令およびオペランドの
1名前は、MEM10112からMODバス10144を介してJP10114
に対して送られるが、JP10114からMEM10112に書込まれ
るべきデータはJP10114からJPDバス10142を介してMEM10
112に対して転送される。JPMCバス10147は、MEM10112と
JP10114間におけるデータの転送を制御するためMEM1011
2とJP10114間の指令および制御信号の転送を行なうため
の両方向の制御バスである。以下において更に説明する
ように、MJPポート10140、特にMOD10144およびPDバス10
146は、一般に二重ポートとして作用する単一ポートと
して物理的に構成される。第1の場合には、MJPポート1
0140は、MEM10112からJP10114に対してSOpを転送するた
めのジョブ・プロセツサ命令(JI)ポートとして作用す
る。第2の場合は、MOD10144とPD10146はMEM10112からJ
P10114に対するオペランドの転送のためのジョブ・プロ
セツサのオペランド(JO)ポートとして作用するが、JP
Dバス10142とPDバスはJP10114からMEM10112に対してオ
ペランドを転送する。
MSB20110について述べれば、MSB20110はMEM10112の第1
の、即ち大容量の記憶レベルを有する。MSB20110は例え
ば1個から16個までのMA20112を有する。各MA20112は、
動的ランダム・アクセス・メモリー・アレーを有し、ま
た例えば、256Kバイト、または512Kバイト、または1メ
ガバイト、または2メガバイトの記憶容量を有する。従
つてMEM10112は、16メガバイトまでの大容量の記憶領域
を有する。以下に更に説明するように、異なる容量のMA
20112、例えば、4つの2メガバイトのMA20112と4つの
1メガバイトのMA20112とをMSB20110において使用する
ことができる。
BC20114はMA20112の作用を制御し、MA20112に関するデ
ータの転出入のための経路である。更に、BC20114は、M
A20112に関して転出入されるデータについてエラーの検
出および補正を行ない、MA20112に記憶されたデータを
リフレツシユし、またリフレツシユ操作の間にMA20112
に記憶されたデータのエラー検出および補正を行なう。
MC20116は、MEM10112の第2の、即ちカツシエレベルの
記憶容量を有し、例えば8Kバイトの高速メモリーを含
む。BYF20118を含むMC20116はまた、MSB20110(BC20114
を介する)とJP10114とIOS10116間のデータ転送のため
の経路でもある。一般に、JP10114とIOS10116間の全て
の読出しおよび書込み操作はMC20116を経由する。しか
し、IOS10116は、MC20116をバイパスする全ブロツクの
読出しおよび書込み操作を行なうことができる。IOS101
16からのブロツク書込み操作はBYF20118を介して行なわ
れるが、ブロツク読出し操作はMC20116に関して内部で
あり以下に示し説明するデータ転送経路を介して行なわ
れる。しかし、MEM10112とJP10114間の全ての読出しお
よび書込み操作は、以下において更に説明するように、
MC20116に関して内部のカツシエ装置を介して行なわな
ければならない。
また以下に示し説明するように、FU20120は、JP10114お
よびIOS10116からMEM10112に書込まれるべきデータを受
取るための書込みデータ・レジスタと、MEM10112がビツ
ト・アドレス指定可能メモリーとして現われるようにMS
B20110から読出されたデータを操作するための回路とを
含む。FU20120は、MEM10112のビツト・アドレス指定能
力を提供することに加えて、データの左右の位置合せ、
データの零充填、以下に述べるその他のデータ操作を行
なう。MEM10112からJP10114に読込まれたデータについ
てのこれらのデータ操作の実施において、MODバス10144
はMC20116からFIU20120への、またFIU20120からMC20116
へのデータの転送のためのMEM10112に対して内部のデー
タ経路として使用される。即ち、JP10114に対して転送
されるべきデータはMC20116から読出されMODバス10144
を介してFIU20120に転送され、FIU20120により操作さ
れ、MODバス10144を介してFIU20120からJP10114へ転送
される。
MIC20122はMEM10112の作用を制御する回路を含み、JP10
114とIOS10116とのMEM10112のインターフエースを制御
する。MIC20122はMEM10112の読出しおよび書込み要求、
即ちPDバス10146とIONバス10130を介して読出しおよび
書込みアドレスを、またJPMCバス10147およびIOMCバス1
0131を介して制御信号を受取り、MCNTLバス20164を介し
てBC20114、MC20116およびFU20120に対して制御信号を
与える。
MEM10112の全体的な構造および作用について述べたが、
MEM10112のポート、即ちMIOポート10128とMJPポート101
40の構造および作用について次に説明し、これにMEM101
12の制御構造およびMEM10112の読出しおよび書込み要求
の制御および流れについての説明が続く。
d.MEM10112のポート構造 MEM10112のポート構造は、MODバス10144およびIOS10116
からのMEM10112の読出しおよび書込み要求に対応する時
の迅速で柔軟性に富んだ操作を提供しながら、JP10114
およびIOS10116に対する簡単なインターフエースを提供
するように構成されている。この点に関して、以下に更
に述べるようにMEM10112は4つまでの読出しおよび書込
み要求を、例えば1秒当り63.6メガバイトまでのデータ
速度で同時に取扱うことができる。更に、MEM10112は、
ビツトの細分アドレス指定、ブロツクの読出しおよび書
込み操作、およびJP10114およびIOS10116の最大効率を
可能にするため位置合せおよび充填の如き、データ操作
を行なうことが可能である。
MEM10112は3つのポートからの要求を有効に作用する。
これらのポートは、以下においてIOポートと呼ばれるMI
Oポート10128からIOS10116に至るポートと、JP10114に
対する前に述べたJIおよびJOポートである。これら3つ
のポートは、MEM10112の全アドレス・ベースを共有する
が、IOS10116は例えばMEM10112のアドレス空間の完全な
使用を制限することができる。各ポートは異なる組合せ
の許容された諸操作を有する。例えば、JOポートはベー
ス細分性に富むアドレスを使用できるが、各要求におい
ては32ビツトのデータしか照合できない。JIポートは32
ビツトのデータ項目のワード整合しか行なわない読出し
要求を行なうことができる。IOポートはビツト細分デー
タの照合ができ、また以下に更に述べるように、各読出
しまたは書込み要求において16バイトまでの読出しまた
は書込みが可能である。これらポートの各々の特性につ
いては次に論述しよう。
1.IOポートの特性 IOS10116は、2つのモードのいずれによつてもMEM10112
をアクセスすることができる。第1のモードはMC20116
におけるカツシエ装置のバイパスまたはこれを経由する
ブロツク転送であり、第2はカツシエ装置およびMC2011
6を経由するブロツク転送である。
ブロツクのバイパスは読出しおよび書込みの両操作につ
いて生じ得る。読出しまたは書込み操作は、もしデータ
がブロツクの境界にあるならば、ブロツク・バイパスに
対して有効であり、16バイトの長さであり、読出しまた
は書込み要求は、カツシエ操作(MC20116のカツシエ装
置へのローデイング)が実施されるべきことを表示する
制御信号は伴なわない。バイパス操作は、単にブロツク
・アドレス、即ちMEM10112におけるブロツクの物理的ア
ドレスがその時カツシエ化されたブロツク、即ちMC2011
6のカツシエ装置には存在しないブロツクはアドレス指
定しなければならないときにのみ発生する。もしブロツ
クがMC20116のコンピュータ・システムにおいてカツシ
エ化されるならば、読出しまたは書込み転送はMC20116
のカツシエ装置に対してなされる。
部分的なブロツク照合、即ち不完全なブロツク転送はMC
20116のカツシエ装置を介して行なわれる。もしカツシ
エ装置のミスが生じるならば即ち、照合データがMC2011
6のカツシエ装置に存在しなければ、MEM10112の制御構
成部がデータをMSB20110に関して出入りさせ、またMC20
116のカツシエ装置を更新する。部分ブロツクは1バイ
ト程の短いものから15バイトの長さまでありうることを
知るべきである。始動バイト・アドレスは1つのバイト
内のどこでもよいが、部分ブロツクの長さは1つのラベ
ルの境界を越えることはない。
ビツト長の転送、即ち1乃至16ビットの長さであつて1
バイトの倍数ではない長さを有する、即ちアドレスはバ
イト境界上にはないデータ項目の転送はMC20116のカツ
シエ装置を経由する。これらの操作はバイト、ワード、
またはブロツクの境界に跨がつてもよいが、ページ境界
に跨がることはない。IOポインタにより要求されたこれ
らの特定の操作は、読出しまたは書込み要求が部分ブロ
ツクすなわちビツト長転送であるかどうかを決定する。
2.JOポートの特性 JPポートからの全ての読出しまたは書込み要求はMC2011
6のカツシエ装置を経由しなければならず、バイパス操
作は実施できない。MEM10112とJP10114間に転送される
データは常に32ビットの長さであるが、この送られた32
ビットの内零から32ビツトが有効なデータである。JP10
114は、読出しまたは書込み要求の一部として与えられ
るあるFIU指定ビツトの照合によつて32ビット内の有効
データの場所を判定する。以下に更に述べるように、FI
U指定ビツトおよび他の制御ビツトは、各読出しまたは
書込み要求が行なわれる時、JPMCバス10147を介してJP1
0114によりMIC20122に対して与えられる。
MEM10112はJP10114に対するブロツク・バイパス操作は
行なわないが、MEM10112はカツシエ読尽し操作を行なう
ことができる。このような操作は、要求されたデータが
MC20116のカツシエ内に存在しないJP10114の読出し要求
において生じる。もしJP10114の読出し要求がワード整
合された完全ワードに対するものであるならば、以下に
述べるMEM10112のロード管理装置が要求されたデータを
JP10114に対して直接転送すると同時に、要求データをM
C20116のカツシエ装置に対してロードする。この操作は
「ハンド・オフ」操作と呼ばれる。これらの操作はま
た、1つの32ビツト・ワードの右側の半ワードに整合さ
れた16ビツトの半ワードに対して、または完全ブロツク
が左側に置かれてMC20116のカツシエ装置にロードされ
るならば、IOポートによつて実施することができる。
3.JIポートの特性 全てのJIポート要求はMC20116のカツシエ装置により満
たされ、MEM10112はJIポートに対するバイパス操作を実
施しない。JIポート要求は常に完全ワードで整合された
ワードに対する読出し要求であり、前述の如くもしカツ
シエミスが生じるならば解除される。他のほとんどの点
においては、JIポート要求はJOポト要求に類似する。
JP10114およびIOS10116に対するMEM10112の入力および
出力ポートを含むMEM10112の全体的構造および作用につ
いて述べたが、MEM10112の制御構造について次に説明す
る。
e.MEM10112の制御構造および作用(第207図) 第207図においてはMC20116の更に詳細なブロツク図が示
される。第207図は、MEM10112の制御構造の以下の論述
において第201図に関連して言及される。
1.MEM10112の制御構造 最初に第207図において、MCNTLバス20164は、MCNTL−BC
バス20164Aと、MCNTL−MCバス20164Bと、MCNTL−FIU
バス20164Cを含む如く示されている。各バスMCNTLバス2
0164AとMCNTLバス20164BとMCNTLバス20164Cは、それぞ
れBC20114とMC20116とFIU20120とに接続されたMCNTLバ
ス20164の分岐である。また第207図にはJP10114に対す
るPDバス10146とJPMCバス10147、またIOS10116に対する
IOMバス10130およびIOMCバス10131が示されている。
JOポート・アドレス・レジスタ(JOPAR)20710とJIポー
ト・アドレス・レジスタ(JIPAR)20712は、PDバス1014
6と接続された入力を有する、IOポート、アドレス・レ
ジスタ(IOPAR)20714はIOMバス10130と接続された入力
を有する。ポート制御ロジツク(PC)20716はJPMCバス1
0147とIOMCバス10131と制御された両方向性の入出力を
有する。バイパス読出し/書込み制御ロジツク(BR/W
C)20718は、IOMCバス10131と接続された両方向性入出
力を有する。
JOPAR20710とJIPAR20712とIOPAR20714の出力は、それぞ
れバス20732と20734と20736を介してポート要求マルチ
プレクサ(PRMUX)20720の入力と接続されている。
PRMUX20720の出力は更にバイ20738と接続される。バス2
0738の分岐はロード・ポインタ(LP)20724ミス制御装
置(MISSC)20726要求管理装置(RM)20722の入力側と
接続され、またバスMCNTL−MC20164BとMCNTL−FIU20164
Cに接続される。
PC20716の出力はバス20739を介してJOPAR20710、JIPAR2
0712、IOPAR20714、PRMUX20720、LP20724の入力側と接
続される。バス20740はPC20716の入出力側とRM20722の
入出力側間に接続される。
BR/WC20718の出力はバス20742を介してMCNTL−MCバス20
164Bに対して接続される。BR/WC20718の入力は、それぞ
れバス20744と20746を介してRM20722と20728と接続され
る。
RM20722は出力側を、それぞれバス20748、20750、20752
および20754を介してMCNTLバス20164Aと、MCNTLバス201
64CとMISSC20726の入力側と、LP20724の入力側とに接続
させる。MISSC20726の出力はMCNTLバス20164Aに接続さ
れる。LP20724の出力はMCNTLバス20164Bと接続され、ま
たそれぞれバス20756およびバス20758を介してMCNTL−M
Cバス20164BおよびLM20730の入力側と接続される、RQ20
728の入力は、MISSC20726を介してMCNTLバス20164Bと接
続され、またRQ20728はその出力を20762を介してLP2072
4の入力側と接続させ、また前に述べたように、バス207
46を介してBR/WC20718の入力側と接続させる。LM20730
の出力はバス20764を介してMCNTLバス20164Bと接続され
る。
第207図に関してPC20716の構造について説明し、第201
図に関してMEM10112の構造について前に説明したが、ME
M10112の制御構造の作用については第201図および第207
図の双方に関して次に説明する。
2.MEM10112の制御作用 最初に第207図においては、JOPAR20710とJIPAR20712とI
OPAR20714は、前述の如く、JP10114からのPDバス10146
とIOS10116からのIOMバス10130とに接続される。JOPAR2
0710とJIPAR20712とIOPAR20714は、JP10114とIOS10116
からの読出しおよび書込み要求アドレスを受取つて、こ
れらのアドレスをMEM10112による以後のサービスのため
に記憶する。以下において更に述べるように、JP10114
およびIOS10116からのこれらのアドレス入力は、要求さ
れたデータが要求側に対して転送されあるいはMEM10112
に書込まれる前にどんなデータ処理操作がFIU20120によ
つて行なわれなければならないかを指示するFIU情報
と、MEM10112から読出されたデータが与えられるべき行
先に関する情報と、オペランド長に関する情報とを含
む。JOPAR20710とJIPAR20712とIOPAR20714で受取られて
これに記憶された要求アドレス情報は、MEM10112が対応
する要求のサービスを開始するまで保持れる。MEM10112
は、あるポートに対する前の要求が処理されあるいは打
切られた後にのみこのポート・レジスタに対するその他
の要求アドレス情報を受入れる。JOPAR20710とJIPAR207
12とIOPAR20714のアドレス情報出力は、個々の要求のサ
ービスが開始される時、PRMUX20720を介してバス20738
へ転送され、ここからRM20722とMC20116とFIU20120に対
して転送される。以下に述べるように、このアドレス情
報は、MC20116のミスの発生と同時にカツシエ装置のミ
スの処理のため使用されるようにPRMUX20720とバス2073
8を介してLP20724に対して転送れる。
PC20716は、JPMCバス10147とIOMCバス10131を介してJP1
0114とIOS10116から要求された各メモリー操作に関する
指令および制御信号を受取る。PC20116は要求調整ロジ
ツクとポート状態ロジツクとを含む。要求調整ロジツク
は、IO、JI、JOの各ポートが処理される時、これらのポ
ートの処理が行なわれるシーケンスを決定する。ポート
のサービスのシーケンスの決定において、要求調整ロジ
ツクはポート状態ロジツクからの各ポートに対するその
時のポート状態情報と、入力する各要求に関するJPMCバ
ス10147とIOMCバス10131からの情報とMEM10112のその時
の処理状態に関するRM20722からの情報とを使用する。
ポート状態ロジツクは、バス20738を介する制御信号に
よつて処理されるべき特定の各ポートを選択し、選定さ
れたポートの処理においてMEM10112の制御ロジツクの残
部により使用するため、JOPAR20710とJIPAR20712とIOPA
R20714からPRMUX20720を介してバス20738に対する各ポ
ートの要求アドレス情報の転送を可能にする。JP10114
とIOS10116からJPMCバス10147とIOMCバス10131を介して
受取られる要求情報に加え、ポート状態ロジツクはRM20
722からの情報を使用し、あるカツシエ・ミスの発生と
同時に、LM20730からの情報(第207図においては、明瞭
化のためこの関係については示さない)を使用する。ポ
ート状態ロジツクはまた、種々のポート状態のフラツグ
信号例えばポートの使用可能な信号、有効要求を示す信
号および種々のポートがサービスを待機していることを
示す信号を制御する。
RM20722は各要求に対するサービスの実行を制御する。R
M20722は、要求されたMEM10112の諸操作により要求され
る諸プログラムを実行マイクロコードで制御された「マ
イクロル機械」である。RM20722の入力は、ある特定の
要求の処理において行なわれるべきMEM10112の操作の型
式に関する情報を含むIOPAR20714、JIPAR20212、JOPAR2
0210からの要求アドレス情報と、他のMEM10112の制御要
素から割込み信号と、例えば、PC20716の要求調整ロジ
ツクからの開始信号を含む。RM20722は、FIU20120と、M
C20116とMEM10112の制御構成の他のほとんどの部分に対
して制御信号を与える。
第201図のおいては、MC20116のカツシエ装置は、例え
ば、MCB20110に記憶されたデータのサブセツトに対して
迅速なアクセスを行なうため使用される8Kバイトの4組
の連想カツシエ装置である。MC20116のカツシエ装置に
記憶されたMSB20110のデータのサブセツトは、如何なる
時にも、JP10114またはIOS10116によつて最も後で使用
されたデータである。以下において更に説明するMC2011
6は、カツシエされたアドレスを決定するためのタツグ
・ストア比較ロジツクと、対応するカツシエされたデー
タを含むデータ・ストアと、あるカツシエ・ミスの発生
と同時にカツシエ装置の内容を更新するため必要なレジ
スタとロジツクとを含む。カツシエ・ミスを処理するた
めのレジスタとロジツクは、最近使用しなかつたカツシ
エのエントリを判定するためのロジツクと、ミスしたカ
ツシエ照合に関する情報、例えば修正バスおよび交換ペ
ージ番号の捕捉および記憶のためのレジスタとを含む。
MC20116に対する入力は、RM20722と、LM20730(以下に
おいて更に説明する)と、FIU20120、と、MSB20110(BC
20114を介する)と、LP20724(以下において更に説明す
る)と、PRMUX20720からのアドレス情報である。MC2011
6の出力はFIU20120に対するデータと(MODバス10144を
介する)go-toFIU20120信号と、データ要求信号(JP101
14とIOS10116)と、MC20116書戻しフアイル(以下にお
いて更に説明する)を含む。
前述の如く、FIU20120は、MEM10112をビツト・アドレス
指定可能に見えるようにするため必要なロジツクを含
む。更に、FIU20120は、要求側(JP10114またはIOS1011
6)により要求される如きあるデータ処理操作の実施の
ためのロジツクを含む。データは、MEM10112に対して内
部となるMODバス10144の部分を介してMC20116からFIU20
120に対して転送され、必要に応じて要求され、次いでM
ODバス10144またはMIOバス10129を介して要求側に対し
て転送される。カツシエされたデータの読出し−変更−
書込みを要求する書込みの場合には、データは、操作後
にMODバス10144を介して再びMC20116に転送される。一
般にデータ処理操作は、選定されたMODバス10144または
MIOバス10139の回線に対する要求データの位置決め、お
よび要求側により指定される如き未使用のバス回線の充
填を含む。FIU20120に対するデータ入力は、MC20116ま
たはJP10114からMODバス10144を介して、あるいはIOS10
116からIOMバス10130を介して行なうことができる。FIU
20120からのデータ出力は、これらの同じバスを介してM
C20116またはJP10114またはIOS10116に対して行なわれ
る。制御情報はRM20722からバス20748およびMCNTLバス2
0164Cを介してFIU20120に対して与えられる。アドレス
情報は、JOPAR20710またはJIPAR20712またはIOPAR20714
からPRMUX20720、バス20738およびMCNTLバス20164Cを介
してFIU20120に対して与えることができるのである。
第207図においては、MISSC20726がMC20116のミスの処理
に使用される。MC20116のカツシエにないデータを照合
する要求の場合には、MISSC20726は実施されるべき照合
および操作の形式のブロツク・アドレスを記憶するが、
この情報はMC20116におけるアドレス・レジスタから、
またRM20722から与えられる。MISSC20726は、照合され
たデータを得るためMSB20110から読出されたデータに対
して、MCNTLバス20164Aを介してBC20114に対する指令を
生成する際にこの情報を使用する。BC20114はこの指令
をキユー即ちレジスタに置き、またその後指令された読
出し操作を実行する。PC20716はまた、照合されたDTが
その後MSB20110から読出される時に実施されるべき操作
の形式を表示するRQ20728(以下において更に説明す
る)に対するエントリを生じる。
RQ20728は、例えば、MSB20110から読出されつつあるデ
ータと関連する諸操作を示す情報を記憶する3レベルの
深さのキユーである。
2つの種類の操作、即ちブロツク・バイパス読出しとカ
ツシエ・ロードの操作を表示することができる。もしあ
るカツシエ・ロードが指定されるならば、即ちMC20116
のカツシエの読出しおよび記憶が表示されるならば、RM
20722は割込みが行なわれ、カツシエ・ロードが完了す
るまで他のMEM10112の操作を遊休状態に置くように強制
される。ブロツク・バイパス読出し操作はMSB20110から
のデータの制御を行なうバイパス読出し制御(以下に説
明する)をもたらす結果となる。RQ20728に対する入力
はRM20752、MISSC20726およびBC20114からの制御信号で
ある。RQ20728は、LP20724(以下に説明する)と、LM20
730(以下に説明する)と、RM20722とに制御出力を与
え、バイパス読出し制御(以下に説明する)を行なう。
LP20714は、MC20116のタツダ・ストアをロードするため
生じるMC20116のミスを処理するため必要な情報を記憶
するための1組のレジスタである。MSB20110に記憶され
たMC20116のカツシエ・ミスの処理のためMSB20110から
読出されたデータがBC20114を介して使用可能状態にな
る時、LM20730はこの情報を使用する。LP20724に対する
入力はJOPAR20710、またはJIPAR20712、またはIOPAR207
14からPRMUX20720およびバス20738を介して与えられた
脱落した照合のアドレスと、RM20722からの指令と、RQ2
0728からの制御信号を含む。LP20724の出力は、バス207
56およびMCNTLバス20164Bを介するMC20116への脱落した
照合のアドレスと、LM20730とBR/WC20718に対する指令
信号を含む。
前の述べたLM20730は、カツシエ・ミスの発生後MSB2011
0からのデータでMC20116のカツシエのローデイングを制
御する。前述のRQ20728は、MSB20110から読出された各
データに対して、読出されたデータはMC20116のカツシ
エ・ミスの結果であるかどうかを示す。もしこのデータ
がカツシエ・ミスの結果としてMSB20110から読出される
ならば、LM20730はMSB20110からのデータおよびその関
連するアドレスをMC20116のカツシエにロードするため
の一連の指令信号を生じるため進行する。このデータは
MC20116のカツシエ・データ・ストアに転送されるが、L
P20724からのブロツク・アドレスはMC20116のカツシエ
のタツグ・ストア(以下の論議において説明する)に転
送される。もしMC20116のカツシエに対するデータの転
送がこのカツシエに前から存在するデータを置換するな
らば、またこの前のデータが「不適合」である。即ちMS
B20110に記憶されるデータの元のコピーとな異なるよう
に書込まれたものであれば、MC20116に常駐する変更デ
ータはMSB20110に再び書込まれねばならない。この操作
は、以下に述べるMC20116に含まれる書戻しフアイルを
介して行なわれる。このような操作の場合、LM20730は
これもまた以下に説明する如く、MC20116とBC20114によ
り書戻し操作を開始する。
以下の論議において更に詳細に述べるように、全てのMC
20116のカツシエ・ロード操作は完全4ワード・ブロツ
クである。MC20116のカツシエ・ミスにおいて生じる要
求の結果「ハンド・オフ操作」、即ち完全4ワード・ブ
ロツクの読出し操作をもたらす。ハンド・オフ操作はま
た、32ビツトのワード整合されたワードがJP10114から
転送される単一の32ビツト・ワードでよく、あるいは右
側の半ワードで整合された16ビツトのオペランドはIOS1
0116から転送される。このようなハンド・オフ操作にお
いては、LM20730は要求側のポートに対して有効要求信
号を送り、またハンド・オフ操作が実施されることにな
る。さもなければ、待機信号が要求側のポートに対して
送られ、要求は以後の実行のためPC20716の優先順位キ
ユーに再び入る。これらの操作を実施するため、LM2073
0はRQ20728(説明の明瞭化のため第207図には示さな
い)とLP20724から入力を受取る。LM20730は、PC20716
のポート状態ロジツクと、MC20116とMC20116の書戻しフ
アイルと、MC20116の書戻しアドレス・レジスタと、BC2
0114に対して出力を与える。
第201図においては、前述の如く、MC20116が直接MSB201
10に対して完全ブロツク書込み操作を要求する。このよ
うなバイパス書込み要求は、もし転送中のブロツクがMC
20116のカツシエにおいてカツシエされなければ満たす
ことができる。このような場合、RM20722はBR/WC20718
においてバイパス書込み制御ロジツクを設定する転送を
開始し、次に操作の制御を完了するためBR/WC20718のバ
イパス書込み制御ロジツクに対して送ることができる。
バイパス書込み制御は、この時IOS10116からのデータ・
ブロツクの残る部分を受入れ、IOMCバス10131を介して
適当な初期手続きを生成し、このデータ・ブロツクをBY
F20118とIOS10116にロードする。MISSC20726は、MCNTL
バス20164Aを介してBC20114に対してバイパス書込み指
令を提供する。20144はこの時BYF20118からのデータ・
ブロツクをMA20112およびMSB20110に対して転送する。
前述の如く、BYF20118はIOMバス10130からデータを受取
り、データ出力をBWY20178およびSBDバス20146を介して
BC20114に対して与える。BYF20118は、データをBC20114
から読出す間IOMバス10130からデータを同時に受入れる
ことができる。BYF20118に対するデータ書込みの制御
は、BR/WC20718のバイパス書込み制御ロジツクから行な
われる。
前述の如く、IOS10116はMC20116のカツシエをバイパス
する完全ブロツク読出し操作を要求する。このような場
合、BR/WC20718のバイパス読出し制御装置はIOS10116に
対するーデータ転送を取扱い、IOMCバス10131を介してI
OS10116に対する必要な初期手続き信号を生成する。バ
イパス読出し操作のためのデータ経路は、BYF20118を介
するのではなくMC20116に対し内部であるデータ経路を
経由する。この内部データ経路はMIOバス10129に対する
RDOバス20158である。
前述の如く、BC20114はMSB20110におけるMA20112に関す
る全てのデータの転入出操作を管理する。BC20114は内
部のキユー・レジスタにおけるRM20722からのデータ転
送のための要求を受取る。MSB20110に関する全てのデー
タの転入出は、ブロツク整合されたアドレスによる完全
ブロツク転送である。データ書込み操作時には、BC2011
4はデータをBYF20118またはMC20116の書戻しフアイルか
ら受取り、このデータをMA20112に転送する。読出し操
作中、BC20114はデータ・ブロツクをMA20112から取出
し、データが使用可能であることをMIC20122に対して信
号する間このデータ・ブロツクをRDOバス20158に配す
る。前述の如く、MIC20122はデータおよびBYF20118とMC
20116とMC20116の書戻しフアイルを追跡してこれを制御
し、MSB20110から読出されたデータを適当な行先、即ち
MC20116のデータ・ストア、またはJP10114、またはIOS1
0116に対して指向する。
前記の操作に加えて、BC20114はMA20112のリフレツシユ
を制御し、エラー検出および補正操作を実施する。この
点に関して、BC20114は2つのエラー検出および補正操
作を行なう。最初に、BC20114はMSB20110から読出され
たデータにおける単ビツトおよび二重ビツト・エラーを
検出し、単ビツト・エラーを補正する。第2に、BC2011
4はリフレツシユ操作中MA20112に記憶されたデータを読
出し、単ビツトのエラー検出を行なう。エラーの検出の
際は常に、読出しまたはリフレツシユ操作の間、BC2011
4(以下の記述において更に説明する)はこれに含まれ
るエラー・ログにおける前記エラーのレコードを形成す
る。JP10114およびIOS10116の双方は、BC20114のエラー
・ログを読出し、BC20114のエラー・ログからの情報はC
S10110の保守ログに記録することができ、CS10110の修
理および原因探査における助けとなる。BC20114のエラ
ー・ログはRM20722により直接アドレス指定可能であ
り、BC20114のエラー・ログからのデータはMSB20110に
記憶されたデータと同じ方法でJP10114またはIOS10116
に対して転送される。最後に、MA20112について述べれ
ば、各MA20112は動的な半導体のランダム・アクセス・
メモリーのアレーを含む。各MA20112は256Kバイト、512
Kバイト、1メガバイトまたは2メガバイトのデータ記
憶域を保有する。各MA20112の記憶容量は、各々256Kバ
イト番号セグメントとして構成される。ある特定のMA20
112のアドレス指定においての、BC20114が以下に更に説
明するように前記の特定のMA20112を選定する。BC20114
は同時にこのMA20112内のセグメントならびにこのセグ
メント内の4ワードのブロツクを選定する。各ワード
は、39ビツトの情報と、32ビツトのデータと、7ビツト
のエラー補正コードからなる。各MA20112のワードの全
部で39ビツトは、各読出しおよび書込み操作中にBC2011
4とMA20112間に転送される。MEM10112の全体的な構造お
よび作用について簡単に説明したが、MEM10112により実
施することができるある形式の操作について次に説明す
る。
f.MEM10112の作用 MEM10112は2つの一般的な形式の操作を実施することが
できる。第1の形式はデータ転送操作であり、第2の形
式はメモリー保守操作である。データ転送操作は読出
し、書込みおよび読出し兼設定操作を含む。メモリー保
守操作はエラー・ログ読出し、修理ブロツクおよびフラ
ツシユ・カツシエを含む。フラツシユ・カツシエ操作の
間を除いて、MC20116の存在およびその操作は要求側、
即ちJP10114およびIOS10116から不可視である。
MEM10112の読出し操作は、MEM10112から要求側即ちJP10
114またはIOS10116に対してデータを転送する。読出し
データ転送は要求側がメモリー操作要求の提供と要求さ
れたデータの戻し動作間の経過時間を予測し得ない点で
非同期的である。MEM10112における要求側の作用は、要
求側に対してMEM10112から送られる要求されたデータ使
用可能信号によつて連携される。
MEM10112の書込み操作は、JP10114またはIOS10116のい
ずれかからのデータをMEM10112に対して転送する。この
ような操作の間、JP10114はこれからMEM10112に対して
与えられたデータが受入れられた旨のMEM10112からの信
号を待機する必要がない。JP10114は、MEM10112からのJ
Oポート使用可能信号が存在する時は常にデータをMEM10
112のJOポートに対して転送することができ、読出しデ
ータはJP10114が必要とするこれ以上の動作即ち待機も
なく即時受入れられる。IOS10116からのワード書込み操
作も同様な方法で実施される。しかし、ブロツク書込み
操作と同時に、あるブロツクの二番目、三番目および四
番目のワードの送出の前に、IOS10116はMEM10112からの
信号を含むデータを待機することが必要とされる。
MEM10112は「ビツト固定」操作を行なう能力を有する。
このような操作においては、データのビツト細分性読出
しが行なわれ、全オペランドが要求側に対して送られ
る。同時に、このオペランドの最上位ビツト、即ち固定
ビツトがMEM10112に記憶されたデータのコピーにおける
1つに設定される。要求側に対して送られるオペランド
には、固定ビツトがその前の値、即ちその時の読出しお
よび設定操作の前の値のままで残る。テストおよび設定
操作は、データ項目の長さが1ビツトとして規定される
読出しおよび設定操作を行なうことにより実施される。
前述の如く、MEM10112はエラー検出を含むある保守操作
を実施する。BC20114におけるMEM10112のエラー・ログ
は、1つのアドレス・フイールドと1つのエラー・コー
ド・フイールドを含む34ビツトのレジスタである。最初
のエラーが生じると同時に、エラーの形式、およびMSB2
0110に記憶された読出しデータにおけるERCCエラーの如
きある場合には、エラーを含むデータのアドレスがBC20
114のエラー・ログ・レジスタにおいて記憶される。エ
ラーに関する情報がエラー・ログに記憶されると同時
に、エラーの検出を表示する割込み信号が生じる。もし
エラー・ログが読出されて再設定される前に多重エラー
が生じるならば、最初のエラーに関する情報が保持され
て有効な状態に止まる。エラー・ログ・コード・フイー
ルドは1つ以上のエラーが生じたことを表示するのであ
る。
JP10114は、「読出しログ兼リセツト」操作と呼ばれる
読出しエラー・ログ操作を要求することができる。この
操作においては、MEM10112はJP10114に対するエラー・
ログの全内容読出し、エラー・ログ・レジスタをリセツ
トし、エラーの存在を示す割込み信号をリセツトする。
以下において更に説明するIOS10116は、MEM10112から一
時に16バスを読出すように制限されている。従つて、エ
ラー・ログの読出しには2つの読出し操作を必要とす
る。IOS10116に対する最初の読出し操作はエラー・ログ
・データの上位16ビツトを読出し、エラー・ログはリセ
ツトしない。第2の読し操作は、エラー・ログの下位の
16ビツトのみがIOS10116に読込まれることを除いて、JP
10114の読出しログ兼リセツト操作と同じ方法で実施さ
れる。
MEM10112は、MC20116のカツシエ装置に記憶されたデー
タまたはMA20112に記憶されたデータにおけるパリテイ
即ちERCCエラーを補正する修復ブロツク操作を行なう。
修復ブロツク手順においては、MC20116のカツシエ装置
に記憶されたデータに対するパリテイ・ビツト、または
MA20118に記憶されたデータのERCC検査ビツトがこれに
記憶されたデータのデータ・ビツトと合致するように修
正される。この点に関して、MA20118のデータの2ビツ
ト・エラーの如き修復された補正不能なエラーが良好な
ERCCおよびパリテイ値を有することになる。修復ブロツ
ク操作が行なわれるまで、悪いデータ、即ちパリテイを
有する、即ち無効データを示すERCC検査ビツトを有する
データに対して送られる読出し要求は無効としてフラツ
グされることになる。従つて、修復ブロツク操作は、こ
のようなデータが有効として読出される。例えば、デー
タ補正操作において使用されることを可能にする。修復
ブロツク操作においては、エラーは無視されてBC20114
のエラー・ログにはログされない。もしMEM10112の内部
操作が読出し−修正−書込み手順を必要としなければ、
悪いデータを含む領域に対する書込み操作が実施可能で
ある。MC20116に存在する整数バイト長データのバイト
整合書込みおよびMSP20110におけるデータの整数ワード
長のワード整合書込みのみが読出し−修正−書込みを必
要としない。従つて、このような書込み操作の使用によ
つて、修復ブロツク操作の前もしくわその代りに通常の
書込み操作の使用によつて不良データの上に重ねて書く
ことが可能である。
MEM10112は、電源異常の場合、即ちMEM10112がバツテリ
・バツク・アツプ運転に入る時、カツシエ装置・フラツ
シユ操作を実施する。このような場合、MA20112とBC201
14のみが給電状態を維持する。JP10114およびIOS10116
が給電停止状態になる前に、JP10114とIOS10116は、保
管されるべき操作状態を含むデータをMEM10112に対して
転送しなければならない。これは、通常の一連の書込み
操作の使用によつて達成される。これらの書込み操作の
完了後、JP10114とIOS10116の両者はMEM10112に対して
フラツシユ・カツシエ要求を送る。2つのフラツシユ・
カツシエ要求を受取ると同時に、給電停止の前にMC2011
6のカツシエに記憶された全ての不適正データがMA20112
に対して転送されるように、MEM10112はMC20116のカツ
シエをフラツシユする。もしJP10114またはIOS10116が
作動中ならば、システムの初期化の間にDP10118はこの
事実を検出して使用可能信号(FLUSHOK)のMEM10112に
対する送出を完了する。FLUSHOKは、単一のフラツシユ
・カツシエ要求の受取りと同時にMEM10112がカツシエ・
フラツシユを実施することを可能にする。カツシエ・フ
ラツシユ操作の後、DP10118が電源異常ロツクアウト信
号をリセツトしてMEM10112が通常の作動を再開すること
を可能にするまで、これ以上のMEM10112の作動は不可能
である。
MEM10112の全構造および作用およびMEM10112により実施
可能なある作用について説明したが、次にJP10114およ
びIOS10116に対するMEM10112のインターフエースについ
て説明する。
g.JP10114およびIOS10116に対するMEM10112のインター
フエース(第209図、第210図、第211図、第204図)前述
の如く、MJPポート10140とMIOポート10128は3つの独立
ポートとして論理的に機能する。これらのポートは、IO
S10116に対するIOポートと、JP10114に対するJPオペラ
ンド・ポートと、JP10114に対するJP命令ポートであ
る。第209図、第210図および第211図において、IOポー
ト20910と、JPオペランド(JPO)ポート21010とJP命令
(JPI)ポート21110の線図がそれぞれ示されている。
IOポート20910は、命令とオペランドの双方の転送を含
むMEM10112に対するIOS10116の全ての要求を取扱う。JP
Oポート21010は、オペランド、例えば、JP10114に関す
る数値の読出しおよび書込み操作のため使用される、JP
I21110は、MEM10112からJP10114に対するSIN、即ちSOP
およびオペランド名の読出しに使用される。ある特定の
ポートに対する多くのサービス要求は、これら要求が前
記ポートに対して与えられるように作用される。異なる
ポートに対する要求間には連続順序は保持されないが、
ポートはその優先順位において処理することができる。
本発明の一実施例態様においては、IOポート20190は最
優先順位を与えられ、JPOポート21010がこれに続き、最
後にJPI21110が来、その時要求は入力する要求よりも高
い優先順位を有するポートに保持される。前述の如く、
また以下の記述において更に詳細に説明するようにMEM1
0112の操作がパイプライン化される。このパイプライン
処置はIOポート20190、JPOポート21010およびJPI21110
からの要求のインターリービング、ならびにある特定の
ポートにおける要求のオーバーラツプサービスを可能に
する。オーバーラツプにより、ある特定のポートに対す
る前の操作が完了する前にこのポートの1つの処理操作
が開始することが意味される。
1.IOポート20910の作用特性(第209図第204図) 最初に第209図においては、IOポート20910の略図が示さ
れる。IOポート20910とIOS10116間には、MIOバス1012
9、IOMバス10130およびIOMCバス10131を介して信号が送
られる。MIOバス10129はMD20116とFIU20120からの入力
を有する一方向バスであり、MEM10112からIOS10118に対
するデータおよび命令の転送のために専用化される。IO
Mバス10130も同様に一方向バスであり、IOS10118からME
M10112に対する読出しアドレスと、書込みアドレスと、
MEM10112に書込まれるべきデータの転送のため専用書込
みされている。IOMバス10130は入力をBYF20118と、FIU2
0120と、MIC20122に対して与える。IOMCバス10131は、I
OS10118とMEM10112間の指令信号の交換のための1組の
専用信号回線である。
最初にMIOバス10129に関して述べれば、MIOバス10129は
MC20116のカツシエ装置およびFIU20120から読出しデー
タ入力を受取る36ビツト・バスである。MEM10112からIO
S10116への単一の読出し操作は、データ(MIO(0〜3
1))の1つの32ビツト・ワード(即ち、4バイト)お
よび奇数パリテイ(MIOP(0〜3))の4ビツト即ち1
バイト当り1パリテイ・ビツトを転送する。
次にIOMバス10130について述べれば、IOS10116からMEM1
0112への単一転送は、1つの物理的アドレスと、1つの
真の長さと指令ビツトからなるいずれかのメモリー要求
を含む36ビツトの情報を含む。これらのメモリー要求お
よびデータはIOS10116によりIOMバス10130に対して多重
化される。
IOS10116からMEM10112へのデータ転送は、各々、単一の
32ビツト・データ・ワード(IOM(0〜31))および4
ビツトの奇数パリテイ(IOMP(0〜3))即ち1バイト
当り1パリテイ・ビツトからなる。このようなデータ転
送はBYF20118またはFIU20120によつて受取られる。
前述の如く、各IOS10116のMEM10112に対するメモリー要
求は、1つのアドレス・フイールドと、1つの長さフイ
ールドと、1つの命令コード・フイールドからなる。ア
ドレスおよび長さフイールドは、IOS10116の書込み操作
におけるMEM10112に対するデータの転送のために使用さ
れる32本のIOMバス10130回線を占めている。長さフイー
ルドは、IOMバス10130の各ビツト(IOM(0〜3))を
占める4ビツトの情報を含み、またアドレス・フイール
ドはIOMバス10130の各ビツト(IOM(4〜31))を占め
る27ビツトの情報を保有する。アドレス・フイールドお
よび長さフイールドは共に、MEM10112に関して書込まれ
あるいは読出されるべき物理的な始動アドレスと特定の
データ項目の真の長さを規定する。命令コード・フイー
ルドはMEM10112によつて実施されるべき操作の形式を規
定する。前述の如く、ある基本的な命令コードは、IOM
バス10130の3ビツトの情報占有ビツト(IOMP(32〜3
6))からなる。これらの同じ回線は、データ転送の間
パリテイ・ビツトの転送のため使用される。IOS10116に
よりMEM10112から要求し得るいくつかの操作は、それら
の対応する指令コード・フイールドと共に、下記の如く
である。即ち、 000=読出し 001=読出しおよびセツト 010=書込み 011=エラー 100=読出しエラー・ログ(第1の半部) 101=読出しエラー・ログ(第2の半部) およびリセツト 110=修復ブロツク、および 111=カツシエのフラツシユ、である。
2つの更に別の指令ビツトは、MEM10112によつて実施さ
れるべき他の操作を指定することができる。第1の指令
ビツトは、書込み操作の間MC20116のカツシエにおいてM
EM10112に書込まれつつあるデータを記憶することが望
ましいかどうかについてMEM10112に対して表示する。も
しデータの再使用が行なわれそうにもなければIOS10116
はこのビツトを零にセツトすることができ、これにより
MEM10112に対してMEM10112がデータのセツトを避けるべ
きであることを表示する。もしデータが再使用されそう
もなければIOS10116はこのビツトを1セツトすることが
でき、これによりMEM10112に対してデータを記憶するこ
とが望ましいことを表示する。第2の指令ビツトはサイ
クル指令に対して照合される。サイクル指令ビツトはME
M10112に対し、特定のデータ転送が単一のサイクル操作
即ち1つのビツト細分ワードであるか、あるいは4サイ
クル操作即ち1つのブロツク整合されたブロツクまたは
1つのバイト整合された部分ブロツクであるかについて
表示する。
IOMCバス10131は、IOS10116とMEM10112の作用を連携さ
せるためにIOS10116とMEM10112間における制御信号の交
換のための1組の専用回線を含む。第1のこのような信
号はIOS10116からMEM10112に対するロードIO要求(LIO
R)である。IOS10116がMEM10112に対してメモリー要求
をロードすることを欲する時、IOS10116はこのLIORをME
M10112に対して保有する。IOS10116は、メモリー要求、
即ちアドレス、長さおよび指令コード・フイールドが有
効である同じシステム・サイクルにおいてLIORを保有し
なければならない。もし以下に説明するLIORおよびIOポ
ート使用可能(IOPA)信号が同じクロツク・サイクルの
間保有されるならば、MEM10112のポートはIOS10116から
ロードされてIOPAは脱落して要求が受入れられたことを
表示する。もしある要求のロードが試みられてIOPAが保
有されなければ、MEM10112はこの要求を知らないままで
あり、LIORは活動状態を維持し、IOPAが保有される時、
要求はこの時反復されねばならない。
IOPAは、MEM10112がIOS10116から新たな要求を受入れる
ことができる時、MEM10112によつて保有されるMEM10112
からIOS10116に対する信号である。もし前の要求のアド
レス、長さおよび命令コードの諸フイールドがもはや例
えばバイパス操作の実施中MEM10112によつて要求されな
ければ、IOPAはIOS10116からの前の要求が操作を完了し
つつある間保有することができる。
IOデータ取上げ(TIOMD)は、MEM10112がIOS10116から
のデータを受入れたことを示すMEM10112からIOS10116に
対する信号である。IOS10116は、書込み要求がロードさ
れた後、即ちLIORが保有され、メモリー要求が行なわ
れ、IOPAが解消された後、次のシステム・クロツク・サ
イクルにおいて第1のデータ・ワードをIOMバス10130に
置く。次いでMEM10112は、次のシステム・クロツク・サ
イクルを開始するクロツクの縁部において前記データ・
ワードを取る。この時、MEM10112はTIOMDにデータが受
入れられたことを表示させる。もしIOポート20910が使
用可能であつたならば第1のデータ・ワードが常にMEM1
0112により受入れられないため、単一ワード操作におい
ては、TIOMDはIOS10116によつて使用されることはな
い。ブロツク操作においては、第1のデータ・ワードが
常に用いられるが、第1と第2のワードの受入れの間に
は遅延が生じ得る。MEM10112がTIOMDに対して応答して
このブロツク操作が進行可能であることを表示するまで
は、IOS10116はIOMバス10130において第2のワードを有
効に保持することを要求される。
IO(DAVIO)に対して使用可能なデータは、IOS10116に
より要求されるデータが使用可能であることを示す、ME
M10112によりIOS10116に対して保有される信号である。
DAVIOは、MEM10112が要求されたデータをMIOバス10129
に配するシステム・クロツク・サイクルの間MEM10112に
よつて保有される。単一ワード型の転送においては、DA
VIOは単一システム・クロツク転送のため活動状態とな
る。ブロツク形式の転送においては、DAVIOは通常4つ
の連続するシステム・クロツク・サイクルの間活動状態
となる。BC20114によるERCCエラーの検出および補正の
結果から生じる単一サイクルの「バブル」の場合には、
DAVIOは4つの非連続システム・クロツク・サイクルの
間ハイの状態を維持し、単一サイクル・バブルの場合
は、DAVIOにおける非保有状態はエラーの検出および補
正と対応する。
IOメモリー割込み(IMINT)は、BC20114が前述の如くそ
のエラー・ログに検出されたエラーのレコードを置く時
MEM10112によりIOS10116に対して保有される信号であ
る。
前のMIO転送無効(PMIOI)信号は同様に、MEM10112から
IOS10116に対して読込まれるデータにおけるエラーに関
するMEM10112によりIOS10116に対して保有される信号で
ある。もし補正不能のエラー、即ち2つ以上のデータ・
ビツトがこのデータに見出されるならば、不正確なデー
タがIOS10116に対して読込まれ、PMIOI信号はMEM10112
によつて保有される。データにおける補正可能な、即ち
単一ビツトはPMIOIの保有をもたらさない。MEM10112
は、DAVIOのMEM10112による保有に続く次のシステム・
クロツク・サイクルのIOS10116に対してPMIOIを保有す
ることになる。IOS10116に対するMEM10112のインターフ
エースおよびIOS10116がMEM10112に要求し得るある操作
について説明したが、このインターフエースの能力内の
MEM10112のある操作について次に説明することにする。
第1に、例えば数値データのMEM10112とJOS10116間のオ
ペランド転送は、1から16ビツトに至るどんな長さでも
ビツト細分性に富んだものである。オペランド転送はあ
るページ内の境界と交差してもよいが、物理的ページと
は交差し得ない。前述の如く、MIOバス10129とIOMバス1
0130は一時に32ビツトのデータを転送することが可能で
ある。これらのバスの最下位の16ビツト、即ちビツト16
乃至31はオペランドの転送中右寄せされたデータを保持
することになる。MEM10112が一般にIOポート20910に対
する読出し操作では充填操作は行なわず、あるいはIOS1
0116は活動操作の間未使用ビツトの充填も行なわないた
め、これらのバスの最上位の16ビツトの内容は一般に規
定されない。読出しまたは書込み操作の間、対応するメ
モリー要求における長さのフイールドにより示される如
きデータ・ビツトのみが重要である。しかし、あらゆる
場合は、パリテイはMIOバス10129とIOMバス10130の全て
の32ビツトにおいて有効でなければならない。
第204図においては、IOS10116はデータ・チヤンネル204
10と20412を含んでいるがその各々についてIOS10116の
以下の詳細な説明において更に説明する。データ・チヤ
ネル20410と20412は各々、あるIOポート20910の操作を
規定する特定の特性を有する。データ・チヤンネル2041
0はブロツク整合された完全および部分ブロツクの読出
しおよび書込みを行なうよう作用する。完全ブロツク
は、ブロツク整合されたアドレスと16バイトの長さを有
する。
部分ブロツクはバイト整合されたアドレスと1乃至15バ
イトの長さを有し、部分ブロツクの転送は1つのブロツ
ク内になければならず、即ちブロツクの境界と交差して
はならない。完全4ワード・ブロツクは、いずれの場合
もIOS10116とMEM10112の間に転送されるが、対応するME
M10112の要求における長さのフイールドにより示される
如きブロツクのみが書込み操作において実際に重要とな
る。このような操作における非アドレス指定バイトは、
パリテイが完全データ転送に対して有効である限りどん
な情報でも保有することができる。データ・チヤンネル
20412は2つのバイト境界において一時に16ビツトの読
出しまたは書込みを行なうことが望ましい。このような
読出しおよび書込みはMIOバス10129およびIOMバス10130
において右寄せされる。これらのバスの最上位の16ビツ
トは、パリテイが全32ビツトに対して有効である限り、
このような操作の間どんな情報でも保有することができ
る。データ・チヤンネル20412の操作は、2つのバイト
整合された16ビツトの長さのアドレスによるIOS10116の
オペランドの読出しおよび書込み操作と類似している。
最後に、例えばIOS10116の作用を制御する命令が一時に
1ブロツクずつMEM10112からIOS10116に読込まれる。こ
のような操作は完全ブロツク・データの読出しと同じで
ある。
IOポート20910の作用特性について述べたが、次にJPOポ
ート21010の作用特性について述べる。
2.JPOポート21010の作用特性(第210図) 第210図においては、JPOポート21010の略図が示され
る。前述の如く、JPOポート21010はオペランド、例えば
数値データをMEM10112とJP10114の間に転送するため使
用される。JPOポート21010は36ビツトのPD10146からMIC
20122に対する要求入力(アドレス、長さおよび操作情
報)と、32ビツトのJPDバス10142からFIU20120に対する
書込みデータ入力と、32ビツトの10144に対するMC20116
およびFIU20120からの32ビツトの読出しデータ出力と、
MIC20122とJPMCバス10147間の両方向制御入力および出
力を含む。
最初にJPOポート21010のMODバス10144に対する読出しデ
ータ出力について述べれば、MODバス10144はデータ例え
ばオペランドをJP10114に対して転送するためJPOポート
21010によつて使される。またMODバス10144は、MEM1011
2に対して内部であり、データをMC20116とFIU20120間に
転送する両方向のバスとして使用される。このように、
データはMC20116からFIU20120に対して転送することが
できるが、データがMODバス10144を介してJP10114に対
して転送される前にいくつかのデータ・フオーマツト操
作がデータについて実施される。データはまた、1つの
データ・フオーマツト操作が書込み操作において実施さ
れた後でFIU20120からMC20116に対してデータを転送す
るために使用することができる。またデータは、MC2011
6からMODバス10144を介してJP10114に対して直接転送す
ることもできる。MEM10112に対して内部のMODバス10144
は、32ビツトのデータ、MODバス10144のビツト(MOD
(0〜31))と、1バイト当た1ビツトずつの4ビツト
の奇数パリテイ、MODバス10144のビツト(MODP(0〜
3))の同時転送のための36ビツトのバスである。MEM1
0112に対して外部のMODバス10144は、ビツト(MOD(0
〜31))からなる32ビツトのバスであり、パリテイ・ビ
ツトのJP10114に対しては読込まれない。
データはFIU20120に対するJPDバス10142を介してMEM101
12に対して書込まれる。丁度述べた許りのように、この
時データ・フオーマツト操作は、このデータがFIU20120
からMODバス10144を介してMC20116に対して転送される
前にこのデータについて行なうことができる。このよう
な操作においては、JPDバス10142は、32ビツトのデータ
を送る32ビツトのバス、即ちパリテイ・ビツトを持たな
いビツト(JPD(0〜31))として作用する。JPOポート
21010は、JPDバス10142のデータがMEM10112に対して転
送される時、MEM10112に書込まれるべきこのデータに対
するパリテイを生成する。
メモリー要求もまた、JP10114からJPDバス10142を介し
てMEM10112転送されるが、このバスはこの観点から40ビ
ツトのバスとして作用する。このような各要求は、アド
レス・フイールド、長さフイールド、実施されるべきデ
ータ書式化操作を指定するFIUフイールド、命令コード
・フイールド、およびMEM10112から読出されるデータの
行先を指定する行先コード・フイールドを含む。アドレ
ス・フイールドは、13ビツトの物理的ページ番号フイー
ルド(JPPN(0〜12))と、14ビツトの物理的ページ・
オフセツト・フイールド(JPPO(0〜13))を含む。長
さフイールドは、6ビツトの長さの情報(JLNG(0〜
5))を含み、MEM10112に関して書込みまたは読出しさ
れるべきデータ項目の真の長さを表示する。JPDバス101
42とMODバス10144は各々単一のMEM10112の読出しまたは
書込みサイクルにおける32ビツトのデータの転送が可能
であるため、長さ情報の6ビツトが真の長さを表わすた
め必要とされる。以下の記述において述べるように々JP
10114は直接MEM10112に対して物理的ページ・オフセツ
トおよび長さ情報を与え、論理ページ番号から物理的ペ
ージ番号への変換を行ない、その結果の物理的ページ番
号について機密保護機構10230の検査を実施することが
できる。このため、MEM10112は(JPPO(0〜13))およ
び(JLNG(0〜5))より俊で(JPPN(0〜12))を受
取ることを予期する。しかし、(JPPO(0〜13))およ
び(JLNG(0〜5))は、JP10114のメモリー要求がMEM
10112にロードされるシステム・クロツク・サイクルの
間有効でなければならない。
JP10114からMEM10112に対して与えられた命令コード・
フイールドは、MEM10112によつて行なわれる操作を規定
する3ビツトのコード(JMCMD(0〜2))である。JP1
0114がMEM10112から要求し得るいくつかの操作およびそ
れらの対応する命令コードは下記の如くである。即ち、 000=読出し 001=読出しおよびセツト 010=書込み 011=エラー 100=エラー 101=エラー・ログ読出しおよびリセツト 110=修復ブロツク、および 111=カツシエのフラツシユ、である。
2ビツトのFIUフイールド即ち(JFIU(0〜1))は、
読出しおよび書込み操作の実行において実施されるべき
データ作用操作を規定する。JP10114により要求され得
るデータ作用操作およびそのFIUフイールドには下記の
ものが含まれる。即ち、 00=右寄せ、零充填 01=右寄せ、符号拡張 10=左寄せ、零充填、および 11=左寄せ、空白充填、である。
書込み操作においては、JPOポート21010はFIUフイール
ド、即ち位置合せを規定するFIUフイールド・ビツトの
最上位ビツトにのみ応答する。
最後に、行先フイールドは、MEM10112からのデータ読出
しのためのJP10114の行先を規定する2ビツト・フイー
ルドである。このフイールドはMEM10112に対する書込み
操作については無視される。行先フイールドJPMDSTの第
1のビツトは行先がFU10120であることを識別し、第2
のフイールドDBMDSTはEU10120を行先として規定する。
JPMCバス10147は、JPOポート21010とJP10114間の制御信
号の交換のための専用回線を含む。これらの制御信号に
は、JP10114が要求をMEM10112に対してロードすること
を欲する時JP10114におつて保有されるJO要求ロード(L
JOR)がある。LJORは、PD10146を介してMEM10112に対す
るメモリー要求の提示と同時に保有される。JPOポート2
1010がJP10114から新たなメモリー要求を受入れるべく
使用可能となる時、JOポート使用可能(JOPA)はMEM101
12により保有される。もしLJORおよびJOPAが同時に保有
されるならば、MEM10112がJP10114およびMEM10112から
メモリー要求を受入れてこのメモリー要求が受入れられ
たことを表示する。前述の如く、前の要求が実行中であ
り、かるPD10146の情報、即ち前の要求に関して前に与
えられたメモリー要求がもはや必要でない時、MEM10112
はJOPAを保有することができる。
もしJP10114がメモリー要求を提示しJOPAがMEM10112に
より保有されなければ、MEM10112はこの要求は受入れら
れず、JP10114はJOPAが保有される時この要求を再び提
示しなければならない。前述の如く、JP10114からのメ
モリー要求のJPPNフイールドはこの要求の他のフイール
ドと比較されて後で入力することができる故に、特定の
要求が最初に提示された後次のシステム・クロツク・サ
イクルまで、MEM10112はこの特定の要求に対するJPPNフ
イールドのローデイングを遅らせることになる。またME
M10112は、ポートレジスタをバイパスすることによりこ
のポート・レジスタにロードされつつある時と同時に、
このJPPNフイールドを得ることもできる。
JP10114は、JP要求打切り要求(ABJR)の保有と同時に
メモリー要求を打切ることができる。JP10114からのメ
モリー要求の受入れ後のシステム・クロツク・サイクル
の間、ABJRはMEM10112によつて受入れられ、ABJRはその
結果要求された操作の取消しをもたらすことになる。前
に述べたように、MEM10112が単一のシステム・クロツク
・サイクルの間JP10114からJPOポート21010または21110
のいずれかに対する単一の要求のみを受入れることがで
きるため、単一のABJR回線がJPOポート21010と21110の
双方に対して提供されている。
JPOポート21010を介して要求されるオペランド読出し操
作の完了と同時に、MEM10112はJP10114に対する2つの
データが使用可能ないずれかの信号を保有することがで
きる。これらの信号は、FA(DAVFA)に対して使用可能
なデータと、EB(DAVEB)に対して使用可能なデータで
ある。前述の如く、JP10114からの各読出し要求の一部
は、要求されたデータの意図された行先を示す行先フイ
ールドを含む。以下において更に説明するように、MEM1
0112は読出し要求のためのこのような行先情報を追跡
し、またDAVFAおよびDAVEBの形態の対応する情報と共に
行先情報を戻す。DAVFAはEU10120における行先を示し、
DAVEBはEU10122における行先を示す。MEM10112はまた、
JPOポート21010に対する読出しデータが零充填されたか
どうかを示す零充填信号(ZFILL)を保有することがで
きる。ZFILLはDAVEBが保有される時のみ有効である。
JPOポート21010の書込み要求のため、関連する書込みデ
ータ・ワードは、要求と同じシステム・クロツク・サイ
クル、または1サイクル後のシステム・クロツク・サイ
クルにおいて有効であるべきである。JP10114は、これ
がJPDバス10142に有効な書込みデータを置くシステム・
クロツク・サイクルの間、JP書込みデータ・ロード(LJ
WD)を保有している。
前述の如く、MEM10112がJP10114の要求に応じる際エラ
ーを検出すると、MEM10112はこのエラーのレコードをMC
20116のエラー・ログに入れる。JPOポート21010またはI
Oポート20910にいずれかに対するエラー・ログにエント
リされると、MEM10112は有効なエラー・ログが存在する
ことを表示する割込みフラツグ信号を保有する。DP1011
8はこのフラツグ信号を検出して、このフラツグ信号をJ
P10144またはIOS10116、あるいはその両方に送ることが
できる。DP10118により選定される如く、IOS10116また
はJP10114は次にエラー・ログの読出しおよびリセツト
を行なってこのフラツグをリセツトする。この割込みフ
ラツグ信号はその要求がエラーとなつた要求側、即ちJP
10114またはIOS10116には必ずそも送られない。
もし補正不能なMEM10112のエラー、即ち単一のデータ・
ワードの2つ以上のビツトにおけるエラーが読出し操作
において検出されるならば不正確なデータがJP10114に
対して読込まれて無効データ信号が保有される。前のMO
D転送無効(PMODI)がDAVFAまたはDAVEBのいずれかに続
く次のシステム・クロツク・サイクルにおいてMEM10112
により保有される。PMODIは単一ビツトのエラーについ
ては保有されず、その代りデータが補正されてこの補正
されたデータがJP10114に対して読込まれる。
JPOポート21010の構造および特性について述べたが、JP
Iポート21110について以下に述べる。
3.JPIポート21110の作用特性(第211図) 第211図においては、JPIポート21110の略図が示されて
いる。JPIポート21110はPDバス10146からFIU20120に対
するアドレス入力と、MC20116からJP10144に対するデー
タ出力と、MIC20122からJPMCバス10147への入出力の両
方向制御装置を含んでいる。前述の如く、JPIポート211
10の主な機能は、JP10144からの要求に基づくSOPおよび
オペランド名のMEM10112からJP10114に対する転送であ
る。これによりJPIポートは、各読出し操作が1つの整
合されたアドレスを有する単一の32ビツトのワードの転
送である読出し操作のみを実施する。
PDバス10146からのJPIポート21110の入力については、S
OPおよびオペランド名に対するJP10114によるMEM10112
に対する読出し要求は各々21ビツトのワード・アドレス
を有する。前述の如く、各JPIポート21110の読出し操作
は単一の32ビツト・ワードである。このように、アドレ
スの5つの最下位ビツトはMEM10112により無視される。
同じ理由から、JPIポート21110のMEM10112に対する要求
は、長さフイールド、または命令コード・フイールド、
またはFIUフイールド、または行先コード・フイールド
は含まない。JPIポート21110は単一の操作形式しか実施
せずまた行先コード・フイールドは行先がJPIポート211
10の要求においては固有であるため、長さフイールド、
命令コード・フイールドおよびFIUコード・フイールド
は必要とされない。
JPIポート21110の要求に応答してMEM10112から読出され
る32ビツト・ワードはMODバス10144に対するMC20116の3
2ビツトの出力を介してJP10114に対して転送される。JP
10114に対するJPOポート21010の読出し出力の場合にお
けるように、JPIポート21110はJP10114に対してパリテ
イ情報を提供することはない。
JP10114とJPIポート21110間のJPMCバス10147による制御
信号の交換は、JPOポート21010に関して論述したと同じ
方法で作用するロードJI要求(LJIR)とJIポート使用可
能(JIPA)を含む。前述の如く、JPOポート21010および
JPIポート21110は単一の打切りJP要求(ABJR)の指令を
共有する。同様に、JPOポート21010およびJPIポート211
10はMEM10112から前のMOD転送無効(PMODI)を共有す
る。前述の如く、JPIポート21110の要求は、行先が示唆
される時、行先フイールドは含まれない。しかし、JPI
ポート21110の要求に応答してMEM10112から読出された
ワードがJP10114に存在してこれが有効である時、JP101
14に対しデータ使用可能信号(DAVFI)を与える。
MEM10112の全体的な構造および作用、およびJP10114お
よびIOS10116に対するMEM10112のインターフエースの構
造および作用について述べたが、次にFIU20120の構造お
よび作用について更に詳細に述べる。
h.FIU20120(第201図、第230図、第231図) 前述の如く、FIU20120は、MEM10112のビツトをアドレス
指定可能にするため必要な諸操作を含むいくつかのデー
タ処理操作を実施する。データ処理操作は、例えばJP10
114からJPDバス10142を介して、あるいはIOS10116からI
OMバス10130を介してMEM10112に書込まれつつあるデー
タについて実施することができる。データ処理操作はま
た、MEM10112からJP10114またはIOS10116に対して読込
まれつつあるデータについても実施することができる。
JP10114に対して読込まれるデータの場合には、データ
をMC20116からFIU20120に対して処理のため転送し、ま
た処理されたデータをMEM10112からJP10114に対して転
送する際に、JP10114はMEM10112の内部バスと共に使用
される。IOS10116に対して読込まれるデータの場合に
は、MODバス10144は再びMEM10112の内部バスとして使用
されて、その後の処理のためMC20116からFIU20120に対
してデータを読出す。この処理されたデータは次にFIU2
0120からMIOバス10129を介してIOS10116に対して読出さ
れる。
FIU20120により実施することができるいくつかのデータ
処理操作について説明した。一般に、データ処理操作は
4つの個々の操作からなりFIU20120はこれらの操作のど
んな組合せでも実施することにより可能な方法において
データを処理することができる。これらの4つの可能操
作は、処理されるべきデータの選定、このデータの回転
もしくは変位、このデータのマスキング、および処理さ
れたデータの選定された行先への転送である。FIU20120
の各データ入力は32ビツトのデータ・ワードからなり、
前述の如く、JPDバス10142、MODバス10144およびIOMバ
ス10130から与えられる入力から選定することができ
る。ある場合には、FIU20120のデータ入力は、例えば、
2つにわたるワード操作が行なわれて2つの異なる32ビ
ツト・ワードの各々からのビツトから成る出力を生成す
る時、2つの32ビツト・ワードを含むことができる。選
定された32ビツトのデータ・ワードの回転もしくは変位
は、ある選定されたワード内のビツトをワードの境界に
関して再配置させる。マスキング操作に関連して使用さ
れる時、今述べた通り、回転および変位操作はこのワー
ド内のどの選定された場所に対してもワードにおけるど
の選定されたビツトでも転送するように反復的に実施す
ることができる。以下において更に述べるように、マス
キング操作はどの選定されたビツトのワードでも自由に
消去することを可能にし、これにより他のある選定され
たビツトのみを、あるいはまたある選定されたビツトを
予め定めた値にさせた状態のままにする。マスキング操
作は、32ビツト・ワードの各部の零充填および符号拡張
を行なうために実施することができる。回転または変位
操作と関連して、例えば、マスキング操作は、32ビツト
の入力ワードの単一ビツトを選定し、どの選定されたビ
ツトの場所にも前記ビツトを定着し、このワードの他の
全てのビツトを零に強制することができる。FIU20120の
各出力は32ビツトのデータ・ワードであり、また前述の
如く、MODバス10144またはMIOバス10129に対して転送す
ることができる。以下に述べるように、ある特定のデー
タ・ワードについて実施されるべき前記の4つの操作の
ある特定のシーケンスの選定は、MIC20122から与えられ
る制御入力によつて決定される。MIC20122からのこれら
の制御入力は、FIU20120内に含まれるマイクロ命令制御
ロジツクにより複合され実行されるのである。
第230図においてはFIU20120の部分ブロツク図が示され
る。同図に示されるように、FIU20120はデータ処理回路
(DMC)23010およびFIU制御回路(FIUC)23012を含む。
DMC2310は更に、FIUIO回路(FIUIO)23014と、データ・
シフター(DS)23016と、マスク・ロジツク(MSK)2301
8と、組立てレジスタ(AR)ロジツク23020とを含む。DM
C23010について最初に説明され、その後FIUC23012が続
く。DMC23010の説明においては、FIUIO23014について最
初に説明し、DS23016、MSK23018およびARロジツク23012
0の順に続く。
FIUIO23014については述べると、FIUIO23014はFIU20120
のデータ入力および出力回路からなる。ジヨブ・プロセ
ツサ書込みデータ・レジスタ(JWDR)23022と、IOシス
テム書込みデータ・レジスタ(IWDR)23024と、書込み
入力データ・レジスタ(RIDR)23026は、それぞれJP101
14、IOS10116およびMC20116からデータ・ワード入力を
受取るため、それぞれJPDバス10142、IOMバス10130、MO
Dバス10144に接続されている。JWDR23022とIWDR23024と
RIDR23026とは各々、例えばSN74S374レジスタである36
ビツト・レジスタである。IWDR23024およびRIDR23026に
転送されるデータ・ワードは各々、前述の如く、32デー
タ・ワード、プラス4ビツトのパリテイからなる。しか
し、JP10114からのデータ入力は、前述の如く、パリテ
イを含まない32ビツトのデータ・ワードである。JWDR23
022と関連するジヨブ・プロセツサのパリテイ・ゼネレ
ータ(JPPG)23028はJPDバス10142と接続され、JWDR230
22に対する各データ入力に対する4ビツトのパリテイを
生成する。JWDR23022の36ビツト入力は、これにより、
直接JPDバス10142からのデータの32ビツト、プラスJPPG
23028からの対応する4ビツトのパリテイからなる。
データ・ワード、即ちデータの32ビツト、プラスパリテ
イの4ビツトは、それぞれ、入力可能信号ロードJWD(L
JWD)、またはロードLWD(LIWD)、またはロードRID(L
RID)が保有される時、JWDR23022、またはIWDR23024、
またはRIDR23026に対して転送される。
LJWDはFU10120から与えられるが、LIWDおよびLRIDはMIC
20122から与えられる。
JWDR23022、またはIWDR23024、またはRIDR23026に常駐
するデータ・ワードは選択されて、出力可能信号(JWDE
O)、IWD可能出力(IWDEO)、RID可能出力(RIDEO)に
より、FIU20120の内部データ(IB)バス23030に転送す
ることができる。JWDEO、IWDEOおよびRDIEOは以下に説
明するようにFIUC23012から与えられる。
以下において更に説明するように、DS23016またはARロ
ジツク23020からの処理されたデータ・ワードは、それ
ぞれ、MODバス10144またはMIOバス10129に対する後の転
送のため、データ・シフター出力(DSO)23032、または
アセンブル・レジスタ出力(ASYRO)バス23034に対して
転送されることになる。DSO23032またはASYRO23034に現
われる処理された各データ・ワードは、データの32ビツ
ト、プラスパリテイの4ビツトからなる。DSO23032に存
在する処理されたデータ・ワードはそれぞれDSOバス対M
ODバス駆動ゲート(DSMOD)、または部材SOバス対MIOバ
ス駆動ゲート(DSMIO)23038を介してMODバス10144また
はMIOバス10129に対して転送することができる。ASYRO2
3034に存在する処理されたデータ・ワードは、それぞれ
ASYROバス対MODバス駆動ゲート(ASYMOD)23040またはA
SYROバス対MIOバス駆動ゲート(ASYMIO)23042を介し
て、MODバス10144またはMIOバス10129に対して転送する
ことができる。DSMOD23036、DSMIO23038、ASYMOD2304
0、ASYMIO23042は各々例えばSN74S244ドライバからな
る。
DSMOD23036に対するドライバ・ゲート使用可能信号の対
MODドライバ変位信号(DRVSHFMOD)が保有される時、DS
O23032における処理されたデータ・ワードは、DSMOD230
36を介してMODバス10144に対して転送される。同様に、
DSO23032上の処理されたデータ・ワードは、DSMIO23038
に対するドライバ・ゲート使用可能信号のMIOバスを介
する駆動変位信号(DRVSHFMIO)が保有される時、DSMIO
23038を介してMIOバス10129に対して転送されることに
なる。ASYRO23034に存在する処理されたデータ・ワード
は、それぞれ、ASYMOD23040に対する駆動ゲート使用可
能信号、対MODバス・ドライバ・アセンブル(DRVASYMOD
23040)、または対MIOバス駆動アセンブルが保有される
時、MODバス10144またはMIOバス10129に対して転送する
ことができる。信号DRVSHFMOD、DRVSHFMIO、DRVASYMOD2
3040およびDRVASYMIOは前述の如くFIU23012から与えら
れる。
DP10118についての以下の説明において更に説明するよ
うに、レジスタIARM23044とBARMR23046は、それぞれ、
例えばFIU20120からの処理されたデータ・ワードのIB23
030に対する読込みおよびMODバス10144からの読出しを
行なうためDP10118によつて使用される。FIUC23012から
のレジスタ使用可能出力信号IARM可能出力(IARMEO)が
保有される時、DP10118からIARM23044に対して書込まれ
たデータ・ワード、即ちデータの32ビツトおよびパリテ
イの4ビツトがIB23030に対して転送されることにな
る。同様にデータの32ビツト、およびパリテイの4ビツ
トからなるMODバス10144に存在するデータ・ワードは、
ロード可能信号対BARMRロードBARMR(LDBARMR)がMIC20
122によつて保有される時、BARMR23046に対して書込ま
れることになる。MODバス10144からBARMR23046に対して
書込まれるデータ・ワードは、次に、DP10118に対して
読込むことができる。IARM23044とBARMR23046はJWDR230
22、IWDR23024およびRIDR23026と類似し、例えばSN74S2
99レジスタからなるものでよい。
最後にIOパリテイ検査回路(IOPC)23048について述べ
れば、IOPC23048は各データ・ワード即ちIB23030に生じ
る32ビツトのデータ、およびパリテイの4ビツトを受取
るようにIB23030に対して接続されている。IB23030に現
われる各データ・ワードのパリテイおよびデータの妥当
性を確認し、特にIOS10116からFIU20120に書込まれるデ
ータ・ワードのパリテイおよびデータの妥当性を判断す
る。IOPC23048は、IOS10116からのデータ・ワードにお
けるパリテイ・エラーを表示する前に述べた出力パリテ
イ・エラー(PER)を生成する。
DS23016について述べれば、DS23016はバイト・ニブル・
ロジツク(BYNL)23050、パリテイ回転ロジツク(PRL)
23052およびビツト・スケール・ロジツク(BSL)23054
を含む。BYNL23050、PRL23052およびBSL23054は、例え
ば25S10シフターでよい。BYNL23050は、選定されIB2303
0に対し転送されるデータ・ワードの32のデータ。ビツ
トを受取つて変位するためにIB23030と接続されてい
る。PRL23052は、選定されてIB23030に対して転送され
るデータ・ワードの4つのパリテイ・ビツトを受取つて
これを変位するためIB23030と同様に接続された4ビツ
ト・レジスタである。BYNL23050ろPRL23052の出力は共
にDSO23032に直接され、これにより直接BYNL23050とPRL
23052からの36ビツトのFIU20120のデータ・ワード出力
を与える。BYNL23050の32ビツトのデータ出力もまたBSL
23054の入力側と接続されている。BSL23054の32ビツト
出力は更にMSK23018に対して与えられる。
前述の如く、DS23016はあるデータ・ワード内のビツト
の変位を生じるデータ処理操作を実施する。一般に、DS
23016により実施されるデータ変位操作は、データ・ビ
ツトが右寄せされデータ・ワードの最下位ビツトは最上
位ビツト位置に変位され、また最上位ビツトは最下位ビ
ツト位置に変位させられる回転である。DS23016の回転
操作は2つの段階で実施される。第1の段階はBYNL2305
0とPRL23052によつて実施され、ニブル法(ニブルは4
バスのデータとして規定される)の基づく右回転であ
る。即ちBYNL23050は1つのデータ・ワードを整数の4
ビツトの増分だけ右寄せする。ニブル法に基づいてある
ニブルに関する右回転は、例えば、RM20722が前に述べ
たFLIPHALFを保有する時に実施することができる。FLIP
HAMFは、要求データがMC20116からのデータ・ワードの
最上位の16ビツトに存在するところのIOS10116の半ワー
ド読出し操作に対して保有される。BYNL23050は4ニブ
ルの右回転を行ない、データの所要の16ビツトをBYNL23
050の出力の最下位の16ビツトに対して転送する。その
結果のBYNL23050の出力は、PRL23052のパリテイ・ビツ
トと共に、この声BYNL23050を介してMIOバス10129に対
して転送されることになる。データ変位操作の実施に加
えて、DS23016は、実施されるべきデータ操作がデータ
の変位を必要としない時、即ち0ビツトの変位が実施可
能である時、データ・ワード即ちデータの32ビツトを直
接MSK23018に対して転送することができる。
データ・ビツトはニブル基準に基づいてBYNL23050だけ
変位されるため、1ワードの32データ・ビツトと対応す
る4パリテイ・ビツト間の関係は、もしパリテイ・ビツ
トが同様にデータ・ビツトの右回転に相当する量だけ右
回転されるならば維持することができる。この関係は、
もしデータ・ビツトが2ニブルの倍数、即ち8ビツト即
ち1バイト変位されるならば真である。PRI23052は1つ
のデータ・ワードの4パリテイ・ビツトをBYNL23050に
おける対応する32データ・ビツトの右回転と対応する量
だけ右回転させる。従つてBYNL23050とPRL23052の右回
転された出力は、パリテイ・バツフアがこのデータ・ビ
ツトに適正に関連するデータの32ビツトおよびパリテイ
の4ビツトを有する有効データ・ワードからなる。BYNL
23050およびPRL23052からの右回転させられたデータ・
ワード出力は、前述の如くMODバス10144またはMIOバス1
0129に対する後の転送のため、DSO23032に対して転送す
ることができる。DSO23032は、ある特定のデータ・ワー
ドの所要の操作がバイト単位の整数の右回転数のみを必
要とするバイト回転操作および「回転読出し」操作のた
めFIU20120の出力データ経路とし使用される。BYNL2305
0におけるデータの32ビツトおよびBYNL23050におけるパ
リテイの4ビツトの右回転数は、BYNL23050およびPRL23
052への入力信号変位(SHFT)(0〜2)により制御さ
れる。以下に述べるように、SHFT(0〜2)がSHFT(3
〜4)と共に生成され、FIUC23012によりBSL23054を制
御する。BYNL23050とPRL23052は、以下に述べるBSL2305
4と同様に、並列変位ロジツク・チツプであり、BYNL230
50およびPRL23052、またはBSL23054の全回転作用が単一
のクロツク・サイクルにおいて実施することができる。
第2段の回転は、前述の如く、BYNL23050から1つのデ
ータ・ワードの32データ・ビツトを受けるBSL23054によ
つて行なわれる。BSL23054は、変位量が0乃至3ビツト
の間で選定可能なビツト単位で右回転を行なう。従つ
て、BSL23054はニブルの境界にわたるビツトを回転する
ことができる。従つて、BYNL23050とBSL23054は、1ビ
ツトから全32ビツトにわたる右回転量だけビツト単位の
右回転を行なうことができるデータ変位回路を構成す
る。
次にMSK23018について述べると、MSK23018は5つの32ビ
ツトのマスク・ワード・ゼネレータ(MWG)23056乃至23
064からなる。MSK23018は、MWG23056乃至23064の32ビツ
トのマスク・ワード出力を選択的に接続することによつ
てAR23020に対する32ビツト出力を生じる。MWG23056乃
至23064の1つにより生成される各マスク・ワードは、
1組の使用可能ビツトと、FIUC23012およびMIC20122に
より生成される予め定められた32ビツトのマスク・ワー
ドのビツト単位の組合せを有効に構成する。MWG23058乃
至23064は各々、例えばこれら機能を実施するためのオ
ープン・コレクタ型のNANDゲートからなつているが、MW
G23056は1つのPROMからなる。
今述べたように、MWG23056乃至23064の出力は全て、オ
ープン・コレクタ型の回路であり、このためMWG23056乃
至23064からのマスク・ワード出力の選択されたどんな
組合せでも一緒にORしてMSK23018の32ビツト出力を構成
することができる。
MWG23056乃至23064は、それぞれ、マスク・ワード出力
のロツクされたビツト・ワード(LBW)(0〜31)と、
符号拡張されたワード(SEW)(0〜31)と、データ・
マスク・ワード(DMW)(0〜31)と、空の充填ワード
(BWF)(0〜31)と、組立てレジスタ出力(ARO)(0
〜31)を生成する。最初に23064とARO(0〜31)につい
て説明すると、AR23020における組立てレジスタ(ASYM
R)23066の内容は、使用可能信号の組立て出力レジスタ
(ASYMOR)の保有と同時に23064を通るように送られ
る。このためARO(0〜31)はASYMR23066の内容のコピ
ーであり、23064はASYMR23066の内容がLBW(0〜31)、
またはSEW(0〜31)、またはDMW(0〜31)、またはBF
W(0〜31)の選択された組合せでORされることを可能
にするのである。
MWG23060からのDMW(0〜31)は、DS23016の32ビツト出
力により使用可能入力データ・マスク(DMSK)(0〜3
1)をANDすることによつて生成される。FIUC23012は4
つの異なるDMSK(0〜31)のパターンを生成することが
できる。第231図においては、FIUC20132によつて生成す
ることができる4つのDMSK(0〜31)が示されている。
DMSKA(0〜31)は第231図の線Aに示される。DMSKA
(0〜31)においては、左側ビツト・アドレス(LBA)
により示されるビツトは含まないその左側の全てのビツ
トと右側ビツト・アドレス(RBA)により示されるビツ
トは含まないその右側の全てのビツトは零となる。LBA
およびRBAにより示されるこれらのビツトは1である。D
MSKB(0〜31)HA第231図の線Bで示され反転したDMSKA
(0〜31)である。DMSKC(0〜31)およびDMSKD(0〜
31)はそれぞれ第231図の線CおよびDに示され、それ
ぞれ全て0または全て1からなる。前述の如く、DMSK
(0〜31)は、DS23016の32ビツト出力でANDされ、この
ため、DNSKC(0〜31)は、例えばDS23016の出力を禁止
するため使用することができるが、SMSKD(0〜31)
は、例えばDS23016の出力をAR23020に対して送るために
使用することができる。DMSKA(0〜31)およびDMSKB
(0〜31)は、例えば、DS23016の出力の選択された部
分が他のマスク・ワード出力MSK23018によりORされ得
る、AR23020に対してDS23016の出力の選択された部分を
ゲートするように使用することができる。
次にMWG23062について述べれば、MWG23062はBFW(0〜3
1)を生成する。BFW(0〜31)は、1ビツト/バイトが
1つのロジツクを含み残りのビツトが論理値零を含む場
合で1つ乃至4つのASCIIの空バイトを含む32ビツトの
データ・ワードが生成されることを要求されるある特定
の操作において使用される。この場合、ASCIIの空のバ
イトはビツト位置2、10、18および26における論理値1
を含むことができる。
再び第231図について見れば、同図の線EはFIUC23012に
よつて生成することができる32ビツトの右側マスク(RM
SK)(0〜31)を示している。最も一般的な場合におい
ては、RMSKはRBAにより示されるビツト位置を含む左側
の全てのビツト位置における零を含む。空白の充填操作
において使用される時、ビツト位置2、10、18および26
は、論理値1を含むバイト、ASCIIの空白を含むバイト
の位置に従つて論理値1を含むように選定することがで
き、RBAの右側のこれらのバイトはRMSK(0〜31)によ
つて決定される。MWG23062がFIUC23012から与えられる
空の充填(BLNKFILL)によつて使用可能状態にされる
時、RMSK(0〜31)はMWG23062によりBWF(0〜31)と
して使用可能状態にされる。
前述の如く、MWG23058乃至23064、特にMWG23060およびM
WG23062はNANDゲート操作である。従つて、MWG23056乃
至23064の出力は活動状態のローの信号である。ASYMR23
066の反転出力は、ASYRO23034に対する出力として使用
されて、これら出力を活動状態ハイに反転する。
SEW(0〜31)を生成するMWG23058は符号拡張されある
いは充填されたワードの生成の際に使用される。符号拡
張されたワードにおいては、32ビツトのデータ・ワード
の最上位ビツトの左側の全てのビツト空間はこれ含まれ
たデータの符号ビツトで充填され、32ビツト・ワードの
最も左側のビツトは、このワードの符号ビツトが含まれ
たデータが正数および負数のどちらであるかに従つて論
理値1または0で充填される。
符号選択マルチプレクサ(SINGSER)23066は、IBバス23
030に存在するワードの32データ・ビツトを受取るよう
に接続される。ASYMR23066に対する符号選定(SGNSEL)
(0〜4)はSBA(0〜4)から、即ちPRMUX20720から
のSBAバス21226から得られる。前述の如く、SBA(0〜
4)は、あるデータ・ワードの第1の、即ち最上位ビツ
トを識別する始動ビツト・アドレスである。データ・ワ
ードが符号付きの数を含む時、最上位ビツトはこの数の
符号ビツトを含む。ASYMR23066に対するSGNSEL(0〜
4)の入力は選択入力として使用される、またFIUC2301
2からの符号拡張(SIGNEXT)によりSIGNSELが使用可能
状態にされる時、IBバス23030における符号ビツトを選
択し、MWG23058に対する入力としてこの符号ビツトを提
供する。
MWG23058に対する符号ビツトは、FIUCに23012からの左
側のマスク(LMSK)(0〜31)の各ビツトでANDされ
る。再び第231図において、LMSK(0〜31)はその線F
上に示される。LMSK(0〜31)は、LBAにより識別され
るビツト空間を含むその右側で全て0を含み、またLBA
により識別されるビツト空間の左側の全てのビツト空間
においては1を含む。従つて、SEW(0〜31)はMWG2305
8の出力に存在するデータ・ワードの最上位ビツトの左
側の全てのビツト空間において符号ビツトを含むことに
なる。IBバス23030におけるデータ・ワードは、この時D
S23016に送られ、最上位ビツトの左側の全てのビツトが
0に強制されるDMSK操作を受けることができる。この時
MWG23058とMWG23060のSEW(0〜31)およびDMW(0〜3
1)の出力がORされて所要のfind拡張ワード出力提供す
る。
MWG23056により与えられるLBW(0〜31)は、1つのデ
ータ・ワードの最上位のデータ・ビツトがMEM10112にお
いて論理値1に強制される固定ビツト操作において使用
される。SIGNSEL(0〜4)はMWG23056に対するアドレ
ス入力であり、また前述の如く、IBバス23030に存在す
るデータ・ワードの最上位のデータ・ビツトを表示す
る。MWG23056はFIUC23012からの入力ロツク(LOCK)に
よつて使用可能状態にさせられ、その結果のLBW(0〜3
1)は、IBバス23030に存在するデータ・ワードの最上位
のデータ・ビツトのビツト空間において単一の論理値1
を保有することになる。IBバス23030に存在するデータ
・ワードはこの時、データ・ワードの最上位のデータ・
ビツトが論理値1に強制されるようにLBW(0〜31)に
よりORされるようにDS23016およびMWG23060に送ること
ができる。
AR23020について述べれば、AR23020は、例えばSN74S175
型レジスタでよいASYMR23066と、組立てレジスタ・パリ
テイ・ゼネレータ(ASYPG)23070とを含む。前述の如
く、ASYMR23066はMSK23018の32ビツト出力と接続されて
いる。MSK23018の出力に存在する32ビツト・ワードは、
ASYMR23066がMIC20122からの組立てレジスタ・ロード
(ASYMLD)によつて使用可能状態にさせられる時、ASYM
R23066に対して転送されることになる。DS23016とMSK23
018を介して生成されたこの32ビツト・ワードはこの時A
SYRO23034に存在し、また前述の如く、次にMODバス1014
4またはMIOバス10129に転送することができる。ASYPG23
070はASYMR23066の32ビツト出力に接続され、ASYRO2303
4の32本のでーた回線にその時存在する32ビツトのワー
ドに対して4つのパリテイ・ビツトを生成することにな
る。ASYPG23070の4ビツト・パリテイ出力はASYRO23034
の4本のパリテイ・ビツト回線上を運ばれて、これに存
在する32ビツトのデータ・ワードを伴う。
データ処理回路23010の構造および作用について説明し
たが、FIUIC23012について次に説明する。
再び第230図において、FIUC23012はFIU20120のパイプラ
イン化されたマイクロ命令制御を提供する。即ち、第1
のクロツク・サイクルの間MIC20122から制御信号が受取
られ制御信号のあるものがマイクロ命令ロジツクによつ
て複号され、更に他のFIUC23012制御信号を生成する。
第2のクロツク・サイクルの間、第1のクロツク・サイ
クルの間受取られかつ生成される制御信号がDMC23010に
対して与えられその内のあるものが更に複号されてFIUC
23012の作用を制御する更に他の制御信号を提供する。
FIU23012は、初期複号ロジツク(IDL)23074、パイプラ
イン・レジスタ(PPLR)23072、最後の複号ロジツク(F
DL)23076可能信号複号ロジツク(ESDL)23099を有する
可能および信号パイプライン・レジスタ(ESPR)23098
とを含んでいる。
IDL23074と、PPLR23072の制御パイプライン・レジスタ
(CPR)23084とは、前述の如く第1のクロツク・サイク
ルの間これからの制御信号を受取るためMIC20122の制御
出力と接続される。IDL23074は、パイプライン・レジス
タの右側ビツト・アドレス・レジスタ(RBAR)23086、
論理ビツト・アドレス・レジスタ(LBAR)23088、PPLR2
3072のシフト・レジスタ(SHFR)23090を制御する出力
を生じる。CPR23084とSHFR23090は、直接DMC23010に対
して制御出力を与える。前述の如く、これらの出力は第
2のクロツク・サイクルの間DMC23010を制御する。
CPR23084とRBAR23086とLBAR23088は第2のクロツク・サ
イクルの間FDL23076に対して出力を与え、FDL23076は更
に直接DMC23010に対していくつかの出力を提供する。
ESPR23098とESDL23099は、MIC20122から使用可能および
制御信号を受取り、更にDMC23010およびMEM10112の回路
の他のある部分に対して使用可能および制御信号を提供
する。
IDL23074とFDL23076は、例えば、PROMでよい。CPR2308
4、RBAR23086、LBAR23088、SHFR23090、ESPR23098は、
例えばSN74S194でよい。ESDL23099は、例えば、ロジツ
ク・ゲートの如き適当なデコーダからなるものでよい。
最初にIDL23074について述べれば、IDL23074はMIC20122
からの回路制御信号の最初の複号を実施して、FIU20120
の制御においてFIUC23012により使用される更に別の信
号を提供する。IDL23074は、読出し専用メモリー・アレ
ーの右側ビツト・アドレス複号ロジツク(RBADL)2307
8、左側ビツト・アドレス複号ロジツク(LBADL)2308
0、変位量複号ロジツク(SHFAMTDL)23082からなつてい
る。RBADL23078は、アドレス入力として、最終ビツト・
アドレス(FBA)(0〜4)、ビツト長さ番号(BLN)
(0〜4)、始動ビツト・アドレス(SBA)(0〜4)
を受取る。FBAと、BLNとSBAとは、それぞれ、PRMUX2072
0に関して前に述べたように、要求されたデータ項目の
最終ビツト、長さおよび始動ビツトを規定する。RBADL2
3078はまた、MIC20122から、また特にRM20722からチツ
プ選択可能信号、アドレス翻訳チツプ選択(ATCS)の0
0、01、02、03、04および15を受取る。FIU20120がMSK23
018のいくつかの操作を実行することを要求される時、
入力FBA(0〜4)と、BLN(0〜4)とSBA(0〜4)
は、ATCSの入力と共に、MIC20122からRBADL23078に対し
て与えられる。RBADL23078は更に、DMSK(0〜31)とRM
SK(0〜31)に関して前に述べた出力RBA(右側ビツト
・アドレス)を生じる。23080はRBADL23078と類似しMIC
20122からの入力BLN(0〜4)と、FBA(0〜4)と、S
BA(0〜4)、ならびにATCS06、07、08、09および15が
与えられる。再び、MSK23018のいくつかの操作のため、
LBADL23080は、DMSK(0〜31)およびLMSK(0〜31)に
関して前に説明した左側ビツト・アドレス(LBA)(0
〜4)を生成することになる。
RBA(0〜4)とLBA(0〜4)は、それぞれ、MIC20122
から与えられるパイプライン・ロード使用可能信号PIPE
LDによつて第2のクロツク・サイクルの開始時にRBAR23
086とLBAR23088に対して転送される。RBAR23086とLBAR2
3088は、更にそれぞれ、第2のクロツク・サイクルの開
始時において右側マスク復号ロジツク(RMSKDL)23092
と、左側マスク復号ロジツク(LMSKDL)23094とFDL2307
6に対するアドレス入力側として、出力レジスタ右側ア
ドレス(RRAD)(0〜4)およびレジスタ左側アドレス
(RLAD)(0〜4)を与える。RRAD(0〜4)およびRL
AD(0〜4)はそれぞれRBA(0〜4)とLBA(0〜4)
と対応している。
RMSKDL23092とLMSKDL23094は、今述べた許りのように、
それぞれアドレス入力としてRRAD(0〜4)ろRLAD(0
〜4)と、使用可能入力としてCPR23084からのマスク使
用可能(MSKENBL)とを有するROMアレーである。これと
共に、RMSKDL23092とLMSKDL23094はそれぞれMSK23018に
対するRMSK(0〜31)とLMSK(0〜31)を生成する。RM
SK(0〜31)とLMSK(0〜31)は、排他的OR/排他的NOR
ゲート(XOR/XNOR)23096に対する入力として与えられ
る。XOR/XNOR23096はまた、CPR23084から使用可能兼選
択信号出力マスク(OUTMSK)を受取る。XOR/XNOR23096
に対するRMSK(0〜31)とLMSK(0〜31)の入力は、CP
R23084からのOUTMSKにより選択されるように、第231図
に示される如く、選択されたDMSK(0〜31)を生成する
ため使用される。XOR/XNOR23096のDMSK(0〜31)出力
は前述の如くMSK23018に対して与えられるのである。
再びIDL23074について述べれば、SHFAMTBL23082は、SHF
R23090を介して、それぞれDS23016とSIGNSEL23068とMWG
23056に対する制御入力SHFT(0〜4)およびSGNSEL
(0〜4)を生成するため、MIC20122からのいくつかの
制御入力を複号する。SHFAMTBL23082を含むPROMに対す
るアドレス入力は、MIC20122からのFBA(0〜4)と、S
BA(0〜4)と、FLIPHALF(FLIPHALF)を含む。FBA
(0〜4)とSBA(0〜4)については前に説明した。F
LIPHALFは、前述の如く、IOS10116により要求されたデ
ータの16ビツトが32ビツト・データ・ワードの上半部に
存在して、これらの16ビツトをMIOバス10129に対するFI
U20120の出力データ・ワードの下半部に対して転送させ
る。MIC20122もまたチツプ使用可能信号ATCS10、11、1
2、13および14を与える。MIC20122からこれらの制御入
力を受取ると同時にSHFAMTBL23082は出力変位量(SHFAM
T)(0〜4)を生成し、この変位量はMIC20122からSBA
(0〜4)と共に、第2のクロツク・サイクルの開始時
にPIPELDによつてSHFR23090に対して転送される。SHFR2
3090は次に、対応する出力SHFT(0〜4)およびSIGNSE
L(0〜4)を提供する。前述の如く、SIGNSEL(0〜
4)はSIGNSEL23068とMWG23056とMSK23018に対して与え
られる。SHFT(0〜4)は、それぞれBYNL23050と、BLN
23054とDS23016に対してSHFT(0〜2)およびSHFT(3
〜4)として与えられる。
CPR23084について述べれば、前述の如くいくつかの制御
信号がIDL23074またはFDL23076により複号されることな
くFIU20120の回路に対して直接与えられる。CPR23084に
対する入力は、それぞれFIU20120がMWG23058を介して符
号拡張操作を、あるいはMWG23056を介して固定ビツト・
ワード操作を行なうことを表示する符号拡張信号(SIGN
EXT)および固定信号(LOCK)を含む。CPR23084は、こ
れらの操作を選択するため対応する出力SIGNEXTおよびL
OCKを与える。入力組立て出力レジスタ(ASYMOR)と空
白バイト充填(BLANKFILL)は、マスクとしてASYMR2306
6の出力を選択するため、あるいはMSK23018がMWG23062
を介して空白で充填されたワードを生成すべきことを表
示するため、それぞれ23064およびMWG23062に対してASY
MORおよびBLANKFILLとしてCPR23084を介して送られる。
CPR23084に対する入力OUTMSKおよびMSKENBLは、前述の
如くXOR/XNOR23096とRMSKDL23092とLMSKDL23094に対す
る使用可能信号OUTMSKおよびMSKENBLとして与えられ、
また前述の如くRMSK(0〜31)およびDMSK(0〜31)を
生成する。
最後にESPR23098とESDL23099について述べれば、ESPR23
098とPPLR23072は共に、FIU20120と他のMEM10112の回路
に対して使用可能信号を与えるためのパイプライン・レ
ジスタとESDL23099の複号ロジツクを構成する。ESPR230
98は、前述の如く、MIC20122から入力、駆動MODバス(D
RVMOD)(0〜1)と、駆動MIOバス(DRVMIO)(0〜
1)と使用可能レジスタ(ENREG)(0〜1)を受取
る。DRVMOD(0〜1)、DRVMIO(0〜1)、ENREG(0
〜1)は、PPLR23072に関して前に述べたように、PIPEL
DによりESPR23098に対して転送される。ESPR23098はESD
L23099に対して対応する出力を与え、これは更にDRVMOD
(0〜1)と、DRVMIO(0〜1)と、ENREG(0〜1)
を複号して、FIU20120と他のMEM10112の回路に対して使
用可能信号を与える。出力DRVSHFMOD、DRVASYMOD、DRVS
HFMIO、DRVASYNIOがDSMOD23036、DSMIO23038、ASYMOD23
040、ASYMIO23042、FIUIO23014に対して与えられて、MO
Dバス10144とMIOバス10129に対するFIU20120が処理した
データ・ワードの転送を制御する。出力IARMEO、JWDE
O、IWDEOおよびRIDEOはIARMR23044とJWDR23022とIWDR23
024とRIDR23026に対して出力使用可能信号として与えら
れて、これらレジスタの内容を前述の如くIBバス23030
に対して転送する。出力DRVCAMODと、DRVAMIOと、DRVBY
MODと、DRVBYMIOとは、MODバス10144とMIOバス10129に
対する情報の転送を説明する際に使用するためMC20116
に対して与えられる。
前述のMEM10112の構造および作用について説明したが、
FU10120の構造および作用について次に説明しよう。
B.取出し装置10120(第202図、第206図、第101図、第10
3図、第104図および第238図) 前述の如く、FU10120は、EU10122と共に、ユーザ・プロ
グラムの実行のためのCS10110のマイクロ機械を構成す
る独立的に作用するマイクロコードで制御される機械で
ある。FU10120の主な機能には下記のものが含まれる。
即ち、(1)取出しおよび割込み命令、即ちSOPと名前
とからなるSIN、およびFU10120およびEU10122により使
用されるためのMEM10112からのデータの取出しおよび割
込み、(2)ユーザ・プログラムの流れおよび実行の構
成および制御、(3)EU10122の諸操作の初期化、
(4)データに関する演算および論理操作の実施、
(5)FU10120およびEU10122からMEM10112に対するデー
タの定義域の制御、および(6)あるスタツク・レジス
タ機構の保守である。これらのスタツクおよびレジスタ
機構には、名前カツシエ装置(NC)10226と、アドレス
翻訳カツシエ装置(ATC)10228と、機密保護カツシエ装
置(PC)10234と、アーキテクチヤ基底レジスタ(ABR)
10364と、マイクロ制御レジスタ(mCR)10366と、マイ
クロスタツク(MIS)10368と、汎用レジスタフアイル
(GRF)10354のモニター・スタツク(MOS)10370と、マ
イクロ・スタツク・ポインタ・レジスタ機構(MISPR)1
0356と、戻し制御ワード・スタツク(RCWS)10358が含
まれる。これらのFU10120に駐在するスタツクおよびレ
ジスタ機構の保守を行なうことに加えて、FU10120は全
体的あるいは部分的にMEM10112に駐在するあるデータ構
造を生成してこれを保守する。これらのMEM10112駐在デ
ータ構造においては、メモリー・ハツシユ・テーブル
(MHT)10716およびメモリー・フレーム・テーブル(MF
T)10718と、作業設定マトリツクス(WSM)107210と、
仮想メモリー管理要求キユー(VMMRQ)10721と、活動状
態の目的テーブル(AOT)10712と、活動状態主題テーブ
ル(AST)10914と、仮想プロセツサ状態ブロツク(VPS
B)10218とが含まれる。更に、FU10120の主な機構は、
前述の如く、CS10110の内部アドレス指定構造の基礎で
ある論理記述子の生成および作業である。以下に更に説
明するように、FU10120の内部構造および作用はFU10120
が算術演算および論理演算を実行することを可能にし、
FU10120の構造は論理記述子の生成および処理を容易に
するいくつかの特徴を含む。
第202図においては、FU10120の部分ブロツク図が示され
る。説明を明瞭にするため、FU10120内部、およびFU101
20とEU10122とMEM10112間のある相互の関係については
回線の接続によつては示されないが、以下に更に説明す
るように、他の方法で、例えば共通の信号名等によつて
示される。FU10120の主な機能素子は、記述子プロセツ
サ(DESP)20210と、MEM10112のインターフエース・ロ
ジツク(MEMINT)20212と、取出し装置制御ロジツク(F
UCTL)20214とを含む。DSP20210は一般に、前述の如
く、MEM10112およびFU10120に駐在するスタツク機構お
よびカツシエに対するエントリを生成しかつこれを保守
するため、また特に論理的記述子の生成および操作のた
めの演算論理装置である。更に、前述の如く、DSP20210
はある算術演算および論理機能を実施することが可能な
汎用中央処理装置(CPU)である。
DSP20210は、AONプロセツサ20216と、オフセツト・プロ
セツサ(OFFP)20218と長さプロセツサ(LENP)20220と
を含んでいる。OFFP20218は、論理記述子のオフセツト
・フイールドの生成および操作を最適化する別の構造を
有する汎用目的の32ビツトCPUである。AONP20216とLENP
20220は、それぞれ論理記述子のAONおよび長さフイール
ドの生成および操作のためのプロセツサを含み、またあ
る算術および論理演算の実行のためOFFP20218と関連し
て使用することができる。DSP20210はGRF10354を含み、
GRF10354は更に大域レジスタ(GR)10360とスタツク・
レジスタ(SR)10362を含む。前述の如く、GR10360はAB
R10364とmCR1366とを含み、SR10362はMIS10368とMOS103
70を含む。
MEMINT20212は、MEM10112に関するSINおよびデータの読
出しおよび書込みを行なうためMEM10112に対して物理的
記述子(物理的アドレス)を提供するためMEM10112に対
するFU10120のインターフエースを構成する。MEMINT202
12は、他の論理回路と共に、MC10226とATCS10228とPC10
234を含む。
FUCTL20214はMEM10112からのSINおよびデータの取出し
を制御し、またSOPに応答してFU10120およびEU10122の
制御のための一連のマイクロ命令を提供する。FUCTL202
14は、対応するデータのMEM10112からの以降の取出しの
ため、MC10226に対する名前入力を与える。FUCTL20214
は、部分的に、MISPR10356、#RCWS10358、取出し装置
Sインタプリタ・タスク指名テーブル(FUSDT)11010、
取出し装置Sインタプリタ・テーブル(FUSITT)11012
を含む。
特に本文の第1章における前の説明に関してFU10120の
全体的な構造について説明したがDSP20210、MEMINT2021
2およびFUCTL20214について更に詳細に以下においてこ
の順序で説明する。
1.記述子プロセツサ20210(第201図、第101図、第103
図、第104図、第238図、第239図) 前述の如く、DSP20210はデータについての全ての通常の
算術および論理演算を実施するための32ビツトのCPUで
ある。更に、DSP20210の主な機能は、例えばNT10350、A
TC10228およびPC10234に対するエントリの生成および処
理、および論理記述子の生成および処理である。前述の
如く、CS10110のアドレス指定構造に関しては、論理記
述子はMEM10112に記憶されたデータに対する論理アドレ
スまたはポインタである。論理記述子は、例えば第103
図に示すようにABR10364およびmCR10366におけるアーキ
テクチヤ基底ポインタおよびマイクロ制御ポインタとし
て、あるいは第104図に示すように手順フレーム10412の
リンクおよび局所ポインタとして使用される。更に別の
事例においては、DSP20210により生成されまたあるオペ
ランド名と対応する論理記述子はMC10226に記憶され、
ここでこれら記述子はMEM10112から取出されたSINに現
われる名前によつて後でアクセスされて、オペランド名
と対応する論理記述子との間に迅速な翻訳を行なう。
CS10110のアドレス指定構造に関して前に述べたよう
に、DSP20210またはMC10226からATC10228に対して与え
られた論理記述子はATC10228によつてMEM10112に記憶さ
れた対応するデータの実際の物理的アドレスである物理
的記述子に翻訳される。このデータは後でJP10114に対
して、特にFU10120またはEU1022に対しMODバス10144を
介して与えられる。
MEM10112に関して前に述べたように、MEM10112からJP10
114に対して読込まれる各データは、32ビツトまでの情
報を保有することができる。もし論理記述子により照合
されるある特定のデータ項目が32ビツト以上のデータを
保有するならば、DSP20210は以下に述べるように、全デ
ータ項目がMEM10112から読出されるまでその各々が32ビ
ツト以下の情報を照合する連続する論理記述子を生成す
ることになる。この点に関して、MC10226は長さが255ビ
ツト以下のデータ項目に対してのみ論理記述子を保有し
得る。長さが32ビツトより大きなデータ項目に対するME
M10112への全ての要求はDSP20210によつて生成される。
しかし、CS10110によつて生成されるデータ項目のほと
んどは、MC10226がほとんどのオペランド名を論理記述
子の翻訳に対して取扱うことができるように長さが32ビ
ツト以下となる。
前述の如く、DSP20210はAONP20216、OFFP20218、LENP20
220を含んでいる。OFFP2218は、前述の如く、テーブル
およびカツシエのエントリの生成および処理のため、ま
たAONポインタおよび論理記述子のオフセツト・フイー
ルドの生成および処理のための別の論理回路を有する汎
用32ビツトのCPUを構成する。AONP20216とLENP20220と
は、それぞれAONポインタおよび論理記述子のAONおよび
長さのフイールドを生成しかつこれを処理するための論
理回路を有する。第202図に示すようにGRF10354は垂直
方向に3つの部分に分割されている。第1の部分はAONP
20216に存在しまたランダム・データに加えて、論理記
述子のAONフイールドを保有する。第2と第3の部分は
それぞれOFFP20218およびLENP20220において存在し、ま
たランダム・データに加えてそれぞれ論理記述子のオフ
セツトおよび長さフイールドを保有する。それぞれAONP
20216、OFFP20218およびLENP20220に駐在するGRF10354
のAON、オフセツトおよび長さの各部はそれぞれAONGR
F、OFFGRFおよびLENGRFと呼ばれる。GRF10354のAONGRF
部分は28ビツトの巾を有するが、GRF10354のOFFGRFおよ
びLENGRF部分は巾が32ビツトである。垂直方向へ3つの
部分に分割されるものとして示されるが、GRF10354は一
体構造でアドレス指定され作用する。即ち、GRF10354に
対して与えられる特定のアドレスは、AONP20216とOFFP2
0218とLENP20220に存在するGRF10354の3つの部分の各
々の対応する水平方向のセグメントをアドレス指定す
る。
a.オフセツト・プロセツサ20218の構造 最初にOFFP20218について述べれば、32ビツトのCPUであ
ること、およびAONポインタおよび論理記述子のテーブ
ルおよびカツシエのエントリならびにオフセツト・フイ
ールドの生成および処理に加えて、OFFP20218はMEM1011
2からデータを受取りかつこれを転送するためのDSP2021
0の主な経路である。OFFP20218は、オフセツト・入力選
択マルチプレクサ(OFFSEL)20238と、OFFGRF20234とオ
フセツト・マルチプレクサ・ロジツク(OFFMUX)20240
と、オフセツトALU(OFFALU)20242と、オフセツトALU
のA入力マルチプレクサ(OFFALUSA)20244とを含む。
OFFSEL20238は第1と第2の32ビツトのデータ入力をそ
れぞれMODバス10144とJPDバス10142と接続させている。
OFFSEL20238は、OFFALU20242の第1の出力と接続された
第3の32ビツトのデータ入力と、AONGRF20232の第1の
出力と接続された第4の28ビツトのデータ入力と、OFFS
ET20228と接続された第5の32ビツトデータ入力を有す
る。OFFSEL20238は、OFFGRF20234の入力側とされた第1
の32ビツトの出力と、OFFMUX20240の第1の入力と接続
された第2の32ビツトの出力とを有する。OFFMUX20240
は、それぞれMODバス10144とJPDバス10142とに接続され
た第2と第3の32ビツトのデータ入力を有する。OFFMUX
20240はまた、以下に更に述べるバイアス・ロジツク(B
IAS)20246とLENP20220とに接続された第4の5ビツト
・データ入力と、名前バス20224に接続された第5の16
ビツトのデータ入力とを有する。OFFGRF20234の32ビツ
トのデータ出力と、OFFMVX20240の第1の32ビツトのデ
ータ出力は、それぞれOFFALUSA20244の第1と第2のデ
ータ入力と接続されている。OFFALUSA20244の第1の32
ビツトのデータ出力と、OFFMUX20240の第2の32ビツト
のデータ出力とは、それぞれOFFALU20242の第1と第2
のデータ入力に対して接続されている。OFFALUSA20244
の第2の32ビツトのデータ出力はOFFSET20228と接続さ
れている。OFFALU20242の第1の32ビツトのデータ出力
はJPDバス10142と、AON入力の選択マルチプレクサ(AON
SEL)20248およびAONP20216の第1の入力と、前記の如
くOFFSEL20238の第3の入力とに接続されている。OFFAL
U20242の第2の32ビツトのデータ出力はOFFSET20228と
接続され、第3の16ビツトの出力は名前バス20224と接
続されている。
b.AONプロセツサ20216の構造 AONP20216について述べれば、AONP20216の主な機能は、
AONポインタと論理記述子のAONフイールドを保有する機
能である。加えて、AONポインタおよび論理記述子によ
り占められることのないAONGRF20232の各部はJP10114に
よつて28ビツト巾の汎用レジスタ領域として使用するこ
とができる。AONGRF20232のこれら各部は、それ独自
に、あるいはOFFGRF20234およびLENGRF20236の対応する
各部と関連してこのように使用することができる。AONP
20216はAONSEL20248およびAONGRF20232を含む。前述の
如く、第1の32ビツトのデータ入力は、OFFALU20242の
第1のデータ出力と接続される。AONSEL20248の第2の2
8ビツトのデータ入力はAONGRF20232の28ビツト出力およ
びAONバス20230と接続されている。AONSEL20248の第3
の28ビツトのデータ入力は論理値零、即ち各入力ビツト
が論理値零に設定される28ビツトの入力側と接続されて
いる。AONSEL20248の28ビツトのデータ出力はAONGRF202
32のデータ入力と接続される。前述の如く、AONGRF2023
2の28ビツトのデータ出力はAONSEL20248の第2のデータ
入力と接続され、AONバス20230と接続される。
c.長さプロセツサ20220の構造 最後にLENP20220について述べれば、LENP20220の主な機
能はAONポインタおよび物理的記述子の長さフイールド
の生成操作である。更に、LENGRF20236は、部分的に、
データの記憶のための汎用レジスタとしてそれ単独に、
あるいはAONGRF20232とOFFGRF20234の対応するアドレス
空間と関連して使用することができる。LENP20220は長
さ入力選択マルチプレクサ(LENSEL)20250、LENGRF202
36、BIAS20246、長さALU(LENALU)20252を含む。LENSE
L20250はそれぞれLENGTHバス20226とOFFSET20228とに接
続された第1と第2のデータ入力を有する。LENGTHバス
20226は零充填された8つのデータ・ビツトであり、OFF
SET20228は32ビツトのデータ・ビツトである。LENSEL20
250はLENALU20252のデータ出力と接続された第3の32ビ
ツトのデータ入力を有する。LENSEL20250の32ビツトの
データ出力はLENGRF20236のデータ入力およびBIAS20246
の第1のデータ入力とに接続されている。BIAS20246の
第2と第3の32ビツトのデータ入力は、以下に更に選択
するように、それぞれFUSITT11012の定数(C)および
リテラル(L)と接続される。LENGRF20236の32ビツト
のデータ出力は、JPDバス10142と、NC10226の回転長さ
入力(WL)入力と、LENALU20252の第1の入力とに接続
される。BIAS20246の5ビツト出力は、LENALU20252の第
2の入力と、LENGTHバス20226と、前述の如くOFFMUX202
40の第4の入力とに接続される。LENALU20252の32ビツ
トの出力は、前述の如く、LENSEL20250の第3の入力に
接続される。
DSP20210の全体的な作用および構造について説明した
が、次にDSP20210の作用について更に詳細に説明する。
d.記述子プロセツサ20210の作用 a.a.オフセツト・セレクタ20238 OFFP20218について述べれば、GRF10354はGR10360とSR10
362を含む。GR10360は更に、ABR10364と、mCR10366と、
1組の汎用レジスタとを含んでいる。SR10326はMIS1036
8とMOS10370を含んでいる。GRF10354は垂直方向に3つ
の部分に分割されている。AONGRF20232は28ビツトの巾
を有してAONP20216に駐在し、GRF10354は32ビツトの巾
を有してLENP20220に駐在し、OFFGRF20234は32ビツトの
巾でOFFP20218に駐在する。AONGRF20232とOFFGRF20234
とLENGRF20236とはフエアチヤイルド93422型でよい。
AONポインタおよび論理記述子のオフセツト・フイール
ドの記憶に加えて、ABR10365、mCR10366およびSR10362
に対して保留されないOFFGRF20234の各部は、OFFP20218
が汎用の32ビツトのCPUとして使用されつつある時は、
それ単独で、あるいはAONGRF20232およびLENGRF20236の
対応する部分と関連して、汎用レジスタとして使用する
ことができる。OFFGRF20234は、以下に更に説明するよ
うにFUCTL20214から与えられるアドレス入力によつてAO
NGRF20232とLENGRF20236と並列にアドレス指定される。
OFFSEL20238は、OFFGRF20234の選択されたアドレス場所
に書込むべきデータ入力を選択するため、例えば、SN74
S244およびSN74S257からなるマルチプレクサである。OF
FSEL20238の第1のデータ入力はMODバス10144からのも
ので、MEM10112およびDSP20210間のデータ転送のための
主な経路である。前述の如くMEM10112からJP10114に読
込まれる各データは、1ビツトと32ビツト間で実際のデ
ータを保有することができる単一の32ビツトのワードで
ある。もしMEM10112から読出されるべきデータ項目が32
ビツト以上のデータを保有するならば、全データ項目が
転送されるまで連続的な読出し操作が行なわれる。
OFFSEL20238の第2のデータ入力はJPDバス10142からの
ものである。以下に更に説明するように、JPDバス10142
は、FU10120およびEU10122のデータ出力がMEM10112に書
込まれるデータ転送経路である。JPDバス10142のOFFSEL
20238の入力はこれにより循環経路を提供し、これによ
りFU10120またはEU10122の出力に存在するデータが更に
使用されるため再びDSP20210に転送されることができ
る。例えば、前述の如く、OFFALU20242の第1の出力はJ
PDバス10142に接続され、これにより以下に更に説明す
るように、OFFP20218のデータ出力が更に処理されるた
めOFFP20218に対して戻されること、またはLENP20220の
AONP20216に対して転送されることを可能にする。更
に、LENGRF20236の出力もまたJPDバス10142と接続さ
れ、そのためAONポインタまたは物理的記述子の長さフ
イールド、またはデータをLENGRF20236からOFFP20218に
対して読込むことができる。この経路は、例えば、LENG
RF20236がデータまたは算術および論理演算の中間結果
を記憶するための汎用レジスタとして使用されつつある
時に使用することができる。
OFFSEL20238の第3の入力はOFFALU20242の出力側から与
えられる。このデータ経路はこれにより循環経路を提供
し、以つてOFFGRF20234に駐在するオフセツト・フイー
ルドまたはデータが最初に異なるアドレス場所から読出
されまたは読込まれたのと同じアドレス場所においてOF
FGRF20234に関して処理されまたこれに対して戻すこと
ができる。OFFSEL20238の第3の入力、従つてOFFGRF202
34に対するOFFALU20242の出力からのOFFPに20218の循環
経路は、例えば、32ビツト以上のデータを含むデータ項
目のMEM10112からの読出しにおいて使用することができ
る。前述の如く、MEM10112からJP10114に対する各読出
し操作は、1ビツトと32ビツトの間に実際のデータを含
むことができる32ビツトのワードである。32ビツト以上
を含むデータ・ワードの転送は、MEM10112からJP10114
に対する一連の読出し操作の実施により達成される。例
えば、もし要求されたデータ項目が70ビツトのデータを
有するならば、このデータ項目は3つの連続する読出し
操作において転送されることになる。第1と第2の読出
し操作は各々32ビツトのデータの転送を行ない、また最
後の読出し操作は残る6ビツトのデータを転送すること
になる。従つて、MEM10112から32ビツト以上のデータ項
目の読出しを行なうためには、DSP20210は、各々がこの
データ項目の連続する32ビツトのセグメントを規定する
一連の論理記述子を生成しなければならない。この一連
の論理記述子の最後のものは32ビツトより少ないセグメ
ント、例えば今述べた許りの事例におけるように6ビツ
トのセグメントの規定が可能である。連続する各物理的
記述子においては、オフセツト・フイールドは、転送さ
れるべき連続するデータ項目のセグメントの開始アドレ
スを規定するため先行する物理的記述子の長さフイール
ドの値により増分されねばならない。連続する物理的記
述子の長さフイールドは、一般に、32ビツトより少ない
最終転送の場合を除いて、32ビツトで一定状態を維持す
ることになる。これにより、オフセツト・フイールドは
通常、最終転送まで各転送において32ビツトだけ増分さ
れることになる。OFFSEL20238の第3の入力に対するOFF
ALU20242の出力からのOFFP20218の循環データ経路は、
前述の如く、次の連続する物理的記述子のオフセツト・
フイールドとなるOFFGRF20234に対してその時の物理的
記述子の増分または減分されたオフセツト・フイールド
を再びOFFGRF20234に対して書込むため、このような順
次のデータ転送操作において使用することができる。
更に別の事例においては、OFFALU20242からOFFSEL20238
の第3の入力からのOFFP20218の循環経路は、名前テー
ブル10350におけるエントリの解明、即ち名前の解明の
際に使用することができる。名前の解明においては、前
に述べたように、AONポインタのオフセツト・フイール
ド、例えばリンク・ポインタ10146は所要のデータ項目
に対して最後のAONポインタを提供するため連続的に加
算および減算されるのである。
AONGRF20232の出力からのFFSEL20238の第4の入力は、O
FFGRF20234またはOFFMUX20240に対するAONGRF20232から
のデータ即ちAONフイールドの転送のため使用すること
ができる。このデータ経路は、例えばAONポインタまた
は物理的記述子のAONフイールドの生成のためOFFP20218
が使用される時、あるいは名前の評価の実施の時に使用
することができる。
最後に、OFFSET20228からのOFFSEL20238の第5の入力
は、OFFSET20228におけるオフセツト・フイールドがOFF
GRF20234に対して書込まれることを可能にし、あるいは
OFFMUX20240に対して転送されることを可能にする。こ
のデータ経路は、例えば、JP10114が名前の評価を行な
つている時、OFFGRF20234に対してオフセツト・フイー
ルドをコピーするために使用することができる。
次にOFFMUX20240について説明すると、OFFMUX20240は32
ビツトのワードの個々のビツトを処理するための論理回
路を含んでいる。OFFMUX20240は、例えば、ストリング
転送の実施の際オフセツト・フイールドを長さフイール
ドにより増分および減分するために、また例えばMHT107
16およびMFT10718に対してエントリを生成するために使
用することができる。OFFMUX20240はまた、物理的記述
子およびAONポインタのAON、オフセツトおよび長さの諸
フイールドの生成および処理における補助のため使用す
ることができる。
b.b.オフセツト・マルチプレクサ20240の詳細な構造
(第238図) 第238図においては、OFFMUX20240の更に詳細なブロツク
図が示されている。OFFMUX20240は、例えばSN74S373お
よびSN74S244からなるオフセツト・マルチプレクサ入力
セレクタ(OFFMUXIS)23810と、例えばSN74S374からな
るオフセツト・マルチプレクサ・レジスタ(OFFMUXR)2
3812とを含む。OFFMUX20240はまた、例えばSN74S257で
よいフイールド抽出回路(FEXT)23814と、例えばSN74S
257とSN74S374からなるオフセツト・マルチプレクサ・
フイールド・セレクタ(OFFMUXFS)23816とを含む。最
後に、OFFMUX20240は、例えばAMD25S10からなるもので
よいオフセツト・スケーラ(OFFSCALE)23818と、例え
ばフエアチヤイルド社の93427からなるものでよいオフ
セツト素子間空間エンコーダ(OFFIESENC)23820と、例
えばAMD社の25S、フエアチヤイルド社の92427およびSN7
4S244からなるオフセツト・マルチプレクサ出力セレク
タ(OFFMUXOS)23822とを含む。
最初にOFFP20218の他の部分とのOFFMUX20240の接続につ
いて説明すれば、OFFSEL20238からのOFFMUX20240の第1
のデータ入力は、OFFMUXIS23810の第1の入力と接続さ
れている。MODバス10144からのOFFMUX20240の第2の入
力は、OFFMUXIS23810の第2の入力と接続される。JPDバ
ス10142からのOFFMUX20240の第3の入力はOFFMUXFS2381
6の第1の入力と接続されるが、BIAS20246からのOFFMUX
20240の第4の入力は、OFFMUXOS23822の第1の入力と接
続される。名前バス20224からのOFFMUX20240の第5の入
力は、OFFMUXFS23816の第2の入力と接続される。OFFAL
USA20244に対するOFFMUX20240の第1の出力はOFFMUXR23
812の出力と接続されるが、OFFALU20242に対するOFFMUX
20240の第2の出力はOFFMUXOS23822の出力と接続され
る。OFFMUX20240の内部接続について述べれば、OFFMUXI
S23810の32ビツトの出力はOFFMUXR23812の入力と接続さ
れ、OFFMUXR23812の32ビツト出力は、前述の如く、OFFM
UX20240の第1の出力およびOFFMUXFS23816の第3の入力
として接続される。OFFMUXR23812の32ビツトの出力もま
たFEXT23814の入力に接続されている。OFFMUXFS23816の
第1、第2および第3の入力は前述の如く接続される。
OFFMUXFS23816の第4の入力は、31ビツトが論理値零
に、また1ビツトが論理値1セツトされる32ビツトの入
力である。第5の入力は、31ビツトが論理値1に、また
1ビツトが論理値零にセツトされる32ビツトの入力であ
る。OFFMUXFS23816の第6の入力はOFFMUXFS11012から与
えられる32ビツトのリテラル(L)入力であり、以下に
述べるマイクロ命令FUCTL20214の一部をなす32ビツトの
2進数である。OFFMUXFS23816の第7と第8の入力はFEX
T23814と接続される。入力7は、OFFMUXR23812に読込ま
れた名前テーブル・エントリのFIUおよび形式フイール
ドからなる。入力8は、OFFMUXR23812に捕捉された32ビ
ツト・ワードから抽出される汎用入力伝送ビツトであ
る。第238図において示したように、OFFMUXFS23816の第
1と、第3と、第4と、第5と、第6の入力は、各々が
2つの16ビツトの入力を生じるようにそれぞれ分割され
る32ビツト入力である。即ち、これらの32ビツトの入力
の各々は、前記の32ビツト入力のビツト0乃至15からな
る第1の入力と、ビツト16乃至31からなる第2の入力と
に分割される。
OFFMUXFS23816の32ビツト出力は、OFFSCALE23818および
OFFIESENC23820の入力と接続されている。第238に示す
ようにOFFMUXFS23816のフイールド選択出力(FSO)は、
ビツト0乃至15を含む第1のワードと、ビツト16乃至31
を含む第2のワードとに分割される32ビツト・ワードで
ある。前記の如くOFFMUXFS23816の出力FOSは、これによ
りOFFMUXFS23816の第1と、第3と、第4と、第5と第
6の入力の分割された構造を反映する。
出力FSOの生成においてOFFMUXFS23816により実施され
る、以下の説明において更に詳細に記述する論理機能は
下記のものを含む。即ち、 (1)直接OFFMUXFS23816を経由するようにOFFMUXR2381
2の内容を送ること、 (2)直接OFFMUXFS23816を経由するようにJPDバス1014
2上に32ビツト・ワードを送ること、 (3)FUCTL20214から直接OFFMUXFS23816を経由するよ
うにマイクロ命令の一部を構成するリテラル値を送るこ
と、 (4)FSOをリテラル値0000 0000となるように強制する
こと、 (5)FSOをリテラル値0000 001となるように強制する
こと、 (6)名前テーブルのエントリー・フイールドを抽出す
ること、 (7)OFFMUXR23812またはJPDバス10142から32ビツト・
ワード、またはFUCTL20214からマイクロ命令の32ビツト
を受入れ、上位の16ビツトを論理値0に強制する間下位
の16ビツトを送ること、 (8)OFFMUXR23812またはJPDバス10142から32ビツト・
ワードを、またはFUCTL20214からマイクロ命令の32ビツ
トを受入れ、下位の16ビツトを論理値0に強制する間上
位の16ビツトを送ること、 (9)OFFMUXR23812またはJPDバス10142、または名前バ
ス20224からの32ビツト・ワードを受入れ、また上位の1
6ビツトにビツト16を符号拡張する間下位の16ビツトを
送ること、および (10)名前バス20224から32ビツト・ワードを受入れ、
上位の224ビツトにビツト24を符号拡張する間最も下位
の8ビツトを送ることである。
OFFSCALE23818の32ビツトの出力とOFFIESENC23820の3
ビツトの出力は、それぞれOFFMUXOS23822の第2と第3
の入力に接続される。OFFMUXOS23822の第1の入力は前
記の如くOFFMUX20240の第4図の入力であり、BIAS20246
と接続される。最後に、OFFMUXOS23822の32ビツト出力
である。OFFMUX(0〜31)はOFFMUX20240の第2の出力
であり、また前に述べたようにOFFALU20242の第2の入
力と接続される。
c.c.オフセツト・マルチプレクサ20240の詳細な作用 a.a.a.内部作用 第238図に示した如きOFFMUX20240の構造について説明し
たが、以下にOFFMUX20240の作用について説明する。OFF
MUX20240の内部作用について最初に説明するが、これに
続いてDESP20210と関連するOFFMUX20240の作用について
説明する。
最初にOFFMUXR23812について説明するとOFFMUXR23812は
MODバス10144からの32ビツト・ワード、即ちMOD(0〜3
1)またはOFFSEL20238から受取つた32ビツト・ワード、
即ちOFFSEL(0〜31)のいずれかを受取る32ビツト・レ
ジスタであり、OFFMUXIS23810によつて選択される。OFF
MUXR23812は更に、MODバス10144またはOFFSEL20238から
のこれらの選択された32ビツト・ワードを、OFFAFUSA20
244に対するOFFMUX20240の第1のデータ出力として、FE
XT23814の入力として、またOFFMUXFS23816の第3の入力
として与える。OFFMUXFS23816に対するOFFMUXR23812の3
2ビツト出力は、OFFMUXRの出力(0〜15)および(16〜
31)として示される2つの並列の16ビツト・ワードとし
て与えられる。前述の如く、OFFMUXR23812からOFFALUSA
20244に対するOFFMUXFS23816の出力は、16ビツトだけ右
寄せされ、最上位の16ビツトは零充填される。
FEXT23814はOFFMUXR23812からOFFMUXRO(0〜15)およ
び(16〜31)を受取りこれらの16ビツト・ワードからあ
るフイールドを抽出する。特に、FEXT23814は、OFFMUXR
23812に転送されたNT10350のエントリからFIUおよびTYP
Eフイールドを抽出する。FEXT23814は次に、これらのFI
UおよびTYPTEフイールドをOFFMUXFS23816の7番目の入
力として与えることができる。FEXT23814は、任意にOFF
MUXR23812に駐在する32ビツト・ワードからある他のフ
イールドを抽出して、これらのフイールドをOFFMUXFS23
816の8番目の入力として与える。
OFFMUXFS23816は、OFFMUXFS23816の8番目の入力からあ
るフイールドを選択してOFFMUXFS23816の入力から選択
されたこれらのフイールドからなる対応する32ビツトの
出力ワード、即ちフイールド選択出力(FSO)を与える
マルチプレクサとして作用する。前述の如くFSOは2つ
の並列の16ビツト・ワード、即ちFSO(0〜15)とFSO
(16〜31)からなる。これと対応して、JPDバス10142か
らのOFFMUX20240の第3の入力は、2つの16ビツト・ワ
ード、即ちJPD(0〜15)およびJPD(16〜31)として表
わされる32ビツトの入力である。同様に、OFFMUXFS2381
6の第4、第5および第6の入力は、各々が2つの並列
の16ビツト・ワード、それぞれ「0」(0〜15)と(16
〜31)、「1」(0〜15)と(16〜31)、「1」(0〜
15)と(16〜31)、およびL(0〜15)と(16〜31)か
らなる32ビツト・ワードとして表わされる。名前バス20
224からのOFFMUXFS23816の第2の入力は単一の16ビツト
・ワード、即ち名前(16〜31)として示されるが、FEXT
23814からのOFFMUXFS23816の入力は各々巾が16ビツトよ
り小さい。OFFMUXFS23816は、単一の32ビツトの出力ワ
ードに対して、対応する16ビツトの入力JPD(0〜1
5)、または「0」(0〜15)、またはL(0〜15)の
1つを含むようにFSO(0〜15)を選択することができ
る。同様に、前記32ビツトの出力ワードのFSO(16〜3
1)は、FEXT23814からの名前(16〜31)、またはJPD(1
6〜31)、または0(16〜31)、または1(16〜31)、
L(16〜31)、または入力7および8の1つを含むよう
に選択することができる。従つて、OFFMUXFS23816は、
2つの16ビツト・フイールドからなる32ビツト・ワード
がOFFMUXFS23816の入力の選択された部分から生成され
ることを可能にする。OFFMUXFS23816の32ビツト出力
は、OFFSCALE23818とOFFIESENC23820に対する入力とし
て与えられる。最初にOFFIESENC23820について述べれ
ば、OFFIESENC23820は、特にデータ・ワードのアレーを
照合するNT10350のエントリ(NTE)の解明即ち評価にお
いて使用される。第108図に示すように、NETのワードD
は、あるアレーのデータ・ワードの素子間隔(IES)に
関するある情報を含む。あるNTEのワードDは、MEM1011
2からMODバス10144に対して、またOFFMUX20240を介して
OFFIESENC23820の入力側に対して読込むことができる。
この時OFFIESENC23820はワードDのIESフイールドを調
べて前記アレーの素子間隔が2の倍数、即ち1、2、
4、8、16、32または64ビツトのいずれであるかを判断
する。実施においてはOFFIESENC23820は、最上位の25ビ
ツトに論理値零を、また最下位の7ビツトには単一の論
理値1を保有するかどうかを判定する。もし素子間隔が
このような2の倍数であれば、前記アレーにおけるワー
ドの物理的アドレスのオフセツト・フイールドを得るた
めこのアレーのデータ・ワードの開始アドレスが指標
(IES)の左寄せによつて決定することができ、更に下
位の更に複雑な乗算は必要でなくなる。このような場合
には、OFFIESENCは第1の出力、即ち素子間隔が1回の
左寄せによつて決定できることを示すFUCTL20214に対す
るIES符号化可能(IESENC)を生成する。OFFIESENC2382
0はこの時符号化された出力、即ちOFFMUXOS23822に対す
る符号化IBS(ENCIES)を生成する。従つてENCIESは指
標(IES)値をこのアレーにおけるワードのオフセツト
に翻訳するため必要な左寄せ量を規定する符号化値であ
る。第238図に示すように、ENCIESはOFFMUXOS23822の第
3の入力である。
OFFSCALE23818は、最下位ビツトが左寄せされるため、
このビツトの零充填を行なう左寄せ回路網である。OFFS
CALE23818による桁送り量は零ビツトと7ビツトの間で
選択可能である。従つて、OFFMUXFS23816からOFFSCALE2
3818に対して転送される32ビツト・ワードは、この32ビ
ツト・ワード内のビツトを選択的に再置するためビツト
単位に左寄せすることができる。OFFMUXFS23816と関連
して、またOFFALU2024の出力によりOFFSEL20238に対し
て与えられる循環結合は、例えば、MHT10716と、MFT107
18と、AOT10712とAST10914、および他のCS10110のデー
タ構造に対するエントリを生成してこれを操作するため
に使用することができる。
OFFMUXOS23822は、それぞれBIAS20246OFFSCALE23818、O
FFIESENC23820からの第1、第2および第3の入力を有
するマルチプレクサである。OFFMUXOS23822は、OFFMUX2
0240の第2の出力、即ちOFFMUX(0〜31)としてこれら
の入力のどれか1つを選択することができる。前述の如
く、OFFMUX20240の第2の出力はOFFALU20242の第2の入
力と接続される。
OFFMUX20240の内部について述べたが、DESP20210の全体
的な作用に関するOFFMUX20240の作用について次に説明
する。
b.b.b.記述子プロセツサ20210と関連する作用 OFFSEL20238からのOFFMUX20240の第1の入力は、OFFSEL
に対する入力がOFFMUXIS23810を介してOFFMUXR23812に
対して転送されることを許容する。この入力は、OFFSEL
20238のどの入力によつてもFUCTL20214のマイクロ命令
の制御下でOFFMUXR23812がロードされることを可能にす
る。ある特定の事例においては、OFFALU20242の出力
は、OFFMUX20240およびOFFALU20242が1つの32ビツト・
ワードに関する反復処理を実施することを許容するた
め、OFFSEL20238の第3の入力とOFFMUX20240の第1の入
力を介してフイードバツクすることができる。
MODバス10144からのOFFMUX20240の第2の入力は、OFFMU
XR23812が直接MODバス10144からロードされることを可
能にする。例えば、その時活動状態の手順からのNTEが
前述の如く処理されるべきOFFMUXR23812に対してロード
することができる。更に、OFFMUX20240の第2の入力
は、OFFP20218に対する並列の入力経路として、MODバス
10144からOFFSEL20238の第1に入力と関連して使用する
ことができる。これらの並列の入力経路は、OFFSEL2023
8とOFFGRF20234がOFFMUX20240から独立的に作用するこ
とを許容することによつてOFFP20218の作用のパイプ・
ラインを可能にする。例えば、FU10120は、第1のマイ
クロ命令の間MEM10112からOFFMUXR23812に対する読出し
操作を開始することができる。このように要求されたデ
ータは第2のマイクロ命令の間MODバス10144上に現われ
MODバス10144からOFFMUX20240の第2の入力を介してOFF
MUXR23812に対してロードすることができる。同時に、F
U10120は、第2のマイクロ命令の開始時において、例え
ば、OFFGRF20234に対するOFFALU20242の出力をローデイ
ングするOFFSEL20238およびOFFGRF20234により実施され
るべき独立の操作を開始することができる。従つて、MO
Dバス10144からOFFMUX20240に対する独立の経路を提供
することにより、OFFSEL20238は、MODバス10144からOFF
MUX20240に対するデータ転送に実施中、他の同時のデー
タ転送操作を自由に実施することができる。
JPDバス10142からのOFFMUX20240の第3の入力は、汎用
データ転送経路である。例えば、LENGRF20236またはOFF
ALU20242からのデータは、JPDバス10142およびOFFMUX20
240の第3の入力を介してOFFMUX20240に対して転送する
ことができる。
OFFMUX20240の第4の入力は、BIAS20246から接続され、
前述の如くストリング転送中主として使用される。即
ち、ストリング転送のため生成される物理的記述子の長
さフイールドは、OFFALU20242におけるこれらの物理的
記述子のオフセツト・フイールドの増分または減分のた
めOFFMUX20240の第4の入力を介してOFFMUX20240に対し
て転送することができる。
OFFMUX20240の第5の入力は名前バス20224と接続され
る。以下において更に説明するように、名前はFUCTL202
14によつてNC10226に対して与えられて、NC10226からSI
Nのシーケンスの一部としてMODバス10144上に現われる
名前と対応する論理記述子を呼出す。各名前がNC10226
に対して与えられるため、この名前は名前トラツプ(N
T)20254に転送されてこれに捕捉される。NC10226のミ
スの発生、即ちNC10226がある特定の名前と対応するエ
ントリを含まない場合、この名前は後でNT20254から名
前バス20224およびOFFMUX20240の第5の入力を介してOF
FMUX20240に対して転送される。次に8、12または16の
如き2倍数として前に説明した前記名前は基準化するこ
とができ、即ちNTEのサイズにより乗算される。従つて
この基準化された名前はmCR10366から名前テーブル・ポ
インタ(NTP)に対して付加されてNT10350における対応
するNTEのアドレスを得ることができる。更に、NC10226
のミス、または対応するNT10350におけるページの障害
を惹起し、または一連の名前の解を必要とする名前は、
OFFMUX20240からOFFALU20242およびOFFSEL20238の第3
の入力を介してOFFGRF20234に対して転送することがで
きる。この名前は、必要に応じて後でOFFGRF20234から
読出しあるいは復元することができる。
次にOFFMUX20240の出力について述べればOFFMUXR23812
からのOFFMUX20240の第1の出力は、OFFMUXR23812の内
容がOFFALUSA20244を介してOFFALU20242の第1の入力に
対して転送されることを可能にする。OFFMUXOS23822か
らOFFMUX20240の第2の出力は、OFFALU20242の第2の入
力に対して直接与えられる。OFFALU20242は、OFFMUXR23
812からの第1の入力と、OFFMUXOS23822からの第2の入
力、例えば操作されたオフセツト・フイールドが同時に
与えるれることができる。
OFFALUSA20244について述べれば、OFFALUSA20244はマル
チプレクサである。OFFALUSA20244は、OFFALU20242の第
1の入力として、あるいはOFFSETバス20228に対するOFF
P20218の出力としてOFFGRF20234の出力、あるいはOFFMU
X20240の出力のいずれかを選択することができる。例え
ばOFFGRF20234からのオフセツト・フイールドは、その
時の論理記述子のオフセツト・フイールドを構成するた
めOFFSETバス20228に対して読込むことができ、また同
時にストリング転送において後の論理記述子のオフセツ
ト・フイールドを生成するために増分または減分される
ためのOFFALU20242に対して読込むことができる。
OFFALU20242は、通常の全てのALU操作の実施が可能な32
ビツトの汎用演算論理装置である。例えば、論理記述子
のオフセツト・フイールドを加算、減算、乗算、または
除算することができる。更にOFFALU20242はデータに対
する転送経路として役立ち、即ちOFFALU20242はこのデ
ータについて処理することなくOFFALU20242の出力に対
して入力データを転送することができる。OFFALU20242
の第1の出力は、前述の如く、JPDバス10142、OFFSEL20
238の第3の入力側およびAONSEL20248の第1の入力側と
接続される。従つて、OFFALU20242により転送される即
ち操作されるデータは、JPDバス10142に対し転送するこ
とができ、あるいは以降の操作即ち反復的な操作のため
OFFSEL20238を介してOFFP20218に対して循環させられる
ことができる。AONSEL20248に対するOFFALU20242の出力
は、例えば、OFFP20218によりAONGRF20232に対して生成
されるAONポインタのAONフイールド即ち物理的記述子を
ロードするために使用することができる。更に、このデ
ータ経路は、FU10120が例えばFU10120の諸操作の中間結
果または最終結果に対するバツフア即ち一時的記憶空間
としてAONGRF20232を使用することを可能にする。
OOFFSETバス20228に対するOFFALU20242の出力は、論理
記述子のオフセツト・フイールドが直接OFFALU20242か
らOFFSETバス20228に対して転送されることを可能にす
る。例えば、論理記述子のオフセツト・フイールドは、
最初のクロツク・サイクルの間OFFALU20242によつて生
成することができ、また第2のクロツク・サイクルの間
即時OFFSETバス20228に対して転送することができる。
OFFALU20242の第3の出力は名前バス20224に対して向け
られる。以下において更に述べるように、名前バス2022
4はNC10226に対するアドレス入力(ADR)である。名前
バス20224に対するOFFALU20242の出力はこれにより、OF
FP20218がNC10226に対するアドレス、即ち名前を生成即
ち提供することを可能にする。
OFFP20218の作用について述べたが、次にLENP20220の作
用について説明する。
e・長さのプロセツサ(LENP)20220(第239図) 第202図においては、LENP20220の第1の機能は、ストリ
ング転送において生成される論理記述子の長さフイール
ドを含む論理記述子の長さフイールドの生成および操作
である。LENP20220は、LENGRF20236と、LENSEL20250
と、BIAS20246と、LENALU20252とを含む。LENGRF20236
は、例えばフエアチヤイルド社の93422でよい。LENSEL2
0250は、例えばSN74S257とSN74S157およびSN74S244から
なるものでよく、またLENALU20252は例えばSN74S381で
よい。
前述の如く、LENGRF20236はGRF10354の32ビツト巾の垂
直方向部分である。LENGRF20236はOFFGRF20234とAONGRF
20232と並列に作用し、部分的に論理記述子の長さフイ
ールドを含む。更にまた前述の如く、LENGRF20236はデ
ータを含むことができる。
LENSEL20250は、3つの入力を有し、LENGRF20236に対し
て出力をまたBIAS20246の第1の入力を提供するマルチ
プレクサである。LENSEL20250の第1の入力は長さバス2
0226からであり、長さバス20226からLENGRF20236または
BIAS20246に対して物理的記述子即ち長さフイールドを
書込むために使用することができる。このような長さの
フイールドは、例えば、名前の評価即ち解明操作の間、
長さバス20226からLENGRF20236に対して書込むことがで
きる。LENSEL20250の第2の入力はOFFSETバス20228から
である。LENSEL20250の大のの入力は、例えば、OFFP202
18によりLENGRF20236に対して生成される長さフイール
ドのロードのために使用することができる。更に、OFFP
20218により操作されるデータは、LENSEL20250の第2の
入力を介して記憶するためLENGRF20236に対して読込み
可能である。
LENSEL20250の第3の入力はLENALU20252の出力からで、
LENALU20252の出力からで、LENALU20252の出力をLENGRF
20236に対して戻す循環経路である。LENSEL20250の第3
の入力は、例えば、ある特定の論理記述子の長さフイー
ルドがLENALU20252により増分もしくは減分されてLENGR
F20236に対して戻されるストリング転送中に使用するこ
とができる。このデータ経路はまた、例えば、LENGRF20
236における1つの場所からLENGRF20236における別の場
所に32ビツト・ワードを移動する際に使用することがで
きる。前述の如く、LENSEL20250の出力もまた第1の入
力BIASに対して与えられ、LENSEL20250の第1、第2ま
たは第3の入力において現われるデータがBIAS20246の
第1の入力に対して与えられることを可能にする。
BIAS20246は、以下において更に詳細に説明するよう
に、ストリング転送中に論理記述子の長さフイールドを
生成する。前述の如く、一回の読出し操作においては、
32ビツト以上のデータはMEM10112から読出すことはでき
ない。従つて、長さ32ビツト以上のデータ項目は、各々
が32ビツト以下のデータを転送する一連の即ちストリン
グ読出し操作において転送されなければならない。スト
リング転送の論理記述子の長さフイールドが生成したBI
AS20246は、前述の如く、長さバス20226に対し、LENALU
20252の第2の入力に対し、またOFFMUX20240の第4の入
力に対して与えられる。バイアス・フイールドと呼ばれ
るこれらのストリング転送論理記述子の長さフイールド
は、ストリング転送の実行のためDESP20210により生成
される一連の論理記述子の長さフイールドとしてBIAS20
246により長さバス20226に対して与えられる。これらの
バイアス・フイールドはOFFMUX20240の第4の入力に対
して与えられて、前述の如くこれらの論理記述子のオフ
セツト・フイールドの増分または減分を行なう。これら
のバイアス・フイールドはストリング転送中LENALU2025
2の第2の入力に与えられて、ストリング転送においてM
EM10112に対して読込まれつつあるデータ項目の長さフ
イールドをこれに対応するよに減分する。BIAS20246に
ついては、LENALU20252の説明を最初に行なつた後に、
更に詳細に以下において説明する。
a.a.長さの演算論理装置(LENALU) 長さの塩酸論理装置(LENALU)20252は、全ての慣例的
な算術および論理演算の実行が可能な32ビツトの演算論
理装置である。特に、ある特定のデータ項目のストリン
グ転送の間、LENALU20252からの長さフイールドは、こ
のデータ項目の長さフイールドをLENGRF20236からまた
連続するバイアス・フイールドをBIAS20246から受取
る。この時LENALU20252はこの論理記述子のその時の長
さフイールドを減分して、ストリング転送の次の読出し
操作中に使用されるべき長さフイールドを生成し、また
新たな長さフイールドをLENSELN10250の第3の入力を介
して再びLENGRF20236に対して送る。
b.b.BIAS20246(第239図) 第239図においては、BIAS20246の部分ブロツク図が示さ
れている。BIAS20246は、バイアス・メモリー(BIASM)
23910と、長さ検出器(LDET)23912と、次の零検出器
(NXTZRO)23914と、選択バイアス(SBIAS)23916とを
含んでいる。LDET23912の入力はBIAS20246の第1の入力
であつてLENSEL20250の出力側に接続されている。LDET2
3912の出力はBIASM23910のデータ入力側と接続され、BI
ASM23910の出力はNXTZRO23914の入力側と接続されてい
る。NXTZRO23914の出力はSBIAS23916の第1の入力側と
接続されている。SBIAS23916の第2の入力はBIAS20246
の第2の入力即ちL8であり、FUCTL20214の出力と接続さ
れている。SBIAS23916の第3の入力はBIAS20246の第3
の入力即ちLであり、FUCTL20214の更に別の出力と接続
されている。
SBIAS23916の出力はBIAS20246の出力であり、前述の如
く、長さバス20226、LENALU20252の第2の入力、および
OFFMUX20240の第4の入力に接続される。
BIASM23910は、GRF10354のSR10362と同じ長さを有しか
つこれと共に作用しかつこれと並列にアドレス指定され
る7ビツト巾のランダム・アクセス・メモリーである。
BIASM23910はSR10362の各アドレス場所と対応するアド
レス場所を有し、SR10362のこれらのアドレス場所と同
時にアドレス指定される。
BIASM23910は、例えばAMD社の27S03Aでよい。
BIASM23910は、SR10362に駐在する各論理記述子のバイ
アス値を含む。前述の如く、1つのバイアス値は、ある
長さフイールドを記憶したLENGRF20236と共に、対応す
る論理記述子を有するあるデータ項目がMEM10112から読
出されるべき時に、ある特定の読出し操作においてMEM1
0112から読出されるビツト数を表わす数である。最初
に、その対応する長さフイールドがLENGRF20236に対し
て書込まれる時、バイアス値が以下に述べる方法におい
てBIASM23910に対して書込まれる。もしある特定のデー
タ項目が32ビツトより短い長さを有するならば、このデ
ータ項目の最初のバイアス値はこのデータ項目の実際の
長さを表わすことになる。例えば、もしあるデータ項目
が24ビツトに長さを有するならば、関連するバイアス値
は24を表わす6ビツトの2進数となる。LENGRF20236に
おけるこのデータ項目の長さフイールドは同様に24の長
さ値を含むことになる。もしある特定の項目が32ビツト
より大きな長さ、例えば、前記の事例において述べたよ
うな70ビツトを有するならば、このデータ項目はストリ
ング転送操作においてMEM10112から読出されねばならな
い。前述の如く、ストリング転送は、このデータ項目の
転送を完了する32ビツト以下の最後の転送を行なう。ME
M10112から一時に32ビツトを転送する一連の読出し操作
である。LENGRF20236におけるこのようなデータ項目の
最初の長さフイールドのエントリは、前に述べたものと
同じ事例を用いれば、70の値を保有することになる。BI
ASM23910の対応するアドレス空間に書込まれるこのデー
タ項目の最初のバイアス・エントリフイールドは32のバ
イアス値を有することになる。32のこの最初のバイアス
値は、このデータ項目をMEM10112から転送するため必要
な少なくとも最初の読出し操作は32ビツトのデータを転
送することになる。
32ビツトより小さな長さ、例えば24ビツトの長さを有す
るデータ項目がMEM10112から読出される時、このデータ
項目の24のバイアス値はBIASM23910から読出されて、こ
の読出し操作に対する論理記述子の長さフイールドとし
て長さバス20226に対して与えられる。同時にこの24な
るバイアス値は、LENGRF20236から読出された前記デー
タ項目から控除される。この長さの値からの前記のバイ
アス値の控除は零なる結果を生じることになり、これ以
上の読出し操作がこのデータ項目の転送の完了に必要と
されないことを表示する。
もし例えば70ビツトの長さを有するあるデータ項目がME
M10112から読出される場合、このデータ項目の最初の32
なるバイアス値はストリング転送の最初の論理記述子の
長さフイールドとしてBIASM23910から長さバス20226に
対して読込まれる。同時に、このデータ項目の最初の長
さフイールドはLENGRF20236から読出される。このデー
タ項目の最初のバイアス値即ち32は、このデータ項目の
最初の長さ値即ち70からLENALU20252から控除される。
この控除操作の結果は、1つ以上の後続の読出し操作に
おいて転送されるべきデータの残る長さである。この事
例においては、最初に長さ値からの最初のバイアス値の
控除は、このデータ項目の38ビツトが転送されるべき状
態を維持することを示す。
LENALU20252の出力が表わすこの控除の結果例えば38
は、LENGRF20236に対するLENSEL20250の第3の入力に対
して転送され、これからこのデータ項目の最初の長さ値
が読出されたアドレス場所に書込まれる。この時、この
新たな長さフイールドのエントリはこのデータ項目の残
る長さを表わす。同時に、LDET23912はLENGRF20236に対
して書込まれつつある前記の残りの長さを検査して、こ
のデータ項目の残る長さが32ビツトより大きいか、ある
いは32ビツトと等しいか、あるいはまたこれよりも小さ
いかを判定する。もしこの残る長さが32ビツトよりも大
きければ、LDET23912は、BIASM23910に対して書込まれ
る次の32なるバイアス値ならびに最初のバイアス値を保
持していた同じアドレス場所を生成する。もし残るデー
タ項目の長さが32ビツトよりも小さければ、LDET23912
は転送されるデータ項目の実際の残る長さを表わす6ビ
ツトの2進数を生成する。従つて実際の残る長さは、再
び、始めに最初のバイアス値を組むBIASM23910のアドレ
ス場所に書込まれる。これらの操作はまた、最初の長さ
フイールドを検査して対応する最初のバイアス値を生成
する際にLDET23912によつて実施される。これらの読出
し操作は、LDET23912が、残る長さフイールドが32ビツ
ト以下であること、従つてこのデータ項目の前記転送動
作が次の読出し操作と同時に完了するであろうことを検
出するまでは前述の如く継続される。この事象が検出さ
れる時、LDET23912は7番目のビツト入力を生成し、こ
れは前記ストリング転送の最後のバイアス値を共にBIAS
M23910に対して書込まれて、この残る長さの読出し操作
の後零となるであろうことを表示する。最後のバイアス
値が前記ストリング転送の次の読出し操作の開始時にお
いてBIASM23910から読出される時、前記の7番目のビツ
トはNXTZRO23914によつて検査されこれは後でテスト条
件出力、即ち最後の読出し(LSTRD)をFUCTL20214に対
して生成する。この時FUCTL20214は、もし転送が成功裏
に完了した場合は、この最後の読出し操作の後に前記の
ストリング転送の実行を終了することができる。
前記の如く、CS10110におけるデータ項目の長さの基本
単位は32ビツトである。従つて、32ビツト以下のデータ
項目は、32ビツト上のデータ項目がストリング転送を必
要とする間は直接転送することができる。更に、ストリ
ング転送によるデータ項目の転送は、データ項目自体と
このデータ項目が転送されつつある場合のデータの記憶
空間の双方の転送された長さと転送されるべき残りの長
さの追跡を必要とする。このため、BIAS20246は、前に
述べた方法で、データ項目とこのデータ項目が転送され
つつある場合の双方の論理記述子の長さフイールドとバ
イアス・フイールドを記憶し、かつこれにより処理する
ことになる。もしソース記述子のバイアス・フイールド
が行先のそれの前もしくは同時に零になる。即ち転送が
完了する場合、あるいはもし行先のバイアス・フイール
ドがソースのそれの前に零になる場合、FUCTL20214はLS
TRDテスト条件を受けることになり、また適当なマイク
ロコード制御応答を与えることができる。もしソース・
バイアス・フイールドが行先のそれの前に零になるなら
ば、このデータ項目が転送されつつある場合の残りが零
で充填され埋込みを完了することを注目されたい。もし
データ項目が記述子の記憶容量よりも大きければ、行先
の場所は容量一杯に充填されることになり、FUCTL20214
は適当な動作を開始することを通知される。
データ項目の長さを感知しないデータ項目の転送の許容
に加えて、BIAS20246は、データ項目の長さに対して感
知しない短い繁密なマイクロコード・ループによりスト
リング転送が達成されることを可能にする。例えば、場
所Aから場所Bに対するストリング転送の下記の如くに
符号化される。即ち、 (1)Aからの取出し、バイアスAからの長さの控除、
およびaのオフセツトおよび長さの更新、および (2)Bに対する記憶、バイアスBからの長さの控除、
およびもしBの長さが零にならなければ(1)への分
岐、またはもしBの長さが零になるならば無効になる
(転送の終了)。
Bの長さが零になるまではマイクロコード・ループが継
続するため、ソース(A)の長さはテキストされる必要
はなく、前述の如く、もしAの長さがBの長さよりも小
さければBは充填されて零で埋込まれることになり、あ
るいはもしAの長さがBの長さよりも大きいかあるいは
これと等しければBは充填されてストリング転送は終了
する。
これにより、LDET23912とNXTZRO23914は、DESP20210に
より読出し操作を開始するFUCTL20214からの単一のマイ
クロ命令の発生と同時に、FUCTL20214が自動的にストリ
ング転送を開始することを許容する。この時読出し操作
を開始するこのマイクロ命令は、NXTZRO23914からFUCTL
20214に対するLSTRDが前述のストリング転送が完了した
ことを表示するまでは自動的に反復される。LDET23912
とNXTZRO23914はそれぞれ、例えば、S74S260、SN74S13
3、SN74S51、SN74S00、SN74S04、SN74S02およびSN4S32
からなるものでよい。
最後にSBIAS23916について述べれば、このSBIAS23916
は、例えばSN74S288、SN74S374およびSN74S244からなる
マルチプレクサである。FUCTL20214からのマイクロ命令
制御下において、SBIAS23916はBIASM23910からのバイア
ス値、即ちL8またはLの1つになるようにBIAS20246の
出力を選択する。BIASM23910からのSBIAS23916の第1の
入力ついて前に述べた。SBIAS23916の第2の入力即ちS8
はFUCTL20214から与えられ、FUSIT11012から与えられる
マイクロ命令の8ビツトである。SBIAS23916の第2の入
力は、バイアス値のマイクロコードの選択がLENALU2025
2およびOFFALU20242による論理記述子の長さフイールド
およびオフセツト・フイールドの選択においてNC10226
に対するエントリの発生のために使用されることを許容
する。SBIAS23916の第3の入力即ちLは同様にFUCTL202
14から与えられ、FUSITT11012におけるマイクロ命令の
各部から得られる復号された長さ値である。これらのマ
イクロコードの長さ値は、ある同時に生じるデータ項目
の長さ、例えば1、2、4、8、16、32および64ビツト
の長さを表わしている。8ビツトの長さを表わすL入力
は、例えばMEM10112からバイト単位でデータを読出す際
に使用することができる。
LENP20220の作用について説明したが、次にAONP20216の
作用について説明する。
f.AONプロセツサ(AONP)20216 a.a.AONGRF20232 前述の如く、AONP20216はAONSEL20248とAONGRF20232を
含む。AONGRF20232はGRF10354の28ビツト巾の垂直方向
部分であり、AONポインタのAONフイールドと論理記述子
を記憶する。AONSEL20248はAONGRF20232に対して書込ま
れるべき入力を選択するためのマルチプレクサである。
AONSEL20248例えばSN74S257でよい。AONGRF20232は例え
ばフエアチヤイルド社の93422でよい。
前述の如く、AONGRF20232の出力は、AONポインタのAON
フイールドおよび論理記述子がこれからAONバス20230に
対して転送されることを許容するためAONバス20230と接
続されている。AONGRF20232の出力は、AONバス20230か
らの両方向の入力と共に、AONSEL20248の第2の入力お
よびOFFSEL20238の第4の入力と接続されている。この
データ経路は、AONGRF20232から、あるいはAONバス2023
0からAONフイールドがAONGRF20232またはOFFGRF20234に
対して書込まれることを許容し、あるいはOFFMUX20240
に対する入力として与えられることを許容する。
b.b.AONセレクタ20248 AONセレクタ(AONSEL)20248の第1の入力は、前述の如
くOFFALU20242の出力と接続され、また例えばOFFP20218
により生成即ち操作されたAONフイールドがAONGRF20232
に対して書込まれることを可能にするため使用される。
AONSEL20248の第3の入力は、各ビツトが論理値零であ
る28ビツト・ワードである。AONSEL20248の第3の入力
は、全てAONフイールドがAONGRF20232に対して書込まれ
ることを可能にする。全て零のAONフイールドがAONGRF2
0232に対して書込こまれることを許容する。全ての0の
AONフイールドは、OFFGRF20234とLENGRF20236における
対応するエントリがAONポインタまたは論理記述子のい
ずれでもないことを示すため保留される。全ての零のAO
Nフイールドはこのように保留されて、OFFGRF20234およ
びLENGRF20236における対応するエントリがデータを保
有することを表示する。
要約すれば、前述の如く、DESP20210はAONP20216と、OF
FP20218と、LENP20220を含んでいる。OFFP20218は、AON
ポインタおよび論理記述子のオフセツト・フイールドを
記憶しDESP20210により処理されるべきデータを保持す
るためのGRF10354とOFFGRF20234の垂直部分を保有す
る。OFFP20218はMEM10112からJP10114に対するデータの
転送用の主な経路であり、全ての通常の算術および論理
演算を実施するための32ビツトの汎用演算論理装置であ
る。更に、OFFP20218は、回路、例えば論理記述招のAO
N、オフセツトおよび長さの各フイールドおよびAONポイ
ンタの生成および操作のためのOFFMUX20240を含む。OFF
P20218はまた、例えばNC10226、ATU10228、PC10234、AO
T10712、MHT10716、MFT10718およびMEM10112に駐在する
他のデータおよびアドレス構図に例えばエントリを生成
してこれを操作することができる。LENP20220は、論理
記述子の長さフイールドの記憶のため、およびデータの
記憶のためのGRF10354、LENGRF20236の垂直部分を含
む。長さのプロセツサ20220は更にMEM10112の読出し操
作のための論理記述子の長さフイールドを提供するた
め、また特にストリング転送を自動的に実施するため、
LENGRF20236およびLENALU20252と関連して使用されるBL
AS20246を含む。AONP20216は同様に、GRF10354の垂直部
分、AONGRF20232を含んでいる。AONGRF20232の主な機能
は、AONポインタおよび論理記述子のAONフイールドを記
憶してこれを提供することである。
DESP20210の構造および作用について説明したが、次に
メモリー・インターフエース(MEMINT)20212の構造お
よび作用について説明する。
2.メモリー・インターフエース(MEMINT)20212(第106
図、第210図) メモリー・インターフエース(MEMINT)20212はMEM1011
2に対するFU10120のインターフエースを構成する。前述
の如く、MEMINT20212は名前カツシエ(NC)10226、アド
レス翻訳装置(ATU)10228および機密保護カツシエ(P
C)10234を含み、その全てについては前に簡単に説明し
た。MEMINT20212は更に、記述子トラツプ(DEST)20256
とデータ・トラツプ(DAT)20258を含む。MEMINT20212
により実施される諸機能は、(1)NC10226による論理
記述子に対する名前の解明、(2)ATU10228による論理
記述子カラ物理的記述子への翻訳、および(3)PC1023
4による目的に対するアクセス書込みの確認を含む。
第202図に示されるように、NC10226のアドレス入力(AD
R)は名前バス20224に対して接続されている。NC10226
に書込み長さフイールドの入力(WL)はLENGRF20236の
出力側に対して接続される。NC10226の書込みオフセツ
ト・フイールド入力(WO)および書込みAONフイールド
入力(WA)はそれぞれ、OFFSETバス20228およびAONバス
20230に対して接続される。NC10226の読出しAONフイー
ルド(RA)、読出しオフセツト・フイールド(RO)およ
び読出し長さフイールド(RL)の出力は、それぞれAON
バス20230、OFFSETバス20228および長さバス20226に対
して接続される。
DEST20256の両方向のAON(AON)、オフセツト(OFF)お
よび長さ(LEN)の各ポートは、両方向のバスにより、
それぞれAONバス20230、OFFSETバス20228および長さバ
ス20226に対して接続される。
PC10234は、それぞれAONバス20230およびOFFSTEバス202
28と接続されたAON(AON)およびオフセツト(OFF)の
各入力を有する。PC10234は、JPDバス10142と接続され
た書込みエントリ(WEN)入力を有する。ATU10228は、
それぞれAONバス20230、OFFSETバス20228および長さバ
ス20226と接続されたAON(AON)、オフセツト(OFF)お
よび長さ(LEN)の各入力を有する。ATU10228の出力は
物理的記述子(PD)バス10146と接続される。
最後に、データ・トラツプ(DAT)20258はJPDバス10142
に関して接続された両方向ポートを有する。
a.a.記述子トラツプ(DST)20256およびデータ・トラツ
プ20258 最後に記述子トラツプ(DST)20256およびデータ・トラ
ツプ(DAT)20258について述べれば、DST20256は、OFFS
ETバス20228とOFFSETバス20228と、長さバス20226上に
現われる論理記述子の受取りこれを捕捉するためのレジ
スタである。同様にDAT20258はJPDバス10142上に現われ
るデータ・ワードを受取りこをを捕捉するためのレジス
タである。DST20256およびDAT20258はその後、捕捉され
た論理記述子またはデータ・ワードをそれぞれAONバス2
0230、OFFSETバス20228および長さバス20226に対し、ま
たJPDバス10142に対して戻すことができる。
前述の如く、多くのCS10110の操作、特にMEM10112およ
びJP10114の操作はパイプ・ライン化されている。即
ち、諸操作は、同時に実行中の2つ以上の操作内のある
組と並行させられる。例えば、FU10120はMEM10112に対
して読出し要求を与えることができ、MEM10112がこの要
求を受入れて処理しつつある間第2の読出し要求を生じ
る。DST20256およびDAT20258は、これらの操作の一時的
なレコードを提示することによつて、並行操作の実行に
おいてこれを補佐する。例えば、FU10120によるMEM1011
2に対する読出しまたは書込み要求の一部は、ATU10228
に対して与えられた論理記述子である。もし例えば今述
べた許りの第1の読出し要求がATU10228のカツシエ・ミ
スまたは機密保護の侵害を惹起するならば、この第1の
要求の論理記述子は前に述べたようにCS10110により以
降の動作のため回復されねばならない。この流体はDEST
20256において捕捉されて記憶され、このため即時使用
可能となり、この結果20210はこの記述子の再生のため
には必要とされない。DAT20258はJP10114からMEM10112
に対して書込まれるデータに関して同様な目的を果た
す。即ち、DAT20258は、JP10114によりJPDバス10142に
対して転送される各32ビツト・ワードのコピーを受取つ
てこれを捕捉する。MEM10112が書込み要求を受入れるこ
とが不可能な場合、このデータはその後DAT20258から再
び与えられる。
b.b.名前カツシエ10226、アドレス翻訳装置 10228および機密保護カツシエ(第106図) NC10226、ATU10228およびPC10234について述べれば、ME
MINT20212のこれらの要素は、MEM10112に対するFU10120
のインターフエースの速度、従つてCS10110の処理速度
を強化する主としてカツシエ機構である。前に述べたよ
うに、NC10226は、CS10110により実行中のプロセスにお
いてその時現われるあるオペランド名と対応する1組の
論理記述子を保有する。このため、NC10226は、対応す
る論理記述子に対してあるオペランド名の高速の解を有
効に与える。ストリング転送に関して前に述べたよう
に、NC10226は一般に、256ビツト長さより小さなデータ
項目に対してのみ論理記述子を含むことになる。NC1022
6の読出しおよび書込みアドレスは名前バス20224におい
て与えられる。名前の読出しおよび書込みアドレスはDE
SP20210から、特に前述の如くOFFP20218から、あるいは
FUCTL20214の以下の説明において述べるようにFUCTL202
14から与えることができる。各々がAONフイールド、オ
フセツト・フイールドの長さフイールドからなるNC1022
6のエントリを構成する論理記述子はそれぞれAONバス20
230、OFFSETバス20228およびLENGRF20236の出力からのN
C10226の入力WA、WOおよびWLを解してNC10226に対して
書込まれる。NC10226に対して与えられた名前に応じてN
C10226から読出される論理記述子は、それぞれNC10226
の出力RA、ROおよびRLからAONバス20230、OFFSETバス20
228および長さバス20226に対して与えられる。
ATU10228は同様に、論理記述子から物理的記述子への高
速の翻訳を行なうためのカツシエ機構である。一般に、
ATU10228に如何なる時も、JP10114によりMEM10112に対
してその時行なわれつつある、あるいは行なわれること
が意図されるMEM10112の読出しおよび書込み要求のため
の1組の論理ページ数から物理的ページ数へのマツピン
グを含むことになる。前に述べたように、各物理的記述
子は、名前番号(FN)フイールドと、フレーム内オフセ
ツト(O)フイールドと、長さフイールド(FN)からな
つている。ストリング転送に関して述べたように、物理
的記述子の長さフイールドは、論理記述子の長さフイー
ルドにおけるように、32ビツトの長さより小さいかある
いは等しい長さのデータ項目を指定する。第106C図によ
れば、前に述べたように、論理記述子は14ビツトのAON
フイールドと、32ビツトのオフセツト・フイールドと、
長さフイールドからなり、この場合32ビツトの論理記述
子のオフセツト・フイールドは18ビツトのページ番号
(P)フイールドと14ビツトのページ内オフセツト
(O)フイールドに分割されている。
論理記述子を物理的記述子に翻訳する際、論理記述子の
長さフイールドとOフイールドとは、それぞれ物理記述
子の長さフイールドとOフイールドとして直接使用され
る。論理記述子のAONフイールドおよびPフイールドは
物理的記述子のNFフイールドに翻訳される。実際の翻訳
動作は必要とされないため、ATU10228は、対応する物理
的記述子のOフイールドおよび長さフイールドおしえ、
MEM10112に対し直接、即ち遅れを生じることなく論理記
述子のLフイールドおよび対応するOフイールドを与え
ることができる。これにより、ATU10228のカツシエ・エ
ントリは、ATU10228が対応するエントリを有するこれら
の物理記述子のAONフイールドおよびPフイールドと対
応する物理的記述子のFNフイールドからなる。物理的記
述子のFNフイールドが物理的記述子のOフイールドおよ
び長さフイールドにおけるように直接ではなくATU10228
のカツシエから与えられるため、物理的記述子のFNフイ
ールドは、例えば、前述の如くこの物理的記述子のOお
よび長さフイールドよりは1クロツク・サイクルMEM101
12に対して与えられる。
第202図によれば、ATU10228に対して書込まれるべき物
理的記述子のFNフイールドは一般にDESP20210によつて
生成される。ATU10228に対して書込まれるFNフイールド
は、JPDバス10142を介してATU10228のデータ入力(DI)
に対して与えられる。ATU10228の読出しおよび書込みア
ドレスは論理記述子のAONフイールドおよびPフイール
ドからなり、それぞれAONバス20230およびOFFSETバス20
228からATU10228のAONおよびOFF入力に対して与えられ
る。ATU10228の読出しおよび書込みアドレスは、DESP20
210から、または更に以下に述べるようにFUCTL20214か
ら与えることができる。ATU10228のFN出力は、物理的記
述子を構成するOフイールドおよび長さフイールドと共
に、PDバス10146に対して与えられる。
PC10234は、MEM10112に対するJP10114の読出しまたは書
込み要求の一部として生成される論理記述子により識別
される目的に対する活動状態の手順のアクセス権を確認
するためのカツシエ機構である。前述の如く、目的に対
するアクセス権は主題に基づいて調停される。主題は主
体、プロセスおよび定義域のある特定の組合せとして定
義されてきた。主体、プロセスおよび定義域は各々対応
するUIDによつて識別される。ある目的に対するアクセ
ス権を有する各主題は、CS10110の機密保護機構の前の
説明において記述したように活動状態の主題番号(AS
N)が割当てられる。その時CS10110において活動状態の
ある主題のASNは、FU10120におけるASNレジスタ10916に
記憶される。その時活動状態の目的の対するその時活動
状態の主題のアクセス権は、これらの目的のアクセス制
御リスト(ACL)10918から読出されて、PC10234に記憶
される。もしその時のASNが変化するとPC10234は対応す
るアクセス権のエントリをフラツシユして、この新たな
ASNに対応する新たなエントリがPC10234に対して書込ま
れる。ある特定の目的に対するある特定のその時のASN
のアクセス権は、この目的を識別するAONによりPC10234
の割出しを行なうことによつて、即ちアドレス指定によ
つて決定することができる。エントリをPC10234に対し
て書込むか、あるいはPC10234から読出すアドレスがAON
バス20230からのPC10234のAON入力に対して与えられ
る。PC10234に対して書込まれるべきエントリは、JPDバ
ス10142からPC10234のWEN入力に対して与えられる。PC1
0234はまた、FU10220によりその時アドレス指定されつ
つある目的に関してJP10114により実施されるべきその
時の操作を表示するFUCTL20214からの入力(明瞭化のた
め第202図に示はさない)が与えられる。FU10210がある
特定の目的をMEM10112に関連付ける読出しまたは書込み
要求を与える時は常に、この要求のAONフイールドは、P
C10234に対するアドレスとして与えられる。この目的に
対するその時活動状態の主題のアクセス権は、対応する
PC10234から読出されて、この目的に関してJP10114によ
り実施されるべき特定の操作を表示するFUCTL20214と比
較される。従つて、JP10114により実施される操作はこ
の目的に対する前記の活動状態の主題のアクセス権と比
較され、PC10234は前記の活動状態の主題が意図された
操作の実施のため必要な権利を有するかどうかを示す出
力を生じる。PC10234の割出しおよび意図された操作に
対するアクセス権の比較は、ATU10228によるメモリー要
求の論理記述子の対応する物理的記述子への翻訳と同時
に実施される。もしPC10234がこの活動状態の主題が必
要とされるアクセス権を有することを表示するならば、
意図された操作はJP10114によつて実行される。もしPC1
0234がこの活動状態の主題が必要とされるアクセス権を
持たないことを表示するならが、PC1023し、機密保護機
構の侵害が生じて意図された操作の実行を遮断すること
を示す。
c.c.一般的なカツシエおよびNC10226の構造および作用
(第240図) NC10226、ATU10228およびPC10234の全体的な構造および
作用について述べたが、これらカツシエの構造および作
用については以下において更に詳細に述べることにす
る。NC10226と、ATU10228と、PC10234の構造および作用
は、NC10226は4通りに組合された連想カツシエであ
り、ATU10228は3通りに組合された連想カツシエであ
り、またPC10234は2通りに組合された連想カツシエで
ある点を除いて類似している。
このように、NC10226、ATU10228、PC10234の構造および
作用については、NC10226、ATU10228、PC10234の各々に
対して必ずしも同一ではないが類似する一般のカツシエ
の説明を照合することにより説明する。共に一般化され
たカツシエの構造および作用を更に例示しかつ一般化さ
れたカツシエおよびNC10226間の差について述べるた
め、以下の一般化されたカツシエの説明においてNC1022
6を照合する。次に、ATU10228およびPC10234について
は、ATU10228、PC10234および一般化されたカツシエ間
の差異の説明によつて記述する。
第240図においては、一般化された4通りの組合された
連想カツシエの部分ブロツク図が示される。タツグ・ス
トア(TS)24010は、タツグ・ストア(TSA)24012と、
タツグ・ストアB(TSB)24014と、タツグ・ストアC
(TSC)と、タツグ・ストアC(TSD)24018からなる。T
SA24012乃至TSD24018で示されるカツシエの組の各々
は、対するNC10226におけるように、16エントリまで含
み得、そのためTSA24012乃至TSD24018は各々16ワードの
長さとなる。
1つのカツシエに対するアドレス入力は1つの対する・
フイールドと1つの指標フイールドに分割される。タツ
グ・フイールドはカツシエのタツグ・ストアに記憶され
て割出しされ、即ちあるアドレスの指標フイールドによ
つてタツグ・ストアに関して読出しあるいは書込みされ
るようにアドレス指定される。あるアドレスの指標フイ
ールドに応答してタツグ・ストアから読出されたタツグ
は、次にこのアドレスのタツグ・フイールドと比較され
て、このカツシエが前記アドレスと対応するエントリと
含むかどうかについて、即ちあるカツシエのヒツトが生
じるかどうかについて表示する。例えばNC10226におい
て、名前のシラブルは前述の如く8、12または16ビツト
の2進数のワードからなるものでよい。これらワードの
4つの最下位ビツト即ち名前はNC10226の指標フイール
ドを構成するが、残りの4、8または12の最上位ビツト
はNC10226のタツグ・フイールドを構成する。従つて、T
SA24012乃至TDS24018は各々、16ビツトの名前の12ビツ
トのタツグ・フイールドを記憶する12のエントリ巾のメ
モリーでよい。TSA24012乃至TD324018の指標(IND)即
ちアドレス入力は名前バス20224の4つの最下位ビツト
に対して接続されるが、TSA24012乃至TDS24018のタツグ
入力(TAGI)は名前バス20224の12の最上位ビツトに対
して接続される。
前述の如く、TS24010のタツグ出力は、カツシエがそれ
に与えられたアドレスと対応するエントリを有するかど
うかについて判定するため、このカツシエに与えられた
アドレスのタツグ・フイールドと比較される。NC10226
を用いて、一例としてTSA24012のTSD24018に対する12ビ
ツトのタツグ出力カツシエTAGO)は、それぞれタツグ・
ストア・コンパレータA(TSCA)24020と、タツグ・ス
トア・コンパレータB(TSCB)24022と、タツグ・スト
ア・コンパレータD(TSCD)24024と、タツグ・ストア
・コンパレータE(TSCE)24026の入力に対するタツグ
・ストア・コンパレータ(TSC)24019の第1の入力に対
して接続される。TSCA24020乃至TSCE24026の第2の12ビ
ツトの入力はCN10226のアドレスのタツグ・フイールド
を受取るため名前バス20224の12の最上位ビツトと接続
することができる。TSCA24020乃至TSCE24026は、あるア
ドレスの指標フイールドに応答してこのアドレスのタツ
グ・フイールドをTSA24012からTSD24018に読出されたタ
ツグ出力と比較し、また可能性のある16のエントリ(も
しあれば)およびその関連するタツグ・ストアのどれが
名前アドレスのタツグ・フイールドと対応するかを表示
する4ビツト出力を与える。TSCA24020乃至TSCE24026
は、例えばフエアチヤイルド社の92S46からなるもので
ある。
TSA24012乃至TSCE24026の4ビツト出力は、一般化され
たカツシエにおいてタツグ・ストアのパイプ・ライン・
レジスタ(TSPR)24027の入力に対して接続され、それ
ぞれタツグ・ストアのパイプ・ライン・レジスタA(TS
PRA)24028と、タツグ・ストアのパイプ・ライン・レジ
スタB(TSPRB)24030と、タツグ・ストアのパイプ・ラ
イン・レジスタC(TSPRC)24032と、タツグ・ストアの
パイプ・ライン・レジスタD(TSPRD)24034の入力に対
して接続される。ATU10228およびPC10234は2つのクロ
ツク・サイクルにおいて実行されつつある単一のカツシ
エのアクセス操作とパイプ・ライン化されている。第1
のクロツク・サイクルの間、タツグ・ストアはアドレス
指定され、内部のタツグ・ストアはアドレスのタツグ・
フイールドと比較されて、カツシエのヒツトが生じたか
どうか、即ちカツシエがある特定のアドレスと対応する
エントリを有するかどうかについての表示を与える。第
2のクロツク・サイクルの間、以下に述べるように、検
出されたカツシエのヒツトはカツシエのデータ・ストア
における対応するエントリに対するアクセスを得るため
符号化される。2つのクロツク・サイクルにわたるパイ
プ・ライン操作は、部分的にTSPRA24028乃至TSPRD24034
を含むカツシエ・パイプ・ライン・レジスタによつて行
なわれる。NC10226はパイプ・ライン化されず、TSPRA24
028乃至TSPRD24034は含まない。NC10226においては、TS
CD24042に対するTSHEA24036の入力に対して直接接続さ
れる。
TSPRA24028乃至TSPRD24034の出力はタツグ・ストア・ヒ
ツト・エンコーダ(TSHE)24035の入力、即ちそれぞれ
タツグ・ストア・ヒツト・エンコーダA(TSHEA)24036
と、タツグ・ストア・ヒツト・エンコーダB(TSHEB)2
4038と、タツグ・ストア・ヒツト・エンコーダC(TSHE
C)24040と、タツグ・ストア・ヒツト・エンコーダD
(TSHED)24042に対して接続される。TSHEA24036乃至TS
HED24042は、それぞれTSPRA24028乃至TSPRD24034からの
ビツト入力を符号化してカツシエの4つの組のどれが
(もしあれば)アドレス入力に対応するエントリを有す
るかを表示する1ビツトの出力を生じる。
TSHEA24036乃至TSHED24042の単一ビツト出力は、ヒツト
・エンコーダ(HE)24044の入力と接続されている。HE2
4044は、TSHEA24036乃至TSHED24042からの単一ビツト入
力を符号化して2組の出力を与える。HENI4044の第1の
出力はカツシエ使用ストア・(CUS)24046に対して与え
られ、TSA24012乃至TD24018と対応するカツシエの4つ
の組の内カツシエのヒツトを生じたのはどれかを表示す
る。MC20116に関して前に述べたようにまた以下におい
て更に述べるように、CUS24046はカツシエのエントリの
使用を追跡するための情報を保有するメモリーである。
即ちUCS24046は、ある特定の指標に関して、カツシエの
4つの組のどの組、即ち組A、組B、組Cまたは組Dの
どれが最も後で使用されたか、また最も以前に使用され
たかを表示するエントリを保有する。組A、B、Cおよ
びDに関するCU24046のエントリは、それぞれメモリーC
USA24088、CUSA24090、CUSA24092およびCUSA24094に記
憶される。以下において更に説明するように、HE24044
の第2の出力はデータ・ストア選択マルチプレクサ(DS
SMUX)24088の選択入力に接続されて、カツシエのヒツ
トが生じる時カツシエの出力として与えられるデータ・
ストア(DS)24050からの出力を選択する。
DS24050について述べれば、前述の如く、あるカツシエ
のデータ・ストアはこのカツシエに記憶された情報即ち
エントリを保有する。例えばNC10226のDS24050における
各エントリはAON、オフセツトおよび長さからなる論理
記述子である。カツシエのデータ・ストアは、構造およ
び作用において、前述カツシエのタツグ・ストアと並行
し、そのエントリはこのカツシエのタツグ・ストアおよ
び関連するタツグ・ストアの比較および復号ロジツクを
経て識別され見出される。NC10226においては、例えばN
C10226におけるエントリを有する各名前については、エ
ントリ即ちTS24010に記憶されたこの名前のタツグ・フ
イールドと、対応するエントリ即ちDS24050におけるこ
の名前と対応する論理記述子が存在する。前述の如くNC
10226は4通りに組合された連想カツシエであり、その
ためTS24010およびDS24050は各々4組のデータを保有す
ることになる。各0は4つの16ーのメモリーからなつて
いる。各メモリーは65ビツトの巾を有し28ビツトのAO
N、32ビツトのオフセツトおよび5ビツトの長さを収容
する。DS24050のこれらの4つ構成的なデータ・ストア
・メモリーは、第24図において、データ・ストアA(DS
A)24052、データ・ストアB(DSB)24054、データ・ス
トアC(DSC)24056およびデータ・ストアD(DSD)240
58として示されている。DSA24052、DSB24054、DSC24056
およびDSD24058は、それぞれ構造、内容および作用にお
いてTSA24012、TSB24014、TSC24016およびTSD24018と対
応する。
DSA24052のDSD24058に対するデータ入力(DI)は、対す
るNC10226においては、AONバス20230、OFFSETバス2022
8、長さバス20226と接続され、それぞれNC10226の入力W
A、WOおよびWLを構成する。DSD24058に対するDSA24052
は、NC10226においては前述の如く、DSA24052乃至DSD24
058に対するNC10226のエントリの書込みにおいて示され
る。DSA24052乃至DSD24058のアドレス入力は、アドレス
・パイプ・ライン・レジスタ(ADRPR)24060のアドレス
出力と接続される。今述べるように、カツシエのフラツ
シユ操作の間を除いて、DSA24052乃至DSD24058のアドレ
ス入力は、TS24010に対するアドレス入力として与えら
れるものと同じカツシエ・アドレスの指標フイールドか
らなるが、1クロツク・サイクルだけ遅延させられ、パ
イプ・ライン化の目的のためにはADRPR24060である。前
述の如く、NC10226はパイプ・ライン化されず、1クロ
ツク・サイクルの遅延は生じない。これにより、カツシ
エに対するアドレス入力は、TSA24012からTSD24018へ、
またDSA24052からDSD24058へ読込まれつつあるアドレス
指標フイールドによつて選択される対応するエントリを
生じる結果となる。ある特定のアドレスの特定の指標フ
イールドによつて選択されるDSA24052乃至DSD24058の4
つの出力は、DSSMUX24048に対する入力として与えられ
る。DSSMUX24048はHF24044からの選択制御入力と同時に
与えられる。前述の如く、DSSMUX24048に対するこの選
択入力はTS24010のタツグ・エントリから得られ、DSA24
052乃至DSD24058のエントリのどれがカツシエに対して
与えられたアドレスと対応するかを表示する。この選択
制御入力に応答して、前記アドレスと対応するカツシエ
の出力として、DSSMUX24048はDS24054の4つの論理記述
子の出力の内の1つを選択する。この時DSSMUZ24048の
出力は、例えばNC10226においては、AONバス20230、OFF
SETバス20228および長さバス20226に対するカツシエの
出力としてバツフア・ドライバ(BD)24062を介して与
えられる。
ADRMUX24062について述べれば、ADRMUX24062は、DS2405
0に対するアドレス入力、即ちDS24050に対する指標を与
える2つのソースの内の一方を選択する。前述の如く、
ADRMUX24062について述べるならば、ADRMUS24062は2つ
のソースの内の一方を選択して、DS24050に対する指標
であるDS24050に対するアドレス入力を提供する。前述
の如く、ADRMUX24062の第1の入力は、カツシエのアド
レス指標フイールドからなり、また対するNC10226にお
いては、名前バス20224の4つの最下位ビツトに対して
接続される。カツシエ・フラツシユ操作の間、DS24050
のアドレス入力は、本例においては4ビツトのカウンタ
であるフラツシユ・カウンタ(FLUSHCTR)24066から与
えられる。カツシエ・フラツシユ操作の間、FLUSHCTR24
066は、DSD24058に対してDSA24052を順次アドレス指定
するため使用される順次ビツト・アドレスを生成する。
それぞれアドレス指標フイールドでありかつFLUSHCTR24
066からのDARMUX24062の第1と第2の入力間の選択は、
FUCTL24214からのアドレス・マルチプレクサ選択(ADRM
USX)により制御される。
妥当性ストア(VALS)24068および被適正ストア(DIRTY
S)24070はTS24010と並列に使用しかつこれを並列にア
ドレス指定されるメモリーである。VAL24068は、対応す
るTS24010とDS24050の妥当性を表示するエントリを含
む。即ち、VALS24068のエントリは対応するエントリがT
S24010およびDS24050における対応する場所に対して書
込まれたかどうかについて表示する。本例においては、
VALS24068にこれにより、16バスX4ビツトの巾のメモリ
ーでよい。VALS24068のワードの各ビツトは、TSA24012
とDSA24052、TSB24014とDSB24054、TSC24016とDSC2405
6、およびTDS24018とDSD24058における対応する場所の
妥当性を表示する。DIRTYS24070は同様に、TS24010およ
びDS24050に対応する場所における対応するエントリが
重ね書き修正されたかどうかについて表示する。再び、
DIRTYS24070は16ワードX4ビツト巾のメモリーである。
VALS24068およびDIRTYS24070のアドレス入力は、対する
NC10226の場合には、名前バス20224の最下位ビツトと接
続され、これによりTS24010と並列にNC10226の指標フイ
ールドによつてアドレス指定される。VALS24068の出力
は、TSCA24020乃至TSCE24026に対して与えられて、TS24
010のエントリおよびNC10226のアドレス入力間における
無効の並行操作の発生と同時にTSCA24020乃至TSCE24026
の出力を禁止する。DIRTY24070の同じ出力は、NC10226
のどのエントリが不適正であり、打切る代りにMT10350
に対して書戻されねばならない。
VALS24068とDIRTYS24070にの出力はもまた、それぞれ、
妥当性パイプ・ライン・レジスタ(VALPR)24072および
不適性パイプ・ライン・レジスタ(DIRTYPR)24074の入
力に対して接続される。VALPR24072とDIRTYPR24074は、
TSPRA24028乃至TSPRD24034と類似のパイプ・ライン・レ
ジスタであり、今説明するようにタイミングの目的のた
め設けられる。VALPR24072とDIRTYPR24074はそれぞれ、
妥当性書込みロジツク(VWL)24076および不適性書込み
ロジツク(DWL)24078の入力と接続される。前述の如
く、MC10226はパイプ・ライン化カツシエではなく、VAL
PR24072およびDIRTYPR24074は含まず、VALS24068とDIRT
YS24070の出力はVWL24076とDWL24078の入力と直接接続
される。VWL24076およびDWL24078の出力は、それぞれVA
LS24068とDIRTYS24070のデータ入力に対して接続され
る。TS24010とDS24050に対する書込み操作、即ちカツシ
エのエントリの書込みまたは修正操作の発生と同時に、
対応する妥当性および不適性ワードのエントリが、カツ
シエ入力アドレスの指標フイールドによつて、VALS2406
8とDIRTYS24070から読出される。VALS24068およびDIRTY
S24070に対する出力は、それぞれ、DIRTYS24070とDIRTY
PR24074において受取られてこれに記憶する。次にクロ
ツク・サイクルの開始時に、VLPR24072とDIRTYPR24074
における妥当性および不適性ワードは、それぞれVWL240
76とDWL24078に対して読込まれる。VWL24076とDWL24078
は、TS24010およびDS24050における対応するエントリが
書込まれあるいは修正されるかに従つて、VALS24068お
よびDIRTYS24070からのこれらの妥当性または不適性ワ
ードのエントリをそれぞれ修正する。VWL24076およびDW
L24078の制御入力はFUCTL20214から与えられる。
最後に、最前使用ロジツク(LRUL)24080について述べ
れば、LRUL24080はカツシエ・エントリの使用を追跡す
る。前述の如く、第240図の一般化されたカツシエは、
対するNC10226の組の各々において16エントリまでを有
する4通りの組合された連想カツシエである。ある特定
の組内のエントリは、前述の如くカツシエのTS24010を
割出すことにより識別され、またDS24050は各々指標に
より識別されるが異なるタツグを持たせることにより区
別される4つまでの個々のエントリを含むことができ
る。この場合、1つのエントリがTSA24012とDSA24052か
らなる組Aに、1つのエントリがTSB24014とDSB24054か
らなる組Bに、というように存在することになる。共通
のタツグを有する可能な数の個々のエントリはカツシエ
の組数よりも多いため、各々タツグを有する別のエント
リがカツシエに書込まれる時、ある特定のカツシエ・エ
ントリを削除することが必要となろう。一般に、カツシ
エの最前に使用されたエントリは新たなエントリへの書
込みのためにTS24010とDS24050における場所を提供する
ように削除されることになろう。LRUL24080は、カツシ
エのエントリの相対的な使用を追跡して表示することに
より新たなエントリへの書込みに必要な時、どのカツシ
エのエントリが削除されるかを判断する際にこれを補佐
する。LRUL24080は主として、1つのメモリー、即ち各
カツシエの組に対するワードを含むLRUメモリー(MLR
U)24081からなる。前述の如く、NC10226は例えば、LRU
L24080のメモリーが対応的に例えば16ワード長となり得
るように、各々4つのフレームの16組を含む。各ワード
は1つの組における4つのフレームの相対的な使用を表
示し、6ビツトのワードである。
前述の如く、ワードは、HE24044により実行される書込
み専用アルゴリズムに従つて生成され、入力レジスタ
A、B、C、D(RABCD)を介してLRUL24080のMLRU2408
1に対して書込まれる。各々の6ビツト・ワードの各ビ
ツトはある特定のカツシエの組内の1対の1フレームに
関連して、これら2つのフレームのどちらが他方よりも
最近使用されたかを表示する。ビツト0は、例えば、も
しフレームAがフレームBよりも最近使用されたならば
論理値1を含み、またもしフレームBはフレームAより
も最近使用されたならば論理値零を含む。同様に、ビツ
ト1はフレームAとCに関連し、ビツト2はフレームA
とDに関連し、ビツト3はフレームBとCに関連し、ビ
ツト4はフレームBとDに関連し、ビツト5はフレーム
CとDに関連する。最初に、ある特定のLRUL24080のワ
ードの全てのビツトは零に設定される。例えば、ある特
定の組のフレームがフレームA、フレームD、フレーム
Bの順序で使用されるものとすると、このLRUL24080の
ワードのビツト0乃至5は最初に全ての零を含むことに
なる。フレームAを選好すると、それぞれフレームAと
B、フレームAとC、およびフレームAとDを照合する
ビツト0、1および2は論理値1として書込まれること
になる。それぞれフレームBとC、フレームBとD、お
よびフレームCとDを照合するビツト3、4および5は
論理値0の状態を保持する。フレームDを照合すると、
それぞれフレームAとBおよびフレームAとCを照合す
るビツト0および1は論理値1の状態を保持する。フレ
ームAとDを照合するビツト2は論理値1から論理値0
に変化させられてフレームDがフレームAよりも最近照
合されたことを表示する。フレームBとCと照合するビ
ツト3は論理値0の状態を保持することになる。それぞ
れフレームBとD、およびフレームCとDを照合するビ
ツト4および5は既に論理値零であるが論理値0として
書込まれてフレームDがフレームBまたはフレームCよ
りも最近使用されたことをそれぞれ表示することにな
る。フレームBを照合すると、フレームAおよびBを照
合するビツト0は論理値0に対して書込まれて、フレー
ムBがフレームAよりも最近使用されたことを表示す
る。フレームAとCおよびフレームAとDをそれぞれ照
合するビツト1および2は、それぞれ論理値1および論
理値0としての状態を維持する。それぞれフレームBと
CおよびフレームBとDを照合するビツト3と4は論理
値1として書込まれて、フレームBがフレームCまたは
フレームDよりも最近使用されたことをそれぞれ表示す
る。ビツト5は論理値0の状態を維持することになる。
ある特定のフレームにおけるカツシエのエントリを置換
することが必要な時、このフレームを含むカツシエの組
合せを照合するLRUL24080はLRLUレジスタ(RLRU)24085
を介してLRUL24080のMLRU24081から読出され、LRU復号
ロジツク(LRUD)24087により復号されてどれが最前に
使用されたフレームであるかを表示する。この復号は、
1組の復号ゲートとして作用する読出し専用メモリーに
よつて実行される。
例示のためNC10226に関連して、また一般化されたカツ
シエとNC10226の差異を指摘するため第240図に示される
如き一般化されたカツシエの構造および作用について説
明したが、ATU10228とPC10234の構造および作用につい
て以下に説明する。ATU10228とPC10234については、ATU
10228とPC10234と一般化されたカツシエとNC10226の間
の差異についての説明によつて記述する。ATU10228につ
いて最初に説明し、次にPC10234の説明がこれに続く。
d.d.アドレス翻訳装置10228および機密保護カツシエ102
34 アドレス翻訳装置(ATU)10228は、16組の3通りに組合
された連想カツシエであり、即ち各組について3フレー
ムを含む。ATU10228の構造および作用は前に述べた一般
化されたカツシエと類似している。1組当り4フレーム
ではなく3フレームを持つATU10228は、TSD24018、ATSC
E24026、ATSPRD24034、ATSHED24042またはADSD24058を
含まない。前述の如の、ATU10228のアドレス入力は、論
理記述子のAONおよびフイールドからなる。AONフイール
ドは各々28ビツトであり、0フイールドは論理記述子の
オフセット・フイールドの18の最上位ビツトからなり、
その結果ATU10228のアドレス入力が48ビツトの巾とな
る。0フイールドの4つの最下位ビツトは指標として使
用される。AONフイールドおよび0フイールドの14の最
上位ビツトはATU10228のタツグを構成する。ATU10228の
タツグはこれにより各々巾が42ビツトである。従つて、
ATU10228のTS24010のTSA24012と、TSB24014とTSC24016
は各々、16ワード長X42ビツト巾である。
ATU10228のDSA24052とDSB24054とDSC24056は各々16ビツ
トの長さである。ATU10228の出力は、前述の如く各々が
13ビツトの物理的記述子のフレームの番号(FN)フイー
ルドである。ATU10228のDSA24052、DSB24054およびDSC2
4056はこれにより各々13ビツトの巾である。
ATU10228のLRUL24080は、構造および作用において一般
化されたカツシエのそれと類似している。3フレームの
組におけるフレームの相対的な使用を表示するのに3ビ
ツトで十分であるため、各々がATU10228の組と対応す
る。ATU12028のLRUL24080のワードは各々巾が3ビツト
である。ATU10228においては、LRUL24080のビツト1
は、フイールドAがフイールドBよりも最近に使用され
たかどうかを表示し、ビツト2はフレームAがフレーム
Cよりも最近使用されたかどうかを表示し、ビツト3は
フレームBがフレームCよりも最近使用されたかどうか
を表示する。前に述べた如き他の全ての観点において、
ATU10228の構造および作用において一般化されたカツシ
エと類似する。
PC10234について述べれば、PC10234は8組の2通りに組
合された連想カツシエであり即ち1組当り2つのフレー
ムを有する。4つのフレームではなく2フレームを有す
るPC10234は、TSC24016、TSD24018、TSCC24024、TSC240
16、TSD24018、TSCC24024、TSHEC24040、TSHED24042、D
SC24056またはDSD24058のいずれも含まない。
PC10234のアドレス入力は、論理記述子の28ビツトのAON
フイールドである。これらのAONフイールドの3つの最
下位ビツトは、PC10234のTS24010とDS24050のアドレス
指定のための指標として使用される。これらのAONフイ
ールドのアドレス入力の25の最上位ビツトはPC10234の
タツグとして使用され、その結果PC10234のTSA24012とT
SB24014は各々8ビツト・ワード実行X25ビツトのメモリ
ーである。
PC10234のLRUL24080について述べれば、1つのビツト
は、PC10234の組の各々における2つのフレームのどれ
が最後にアクセスされたかを表示するため十分である。
PC10234のLRUL24080のメモリーはこれにより8ワード、
即ち8組の長さで1ビツトの巾である。
前述の如く、PC10234のエントリは、ある活動状態の目
的に対するある活動状態の主題のアクセス権に関する情
報を構成する。PC10234の各エントリは35ビツトの情報
を保有する。この情報の3つのビツトは、ある特定の主
題がある特定の目的に関する読出し、書込みまたは実行
権のいずれであるかを表示する。残る32ビツトはこれら
のアクセス権が関連する前述目的のボリユーム即ち部
位、即ちデータビツト数を表示する長さフイールドを有
効に構成する。
再び第240図において、PC10234は一般化されたカツシエ
とは異なり、また更にクステント検査ロジツク(EXTCH
K)24082および操作検査ろじつく(OPRCHK)24084を含
む点でNC10226およびATU10228とは異なる。PC10234のエ
ントリは、前記の如く、ある特定の主題がある特定の目
的に対して有するアクセス権の形式を識別する3ビツト
を含む。読出し(R)、書込(W)または実行(E)の
いずれかの権利を表わすこれらの3ビツトは、OPRCHK24
084の第1の入力に対して与えられる。OPRCHK24084の第
2の入力はFUCTL20214から与えられ、JP10114が前記目
的に関して読出し(R)、書込み(W)または実行(E
I)のいずれかの操作の実施を意図するかを規定する。O
PRCHK24084は、DS24050からOPRCHK24084のアクセス権入
力をFUCTL20214からのOPRCHK24084の意図された操作入
力と比較する。もしこの主題がJP10114によつて意図さ
れた操作の実施に必要な目的に対する権利を保有しなけ
れば、OPRCHK24084は機密保護の侵害が生じたことを表
示する操作侵害(OPRV)を生成する。
同様に、エクステント権に関するPC10234のエントリの3
2ビツトは、EXTCHK24082に対する入力(EXTENT)として
与えられる。前述の如く、PC10234のエントリのEXTENT
フイールドは、これらのアクセス権が関連する目的内に
おける長さ即ちデータ・ビツトの数を表示する。PC1023
4からのEXTENTフイールドはEXTCHK24082により、その時
の機密保護機能の検査が行なわれつつあるMEM10112に対
するその時のJP10114の論理記述子のオフセット・フイ
ールドと比較される。もしエクステント権およびオフセ
ット・フイールドの比較が、DS24050からの対応する権
利の読出しが妥当する目的の長さをその時のメモリー要
求が超えることを示すならば、EXTCHK24082はエクステ
ント侵害(EXTV)出力を生成する。このEXTVは、JP1011
4によるその時のメモリー要求がDS24050からのPC10234
のエントリ読出しが妥当しない目的の部分を示すことを
表示する。前述の如く、たとえストリング転送の一部と
しても、MEM10112に関する各読出しまたは書込みは32ビ
ツト・ワードである。このため、その時論理記述子に応
じて与えられるPC10234のエントリのEXTENTフイールド
により規定される制限からの32ビツトより小さな目的の
セグメントを前述論理記述子のオフセット・フイールド
が記述する時、EXTCHK24082はEXTV出力を生じることに
なる。EXTVおよびOPRVは機密保護侵害ゲート(RVG)240
86によって一緒にゲートされ、エクステントまたは操作
の侵害が生じたことを表示する機密保護侵害(PROTV)
出力を生成する。
MEMINT20212の構造および作用について延べ、またDESP2
0210の構造および作用について前に述べたが、FUCTL202
14の構造および作用について次に説明する。
3.取出し装置制御ロジツク20214(第202図) 以下の記述は、FU10120の構造および作用の詳細な説明
を提供する。FU10120の全体的な作用について最初に説
明し、FU10120の構造の説明がこれに続き、最後にFU101
20の作用の詳細な説明が続く。
前述の如く、FUCTL20214はユーザのプロセスの手順の実
行の際JP10114の作用を支配する。JUCTL20214により実
施される機能の内第1のものは、前に述べたCS10110の
名前空間、UIDおよびAONに基づくアドレス指定システム
の保守および操作であり、第2のものは前述の如くユー
ザのプロセスの実行においてJP10114の作用を制御する
ためFU10120とEU10122に対するマイクロ命令の対応する
シーケンスを与えるユーザのプロセスのSOPの解釈であ
り、第3にCS10110の内部機構、例えばCS10110のスタツ
ク機構の作用の制御である。
以下において更に詳細に説明するように、FUCTL20214
は、MEM10112からのユーザのプロセスのS命令(SIN)
の読出しのためAONおよびオフセット・フイールドを構
成する論理アドレスのシーケンスを生成する事前取出し
装置(PREF)20260を含む。前述の如く、各SINは1つの
S命令(SOP)と1つ以上の名前からなり、1つ以上の3
2ビツト・ワードを占有することができる。SINは単一の
32ビツト・ワードのシーケンスとしてMEM10112から読出
され、その結果PREF20260はSINに対するMEM10112の読出
し要求における長さフイールドを指定する必要はない。
SINはMEM10112からMODバス10144を介して読出され、命
令バツフア(INSTB)20262において捕捉され記憶され
る。オペランド分析装置(パーサ)20264はMEM10112か
らMODバス10144を介して読出され、命令バツフア(INST
B)20262命令において捕捉され記憶される。パーサ2026
4はINSTB20262からSOPおよびオペランド名前を抽出し、
即ちこれを分析する。パーサ20264は、オペランド名をN
C10226に対して与え、SOPをFUインタプリタ・タスク指
名テーブル(FUSDT)11010に対して、また命令コード・
レジスタ(OPCODEREG)20268を介してEUタスク指令テー
ブル(EUSDTF)20266に対して与える。INSTB20262とパ
ーサ20264の作用は、現時プログラム・カウンタ(CPC)
20270、初期プログラム・カウンタ(IPC)20272および
実行プログラム・カウンタ(EPC)20274により制御され
る。
前述の如く、FUSDT11010はOPCODEREG20268から受取つた
各SOP毎にFUSITT11012に対して対応するSインタプリタ
・タスク指名(SD)ポインタまたはアドレスを与えて、
特定のMEM10112においてJP10114の操作を指名するマイ
クロ命令の対応するシーケンスを選択する。前述の如
く、FUSITT11012はまた、CS10111の内部機構、例えばプ
ロセスのスワツピングに介在させられるRCWS10358の如
き機構の作用を制御し指令するためのマイクロ命令のシ
ーケンスを含む。長さバス20226はEU10122に関する同様
な機構を実施し、EU10122に駐在するEUSインタプリンタ
・テーブル(EUSITT)に対してSDポインタを与える。
マイクロプログラム・カウンタ(mPC)20726は、FUSITT
11012に対して順次アドレスを提供して、数連のマイク
ロ命令の個々のマイクロ命令を選択する。分岐兼ケース
・ロジツク(BRCASE)20278はマイクロ命令の分岐およ
びケースに対するマイクロ命令のシーケンスを説明する
ためアドレスをFUSITT11012に対して与える。循環カウ
ンタ(REPCTR)20280およびページ番号レジスタ(PNRE
G)20282は、FUSITT11012のロード操作中FUSTT11012に
対してアドレスを提供する。
前述の如く、FUSITT11012はMEM10112からの選択された
Sインタプリタ(SIN)でロードされる書込み可能マイ
クロ命令制御ストアである。
FUSITT11012のアドレスの場合もまたNC10226からの実象
ロジツク(EVENT)20284およびJAM入力によつて与えら
れる。更に以下において説明するように、EVENT20284
は、CS10110の内部機構の作用と主として関連するFUCTL
20214の回路の一部である。NC10226からの入力JAMは、C
S10110の名前空間アドレス指定機構に対する、特にNC10
226におけるFUCTL20214のある制御機能を開始する。FUS
ITT11012に対する前述のアドレス入力間の選択はSイン
タプリタ・テーブルの次のアドレス・ゼネレータ・ロジ
ツク(SITTNAG)20286によつて制御される。
FUCTL20214の回路の他の部分はCS10110の内部機構の作
用と関連させられている。例えば、FUCTL20214は、CS10
110のスタツク機構に関して前に述べた戻り制御ワード
・スタツク(RCWS)10358を含む。レジスタ・アドレス
・ゼネレータ(RAG)20288はGRF10354およびRCWS10358
のアドレス指定のためのポインタを提供し、マイクロス
タツク・ポインタ・レジスタ(MISPR)10356を含む。
前述の如く、MISPR10356の機構はマイクロスタツク(MI
S)10368のアドレス指定のためのポインタを提供する。
以下において更に述べるように、10368のその時の、前
のおよび下底のフレームを指示する実際のMIS10368のポ
インタはマイクロ制御ワード・レジスタ1(MCW1)2029
0に駐在する。MCW120290およびマイクロ制御ワード零レ
ジスタ(MCWO)20292は共に、その時FU10120により実行
中のマイクロ命令シーケンスのその時の実行環境を示す
ある情報を保有する。この実行情報は、これらのマイク
ロ命令シーケンスの実行を補助する際に使用される。状
態レジスタ(STATE)20294は、FU10120の作用状態に関
するある情報を捕捉しこれを記憶する。以下において更
に説明するように、状態ベクトルと呼ばれる情報はFU10
120の作用を可能にしかつこれを指令するために使用さ
れる。
タイマー(TIMER)20296は、FU10120による対処を必要
とする事象の発生以来の経過時間を監視する。もしこれ
ら事象に対する待機時間がある制限を越える場合は、TI
MER20296はこれら制限を越えたことを表示し、その結果
これら事象のサービスが開始可能となる。
最後に、取出し装置対E装置間のインターフエース・ロ
ジツク(FUEUINT)20298はFU10120とEU10122間のインタ
ーフエースのFU10120の部分を構成している。FUEUINT20
298は、FU10120とEU10122の作用が連係される主経路で
ある。
FU10120の全体的な作用について延べたが次に第202図の
助けを借りてFU10120の構造について説明し、この構造
の説明の後にはFU10120の詳細な説明が続くが、ここでF
U10120のいくつかの部分の更に詳細な図を説明の明瞭化
の必要に応じて挿入することにする。
a.a.取出し装置制御ロジツク(FUCTL)20214の全体的構
造 再び第202図について述べれば、前述の如く第202図はFU
CTL20214の部分ブロツク図を含む。前の説明と同じ順序
に従つて、PREF20260はAONバス20230と接続された28ビ
ツトの両方向ポートと、OFFSETバス20228からの32ビツ
トの両方向ポートとを有する。PREF20260の接続入力はI
NSTB20262の制御出力と接続される。
INSTB20262の32ビツトデータ入力(DI)はMODバス10144
と接続される。INSTB20262の16ビツト出力(DO)はOPCO
DERRG20268の16ビツトの両方向入力および16ビツトの名
前バス20224と接続される。OPCODEREG20268の入力は8
ビツトのSINTと3ビツトのダイアレクト選択からなる。
前述の如く、名前バス20224は名前トラツプ(NT)20254
の16ビツトの両方向ポートと接続され、またNC10226の
アドレス入力ADRおよびOFFP20228の入出力側と接続され
る。INSTB20262とパーサ20264の制御入力はCPC20270の
制御出力と接続される。
CPC20270の32ビツト入力はJPDバス10142と接続され、CP
C20270の32ビツト出力はIPC20272の32ビツト入力と接続
される。IPC20272の32ビツト出力はEPC20274とJPDバス1
0142の32ビツトの入力と接続される。EPC20274の32ビツ
ト出力は同様にJPDバス10142と接続される。
OPCODEREG20268の11ビツトの出力はFUSDT11010とEUSDT2
0266の11ビツト・アドレスと接続される。FUSDT11010と
EUSDT2066に対するこれら11ビツトのアドレス入力はそ
れぞれ、2ビツトのダイアレクト選択コード8ビツトの
SINTコードからなる。EUSDT20266の12ビツトのSDT出力
は、EU10122の次の説明において述べるように、EU10122
におけるマイクロ命令制御ストアの入力側と接続され
る。以下において更に述べるように、FUSDT11010はアド
レス(ADR)バス20298と接続された2つの出力を有す
る。FUSDT11010の第1の出力は、以下において更に述べ
るように、総称SINTと対応する6ビツトのSDTポインタ
即ちアドレスである。FUSDT11010の第2の出力は、これ
についても以下において更に説明するようにアルゴリズ
ム・マイクロ命令シーケンスのための15ビツトのSDTポ
インタ即ちアドレスである。
RCWS10358については、RCWS10358はIPDバス10142と接続
された第1の両方向ポートを有する。RCWS10358の第2
と第3と第4の両方向ポートはそれぞれ、MCW120290第
1の両方向ポートEVENT20284およびmPC20276の両方向ポ
ートと接続される。RCWS10358の出力はADRバス20298と
接続される。
mPC20276の入力はADRバス20298と接続され、mPC20276の
第1と第2の出力はそれぞれ、BRCASE20278の入力とADR
バス20298とに接続される。BRCASE20278の出力はADRバ
ス20298と接続される。
前述の如く、EVENT20284の第1の両方向ポートはRCWS10
358と接続される。EVENT20284の第2の両方向ポートはM
CWS20292と接続される。EVENT20284の出力はADRバス202
98と接続される。
REPCTR20280とPNREG20282の入力はJPDバス10142と接続
される。REPCTR20280とPNREG20282の出力はADRバス2029
8と接続される。
ADRバス20298、およびFUSITT11012の第1の出力からの
入力はSITTNAG20286の入力側と接続される。SITTNAG202
86の出力は、制御ストア・アドレス(CSADR)バス20299
を介して、FUSITT11012のアドレス入力側と接続され
る。FUSITT11012のデータ入力はJPDバス10142と接続さ
れる。FUSITT11012の接続出力はJP10114のほとんど全て
の要素と接続されており、このため説明を明瞭にするた
め図面の物理的な接続によつては詳細には示さないが、
以下の記述において説明する。
前述の如く、MCWO20292およびMCW120290は、それぞれEV
ENT20284の両方向ポートおよびRCWS10358の第2の両方
向ポートと接続された両方向ポートを有する。MCWO2029
2とMCWと120290の出力はJPDバス10142と接続される。MC
WO20292とMCW120290の他の入力は、以下において更に説
明するようにJP10114の他のいくつかの要素と接続さ
れ、説明を明瞭にするためここでは詳細には示さないが
以下において説明する。STATE20294は同様に、JP1011
4、特にFU10120の他の要素に関する多数の入出力を有す
る。STATE20294の入出力はここでは説明を明瞭にするた
め示されないが、以下において詳細に説明される。
RAG20288は、JPDバス10142と接続された入力と、例えば
MCW120290と接続された他の入力を有する。MISPR10356
を含むRAG20288は、例えばRCWS10358とGRF10354に対す
るアドレス入力として出力を提供する。再び、説明を明
瞭にするためにRAG20288の入出力は第202図において詳
細に示さないが、以下において更に説明する。
TIMER20296は、EVENT20284およびFUSITT11012から入力
を受取り、EVENT20284に対して出力を与える。説明を明
瞭にするため、これらの表示は第202図において詳構に
は示さないが、以下において更に説明される。
FUINT20298はFUSITT11012およびEU10122から制御入力を
受取る。FUINT20298はFUCTL20214のEU10122および他の
要素に対して出力を与える。説明を明瞭にするため、FU
INT20298に関する接続は第202図には詳細には示さない
が、以下において更に説明する。
FUCTL20214の全体的な作用および構造について説明した
が、FUCTL20214の作用について次に説明する。以下の説
明においては、当技術の通常の技術を有する者のため
に、必要に応じてFUCTL20214の構造および作用を開示す
るため、そのある部分の別の図を使用する。SINの取出
しおよび解釈に関するFUCTL20214の作用、即ちSOPおよ
びオペランド名について最初に説明し、CS10110の内部
機構に関するFUCTL20214の作用の説明がこれに続く。
b.b.取出し装置の制御ロジツク(FUCTL)20214の作用 最初に、SOPおよび名前のシラブルに応答するJP10114の
制御と直接関連するFUCTL20214の諸要素について述べれ
ば、これらの要素は、(1)PREF20260、(2)INSTB20
262、(3)パーサ20264、(4)CPC20270、IPC20272お
よびEPC20274、(5)OPCODEREG20268、(6)FUSDT110
10およびEUSDT20266、(7)mPC20276、(8)BRCASE20
278、(9)REPCTR20280およびPNREG20282、(10)RCWS
10358の一部、(11)SITTNAG20286、(12)FUSITT11012
および(13)NT20254が含まれる。これらのFUCTL20214
の要素については以上の順序で以下に説明する。
a.a.a.事前取出し装置(PREF)20260、命令バツフア(I
NSTB)20262、パーサ20264、命令コードレジスタ(OPCO
DEREG)20268、CPC20270、IPC20272およびEPC20274(第
241図) 前述の如く、PREF20260はMEM10112に対して一連のアド
レスを生成して、MEM10112からFUCTL20214に対する、特
にINSTB20262に対するユーザ・プログラムのSINを読出
す。PREF20260のMEM10112から1つの32ビツトのワード
の転送要求を読出す。各SINは1つのSOPと1つ以上の名
前シラブルからなる。各SOPは例えば8ビツトの情報か
らなるが、各名前シラブルは例えば8、12、または16ビ
ツトのデータからなる。一般に、また以下のSTATE20294
の説明において更に詳細に説明するように、PREF20260
は110ナノ秒の交番システムのクロツク・サイクルに基
づくMEM10112に対するアクセスを行なう。MEM10112に対
するPREF20260のアクセスは、INSTB20262がMEM10112か
ら読出されるSINを受取る用意があることを示すINSTB20
262を条件とする。特に、INSTB20262はPREF20260に対す
る制御出力のQuiry事前取出し(QPF)を生成して、更に
以下において説明するように、INSTB20262がMEM10112か
ら読出されたSINを受取る用意がある時、PREF20260がME
M10112に対する要求を提供することを許容する。
PREF20260は、例えばSN74S163からなるカウンタ・レジ
スタである。
PREF20260の両方向の入出力はAONバス20230およびOFFP2
0228と接続される。PREF20260が唯1つの32ビツト・ワ
ードしか読出さない時、PREF20260は、SIN読出し要求の
一部として長さフイールドを指定することは要求され
ず、即ちAONおよびオフセツト・フイールドは1つの32
ビツト・ワードの規定のためには十分である。MEM10112
からの一連のSINの読出しの開始時においては、この一
連のSINの第1の32ビツト・ワードのアドレス(AONおよ
びオフセツト・フイールド)はDESP20210によりMEM1011
2に対して与えられ、同時にAONバス20230およびOFFSET
バス20228からPREF20260に対してロードされる。その
後、SINのシーケンスの連続する各32ビツト・ワードがM
EM10112から読出される時、PREF20260に駐在するアドレ
スは前記SINのシーケンスの連続する32ビツト・ワード
を規定するように増進される。連続する単一のワード・
アドレスは、あるシーケンスの最初のワードの後の全て
のワードに対してPREF20260からMEM10112に与えられ
る。
前述の如く、INSTB20262はMEM10112からMODバス10144を
介してSINを受取り、またCPC20270の制御下で作用する
パーサ20264により、名前バス20224に対して名前シラブ
ルを、またOPCODEREG20268に対してSINを与える。INSTB
20262はPREF20260と共に与えられて、SINの実行速度を
増加する。
第241図によれば、INSTB20262と、パーサ20264と、CPC2
0270と、IPC20272と、EPC20274の更に詳細なブロツク図
が示される。INSTB20262は、MODバス10144からの並列の
32ビツトの入力を有する2つの32ビツト・レジスタを構
成するものとして示される。INSTB20262はまた、命令バ
ツフア書込み制御装置(INSTBWC)24110からのINSTB202
62の各32ビツト・レジスタに対して1つずつの2つの書
込みクロツク(WC)入力を受取る。INSTB20262の出力
は、BSO乃至BS7で示される8つの8ビツト基本シラブル
(BS)として構成される。BS0、BS2、BS4およびBS6はIN
STB20262の8ビツトの基本シラブルの偶数(BSE)を構
成するようにORされるが、BS0、BS3、BS5およびBS7は同
様にINSTB20262の基本シラブル、奇数(BSO)を構成す
るようにORされる。BSOおよびBSEはパーサ20264の入力
として与えられる。
パーサ20264は、CPC20270と関連するその時のシラブル
・サイズ・レジスタ(CSSR)24112から第1の制御入力
を受取る。パーサ20264の第2の制御入力は、これもま
たCPC20270と関連する命令バツフア・シラブル復号レジ
スタ(ISBDECR)24114から与えられる。パーサ20264は
名前バス20224およびOPCODERDG20268の入力側に対して
1つの8ビツトの出力を与える。
INSTBWC24110について述べるならば、INSTBWC24110は以
下において更に述べるように、JP10114からINSTB20262
に対するSINの書込みに関する制御SINを与える。INSTBW
C24110もまた、PREF20260の作用に関する制御SINを与え
る。INSTB20262に対するWC出力に加えて、INSTBWC24110
は制御出力QPFをPREF20260に対して与え、制御出力命令
バツフア・ハング(IBHUNG)をEVENT20284に対し、また
制御SIN命令バツフア待機(IBWAIT)をSTATE20294に対
して与える。INSTBWC24110はまた、20278からの制御入
力BRANCHを、TIMER20296からエラー入力を受取る。
CPC20270と、IPC20272と、EPC20274については、IPC202
72およびEPC20274は第202図における如く第241図に示さ
れる。更に、FUCTL20214の回路はCPC20270と関連する如
くに示される。CPC20270は、JPDバス10142のビツト1乃
至25からビツト1乃至25(CPC(1〜25))を受取る29
ビツトのレジスタである。CPC20270ビツト0(CPC0)は
CPC0、CPC0選択(CPCOS)24116から与えられる。CPCOS2
4116の入力は、CPC20270からのビツト1出力とJPDバス1
0142からのビツト0である。CPC20270のビツト26、27お
よび28(CPC(26〜28))はCPCマルチプレクサ(CPCMU
X)24118から与えられる。CPCMUX24118はまたISBDECR24
114に対する入力を与える。CPCMUX24118の入力は、JPD
バス10142からのビツト25、26および28、およびCPC演算
論理装置(CPCALU)24120の3ビツトの出力である。CPC
ALU24120の第1の入力は、CPC20270の出力ビツト26、27
および28と接続される。CPCALU24120の第2の入力は、C
SSR24112と接続されている。CSSR24112の入力はJPDバス
10142と接続される。
前述の如く、INSTB20262は64ビツト巾のレジスタとして
構成されている。INSTB20262は、命令バツフア・ワード
0(IB0)および命令バツフア・ワード1(IB1)と呼ば
れる2つの32ビツト・ワードとして構成され、2ワード
の先入れ先出しバツフア・メモリーとして作用する。PR
EF20260は、これによるメモリーの照合毎にIB0またはIB
1の1つをロードする。PREF20260はINSTB20262をロード
し、またINSTB20262はMODバス10144からのみロードが可
能である。別個のクロツク、即ちそれぞれ命令バツフア
書込みクロツク(IBWC0)および命令バツフア書込みク
ロツク1(EBWC1)は、それぞれIBW0およびIBW1をIBSTB
20262にロードするためINSTBWC24110から与えられる。I
BWC0およびIBWC1は各々ゲートされた110ナノ秒クロツク
である。IBW0またはIBW1ha,それぞれIBWC0またはIBWC1
がINSTBWC24110により使用可能状態にさせられる時、IN
STB20262に対して書込まれる。IBWC0およびIBWC1は、IN
STB20262に対するデータが前述の如くインターフエース
制御信号CAVIを保有することによつて使用可能であるこ
とをMEM10112が表示する時にのみ使用可能状態となる。
INSTBWC24110は主として、SINのINSTB20262に対する書
込みに関してFU10120の制御と関連している。前述の如
く、INSTBWC24110はIBWC0と、IBWC1をIBSTB20262に対し
て与える。IBWC0およびIBWC1は、MEM10112からのINSTBW
C24110の入力DAVIによって使用可能状態にさせられる。
IBWC0およびIBWC1間の選択は、CPC20270からのINSTBWC2
4110の入力によつて制御される。特に、また以下におい
て更に述べるように、CPC20270の29ビツト・ワードのビ
ツト26(CPC26)はIBW0またはIBW1のどちらがINSTB2026
2に対して書込まれるかについて表示する。
IBW0およびIBW1のINSTB20262に対する書込みの制御に加
えて、INSTBWC24110はFU10120の各要素に対して制御信
号を与えてMEM10112からINSTB20262に対するSINの読込
みを制御する。この点に関して、INSTBWC24110はINSTB2
0262におけるSINワードの状態に関するある条件を検出
し、INSTB20262が略々常に少なくとも1つの妥当なSOP
または名前シラブルを含むように、今説明する対応した
制御信号をFU10120の他の要素に対して与える。第1
に、もしINSTB20262が充填されていなければ、即ちIBW0
またはIBW1のいずれか一方またはその両者が無効であれ
ば、例えばIBW0がINSTB20262から読出されて実行される
ため、INSTBWC24110はこの状態を検出してINSTB20262に
対して制御信号QPFを与えてMEM10112からの読出しを開
始する。その時INSTBWC24110はINSTB20262のIBW0または
IBW1のいずれかの部分がPREF20260の要求に応じてMEM10
112から読出されたワードを受取ることを可能にする。
前述の如く、この作用は、INSTBWC24110が妥当フラツグ
を生成することによりIBW0またはIBW1の一方が無効であ
ることを検出してこれを表示する時に開始される。この
場合INSTB20262からパーサ20264により読出しが行なわ
れる時、IBW0またはIBW1は無効として表示される。以下
において更に説明するようにIBW0およびIBW1に対するIN
STBWC24110の妥当性フラツグは、CPC20270からのビツト
26乃至28(CPC26〜28)からなるINSTBWC24110の制御入
力、およびCSSR24112からのその時のシラブル・サイズ
即ち値フラツグ(K)により生成される。第2に、INST
B20262が空の時、即ち今述べたようにIBW0とIBW1の双方
が無効である時を、あるいは16ビツトの名前シラブルの
半部のみがINSTB20262に存在する時をINSTBWC24110が検
出する。いずれかの状態に応じて、INSTBWC24110はSTAT
E20294に対して信号IBWAITを生成する。更に以下に述べ
るように、信号IBWAITはINSTB20262を照合するマイクロ
命令の実行を中断する結果となる。今説明する他のある
状態が生じなければ、前述の如くMEM10112に対するPREF
20260の要求は既に開始されてている。第3に、INSTBWC
24110は、INSTB20262が空でありINSTB20262が停止状態
にある時即ちMEM10112に対して要求を生じることができ
ない時を検出することになり、その時のマイクロ命令は
INSTB20262からのシラブルの分析を試みつつある。この
場合、INSTBWC24110はEVENT20284に対する制御信号命令
バツフア停止(IBHUNG)を生成する。以下において更に
説明するように、IBHUNGはINSTB20262に対するワードの
流れを復元するマイクロ命令のシーケンスの開始を惹起
する。第4にINSTBWC24110は、SOPに応答してFUSITT110
12により与えられるマイクロ命令シーケンスにおける分
岐が生じる時をFUSITT11012から与えられるマイクロ命
令制御信号によつて検出する。この場合、IBW0およびIB
W1は無効としてフラツグされる。INSTBWC24110はこの
時、分岐が生じる時には未だ受取つていないが前に与え
られたPREF20260の要求に応答してMEM10112から読出さ
れつつあるSINワードを無視する。このため、PREF20260
が無効のSINワードを受取ることを阻止し、この時PREF2
0260とINSTB20262は動作を継続してこの分岐の妥当なSI
Nワヴドを要求してこれを受取る。
前述の如く、CPC20270およびCPC20270の関連する回路の
制御下において作用するパーサ20264は、それぞれINSTB
I0262から名前バス20224およびOPCODEREG20268に対して
名前シラブル論理SOPを読出す。パーサ20264は制御ロジ
ツクと関連すると共にマルチプレクサとして作用する。
前述の如く、INSTB20262は8つの8ビツト・ワード、即
ちBS0乃至BS7として内部に構成される。INW0はBS0乃至B
S3からなり、IBW1はBS4乃至BS7からなる。各SOPは8ビ
ツトのデータからなり、このため1つの基体シラブルか
らなるが、各名前シラブルは8、12または16ビツトのデ
ータからなり、このため1つまたは2つの基本シラブル
からなる。名前シラブル・サイズは、前述の如く、CSSR
24112において記憶されたその時のシラブル・サイズ値
Kにより示される。
BS0およびBS4はMODバス10114のビツト零からビツト11IN
STB20262にロードされるが、BS2とBS6はMODバス10144の
ビツト16乃至23に対してロードされる。BS1およびBS5は
MODバス10144のビツト8乃至15からロードされるが、BS
3およびBS7はMODバス10144のバツフア24乃至31からロー
ドされる。奇数の基本シラブル出力BS1、BS3、BS5およ
びBS7は、INSTB20262の8ビツトの基本シラブル、奇数
出力BS0を構成するようにORされる。INSTB20262の偶数
を付した基本シラブル出力BS0、BS2、BS4およびBS6は、
同様に8ビツトの基本シラブル、偶数出力BSEを構成す
るようにORされる。如何なる時も、INSTB20262の1つの
奇数の基本シラブル出力および1つの偶数の基本シラブ
ル出力が、ISBDECR24114によりINSTB20262に対して与え
られる命令バツフア読出し可能(IBORE)使用可能およ
び選択の信号によりパーサ20264に対する入力として選
択される。IBSDECR24114は復号回路を含む。IBSDECR241
14の復号ロジツクに対する入力は、CPCMUX24118から与
えられる3ビツト(RCPC(26〜28))からなる。第241
図に示すように、このCPC(26〜28)はJPDバス10142の
ビツト25乃至28、またはCPCALU24120の出力側から与え
られる。1つの入力CPCALU24120はCPC20270からのCPC
(26〜28)の出力から与えられる。CPC20270とCPC20270
の関連する回路の作用については以下において更に説明
する。RCPC(26〜28)はIBSDECR24114により復号され
て、INSTB20262に対するIBORE(0〜7)を生成する。R
CPC26およびRCPC27はパーサ20264に対する奇数の基本シ
ラブル入力としてINSTB20262の4つの奇数の基本シラブ
ル出力(即ち、BS1、BS3、BS5またはBS7)の内の1つを
選択するように復号される。RCPC28は、パーサ20264に
対する偶数の基本シラブル入力としてのINSTB20262の偶
数の基本シラブル出力の前部または後部のいずれかを選
択する。IBSDECR24114により生成されたIBORE(0〜
7)の8つの復号されたビツトはIBSDECR24114の8ビツ
トレジスタに対してロードされ、その後IBORE(0〜
7)としてINSTB20262に対して与えられる。
パーサ20264は、名前バス20224あるいはOPCODEREG20268
に対するパーサ20264の出力としてBS0またはBSE、また
はBS0およびBSEを選択する。SOP即ち8ビツトの名前シ
ラブルの場合には、BSOまたはBSEがパーサ20264の出力
として選択されることになる。12または16ビツトの名前
シラブルの場合には、BS0と分岐制御エラーがパーサ202
64の出力として選択することができる。パーサ20264の
作用はFUSITT11012からのマイクロ命令制御出力によつ
て制御される。
プログラム・カウンタIPC20272、EPC20274およびCPC202
70は、SINの取出しおよび分析の制御と関連させられて
いる。一般に、IPC20272とEPC20274とCPC20270はFUSITT
11012からのマイクロ命令の制御下で作用する。CPC2027
0はその時のプログラム・カウンタであり、IPC20272に
おけるその時のシラブルを支持する28ビツトを含む。CP
C20270のビツト29乃至31は与えられず、そのためCPC202
70出力のビツト29乃至31は零となり、これはSOPに対す
るバイトの境界を保証する。これによりCPC20270の内容
もまたその時の手順目的に対するバイト整合オフセツト
であるポインタとなる。初期プログラム・カウンタ(IP
C)20272はCPC20270の出力と接続されたバツフア・レジ
スタで、タイミングの重ね合せのために設けられる。IP
C20272は、前述の如く29ビツトの巾であるCPC20270から
しかロードすることができず、これはIPC20272において
零に強制されるビツト29、30および31は保有しない。IP
C20272は、無条件の分岐における開始値としてJPDバス1
0142に対して読込むことができる。
EPC20274は、実行中のその時のSOPに対するポインタを
通常含む32ビツトのレジスタである。SOPの分岐の発生
と同時に、EPC20274におけるポインタはこれから分岐が
実行されるSOPを指示する。EPC20744に駐在するポイン
タは、その時の手順目的に対するオフセツトである。EP
C20274はIPC20272からしかロードすることができず、ま
たJPDバス10142に対して読込むことができる。
再びCPC20270について、前述の如く、CPC20270はその時
のシラブル・カウンタである。CPC20270は、パーサ2026
4により分析されるべき次のSOPシラブル、即ち基本シラ
ブルに対するポインタを保有する。SOPは常にバイトの
境界にあるため、CPC20270のポインタは29ビツトの巾の
CPC(0〜28)である。CPC20270のポインタの3つの下
位ビツト、即ちCPC(29〜31)は物理的には存在せず、
常に零であるものとする。分析される次の命令シラブル
を指示するCPC20270のポインタは常にバイトの境界を指
示する。
CPC20270のビツト26乃至28、CPC(26〜28)は、前述の
如く、INSTB20262における特定の基本シラブルを表示す
る。CPC20270のビツト0〜25(CPC(0〜25))は、一
連のSINの、IBW0およびIBW1としてINSTB20262に対して
読込まれる32ビツト・ワードを示す。CPC20270のポイン
タは、INSTB20262からの基本シラブルの読出しを行なう
分析操作毎に更新される。前述の如く、これらの分析操
作はFUSITT11012からのマイクロ命令制御下で実施され
る。
概念的には、CPC20270は、CPC(26〜28)の如き下位側
に帰属する3ビツトのレジスタと共に、CPC(26〜28)
を含む32ビツトのカウンタとして構成される。CPC(26
〜28)がINSTB20262の分析された基本シラブルをカウン
トしてCSSR24112に記憶されたその時の名前シラブルの
サイズKに従つて増進されねばならないため、この構成
が使用される。しかし、CPC(0〜25)は一連のSINの連
続する32ビツト・ワードをカウントし、これにより2進
数カウンタとして構成することができる。第241図に示
されるように、CPC(26〜28)はCPCMUX24118の出力から
ロードされる。CPCMUX24118の第1の入力はJPDバス1014
2のビツト29乃至31と接続される。JPDバス10142からCPC
(26〜28)に対するこの入力は、例えば初期のポンタ値
によるCPC20270のローデイングの際、CPC20270がJPDバ
ス10142からロードされることを可能にする。CPCMUX241
18の第2の入力はCPCALU24120の出力からのものであ
り、また連続する基本シラブがINSTB20262から分析され
る時CPC(26〜28)が増分される経路である。CPCALU241
20の第1の入力は、CPC20270からのCPC(26〜28)であ
る。CPCALU24120の第2の入力はCSSR24112からの二重入
力である。CSSR24112からの第1の入力は最下位ビツト
の位置において、即ちCPC(28)と対応する位置におい
て論理値1である。この入力は、単一の基本シラブルが
INSTB20262から分析された、例えば8ビツトのSOPまた
は8ビツトの名前シラブルである時に使用される。CPCA
LU24120に対するCSSR24112の第1の入力はCPC(0〜3
2)を8つずつ、即ち1つの基本シラブルがINSTB20262
から分析される毎にCPC(26〜28)に対して1つずつ増
分する。CSSR24112からのCPCALU24120に対する第2の入
力はKサイズ、即ちその時の名前シラブルのサイズであ
る。前述の如く、Kの値は8または12または16となる。
これによりCPC(26〜28)は、Kが8と等しい時1だけ
増分され、Kが12または16と等しい時は2だけ増分され
る。第241図に示すように、値KはJPDバス10142からCSS
R24112に対してロードされる。
CPC(0〜25)は、前述の如く、CPC(26〜28)の桁あふ
れ毎に増分される36ビツトのカウンタとして作用する。
CPC(0〜25)はCPCALU24120の桁送り出力により増分さ
れる。実際の構成においては、CPC20270は本質的とされ
る集積回路の数を減少するように構成されている。CPC
(0〜25)は1つのカウンタとして構成され、CPC(0
〜25)の入力はJPDバス10142のビツト1からビツト24ま
で接続されて、CPC20270のポインタの初期値のローデイ
ングを可能にする。CPC(0)およびCPC(26〜28)は4
ビツトのレジスタとして増分される。このレジスタのCP
C(26〜28)部分の作用については前に説明した。この
レジスタのCPC(0)の入力はCPCOS24116の出力と接続
されている。CPCOS24116は、JPDバス10142のビツト0と
接続された第1の入力を有するマルチプレクサである。
JPDバス10142からのこの入力は、例えば初期のポインタ
値でIPC20272をロードする時に使用される。CPCOS24116
の第2の入力はCPC(1〜25)の桁あふれ出力であり、
4ビツト・レジスタおよびCPC(1〜25)の(0)部分
が26ビツトのカウンタとして作用することを可能にす
る。
最後に、第241図に示すように、CPC20270の出力はIPC20
272に対してロードすることができる。CPC20270の初期
のポインタ値は、従つてJPDバス10142からCPC20270に対
して書込むことができ、その後IPC20272に対してコピー
することができる。
再びパーサ20264について見れば、前述の如く、パーサ2
0264はINSTB20262から名前バス20224に対する基本シラ
ブルの読出しを行ない、あるいはこれを分析する。パー
サ20264の入力は、8ビツトの奇数を付した基本シラブ
ルBS0および8ビツトの偶数の基本シラブルBSEからなる
16ビツト・ワードである。パーサ20264が8ビツトのSOP
か、8ビツトの名前シラブルか、12ビツトの名前シラブ
ルか、16ビツトの名前シラブルのいずれを分析するかに
よつて、パーサ20264は名前バス20224に対する出力とし
てBSO、BSE、またはBSOとBSEの双方のいずれかを選択す
ることができる。
もしパーサ20264が名前シラブルを分析中であり値Kが
8と等しくない、即ち12または16と等しければ、パーサ
20264はBSOとBSEの双方を名前バス20224に転送して、BS
OとBSEのどちらが最も重要であるかを判定する。BSOま
たはBSEのいずれが最も重要であるかについての判定はC
PC(28)によつてなされる。もしCPC(28)がBSOが最も
重要であることを示すならば、BSOは名前バス20224のビ
ツト0乃至7(NAME(0〜7))に対して転送され、BS
Eが名前バス20224のビツト8乃至15(NAME(8〜15))
に対して転送される。もしCPC(28)がBSEが最も重要で
あることを示すならば、BSEはNAME(0〜7)に対して
転送され、BSOはNAME(8〜15)に転送される。この操
作は、名前シラブルがSINの命令ストリームにおいて生
じる順序で名前バス20224に対して解析されることを保
証する。
もしパーサ20264がシラブル・サイズK=8の名前シラ
ブルを分析中であれば、パーサ20264はNAME(0〜7)
に対する出力として、CPC(28)により示されるようにB
SOまたはBSEのいずれかを選択する。パーサ20264は0を
NAME(8〜15)に置く。
もしパーサ20264が8ビツトのSOPを分析中であれば、パ
ーサ20264はCPC(28)により選択される如きNAME(0〜
7)としてBSOまたはBSEを選択する。パーサ20264は0
をNAME(8〜15)に置く。同時に、パーサ20264はOPCOD
EREG20268に対してOPREGEを生成して、NAME(0〜7)
のOPCODEREG20268に対する転送を可能にする。OPCODERE
G20268は、パーサ20264が名前シラブルを分析中である
時はロードされない。パーサ20264の作用を制御するFUS
ITT11012からのマイクロ命令入力はまた、パーサ20264
がSOP又は名前シラブルのどちらを分析中であるかを判
定してOPREGEの生成を制御する。
名前バス20224からのアドレス入力として名前シラブル
を受取るNC10226の作用についてはMEMINT20212に関して
前に論述した。NT20254は名前バス20224と接続されて、
パーサ20264により名前バス20224に対して分析される名
前シラブルを受取つてこれを捕捉する。NT20254の作用
についてもMEMINTに関連して前に論述した。
b.b.b.取出し装置のタスク指名テーブル11010、実行装
置のタスク指名テール20266、および命令コード・レジ
スタ20268(第242図) 前述の如く、CS10110は多重言語機械である。高水準の
ユーザ言語で書かれた各プログラムは、SOPと呼ばれる
S言語命令を含む対応するS言語プラグラムにコンパイ
ルされる。CS10110は、各S言語に対するSインタプリ
ンタ(SINT)と呼ばれるマイクロコード命令の組即ちダ
イアレクトを提供する。SINTはSOPを解釈して、CS10110
の作用の詳細な制御に対するマイクロ命令の対応するシ
ーケンスを提供する。FU10120およびEU10122に対するCS
10110のSINTはそれぞれ、FUSITT11012およびEU10122の
以下の選択において述べるEU10122における対応する制
御記憶メモリーにおいて記憶される。各SINTは、各シー
ケンスがある特定のS言語のダイアレクトにおける特定
のSOPと対応するマイクロ命令の1つ以上のシーケンス
からなる。取出し装置のSインタプリンタのタスク指名
テーブル(FUSDT)11010と実行装置のSインタプリンタ
のタスク指名テーブル(EUSDT)20226とは、各S言語の
ダイアレクトに対するSインタプリンタのタスク指名プ
ログラム(SD)を含む。各SDは、ある特定のSDにおける
SDPがこのSDのダイアレクトのある特定のSOPと対応する
1組のSDポインタ(SDP)からなる。各SDPは、これに対
応するSOPの解釈のための対応する一連のマイクロ命令
の開始のFUSITT11012の場所またはEUSITTを指示するア
ドレスである。更に以下において説明するように、OPCO
DEREG20268において受取られてこれに記憶されるSOP
は、対応するSDPを詮なくするためFUSDT11010およびEUS
DT20226に対してアドレスを生成するために使用され
る。次にこれらのSDPはADR20202を経てFUSITT11012に対
して、あるいはEUDISバス20206を経てEUSITTに対して与
えられ、FUSITT11012およびEUSITTからのマイクロ命令
の対応するシーケンスを選択する。
第242図によればOPCODEREG20268およびEUSDT20226の更
に詳細なブロツク図が示されている。同図に示すよう
に、OPCODEREG20268は、命令コード・ラツチ(LOPCOD
E)24210と、ダイアレクト・レジスタ(RDIAL)24212
と、ロード・アドレス・レジスタ(LADDR)24214と、取
出し装置タスク指名エンコーダ(FUDISENC)24216とか
らなる。LOPCODE24010は名前バス20224と接続されてINS
TB20262から分析されたSOPを受取る。RDIAL24212のロー
ド入力はJPDバス10142のビツト28乃至31と接続されてい
る。LOPCODE24210、RDIAL24212およびLADDR24214の出力
は、FUDISENC24216の入力と接続される。FUDISENC24216
の出力は、FUSDT11010とFUSDT20226のアドレス入力に対
して接続される。
FUSDT11010は、取出し装置タスク指名フアイル(FUDIS
F)24218とアルゴリズム・フアイル(AF)24220からな
る。FUDISF24218およびAF24220のアドレス・入力は、前
述の如く、FUDISENC24216のアドレス出力と接続され
る。FUDISF24218およびAF24220のデータ・ロード入力
は、それぞれJPDバス10142のビツト10乃至15ビツト16乃
至31と接続される。FUDISF24218およびAF24220のSDP出
力はADR20202と接続される。
EUSDTF20266は、実行装置タスク指名フアイル(EUDIS
F)24222と実行装置タスク指名セレクタ(EUDISS)2422
4からなる。EUDISF24222のアドレス入力は、前述の如
く、FUDISENC24216の出力と接続される。EUDISF24222の
データ・ロード入力はJPDバス10142のビツト20乃至31と
接続される。EUDISS24224の入力は、EUDISF24222のSDP
出力、JPDバス10142のビツト20乃至31およびFUSITT1101
2のマイクロコード・リテラル(mLIT)出力と接続され
る。EUDISS24224のSDP出力はEUDISバス20206と接続され
る。
前述の如く、OPCODEREG20268は、OPCODEREG20268に対し
てロードされたSOPからFUSDT11010およびEUSDTF20266に
対して生成されたアドレスを提供してFUSITT11012およ
びEUSITTに対するアドレス入力として与えられるべきSD
Pを選択する。LOPCODE24210は、前述の如くINSTB20262
から分析された8ビツトのSOPを受取りこれを記憶す
る。OPCODEREG20268もまた、アドレスをFUSDT11010とEU
SDTF20266に与えて、FUSDT11010とEUSDF20266をFUSDT11
010によりその時使用中のS言語ダイアレクトでロード
する。LOPCODE24210とRDIAL24212は、前述の如く、SOP
のSDPへの翻訳中にアドレスをFUSDT11010とEUSDTF20266
に対して与え、またLADDR24214はFUSDT11010とEUSDTF20
266がSDでロードされつつある時アドレスを与える。
最初にLADDR24214について述べると、LADDR24214は8ビ
ツトのカウンタを有する。FUSDT11010とEUSDTF20266がS
Dで、即ちその時FUSDT11010により使用されつつあるS
言語ダイアレクトのグループでロードされつつある時に
のみ、アドレスがLADDR24214からFUSDT11010とEUSDTF20
266に対して与えられる。この操作中、LADDR24214の出
力は、FUSITT11012からのマイクロコード制御信号(説
明を明瞭にするために図示せず)によりFUSDT11010およ
びEUSDTF20266に対して使用可能となる。アドレスの受
取りのためのFUDISF24218、AF24220およびEUDISF24222
間の選択は、FUSITT11012から与えられたマイクロ命令
使用可能信号(これもまた説明を明瞭にするため示さな
い)によつて同様に与えられる。これらのFUSDT11010お
よびEUSDTF20266のアドレス使用可能入力は如何なる時
にもアドレス入力の受取りのためFUDISF24218、AF24220
またはEUDISF24222のどれか、あるいは全てを選択する
ことができる。FUDISF24218、AF24220およびEUDISF2422
2に対してロードされるべきSDPは、それぞれ、JDPバス1
0142のビツト10乃至15(JPD(10〜15))、ビツト16〜3
1(JPD(16〜31))およびビツト20乃至31(JPD(20〜3
1))から与えられる。LADDR24214のアドレス内容は、
連続するSDPがFUSDT11010およびEUSDTF20266に対してロ
ードされると時1つずつ連続的に増進される。LADDR242
14の増分は、再びFUSITT11012からのマイクロ命令制御
入力によつて制御される。
SOPの翻訳中のFUSDT11010およびEUSDTF20266に対するア
ドレス入力は、LOPCODE24210およびRDIAL24212から与え
られる。LOPCODE24210は前述の如く、パーサ20264からS
OPを受取るため名前バス20224と接続されたデータ入力
を有するレジスタ・カウンタである。第1のモードにお
いては、LOPCODE24210は、パーサ20264の出力から一時
に1つのSOPでロードされたラツチとして作用し得る。
第2のモードにおいては、LOPCODE24210は、名前バス20
224(NAME(8〜15))の下位の8ビツトから連続的な
8ビツト入力を受取るクロツク・レジスタとして作用す
る。LOPCODE24210のローデイングは、FUSITT11012から
のマイクロ命令制御出力(説明を明瞭にするため示さな
い)によつて制御される。
以下において更に説明するように、LOPCODE24210に記憶
された8ビツトのSOPはRDIAL24212に出力と並列に置か
れて、特定のSOPと対応するSDPを説明するためFUSDT110
10とEUSDTF20266に対してアドレスを与える。LOPCODE24
210から与えられたこれらアドレスの部分、即ち8ビツ
トのSOPは、特定のSD内の特定のSDPを選択する。特定の
SDは、RDIAL24212の内容から与えられるこれらアドレス
の前記部分により選択される。
RDIAL24212は、FUSDT11010によりそく時使用されかつユ
ーザ・プログラムのSOPを実行しつつある特定のS言語
ダイアレクトを表示する4ビツトのダイアレクト・コー
ドを受取りこれを記憶する。これらの4ビツトのダイア
レクト・コードは、JPD(28〜31)としてJPDバス10142
から与えられる。4ビツトのダイアレクト・コードによ
るRDIAL24212のローデイングは、FUSITT11012から与え
られるマイクロ命令制御信号(説明を明瞭にするため示
さない)によつて制御される。
RDIAL24212における4ビツトのダイアレクト・コード
は、FUDISF24218、AF24220およびEUDISF24222における
区画を画成する。各区画は、異なるS言語ダイアレクト
に対するSDPを含み、即ち異なるSDを含む。FUDISF2421
8、AF24220およびEUDISF24222は例えば、8つの128ワー
ド区画即ち4つの256ワード区画を保有することができ
る。ダイアレクト・コードの単一のビツト、例えばビツ
ト3はFUDISF24218、AF24220およびEUDISF24222が4つ
あるいは8つの区画のどれを保有するかを規定する。も
しFUSDT11010およびEUSDTF20266が4つの区画を保有す
るならばFUSDT11010およびEUSDTF20266に対する2つの
最上位ビツトがダイアレクト・コード・ビツト1から与
えられ、どの区画がアドレス指定されるかを判定する。
アドレスの下位の8はLOPCODE24210から与えられ、選択
されたある区画におけるどのワードがアドレス指定され
るかを判定する。もしFUSDT11010およびEUSDTF20266が
8つの区画を有するならば、FUSDT11010およびEUSDTF20
266に対するアドレス3つの最上位ビツトはある特定の
区画を選択するためダイアレクト・コードのビツト0か
ら2に対して与えられ、アドレスの下位の7ビツトは選
択された区画におけるある特定のワードを選択するため
LOPCODE24210の8ビツトの出力およびRDIAL24212の4ビ
ツトの出力はFUDISENC24216を介して一つに連結されてF
USDT11010およびEUSDTF20266に対する10ビツトのアドレ
ス入力を提供する。FUDISENC24216は符号化回路であ
り、これについてはFUDISF24218に関して以下において
更に説明することにする。前述の如く、RDIAL24212およ
びLOPCODE24210からアドレス入力を受取るFUDISF2421
8、AF24220およびEUDSF24222の選択は、FUSITT11012か
ら与えられるマイクロ命令使用可能制御入力(説明を明
瞭にするため示さない)によつて制御される。
FUSDT11010について述べれば、FUDISF24218とAF24220は
共にFUSITT11012に対してSDPを提供するが、これは異な
る目的のためにそうするのである。一般に、マイクロ命
令の制御操作は2つの種類に該当するものと考えること
ができる。第1に、汎用即ち性格的に一般的なものであ
つてある特定のダイアレクトあるいは多くのダイアレク
トの場合でさえその種々のSOPにより使用されあるいは
これを与える如きマイクロ命令操作が存在する。この種
のマイクロ命令操作の一例としてはオペランド値の取出
しがある。FUDISF24218はこの種のマイクロ命令操作の
ためのSDPを提供する。以下に述べるように、FUDISF242
18は、FUSITT11012の単一のマイクロ命令制御出力がINS
TB20262からLOPCODE24210に対するSOPを分析することを
可能にし、また対応するSDPをFUDISF24218から与えさせ
る高速のアクセス・メモリーである。即ち、この一般的
な種類のSOPはINSTB20262から分析することができ、ま
たシステムの1クロツク・サイクルの間に対応するSDP
がFUDISF24218から与えられる。これにより、FUDISF242
18の作用は、特に新たなSOPの実行の開始時に、JP10114
の作用の速度を向上させる。
マイクロ命令操作の第2の種類は、特定のSINTまたは特
定のSINT群に固有のものである。これらのSINT群は、完
全にある特定のダイアレクト内部に駐在し、あるいは1
つ以上のダイアレクト内に存在し得る。この種のマイク
ロ命令操作に対するSDPはAF24220によつて提供される。
更に以下において説明するように、AF24220はFUDISF242
18よりも速度が遅いが容量が大きい。一般に、AF24220
は特定のSINTに固有のマイクロ命令シーケンスのSDPを
保有する。一般に、一般的なマイクロ命令操作は特定の
SIMTに固有のこのような諸操作の前に実施され、そのた
めSDPはFUDISF24218からの要求よりも遅い時点にAF2422
0から要求される。従つて、特定のSINT操作のためのSDP
は、SOPの実行の速度を犠牲にすることなく比較的遅い
速度のAF24220から与えることができる。
再びFUDISF24218について説明すると、FUDISF24218は極
性メモリーによる1024ワードX6ビツトの高速アクセスで
ある。これに含まれる各ワードは、前述の如く、SDP、
即ちFUSITT11012におけるマイクロ命令の対応するシー
ケンスの開始に対するアドレスである。以下において更
に説明するように、FUSITT9K(8192)ワードのメモリー
である。FUDISF24218により与えられるSDPは各々前述の
如く6ビツトの巾を有し、このためFUSITT11012のアド
レス空間の制限された32ワードの領域をアドレス指定す
ることができる。FUDISF24218は、FUSITT11012からのマ
イクロ命令制御信号(説明を明瞭にするため示さない)
によつてFUSITT11012に対してSDPを提供するように使用
可能状態にされる。FUDISF24218の6ビツトのSDPは、4
つのマイクロ命令の増分、即ち4つのアドレス場所の増
分におけるFUSITT11012のアドレス空間をアドレス指定
するようにFUDISENC24219によつて符号化される。これ
により、FUDISF24218のSDPは、FUSITT11012のマイクロ
命令シーケンスから一時に4つのマイクロ命令をアドレ
ス指定する。以下において更に説明するように、mPC202
76はFUSITT11012に対する連続するマイクロ命令アドレ
スを生成して、FUSDT11010からのSDPにより選択される
最初のマイクロ命令に続くシーケンスの連続するマイク
ロ命令を選択する。FUDISF24218のSDPはこれにより4つ
のマイクロ命令ブロツクの最初のマイクロ命令を選択
し、mPC20276はこの4つのマイクロ命令シーケンスの後
続の3るのマイクロ命令を選択することになる。従つ
て、4つのマイクロ命令シーケンスは一般的SOPに応答
して与えられる各FUDISF24218毎に、直列状即ち順次実
行することができる。FUDISENC24219はFUDISF24218の6
ビツトSDPを符号化して、これらのSDPの最下位ビツトが
FUSITT11012のアドレス入力の24ビツトを占有す
る、、、等のようにこれらの4つのマイクロ命令シーケ
ンスを選択する。FUDISF24218から与えられるFUSITT110
12のアドレス即ちSDPの2つの最下位ビツトは0に強制
されるが、9番目以上のビツトはFUSITT11012における1
28アドレスのどの特定のブロツクでも規定するようにハ
ードワイアドすることができる。FUDISF24218からのFUS
ITT11012のアドレスの最上位ビツトのこのハードワイア
リングにより、FUDISF24218により選択される1組の一
般的マイクロ命令シーケンスが望み通りにFUSITT11012
のアドレス空間内に位置指定させられる。FUDISENC2421
9は1組のドライバ・ゲートからなつている。
前述の如く、ユーザ・プログラムの実行中、FUSDT11010
によつてその時使用中の一般的マイクロ命令に対するSD
PはJPDバス10142のビツト10乃至158JPD(10〜15))か
らFUDISF24218に対して書込まれる。FUDISF24218に対す
るSDPのローデイングのためのアドレスは、前述の如くL
ADDR24214から与えられる。LADDR24214はロード・アド
レスを提供するため使用可能状態に置かれ、FUDISF2421
8はFUSITT11012から与えられるマイクロ命令制御信号
(説明を明瞭にするため示さない)によつて書込まれる
ように使用可能状態に置かれる。AF24220はFUDISF24218
より大きな容量を有するが、比較的短いアクセス時間を
有する。AF24220は、1024ワードX15ビツトのメモリーで
ある。一般に、AF24220からDSPを得るためには2クロツ
ク・サイクルが必要とされる。最初のクロツク・サイク
ルの間、SOPがLOPCODE24210に対してロードされ、第2
のクロツク・サイクルの間AF24220がアドレス指定され
て対応するSDPを提供する。AF24220により提供されるSD
Pは巾が各々15ビツトであり、このためFUSITT11012のア
ドレス空間よりも大きなアドレス空間をアドレス指定す
ることができる。前述の如く、FUSITT11012がそのアド
レス空間の外側のアドレス場所を示すAF24220のSDPによ
つてアドレス指定されると、FUSITT11012は更に以下に
述べるようにマイクロ命令、「制御ストア不在」出力を
生成することになる。この事象を結果するAF24220のSDP
は、この時MEM10112に記憶されたあるマイクロ命令シー
ケンスをアドレス指定するため使用される。次にこれら
のマイクロ命令は、FUSDT11010ではなくMEM10112から実
行されることになる。この操作はあるマイクロ命令シー
ケンス、例えばほとんど使用されないマイクロ命令シー
ケンスがMEM10112に残留することを許容し、このためAF
24220とFUSITT11012のアドレス空間が更に頻繁に使用さ
れるSOPから解除するのである。
前述の如く、AF24220は、JPDバス10142(JPD(16〜3
1))のビツト16〜31からのユーザ・プログラムの実行
中にFUSDT11010によりその時使用中のSINTにおいてSDP
がロードされる。また前述の如く、AF24220に対してSDP
をロードするアドレスはLADDR24214から与えられる。FU
SITT11012から与えられるマイクロ命令制御信号(説明
を明瞭にするため示さない)によつて、LADDR24214はロ
ード・アドレスを与えるように、またAF24220はDPを受
取るように使用可能状態に置かれる。
最後にEUSDTF20266について説明すれば、SDPを3つのソ
ースからEU10122に対して与えることができる。EU10122
のSDPは、EUDISF24222からは、またJPDバス10142から、
またFUSITT11012から与えられるマイクロ命令のリテラ
ル・フイールドから与えられる。EUDISF24222のSDPは各
々12ビツトの巾であり、EUSITTに対する9ビツトのアド
レスおよび3ビツトのオペランドのフオーマツト情報か
らなる。
EUDISF24222は1024ビツトX12ビツトメモリーである。前
述の如く、SDPをEUDISF24222から読出すアドレスは、RD
IAL24212からの4ビツトのダイアレクト・コードとLOPC
ODE24210からの8ビツトのSOPを連結することによつてO
PCODEREG20268から与えられる。EUDISF24222により与え
られるSDPはEUDISS24224に対する第1の入力として与え
られる。
EUDISS24224はマルチプレクサである。前述の如く、EUD
ISS24224の第1の入力はEUDISF24222からのSDPである。
EUDISS24224の第2の12ビツト入力JPDバス10142のビツ
ト20乃至31(JPD(20〜31))から与えられる。EUDISS2
4224の第3の入力は、FUSITT10012のマイクロ命令出力
のリテラル・フイールドから与えられる12ビツトの入力
である。EUDISS20224は、実行装置のEUSITTに対するSDP
として与えられるべきEUDISバス20206上に転送されるこ
れら3入力の内の1つを選択する。EUDISS20224の入力
間の選択は、FUSITT11012から与えられるマイクロ命令
制御信号(説明を明瞭にするため示さない)によつて与
えられる。
前述の如く、EUDISF24222は、JPDバス10142のビツト20
乃至31(JPD(20〜31))からのCS10110によりその時使
用されつつあるS言語ダイアレクトに対するSDPでロー
ドされる。EUDISF24222にSDPをロードするアドレスは、
前述の如くLADDR24214から与えられる。FUSITT11012
は、LADDR24214およびLADDR24214に対して使用可能信号
(説明を明瞭にするため示さない)を与えてSDPのEUDIS
F24222に対する書込みを可能にする。
名前シラブルおよびSOPを与えるためMEM10112からSINを
取出してこれを分析するため、またFUSDT11010およびEU
SDT20266からFUSITT11012に対してSDPを与えるためSOP
を解釈するためのFUCTL20214の回路の構成およびさよう
については前に述べた。前述の如く、FUSDT11010および
EUSDT20266により与えられるSDPは、マイクロ命令のシ
ーケンスの最初のマイクロ命令を指示する初期即ち始動
アドレスである。これらの初期マイクロ命令に続くマイ
クロ命令に対するアドレスは、BRCASE20278、REPCTR202
80およびPNREG20282、EVENT20284およびSITTNAG20286を
含むFUCTL20214の次にアドレス・ゼネレータ回路によつ
て与えられる。mPC20276、BRCASE20278、REPCTR20280お
よびPNREG20282、およびSITTNAG20286は、SOPに応答す
るマイクロ命令シーケンスの実行中、主として次のアド
レスの生成と関連しておりこれについては以下に説明す
る。EVENT20284とFUCTL20214の回路の他の部分は更にCS
10110の内部機構の作用に関するマイクロ命令シーケン
スの生成と関連しており、以下の記述において説明す
る。EU10122はまた次のアドレス生成回路を含み、この
回路についてはEU10122の以下の説明において説明する
ことにする。
c.c.c.次のアドレス・ゼネレータ(NAG)24310 (第243
図)) 前述の如く、FU10120においては、SOPの解釈のためのマ
イクロ命令シーケンスの最初、即ち初期のマイクロ命令
はFUSDT11010によつて与えられる。これらのシーケンス
内のマイクロ命令の以後のアドレスは、一般に、mPC202
76およびBRCASE20278によつて与えられる。更に以下に
述べるように、mPC20276はマイクロ命令シーケンスのマ
イクロ命令を順次選択するための順次アドレス指定を行
なう。BRCASE20278は、あるマイクロ命令の分岐また
は、アイクロ命令のケース操作が要求される時、マイク
ロ命令を選択するためのアドレスを与える。REPCTR2028
0およびPNREG20282はFUSITT11012に対するマイクロ命令
シーケンスの書込み即ちローデイングのためのアドレス
を与える。FUCTL20214の回路の他の部分、例えばEVENT2
0284はマイクロ命令シーケンス選択アドレスを与え、CS
10110の内部機構の作用を制御するためのマイクロ命令
シーケンスを選択する。SITTNAG20286はこれらマイクロ
命令のアドレス・ソース間で選択を行ない、その時CS10
110により実行されるべき操作のマイクロ命令の選択に
必要とされる如きアドレスをFUSITT11012に対して与え
る。
第243図においては、10120の次のアドレス・ゼネレータ
(NAG)24310の部分ブロツク図が示されている。FUSDT1
1010の外、NAG24310はmPC20276、BRCASE20278、EVENT20
284、REPCTR20280およびPNREG20282、RCWS10358の一
部、およびSITTNAS20286を含んでいる。前述の如くEVEN
T20284は主として、CS10110内部機構の制御のためのマ
イクロ命令シーケンスの実行と関連する。EVENT20284
は、本文に示すように、NAG23410の他の部分に対するそ
の関係を示すのみである。EVENT20284については、CS10
110内部機構を制御するFUCTL20214の回路の以下の説明
において更に説明しよう。同様に、RCWS10358の作用に
ついては、一部はNAG23410の本項の説明において、また
一部はCS10110内部機構の制御についての以下の説明に
おいて記述されよう。
最初にNAG24310の構造について述べればFUSDT11010、RC
WS10358、mPC20276、BRCASE20278、REPCTR20280、PNREG
20282、EVENT20284およびSITTNAS20286の相互関係につ
いては、第202図に関して前に説明した。NAG24310の構
造については、第243図が第202図と異なる部分に関して
のみ以下に説明する。
最初にSITTNAS20286は、事象ゲード(EVNTG)24310と、
次のアドレス選択マルチプレクサ(NASMUX)24312とか
らなる如くに示されている。NASMUX24312は、NASマルチ
プレクサA(NASMUXA)24314 NASMUXB24316 NASMUXC2
4318およびNASMUXD24320からなる。NASMUXD24320に対す
るEVNTG24310およびNASMUXA24314の出力はCSADRバス202
04に対してORされてFUSITT11012に対しマイクロ命令選
択アドレスを与える。
ADR20202は第243図において、9つのバス、即ちアドレ
ス(ADRA)バス24322乃至アドレスI(ADRI)24338から
なる如くに示されている。。EVENT20284の出力はADRAバ
ス24322によりEVNTGT24310の入力側と接続されている。
REPCTR20280およびPNREG20282の出力とAF24220の出力
は、それぞれADRBバス24324およびADRCバス24326により
NASMUXA24314の入力側と接続されている。RCW10358とFU
DISEN24219の出力は、それぞれのADRDバス24328およびA
DREバス24330によりNASMUXB24316の入力側と接続されて
いる。BRCASE20278の出力とmPC20276の第2の出力は、
それぞれADRF24332およびADRGバス24334により、NASMUX
C24318の入力側と接続されている。mPC20276の第2の出
力とNC10226のJAM出力は、それぞれADRHバス24336およ
びADRIバス24338によりNASMUXD24320の入力側と接続さ
れている。このように、ADR20202は、SITTNAS20286の入
力に対してマイクロ命令のアドレス・ソースを接続する
1組のバスを含んでいる。
mPC20276について述べれば、mPC20276はマイクロプログ
ラム・カウンタ・カウンタ(mPCC)24340およびマイク
ロプログラム・カウンタ演算論理装置(mPCALU)24342
からなる。mPCC24340のデータ入力は、CSADRバス20204
と接続されている。mPCC24340の出力はmPCALU24342の第
1の入力と接続され、BRCASE20278に対するmPC20276の
第3の出力である。mPCALU24342の第2の入力は、例え
ばハードワイリングにより、2進数1になるように設定
された2進数15である。mPCALU24342の出力は、RCWS103
58に対するmPC20276の第1の出力と、NASMUXC24318およ
びNASMUXD24320の入力に対するmPC20276の第2の出力と
を含む。
BRCASE20278は、第243図において、マスク兼桁送りマル
チプレクサ(MSMUX)24344と、ケース・マスク兼桁送り
ロジツク(CASEMS)24346、分岐兼ケース・マルチプレ
クサ(BCMUX)24348、および分岐兼ケース演算論理装置
(BCALU)24350からなる如くに示される。MSMUX24344の
第1の入力(AONBC、前には示さず)は、AONGRF20232の
出力と接続されている。MSMUX24344の第2の入力(OFFM
UXR、前には示さず)はOFFMUXR23812の出力と接続され
ている。MSMUX24344の出力は、CASEMS24346の出力はBCM
UX24348の第1の入力と接続されている。BCMUX24348の
第2の入力、BLITはFUSITT11012のマイクロ命令出力の
リテラル・フイールドと接続されている。mPCC24340の
出力からのBCMUX24348の出力とmPC20276の第3の出力
は、それぞれBCALU24350の第1および第2の入力と接続
されている。BCALU24350の出力はNASMUXC24318に対する
BRCASE20278の出力を構成する。
次のマイクロ命令を選択するアドレスは、8つのソース
のどれからでもSITTNAS20286によりFUSITT11012に対し
て与えられることができる。第1のソースはmPC20276の
出力である。mPC20276の出力はマイクロプログラムのカ
ウント、プラス(mPC+1)と呼ばれ、アドレスの15ビ
ツトである。第2のソースはEVENT20284からで、アドレ
スの5ビツトからなつている。第3のソースはFUDISP24
218およびFUDISENC24219であり、前述の如く、アドレス
の6ビツトからなる。第4のソースはAF24220の出力で
あり、前述の如く、アドレスの15ビツトからなる。第5
のソースはBRCASE20278の出力である。BRCASE20278の出
力は分岐兼ケース・アドレス(BRACASEADR)と呼ばれ、
アドレスの15ビツトを構成する。第6のソースはRCWS10
358の出力である。RCWS10358の出力はRCWアドレス(RCW
SADR)と呼ばれ、アドレスの15ビツトからなる。第7の
ソースはREPCTR20280およびPNREG20282であり、その出
力(REPPN)は共にアドレスの15ビツトを構成する。最
後に、第8のソースはNC10226からのJAM入力であり、こ
れはアドレスの5ビツトを構成する。これらのアドレス
・ースは、これが提供するアドレスのビツト数において
異るが、SITTNAS20286によりADR20202に対してゲートさ
れるマイクロ命令アドレスは常にアドレスの15ビツトを
構成する。もしある特定のソースが15ビツトよりも小さ
なビツトを提供するならば、このアドレスはSITTNAS202
86によつて15ビツトに拡張される。一般に、アドレス・
ビツトの実行は、これらソースの各々からのSITTNAS202
86に対する別のアドレス入力ビツトのハードワイリング
によつて実施することができるが、これについては以下
において更に説明する。
mPC20276について述べれば、mPCC24340は15ビツトのレ
ジスタであり、またmPCALU24342は15ビツトのALUであ
る。mPCC24340は、前述の如くCSADRバス20204と接続さ
れ、その時FUSITT11012に対して与えられつつあるマイ
クロ命令アドレスで順次ロードされる。mPCC24340はこ
のように、そのあと器実行中のマイクロ命令のアドレス
を含むことになる。mPCALU24342はmPCC24340に含まれる
アドレスを1ずつ増分するために専用化される。これに
よりmPCALU24342のmPC+1出力は、常に次の順次のマイ
クロ命令のアドレスとなる。mPC+1は前述の如く15ビ
ツトのアドレスであり、このためSITTNAS20286において
拡張されない。
BRCASE20278について述べれば、前述の如く、BRCASE202
78はmPC20276の相対的分岐およびケース分岐のための次
のマイクロ命令アドレスを提供する。マイクロプログラ
ムの相対的分岐およびケース分岐のための次のマイクロ
命令アドレスは共にmPCC24340に記憶される如きマイク
ロ命令をその時実行中のアドレスに関連するアドレスと
して生成されるが、これらの相対的アドレスが生成され
る方法において異なる。最初にケース分岐について見れ
ば、その実行中のマイクロ命令アドレスに関連するケー
ス分岐アドレスはMSMUX24344およびCASEM24346により部
分的に生成される。前述の如く、マルチプレクサである
MSMUX24344は2つの入力を受取る。第1の入力はAONGRF
20242の出力からのAONBCであり、第2の入力はOFFMUXR2
3812の出力からのOFFMUXRである。これらの入力の各々
は8ビツト、即ち巾が1バイトである。MSMUX24344は、
FUSITT11012からのマイクロ命令出力の制御下で、CASEM
24346の入力に対する8ビツトの出力として入力AONBCお
よび入力OFFMUXRのいずれかを説明する。CASEM24346
は、構造および作用においてFIU20116のそれと類似する
マスク兼桁送り回路であるが、32ビツト・ワード以外の
バイトに関して作用する。FUSITT11012からのマイクロ
命令制御装置の制御下で作用するCASEM24346は、BCMUX2
4348に対する8ビツトのケース値(CASEVAL)出力を生
じるようにマスクおよび桁送りを行なうことによつてMS
MUX24344からの8ビツトの入力を操作する。CASEVAL
は、その時実行中の8ビツト数である記憶のアドレスに
関するマイクロ命令のアドレス変位を表わし、FUSITT11
012における0乃至255のアドレス場所の変位を表わすこ
とができる。
BCMUX24348は構造および作用においてMSMUX24344と類似
する8ビツトのマルチプレクサであり、FUSITT11012か
ら与えられるマイクロ命令入力によつて制御される。ケ
ース操作の実行中、BCMUX24348はBCALU24350の第1の入
力に対するBCMUX24348の出力に対するCASEVAL入力を選
択する。BCALU24350は16ビツトの演算論理装置である。
BCALU24350の第2の入力はmPCC24340からのその時実行
中のマイクロ命令の15ビツト・アドレスである。FUSITT
11012から与えられるマイクロ命令の制御下においてBCA
LU24350が作用し、ケース操作の実行中、その時実行中
のマイクロ命令のアドレスに対しCASEVALを加える。ケ
ース操作の実施中、BCALU24350の桁送り入力は、FUSITT
11012からのマイクロ命令の制御により、BCALU24350の
第2の入力が有効にmPC+1、即ちその時実行中のマイ
クロ命令プラス1のアドレスとなるように、1に強制さ
れる。BCALU24350の出力はBRCASEADRはこれにより15ビ
ツトのケース・アドレスとなり、これはその時実行中の
マイクロ命令のアドレス質所より大きなFUSITT11012の
アドレス場所1と256の間にある。その時実行中のマイ
クロ命令のアドレスからの実際のケース値アドレスの変
位は、MSMUX24344に対する入力AONBCまたは入力OFFMUXR
のいずれかによつて決定される。
前述の如く、ケース操作は、例えば、CS10110のテーブ
ルのエントリの解釈および操作において使用することが
できる。例えば、名前テーブル10350の名前テーブルの
エントリは、これら名前テーブルのエントリの解明およ
び評価において実施されるべきある操作に関する情報を
保有するフラツグ・フイールドを有する。これらの操作
は、これら名前テーブル・エントリの解明および評価の
ため、マイクロ命令シーケンスにおけるケース分岐とし
て構成することができる。本例においては、ある名前テ
ーブル・エントリの解明の間、この解明の実施のための
マイクロ命令シーケンスは、AONGRF20232またはOFFMUXR
23812からMSMUX24344を介してCASEMS24346に対して読込
まれるべき名前テーブル・エントリのフラツグ・フイー
ルドの1つのバイトを指名することができる。このマイ
クロ命令シーケンスはその後、前述フラツグ・フイール
ドのバイトを変位およびマスクを行なつてCASEVALを生
じるようにCASEMS24346に指令する。このCASEVALは、こ
のフラツグ・フイールド・バイト内のフラツグに依存す
る値を有し、またmPC+1に加算される時、このフラツ
グ・ビツトに従つて前記名前テーブルのエントリを作用
するためのマイクロ命令シーケンスのためのFUSITT1101
2のマイクロ命令アドレスを提供することになる。
前記の如く、BRCASE20278はまた、あるマイクロ命令シ
ーケンスの実行中において生じる分岐のためのマイクロ
命令アドレスを生成することができる。この場合、FUSI
TT11012からのマイクロ命令制御信号は、BCALU24350に
対する出力としてBCMUX24348の第2の入力を選択するこ
とをBCMUX24348に指令する。BCMUX24348の第2の入力は
分岐リテラル(BLIT)である。前記の如く、BLITは、FU
SITT11012のマイクロ命令出力からのマイクロ命令ワー
ドのリテラル・フイールドから与えられる。BCMUX24348
のBLIT出力は、mPCC24340およびBCALU24350からのその
時実行中のマイクロ命令のアドレスに対して加算され、
その時実行中のマイクロ命令のアドレスから分岐される
マイクロ命令アドレスの15ビツトBRCASEADRを提供す
る。BRCASEADRは、例えば、4つの分岐操作の内のどれ
でも表示することができる。可能な分岐操作とは、第1
には、条件付きの短い分岐、第2には条件付きの短い呼
出し、第3に長いGO-TO、および第4には長い呼出しで
ある。これらの可能な分岐操作の各々においては、BLIT
は所要の分岐値の2の補数、即ちその時実行中のマイク
ロ命令のアドレスに関するマイクロ命令のアドレスのオ
フセツトとして取扱われる。従つて、BLITフイールド
は、有効にその時実行中のマイクロ命令のアドレスに関
して加除されて、その時実行中のマイクロ命令のアドレ
スからの正または負の方向の変位量を有するマイクロ命
令アドレスを提供することができる。条件付きの短い分
岐または条件付きの短い呼出しにおいては、14ビツトの
リテラル・フイールドは符号拡張された8ビツト数であ
る。従つて、条件付きの短い分岐および条件付きの短い
呼出しのマイクロ命令アドレスは、その時実行中のマイ
クロ命令のアドレスの+127乃至−128なるFUSITT11012
のアドレス場所の範囲内にある1つのアドレス指示する
ことができる長いGO-TOまたは長い呼出しの場所には、B
LITフイールドはその時実行中のマイクロ命令のアドレ
スに関する変位を表わす14ビツト数である。このような
場合には、BRCASEADRは、その時実行中のマイクロ命令
のアドレスの+8191乃至−8192なるFUSITT11012のアド
レス場所の範囲内のFUSITT11012のあるマイクロ命令ア
ドレスを表わすことができる。これにより、BRCASE2027
8は、マイクロ命令シーケンスのケースおよび分岐操作
の全範囲を実行する能力をFU1012に対供する。
RCWS10358について述べれば、前記の如くRCWS10358は、
その実行が停止されたマイクロ命令シーケンスに関する
情報を記憶する。RCWS10388は、これらマイクロ命令シ
ーケンスの実行を後において再開することを可能にす
る。戻し制御ワード(RCW)は、別のマイクロ命令シー
ケンスに対する呼出しを発するどんなマイクロ命令シー
ケンスにおいてもRCWS10358に対して書込むことができ
る。呼出し側のマイクの命令シーケンスは、例えば、以
下の記述において更に述べる如き事象のサービスのため
打切ることができ、さもなければジヤムを生じ得る。ジ
ヤムは、マイクロ命令シーケンスによらずCS10110のハ
ードウエアの操作によつて強制されるマイクロ命令シー
ケンスに対する呼出しである。CS10110の内部機構に関
するRCWS10358の作用については、EVENT20284、STATE20
2094、MCW120290およびMCWO20292の以下における記述に
おいて説明する。本項の論議のためには、SOPの解釈と
関連するRCWの部分は、第1にFUSITT11012からのある状
態の情報を含み、第2にFUSITT11012への戻りアドレス
を含む。以下に述べる如きFUSITT11012の状態がSTATE20
294から与えられる状態、およびFUSITT11012の状態の情
報を含むRCWの部分については、以下の記述において説
明する。RCWのマイクロ命令アドレス部分はmPCLU24342
の出力から与えられる。このマイクロ命令アドレスは、
呼出し、事象またはジヤムからの戻りと同時に、FU1012
0が戻るべきマイクロ命令のアドレスである。呼出しま
たはジヤムの発生と同時に、マイクロ命令戻りアドレス
はmPC+1、即ち呼出しまたは戻しを生じるマイクロ命
令の後のマイクロ命令のアドレスである。打切られたマ
イクロ命令シーケンスの場合は、マイクロ命令戻りアド
レスmPCであり、これは即ち打切りが生じた時点におい
て実行中のマイクロ命令のアドレスである。
呼出し、または事象のサービス、またはジヤムのサービ
スからの戻りと同時に、RCWのFU10120の状態フラツグは
STATE20294に対してロードされる。マイクロ命令戻りア
ドレスはSITTNAS20286に対する15ビツトのRCWSADRとし
てRCWS10358により与えられ、CSADRバス20204にゲート
される。RCWSADRはFUSITT11012に与えられて次のマイク
ロ命令を選択し、CSADRバス20204からmPCC24340に対し
てロードされる。
前記の如く、RCWS10358は両方向バスによつてJPDバス10
142と接続される。RCWはJPDバス10142からRCWS10358に
対して書込まれ、あるいはRCWS10358からJPDバス10142
に対して読込まれる。15ビツトの次のマイクロ命令アド
レス部分およびRCWの単一ビツトのFUSITT11012の状態部
分は、JPDバス10142のビツト16乃至31に関して書込まれ
あるいは読出される。RCWのFU10120はJPDバス10142から
RCWS10358に対してその時の最下位のRCWまたは前のRCW
を書込むことができ、またJPDバス10142に対してその時
の最下位のRCW、または前のRCW、または別の選択された
RCWを読込むことができる。RCWS10358はこれにより、そ
の実行が中断されたマイクロ命令シーケンスのマイクロ
命令アドレスの記憶および戻しのための手段と、JPDバ
ス10142に関するマイクロ命令アドレスおよびFUSITT110
12の状態フラツグへの書込みおよび読出し手段とを提供
する。
前述の如く、REPCTR20280およびPNREG20282は、マイク
ロ命令のFUSITT11012に対する書込みのためマイクロ命
令アドレスを提供する。REPCTR20280は8ビツト・カウ
ンタであり、PNREG20282は7ビツト・レジスタである。
REPCTR20280の8ビツト出力はPNREG20282の7ビツト出
力と連結された状態に残されて、15ビツトのマイクロ命
令アドレスREPPNを提供する。即ち、REPCTR20280はマイ
クロ命令アドレスの8つの下位のビツトを提供し、PNRE
G20282はアドレスの7つの最上位ビツトを提供する。
REPCTRはJPDバス10142の2ビツト24〜31からロードする
ことができ、またJPDバス10142のビツト24〜31に対して
読込むことができる。更に、REPCTR20280におけるマイ
クロ命令アドレスの8ビツトは、マイクロ命令がFUSITT
11012に対して書込まれる時増減可能である。
前記の如く、PNREG20282はマイクロ命令アドレスの7つ
の最上位ビツトを含む。これらのアドレス・ビツトは、
JPDバス10142のビツト17〜23からPNREG20282に対して書
込むことができる。一般に、PNREG20282の内容はJPDバ
ス10142に対して読込むことができず増減できない。
NC10226からSITTNA20286に対するジヤム入力について述
べれば、ある名前の評価または解明操作はジヤムを惹起
し得る。ジヤムはそのサービスのためのマイクロ命令シ
ーケンスに対する呼出しとして機能し、名前シラブルの
評価および解明に関与するFU10120のハードウエア回路
によつて強制される。
SITTNAS20286に対するジヤムは6つのジヤム・アドレス
・ビツトからなる。3ビツトはNC10226により与えら
れ、3ビツトは名前シラブルの評価および解明の補正の
ためのマイクロ命令シーケンスの部分としてFUSITT1101
2のマイクロ命令出力から与えられる。NC10226からのア
ドレスの3ビツトはジヤム・アドレスの最上位の3ビツ
トを形成する。これらのビツトの1つはジヤム・アドレ
スをCSADRバス20204に対してヘートし、このため真のア
ドレス・ビツトではない。FUSITT11012の出力はジヤム
・アドレスの3つの最下位ビツトを提供し、生じた特定
のジヤムのサービスに必要な特定のマイクロ命令シーケ
ンスを指定する。従つて、名前の評価または解明操作の
間、名前の評価または実施のためFUSITT11012により与
えられるマイクロ命令シーケンスは、ジヤムが生じるな
らば、どのマイクロ命令シーケンスが開始されるべきか
を規定する。NC10226により与えられるジヤム・アドレ
スの3ビツトは、最初にジヤムが生じたことを判定し、
第2にFUSITT11012からのアドレスの3ビツトと共に、
このジヤムの取扱いのための特定のマイクロ命令シーケ
ンスを規定するアドレスの2ビツトを提供する。これに
より、NC10266およびFUSITT11012からのジヤム・アドレ
ス入力はジヤム・アドレスの15ビツトの内の6つを提供
する。ジヤム・アドレスの残る9つのビツトは、例えば
NASMUXD24320に対するはーどワイアド入力によつて与え
られる。これらのハードワイドされたアドレス・ビツト
はFUDISP24218およびFUDISP24218に対するアドレス入力
と類似の方法で4つのマイクロ命令アドレスのブロツク
におけるFUSITT11012をアドレス指定するようにジヤム
・アドレスを強制する。
FUSDT11010からSITTNAS20286に対して与えられるアドレ
ス入力については、FUCTL20214の特性、分析およびタス
ク指名の諸操作の記述に関して前に説明した。EVENT202
84により与えられるアドレス入力については、CS10110
の内部機能に関するFUCTL20214の作用の以下における説
明において説明することにする。
最後にSITTNAS20286について説明すると前記の如く、SI
TTNAS20286はEVETGT24310およびNASUMX24312からなる。
前記の如く、NASUMX24312に対しては、FUSDT11010、mPC
20276、BRCASE20278、RCW10358、REPCTR20280およびPNR
EG20282からの入力がジヤム入力によつて与えられる。
これらの入力は、一般に、SOPおよび名前シラブルNO取
出し、分析および解釈におけるFUCTL20214の諸操作に関
して与えられる。このためこれらの諸操作は、主として
ユーザ・プログラムの実行、即ちSINのシーケンスの実
行と直接関連させられている。NASUMX24312はこれら入
力の間で説明を行ない、FUSITT11012からのマイクロ命
令出力からのマイクロ命令制御下でFUSITT11012に対す
るマイクロ命令アドレスとしてCSADRバス20204に対し選
択されたアドレス入力を転送する。マイクロ命令アドレ
ス出力は、ユーザ・プログラムの実行中のCS10110の諸
操作において生じる、以下において更に述べる諸事象に
従つてEVENT20284からSITTNAS20286に対して与えられ
る。EVENT20284からのこれらのマイクロ命令アドレスは
CSADRバス20204に対してゲートされ、EVETGT24310によ
り適当なマイクロ命令シーケンスを選択する。EVETGT24
310はNASUMX24312から分離されてEVETGT24310がNASUMX2
4312にオーバーライドすることを可能にし、またNASUMX
24312がある事象の発生のため禁止される間、マイクロ
命令アドレスをEVENT20284に対して与える。一般に、こ
れらの事象はCS10110の内部機構の作用と関連し、STATE
20294、MCW120290およびMCWO20292、およびRCWS10358の
他の部分と共にEVENT20284の構造および作用については
以下において説明する。
c.c.CS10110の内部機構に対するFUCTL20214の制御回路
(第244図〜第249図) FUCTL20214の制御回路のある部分は、CS10110の内部機
構、例えばCS10110のスタツク機構の作用と更に直接関
連している。この回路には、STATE20294、EVENT20284、
MCW120290およびMCWO20292、RCWS10358の各部、REG2028
8および#TIMER20296が含まれる。これらのFUCTL20214
の制御素子については以下において説明し、STATE20294
から始める。
a.a.a.状態ロジツクSTATE20294(第244A図乃至第244Z
図) 一般に、マイクロ命令の実行を含む全てのCS10110の作
用は、CS10110の作用状態によつて制御される。CS10110
は、各々が以下において「状態」と呼ばれる多くの操作
状態において実施が可能なある操作より規定されるかか
る状態を有する。これら状態の各々は以下においてさら
に選択することにする。CS10110のその時の状態は、STA
TE20294における1組のレジスタにおいて記憶された1
組の状態フラツグにより示される。各状態は前の状態か
ら入り、後続の状態に出される。CS10110の次の状態
は、CS10110全体に分散された随時の論理ゲート作用に
よつて検出され、CS10110が次のどの状態に入るかを示
すある条件を検出する。これらの次の条件の検出ゲート
の出力は、STATE20294のレジスタに対する入力として与
えられる。ある特定の条件レジスタが設定されて、CS10
110がその特定のレジスタと関連する状態に入る時、状
態のフラツグの状態フラツグ出力はCS10110のその時の
状態内で許される操作の開始を可能にし、またCS10110
がその時の状態内では許されない諸操作の開始を禁止す
る。
CS10110のある状態およびSTATE20294の関連する状態、
および状態フラツグ出力は下記の如くである。即ち、 (1)M0:マイクロ命令の初期状態。状態M0は常に各マ
イクロ命令の最初のデータ・サイクルとして入る。この
状態M0においては、CS10110の状態は変化せず、このた
めマイクロ命令を任意に打切つて状態M0から再始動させ
る。マイクロ命令の通常の実行においては、状態M0の後
には以下に述べる状態M1が続き、即ち状態M0は状態M1に
対する出口となる。状態M0は状態M0、および状態M1、状
態AB、状態LR状態NRまたは状態MSから入ることができる
がその各々については以下に述べる。
(2)EP:使用可能休止状態。状態EPには、あるマイク
ロ命令において最初に状態M0に入る時に入る。もしこの
マイクロ命令が休止を要求するならば、このマイクロ命
令は1クロツク・サイクルの間状態M0に再び入るように
強制する。もし状態M0が1クロツク・サイクル以上持続
するならば、拡張が休止要求の結果でなければ、状態EP
は状態M0の拡張毎に状態EPに入る。
(3)SR:ソースGRF状態。DR状態は、SR状態レジスタが
GRF10354の出力レジスタのローデイングを可能にする1
クロツク・サイクルの間活動状態となる。状態M0の拡張
を要求するマイクロ命令により生成される状態M0サイク
ルを除いて、状態SRには状態M0サイクル毎に再び入る。
全ての状態20294の状態レジスタがクリアされる時、DP2
0218はGRF10354からの読出しの目的のため状態SRレジス
タのみをセツトする。
(4)M1:通常のマイクロ命令実行の最終状態。状態M1
は通常のマイクロ命令実行の出口の状態である。以下に
述べるFUSITT11012のマイクロ命令レジスタは、状態M1
から出ると同時に次のマイクロ命令でロードされる。更
に、STATE202094の状態M1のフラツグ出力は、CS1−110
の全てのレジスタがその入力側におけるデータ入力を受
取ることを可能にする、即ちこれらのレジスタの入力側
のデータがこれらレジスタの出力側にクロツクされる。
状態M1は、状態M1から、あるいは状態M0、状態MW、状態
MWAまたは状態WBから入ることができる。
(5)LA:ロード・アキユムレータの使用可能状態。状
態LAは、MEM10112からOFFMUXR23812へのデータの読込み
を行なうマイクロ命令により状態M1から出ると同時に入
る。前述の如く、OFFMUXR23812はDESP20210に対する汎
用アキユムレータとして作用する。状態LAは次のマイク
ロ命令の実行と重なり、MEM10112からデータが戻される
までその状態を保持する。データが使用可能であること
をMEM10112がDAVFAを保有することにより真号する時LA
状態フラツグはOFFMUXR23812に対するデータのローデイ
ングを可能にする。もし次のマイクロ命令がOFFMUXR238
12を照合するならば、このマイクロ命令の実行は、状態
LAから出るCS10110により示されるようにOFFMUXR23812
の読出しが完了するまでは遅延させられる。
(6)RW:ロードGRF10354待機状態。状態RWは、MEM1011
2からGRF10354に対してデータを読込むマイクロ命令の
状態M1から入る。RWフラツグは次のマイクロ命令の開始
を禁止する、即ち状態M0に対するエントリを防止し、デ
ータがある要求に応答してMEM10112から戻されるCS1011
0のクロツク・サイクルの間保持する。状態RWは、以下
に述べるロードGRF使用可能状態を開始する。
(7)LR:ロードGRF使用可能状態。状態LRには状態RWの
最後のクロツク・サイクルと同時に状態RWと並列に入
り、CS10110の1つのクロツク・サイクルの間保持す
る。LRフラツクは、GRF10354に対するMEM10112の出力デ
ータの書込みを可能にする。
(8)MR:メモリー照合後書き状態。状態MRには、前の
マイクロ命令がMEM10112に関して論理または物理的アド
レス照合を行なう時は常に、状態M0に転換すると同時に
入る。MRフラツグは、生じる得る以下に述べる如き事象
のMEM10112の照合の識別を可能にする。状態MRは1クロ
ツク・サイクルの間持続する。もしMEM10112のあるメモ
リー照合事象が生じるならばこの事象は状態MRから状態
ABおよびMEに出ることを強制し、さもなければ状態MRは
次の状態の選択に何の効果ももたらさない。
(9)SB:再記憶可能状態。状態SBは、MEM10112の操作
の結果の再記憶を生じたマイクロ命令に続くマイクロ命
令の状態M0の間に入る。SBブラツクは、JPDバス10142を
介してMEM10112に対し書込まれるべき前記結果をゲート
する。
(10)AB:マイクロ命令打切り状態。状態ABは以下の記
述において説明するように、ある事象要求が識別された
後に最初のM0時から入る。状態ABには状態M0または状態
ABから入ることができ、状態M1へのエントリを抑制す
る。もしMEM10112に対する未完了の照合が存在するなら
ば、即ち照合が打切られずデータがMEM10112から戻され
なかつたならば、MEM10112の照合が完了するまでJP1011
4は状態ABを維持する。打切りがMEM10112の照合事象の
故に生じるものとするならば、状態ABは2クロツク・サ
イクルしか持続しない。以下のEVENT20284の説明におい
て述べるように、打切りを生じる事象に対するハンドラ
の最初のマイクロ命令の状態M0には状態ABから入る。AB
フラツグはCSADRバス20204に対する最も高い優先順位が
認められた事象のハンドラ・アドレスをゲートして、対
応する事象ハンドラ・マイクロ命令シーケンスを選択す
る。EVENT20284は、状態ABの全クロツク・サイクルにわ
たりCSADRバス20204の制御が与えられる。
(11)AR:マイクロ命令打切りリセツト状態。状態ARに
は状態ABの最初のクロツク・サイクルと並列に入り、1
クロツク・サイクルにわたつて保持する。ARフラツグ
は、打切りが生じる時種々の状態STATE20294の状態レジ
スタをリセツトする。もし未完了のMEM10112の照合が存
在しなければ、次の状態ABのクロツク・サイクルが最後
となる。MEM10112の照合が未完了である場合には状態AR
に入るが、状態ABは照合が完了するまでは活動状態を維
持する。仮りJP10114が状態ABにある間に比較的高い優
先順位の事象がサービスを要求して認められるならば、
状態ARに再び入る。状態ABはこれにより、満たされた全
ての事象要求の間2クロツク・サイクルにわたつて活動
状態となる。
(12)MA:MEM10112照合打切り状態。状態MAには、MEM10
112からの保有された「打切り」制御信号出力により示
される如くMEM10112の照合が打切られるならば、状態AB
と並列に入る。状態MAは1クロツク・サイクルの間保持
し、状態ABフラツグが、以下に述べるようにMEM10112の
照合の反復を惹起する結果となるMEM10112照合打切りフ
ラツグを生成する。ABフラツグはまた、以下に述べるME
M10112後書き状態をリセツトする。
(13)NW:ナノ割込み待機状態。状態NWは、EU10122のた
めEU10122に対するナノ割込み要求を生じるマイクロ命
令の状態M0から入る。EU10122がこの割込みを認識する
までFU10120は状態NWを維持する。種々のEU10122の事象
はこの時点において要求を行なうことができる。状態NW
は状態ABまたは状態M1に付勢される。
(14)FM:SINの最初のマイクロ命令。状態FMには各SIN
の最初のマイクロ命令と同時に状態M0と並列に入つて、
1クロツク・サイクルにわたり保持する。FMフラツグは
AF24220の早期の使用を禁止し、SINエントリ事象の識別
を可能にする。状態FMには、SINの最初のマイクロ命令
の状態M0の間に行なわれる全ての打切りからの戻りと同
時に入る。
(15)SOP:最初のSINに対する元のエントリ状態。状態S
OPにはSOPの最初のマイクロ命令の状態M0へのエントリ
と同時に入り、このマイクロ命令からの如何なる出口に
おいてもこの状態から出る。状態SOPは各SOP毎に1回し
か入らない。SOPは、例えばJP10114の実施の監視のため
に使用することができる。
(16)EU:EU10122のオペランド・バツフア使用不能状
態。状態EUには、以下に述べる、一杯の状態であるEU10
122のオペランド・バツフアに対するデータの読込みを
試みるマイクロ命令の状態M0から入る。新たなSOPに入
る時EU10122のオペランド・バツフアが一般になる前
に、MEM10112から3回取出しが実施可能であり、2回の
取出しがEU10122のオペランド・バツフアを充填する
が、EU10122は第2の取出しの間1つのオペランドを取
出すことができ、これにより第3のオペランドに対する
EU10122のオペランド・バツフア空間をクリアする。
(17)NR:長いパイプ・ライン読出し状態。状態NRへの
エントリはMEM10112の並行操作を不能にし、また次のマ
イクロ命令の実行を不能にする。次のマイクロ命令は、
要求されるデータがMEM10112から戻されるまで状態M0に
は入らない。状態NRは状態NRまたは状態M1から入る。
(18)NS:非パイプ・ライン再記憶状態。状態NSには、
パイプ・ライン再記憶またはMEM10112に対する書込みを
要求するマイクロ命令が生じる時は常に状態SBと並列に
入る。状態入出力は、状態SBからの出口と同時に続くマ
イクロ命令の状態M0へのエントリを生成する。
(19)WA:ロード制御ストア状態A。状態WAには、FUSIT
T11012に対するマイクロ命令のローデイングを指令する
マイクロ命令の状態M0から入る。状態WAフラツグは、FU
SITT11012に対する書込みのためCSADRバス20204に対す
るアドレスの選択を制御し、FUSITT11012に対するマイ
クロ命令の書込みを行なうFUSITT11012に対する書込み
可能パルスを生成する。
(20)WB:ロード制御ストア状態B。状態WBには状態WA
から入り、FUSITT11012に対する書込みのための適当な
タイミング間隔を生じるため使用される。状態WBまたは
状態M1を2クトルク・サイクルまで拡張して、次のマイ
クロ命令がFUSITT11012から読出される時FUSITT11012に
対する妥当アドレス入力を保証する。
CS10110のいくつかの状態、およびこれら状態内で実施
可能な諸操作について説明したが、CS10110のいくつか
の操作に対する状態のシーケンスについて第244A図乃至
第244Z図の助けを借りて以下に説明する。第244A図乃至
第244Z図は、CS10110の状態タイミングの主な特徴を示
す必要なこれらの状態のタイミングのシーケンスを示し
ている。第244A図乃至第244V図に示される全ての状態
は、CS10110の操作の完全なパイプ・ラインを用い、例
えば、JP10114によるMEM10112に関する読出しおよび書
込みのパイプ・ライン操作を用いる。パイプ・ライン操
作は第244W図乃至第244Z図には用いられない。第244A図
乃至第244Z図においては、これら図面は時間が左から右
方に向けて増大するタイミング図の形態で描かれてい
る。連続する水平方向に配された「ブロツク」は、CS10
110の連続する110ナノ秒のクロツク・サイクルの間の連
続する10110の状態を示している。垂直方向に整合され
た「ブロツク」は、ある特定のクロツク・サイクルの間
に生じ得る別のCS10110の状態を示している。第244A図
乃至第244Z図に示されたいくつかの状態を連結する水平
方向に伸びた点線は、CS10110の110ナノ秒のクロツク・
サイクルの整数倍である中間時間間隔を表わす。
第244A図乃至第244Z図においては、この順序において示
された状態のタイミング・シーケンスは下記の事柄を表
わす。即ち、 (1)第244A図、一切の事象が生じずまたMEM10112の照
合が行なわれない通常のマイクロ命令の実行のための状
態のタイミング。
(2)第244B図、一切の事象が生じず、MEM10112の照合
が行なわれず、1クロツク・サイクル間に状態M0の保持
が行なわれる通常のマイクロ命令の実行。
(3)第244C図、マイクロ命令要求が、一切の事象が生
じず、MEM10112の照合が行なわれない1クロツク・サイ
クルの間の状態M0の拡張を要求する。
(4)第244D図、MEM10112に対するDESP20210からの、
例えば、GRF10354またはOFFALU20242からの書込み。MEM
10112のポートは使用可能であり、MEM10112の照合は状
態M0およびM1の最初の順次の発生の間に行なわれる。
(5)第244E図、MEM10112に対するDESP20210からの前
述の如き書込み。MEM10112のポートは中間番号のクロツ
クサイクルにおいては使用不能である。MEM10112の照合
は、状態M0およびM1の最初の順次の発生の間に行なわれ
る。
(6)第244F図、MEM10112に対するEU10122の書込み。
状態M0およびM1の最初の順次の発生の間、MEM10112は使
用可能でありかつ書込み操作が開始される。
(7)第244G図、EU10122の書戻しは前述の如くMEM1011
2に対して結果を生じる。MEM10112のポートは未定数の
クロツク・サイクルに対しては使用不能であり、EU1012
2はMEM10112に対する書込みの用意のある結果を生じる
ことはない。状態M0およびM1の最初の順次の発生の間書
込み操作が開始される。
(8)第244H図、FU10120に対するEU10122の結果の読出
し。EU10122の結果は未定数のクロツク・サイクルにつ
いては使用不能である。
(9)第244I図、遅延のないMEM10112かOFFMUXR23812へ
の読込み。MEM10112からの読出しを開始するマイクロ命
令に続くマイクロ命令はOFFMUXR23812を照合を行なわな
い。
(10)第244J図、MEM10112からのデータが未定数のクロ
ツク・サイクルだけ遅延させられるMEM10112からOFFMUX
R23812への読込み。MEM10112からの読出しを開始するマ
イクロ命令からの次に続くマイクロ命令はOFFMUXR23812
の照合は行なわない。
(11)第244K図、MEM10112からOFFMUXR23812への読出
し。MEMJ10112からの要求を開始するマイクロ命令に続
く次のマイクロ命令がOFFMUXR23812を照合する。
(12)第244L図、MEM10112からGRF10354への読込み。GR
F10354への読込みは、最初の順次生じる状態M0およびM1
により開始される。
(13)第244M図、MEM10112からGRF10354およびOFFMUXR2
3812への読込み。この場合、読出し操作は重合されな
い。
(14)第244N図、JP10114は事象要求を満たし、対応す
る事象ハンドラ・マイクロ命令を開始し、MEM10112の照
合は生じない。
(15)第2440図、JP10114は前述の如く事象要求を満た
さない。MEM10112の照合は状態M0およびM1の最初の順次
の発生の間は行なわれず、MEM10112の照合事象が生じ
る。MEM10112の照合事象の場合は、状態MAは1クロツク
・サイクルから入る。この状態は、MEM10112の照合が行
なわれて打切られる場合にのみ生じる。
(16)第244P図、状態M0およびM1の最初の順次の発生の
間に行なわれたMEM10112の照合において事象が生じる。
MEM10112の照合はメモリー照合事象は惹起しない。MEM1
0112の照合がMEM10112からのデータの戻りにより完了す
るまで、CS10110は状態ABを維持する。
(17)第244Q図、MEM10112またはJP10114からEU10122の
オペランド・キユーへのデータの読込み。EU10122のオ
ペランド・キユーは充填状態ではない。
(18)第244R図、EU10122のオペランド・キユーに対す
るMEM10112またはJPDバス10142の読込み。読出しを開始
するマイクロ命令が発せられる時、EU10122のオペラン
ド・キユーは充填される。
(19)第244S図、事象が生じないFU10120によるEU10122
に対する「ナノ割込み」の要求。
(20)第244T図、FU10120はEU10122に対する「ナノ割込
み」要求を生じ、以下の記述において更に説明するEU10
122の状態桁あふれが生じる。EVENT20284の以下の説明
において述べるように、他の事象は識別されない。
(21)第244U図、FU10120はEU10122に対する「ナノ割込
み」要求を生じる。別の事象は状態M0の間に識別され、
打切りが生じる結果となる。最初の打切り状態には非EU
10122事象に対して入る。状態M0において識別される全
ての打切りは、状態M0へのエントリの前に行なわれて確
認される。従つて、状態M0から入る元のマイクロ命令の
状態M0における再試行と同時に、EU10122のスタツク桁
あふれが比較的高い優先順位を有するため、識別された
次の打切りはEU10122のスタツク桁あふれ事象に対する
ものである。
(22)第244V図、FUSITT11012に対する27ビツトのマイ
クロ命令セグメントのロード。第244A図乃至第244V図に
おいては、MEM10112の読出しおよび書込み操作、および
JP10114の諸操作を前提とした。第244W図乃至第244Z図
においては、JP10114の非重合操作を前提とした。
(23)第244W図、MEM10112からOFFMUXR23812へのデータ
の読込み。
(24)第244X図、MEM10112からEU10122のオペランド・
キユーへのデータの読込み。
(25)第244Y図、EU10122の結果のMEM10112への書込
み。
(26)第244Z図、事前取出しまたは条件付き事前取出し
要求に応じるMEM10112からの32ビツトSINワードの読出
し。
STATE20294の全体的な構造および作用、およびSCS10110
の諸作用状態および諸操作について説明したが、EVENT2
0284の構造および作用について以下に説明する。
b.b.b.事象ロジツク20284(第245図、第246図、第247
図、第248図) 事象は、その時実行中のマイクロ命令によらずCS10110
の回路により生成されるマイクロ命令の実行シーケンス
における変更の要求である。事象の発生は、この事象の
必要に従つてCS10110の作用を変更するMEM10112によ
る、事象ハンドラと呼ばれるマイクロ命令シーケンスを
生じる結果となる。事象の要求信号は、JP10114に対し
て内部のCS10110の回路、例ちFU10120またはEU10122か
ら、あるいはJP10114に関して外部のC10110の回路、例
えばIOP10116またはMEM10112から生成することができ
る。事象要求信号はEVENT20284に対する入力として与え
られる。以下において更に説明するように、EVENT20284
は事象要求をマスクしてある特定のCS10110の作用状態
においてどの事象が識別されるかを判定し、多重事象要
求のサービスのための優先順位を割当て、要求のサービ
スのためのマイクロ命令シーケンスに対するFUSITT1101
2へのハンドラ・アドレスを構成する。次に、EVENT2028
4はEVNTGT24310を回してFUSITT11012に対するこれらの
ハンドラのマイクロ命令アドレスを与えて、選択された
事象ハンドラ・マイクロ命令の実行を開始する。
以下の記述においては、いくつかの用語および表現が用
いられる。以下の項はそれらの使用を定義してこれらの
用語を示す事例を提供する。CS10110のハードウエアの
使用条件がEVENT20284に対して与えられる事象要求信号
をもたらす時は、事象は「要求を行なう」のである。以
下において更に説明するように、これらの事象要求信号
は、これらの「要求」の妥当性を判定するEVENT20284の
合成ロジツクに対して与えられる。
事象要求は、もしこれがマスクされず即ちそれについて
処理されることを禁止されるならば、「認める」。マス
キングとは、FUSITT11012により生成されるマスクを用
いる点で明確であり、あるいは不適性なCS10110から生
じる場合は不明確であり、即ち他の考察によつて無効と
なり得る。即ち、ある事象は、仮りにこれらの要求があ
る他の条件において認められる場合であつても、あるCS
10110の条件においてしか認められない。例えば、ある
数の要求、例えば31以下の要求が同時に認識可能であ
る。
もし最優先順位の事象要求であれば、事象要求は「満た
される」。要求が満たされない時、そのハンドラのマイ
クロ命令シーケンスに対するFUSITT11012における対応
するマイクロ命令シーケンスの対応するアドレスはEVEN
T20284によりCSADRバス20204に対してゲートされる。CS
10110が状態ABに入る時は要求は満たされる。状態AB
は、EVENT20284における選択された事象ハンドラのマイ
クロ命令をゲートするのである。
要約すれば、多くの事象がJP10114によるサービスを要
求することができる。これらの事象の内、その全て、あ
るいはあるものが認識可能であり、あるいはまた全く認
識不能である。唯一の事象要求、即ち最優先順位の事象
要求は、JP10114が状態ABに入る時に満たされる。CS101
10のマイクロ命令制御はこの時、この事象のハンドラの
マイクロ命令シーケンスに変換する。状態ABへのエント
リのための必要な条件は、ある事象要求が行なわれて認
識が完了されることである。
マイクロ命令シーケンスは、前述のマイクロ命令シーケ
ンスが活動状態にある間CS10110が状態M1から出る時、
「完了する」、「完了される」、あるいは「完了状態」
に達するのである。前述の如く、マイクロ命令シーケン
スは、もし仮りに完了状態に達する前に、不定回数だけ
状態M0において打切ることができる。
要求されたデータが指定された行先に戻される時、即ち
MEM10112から要求側に対して読込まれる時、あるいはME
M10112がこれに書込まれるべきデータを受入れる時、ME
M10112の照合は「完了する」、「完了される」あるいは
「完了状態」に達するのである。
「追跡トラツプ」は実行中のマイクロ命令固有の特性で
ある。ある与えられた形式(もしマスクされなければ)
のマイクロ命令毎に、例えばあるマイクロ命令シーケン
スの間に追跡トラツプが生じて名前の評価即ち解明を実
施し、またこのシーケンスのマイクロ命令と同時に生じ
る。一般に、次のマイクロ命令の実行前に、追跡トラツ
プ事象は受取られねばならない。追跡トラツプは、以下
において説明するように、あるマイクロ命令シーケンス
の浸出拡散能マイクロ命令の実行と同時には生じず他の
ある状態を考えねばならない如きマイクロ命令と同時に
のみ生じる点で割込みと異なる。
「割込み」はJP10114における事象の最も大きな酒類で
ある。一般に、ある特定の場所におけるある特定のマイ
クロ命令の特定の実行に対して割込みの発生は予測する
ことができない。割込みは、次のマイクロ命令の実行
前、その時のマイクロ命令の実行が完了し得る前、ある
いは次のSINの開始の前に、サービスを要求することが
できる。割込みはどのマイクロ命令の実行とも関連付け
ることができず、また次のマイクロ命令の開始前にサー
ビスされる。
「機械の検査」は、JP10114が単独で処理することがで
きない事象であり、即ちの発生はJP10114の動機により
これ以上の動作を行なう。これら事象は、EVENT20284レ
ジスタにおいて捕捉され、それ以降の取扱いのためのJP
10114の操作を停止するDP10118に対する要求を惹起する
結果となる。
要約すれば、CS10110における事象の3つの主な種類
は、追跡トラツプと、割込みと、機械検査である。これ
らの種類の事象の各々については、以下において更に詳
細に、追跡トラツプから説明することにする。
全ての可能な追跡トラツプ事象の要求の状態、即ち要求
中であるかあるいは要求中でないかは、状態M1および状
態ABの完了時点においてEVENT20284のレジスタにロード
される。即ち、トラツプ要求はその時実行中のマイクロ
命令のある昨日であるため、トラツプ要求の状態はその
時実行中の各マイクロ命令の状態M1の終りにEVENT20284
の追跡トラツプ・レジスタに対してロードされることに
なる。同様に、もしトラツプ要求が認識されるならば、
状態ABには状態M0に続く状態の第1のくろつく・サイク
ルの終りに入り、その状態は状態ABの終りにロードされ
ることになる。
認識された、即ちマスクされないトラツプ要求は未済の
要求としてRCW10358に送ることができる。認識されな
い、即ちマスクされた追跡トラツプ要求は継続中でない
要求としてRCWS10358に対し与えることがき、その後無
視される。然る後、あるマイクロ命令シーケンスが呼出
し側のマイクロ命令シーケンスへの戻りで終る時、RCW1
0358における追跡トラツプ要求を用いて追跡トラツプ事
象要求を生成することができる。
状態ABから出ると同時に、マイクロ区切り点およびマイ
クロ命令の追跡トラツプを除いて、全ての追跡トラツプ
要求は、以下に述べるように、要求されない対応するEV
ENT20284の追跡トラツプ要求レジスタにロードされる。
マウイクロ区切り点およびマイクロ命令追跡トラツプ
は、一般に状態ABの完了時の要求として常にラツチされ
ている。追跡トラチツプは明らかに、全て以下に述べる
ようにFUSITT11012により生成される追跡モード・マス
ク、不分割モード・マスクによりマスクすることができ
る。マイクロ区切り点トラツプもまた、追跡トラツプを
含むあるマイクロ命令の追跡可能フイールドにおける追
跡可能ビツトのクリアによつてマスクすることができ
る。一般に、マスキングは、マウクをクリアするマイク
ロ命令の完了によりマスクを生成するマイクロ命令の状
態M0から有効であり、マスクをクリアするマイクロ命令
により生成される追跡トラツプは、そのM0時の間続くマ
イクロ命令を打切るために用いられる。
第245図においては、典型的なトラツプ要求のためのCS1
0110の状態およびEVENT20284による対応する追跡トラツ
プ・ハンドラのマイクロ命令シーケンスに対するマイク
ロ命令アドレスの生成の状態が示される。第245図は、
第244(a)図乃至第244Z図に関して前述のものと同じ
約束を用いて描かれる。第245図においては、状態M0お
よびM1において実行中のマイクロ命令は追跡トラツプ要
求を生じるが、MR(記憶照合)の後書き状態は生成しな
い。EVENT20284に対する追跡トラツプ要求は時点Aによ
つて信号される。この追跡トラツプ要求はEVENT20284の
追跡トラツプ事象ジスタにラツチされ、打切り要求はST
ATE20294に対して与えられる。時点Bにおいては、FU10
120が状態ABおよびARに入る。EVENT20284に存在する最
優先順位事象のハンドラ・マイクロ命令シーケンスに対
するマイクロ命令アドレスはFUSITT11012に対して与え
られ、アドレス指定されたマイクロ命令シーケンスの実
行が開始する。時点Cにおいては、FU10120が状態ABお
よびARから出て状態ABに入る。状態ABは次に110ナノ秒
のクロツク・サイクルの終りに付勢される。選択された
事象ハンドラマイクロ命令シーケンスのアドレスは、状
態ABの期間中CSADRバス20204の状態を維持する。時点D
においては、以下の説明において説明するRCWS10358に
対するポインタが増分され、これにより第1のマイクロ
命令の戻り制御ワードを有効にプツシユし、即ちマイク
ロ命令はRCWS10358に対して第1の状態M0において実行
する。追跡トラツプの事象ハンドラのマイクロ命令シー
ケンスの第1のマイクロ命令はFUSITT11012によつて与
えられる。ハンドラマイクロ命令シーケンスの実行は、
第245図に示される状態タイミング・シーケンスの第3
の状態M0の開始時において開始する。この事象に対する
EVENT20284の追跡トラツプ・レジスタはこの時非要求状
態においてラツチされ、第245図に示される第2の状態M
1から変移するまでのその状態を維持する。この時、EVE
NT20284は新たなトラツプ要求をラツチする。最後に、
時点Eにおいて、EVENT20284の追跡トラツプ事象レジス
タは、時点DおよびEの間に生じる状態M0およびM1にお
いて実行中のマイクロ命令の実行から生じる新たなトラ
ツプ要求でラツチされる。時点Aの前の状態M0およびM1
において実行されたがサービスされなかつたマイクロ命
令によるトラツプは、時点Dにおいて開始される追跡ト
ラツプの事象ハンドラのマイクロ命令シーケンスから戻
ると同時に、前述の前にプツシユされたRCWがRCWS10358
から戻される時に再び要求される。サービスされた全て
の追跡トラツプ要求は、これらのトラツプ要求の循環を
阻止するためそれらの事象の事象ハンドラのマイクロ命
令シーケンスによりRCWS10358において明瞭にクリアさ
れる。MEM10112に関する読出しまたは書込みから生じる
追跡トラツプの事象要求はもしこれら要求が反復される
ならば再び生じるため、全ての打切られMEM10112の読出
しおよび書込み要求の後にEVENT20284が記憶反復割込み
を生成して、これらトラツプが最後にサービスされるこ
とを保証する。これらの読出しおよび書込み追跡トラツ
プ事象に対する事象ハンドラのマイクロ命令シーケンス
は、打切られた記憶読出しおよび書込み要求の論理記述
子におけるビツトをクリアすることによつてサービスさ
れた追跡トラツプの事象要求を確実に不作用化する。
追跡トラツプ事象の全体的な構造および作用について説
明したが、いくつかの特定の追跡トラツプの事象につい
ては以下において更に詳細に説明することにする。MEM1
0112において生ずる追跡トラツプ事象は、名前追跡トラ
ツプ、SOP追跡トラツプ、マイクロ命令追跡トラツプ、
マイクロ区切り点の追跡トラツプ、論理書込み追跡トラ
ツプ、論理読出し追跡トラツプ、UID読出し追跡トラツ
プおよびUID書込み追跡トラツプを含んでいる。これら
の追跡トラツプについては以上述べた順序により以下に
おいて説明する。
名前追跡トラツプは、名前シラブルの評価または解明を
含む各マイクロ命令シーケンスと同時に要求される。名
前追跡トラツプは、これらのマイクロ命令シーケンスの
あるマイクロ命令フイールドの復号によつて与えられ
る。名前追跡トラツプ・フイールドは、前述の如く、追
跡マスク、不分割マスク、または追跡可能のいずれかに
よつてマスクされる。これらのマスクの全ては、名前シ
ラブルの解明または評価を呼出すマイクロ命令シーケン
スにおいて与えられるマイクロ命令制御信号によつて設
定されクリアされる。
SOP追跡トラツプは、FU10120が状態FM(SOPの最初のマ
イクロ命令)に入る時常に要求され得る。SOP追跡トラ
ツプは、再びFUSITT11012のマイクロ命令制御出力によ
り与えられる追跡マスク、不分割マスクまたは追跡トラ
ツプ可能によつてマスクすることができる。一般に、こ
のようなSOPに割込みを行なうこのようなマイクロ命令
シーケンスの最初のマイクロ命令は、追跡トラツプが行
なわれる前に完了されることはない。
マイクロ命令の追跡トラツプは、戻し指令を含まないマ
イクロ命令、即ち呼出し側のマイクロ命令シーケンスに
対して10110のマイクロ命令制御を戻さないマイクロ命
令の完了と同時に要求することことができる。戻し指令
を含むマイクロ命令シーケンスの場合は、対応するRCW
におけるマイクロ命令の追跡トラツプ要求の状態が使用
される。マイクロ命令の追跡トラツプがマスクされない
各マイクロ命令は、このマイクロ命令の実行の状態M0に
おいて打切られる。マイクロ命令の追跡トラツプはFUSI
TT11012からの追跡マスク、不分割マスク、または追跡
トラツプ可能によつてマスクすることができる。マイク
ロ区切り点は、戻し指令は含まないがマイクロ命令にお
けるある追跡可能ビツトが保有されるマイクロ命令の実
行と同時に要求することができる。マイクロ潜り点は、
追跡マスク、不分割マスク、または追跡可能によつてマ
スクすることができる。更にこれらのマイクロ命令シー
ケンスにおけるマイクロ命令フイールドの追跡可能ビツ
トがマイクロ区切り点トラツプを制御する。これによ
り、マイクロ区切り点トラツプが要求される時は常に要
求されるが、マイクロ命令において表示された別の使用
可能条件を有する。唯一の認識されたトラツプがるRCW
におけるRCWS10358に対してプツシユされるため、ある
マイクロ命令の追跡トラツプおよび異なる要求状態を有
するあるまいくろ区切り点トラツプは同時にRCWS10358
に存在し得る。
論理書込み追跡トラツプは、MEM10112に対する書込み要
求を提供しかつそうするように論理記述子を用いるマイ
クロ命令シーケンスの間論理記述子におけるあるビツト
の組により使用可能状態にされる時、要求され得る。論
理書込み追跡トラツプは、もしこれらトラツプが状態MR
(メモリー照合後書き)がその直後に続くある状態にお
いて生じさえすれば、認識される。論理書込み追跡トラ
ツプは、打切られるMEM10112の書込み要求に惹起する結
果となる。論理書込み追跡トラツプは、追跡マスク、不
分割マスク、または追跡トラツプ可能によりマスク可能
である。論理書込み追跡トラツプの認識のための更に別
の条件は、記憶書込み要求の論理記述子におけるあるビ
ツトの状態によつて決定される。打切られたMEM10112要
求は論理書込み追跡トラツプが反復する可能なように再
生成されるため、一般に論理書込み追跡トラツプはRCW
の部分としてRCWS10358にプツシユされない。
論理読出し追跡トラツプはあらゆる点で論理書込み追跡
トラツプと類似するが、MEM10112の読出し要求の間に生
じる。論理読出し追跡トラツプの生成は、再びMEM10112
の読出し要求の論理記述子におけるあるビツトによつて
部分的に制御される。
CS10110のある構成においては、FU10120がUIDアドレス
即ちポインタに基づくMEM10112の読出し操作を要求す
る。もし要求されるならば、UID読出し追跡トラツプが
認識され一般にUID読出し追跡トラツプの明確なマスキ
ングは生じない。UID読出し追跡トラツプの生成は、MEM
10112の読出し要求論理記述子におけるあるビツトによ
つて制御される。UID読出し追跡トラツプ要求は、MEM10
112の読出し要求の打切りおよびCS10110の状態ABへのエ
ントリを惹起する結果となる。UID読出し追跡トラツプ
に対するハンドラのマイクロ命令シーケンスは、一般
に、MEM10112の読出し要求の再開の前にCS10110の読出
し要求論理記述子においてトラツプ可能ビツトをセツト
する。
UID書込み追跡トラツプUID読出し追跡トラツプと類似
し、UIDアドレス即ちポインタに基づくMEM10112の書込
み要求における論理記述子におけるビツトによつて制御
される。
追跡トラツプ事象の構造および作用について以上に述べ
たが,CS10110の割込み事象について以下に説明する。
前述の如く、割込みはCS10110の事象の最も大きな種類
を形成する。割込みはいくつかの種類の内の1つ以上に
該当するものと見做すことができる。最初に、メモリー
照合反復割込みは、一般に、読出しまたは書込み要求が
MEM10112に対して提供されるMEM10112に対する読出しお
よび書込み要求と関連する如き割込み事象であり、割込
み事象がその結果生じ。この割込み事象は処理され、ME
M10112の要求が反復される。第2に、遅延サービス割込
みは、CS10110が新たなSINに対するエントリまである割
込みのサービスと異なる如き割込みである。第4に、そ
の時実行中のマイクロ命令が事象ハンドラノマイクロ命
令シーケンスの補佐が完了することを要求する時に生じ
る。最後に、非同期割込み事象は如何なる時にも生じ
得、CS10110が次のマイクロ命令の状態M0を出る前にサ
ービスされねばならない。これらの割込み事象について
は以下の順序に従つて以下に説明する。
メモリー照合反復割込みは、例えば、もしあるマイクロ
命令が指令を実行するならば要求され、またRCWS10358
から読出された対応するRCWは、これから喪年が実行さ
れるマイクロ命令シーケンスへのエントリの前にあるメ
モリー照合が打切されたことを示す。このタイプの割込
み事象は全てのメモリー照合に対して生じる。如何なる
場合も、もしある事象が満たされる、即ち打切り状態に
入るならば、また打切られず未済のままのメモリー照合
が存在するならば、状態ABが終る前にメモリー照合は完
了する。メモリ反復割込み要求は、RCWS10358に対して
書込まれるRCWに対して書込まれることになる。逆に、
もしあるメモリー照合が打切られるならば、例え満たさ
れた事象がメモリー照合を打切るつた事象でなくともメ
モリー割込み要求がRCWS10358に対してプツシユされたR
CWに対して書込まれる。
メモリー反復割込みの実行のため2つの状態タイミング
・シーケンスが存在する。第1の場合においては、戻し
指令を実行するマイクロ命令におけるMEM10112の照合は
存在しない。第2の場合においては、戻し指令を実行す
るマイクロ命令は戻しを実行し、かつまたMEM10112の照
合を行なう。第246図においては、第1の場合に対するC
S10110の状態タイミング図が示されている。第246図
は、第244図および第245図に用いれたと同じ約束を用い
て描かれている。前述の如く、第1の場合においては、
戻し指令を実行するマイクロ命令が時点Dに続いて状態
M0およびM1において打切られたMEM10112の照合が行なわ
れる。MEM10112の照合打切り要求は、時点Aに続く状態
MRへのCS10110のエントリと同時に行なわれる。メモリ
ー反復割込みはRCWS10358により与えられるRCWからのみ
要求されるため、もしマイクロ命令がかかるRCWを与え
るRCWS10358を生じる結果となる戻し指令を実行するだ
けで、メモリー反復割込みが表示される。従つて、EVEN
T20284のメモリー反復割込み要求レジスタはこの時「要
求しない」状態でロードされる。時点ARおよび状態MAに
入る。この時、状態ABが時点Dの直前に付勢される時、
メモリー照合打切り要求が保有されRCWに対して書込ま
れる。時点Dにおいては、CS10110が状態ARおよび状態M
Aから出る。前述の如く、CS10110は時点Dまで状態Bを
維持することになる。時点Dにおいては、メモリー照合
打切り要求がRCWの一部としてRCWS10358に対して書込ま
れ、また以下に更に説明するように、種々のRCWS10358
のスタツク・ポインタが増分されて、このRCWをRCWS103
58に対してロードする。この時、EVENT20284の割込み要
求レジスタは、メモリー反復割込みの状態として「要求
なし」を受取る。メモリー反復割込みハンドラマイクロ
命令シーケンスの最初のマイクロ命令がFUSITT11012に
よつて与えられる。時点Eにおいて、メモリー反復割込
みハンドラマイクロ命令シーケンスの最後のマイクロ命
令がFUSITT11012により与えられ、戻し指令が復号され
る。前述のRCWS10358の前のスタツク・ポインタがRCWS1
0358をアドレス指定するように選択されて、EVENT20284
のメモリー反復割込み事象レジスタに対する出力として
前に書込まれたRCWを与える。時点Fにおいては、EVENT
20284のメモリー反復割込みレジスタがRCWS10358の出力
からロードされ、RCWS10358のスタツク・ポインタが減
分される。この時、メモリー反復割込み要求が行なわれ
て、以下において説明するように、満たされるかどうか
についてその時戻し制御ワードに書込まれる。この時JP
10114は打切られたMEM10112の照合を反復する。
第2の場合、即ち戻しを実行中のマイクロ命令もまたME
M10112の照合を行なう状態タイミング・シーケンスにお
いて、CS10110の状態のタイミングは時点Fまで同じで
ある。時点Fにおいては、MEM10112の反復要求は認識さ
れず、その時の戻し制御ワードに書込まれるメモリー反
復割込みの状態は、その時のMEM10112の照合が打切られ
るまで「要求状態ではない」。前のMEM10112の反復割込
み要求は、もはや要求されないものと仮定されるため無
視される。このように、メモリー反復割込み要求を避け
る、即ち取消す方法が2つある。第1に、MEM10112び反
復割込み要素を受取るRCWの部分は「要求を行なわな
い」ものとして再び書込むことができる。第2に、打切
られたMEM10112の照合は、打切られたMEM10112の照合を
サービスするハンドラから戻る同じマイクロ命令におい
て御乞うことができる。
あるCS10110の事象はMEM10112の読出しおよび書込み照
合の打切りをもたらす結果となり、またMEM10112の照合
の反復をもたらす結果となる。これらの事象には下記の
ものが含まれる。即ち、 (1)論理読出しおよび書込みトラツプ、更にCS10110
のある構成においては前述のUID読出しおよび書込みト
ラツプ。
(2)PC10234のミス。
(3)PC10234による保護機能の侵害の検出。
(4)MEM10112の読出しまたは書込み要求におけるペー
ジ交差。
(5)長いアドレス翻訳、即ち対応する物理的記述子を
与えるため論理記述子の評価をJP10114が行なうことを
要求するATU10228のミス。
(6)前述の如く、MEM10112に関するATU10228からのリ
セツト不適正ビツト・フラツグの検出。
(7)EU10122のスタツク桁あふれ。
(8)EU10122の違法タスク指名動作。
(9)前述の如き名前追跡トラツプ事象。
(10)以下において説明する如きストア・バツク例外条
件。
(11)ストア・バツクの打切りを惹起するEU10122の事
象、即ちEU10122からMEM10112に対する書込要求。
(12)非加速スタツク・フレームに対する読出し要求、
即ちその時MEM10112に存在するスタツク・フレーム、お
よび (13)PREF20260からのMEM10112の未済の読出し照合を
惹起するSINシーケンスにおける条件付き分岐。
これらの事象の内、論理読出しおよび書込みトラツプ、
UID読出しおよび書込みトラツプ、および名前追跡トラ
ツプについては前に述べた。前に列記した他のデータに
ついては以下において更に詳細に説明する。
PC10234のミス割込みは、論理的なMEM10112の照合と同
時に、即ちATU10228に対して論理記述子が与えられ保護
状態がPC10234においてセツトされない時に要求するこ
とができる。前述の如く、PC10234は、EVENT20284に対
して事象保護の侵害(EVENTPVIOL)を提供することによ
つて、対応するPC10234のエントリが存在しないことを
表示する。PC10234は同時に打切り出力の(ABORT)を保
有してCS10110を状態ABに強制し、これによりMEM10112
の照合の打切りを行なう。
もし論理的なMEM10112の照合即ち論理記述子がMEM10112
の2つの論理的ページに存在するオペランドを規定する
ならば、MEM10112の照合割込みと交差するページが要求
される。ATU10228の出力は、打切り出力(ABORT)を保
有することによつてこのようなMEM10112の照合の打切り
を行なう。
もし論理的なMEM10112の照合が適正なアクセス権を持た
ない、即ちモードの侵害となるかあるいはもしこの照合
が前記目的の違法部分を示唆するように見える即ちエク
ステント侵害となるならば、保護の侵害割込みが要求さ
れる。再び、PC10234は、保護侵害事象の発生を表示す
るが、これはFUSITT11012のマイクロ命令制御出力によ
り使用不能状態にすることができる。
長いアドレスの翻訳事象は、ATU10228が記憶されたエン
トリを持たない論理的なMEM10112照合と同時に要求する
ことが可能である。ATU10228は、記憶ABORTおよび長い
アドレス翻訳事象(EVENTLAT)を保有することによつて
前記のMEM10112照合の打切りを行なう。
その不適正ビツトが記憶されないATU10228における記憶
されたエントリを有するMEM10112のページに対して書込
みを行なうことをJP10114が試みる時、不適正ビツトの
リセツト事象割込みを要求することができる。ATU10228
は、出力ABORTおよび書込み長さアドレス翻訳事象(EVE
NTLAT)を保有することにより前記MEM10112の書込み要
求の打切りを行なう。
FU10120のユーザ・スタツク桁あふれ事象は、もしCS101
10のスタツク機構に関連して前に説明したその時のフレ
ームポインタと最下位のフレーム・ポインタ間の距離が
ある与えられた値よりも大きければ、要求することがで
きる。前記の如く、CS10110においては、この値は8で
ある。ユーザのスタツク桁あふれ事象はその時のフレー
ム・ポインタまたは最下位のフレーム・ポインタのいず
れかが値を変更するまで要求され続け、その結果前に規
定した異なる制限がもはや侵害されなくなる。ユーザの
スタツク桁あふれ事象は、追跡マスク、または不分割マ
スク、またはFUSITT11012からのマイクロ命令の可能出
力によりマスクすることができる。ユーザ・スタツク桁
あふれ事象に対するハンドラ・マイクロ命令シーケンス
は、これらの事象の循環を阻止するため設定されたこれ
らマスクの1つ以上を用いて実行しなければならない。
ユーザ・スタツク桁あふれ事象がマスクされる時、CS10
110はモニター・スタツク(MOS)10370について実行す
るように規定される。ユーザ・スタツク桁あふれ事象は
EVENT20284の事象レジスタのいずれにもロードされず、
あるいはこれら事象はRCWS10358に対して書込まれるべ
きRCWに対して書込まれることもない。
不当なEU10122タスク指名事象は、もしユーザ・プログ
ラムに対してアクセス可能ではないEUSITTアドレスに対
するEU10122に対して、FU10120がタスク指名を試みる、
即ち最初のマイクロ命令シーケンスのアドレスを与える
ことを試みるならば、EUSDT20266によつて要求される。
一般に、不当なEU10122タスク指名事象はマスクされな
い。不当なEU10122タスク指名事象は、状態ABからCS101
10が出ると同時にクリアされる。不当なEU10122タスク
指名事象に対するハンドラマイクロ命令シーケンスは、
一般に、これら事象の循環を阻止するためRCWにおける
不当なEU10122タスク指名事象のエントリをリセツトす
べきである。
EU10122は、もし算術演算中に多数の例外条件の内のい
ずれかが生じるならば、ストア・バツク例外事象を表示
する。これらの事象は、CS10110が状態SBに入る時に認
識され、EU10122のMEM10112に対するストア・バツクの
間を除いて無視される。これらの事象はFUSITT11012の
マイクロ命令出力により使用不能状態にすることができ
るが、一般にマスクされない。ストア・バツク例外事象
はRCW10358に記憶されるべきRCWに対して書込むことが
でき、CS10110が状態SBから出ると同時にクリアされ
る。再に、ストア・バツク例外事象ハンドラのマイクロ
命令シーケンスは、これら事象の循環を阻止するためRC
Wに対して書込まれるストア・バツク例外事象をリセツ
トしなくてはならない。
前記の如く、割込み事象の次の主な種類は遅延サービス
の割込みである。CS10110は、認識された新たなSOPの遅
延サービス割込みのエントリまで遅延サービス割込みの
サービスを遅れさせ、新たなSOPの最初のマイクロ命令
に実行の完了の前にサービスされることになる。遅延し
たサービス割込みは、重要でないMEM10112のエラー、間
隔タイマーの桁あふれ、およびIOS10116からの割込みを
含む。これらの割込みについては、以上述べた順序で以
下において説明する。
重要でないMEM10112の割込みは、補正可能な(単一ビツ
ト)MEM10112のエラーの発生と同時にMEM10112により信
号される。重要でないメモリー・エラー割込みは、SOP
の最初のマイクロ命令の状態M0の間のみ認識される。ME
M10112は、そのエラー・ロツグの読出しのためJP10114
が確認を発するまで、重要でないメモリー・エラー割込
みを保有し続けることになる。
間隔タイマー桁あふれ割込みは、以下に述べるように、
間隔タイマーが零に増分する時TIMER20296によつて表示
され、これによりある操作の実行のため許容された時間
制限の経過を表示する。間隔タイマーの桁あふれ割込み
は、1つのSOPの最初のマイクロ命令の状態M0の間に認
識される。TIMER20296は、FUSITT11012のマイクロ命令
出力によりクリアされるまでかかる割込みを要求し続け
ることになる。
IOS10116はその割込みを表示して、IOS10116からJP1011
4へのプロセツサ間メツセージが継続中であることを表
示する。IOS10116は、FUSITT11012のマイクロ命令制御
出力によりクリアされるまで、あるレジスタに記憶され
るその割込み要求を保有し続ける。IOS10116の割込み
は、SOPの最初のマイクロ命令の状態M0の間認識され
る。
CS10110の事象の次の主な種類は、実行の完了のためサ
ービスされるべきマイクロ命令シーケンスによる用件に
よる割込みである。これらの割込みは、マイクロ命令シ
ーケンスが完了される前にサービスされねばならない。
マイクロ命令のサービス割込みは、不当なSOP事象、FUS
ITT11012の試みられた分析、FU10120のスタツクの下位
桁あふれ、NC10116のカツシエのミス、またはEU10112の
スタツクの桁あふれを含む。これら事象の各々について
は以上の順序により以下に説明する。
不当なSOP事象はFUSDT11010により表示されて、その時
のSOPコードが長いコードであること、即ち8ビツトよ
りも大きなことを示すが、その時のダイアレクト(S言
語)は唯一の短い命令コード、即ち8ビツトのSOPを予
期する。不当なSOP割込みは、適正なコード長さ範囲内
の未構成のSOPについては検出されない。不当なSOP事象
は一般にマスクされない。新たなSOPがOPCODEREG20268
に対してロードされるまで、FUSDT11010は不当なSOP事
象を表示し続ける。不当なSOP事象はあるSOPの最初のマ
イクロ命令の間、即ち状態FMの間に認識される。比較的
高い優先順位事象に対するハンドラのマイクロ命令シー
ケンスがOPCODEREG20268の内容を変更するならば、打切
られたSOPが再試行される時前の不当なSOP事象が再び表
示されることになる。
FUSITT11012においてマイクロ命令が存在しないこと
は、制御ストア・アドレス無効(CSADVALID)を保有す
るFUSITT11012により表示される。このFUSITT11012の出
力はこの特定のマイクロ命令アドレスがFUSITT11012の
アドレス空間の外側を指示することを表示する。このよ
うな場合のFUSITT11012の出力は判定されず、以下に述
べるマイクロ命令出力のパリテイ検査は禁止される。こ
れら事象に対するハンドラ・マイクロ命令シーケンス
は、FUSITT11012のアドレス零に前記の如くMEM10112か
ら要求されたマイクロ命令をロードしまた元のマイクロ
命令シーケンスに戻ることになる。
分析操作が試みられ、INSTB20262が空であり、かつPREF
20260がその時MEM10112からSINを要求しない時、停止さ
れたINSTB20262の試みられた分析がINSTBWC24110によつ
て表示される。一般に、これらの事象はマスクされな
い。もし比較的高い優先順位の事象がサービスされるな
らば、もし元の条件が依然として適合する場合に打切ら
れたマイクロ命令が再試行される時、これらの事象が再
び表示される。
その時のマイクロ命令が加速されないスタツクに存在し
ない前のスタツク・フレームを照合する時、即ちその時
のスタツク・ポインタが最下位のスタツク・ポインタと
等しい時、FU10120のスタツク下位桁あふれ事象が要求
される。一般に、FU10120の下位桁あふれ事象はマスク
されず、またもしマイクロ命令が打切られこの事象がサ
ービスされなかつた場合は、ある再試行において要求さ
れる。
NC10226のロード即ち読出しが試みられてその名前シラ
ブルと対応する有効なNC10226のブロツクが存在しない
時、NC10226のミス割込みはMEM10112の読出しまたは書
込操作と同時に発生する。NC10226のミス事象は、名前
の評価または解明に対する要求を惹起しない。一般に、
これらの事象はマスクされず、もしこの事象を惹起する
マイクロ命令が再試行されてサービスされなかつたなら
ば、要求を再び発する結果となる。
EU10122のスタツク桁あふれ事象はEU10122から要求され
て、EU10122がその時既に少なくとも1つの割込みレベ
ルをサービス中であること、EU10122が別の割り込みレ
ベルを要求中であることを表示する。EU10122の以下の
説明において説明するように、EU10122は割込みの処理
のための1つのレベルの深さのスタツクを含む。EU1012
2のスタツクの桁あふれ事象は状態NWの間に使用可能状
態にさせられる。EU10122のスタツクの桁あふれ事象要
求が認識される前に、全ての前に継続中の事象がサービ
スされることになる。これらの事象は、最も高い優先順
位の割込み事象である以降の状態M0へのエントリに際し
て即時サービスされる。一般に、EU10122のスタツクの
桁あふれ事象はマスクされず、一旦認識されると次に満
たされる事象である。
最後に、CS10110の割込み事象の第3の主な種類は非同
期事象である。非同期事象は、一般に、これらが認識さ
れた後にあるマイクロ命令の状態M0を付勢する前にサー
ビスされねばならない。非同期事象は、重要なメモリー
・エラー事象と、AC電源障害事象と、エツグ・タイマー
桁あふれ事象と、EU10122のスタツク下位桁あふれ事象
を含む。CS10110のエツグ・タイマーはTIMER20296の部
分であり、以下においてTIMER20296に部分として論述す
る、これら事象は以上述べた順序において以下に説明す
る。
重要なMEM10112のエラー事象は、MEM10112から読出され
た最後のデータが訂正不能なエラーを含む時、前記の如
く制御信号出力PMODIの保有によつてMEM10112により要
求される。重要なMEM10112のエラー事象は発生後最初の
状態M0に際して認識される。重要なMEM10112のエラー事
象はEVENT20284の事象レジスタにおいて記憶され、その
サービスのマイクロ命令シーケンスへのエントリと同時
にクリアされる。一般に、重要なMEM10112のエラー事象
はマスクされ得ない。
AC電源障害事象は、DP10118がCS10110に対する電源の障
害を検出する時出力信号ACFAAILの保有によりDP10118に
よつて表示される。AC電源の障害事象の認識は、AC電源
障害事象ハンドラのマイクロ命令シーケンスへのエント
リと同時に再び作用状態にさせられる。DP10118がJP101
14の操作を再び開始するまでは、この他のAC電源障害事
象は認識されることはない。
以下において更に説明するように、FUCTL20214のエツグ
・タイマーはTIMER20296の部分である。エツグ・タイマ
ーの桁あふれ事象は、TIMER20296のエツグ・タイマーが
エツク・タイマー・カウンタの桁あふれを表示する時は
常に、TIMER20296により表示される。エツグ・タイマー
の桁あふれ事象は、以下の説明において説明するように
マスクすることができる。
最後に、EU10122のスタツク下位桁あふれ事象は、EU101
22からのワードを読出すように指令される時、また加速
されたスタツク・フレームが存在しない時、EU10122に
よつて信号される。JP10114によりハンドラのマイクロ
命令シーケンスの開始により確認されるまでは、この事
象割込みを保有し続けることになる。
CS10110の事象の以上の説明は、これら事象のあるもの
の認識がマスクされ得ること、即ち他のより高い優先順
位を有する事象の認識を許容するため禁止されることと
説明した。これらのマスキング操作のあるものは以上の
せつめいにおいて簡単に記述したが、以下において更に
詳細に説明することにする。一般に、事象の認識は5つ
の方法でマスクが可能であるが、その内の4つはマスク
として正しく示されている。これら4つのマスクはFUSI
TT11012からのマイクロ命令シーケンスにより生成さ
れ、一般に非同期事象に対する非同期マスクを含んでい
る。モニラー・マスクは前にCS10110のスタツク機構に
関連して説明したように、モニター・スタツク(MOS)
に関して実施されるこれらのCS10110の諸操作のため使
用される。追跡マスクは追跡トラツプ事象に関して使用
される。不分割マスクは、あるマイクロ命令の一体の即
ち不分割部分としてFUSITT11012により生成即ち提供さ
れ、ある単一のマイクロ命令の間ある選択された事象の
認識を許容する。ある他の事象、例えば論理的な読出し
および書込みトラツプ、およびUID読出しおよび書込み
トラツプは、これらの操作と関連する論理記述子におけ
るフラツグ・ビツトにより認識され即ちマスクされる。
最後に、あるマイクロ命令により、FUSITT11012がある
事象の認識を可能または禁止するマイクロ命令制御出力
を与える結果を生じるが、単一の特定のマイクロ命令と
関連しない点で不分割マスクとは異なる。
台247図においては、あるCS10110の事象の相対的な優先
レベルおよび使用可能なマスクが3つの垂直方向の欄内
に示されている。特定の事象の優先順位およびマスキン
グに関する情報が、各々がこれら3つの垂直方向の各欄
におけるエントリを構成する水平方向のエントリにおい
て示されている。優先順位レベルと呼ばれる左欄は、各
事象エントリの相対的な優先順位を説明している。「事
象」と表示される第2の欄は、どの事象がこのテーブル
のエントリにおいて指示されるかを示される。特定の事
象は全ての比較高い優先順位事象に対する優先順位を生
じ、また全ての比較的低い優先順位事象に勝る統括を有
する。「マスキングの主体」と表示される台247図の第
3の欄は、対応する事象のマスキングのためどのマスク
の使用が可能かを各エントリ毎に規定している。Aは非
同期マスクの用途を示し、Mはモニター・マスクの用
途、Tは追跡トラツプ・マスクの用途、およびIは不分
割マルクが使用可能であることを示す。DESはある事象
が論理記述子のフラツグ・ビツトにより使用可能状態即
ちマスクされることを示し、MCWDはFUSITT11012により
与えられるマイクロ命令の制御信号出力によりマスクさ
れることができることを示している。「なし」とは、一
般にある事象がマスクできないことを示す。
CS10110の事象の最後の主な種類については、機械の検
査事象として前に説明した。一般に、もしこれらの事象
のいずれかがEVENT20284における論理ゲート作用により
検出されるならば、EVENT20284はDP10118に対する機械
の検査信号を提供する。この時DP10118はJP10114の走査
を停止し、機械の検査事象ハンドラ・マイクロ命令シー
ケンスが開始される。これらの内には機械検査事象が存
在し、これにおいてはFU10120がEU10122の結果をMEM101
12に対して再び記憶しようと試み、EU10122はEU10122の
制御ストアにおけるパリテイ・エラーを信号する。これ
らの事象はEVENT20284の事象レジスタに記憶して、何時
FU10120が状態ABに入るかを認識する。EU10122はは、活
動状態のマイクロ命令シーケンスが開始することができ
るまで前以つて動作を停止している。もしEU10122の制
御ストアにおけるパリテイ・エラーを有するEU10122の
算術演算結果または検査走査の結果をFU10120が用いよ
うとするならば、同じ事象が生じる。もしMOS10370の桁
あふれまたは下位桁あふれが生じるならば、この事象は
検出されて、FU10120の操作は停止され、補正マイクロ
命令シーケンス 開始される。前のMOS10370のスタツク
・フレームが照合される時、またはMOS10370のスタツク
・ポインタがMOS10370の最下位スタツク・ポインタと等
しい時、またはMOS10370と最下位スタツク・ポインタ間
の差異が16より大きい時は常に、MOS10370の桁あふれま
たは下位桁あふれが生じる。下位桁あふれはMIS10368に
対する操作の転送を生じる結果となるが、桁あふれはDP
10118により処理される。最後に、FUSITT11012によりそ
の時行なわれるマイクロ命令の状態M0の間にあるパリテ
イ・エラーが前記マイクロ命令において検出される時、
機械検査事象が要求されることになる。
EVENT20284の全体的な作用について説明したが、EVENT2
0284の構造および作用について説明したが、EVENT20284
の構造およびさようについて次に簡単に説明する。
第248図においては、EVENT20284の部分的ブロツク図が
示される。EVENT20284は、事象検出器(EDET)24810、
事象マスク兼レジスタ回路(ERM)24812、および事象ハ
ンドラ選択ロジツク(EHS)24814を含む。EDET24810
は、ランダム・ロジツク・ゲートからなり、前述の如
く、CS10110の回路の他の部分から事象条件を表わす入
力を受取る。EDET24810は、事象が生じたことを示すCS1
0110の作用条件の発生を検出し、どんな事象が要求され
るかを示す出力をEMR24812に対して与える。
EMR24812は、例えばEVENT20284の事象レジスタを構成す
るSN74S194なる1組のレジスタを含む。これらのレジス
タは今述べるマスク入力により使用可能状態にされ、EV
ENT20284の事象レジスタにおいてラツチされるこれらの
事象のマスキングを可能にする。ある事象は前述の如く
ラツチされず、ラツチされない事象のマスキングを可能
にするため、マスク可能入力を有する論理ゲートが設け
られる。EMR24812のマク入力とは、FUSITT11012により
与えられる、それぞれAMSK、MMSK、TMSKおよびISMKで示
される非同期、モニター、追跡トラツプおよび不分割の
各マスクである。FUSITT11012のマイクロ命令出力(mWR
D)から得られるマスク入力は、FUSITT11012のマイクロ
命令出力制御出力から与えられる。EMR24812は、EH2481
4に対して要求されたマスクおよびアンマスク事象を表
わす出力を与える。
EHS24812は、EHS24812のアンマスクされた事象要求のど
れが最も高い優先順位であるかを検出する論理ゲートか
らなる。EHS24814は最優先順位のアンマスクされた事象
要求入力を説明し、ADRAバス24322を介しEVENTGT24310
に対して対応する事象ハンドラ・マイクロ命令アドレス
を提供する。EHS24814のこれらのアドレス出力は、その
時の最優先順位のアンマスクされた事象の事象ハンドラ
・マイクロ命令シーケンスの最初のマイクロ命令を選択
する5ビツトのアドレスである。NASMUX24312に関して
前に説明したように、EVENTGT24310のある入力はこのEV
ENTGT24310からの全15ビツトのアドレス出力を与えるよ
うにハードワイアドされている。EVENT20284はまた、SI
TTNAS20286に対するEHS24814からの事象可能選択(EE
S)出力を与えて、EVENT20284がその時の事象の処理の
ためのマイクロ命令アドレスを与えなければなない時、
EVENTGT24310をしてCSADRバス20204に対してマイクロ命
令アドレスを与えさせる。
FUSITT11012に対してマイクロ命令アドレスを与えるFUC
TL20214の回路の構造および作用について説明したが、
次にFUSITT11012について説明する。
c.c.c.取出し装置S命令テーブル11012(第249図) 第249図においては、FUSITT11012の部分的なブロツク図
が示される。マイクロ命令制御ストア(mCS)24910のア
ドレス(ADR)およびデータ(DATA)入力は、アドレス
・ドライバ(ADRDV)24912を介してCSADRバス20204と、
またデータ・ドライバ(DDRV)を介してJPDバス10142と
それぞれ接続されている。mCS24910は、CS10110により
その持使用中のマイクロ命令のシーケンスを記憶するた
めのメモリーを構成する。mCS24910は8K(8192)ワード
X80ビツト巾のメモリーである。即ち、mCS24910は、例
えば、8192ビツト巾以下のマイクロ命令を保有すること
がで。きる。mCS24910に対して書込まれるべきマイクロ
命令は、前述の如く、JPDバス10142からDDRV24914を介
してmCS24910のデータ入力に対して与えられる。mCS249
10に関して書込みまたは読出しされるべきマイクロ命令
アドレスは、CSADRバス20204からADRDRV239129を介して
mCS24910のアドレス入力に対して与えられる。ADRDV249
12およびDDRV23914は、例えばSN74S240およびSN74S244
からなるバツフア・ドライバである。
またADRDV24912の出力から接続されているのは、非存在
マイクロ命令ロジツク(NPmIS)24916の入力である。NP
mIS24916は、mCS24910に対して与えられる論理ゲートの
モニタリング読出しアドレスからなる。CSADRバス20204
に存在するマイクロ命令読出しアドレスは、mCS24910内
のアドレス空間内ではないアドレス場所を指す時、即ち
非存在マイクロ命令である時、NPmIS24916はこの発生を
示す事象要求出力を生じる。前述の如く、FUCTL20214は
この時MEM10112からアドレス指定されたマイクロ命令を
呼出してこれを実行する。
第249図に示すように、mCS24910は3組の出力を生じ
る。これらの出力は、直接出力(DO)、直接復号出力
(DDO)およびバツフアされた復号出力(BDO)である。
一般に、ある特定のマイクロ命令ワード内の制御情報
は、この特定のマイクロ命令ワードがmCS24910のアドレ
ス入力に対して与えられた後次のクロツク・サイクルと
同時に使用される。
即ち、ある最初のクロツク・サイクルの間、マイクロ命
令のあるアドレスがmCS24910のアドレス入力に対して与
えられる。この選択されたマイクロ命令は、前記クロツ
ク・サイクルの間にmCS24910のDO、DDOおよびBDO出力上
に現われて、復号の後次のクロツク・サイクルにおいて
使用される。出力DO、DDOおよびBDOは、復号されたマイ
クロ命令出力が使用できるようになる前の遅延時間にお
いて異なる。
mCS24910のDO出力は、直接出力バツフアー(DOB)24918
を介して特定の行先即ちユーザに対してマイクロ命令ワ
ードのあるビツトを直接与える。これらのマイクロ命令
ビツトは、必要に応じてそれらの行先においてラツチさ
れ復号される。DOB24918は、例えばSN74S04からなるも
のでもよい。
mCS24910のDDO出力は、これらの復号された制御信号が
使用されるクロツク・サイクルの開始時において、完全
に復号された制御信号の存在を要求する機能のための復
号されたマイクロ命令制御出力を与える。第249図に示
すように、mCS24910のDDO出力は直接復号ロジツク(DD
L)24920の入力側と接続されている。DDL24920は、ある
マイクロ命令ワード・ビツトがmCS24910のDDOによつて
与えられる同じクロツク・サイクルの間あるマイクロ命
令ワードビツトを複合するための論理ゲートからなる。
これらのマイクロ命令ビツトは、前述の如く、対応する
アドレスがmCS24910のアドレス入力に対して与えられる
同じクロツク・サイクルの間に与えられる。このクロツ
ク・サイクルの間、DDL24920はmCS24910のDDOマイクロ
命令ビツトを復号して、このクロツク・サイクルの終り
により完全に復号された出力を与える。DDL24920の出力
は、直接復号レジスタ(DDR)24922の入力に対して接続
される。DDR24922は、例えばSN74S374からなるレジスタ
である。DDL24920の完全に復号された出力は、前述の如
くあるアドレスがmCS24910のアドレス入力に対して与え
られ、かつmCS24910の対応するDDO出力がDDL24920によ
つて復号されるクロツク・サイクルの終りにおいて、DD
R24922に対してロードされる。mCS24910のDDO出力に対
応する完全に復号されたマイクロ命令制御出力はこれに
より、第2のクロツク・サイクルの開始時において使用
可能となる。DDR24922のマイクロ命令制御出力はこれに
より、FUSITT11012から即時の即ち遅れのないマイクロ
命令制御信号出力を要求する如きFU10120の動作のため
の第2のクロツク・サイクルの開始時において、FU1012
0に対して使用可能となる。
最後に、mCS24910のBDOは、第2のクロツク・サイクル
の開始時と同時にマイクロ命令制御出力を要求しない如
きFU10120の動作に対して与えられる。第249図に示され
るように、mCS24910のBDOは、バツフアされた復号レジ
スタ(BDR)24924の入力に対して接続されている。mCS2
4910のBDOからのマイクロ命令ワード出力ビツトは、対
応するアドレスがmCS24910のアドレス入力に対して与え
られるクロツク・サイクルの間BDR24924の入力側に対し
て与えられる。mCS24910のBDO出力は、このクロツク・
サイクルの終りにおいてBDR24924に対してロードされ
る。BDR24924の出力は、バツフアされた復号ロジツク
(BDL)24926の入力に対して接続される。BDL24926はBD
R24924の復号出力に対する論理ゲートからなる。これに
より、BDL24926は、第2のクロツク・サイクルの開始後
のある遅れた時点でFU10120に対して復号されたマイク
ロ命令制御出力を与える。BDL24926からのマイクロ命令
制御出力はこれにより、DDR24922のマイクロ命令制御出
力の発生から時間的に遅らされるが、BDR24924が復号さ
れたマイクロ命令ワード・ビツトではないマイクロ命令
ワード・ビツトではないマイクロ命令ワード・ビツトを
記憶するため、BDR24924はDDR24922よりも非率的に少な
いビツトを記憶することを要求される。
最後に、第249図に示すように、DDR24922およびBDR2492
4の出力は、マイクロ命令ワード・パリテイ検出器(mWP
C)24928の入力側と接続される。mWPC24928は、DDR2492
2およびBDR24924の出力のパリテイを検査するための論
理ゲートからなつている。DDR24922およびBDR24924のい
ずれかの出力のパリテイにおける障害は、mCS24910から
のマイクロ命令における可能性のあるエラーを表示す
る。このようなエラーがmWPC24928により検出される
時、mWPC24928は対応するマイクロ命令ワード・パリテ
イ・エラー(mWPE)を生成する。
d.d.CS10110の内部機構制御装置 SR10362と関連しているのは、GRF10354のスタツク機構
領域は、CS10110の内部機構番号作用と主として関連す
る2つのCS10110の制御構造である。これらの機械制御
ブロツクと呼ばれる第1のものは、JP10114のマイクロ
プログラムのその時の実行環境、即ちJP10114のマイク
ロ命令シーケンスを記述する。機械制御ブロツクは、MC
W120290およびMCW020292に駐在する2つの情報ワードか
らなる。これらの機械制御ワードは、JP10114のその時
のマイクロプログラムの実行に必要な全ての制御状態情
報を含む。第2の制御構造は、前述の如くSR10362の構
造と並行するRCWS10358の一部である。MIS10368またはM
OS10370における各レジスタ・フレームは、最上位の
(その時の)レジスタ・フレームを例外として、これと
RCW10358に駐在する戻し制御ワード(RCW)と関連させ
ている。RCWは、SR10362またはMOS10370のレジスタ・フ
レームがプツシユされる時、即ち新たなその時のレジス
タ・フレームの形成のためMIS10368またはMOS10370に対
して移動される時に生成される。その時のRCWはCS10110
の本実施態様には存在しない。
以下において、RCWS10358について最初に説明し、機械
制御ブロツクがこれに続く。
a.a.a.戻し制御ワード・スタツク10358(第251図) 第251図においては、RCWS10358の略図が示される。前述
の如く、RCWS10358のRCは、もし前記シーケンスの実行
が遮断されるならば、あるマイクロ命令シーケンスの実
行を再開もしくは継続するため必要な情報を含む。ある
マイクロ命令シーケンスの実行は、前述の如くC10110の
ある事象のサービスの用件の故に、あるいはもしある分
岐またはケース操作における如く、別のマイクロ命令シ
ーケンスの実行のため呼出されたならば、遮断すること
ができる。
第251図に示すように、各RCWは、例えば32ビツトの情報
を保有することができる。RCWに含まれるビツト16乃至3
1は、前述の如く遮断されたマイクロ命令シーケンスの
その時のマイクロ命令アドレスの記憶と主として関連す
る。ビツト16乃至31はマイクロ命令シーケンスの戻りア
ドレスを含む。前述の如く、戻りアドレスは、その実行
が遮断されたマイクロ命令シーケンスの内その時実行中
のマイクロ命令のアドレスである。JP10114がある事象
のサービス、即ち呼出されたマイクロ命令シーケンスの
実行から戻る時、戻りアドレスが、このマイクロ命令シ
ーケンスの実行の再開のがめの次のマイクロ命令アドレ
スとして、RCW10358からSITTNAS20286に対して、またCS
ADRバス20204を経てFUSITT11012に対して与えられる。
あるRCWのビツト16は、戻りアドレス・フイールドによ
り照合される特定のマイクロ命令がある特定のSOPの最
初のマイクロ命令であるかどうかを示す状態ビツトを保
有する。即ち、1つのRCWのビツト16はCS10110の状態FM
を記憶する。
あるRCWに含まれるビツト8乃至15は、JP10114のその時
の条件コードおよび継続中の割込み要求に関する情報を
含む。特に、ビツト8は、前述の如くある特定のテスト
条件が満たされたかどうかを表示する条件コード・ビツ
トを保有する。前述の如く、RCWのビツト8はこれによ
りJP10114がパス可能な手段であり、1つのマイクロ命
令シーケンスからあるRCWに含まれる別のビツト9乃至1
5に対する特定のテストの結果はその時継続中の割込み
に関する情報を含む。これらの割込みは、一般にEVEVT2
0284に関連して前に論述した。特に、RCWのビツト9は
違法のEU10122のタスク指名割込み要求の継続状態を含
み、RCWのビツト10は名前追跡トラツプ要求の継続状態
を含み、RCWのビツト11はストア・バツク割込み要求の
継続状態を含み、RCWのビツト12はメモリー反復割込み
要求の継続状態を含み、RCWのビツト13はSOP追跡トラツ
プ要求の継続状態を含み、RCWのビツト14はマイクロ追
跡トラツプ要求の継続状態を含み、RCWのビツト15はマ
イクロ区切り点トラツプ要求の継続状態を含む。継続中
の割込みに関する情報を含むCS10110の機構の使用を必
要とする割込み取扱いマイクロ命令シーケンスは、一般
に前記情報を保管してこれを記憶しなければならない。
この保管および再記憶操作は、RCW10358のビツト9乃至
15の使用によつて達成される。割込み取扱いマイクロ命
令シーケンスに対するエントリと同時に、これらのビツ
ト・フラツグは、前記マイクロ命令シーケンスに対する
エントリの時点において未済であつた割込みを表示する
ようにセツトされる。これらのビツトは戻り操作同時に
割込み要求を開始するため使用されるため、継続する割
込みは戻し操作と同時にビツト9乃至15の適当なビツト
をリセツトすることにより打消すことができる。この能
力は、前に述べたマイクロ命令の追跡トラツプの構成に
使用することができる。
第251図に示すように、RCWのビツト0乃至7はCS10110
の本実施例においては使用されない。RCWのビツト0乃
至7はCS10110の本実施例において構成されないが、将
来の使用のため留保されている。
前述の如く、RCWはJPDバス10142からRCW10358に関して
書込みまたは読出しが可能である。このため、必要に応
じて、RCW10358の内容を最初に書込み、あるいはRCW103
58からMEM10112へ読込み、然る後必要に応じてCS10110
におけるプロセスのスワツピングのため復元させること
ができる。
b.b.b.機械制御ブロツク(第252図) 前述の如く、FUCTL20214の機械制御ブロツクは、機械制
御ワード1(MCW1)および機械ワード0(MCW0)からな
つている。MCW1およびMCW0は、それぞれレジスタMCW120
290およびMCW020292に駐在する。MCW1およびMCW0は、FU
CTL20214のその時のマイクロプログラムのその時の実行
環境、即ちJP10114によりその時実行中のマイクロ命令
シーケンスについて記述する。
第252図においては、MCW0およびMCW1の略図が示され
る。同図に示すように、MCW0およびMCW1は各々、例えば
その時のマイクロプログラムの実行環境に関する32ビツ
トの情報を含むことができる。
MCW0について説明すると、MCW0は6つの実行環境サブフ
イールドを含む。ビツト0乃至3は、加速されたマイク
ロスタツク(MIS)10368のその時のフレームに対するポ
インタであるスタツク・カウンタの最上位(TOSCNT)サ
ブフイールドのを含む。ビツト4乃至7は、加速された
MIS10368の前のフレーム、即ちTOSCNTサブフレームによ
り指示されたものより先行するMIS10368のフレームに対
するポインタであるスタツク1カウンタの最上位(TOS-
1CT)を構成する。TOS1CNTサブフイールドは、最初にMI
S10368のフレーム0にセツトされる。ビツト8乃至11
は、加速されたMIS10368の最下フレームに対するポイン
タであるいスタツク・カウンタの最下位(BOSNCT)を構
成する。BOSCNTサブフイールドはMIS10368のフレーム1
を指示するように最初にセツトされる。MCW0のTOSCNT、
TOS-1CNT、およびBOSCNTの各サブフイールドは、フレー
ムがMIS10368とSS10336間に転送される時マイクロプロ
グラムの制御下において読出し、書込み増分および減分
することができる。
MCW0のビツト17乃至23およびビツト24乃至31はそれぞれ
ページ番号レジスタ(PNREG)および循環カウンタ(REP
CTR)を構成し、これらは共にその時FUSITT11012に書込
まれつつあるマイクロ命令と指示するマイクロ命令アド
レスを構成する。
MCW0のビツト12乃至15は、以下において更にTIMER20298
に関して説明するするエツグ・タイマー(EGGT)サブフ
イールドを構成する。MCW0のビツト16は、CS10110の本
実施例においては使用されない。
MCW1については、MCW1を構成する32ビツトの内、ビツト
0〜15およびビツト24〜25はCS10110の本実施例におい
ては使用されない。ビツト16は、JP10114におけるある
テスト条件の結果を示す条件コード(CC)からなる。前
述の如く、CCサブフイールドは自動的にRCWS10358に保
管され復元される。
RCW1のビツト17乃至19は割込みマスタ(IM)サブフイー
ルドを構成する。IMサブフイールドの3つのビツトは、
割込み不能JP10114のマイクロ命令制御操作条件の階層
を示すため使用される。即ち、これに記憶された3ビツ
ト・コードが、さもなければ割込み不能なJP10114の4
つの操作状態間の割込みのための相対的割込みを表示す
る。ビツト20乃至23は、割込み要求を示す割込み要求
(IR)サブフイールドを構成する。これらの割込み要求
は、既に述べたように、例えばエツグ・タイマー桁あふ
れ、間隔タイマー桁あふれ、または重要でないメモリー
・エラーを含む。最後に、ビツト26乃至31は、前述の追
跡トラツプ事象のどれがその時使用可能状態になるかを
示す追跡トラツプ使用可能(TTR)サブフイールドを構
成する。これらの使用可能状態は、名前追跡可能、論理
的再追跡可能、論理的書込み追跡可能、SOP追跡可能、
マイクロ命令使用可能、マイクロ命令区切り点使用可能
の各々を含む。
MCW0およびMCW1については、あたかもMCW120290およびM
CW020292である個々の離散状態の存在を含むレジスタに
駐在するかの如く前に述べた。CS10110の本実施例にお
いては、MCW120290およびMCW020292は一体化された離散
レジスタ構造としては存在しないが、その代りFUCTL202
14の他の部分における物理的存在を有する個々のレジス
タからなる。MCW120290およびMCW020292、およびMCW1お
よびMCW0については、これに含まれる情報の構造を更に
名称に示すように説明された。更に、この試みは、その
時のJP10114の実行状態がJPDバス10142により制御され
監視することができる方法を示すため用いられた。第20
2図に示すように、MCW120290およびMCW020292はJPDバス
10142と結合された出力を有し、これによりJP10114のそ
の時の時効状態がFUCTL20214から読出されることを可能
にする。前述の如く、個々のビツト即ちMCW0およびMCW1
のサブフイールドは、FUSITT11012により与えられるマ
イクロ命令の制御によつて書込むことができる。CS1011
0の物理的な本実施例においては、TOSCNT、TOS-1CNTお
よびBOSCNTなるサブフイールドを含むMCW020292のこれ
らのレジスタがRAG20288に駐在する。サブフイールドEG
GTを含むMCW020292のこれらの部分はTIMER20296に駐在
する。MCW020292はPNREGを含み、REPCTRサブフイールド
は物理的REPSTR20280およびPNREG20282からなつてい
る。MCW120290においては、CCサブフイールドはFUCTL20
214のテスト回路の出力として存在する。サブフイール
ドIM、IRおよびTTEを含むこれらのMCW120290のレジスタ
はEVENT20284内に駐在する。
RCWS10358のMCW120290およびMCW020292に関してFUCTL20
214の構造および作用について説明したが、次にFUCTL20
214のRAG20288について説明することにする。
c.c.c.レジスタ・アドレス・ゼネレータ20228(第253
図) 第253図においては、RAG20288の部分ブロツク図は、GRF
10354、BIAS20246およびRCWS10358の略図と共に示され
る。前述の如く、JP10114のレジスタおよびスタツク機
構は汎用レジスタ・フアイル(GRF)10354、BIAS20246
およびRCWS10358を含む。GRF10354は、CS10110の本実施
例において、レジスタの256ワードX92ビツト巾を有す
る。GRF10354は水平方向に分割されて大域レジスタ(G
R)10360およびスタツク・レジスタ(SR)10362を提供
し、その各々はGRF10354の256個のレジスタの内128個を
含む。GRF10354即ちGR10360およびSR10362の双方は、AO
NGRF20232、OFFGRF20234およびLENGRF20236として示さ
れる3つの垂直方向の部分に分割されている。AONGRF20
232、OFFGRF20234およびLENGRF20236は、それぞれ28ビ
ツト、32ビツトおよび32ビツトの巾である。GR10360
は、各々が1つの92ビツト・ワードを含む128の個々の
レジスタのアレーとして使用される。SR10362は、各フ
レームが8つのレジスタを含み、各レジスタが1つの92
ビツト巾のワードを含む16個のレジスタ・フレームのア
レーとして構成され使用される。SR10362のフレームの
内8つは、マイクロスタツク(MIS)10362として使用さ
れ、SR10362フレームの残る8つはモニター・スタツク
(MOS)10370として使用される。アドレス指定の目的と
してだけ、以下において述べる如く、GR10360はSR10362
と同じ方向で構造され、即ち各々8つのレジスタの16フ
レームとして構成されるものと見做される。
前述の如く、BIAS20246はその内部の1つのレジスタ・
アレーである。BIAS20246は、128構成の6ビツト巾のレ
ジスタ即ちワードを含み、GRF10354のSR10362と並列に
作動し、かつこれと並列にアドレス指定される。前述の
如く、RCWS10358は16構成のレジスタ即ちワードのアレ
ーであり、各々レジスタは1つの32ビツトRCWを保有す
る。RCWS10358は、各々の10358のレジスタが8つのレジ
スタのSR10362のフレームと対応する各RCWS10358の各レ
ジスタを有するSR10362と並列に構成されこれと並列に
作用する。以下において述べるように、RCWS10358はSR1
0362のフレームと並列にアドレス指定される。
GRF10354のレジスタをそれぞれ読出しまたは書込みされ
るべく選択するためのソースおよび行先レジスタ・アド
レス(SDAR)はRAG20288によつて与えられる。前述の如
く、BIAS20246はGRF10354のSR10362の部分と並列に、即
ちSR10362と並列に作用しかつこれと並列にアドレス指
定される。BIAS20246のレジスタは、これによりSR10362
のアドレス入力に対して並列に接続され、GR10360と同
時にアドレス指定される。RCWS10358はまた、SR10362と
並列に作用しかつこれと並列にアドレス指定される。RC
WS10358のレジスタのアドレス入力はこれにより、SR103
62のレジスタのアドレス入力と並列に接続されている。
GRF10354に対する、またBIAS20246およびRCWS10358に対
するRAG20288Rのアドレス入力は、内部のレジスタをソ
ース・レジスタ即ちデータを与えるレジスタまたは行先
レジスタ即ちデータを受取るレジスタとして選択するこ
とができる。RAG20288のアドレス出力はその出力ソース
および行先レジスタ・アドレス(SDADR)として示され
る。RAG20288のSDADR出力は、GRF10354、BIAS20246およ
びRCWS10358を構成するレジスタのアドレス入力と接続
される。前述の如く、SR10362は1フレーム当り8つの
レジスタの16フレームとして構成され、RCWS10358は1
フレーム当り1つのレジスタの対応する16のフレームと
して構成される。GRF10354およびBIAS20246は単一レジ
スタとしておよびされて使用されるが、アドレス指定の
ためには、1フレーム当り8つのレジスタの16フレーム
からなるものと見做される。RAG20288のかくSDADR出力
は、ソース・レジスタまたは行先レジスタの如何を問わ
ず、アドレス指定されたレジスタがGR10360内に駐在す
るかあるいはSR10362、BIAS20246およびRCWS10358内に
駐在するかを表示する8ビツト・ワードである。4つの
次の優先順位のビツトは、GR10360内、またはSR10362、
BIAS20246およびRCWS10358内の16フレームの内の1つを
選択するためのフレーム選択フイールドを構成する。3
つの最下位ビツトは、フレーム選択フイールドにより選
択されるフレーム内のある特定のレジスタを選択するレ
ジスタ選択フイールドを構成する。
1つのシステムのクロツク・サイクル内では、RAG20288
のSDADR出力はあるソース・レジスタを選択することが
でき、データはこのソース・レジスタから読出すことが
でき、あるいはSDADR出力は行先レジスタを選択でき、
またデータはこの行先レジスタ内に書込むことができ
る。前述の如く、JP10114の各マイクロ命令は、実行の
ための最短でシステムの2クロツク・サイクル、即ち状
態M0における最初のクロツク・サイクルおよび状態M1に
おける第2のクロツク・サイクルを必要とする。従つ
て、1つのマイクロ命令において、ソース・レジスタが
選択され、データがこのソース・レジスタから読出さ
れ、行先レジスタが選択され、データはこの行先レジス
タに対して書込まれる。しかし、ある操作は実行のため
1つ以上のマイクロ命令を要求する。例えば、データが
ある特定のレジスタから読出されて、修正され、このレ
ジスタに再び書込まれる読出し‐修正‐書込み操作は、
実行のため2つ以上のマイクロ命令を必要とする。
最初にRAG20288の構造について述べれば、RAG20288はMI
SPR10356を含む。MISPR10356はスタツク・カウンタの最
上位(TOSCNT)25310と、スタツク・カウンタ(TOS-1CN
T)25312と、スタツク・カウンタの最下位(BOSCNT)25
314とを含む。TOSCNT25310、TOS-1CNT25312およびBOSCN
T25314の内容はそれぞれ、SR10362のその時の、前のお
よび最下位のフレーム、即ちMIS10368に対するポインタ
である。以下において述べるように、これらのポインタ
もまたMOS10370のアドレス指定のため使用される。TOSC
NT25310、TOS-1CNT25312およびBOSCNT25314は各々、例
えばSN74S163からなる4ビツトの2進数カウンタであ
る。
BOSCNT25314に対するTOSCNT25310のデータ入力はJPDバ
ス10142と接続されている。BOSCNT25314に対するTOSCNT
25310の制御入力は、FUSITT11012のマイクロ命令制御出
力と接続されている。BOSCNT25314に対するTOSCNT25310
のデータ出力は、ソース・レジスタ・アドレス・マルチ
プレクサ(SRCADR)25316のデータ入力は、および行先
レジスタ・アドレス・マルチプレクサ(DSTADR)25318
のデータ入力と接続されている。TOSCNT25310およびBOS
CNT25314のデータ出力はスタツク事象モニター・ロジツ
ク(SEM)25320の入力側と接続されている。
ソースおよび行先フレーム・アドレスは、以下において
更に説明するように、それぞれSRCADR25316およびDSTAD
R25318により選択される。TOSCNT25310およびBOSCNT253
14からのデータ入力に加えて、SRCADR25316およびDSTAD
R25318のデータ入力は、FUSITT11012からのマイクロ命
令ワードCONEXTのサブフイールド出力と接続されてい
る。SRCADR25316およびDSTADR25318の制御入力は、それ
ぞれFUSITT11012からのマイクロ命令ワードRSおよびRD
サブフイールド出力と接続されている。SRCADR25316の
フレーム・アドレス・フイールド(SRCFADR)出力およ
びDSTADR25318の行先フレーム・アドレス・フイールド
(DSTFADR)出力は、ソースおよび行先レジスタのアド
レス・マルチプレクサ(SDADRMUX)25322の入力側と接
続されている。SRCFADRおよびDSTFADRは、それぞれソー
スおよび行先レジスタに対するRAG20288のSDADR出力で
あるフレーム選択フイールドを構成している。SRCADR25
316およびDSTADR25318のSRCFADRおよびDSTFADR出力に加
えて、SDADRMUX25322はFUSITT11012のマイクロ命令出力
からマイクロ命令ワードSRCおよびDSTサブフイールド入
力を受取る。前述の如く、SRCフイールドは、あるソー
ス・レジスタ、即ち、SRCFADRにより選択されたあるフ
レーム内のソース・レジスタを示す3ビツト数である。
DSTは同様に、DSTFADRにより示されるフレーム内のある
行先レジスタを選択する3ビツト数である。SDADRMUX25
322に対するSRCサブヒールド入力はSRCADR25316と連結
されて、それぞれ前述の如く、SDADRMUX25322のソース
・レジスタのSDADR出力のレジスタおよびフイールド・
フイールドを構成する。同様に、DSTサブフイールドはD
STADR25318のDSTFDADR出力と連結されて、それぞれSDAD
RMUX25322の行先レジスタのSDADR出力のレジスタおよび
フレームのサブフイールドを構成する。SDADRMUX25322
の行先レジスタのSDADR出力の対応するソースと行先レ
ジスタ・アドレス入力間の選択は、SDADRMUX25322の制
御入力と接続されたマイクロ命令制御入力(説明を明瞭
にするため示さない)により制御される。RDWS25324
は、MEM10112からの読出しの間、マイクロ命令ワードか
らのPROM復号フイールドであり、行先レジスタ・アドレ
スのレジスタ選択フイールドを提供し、フレーム選択フ
イールドとしてポインタの1つを選択する。
SEM25320の事象出力は、前述の如くEVENT20284のある入
力と接続される。以下において更に説明するように、SR
CADR25316、DSTADR25318およびSDADRMUX25322はマルチ
プレクサとして作用し、例えばSN74S153から構成され
る。
GRF10354、BIAS20246およびRCWS10358の構造および作用
について説明したが、行先レジスタ・アドレス出力SDAD
Rのソースを生成するためのRAG20288の構造および作用
については以下において説明する。SR10362およびRCWS1
0358を構成するJP10114のスタツク機構のアドレス指定
操作について最初に説明し、GR10360およびBIAS20246の
アドレス指定操作の説明がこれに続く。
GRF10354、RCWS10358およびBIAS20246のSR10362部分
は、それぞれTOSCNT25310、TOS-1CNT25312およびBOSCNT
25314に含まれるその時の、前のおよび最下位のフレー
ム・ポインタによつてアドレス指定される。その時の、
前のおよび最下位のポインタはSDADRMUX25322のフレー
ム選択フイールドを構成する。前述の如く、BOSCNT2531
4に対するTOSCNT25310のその時の、前のおよび最下位の
ポインタ出力は、SRCADR25316およびDSTADR25318の入力
として与えられる。SRCADR25316の制御入力に対するマ
イクロ命令ワードRSのサブフイールドはSRCADR25316の
その時の、または前の、または最下位にポインタ入力の
いずれかを選択して、SRCADR25316のSRCFADR出力を選択
肢、即ちレース・レジスタ・アドレスのフレーム選択フ
イールドとなる。同様に、DSTADR25318の制御入力に対
するマイクロ命令ワードのRDサブフイールドは、DSTADR
25318のその時の、または前の、または最下位のポイン
タ入力のいずれかを同時に選択して、DSTADR25318のDST
FADR出力、即ち行先レジスタのアドレスのフレーム選択
フイールドを構成する。前述の如く、出力SRCFADRおよ
びDSTFADRはSDADRMUX25322に対する入力として与えられ
る。SDADRMUX25322に対するマイクロ命令ワードSRCおよ
びDSTのサブフイールド入力は、それぞれ、SRCFADRおよ
びDSTFADRにより規定されるソースおよび行先フレーム
内のソースおよび行先レジスタを同時に決定する。この
時マイクロ命令の制御下で作用するSDADRMUX25322はSRC
FADRおよびDSTFADR出力を構成し、あるいは行先レジス
タ・アドレスを規定するSDADR出力としてDSTFADRおよび
DSTを選択する。SRCADR25316、DSTADR2531およびSDADRM
UX25322のマイクロ命令制御により、CS10110のマイクロ
プログラムはSR10362内のソース・フレームおよびレジ
スタを選択肢、SR10352内の異なる可能な行先フレーム
およびレジスタを同時に規定する。GR10360、SR10362、
BIAS20246およびRCWS10358におけるソース・フレームと
レジスタおよび行先フレームとレジスタの可能な全ての
組合せが有効である。
GRF10354およびRCWS10358のSR10362部分のアドレス指定
におけるSRCADR25316、DSTADR2531およびSDADRMUX25322
の制御は、部分的にその時のCS10110の状態によつて制
御される。前に述べた関連するCS10110の作用状態は状
態M1および状態RWである。CS10110が状態RWまたは状態M
1のいずれでもない時、SR10362はSRCADR25316およびマ
イクロ命令ワードSRCのサブフールドを介してアドレス
指定され、CS10110が状態RWおよびM1のいずれでもない
時SR10362およびRCWS10358はソース・レジスタのアドレ
スが与えられる。CS10110が状態M1に入る時、SR10362お
よびRCWS10358はマイクロ命令ワードのDSTサブフイール
ドによつてDSTADR25318を介してアドレス指定される。
即ち、SR10362およびRCWS10358は、状態MJ1の間行先レ
ジスタ・アドレスが与えられる。同様に、CS10110が状
態RWにおいて作用する時、即ちデータがMEM10112から読
出されてR10362またはRCWS10358に対して書込まれつつ
ある時、行先レジスタ・アドレスが与えられる。しか
し、この場合、行先レジスタのアドレスの下位の3ビツ
ト、即ちレジスタ選択フイールドがRDS25324によつて与
えられ、これがマイクロ命令ワードのサブフイールドMD
(記憶の行先)を復号する。RDWS25342はまた、DSTADR2
5318がMISPR10356からのその時の、または前の、または
最下位のポインタの1つを選択して行先レジスタ・アド
レスのフレーム選択フイールドを構成する制御入力を提
供する。
前述の如く、ソースおよび行先レジスタ・アドレスのフ
レーム選択フイールドはTOSCNT25310、TOS-1CNT25312お
よびBOSCNT25314から与えられる。前述の如く、ソース
および行先レジスタのアドレスの最上位ビツトは、GR10
360またはSR10362、BIAS20246およびRCWS10358のどれが
アドレス指定されつつあるかに従つて論理値1または論
理値0に強制される。TOSCNT25310乃至BOSCNT25314の内
容、即ちポインタがその時の、前のおよび最下位のもの
であるかは、FUSITT11012のマイクロ命令制御出力によ
つて制御される。JP10114がそれそれ呼出しおよび戻し
を実施する時スタツクがMIS10368に関して「プツシユ」
されるかあるいは「ポツプ」されるため、その時および
前のポインタは変化する。同様に、その時の、前のおよ
び最下位のポインタは、CS10110のスタツク機構に関し
て前に述べたように、MIS10368のフレームがMIS10368と
MEM10112間に転送される時、増分または減分される。
最初にその時および前のポインタの操作について述べる
と、TOSCNT25310およびTOS-1CNT25312におけるその時お
よび前のポインタが最初にセツトされて、それぞれJPD
バス10142からロードされることによつてMIS10368のフ
レーム1および0を指示する。最初の条件はCS10110の
その時の作用状態に依存する。TOSCNT25310およびTOS-1
CNT25312は、状態M1および状態ABを操作するCS10110の
最後のシステム・クロツク・サイクルの間カウントする
ことを可能にされる。第2の状態は、JP10114が呼出し
または戻しのどちらかを実行するかに依存する。もしそ
の時のマイクロ命令がJP10114が呼出しまたは戻しを実
行すべきであるならば、あるいはもし状態ABからの出口
が示唆された読出し操作である時もしCS10110が付勢状
態であるならば、TOSCNT25310およびTOS-1CNT25312はカ
ウントを行なうことを許容される。状態ABならの出口で
ある呼出しおよび示唆された呼出しの双方はTOSCNT2531
0およびTOS-1CNT25312を増分させる。戻し操作は、TOSC
NT25310およびTOS-1CNT25312を減分させることになる。
BOSCNT25314について説明するならば、最下位フレーム
・ポインタは最初にJPDバス10142からロードされてMIS1
0368のフレーム1を指示する。再び、BOSCNT25314の増
分または減分は、CS10110の作用状態および実施される
操作に依存される。BOSCNT25314は状態M1から出ると同
時にカウントすることを許容される。更に、その時のマ
イクロ命令ワードのDEVCMDサブフイールドは、BOSCNT25
314が増分あるいは減分されるべきことを表示しなけれ
ばならない。BOSCNT25314は、マイクロ命令ワードのDEV
CMDサブフイールドにより示されるように状態M1から出
ると同時に存分または減分される。
SEM25320は、TOSCNT25310およびBOSCNT25314に駐在する
その時のおよび最下位ポインタの相対値を監視して、MI
S10368およびMOS10370の操作を制御する目的のためEVEN
T20284に対して出力を与える。SEM25320は、入力として
その時のおよび最下位のポインタを受取る例えば93S427
なる読出し専用メモリーからなる。SEM25320はTOSCNT25
310およびBOSCNT25314の動作中に、従つてMIS10368およ
びMOS10370の動作中に生じる3つの事象を検出する。第
1に、SEM25320はMIS10368のスタツク桁あふれを検出す
る。もしの時のフレーム・ポインタの値が最下位フレー
ム・ポインタのその時の値よりも8つ以上大きければ、
この事象が表示される。第2に、SEM25320はMIS10368が
唯1つの情報のフレームしか持たない時を検出する。も
しその時のフレーム・ポインタの値が最下位フレーム・
ポインタの値と等しければ、この事象が表示される。こ
の場合MIS10368の前のフレームはMEM10112に存在し、前
のスタツク・フレームに対する照合が行なわれる前にME
M10112から取出されねばならない。第3に、SEM25320は
MIS10368およびMOS10370が充満状態である時を検出す
る。この事象は、もしその時のフレーム・ポインタが最
下位フレーム・ポインタのその時の値よりも16大きい場
合に表示される。この事象が生じる時、MIS10368または
MOS10370に対するフレームの書込みを更に試みればMOS1
0370のスタツフ桁あふれを惹起する結果となる。EVENT2
0284は、前述の如く、適当な事象を処理するマイクロ命
令シーケンスの実行を開始することによつて、SEM25320
により示される如き事象に対して応答する。MIS10368ま
たはMOS10370は同じ方向でアドレス指定される。即ちそ
の時の、前のおよび最下位フレーム・ポインタおよびあ
るマイクロ命令ワードのサフフイールドの使用によるこ
とを留意すべきである。MIS10368またはMOS10370の操作
間の主な差異は、スタツクの桁あふれが処理される方法
にある。MIS10368の場合には、スタツク・フレームは、
MIS10368が有効に終りのないスタツクであるようにMIS1
0368およびMEM10112間に転送される。しかし、MOS10370
はCS10110の本実施例においては最大8つスタツク・フ
レームを含み、その結果一時に8つ以上の事象がMOS103
70にプツシユすることができない。
GR10360はSR10362、BIAS20246およびRCWS10358と類似の
方法、即ちSRCADR25316、DSTADR25318およびSDADRMUC25
322を介してアドレス指定される。再び、ソースおよび
行先レジスタ・アドレスのレジスタ選択フイールドはマ
イクロ命令ワードSRCおよびDSTのサブフイールドによつ
て与えられる。しかし、ソースおよび行先レジスタのア
ドレスのフレーム選択フイールドは、マイクロ命令ワー
ドCONEXTサブフイールドによつて規定される。この場
合、マイクロ命令ワードRSおよびRDのサブフイールド
は、ソースおよび行先レジスタ・アドレスのフレーム選
択フイールドがCONEXTサブフイールドにより与えられる
べきことを規定する。従つて、SRCADR25316およびDSTAD
R25318は、SDADRMUC25322に対するSRCFADRおよびDSTFAD
R入力としてCONEXTサブフイールドを提供する。
RAG20288の構造および作用について述べたが、次にTIME
R20296について説明する。第254図においては、TIMER20
296の部分ブロツク図が示される。前述の如く、TIMER20
296は、間隔タイマー(INTTMR)25410と、エツグ・タイ
マー(EGGTMR)25412と、エツグ・タイマークロツク使
用可能ゲート(EGGENB)26416とを含んでいる。
d.d.d.タイマー20296(第254図) 最初にINTTMR25410について述べるならば、INTTMR25410
の主な機能は、第106図に関してCS10110のUIDアドレス
指定操作の説明において前に説明した如くCS10110のア
ーキテクチヤ時間を維持することである。その際説明し
たように、CS1011の全てのシステムにより生成される全
てのUIDアドレスの一部は目的の連続番号(OSN)フイー
ルドである。OSNフイールドはある特定のCS10110の作用
またはこれにおいて使用することにより生成され各目的
を一義的に規定する。ある目的のUIDのOSNフイールド
は、ある特定のCS1011においては、その全てのシステム
に共通の任意の階層的な始動時間に関する前記目的の生
成のじかんを決定することにより生成される。この時間
は、MEM10112のある記憶空間内即ちアドレス場所に保持
されるが、INTTMR25410の作用により測定される。
INTTMR25410は、110ナノ秒クロツク(110NSCLK)入力に
よりクロツクされた28ビツトのカウンタであり、1MHzの
クロツク使用可能入力(CLK1MHZENB)によりカウントす
ることを許容される。INTTMR25410はこれにより、1マ
イクロ秒を測定するため1MHzの速度でクロツク可能であ
る。このため、INTTMR25410により測定可能な最大時間
間隔は268.435秒である。
第254図において示したように、INTTMR25410はJPDバス1
0142からロードされかつこれに読込むことができる。通
常の作用においては、ある特定のCS10110に対するアー
キテクチヤ時間を含むMEM10112の場所は、この特定のCS
10110の始動時におけるその時のアーキテクチヤ時間が
ロードされる。INTTMR25410は同時に全て零がロードさ
れる。然る後、INTTMR25410は1マイクロ秒の間隔でク
ロツクされる。INTTMR25410が周期的に桁あふれする
時、MEM10112に記憶されたアーテキクチヤ時間は然るべ
く更新される。従つて、如何なる時にも、その時のアー
テキクチヤ時間が、INTTMR25410からのアーテキクチヤ
時間の最後の経過以来の経過した間隔でMEM10112に記憶
された前に更新されたアーテキクチヤ時からアーテキク
チヤ時間を読取ることによつて1マイクロ秒の増分まで
判定可能である。CS10110の障害の場所には、MEM10112
およびINTTMR25410のアーキテクチヤ時間は、最後のア
ーキテクチヤ時間の更新以来の経過間隔を読取ることに
よりMEM10112に保管することができる。通常のCS10110
の作用が再開される時、INTTMR25410はその時のアーキ
テクチヤ時間を反映するカウンタで再ロードすることが
できる。第254図に示すように、INTTMR25410がDP10118
から与えられたロード可能入力(LDE)により使用可能
状態にされる時、INTTMR25410はJPDバス10142からロー
ドされる。
EGGTMR25412について述べれば、あるCS10110の事象、特
にEVENT20284に関して前の述べた非同期事象は、SOPの
最初のマイクロ命令の状態M1の終了時にのみEVENT20284
によつて受取られ、即ち確認される。あるCS10110のマ
イクロ命令が長い実行時間を有する時、これらの非同期
事象はサービスされる前に拡張された待ち時間即ち待機
をかけられる。EGGTMR25412は、作用において、継続中
の非同期事象の待ち時間を測定して、もし予め定めた最
大待ち時間が経過したならば、EVENT20284に対して出力
を生じる。
第254図に示すように、EGGTMR25412は110ナノ秒クロツ
ク入力(110NSCLK)入力によりクロツクされる。最初
に、EGGTMR25412は、CS10110により実行される各SOPの
最初のマイクロ命令の状態M1の終りにおいて、またはあ
るマイクロ命令ワードのDEVCMDサブフイールドによりそ
の旨特に指令される時、ロード入力(LDZRO)により零
に設定される。EGGTMR25412は、EGGENB25416からのクロ
ツク可能(CLKENB)入力により使用可能状態にされる時
増分される。EGGTMR25412が増分されるため必要な2つ
の条件がある。第1の条件は非同期事象の発生であり、
これはEVENT20284からのEGGENB25416に対する入力ASYEV
NTによつて表示される。第2の条件は、EGGTMR25412の
最後の増分から16マイクロ秒以上が経過していることで
ある。この間隔は、第254図に示されるように、EGGENB2
5416の入力と接続されたINTTMR25410の第4のビツトか
らの出力により測定する。EGGTMR25412は4ビツトのカ
ウンタであり、またもしあるSOP以後少なくとも16マイ
クロ秒が経過したならば、前記SOPNO開始後256マイクロ
秒間桁あふれを生じてEVENT20284に対して出力OVRFLWを
生成し、これによりEGGTMR25412は非同期事象に対して2
56マイクロ秒の最大サービス待ち時間を確保する。
e.e.e.実行装置10122に対する取出し装置10120のインタ
ーフエース 最後に、前述の如く、EU1022に対するFU10120のインタ
ーフエースは主として、EUDPをEU1022のEUSITTおよびFU
INT20298に対して与えるためのEUDISバス20206からな
る。EUSDT20266およびEUDISバス20206の作用については
前に述べたが、EU1022の以下の説明において更に記述す
る。FUINT20298は、これらの事象のサービスが可能であ
るようにEU1022から信号された諸条件に対して事象要求
を生成することと主として関連している。この点に関し
て、FUINT20298は主として、EU1022から事象要求を受取
りかつ対応する出力をEVENT20284に対して与えるゲート
からなつている。FUINT20298により実施される別のイン
ターフエース機能は、EU1022により生成されてEU1022に
対して与えられ、EU1022からFU10120に対して読込まれ
るEU1022の結果が受取られることを保有する「転送完
了」信号の生成である。この転送完了信号は、EU1022の
以下の説明において述べるEU1022の結果のレジスタがEU
1022によるこれいじょうの使用のため利用可能であるこ
とをEU1022に対して表示する。この転送完了信号は、EU
1022からFU10120またはMEM10112に対するデータの転送
のためのマイクロ命令シーケンスの一部としてFUSITT11
012の出力により生成される。
DESP20210、MEMINT202012およびFUCTL20214を含むFU101
20の構造および作用について説明したが、EU1022の構造
および作用について次に説明する。
C.実行装置10122(第203図、第255図〜第268図) 前述の如く、EU10122は、整数、パツク10進数および2
倍精度の浮動小数点数の算術演算の実行が可能である算
術演算処理装置である。EU10122の第1の機能は、ある
算術演算からFU10120を解除させること、これによりCS1
0110の効率を向上させることである。
MEM10112からEU10122へのオペランドの転送は、EU1022
からFU10120またはMEM10112への算術演算結果の転送に
おける如く、FU10120により制御される。更に、EU10122
の算術演算は、EUSDT20266によりEU10122に対して送信
勧誘されるEU10122のタスク指名ポインタによりFU10120
によつて開始される。EU10122のタスク指名ポインタ
は、SINおよびCS10110の事象の処理において補佐するあ
るEU10122の操作のため要求される両方の算術演算を開
始することができる。前述の如く、EU10122のタスク指
名ポインタは、構成および作用においてFUSITT11012と
類似するEU10122のEUSITTによりEU10122を制御するため
のマイクロ命令シーケンスに転送される。以下において
更に説明するように、EU1022はFU10120からのEU10122の
タスク指名ポインタのシーケンスを受取つてこれを設定
するための指令キユーを含む。更に、EU10122は、GRF10
354と類似する汎用レジスタ・フアイル、即ちスクラツ
チ・パツド・メモリーを含んでいる。EU10122の汎用レ
ジスタ・フアイルは、一部は、FU10120のSR10362と類似
するEU10122のスタツク機構において使用される。
第234図においては、EU10122の部分ブロツク図が示され
ている。EU10122の一般的な構造および作用について
は、第203図に関して最初に説明する。次に、EU10122の
構造および作用について、必要に応じて提供される以降
の図面の助けを借りて更に詳細に説明することにする。
第203図に示すように、EU10122の主な要素は、実行装置
制御ロジツク(EUCL)20310と、実行装置IOバツフア(E
UIO)20312と、乗数ロジツク(MULT)20314と、指数ロ
ジツク(EXP)20316と、乗数制御ロジツク(MULTCNTL)
20318と、テスト兼インターフエース・ロジツク(TSTIN
T)20320とを含む。EUCL20310はEUSDT20266から実行装
置タスク指名ポインタ(EUDP)を受取り、対応するマイ
クロ命令シーケンスを与えてEU10122の作用を制御す
る。
EUIO20312は、MEM10112からオペランドまたはデータを
受取り、これらオペランドをEU10122により最も有効に
使用されるあるフオーマツトに翻訳する。EUIO20312は1
0122の操作の結果を受取り、これらの結果をMEM10112ま
たはFU10120に対して戻されるべきフオーマツトに翻訳
し、これらの結果をMEM10112およびFU10120に対して与
える。
MULT20314およびEXP20136は、EU10122の諸操作の算術演
算操作の実施のための算術演算装置である。特に、EXP2
0136は、単精度および2倍精度の浮動小数点演算の指数
フイールドに関する諸操作を実施する。MULT20314は、
単精度および2倍精度の浮動小数点演算の仮数フイール
ドに関する10進数の演算に関する算術演算操作を実施す
る。MULTCNTL20318は、MULT20314およびEXP20136の演
算、ならびに浮動小数点演算における仮数および指数の
事前桁合せおよび正規化を制御しかつこれを連係させ
る。最後に、TSTINT20320はEU10122の諸操作に関するあ
るテスト操作を実施し、かつEU10122とFU10120間のイン
ターフエースである。
a.EU10122の全体的構造 1.実行装置の入出力(I/O)装置20312 最初にEUIO20312について述べれば、EUIO20312は、オペ
ランド・バツフア(OPB)20322と、最終結果出力マルチ
プレクサ(FROM)20324と、指数出力マルチプレクサ(E
XOM)20326とを含む。OPB20322はそれそれ、MODバス101
44およびJPDバス10142と接続された第1と第2の入力を
有する。OPB20322は、乗数入力マルチプレクサ(MULTI
M)20328とMULT20314の第1の入力と接続された第1の
出力を有する。OPB20322の第2の出力は、入力セレクタ
A(INSELA)20330とEXP20316の指数実行装置の汎用レ
ジスタ・フアイル入力マルチプレクサ(EXRM)20332の
第1の入力と接続されている。
FROM20324はJPDバス10142と接続された出力を有する。F
ROM20324の第1の入力は、汎用レジスタ・フアイル入力
マルチプレクサにおける乗数実行(MULTRM)20334とMUL
T20314の出力と接続されている。FROM20324の第2の入
力は、MULT20314の最終結果レジスタ(RFR)20336の出
力と接続されている。EXOM20326はJPDバス10142と接続
された出力を有する。EXOM20326は、EXP20316の位取り
レジスタ(SCALER)20338の出力と接続された第1の入
力である。EXOM20326は、EUCL20310の次のアドレス・ゼ
ネレータ(NAG)20340および共通のキユー(COMQ)2034
2の出力と接続された第2および第3の入力を有する。
2.実行装置の制御ロジツク20310 EUCL20310について説明すると、EUCL20310は、NAG20340
と、COMQ20342と、実行装置S命令テーブル(EUSITT)2
0344と、マイクロ命令制御レジスタ兼復号ロジツク(mC
RD)20346とを含む。COMQ20342は、EUDISバス20206と接
続された入力を有する。前述の如く、COMQ20342は、EXO
M20326の第3の入力と接続された第1の出力を有し、NA
G20340の入力と接続された第2の出力を有する。前述の
如く、NAG20340はEXOM20326の第2の入力と接続された
第1の出力を有する。NAG20340は、EUSITT20344の第1
の入力と接続された第2の出力を有する。前述の如く、
EUSITT20344はFUSITT11012と対応し、FU10120からのEU1
0122のタスク指名ポインタに応答してEU10122の作用を
制御するためのマイクロ命令のシーケンスを記憶する。
EUSITT20344は、JPDバス10142と接続された第2の入力
を有し、またmCRD20346の入力と接続された出力を有す
る。mCRD20346は、EUSITT20344により与えられるマイク
ロ命令を受取つて復号するためのレジスタおよびロジツ
クを含む。EUSITT20344からの入力に加え、mCRD20346
は、U10122の全ての部分に対して復号されたマイクロ命
令制御信号を与える打1の出力を有する。mCRD20346は
また、入力セレクタB(INSELB)20348およびEXP20316
の第1の入力と接続された第2の出力を有する。
3.マルチプレクサ・ロジツク20314 MULT20314について説明すると、MULT20314は、パツクさ
れた10進数、整数および単精度および2倍精度の浮動小
数点演算の仮数部分についての加減乗除算を演算するた
めの2つの並列の算術演算経路を含んでいる。MULT2031
4はまた、EU10122に汎用レジスタ・フアイル・算術演算
において使用される定数を記憶するためのメモリーおよ
びある入力データ選択回路を含む。MULT20314に駐在す
るEU10122の汎用レジスタ・フアイルの前記部分は、乗
数レジスタ・フアイル(MULTRF)20350からなつてい
る。MULTRF20350の出力は、MULTIM20328も第2の入力側
に接続されている。MULTRF20350の第1の入力はREF2033
6の出力と接続され、MULTRF20350の第2の入力はMULTRM
20334の出力側と接続されている。MULTRM20334の第1と
第2の入力は、更に、REF20336の出力およびTSTINT2032
0のコンテナ・サイズ・ロジツク(CONSIZE)20352と接
続されている。
MULTIM20328は、MULT20314の算術演算回路に対するデー
タ入力を選択し、また前述の如く、OPB20322の第1の出
力およびMULTRF20350の出力とそれぞれ接続された第1
と第2の入力を有する。MULTIM20328の出力は、乗数(M
ULT)バス20354を経て乗数の商レジスタ(MQR)20356の
入力およびニブル・シフター(NIBSHF)20358の入力側
と接続されている。MQR20356およびNIBSHF20358の別の
入力は、定数ストア(CONST)20360により与えられる。
CONST20360は、MULT20314の算術において使用される定
数値を記憶するためのメモリーである。CONST20360の出
力はMULTバス20354と接続されている。MULT20314の算術
演算回路は、これによりOPB20322と、MULTRF20350と、C
ONST20360から入力が与えることができる。
MULT20314の算術演算回路は、共通の入力として、MULTI
M20328とCONST20360の出力を有する2つの並列な算術演
算経路からなる。これらの並列算術演算経路の共通の終
りは、最終レジスタ・シフター(FRS)20362である。第
1の算術演算経路はNIBSHF20358を経て与えられるが、
その入力はMULTバス20354と接続されている。NIBSHF203
58の出力はFRS20362の第1の入力に対して接続され、NI
BSHF20358の制御入力は乗数制御ロジツク(MULTCNT)20
364およびMULTCNTL20318の出力と接続されている。
MULT20314の第2の算術演算経路はMQR20356を介して与
えられる。前述の如く、MQR20356の入力はMULTバス2035
4と接続されている。MQR20356の出力は時間1および時
間2の乗算シフター(MULTSHFT12)20366および時間4
および時間8乗算シフター(MULTSHFT48)20368の第1
と第2の入力と接続されている。MULTSHFT12とMULTSHFT
48の出力は、それぞれ第1の乗数演算論理装置(MULTAL
U1)20370の第1および第2の入力と接続されている。M
ULTALU120370の出力は、乗数作業レジスタ(MWR)20372
の入力側と接続される。MWR20372の出力は、第2の乗数
演算論理装置(MULTALU2)20374の第1の入力と接続さ
れている。MULTALU220374の第2の入力はRFR20336の出
力と接続されている。MULTALU2の出力はFRS20362の第2
の入力と接続される。前述の如く、FRS20362の第1の入
力はMULTSHFT20368に接続される。FRS20362の出力は203
36の入力と接続される。
前述の如く、RFR20336の出力はMULTALU220374の第2の
入力、MULTRM20344の第1の入力およびFROM20324の第2
の入力とに接続されている。RFR20336の出力もまた、MU
LTCNTL20318の先行零検出器(LZD)20386の入力と、例
外ロジツク(ECPT)20378、CONSIZE20352およびTSTINT2
0320の入力側と接続されている。
4.指数ロジツク20316 EXP20316について述べれば、前述の如く、EXP20316は、
EU10122の浮動小数点数演算における単精度および2倍
精度の浮動小数点の指数フイールドに関するある演算を
実施する。EXP20316は、本例においては指数レジスタ・
フアイス(EXPRF)20380として示されたEU10122の汎用
レジスタ・フアイル装置の第2の部分を含んでいる。個
々のレジスタ・フアイルとして示したが、MULTRF20350
とEXPRF20380は、MULTバス20354におけるように、内部
の対応するレジスタの共通で並列のアドレス指定による
一体のレジスタ・フアイル構造を有する。
EXPRF20380の出力は、INSELA20330の第2の入力と接続
されている。EXPRF20380の第1の入力はEXRM20332の出
力と接続されている。前述の如く、EXRM20332の第1の
入力はEXPQ20325を経てOPB20322の第2の出力と接続さ
れる。EXRM20332の第2の入力はスケール・レジスタ(S
CALER)20388と接続されている。EXPRF20380の第2の入
力は符号ロジツク(SIGN)20382の出力と接続される。S
IGN20382の入力はSCALER20388の第2の出力と接続され
ている。
INSELA20330、INSELB20348、指数ALU(EXPALU)20384
と、SCALER20338は、浮動小数点数の指数フイールドを
操作するためのEXP20316の算術演算回路を構成する。IN
SELA20330とINSELB20348に対する第1と第2の入力を選
択する。前述の如く、INSELA20330の第1の入力はEXPQ
バスを介してOPB20322の第2の出力と接続されている。
INSELA20330の第2の入力はEXPRF20380の出力はEXPALU2
0384の第1の入力と接続されている。INSELB20348の第
1の入力は、前述の如く、mCRD20346の第2の出力と接
続されている。INSELB20348の第2の入力はEXPQ20325を
介してOPB20322の出力と接続されている。INSELB20348
の第3の入力はSCALER20338の出力と接続され、INSELB2
0348の第4の入力はLZD20376の出力と接続されている。
INSELB20348の出力はINSELB20348の第2の入力と接続さ
れている。INSELB20348の出力は、SCALER20338の入力と
接続されている。
前述の如く、SCALER20338の第2の出力はSIGN20382の入
力と接続され、第1の出力はEXRM20332の第2の入力お
よびINSELBの第3の入力と接続されている。SCALER2033
8の第1の出力もまた、EXPQバス20325と接続され、EXOM
20326の第1の入力およびMULTCNT20364の第2の入力と
接続されている。
5.乗数制御装置20318 前述の如く、MULTCNTL20318は、浮動小数点についての
算術演算の実施においてEXP20316とMULT20314の演算を
制御しかつこれを連係させるためのいくつかの制御信号
と情報を提供する。MULTCNTL20318はLZD20376とMULTCNT
20364を含んでいる。LZD20376の入力はFBバス20337を介
してRFR20266の出力と接続されている。LZD20376出力
は、MULTCNT20364の第2の入力およびmCRD20346の第4
の入力と接続されている。MULTCNT20364の第2の入力は
SCALER20338の出力と接続される。前述の如く、MULTCNT
20364の制御出力はNIBSHF20358の制御入力と接続されて
いる。
6.テスト兼インターフエース・ロジツク20320 最後に、TSTINT20320は、ECPT20378、CONSIZE20352およ
びテスト条件ロジツク(TSTCON)20386を含む。ECPT203
78の入力およびCONSIZE20352の第1の入力は、FRバス20
337を介してRFR20336の出力と接続される。CONSIZE2035
2の第2の入力は長さ20226と接続されている。CONSIZE2
0352の出力は、EU10122からの他の入力(表示を明瞭に
するため示さない)と共に、TSTCON20386と接続されて
いる。TSTCON20386の出力(表示を明瞭にするため示さ
ない)はNAG20340と接続されている。TSTCON20386とECP
T20378はFU10120とFUINT20298に対する出力とこれから
の入力を有する。以上においてEU10122の全体的な構造
について述べたが、EU10122の作用については、必要に
応じて紹介される別の図面の助けにより以下において説
明する。最後にEUCL20310の作用について説明し、TSTIN
T20320およびFUINT20298を介するEU10122およびFU10120
間の詳細な制御信号インターフエースの説明を含む。EU
10122とFU10120の間のインターフエースの定義に加え、
EU10122の諸操作がMEM10112とFU10120と連係して実行さ
れるEU10122のいくつかの特徴について説明する。例え
ば、部分的にMULTRF20350およびEXPRF20380の各部を構
成するEU10122のスタツク機構はその一部がMEM10112に
駐在し、その結果EU10122のスタツク機構の作用がEU101
22、MEM10112およびFU10120による共働的な作用を必要
とする。
b.実行装置10122の作用(第255図) 1.実行装置の制御ロジツク20310(第252図) 第255図においては、EUCL20310の更に詳細なブロツク図
が示される。前述の如く、EUCL20310はEUSDT20266およ
びFUCTL20214からEUDISバス20206を介してEU10122のタ
スク指名ポインタを受取る。EU10122のタスク指名ポイ
ンタは、ユーザ・プログラムの実行に必要とされ、また
JP10114の事象の処理を補佐する如きEU10122の算術演
算、即ちSOPを実行するためのEU10122のいくつかのマイ
クロ命令シーケンスを選択する。前述の如く、EUCL2031
0の主な阻止は、COMQ20342、EUSITT20344、mCRD20346お
よびNAG20340を含む。
a.a.指令キユー20342 COMQ20342の入力は、EUSDT20266から与えられるEU10122
のタスク指名ポインタを受取つてこれを記憶するためEU
DISバス20206と接続されている。このようなEU10122の
各タスク指名ポインタは、2つの情報フイールドからな
る。第1の情報フイールドは、EUSITT20344の駐在する
マイクロ命令のある対応するシーケンスの10ビツトの始
動アドレスを含む。EU10122の各タスク指名ポインタの
第2のフイールドは、それについて処理されるべき対応
するオペランドのデータ・フオーマツトを識別する情報
の如きある制御情報を含む6ビツトのフイールドであ
る。この場合、単位ラスク指名ポインタの制御フイール
ド・ビツトは、それについて処理されるオペランドが符
号を付したあるいは符号を付さない整数、またはパツク
されたあるいはアンパツクされた10進数、または単精度
あるいが2倍精度の浮動小数点数のどれを構成するかを
規定する。
COMQ20342は、2つの1ワード巾X2ワードの深さのレジ
スタ・フアイルからなる。これらのレジスタ・フアイル
の第1のものは、SOP指令キユー制御ストラ(CQCS)255
10およびSOP指令キユー・アドレス・ストア(CQAS)255
12とからなる。またこれと共に、CQCS25510およびCQAS2
5512は、SOPおよび対応するEU10122のタスク指名ポイン
タ、即ちあるユーザのプログラムの実行と直接関連する
EU10122の操作を開始するためのタスク指名ポインタを
受取つてこれを記憶するつの1ワード巾X2ワード深さの
レジスタ・フアイルを構成する。これらのSOPのアドレ
ス・フイールドはCQCS25510において受取られるが、制
御フイールドはCQCS25510において受取られて記憶され
る。COMQ20342はこれにより、ユーザ・プログラムのSOP
と対応する2つまでの順次のEU10122のタスク指名ポイ
ンタを受取つてこれを記憶することができる。これらの
SOPによるタスク指名ポインタは、FU10120から受取つた
順序で実行される。これにより、EU10122は1つのその
時実行中のSOPタスク指名ポインタおよび1つの継続中
のSOPタンク指名ポインタを受取つて記憶することが可
能である。別のSOPタンク指名ポインタは、前のSOPが実
行される時にCOMQ20342に読込むことができる。
b.b.指令キユーの事象制御ストア25514および指令キユ
ー事象アドレス制御ストア25516 指令キユー事象制御ストア(CQCE)25514および指令キ
ユー事象アドレス・ストア(CQAE)25516は、それぞれC
QCS25510およびCQAS25512と機能および制御作用おいて
類似している。しかし、CQCE25514およびCQAE25516は、
JP10114の事象の処理に必要とされる如く、FU10120によ
り要求されるEU10122の諸操作を開始するEU10122のタン
ス指名ポインタを受取つてこれを記憶する。再び、CQCE
25514およびCQAE25516は、1つの1ワード巾X2ワード深
さのレジスタ・フアイルを構成する。CQAE25516は事象
タスク指名ポインタのアドレス・フイールドを受取つて
これを記憶するが、CQCE25514は事象タスク指名ポイン
タの対応する制御フイールドを受取つてこれを記憶す
る。再び、COMQ20342は、2つまでの順次の事象タスク
指名ポインタを同時に受取つてこれを記憶する。
第255図に示すように、CQAS25512およびCQAE25516の出
力、即ちEU10122のタスク指名ポインタのアドレス・フ
イールドは、以下において更に詳細に説明する選択ケー
ス・マルチプレクサ(あせ)25518と、開始アドレス選
択マルチプレクサ(SAS)25520と、NAG20340に対する入
力として与えられる。CQCS25510およびCQCE25514の制御
フイールド出力は、以下に更に述べるOPB20322に対する
入力として与えられる。
c.c.実行装置のS命令テーブル20344 EUSITT20344について説明すれば、前述の如く、EUSITT2
0344は、FU10120から受取られたEU10122のタスク指名ポ
インタに応答してEU10122の操作を制御するためのマイ
クロ命令のシーケンスを記憶するためのメモリーであ
る。これらのマイクロ命令シーケンスは、一般に、ユー
ザ・プログラムのSOPに応答して算術演算を実行するよ
う指令し、あるいはJP10114の事象のサービスに必要なE
U10112の操作の実行の指令を補佐することができる。EU
SITT20344は、例えば、ページ当り128ワードのページと
して構成された60ビツト巾ペケ1280ワード長さに構成さ
れたメモリーでよい。EUSITT20344のページの一部は、
例えばJP10114の事象の処理のためのマイクロ命令のシ
ーケンスを記憶するための読出し専用メモリーに含める
ことができる。EUSITT20344の残りの部分は、例えば、
ユーザ・プログラムのSOPに応答してEU10122の諸操作を
実行するためのマイクロ命令シーケンスを記憶するため
のランダム・アクセス・メモリーの構成とすることがで
きる。この構成は、JP10114の内部機構の操作、例えばE
USITT20344に有効に恒久的に記憶されるJP10114の事象
の処理のための操作と関連することをEU10122のマイク
ロ命令シーケンスに許容すると。ランダム・アクセス・
メモリーに構成されたEUSITT20344の部分は、SOPの実行
のためのマイクロ命令シーケンスの記憶のため使用する
ことができる。これらのランダム・アクセス・メモリー
は、CS10110によりその時使用中の1つ以上のS言語のS
OPの実行のためのマイクロ命令シーケンスが必要に応じ
てMEM10112からEUSITT20344に対して書込まれることを
可能にする書込み可能な制御ストアとして使用可能であ
る。
前述の如く、EUSITT20344の第2の入力はJPDバス10142
と接続されたデータ(DATA)入力である。EUSITT20344
のデータ入力は、MEM10112からJPDバス10142を介してEU
SITT20344に対してマイクロ命令シーケンスを書込むた
めに使用される。EUSITT20344の第1の入力は、アドレ
ス・ドライバ(ADRD)25522およびNAG20340の出力と接
続されたアドレス(ADR)入力である。ADRD25522により
与えられたアドレス入力は、マイクロ命令をEUSITT2034
4に対して書込むため、あるいはEU10112の操作を制御す
るためマイクロ命令をEUSITT20344からmCRD20346に対し
て読出すためのEUSITT20344内のワード場所を選択す
る。これらのEUSITT20344に対するアドレス入力のNAG20
340による生成について以下に説明しよう。
d.d.マイクロコード制御復号レジスタ20346 EUSITT20344の出力はmCRD20346の入力と接続されてい
る。前述の如く、mCRD20346はEUSITT20344からマイクロ
命令を受取るためのレジスタであり、これらマイクロ命
令を復号して対応する記憶信号をEU10122に対して与え
るための復号ロジツクである。第255図に示すように、
診断処理装置マイクロプログラム・レジスタ(DPmR)25
524は、mCRD20346の入力に接続するEUSITT20344の出力
と並列に接続された60ビツトのレジスタである。DPmR25
524はDP10118によつて60ビツトのマイクロ命令のロード
が可能である。診断マイクロ命令はこれにより、EU1012
2のマイクロ命令制御によつて直接マイクロ命令を与え
るためmCRD20346の入力側に直接与えることができる。
mCRD20346の出力は、一般にEU10122の全ての部分に対し
て与えられてEU10122の詳細な操作を制御する。mCRD203
46のいくつかの出力は、次のアドレス・ソース選択マル
チプレクサ(NASS)25526および長い分岐ページ・アド
レス・ゲート(LBPAG)25528およびNAG20340の入力と接
続されている。以下において更に詳細に選択するよう
に、mCRD20346のこれらの出力は、特定のマイクロ命令
シーケンスが他のマイクロ命令シーケンスに対する飛越
しまたは長い分岐を要求する時、EUSITT20344に対する
アドレス入力の生成において使用される。mCRD20346の
出力はまた、実行装置のマイクロ命令パリテイ検査ロジ
ツク(EUmIPC)25530の入力に対して並列に接続されて
いる。EUmIPC25530は、mCRD20346の出力において検出さ
れたエラーに対するmCRD20346の全てのマイクロ命令出
力のパリテイを検査する。
e.e.次のアドレス・ゼネレータ20340 前述の如く、EUSITT20344に対する読出しおよび書込み
アドレスは、NAG20340によりADRD25522を介して与えら
れる。ADRD25522に対するアドレス入力は、NASS25526ま
たは診断処理装置アドレス・レジスタ(DPAR)25532の
いずれかから与えられる。通常の操作において、EUSITT
20344に対するアドレス入力はすぐに説明するようにNAS
S25526から与えられる。しかし、DP10118はEUSITT20344
のアドレスをDPAR25532に対してロードすることができ
る。次に、これらのアドレスは、EUSITT20344内のアド
レス場所を個々に選択するためDPAR25532から読出され
ることができる。DPAR25532は、特に、マイクロ命令に
よるEU10122のマイクロ命令シーケンスのマイクロ命令
の循環操作を可能にするアドレスを提供するため使用す
ることができる。
前述の如く、NASS25526は、3つのNAG20340のアドレス
・ソースからの入力を有するマルチプレクサである。NA
SS25526の第1のアドレス入力はmCRD20346とLBPAG25528
の飛越し(JMP)出力からである。これらのアドレス入
力は、一部は、その時のマイクロ命令が別のマイクロ命
令またはマイクロ命令シーケンスに対する飛越しまたは
長い分岐を要求する時に使用される。第2のアドレス・
ソースはSAS25520から与えられ、一般に、マイクロ命令
シーケンスの始動アドレスからなる。SAS25520は、CQAS
25512およびCQAE25516からの第1の入力を有し、即ちOP
と対応する即ちJP10114の事象のサービスのためのマイ
クロ命令シーケンス始動アドレスを有するマルチプレク
サである。第2のSAS25520の入力は、サブルーチン戻し
アドレス・スタツク(SUBRA)25534から与えられる。一
般に、また以下において説明するように、SUBRA25534
は、割込みが行なわれたマイクロ命令シーケンスのその
時のマイクロ命令アドレスを記憶するためのスタツク機
構として作用する。これらの記憶されたアドレスは、こ
れらの割込みされたマイクロ命令シーケンスの実行の再
開のために後で使用することができる。NASS25526に対
する第3のアドレス・ソースが順次およびケース・アド
レス・ゼネレータ(SCAG)25536から与えられる。一般
に、SCAG25536は特定のマイクロ命令シーケンス内の順
次のマイクロ命令を選択するアドレスを生成する。SCAG
25536はまた、マイクロ命令のケース操作のためマイク
ロ命令アドレスを生成する。第255図に示すように、SCA
G25536とSAS25520の出力は一緒にバス化されて単一のNA
SS25526の入力を構成する。SCAG25536およびSAS25520の
出力間の選択は、SCAG25536およびSAS25520に対する制
御入力(説明を明瞭にするために示さない)によつて与
えられる。NASS25526のアドレス入力間の選択は、おれ
に対して制御入力を与える次のアドレス・ソース選択制
御ロジツク(NASSC)25538によつて制御される。NASSC2
5538は、有効にTSTCON20386およびTSTINT20320から制御
入力を受取るマルチプレクサとなる。以下において更に
詳細に説明するようにTSTCON20386はEU10122内のある操
作条件即ち状態を監視して、NASSC25538に対して対応す
る入力を与える。NASSC25538はTSTCON20386からのこれ
らの制御入力を有効に復号して、NASS25526に対して選
択制御入力を与える。
NAG20340の全体的な構造および処理について説明した
が、次に、更に詳細にNAG20340の作用について説明す
る。
最初に、mCRD20346およびLBPAG25528の飛越し出力から
与えられるNASS25526のアドレス入力について説明する
と、このアドレス・ソースはその時のマイクロ命令によ
る次のマイクロ命令の選択を可能にするために与えられ
る。mCRD20344の飛越し出力は、その時のマイクロ命令
がEUSITT20344の同じページ内の別のマイクロ命令に対
する飛越しを指令することを許容する。LBPAG25528を介
するNASS25526の入力は、EUSITT20344内のページを指定
するmCRD20346の出力の別の部分から与えられる。このL
BPAG25528を介する入力は、長い分岐操作、即ちEUSITT2
0344の1つのページにおけるあるマイクロ命令から別の
ページにおけるあるマイクロ命令への飛越しの実行を可
能にする。更に、LBPAG25528を介してmCRD20346の飛越
し出力からのNASS25526の入力は、FU10120により要求さ
れたあるマイクロ命令シーケンスをEU10122がその時実
行中でない場合には、遊休、即ち待機状態を実行するた
め使用される。この場合、遊休ルーチンは、TSTCON2038
6がFU10120からEU10122に対するEU10122のタスク指名ポ
インタを監視することを指令する。もしEU10122のタス
ク指名ポインタがCOMQ20342に存在しなければ、あるい
は継続中のものがなければ、TSTCON20386はNASSC25538
がNASS25526に対して制御入力を与えることを指令し
て、mCRD20346とLBPAG25528からのNASS25526の入力を選
択する。このようなタスク指名ポインタがCOMQ20342に
受取られるまで、遊休ルーチンはEU10122のタスク指名
ポインタ入力について連続的にテストする。この時、TS
TCON20386は、継続中のタスク指名ポインタおよびNASSC
25538がNASS25526に対して制御出力を与えることを指令
して、一般にSAS25520からのNASS25526の入力を選択す
る。TSTCON20386およびNASSC25538もまたNASS25526に指
令して、呼出されたマイクロ命令からある前の割込みさ
れたマイクロ命令シーケンスへ戻ると同時にSAS25520か
らの入力を選択する。
前述の如く、SAS25520はCOMQ20342およびSUBRA25534か
ら始動アドレスを受取る。新たなマイクロ命令シーケン
スが開始されてあるユーザ・プログラムSOPを実行する
時あるいはJP10114のある事象をサービスする時、SAS25
520はNASS25526に対する入力としてCQAS25512またはCQA
E25516の出力を選択することになる。CQCS25510は、あ
る呼出されたサブルーチンから前に実行中であつたが割
込みされたあるサブルーチンへの戻りと同時に、SUBRA2
5534のあるアドレス出力を選択する。前述の如く、その
時実行中のマイクロ命令のシーケンスが割込みされる
時、SUBRA25534はこのマイクロ命令のアドレスを有効に
記憶するためのスタツク機構となる。SUBRA25534は、事
象の処理のマイクロ命令シーケンスのスタツクにおける
使用に専用化されるいくつかのレジスタを有する11ビツ
ト巾X8ワード深さのレジスタである。SUBRA25534の他の
部分は、SOPのスタツクのため、即ちある最初のマイク
ロ命令シーケンスが第2のマイクロ命令シーケンスを呼
出すマイクロ命令シーケンスのスタツクのために使用さ
れる。SUBRA25534は先入れ先出しスタツクとしては作用
せず、アドレス入力選択レジスタおよびSUBRA25534がmC
RD20346のマイクロ命令制御出力により与えられるラン
ダム・アクセス・メモリーとして作用させられる。これ
により、スタツク機構としてのSUBRA25534の作用はEUSI
TT20344に記憶されたマイクロ命令シーケンスによつて
制御される。第255図に示されるように、割込みされた
マイクロ命令シーケンスの接続のマイクロ命令のアドレ
スは、次に説明するSCAG25536の出力からSUBRA25534の
データ入力に対して与えられる。
前述の如く、SCAG25536は順次アドレスを生成して、マ
イクロ命令シーケンス内の順次のマイクロ命令を選択
し、またケース操作のためのマイクロ命令アドレスを生
成する。SCAG25536は、次のアドレス・レジスタ(NXT
R)25540と、次のアドレス演算論理装置(NAALU)25542
と、SCASE25518を含む。NAALU25542は12ビツトの演算論
理装置である。NAALU25542の最初の11ビツト入力は、AD
RD25522の出力と接続され、これによりEUSITT20344に対
して与えられる接続のアドレスである。NAALU25542に対
する第2の4ビツト入力はSCASE25518の出力から与えら
れる。あるマイクロ命令シーケンスの順次の実行中、SC
ASE25518の出力は2進数零であり、NAALUの桁送り入力
は1に強制される。こにより、NAALU25542の出力はEUSI
TT20344に対して与えられる接続のマイクロ命令アドレ
スより1つ大きなアドレスであり、これにより次の順次
のマイクロ命令のアドレスとなる。第255図に示したよ
うに、SCASE25518はSCALER20338の出力側からの入力を
受取る。この入力はケース操作の間使用され、あるデー
タに関連する番号がNAALU25542の第2の入力に対するSC
ASE25518の出力として選択されることを可能にする。SC
ALER20338からのSCASE25518の入力はこれにより、NAG20
340がマイクロ命令のケース操作を行なうことを可能に
するが、ケース値はSCALER20338の内容によつて決定さ
れる。
NAALU25542の次のアドレス出力はNXTR25540にロードさ
れるが、これは3状態の出力レジスタからなる。NXTR25
540の次のアドレス出力は、SAS25520の出力の場合と共
通に、前述の如くNASS25526の第2の入力と接続され
る。従つて、マイクロ命令シーケンスの通常の実行中、
SCAG25536はNASS25526とADRD25522を介して、EUSITT203
44からの順次のマイクロ命令を選択する。今述べたよう
に、SCAG25536もまたマイクロ命令のケース操作におい
て次のマイクロ命令アドレスを提供することができる。
要約すれば、NAG20340は全ての通常のマイクロ命令シー
ケンスアドレス指定操作を実施することができる。例え
ば、NAG20340は、mCRD20346の飛越しからのNASS25526の
入力を介し、あるいはLBPAG25528を介して飛越し操作ま
たは長い分岐操作のいずれかのその時のマイクロ命令に
より次のマイクロ命令の選択を可能にする。NAG20340
は、COMQ20342およびSAS25520を介してマイクロ命令シ
ーケンスの始動アドレスを提供し、あるいはSVBRA25534
およびSAS25520を介して割込みされスタツクされたマイ
クロ命令シーケンスに対してアドレスを戻すことができ
る。NAG20340は、SCAG25536の操作を介して特定のマイ
クロ命令シーケンスのマイクロ命令を順次アドレス指定
することができ、あるいはSCAG25536を介してマイクロ
命令ケース操作を実施することができる。
2.オペランド・バツフア20322 EUCL20310の構造および作用について選択したが、OPB20
322の構造および作用については次に説明する。前述の
如く、OPB20322はオペランド、データをMEM10112および
FU10120からMODバス10144およびJPDバス10142を介して
受取る。OPB20322は、MULT20314およびEXP20316により
最も有効に使用されたフオーマツトにおいてMULT20314
およびEXP20316に対してデータを提供するいくつかのオ
ペランドフオーマツトの翻訳を実施することができる。
前述の如く、EU10122は整数、パツクされあるいはアン
パツクされた10進数および単精度または2倍精度の浮動
小数点数について算術演算を実施することができる。
従つて、要約すれば、OPB20322は、MEM10112およびFU10
120からの整数、単精度および2倍精度の浮動小数点
数、およびパツクされあるいはアンパツクされた10進数
オペランドを受入れることができ、またMULT20314およ
びEXP20316により最も有効に使用されるフオーマツトに
おいてMULT20314およびEXP20316に対してこれらのオペ
ランドの適当なフイールドを提供することができる。こ
の際、OPB202322は単精度および2倍精度の浮動小数点
数オペランドから指数および仮数のフイールドを抽出し
て、それぞれEXP20316およびMULT20314に対してこれら
のオペランドの指数および仮数を提供し、またアンパツ
クされた10進数オペランドをアンパツクする、即ちMULT
20314により最も有効に使用されるパツクされた10進数
オペランドに変換する。
OPB20322の構造および作用について述べたが、MULT2031
4の構造および作用については次に説明することにす
る。
3.乗算器20314(第257図、第258図) 前述の如く、MULT20314は、単精度および2倍精度の浮
動小数点数オペランド、整数のオペランドおよび10進数
オペランドの仮数フイールドについての加減乗除演算を
実施する。OPB20322に関して前に述べたように、OPB203
22は、アンパツクされた10進数オペランドをMULT20314
により演算されるべきパツクされた10進数オペランドに
変換する。これにより、MULT20314はアンパツクされた1
0進数オペランドについての全ての算術演算を有効に実
施することが可能である。
a.a.乗算器20314のデータ経路およびメモリー(第257
図) 第257図においては、20314のデータ経路およびメモリー
の更に詳細なブロツク図が示される。前述の如く、MULT
20314の主な要素は、MULTRF20350およびCONST20360から
なる記憶素子、MULTIM20328とMULTRM20334を含むオペラ
ンド入力および結果出力の多重化ロジツク、および算術
演算ロジツクを含む。MULT20314のオペランド入力およ
び結果出力多重化ロジツクおよび記憶素子について最初
に説明し、MULT20314の算術演算ロジツクの説明が続
く。
前述の如く、オペランドを含む入力データはMULTINバス
20354を介してMULT20314の算術演算ロジツクに対して与
えられる。MULTINバス20354は、3つのソースからのデ
ータが与えられる。第1のソースは、512ワードX32ビツ
ト巾の読出し専用メモリーであるCONST20360である。CO
NST20360は、算術演算において使用される定数の記憶の
ために使用される。特に、CONST20360はASCII文字オペ
ランドであるアンパツクされた10進数に対するゾーン・
フイールドを記憶する。前述の如く、アンパツクされた
10進数オペランドはOPB20322により受取られ、MULT2031
4により更に有効に使用されるようにパツクされた10進
数オペランドに変換される。このため、MULT20314によ
りかかるオペランドから生成された最終毛か出力はパツ
クされた10進数フオーマツトである。以下において説明
するように、MULT20314は、これらのパツクされた10進
数結果をゾーン・フイールドの装入によつてアンパツク
された10進数結果に変換するため使用することができ
る。第257図に示すように、アドレス入力はEXPQバス203
25およびmCRD20346の出力からCONST20360に対して与え
られる。これらのアドレス入力間の選択は、定数アドレ
ス・マルチプレクサ(CONSTAM)25710を介して与えられ
る。一般に、CONST20360のアドレスはEUCL20310から与
えられるが、あるいはまた特殊な操作のためEXPQバス20
325から与えることもできる。
オペランド・データは、2入力の64ビツト・マルチプレ
クサである。MULTIM20328を介してMULTINバス20354に対
して与えられる。MULTIM20328の第1の入力はOPQバス20
323から与えられ、OPB20322から与えられるオペランド
情報からなる。OPQバス20323は56ビツト巾のバスであ
り、これに現われるオペランド・データは、いずれかが
直接OPB20322からあるいはアンパツクされた10進数のパ
ツクされたオペランドへのOPB20322の変換の結果与えら
れる32ビツトの整数オペランド、または32ビツトのパツ
クされた10進数オペランド、または24ビツトの単精度オ
ペランドの仮数フイールドまたは56ビツトの2倍精度浮
動小数点数オペランドの仮数フイールドからなる。前述
の如く、あるOPQバス20323は特定のオペランドに従つて
零または符号拡張充填が可能である。
MULTIM20328の第2の入力はMULTRF20350から与えられ
る。MULTRF20350は、16ワードX64ビツト巾のランダム・
アクセス・メモリーである。第203図および第257図に示
すように、MULTRF20350は、FRバス20337を介してRFR203
36の出力間に接続され、MULTIM20328およびMULTINバス2
0354を介してMULT20314の算術演算ロジツクの入力側に
接続される。従つて、MULTRF20350は、反復的な算術演
算を含む算術演算の中間結果を記憶するためのスクラツ
チ・パツド・メモリーとして使用することができる。更
に、MULTRF20350の一部は、GRF10354における如く、FU1
0120におけるMIS10368およびMOS10370と類似のEU10122
のスタツク機構として使用される。EU10122のスタツク
機構の処理については、EU10122のMEM10112およびFU101
20に対するインターフエースの以降の説明において記述
する。MULTRF20350のアドレス入力(ADR)は、乗数レジ
スタ・フアイル・アドレス・マルチプレクサ(MULTRFA
M)25712から与えられる。
MULTRFAM25712は、例えばSN74S258からなる複式4ビツ
ト・マルチプレクサである。MULTRF20350に対するアド
レス入力に加え、MULTRFAM25712はEXPRF20380に対して
アドレス入力を与える。前述の如く、MULTRF20350およ
びEXPRF20380は共に、GRF10354およびFU10120と類似のE
U10122の汎用レジスタ・フアイルを構成する。このた
め、MULTRF20350およびEXPRF20380は、これらに関する
並列の読出しおよび書込みエントリのため並列にアドレ
ス指定される。MULTRFAM25712に対するアドレス入力は
最初にmCRD20346から与えられ、これによりMULTRF20350
とEXPRF20380のアドレス指定のマイクロ命令制御を提供
する。MULTRFAM25712に対する第2のアドレス入力は、
乗数レジスタ・フアイルのアドレス・カウンタ(MULTRF
AC)25714の出力から与えられるのである。
MULTRFAC25714は4ビツトのカウンタであり、MULTRF203
50およびEXPRF20380に対する順次アドレスを生成するた
め使用される。初期アドレスは、乗算器レジスタ・フア
イル・アドレス・カウンタ・マルチプレクサ(MULTRFAC
M)25716からMULTRFAC25714にロードされる。MULTRFACM
25716は2入力の4ビツト・マルチプレクサである。MUL
TRFACM25716に対する入力はmCRD20346の出力から最初に
与えられる。この入力は、MULTRFA25714にロードされる
べき初期アドレスのマイクロ命令の選択が後で使用され
て順次のMULTRF20350およびEXPRF20380のアドレスを生
成することを許容する。OPQバス20323からのMULTRFACM2
5716の入力は、1つのアドレス即ち1連のアドレスの始
動アドレスが、例えばMEM10112およびFU10120からJPDバ
ス10142またはMODバス10144を介して選択されることを
可能にする。
MULT20314の算術演算ロジツクの中間および最終結果出
力は、FRバス20337およびMULTRM20334から直接MULTRF20
350のデータ入力に対して与えられる。MULTRM20334に対
する入力は更に、FRバス20337およびCONSIZE20352およ
びTSTINT20320の出力から与えられる。
FRバス20337はRFR20336の64ビツト出力と接続されたバ
スであり、MULT20314の算術演算の最終演算および中間
演算の結果を保持する。MULT20314の算術演算ロジツク
の以下の説明において明らかなように、RFR20336の出
力、従つてFRバス20337は64ビツト巾である。特に2倍
精度浮動小数点数の64ビツトの仮数フイールドを含む演
算において、あるMULT20314の算術演算の中間結果の全
ての有意義なデータ・ビツトの保持を保証するため64ビ
ツトが提供される。更に、今すぐに説明するように、ま
た前に述べたように、MULT20314はパツクされた10進数
フオーマツトにおける最終結果をアンパツクされた10進
数フオーマツトにおける最終結果に変換することができ
る。この操作においては、単一の32ビツト、即ち1ワー
ドのパツクされた10進数の結果が、ゾーン・フイールド
の挿入によつて64ビツトの、2ワードのアンパツクされ
た10進数フオーマツトに変換される。
前述の如く、2つの並列なデータ経路がFRバス20337か
らMULTRF20350への情報の転送のために提供される。第
1の経路は直接FRバス20337からで、第2の経路はMULTR
M20334のアンパツクされた10進数マルチプレクサ(UPD
M)25718経由である。直接経路は、FRバス20337のビツ
ト0乃至23およびビツト56乃至63からなる情報の32ビツ
トに対して使用される。UPDM25718を経由するデータ経
路は、UPDM25718の第1の入力に接続されたFRバス20337
のビツト24乃至55、またはUPDM25718の第2の入力と接
続されたビツト40乃至55のいずれかを含む。単精度浮動
小数点数は32ビツト数プラス2つ以上保護ビツトであ
り、これによりMULTRF20350に対する直接経路のビツト
0乃至23を介し、またUPDM25718の第1の入力(ビツト2
4乃至55)を介してMULTRF20350に対して書込まれる。2
倍精度の浮動小数点数は、5ビツトの巾プラス保護ビツ
トであり、このためMULTRF20350に対する直接経路およ
びUPDM25718の第1の入力を経由する経路を使用する。
直接経路のビツト56乃至63は、2倍精度の浮動小数点数
の保護ビツトに対して使用される。整数およびパツクさ
れた10進数の双方はFRバス20337のビツト24乃至55を使
用し、このためUPDM25718の第1の入力を介してMULTRF2
0350に対し書込まれる。前述の如く、これらのオペラン
ドのビツト0乃至23は符号拡張により充填される。
a.a.a.コンテナ・サイズの検査 前述の如く、MULTRM20334はCONSIZE20352からの入力を
有する。以下においてTSTINT20320に関して説明するよ
うに、CONSIZE20352は、EU10122からMEM10112に対する
結果の各ストア・バツク毎に「コンテナ・サイズ」検査
を実施する。CONSIZE20352は、結果が書込まれるべきME
M10112のアドレス空間を記述する論理記述子に対してス
トア・バツクされるべき結果における有意義なビツトの
数を比較する。MEM110112に対する反復的な書込操作が
結果のMEM10112への転送のため必要とされる場合、即ち
ストリング転送において、コンテナ・サイズ情報はコン
テナ・サイズ・ドライバ(CONSIZED)25720およびMULTR
M20334を介してCONSIZE20352から読出されて、MULTRF20
350に書込まれる。このため、MULTRF20350に記憶される
コンテナ・サイズ情報を用いて、EU10122からMEM10112
に対する結果のストリング転送の間、EU10122が連続的
なコンテナ・サイズ検査を実施することを可能にする。
更に、すぐに説明するように、コンテナ・サイズ情報は
CONSIZE20352からMODバス10144に対して読込むことがで
きる。
b.b.b.最終開口の出力マルチプレクサ20324 最後にFROM20324について述べれば、前述の如く、FROM2
0324は一般に、MEM10112またはFU10120に対する転送の
ため、JPDバス10142に対するEU10122の算術演算の結果
を転送するため使用される。第257図に示すように、FRO
M20324は、24ビツトの最終結果バス・ドライバ(FRBD)
25722および結果バス・ドライバ(RBR)25724からなつ
ている。FRBD25722の入力はFRバス20337と接続され、こ
れに現われるデータがJPDバス10142に対して転送される
ことを可能にする。特に、FRBD25722は、EXP20316から
の対応する指数フイールドと並列に、JPDバス10142に対
して単精度の浮動小数点数の結果の24ビツトの仮数フイ
ールドを転送するため使用される。RBR25724の入力はRS
LTバス20388と接続されてUPDM25718の出力がJPDバス101
42に対して転送されることを可能にする。一般に、RBR2
5724、RSLTバス20388およびUPDM25718は、MULT20314か
らJPDバス10142に対してEU10122の演算の最終結果を転
送するために使用される。このデータ経路により転送さ
れる最終結果は、整数、パツクされあるいはアンパツク
された10進数結果および2倍精度浮動小数点数の結果の
仮数フイールドを含む。2倍精度の浮動小数点数のアン
パツク10進数および仮数フイールドは共に2つの32ビツ
ト・ワードからなり、このため2つの順次の転送操作に
おいてJPDバス10142に対して転送される。
MULT20314の記憶素子および入出力回路の構造および作
用について説明したが、MULT20314の算術演算ロジツク
について次に説明することにする。
4.テストおよびインターフエース・ロジツク20320(第2
60図〜第268図) 前述の如く、TSTINT20320は、CONSIZE20352と、MULTIM2
0328と、TSTCOND20384と、RSLTバス20388を含む。CONSI
ZE20352は、前述の如く、EU10122の操作結果がMEM10112
に対して書込まれる時、「コンテナ・サイズ」検査操作
を実施する。即ち、CONSIZE20352は、EU10122の結果の
有意義ビツトのサイズまたは数を、EU10122の結果が書
込まれるべきMEM10112の場所の容量即ちコンテナ・サイ
ズと比較する。第203図に示すように、CONSIZE20352はF
Rバス20337からの第1の入力、即ちEU10122の演算結果
を受取る。CONSIZE20352の第2の入力は、これらのEU10
122の結果が書込まれるべきMEM10112のアドレス空間を
識別する論理記述子の長さフイールドを受取るように長
さバス20226と接続されている。CONSIZE20352は、例え
ば、FRバス20337に現われるEU10122の演算結果を検査し
かつこれらの結果におけるデータのビツト数を判定する
ため、読出し専用メモリーおよびフイールド・プログラ
ム・ロジツク・アレーの組合せである論理回路を含む。
CONSIZE20352はEU10122の結果のサイズを論理記述子の
長さフイールドと比較し、特に、もし結果のサイズが論
理記述子の長さを越える場合は、以下に示すように、MU
LTIM20328に対して警報出力を与える。
前に述べ、かつ以下において更に説明するTSTCOND20384
は、FU10120とEU10122間のインターフエース回路であ
る。TSTCOND20384は、EU10122の操作に関してEU10122に
より実施されるあるテスト操作の結果をFU10120が規定
して検査することを可能にする。
MULTIM20328はEU10122の操作を監視して、ある「例外」
が生じる時を表示する出力を提供する。これらの例外と
は、意図された零による除算、浮動小数点数の指数の下
位桁あふれまたは桁あふれ、および整数のコンテナ・サ
イズの障害が含まれる。RSLTバス20388もまた、EU10122
の操作に割込みを行なうことをFU10120に許容するEU101
22とFU10120間のインターフエースである。RSLTバス203
88は、FU10120をして、前に述べたあるFU10120の事象の
処理において補佐を行なうある操作の実行をEU10122に
指令することを許容する。
CONSIZE20352、MULTIM20328、TSTCOND20384、RSLTバス2
0388の作用、およびFU10120に対するEU10122のインター
フエースの他の特徴については、前記インターフエース
の作用およびFU10120のスタツク機構の如きEU10122のあ
る内部機構の作用についての以下の説明において、更に
記述することにする。
a.a.FU10120/EU10122間のインターフエース 前述の如く、EU10122およびFU10120は、各々がそれ自体
のマイクロコード制御下で作用する非同期の処理装置で
ある。EU10122およびFU10120は同時かつ相互に独立して
作用するが相互に結合され、その作用は以下に述べるイ
ンターフエース信号によつて連係される。EU10122が万
一FU10120からの要求に即時応答できない場合、EU10122
が使用可能になるまでFU10120は遊休状態となり、また
逆にEU10122からのオペランド即ち操作の要求を受取ら
ないかあるいはこれがない場合には、オペランド即ち操
作の要求がFU10120から受取られるまで、EU10122は遊休
状態を維持することになる。
通常の作用においては、EU10122はFU10120の制御下にあ
るオペランドを操作し、これは更にユーザ・プログラム
のSOPの制御下にある。FU10120があるオペランドの算術
演算または論理演算を要求する時は、FU10120は指令即
ちEU10122に対するタスク指名ポインタ(EUDP)をタス
ク指名する。前述の如く、EUDPは基本的にはEUSITT2034
4に対する初期アドレスである。EUDPは、オペランドに
ついての必要な演算を実施するEU10122のマイクロ命令
シーケンスの始動場所を識別する。前述の如くFU10120
の制御下でオペランドがEU10122から取出され、OPB2032
2に対して転送される。次に、これらのオペランドがEU1
0122によりOPB20322から呼出されて、前述の如くMULT20
314およびEXP20316に対して転送される。所要の操作が
完了した後、FU10120は結果が用意されたことを通知さ
れる。この時点で、FU10120はあるテスト条件、例えばT
STCOND20384を介してある整数即ち10進数の桁送りビツ
トがセツトされたか、あるいは仮数の符号ビツトがセツ
トまたはリセツトされるかの如き条件を検査することが
できる。このテスト操作は、FU10120およびEU10122の操
作の条件付き分岐および同期操作のためFU10120によつ
て使用される。MULTIM20328による例外検査もまたこの
時実施される。例外検査は、例えば、零による除算が試
みられるか、あるいはコンテナ・サイズの障害が生じた
かどうかを判定する。一般に、FU10120が例外検査を要
求するまではFU10120は例外エラーの通知を受けない。
結果がFU10120またはMEM10112に対してEU10122により転
送された後、次の操作がFU10120により要求されるまでE
U10122は遊休操作に入る。
FU10120とEU10122間の全体的なインターフエースの作用
について簡単に説明したが、初期手順と呼ばれるこのイ
ンターフエースの作用については次に更に詳細に説明す
る。一般に、通常の操作におけるEU10122とFU10120間の
初期手順操作は6つの操作に続くものと見做すことがで
き。これらの操作は、例えば、COMQ20342のローデイン
グ、OPB20322のローデイング、EU10122からFU10120また
はMEM10112に対する結果のストア・バツクまたは転送、
テスト条件の検査、例外検査およびEU10122の遊休操作
を含む。FU10120とEU10122間の初期手順については、今
挙げた順序に従つてこれらの操作の各種類について以下
において説明する。
a.a.a.指令キユー20342のローデイング(第260図) 第260図においては、図示の如くCOMQ20342のローデイン
グの目的のためのFU10120に対するEU10122のインターフ
エースが示されている。通常のSOP指令によるJP10114の
操作の間、8ビツトの命令(OP)コードは前に述べたよ
うに命令ストリームから分析され、またこれも前に説明
したようにEUSDT20266をアドレス指定するダイアレクト
情報と連結される。EUSDT20266は、EUSITT20344に対し
て対応するアドレス即ちEUDPを与える。
ダイアレクト情報は、その時実行中のS言語を指定し、
その結果このS言語に対してEUSITT20344において使用
可能なマイクロ命令シーケンスのグループを指定する。
前述の如く、FU10120は1ダイアレクト当り245までのマ
イクロ命令シーケンスを有する4つのS言語ダイアレク
トと、1ダイアレクト当り128までのマイクロ命令シー
ケンスを有する8つのダイアレクトを指定することがで
きる。
EUSDT20266によつて与えられるEUDPは、前述の如く、9
ビツトのアドレス・フイールドと、2ビツトのオペラン
ド情報フイールドと、1ビツトのフラツグ・フイールド
からなつている。アドレス・フイールドはEUSITT20344
におけるマイクロ命令シーケンスの始動アドレスであ
り、EU10122はこのマイクロ命令シーケンスにより指令
される操作を実施することになる。EUSITT20344はアド
レス・フイールドの11ビツトを要求し、EUDPの9ビツト
・アドレス・フイールドは左寄せおよび零充填によつて
ある11ビツトのアドレス・フイールドにマツプされる。
FU10120はまた、JPDバス10142からのEU10122のマイクロ
命令制御されたどんな操作でもタスク指名即ち選択する
ことができる。このようなEUDPはJPDバス10142からEUSI
TT20344のデータ入力に対して与えられ、直接mCRD20346
に送られる。EUDPがJPDバス10142から与えられる前に、
FU10120はこのEUDPをMEM10112に記憶された妥当な、即
ち許容されたEUSITT20344のアドレスのリストと比較す
る検査操作を行なう。もしJPDバス10142を介して与えら
れたEUDPが適正なEUSITTのアドレスでなければ、誤りが
表示される。あるいはまた、FU10120は、そのマイクロ
命令ワードにおけるリテラル・フイールドからEUDP、即
ちEUSITT20344のアドレスを有効に提供することができ
る。このようなFU10120のマイクロ命令ワードのリテラ
ル・フイールドがEUSDT20266に対するSOPとして有効に
使用可能である。
COMQ20342のロード操作の間EU10122とFU10120間の初期
手順は、第260図に示すように進行可能である。12ビツ
トのEUDPがEUDISバス20206上に配され、制御信号ロード
指令キユー(LDCMQ)が保有される。もしCOMQ20342が充
填済みであるならば、COMQ20342に余地ができるまで、F
U10120を状態M0に保持させる制御信号の指令保持(CMDH
OLD)をEU10122が生じる。前述の如く、COMQ20342は2
つの2ワード・バツフアからなり、このバツフアにおい
ては1つのバツフアが通常のSOP操作のため使用され、
他方のバツフアはFU10120およびEU10122の内部機構操作
の制御のため使用される。
EUDPは、状態のタイミング信号MICPTおよびM1が保有さ
れる時COMQ20342に対してロードされる。もしCOMQ20342
に対して転送されるEUDPが2倍精度の浮動小数点数の演
算に関するものである場合、制御信号「2倍精度のセツ
ト(SETDP)」が保有される。SETDPはOPB20322の制御の
ため使用され、単精度および2倍精度の浮動小数点数演
算は同じSOPを他の方法で使用するため、同じEUSITT203
44のマイクロ命令シーケンスを他の方法で照合すること
になる。
この時点で、EUDPはCOMQ20342に対してロードされ、前
述の如くEUCL20310によりFU10120の操作を制御するため
復号される。要求されたマイクロ命令シーケンスが実行
された後前記のEUDPのEUSITT20344のマイクロ命令シー
ケンスによつて特定の各EUDPがクリアされる。
b.b.b.オペランド・バツフア20320のローデイング(第2
61図) 第261図においては、OPB20322のローデイングのためEU1
0122、FU10120およびMEM10112の間のインターフエース
および初期手順の略図が示される。EU10122からの制御
信号クリア・キユー充填(CLQF)は、FU10120がEU10122
に対して転送されるべきオペランドに対するMEM10112へ
の要求を開始する前に、EU10122によつて保有されねば
ならない。CLQFはクリアし、「EU10122のOPB20322充
填」状態がFU10120に生じる。これにより、CLQFは、OPB
20322にオペランドを受取る余地が存在することを表示
する。もしFU10120が「EU10122のOPB20322充填」状態に
あり、また別のオペランドがEU10122に対して転送され
ることを要求されるならば、FU10120はCLQFが保有され
るまで状態M1に保持されることになる。
ある特定のSOPの実行の開始時に、「EU10122のOPB20322
充填」状態が生じることなくFU10120は2つのオペラン
ドをOPB20322に転送することができる。これは、EU1012
2があるSOPの実行の始めに遊休状態であり、第2のオペ
ランドが到着する前にOPB20322からの第1のオペランド
を略々即座にアンロードするためである。
FU10120から与えられた制御信号のジヨブ処理装置オペ
ランド(JPOP)は、MEM10112からMODバス10144を介して
OPB20322に対して転送されるべきオペランドに対して保
有されない状態でなければならない。これは、JPOPNO通
常の状態である。もしJPOPが保有されるならば、OPB203
22はJPDバス10142からのデータでロードされる。データ
は、制御信号M1CPTおよびJPOPによつてJPDバス10142か
らOPB20322にストローブされる。しかし、MEM10112から
読出されたオペランドは、MEM10112がDAVEBを保有してM
EM10112からの妥当データがMODバス10144上で使用可能
であることを表示する時MODバス10144を介してOPB20322
に対して転送される。DAVEBもまたMODバス10144上のデ
ータをOPB20322に対してストローブするため使用され
る。もしMEM10112からの制御信号ZFILLがこの時点で保
有されるならば、整数オペランド演算の間これらのオペ
ランドが符号が付されずコード拡張ではなく零充填の状
態に残されるべきことを表示するように信号ZFILLが解
釈される。もしデータがMEM10112からではなくJPDバス1
0142から与えられるならば、その時のEUDPのビツト11
は、MODバス10144からのOPB20322のローデイングの間、
ZFILLと同じ機能を実施するため使用することができ
る。
OPB20322のローデイングは、一部は、FU10120からEUDIS
バス20206を介して与えられるEUDPのビツト9および10
によつて制御される。ビツト9は第1のオペランドの長
さを示し、ビツト10は第2のオペランドの長さを示す。
オペランドの長さは、EUDPのアドレス部分に示されるオ
ペランド形式と共に、ある特定のオペランドが如何にし
てOPB20322からアンロードされてMULT20314およびEXP20
316に対して転送されるかを判断する。
この時点において、COMQ20342およびOPB20322はそれぞ
れEUDPおよびオペランドでロードされている。対応する
EUDPがCOMQ20342に対してロードされる前にはオペラン
ドは一般にOPB20322に転送されないことを留意すべきで
ある。しかし、オペランドおよびEUDPは同時にEU10122
に対して転送することができる。もし他のオペランドが
ある特定の操作のため要求されるならば、これらのオペ
ランドは前述の如くOPB20322に対してロードされるので
ある。
c.c.c.ストア・バツク(第262図) 第262図においては、EU10122からMEM10112への結果のス
トア・バツク即ち転送およびその内部において実施され
る初期手順の略図が示される。EU10122の操作の最終結
果が使用可能となる時、EU10122は制御信号データ使用
可能(DRDY)を保有する。これと同時に、FU10120はJPD
バス10142に対する制御信号「転送」に応答し、これはE
U10122の結果をJPDバス10142に対してゲートする。通常
の操作、即ちSOPの実行においては、FU10120から与えら
れる物理的記述子により選択されるように、FU10120
は、EU10122の結果をMEM10112における行先にストア・
バツクさせる。あるいはまた、ある結果は一時に32ビツ
ト即ち1ワードずつFU10120に対して転送することがで
きる。
前述の如く、また更に以下において述べるように、FU10
120は結果のストア・バツクの間EU10122のテスト状態を
検査することができる。一旦ストア・バツク操作が完了
すると、FU10120は制御信号「転送完了」(XFRC)を生
成する。XFRCもまた、EU10122の結果およびテスト条件
がFU10120により受入られたことをEU10122に対して表示
し、その結果EU10122はもはやこれらの結果およびテス
ト条件を保有する必要はない。
d.d.d.テスト条件(第163図) 第263図においては、FU10120によるEU10122のテスト条
件の検査および初期手順の略図が示される。前述の如
く、EU10122のある状態および操作を示すテスト結果
は、TSTCOND20384においてサンプルされて記憶され、FU
10120によつて実行することができる。DRDYがEU10122に
より保有される時、FU10120は、例えば、前述の如く結
果のテストならびに結果の転送のEU10122の8つの条件
の内の1つを選択することができる。FU10120によりテ
ストが可能であるEU10122の条件については以下にリス
トされ説明する。最終結果が正、負または零のいずれで
あるかの如き条件は、前述の如きFU10120の諸操作の条
件付き分岐を容易にするため検査することができる。FU
10120は、テスト条件選択信号(TEST(2−4))を介
してテストする条件を規定する。FU10120はEU10122に対
する制御信号「EUテスト可能(EUTESTEN)」を保有し
て、選択されたテスト条件をゲートする。この選択され
たテスト条件はこの時EU10122からFU10120に対するデー
タ信号テスト条件(TC)として現われる。ロジツク1の
TCは、例えば、選択された条件が偽であることを表示す
るが、ロジツク0のTCは選択された条件が真であること
を示す。FU10120は、これが要求されたテスト条件を感
知したこと、またこのテスト条件が制御信号XFRCを保有
することによつてEU10122により保有される必要がもは
やないことを表示する。
e.e.e.例外検査(第264図) 第264図においては、FU10120によるEU10122の例外状態
の例外検査およびその内部の初期手順の略図が示され
る。前述の如く、FU10120がEU10122の結果のストア・バ
ツクを開始する時、EU10122の例外条件はFU10120により
検査することができる。例外検査は、例えば、試みられ
た零による除算、または浮動小数点数の指数の下位桁あ
ふれまたは桁あふれ、またはコンテナ・サイズの障害を
検出することができる。試みられた零による除算、また
は浮動小数点数の下位桁あふれまたは桁あふれは、スト
ア・バツクの前、即ちFU10120による特定の要求なしに
検査することができる。
前述の如く、コンテナ・サイズ障害は、MEM10112におけ
る行先コンテナのサイズとの結果の長さの比較によりCO
NSIZE20352によつて検出される。コンテナ・サイズの例
外検査は、EU10122の結果のストア・バツクの間、即ちF
U10120が条件SBにある間に生じる。コンテナ・サイズ
は、EU10122のハードウエア、即ちCONSIZE20352によつ
て33ビツトの長さよりも短い結果についてのみ自動的に
実施される。更に大きな結果、即ち大きな整数およびBC
D結果のサイズ検査は、このような大きな結果の転送が
ストリング転送として実行されるため、CONSIZE20352の
出力を用いて1つのマイクロコード・ルーチンによつて
実施される。単精度または2倍精度の浮動小数点数の結
果のいずれかに対しては、これらのデータ形式が常に32
または64ビツトを占有するため、これらの結果に対して
はコンテナ・サイズ検査を実施することは不必要とな
る。行先のコンテナ・サイズは長さバス20226を介してC
ONSIZE20352に対して与えられる。
制御信号、長さ対メモリーAONまたはランダム信号(LMA
ONRS)は、特定のEU10122の結果と対応する論理記述子
の形式フイールドからFU10120によつて生成される。LMA
ONRSは、結果のデータ形式が符号を付さない整数である
ことを示す。LMAONRSは、EU10122の結果の必要なコンテ
ナ・サイズが決定される方法を判定する。この情報をLM
AONRSから受取つた後、EU10122は、MEM10112における行
先コンテナ・サイズがEU10122の結果を保有するのに十
分な大きさであるかどうかを判定する。もしこの行先コ
ンテナ・サイズが十分に大きくなければ、コンテナ・サ
イズの障害はCONSIZE20352により、あるいはEU10122の
マイクロ命令シーケンスにより検出される。
コンテナ・サイズの障害は、零による除算および指数の
下位桁あふれおよび桁あふれの障害と同様に、FU10120
が制御信号「サイズ検査」(CKSIZE)を保有する時、FU
10120に対して信号される。この時、もし前記の障害の
いずれかが生じるならば、EU10122は制御信号「例外」
(EXCEPT)を保有する。もし障害が生じるならば、FU10
120に対する事象の要求が惹起する結果となる。ある事
象の要求がFU10120により満たされるならば、FU10120は
EU10122に割込みを行ない、これらの例外条件をJPDバス
10142に対して転送するマイクロ命令ルーチンに対してE
U10122をタスク指名することができる。もしあるコンテ
ナ・サイズ障害が前記の例外条件を惹起したならば、EU
10122はFU10120に対してJPDバス10142を介して必要なコ
ンテナ・サイズを転送することができる。
f.f.f.遊休ルーチン 最後に、その時のEU10122の操作が完了する時、EU10122
が遊休ループ・マイクロ命令ルーチンになる。必要に応
じて、EU10122がこれ以上の操作のため必要とされるま
で、遊休ループ・マイクロ命令ルーチンにEU10122を強
制するため、FU10120は制御信号「実行装置打切り」(E
UABORT)を保有することができる。
g.g.g.EU10122のスタツク機構(第265図、第266図、第2
67図) 前述の如く、EU10122は2つの種類の操作のいずれか一
方を実施することができる。第1に、EU10122は、ユー
ザ・プログラムのSOPの実行において算術演算を実施す
ることができる。第2に、EU10122は、FU10120の内部機
構の算術演算装置を補佐する作用、および核心の操作と
呼ばれる操作として作用する。
核心操作においては、EU10122は、アドレス生成、アド
レス翻訳、その他の核心機能の間、FU10120に対する算
術演算装置として作用する。核心モードにおいては、SO
Pの要求時ではなくFU10120の核心マイクロ命令シーケン
スの要求時に、EU10122はマイクロ命令シーケンスを実
行しつつある。一般に、このような核心操作はJP10114
の操作にとつて重要である。FU10120は、SOPに関するEU
10122の操作に割込みを行ない、核心操作の実施のためE
U10122のマイクロ命令シーケンスを開始する。
割込みが生じた時、EU10122はEU10122のその時の操作状
態をある1つのレベルの深さのスタツクに保管する。EU
10122はこの時、FU10120およびEU10122の内部即ち核心
操作に関するEUDPを受取つてこれを記憶するため使用さ
れるCOMQ20342の部分から1つのEUDPを受入れることが
できる。EU10122により核心操作を要求する時、FU10120
は一般にオペランドをJPDバス10142を介してOPB2032に
対して転送し、またJPDバス10142を介してEU10122の最
終結果を受取る。オペランドもまたMODバス10144を介し
てEU10122に対して与えられる。EU10122が要求された核
心操作を完了した後、EU10122はその内部スタツクから
操作状態を再ロードし、通常の操作が割込まれた時点か
ら通常の操作を継続する。
前の割込みが実行中にFU10120からの別の割込みが生じ
るならば、EU10122はその時の状態およびデータ、即ちM
EM10112に対する最初の割込みの状態およびデータを移
動する。EU10122は、事象「EU10122のスタツクの桁あふ
れ」を要求することによつてMEM10112における最初の割
込みの状態およびデータをFU10120が記憶するとを要求
する。EU10122の「通常の」状態、即ちEU10122が最初の
割込みの発生時に実行中である操作に関する状態および
データは、EU10122の内部スタツクに記憶されてここに
維持される。次に、EU10122は第2の割込みの実行を開
始する。EU10122が第2の割込みのための操作を完了す
る時、FU10120に対する「EU10122のスタツクの下位桁あ
ふれ」事象を要求するEU10122により、第1の割込みか
らの状態がMEM10112から再ロードされる。次に、EU1012
2は第1の割込みの実行を完了し、通常の操作、即ち第
1の割込みの前に実行中であつた操作の状態を再ロード
してこれを再開する。
従つて、EU10122は2つの状態の間FU10120からの割込み
を処理することができる。第1の割込み状態は、通常の
操作即ちユーザ・プログラムのSOPの実行中に生じる割
込みからなる。核心の操作の間割込みが生じる時、即ち
割込みを作用するためのマイクロ命令シーケンスの実行
中に第2の状態が生じる。EU10122の操作についてはこ
れらの状態の各々に関して以上述べた順序で次に説明す
ることにする。
第265図においては、前に述べた10122のスタツク機構の
略図が示される。内部に存在するEU10122のスタツク機
構のこれらの部分は、EU10122のその時の状態レジスタ
(EUCSR)26510およびEU10122の内部スタツク(EUIS)2
6512からなる。EUCSR26510は、EU10122のその時の操作
のデータおよび状態を含むEU10122の内部レジスタから
なる。EUCSR26510は、例えば、mCRD20346、TSTINT20320
のレジスタおよびMULT20314およびEXP20316の内部の前
記のレジスタからなる。
EUCSR26510に含まれる状態およびデータは、EU10122に
よりその時実行中の操作のそれである。この時の状態
は、例えば、EU10122によりその時実行中のSOPの状態、
または例えばFU10120により要求される入れ子構成の一
連の割込みの4番目の割込みのそれでよい。
EUIS26512は、MULTRF20350およびEXPRF20380のいくつか
のレジスタからなる。EUIS26512は、EU10122によりその
時実行中であつて割込みされたSOP操作のその時の状態
を記憶してこれを保管するため使用される。このSOP操
作の状態およびデータは、FU10120により要求される入
れ子構成の一連の割込みにおいて生じ得る割込み数の如
何に拘わらず、EUIS26512に記憶された状態を維持する
ことになる。割込みされたSOP操作の状態およびデータ
は、全ての割込みが完了した時、EUIS26512からEUCSR26
510に戻される。
EU10122のスタツク機構の最後の部分は、MEM10112内に
駐在するEU10122の内部スタツク(EUES)26514の部分で
ある。EUES26514は、入れ子構成の割込みのシーケンス
の連続する割込み操作の状態およびデータを記憶するた
め使用されるMEM10112のいくつかのアドレス場所からな
る。即ち、もし一連の4つの割込みがFU10120により要
求されるならば、4番目の割込みの状態およびデータは
EUCSR26510に駐在し、第1の、第2のおよび第3の割込
みの状態およびデータはEUES26514に対して順次転送さ
れる。この点に関して、また前に述べたように、EU1012
2のスタツク機構の制御作用は、例えば第103図に関して
前の説明したMIS10368およびSS10336のそれと類似して
いる。
前述の如く、割込みは、EU10122の通常の操作の間即ちE
U10122によるSOPの実行中、もしくはEU10122がFU10120
により要求される前の割込みを実行中に、FU10120によ
つてEU10122に対して要求することができる。EU10122の
通常の操作の間の割込みの発生と同時のEU10122およびF
U10120の作用について以下に説明することによる。
第266図においては、EU10122が通常のモードで操作中の
EU10122の割込みにおけるEU10122とFU10120間の初期手
順の略図が示されるが、これは第265図と関連して照合
すべきである。以下の論述の目的のため、FU10120によ
るEU10122の操作の割込みは、FU10120に対して内部の割
込みと識別するためナノ割込みと呼ばれる。
FU10120はその操作の状態M0における制御信号「ナノ割
込み(NINTP)」の保有によつてEU10122の通常の操作に
割込みを行なう。NINTPは、算術演算の如きEU10122のあ
る重要な操作の間にEU10122によつてマスクすることが
できる。もしNINTPがEU10122によりマスクされるなら
ば、FU10120はこれがこの割込みを確認するまで状態NW
に維持されることになる。
FU10120からのNINTPの受取りと同時に、EU10122はその
時のSOPの状態およびデータをEUCSR26510からEUIS26512
に対して転送する。次に、EU10122はFU10120に対する制
御信号「ナノ割込み確認(NIACK)」を保有して、ナノ
割込みを受入れるためのEU10122の可用度を確認する。
次に、FU10120は状態M1に入りEUDISバス20206にEUDPを
置く。次に、COMQ20342のローデイングは前記の如く進
行し、EU10122はナノ割込みDUDPをCOMQ20342の適当なレ
ジスタにロードする。COMQ20342は前述の如くロードさ
れ、またもしJPOPが保有されるならば、データがJPDバ
ス10142からOPB20322に対して転送される。もしJPOPが
保有されなければ、データはMODバス10144からOPB20322
に対して与えられる。次に、EU10122の通常の操作につ
いて前に説明したように、EU10122は所要のナノ割込み
操作、および結果のストア・バツク、およびテスト条件
の進行の検査の実行のため進行する。一般に、例外検査
は実施されない。EU10122がナノ割込み操作の実行を完
了する時、EU10122はEUIS26512からEUCSR26510に対して
割込みされたSOP操作の状態を転送し、このSOPの実行を
再開する。この時点において、EU10122は制御信号「ナ
ノ割込みトラツプ可能」(NITE)を保有する。NITEはFU
10120により受取られてテストされ、ナノ割込み作用の
終りを表示する。
第267図においては、核心操作のためのEU10122の入れ子
状の即ち順次の割込みの間における、EU10122、FU10120
およびMEM10112間のインターフエースおよびその初期手
順の略図を示している。以降の論議においては、EU1012
2は既にFU10120によりEU10122に対して提供される核心
操作のためのナノ割込みを処理中であるものとする。次
に、FU10120は、これ以上の核心操作のためEU10122に対
して第2の、または第3の、または第4のナノ割込みを
提供することができる。FU10120はEU10122にナノ割込み
を要求するためNINTPを保有する。前に実行中のSOP操作
からのEU10122の通常のモードの状態およびデータは、E
UIS26512に記憶されてこれに保持される。EUCSR26510に
おいてその時実行中のナノ割込み操作のその時の状態お
よびデータはMEM10112においてEUES26514に対して転送
されて、継続中のナノ割込みの開始を可能にする。EU10
122はこの時、NIACKおよび制御信号「実行装置の事象」
(EXEVT)を保有する。FU10120への信号EXEVTは、FU101
20に対して、EU10122が特に生じたこと、またこの場合E
XEVTがEU10122のスタツクの桁あふれについてFU10120が
サービスすることを要求する。これにより、FU10120
は、「EU10122のスタツクの桁あふれ」の事象ハンドラ
マイクロ命令シーケンスに対してトラツプされる。この
事象ハンドラは、EU10122において前に実行中であつた
割込みされたナノ割込みのその時の状態およびデータを
EUES26514に対して転送する。割込みされたナノ割込み
の状態およびデータは、一時に32ビツトずつEUES26514
に対して転送される。FU10120は、JPDバス10142に対す
るこれらの状態およびデータ・ワードの各々をゲートす
るため制御信号XJPDを保有し、これらのワードのEUES26
514に対する転送を制御する。
新しいナノ割込みの処理は、通常の操作の間に生じる割
込みに関して前に述べた如く進行する。もし以降のナノ
割込みが生じるならば、これらは今述べた許りの方法と
同じ方法で処理され、FU10120は自らに対してナノ割込
みを信号し、その時のEU10122の状態およびデータはFU1
0120によりEUES26514に保管され、新たなナノ割込みが
処理される。入れ子状のナノ割込み即ち1連のナノ割込
みの内のあるナノ割込みがサービスされた後、EU10122
は、EUES26514からEUCSR26510に対する前のナノ割込み
の状態およびデータの転送を要求するため、FU10120に
対して制御信号「EU10122トラツプ」(ETRAP)を保有す
る。FU10120は、EUES26514からMODバス10144を介して前
記の次の前のナノ割込みの状態およびデータを検索し、
このデータおよび状態をJPDバス10142に対して転送す
る。この状態およびデータは、一時に1つの32ビツト・
ワードずつ戻されて、FU10120からのJPOPによつてEU101
22に対してストローブされる。この前のナノ割込みの処
理はこの時再開される。連続的な前のナノ割込みのサー
ビスは、全ての前のナノ割込みがサービスされるまで継
続する。EU10122の元の状態およびデータ、即ち最初に
割込みされたSOP操作の状態およびデータは、この時EUI
S26512からEUCSR26510に対して戻されてこのSOPの実行
が再開される。この時、EU10122は、ナノ割込みに関す
るEU10122の核心操作の終りを表示するNITEを保有す
る。
EU10122による核心のナノ割込みに関してEU10122、FU10
120およびMEM10112の構造および作用について説明した
が、マイクロ命令シーケンスを有するEU10122のEUSITT2
0344のローデイングについては次に説明する。
h.h,h.実行装置のS言語テーブル20344のローデイング
(第268図) 第268図においては、マイクロ命令のEUSITT20344に対す
るローデイングにおけるEU10122と、FU10120と、MEM101
12と、DP10118間のインターフエースおよび初期手順の
略図が示されている。前述の如く、EUSITT20344は、核
心ナノ割込み操作の実行およびユーザ・プログラムのSO
Pに応答する算術演算の実行において、EU10122の制御の
ため必要な全てのマイクロ命令を含む。EUSITT20344
は、例えば、4つまでの異なるS言語ダイアレクトのた
めのユーザ・プログラムの算術演算SOPの割込みのため
のマイクロ命令シーケンスを記憶する。一般に4つまで
のS言語ダイアレクトにおける算術演算のためのマイク
ロ命令シーケンスの記憶の容量はほとんどの要件に対し
て十分であり、そのためEUSITT20344はCS10110の操作の
開始時にしかマイクロ命令シーケンスをロードする必要
がない。4つ以上のS言語ダイアレクトの算術演算のた
めのマイクロ命令シーケンスが必要とされるならば、こ
れらのマイクロ命令シーケンスは以下に述べる方法にお
いてEUSITT20344に対してロードすることができる。
前述の如く、EUSITT20344に記憶されるマイクロ命令の
部分は読出し専用メモリーに保有され、このためEUSITT
20344に恒久的に記憶される。EUSITT20344に恒久的に記
憶されたマイクロ命令シーケンスは、一般に、核心操作
の実行に必要とされるものである。EUSITT20344に恒久
的に記憶されたマイクロ命令シーケンスは、必要に応じ
てEUSITT20344に対する他のEU10122のマイクロ命令シー
ケンスの書込みを助けるため使用されるものを含む。い
くつかのマイクロ命令シーケンスがEUSITT20344の書込
み可能な制御ストア(WCS)と呼ばれるランダム・アク
セス・メモリーに記憶され、これらを種々のS言語ダイ
アレクトの算術演算SOPの割込みのために含む。
EU10122に対するマイクロ命令シーケンスの書込みは、E
U10122を遊休状態に強制することによつて初期化され
る。EU10122の初期化は、EUABORTを保有するFU10120に
より、または制御信号クリア(CLEAR)を保有するDP101
18によつて確保される。EUABORTとCLEARのいずれかは、
EU10122のその時の操作をクリアし、EU10122を遊休状態
に強制し、この場合EU10122はFU10120から与えられたこ
れ以上のEUDPを待機する。従つて、FU10120はDUDPをタ
スク指名して、EUDISバス20206を介してEU10122に対す
るEUSITT20344のローデイングを開始する。EUSITT20344
のロードのEUDPは、EUSITT20344のRPOM部分における2
つのステツプのマイクロ命令シーケンスの始動アドレス
を規定する。この2つのステツプのマイクロ命令シーケ
ンスは最初に零をSCAG25536にロードし、これは前述の
如く、EUSITT20344に対する読出しおよび書込みアドレ
スを提供する。EUSITT20344のロードマイクロ命令シー
ケンスは、この時EUSITT20344からmCRD20346に対してマ
イクロ命令を読込む。このマイクロ命令は、EUSITT2034
4のローデイングが開始するようにFU10120における初期
手順操作のための条件を規定する。この時、またこのマ
イクロ命令ワードから、EU10122は、EUSITT20344のロー
デイングを指令するためのFU10120からEUDPを受入れる
用意があることを表示するため、FU10120に対する制御
信号DRDYを保有する。この最初のマイクロ命令はまた、
EUSITT20344のWCS部分に対する書込み可能制御信号を生
成し、EUSITT20344からのmCRD20346のローデイングを禁
止し、NXTR25540とSCAG25536の通常のローデイング操作
を禁止する。この最初のマイクロ命令もまた、SCAG2553
6からアドレス入力を受入れることをNASS25526に指令
し、最後に、FU10120に対するNITEをFU10120からのナノ
割込みをアンマスクするように保有させる。
次に、FU10120はMEM10112に対する読出し要求を生成
し、MEM10112はEU10122のマイクロ命令ワードの最初の3
2ビツト・ワードをJPDバス10142に対して転送する。MEM
10112からのこのような32ビツト・ワードの各々は、EU1
0122の64ビツトのマイクロ命令ワードの二分の一を構成
する。FU10120がEU10122からDRDYを受取る時、FU10120
は制御信号「書込可能制御ストア・ロード」(LDWCS)
を生成する。LDWCSは更に、JPDバス10142上の32ビツト
・ワードをEUSITT20344のWCS部分の最初のアドレスに転
送する。EU10122のマイクロ命令ワードの次の32ビツト
の半ワードは次にMEM10112からJPDバス10142を介して読
出され、EUSITT20344のWCS部分内の前記の最初のアドレ
スの第2の半部に転送される。SCAG25536におけるアド
レスはこの時増分されて、EUSITT20344内の次のアドレ
ス、およびEUSITT20344のローデイングが完了するまでD
RDYおよびLDWCSの生成を含む今述べた許りの自動的に反
復されるプロセスを選択する。
EUSITT20344のローデイングが完了した後、ローデイン
グ・プロセスは、FU10120がNINTPを保有するかあるいは
DP10118が制御信号「ロード完了」(LAODCR)を保有す
る時に終了される。NINTPとLOADCRのいずれか一方はNAG
20340の操作の制御を解除して、EU10122が通常の操作を
再開することを許容する。
これまでの記述は、種々のオペランド・フオーマツトを
用いる種々の算術演算の実行、初期手順に関するEU1012
2、FU10120およびMEM10112の操作、EUDPおよびオペラン
ドのローデイング、結果のストア・バツク、テスト条件
および例外の検査、通常および核心操作におけるEU1012
2のスタツク機構、およびEUSITT20344に対するEU10122
のマイクロ命令シーケンスのローデイングを含む、EU10
122の構造および作用について説明した。IOS10116およ
びDP10118についてはこの順序で次に説明することにす
る。
D.入出力システム10116(第204図、第206図、第269図) 第204図においては、IOS10116の部分的ブロツク図が示
される。前述の如く、IOS10116はCS10110と外部、例え
ばED10124との間のインターフエースとして作用する。I
OS10116の主な機能は、CS10110即ちMEM10112と外部との
間のデータの手順である。データの手順の実施に加え
て、IOS10116は種々のデータソースとED10124とMEM1011
2のシンク間のアクセスを制御する。前述の如く、IOS10
116はMEM10112の物理的アドレス空間を直接アドレス指
定して、MEM10112に関してデータの書込みおよび読出し
を行なう。このため、IOS10116はまたアドレスの翻訳、
即ちMEM10112の物理的アドレス空間とED10124における
データソースおよびシンクのアドレス空間との間のデー
タの手順に要する操作のマツピングを行なう。
第204図に示すように、IOS10116はデータ移動器(DMOV
R)20410と、入出力制御処理装置(IOCP)20412と、1
つ以上のデータ・チヤネル素子を含む。IOS10116のデー
タ・チヤネル素子は、ECLIPSEバースト・マルチプレク
サ・チヤネル(EBMC)20424と、NOVAデータ・チヤネル
(NDC)20416と、CS10110システムのある特定の形態の
ため必要な如き他のデータ・チヤネル素子を含む。IOCP
20412はMEM10112とED10124間のデータの手順を制御しか
つこれを指令し、ED10124とMEM10112の物理的アドレス
空間との間のアドレスのマツピングを制御しかつこれを
指令する。IOCP20412は、例えば、米国マサチユーセツ
ツ州ウエストボロー市のデータ・ゼネラル社から入手可
能なECLIPSEM600型コンピユータの如き汎用コンピユー
タでよい。
EBMC20414およびNDC20416は、データがED10124とIOS101
16間に転送されるデータ・チヤネルを構成する。EBMC20
414とNDC20416は、IOCP20412の制御下でED10124に関す
るデータの実際の出入れを行ない、これもまたIOCP2041
2の制御下でMEM10112の物理的アドレスに対するED10124
のアドレスのマツピングを実施する。EBMC20414およびN
DC20416はそれぞれ、例えば、これもまた米国マサチユ
ーセツツ州ウエストボロー市のデータ・ゼネラル社から
入手可能なECLIPSEバースト・マルチプレクサ・データ
チヤネルおよびNOVAデータ・チヤネルからなるものでよ
い。
DMOVR20410はMEM10112に対するIOS10116のインターフエ
ースを構成する。DMOVR20410は、データおよびアドレス
がEBMC20414とNDC20416とMEM10112間に転送される経路
である。更に、DMOVR20410はEBMC20414と、NDC20416
と、他のIOS10116のデータ・チヤネルと、MEM10112間に
アクセスを制御する。
第204図に示すように、ED10124は一つ以上のデータ・シ
ンクとソースからなる。ED10124のデータ・シンクおよ
びソースは、市販されるデイスク・駆動装置、ライン・
プリンタ、通信線、テープ装置その他のコンピユータ・
システムを含む。一般に、ED10124は、一般にコンピユ
ータ・システムとインターフエースされる如き全てのデ
ータ素子を含む。
a.入出力システム10116の構造(第204図) 最初にIOS10116の全体的構造について説明すると、EBMC
20414のECLIPSEバースト・マルチプレクサのチヤネル・
アダプタと制御回路(BMCAC)20418のデータ入出力は2
方向のBMCアドレスおよびデータ(BMCAD)バス20420と
接続される。BMCADバス20420は更に、ED10124のデータ
・シンクおよびソースのデータおよびアドレスの入力お
よび出力と接続される。
同様に、NDC20416におけるNOVAデータ・チヤネルのアダ
プタ制御回路(NDCAC)20422のデータおよびアドレス入
力および出力は、2方向のNOVAデータ・チヤネル・アド
レスおよびデータ(NDCAD)バス20424に接続されてい
る。NDCADバス20424は更に、ED10124のデータ・ソース
およびシンクのアドレスおよびデータ入力および出力と
接続される。BMCADバス20420とNDCADバス20424は、ED10
124とIOS10116のデータ・チヤネルのデータ・シンクと
ソース間のデータおよびアドレスの転送のための経路で
ある。
EBMC20414の内部においては、BMCAC20418の2方向のデ
ータ入力および出力はBMCデータ・バツフア(BMCDB)20
426の2方向の入力および出力側に接続されている。BMC
DB20426のデータ入力および出力は、それぞれデータ移
動器出力データ(DMOD)バス20428およびデータ移動器
入力データ(DMID)バス20430と接続されている。BMCAC
20418のアドレス出力は、バースト・マルチプレクサ・
チヤネル・アドレス翻訳マツプ(BMCATM)20432のアド
レス入力側と接続され、BMCATM20432のアドレス出力はD
MIDバス20430と接続される。BMCATM20432の2方向の制
御入力および出力は2方向の入出力制御処理装置の制御
(IOCPC)バス20434から接続される。
NDC20416について説明すると、第204図に示すように、N
DCAC20422のデータ入力および出力はそれぞれDMODバス2
0428およびDMIDバス20430と接続される。NDCAC20422の
アドレス出力は、NOVAデータ・チヤネル・アドレス翻訳
マツプ(NDCATM)20436のアドレス入力と接続されてい
る。NDCATM20436のアドレス出力は、更に、DMIDバス204
30と接続されている。NDCATM20436の2方向の制御入力
および出力はIOCPCバス20434と接続されている。
IOCP20412について説明すれば、IOCP20412の2方向の入
力および出力はIOCPCバス20434と接続されている。IOCP
20412のアドレスおよびデータ出力はNDCADバス20424と
接続される。IOCP20412内部のIOCPアドレス翻訳マツプ
(IOCPATM)20438のアドレス出力は、DMIDバス20430と
接続されている。IOCP20412のデータ入力と出力はそれ
ぞれDMODバス20428とDMIDバス20430と接続されている。
IOCP20412の2方向の制御入力および出力はDMOVR20410
の2方向の制御入力および出力と接続されている。
DMOVR20410について最後に説明すると、DMOVR20410は、
入力データ・バツフア(IDB)20440と、出力データ・バ
ツフア(ODB)20442と、優先順位解明兼制御(PRC)204
44とを含む。ICB20440のデータおよびアドレス入力はDM
IDバス20430と接続されている。IDB20440のデータおよ
びアドレス出力は、MEM10112に対するIOMバス10130と接
続されている。ODB20442のデータ出力はMEM10112からの
MIOバス10129と接続され、ODB20442のデータ出力はDMOD
バス20428と接続されている。IDB20440とODB20442の2
方向の制御入力と出力はPRC20444の2方向の制御入力と
出力と接続されている。PRC20444の2方向の制御入力お
よび出力は、前述の如くIOCP20412の2方向の制御入力
および出力と接続されている。PRC20444の別の2方向の
制御入力および出力はIOMCバス10131に出入するように
接続され、またMEM10112の制御入力および出力と接続さ
れている。IOS10116の全体的な構造について説明した
が、次にIOS10116の作用について説明する。
b.入出力システム10116の作図(第269図) 1.データ・チヤネル素子 最初にEBMC20414について説明すると、BMCAC20418はED1
0124からBMCADバス20420を介してデータおよびアドレス
を受取る。BMCAC20418はデータをBMCDB20426に転送し、
以下において説明するように、ここでこのデータはDMOV
R20410を介してMEM10112に対する後の転送のため保持さ
れる。BMCAC20418はED10124から受取つたアドレスをBMC
ATM20432に対して転送する。BMCATM20432は、ED10124の
アドレスをMEM10112の物理的アドレスと関連させるアド
レス・マツピング情報を保有する。これにより、BMCATM
20432は、BMCAC20418を介して与えられをED10124にアド
レスと対応するMEM10112の物理的アドレスを提供する。
以下において更に説明するように、EBMC20414がMEM1011
2に対してデータを書込むためMEM10112に対してデータ
を書込むためMEM10112に対するアクセスを与えられる
時、BMCDB20426に記憶されたデータとBMCATM20432から
の対応するアドレスがDMOVR20410に対するDMIDバス2043
0に対して転送される。以下において説明するように、
この時DMOVR20410はこのデータをこれらMEM10112の物理
的アドレス場所に対して書込む。データがMEM10112から
ED10124に対して読込まれる時、データはDMODバス20428
上のDMOVR20410により与えられ、BMCDB20426に対して転
送される。この時、BMCAC20418はBMCDB20426からこのデ
ータを読出して、このデータをED10124に対するBMCADバ
ス20420上に転送する。MEM10112からED10124に対するデ
ータの転送の間、MEM10112はこのデータに伴うED10124
のアドレスに翻訳されるアドレスは提供しない。その代
り、これらのアドレスはBMCAC20418によつて生成されて
与えられる。
NDC20416は、NDCAC20422のデータ入力および出力がBMCD
B20426を介してバツフアされない点を除いて、EBMC2041
4の方法と似た方法で作用する。
前述の如く、MEM10112はブロツク転送、即ち一時に4つ
の32ビツト・ワードの順次の転送を実施する容量を有す
る。一般に、このような転送は、EBMC20414を介して実
施され、BMCDB20426を介してバルフアされる。即ち、BM
CDB20426は、単一の32ビツト・ワードがEBMC20414によ
りED10124から受取られて4ワードのブロツクが受取ら
れるまでそこに記憶されることを可能にする。このブロ
ツクは、次にMEM10112に対して転送することができる。
同様に、ブロツクはMEM10112から受取られ、BMCDB20426
において記憶され、一時に1ワードずつED10124に対し
て転送することができる。対照的に、NDC20416は一般に
単一ワード転送のため使用することができる。
第204図に示すように、EBMC20414、NDC20416およびIOS1
0116の各データ・チヤネル素子は、それぞれ、個々のア
ドレス翻訳マツプ、例えばEBMC20414におけるBMCATM204
32およびNDC20416におけるNDCATM20436を含んでいる。
これに記憶されたアドレス翻訳マツプは有効に構成さ
れ、各データ・チヤネル素子に対してIOCP20412によつ
て制御される。IOS10116はこれにより、各IOS10116のデ
ータ・チヤネル素子に対する個々のアドレス翻訳マツプ
を提供することができる。このため、IOS10116が、2つ
のデータ・チヤネル素子、あるいはED10124における2
つのグループのシンクおよびソースのいずれもMEM10112
の物理的アドレス空間の共通領域にデータを書込みこれ
を破壊することによつて、相互にインターフエースしな
いことを保証することを可能にする。あるいはまた、IO
S10116は、これらのマツプがMEM10112の物理的アドレス
空間の共通の、即ち重合する領域を共有する2つ以上の
データ・チヤネル素子に対するアドレス翻訳マツプを生
成することができる。これにより、MEM10112において出
力されるデータをMEM10112を介してIOS10116のデータ・
チヤネル素子間に転送させ、これによりED10124の種々
のデータ・シンクおよびソース素子間に転送させる。例
えば、最初のED10124のデータ・ソースおよび最初のIOS
10116のデータ・チヤネルはそれについて操作が行なわ
れるデータをMEM10112のアドレス空間の特定の領域に書
込むことができる。次にCS10110のこのデータに関する
操作の結果は、前記の第1のデータ素子および第2のデ
ータ素子により共有される共通の領域に対して書込むこ
と、および前記の第2のデータ・チヤネル素子によつて
第2のED10124のデータ・シンクに対してMEM10112から
読込むことが可能である。これにより、IOS10116のデー
タ・チヤネル素子の個々のマツピングは、IOS10116を介
するMEM10112のアドレス空間の区分即ち共有における全
体的な柔軟性を与えるものである。
2.入出力制御処理装置20412 前述の如く、IOCP20412は、その主な機能がMEM10112とE
D10124間の全般的な指令および制御またはデータの転送
である汎用コンピユータである。IOCP20412は、IOS1011
6のデータ・チヤネル素子とMEM10112のアドレス空間と
の間のアドレスのマツピングを制御する。この点に関し
て、IOCP20412は、EBMC20414およびNDC20416の如きIOS1
0116のデータ・チヤネル素子に対するアドレス翻訳マツ
プを生成する。IOCP20412はこれらのアドレス翻訳マツ
プを、例えばIOCPCバス20434を介して、EMBC20414のBMC
ATM20432、およびNDCATM20436とNDC20416に対してロー
ドし、またこれを制御する。IOCP20412はまた、第204図
に示したように、DMOVR20410に対していくつかの制御機
構を提供する。これらの機能に加え、IOCP20412はまた
データ入出力およびアドレス指定入出力が設けられてい
る。これらのデータ・アドレス指定入出力は、例えば、
IOS10116のデータ・チヤネル素子とMEM10112間のアドレ
スのマツピツングの生成および制御においてIOCP20412
により使用される情報を得るために使用することができ
る。また、これらのデータおよびアドレスの入出力は、
IOCP20412が部分的に1つのデータ・チヤネル素子とし
て作用することを可能にする。前述の如く、IOCP20412
は、DMIDバス20430およびDMODバス20428に関して出入す
るよう結合されたデータおよびアドレス入出力を有す
る。このため、IOCP20412はED10124とMEM10112間に転送
されるデータに対するアクセスを有し、IOCP20412にMEM
10112のアドレス空間に対する直接のアクセスを提供す
る。更に、IOCP20412はNDCADバス20424に対する制御お
よびアドレス出力が設けられ、これによりED10124にお
けるあるデータ・ソースおよびシンク素子のIOCP20412
の部分的な制御を可能にする。
3.データ移動機能20410(第269図) a.a.入力データ・バツフア20440および出力データ・バ
ツフア20442 前述の如く、DMOVR20410はIOS10116のデータ・チヤンネ
ルとMEM10112間のインターフエースを構成する。DMOVR2
0410は、IOS10116のデータ・チヤネル素子とMEM10112間
のデータの実際の転送を行ない、IOS10116のデータ・チ
ヤネル素子とMEM10112間のアクセスを制御する。IDB204
40とODB20442は、IOS10116とMEM10112間のデータの非同
期的な転送を可能にするデータおよびアドレス・バツフ
アである。即ち、ODB20442は、データが使用可能となつ
てIOS10116のデータ・チヤネル素子、例えばEBMC20414
がこのデータの受入れの用意ができるまでこのデータを
保持するため、MEM10112からデータを受入れることがで
きる。IDB20440はデータを受入れ、IOS10116のデータ・
チヤネル素子からのMEM10112の物理的アドレスを受入れ
る。IDB20440は、MEM10112がデータおよびアドレスを受
入れる用意ができる時、MEM10112に対する以降の転送の
ためのデータおよびアドレスを保持する。例えば、IDB2
0440は、EBMC20414からのデータのバースト即ちシーケ
ンス、またはNDC20416からの単一データ・ワードを受入
れることができ、また前述の如く後でこのデータのMEM1
0112に対するブロツク、即ち4ワードの転送を行なうこ
とができる。同様に、ODB20442からの1つ以上のブロツ
ク転送即ちデータを受入れて、その後データをNDC20416
に対しては単一ワードとして、あるいはDMIDバス20430
に対してデータ・バーストとして与えることができる。
更に、前述の如く、MEM10112からのブロツク転送は4つ
の連続するワードとしては現われない。このような場
合、ODB20442は、あるブロツク転送の4ワードがMIOバ
ス10129上に現われる時これらのワードを受入れて、こ
れらワードをED10124に対する以降の転送のための4つ
の連続するワードを構成するブロツクにアセンブルす
る。
IDB20440およびODB20442を介するデータの転送はPRC204
44によつて制御され、これは制御信号をIOCP20412と交
換し、IOMCバス10131を介してMEM10112に対する前に述
べたインターフエースを有する。
b.b.優先順位の解明および制御装置20444(第269図) 前述の如く、PRC20444はIOS10116のデータ・チヤネル素
子とMEM10112間のアクセスを制御する。こん操作は、PR
C20444内のリング付与アクセス・ゼネレータ(RGAG)に
よつて実施される。
第270図においては、20444RGAGの略図が示されている。
一般に、PRC20444のRGAGは、リング付与コード・ゼネレ
ータ(RGCG)26910と、1つ以上のデータ・チヤネル要
求コンパレータからなつている。第269図においては、P
RC20444のRGACは、ECLIPSEバースト・マルチプレクサ・
チヤネル要求コンパレータ(EBMCRD)26912と、NOVAデ
ータ・チヤネル要求コンパレータ(NDCRC)26914と、デ
ータ・チヤネル素子X要求コンパレータ(DCDXRC)2691
6と、データ・チヤネル素子Z要求コンパレータ(DCDZR
C)26918を含む如くに示されている。PRC20444のRGAG
は、ある特定のIOS10116内のデータ・チヤネル素子数に
より必要とされる如き要求コンパレータを多かれ少なか
れ持つことができる。
第269図に示すように、RGCG26910の要求付与コード(RG
C)出力は、EBMCRC26912、NDCRC26914、DCDXRC26916お
よびDCDZRC26918の第1の入力と並列に接続されてい
る。EBMCRC26912、NDCRC26914、DCDXRC26916およびDCDZ
RC26918の第2のの入力はPRC20444の他部分と接続され
て、EBMC20414、NDC20416、DCDXまたはDCDZが各々MEM10
112に対する読出しまたは書込みアクセスの要求を生じ
ることの表示を受取る。
EBMCRC26912、NDCRC26914、DCDXRC26916およびDCDZRC26
918の要求付与出力(GRANT)は更にPRC20444の回路の他
の部分と接続されて、MEM10112に対する読出または書込
アクセスがある特定のIOS10116のデータ・チヤネル素子
による要求に応答して何時与えられたかを表示する。こ
のような付与の表示がPRC20444のこれらの他の部分に与
えられる時、PRC20444は、MEM10112に対し、また前述の
如くIOMCバス10131を介して、IDB20444およびODB2044
2、およびIOCP20412に対して適当な制御信号を生成する
よう進行する。PRC20444の制御信号は、前記のIOS10116
のデータ・チヤネル素子に対する読出しまたは書込み要
求を開始する。EBMCRC26912、NDCRC26914、DCDXRC26916
およびDCDZRC26918の付与出力もまた、更に以下に述べ
るように、特定のIOS10116がMEM10112に対するアクセス
要求を発してこれを付与された時を表示するため、RGCG
26910に対する入力として与えられる。
前記のRGCG26910の略図である第269図に示すように、BG
CGは独自のRGCの反復的なシーケンスを生成する。本例
においては、数字0乃至15として示される。各RGCは、I
OS10116のデータ・チヤネル素子がMEM10112に対するア
クセスを与えられる特定の時点を識別即ち規定する。あ
るRGCは、有効に特定のIOS10116のデータ・チヤネル素
子に対して割当てられている。かかる各データ・チヤネ
ル素子はその割当てられたRGCが識別したアクセス・ス
ロツトの間MEM10112に対するアクセスを要求することが
できる。例えば、EBMC20414は、RGC0、2、4、6、
8、10、12および14により識別されるこれらのアクセス
・スロツトの間MEM10112に対するアクセスが許容される
如く示される。NDC20416は、RGCのスロツト3、7、11
および15の間MEM10112に対するアクセスが許容される如
く示される。DCDXはスロツト1と9の間にアクセスが許
容され、DCDZはRGCスロツト5と13の間にアクセスが許
容される。
前述の如く、RGCGは反復的なシーケンスにおいてRGC0乃
至15を生成する。ある特定のRGCの発生の間、PRC20444
のRGAGの各要求コンパレータは、このRGCを検査してそ
の関連するデータ・チヤネル素子がこのRGスロツトの間
にアクセスを許されるかどうか、またこの関連するデー
タ・チヤンネル素子がMEM10112に対するアクセスを要求
したかどうかを判定する。もしこの関連するデータ・チ
ヤネル素子が前記のRGCスロツトの間にアクセスを許さ
れ、また要求したアクセスを有するならば、このデータ
・チヤネル素子はこの要求コンパレータの「許与」出力
によつて表示される如くアクセスを与えられる。この要
求コンパレータ「許与」出力はまたRGCG26910に対する
入力として与えられて、RGCG26910に対してアクセスがR
GCスロツトの間に与えられたことを表示する。
もし特定のデータ・チヤネル素子がこのRGCスロツトの
間にMEM10112に対するアクセスを要求せず、またこれが
与えられなかつたならば、RGCG26910は直接次のRGCスロ
ツトに行く。次のRGCスロツトにおいて、PRC20444のRGA
Gは再び、このスロツトの間にアクセスを与えられた特
定のデータ・チヤネル素子が要求を出したかを判定し、
もしこのような要求がなされたならばアクセスが与えら
れる。もしそうでなければ、RGCG26910は再び直接次のR
GCスロツトに進行する、等々である。このように、PRC2
0444のRGAGは、IOS10116の各データ・チヤネルは不当な
遅延を生じることなくMEM10112に対するアクセスが許さ
れる。更に、PRC20444のRGAGは、単一の、あるいは1つ
以上のデータ・チヤネル素子がMEM10112に対するアクセ
スを独占することを阻止する。前述の如く、各データ・
チヤネル素子は、ある特定のRGCシーケンスの間に少な
くとも1回MEM10112に対するアクセスを許される。同時
に、MEM10112に対するアクセスの要求が生じない特定の
RGC内で休止しないことにより、PRC20444のRGAGは有効
に自動的に、MEM10112に対するアクセスを要求しなかつ
たデータ・チヤネル素子に対して飛越しを行なう。PRC2
0444のRGAGは、これにより、ある与えられた時間間隔内
で、尤も使用頻度の高いデータ・チヤネル素子に対して
更に頻繁なアクセスを行なう。更に、特定のIOS10116の
データ・チヤネル素子に対し割当てられたRGCは特定のC
S10110を特定のCS10110の形態のデータ入出力要件に適
合させるため必要な如く再割当てを行なうことができ
る。即ち、もしEBMC20414がMEM10112に対する、従つてN
DC20416に対する比較的頻度の低いアクセスを要求する
ことを示されるならば、あるRGCはEBMC20414からNDC204
16に対して再割当てを行なうことができる。IOS10116の
データ・チヤネル素子によるMEM10112に対するアクセス
は、これにより必要に応じて最適化することができる。
IOS10116の構造および作用について説明したが、次にDP
10118の構造および作用について説明することにする。
E.診断作用装置10118(第101図、第205図) 第101図においては、前述の如く、DP10118はDPバス1013
8を介してIOS10116、MEM10112、FU10120およびEU10122
と相互に接続されている。DP10118はまた、DPIOバス101
36を介して、外部特にDU10134と連結されている。診断
操作および障害監視および補正操作の実施に加え、DP10
118は部分的にオペレータがCS10110とインターフエース
することを許容する制御および表示機能を提供するよう
に作用する。DU10134は、例えば、CRTおよびキーボード
装置、あたはテレタイプからなり、CS10110ののオペレ
ータにハード制御盤、即ちスイツチおよび表示灯を含む
制御盤により従来通り提供される全ての制御および表示
機能を提供する。例えば、DU10134はDP10118を介して、
システムの初期化および起動、診断プロセスの実行、障
害の監視および識別、およびプログラムの実行の制御の
如き目的のためのCS10110の制御をオペレータが実施す
ることを許容する。以下において更に説明するように、
これらの機能はIOS10116と、MEM10112と、FU10120と、E
U10122とのDP10118のインターフエースを介して達成さ
れる。
DP10118は、汎用コンピユータ・システム、例えば、米
国マサチユーセツツ州ウエストボロー市のデータ・ゼネ
ラル社製のNOVA4コンピユータである。DP10118およびDU
10134のインターフエースおよびDP10118およびDU10134
の相互の操作については、当技術に通常の技術を有する
ものにとつては容易に理解されよう。IOS10116、MEM101
12、FU10120およびEU101222に関するDP10118のインター
フエースおよび作用については以下において更に説明し
よう。
前記の如き諸機能の実施のため特にプログラムされた汎
用コンピユータとして作用するDP10118は、以下におい
て説明するように、DPバス10138を介してIOS10116、MEM
10112、FU10120およびFU10120のレジスタに対するアク
セスを読出しかつこれを書込むものであつた。DP10118
はこれらのレジスタから直接データを読出しあるいはこ
れに対してデータを直接書込むことができる。以下にお
いて説明するように、これらのレジスタはデータおよび
命令レジスタであり、CS10110の通常の操作においてCS1
0110の回路の一体部分である。これにより、これらのレ
ジスタに対するアクセスは、DP10118がCS10110の操作を
直接制御し即ちこの操作を直接有効化することを可能に
する。更に、また以下において説明するように、DP1011
8は一般に、CS10110の書込みの全ての部分に対して全て
のクロツク信号を提供し、これらクロツク信号の制御を
介して前記回路の操作を制御することができる。
DP10118の諸機能の目的のため、CS10110は、機能的に関
連する要素、例えばFU10120におけるDESP20210のグルー
プに更に分割される如くに見做すことができる。DP1011
8はこれらのグループのレジスタに対するアクセスを行
ない、次に説明するように、走査チエーン回路を介して
内部のクロツクを制御する。一般に、DP10118は、CS101
10の主な各機能的なサブ要素に対する1つ以上の走査チ
エーン回路が設けられている。
第205図においては、DP10118の略図が示され、典型的な
DP10118の走査チエーンが示されている。同図に示すよ
うに、DP10118は汎用中央処理装置、即ちコンピユータ
(DPCPU)27010を含む。DPCPU27010の第1のインターフ
エースはDPIOバス10136を介してDU10134に対するもので
ある。DPCPU27010とDU10134は、DPCPU27010の操作を指
令しかつこれらの操作の結果をDU10134を介して表示す
るようにDPIOバス10136を介してデータおよび制御信号
を交換する。
DPCPU27010と関連しているのはクロツク・ゼネレータ
(CLKG)27012である。CLKG27012は、一般にCS10110に
おいて使用される全てのクロツク信号を生成する。
DPCPU27010とCLKG27012は、DPバス10138を介してCS1011
0の種々の走査チエーン回路とインターフエースされ
る。前記の如く、CS10110はその主な各サブ素子に対す
る1つ以上の走査チエーンを含む。1つのこのような走
査チエーン、例えば、DESP20210の走査チエーン(DESPS
C)27014が第205図に示されている。
DPCPU27010とCLKG27012間のインターフエース、例え
ば、DESPSC27014はDPバス10138を介して設けられる。第
205図に示されるように、DESPSC27014は走査チエーン・
クロツク・ゼネレータ(SCCG)27016および1つ以上の
走査チエーン・レジスタ(SCR)27018乃至27024を含
む。
SCCG27016はCLKG27012からクロツク信号を受取り、また
DPCPU27010からDPバス10138を介して制御信号を受取
る。SCCG27016は更に、例えばDESP20210の種々のレジス
タおよび回路に対して適当なクロツク信号を与える。DP
CPU27010によりSCCG27016に対して与えられるクロツク
制御信号は、DESP20210のこれらのレジスタおよび回路
に対する種々のクロツク信号を制御し即ちゲートして、
これによりDPCPU27010がDESP20210を制御することを有
効に可能にする。
SCR27018乃至27024は、DESP20210内の種々のレジスタか
らなる。例えば、SCR27018乃至27024は、AONGRF20232、
OFFGRF20234、LENGRF20236の出力バツフア・レジスタ
と、OFFALU20242とLENALU20252の出力レジスタと、OFFM
UX20240とBIAS20246の内部のレジスタを含む。このよう
なレジスタは、本文においては、前記の如く、これらの
レジスタの末尾に付された矢印、即ちその第1のものが
入力を示し第2のものは出力を示す矢印によつて示され
ている。通常のCS10110の操作においては、前記の如
く、SCR27018乃至27024は、データおよび命令が転送さ
れる並列の出力バツフア・レジスタにおける如く並列に
作用する。SCR27018乃至27024はまたシフト・レジスタ
として作用することができ、第205図に示すように、DPC
PU27010からの入力とDPCPU27010に対する出力を有する
1つのシフト・レジスタ回路を構成するため一緒に接続
されている。DPCPU27010からのSCR27018乃至27024への
制御入力は、SCR27018乃至27024の作用を制御し、即
ち、これらのレジスタが並列イン/並列アウト・レジス
タとして作用するか、あるいはDESPSC27014の走査チエ
ーンのシフト・レジスタとして作用するかを制御する。
SCR27018乃至27024からなるシフト・レジスタの走査チ
エーンは、これらのレジスタの内容をDPCPU27010に対し
てシフトすることにより、DPCPU27010がSCR27018乃至27
024の内容を読出すことを許容する。逆に、DPCPU27010
は、これからシフト・レジスタの走査チエーンを介して
SCR27018乃至27024内の選択された場所に対してDPCPU27
010によつて生成された情報をシフトすることにより、S
CR27018乃至27024に対して書込むことができる。
走査チエーンのクロツク・ゼネレータ回路およびCS1011
0内の各走査チエーン回路の走査チエーン・レジスタ
は、これによりDP10118がCS10110の主な各サブ素子の作
用を制御することを可能にする。診断、監視および制御
機能のため、必要に応じて、例えば、内部の走査チエー
ン・レジスタから情報を読出し、またこれらの走査チエ
ーン・レジスタに対して情報を書込むのである。
MEM10112、FU10120、EU10122、IOS10116およびDP10118
を含むCS10110の主な各素子の構造および作用について
説明したが、特にFU10120のある作用について次に説明
する。以下の記述は、内部のある作用の更に詳細な説明
を行なうことによつて、JP10114のマイクロコード制御
について更に説明することにより、JP10114特にFU10120
の作用上の特徴について開示することにする。
F.CS10110のマイクロ機械の構造および作用(第170図〜
274図) a.序論 これまでの記述は、FU10120およびEU10122のハードウエ
ア構造および作用について述べた。以下の記述子は、如
何にしてFU10120における諸素子およびEU10122のいくつ
かの素子が、以下においてFUマイクロ機械と呼ぶマイク
ロプログラム可能なコンピユータとして一体に機能する
かについて記述する。このFUマイクロ機械は2つのタス
ク、即ちSINの解釈およびFU10120、EU10122、MEM10112
およびIOS10116における諸素子により生成されるいくつ
かの信号に対する応答を実施する。FUマイクロ機械が応
答する信号は、事象信号と呼ばれる。構造および作用に
関して、FUマイクロ機械は下記の如き特徴を有する。即
ち、 −論理記述子の処理のため専用化されたレジスタおよび
ALU −マイクロルーチン(マイクロ命令シーケンス)の呼出
しのためのスタツクとして構成されたレジスタ −ハードウエアからの事象信号によるマイクロルーチン
呼出しを可能にする機構 −呼出しを生じたマイクロ命令に続くマイクロ命令、ま
たは呼出しを生じたマイクロ命令のいずれかに呼出され
たマイクロルーチンを戻すことを可能にする機構 −スタツク・レジスタの内容がMEM10112に対し転送され
ることを可能にする機構 −予測できる時間長さ以内の事象信号に対する応答を保
証する機構 −マイクロ機構を構成する諸素子の2つのグループ、即
ち全てのマイクロコードにより使用可能な素子およびKO
S(前述の核心オペレーテイング・システム)マイクロ
コードのみにより使用可能なものへの分割 である。
これらの素子および機構は、FUマイクロ機械が2つの方
法、即ち仮想のマイクロ機構として、またモニター用マ
イクロ機械として使用されることを可能にする。両種の
マイクロ機械がFU10120において同じ素子を使用する
が、異なる機能を実施し異なる論理特性を有する。以下
の論議においては、FUマイクロ機械が仮想のマイクロ機
械として使用される時は仮想オードにあると言われ、ま
たこれがモニター用マイクロ機械として使用される時は
モニター・モードにあると言われる。両方のモードは以
下において更に詳細に紹介し説明する。
最初に使用マイクロ機械が仮想モードにおいて使用され
る時、これは下記の特性を有する。即ち、 −このマイクロ機械はプロセス610に帰属する実質的に
無限のマイクロ機械スタツクにおいて実行する。
−このマイクロ機械は1つのマイクロ命令のM0サイクル
(状態)において事象信号のどんな数にも応答すること
ができる。
−マイクロルーチンの呼出しまたはマイクロルーチンか
らの戻りと同時にページ障害が生じ得る。
FUマイクロ機械が仮想モードにある時、どんなマイクロ
ルーチンも完了に戻り得ない、即ち予測出来る時間長さ
以内にその実行を完了し、あるいはこれを完全に完了し
得ない。
−このマイクロ機械はプロセス610を実行中である。
最後の4つの特性は、第1の結果であり、事象信号が呼
出しをもたらし、マイクロ機械スタツクが無限であるた
め、呼出し数には制限がない。無限のマイクロ機械のス
タツクは、プロセス610に帰属する機密保護スタツク103
36に対しマイクロ機械スタツク・フレームを置くことに
よつて達成され、従つて仮想マイクロ機械は常にあるプ
ロセス610に帰属するマイクロ機械スタツクにおいて実
行する。更に、もしあるマイクロルーチンの呼出しまた
はマイクロルーチンからの戻りがマイクロ機械フレーム
が機密保護スタツク10336からFUマイクロ機械に対して
転送されることを要求するならば、ページ障害が生じ
得、マイクロルーチンを実行中のプロセス610はJP10114
から除去され、これによりマイクロルーチンの実行に要
する時間を予測不可能にする。実際に、もしプロセス61
0が停止される即ち終らされるならば、マイクロルーチ
ンの実行は決して終了しない。以下の説明において判る
ように、仮想プロセツサ612は、仮想マイクロ機械がプ
ロセス610のマイクロ機械スタツクに対するアクセスを
得る手段である。
モニター・モードにおいて、FUマイクロ機械は下記の特
性を有する。即ち、 −このマイクロ機械は固定されたサイズのマイクロ機械
スタツクを有し、このスタツクは常にFUマイクロ機械か
ら使用可能であり、このスタツクはプロセス610と関連
しない。
−このマイクロ機械は1つのマイクロ命令のM0サイクル
の間固定数の事象しか応答し得ない。
−モニター・モードにおいては、1つのマイクロルーチ
ンの呼出しまたはマイクロルーチンからの戻りはページ
障害を生じない。
−マイクロ機械がモニター・モードにある時FUマイクロ
機械に関して実行中のマイクロルーチンは、これら自ら
がJP10114を放棄させる動作を行なわなければ、完了ま
で実行することを保証される。
−モニター・モードで実行中のマイクロルーチンはプロ
セス610に対する機能を実施する必要はない。
同様に、残りの特性は第1のものの結果である。これは
モニター用マイクロ機械のスタツクが固定サイズである
ため、モニター・マイクロ機械が応答可能な事象の数が
制限される。更に、スタツクが常に直接マイクロ機械に
アクセス可能であるため、マイクロ機械の呼出しおよび
戻しはページ障害を惹起せず、モニター・モードで実行
中のマイクロルーチンは、自らJP10114を放棄させる動
作を行なわなければ、完了まで実行することになる。最
後に、モニター・マイクロ機械のスタツクはプロセス61
0の機密保護スタツク10336と関連せず、従つて、モニタ
ー・マイクロ機械はプロセス610に対する機能を実行す
ると共に、(プロセス610とは関連しない)諸機能、例
えばJP10114からの仮想プロセツサ612の結合および除去
を実行することができる。
最初のものに続く記述は、マイクロ機械を構成する諸素
子の概論であり、マイクロ機械に関する呼出およびマイ
クロ機械のプログラミングの記述に続き、仮想およびモ
ニター・モードの詳細な論議およびマイクロ機械と1011
0のサブシステム間の関係の概論で締括くる。マイクロ
機械がSINの分析、名前の解明またはアドレスの翻訳の
如き特定の操作を実施する方法については、マイクロ機
械が諸操作の実施のため使用するCS10110の構成要素に
ついての前の記述に見出すことができる。
b.FUマイクロ機械を構成する諸素子の概論(第270図) 第270図は、マイクロ機械を構成する諸素子の概要を紹
介する。第270図は第201図に基づくものであるが、論議
の明瞭回路を向上させるため簡単にされている。第201
図に示されるマイクロ機械の素子および再区分には番号
が付されている。第270図における素子が2つの再区分
に現われる時は、これらの再区分により共有される。
第270図は4つの主な再区分を有する。これらの内の3
つは第201図からで、即ちマイクロ機械により実行され
るべき次のマイクロ命令を選択するため使用される素子
を保有するFUCTL20214と、記述子の処理のためのスタツ
ク、大域レジスタおよびALUを含むDESP20210と、名前を
論理記述子に翻訳しかつ論理記述子を物理的記述子に翻
訳する素子を含むMEMINT20212である。第4の再区分、
即ちEUインターフエース27007は、FU10120のマイクロコ
ードによつて操作可能なEU10122の各部を表わす。
第270図は更にFUCTL20214とMEMINT20212を再分割する。
FUCTL20214は4つの再区分を有する。即ち、 −Iストリーム・リーダ27001、SINを得てこれをSOPお
よび名前に分析するため使用される素子を含む。
−SOPデコーダ27003、SOPをFUマイクロコード(FUSITT1
1012)における場所に変換し、ある場合には、対応する
SINを実施するマイクロコードを含むEUマイクロコード
(EUSITT20344)における場所に変換する。
−マイクロコード・アドレス指定装置27013、FUSITT110
12において実行されるべき次のマイクロ命令の場所を決
定する。
−レジスタ・アドレス指定装置27011、GRF10354のレジ
スタに対するアドレスを生成する素子を含む。
MEMINT20212もまた3つの再区分を有する。即ち、 −名前翻訳装置27015、名前の論理記述子への翻訳を加
速する素子を含む。
−メモリー照合装置27017、論理記述子の物理的記述子
への翻訳を加速する素子を含む。
−機密保護装置27019、論理記述子に関してなされたメ
モリー照合についての最初のアクセス検査を加速する素
子を含む。
第270図はまた、長さバス20226と、OFFSETバス20228
と、AONバス20230を1つの構造、即ち記述子バス(DB)
27021に結合することによつて第202図のバス構造を簡単
にする。更に、内部バスの結合は、マイクロ機械の論理
的操作の説明に必要なものにまで減殺されている。以下
の記述においては、最初にFU10120において実行中のほ
とんどのマイクロコードにより使用される如き素子につ
いて説明し、次いで名前の翻訳または保護機能検査の如
き特殊な機能の実施に使用される素子について説明す
る。
1.ほとんどのマイクロコードにより使用される素子 ほとんどマイクロコードにより使用されるいくつかの素
子を含むマイクロ機械の再区分は、マイクロコード・ア
ドレス指定装置27013と、レジスタ・アドレス指定装置2
7011と、EUインターフエース27007とである。更に、ほ
とんどのマイクロコードはMODバス10144と、JPDバス101
42と、DB27021を使用する。本論はバスの論議から始
め、次いで上掲の順序で他の素子について説明する。
a.a.MODバス10144、JPDバス10142およびDB27021 MODバス10144は、これによりデータをMEM10112から得る
とができる唯一の経路である。MODバス10144におけるデ
ータは、その行先として、命令ストリーム・リーダ2700
1、またはDESP20210、またはEUインターフエース27007
を有する。第1の場合には、MODバス10144におけるデー
タはSINからなり、第2の場合にはFU10120により処理さ
れるデータであり、第3の場合には、これはEU10122に
より処理されるデータである。本例においては、FU1012
0により処理されるべきデータは、略々FU10120内部の使
用、例えば名前カツシエ10226における使用を目的とす
るデータである。EU10122により保有されるデータは、
一般にSINにおける名前により表わされるオペランドで
ある。
JPDバス10142は2つの用途を有する。即ち、データがJP
10114により処理された後MEM10112に対して戻る経路で
あり、また論理記述子以外のデータがマイクロ命令の再
区分間で移動する経路である。例えば、CS10110が初期
化される時、FUSITT11012に対してロードされるマイク
ロ命令はMEM10112からJPDバス10142を介してDESP20210
に対して転送され、またDESP20210からJPDバス10142を
介してFUSITT11012に対して転送される。
DB27021は、これにより論理記述子がマイクロ機械内で
転送される経路である。DB27021は、名前翻訳装置27015
と、DESP20210と、機密保護装置27019と、メモリー照合
装置27017を接続する。典型的には、論理記述子は、DES
P20210におけるレジスタに配された名前翻訳装置27015
から得られ、次いで、照合が論理記述子を用いてなされ
る時は常に機密保護装置27019とメモリー照合装置27017
に対して与えられる。しかし、DB27021はまた、DESP202
10において形成されたカツシエのエントリをATU10228
と、名前カツシエ(NC)10226と、保護カツシエ(PC)1
0234に対して転送するため使用される。
b.b.マイクロコードのアドレス指定装置 本文において論述したように、マイクロコードのアドレ
ス指定装置は下記の諸素子からなる。即ち、TIMER2029
6、EVENTロジツク20284、RCWS10358、BRCASE20278、mPC
20276、MCW020292、MCW120290、SITTNAS20286およびFUS
ITT11012である。これらの素子の全てについては既に詳
細に説明しており、これらの素子はマイクロコードのア
ドレス指定に影響を及ぼす時のみこれについて論述す
る。第202図に含まれる他の素子、即ち状態レジスタ202
94、反復カウンタ20280およびPNREG20282はマイクロコ
ードのアドレス指定とは直接に関連を持たないため、本
項では論述しない。
既に詳細に説明したように、マイクロコード・アドレス
指定装置27013における諸素子はJPDバス10142からロー
ドされる。これらの素子およびFUSDT11010により与えら
れるマイクロコード・アドレスは、これら諸素子間をFU
SITT11012に対してCSADRバス20204によつて転送され
る。次のマイクロコード・アドレスが得られる方法は6
つある。即ち、 −最も頻繁には、mPC20276における値は、mPC20276にお
ける特殊なALUによつて1だけ増分され、これによりそ
の時のマイクロ命令に続くマイクロ命令のアドレスを生
じる。
−もしあるマイクロ命令があるマイクロルーチンまたは
分岐に対する呼出しを規定するならば、このマイクロ命
令は、次のマイクロ命令の場所を得るためBRCASE20278
におけるALUがmPC20276における値に加算するリテラル
値を保有する。
−もし次のマイクロ命令の場所を計算するためあるマイ
クロ命令がある場合の値の使用を規定するならば、BRCA
SE20278はDESP20210により計算された値をmPC20718の値
に加算する。DESP20210により計算された値はある論理
記述子のあるフイールドから得ることができ、これによ
りこの論理記述子に含まれる形式情報に基づいてマイク
ロコードにおける異なる場合に対してマイクロ機械が分
岐することを可能にする。あるマイクロコーチンの呼出
しから戻ると同時に、呼出しが生じたマイクロルーチン
の実行が継続すべき場合がRCWS10358から得られる。
−SINの実行の開始時において、SINに対するマイクロコ
ードが開始する場所がFUSDT11010によつてSINのSOPから
得られる。
−いくつかのハードウエア信号はマイクロルーチンの呼
出しを生じる。このような信号の2つの種類がある。即
ち、事象ロジツク20284がいくつかのマイクロルーチン
の呼出しに変換する事象信号と、直接マイクロコードの
場所に変換されるJAM信号である。
前述の如く得られたアドレスはSITTNAS20286に対して転
送され、これは次のマイクロ命令の場合としてアドレス
の1つを選択し、この場所をFUSITT11012に対して転送
する。この場所がFUSITT11012に対して転送されると、
これもまたmPC20278に記憶される。JAMに対するアドレ
スを除く全てのアドレスは、CSADRバス20204を介してSI
TTNAS20286に対して転送される。JAM信号から得られる
アドレスはSITTNAS20286に対する別の回線によつて転送
される。
以下において詳細に説明するように、マイクロルーチン
の呼出しおよび戻しもまたマイクロ機械のプツシユおよ
びホツピングおよびMCW120290に含まれる状態の保管を
伴なう。
レジスタ・アドレス指定装置27011は、GRF10354に含ま
れるマイクロ命令レジスタに対するアクセスを制御す
る。以下において詳細に説明するように、GRF10354はマ
イクロ機械スタツクに対して使用されるレジスタと大域
レジスタ、即ち常に全てのマイクロルーチンに対してア
クセス可能なレジスタの両者を含んでいる。このレジス
タはフレーム内に集められ、個々のレジスタはフレーム
番号およびレジスタ番号によりアドレス指定される。レ
ジスタ・アドレス指定装置27011は、GRF10354のGR10360
におけるどのフレームおよびレジスタのアドレス指定で
も可能であるが、SR10362のフレームの場合は3つのフ
レーム、即ちその時の(最上位の)フレームと、前のフ
レーム(即ち、最上位のフレームに先行するフレーム)
と、最下位のフレーム即ち依然としてGRF10354に保有さ
れる仮想マイクロ機械スタツクにおける最下位のフレー
ムにおけるレジスタのアドレス指定しか可能でない。レ
ジスタ・アドレス指定装置27011により与えられる値はM
CW020292に記憶される。続くマイクロルーチン呼出しの
論述において説明するように、その時および前のフレー
ムは呼出し毎に増分され、戻し操作毎に減分されるので
ある。
c.c.記述子処理装置20210(第271図) DESP20210は、論理記述子を記憶してこれを処理するた
めの1組の素子である。DESP20210の処理装置の内部構
造については既に詳細に説明したが、本論においては、
論述は主としてGRF10354の構造および内容について述べ
る。CS10110の望ましい実施態様においては、GRF10354
は256構成のレジスタを保有する。各レジスタは1つの
論理記述子を含む。第271図は、詳細に論理記述子27116
を示している。CS10110の本実施態様においては、論理
記述子27116は4つの主なフイールドを有する。即ち、 −RSフイールド27101、以下において説明する種々のフ
ラツグを保有する。
−AONフイールド27111、論理記述子27116により表わさ
れるデータ項目のアドレスのAON部分を保有する。
−OFFフイールド27113、論理記述子27116により表わさ
れるデータ項目のアドレスのオフセツト部分を保有す
る。
−LENフイールド27115、論理記述子27116により表わさ
れるデータ項目の長さを保有する。
RSフイールド27101は下記の如きサブフイールドを含
む。即ち、 −RTDフイールド27103とWTDフイールド27105はCS10110
によるデバツガに対して与えられるいくつかの事象信号
を不作用化するためマイクロコードによつて設定するこ
とができる。詳細については、CS10110におけるデバツ
ギング手段の以降の記述を参照されたい。
−FIUフイールド27107は2つのビツトを保有する。この
フイールドは、論理記述子27116を構成するため使用さ
れる名前テーブル・エントリにおける情報から設定され
る。これらのビツトは如何にして論理記述子27116によ
り指定されたデータがMEM10112から取出される時に位置
調整される時に位置調整されて充填されるかを判定す
る。
−TYPEフイールド27109の4つのビツトもまた、論理記
述子27116を構成するため使用される名前テーブル・エ
ントリから得られる。このフイールドのセツテイングは
S言語間で変化し、S言語のSインタプリター・マイク
ロコードに対してS言語特有のタイプ情報を通信するた
めに使用される。
論理記述子27116の4つのフイールドは、GRF10354レジ
スタにおける3つの個々にアクセス可能なフイールドに
含まれるが、その1つはRSフイールド27101とAONフイー
ルド27111とを含み、1つはOFFフイールド27113を含
み、1つはLENフイールド27115を含んでいる。更に、各
GRF10354レジスタは全体的にアクセス可能である。GRF1
0354は更に各々8つのレジスタの32フレームに再分割さ
れている。個々のGRF10354レジスタは、前記フレーム内
のそのフレーム番号とそのレジスタ番号によつてアドレ
ス指定される。CS10110の本実施例においては、GRF1035
4におけるフレームの半分がSR10362に帰属してマイクロ
機械スタツクのため使用され、半分は「大域情報」の記
憶のためGR10360に帰属する。SR10362においては、各GR
F10354のフレームは、あるマイクロルーチンの1回の呼
出しに帰属する情報を保有する。前述の如く、レジスタ
・アドレス指定装置27011はSR10362スタツクにおける3
つのGRF10354のフレーム、即ち、このスタツクにおける
その時の最上位フレームと、前のフレームと、最下位の
フレームのみのアドレス指定を可能にする。レジスタ
は、これら3つのフレームと1つのレジスタ番号の1つ
を指定することによつてアクセスされる。
GR10360に含まれる大域情報は、1つの呼出しとは接続
されない情報である。大域情報には3つの広いカテゴリ
ーがある。即ち、 −その仮想プロセツ612がその時JP10114に対して固定さ
れるプロセス610に帰属する情報。この情報に含まれる
のは、プロセス610のABPのその時の値とKOSがプロセス6
10のスタツクの管理のため使用するポインタである。
−KOSの操作のため必要とされる情報。この情報に含ま
れるのは、MEM10112における固定された場所を占有する
KOSデータ・ベースに対するポインタの如き項目であ
る。
−定数、即ち、FU10120において頻繁に実施されるいく
つかの操作に必要とされる固定値。残りのレジスタは、
マイクロルーチンのスタツク・フレームに記憶すること
ができないデータに対する一時的な記憶領域としてマイ
クロプログラマに対して使用可能である。例えば、いく
つかのマイクロルーチンにより共有されるデータはGR10
360に最適に置くことができる。GRF10354のGR10360にお
けるレジスタのアドレス指定は2つの値、即ちフレーム
を指定する0乃至15の値と、フレームにおけるレジスタ
を指定する0乃至7の値を必要とする。
前に詳細に述べたように、DESP20210の3つの構成要素A
ONP20216と、OFFP20218とLENP20220もまたALUと、レジ
スタと、GRF10354レジスタの個々のフイールドについて
実施すべき各操作を可能にするロジツクを含む。特に、
OFFP20218は、汎用32ビツト演算論理装置として使用す
ることができるOFFALU20242を含む。OFFALU20242は更
に、JPDバス10142とDB27021のオフセツト部分と名前バ
ス20224のソースおよび行先として、またMODバス10144
に対する行先として作用する。その結果、OFFALU20242
はこれらのバスにおけるデータについて操作を行なう、
データを1つのバスから別のバスに対して転送するため
に使用することができる。例えば、あるSINがアドレス
計算において使用されるリテラル値を保有する時、この
リテラル値は名前バス20224を介してOFFALU20242に対し
て転送され、それについて操作され、DB27021のオフセ
ツト部分を介して出力される。
d.d.EU10122のインターフエース FU10120は、EU10122がどんな操作を実施すべきか、どん
なオペランドについて操作を実施すべきか、また何時終
了されるか、このオペランドにより何をなすべきかを規
定する。FU10120は、データに対する行先としてEU10122
における2つの素子およびデータのソースとして1つの
素子を使用することができる。行先はCOMQ20342とOPB20
322である。COMQ20342は、FU10120によつて要求される
操作を実施するためのマイクロコードのEUSITT20344に
おける場所を受取る。COMQ20342は、FU10120のマイクロ
ルーチンから、あるいはSINのSOPからマイクロコードに
おける場所を受取る。第1の場合には、この場所はJPD
バス10142を介して転送され、第2の場合には、これはE
USDT20266から得られEUDISバス20206を介して転送され
る。OPB20322は、それについて操作が実施されるべきオ
ペランドを受取る。もしこのオペランドが直接MEM10112
から入るならば、これらのオペランドはMODバス10144を
介してOPB20322に対して転送され、もしこれらのオペラ
ンドがFU10120のレジスタまたは諸素子からのものであ
れば、これらはJPDバス10142を介して転送される。
結果のレジスタ27013はデータに対するソースである。E
U10122が操作を完了した後、FU10120は結果のレジスタ2
7013から結果を得る。次に、FU10120はこの結果をMEM10
112に入れ、あるいはJPDバス10142からアクセス可能な
どの素子にでも入れることができる。
2。専用化されたマイクロ機械素子 専用化された素子のグループの各々は、CS10110のサブ
システムの1つとして作用する。命令ストリーム・リー
ダ27001はSインタプリタサブシステムの一部であり、
名前翻訳装置27015は名前インタプリサブシステムの一
部であり、メモリー照合装置27017は仮想メモリー管理
システムの一部であり、機密保護装置27019はアクセス
制御システムの一部である。本項においては、これらの
素子についてはマイクロ機械の関連においてのみ説明
し、これら素子が帰属するサブシステム内の機能の完全
な理解のためには、サブシステムの前の記述を参照され
た。
a.a.命令ストリーム・リーダ27001 命令ストリーム・リーダ27001は、手順目的604、606、6
08からSINのストリーム(命令ストリームと呼ぶ)を読
出して分析する。この命令ストリームはSOP(命令コー
ド)、名前およびリテラル値からなる。前述の如く、CS
10110の本実施例においては、あるプロセス602から読出
された命令ストリームは固定されたフオーマツトを有
し、SOPは8ビツトの長さであり、名前およびリテラル
値は全て単一の長さを有する。手順に従つて、この長さ
は8、12または16ビツトとなる。命令ストリーム・リー
ダ27001は、この命令ストリームをその構成SOPと名前に
分解し、このSOPと名前WOマイクロ機械の適当な部分に
対して送ることにより分析する。命令ストリーム・リー
ダ27001は2つのグループの素子を含む。即ち、 −PC値27006、命令ストリームにおける場合を保有する
3つのレジスタからなる。ABPのPBPに対して加算される
時、これらのレジスタに含まれる値は、実行中の手順60
2を含む手順目的901における場所を指定する。CPC20270
は、その時翻訳中のSOPまたは名前の場所を保有し、IPC
20272はその時実行中のSINの始めの場所を保有し、最後
に、EPC20274はSINの実行開始時にのみ関連を有し、こ
の時これは実行されるべき最後のSINの場所を有する。
−分析装置27005、INSTB20262と、パーサ20264と、PREF
20260からなる。マイクロルーチンはPREF20260を用いて
命令ストリームに対する論理記述子27116を形成し、こ
れは次にDB27021に置かれて論理メモリー照合において
使用される。これらの照合から戻されたデータはINSTB2
0262に置かれて、パーサ20264によつて分析される。
パーサ20264により得られたSOPと、名前と、リテラル値
は名前バス20224に置かれ、これはパーサ20264と、SOP
デコーダ27003と、名前翻訳装置27015とOFFALU20242を
接続する。
b.b.SOPデコーダ27003 SOPデコーダ27003は、SOPをFU10120およびEU10122のマ
イクロコードにおける場合に復号する。SOPデコーダ270
03は、CS10110と、EUSDT20266と、ダイアレクト・レジ
スタ(RDIAL)24212と、LOPCODE24210からなる。FUSDT1
1010は更に、FUDISP24218およびFALG24220からなつてい
る。これらの素子がSINに含まれるSOPをFUSITT11012お
よびEUSITT20344における場所に翻訳する方法について
は前に述べた。
c.c.名前翻訳装置27015 名前翻訳装置27015は、論理記述子27116に対する名前の
翻訳を加速する。この操作は名前の解明と呼ばれる。こ
れは2つの構成要素、即ち名前カツシエ10226および名
前トラツプ20254からなる。名前カツシエ10226は、手順
目的604の名前テーブル10350から情報のコピーを含み、
これにより名前テーブル10350を照合することなしに名
前を論理記述子27116に翻訳することを可能にする。名
前が名前翻訳装置27015に与えられると、この装置は必
要に応じて名前翻訳装置27015により後で使用するため
名前トラツプ20254に対してラツチされる。以下におい
て詳細に説明するように、本実施例においては、名前の
翻訳は常に名前カツシエ10226に対する名前の提供によ
り開始する。もし名前が既に翻訳されていたならば、そ
の論理記述子27116の解釈に必要な情報は名前カツシエ1
0226に含むことができる。もし名前カツシエ10226にお
ける名前に対する情報がなければ、名前解明マイクロコ
ードは名前トラツプ20254から名前を得、この名前の翻
訳のため実行中の手順に対する情報を名前テーブル1035
0から使用し、この必要とされる情報を名前カツシエ102
26に置き、再び翻訳を試みる。翻訳が成功すると、名前
に対応する論理記述子27116が名前カツシエ10115におけ
る情報から生成され、DB27021に置かれ、GRF10354のレ
ジスタにロードされる。
d.d.メモリー照合装置27017 メモリー照合装置27017は、論理記述子27116を用いてメ
モリーの照合を行なう。メモリー照合装置27017は、MEM
10112に対する指令と、この指令が実施されるべきデー
タを記述する論理記述子27116を受取る。書込み操作の
場合、メモリー照合装置27017はまたJPDバス10142を介
して書込まれつつあるデータを受取る。メモリー照合装
置27017は論理記述子27116を物理的記述子に翻訳し、こ
の物理的記述子および指令をDPバス10146を介してMEM10
112に対して転送する。メモリー照合装置27017は4つの
構成要素、即ちKOS仮想メモリー管理システム・テーブ
ルからの情報をコピーを保有し、これにより論理記述子
から物理的記述子への盤訳を加速するATU10228と、論理
記述子27116を捕捉するDST20256と、メモリーの指令を
捕捉する指令トラツプ27018と、書込み操作におけるデ
ータを捕捉するデータ・トラツプ20258とを有する。論
理的メモリー照合がなされる時、論理記述子27116はDB2
7021を介してATU10228に対して与えられ、同時に論理記
述子27116およびメモリー指令はDST20256および指令ト
ラツプ27018に捕捉される。書込み操作と同時に、書込
まれるべきデータはデータ・トラツプ20258に捕捉され
る。もし物理的記述子を形成するに必要な情報がATU102
28に存在するならば、物理的記述子はPDバス10146を介
してMEM10112に対し転送される。もし物理的記述子の形
成のため必要な情報がATU10228に存在しなければ、ATU1
0228からの事象SINは、DST20256から論理記述子27116を
検索するマイクロルーチンを介在させ、KOS仮想メモリ
ー管理システム・テーブルに含まれる情報を用いて論理
記述子27116に対するATU10228におけるエントリを行な
う。マイクロルーチンが戻る時、論理的メモリー照合が
DST20256からの論理記述子27116と、指令トラツプ27018
からのメモリー指令を用いて反復され、また書込み操作
においてはデータ・トラツプ20258におけるデータを用
いて反復される。仮想メモリー管理の論議において詳細
に説明するように、もし論理的メモリー照合により照合
されたデータがMEM10112に存在しなければ、論理的メモ
リー照合がページの障害を惹起する。
e.e.機密保護装置27019 論理的メモリー照合毎に、機密保護装置27019は、この
照合を行なう主題が、照合される目的についてのメモリ
ー指令によつて指定される動作を実施することを可能に
するアクセス権を有するかどうかを検査する。もしこの
主題が所要のアクセス権を持たなければ、機密保護装置
27019からのSINはMEM10112をして論理的メモリー照合を
打切らせる。機密保護装置27019は、KOSアクセス制御シ
ステムテーブルからの情報のコピーを保有する保護カツ
シエ10234からなり、これにより保護機能検査の速度を
向上させ、DST20256、指令トラツプ27018およびデータ
・トラツプ20258をメモリー照合装置27017と共有する。
論理的メモリー照合がなされる時、AONと論理記述のオ
フセツト部分が保護カツシエ10234に対して提供され
る。もし保護カツシエ10234がAONおよびオペランドによ
り指定される目的に対する保護情報を保有し、メモリー
照合を行なう主題が所要のアクセスを有するならば、メ
モリー照合は継続し、もし保護カツシエ10234が保護情
報を保有し主題が所要のアクセスを持たなければ、保護
カツシエ10234からのSINはメモリー照合を打切る。もし
保護カツシエ10234が所要のアクセス情報を持たなけれ
ば、保護カツシエ10224からのSINはメモリー照合を打切
り、KOSアクセス制御システム・テーブルからのアクセ
ス情報を得るマイクロルーチンを介在させて、これを保
護カツシエ10234に置く。保護カツシエ10234が使用可能
状態にある時、メモリーのアクセスはDST20256からの論
理記述子と、指令トラツプ27018からのメモリー指令を
用いて反復され、また書込み操作の場合は、データ・ト
ラツプ20258におけるデータを用いて反復される。
f.f.KOSマイクロ機械の素子 マイクロ機械に関する紹介において述べたように、マイ
クロ機械を構成する素子は2つの種類、即ちマイクロ機
械に対して書込まれたマイクロコードが操作可能なもの
と、KOSマイクロコードによつて専ら操作可能なものと
に分類することができる。後者の種類は、GRE10354のGR
10360におけるいくつかのレジスタと、GRF10354のスタ
ツク部分(スタツク・レジスタ10362)における仮想マ
イクロ機械スタツクの部分の最下位フレームと、機密保
護装置27019およびメモリー照合装置27017において保有
される諸素子からなる。機密保護装置27019およびメモ
リー照合装置27017はKOSマイクロコードによつてのみ操
作可能であり、非KOSマイクロコードはソースまたは行
先としてDST20256および指令トラツプ27018を使用せ
ず、ATU10228または保護カツシエ10234におけるレジス
タのロードまたは無効化を行なわず、またメモリー照合
装置27017および機密保護装置27019に対して論理記述子
を提供する代りに、物理的メモリー照合、即ち物理的記
述子を直接PDバス10146に置くメモリー照合は行なわな
い。同様に、GRF10354のレジスタのアドレス指定の場合
は、非KOSマイクロコードは、GRF10354のGR10360におけ
るKOSレジスタ、またはGRF10354のスタツク部分の最下
位フレームを規定しない。更に、FUSITT11012の動的ロ
ーデイングを可能にする実施態様においては、KOSマイ
クロコードのみが動的ローデイングのため提供された諸
素子を操作することができる。
CS10110の本実施例においては、KOS素子およびレジスタ
と、全てのマイクロプログラムに対してアクセス可能な
素子およびレジスタはマイクロバインダによつて操作さ
れる。このマイクロバインダは、機密保護装置27019ま
たはメモリー照合装置27017における諸素子を操作し、
あるいはKOS用に留保されたGRF10354のレジスタをアド
レス指定するマイクロ命令に対する全てのマイクロコー
ドの検査を行なう。しかし、KOS素子が全てのマイクロ
プログラムに対してアクセス可能な素子とは論理的にも
物理的にも個別であり、その結果、CS10110の他の実施
態様においては、非KOSマイクロプログラムがKOS素子の
操作を行なうことを阻止するハードウエア素子を使用す
ることができる。
c.マイクロ機械スタツクおよびマイクロルーチンの呼出
しおよび戻し操作(第272図、第273図) 1.マイクロ機械スタツク(第272図) 前述の如く、FUマイクロ機械はスタツク・マイクロ機械
である。FUマイクロ機械のスタツクの特性は、FUマイク
ロ機械が仮想モードであるかモニター・モードであるか
に依存する。仮想モードにおいては、マイクロ機械スタ
ツクは実質的にサイズが制約を受けず、もしこれが内部
のFU10120に対して許容される以上のフレームを保有す
るならば、最上位フレームはGRF10354にあり、残りのフ
レームはFUマイクロ機械によつて実行中のプロセス610
に帰属する保護スタツク10336にある。以下において
は、仮想モードのマイクロ機械スタツクは仮想マイクロ
機械スタツクと呼ばれる。モニター・モードにおいて
は、マイクロ機械スタツクは固定された記憶量からな
り、CS10110の本実施例においては、モニター・モード
のマイクロ機械スタツクはスタツク部分、即ちGRF10354
のSR10362に完全に保有され、CS10110の他の実施例にお
いては、モニター・モードのマイクロ機械スタツクの一
部または全ては、固定サイズでありかつモニター・マイ
クロ機械にとつて固定の場所を有するMEM10112のある領
域内の保有することができる。CS10110の更に別の実施
例においては、モニター・モードのマイクロ機械スタツ
クは仮想マイクロ機械スタツクと同様な方法で柔軟性の
ある深さのものである。いずれのモードの、実行を行な
うあるKOSマイクロルーチン以外のマイクロルーチンに
おいても、状態の保管および復元操作はGRF10354のスタ
ツクの2つのフレームしかアクセスできない。即ち、そ
の時のフレームと呼ばれるマイクロルーチンが実行中で
あるフレームと、前のフレームと呼ばれるマイクロルー
チンと関与したマイクロルーチンが実行したフレームで
ある。状態の保管および復元操作を実行するKOSマイク
ロルーチンは、更に、GRF10354に保有される仮想マイク
ロ機械スタツクの部分の最下位フレームをアクセス可能
である。
第272図は、FUマイクロ機械スタツクに対するスタツク
を示している。FUに含まれるマイクロ機械スタツクのこ
れらの部分はSR10362とRCWS10358に含まれる。RCWS1035
8の各レジスタはGRF10354のSR10362におけるGRFフレー
ムと恒久的に関連させられ、RCWS10358のレジスタおよ
びGRFのフレームは共に1マイクロ機械スタツクの1フ
レームを保有することができる。前述の如く、GRF10354
の各レジスタは3つのフイールド、即ちAONおよび他の
情報用のフイールド、オペランド用のフイールド、およ
び長さに対するフイールドを含んでいる。第251図に示
すように、RCWS10358における各レジスタは下記の4つ
のフイールドを含む。即ち、 −次のフレームを形成した呼出しが生じた時点において
MCW120290における条件コード・レジスタの値を保有す
る1ビツトのフイールド、 −RCWレジスタが帰属する呼出しが別のマイクロルーチ
ンを呼出した時点においてどの事象SINが継続中である
かを表示するフイールド、 −呼出しが生じた時実行中のマイクロ命令がSINにおけ
る最初のマイクロ命令であつたかどうかを表示するフラ
ツグ、および −呼出し中のマイクロルーチンの実行が継続するアドレ
スである。
これらのフイールドの使用法について以降の論述におい
て明らかになろう。
SR10362およびRCWS10358におけるマイクロ機械スタツク
に対して使用可能な空間は、2つの部分、即ちMOS10370
に対して保留されたフレーム27205およびMIS27203に対
して使用可能なフレーム27206に分割される。フレーム2
7206はMISフレーム27203は含まず、あるいはMISフレー
ム27203により部分的にあるいは完全に占有される。MIS
フレームを含まない空間は自由フレーム27207である。
モニター・マイクロ機械スタツク・フレーム27205に対
して留保された空間のサイズは固定され、空間270203と
27205と27207は常に指定された順序で入る。レジスタ・
アドレス指定装置27011は、RCWS10358におけるレジスタ
を指定するその時の、前のおよび最下位フレーム、また
はスタツク部分27201におけるフレームの場所に対する
値が、レジスタのサイズにより許容された最も大きな指
標値を超えて増分され、最も小さな指標値以下まで減分
される時、自動的に「循環」するように、GRF10354とRC
WS10358のスタツク部分27201におけるアドレス指定を処
理する。このように、空間27203、27205および27207は
常に同じ相対的な順序を有するが、それらのGRF10354の
フレームおよびRCWSレジスタはスタツク部分27201およ
びRCWS10358のどこでも位置決め可能である。
2.マイクロルーチンの呼出しおよび戻し操作 CS10110においては、マイクロルーチンは他のマイクロ
ルーチンまたはCS10110のハードウエアからのSINによつ
て呼出し可能である。脇呼出し、マイクロルーチン呼出
しおよび戻しの各方法は、高水準言語において書かれた
転送の呼出しおよびこれからの戻し操作と類似する。以
下においては、マイクロルーチン呼出しおよび戻しの一
般的な原理について論述し、然る後マイクロルーチンが
CS10110において呼出し可能である特定の方法について
論述する。モニター・モードにおける呼出しと仮想モー
ドにおける呼出し間の差異については、この2つの方法
の詳細な論議において説明する。
その時実行中であるマイクロルーチンはその時のポイン
タ27215により指定されるフレームにおいて実行する。
呼出しが生じる時、実行中のマイクロルーチンは呼出し
を実施するためか、あるいは呼出しが生じたため、JP10
114のハードウエアは3つの事柄を行なう。即ち、 −このハードウエアは、その時のフレームと関連するRC
WS10358のレジスタにおいて呼出し中のマイクロルーチ
ンに対する状態の情報を記憶する。この状態の情報は、
呼出し中のマイクロルーチンの実行が再開する場所なら
びに他の状態情報を含む。
−このハードウエアはその時のポインタ27215および前
のポインタ27213を増分し、これにより新たな呼出しに
対するフレームを提供する。
−このハードウエアは新たに呼出されたマイクロルーチ
ンの最初の命令の実行を開始する。
新たに呼出されたマイクロルーチンが呼出し中のマイク
ロルーチンのフレームのレジスタをアクセスできるた
め、呼出し中のマイクロルーチンは、レジスタの値を呼
出されたマイクロルーチンにより使用されるそのフレー
ムに置くことによつて「アーギユメント」を呼出された
マイクロルーチンに対して送ることができる。しかし、
呼出し中のマイクロルーチンは、呼出しについての「ア
ーギユメント」をどのレジスタが含むかを規定すること
ができないため、呼出されたマイクロルーチンは、前の
フレームのどのレジスタが呼出し中のマイクロルーチン
によつて使用されるかを知らねばならない。マイクロル
ーチンがそれに対するアクセスを有する唯一の「アーギ
ユメント」は前のフレームにおけるものであるから、マ
イクロルーチンはこれがその呼出し側から受取つたアー
ギユメントを、これがその呼出し側のフレームからそれ
自体のフレームにコピースするだけでこれが呼出すマイ
クロルーチンに送ることができ、このフレームは新たに
呼出されたルーチンの前のフレームとなる。
戻しは、前述の事柄の反対である。即ち、その時のポイ
ンタ27215と前のポインタ27213は減分され、これにより
この完了した呼出しのフレームを「ポツプ・オフ」して
呼出し側のフレームに対して戻す。この呼出し側のフレ
ームは次に、RCWS10358において指定された場所におい
て、RCWS10358に保管された状態を用いて実行を再開す
る。この保管された状態は、この呼出しの時点における
MCW120290の条件コードの値と種々の継続中の事象を示
すフラツグを含む。MCW120290における条件コード・フ
イールドは保管された値にセツトされ、継続中の事情フ
ラツグは以下において詳細に説明するように、事象を発
生させることができる。
3.呼出しマイクロルーチンの装置 マイクロルーチンにおいては、マイクロ命令における指
令により、あるいはハードウエアSINによつて呼出しを
生じることができる。以下においては、マイクロ命令に
おける指令により生じた呼出しを「呼出し」と呼び、ハ
ードウエアSINにより生じた呼出しを事象呼出しおよび
ジヤムと呼ぶ。呼出しは、更にこれらが戻される場所に
より相互に識別される。呼出しおよびジヤムは、呼出し
が生じるマイクロ命令に続くマイクロ命令に戻り、事象
呼出しはこのマイクロ命令に戻り、その後反復される。
構成については、異なる戻り場所は、呼出し、ジヤムお
よび事象呼出しが戻り場所を保管して制御を呼出された
ルーチンに転送するマイクロ機械スタツクサイクルにお
ける時点の結果である。呼出しおよびジヤムの場合は、
これらの操作はM1サイクルにおいて実施され、一方事象
呼出しの場合は、M0サイクルの間の事象信号はM0サイク
ルの後にM1サイクルの代りにMAサイクルを続けさせ、操
作はMAサイクルにおいて実施される。M1サイクルにおい
ては、mPC20276の値が増分され、MAサイクルにおいては
増分されない。その結果、呼出しおよびジヤムと同時に
RCWS10358に保管された戻し値はmPC20276の増分値であ
るが、事象呼出しにおいて保管された戻し値はmPC20276
の増分されない値である。以降の論議は、最初に呼出し
およびジヤムについて延べ、次いで事象呼出しについて
述べることにする。
マイクロ命令における呼出し指令は、実行が呼出し後に
継続すべき呼出しを含むマイクロ命令からのオフセツト
を規定するリテラル値を含む。呼出し指令によるマイク
ロ命令がマイクロ機械スタツクサイクルM1において実行
される時、BRCASE20278は、呼出されたマイクロルーチ
ンの場所を得るためにmPC20276のその時の値に指令に含
まれるオフセツトを加算し、SITTNAS20286を設定して次
のマイクロ命令の場所としてBRCASE20278により与えら
れる場所を選択する。次に、呼出し指令はmPC20276を増
分して、このmPC20276の増分された値をSR10362におけ
るその時のフレームと関連するRCWS10358のレジスタに
おいて記憶し、その時のポインタ27215および前のポイ
ンタ27213を増分して新たなフレームをSR10362に提供す
る。ジヤムは、マイクロ機械スタツクサイクルM1の間の
ハードウエア信号が呼出しと関連する動作を生じさせて
直接SITTNAS20286に対して呼出されたマイクロ機械スタ
ツクの場所を与える点を除けば、呼出しと丁度同じよう
に作用する。
事象の場所には、事象ロジツク20284はサイクルM0の間
に呼出しを生じさせて呼出されたマイクロルーチンの場
所をCSADRバス20299を介して提供する。事象はサイクル
M0の間に生じるため、RCWS10358に記憶された場所はmPC
20276の増分されない値であり、SITTNAS20286は次のマ
イクロ命令の場所としてEVENT20284によつて与えられた
場所を選択する。得からの戻りは前記事象が生じた間に
マイクロ命令を再実行させるため、これが帰属するマイ
クロ命令およびマイクロルーチンはこの事象の発生につ
いては「関知しない」ものであると言うことができる。
ある事象が生じるマイクロ命令の実行と事象を含まない
同じマイクロ命令の実行の間の唯一の差異は、実行に要
求される時間の長さである。
4.事象の呼出しの発生(第273図) 前述の如く、事象の呼出しは事象ロジツク20284によつ
て生じる。EVENT20284がが制御を転送するマイクロコー
ドの場所は、以下の事柄によつて決定される。即ち、 −FU10120により開始される操作。ある事象呼出しはあ
るFU10120の操作の開始時にのみ生じ得る。
−EVENT20284におけるハードウエアおよび内部レジスタ
からの事象信号の状態。
−MCW120290を介して認識可能なあるレジスタの状態。
これらのレジスタのあるものは事象その他のマスク事象
を可能にする。事象を可能な状態にするレジスタの内、
あるものは事象信号により設定され、他のものはマイク
ロプログラムにより設定される。
−マイクロルーチンの呼出しから戻ると同時に、RCWS10
358におけるあるビツトのセツテイングは戻されつつあ
る呼出しに対するマイクロ機械スタツクフレームに帰属
する。
マイクロプログラムはこれらの機構を用いて事象信号を
不作用状態にし、また1つのマイクロ命令または不定の
期間事象信号からの事象呼出しを遅延させることがで
き、FU10120はこれら機構を用いてある事象信号から生
じる事象呼出しを自動的に遅延させる。伝統的なプログ
ラミング手法を用いて、前記機構は事象信号の異なるマ
スキングを可能にする。事象信号は、明らかに1つのマ
イクロ命令に対してマスクすることが可能であり、この
信号は一連のマイクロ命令に対してマスクすることがで
き、ある操作が生じるまで自動的にマスクすることがで
き、あるいはある最大の時間長にわたつて自動的にマス
クすることができる。事象信号がマスクされる間に生じ
る事象信号は脱落しない。ある場合には、事象信号はこ
れがサービスされるまで継続し、他の場合には、レジス
タは事象信号が生じた事実を保持するように設定され
る。事象信号のアンマスクの際には、設定されたレジス
タは事象信号を再び生じさせる。ある場合には、最後
に、事象信号は保持されないが、これを生じたマイクロ
命令が反復される時に再び生じる。
以下においては、FU10120の操作と事象信号間の関係に
ついて最初に述べ、次いでMCW120290における使用可能
レジスタおよび事象の呼出しを制御するRCWS10358のレ
ジスタにおけるビツトの詳細な論述を行なう。
FU10120は事象信号から生じた事象呼出しを1つのマイ
クロ命令の間禁止させ、またあるINの最初のマイクロ命
令まである事象信号に対するある事象呼出しを遅延させ
る。他の事象信号はSINの開始時、または名前空間の解
明または評価操作の開始時、または論理的メモリー照合
の開始時にのみ生じる。
事象呼出しは、マイクロ命令自体のあるフイールドのセ
ツトによつて1つのマイクロ命令の間遅延することがで
きる。このフイールドのセツトはほとんど全ての事象呼
出しを遅延させ、これによりある事象呼出しがマイクロ
命令のM0サイクルの間には生じないことを保証する。
デバツギングに関する事象信号は、いくつかのマイクロ
機械操作の開始時に生じる。このような事象信号は追跡
事象信号と呼ばれる。以下において詳細に説明するよう
に、デバツガーの論議において、評価即ち解明操作の開
始時、または論理メモリー照合の開始時、またはあるマ
イクロ命令の開始時に、1つのSINの最初のマイクロ命
令と同時に追跡事象信号が生じ得る。次のSINの開始時
まで、あるいは最初に生じた最大量の時間が経過するま
で、IPM割込み信号および間隔タイマー桁あふれ事象信
号が自動的にマスクされる。本項に関与する機能につい
ては、FU10120のマイクロ機械において処理される割込
みの論議において詳細に説明されよう。
次に、事象信号のマスクおよび使用可能化のため使用さ
れるレジスタについて述べれば、第273図は、MCW120290
におけるレジスタのマスキングおよび使用可能状態を示
し、また事象呼出しを制御するRCWS10358レジスタにお
けるフイールドを示している。最初にMCW120290におけ
るレジスタについて述べれば、事象呼出しを制御する3
つのレジスタ、即ち事象マスク(EM)レジスタ27301、
事象継続中(EP)レジスタ27309および追跡可能(TE)
レジスタ27319が存在する。EMレジスタ27301におけるビ
ツトは、セツトされる限りいくつかの事象信号をマスク
し、EPレジスタ27309におけるビツトはいくつかの事象
信号がマスクされる間これら信号の発生を記録し、TEレ
ジスタ27319におけるビツトがセツトされる時、あるFU1
0120の操作の前に追跡事象信号が生じる。
EMレジスタ27301は、3つの1ビツト・フイールド、即
ち非同期マスク・フイールド27303と、モニター・マス
ク・フイールド27305と、追跡事象マスク・フイールド2
7307とを含んでいる。FU10120のハードウエアの論議に
おいて詳細に説明するように、これらのバツフアは事象
マスクの階層を確保する。もし非同期マスク・フイール
ド27303がセツトされなければ、2つの事象信号しかマ
スクされず、これはEGGTMR25412の桁あふれおよびEU101
22のスタツクの桁あふれから生じる結果である。もしモ
ニター・マスク・フイールド27305がセツトされるなら
ば、これらの事象はマスクされ、更にFUスタツクの桁あ
ふれ事象信号がマスクされる。以下において詳細に説明
するように、FU10120のスタツクの桁あふれ事象信号が
マスクされる時、FUマイクロ機械はモニター・マスクで
実行される。もし追跡事象マスク・フイールド27307が
セツトされるならば、追跡トラツプ事象信号が前記の信
号に加えてマスクされる。EMレジスタ27301におけるフ
イールドの各々は、マイクロプログラムによつて個々に
セツトされクリアされる。
4つの事象信号がEPレジスタ27309におけるフイールド
をセツトし、EGGTMR25412のランアウト信号はETフイー
ルド27311をセツトし、INTTMR25410のランアウト信号が
ITフイールド27313をセツトし、非重要メモリー・エラ
ー信号がMEフイールド27315をセツトし、プロセス間メ
ツセージ信号はIPMフイールド27317をセツトする。エツ
グ・タイマーのランアウト信号を除いてこれらの事象信
号の全てに対する事象呼出しが1つのSINの開始時に生
じ、このような場合には、EPレジスタ27309における各
フイールドがこの時までに事象信号が生じた状態を保持
し、EMレジスタ27301におけるマスク・ビツトのセツト
が可能となると同時に、前記信号の直後に前記のエツグ
・タイマー・ランアウト信号に対する呼出しが生じる。
ETフイールド27311におけるビツトは、マスキングが事
象の呼出しを生じることを許容するまでエツグ・タイマ
ーのランアウト信号の状態を保有する。EPレジスタ2730
9におけるフイールドの全てがマイクロコードによつて
リセツト可能である。事象により生じたマイクロルーチ
ンは適当なフイールドをリセツトせなばならず、さもな
ければ、これらマイクロルーチンは戻る時再び呼出され
ることになる。MEフイールド27315は、メモリー・エラ
ーがサービスされる時自動的にリセツトされる。
TEレジスタ27319は追跡を可能にする。このレジスタに
おける各ビツトは、セツトされる時ある追跡事象信号を
可能状態にする。追跡の種類に応じて、あるSINの開始
時、またはある解明即ち評価操作の開始時、または最終
メモリー照合の開始時、またはあるマイクロ命令の開始
時において追跡事象信号が生じる。詳細については、以
下のデバツギングの説明を参照されたい。
次にRCWS10358の含まれるレジスタについて述べると、
各RCWSレジスタ27322は事象信号を制御する8つのフイ
ールドを含む。最初のフイールドはFMフイールド27323
である。FMフイールド27323は、RCWSレジスタ27322が帰
属する呼出しが生じる時にEVENT20284におけるレジスタ
の値を反映する。EVENT20284におけるレジスタは、その
時実行中のマイクロ命令があるSINの最初のマイクロ命
令である時のみセツトされる。このように、FMフイール
ド27323は、SINにおける最初のマイクロ命令のM0サイク
ル、即ちSINの開始時において生じる事象呼出しに帰属
するRCWSレジスタ27322においてのみセツトされる。EVE
NT20284におけるレジスタの値は、いくつかの呼出しが
1つのSINの開始時において生じ得る故にFMフイールド2
7323において保管される。事象の呼出しは優先順位にお
いて生じる。即ち、最優先順位を有するものが戻る時、
FMフイールド27323がセツトされるという事実が、EVENT
20284におけるレジスタを再びあるSINの最初のマイクロ
命令と同時に有する状態にセツトさせるのである。この
ようにセツトされたレジスタの状態は、信号の開始時に
生じねばならない次の事象呼出しを生じさせる。このよ
うな呼出しが完了した後、最初のマイクロ命令がそのM1
サイクルに入つて事象ロジツク20284におけるレジスタ
をリセツトする。そのリセツトされた状態において、レ
ジスタはあるSINの開始時においてのみ生じ得る全ての
事象呼出しを禁止する。これは再び次のSINの開始時に
おいてセツトされる。
事象呼出しを制御するRCWSレジスタ27322における残り
のフイールドは戻しSINフイールド27331におけるフイー
ルドである。これらのフイールドは、ある事象信号の事
象呼出しが生じるまで、この事象信号が生じた旨の情報
を事象呼出しの間保持させるのである。ある呼出しが生
じる時、これらのフイールドはEVENT20284によつてセツ
トされる。この呼出しから戻ると同時に、このフイール
ドの値はEVENT20284に入力され、これにより事象信号を
生じる。最優先順位を有する事象信号はある事象呼出し
を惹起し、また残る事象信号は、事象信号が生じる時実
行中である呼出しに帰属するRCWSレジスタ27322に帰属
する戻し信号フイールド27331におけるフイールドをセ
ツトする。戻し信号フイールド27330における各フイー
ルドがEVENT20284に入力されるため、これらのフイール
ドの打の1つをセツトする事象信号の結果として生じる
マイクロコードはこのフイールド自体をリセツトしなけ
ればならない。さもなければ、このマイクロコードから
の戻りはこのマイクロコードの最呼出しを惹起する結果
をもたらすに過ぎない。
戻し信号フイールド27330における7つのフイールドは
下記の重要性を有する。即ち、 −EGフイールド27333がセツトされる時、10122のタスク
指名操作がEU10122のマイクロコードのEUSITT20344にお
ける違法の場所を生じた。
−NTフイールド27335、STフイールド27341、mTフイール
ド27343、またはmBフイールド27345のいずれかがセツト
される時、追跡信号が生じた。これらについては、デバ
ツギングの論述において詳細に説明する。
−ESフイールド27337がセツトされる時、EU10122のスト
ア・バツク例外操作が生じた、即ちEU10122がMEM10112
におけるある操作の結果を記憶しようとした時、エラー
が生じた。
−MRRフイールド27339がセツトされた時、ATU10228のミ
スまたは保護カツシエPC10234のミスの如き条件が生
じ、あるメモリー照合を再び試みることが必要となる。
d.仮想マイクロ機械およびモニター・マイクロ機械 前述の如く、FU10120のマイクロ機械に関して実行中の
マイクロコードはモニター・モードまたは仮想モードの
いずれかで実行可能である。本論においては、これら2
つのモードの特徴および用途の識別について詳細に説明
する。
1.仮想モード 前述の如く、仮想モードとモニター・モード間の主な相
違点はMIS10368である。MIS10368が実質的に制限のない
寸法を有することは、仮想モードにおいて実行するマイ
クロルーチンに対する下記の結果をもたらす。即ち、 −仮想モードにおいて実行中のマイクロルーチンの呼出
しはその結果として如何なる深さに対するこれ以上の呼
出しを行ない得ること、 −仮想モードにおいて実行中のマイクロルーチンの呼出
しまたはこれからの戻りがページ誤りを生じ得ることで
ある。
FUマイクロ機械は、MCW120290の事象マスク部分におけ
る全てのビツトがクリアされる時仮想モードにある。こ
の状態においては、使用可能事象信号はマスクされず、
それ自体それらのマスクを行なわない如何なるマイクロ
命令においても事象呼出しが生じ得るのである。
呼出しは仮想マスクにおいて如何なる深さにおいても生
じ得るため、このマスクに存在するマイクロルーチンは
循環可能である。このような循環マイクロルーチンは特
に名前の解釈のため有用である。しばしば、前述の如
く、ある名前に対する名前テーブル・エントリは他の名
前に対して解を与える名前を保有し、仮想マイクロ機械
の制約されないスタツクがこのような条件における循環
的な名前の解明マイクロルーチンの使用を可能にする。
循環マイクロルーチンはまた呼出しの如き複式SINに対
しても使用可能である。
呼出しは如何なる深さにおいて生じ得るため、どんな数
の事象でも1つのマイクロルーチンがモニター・モード
において実行中である間生じ得る。このためさらに、事
象の取扱いを簡単にすることになる。もしある事象信号
がある優先順位を有するある事象が処理中でありかつ信
号された事象が処理中のものよりも高い優先順位を有す
るならば、その結果は単に新たな事象ハンドラの呼出し
となる。これにより、事象ハンドラが完了する順序は丁
度それらの事象の優先順位に対応し、即ち優先順位を有
する優先順位に完了する。
SR10362に関して自由フレーム27207がもはや存在しない
時に生じる仮想モードにおける呼出しがモニター・モー
ドにおいて実行中のマイクロルーチンを生じる事象信号
を惹起するため、ページの誤りは仮想オードにおいて実
行される如何なるマイクロ呼出しまたは戻しと同時に生
じ得る。このマイクロルーチンは、MISフレーム27203を
GRF10354からMEM10112におけるSS10336に対し転送し、
またこの転送はページ誤りを生じ得る。同様に、あるマ
イクロ戻し操作がSR10362に関するMISフレーム27203の
最終フレームから生じる時、別のフレームをSS10336か
らGRF10354に対して転送するマイクロルーチンを生じる
事象信号が生じ、これもまたページ誤りを惹起するおそ
れがある。
仮想モードにおけるマイクロ呼出しまたはマイクロルー
チンと同時にページの誤りが生じ得ることは、2つの重
要な結果をもたらす。即ち、マイクロルーチンにより明
確に生成されたもの以外のページ誤りを許容し得ないマ
イクロルーチンは仮想モードにおいては実行不能であ
り、また予期されないページ誤りが実行を不確実なもの
にするため、完了まで実行しなければならないマイクロ
ルーチンは仮想モードでは実行不能である。例えば、も
しページ誤りを取扱うマイクロルーチンが仮想モードに
おいて実行されたならば、その呼出しは1つのページ誤
りを生じ得、またこれはマイクロルーチンを再び関与さ
せ、このため別のページ誤りを生じるおそれがあ
り、、、、という状態が無限の循環を生じることにな
る。
2.モニター・マイクロ機械 前述の如く、モニター・モードの不可欠な特徴はMOS103
70である。CS10110の本実施例においては、このスタツ
クは固定された最小サイズを有し、常にGRF10354に保有
される。MOS10370の特性は、モニター・モードにおいて
実行するマイクロルーチンに対する4つの結果を呈す
る。
−マイクロ機械がモニター・モードにある時、呼出しの
深さは制限され、従つてモニター・モードにおいては循
環マイクロルーチンが実行され得ず、事象呼出しは制約
を受けねばならない。
−マイクロルーチンの呼出しおよびモニター・モードに
おけるマイクロルーチンからの戻しは決してページ誤り
を生じることはない。
−モニター・モードにおいて実行中のマイクロルーチン
は、もしそれがソフトウエアに対する呼出しを実施中で
あるプロセス610の中断を行なわなければ、完了まで実
行することを保証される。
−マイクロ機械がモニター・モードにおいて実行中であ
る時、これは、モニター・モードにおいて実行中のマイ
クロルーチンが完了するまで実行するため、あるいはこ
のマイクロルーチンが実行中のプロセス610を中断した
ため、あるいはソフトウエアに対する呼出しを行なつた
ため、適当な期間内に仮想モードに戻ることを保証され
る。両方の場合における結果はSOPの新たなシーケンス
の実行であり、このため仮想モードに対する戻しであ
る。
CS10110の本実施例においては、MCW120290におけるマス
キング・ビツトのある組合せがセツトされる時FUマイク
ロ機械はモニター・モードにあり、これはFUスタツクの
桁あふれ事象およびエツグ・タイマーの桁あふれ事象の
マスキングをもたらす結果となる。前述の如く、もしフ
イールド非同期マスク・フイールド27303、またはモニ
ター・マスク・フイールド27305、または追跡事象マス
ク・フイールド27307がセツトされるならば、これらの
事象はマスクされる。これらの事象およびこれら事象を
マスクする結果については以下において詳細に説明す
る。
FUスタツクの桁あふれ事象に対する事象信号は、MISフ
レーム27203においてフレームが使用可能なフレームが
ないマイクロ呼出しと同時に生じる。もしこの事象信号
がマスクされなければ、これはMISフレームをMISフレー
ム27203からプロセス610のSS10336に対して移動させる
マイクロルーチンの呼出しを生じる。FUスタツクの桁あ
ふれ事象がマスクされる時、GR10360のSR10362における
全てのフレームはマイクロルーチン呼出しに対して使用
可能となり、マイクロルーチン呼出しはページ誤りを惹
起しないが、もしSR10362の容量が超過すると、FU10120
は操作を停止させる。
EGGTMR25412が終了する時、エツグ・タイマー桁あふれ
事象信号が生じる。以下において詳細に説明するよう
に、EGGTMR25412は、間隔タイマーの終了、またはプロ
セス間メツセージ、または非重要メモリー・エントリは
妥当な期間内にJP10114によつてサービスされることに
なる。もしある間隔タイマー終了事象信号、またはプロ
セス間メツセージ事象信号がFUマイクロ機械にとつてこ
の事象の取扱いに不充分な時に生じるならば、EGGTMR25
412は実行を開始する。EGGTMR25412が終了する時、マイ
クロ機械がモニター・モードにならない限り処理され
る。もしFUのマイクロ機械がモニター・モードにある
間、即ち事象がマスクされる間EGGTMR25412の終了事象
信号が生じるならば、事象信号はMCW120290におけるET
フイールド27311をセツトする。FUマイクロ機械が仮想
モードに戻る時、即ちMCW120290における全ての事象マ
スク・ビツトがクリアされる時、EGGTMR25412の終了事
象が生じ、間隔タイマー終了および(または)プロセス
間メツセージ事象ハンドラが事象ロジツク20284によつ
て惹起される。
e.割込みおよび誤りの処理 1.原則 如何なるコンピユータ・システムもあるプログラムの通
常の実行を妨害する事態の発生を処理することができな
ければならない。このような事態の発生は一般に2つの
種類、即ち障害および割込みに分けられる。ある機械命
令の実行の試みの結果として障害が生じ、従つてその発
生は機械の命令と同期している。典型的な障害は、浮動
小数点数桁あふれ障害およびページ誤りである。浮動小
数点数桁あふれ障害は、機械命令が浮動小数点数の算術
演算の実施を試み結果がCS10110の浮動小数点数ハード
ウエア即ちEU10122の容量を越える時に生じる。ページ
誤りは、仮想メモリーを含むあるコンピユータ・システ
ムにおける機械命令がこのコンピユータ・システムの一
時的メモリー、即ちMEM10112においてその時使用可能で
ないデータを照合しようと試みる時に生じる。障害は機
械命令の実行と同期しており、また多くの場合、特定の
機械命令の実行の結果と同期するため、その発生はある
程度予測可能である。
ある割込みの発生は予測不能である。コンピユータ・シ
ステムによる機械命令の実行とは直接関係を持たないコ
ンピユータ・システムにより取られるある動作の結果と
して割込みが生じる。例えば、その時中央処理装置が実
行中である機械命令の如何に拘わらずある入出力素子
(IOS10116)により転送されるデータが中央処理装置
(FU10120)に達する時に入出力割込みが生じる。
従来のシステムにおいては、割込みおよび障害は下記の
如くに処理されてきた。即ち、もし割込みまたは障害が
生じると、コンピユータ・システムは次の機械命令の実
行の前に事態の発生を認識して、次の機械命令の代りに
割込み処理マイクロルーチン即ちプロセス602を実行す
る。もし割込みまたは障害がその内部で生じたプロセス
610により処理不能であれば、その結果割込みまたは障
害はプロセスのスワツプを惹起する。割込み処理ルーチ
ンが完了する時、障害を生じあるいは割込みを生じたプ
ロセス610はこれが除去された場合にCPUに対して戻すこ
とができ、次の機械命令が実行される。
前述の方法は障害の処理に充分な効果を発揮するも、割
込みが非同規であるという事実はいくつかの問題を生じ
る。即ち、 −割込みが生じる間に機械命令が完了されるまでは、機
械命令は実行のため不定量の時間を要求することができ
ない。
−割込みの発生は予測できないため、如何なる時にもCP
Uからプロセス610を取除くことが可能でなければならな
い。この要件はプロセス管理の難しさを大幅に増大す
る。
CS10110の本実施例における割込みおよび障害の処理に
対して使用される方法については以下に述べる。
2.CS10110におけるハードウエア割込みおよび障害の処
理 CS10110においては2つのレベルの割込みが存在する。
即ち、完全にソフトウエアにより形成されかつこれによ
り処理されるもの、およびハードウエアの信号により形
成できるものである。前者の割込みはプロセス610の論
議において説明したが、ハードウエア割込みと呼ばれる
後者については以下において論議する。
CS10110においては、ハードウエア割込みおよび障害
は、FU10120におけるマイクロルーチンの呼出しとして
開始する。この呼出しは事象信号の結果であり、あるい
はマイクロルーチンによつて行なうことができる。例え
ば、IOS10116がJP10114に対するデータをMEM10112に配
する時、プロセツサ間メツセージの事象信号が生じる結
果となり、この信号はプロセツサ間のメツセージ割込み
ハンドラ・マイクロコードの呼出しを生じる。一方、ペ
ージ誤りはLATマイクロコードによるページ誤りマイク
ロコードの呼出しとして開始する。障害または割込みの
作用を開始するマイクロコードにより取られる動作は、
この障害または割込みが生じた時実行中のプロセス610
および特殊なKOSプロセス610のどちらによつて取扱われ
るかに依存する。
最初に、事象のマイクロコードは、事象を取扱う高水準
の言語の手順に対するマイクロコード対ソフトウエア呼
出しを実施することができる。このように処理される事
象の一例は浮動小数点数の桁あふれである。即ち、浮動
小数点数の桁あふれが生じたことをFU10120のマイクロ
コードが判定する時、桁あふれの発生時にそのS言語が
実行中である高水準言語により提供される浮動小数点数
桁あふれ手順を生じ得るマイクロコードを生じる。CS10
110の別の実施例においては、桁あふれ手順もまたマイ
クロコードに存在する。
第2の場合においては、障害または割込みを処理するマ
イクロコードが障害または割込みを処理するKOSプロセ
ス610によつて使用されるテーブルに情報を配し、次い
でKOSプロセス610により待機される事象カウンタを増進
させることによつてこのKOSプロセス610を若干後に実行
させる。事象カウンタおよびこれらカウンタに関する作
用については、プロセス610の以下の説明において詳細
に説明する。マイクロコードにより操作されるテーブル
および事象カウンタは常にMEM10112に存在するため、こ
れらの操作はページ誤りを生じることがなく、またモニ
ター・モードにおいて実施することができる。例えば、
IOS10116がデータをMEM10112に対してロードした後でIO
S10116がJP10114に対してIPM事象信号を送出する時、事
象信号から生じる事象はIOS10116かRのメツセージを含
むキユーを検査するマイクロコードを含んでいる。この
キユーにおけるメツセージは事象カウンタの場所を含
み、またこのキユーを桁送りするマイクロコードはこれ
らの事象カウンタを増進させ、これにより入出力操作に
より戻されるデータを待機していたプロセス610をして
実行を開始させる。
3.モニター・モード、差動マスキングおよびハードウエ
ア割込み処理 FU10120のマイクロ機械のモニター・モードおよび差動
マスキング装置は、従来のハードウエア割込み処理と関
連する2つの問題を克服するハードウエア割込み処理方
法を可能にする。即ち、1つの割込みは、あるSINの実
行に要する時間量の如何に拘わらず、予測可能な時間量
で処理することができ、またもしこの割込みを処理する
マイクロコードがモニター・モードで実行するならば、
この割込みは予測不能な結果をもたらすことなく如何な
る時も処理することができる。CS10110には2つのハー
ドウエア割込みソースが存在する。即ち、プロセツサ・
メツセージ(IPM)および間隔タイマー35412の終了であ
る。IOS10116がJP10114に対する入出力タスクを完了す
る時1つのIPMが生じて、IOJPバス10132を介してタスク
の完了を信号する。CS10110がある動作を行なわなけれ
ばならない予め設定した時間に達する時、1つの間隔タ
イマーの終了が生じる。例えば、あるプロセス610は、J
P10114に関して実行可能である時間量に対する制限を有
する。プロセスの同期化についての以下の説明において
説明するように、仮想処理装置の管理システムは、プロ
セス610がこれに使用可能な全ての時間を使用した時EGG
TMR25412を終了するように設定する。
IPMと間隔タイマーの双方の終了は事象信号として開始
する。事象信号の直接の効果は、MCW1のEPフイールド27
309においてビツトをセツトする。原則において、この
セツトされたビツトは、FU10120のマイクロ機械が仮想
モードにある次のM0サイクルにおいて事象に対する事象
マイクロコードの呼出しを生じ得る。モニター・モード
において実行中のマイクロルーチンは妥当な期間内でマ
イクロ機械を仮想モードに戻すよう保証されるため、ま
た事象呼出しがこの状態が生じた時発生するため、事象
はある妥当な期間内でサービスされるよう保証されてい
る。事象事態によつて生じるマイクロルーチンはモニタ
ー・モードで実行し、これにより事象が実行中にはペー
ジ誤りが生じないこと、またハードウエア割込みが生じ
る時JP10114に関して実行中であるプロセス610がJP1011
4から取除く必要がないことを保証する。
原則として前述の如くハードウエア割込みのサービスが
行なわれるが、効率の観点から、FUのマイクロ機械のス
タツクの寸法が最小限度である時、即ちSINの実行の開
始時にサービスされるハードウエア割込みができるだけ
多いことが必要となる。この要件は、MCW120290のEGGTM
R25412およびETフイールド27311によつて達成される。
前述の如く、IPM割込み、即ちEGGTMR25412の終了割込み
が生じる時、IMPフイールド27317またはITフイールド27
313がそれぞれMCW120290にセツトされる。同時に、EGGT
MR25412が実行を開始する。もしその時SINの実行がEGGT
MR25412の終了の前に終るならば、MCW120290におけるセ
ツトされたフイールドは、間隔タイマーの終了またはプ
ロセツサ間メツセージ事象呼出しを次のSINに対する最
初のマイクロ機械と同時に生じさせる。もし他方におい
てその時のSINの実行がEGGTMR25412の終了前に終らない
場合は、エツグ・タイマーの終了が事象SINを惹起す
る。この信号の直接の結果はMCW120290におけるETフイ
ールド27311の設定であり、更にETビツト27311の設定が
タイマーの終了事象呼出しおよび(または)IPM事象呼
出しをして、前記マイクロ機械が仮想モードにある間に
生じる次のM0サイクルと同時に起生させるのである。こ
のように、前記の機構は、ほとんどの割込みが1つのSI
Nの開始時において処理されるも、ハードウエア割込み
が常に1つのSINの実行に必要な時間の長さの如何に拘
わらず、ある期間内に処理される。
f.FUのマイクロ機械およびCS10110のサブシステム 目的サブシステム、プロセス・サブシステム、S言語サ
ブシステムおよび名前インタプリタ・サブシステムの如
きCS10110のサブシステムはその全てまたは一部がマイ
クロ機械内に構成されている。従つて、このマイクロ機
械の記述は、これらのサブシステムとマイクロ機械間の
関係の序説に近い。このサブシステムの処理についての
詳細な説明は既に述べた。
このサブシステムは3つの主なグループに別れる。即
ち、KOSサブシステム、名前インタプリンタ・サブシス
テムおよび記憶インタプリタ・サブシステムである。こ
の3つの関係はある程度階層的である。即ち、KOSサブ
システムは名前インタプリタ・サブシステムにより要求
される環境を提供し、名前インタプリタ・サブシステム
はSインタプリタ・サブシステムにより要求される環境
を提供する。例えば、Sインタプリタ・サブシステムは
SOPおよび名前からなるSINの解釈を行ない、名前インタ
プリタ・サブシステムは論理記述子に含まれる場所を計
算するためABPと呼ばれる値を用いて名前を論理記述子
に翻訳する。KOSサブシステムはABPの値を計算し、論理
記述子27116を物理的MEM10112のアドレスに翻訳し、ま
たプロセス610が照合中の目的にアクセスするかどうか
を検査する。
CS10110の本実施例においては、名前インタプリタ・サ
ブシステムおよびSインタプリタ・サブシステムは完全
にマイクロ機械内に構成されるが、他の実施例において
は、これらのサブシステムは高水準言語またはハードウ
エアで構成することができる。KOSサブシステムはマイ
クロ機械および高水準言語のルーチンの双方で構成され
る。CS10110の別の実施例においては、KOSサブシステム
は完全にマイクロコードもしくは高水準言語ルーチンで
実施することができる。ある高水準言語のルーチンはプ
ロセス610において実行可能であるが、他は特殊なKOSプ
ロセス610によつてのみ実行される。このKOSサブシステ
ムはまた、ユーザがSインタプリタ・サブシステムおよ
び名前インタプリタ・サブシステムに対してアクセスす
る方法において他のものと異なり、これらのサブシステ
ムはSINが実行される時にのみ動作に入り、システムの
ユーザにとつて直接知ることができない。一方、KOSサ
ブシステムの各部は、高水準言語プログラムにおいて明
確に生じ得る。例えば、高水準の言語プログラムにおけ
る呼出しは、KOSをしてプロセス610を仮想プロセツサ61
2と結合することができる。
最初に、下記のリストは前記のサブシステムにより実施
される諸機能を列挙し、従つてサブシステムをモニター
および仮想マイクロ機械・モードおよび特定のマイクロ
機械の諸素子と関連付けるものである。KOSサブシステ
ムは下記の機能を実施する。即ち、 −仮想メモリーの管理 −仮想プロセツサの管理 −プロセツサ間の通信 −アクセスの制御 −目的の管理、および −プロセスの管理 である。
名前インタプリタは下記の諸機能を実施する。即ち、 −SOPの取出しおよび分析、および −名前の翻訳 である。
最後に、SインタプリタはSOPのタスク指名を行ない、
即ち、あるS言語に対するあるSOPと対応する操作を実
行するFU10120およびEU10122のマイクロコードを見出
す。
これらのサブシステムの内、Sインタプリタ、名前イン
タプリタおよびKOSプロセスおよび目的管理サブシステ
ムのマイクロコード要素は仮想マイクロ機械に関して実
行し、残りのKOSサブシステムのマイクロコード要素は
モニターマイクロ機械について実行する。これらのサブ
システムの論議において明らかなように、仮想マイクロ
機械に関する実行を行なうサブシステムはページの誤り
を生じ、また従つてメモリーのどこかに存在するデータ
を照合することができ、モニター・マイクロ機械に関し
て実行するサブシステムはページ誤りを生じ得ず、また
従つてこれらのサブシステムが操作するデータ・ベース
は常にMEM10112における既知の場所に存在する。
各サブシステムとFU10120のマイクロ機械素子間の関係
は下記の如くである。即ち、全てのサブシステムに対す
るマイクロコードはDESP20210、マイクロコード・アド
レス指定装置27013およびレジスタ・アドレス指定装置2
7011を使用し、またEUインターフエース27007を使用可
能である。Sインタプリタ・マイクロコードはSOPデコ
ーダ27003を使用し、名前インタプリタ・マイクロコー
ドは命令ストリーム・リーダ27001、分析装置27005およ
び名前翻訳装置27015を使用する。KOS仮想メモリー管理
マイクロコードはメモリー照合装置27017を使用し、機
密保護マイクロコードは機密保護装置27019を使用す
る。
CS10110の主なサブシステム、MEM10112、FU10120、EU10
122、IOS10116およびDP10118の構造および作用について
詳細に説明したが、CS10110の作用については更に詳細
に以下において説明しよう。最初に、CS10110の名前空
間、Sインタプリタおよびポインタ・システムの作用に
ついて説明する。次いで、CS10110の作用についてはCS1
0110の核心操作システムに関連して更に詳細に説明す
る。
3.名前空間、Sインタプリンタおよびポインタ(第301
図乃至第307図、第274図) 前項はCS10110の概説を行ない、そのハードウエアを詳
細に調べ、如何にしてFU10120のハードウエアが他のCS1
0110の要素の活動状態を制御するマイクロ機械として機
能するかを説明した。本明細書の残る部分においては、
CS10110のある主要な特徴がハードウエア、マイクロ機
械、メモリー中のテーブルおよび高水準言語プログラム
を用いて構成される装置について述べる。本項では、こ
れらの特徴の内3つ、即ちポインタ解明システム、名前
空間およびSインタプリタについて説明する。
ポインタ解明システムは、ポインタ即ち場所の情報を含
むデータ項目をUID/オフセツト・アドレスに翻訳する。
名前空間は3つの主な機能を有する。即ち、 −SINを見出し、これらのSINをFU10120に対するCS10110
のメモリーから取出す。
−SINをSOPおよび名前に分析する。
−名前を論理記述子27116即ち値に翻訳する。
Sインタプリタは名前空間から受取つたS命令をFUSITT
11012およびEUSITT20344に含まれるマイクロコードにお
ける場所に復号し、次いでこのマイクロコードを実行す
る。もしS命令がオペランドを必要とするならば、Sイ
ンタプリタは名前空間を用いてこのオペランドを操作に
より必要とされる如き論理記述子27116即ち値に翻訳す
る。
名前空間はポチンタの解明システムに依存し、またSイ
ンタプリタは名前空間に依存するため、システムの論議
はポインタから始め、次いで名前空間およびSインタプ
リタについて説明する。
A.ポインタおよびポインタの解明(第301図、第302図) ポインタは、アドレス即ちCS10110においては、UID/オ
フセツト・アドレスを表わすあるデータ項目である。CS
10110は大まかに2つの種類のポインタを有する。即
ち、解明されたポインタおよび解明されないポインタを
有する。解明されたポインタは、その値が直ちにUID/オ
フセツト・アドレスとして解釈することができるポイン
タであり、解明されないポインタはその値が高水準の言
語ルーチンまたはマイクロコード・ルーチンによつてUI
D/オフセツト・アドレスに解明されねばならないポイン
タである。解明されないポインタの解釈の操作はその解
明と呼ばれる。解明されないポインタが解明される方法
はシステムのユーザにより書込まれる高水準の言語ルー
チンによつて決定することができるため、解明されない
ポインタはシステムのユーザがその自らのポインタ・タ
イプを規定することができる手段を提供する。
解明されたポインタと解明されないポインタの双方はサ
ブクラスを有する。解明されたポインタのサブクラスと
は、UIDポインタと目的相関ポインタである。UIDポイン
タはUIDおよびオフセツトを含み、このためCS10110のア
ドレスを表わすことができ、目的相関ポインタは唯一の
オフセツトしか持たず、このアドレスのUIDは目的相関
ポインタを含む目的のそれと同じものと仮定される。従
つて、目的相関ポインタはこのポインタを含む目的にお
けるアドレスを表わすことしかできない。
解明されないポインタのサブクラスは通常の非解明ポイ
ンタと連想ポインタがある。この2種類の非解明ポイン
タ間の差異は、これらが解明される方法にある。通常の
非解明ポインタは常に高水準の言語ルーチンによつて解
明されるが、連想ポインタはこれらが高水準言語ルーチ
ンによりあるプロセス610およびある定義域において使
用される最初に解明されるが、その後連想アドレス・テ
ーブル(AAT)と呼ばれるテーブルによつて解明され
る。このテーブルはマイクロコードに対してアクセス可
能であり、従つて連想ポインタは通常の非解明ポインタ
よりも更に迅速に解明可能である。
以下の論議は最初にCS10110の全てのポインタにより使
用されるフオーマツトについて説明し、次いでポインタ
が如何にしてFU10120において処理されるかについて説
明する。
a.ポインタのフオーマツト(第301図) 第301図はCS10110のあるポインタを示している。同図は
2つの部分からなる。即ち、CS10110の全てのポインタ
に現われるフイールドの全体を示す全体的なポインタ・
フオーマツトと、CS10110のポインタの種類が識別され
る情報を含むフラツグおよびフオーマツト・フイールド
30105の詳細図である。
最初にポインタの全体的フオーマツト30101について説
明すると、CS10110の全てのポインタは128ビツトを保有
し、3つの主なフイールドに分割されている。即ち、 −オフセツト・フイールド30103は解明ポインタおよび
連想ポインタにおけるあるUID/オフセツト・アドレスの
オフセツト部分を保有し、他の非解明ポインタにおいて
はユーザによつて規定される如きある目的その他の情報
におけるあるポインタからのオフセツトを含むことがで
きる。
−フラツグおよびフオーマツト・フイールド30105はポ
インタの種類を識別するフラツグおよびフオーマツト・
コードを含む。これらのフラツグおよびフオーマツト・
コードは以下において詳細に説明する。
−UIDフイールド30115はUIDポインタおよびいくつかの
連想するポインタにおける使用を含み、目的相関ポイン
タにおいては、その意味が規定されない他の連想ポイン
タを含み、通常の非解明ポインタにおいてはユーザによ
り規定される如き情報を含んでいる。
フタツグ兼フオーマツト・フイールド30105は4つのサ
ブフイールドを含む。即ち、 −フイールド30107および30111は留保され、0にセツト
されねばならない。
−NRフイールド30109はあるポインタが解明されあるい
は解明されないことを表示する。解明されたポインタに
おいては、このフイールドは0にセツトされ、非解明ポ
インタにおいては1にセツトされる。
−フイールド・コード・フイールド30113は解明されあ
るいは解明されないポインタの種類を表示する。本例に
おけるフイールド・コードについては以下に説明する。
フオーマツト・コード・フイールド30112の値は0から3
1までの範囲にわたる。もしフオーマツト・コード・フ
イールド30113が値0を有するならば、ポインタは無の
ポインタ・即ち直接開接の差を問わずアドレスの表示を
行なうことのないポインタである。他のフオーマツト・
コードの意味はNRフイールド30109の値に依存してい
る。即ち、 上記のテーブルに示す如く、本実施例は2種類の連想ポ
インタ、即ちUID連想ポインタおよび目的相関連想ポイ
ンタを有する。UIDポインタの如く、UID連想ポインタは
UIDおよびオフセツトを含み、目的相関ポインタの如
く、目的相関連想ポインタはオフセツトを含みそれが帰
属する目的からUIDの値を取る。しかし、更に詳細に以
下において説明するように、前記連想ポインタが含みあ
るいは表わすUIDおよびオフセツトはアドレスとしては
使用されない。その代り、UIDおよびオフセツトは、連
想ポインタを解明されたポインタと連関させるAATにお
けるエントリを見出すタツグとして使用される。
b.10120におけるポインタ(第302図) あるポインタをFU10120におけるアドレスとして使用す
る時、ポインタにおけるアドレス情報は、AON、オフセ
ツトおよび0の長さフイールドからなる論理記述子2711
6に翻訳されねばならず、FU10120における論理記述子27
116がメモリーにおけるあるポインタ値の形成のため使
用される時、AONは再びUIDに変換されねばならない。最
初の変換は、ポインタ対記述子変換と呼ばれ、2番目の
変換は記述子対ポインタ変換と呼ばれる。両方の変換は
FU10120において実行中のマイクロコードによつて達成
される。
翻訳に介在するのはポインタの種類に依存し、もしポイ
ンタがUIDポインタであればUIDはAONに翻訳されねばな
らず、もしポインタが目的相関ポインタであれば、ポイ
ンタの取出しに必要なAONはポインタのAONであり、その
ため翻訳は必要でない。もしポインタが解明されないポ
インタであれば、これは最初に解明されたポインタに、
次いで論理記述子27116に翻訳されねばならない。もし
ポインタが連関するならば、解明されたポインタへの翻
訳はAATによつて実施することができる。
本実施例においては、他のFU10120のマイクロコードが
ポインタ対記述子マイクロコードを呼出す時、呼出し側
のマイクロコードは、アーギユメントとしてポインタ対
記述子変換マイクロコードに翻訳されるべきポインタの
位置指定のため論理記述子27116を送る。このポインタ
対記述子マイクロコードは、ポインタ対記述子マイクロ
コードがアーギユメントとして受取つた論理記述子2711
6によつて指定される場所においてポインタの値から形
成された論理記述子27116に戻る。
ポインタ対記述子マイクロコードは最初に、メモリーか
らのポインタのオフセツト・フイールドの値を取出すア
ーギユメントとして与えられた論理記述子27116を使用
する。この時これはOFFALU20242に帰属する出力レジス
タに論理記述子27116のオフセツトを保管し、ポインタ
のオフセツト・フイールド30103の値をこれがアーギユ
メントとして受取る論理記述子27116のオフセツト・フ
イールドに配する。このポインタ対記述子マイクロコー
ドは次に、このポインタ対記述子マイクロコードの呼出
しによつて使用中のGRF10354におけるあるレジスタに論
理記述子27116のAONおよびオフセツト(OFFALU20242か
ら得た)を設定することによつてポインタの場所を支持
する論理記述子27116を保管する。次に、このマイクロ
コードは値40をOFFALU20242にセツトされたオフセツト
に加算し、これによりNRフイールド30109のアドレスを
取得し、このアドレスを用いてNRフイールド30109およ
びフオーマツト・コード・フイールド30113と取出して
こを読出す。これ以上の処理の過程はこれらのフイール
ドの値によつて決定される。もしNRフイールド30109が
解明されたポインタを表示するならば、フオーマツト・
コード・フイールド30113の値によつて決定する如き4
つの場合がある。即ち、 −フオーマツト・コードフイールド=0:ポインタは空白
ポインタである。
−フオーマツト・コード・フイールド=1:ポインタはUI
Dポインタである。
−フオーマツト・コード・フイールド=2:ポインタは目
的間ポインタである。
−フオーマツト・コード・フイールドの他の値:このポ
インタは無効である。
最初の場合には、マイクロコードがアーギユメントの全
てのフイールドを0にセツトし、2番目の場合にはメモ
リーからUIDフイールド30115の値を取出して、UIDをこ
れと関連するAONに翻訳するLARマイクロコード(目的の
説明において説明した)を生じる。次に、AONはアーギ
ユメントのAONフイールドにロードされる。3番目の場
合においては、ポインタの場所に対する論理記述子2711
6のAONおよびポインタのAONは同じであり、そのためア
ーギユメントは既に翻訳されたポインタを保有する。4
番目の場合には、マイクロコードは、無効のポインタ障
害を取扱いアーギユメントとしてのポインタに対する保
管された論理記述子27116を送るポインタ障害取扱い手
順602に対する呼出しを実施する。障害を取扱う手順602
はマイクロコードに対して解明されたポインタを戻さな
ければならず、このマイクロコードはこれを前述の如く
論理記述子27116に変換する。
c.記述子からポインタへの変換 記述子ポインタ変換は、解明されたポインタによるポイ
ンタから記述子への変換の逆である。この操作は、解明
されたポインタがFU10120のレジスタからMEM10112へ移
動される時常に実施されねばならない。この操作は2つ
のアーギユメント、即ちポインタが書込まれるべきアド
レスを規定する論理記述子27116と、そのAONおよびオフ
セツト・フイールドがポインタに含まれる場所を規定す
る論理記述子27116とを要する。2つの場合、即ち目的
間ポインタとUIDポインタとがある。両方の種類のポイ
ンタはオフセツト・フイールド30103における間を有
し、そのため記述子対ポインタ・マイクロコードは最初
に第2のアーギユメントのオフセツトを最初のアーギユ
メントの論理記述子27116により規定される場所に書込
む。次のステツプは、ポインタが目的間ポインタとUID
ポインタのどちらであるかを判定する。このために、マ
イクロコードはアーギユメントのAONを比較する。もし
これらのAONが同じならば、ポインタはこれを含む目的
におけるある場所と指示し、従つて目的間ポインタとな
る。目的間ポインタのUIDフイールド30115が意義を持た
ないため、目的間ポインタに対して残る唯一のステツプ
は、フラツグおよびフオーマツト・フイールド30105を
2進数の2にセツトすることであり、これはビツト46を
除く全てのビツトを0にセツトし、これによりこのポイ
ンタを解明された目的間ポインタとして識別する。
UIDポインタの場合は、記述子ポインタ・マイクロコー
ドはフラツグ兼フオーマツト・フイールド30105を1に
セツトし、これによりこのポインタを解明されたUIDポ
インタとして識別し、第1のAONをUIDに変換して結果の
UIDをその時のフレームに配するKOS LARマイクロルーチ
ン(目的の論議において詳細に説明した)を呼出す。KO
S AONからUIDへの変換マイクロルーチンが戻る時、記述
子ポインタ・マイクロコードはUIDを変換されたポイン
タのUIDフイールド30115に対して書込む。
B.名前空間およびSインタプリタ(第303図〜第307図) 名前空間およびSインタプリンタは共に手順目的608に
含まれた情報の解釈を行なう。その結果、CS10110のこ
れらの要素についての論議は名前空間およびSインタプ
リタに関する手順目的608の部分の概説から始め、次い
で名前空間およびSインタプリタについて詳細に説明す
る。
a.手順目的606の概説(第303図) 第303図は手順目的608の各部を示している。第303図は
第103図に含まれる情報を拡張し、両方の図に現われる
フイールドは第103図の番号を有する。本文において論
議しない手順目的608の各部は、後で呼出しおよび戻し
の論述において取扱う。これらのシステムに対する最も
重要な部分は手順環境記述子(PED)30303である。手順
602のPED30303は、手順602のコードを見出してこれを分
析しその名前を解釈するため名前空間およびSインター
プリタにより必要とされる情報を含んでいる。手順目的
608における手順602の番号はPED30303と共有される。呼
出しの説明において明らかになるように、関与する手順
602とPED30303を共有するという事実は呼出しが実行さ
れる方法に影響を与える。
本論において重要なPED30303のフイールドはヘツダー30
304における3つのフイールド、即ちKフイールド30305
とLNフイールド30307とSIPフイールド30309であり、残
るフイールドの内の3つは即ちNTPフイールド30311と、
SDPPフイールド30313と、PBPフイールド30315である。
−Kフイールド30305は、PED30303と共有する手順602の
SINにおける名前が8、12または16ビツトのいずれであ
るかを表示する。
−LNフイールド30307は、手順602の名前テーブル10350
における最も大きな指標を有する名前を保有する。
−SIPフイールド30309は、手順602のS言語に対するS
インタープリタを含む目的に対するUIDポインタであ
る。
−NTPフイールド30311は、手順602の名前テーブル10350
の始めに対する目的相関ポインタである。
−SDPPフイールド30313は、手順602の1つがあるプロセ
ス610によつて生じる時、PED30303が帰属する手順602に
よつて使用される静的なデータの場所に対して解明され
るポインタである。SDPPフイールド30313に対応する解
明されたポインタはSDPABPである。
−PBPフイールド30315は、PED30303が帰属する手順602
の呼出しのためのPBP ABPを含む。このPBP ABPは手順
目的608内部の場所を計算するため使用される。
手順目的608における他の問題の場所は、リテラル値303
01および静的データのプロトタイプ(SDPR)30317であ
る。リテラル値30301はリテラル値、即ちコンパイルに
おいて既知でありプログラムの実行中変化しない手順60
2における値を有する。SDPR30317は下記のいずれかを含
む。即ち、外部ルーチンおよび他の目的に含まれる静的
データに対するポインタ、手順602に対する静的データ
を形成するため必要な情報、およびある場合には静的デ
ータ自体を含む。SDPR30317におけるポインタは解明あ
るいは非解明のいずれかである。
本実施例においては、バインダ領域30323もまた重要で
ある。バインダ領域30323はこれに含まれる非解明ポイ
ンタの解明を可能にする情報を含む。手順目的608にお
けるSDPPフイールド30313以外の非解明ポインタは全て
バインダ領域30323における場所を含み、指定された場
所はポインタの解明に必要な情報を含む。
第303図は、NTPフイールド30311、SDPPフイールド30313
およびPBPフイールド30315により指示される手順目的60
8目的608における場所を示す矢印を含む。NTPフイール
ド30311はMT10350の始めを指示し、このため名前の名前
テーブルのエントリは名前の値をNTPフイールド30311に
対して加算することによつて見出すことができる。PBP
フイールド30315はリテラル値30301の始めを指示し、そ
の結果リテラル値の場所およびSINの場所はPBPフイール
ド30315の値からのオフセツトとして表わすことができ
る。SDPPフイールド30313はSDPR30317の始めを指示す
る。呼出しの説明において詳細に説明するように、手順
602が静的なデータを有する時、SDP ABPはSDPPフイー
ルド30313から得られる。
b.名前空間 CS10110の名前空間要素はる手順に帰属するSINを見出
し、SINをSOPおよび名前に分析し、名前に関して解明お
よび評価の諸操作を実施する。解明操作は名前を名前に
より表わされるデータに対する論理記述子27116に翻訳
するが、評価操作はデータ自体を得る。この評価操作
は、解明操作を実施し次にその結果の論理記述子27116
を用いてデータを取出すことによつて行なわれる。評価
および解明操作は最も複雑であるため、論議はこれから
始める。
1.名前の解明および評価 名前の解明および評価操作は、名前のNTEに含まれる情
報によつて名前を論理記述子27116に翻訳し、NTEはアー
キテクチヤ基底レジスタに関する場所を規定する。その
結果、以下の論議は最初に名前テーブルのエントリおよ
びアーキテクチヤ基底ポインタについて説明し、次いで
名前空間が名前テーブルのエントリおよびアーキテクチ
ヤ基底ポインタに含まれる情報を論理記述子27116に翻
訳する。
2.名前テーブル(第304図) 前述の如く、MT10350は手順目的608に含まれる。MT1035
0は、名前により表わされるオペランドに対する論理記
述子27116に名前を翻訳するため必要な情報を保有す
る。各名前はその値として名前テーブル・エントリ番号
を有する。名前の名前テーブル・エントリは、短い名前
テーブル・エントリのサイズで名前の値を乗算し、かつ
この積をSINを有する手順602に帰属するPED30303のNTP
フイールド30311における値に加算することによつて見
出される。
名前テーブルのエントリは、名前によつて指定されるデ
ータ項目に対する長さおよび形式の情報を保有し、ベー
スと呼ばれるある既知の場所からの変位としてデータ項
目の場所を表わす。このベースはABPにより規定された
場所、または別の名前により規定された場所、またはポ
インタにより規定された場所である。後者の場合には、
ポインタの場所はABPまたは名前に関して規定すること
ができる。
第304図は、名前テーブル・エントリ(NTE)30401を詳
細に示している。2種類のNTE30401、即ち短いNTE30403
と長いNTE30405が存在する。NTE30403は64ビツトを含
み、長いNTE30405は128ビツトを含む。その変位が16ビ
ツトで表わすことができるスケーラ・データ項目を表わ
す名前はNTE30403を有し、その変位が16ビツト以上を要
求するスケータ・データ項目を表わす名前およびアレー
素子を表わす名前は長いNTE30405を有する。
NTE30403、各々が16ビツトの長さである4つの主フイー
ルドを有する。即ち、 −フラツグ兼フオーマツト・フイールド30407は、名前
空間が如何にしてNTE30401を解釈するかを規定するフラ
ツグおよびフオーマツト情報を保有する。
−ベース・フイールド30425は、名前により表わされる
データの場所を得るため変位が加算されるべきベースを
示す。ベース・フイールド30425は4つの方法で、即ちA
BPにより、名前により、ABPにより見出されるポインタ
により、また名前により見出されるポインタによつて場
所を表わすことができる。
−長さフイールド30435はデータの長さを表わす。この
長さはリテラル値または名前である。もしこれが名前で
あれば、この名前はデータ項目の長さを含む場所に解を
有する。
−変位フイールド30437は、ベース・フイールド30425に
おいて規定されたベースからのデータの始めの変位を含
む。この変位は符号を付した整数値である。
長いNTE30405は、各々が16ビツトのの長さである4つの
別のフイールドを有し、このフイールドの2つ、即ち指
標名前フイールド30441とIESフイールド30445はアレー
を表わす名前に対するNTE30401においてのみ使用され
る。
−変位拡張フイールド30439は全ての長いNTE30405にお
いて使用される。もしフイールド30437における変位値
が16ビツトより小さければ、変位拡張フイールド30439
は符号ビツトを含み、即ちフイールドにおけるビツト
は、変位が正である時0にセツトされ、また変位が負で
ある時は1にセツトされる。この変位値が16ビツト以上
である時、変位拡張フイールド30439は符号ビツトと共
に変位値の最上位ビツトを含んでいる。
−指標名前フイールド30441は、アレーの要素を表示す
るため使用される値を表わす名前を含む。−フイールド
30443は保留される。
−IESフイールド30445はアレーにおける要素のサイズを
規定する名前またはリテラル値を含む。このフイールド
により表わされる値は、指標名前フイールド30441によ
つて表わされる値と共に使用されてアレーの要素を見出
す。
以上のことから判るように、下記の各フイールドは名
前、即ちベース・フイールド30425、長さフイールド304
35、指標名前フイールド30441およびIESフイールド3044
5を含んでいる。
NTE30401における2つのフイールドは更に構成即ちフラ
ツグ兼フオーマツト・フイールド30407およびベース・
フイールド30425を必要とする。フラツグ兼フオーマツ
ト・フイールド30407は3つのサブフイールド、即ちフ
ラツグ・フイールド30408と、FMフイールド30421と、タ
イプ・フイールド30423を有する。最初に、フラツグ・
フイールド30408について述べれば、このフイールドに
おける6つのフラツグは、如何にして名前空間がNTE304
01を解釈するかを示す。このフラツグはセツトされる時
下記の意味を有する。即ち、 −長さNTEフラツグ30409:NTE30401は長いNTE30405であ
る。
−長さは名前フラツグ30411である:長さフイールド304
35は名前を保有する。
−ベースは名前フラツグ30413である。ベース・フイー
ルド30425は、ABPの番号の代りに名前を含んでいる。
−ベース間接フラツグ30415:ベース・フイールド20425
はポインタを表わし、NTE30401により表わされる場所は
ポインタの値を得てこの値を変位フイールド30437およ
び変位拡張フイールド30439に含まれる値をポインタの
オフセツトに加算することによつて計算される。
−アレー・フラツグ30417:NTE30401は1つのアレーを表
わす。
−IESは名前フラツグ30419であり:IESフイールド30445
はIESの値を表わす名前を含んでいる。
これらのフラツグのいくつかはあるNTE30401にセツトす
ることができる。例えば、ポインタを介して更にある名
前によつて表わされ、そのIES値がある名前により表わ
されるアレーに対して照合されたあるアレーの要素に対
するエントリは、フラツグ30409、30413、30415、30417
および30419をセツトさせる。
FMフイールド30421は如何にして名前によつて表わされ
るデータがメモリーから取出される時フオーマツト化さ
れるかを示す。FMフイールド30421の値はNTE30401から
形成される論理記述子27116のFIUフイールドに配され
る。この2つのビツトは次の4つの可能性をもたらす。
即ち、セツテイング 意義 00 右寄せ、零充填 01 右寄せ、符号充填 10 左寄せ、零充填 11 左寄せ、ASCII空間充填 タイプ・フイールド30423における4つのビツトは言語
固有のタイプ情報に対するコンパイラによつて使用され
る。タイプ・フイールド30423は、NTE30401から形成さ
れた論理記述子27116のタイプ・フイールド27109に配さ
れる。
ベース・フイールド30425は、ABPフオーマツト30427に
おけるベースまたは名前フオーマツト30432におけるベ
ースのいずれかを有する。ベース・フイールド30425が
解釈される方法は名前フラツグ30413およびベース間接
フラツグ30415におけるベースのセツテイングに依存す
る。下記の4つの可能性が存在する。即ち、 上記のテーブルにより示されるように、ベース・フイー
ルド30425は、ベースがセツトされない名前フラツグ304
11である時ABPフオーマツト30427であるベースを有する
如く表わされる。もしベースがABPフオーマツト30427で
あるならば、ベース・フイールド30425は2つのサブフ
イールド、即ちABPフイールド30429およびポインタ位置
指定フイールド30431を有する。後者のフイールドは、
ベース間接フラツグ30415がセツトされる時のみ意義を
有する。ABPフイールド30429は、ABPを表示する2ビツ
ト・コードである。そのセツテイングおよび意義は下記
の如くである。即ち、セツテイング ABP 00 FP 01 未使用 10 SDP 11 PBP ABPについては以下に論述する。ベース間接フラツグ304
15が1にセツトされベースが名前である時、名前フラツ
グ30413は0にセツトされ、ABPフオーマツトにおけるこ
のベース・フイールドの残る14ビツトは名前フラツグ30
413として表わされる。このように解釈される時、名前
フラツグ30413は符号を有する整数を保有し、これは128
により乗算される時、ABPフイールド30429において規定
されるABPからのポインタの変位を生じる。このポイン
タの値は次に前記の変位が加算されるベートとなる。
ベースが1にセツトされた名前フラツグ30413である
時、ベース・フイールド30425は名前フオーマツト30432
であるベースを有する如く表わされる。ベースに名前フ
オーマツト30432があり、ベース・フイールド30425は1
つの名前を有する。もしベース間接フラツグ30415がセ
ツトされなければ、名前はこのベースを有するように解
を与えられる。もしベース間接フラツグ30415がセツト
されるならば、名前はあるポインタ値を有するものと評
価され、このポインタ値はベースとなる。
3.アーキテクチヤ基底ポインタ(第305図、第306図) もしベースが名前ならば、NTE30401に帰属する名前フラ
ツグ30413はセツトされず、ベース・フイールド30425は
CS10110の3つのABPの内の1つを規定する。即ち、 −PBPは、リテラル値およびSINの場所を得るため変位が
加算され得る手順目的608におけるある場所を規定す
る。
−SDPは、他の手順目的608および静的データに含まれた
手順602に対する静的データおよび連係ポインタの場所
を得るため変位の加算が可能な手順602の呼出しのため
ある静的データ・ブロツクにおけるある場所を規定す
る。
−FPは、アーギユメントに対する局所データおよび連係
ポインタの場所を得るため変位が加算できる手順602の
その時の呼出しに帰属するMASフレームにおけるある場
所を規定する。
プロセス610が手順602を呼出す毎に、呼出しマイクロコ
ードはSS10336におけるABPのその時の値を保管し、新た
な呼出しに対するABPの値を計算し、その結果の論理記
述子27116をFU10120のレジスタに配し、ここでこれらの
記述子は名前空間マイクロコードに対してアクセス可能
となる。
呼出しマイクロコードは下記の如くABPを計算する。即
ち、PBPは実行中のT手順602に帰属するPED30303におけ
るPBPフイールド30315から直接得られる。これを論理記
述子27116に構成するため必要な全てのことは、手順目
的608のUIDのためのAONの加算である。SDPはSDPPフイー
ルド30313に関するポインタ対記述子の翻訳を実施する
ことによつて得られる。最後に、FPは呼出しのための新
たなMAS502を形成する余しマイクロコードの部分によつ
て与えられる。呼出しの論議において詳細に選択するよ
うに、この呼出しマイクロコードは連係ポインタをMAS5
02に対する呼出しの実際のアーギユメントにコピーし、
FPを最後の実際のアーギユメントに続く場所に対するポ
インタにセツトし、次いで呼出しの局所データに対する
記憶域を割当てる。このようにFPからの確実な変位は局
所データにおける場所を指定するが、負のオフセツトは
連係ポインタを指定する。
a。a。名前の解明および評価(第305図) 名前空間により実施される主な操作は名前の解明および
名前の評価である。名前空間が名前のNTE30401に含まれ
るABPおよび情報を使用してこの名前に対する論理記述
子27116を形成する時名前が解明され、名前空間が名前
を解明し、名前に対して得られる論理記述子27116をメ
モリーに対して与えかつメモリーから名前により表わさ
れたデータの数値を得た時名前が評価される。
この解明操作は如何なる順序でも実施可能な3つの部分
を有する。即ち、 −名前のNTE30401のベース・フイールド30425からベー
スを得、 −変位を行ない、 −長さフイールド30435から長さを得る。
長さを得ることは操作の最も簡単な部分であり、もし名
前フラツグ30411における長さがセツトされるならば、
この長さは長さフイールド30435に含まれる名前の評価
によつて得られる数値であり、さもなくば、長さフイー
ルド30435はリテラル値を含み、また長さはこのリテラ
ル値である。
ベースが計算可能な4つの方法がある。そのどれを使用
するかは名前フラツグ30413およびベース間接フラツグ3
0415におけるベースのセツテイングに依存する。即ち、 −両方のフラツグが0:ABPフイールドにおいて規定され
たABPがベースである。
−ベースは名前フラツグ30413が0およびベース間接フ
ラツグ30415が1であり、このベースはABPフイールド30
429およびポインタ位置指定フイールド30431によつて指
定されるポインタに含まれた場所である。
−ベースは名前フラツグ30413が1およびベース間接フ
ラツグ30415が0であり、このベースはベース・フイー
ルド30425における名前を解明することによつて得られ
る場所である。
−両方のフラツグ1:ベースはベース・フイールド30425
における名前の評価によつて得られる場所である。
名前空間が変位を計算する方法は、NTE30401がスケーラ
・データ項目またはアレーデータ項目のいずれを表わす
かに依存する。第1の場合、名前空間はベースに対して
得られた場所に対して変位フイールド30437および変位
拡張フイールド30439に含まれる数値を加算し、第2の
場合には、名前空間は指標名前フイールド30441およびI
ESフイールド30445を評価してその結果の数値を一緒に
乗算し、その積を変位フイールド30437における数値に
加算して前記変位を得る。
もしNTE30401のどれかのフイールドがある名前を含むな
らば、名前空間は、必要に応じてこれに対して解明また
は評価の操作を実施することによつて、名前により表わ
される値または場所を得る。NTE30401の説明において述
べたように、フラツグ・フイールド30408におけるフラ
ツグがNTE30401のどのフイールドが名前を含むかを表示
する。別のNTE30401において使用された名前に対するNT
E30401がそれ自体名前を含むため、名前空間は反復的に
解明および評価操作を実施する。
b.b。CS10110における名前評価および名前解明操作の構
成 本実施例においては、名前の評価および解明操作はFU10
120のマイクロコードの評価および解明指令によつて実
施される。双方の指令は2つの情報を要求する。即ち、
操作により形成される論理記述子27116を受取るためのG
RF10354のSR10362のその時のフレームにおけるレジスタ
と、解明または評価されるべき名前のソースである。解
明および評価の双方は3つのソース間を選択することが
できる。即ち、パーサ20264と、NT20254と、OFFALU2024
2の出力レジスタの下位の16ビツトである。解明は論理
記述子27116に対するその時のフレーム・レジスタ0、
1または2を指定し、評価はその時のフレーム・レジス
タ0または1を指定する。前記の解明操作の終りに、名
前により表わされるデータに対する論理記述子27116は
指定されるSR10362に存在し、評価操作の終りにおいて
論理記述子27116がSR10362に存在し、データの値はJP10
114を介してEU10122のOP20322に対して転送される。
解明および評価の双方の指令の実行は、常に名前のNC10
226に対する提示で開始する。NC10226に対して提示され
た名前はNT20254に対してラツチされ、ここでこれは名
前解明マイクロコードにより後で使用されるため使用可
能である。
もしNC10226における名前に対するエントリが存在する
ならば、名前カツシエのヒツトが生じる。3つの条件を
満たすNTE30401を含む名前の場合は、名前に対するNC10
226のエントリは名前により表わされるデータ項目に対
する論理記述子27116である。これらの条件は下記の如
くである。即ち、 −NTE30401は名前を含まない。
−NTE30401の長さフイールドは256ビツト以下の長さを
規定する。
−もしベースがセツトされたベース間接フラツグ30415
であるならば、ポインタ位置指定フイールド30431はこ
のベースが連係ポインタであることを示す負の値を持た
ねばならない。
名前により表わされるデータの場所も長さもこの名前が
帰属する手順602の呼出しの持続期間中変更できないた
め、この場合論理記述子27116が捕捉することができ
る。もし名前に対するNC10226のエントリが論理記述子2
7116であれば、ヒツトはNC10226をして論理記述子27116
を指定されたSR10362のレジスタに配させる。他の全て
の場所においては、名前に対するNC10226のエントリは
論理記述子27116を含まず、またヒツトはNC10226にJAM
信号を発射させる。このJAM信号は、名前により表わさ
れるデータ項目に対する論理記述子27116を構成するた
め、NC10226に記憶された情報を使用するマイクロコー
ドを生じる。JAMについては以下において詳細に説明す
る。
もしNC10226における名前に対するエントリは存在しな
ければ、名前カツシエのミスが生じ、NC10226はカツシ
エ・ミスJAM信号を送出する。このカツシエ・ミスのJAM
信号により生じる名前解明マイクロルーチンは、必要な
計算の実施のためFU10120のDESP20210を用いて、NTE304
01からのNC10226におけるエントリを構成する。これが
完了する時、カツシエ・ミスのマイクロコードは指定さ
れたSR10362のレジスタにおける名前を求めて論理記述
子27116から出て戻る。
論理記述子27116が指定されたGRF10354のレジスタに置
かれた時解明操作は終了し、評価操作はメモリー照合装
置27017に対して論理記述子27116を提供することによつ
て継続し、この装置はメモリーから論理記述子27116に
より表わされるデータを読出してこれをOPB20322に置
く。メモリー照合は、機密保護障害およびページ誤りと
同様にPC10234のミスおよびAT10228のミスを惹起する結
果となるおそれがあるが、これらは事象信号によつて処
理され、従つて評価操作からは認識できない。
NC10226は15の異なるJAM信号を生じる。JAMにより生じ
た信号は下記の事柄に依存する。即ち、操作が解明およ
び評価のいずれであるか、どのレジスタに論理記述子27
116が配されるか、ミスが生じたかどうか、ヒツトの場
合には名前に対するNC10226のエントリにおいてどのレ
ジスタが最後にロードされたかに依存する。JAMにより
惹起されたマイクロコードの挙動の観点から、最後の2
つの要因が最も重要である。それらのマイクロコードに
対する関係については以下に詳細に説明する。
本実施例においては、NC10226における全てのエントリ
は、1つの手順602が別の手順602を呼出す時無効とな
る。呼出しが常にFPの値を変更しまたSDPおよびPBPの値
を変更するおそれがあり、これによりABPからの変位を
用いてNTE30401の意義を変化させるため、前述の無効化
が必要となる。名前が評価あるいは解明されてカツシエ
・ミスが生じる時、呼出された手順602における名前に
対するエントリが形成されNC10226に対してロードされ
る。
以下の論議は最初に、NC10226がマイクロプログラムに
対して現われるためこのNC10226について説明し、次い
で詳細に如何にしてNC10226が名前の解明および評価の
ため使用され、如何にしてこのNC10226がロードされ、
また如何にしてこれがフラツシユされるかを詳細に説明
する。
c。c。NC10226のエントリ(第306図) NC10226の構造および物理的挙動についてはFU10120のハ
ードウエアの論議において説明したが、本項において
は、NC10226のエントリがマイクロプログラマに対して
現われるため、その論理的構造について説明する。マイ
クロプログラマにとつては、NC10226が、名前バス20224
における名前を提供する時、常にマイクロプログラマに
4つのレジスタからなる名前に対するNC10226のエント
リを与える素子として見える。マイクロプログラマはこ
の4つのレジスタの内のどれかから読出しあるいはこれ
に対して書込みを行なう時、この4つのレジスタと関連
する名前に関してヒツトが生じる場合、NC10226によつ
て行なわれる動作はこのレジスタのどれが最も後でロー
ドされたかに依存する。NC10226が名前を4つのレジス
タと関連させる手段、およびNC10226が充填状態である
時これがレジスタに与える手段はマイクロプログラマに
とつては認識できない。
第306図は1つの名前に対する名前カツシエ・エントリ3
0601を示している。名前カツシエ・エントリ30601にお
ける4つのレジスタ30602は0から3までの番号が付さ
れ、各レジスタ30602は、GRF10354のレジスタのAONフイ
ールドにおけるいくつかのフラツグ・ビツトがレジスタ
30602には含まれないこと、またレジスタ30602における
長さフイールドが8ビツトの長さであることを除いて、
GRF10354のレジスタの場合と同様にAON、オフセツトお
よび長さフイールドを有する。GRF10354のレジスタの場
合におけるように、マイクロプログラマはレジスタ3060
2の個々のフイールドまたはレジスタ30602全体の読出し
または書込みが可能である。名前カツシエ・エントリ30
601はDB27021を介してDES20210に対して接続され、その
結果GRF10354のレジスタの内容はレジスタ30602に関し
て転入出でき、あるいはその逆も可能である。レジスタ
30602の内容がGRF10354のレジスタに対して転送された
時、この内容はOFFALU20242およびDESP20210における他
の演算論理装置を用いて処理することができる。
d.d。NC10226のヒツト 名前がNC10226に対して与えられNC10226が名前について
の情報を含む名前カツシエ・エントリ30601を有する
時、名前カツシエのヒツトが生じる。ヒツトと同時に、
NC10226のハードウエアは常に名前カツシエ・エントリ3
0601のレジスタ30602の内容を解明または評価マイクロ
指令に指定されたGRF10354のレジスタにロードする。更
に、ヒツトはJAMを介してマイクロコードの呼出しを惹
起することができる。即ち、 −JAMは、そのNTE30401が指標計算のあるハードウエア
加速を可能にするアレー素子の名前の解明のための特殊
なマイクロコードを生じ得る。
−JAMは、名前カツシエ・エントリ30601の内容から論理
記述子27116を生じる汎用名前解明マイクロコードを生
じることができる。
ヒツトがJAMを生じるかどうか、またこれが生じるJAMの
種類は、名前カツシエ・エントリ30601が名前カツシエ
のミス・マイクロコードにより生成された時、最後のレ
ジスタ30602によつてロードされるよう決定される。も
しレジスタ30602の0が最後にロードされるものである
ならば、JAMは生じず、もしレジスタ30602の1が最後に
ロードされたならば、特殊なアレーの名前解明に対する
JAMが生じ、もしレジスタ30602の2または3が最後にロ
ードされたならば、一般的な名前解明に対するJAMが生
じる。
前述のことから推論できるように、NC10226のハードウ
エアは、名前カツシエ・エントリ30601が最初の2つの
場合に対してロードされる方法を規定する。最初の場合
においては、レジスタ30602の0は名前のデータに対す
る論理記述子27116を保有せねばならない。既に述べた
ように、名前のNTE30401は従つてその場所および長さが
呼出しの間は変化せずまたその長さが256ビツト以下で
あるデータについて記述せねばならない。NC10226のハ
ードウエアはまた、捕捉可能なアレーに対する名前カツ
シエ・エントリ30601の形態を決定する。捕捉可能なア
レーのNTE30401は、以下の条件を満たすアレーのNTE304
01である。即ち、 −アレーのNTE30401に含まれる唯一の名前は指標名前フ
イールド30441に存在する。
−指標名前に対するNTE30401は、それについて論理記述
子27116が捕捉可能であるNTE30401に対する諸条件を満
たす。
−IESフイールド30445における値は128ビツト以上では
なく2の累乗である。
−さもなければ、NTE30401は、それについて論理記述子
27116が捕捉可能であるNTE30401に対する諸条件を満た
す。
本実施例においては、捕捉可能なアレーのエントリは、
下記の名前に対する名前カツシエ・エントリ30601のレ
ジスタ0、1および2を使用する。即ち、レジスタ 内容 AON オフセット 長さ 0 指標名前に対する論理記述子27116 1 0 2のIES累乗 未使用 2 アレーに対する論理記述子27116 この形式のエントリに対するヒツトが生じる時、その結
果のJAM信号は2つの事柄をなす。即ち、これは捕捉可
能なアレー解明マイクロコードを生じ、またこれは指標
名前によりOFFALU20242におけるアキユムレータ装置に
対して提示されるデータの値を戻す読出し操作のためメ
モリー照合装置27017に対して論理記述子27116を提供さ
せる。次に捕捉可能なアレー解明マイクロコードは、NT
20254に対してラツチされたJAMを名前に対する名前カツ
シエ・エントリ30601のレジスタ30602の2を見出させた
名前を使用し、レジスタ30602の内容を解明または評価
マイクロ指定により指定されたGRFレジスタに書込み、
レジスタ30602におけるIES指数により指定された回数を
残した指数値を変更することによつてIES値および指数
値の積を得、その結果をアレーの論理記述子27116を含
むGRF10354のレジスタのオフセツト・フイールドに加算
し、これにより所用のアレー素子に対する論理記述子27
116を得て戻る。
他の場合には、名前カツシエ・エントリ30601がロード
されて論理記述子27116を得るため処理される方法はマ
イクロプログラマによつて決定される。もし名前カツシ
エ・エントリ30601が論理記述子27116でもまた捕捉可能
なアレー・エントリでもなければ生じるJAM信号は1つ
のマイクロルーチンを生じる。このマイクロルーチンは
NT20254に対してラツチされた名前を使用して名前の名
前カツシエ・エントリ30601を見出し、次いで名前カツ
シエ・エントリ30601におけるタツグ値を読出して、名
前カツシエ・エントリ30601における情報が如何にして
論理記述子27116に翻訳されるかを判定する。他の場合
に対する名前カツシエ・エントリ30601の内容は2つの
一般的な形態を有する。即ち、1つはベースを有するNT
E30401に対するものがセツトされたベース間接フラツグ
30415である場合、また他はセツトされない場合のNTEに
対するものである。最初の一般的な形態は次のように見
える。即ち、 レジスタ30602の0はABPのAONを含む。レジスタ30602の
0のオフセツト・フイールドは2つの項目、即ち他の情
報と共にNTE30401のフラツグ・フイールド30408を含
み、かつ如何にして名前解明マイクロコードが名前カツ
シエ・エントリ30601の内容を翻訳するかを判定するタ
ツグと、データ項目の長さに対する値即ち名前である。
レジスタ30602の1は、名前がアレーにおけるデータ項
目を表わしさえすれば使用される。従つて、これは指標
名前フイールド30441からの名前とIESフイールド30445
からの名前即ち値を含んでいる。レジスタ30602の3の
オフセツト・フイールドは、NTE30401により示されるオ
フセツトとNTE30401によつて示される変位の和を含んで
いる。
そのベースがポインタから、あるいは名前の解明から得
られるNTE30401に対して使用される第2のフオーマツト
は次のように見える。即ち、 この形態においては、ベースの場所はポインタの評価ま
たは名前の解明のいずれかによつて得られねばならな
い。従つて、ベースのAONを規定するフイールドは存在
しない。さもなければ、レジスタ30602の0および1は
前のフオーマツトにおけると同じ内容を有する。レジス
タ30602の2においては、オフセツト・フイールドはNTE
30401のFMフイールド30421と、タイプ・フイールド3042
3とベース・フイルド30425を含む。レジスタ30602の2
のオフセツト・フイールドは、NTE30401の変位フイール
ド30437と変位拡張フイールド30439の値を含んでいる。
NTE30401におけるように、指標は名前によつて表わさ
れ、また長さ、IESおよびベースは名前により表わすこ
とができる。もし名前カツシエ・エントリ30601のある
フイールドが1つの名前を含むならば、タツグにおける
あるフラツグはこの事実を表わし、また名前解明マイク
ロコードは必要に応じて名前により表わされる値または
場所を得るためこれについての評価または解明操作を実
施する。
今述べた許りのタイプの名前のカツシエ・エントリ3060
1を解明するマイクロコードはNTE30401の論議において
述べた一般的なアルゴリズムを用いるため、本文におい
てはこれ以上論述しない。
e.e.名前カツシエ10226のミス 名前が名前カツシエ10226に対して与えられかつこの名
前に対しては名前カツシエ・エントリ30601が存在しな
い時、名前カツシエ・ミスが生じる。ミスの発生と同時
に、名前カツシエ10226のハードウエアは名前カツシエ
・ミスのマイクロコードを生じるJAM信号を送出する。
このマイクロコードは、NT20254からのミスの原因とな
つた名前を得、この名前を実行中の手順602に対するPED
30303からのNTPフイールド30311の値に加算することに
よつてこの名前のNTE30401を見出す。以下において詳細
に述べるように、手順602が呼出されるとこの呼出しマ
イクロコードはGR10360においてあるレジスタのNTPの場
所を規定するAONおよびオフセツトを置く。名前のNTE30
401に含まれる情報を用いて、カツシエ・ミス・マイク
ロコードは名前を解明し、これに対する名前カツシエ・
エントリ30601を構成する。前述の如く、このマイクロ
コードは、NTE30401におけるフラツグ・フイールド3040
8の読出しによつて名前および名前の名前カツシエ・エ
ントリ30601の形態を解明する方法を判定する。解明操
作、マイクロ機械、名前カツシエ10226および名前カツ
シエ・エントリ30601のフオーマツトの説明は、当業者
にとつてはカツシエ・ミス・マイクロコードにより実施
される諸操作を理解するには充分であるため、マイクロ
コードのこれ以上の説明は行なわない。
f.f.名前カツシエ10226のフラツシング 名前カツシエ10226のハードウエアの論議において説明
したように、名前カツシエ・エントリ30601の無効化を
可能にするハードウエア装置即ちVALS24068が存在す
る。名前カツシエ・エントリ30601は単独で無効化で
き、あるいは名前カツシエ10226における全てのエント
リを単独のマイクロ指令によつて無効化することもでき
る。後者の操作は、名前カツシエ・フラツシングと呼ば
れる。本実施例においては、その仮想プロセツサ612がJ
P10114に固定されるプロセス610が呼出しまたは戻しを
実行する時、また仮想プロセツサ612NOがJP10114と固定
されない時は常に、名前カツシエ10226はフラツシユさ
れねばならない。フラツシングは呼出しおよび戻しに関
して要求されるが、これは呼出しおよび戻しが名前の解
明のため必要なABPその他のポインタの値を変更するた
めである。最小限度に見ても、1つの呼出しは新たなMA
Sフレーム10412を生じ、戻しは前のMASフレーム10412に
戻り、これによりFPの値を変更する。もし呼出された手
順602が呼出し中の手順602のそれとは異なるPED30303を
有するならば呼出しまたは戻しもまたPBP、SDPおよびNT
Pを変更し得る。フラツシングは仮想プロセツサ612がJP
10114と固定されない時必要となるが、これは次にJP101
14と固定される仮想プロセツサ612が異なるプロセス610
と固定されるためであり、従つて前の仮想プロセツサ61
2と固定されたプロセス610に帰属するどんな情報も使用
できない。
g.g.命令ストリームの取出し FU10120のハードウエアの論議において説明したよう
に、SINはPREF20260によつてメモリーから取出される。
PREF20260は、その時実行中である手順602に帰属するコ
ード10344におけるある場所に対する論理記述子27116を
含む。如何なるMOサイクルにおいても、PREF20260は論
理記述子27116をDB27021に置くことができ、メモリー照
合装置27017をして論理記述子27116により指定された場
所における32ビツトを取出させ、またこれらビツトをIN
STB20262に書込むことができる。INSTB20262が一杯の状
態である時、以下に述べる名前空間分析操作がINSTB202
62の内容の一部を処理することにより別のSINに対する
空間を形成するまでは、PREF20260はSINの取出しを停止
する。
この取出し操作は自動的であり、あるSINが分岐を生じ
る、即ち次の実行すべきSINをその時のSINの直後のもの
以外のSINにさせる時にのみ、名前空間からの介入を要
求する。分岐と同時に、名前空間はPREF20260に実行す
べき次のSINの場所をロードして、PREF20260にこの場所
におけるSINの取出しを開始させねばならない。これを
行なう操作は、分岐のためのロード先取りマイクロ命令
により規定される。このマイクロ指令は、論理記述子27
116に対するソースを規定し、この論理記述子27116をDB
27021を介してPREF20260に対し転送する。PREF20260が
このようにロードされた後、これは指定された場所にお
いてSINの取出しを開始する。依然としてINSTB20262に
存在するどのSINも分岐操作によつて無意義であると見
做されたため、INSTB20262にロードされる最初のSINは
単にINSTB20262の前の内容に重ね書きされる。第274図
は、分岐のためのロード先取りマイクロ指令の使用の事
例を含む。
h.h.命令ストリームの分析 MEM10112から取出されてINSTB20262に記憶された如き命
令ストリームは一連のSOPおよび名前である。既に述べ
たように、この命令ストリームは固定されたフオーマツ
トを有する。即ち、本実施例においては、SOPは常に8
ビツトの長さであり、次には8、12または16ビツトの長
さである。ある転送において使用される名前の長さは固
定され、手順602のPED30303におけるKフイールド30305
における値により示される。名前空間分析操作は、命令
ストリームからSOPおよび名前を得てこれらを名前バス2
0224に置く。SOPはSOPデコーダ27003における各素子に
対してこのバスを介して転送されるが、名前は前述の如
く解明および評価操作のためNT20254および名前カツシ
エ10226に対して転送される。分析操作がSOPおよび名前
を得る時、この操作はまた3つのプログラム・カウンタ
即ちCPC20270、EPC20274およびIPC20272を更新する。こ
れら3つのカウンタにおける値は、実行中の手順620に
帰属するコード10344における場所を指示するPBPからの
オフセツトである。CPC20270はその時分析中の命令スト
リーム・シラブルを指示し、このためこれは各分析操作
毎に更新される。
EPC20274はJP10114により実行される最後のSINの始めを
指示し、IPC20272はその時のSINの始めを指示し、その
結果これらのプロセツサ・カウンタはあるSINの実行の
開始時、即ちSOPが分析される時にのみ変更される。
FU10120のハードウエアの論議において述べたように、
その時の構成においては、分析操作は、このハードウエ
アに対してのみアクセス可能なINSTB20262に対するポイ
ンタによつて識別されるINSTB20262における場所からの
データの8または16ビツトの物理的な読出しからなる。
データが読出される時、ハードウエアは読出されたビツ
ト数だけポインタを増進させ、もし終りに達するなら
ば、INSTB20262の始めを循環してこれを戻す。このハー
ドウエアがポインタを増進すると同時に、同じビツト数
だけCPC20270を増分する。前述の如く、CPC20270はその
時分析中のSOPまたは名前のPBPからのオフセツトを含
み、このためINSTB20262の読出しを手順602のコード103
44の読出しと関連させる。
読出されるビツトの数は、INSTB20262がSOPまたは名前
を読出し中であるかどうかに依存し、後者の場合には、
名前に対して規定されたシラブル・サイズによる。この
シラブル・サイズはCSSR24112に保有される。呼出し側
の手順のそれとは異なるPED30303を有する手順602に対
する呼出しと同時に、この呼出しマイクロコードはKフ
イールド30305に含まれる値をCSSR24112にロードする。
名前空間の分析操作は、SOPおよび名前の分析のための
個々のマイクロ指令によつて実施される。S操作の分析
のための単一のマイクロ指令、即ち分析op段が存在す
る。このマイクロ指令はINSTB20262からの次の8つのビ
ツトを得、このビツトを名前バス20224に置き、これら
をRDIAL24212に対してラツチする。これはまた、必要に
応じて1つのSINの開始時にEPC20274およびIPC20272を
更新し、即ち、EPC20274はIPC20272の前の値にセツトさ
れ、IPC20272はCPC20270の値にセツトされる。この操作
の終りに、CPC20270は8だけ増進される。SOPの分析は
常に1つのSINの解釈における最初の操作として生じる
ため、分析op段指令は一般にタスク取出し指令と組合さ
れている。以下において説明するように、後者の指令は
S操作をFUDISF24218におけるアドレスとして解釈し、E
UDISF24218は更にFUSITT11012におけるアドレスを生じ
る。後者のアドレスはSINに対するSINマイクロコードの
開始場所である。
名前の分析のため2つのマイクロ指令がある。即ち、分
析kロードepcおよび分析kタスク指名eboxである。両
者の指令は、INSTB20262からのビツト数を得てこれをFU
CTL20214に置く。両方のマイクロ指令により、CSSR2411
2に記憶されたシラブル・サイズKがINSTB20262から得
たビツト数を決定する。両指令はまたCSSR24112に記憶
された値によつてCPCを増分する。更に、分析kロードe
pcはEPCをIPCの値にセツトし、分析kタスク指名eboxも
またEU10122をタスク指名を行なう、即ち更にEUSITT203
44において1つのアドレスを保有するEUDISF24222にお
けるアドレスとしてLOPCODE24210に保管されたSOPの解
釈を行なう。EUSITT20344のアドレスはEUDISバス20206
を介してEU10122におけるCOMQ20342に送られる。
c.Sインタプリタ(第307図) CS10110はSOPに対する固定された意味を与えない。全て
のSOPは8ビツトの長さであり、ある8ビツトのSOPは1
つのS言語において1つの意味を有するが別のS言語に
おいては完全に異なる意味を有する。あるS言語のS操
作の意義はこのS言語に対するSインタプリタによつて
完全に決定される。このように、あるS操作を正確に解
釈するために、CS10110は使用するSインタプリタが何
かを知らねばならない。Sインタプリタは、その時CS10
11が実行中である手順602に対するPED30303のSIPフイー
ルドにおけるオフセツトOであるUIDポインタによつ識
別される。本実施例においては、このUIDはFU10120のマ
イクロコードを含むマイクロコード目的のUIDである。F
USITT11012にロードされる時、このマイクロコードはSO
PをこのSOPが帰属するS言語により規定されるものと解
釈する。他の実施例においてはUIDは、S言語のSOPを解
釈する手順602を含む手順目的608のUIDであり、更に別
の実施例においては、このSインタプリタはPROMに含ま
れ、SインタプリタのUIDはある目的を指定することが
できるが専らSインタプリタの識別のため役立つ。
手順602がJP10114においてあるSINを実行する時、CS101
10は手順602に対するSIPフイールド30309の値およびS
インタプリタのSOPをマイクロコードにおけるある場所
あるいはSインタプリタを構成する高水準言語コードに
翻訳しなければならない。この翻訳により得られる場所
は前記マイクロコードまたはSINを構成する高水準言語
コードの始めである。SIPフイールド30309と共にSOPの
Sインタプリタにおけるある場所への翻訳はタスク指名
と呼ばれる。本実施例におけるタスク指名は2つの主な
構成要素を含む。即ち、SIPフイールド30309の値をダイ
アレクト番号と呼ばれる小さな整数に翻訳するメモリー
におけるテーブルと、FU10120のマイクロ機械のSOPデコ
ーダ27003部分とである。以下の論議は、最初にテーブ
ルについて説明し、如何にしてSIPフイールド30309がダ
イアレクト番号に翻訳されるかを説明し、次いで如何に
してダイアレクト番号およびSOPが共にFUSITT11012およ
びFUSITT20344の場所に翻訳されるかについて説明す
る。
1.SIPのダイアレクト番号への翻訳(第307図) 本実施例においては、CS10110が操作を開始し各Sイン
タプリタが常に同じ場所に置かれる時にCS10110におけ
る全てのSインタプリタがFUSITT11012にロードされ
る。どのSインタプリタがS言語の翻訳のため使用され
るかはRDIAL24212に記憶された値によつて決定される。
その結果、本実施例においては、そのSインタプリタが
手順602のそれと異なる手順602に対する呼出しはSIPフ
イールド30309に含まれるUIDポインタをダイアレクト番
号に翻訳せねばならない。
第307図は、本実施例においてこの翻訳を実施するテー
ブルおよびマイクロコードを示す。Sインタプリタ翻訳
テーブル(STT)30701は、小さなAONにより割出しされ
るテーブルである。各STTエントリ(STTE)30703は2つ
のフイールド、即ちAONフイールド30705とダイアレクト
番号フイールド30709を有する。ダイアレクト番号フイ
ールド30709は、そのAONがAONフイールド30705にあるS
インタプリタ目的に対するダイアレクト番号を保有す
る。
CS10110が操作を開始する時、各Sインタプリタ目的は
活動状態に結線され、STT30701における指標として役立
つよう十分に小さなAONが割当てられる。約束により、
あるSインタプリタ目的は常に同じAONおよび同じダイ
アレクト番号が割当てられる。このAONはAONにより割出
しされたSTTE30703のAONフイールド30705に置かれ、ダ
イアレクト番号はダイアレクト番号フイールド30709に
置かれる。Sインタプリタ目的は活動状態に接続される
ため、これらのAONは決して他の目的に対し再割当てさ
れることはない。
新たなSインタプリタを要求する呼出しと同時に、呼出
しマイクロコードはSIPフイールド30309からの新たなSI
Pを得、KOS LARマイクロコードを呼出してそのUIDをそ
のAONに翻訳し、この予めを用いてSインタプリタのSTT
E30703を見出し、ダイアレクト番号フイールド30709の
値を21242に置く。
他の実施例においては、システムの初期化以外の時点で
SインタプリタがFUSITT11012にロードされることを可
能にし、また別の時点においてSインタプリタがFUSITT
11012における異なる場所を占めることを可能にする。
このような実施例においては、STT30701は、本実施例に
おけるAST10914またはMHT10716の構成と類似する方法で
構成することができる。
2.タスク指名 タスク指名はタスク指名フアイル27004によつて達成さ
れる。これらのフアイルは、RDIAL24212により与えられ
る値および実行中のS命令のSOPを、RDIAL24212の値に
より指定されるSインタプリタにおけるS命令により指
定されるSINに対するマイクロコードの場所に転移させ
る。本実施例においては3つのタスク指名・フイール
ド、即ちFUDISF24218とAF24220とFUDISF24222を有す
る。FUDISF24218とAF24220はS命令をFU10120に関して
実行するマイクロコードの場所に転移させ、EUDISF2422
2はS命令をEU10122に関して実行するマイクロコードの
場所に転移させる。FUDISF24218とAF24220間の相違は1
つの速度であり、FUDISF24218はSOPをLOPCODE24210にロ
ードする分析op段指令を実施する同じマイクロ命令にお
いて1つのSOPを翻訳することができる。AF24220はSOP
がLOPCODE24210にロードされるサイクルに続くサイクル
においてこの翻訳を実施せねばならない。典型的に、1
つのS命令を実行するマイクロコードの最初の部分の場
所はFUDISF24218に保有され、後で実行される部分の場
所はAF24220のレジスタにおいて保有され、EU10122に関
して実行するS命令に対するマイクロコードの場所はEU
DISF24222に保有される。
本実施例においては、前記各レジスタは、以下の如くS
命令からマイクロコードの場所への転移を達成するが、
FU10120ハードウエアの論議において述べたように、各
タスク指名フアイルは1024個のレジスタを含む。各レジ
スタは1つのSインタプリタにおけるアドレスを保有す
る。以下において詳細に示されるように、このアドレス
はSインタプリタの目的における1つのアドレスでよ
く、あるいはこれはSインタプリタに記憶されたマイク
ロコードのコピーのFUSITT11012またはEUSITT20344にお
けるアドレスでもよい。タスク指名フアイルにおけるレ
ジスタは128または256個のレジスターガイドの組に分割
することができる。各組のレジスタは、1つのS言語に
対するSOPをマイクロコードにおける各場所に転移す
る。どの組のレジスタがあるS命令の翻訳に使用される
かはRDIAL24212の値によつて決定され、ある組のどのレ
ジスタが使用されるかはS命令の値によつて決定され
る。特定のレジスタに含まれる値は従つてRDIAL24212に
より指定されるS言語におけるS命令により指定される
S命令を実行するマイクロコードの場所である。
論理的には、連結された値によりアドレス指定されるレ
ジスタは更にRDIAL24212の内容によつて指定されるS言
語におけるS命令により指定されるS命令を実行するた
め使用されるマイクロコードの最初のマイクロ命令のS
インタプリタにおける場所である15ビツトのアドレスを
含んでいる。本実施例においては、このアドレスにより
示されるマイクロコードはFUSITT11012およびEUSITT203
44にロードすることができあるいはこれはメモリーにお
いて使用可能である。FUSITT11012およびEUSITT20344に
配置されるマイクロコードのアドレスは8ビツトの長さ
でしかない。その結果、もしあるタスク指名フアイル27
004がこれよりも大きなビツトを要求するアドレスを有
するならば、このアドレスによつて指定されるマイクロ
コードがメモリーに存在する。MEM10112のハードウエア
の論議において述べたように、8ビツトよりも大きなア
ドレス事象信号を生じ、偶数のSINにより生じるマイク
ロコードはメモリーからのSインタプリタにおいて指定
されたアドレスにおけるマイクロ命令を取出し、これを
FUSITT11012の場所0にロードする。この時事象マイク
ロコードが戻り、場所0におけるマイクロ命令が実行さ
れる。もし次のマイクロ命令もまた8ビツトよりも大き
なアドレスを有するならば、前記事象信号が再び生じ前
述のプロセスが繰返される。
前述の如く、FUDISF24218はAF24220よりは速度が速い。
この速度における差異の理由は、FDISPレジスタがS命
令のアドレス指定のため6ビツトしか持たないためであ
る。本実施例は、FUDISF24218を介してアドレス指定さ
れる全てのマイクロコードがFUSITT11012に保有される
ことを前提とする。これは、2つの零ビツトをFUSITT11
012に対する8ビツトのあるアドレスを生じるためFUDIS
F24218における6ビツトと並列させている。FUDISF2421
8のレジスタはこのため、256と448間の4番目毎のFUSIT
T11012のレジスタ場所を保有することができる。FUSITT
11012におけるこれらの場所にロードされたマイクロコ
ードは、多くの異なるSINによりSINの開始時に実施され
る諸操作のためのマイクロコードである。例えば2つの
オペランドに対する操作を実施しかつその結果を第3の
オペランドにより指定される場所に割当てる全てのSIN
は、最初の2つのオペランドの分析および評価を行な
い、かつ第3のオペランドの解を与えねばならない。こ
れらの操作が行なわれた後にのみ、SIN固有の諸操作が
実施される。本実施例においては、オペランドの分析を
行ない、解を与え、その評価を行なうマイクロコード
は、FUDISF24218によつてアドレス指定可能なFUSITT110
12の部分に含まれる。
前述の如く、本実施例においては、FUSITT11012およびE
USITT20344はCS10110が初期化される時にのみロードす
ることができる。FUSITT11012およびEUSITT20344にロー
ドされたマイクロコードは、種々のSINに対するマイク
ロコードからのマイクロバインダによつて生成される。
FUSITT11012およびEUSITT20344の有効な使用を達成する
ため、種々のSインタプリタにより共有された諸操作の
ためのマイクロコードはFUSITT11012およびEUSITT20344
において1回のみ現われる。このマイクロコードを共有
する異なるS言語におけるSINが場合によりFUDISF2421
8、またはAF24220またはEUDISF24222において異なるレ
ジスタを有するが、S命令の各々に対するレジスタはFU
SITT11012またはEUSITT20344において同じ場所を保有す
るのである。
4.核心のオペレーテイング・システム A。序論 CS10110の特有の特性の多くは、JP10114に関して実行す
るプログラムにより、MEM10112およびED10124における
テーブルの操作によつて形成される。これらのプログラ
ムおよびテーブルは共に核心のオペレーテイング・シス
テム(KOS)を構成する。CS10110の構成要素およびこれ
らが共同してコンピユータ・プログラムを実行する手段
について説明したが、本文においては次にKOSおよびこ
れが形成するCS10110の諸特性の詳細点について述べ
る。本論は、オペランドに対する全般的な序論から始
め、次いでCS10110のオペランドの概論、KOSの概論およ
び目的、アクセス制御ならびにプロセス610の詳細につ
いて述べる。
a.オペレーテイング・システム(第401図) CS10110においては、他のコンピユータ・システムにお
けるように、このオペレーテイング・システムは次の2
つの機能を有する。即ち、 −このオペレーテイング・システムは、CS10110に関し
て実行中のプログラムによりJP10114、MEM10112の如きC
S10110の資源およびIOS10116における諸素子の使用を制
御すること。
−このオペレーテイング・システムは、如何にしてCS10
110の資源がCS10110のユーザに見えるかを規定するこ
と。
第2の機能は第1の機能の結果である。即ち、実行中の
プログラムがシステムの資源を使用する方法を制御する
ことによつて、このオペレーテイング・システムは実際
に本システムがそのユーザに如何に見えるかを決定す
る。第401図は、ユーザ40101と、オペレーテイング・シ
ステム40102と、システムの資源40103間の関係を示す略
図である。ユーザ40101がシステムのある資源40103の使
用を欲する時、ユーザ40101はオペレーテイング・シス
テム40102から資源40103の使用を要求し、オペレーテイ
ング・システム40102は更に要求された資源40103を提供
するようCS10110に指令する。例えば、あるユーザ・プ
ログラムがある周辺素子の使用を欲する時、このオペレ
ーテイング・システムはこの詳細を直接取扱わず、その
代りこの素子を制御するオペレーテイング・システム40
102の手順602を呼出す。オペレーテイング・システム40
102はこの素子の複雑な物理的特性を考慮に入れねばな
らないが、この素子を要求したユーザ・プログラムはそ
の物理的特性については一切知る必要はなく、このユー
ザ・プログラムにより要求される操作の実施のためオペ
レーテイング・システム40102の手順602がどんな情報を
要求するかを知るだけでよい。例えば、周辺素子はデー
タの正確なパターンが与えられることを必要とするが、
オペレーテイング・システム40102の手順602は単にこの
ユーザ・プログラムからのデータ自体を要求するだけ
で、周辺素子が要求する如きデータをフオーマツト化す
ることができる。このように、周辺素子の制御を行なう
オペレーテイング・システム40102の手順602は、この素
子に対する複雑な物理的なインターフエースを遥かに簡
単な論理的インターフエースに変換するのである。
1.オペレーテイング・システムにより制御される資源
(第402図) オペレーテイング・システム40102は、2種類の資源、
即ち物理的資源と仮想資源を制御する。CS10110の本実
施例における物理的資源はJP10114と、IOS10116と、IOS
10116、MEM10112および2次記憶装置10124と関連する周
辺素子とである。仮想資源は、CS10110のユーザに対し
てオペレーテイング・システム自体が規定する資源であ
る。前述の如く、CS10110の資源が使用される方法を制
御する際、オペレーテイング・システム40102はCS10110
がユーザに対して認識される方法を規定する。オペレー
テイング・システム40102により制御される物理的資源
の代りに、ユーザは遥かに簡単な仮想資源の組を認識す
る。物理的入出力装置のユーザにオペレーテイング・シ
ステム40102が与える論理的入出力装置インターフエー
スは仮想資源の如きものである。オペレーテイング・シ
ステム40102はしばしば仮想資源の組を規定し、これら
の仮想資源における物理的資源を多重化する。例えば、
オペレーテイング・システム40102は、比較的小さなグ
ループの物理的プロセツサと対応する1組の仮想プロセ
ツサ612と、比較的小さなグループの物理的資源と対応
する1組の仮想メモリーを規定することができる。ある
ユーザが1つのプログラムを実行する時、これは仮想プ
ロセツサ612に関して実行して仮想メモリーを使用す
る。このユーザが物理的プロセツサおよび物理的メモリ
ーに対して完全なアクセスを行なう仮想プロセツサおよ
び仮想メモリーのユーザにとつては、実際にはオペレー
テイング・システム40102が仮想プロセツサ612および仮
想メモリーにおける物理的プロセツサおよびメモリーを
多重化しつつあるように見える。
オペレーテイング・システム40102もまた仮想資源を使
用する。例えば、オペレーテイング・システム40102の
記憶管理部分は入出力素子が使用でき、もしそうなら、
これは入出力装置を管理するオペレーテイング・システ
ム40102の部分により規定される仮想入出力装置を使用
する。オペレーテイング・システム40102の一部もまた
オペレーテイング・システム40102の他の部分により規
定される仮想資源を再び規定することができる。例え
ば、オペレーテイング・システム40102の一部は1組の
元の入出力装置を規定し他の部分はこれらの元の仮想入
出力装置を用いて1組の高水準のユーザ指向の入出力装
置を規定する。オペレーテイング・システム40102は、
このように、物理的なCS10110を仮想資源の階層に切換
える。CS10110のユーザがCS10110を認識する方法は、専
らユーザが仮想資源を取扱うレベルに依存する。
オペレーテイング・システム40102により規定される資
源を使用するエンテテイはプロセスである。プロセス61
0は、順次のプロセスによるそのデータに関するあるプ
ログラムの実行から生じる活動状態として定義すること
ができる。あるユーザがCS10110に関するプログラムの
実行を要求する時は常に、オペレーテイング・システム
40102がプロセス610を形成し、これがユーザ・プログラ
ムを構成する手順602を実行する。物理的観点において
は、プロセス610はプロセスが表わすプログラムのその
時の実行状態を保有するメモリーにおける1組のデータ
・ベースである。オペレーテイング・システム40102は
プロセス610をして、プログラムの実行のため要求する
仮想資源に対するプロセス610のアクセスを行なうこと
により、プロセス610の状態の各部に対して仮想資源の
アクセスを行なうことにより、また物理的資源に対する
これらの仮想資源アクセスを行なうことによつて、プロ
セス610をしてプログラムを実行させる。ある資源の他
の資源に対する一時的関係、またはある資源に対するプ
ロセス610の一時的関係は束縛と呼ばれる。プロセス610
がある仮想プロセツサ612にアクセスし、または仮想プ
ロセツサ612がプロセス610の状態にアクセスする時、プ
ロセス610は仮想プロセツサ612に対して束縛され、また
仮想プロセツサ612がJP10114に対してアクセスして仮想
プロセツサ612の状態がJP10114のレジスタにロードされ
る時、仮想プロセツサ612はJP10114に対して束縛され、
JP10114は仮想プロセツサ612に対して束縛されたプロセ
ス610によつて実行中のプログラムにおいて手順602に含
まれるSINを実行することができる。束縛および束縛解
除は、プロセス610におるプログラムの実行の仮定にお
いて何回も生じ得る。例えば、もしプロセス610がデー
タへの照合を実行しデータがMEM10112に存在しなけれ
ば、データがMEM10112において使用可能となるまでオペ
レーテイング・システム40102はプロセス610の仮想プロ
セツサ612をJP10114に対する束縛を解除する。もしデー
タが拡張されたある期間使用可能でなければ、あるいは
もしプロセス610がプログラムを実行中であるユーザが
しばらくプログラムの実行を停止することを欲するなら
ば、オペレーテイング・システム40102はプロセス610を
その仮想プロセツサ612との束縛を解除することができ
る。この時仮想プロセツサ612は他のプロセス610により
使用することができる。
前述の如く、束縛するプロセスは、第2の資源に対する
最初の資源のアクセスを行ない、この第2の資源におけ
る最初の資源の状態を使用することを含む。この束縛お
よび束縛の解除を可能にするため、オペレーテイング・
システム40102は各資源および各プロセス610のその時の
状態を含むデータ・ベースを保持する。この状態はオペ
レーテイング・システムが資源の使用またはプロセス61
0の実行のため持たねばならない情報として規定され
る。例えば、ラインプリンタの状態は、このラインプリ
ンタが使用中、自由状態、オフライン、または故障中の
いずれかであるかを表示する変数でよい。プロセス610
がオペレーテイング・システム40102をしてプロセス610
を仮想プロセツサ612に束縛させ、暫時プロセス610を実
行し、プロセス610の束縛を解除し、次いでこれを再び
束縛して停止された実行を継続するに十分な情報を含む
ため、プロセス610の状態は更に複雑となる。このよう
にプロセス610の状態は、プロセス610が再び実行を開始
する用意があるかどうかを表示する情報と共に仮想プロ
セツサ612からの束縛を解かれる時までプロセス610によ
り使用される全てのデータを含む。
第402図は、プロセス610、仮想およびオペレーテイング
・システムにおける物理的資源の間の関係を示してい
る。同図は、多重プロセスのオペレーテイング・システ
ム40102、即ちいくつかのプロセス610におけるCS10110
の資源を多重化することができるものを示している。こ
のように、プロセス610はその時同時に実行中であるよ
うに見える。第402図における実線矢印は、仮想資源
間、もしくは仮想資源および物理的資源間の束縛関係を
示している。プロセス610はユーザ・プログラムの実行
のためオペレーテイング・システム40102によつて形成
される。このプログラムは手順602からなり、プロセス6
10はプログラムに記された順序で手順602を実行する。
プロセス610は、プロセス管理プログラムと呼ばれるオ
ペレーテイング・システム40102の構成要素により形成
され管理される。プロセス管理プログラム40203は、プ
ロセス610を仮想プロセツサ612に束縛することによつて
これを実行する。仮想プロセツサ612よりも多くのプロ
セス610が存在する。この場合、オペレーテイング・シ
ステム40102はプロセス610において仮想プロセツサ612
を多重化する。
仮想プロセツサ612は、オペレーテイング・システム401
02の別の構成要素、即ち仮想処理装置管理プログラム40
205により形成されて使用可能となる。仮想処理装置管
理プログラム40205はまた、仮想プロセツサ612において
JP10114を多重化する。もし仮想プロセツサ612が実行の
用意ができるならば、仮想処理装置管理プログラム4020
5はこれをJP10114に束縛する。仮想プロセツサ612がこ
れ以上実行できない時、または別の仮想プロセツサ612
がJP10114を必要とする時は、仮想処理装置管理プログ
ラム40205はJP10114に対する実行中の仮想プロセツサ61
2の束縛を解除し、このJP10114に対して別の仮想プロセ
ツサ612を束縛する。
仮想プロセツサ612は仮想メモリーおよび入出力資源を
用いて、メモリーのアクセスおよび入出力を実施する。
仮想メモリー40206は仮想管理プログラム40207により形
成されて管理されまた仮想入出力素子40208は仮想入出
力管理プログラム40209により形成され管理される。仮
想処理装置管理プログラム40205と同様に、オペレーテ
イング・システム40102の仮想管理プログラム40207およ
び仮想入出力管理プログラム40209は仮想資源間で物理
的資源を多重化する。前述の如く、1組の仮想資源は別
の組の資源を使用することができる。これが可能である
1つの方法は、第402図において破線の矢印によつて示
されている。これらの矢印は、仮想メモリー40206と仮
想入出力素子40208間の束縛関係を示している。この束
縛は、仮想メモリー40206がデイスク駆動装置の如き周
辺素子に含まれるデータに対する照合を処理しなければ
ならない。仮想メモリー40206のユーザにとつては、全
てのデータはCS10110において使用可能なように見え
る。しかし、実際には、このデータはデイスク駆動装置
の如き周辺詳細において記憶され、必要に応じてMEM101
12にコピーされる。プロセス610がMEM10112に対してコ
ピーされていないデータを照合する時、仮想メモリー40
206はこのデータをMEM10112にコピーするためIOS10116
を使用しなければならない。これを行なうためには、こ
の仮想メモリーは仮想入出力管理プログラム40209によ
り与えられる仮想入出力素子40208を使用する。
b.CS10110におけるオペレーテイング・システム 明瞭にするため、オペレーテイング・システム40102はC
S10110の外側に存在するかの如くに説明した。しかし、
実際には、オペレーテイング・システム40102自体はこ
れが制御する資源を使用する。本実施例においては、オ
ペレーテイング・システム40102の各部はJP10114のハー
ドウエアの諸素子において実施され、各部はJP10114に
関して実行するマイクロコードにおいて実施され、各部
は手順602において実施される。これらの手順602はしば
しばユーザ・プログラムを実行するプロセス610により
呼出され、またしばしばオペレーテイング・システム40
102に対する諸操作の実行以外は何も行なわない特殊な
プロセス610によつて呼出される。
オペレーテイング・システム40102の構成要素が対話す
る方法は、CS10110がページの誤りを処理する方法、即
ちCS10110においては使用できないデータの照合によつ
て示される。ページ誤りが存在することの最初の表示
は、ATUミス事象信号である。この事象信号は、読出し
または書込み操作において使用される論理記述子27116
に対するATU10228においてエントリが存在しない時FU10
120におけるATU10228によつて生成される。この事象信
号はオペレーテイング・システム40102のマイクロコー
ドを惹起し、これは論理記述子27116により記述される
データがMEM10112においてコピーを有するかどうかを見
出すため、MEM10112におけるテーブルを検査する。もし
このテーブルがコピーが存在しないことを示すならば、
オペレーテイング・システム40102のマイクロコード
は、オペレーテイング・システム40102の仮想メモリー
管理プロセス610に対しページ誤りの事実を通信して、
ページ誤りがJP10114から生じた時を検査中のプロセス6
10に対し束縛された仮想プロセツサ612を取除く。しば
らく後に、プロセス610がJP10114に対し束縛される。次
に、プロセス610により実行された手順602はED10124に
おける所要のデータを見出すため要求される入出力操作
を開始し、これをMEM10112に対しコピーする。このデー
タがMEM10112において使用可能である時、オペレーテイ
ング・システム40102は、前記のページ誤りが生じる時
実行中であるプロセス610に対して束縛された仮想プロ
セツサ612がJP10114に対して戻ることを可能にする。仮
想プロセツサ612は、ページの誤りを生じたメモリーの
照合を反復し、データがこの時MEM10112に存在するた
め、この照合は成功しプロセス610の実行は継続する。
c.拡張されたオペレーテイング・システムおよび核心的
オペレーテイング・システム(第403図) CS10110においては、オペレーテイング・システム40102
は、2つの構成オペレーテイング・システムである拡張
オペレーテイング・システム(EOS)および核心のオペ
レーテイング・システム(KOS)からなる。KOSは物理的
資源に対する直接的なアクセスを有する。これは、1組
の元の仮想資源を規定し、元の仮想資源において物理的
資源を多重化する。このEOSは、KOSにより規定される元
の仮想資源に対しアクセスするが、物理的資源に対して
はアクセスしない。EOSは1組のユーザ・レベルの仮想
資源を規定し、ユーザ・レベルの仮想資源においてKOS
により規定された元の仮想資源を多重化する。例えば、
KOSはEOSにプロセス610および仮想プロセツサ612を与え
て仮想プロセツサ612をJP10114に束縛するが、EOSはプ
ロセス610が形成される時を決定し、またプロセス610が
仮想プロセツサ612に対して束縛される時を決定する。
第403図は、プロセス610と、EOSと、KOSと、CS10110に
おける物理的資源間の関係を示している。第403図、実
行中のユーザのプロセス610とJP10114間のインターフエ
ースの3つのレベルを示している。最も高いレベルのイ
ンターフエースは手順レベル40302である。このレベル
においては、プロセス610が実行中であるプログラムに
より指定される如く手順602を呼出すことにより、プロ
セス610がCS10110と対話する。この呼出しは、ユーザ手
順40306に対する呼出しまたはESO手順40307のいずれか
である。プロセス610が手順602の実行中、プロセス610
はSINのあるストリームを生じる。このストリームは、
2種類のSIN、即ちS言語SIN40310およびKOS SIN40311
を含む。両方の種類のSINは、次のレベルのインターフ
エース、即ちSINレベル・インターフエース40309におい
てCS10110と対話する。SIN40310および40311はマイクロ
コード40312と40313により解釈され、またマイクロ命令
40315は最も低いレベルのインターフエース、即ちJP101
14のインターフエース40316においてCS10110と対話す
る。既にFU10120のマイクロ命令の論議において説明し
たように、JP10114におけるある条件が、Sインタプリ
タ・マイクロコード40312またはKOSマイクロコード4031
3においてマイクロルーチンを生じる事象信号40314を惹
起する結果となる。手順レベル・インターフエース4030
2およびSINレベル・インターフエース40309のみがユー
ザから認識可能である。SINレベル・インターフエース4
0309は手順602における呼出しまたはユーザの手順602に
おけるステートメントとして現われ、それをコンパイラ
が手順602に対する呼出しに翻訳する。SINレベル・イン
ターフエース40309は、名前テーブル10335およびコンパ
イラにより生成された手順目的608におけるSINとして現
われる。
第403図が示すように、EOSは手順レベル・インターフエ
ース40302においてのみ存在するが、KOSは手順レベル・
インターフエース40302、SINレベル・インターフエース
40304およびSINレベル・インターフエース40309の下方
のマイクロコード内において存在する。ユーザのプロセ
ス610に対して直接使用可能なこのオペレーテイング・
システムの唯一の部分がEOS手順40307である。ESO手順4
0307は更にKOS手順40308を呼出す。多くの場合、ESO手
順40307はKOS手順40308に対する呼出し以外の何者も含
まない。
ユーザ手順40306、EOS手順40307およびKOS手順40308は
全てS言語SIN40310を含む。更に、KOS手順40308のみが
特殊なKOS SIN40311を含む。特殊なKOS SIN40311は、ES
O手順40307もしくはユーザ手順40306からは利用不能な
諸機能を制御し、従つてKOS SIN40311はユーザ手順4030
6またはESO手順40307には現われない。S言語SIN40310
はSインタプリタ・マイクロコード40312によつて翻訳
されるが、KOS SIN40311はKOSマイクロコード40313によ
つて翻訳される。KOSマイクロコード40313もまたSイン
タプリタ・マイクロコード40312によつて呼出すことが
できる。事象信号40314を生じるハードウエア条件に従
つてこの信号はSインタプリタ・マイクロコード40312
またはKOSマイクロコード40313のいずれかの実行を惹起
し得る。
第403図はユーザのプロセス610を実行する時のシステム
を示している。更に、KOSおよびEOSの用途のため留保さ
れた特別のプロセス610が存在する。これらのプロセス6
10はユーザのプロセス610の如く作用するが、プロセス
管理および仮想メモリー管理の如きオペレーテイング・
システムの諸機能を実施する。1つの例外として、EOS
プロセス610はESO手順40307とKOS手順40308を呼出す
が、KOSプロセス610はKOS手順40308のみを呼出す。この
例外はプロセス610の実行の開始であり、KOSはプロセス
610の実行の開始に必要なKOSレベル機能を実施し、次い
でEOSを呼出すのである。EOSは所要のEOSレベル機能を
実施し、次いでプロセス610が実行中のプログラムにお
いて最初のユーザ手順40306を呼出すのである。
KOSが如何にしてページ誤りを処理するかの説明は、JP1
0114の、SINのおよび手レベルにおいて該システムの各
部が如何にして一緒に作用するかを示す上で役立ち得
る。プロセス610がMEM10112にコピーを持たないデータ
項目を照合する時にページ誤りが生じる。このページ誤
りは、ATU10228からの事象信号として開始する。この事
象信号はKOSマイクロコード40313においてマイクロルー
チンを生じる。もしこのマイクロルーチンが照合された
データ項目がMEM10112に存在しないことを確認するなら
ば、これはMEM10112のあるKOSテーブルにおいてこのペ
ージ誤りの事実を記録し、JP10114からのページ誤りを
生じたプロセス610に束縛された仮想プロセツサ612の束
縛を解除する別のKOSマイクロルーチンを呼出して、別
のプロセス610の仮想プロセツサ612の実行を許容する。
ページ誤り後ある時点において、ある特殊なオペレーテ
イング・システムのプロセス610、即ち仮想メモリー管
理プロセス610が作動してSINレベル・インターフエース
40309を実行する。仮想メモリー管理プロセス610は、ED
10124からMEM10112へデータを読込む入出力操作を開始
する。IOS10116がこの操作を完了する時、ページ誤りを
生じたプロセス610は再び動作が可能であり、仮想メモ
リー管理プロセス610は、プロセス610の仮想プロセツサ
612を再びJP10114に対し束縛させる操作を実施する。プ
ロセス610が実行を再開する時、このプロセスは前記デ
ータの照合を再び試みる。このデータはこの時MEM10112
に存在し、そのためページ誤りは反復しない。
オペレーテイング・システム40102を2つの階層的に関
連したオペレーテイング・システムに分割することはCS
10110についての特徴とするところである。いくつかの
利点がこの分割により得られる。即ち、 −2つのオペレーテイング・システムの各々は、1つの
オペレーテイング・システムの場所よりも更に簡単であ
る。EOSはそれ自体を主として資源割当て方針および高
水準の仮想資源と関連させ、KOSはそれ自体を高水準の
仮想資源およびハードウエア制御と関連させることがで
きる。
−各オペレーテイング・システムは比較的簡単なため、
各システムの構成要素が正確に作動していることの検査
が更に容易であり、また従つて2つのシステムは1つの
システムよりも信頼度が高い。
−オペレーテイング・システム40102の分割はCS10110の
異なる実施例の構成が更に容易である。EOSにより提供
されるインターフエースのみがユーザから認識可能であ
り、その結果システムに対するユーザのインターフエー
スがKOSを変更することなく変更可能である。実際に、
1つのCS10110は多くのEOSを有することができ、このた
め異なるユーザに対して異なるインターフエースを提供
することができる。同様に、ハードウエアにおける変化
がKOSの構成に影響を与えるが、KOSがEOSに提供するイ
ンターフエースには影響を及ぼさない。あるEOSは、従
つて、CS10110の1つ以上の実施例について実行で可能
である。
−分割されたオペレーテイング・システムは単一のオペ
レーテイング・システムよりも更に確実である。JP1011
4に対する物理的アクセスは専らKOSによつて与えられ、
その結果、KOSはユーザがアクセス権を有する如き資源
のみを操作することを保証可能である。
CS10110は全てKOSにより規定される仮想資源を有する
が、EOSにより規定される資源は1つのCS10110から別の
CS10110に変化し、あるいは単一のCS10110内でさえ変動
する。その結果、論議の残りはKOSに関するものとなろ
う。
KOSおよびCS10110の残りの関係は4つの原理により支配
される。即ち、 −KOSは、これが制御するもののみが資源に対するアク
セスを有する。EOSに対するユーザの呼出しがKOSに対す
るEOS呼出しを生じる結果となり、またS言語SINがKOS
マイクロコード・ルーチンの呼出しを惹起することがで
きるが、EOSまたはユーザ・プログラムのいずれもKOSに
より制御される資源を直接操作することができない。
−KOSは受動的である。これは、EOSからの呼出し、マイ
クロコード呼出し、および事象信号に応答するが、それ
自体についての動作は一切開始しない。
−KOSはEOSを除く全てのシステムのユーザから認識不能
である。KOSはプロセス610の論理的挙動には影響を及ぼ
さず、プロセス610がCS10110に関して実行する速度に関
してのみユーザに通知可能である。
前述の如く、KOSは物理的および仮想の資源の双方を管
理する。この物理的得制御およびある仮想資源はKOS内
部においてのみ認識可能であり、仮想資源の他のものは
EOSに対して与えられる。各仮想資源は2つの主な部
分、即ち仮想資源の条件を含む1組のデータベースと、
仮想資源を操作する1組のルーチンを有する。1つの資
源に対して組をなすルーチンは、資源の管理ルーチンと
呼ばれる。このルーチンはKOS手順40308であり、あるい
はKOSマイクロコード40313である。前述の如く、ある場
合には、KOSは別個のプロセス610を用いてその資源を管
理する。
本文の目的のため、KOSにより管理される資源は2つの
主なグループに該当する。即ち、目的と関連するものお
よびプロセス610と関連するものである。以下において
は、最初に目的と関連する資源、次いでプロセス610と
関連するものについて論議する。
B。目的および目的の管理(第404図) 仮想資源と呼ばれる目的はKOSにより規定され、EOSおよ
びKOSによつて操作される。EOSにより知られる目的は次
の5つの特性を有する。即ち、 −目的の持続期間の間中目的を識別してこの目的がどの
論理的割当て装置(LAU)に帰属するかを規定する。
−目的を記述してそれに対するアクセスを制限する1組
の属性。
−ビツトのアドレス指定可能な内容。本実施例において
は、この内容は長さが0乃至(2**32) −1ビツトの範囲内にある。この内容におけるどのビツ
トもオフセツトによつてアドレス指定可能である。
−目的は形成可能である。
−目的は破壊可能である。
あるCS10110におけるデータおよび手順602の全ては目的
に含まれる。あるCS10110に関して実行中のどのプロセ
ス610もあるUIDオフセツト・アドレスを用いて、プロセ
ス610が実行中のCS10110に対しアドレス可能などのCS10
110に関するある目的におけるデータまたは手順602にア
クセスを試みることができる。このようにいずれかのプ
ロセス610によりアクセス可能な目的は、全ての現在お
よび将来のCS10110に対して一義的であることを保証さ
れるUIDを有するものである。このような一義的なUIDを
有する目的は、CS10110に関して実行中のプロセス610に
対して少なくとも潜在的にアクセス可能な単一のアドレ
ス空間を形成する。以下において詳細に説明するよう
に、実際にプロセス610がこの単一のアドレス空間にお
けるある目的をアクセス可能であるかどうかは、プロセ
ス610がこの目的に対するアクセス権を有するかどうか
に依存する。そのUIDが一義的でない他の目的は、CS101
10または一義的でないUIDが実際には一義的であるCS101
10のグループに関して実行中のプロセス610によつての
みアクセス可能である。ある時点においてあるCS10110
に対しアクセス可能な2つの目的が同じUIDを有するこ
とはできない。
目的に関する以下の論議は、最初に、EOSにより直接認
識され、またユーザ・プログラムにより間接的に認識さ
れる如き目的について述べ、次いでKOSに対して現われ
る如き目的について述べる。
第404図は如何にして目的がEOSに対して現われるかを示
している。この目的は3つの部分を有する。即ち、UID4
0401と、属性40404と、内容40406とである。この目的の
内容は、論理的割当て装置(LAU)40405に存在してい
る。UID40401は2つの部分を有する。即ち目的が存在す
るのはどのLAU40405であるかを表示するLAU識別子(LAU
ID)40402と、LAU40405における目的を指定する目的連
続番号(OSN)40403である。
このEOSは、LAU40405において目的のUID40401を与える
目的を形成することができ、また目的を破壊することが
できる。更に、EOSは目的の属性40404の読出しおよび変
更が可能である。あるCS10110に関して実行中のどのプ
ロセス610も目的のUID40401を指定することによりある
目的における情報およびこの情報が始まる目的における
ビツトを照合することができる。最も高いレベルにおい
て、CS10110の各アドレスはこのようにある目的を指定
するUID40401と、ビツト数を情報が開始する目的に規定
するオフセツトとからなる。以下において詳細に説明す
るように、KOSはこのようなUIDオフセツト・アドレス
を、JP10114において使用するためAONオフセツト・アド
レスと呼ばれる中間的な形態、およびMEM10112に対して
コピーされた情報を照合する際に使用されるページ番号
変位アドレスに変換する。
目的の物理的構成および操作は専らKOSにより制約され
る。例えば、目的およびその属性は実際にED10124にお
いて記憶される。あるプログラムがある目的の一部を照
合する時、KOSはこの目的の前記部分をED10124からMEM1
0112にコピーし、もしMEM10112における前記部分が変更
されるならば、ED10124におけるこの目的のコピーを更
新する。EOSおよびユーザ・プログラムは、ED10124にお
けるある目的の場所、またMEM10112におけるある目的の
一部のコピーの場所を制御することはできず、従つてKO
Sによつてのみ目的へのアクセスが可能である。
EOSは目的の物理的構成の制御が不可能であるが、これ
はKOSに目的をより有効に管理させる情報をKOSに与える
ことができる。このような情報はヒントと呼ばれる。例
えば、もしあるプロセス610が目的における情報を照合
するだけで、KOSは一般に1つの目的の一部をMEM10112
にコピーする。しかし、EOSはプロセス610の実行の予定
を立て、従つていくつかの目的が近い将来必要となるこ
とを予測することができる。EOSはこの情報をKOSに対し
て送ることができ、KOSはこの情報を用いて目的のどの
部分がMEM10112にコピーするかを判定することができ
る。
a.目的およびユーザ・プログラム(第405図) 前述の如く、ユーザ・プログラムは目的の操作が可能で
あるが、この目的は一般に直接ユーザ・プログラムにと
つて認識できない。その代り、ユーザ・プログラムは可
変名前の如き記号その他の照合の記号を用いて目的自体
を照合するための目的またはフアイル名前に記憶された
データを照合する。名前空間の論議は、既に、如何にし
てCS10110のコンパイラが手順602におけるステートメン
トに現われる書込名前を名前、即ちNTE30401の指標に翻
訳するか、如何にして名前解明マイクロコードがNTE304
01を論理記述子27116に解くか、また如何にしてATU1022
8が論理記述子27116を変数により示されるデータが存在
する目的の部分のコピーを含むMEM10112における場所に
翻訳するかについて提示した。
UID40401へのフアイル名前の翻訳はEOSによつて達成さ
れる。EOSは、パス名と呼ばれるシステムのフアイル名
とこのフアイルのデータを含む目的のUID40401間の関係
を確保するフアイル名翻訳テーブルを保持し、これによ
りパス名を目的と関連付ける。パス名は、CS10110のユ
ーザに対するフアイルを識別する一連のASCII文字であ
る。あるCS10110における各パス名は一義的でなければ
ならない。第405図はフアイル名翻訳テーブルを示す。
同図においては、あるユーザがEOSに対してパス名40501
を与える時、EOSはフアイル名翻訳テーブル40503を用い
てパスワードパス名40501をこのフアイルを保有する目
的40504に対するUID40401に翻訳する。CS10110における
ある目的は、このように2つの方法、即ちそのUID40401
またはパス名40501により識別することができる。ある
目的がそのフアイル全体において唯1つのUIDしか持た
ないが、この目的は多くのパス名40501を有することが
できる。ある目的のパス名40501を変更に必要な全ての
ことは、フアイル名翻訳テーブル40503における目的の
エントリ40502における他のパス名に対する代替であ
る。ある目的がその持続期間中に異なるパス名40501を
有するという事実の1つの結果は、あるプログラムが目
的の識別のため1つのパス名40501を用いる時、CS10110
のあるユーザが、単に以前パス名40501を保有した目的
であつてプログラムにおいて新たなパス名40501を表わ
す目的を与えることにより、またこのプログラムにおい
て現われるパス名40501を処理すべく次の目的を与える
ことによるだけでプログラムに異なる目的を処理させる
ことができる。
本実施例においては、1つの目的は唯一のフアイルを保
有することができ、その結果パス名40501は常にある目
的全体を照合するのである。他の実施例においては、パ
ス名40501は1つの目的の一部を照合することができ、
またかかる実施例においては、フアイル名翻訳テーブル
40503はパス名40501をフアイルの始めを規定するUIDオ
フセツト・アドレスと関連させる。
b.UID40401(第406図) UID40401はCS10110における目的その他のエンテテイの
識別が可能である。UID40401によつて識別されるどのエ
ンテテイもその持続期間中1つのUIDしか持たない。第4
06図は、1つのCS10110のUID40401を示す詳細図であ
る。UID40401は80ビツトの長さであり、2つのフイール
ドを有する。32ビツトの長さのLAUID40402は論理的割当
て装置の識別子(LAUID)である。これは目的を含むLAU
40405を規定する。LAUID40402は更に2つのサブフイー
ルド、即ちLAUグループ番号(LAUGN)40607と、LAU連続
番号(LAUSN)40605に分割される。LAUGN40607は1つの
グループをなすLAU40405を規定しまたLAUSN40605はこの
グループにおけるLAU40405を規定する。CS10110の購入
者は、メーカからLAUGN40607を入手することができる。
メーカは、購入者に提供されたLAUGN40607を他のCS1011
0に対しては割当てしないことを保証し、このためこれ
らLAUGN40607は全てのCS10110に対して一義的であるUID
40401を形成するため使用することができる。48ビツト
の長さであるフイールド40604は目的の連続番号(OSN)
である。これはLAU40405における目的を規定する。
UID40401はKOS手順602によつて生成される。手順602に
は2つのものがあり、その1つは目的を識別するUID404
01を生成し、他のものはCS10110における他のエンテテ
イを識別するUID40401を生成する。前者の手順602は目
的生成UID手順と呼ばれ、後者は非目的生成UID手順と呼
ばれる。目的生成UID手順602は、KOS形成目的手順602に
よつてのみ呼出される。目的形成手順602は目的生成UID
手順602にLAUID40402を与え目的生成UID手順602は目的
に対するUID40401を戻す。本実施例においては、UID404
01はアーキテクチヤ・クロツクのその時の値を取ること
により形成され、MEM10112のある場所に保持され、アー
キテクチヤ・クロツクのその時の値からOSN40403を形成
し、OSN40403をLAUID40402に連結する。
非目的生成UID手順602は、目的を規定しないUID40401を
提供するためEOSにより生成することができる。非目的U
ID40401は一義的なラベルが要求される場合は常にCS101
10において使用することができる。例えば以下において
詳細に説明するように、CS10110から使用可能な全ての
仮想プロセツサ612は非目的UID40401を有する。全ての
このような非目的UID40401は単一のLAUGN40607を有し、
このため、EOSはアーギユメントとしてLAUSN40605のみ
を提供するだけでよい。非目的生成UID手順602はLAUSN4
0605を特別のLAUGN40607と連結し、このためLAUID40402
はアーキテクチヤ・クロツクから得たOSN40403と共に生
成される。他の実施例においては、目的と非目的の両UI
D40401に対するOSN40403はカウンタの如き他の手段によ
つて生成することができる。
CS10110はまた空白UID40401と呼ばれる特別なUID40401
を有する。この空白UID40401は0のビツトしか含まず、
CS10110におけるエンテテイを示すことができないUID値
を必要とする状況において使用される。
c.目的の属性 あるプログラムがある目的について処理可能なことは目
的の属性40404によつて判定される。2つの種類の属
性、即ち目的の属性と制御の属性が存在する。目的の属
性は目的の内容について記述し、制御の属性は目的に対
するアクセスを制御する。目的は、たとえ内容40406を
持たない場合でさえ属性40404を有し、ある場合には目
的は専らその属性40404に対して存在することができ
る。
本論の目的のため、目的の属性には2つの種類が存在す
る。即ち、サイズの属性および形式の属性である。
目的のサイズの属性は、目的がその時保有するビツト数
を表示する。ある目的の内容40406に対する照合毎に、K
OSはアクセスされたデータが目的の終りを越えて拡張し
ないことを確実にするため検査する。もしそうであれ
ば、この照合は打切られる。
形式の属性は、どんな種類の情報を目的が有するか、ま
たこの情報がどのように使用することができるかを示
す。形式の属性には3つの種類がある。即ち、元の形式
属性、拡張形式属性および検査領域属性である。ある目
的の元の形式属性は、この目的がデータ目的か、手順目
的608か、拡張形式管理か、Sインタプリタかを示す。
それらの名前が示唆するように、データ目的はデータを
含み、手順目的608は手順602を保有する。拡張形式管理
(ETM)は、その手順目的608が専ら拡張形式目的と呼ば
れる目的に関して操作を実施することができる特別の形
式の手順目的608である。拡張形式目的(ETO)は、その
元の形式属性に加えて拡張された形式属性を有する目的
であるが、その詳細については、以下における拡張形式
属性の論議を参照されたい。SインタプリタはS言語に
対するインタプリタを含む目的である。本実施例におい
ては、このインタプリタはタスク指名テーブルおよびマ
イクロコードからなるが、他の実施例においてはインタ
プリタはそれ自体高水準の言語で書くことができる。長
さの属性と同様に、元の形式属性は、KOSがあるプログ
ラムがある目的を正確に使用中であることを保証するこ
とを可能にする。例えば、KOSが手順602に対する読出し
を実行する時、この手順は読出しにより指定される目的
が手順目的608であるかどうかを検査する。もしそうで
なければ、この読出しは失敗する。
d.属性およびアクセス制御 残る目的の属性および制御属性は全てCS10110のアクセ
ス制御システムの一部である。このアクセス制御システ
ムについては以下において詳細に論議されるが、本項に
おいては、目的の論議に本質的な程度に限つて説明す
る。CS10110においては、目的に対するアクセスは、プ
ロセス610が手順目的608に含まれるSINを取出し、目的
からのデータを読出し、またはある場合においては、プ
ロセス610が制御を手順602に対して転送する時に生じ
る。このアクセス制御システムは、プロセス610が試み
つつあるアクセスを実施する権利を有するかどうかを検
査する。CS10110においては2種類のアクセス、即ち元
のアクセスおよび拡張アクセスが存在する。元のアクセ
スは、アクセス制御システムがプロセス610による目的
に対する照合毎に検査するアクセスであり、拡張アクセ
スはユーザの要素によつてのみ検査されるアクセスであ
る。元のアクセス検査は目的毎に実施され、拡張アクセ
ス検査はEOSに関してのみ実施され、ETMに含まれる手順
602によつてのみ実施することができる。
アクセス制御システムが検査する手段は、プロセス610
の主題および目的のアクセス制御リスト(ACL)であ
る。各プロセス610は4つのUID40401からなる主題を有
する。これらのUID40401は下記のものを定義する。即
ち、 −プロセス610がそのため形成されたユーザ。このUID40
401は主題の主な要素と呼ばれる。
−プロセス610自体。このUID40401はプロセスの構成要
素と呼ばれる。
−プロセス610がその時実行中の領域。このUID40401は
領域構成要素と呼ばれる。
−ユーザが規定した主題のサブグループ。このUID40401
はタツグ要素と呼ばれる。
領域は、グループをなす手順目的608またはETMの1つに
おいて手順602を実行中のプロセス610により潜在的にア
クセス可能な目的のグループである。各手順目的608ま
たはETMは実行領域(DOE)属性を有する。この属性はUI
D40401であり、プロセス610がこの手順目的608またはET
Mにおけるある手順602の実行中、DOE属性のUID40401は
プロセス610の主題における領域の構成要素である。こ
のDOE属性は、このため、手順目的608から手順602を実
行中のプロセス610によつてアクセス可能な目的のグル
ープを規定する。このグループの目的は手順目的608の
領域と呼ばれる。以上の定義より明らかになるように、
主題の領域の構成要素は手順602に対する呼出し、ある
いはこれからの戻しと同時に変更することができる。タ
ツグ要素はユーザが望む時は常に変化することができる
が、一方、プロセス610の持続期間においては変化しな
い。
アクセス制御システムの他の反部を構成するACLは目的
の属性である。各ACLは一連のエントリ(ACLE)からな
り、各ACLEは2つの部分、即ち主題のテンプレートと1
組のアクセス特権を有する。主題のテンプレートは1つ
のグループの主題を規定し、1組のアクセス特権は、こ
のグループに属する手段の目的に対するアクセスの種類
を規定する。1つの目的に対するアクセスが適正である
かどうかの検査のため、KOSがACLを検査する。これによ
り、もしその主題テンプレートがこのアクセスを欲する
プロセス610のその時の主題と整合すること、またその
組をなすアクセス特権がプロセス610により要求される
アクセスの種類を含むことを見出すならば、アクセスを
許容する。例えば、1つの手順目的608が2つのエント
リを有するACLを有することができ、その一方の主題テ
ンプレートはどの主題のアクセスでも許容し、その組を
なすアクセス特権は実行のアクセスしか許容せず、また
他方のその主題テンプレートは1回のみの主題アクセス
を許容しその組をなすアクセス特権は読出し、書込みお
よび実行のアクセスを許容する。このようなACLはCS101
10のどのユーザでも手順目的608において手順602を実行
することを許容するが特定のユーザに帰属して指定され
たグループの手順602を実行する特定のプロセス610のみ
が手順目的608における手順602を検査しあるいはこれを
修正することができる。
ACLには2種類のものがある。全ての目的は元のアクセ
ス制御リスト(PACL)であり、ETOは更に拡張されたア
クセス制御リスト(EACL) を有する。ACLFのこの主部は全てのACLEにおいて同じで
あり、2つの種類のリストはこれが制御するアクセスの
種類において異なる。PACKにより制御されるアクセスは
KOSにより規定され、かかるアクセスを行なうための試
み毎にKOSにより検査され、EACLにより制御されるアク
セスはユーザによつて規定され、ユーザがKOSにその実
施を望む時にのみ検査される。
e.目的の構成 1.序論(第407図、第408図) CS10110のユーザは、今述べた許りの目的とそれ自体を
関連させることのみを必要とする。あるプロセス610が
1つの目的を照合するためには、この目的のLAU40405は
プロセス610が実行中であるCS10110からアクセス可能で
なければならず、プロセス610は目的のUID40401を知ら
ねばならず、またプロセス610のその時の主題は所要の
方向で目的に対するアクセス権を持たねばならない。プ
ロセス610は、如何にして目的の内容40406および属性40
404がCS10110の物理的素子に記憶されるかについても、
あるいはCS10110が内容40406および属性40404をプロセ
ス610にとつて使用可能にするため用いる方向について
もこれを知る必要はない。
他方、KOSは、目的をCS10110を構成する物理的素子に関
して構成しなければならない。その際、KOSは次の2組
の物理的な制限を考慮に入れなければならない。即ち、 −論理的には、全てのCS10110は単一の論理メモリーを
持つが、システムにおけるメモリーの物理的構成は階層
的であり、あるCS10110は比較的小さなMEM10112に対す
る迅速なアクセスを行ない、遅い比較的大きなED10124
に対しては遥かに遅いアクセスを行ない、他のアクセス
可能なCS10110に関してはLAU40405に対して非常に遅い
アクセスを行なう。
−UID40401、および更に主題さえもJP10114の内部デー
タ経路およびJP10114のレジスタにおいて効率的に処理
するには大き過ぎる。
KOSがこれらの物理的制限を克服する手段は実施態様に
おいて異なる。ここでは、本実施態様において用いられ
る手段の概論を最初に述べ、次いでこの手段の詳細な論
議を行なう。
メモリーの物理的制約は、仮想記憶システムによつて克
服される。この仮想記憶システムはプロセス610の実行
により必要とされる目的の各部のコピーをMEM10112に自
動的に送りMEM10112から目的の変更された部分を再びED
10124にED10124に自動的にコピーすることによつて、1
つのレベルの論理的メモリーを形成する。このように、
目的は主としてED10124に存在するが、この目的の各部
のコピーは1つのプロセス610がこれを照合する時MEM10
112において使用可能となる。目的の各部をMEM10112に
送る代りに、必要に応じて、仮想記憶システムはこれら
の部分がMEM10112のどこに配置されるかを追跡し、プロ
セス610がMEM10112に存在する1つの目的の一部を照合
する時、仮想記憶システムはこの照合をMEM10112におけ
る1つの物理的場所に翻訳する。
比較的小さな目的の記述子および主題の記述子に対する
JP10114の要求は、JP10114内部の活動状態の目的番号
(AON)および活動状態の主題番号(ASN)と呼ばれる内
部の記述子の使用により満たされる。UID40401がMEM101
12からJP10114のレジスタに移動される毎に、このUIDは
AONに翻訳され、またAONがJP10114のレジスタからMEM10
112に移動される毎に逆方向の翻訳が生じる。同様に、
仮想プロセツサ612に束縛されたプロセス610のその時の
主題は4つのUID40401から小さな整数ASNに翻訳され、
仮想プロセツサ612がJP10114に束縛される時、仮想プロ
セツサ612のプロセス610に帰属する主題に対するASNはJ
P10114のレジスタに置かれる。UID40401から予めへの、
またその逆の翻訳、および主題からASNへの翻訳はKOSに
よつて行なわれる。
KOSがUID40401をAONへ、またその逆に翻訳する時、KOS
はAOT10712を使用する。AOT10712のある目的に対するエ
ントり(AOTE)は目的のUID40401を含み、AOT10712にお
けるAOTEの指標はこの目的のAONである。このため、あ
る目的のAONが与えられると、KOSはAOT10712を用いて目
的のUID40401を決定することができ、また目的のUID404
01が与えられると、KOSはAOT10712を用いて目的の予め
を決定することができる。もしこの目的は最近照合され
なかつたならば、この目的に対してはAOTEは存在せず、
このためこの目的のUID40401に対するAONは存在しな
い。もしUID40401をAONに変換する試みが目的が不活動
状態であることを明らかにするならば、不活動状態の目
的の障害が生じ、KOSはこの目的を活性化しなければな
らず、即ちこの目的にAONを割当ててこれに対しAOTEを
形成しなければならない。
KOSはAST10914を用いて主題をASNに翻訳する。あるプロ
セス610の主題が変化する時、AST10914はプロセス610に
新たな主題のASNを提供する。ある主題はこの時これと
関連したASNを持たない。このような主題は不活動状の
主題と呼ばれる。主題が不活動状態ならば、主題を1つ
のASNに転換する試みは、構成をして主題を活性化さ
せ、即ち主題に1つのASNを割当ててAST10914における
主題に対するエントリを行なう。
プロセス610によるプログラムの有効な実行を達成する
ため、KOSはプロセス610の実行によつて頻繁に使用され
る情報を加速する。下記の如く2段階の加速が存在す
る。即ち、 −情報を保有するテーブルはMEM10112に結線され、即ち
仮想記憶システムは決して他の目的に対するテーブルに
留保されたMEM10112の空間を使用しない。
−JP10114における特殊なハードウエア素子はテーブル
における情報の部分を保有する。
MHT10716と、AOT10712とAST10914は加速の第1段の事例
である。前述の如く、これらのテーブルは常にMEM10112
に存在する。アドレス翻訳装置(ATU)10228は第2段の
事例である。前述の如く、ATU10228は最も後に使用され
たMHT10716のエントリのコピーを含むハードウエア・カ
ツシエである。MHT10716のように、これは、AONオフセ
ツト・アドレスと対応するUIDオフセツト・アドレスが
照合するデータのコピーを保有するMEM10112の場所にAO
Nオフセツト・アドレスを翻訳する。ATU10228はKOSの論
理的アドレス翻訳(LAT)マイクロコードによつて保持
される。
第407図は、ATU10228と、MEM10112と、MHT10716と、KOS
LATマイクロコード40704間の関係を示している。JP101
14がメモリー照合を行なう時、AONオフセツト・アドレ
ス40705をATU10228に送る。もしATU10228がAONオフセツ
ト・アドレス40705対するMHT10716のエントリのコピー
を保有するならば、これは対応するMEM10112のアドレス
40706を即時生成してこのアドレスをMEM10112に転送す
る。もしコピーが存在しなければ、ATU10228は、JP1011
4においてLATマイクロコード40704を生じるATUミス事象
信号を生じる。KOS LATマイクロコード40704は、MHT107
16からのAONオフセツト・アドレスと対応するMHTのエン
トリを行ない、このエントリをATU10228に置いて戻る。
次にJP10114は照合操作を反復する。この時、この照合
に対するエントリが存在し、ATU10228はAONアドレスをM
EM10112に保持されたデータのコピーのアドレスに転換
する。
KOSテーブル、ハードウエア・カツシエおよび今述べた
マイクロコード間の関係は、CS10110の本実施例の場合
に典型的である。このテーブル(この場合は、MHT1071
6)は情報の主ソースであり仮想メモリーの管理プロセ
スにより保持されるが、カツシエがこのテーブルの各部
を加速してカツシエからの事象信号により生じるKOSマ
イクロコードによつて保持される。
AOT10712、AST10914およびMHT10716はCS10110の本実施
例の典型である別の特徴を共有する。即ち、テーブルは
所要の翻訳を実施するテーブルのエントリがハツシユ機
能およびハツシユ・テーブルによつて見出されるように
構成される。このハツシユ機能は、大きなUID40401また
は主題またはAONを小さな整数に翻訳する。この整数
は、ハツシユ・テーブルにおけるエントリの指標であ
る。このハツシユ・テーブルのエントリの内容は適宜AO
T10712またはAST10914またはMHT10716に対する指標であ
り、またこれらのテーブルは、このハツシユ・テーブル
により与えられる指標と対応するエントリが所要の翻訳
を実施することができるエントリであるか、あるいはKO
Sが所要のエントリを見出すことを可能にする情報を保
有するように保持されるのである。更に、このテーブル
におけるエントリはこれが翻訳する値を保有する。その
結果、KOSはこの値をハツシユして、エントリを見出
し、次いでこのエントリがハツシユされた値に対する1
つであるかどうかを形成することができる。もしそうで
なければ、KOSは迅速にハツシユ・テーブルにより見出
されたエントリか適正なエントリになることができる。
第408図は、如何にして本実施例におけるAST10914にお
いてハツシユ操作が作用するかを示している。本実施例
においては、主題40801、即ちその時の主題の主体、プ
ロセスおよび領域要素がハツシユ機能40802に入れられ
る。ハツシユ機能40802は、ASTHT10710におけるエント
リの指標を生じる。ASTHTエントリ40504は更にAST10914
におけるエントリ(ASTE)40806の指標を保有する。こ
れらのASTE40806の指標はASNである。ASTE40806は、主
体と、プロセスと、いくつかの主題およびASTE40806を
指示するリンク・フイールドの領域要素とを含んでい
る。ASTE40806はそのリンク・フイールドに0を含み、
これはASTE40806で始まるASTESのチエーンにおける最後
番号リンクであることを表示する。もしある主題のハツ
シエ操作がASTE40806を生じるならば、KOSはASTE40806
における主題をハツシユされた主題と比較し、もしこれ
が同じであれば、AST10914におけるASTE40806の指標は
主題のASNとなる。もしこれらが同じでなければ、KOSは
ASTE40806を見出すためASTE40806におけるリンクを使用
する。これはASTE40806における主題をハツシユされた
主題と比較し、もしこれらが同じならば、ASTE40806のA
SNの指標は主題の予めとなり、さもなければ、ASTE4080
6はこのチエーンにおける最後のエントリとなり、その
結果ASTE40806およびハツシユされた主題に対するASNは
存在しない。
以下においては、ED10124における目的の構成から始
め、次いでCS10110の活動状態の目的管理システム、ア
クセス制御システムおよび仮想メモリー・システムに及
ぶ本実施例における各目的の構成について詳細に論述す
ることにする。
2.ED10124における目的(第409図、第410図) 前述の如く、目的はLAU40405に収集される。各LAU40405
は、その内容が論理的割当て単位登録簿(LAUD)と呼ば
れるテーブルである。その名前が示唆するように、LAUD
はLAU40405における目的の登録簿である。LAUDを保有す
る目的を含むLAU40405における各目的は、このLAUDにお
けるエントリを有する。第409図は、ED10124、LAU4040
5、LAUDおよび各目的間の関係を示している。LAU40405
は多数の記憶素子40904に存在する。LAU40405におけるL
AUD目的40902はLAUD40903を含む。2つのLAUDE40906が
示される。その1つはLAUD目的40902の属性とその内容
の場合を含み、他方はLAUD40903を含むLAUD目的40902の
属性とその内容の場所を含む。
KOSは、LAU40405に帰属するLAUDを見出す活動状態のLAU
テーブル(ALAUT)と呼ばれるテーブルを使用する。第4
10図は、ALAUT41001、ALAUTエントリ41002、LAU40405お
よびLAUD目的40902間の関係を示している。CS10110にア
クセス可能な各LAU40405はALAUT41001におけるALAUTエ
ントリ41002を有する。LAU40405に対するALAUTエントリ
41002は、LAU40405のLAUID40402とAONオフセツト・アド
レス40705のLAUD目的40902のUID40401を含む。従つて、
ある目的のUID40401が与えられると、KOSはUID40401のL
AUID40402を用いてLAU40405に対するALAUTエントリ4100
2を見出すことができ、またALAUTエントリ41002を用い
てLAU40405のLAUD40903を見出すことができる。一旦LAU
D40903が見出されると、目的のUID40401のOSN部分40402
は適正なLAUDE40906を提供し、LAUDE40906は目的の属性
とその内容の場所を含んでいる。LAUD40903およびこれ
を操作する手順602は、不活動状態の目的管理プログラ
ムと呼ばれるKOSの一部に帰属する。この不活動状態の
目的管理プログラムの以下の論議は、目的の内容がED10
124において示される方法から始め、次いでOSN40403を
詳細に論議し、不活動状態の目的管理手順602により実
施される諸操作についての論議で終る。
a.a.ED10124における1つの目的の内容の提示 一般に、ある目的の内容がED10124において示される方
法は完全にED10124に依存する。もしLAU40405がデイス
クからなるならば、目的の内容はデイスク・ブロツクに
記憶される。KOSが目的の内容を見出すことができる限
り、記憶域が連続または非連続であることは何の差もも
たらさない。
本実施例においては、目的の内容はIOS10116に関して実
行するデータ・ゼネラル社の進歩した拡張オペレーテイ
ング・システム(AOS)の手順により形成されるフアイ
ルに記憶される。これらの手順はKOSに対する目的の内
容を保有するフアイルを管理する。将来のCS10110にお
いては、ED10124に関する目的の内容の表示はKOSの一部
によつて管理される。
b.b.LAUD40903(第411図、第412図) 第411図はLAUD40903の概念図である。LAUD40903は3つ
の部分を有する。即ち、LAUDヘツダ41102と、マスター
登録簿41105と、LAUDエントリ(LAUDE40906である。LAU
Dヘツダ41102およびマスター登録簿41105はLAUD40903に
おける固定された場所を占め、従つて常にALAUT41001に
おいて与えられるLAUD40903のUID40401から見出すこと
ができる。LAUDE40906の場所は固定されず、個々の目的
に対するエントリがマスター登録簿41105から見出すこ
とができる。
最初にLAUDヘツダ41102について述べればLAUDヘツダ411
02は、LAUD40903が帰属するLAU40405に帰属するLAUID40
402と、LAUD40903のOSN40403を含む。以下において更に
詳細に説明するように、KOSはLAUD40903に対するLAUDE4
0906を見出すためOSN40403を使用することができる。
次にマスター登録簿41105について見れば、マスター登
録簿41105は目的のOSN40403を目的のLAUDE40906の場所
に翻訳する。マスター登録簿41105はLAU40505における
各目的に対する1つのエントリ41108を保有する。各エ
ントリは2つのフイールド、即ちOSNフイールド41106お
よびオフセツト・フイールド41107を有する。OSNフイー
ルド41106はエントリ41108が帰属する目的に対するOSN4
0403を保有し、オフセツト・フイールド41107はLAUD409
03における目的のLAUDE40906のオフセツトを保有する。
KOSはOSN40403を増加することによつてエントリ41108に
指令し、従つてあるOSN40403を含むエントリ41108を見
出すため2進数探索手段を使用することができる。一旦
エントリ41108が見出されると、LAUD40903のOSN40403と
組合されたエントリ41108のオフセツト・フイールド411
07は目的のLAUDE40906のUIDオフセツト・アドレスを生
じる。
一旦KOSがLAUDE40906の場所を知ると、このKOSは目的の
属性40404とその内容40406の場所を判定することができ
る。第411図はLAUDE40906の全体的な構造の概略のみを
示している。LAUDE40906は3つの構成要素、即ちLAUDE4
0906に存在する固定サイズ41109のフイールドのグルー
プと、一方は目的のPACLに帰属するエントリを含む4113
9と他方は目的のEACLを含む41141の2つの可変サイズの
構成要素とを有する。
LAUDの構成要件の前の記述が示唆するようにLAUDE40906
およびエントリ41108はLAU40405における目的の数と共
に変化する。更に、目的のEACLおよびPACLに対して必要
とされる空間量は目的によつて変化する。KOSはこの問
題を各LAUD40903において自由空間41123を含ませること
によつて処理している。1つの目的が形成される時、あ
るいはある目的のACLが拡張される時、不活動状態の目
的管理プログラムは、単に自由空間41123が存在しなけ
ればLAUD40903を拡張し、もし自由空間41123が存在する
ならば、不活動状態の目的管理プログラムは自由空間41
123から必要な空間を取り、目的が削除されあるいは目
的のACLが短縮されるならば、不活動状態の目的管理プ
ログラムは不必要な空間を自由空間41123に戻すのであ
る。
第402は単一のLAUDE40906の詳細な表示である。第412図
は、CS10110の全ての実施態様に対して共通のLAUDE4090
6の各フイールドを示しており、実施態様により変化す
るフイールドは無視されている。第412図の上部から始
めて、構造変更フイールド41209はKOSがLAUDE40906のど
のバージヨンを処理しつつあるかを判定することができ
る情報を保有する。サイズ・フイールド41211はLAUDE40
906が帰属する目的のサイズ属性を保有する。このサイ
ズ属性はその時目的に含まれるビツト数を規定する。固
定フイールド41213はKOSの固定である。プロセス610の
論議において詳細に説明するように、固定フイールド41
213は一時に唯1つのプロセス610がLAUDE40906を読出し
あるいは書込むことを許容し、従つて別のプロセス610
がLAUDE40906の読出し中である間1つのプロセス610がL
AUDE40906を変更するのないようにする。フアイル記述
子41215は、LAUDE40906が帰属する目的の内容40406を含
むフアイルに対するシステム記述子を保有する。フアイ
ル記述子41215の形態は、実施例毎に変化し得、本実施
例においては、これはAOSシステム・フアイル記述子で
ある。UIDフイールド41217はLAUDE40906の目的に帰属す
るUID40401を含んでいる。元のタイプ・フイールド4121
9は目的の元のタイプを規定する値を含む。この目的
は、データ目的、手順目的608およびETMまたはSインタ
プリタ目的である。AONフイールド41221は、LAUDE40906
の目的が活動状態にある時、即ちAOT10712におけるエン
トリを有する時にのみ有効値を有する。もしこの目的が
ETOであれば、拡張タイプ属性フイールド41223がETOのE
TMのUID40401を含む。さもなければ、これは空白のUID4
0401を含む。同様に、もし目的が手順目的608またはETM
であれば、実行領域属性フイールド41225は目的の実行
領域属性を保有する。
LAUDE40906の残る部分はアクセス制御システムに帰属
し、その論議において詳細に説明する属性変更番号フイ
ールド41227は、このLAUDE40906がACLEのどのバージヨ
ンを含むかを示す値を保有し、PACLサイズ・フイールド
41229およびEACLサイズ・フイールド41231は各ACLのサ
イズを含み、PACLオフセツト・フイールド41233およびE
ACLオフセツト・フイールド41235は別のPACLE41139およ
びEACLE41141のLAUD40903におけるオフセツトを含み、
また固定PACLE41237は常にLAUDE40906に含まれるPACLの
部分を含む。
3.活動状態の目的(第413図) 活動状態の目的は、そのUID40401がこれと関連したAON
を有する目的である。本実施例においては、各CS10110
は1組のAONを有する。KOSは、如何なる時点においても
CS10110におけるAONが単一のUID40401を表わすようにこ
れらのAONをUID40401と関連させる。FU10120の内部にお
いては、AONはUIDのCS10110を表わすため使用される。
本実施例においては、AONは14ビツトによつて表わされ
る。112ビツトのUIDオフセツト・アドレス(UID40401に
対して80ビツト、およびオフセツトに対しては32ビツ
ト)がこのように46ビツトのAONオフセツト・アドレス
によつてFU10120の内部に表わされる(AONに対して14ビ
ツト、オフセツトに対しては32ビツト)。
CS10110は、UID40401におけるよりも遥かに少ないAONを
有する。KOSは、CS10110によつて照合されつつある目的
においてCS10110のAONを多重化し、従つて、UID40401と
同様にAONを要求する。あるAONは如何なる時も単一のUI
D40401を表わすが別の時点においては、UID40401はこれ
と関連する異なるAONを持つこともできる。
第413図は、AONおよびUID40401間の関係の概念的な表示
を提供する。各CS10110は2**80のUID40401に対する
潜在的なアクセスを有する。しかし、これらのUIDのあ
るものは目的以外のエンテテイを表わし、他のものは決
してどんなエンテテイとも関連しない。各CS10110はま
たこれに対し使用可能な1組のAON41303を有する。本実
施例においては、この組のAONは2**14までの値を持
つことができる。AONは内部的にしか使用されないた
め、各CS10110は同じ組のAON41303を持つことができ
る。組をなすAON41303におけるどのAON41304は目的のUI
D41301の組における単一のUID40401と関連することがで
きる。別の時点では、AON41304は異なるUID40401と関連
することができる。
前述の如く、KOSはAON41304をUID40401と関連させる。
これはAOT10712によつてそのように作用する。AOT10712
における各AOTエントリ(AOTE)41306はUID40401をAON4
1304と関連させる。AON41304は、UID40401を含むAOTE41
306の指標である。AOTE41306が変更されるまでUID40401
を含むAOTE41306の指標であるAON41304はUID40401を表
わす。AOT10712もまた、UID40401をAON41303に、またそ
の逆方向に転換させる。第413図は、UIDオフセツト・ア
ドレス41308およびAONオフセツト・アドレス41309に対
するプロセスを示す。AOTE41306は、AONオフセツト・ア
ドレス41309におけるAON41304をUIDオフセツト・アドレ
ス41308におけるUID40401と関連させ、アドレス41308お
よび41309は同じオフセツト41307を有する。その結果、
AONオフセツト・アドレス41309はJP10114内部のUIDオフ
セツト・アドレス41308を表わす。両アドレスは同じオ
フセツトを使用するため、AONオフセツト・アドレス413
09はそのAON41304をUIDオフセツト・アドレス41308のUI
D40401に転換することによつてUIDオフセツト・アドレ
ス41308に転換することができ、UIDオフセツト・アドレ
ス41308は逆のプロセスによつてAONオフセツト・アドレ
ス41309に転換することができる。両方の場合に、この
転換は適正なAOTE41306を見出すことによつて実施され
る。
目的が活動状態になるプロセスは目的活性化と呼ばれ
る。UIDオフセツト・アドレス41308は、そのUID40401が
帰属する目的が活動状態にならなければ、AONオフセツ
ト・アドレス41309に転換することはできない。もしプ
ロセス610が不活動状態の目的に帰属するUID40401を用
いる如き転換を実施することを試みるならば、不活動状
態の目的障害が生じる。KOSは、目的管理プロセスと呼
ばれる特殊なKOSプロセスが目的を活性化するまで、JP1
0114からの転換を試みたプロセス610を取除くことによ
つてこの障害を処理する。目的が活性化された後、プロ
セス610はJP10114に戻つてUID40401からAON41304への転
換を完了することができる。
活動状態の目的を管理するKOSの部分は、活動状態目的
管理プロセス(AOM)と呼ばれる。AOMの各部は手順602
であり、その各部はマイクロコード・ルーチンである。
AOMの高水準言語の構成要素は、プロセス610によつての
み生じ得る。KOSの目的管理のプロセス610は活動状態の
目的管理に含まれる諸機能のほとんどを実施する。
a.a.UID40401からAON41304への転換 一般に、CS10110においては、MEM10112およびED10124に
記憶されるアドレスはUIDオフセツト・アドレスとして
記憶される。FU10120がMEM10112における場合に転換す
ることができるアドレスの唯一の形態はAONオフセツト
の形態である。その結果、あるアドレスがMEM10112から
FU10120のレジスタにロードされる毎に、このアドレス
はUIDオフセツト・アドレスからAONオフセツト・アドレ
スに転換しなければならない。あるアドレスがFU10120
のレジスタから再びメモリーに対して移動される毎に、
逆方向の転換が実施されなければならない。
このような転換は如何なる時でも生じ得る。例えば、実
行中の仮想プロセツサ612は、この仮想プロセツサ612に
よつて実行中のプロセス610が間接的なメモリー照合を
実施する時にこのように転換を実施する。間接的なメモ
リー照合は、最初に1つのポインタを取出し、即ちその
値が他のデータ項目のアドレスであるデータ項目を取出
し、次いでこのポインタに含まれるアドレスを用いてこ
のデータ項目自体を取出す照合である。CS10110におい
ては、ポインタはUIDオフセツト・アドレスを表わす。
仮想プロセツサ612は、このポインタをMEM10112から取
出し、これをFU10120のレジスタに置き、このポインタ
により表わされたUID40401をこれと関連するAON41304に
転換し、その結果のAONオフセツト・アドレスを用いて
このアドレスにより指定される場合におけるデータをア
クセスすることによつて、間接メモリー照合を実施す
る。
しかし、ほとんどのこのような転換は、仮想プロセツサ
612の状態が保管もしくは復元される時に生じる。例え
ば、1つのプロセス610の仮想プロセツサ612がJP10114
から取り出され、別のプロセス610の仮想プロセツサ612
がJP10114に対し束縛される時、JP10114から取り出され
つつある仮想プロセツサ612の状態はメモリーに記憶さ
れ、またJP10114に束縛された仮想プロセツサ612の状態
はJP10114のレジスタに移動される。唯一のUIDオフセツ
ト・アドレスがメモリー内に記憶されるされるため、JP
10114から取り出されつつある仮想プロセツサ612の状態
における全てのAONオフセツト・アドレスがUIDオフセツ
ト・アドレスに転換されねばならない。同様に、JP1011
4に対して束縛されつつある仮想プロセツサ612の状態に
おけるUIDオフセツト・アドレスの全てが、これらがFU1
0120のレジスタにロードできる前にAONオフセツト・ア
ドレスに転換されなければならない。
C.アドレス制御システム 目的に対する序論において述べたように、プロセス610
がある目的においてデータまたはSINをアクセスする毎
に、KOSアクセス制御システムは、プロセス610が試みつ
つあるアクセスの種類を実施する権利をプロセス610の
その時の主題が有するかどうかを検査する。もしプロセ
ス610のその時の主題が適正なアクセスを行なわなけれ
ば、アクセス制御システムはプロセス610が実施を試み
つつあつたメモリー操作を打切る。以下の論議は、主題
から始め、次いで主題のテンプレートに進み、最後にア
クセス検査の加速のため使用される手段に至るアクセス
制御システムの構成の詳細について述べる。
a.主題 プロセス610の主題はプロセス610の状態の一部でありプ
ロセス目的と呼ばれる目的におけるプロセス610に帰属
する他の状態と共に保有される。プロセス目的は、目的
の論議に続くプロセス610の詳細な論議において詳しく
取扱われる。主題が前述の如く4つの構成要素、即ち主
体の構成要素、プロセスの構成要素、領域の構成要素お
よびタツグの構成要素を有するが、CS10110の本実施例
におけるアクセス制御システムは最初の3つの構成要素
にのみ諸数値を割当てアクセスの検査時にはタツグの構
成要素は無視する。
本実施例においては、プロセス610の主題の構成要素を
構成するUID40401は、UID40401により表わされるエンテ
テイに関する情報を含む目的のUID40401である。主体の
構成要素のUID40401は、主体目的と呼ばれる目的を表わ
す。主体目的は、プロセス610が検査されたユーザにつ
いての情報を保有する。例えばこの情報は、ユーザがCS
10110の資源に対してどんなアクセス権を有したかに関
連し、あるいはCS10110のユーザの使用の記録を保有す
る。プロセスの構成要素のUID40401はプロセス目的を表
わすが、領域構成要素のUID40401は領域目的と呼ばれる
目的を表わす。この領域目的は、その主題が領域目的の
UID40401をその領域の構成要素として有するどのプロセ
ス610に対してもアクセス可能でなければならない情報
を保有する。CS10110の他の実施例は、主題のタツグ構
成要素を使用することになる。これらの実施例において
は、タツグの構成要素のUID40401は、このタツグ構成要
素のUIDにより表わされる主題のグループを構成する主
題のリスト如き情報を少なくとも保持するタツグ目的の
UID40401である。
b.領域 前述の如く、主題の領域構成要素は、アクセス要求がな
される時そのコードが実行中である手順目的608またはE
TMに帰属する実行属性の領域である。主題の領域構成要
素は、このように、主題が帰属するプロセス610にそのA
CLがDOEの属性と整合する領域構成要素を含む主題テン
プレートを有するACLEを有する目的のグループに対する
潜在的なアクセスを与える。このグループの目的は、手
順目的608またはETMのDOEの属性によつて規定される領
域である。プロセス610が手順目的608または与えられた
DOE属性を有するETMからの手順602を実行する時、プロ
セス610はこのDOEの属性によつて規定される領域におい
て実行されると言われる。以上のことから推論されるよ
うに、異なる手順目的608またはETMは同じDOE属性を有
し得、また目的はこれらを多くの異なる領域の構成部と
するACLEを有することができる。
手順目的608のあるグループと目的の別のグループ間の
関係の確立に際して、ある領域はCS10110を使用するプ
ログラマがある与えられた目的が読出され、実行され、
あるいはある組の手順602によつてのみ修正されること
保証することを可能にする。このように、領域はCS1011
0において保護されたサブシステムを構成するために使
用することができる。このような保護が施されたサブシ
ステムを含むCS10110内の目的は全てその領域テンプレ
ート要素がKOS領域を表わすDOEのみと整合するACLを有
する。このDOEを有する手順目的608およびETMのみがKOS
手順602を含むものであり、また従つてKOS手順602のみ
がKOSテーブルの操作が可能である。
1つの目的が1つ以上の領域に帰属するため、プログラ
マは領域を用いてアクセスの階層を確立することができ
る。例えば、もし第1の領域におけるある目的が第1の
領域と第2の領域の双方に帰属し、また第2の領域の目
的の全てがまた第1の領域に帰属するならば、そのDOE
が第1の領域を規定する手順目的608に含まれるプロセ
ス610 2は、これもまた第2の領域に帰属するものを含
む第1の領域における如何なる目的でもアクセス可能で
あるが、そのDOEが第2の領域を規定する手順目的608か
らの手順602は第2の領域における目的のみをアクセス
可能であるのである。
c.アクセス制御リスト 前述の如く、アクセス制御システムは、1つの目的に対
するアクセスを行なうプロセス610に帰属する主題とプ
ロセス610が欲するアクセスの種類を比較して、このア
クセスが適正なものかどうかを判定する。ACLの以下の
論議は最初に主題のテンプレートを取扱い、次いでPACL
およびEACLを取扱う。
1.主題のテンプレート(第416図) 第416図は、主題テンプレート、PACLエントリ(PACLE)
およびEACLエントリ(EACLE)を示している。最初に主
題のテンプレートについて見れば、主題テンプレート41
601は4つの構成要素、即ち主テンプレート41606と、プ
ロセス・テンプレート41607と、領域テンプレート41609
と、タツグ・テンプレート41611とからなる。各テンプ
レートは2つのフイールド、即ちフレーバ・フイールド
41603とUIDフイールド41605とを有する。フレーバ・フ
イールド41603は、これが帰属するテンプレートがアク
セスを試みるプロセス610に対する主題の対応する構成
要素を整合する方法を示す。フレーバ・フイールド4160
3は3つの値の内の1つを有しそれがどれであれまたど
のグループであれこれと整合する。もしフレーバ・フイ
ールド41603がいずれとも整合する値を有するならば、
どの主題の構成要素のUID40401でもテンプレートと整合
し、アクセス制御システムはUIDフイールド41605の検査
は行なわない。もしフレーバ・フイールド41603が値整
合1を有するならば、対応する主題の構成要素はUIDフ
イールド41605に含まれるものと同じUID40401を持たね
ばならない。もしフレーバ・フイールド41603が最終的
に値整合グループを有するならば、UIDフイールド41605
は、与えられた主題構成要素が整合する主題構成要素の
グループについての情報を含む目的のUID40401を含む。
2.根源アクセス制御リスト(PACL) PACLは第416図に示されるようにPACL41613からなる。各
PACLE41613は2つの部分、即ち主題テンプレート41601
とアクセス・モード・ビツト・フイールド41615とを有
する。アクセス・モード・ビツト・フイールド41615に
おける値は、11種類のアクセスを規定する。この11種類
は2つのグループ、即ち根源データ・アクセスと根源非
データ・アクセスに該当する。根源データ・アクセスは
目的の内容40406に主題が行なうことができることを制
御し、根源非データ・アクセスは主題が属性40404に行
なうことができることを制御する。
3種類の根源データ・アクセス、即ち読出しアクセス、
書込みアクセスおよび実行アクセスが存在する。もしあ
る主題が読出しアクセスを行なうならば、これは目的に
含まれるデータを検査可能であり、もし主題が書込みア
クセスを行なうならば、目的に含まれるデータの変更が
可能であり、もしこれが実行アクセスを行なうならば目
的におけるデータを手順602として処理してこれを実行
することを試みることが可能である。主題はこのような
種類のアクセスあるいはこれらの種類の如何なる組合せ
も行なわない。1つの目的に対する照合毎に、KOSはこ
の照合を行なう主題が所要の根源データ・アクセスを行
なうかどうかを検査する。
ある目的に対する根源非データ・アクセスは、目的の属
性40404の設定または読出しのためのみに必要となり、
またこれら操作が行なわれる時のみ検査される。非デー
タ・アクセスの種類は属性40404の種類と対応する。即
ち、属性 アクセスの種類 目的の属性 目的の属性の取得 目的の属性の設定 根源の制御 根源属性の取得 属性 根源制御属性の設定 拡張制御属性 拡張制御属性の取得 拡張制御属性の設定 ETMアクセス ETMとして使用 ETOの形成 目的の属性に対するアクセス権は主題が前に述べた目的
属性を取得してこれを設定することを可能にする。根源
および拡張制御属性に対するアクセス権は、主題がそれ
ぞれ1つの目的のPACLおよびEACLを取得してこれを設定
することを可能にする。
目的はそのPACLにおいてどんな数のPACLE41613でも持つ
ことができる。ある目的のPACLにおける最初の5つのPA
CLE41613は目的に対するLAUADE40906の固定PACLEフイー
ルド41237に含まれ、残りはLAUDE40906のPACLオフセツ
ト・フイールド41233において指定された場合におけるL
AUD40903に記憶される。
3.APAM10918および機密保護カツシエ10234根源非データ
・アクセス権は、ユーザがこのようなアクセス権を要求
するKOSルーチンを生じる時のみ検査され、拡張アクセ
ス権はユーザがこのような桁送りを要求する時のみ検査
される。一方、根源データアクセス権は、仮想プロセツ
サ612がプロセス610の実行中にメモリー照合を行なう毎
に検査される。従つて、根源データ・アクセス権検査の
KOS構成は速度および効率に重点を有する。この構成に
対しては2つの部分、即ちMEM10112におけるAPAM10918
とJP10114における機密保護カツシエ10234が存在する。
APAM10918はKOSマイクロコードにとつて既知であるMEM1
0112の場所に存在する。APAM10918は、活動状態の目的
に帰属しかつその主題テンプレート41601が1つの目的
の主題に整合するPACLE41613からコピーされた根源デー
タ・アクセス情報を保有する。機密保護カツシエ10234
は更に、その仮想プロセツサ612がその時JP10114に対し
束縛されるプロセス610の活動状態の主題と、プロセス6
10により照合される活動状態の目的に対するAPAM10918
における情報のコピーを保有する。CS10110における根
源データ・アクセス検査は機密保護カツシエ10234から
開始し、もしこの情報が機密保護カツシエ10234に含ま
れなければAPAM10918に進行し、またもしここに含まれ
なければ、最終的には目的のPACLに至る。以下の論議は
APAM10918から始める。
第421図はAPAM10918を示す。APAM10918は二次元のアレ
ーとして構成される。このアレーの行の索引はAON41304
であり、その列の索引はASNである。CS10110の各AON413
04に対しては1つの行があり、各ASNに対しては1つの
列がある。第421図においては、唯1行と1列が示され
ている。AON41304jにより表わされる目的に対するAPAM1
0918におけるどの根源データ・アクセス情報も行42104
に含まれ、列42105はASNkにより表わされる主題に対す
るAPAM10918におけるどんな根源データ・アクセス情報
でも保有する。APAMエントリ(APAME)42106は行42104
および列42105の交点に存在し、このためその主題テン
プレート41601がASNkにより表わされる主題と整合するA
ON41304jによつて表わされる目的に帰属する前記PACLE4
1613からの根源データ・アクセス情報を保有する。
APAME42106の展開図がAPAM10918の表示の下方に示され
ている。APAME42106は4つの1ビツト・フイールドを有
する。このビツトは、APAME42106の列指標により示され
る主題がAPAME42106の行指標により示される目的に対し
て行なう根源データ・アクセスの種類を表わす。
−フイールド42107は有効ビツトである。もしこの有効
ビツトがセツトされると、APAME42106は列により示され
る主題と行により示される目的に対するどんな根源デー
タ・アクセス情報でも保有する。APAME42106における残
りのフイールドは単に有効ビツト42107がセツトされる
だけで有意義となる。
−フイールド42109は実行ビツトである。もしこれがセ
ツトされると、APAME42106の主題はAPAME42106の目的に
対する実行アクセスを行なう。
−フイールド42111は読出しビツトである。もしこれが
セツトされると、APAME42106の主題はAPAM42106の目的
に対する読出しアクセスを行なう。
−フイールド42113は書込みビツトである。もしこれが
セツトされると、APAME42106の主題はAPAME42106の目的
に対する書込みアクセスを行なう。
フイールド42109乃至42113におけるビツトのどんな組合
せでもセツトすることができる。もしこれらのフイール
ドの全てが0にセツトされると、APAME42106はこれが表
わす主題がこれが表わす目的に対するアクセスを行なわ
ないことを示す。
ASNにより表わされる主題が初めてAON41304により表わ
される目的を照合すると、KOSはASNおよびAONに対してA
PAME42106をセツトする。APAME42106がセツトされるま
で、有効ビツト42107は0にセツトされる。APAME42106
がセツトされると、有効ビツト42107は1にセツトさ
れ、フイールド42109乃至42113は、その主題テンプレー
ト41601が主題と整合する目的のPACLE41613における根
源データ・アクセス情報に従つてセツトされる。ある目
的が非活動状態に置かれる時、目的のAON41304に帰属す
る行における全てのAPAME42106における有効ビツト4210
7は0にセツトされ、同様に、主題が非活動状態に置か
れる時、主題のASNに帰属する列における全てのAPAME42
106における有効ビツト42107は0にセツトされる。
4.機密保護カツシエ10234および機密保護検査(第422
図) 機密保護情報の加速における最終段はJP10114における
機密保護カツシエ10234である。機密保護カツシエ10234
が機能する方法の詳細がハードウエアの論議において示
されるが、本論においては、機密保護カツシエ10234が
アクセス桁送りを行なう方法、機密保護カツシエ10234
とAPAM10918とAOT10712間の関係、およびKOSの保護カツ
シエ・マイクロコードが機密保護カツシエ10234を保持
する方法について論議される。
第422図は、機密保護カツシエ10234と、AOT10712と、AP
AM10918と、機密保護カツシエ10234を保持するKOSマイ
クロコード42207のブロツク図である。JP10114は論理記
述子27116を用いてメモリー照合を行なう毎に、同時に
論理記述子27116と、機密保護カツシエ10234とATU10228
に対してメモリー操作の種類を示す信号42208を表わ
す。機密保護カツシエ10234における保護カツシエ・エ
ントリ42215は、根源データ・アクセス情報と、その仮
想プロセツサ612がその時JP10114に束縛されるプロセス
610のその時の主題によつて前に照合された目的に対す
る長さ情報を保有する。メモリーの照合毎に機密保護カ
ツシエ10234はMEM10112に対して有効/無効信号42205を
送出する。もし機密保護カツシエ10234が論理記述子271
16のAONフイールド27111に含まれるAON41304に対するエ
ントリ42215を持たないか、保護カツシエ・エントリ422
15が主題プロセス610により要求されるタイプのアクセ
スを持たないことを示すか、あるいは論理記述子27116
のOFFフイールド27113およびLENフイールド27115の和が
目的のその時のサイズを越えるならば、機密保護カツシ
エ10234が無効信号42205を送出する。この信号はMEM101
12をしてメモリー照合の打切りを生じさせる。さもなけ
れば、機密保護カツシエ10234が無効信号42205を送出
し、MEM10112がメモリー照合を実行する。
機密保護カツシエ10234が無効信号42205を送出すると
き、これはDST20256に対する照合を行なうため使用した
論理記述子27116と、SCR27018に対するメモリー指令
と、もしこれが書込み操作であればDAT20258に対するDT
をラツチし、同時に2つの事象信号の内の1つをKOSマ
イクロコードに対して送出する。照合を実施中のプロセ
ス610が適正なアクセス権を持たないか、あるいは照合
されたデータが目的の終りを越えて拡張する時に、違法
アクセス事象信号42208が生じる。違法アクセス事象信
号42208は、KOSアクセス制御システムの手順602に対す
るマイクロコード対ソフトウエア呼出し42217(呼出し
の論議において説明する)を実施するKOSマイクロコー
ド42215を生じDST20256、SCR27018、プロセス610のASN
(レジスタGR10360に含まれる)、およびもし必要なら
ばDAT20258の内容を手順602に対して送る。これらの手
順602はEOSを保護機能の侵害について通知し、この時EO
Sはこれに対処する。
機密保護カツシエ10234においてAON41304に対する保護
カツシエ・エントリ42215が存在しない時、カツシエ・
ミス事象信号42206が生じる。カツシエ・ミス事象信号4
2206はKOSマイクロコード42207を生じ、これは、AOT107
12およびAPAM10918から得た情報からの未着の保護カル
シエ・エントリ42215を構成する。もしAPAM10918がその
時の主題のASNおよび照合中の目的のAONに対するエント
リを含まなければ、保護カツシエ・ミス・マイクロコー
ド42207は、目的に対するLAUDE40906になるKOSアクセス
制御システムの手順602に対するマイクロコード対ソフ
トウエア呼出しを実施して、その主題テンプレート4160
1がAPAM10918に対する照合を試みる主題と整合する目的
に帰属するPACLE41613からの所要の根源データ・アクセ
ス情報をコピーする。この時KOSアクセス制御システム
の手順602はそれ自体が戻るカツシエ・ミス・マイクロ
コード42207に戻る。オフセツト・フイールド41107が事
象信号によつて生成されたため、戻しはJP10114をして
保護カツシエ・ミスを生じたメモリー照合を再び検査す
る。もし機密保護カツシエ10234が最後の保護カツシエ
・ミスの結果としてラツチされたならば、このミスは反
復せず、もし所要の情報がAPAM10918に存在しなかつた
ため機密保護カツシエ10234はロードされなければ、こ
のミスは反復しないが、情報が前のミスの結果APAM1091
8に置かれたため、KOSマイクロコード42207がこの時機
密保護カツシエ10234におけるKOSマイクロコード42215
を構成する。KOSマイクロコード42207が戻る時、メモリ
ーの照合が再び試みられるが、この時機密保護カツシエ
10234は情報を含みミスは反復しない。
KOSマイクロコード42207は新たな保護カツシエ・エント
リ42215を生じ、これを下記の如く機密保護カツシエ102
34にロードする。即ち、ミスを生じたメモリー照合が実
行される時DST20256にラツチされた論理記述子27116か
らのAON41304と、GR10360に含まれたその時の主題のASN
を用いて、カツシエ・ミス・マイクロコードは、ASNに
より表わされる主題とAON41304により表わされた目的に
対するAPAME42106を見出し、APAME42106の内容をJPDバ
ス10142に対するソースとして作用するJP10114のレジス
タに対してコピーする。これはまた目的に対するAOTE41
306を見出すためAON41304を使用し、サイズ・フイール
ド41519の内容をJPDバス10142に対するソースである別
のJP10114に対してコピーする。これは次に、連続する
マイクロ命令において実行される3つの特殊なマイクロ
指令を用いて保護カルシエ・エントリ42215をラツチす
る。最初のマイクロ指令は保護カツシエ・エントリ4221
5のTS24010をDST20256にラツチされた論理記述子27116
のAON41304でラツチし、第2のマイクロ指令は目的のサ
イズを機密保護カツシエ10234のエクステント・フイー
ルドにロードし、また第3のマイクロ指令は同じ方法で
APAME42106の指令をロードする。
別のマイクロ指令は機密保護カツシエ10234における全
てのエントリ42215を無効化する。フラツシングと呼ば
れるこの操作は、1つの目的が非活動状態にされる時、
またはその時の主題が代る時に実施される。その時の主
題は、仮想プロセツサ612がJP10114との束縛から解除さ
れる時は常に、また呼出し側の手順602または戻し中の
手順602が実行する領域と異なる領域において実行する
手順602に対する呼出しまたはこれからの戻しを実施す
る時は常に変化する。呼出しの場合、および仮想プロセ
ツサ612の束縛解除の場合、カツシエのフラツシユはKOS
呼出しによつて実施されてマイクロコードを指名し目的
の非活性化の場合には、これはカツシエ・フラツシユ・
マイクロコードを生じる特殊なKOSSINを用いてKOS手順
により実施されるのである。
D.プロセス 1.プロセス610および仮想プロセツサ612の同期 プロセス610と、これが束縛される仮想プロセツサ612が
同時にCS10110に関して実行することができるため、KOS
は相互に依存するプロセス610を同期させるための装置
を提供しなければならない。例えば、もしプロセス610B
がある操作を実施し終るまでプロセス610Aが進行できな
ければ、Bの実行が完了するまでAの実行を延期するた
めの機構が存在しなければならない。一般に、次の4種
類の同期処置が必要となる。即ち、 −1つのプロセス610は停止して、あるタスクが進行す
る前にこのタスクを完了する別のプロセス610を待機す
るこができねばならない。
−プロセス610は別のプロセス610にあるメツセージを送
り、これが進行する前に返答を待機しなければならな
い。
−プロセス610があるデータ・ベースを共有する時、1
つのプロセス610は、最初のプロセス610がこのデータ・
ベースを用いて完了するまでこのデータ・ベースから他
のプロセス610を実行することができねばならない。
−1つのプロセス610は、別のプロセス610に割込む、即
ち第2のプロセス610をしてある動作を実施させること
ができねばならない。
KOSは各種の同期操作のための内部機構を有し、また更
にEOSに対する同期機構を供給する。KOSは仮想プロセツ
サ612とKOSのプロセス610を同期させる内部機構を使用
し、EOSは他の全てのプロセス610を同期させるためKOS
によつて供給される機構を使用する。この内部機構は下
記の如くである。即ち、 −事象カウンタ、待機エントリおよび待機テーブル。以
下において詳細に説明するように、事象カウンタと待機
エントリはある操作を完了するため1つのプロセス610
を停止させて別のプロセス610を待機させる。事象カウ
ンタおよび待機エントリはまたプロセスの割込みを構成
するためにも使用されり。待機エントリは待機テーブル
に構成される。
−メツセージのキユー。メツセージ・キユーは1つのプ
ロセス610があるメツセージを他のプロセス610に送つて
回答を待つことを可能にする。メツセージ・キユーは事
象カウンタおよびキユー・データ構造により構成されて
いる。
−ロツク。ロツクは1つのプロセス610があるデータ・
ベースまたはコードのあるセグメントからの他のプロセ
ス610を実行することを可能にする。ロツクは、事象カ
ウンタおよびシーケンサと呼ばれる素子から構成され
る。
KOSは事象カウンタと、待機エントリと、メツセージ・
キユーをEOSにより使用可能にする。これはロツクを生
じることなくシーケンサを生じその結果EOSはそれ自体
のロツクを構成することができる。以下の論議は、事象
カウンタ、待機エントリ、メツセージ・キユー、シーケ
ンサおよびロツクの論理的特性を規定しかつこれについ
て説明する。本実施例におけるそれらの構成について
は、プロセス610と仮想プロセツサ612の構成に沿つて記
述する。
a.事象カウンタ440801、待機エントリ440804および待機
テーブル(第448図、第449図) 事象カウンタ、待機エントリおよび待機テーブルはKOS
の同期システムの基本的な構成要素である。第448図
は、事象カウンタおよび待機エントリを示している。第
449図は本実施例の待機テーブルであるプロセス事象テ
ーブル44705の簡単な図を示している。最初に第448図に
ついて見れば、事象カウンタ44801は増加のみが可能な
値を保有するメモリーの領域である。本実施例の1つに
おいては、ページ誤りではないKOSシステムに対する事
象カウンタ44801は常にMEM10112に存在し、他の事象カ
ウンタ44801は、あるプロセス610がこれらを照合せず、
従つてVMMシステムとしてこれらをMEM10112にロードさ
せなければED10124に記憶される。事象カウンタ44801に
含まれる値は事象カウンタ値44802と呼ばれる。本実施
例においては、事象カウンタ44801は64ビツトのデータ
を保有し、その内60ビツトが事象カウンタ値44802を構
成する。事象カウンタ44801は変数と呼ばれ、あるいは
事象カウンタ44801の場所を保有する128ビツトのUIDポ
インタと呼ばれる。このUIDポインタは事象カウンタ448
03と呼ばれる。
待機エントリ44804は待機テーブルにおけるエントリの
一構成要素である。本実施例においては、2つの待機テ
ーブル、即ちプロセス事象テーブル44705および仮想プ
ロセツサ待機テーブル(VPAT)45401が存在する。VPAT4
5401は常にMEM10112に存在する。既に述べたように、第
449図はPET44705を示す。PET44705とVPAT45401の双方に
ついては後で詳細お説明する。各待機エントリ44804
は、事象カウンタ名前44803と、事象カウンタ値44802
と、プロセス610または仮想プロセツサ612を識別するバ
ツク・リンク44805とを含む。このように、待機エント
リ44804は、事象カウンタ44801と、事象カウンタ値4480
2と、プロセス610または仮想プロセツサ612間の関係を
確保する。
次に第449図について見れば、本実施例においては、ユ
ーザのプロセス610に対する全ての待機エントリ44804は
PET44705に保有される。PET44705はまた他の情報も保有
する。第449図は、待機エントリ44804を示すPET44705の
部分のみを示している。PET44705は特定の事象カウンタ
44801に帰属する待機エントリ44804の迅速な位置決めを
可能にするよう構成されている。PETエントリ(PPTE)4
4909は、これがPET44705におけるリストに組合されるこ
とを可能にするリンクを含んでいる。PET44705には4つ
の種類のリストが存在する。即ち、 −事象カウンタ・リスト:これらのリストは、その事象
カウンタ名前44803が1つの値に対してハツシユを行な
う事象カウンタ44801に対する全てのPPTE44909をリンク
する。
−待機リスト:これらのリストは、あるプロセス610が
待機中である事象カウンタ44801に対する全てのPPTE449
09をリンクする。
−割込みリスト:これらのリストは、あるプロセス610
に対するある割り込みを惹起させる事象カウンタ44801
に対する全てのPPTE44909をリンクする。
−自由リスト:前記リストの1つにおいて使用されない
PPTE44909が自由リストに存在する。
ある待機リストまたはある割込みリストに存在する各PP
TE44909もまたある事象カウンタ・リストに存在する。
最初に事象カウンタ・スストについて述べればある事象
カウンタ・リストにおける全てのPPTE44909は1つの値
に対してハツシユを行なう事象カウンタ名前44803を保
有する。この値はハツシユ機能44901により生成され、
次いでPETハツシユ・テーブル(PETHT)44903における
指標として使用される。PETHT44903におけるこのエント
リは、事象カウンタ・リストのヘツドであるこのPPTE44
909のPET44705において指標を含む。PETEリスト44904は
このような1つの事象カウンタ・リストを表わす。この
ように事象カウンタ名前44803が与えられるとKOSは事象
カウンタ44801に帰属する全ての待機エントリ44804を迅
速に見出すことができる。
本実施例においては、事象カウンタ44801の構成および
待機エントリ44804を含むテーブルは、プロセス610とこ
のプロセス610が束縛される仮想プロセツサ612の双方を
生じる。後で説明するように、プロセス610に帰属する
多くの事象カウンタ44801および待機エントリ44804は、
プロセスの仮想プロセツサ612に帰属する少数の事象カ
ウンタ44801と待機エントリ44804に対して多重化され
る。仮想プロセツサ612に帰属する事象カウンタ44801に
対する待機エントリ44804はVPAT45401に含まれる。
b.事象カウンタ44801および待機エントリ44804の同期操
作 KOSにより提供されるプロセス610の同期操作の最も簡単
な形態は、事象カウンタ44801と待機エントリ44804のみ
を使用する。連携動作はこのように生じる。即ち、プロ
セス610AはKOSに待機操作を実施することを要求し、即
ち1つ以上の待機エントリ44804を確保すること、およ
びこの待機エントリの1つが満たされるまでプロセス61
0Aを延期させることを要求する。待機操作の要素におい
ては、プロセス610Aはこれがどんな事象カウンタ44801
を待機中であるか、またこれらの事象カウンタ44801が
満たされるべきその事象カウンタ値44802に対してどん
な事象カウンタ値44802を持たなければならないかを規
定する。KOSが待機エントリ44804を確保した後、これは
プロセス610Aを延期する。プロセス610Aが延期させられ
る間、他のプロセス610がKOSにプロセス610Aの待機エン
トリ44804において規定された事象カウンタ44801に関す
る拡張操作を実施することを要求する。プロセス610が
事象カウンタ44801に関する拡張操作を要求する毎に、K
OSは事象カウンタ44801を増進させて事象カウンタ44801
の事象カウンタ44801を検査する。最後には、事象カウ
ンタ44801はプロセス610の待機エントリ44804の1つを
満たし、即ちプロセス610Aに対するその待機エントリ44
804に規定された事象カウンタ値44802と等しいかかある
いはこれより大きな値に達する。この時点において、KO
Sはプロセス610Aが実行を再開することを許容する。プ
ロセス610Aが実行を再開する時、これはその待機エント
リ44804の全てを削除するのである。
E.仮想プロセツサ612(第453図) 前述の如く、仮想プロセツサ612はプロセス610がMEM101
12に対するアクセスを行なう手段として論理的に規定す
ることができる。物理的には、仮想プロセツサは、仮想
プロセツサ612をJP10114に対して束縛しまたこれらプロ
セツサをJP10114から解除するKOSマイクロコードがこの
束縛および解除操作の実施を要求する情報を保有するME
M10112の領域である。第453図は仮想プロセツサ612を示
す。仮想プロセツサ612に帰属するMEM10112の領域は仮
想プロセツサ612の仮想プロセツサの状態ブロツク(VPS
B)614である。CS10110における各仮想プロセツサ612は
1つのVPSB614を有する。これと共に、VPSB614はVPSBア
レー45301を構成する。仮想プロセツサの管理システム
内部においては、各仮想プロセツサ612はVPSBアレー453
01における仮想プロセツサ612のVPSB614の指標であるそ
のVPSBアレー45301により既知である。仮想プロセツサ6
12はマイクロVPリスト(MVPL)45309に含まれるリスト
によつて管理される。各仮想プロセツサ612はMVPL45309
におけるエントリ(MVPLE)45321を有し、また仮想プロ
セツサ612が状態を変化する時、仮想プロセツサ管理マ
イクロコードはこれをMVPL45309における1つのリスト
から別のリストに移動する。
VPSB614は2つの種類の情報を保有する。即ち、 VPSB614の仮想プロセツサ612に束縛されるプロセス610
と帰属する手順目的901からの情報と、仮想プロセツサ6
12の管理のため仮想プロセツサ管理システムにより使用
される情報である。手順目的901からの最も重要な情報
は下記の如きものである。即ち、 −プロセス610の主なプロセスUID40401、および −プロセス610のスタツク目的44703のためのAON41304。
(VPSB614は、プロセス610が仮想プロセツサ612に束縛
される限りスタツク目的44703に帰属するAON41304が変
化しないことをKOSが保証するため、AON41304を使用す
る。) プロセス610のSS目的10336のAON41304が与えられると、
仮想プロセツサ管理システムは、プロセス610の仮想プ
ロセツサ612がJP10114に束縛される時JP10114に帰属す
るレジスタに移動されるプロセス610の状態の部分を見
出すことができる。同様に、仮想プロセツサ612がJP101
14から解除される時仮想プロセツサ管理システムはJP10
114の内容をSS10336における適正な場所に移動すること
ができる。
a.仮想プロセツサの管理(第453図) EOSは仮想プロセツサ612に関する6つの操作を実施可能
である。即ち、 −要求VP操作はEOSがKOSから仮想プロセツサ612を要求
することを許容する。
−解放VP操作はEOSが仮想プロセツサ612をKOSに戻すこ
とを許容する。
−束縛操作はプロセス610を仮想プロセツサ612に束縛す
る。
−解除操作はプロセス610を仮想プロセツサ612から解除
する。
−実行操作はKOSがプロセス610の仮想プロセツサ612をJ
P10114に束縛することを許容する。
−停止操作はKOSがプロセス610の仮想プロセツサ612をJ
P10114に対し束縛することを阻止する。上記の操作リス
トから判るように、EOSはJP10114に対する仮想プロセツ
サ612の実際の束縛に対する直接的な影響を持たない。
この操作は、デイスパツチヤと呼ばれるKOSマイクロコ
ードの一構成要素によつて実施される。デイスパツチヤ
のマイクロコードは次の4つの事柄の1つが生じる時は
常に実行される。即ち、 −その仮想プロセツサ612がその時JP10114に対して束縛
されるプロセス610が待機操作を実行すること。
−その仮想プロセツサ612がその時JP10114に対して束縛
されるプロセス610が、他のあるプロセス610に対する事
象カウンタ44801を満たす拡張操作を実行すること。
−INTTMR25410またはEGGTMR25412が桁あふれを生じて、
デイスパツチヤ・マイクロコードを生じる事象信号を生
じること。
−IOJPバス10132が活動状態になつて、デイスパツチヤ
・マイクロコードを生じる事象信号を生じること。IOS1
0116は、IOJPバス10132がJP10114に対するMEM10112に対
してデータをロードする時IOJPバス10132を活動状態に
させる。
デイスパツチヤ・マイクロコードはこれらの事象の1つ
により生じる時、MVPL45309におけるリストを検査して
どの仮想プロセツサ612が次に実行するかを判定する。
本論の目的においては、2つのリスト、即ち実行中のリ
ストおよび妥当なリストのみが重要である。本実施例に
おいては、実行中のMVPLE45321が先行する実行中のリス
トが1つのMVPLE45321、即ちその時JP10114に対して束
縛される仮想プロセツサ612を表わすもののみを含む。
多重JP10114の実施例においては、実行中のリストは1
つ以上のMVPLE45321を持つことができる。妥当リスト・
ヘツド45313が先行する妥当リストは、JP10114に対して
束縛することができる仮想プロセツサ612を表わすMVPLE
45321を保有する。妥当リストにおけるMVPLE45321はEOS
により優先順位が割当てられたプロセス610により指令
される。KOSデイスパツチヤ・マイクロコードが生じる
時は常に、その仮想プロセツサ612のMVPLE45321が実行
リストにあるプロセス610の優先順位を、その仮想プロ
セツサ612のMVPLE45321が妥当リストの先頭にあるプロ
セス610の優先順位と比較する。もし後者のプロセス610
が高い優先順位を持つならば、KOSデイスパツチヤ・マ
イクロコードは、前者のプロセス610の仮想プロセツサ6
12に帰属するMVPLE45321を妥当リストに置き、また後者
のプロセス610の仮想プロセツサ612に帰属するMVPLE453
21を実行リストに置く。次にデイスパツチヤ・マイクロ
コードは前者のプロセス610に帰属するJP10114における
状態を前者のプロセス610のSS10336に移動することによ
り、また後者のプロセス610に帰属するJP10114の状態を
後者のプロセス610のSS10336からJP10114に移動するこ
とによつてプロセス610をスワツプする。
b.仮想プロセツサ612および同期操作(第454図) 同期操作があるプロセス610に関して実施される時、こ
の操作の結果の1つは仮想プロセツサ612に関する同期
操作である。例えば、プロセス610に対する待機エント
リ44804を満たす拡張操作は、プロセス610の仮想プロセ
ツサ612に対する第2の待機エントリ44804を満たす拡張
操作を生じる。同様に、仮想プロセツサ612に関して実
施された同期操作は、その結果仮想プロセツサ612のプ
ロセス610に関する同期操作を行なうことができる。例
えば、もし仮想プロセツサ612がフアイル入出力を生じ
るある操作を実施するならば、仮想プロセツサ612のプ
ロセス610は入出力操作の完了を待機しなければならな
い。
第454図は、これにより処理レベル同期操作が仮想プロ
セツサ・レベルの同期操作を惹起しかつその逆の結果も
生じる手段を示している。本論は最初に、処理レベルの
同期操作を仮想プロセツサ612に対して転送する構成要
素、およびこれらの操作が行なわれる方法について記述
する。次いで、仮想プロセツサ・レベルの同期操作をプ
ロセス610に対して転送する構成要素およびこれら構成
要素の作用について記述する。
第1の組の構成要素はVPSBA45301とVPAT45401からな
る。VPSBA45301は本例においては2つのVPSB614を有す
るものとして示されるが、その1つはあるユーザ・プロ
セス610にされた仮想プロセツサ612に帰属するものであ
り、もう1つはKOSプロセス管理プロセス610に束縛され
たある仮想プロセツサ612に帰属するものである。VPAT4
5401は待機エントリ44804の仮想プロセツサ・レベル・
テーブルである。各待機エントリ44804が1つのVPATエ
ントリ(VPATE)45403に含まれる。1つのプロセス610
に束縛される各仮想プロセツサ612はVPAT45401における
4つのVPATE45403の1つのVPATチヤンク45402を有し、
このため如何なる時も4つまでの事象カウンタ44801を
待機することができる。仮想プロセツサ612のVPATチヤ
ンク45402の場所は、仮想プロセツサ612のVPSB614に保
持される。ある拡張操作が仮想プロセツサ612に帰属す
る待機エントリ44804のどれかを満たす時、仮想プロセ
ツサ612のVPATチヤンク45402の待機エントリ44804にお
ける全てが削除される。PET44705におけるように、ある
事象カウンタ44801を待機中の待機エントリ44804を含む
VPATE45403は1つのリストにおいて一緒にリンクされ
る。
ユーザのプロセス610に対して束縛された仮想プロセツ
サ612に対するVPATE45403はユーザプロセス610の専用事
象カウンタ45405に対する待機エントリ44804を含むこと
ができる。専用事象カウンタ45405はプロセス610の手順
目的901に含まれる。これは、プロセス610に帰属するPE
Tリストに関するPPTE44909における待機エントリ44804
が満たされる毎に拡張される。これらの構成要素は下記
の如く作用する。即ち、KOSがプロセス610に関して1つ
の待機操作を実施する時、これはPET44705とVPAT45401
の双方において待機エントリ44804を行ない、プロセス6
10の仮想プロセツサ612をMVPL45309における延期された
リストに置く。前述の如く、PET44705における待機エン
トリ44804は、待機エントリ44804を生じた待機操作に指
定された事象カウンタ44801を待機する。VPAT45401にお
ける待機エントリ44804はプロセス610の専用事象カウン
タ45405を待機する。PET44705におけるプロセス610に帰
属する待機エントリ44804が満たされる毎に、プロセス6
10の専用事象カウンタ45405が増進させられる。専用事
象カウンタ45405の増進はVPAT45401におけるプロセス61
0のプロセス610に対する事象カウンタ44801を満たし、
その結果、KOSは仮想プロセツサ612のVPATE45403を削除
してMVPL45309における仮想プロセツサ612のMVPLE45321
を延期されたリストから妥当リストに移動する。
仮想プロセツサ612が同期操作をプロセス610に対して転
送することを可能にする構成要素は下記の如くである。
即ち、対外信号目的(OSO)45409と、多重化された対外
信号事象カウンタ45407と、PET44705である。OSO45409
は、ユーザのプロセス610が待機中の諸操作を実施する
時、KOSFU10120マイクロコードが増進させる事象カウン
タ44801を保有する。OSO45409における事象カウンタ448
01はPET44705における事象カウンタ44801によつて待機
される。KOSFU10120マイクロコードがOSO45409における
事象カウンタ44801を増進させる度に、これはまた多重
化された対外信号事象カウンタ45407を増進する。これ
は、KOSプロセス610に束縛された仮想プロセツサ612に
帰属するVPAT45401における待機エントリ44804によつて
待機される。KOSプロセス管理プロセス610に束縛された
仮想プロセツサ612が再びJP10114に束縛される時、KOS
プロセス管理プロセス610はOSO45423における事象カン
ウタ44801に帰属する全てのPPTE44909を検査する。もし
事象カウンタ44801における事象カンウタ44801の増進が
PPTE44909のプロセス610を満たすならば、このプロセス
610の専用事象カンウタ45405は前述の如く増進され、プ
ロセス610は再び実行することができる。
ユーザ入出力操作は、構成要素が如何にして一緒に作用
するかを示している。各ユーザ入出力チヤネルがOSO454
09における1つの事象カンウタ44801を有する。あるプ
ロセス610が1つのチヤネルにおけるあるユーザ入出力
操作を実施する時、EOS入出力ルーチンが、OSO45409に
おけるこのチヤネルの事象カウンタ44801に対するプロ
セス610に帰属するPET44705のリストにおいて1つの待
機エントリ44804を確立する。入出力操作が完了する
と、IOS10116はMEM10112においてJP10114に対するメッ
セージを置いてIOJPバス10132を活動状態にする。IOJP
バス10132の活動状態は、KOSマイクロコードを生じるあ
る事象信号を生じる。このマイクロコードはIOS10116か
らのメッセージを検査してどのチヤネルが呼出されるか
を判定し、次いでOSO45409および多重化された対外信号
事象カウンタ45407におけるこのチヤネルに対する事象
カウンタ44801を増進させる。この対外信号事象カウン
タ45407はVPAT45401におけるプロセス管理プロセス610
の仮想プロセツト612に対する待機エントリ44804を満た
し、プロセス管理プロセス610は実行を開始する。プロ
セス管理プロセス610はOSO45409を検査して、プロセス
管理プロセス610が最後に実行してからOSO45409におけ
るどの事象カウンタ44801が増進されるかを判定し、ま
たこれがこのような事象カウンタ44801を見出す時、こ
れはこの事象カウンタ44801に対するPET44705における
事象カウンタ・チエーンを検査する。もしこれがこの増
進操作が事象カウンタ・チエーンにおける待機エントリ
44804を満たしたことを見出すならば、これは待機エン
トリ44804に規定されるプロセス610に帰属する専用事象
カウンタ45405を増進させ、これにより前述の如くこの
プロセス610に実行を再開させるのである。
F.プロセス610のスタツク操作 CS10110に対する説明の本項においては、プロセス610の
MAS502およびSS504が操作される方法について記述す
る。前述の如く、CS10110においては、プロセス610のMA
S502およびSS504がいくつかの目的に含まれている。本
実施例においては、5つの目的が存在する。即ち、1つ
はマクロスタツク(MAS)(MAS 目的 10328 乃至103
2C)の各定義域に対するもの、1つの機密保護スタツク
(SS)(SS 目的11336)に対するものである。下の実
施例においては、プロセス610のMAS502はユーザ規定の
定義域に対する目的を保有し得る。あるプロセス610のM
AS502およびSS504が多くの目的に含まれるが、これらは
単一の論理スタツクとして機能する。いくつかの目的へ
の分割は2つの事柄、即ち、手順602により照合される
1つの目的が手順602の実行領域を有することを要求す
る機密保護システムの定義域構成要素と、マイクロ機械
の状態とKOSによつてのみ操作することができる状態に
対するユーザ・プログラムに対しアクセス不能なある場
所に対する要求である。
スタツク操作は、下記の情況の下に生じる。即ち、 −手順602が生じるか、あるいは戻しSINが実行される
時。手順602の呼出しは1つの呼出しSINによつて行なわ
れる。呼出しは、呼出された手順602における最初のSIN
に対する制御の転送を生じ、戻しSINは呼出しSINに続く
呼出し手順602におけるSINに対して戻す制御の返送を生
じる。
−非局所GO−TのSINが実行される時。この非局所GO−T
Oは前にプロセス610により呼出されかつその呼出しが未
だ終了していないある手順602における任意の位置に対
する制御の転送を生じる。
−ある条件が生じる時。即ち、あるプログラムにおける
あるステートメントの実行が実行プロレセス610を前に
確保されたハンドラ手順602の実行を要求する状態に置
く時。
−あるプロセス610が割込みされる時、プロセス610に対
するある割込みエントリ45718が満たされる時。
スタツク操作において呼出された機構のほとんどは呼出
しおよび戻しにおいて使用され、従つてこれらの操作は
詳細に処理され、他の操作は呼出しおよび戻しとは異な
るもののみである。本論は最初に呼出しおよび戻し操作
について紹介し、次いでスタツクについて詳細に説明
し、最後に呼出しおよび戻しその他の操作について詳細
に分析する。
1.呼出しおよび戻しの概要 あるプロセス610が1つのプログラムを実行する時、こ
れは呼出しおよび戻しSINを実行する。ある呼出しSINは
1つの手順602の呼出しを開始し、ある戻しSINはこの呼
出しを終了する。一般に、1つの呼出しSINは下記の事
柄を行なう。即ち、 −これは、呼出しSINを含む手順602のプロセス610の実
行の状態を保管する。この状態に含まれているのは、呼
出しSINが完了した後手順602の実行を継続するため必要
な情報である。この状態の部分は手順602のマクロ状態
呼出しと呼ばれる。
−これは、手順602と呼ばれる実行を開始することをプ
ロセス610が要求する状態を生じる。
−これは、呼出された手順602のコードにおける最初のS
INに制御を転送する。戻しSIN操作はその反対を行な
う。即ち、これは呼出された手順602の状態を解放し、
この保管された呼出し側の手順602の状態を復元し、呼
出しSINに続く呼出し側の手順602におけるSINに対して
制御を転送する。ある手順602の呼出しは、制御を手順6
02に転送する呼出しSINの実行から、呼出しSINを含んだ
手順602に対し再び制御を返送する戻しSINの実行まで継
続する。1つのプロセス610によるある手順602のある呼
出しに帰属する状態は、手順602の呼出し状態と呼ばれ
る。
呼出しおよび戻し操作が多く異なる方法で構成すること
ができるが、これら操作をスタツクを用いて構成するこ
とが有利である。ある呼出しがある手順602に対する呼
出し状態を生じる時、この呼出し状態はプロセス610の
スタツクの最上位に対して加えられる。1つの手順602
の呼出し状態を含む1つのスタツクの領域はフレームと
呼ばれる。ある呼出された手順602は別の手順602を読出
すことができるため、また更に別の手順602を読出すこ
とができるため、スタツクは多数のフレームを持つこと
ができ、各フレームはプロセス610による手順602の呼出
しから生じる呼出し状態を含み、各フレームはこれが提
供する呼出しが続く限り継続する。呼出された手順602
がその呼出し側に戻る時、これが実行するフレームは解
放され、呼出し側はそのフレームについての実行を再開
する。その時1つのプロセス610により実行中の手順602
は、このように常にプロセス610のMAS502の最上位のフ
レームに関して実行するのである。
CS10110における呼出しおよび戻しは、プロセス610の状
態の保存のためスタツクを使用する他のコンピュータ・
システムにおける場所と同様な論理的挙動を示す。1つ
のプロセス610が1つの呼出しSINを実行する時、このSI
Nはマクロ状態としてABPのその時の値と、呼出し側の手
順602の実行が継続すべきSINの場所と、手順602のS言
語に対するSインタプリタを保有するSインタプリタ目
的に帰属する呼出し側の手順602の名前テーブル10350と
UID40401に対するポインタの如き情報を保管する。この
時呼出しSINは呼出された手順602に対するスタツク・フ
レームを形成し、適正なABP値と、呼出された手順602の
名前テーブル10350の場所と、そのSインタプリタ目的
に帰属するUID40401を取得し、新たに形成されたスタツ
ク・フレームに関する新たに生じた手順602の実行を開
始する。この戻しSIN操作は、スタツク・フレームを削
除し、呼出しSINの間保管されたマクロ状態からABP値お
よび名前インタプリタ情報を取得し、次いで制御を呼出
し側の手順602の実行が継続すべきSINに対して転送す
る。
しかし、呼出しおよび戻し操作が構成される方法はCS10
110のアクセス制御システムにより大きく影響を受け
る。広義において、CS10110には2つの種類の呼出しお
よび戻し操作がある。即ち、KOSにより仲介されるもの
と、そうでないものである。以下の論議においては、前
者の種類の呼出しおよび戻し操作は仲介された呼出しお
よび戻し操作と呼び、また後者は近隣呼出しおよび戻し
操作と呼ばれる。CS10110により実行されるほとんどの
呼出しおよび戻し操作は近隣呼出しおよび戻しであり、
仲介呼出しおよび戻しは、典型的にはユーザ手順602がE
OS手順602を呼出し、更にこれらがKOS手順602を呼出す
時に実行される。仲介呼出しは、CS10110のこれらの諸
機器を誤使用から保護しながらCS10110の機器をユーザ
プロセス610から使用可能にし、従つて一般に現在の技
術におけるシステム呼出しと同じ目的NI役立つものであ
る。以下の論議において判るように、仲介呼出しは、近
隣呼出しに勝るCS10110のオーバーヘツドを必要とする
が、余分のオーバーヘツドは本技術におけるシステム呼
出しによつて一般的に必要とされるものよりは少ない。
仲介呼出しおよび戻しはSインタプリタ、名前空間およ
びKOSマイクロコードを生じる。Sインタプリタおよび
名前空間マイクロコードは呼出しに関与する名前を解釈
し、また単にSインタプリンタに対するアクセス可能な
マクロ状態の部分を修正するのみである。残るマクロ状
態は、呼出しSINの過程において生じるKOSマイクロルー
チンによつて修正される。仲介呼出し操作は、プロセス
610の主題が呼出し操作の発生時に実行アクセスを行な
う目的に含まれるどんな手順602に対しても行なうこと
ができる。仲介呼出しおよび戻し操作は、以下の情況に
おいて行なわれなければならない。即ち、 −呼出された手順602は呼出し側の手順602により使用さ
れるものからの異なる手順環境記述子(PED)30303を有
する。このような呼出しは交差PED呼出しと呼ばれる。
−呼出された手順602が呼出し側の手順602からの異なる
手順目的608に存在する時。このような呼出し操作は交
差手順目的呼出しと呼ばれる。
−呼出された手順602の手順目的608が呼出し側の手順60
2の手順目的608の領域と異なる実行(DOE)属性の領域
を有し、従つてその呼出し状態を呼出し側の手順602に
より使用されるものと異なるMAS目的にその呼出し状態
を置かねばならない時。このような呼出し操作は交差領
域呼出しと呼ばれる。
前述の全ての呼出し操作において、この呼出しの完了の
ため必要とされる情報はSインタプリタに対しては使用
できず、その結果KOS仲介操作が呼出しの完了のため要
求される。近隣呼出しおよび戻し操作は単に2つのマク
ロ状態の構成要素、即ちその時のSINに対するポインタ
およびFPのABPしか修正しない。これらの構成要素の双
方は、呼出された手順602が同じPED30303を有する限り
Sインタプリタに対して使用可能であり、即ち同じ名前
テーブル10350およびSインタプリタまたは呼出し側の
手順602を使用し、また呼出し側の手順602と同じシラブ
ル・サイズを有する名前を有する。この要求しおよび戻
しSINは各S言語に特有のものであるが、これらはその
一般的な挙動において相互に相似する。以下の論議は専
らこの一般的な挙動について述べ、仲介呼出しおよび戻
し操作を中心とする。この論議は最初に1つのプロセス
610に帰属するMAS502およびSS504、および呼出しおよび
戻し操作に含まれる手順目的608の各部について述べ、
次いで呼出しおよび戻し操作の構成について述べる。
2.マクロスタツク(MAS)502(467図) 第467図は、プロセス610のMAS502に帰属する目的の概略
を示す。同図の説明の後には、MAS目的の各部の詳細な
説明を含む他の図面の説明が続く。
最小規模において、MAS目的46703は、これを構成する他
の素子に対して留保された未使用の記憶装置46727と共
にKOS MASヘツド10410を構成する。もしプロセス610
が、そのDOEがMAS目的46703に対するアクセスを要求す
るものである手順目的608において含まれた手順602の呼
出しから未だ戻らなければ、MAS目的46703は更に1つの
スタツク・ベース46703および少なくとも1つのMASフレ
ーム46709を更に構成する。
各46709はMAS目的46703により要求されるDOE属性を有す
る手順目的608において含まれる手順602の1つの仲介さ
れた呼出しを表わし、また更にこの手順602の手順目的6
08を共有する手順602の近隣呼出しを表わすことができ
る。最上位のMASフレーム46709は、MAS目的46703により
要求されるDOE属性を有する手順602の呼出しの最も新し
いグループを表わし、また最下位のMASフレーム46709は
これからプロセス610が未だ戻らない呼出しの最も早い
グループを表わす。他の領域の実行を含む手順602の呼
出しのためのフレームは、他のMAS目的46703に含まれ
る。以下において詳細に説明するように、異なるMAS目
的46703におけるMASフレーム46709はポインタによりリ
ンクされる。
MAS領域スタツク・ベース46703は2つの主な部分、即ち
MAS目的46703を操作するKOSマイクロコードにより使用
される情報を含むKOS MASヘツド10410と、MAS目的46703
の領域に関する情報と、静的情報即ちMAS目的46703に関
するMASフレーム46709を有する手順602により使用され
る呼出しより長く持続する情報を保有する領域毎の情報
を有する。MASフレーム46709もまた2つの主な部分、即
ちMASフレーム46709の操作のためKOSにより使用される
情報を含むKOSフレーム・ヘツダ10414と、その呼出しが
MASフレーム46709により表わされる手順602のグループ
を実行する時、Sインタプリタから使用可能な情報を保
有するSインタプリタ部分46713とを有する。
読出しおよび戻し操作を行なう時、前記Sインタプリタ
およびKOSマイクロコードはMAS 目的46703における場
所に対するポインタのグループを使用する。これらのポ
インタは下記のものからなる。即ち、 −MAS目的UID46715、AS目的46703のUID40401である。
−MAS目的46703における最初のMASフレーム46709に帰属
するKOSフレーム・ヘツダ10414の始めを見出す最初のフ
レーム・オフセツト(FFO)46719。
−MAS目的46703における最上位のKOSフレーム・ヘツダ1
0414の始めを見出すフレーム・ヘツダ・ポインタ(FH
P)46702。
−スタツク最上位オフセツト(STO)46704、即ち未使用
の記憶装置47727における最初のビツトを表示するMAS目
的UID46715からの32ビツトのオフセツト。ここで判るよ
うに、これら全てのポインタがKOS MASヘツダ46705にお
けるフイールドに含まれる。
a.a.MASベース10410(第468図) 第468図は、MAS 領域KOS MASヘツダ10410の詳細を示す
図である。最初に同図に含まれるKOS MASヘツダ46705の
詳細図について説明すると、以下の如きフイールドが含
まれる。即ち、 −KOS MASヘツダ46705のフオーマツトに関する情報を含
むフオーマツト情報フイールド46801。
−フラツグ・フイールド46803。これらのフラツグの
内、唯1つ、即ち領域の活動状態フラツグ46804が本論
において重要である。このフラツグは、MAS目的46703が
帰属するプロセス610が、その呼出し記録がKOS MASヘツ
ダ46705が帰属するMAS目的46703に保有される最上位のM
ASフレーム46709を構成する手順602の呼出し操作を実行
中である時、「真の」状態にセツトされる。
−FFO フイールド46805。全てのKOS MASヘツダ46705お
よびMASフレーム46709は、MAS 目的46703における前お
よび後のヘツダを見出すオフセツトを含むフイールドを
有する。1つのKOS MASヘツダ46705においては、前のヘ
ツダは部分せず、このフイールドは0にセツトされる。
−FFOフイールド46805。このフイールドは以降のヘツダ
を見出す。KOS MASヘツダ46705においては、次のヘツダ
がMAS目的46703における最初のフレーム・ヘツダである
ため、このフイールドはFFO46719を含む。
−STOフイールド46807。このフイールドはSTOオフセツ
ト46704を含む。
−プロセスIDフイールド46809。即ち、MAS目的46703が
帰属するプロセス610に対する手順目的901に帰属するUI
D40401。
−領域環境情報ポインタ・フイールド46811。このフイ
ールドに含まれるポインタは領域固有情報を含む領域を
見出す。本実施例においては、この領域はKOS MASヘツ
ダ10410の一部であるが、しかし他の実施例においては
これは別の目的に保有することができる。
−信号側ポインタ・フイールド46813。このフイールド
に含まれるポインタは、あるプロセス610がMAS目的4670
3が帰属する領域において実行中このプロセス610の実行
が1つの条件を生じされる時にKOSが生じる1つの手順6
02を見出す。
−AATポインタ・フイールド。フイールド30211における
このポインタがMAS目的46703に対するAAT30201を見出
す。AAT30201については第3章に詳細に説明した。
−フレーム・ラベル・シーケンサ・フイールド46819。
このフイールドはシーケンサ45102を含む。シーケンサ4
5102は、非論理的GO−TO命令が実行される時MASフレー
ム46709を見出すため使用されるラベルを生成するため
に使用される。
次に、領域環境情報ポインタ・フイールド46811により
見出される領域環境情報46821の詳細な点については、
下記のフイールドが存在する。即ち、 −KOSフオーマツト情報フイールド46823。
−下記のフラツグを含むフラツグ・フイールド46825。
即ち、 −プロセス610がMAS目的46703が帰属する領域に対して
継続中の割込みを行なう時「真」の状態にセツトされた
継続割込みフラツグ46827。
−プロセス610がもはやMAS目的46703が帰属するものと
等しい実行の領域を有する手順602を実行できない時
「真」の状態にセツトされた領域デツド・フラツグ4682
9。
−エントリ・フラツグ46833に関する呼出し検査、およ
び出口フラツグ46835に関する呼出し検査。前者のフラ
ツグは、手順602が領域がMAS目的46703に関する実行を
許容される前に領域のデータ・ベースを検査する手順60
2をKOSが呼出すべき時「真」の状態にセツトされ、後者
は、KOSがそのDOEとして領域を有する手順602からの出
口においてこのような手順602を呼出すべき時「真」の
状態にセツトされる。
−領域に対して誤つたクリーンアツプ・ハンドラが存在
する時、誤りハンドラの非空白フラツグ46835がセツト
される。クリーンアツプ・ハンドラについては以下にお
いて説明する。
−割込みマスク・フイールド46839は、MAS目的46703の
領域におけるプロセス610に対してセツトされた割込み
のどれが満たされるかを判定する。
−領域UIDフイールド46841はMAS目的46703が帰属する領
域に対するUID40401を保有する。
−フイールド46843乃至46849は、手順602に対するポイ
ンタまたは手順602に対するポインタのテーブルであ
る。このように見出された手順602は、MAS 502が操作
される時生じる情況を取扱う。これらのフイールドの使
用は、その使用を要求する諸操作の説明が進むに伴なつ
て明らかになろう。
b.b.領域毎のデータ領域46853(第468図) 領域毎のデータ領域46853が、MAS 目的46703の領域に
おいて実行中の手順602の呼出しに帰属するMASフレーム
46709において保持できないがこれらの要素しに対して
使用可能でなければならないデータを含む。領域毎のデ
ータ領域46853は2つの構成要素、即ち記憶領域46854と
AAT30201を有する。記憶領域46854はMAS目的46703に関
する読出しを含む手順602により使用される静的データ
と、このような手順602によつて使用されるSインタプ
リタにより使用されるデータとを保有する。関連するア
ドレス・テーブル(AAT)30201は記憶領域46854におけ
るデータを見出すため使用される。AAT30201の詳細な論
議は第3章に含まれる。
記憶領域46854においては2種類のデータ、静的データ
およびSインタプリタ・データが記憶される。
静的データは静的データ・ブロツク46863に記憶され
る。静的データ・ブロツク46863は2つの部分、即ち連
係ポインタ46865および静的データ記憶域46867からな
る。連係ポインタ46865は静的データ記憶域46867には含
まれない静的データ、例えばプロセス610よりは長く持
続しないデータに対するポインタであり、静的データ記
憶域46867が帰属する手順602が生じる外部手順602に対
するポインタである。静的データ記憶域46867は、手順6
02を実行するプロセス610よりも長く持続しない手順602
により使用される静的データに対する記憶域を含む。
Sインタプリタ・データは、MAS目的46703に関して実行
中の手順602によつて使用されるSインタプリタにより
必要とされるデータである。Sインタプリタ・データ
は、静的データ・ブロツク46864と同様にAAT30201を介
して見出力されるSインタプリタ環境ブロツク(SEB)4
6864に記憶される。静的データ・ブロツク46864の内容
はSインタプリタに依存する。
c.c.MASフレーム46709の詳細について(第469図) 第469図はMAS目的46703における典型的なフレームを示
している。各MASフレーム46709は、そのDOEの属性がMAS
目的46703に関する実行のため必要なものである手順目
的608において含まれる手順602の仲介された呼出しによ
り生じる仲介フレーム46947を保有する。仲介フレーム4
6947は、手順602の隣接呼出しにより生じる隣接フレー
ム46945が続く。仲介フレーム46947は2つの部分、即ち
KOSマイクロコードにより操作されるKOSフレーム・ヘツ
ダ10414と、Sインタプリタおよび名前空間マイクロコ
ードにより操作されるSインタプリタ部分とを有する。
隣接フレーム46945は KOSフレーム・ヘツダ10414は持
たない。第469図を詳細に照合すれば明らかになるよう
に、本実施例における仲介フレーム46947はマクロ状態
を含まない。本実施例においては、これらのフレームに
対するマクロ状態はSS10336に書込んで保持されるが、
別の実施例においては、マクロ状態は仲介フレーム4694
7において記憶することができる。隣接フレーム46945
は、隣接呼出しにより操作することができるマクロ状態
の部分を含み、このマクロ状態の場所は隣接呼出しSIN
に依存する。
次に、KOSフレーム・ヘツダ10414について述べれば、下
記の如きフイールドが存在する。即ち、 −MASフレーム46709のフオーマツトに関する情報を含む
KOSフオーマット情報フイールド46901。
−フラツグ・フイールド46902。このフイールドは下記
のフラツグを含む。即ち、 −交差領域呼出しフラツグ46903の結果。このフラツグ
は、もしこのMASフレーム46709に先行するMASフレーム4
6709が別のMAS目的46703に存在するならば真である。
−シグナルであることの照会フラツグ46905。このフラ
ツグは、もしMASフレーム46709がシグナラの手順602の
呼出しによつて生じたならば、真になる。
−戻らないフラツグ46907。このフラツグは、もしプロ
セス610がこのMASフレーム46709が生成された呼出しに
対して戻るべきでないならば、真となる。
−フラツグ46909乃至46915は、処理中の条件において使
用された種々のリストおよび非局所GO−TOがMASフレー
ム46709に存在するかどうかを表示する。
−前にフレーム・オフセツト・フイールド46917と、次
のフレーム・オフセツト・フイールド46919と、フレー
ム最上位オフセット・フイールド46921は、MAS目的4670
3における前のMASフレーム46709に対するKOSフレーム・
ヘツダ10414が開始する場所と、MAS目的46703における
次のMASフレーム46709に対するヘツダが開始する場所
と、MASフレーム46709の最上位を越える最初のビツトの
場所をそれぞれ提供するオフセツトである。
−フイールド46923乃至46927は、MASフレーム46709のS
インタプリタ部分46713におけるリストを見出すオフセ
ツトである。KOSは諸条件および非局所GO−TOを処理す
るこのようなリストを確保する。それらの使用にいては
それぞれの見出しにおいて詳細に説明する。
−フイールド46929乃至46933は、呼出しがMASフレーム4
6709により示される手順602に関する情報を含む。フイ
ールド46929は手順602により要求されるアーギュメント
番号を含み、フイールド46933は手順602のPED30303に対
する解を有するポインタを保有する。これら両方のフイ
ールドは主としてデバツギングのために使用される。
−動的バツク・ポインタ・フイールド46913は、MASフレ
ーム46709が異なるMAS目的46703に含まれる時プロセス6
10のMAS502に帰属する前のMASフレーム46709に対する解
を有するポインタを含む。この場合、フラツグ46903は
真にセツトされる。前のMASフレーム46709が同じMAS目
的46703に含まれる時、動的バツク・ポインタ・フイー
ルド46931はある空白UID40401を含むポインタを含み、
交差領域呼出しフラツグ46903は偽にセツトされる。
−フレーム・ラベル・フイールド46935は、制御をMASフ
レーム46709により表わされる呼出しに対して制御を転
送する非局所GO−TOが確保される時に生じるフレームラ
ベルに対するものである。このラベルは、KOS MASヘツ
ダ10410におけるフレーム・ラベル・シーケンサ46819に
よつて生成される。MASフレーム46709におけるSインタ
プリタ部分46713は、Sインタプリタの制御下にあるMAS
フレーム46709の各部からなる。Sインタプリタ部分467
13は更に2つの主なサブデビジョン、即ち仲介フレーム
46947と隣接フレーム46945からなる。仲介フレーム4694
7と隣接フレーム46945のSインタプリタ部分46949の正
確な形態は、問題となるフレームを生成した呼出しSIN
に依存する。しかし、全ての隣接フレーム46945と仲介
フレーム46947のSインタプリタ部分46949は、連係ポイ
ンタ10416とこのフレームにおける局所データをセツト
するための同じアーギュメントを有する。連係ポインタ
10416は、呼出しにおいて使用された実際のアーギュメ
ントの場合に対するポインタであり、また局所記憶装置
10420は呼出しの間のみ存在するデータを含む。全ての
仲介フレーム46947および隣接フレーム46945において、
連係ポインタ10416は局所記憶装置10420に先行する。更
に、仲介フレーム46947または隣接フレーム46945がプロ
セス610のMASの最上位のフレームである時、即ちプロセ
ス610がこのフレームに関して実行中、FPは常に局所記
憶装置10420の始めを指示し、連係ポインタ10416の始め
は常にFPからの既知の変位状態にある。連係ポインタ10
416に対する照合は、従ってEPからの負のオフセツトと
して表わすことができ、また局所記憶装置10420に対す
る照合は正のオフセツトとして表わすことができるので
ある。
更に、Sインタプリタ部分46713は、非仲介呼出しに対
するSインタプリタ・フレームと同様に非局所GO−TOお
よび諸条件を実行するためKOSにより使用される情報の
リストを含むことができる。このKOSにより使用される
情報リストは、リスト領域46943に含まれる。リスト領
域46943の正確な場所は、その呼出しが仲介フレーム469
47により表わされる手順602に対するSINおよび名前テー
ブルを生成するコンパイラにより判定される。手順602
のソース・テキストがリスト領域46943における記憶を
要求するステートメントを含む時、このコンパイラは局
所記憶装置10420に所要の記憶量を配するSINを生成す
る。KOSルーチンはこの時リスト領域46943にリスト形成
し、リストの種類に応じてリスト領域46923、または469
25、または46927にリストのヘツドのオフセツトを配す
る。これらのリストおよびその用途については後で詳細
に説明する。
3.SS504(第470図) 第470図はプロセス610に帰属するSS504の概略を示して
いる。SS504はSS目的10336に保持される。SS10336はKOS
マイクロコードのルーチンによつてのみ操作される。
Sインタプリタまたは名前空間マイクロコード、あるい
はプロセス610によつて実行されつつある手順602のいず
れもSS10336に保有される情報をアクセスすることがで
きない。
SS10336は2つの主な構成要素、即ちSSベース47001およ
びSSフレーム47003からなる。最初にSSフレーム47003の
全般的な構造について見れば、あるプロセス610が仲介
呼出しを実行する度にKOSマイクロコードはプロセス610
に帰属するSS10336において新たなSSフレーム47003を形
成し、またプロセス610が仲介戻し操作を実行する度にK
OSマイクロコードはSS10336からその時の最上位のSSフ
レーム47003を除外する。このように、プロセス610の50
3に関する各仲介フレーム46947毎に1つのプロセス610
に帰属するSS10336に関する1つのSSフレーム47003が存
在するのである。
SSフレーム47003は2種類のフレーム、即ち通常のフレ
ーム10510および交差領域フレーム47039を有する。交差
領域フレーム47039はプロセス610が交差領域呼出しを実
行する時は常に形成され、他の全ての仲介呼出しの場合
は、通常のフレーム10510が形成される。交差領域フレ
ーム47039は、SSフレーム47003を1つの領域における呼
出しのシーケンスに帰属するSSフレーム47003のグルー
プ47037に分割する。グループ47003における最初のSSフ
レーム47003は領域に入つた呼出しに対する交差領域フ
レーム47039であり、SSフレーム47003の残部はこの領域
における一連の呼出しに対する通常の通常のフレーム10
510である。これらのグループのSSフレーム47003は1つ
のMAS目的46703に仲介されたフレーム46947のグループ
と対応する。
a.a.SSベース47001(第471図) SSベース47001は4つの主な部分、即ち機密保護スタツ
ク10512、プロセス・マイクロ状態47017、JP10114に対
する記憶領域47033および初期化フレーム・ヘツダ47035
からなる。機密保護スタツク10512は下記の情報を含ん
でいる。即ち、 −SSベース47001およびフイールド47009はフラツグおよ
びフオーマツト情報を含み、これらのフイールドの正確
な内容は本論においては重要ではない。
−前のフレームオフセツト値フイールド47011はSS10336
におけるヘツダにおける標準的なフイールドであり、本
例においては前のフレームが存在しないためこれは0に
記憶される。
−機密保護スタツクの第1のオフセツト・フイールド47
013はSS10336における第1の交差領域フレーム47039の
オフセツト、即ち初期化フレーム・ヘツダ47035を含
む。
−プロセスUIDフイールド47015はSS10336が帰属するプ
ロセス610のUID40401を含む。
−交差領域フレーム・フイールド47016の番号はSS10336
における交差領域フレーム47039の番号を含む。
プロセス・マイクロ状態47017は、SS10336が帰属するプ
ロセス610を実行する時KOS マイクロコードによつて使
用される情報を含む。フレーム47019、47012および4702
2はSS10336における場所のオフセツトを含む。フレーム
47019はSS10336における第1の自由ビツトの場所である
SSTOの値を含み、フレーム47021はSS10336における最上
位フレームの場所であるSSFOの値を含み、最後に47022
はSS10336の最上位の交差領域フレーム47039の場所であ
るXDFOを含んでいる。
プロセス・マイクロ状態47017における問題の他のフレ
ームは、下記のものからなる。即ち、記憶域フイールド
47023におけるオフセツトはSS10336の記憶領域47033に
おける場所のオフセツトを含み、領域番号フイールド47
025はその時プロセス610により実行されつつある手順60
2のDOEに対する領域数を含んでいる。領域UIDおよび領
域番号間の関係にについては領域の論議において説明す
る。
VPATオフセツト・フイールド47027は、プロセス610が束
縛される仮想プロセツサ612に帰属するVPATチヤンク454
02のVPAT45401におけるオフセツトを保有する。SINポイ
ンタフイールド47029は領域番号フイールド47025により
規定される領域に帰属するシグナラ(処理中の状態にお
いてい使用される手順602)に対する解明されたポイン
タを保有し、追跡情報フイールド47031は後で述べるこ
の領域の追跡テーブルに対する解明されたポインタを保
有する。
JP10114のレジスタ内容47033に対する記憶域は、仮想プ
ロセツサ612が JP10114から取り出される時に使用され
る。この状態が生じると、仮想プロセツサ612がJP10114
に対する場所が解除されるため、あるいはCS10110が停
止されるため、またはCS10110が障害を生じたために、
仮想プロセツサ612に対して特定の情報を保有するJP101
14レジスタの内容は記憶領域47033にコピーされる。仮
想プロセツサ612がJP10114に対して戻される時、これら
のレジスタの内容は再びこれがやつてきたJP10114のレ
ジスタにロードされる。
最終に、初期化フレーム・ヘツダ47035はSS10336の生成
において使用されたダミー・フレーム・ヘツダとなる。
b.b.SSフレーム47003(第471図) 交差領域フレーム47039および 通常のフレーム10510の
論議から始めると、第471図はこれらの構造を詳細に示
している。通常のフレーム10510は3つの主な部分、即
ち通常のSSフレーム・ヘツダ10514と、マイクロ状態105
16と、マイクロ状態10520からなる。通常のSSフレーム
・ヘツダ10514は、通常のSSフレーム・ヘッダ10514が帰
属する通常のフレーム10510を操作するためKOSマイクロ
コードにより使用される情報を保有する。マクロ状態10
516は、呼出しの実行を再開するため必要なフレームの
仲介された呼出しおよび他の情報に対するABPの値を含
む。マイクロ状態10520はFU10120およびFU10122のレジ
スタからのマイクロ機械状態を保有する。このマイクロ
機械状態の量は情況に依存するが、本例においては、あ
るマイクロ機械状態が全ての仲介呼出しと同時に保管さ
れ、更に、もしあるプロセス610があるマイクロコード
対ソフトウエア呼出しを実行するならば、この呼出しの
時点で存在するマイクロ機械状態が保管され、最後に最
上位のSS フレーム47003に帰属するマイクロ状態10520
は、FU10120の GRF10354 またはEU10122のレジスタお
よびスタツク機構10216の容量を越える時これから転送
された情報を保有することができる。マイクロ状態1052
0のこの点に関する詳細に関しては、第2章におけるFU1
0120のマイクロ機械の論述を参照されたい。SS10336の
論議は、通常のSSフレームヘツダ10514およびマイクロ
状態05163に関して詳細を尽すことにする。
a.a.a.通常のSSフレーム・ヘツダヘツダ10514(第471
図) −通常のSSフレームヘツダ10514のフオーマツトを識別
するフオーマツト情報47103。
−本論において問題となる1つのフラツグを含むフラツ
グ・フイールド470105、即ちフレーム・タイプ・フラツ
グ470107。即ち、通常の通常のフレーム10510において
はこのフイールドは「障害」に記憶される。
−オフセツト・フイールド47109乃至47113。即ちオフセ
ツト・フイールド47109は前の交差領域フレーム47039ま
たは通常のフレーム10510のオフセツトを含み、フイー
ルド47111は以降の交差領域フレーム47039または通常の
フレーム10510のオフセツトを含み、フイールド47113は
次の交差領域フレーム47039に先行する最後の交差領域
フレーム47039または通常のフレーム10510のオフセツト
を含んでいる。
−フイールド47117は、交差領域フレーム47039または通
常のフレーム10510による仲介呼出しの表示が実行中で
ある領域に対するその時の領域番号を保有する。
−フイールド47119は先行する交差領域フレーム47039の
オフセツトを保有する。
−フイールド47121はマイクロ状態10520における重要な
場所に対するオフセツトを保有する。
b.b.b.マイクロ状態の詳細な構造(第471図) 次のフイールドはマクロ状態10516において重要であ
る。即ち、 −シラブル・サイズ・フイールド47125はKの値、即ち
呼出しが実行中である手順602に帰属するSINにおける名
前のサイズを保有する。
−名前テーブル・フイールド47127の終りは、呼出しが
実行中である手順602に帰属する名前テーブル10350にお
ける最後の名前の場所を保有する。
−フイール47129乃至47143は、呼出しにより実行中の手
順602を含む手順目的901における場所に対するポイン
タ、および手順602により使用中のデータを含む場所に
対する解明されたポインタである。フイールド47129は
手順602のPED30303に対するポインタを保有し、もし手
順602が外部手順602であれば、フイールド47131はゲー
ト10340における手順602のエントリに対するポインタを
保有し、フイールド47135は呼出し対するFPのUIDオフセ
ツト値を保有し、フイールド47135は手順602のSインタ
プリタにより使用されるSEB46864に対するポインタを保
有する。フイールド47137はSDPのUIDオフセツト値を含
み、フイールド47139はPBPのそれを含む。SIPフイール
ド47141は手順602のSインタプリタ目的に対するポイン
タを含み、また最後にNTPは手順602のMT10350に対する
ポインタである。
−フイールド47145は、SSフレーム47003が帰属する仲介
された呼出しからの戻りと同時に実行されるべきSINに
対するPCを保有している。
c.c.c.交差領域SSフレーム47039(第471図) 交差領域SSフレーム47039は2つの観点において通常の
フレーム10510とは異なり、即ちこれらは別の構成要素
である交差領域状態10513を有し、また領域フレーム・
ヘツダ47157におけるフイールドは通常のSSフレームヘ
ツダ10514におけるものとは異なる意味を有する。
交差領域状態10513は、その呼出しが終了した手順602の
ものとは異なる手順602のそれとはそのDOEが異なる手順
602に対する戻り操作が適正な領域に戻りつつあること
を検査するため、KOS呼出しマイクロコードが使用する
情報を保有する。交差領域状態10513における問題のフ
イールドはGOTOタツグ47155を含み、これが新たな領域
のMAS目的46703における第1の自由ビツトの場所を与
え、これは新たなMAS目的46703における最上位の仲介フ
レーム・ヘツダ46709の場所を保有する。
交差領域フレーム・ヘツダ47157は、通常のSSフレーム
・ヘツダ471010における3つのフイールドが存在する。
これらのフイールドはフラツグ・フイールド47107であ
り、これは交差領域フレーム・ヘツダ47157においては
常に真の値、即ち先行する交差領域フレーム・オフセツ
ト・フイールド47161を有し、SS10336における先行する
交差領域フレーム47039のオフセツトを保有し、また次
の交差領域フレーム47039の場所を含む次の交差領域フ
レーム・オフセツト・フイールド47159を含む。この2
つの最後のフイールドは、通常のSSフレームヘツダ1051
4においてそれぞれフイールド47111およびオフセツト・
フイールド47109と同じ場所を占める。
SSフレーム47003の以上の説明から判るように、本実施
例におけるSS10336は次の3種類の情報を保有してい
る。即ち、マクロ状態、交差領域状態およびマイクロ状
態である。他の実施例においては、SS10336における情
報は、別個のスタツク構造、例えば別個のマイクロ状態
において記憶することができ、また交差領域スタツク即
ちMAS目的46703にその時記憶される情報はSS10336に記
憶され、あるいはその逆となる。
4.呼出しおよび戻し操作に関する手順目的608の各部
(第472図) どのプロセス610がそのMAS目的46703およびSS10336に関
して新たなフレームの構成および関与する手順602に対
する制御の転送を要求するかの情報は、呼出された手順
602の手順目的608に保有される。第472図は、ある呼出
しにおいて使用される情報を示す手順目的608の概要図
である。第472図は第103図および第303図に含まれる情
報を拡張し、これらの図面に示されるフイールドは本文
に使用した名称および番号を有する。
手順目的ヘツダ10336から始めると、この領域は呼出し
において使用される情報の2つの項目を保有する。即
ち、手順目的608におけるアーギユメントの場所を与え
るフイールド47201におけるオフセツトと、手順目的608
におけるゲート番号を指定するフイールド47203におけ
る値である。ゲートは外部手順602、即ち、他の手順目
的608に含まれる手順602により生成可能な手順602の呼
出しを可能にする。手順目的608のゲートは、外部のエ
ントリ記述子領域10340に含まれている。2種類のゲー
トが存在する。即ち、手順目的608に含まれる手順602に
対するもの、および他の手順目的608に含まれる手順目
的608を介して呼出し可能な手順602に対するものであ
る。手順目的608に含まれる手順602に対するゲート局所
ゲート47205と呼ばれる。局所ゲート47205は、手順602
に対するエントリ記述子47227の手順目的608におけるオ
フセツトを保有する内部エントリ・オフセツト(IEOフ
イールド47207を保有する。もし手順602が手順目的472
に保有されなければ、そのゲートはリンク・ゲート4720
6である。リンク・ゲト47206はバインダ領域ポインタ
(BAP)フイールド47208を保有する。BAPフイールド472
08は、更に別の手順目的608におけるあるゲートに対す
るポインタを保有するバインダ領域30323におけるある
領域の場所を保有する。バインダ領域30323におけるポ
インタは解明可能であり、あるいは解明不可能である。
もし手順602がこの手順目的608に含まれるならば、ゲー
トは局所ゲート47205であり、さもなければ、これは別
のリンク・ゲート47206である。
手順環境記述子(PEDS)10348は、手順目的608に含まれ
る手順602に対するPED30303を保有する。手順602に対す
るマクロ状態のほとんどはそのPED 30303に見出すこと
ができる。PED30303は既に説明したが、理解を容易にす
るため、ここでその内容が述べよう。即ち、 −Kフイールド30305は手順602の名前のサイズを保有す
る。
−最も大きな名前(LN)フイールド30307は SS10336で
始まるiを保有し、この領域は呼出しにおいて使用され
る2つの項目の情報を含む。即ち、手順目的608におい
てアーギュメント情報アレー10352の場所を与えるフイ
ールド47201におけるオフセツトと、手順目的608におけ
るゲートの之を指定するフイールド47203における値で
ある。ゲートは外部の手順602の呼出しを可能にする。
即ち、他の手順目的に含まれる手順602により呼出すこ
とができる手順602は静的データ・ブロツク46863に入
る。このように、手順602の呼出しのためには、SDP ABP
は SDPPフイールド30313を介して得られる。即ち、 −PBPフイールド30315は、その時のPCが計算されるポイ
ンタである。手順602を生じる時、この値はPBP ABPとな
る。
−Sインタプリタ環境プロトタイプ・ポインタ(SEPP)
フイールド30316はSEBプロトタイプ・フイールド30317
の場所を保有する。手順602が生じる時、フイールド303
16は、SDPPフイールド30313が呼出しの静的データを見
出すのと同じ方法でAAT30201をしてSEB46864を見出す。
手順602のPED30303はその内部のエントリ記述子47227か
ら見出すことができる。PED30303はいくつかの手順602
によつて共有することができる。
勿論、この場合には共有されるPED30303に含まれる値は
これを共有する全ての手順602に対するものと同じであ
る。後で詳細に説明するように、本実施例においては、
もし呼出し側の手順602が1つのPEB30303と共有しなけ
れば、呼出しは仲介されなければならない。呼出し側の
手順602は、これを1つのPED30303を共有する手順602の
みに対する隣接呼出しを行なうことができる。
問題となる手順目的608の次の部分は内部エントリ記述
子10342である。手順目的608に含まれる各手順602は1
つのエントリ記述子47227を有する。エントリ記述子472
27は4つの重要なフイールドを含む。即ち、 −PBPオフセツト・フイールド47229は、手順602のコー
ドにおける最初のSINが見出されるPBPからのオフセツト
を保有する。
−フラツグ・フイールド47230は、手順602が呼出される
時形成されるフラツグを保有する。
4つのフラツグが重要である。即ち、 −アーギユメント情報アレー存在フラツグ47235。これ
はもし手順602がアーギュメント情報アレー10352におけ
るエントリを有するならば「真」にセツトされる。
−SEBフラツグ47237は、もしSEPP47225が非空白状態で
あれば、即ち手順602がそのSインタプリタに対するSEB
46864を有するならば、「真」にセツトされる。
−形成しないアクセス・フラツグ47239は、もしKOS呼出
しマイクロコードが手順602の生成のため使用された実
際のアーギュメントに関する機密保護検査を実施しなけ
れば、「真」にセツトされる。
−PEDオフセツト・フイールド4723Eは、手手目的608の
始めから手順602のPED30303のオフセツトを保有する。
−フレーム・サイズ・フイールド47233は、手順602の呼
出しのためのMASフレーム46709の局所記憶部分10420の
最初のサイズを保有する。
呼出しのための重要な他の領域はSEB プロトタイプ領
域47241、静的データ領域プロトタイプ30317、バインダ
領域30323およびアーギュメント情報アレー10352であ
る。SEBプロトタイプ領域47241およびPBPフイールド303
15は、それぞれ手順602に対するSEB46864と静的データ
・ブロツク46863の形成に使用される情報を保有する。
これらの領域はMAS毎の目的46703に基づいて形成され
る。あるプロセス610がある領域において1つの手順602
を最初に実行する時、手順602に対して必要な静的デー
タ・ブロツク46864および静的データ・ブロツク46863
は、領域に帰属するMAS目的46703またはMAS目的46703か
らアクセス可能な別の目的のいずれかにおいて形成され
る。従って、静的データ・ブロツク46864と静的データ
・ブロツク46863はMAS目的46703が存在する限り維持す
る。
SDPR30317は2種類の情報を保有する。即ち、静的デー
タ・リンク30319と静的データ初期化情報30321である。
SDPR30317 9はバインダ領域30323における場合を保有
し、この領域は更にデータの場所または外部の手順602
を生じるため解明可能なポインタを保有する。静的デー
タ・ブロツク46863がある手順602に対して形成される
時、バインダ領域30323における情報が用いられて連係
ポインタ46865を形成する。静的データ初期化情報30321
は、静的データ記憶域46867において静的データを形成
してこれを初期化するため必要な情報を保有する。
リンク・ゲート47206およびSDPR30317 9の論議において
記述したように、バインダ領域30323は、データおよび
外部手順602の場所を生じるため第3章に記述した如く
解明可能なポインタを保有する。
アーギュメント情報アレー(AIA)10352は、手順602を
生じる主題が手順602におけるアーギュメントの使用を
可能にする呼出しにおいて使用された実際のアーギュメ
ントに対してアクセスを行なうかどうかを形成するため
KOS呼出しマイクロコードにより使用される情報を保有
する。この所謂「トロイの木馬検査」は、ある呼出しが
ある主題の領域の構成要素を変化させ得るため必要であ
る。このように、あるデータ項目に対するある特定の種
類のアクセスを欠く主題は、再び、そのDOEが呼出し側
の主題自体が欠くアクセス権をこれに与える1つの手順
602に対するアーギュメントとしてデータ項目を送るこ
とによつて前記アクセスを得ることができる。
手順目的608における各局所ゲート47205はアーギュメン
ト情報アレー10352において1つの要素を有する。これ
らのアーギュメント情報アレー要素(AIAE)60845の各
々は下記のものを示すフイールドを有する。即ち、 −フイールド47247において局所ゲート47205が帰属する
手順602を生じるため必要なアーギュメントの最小数。
−フイールド47249において手順602の呼出に使用するこ
とができるアーギュメントの最大数。
−呼出し側の主題が、フイールド47251において手順602
を読出すため実際のアーギュメントに対して呼出し側の
主題が持たねばならないアクセス権。
フイールド47251はそれ自体、手順602の呼出しのため使
用する実際のアーギュメントに対して呼出し側の主題が
持たねばならないアクセスの種類を指定するアレーであ
る。手順602に対する正規の各アーギュメントはアクセ
ス・モード・アレー・エントリ(AMAE47255を有する。A
MAE47255の順序は、手順602の正規のアーギュメントの
順序と対応する。最初の正規のアーギュメントは第1の
AMAE47255、第2のAMAE47255、第3のAMAE47255等を有
する。AMAE47253は4ビツトの長さである。AMAE47253に
は2つの形態がある。即ち、根源アクセス形態47255と
拡張アクセス形態47257である。前者の形態において
は、最も左のビツトが0に記憶されている。残る3つの
ビツトは読出し、書込みおよび実行アクセスを指定す
る。もしあるビツトがonであるならば、呼出しを実施す
る主題は、AMAE47253に対応する正規のアーギュメント
に対して実際に使用されるデータ項目を保有する目的に
対して根源アクセスの種類を持たねばならない。拡張ア
クセス形態47257においては、最も左のビツトは1に記
憶され、残りのビツトは手順602に対して必要な拡張ア
クセスを表わすよう定義される。これらのビツトの定義
は手順602毎に変化する。
5.仲介呼出しの実行 呼出しに関与させられるMAS目的46703と、SS目的10336
と、手順目的608の各部について記述したが、本論は仲
介呼出し操作について記述する。最初に、仲介呼出しSI
Nの概説を行ない、次に本実施例における仲介呼出しの
構成について、簡単な仲介呼出しから始め、交差手順目
的呼出しおよび交差領域呼出しに続く。本論はソフトウ
エア対マイクロコード呼出しの記述で終る。
a.a.仲介呼出しSIN 仲介呼出しSINの正確な形態はS言語に特定されるが、
全ての仲介呼出しSINは4つの情報項目を含まねばなら
ない。即ち、 −操作のためのSOP −SINにより生成されるべき手順602に対するポインタに
対し評価する名前。
−呼出しに用いた実際のアーギュメント番号を規定する
リテラル値(定数)。
呼出しにおいて使用される実際のアーギュメントに対す
るポインタに対して評価する名前リスト。もし手順602
がアーギュメントを要求しなければ、前記リテラル値は
0となり、また実際のアーギュメントを表わす名前のリ
ストは空になろう。
本実施例においては、呼出された手順602が呼出し側の
手順602とは異なるPED30303を有する時は常に、仲介呼
出しおよび戻しSINが使用される。この場合、呼出しはF
PおよびPC以外のマクロ状態を保管して再計算しなけれ
ばならず、KOS呼出しマイクロコードによる仲介を必要
とする。KOS呼出しマイクロコードが呼出しを仲介する
方法は、呼出しが簡単な仲介呼出しか、または交差手順
目的呼出しか、または交差領域呼出しかに依存する。
b.b.簡単な仲介呼出し(第270図、第468図、第469図、
第470図、第471図、第472図) 仲介呼出し制御SINが実行される時、Sインタプリタ・
マイクロコードは最初に呼出された手順602の場所を表
わす名前を評価する。名前は局所ゲート47205に対する
ポインタ、または別の手順目的609においてはゲート470
7に対するポインタ、または本手順目的608においてはエ
ントリ記述子47227に対するポインタに対して評価する
ことができる。名前が評価される時、Sインタプリタ呼
出しマイクロコードは評価された名前をアーギュメント
として使用してKOS呼出しマイクロコードを呼出す。こ
のマイクロコードは最初に、その時の呼出しのSSフレー
ム47003において今まで空白の状態で残されたマクロ状
態10516において充満状態となる。このマイクロコード
は、仲介呼出しを実行中のプロセス610の仮想プロセツ
サ612がJP10114に対し束縛される間、これらのフイール
ドが維持されるFU10120においてレジスタからこれらフ
イールドに対する値を得る。
KOS呼出しマイクロコードがSインタプリタ呼出しマイ
クロコードから受取つたかどうかを判定する次のステツ
プは外部手順に対するポインタである。この判定を行な
うため、KOS 呼出しマイクロコードは、ポインタのAON
41304の呼出しを行なう手順602に対する手順目的608のA
ONと比較する。もしこれらが異なれば、この呼出しは以
下に述べる交差手順目的呼出しである。簡単な仲介呼出
しの場合は、フオーマツト・フイールドはこの場所がエ
ントリ記述子47227であることを表示する。KOS呼出しマ
イクロコードは、エントリ記述子47227の場所を保管し
かつその時のMAS目的46703に関して新たな仲介フレーム
46947および呼出された手順602に対するSS10336に関す
る新たな通常の通常のフレーム10510を増大させること
によつて継続する。KOS呼出しマイクロコードがこれを
行なう時、これはKOSフレーム・ヘツダ10414におけるフ
イールド46917と46919、および通常のSSフレーム・ヘツ
ダ10514におけるフイールド47109と47111を、MAS目的46
703およびSS目的10336に対するフレームの付加によつて
必要とされる値にセツトする。
新たな仲介フレーム46947はこの時呼出しにおいて使用
される実際のアーギュメントに対する連係ポインタ1041
6に対する用意があり、そのためKOS呼出しマイクロコー
ドはSインタプリタ呼出しマイクロコードに戻り、これ
によりSINを分析してアーギュメント数を規定するリテ
ラル値を得、このリテラル値を保管する。次にSインタ
プリタ呼出しマイクロコードは各アーギュメント名前を
分析し、これを評価し、かつその関係を連係ポインタ10
416に置く。連係ポインタ10416が完了した時、Sインタ
プリタ呼出しマイクロコードはこの新たなFPの場所を連
係ポインタ10416の最上位の場所から計算して、FPに対
して留保されたFU10120のレジスタにおける場所に対す
るポインタを置く。この時、Sインタプリタ呼出しマイ
クロコードもまたスタツク最上位オフセツト・フイール
ド46807にスタツクの最上位の新たな場所を置くのであ
る。
次に、Sインタプリタ呼出しマイクロコードはKOS呼出
しマイクロコードを呼出して、MASフレーム・フレーム4
6929においてアーギュメント番号を指定するリテラル値
を置き、FHP46702の新たな値を計算し、これをその値に
対して留保されたFU10120のレジスタに置き、最終に呼
出された手順602のエントリ記述子47227とPED30303から
呼出された手順602を実行するため必要な状態を得る。
前述の如く、Sインタプリタ呼出しマイクロコードはエ
ントリ記述子47227の場所を保管している。この場所を
用いて、KOS呼出しマイクロコードはフイールド47233か
らの局所データに必要な記憶域のサイズを得て、その記
憶量を新たなMASフレーム46709に加算する。次に、KOS
呼出しマイクロコードはPEDオフセツト・フイールド472
31を用いて手順602に対するPED30303を見出す。PED3030
3は手順602に関する必要な情報の残りを保有し、KOS呼
出しマイクロコードはPED30303の場所をPEDポインタ・
フイールド46933にコピーし、次いでKフイールド30305
と、LNフイールド30307と、SDPR30317と、PBPフイール
ド30315の値をFU10120における関連するレジスタにコピ
ーする。次に、第3章に説明したように、KOS呼出しマ
イクロコードはSIPフイールド30309におけるポインタを
あるダイアレクト番号に翻訳し、これをFU10120のレジ
スタRDIAL24212に置き、これと同時にSDPR303173におけ
るポインタを解明することによりSDPを駆動し、またSDP
R303176におけるポインタを解明することにより静的デ
ータ・ブロツク46864に対するポインタを駆動する。こ
れらの操作を実施して、KOS呼出しマイクロコードはS
インタプリタ要求しマイクロコードに戻り、これにより
新たなPCを得ることにより、即ち取出すべき次のSINが
呼出された手順602の最初のSINとなるようにFU10120に
おける命令ストリームリーダ27001におけるレジスタを
リセツトすることにより呼出しを完了する。Sインタプ
リタ呼出しマイクロコードは、PBPから呼出された手順6
02の最初のSINのオフセツトを含むエントリ記述子47227
におけるフイールド47229からPCを変更するため必要な
情報を得る。
本実施例においては、仲介された呼出しSINにより生成
されたあるFU10120の状態は、手順602の呼出し期間中50
4に保持される。保管された状態は、もし呼出された手
順602が実行を開始する前に呼出しが失敗しするなら
ば、プロセス610が仲介呼出しを再び試みることを許容
する。仲介戻しSINが実行される時、これはCALL SINTか
ら保持された状態に関する実行を再開する。仲介された
戻しは呼出しよりも遥かに簡単である。この呼出しを実
施した呼出しの実行を再開するため必要な情報の全てが
呼出し側のSSフレーム47003におけるマクロ状態10516に
保持されるため、戻し操作はその時のMAS目的46703およ
びSS10336から呼出された呼出しフレームをポップし、
マクロ状態10516の47123を呼出し側のSSフレーム47003
から適正なFU10120のレジスタに対してコピーし、SIP値
47141をダイアレクト番号に翻訳し、呼出し操作の実行
を再開する。このポツプ操作は、ポインタがこの時新た
な最上位のフレームにおける相当場所を指示するよう
に、元の最上位フレームにおける場所を指示したMAS目
的46703およびSS10336におけるポインタを更新以外は一
切生じない。
c.c.SEB46864を要求する手順602の呼出し(第270図、第
468図、第469図、第470図、第471図、第472図) もし手順602が静的データ・ブロツク46864を要求するに
らば、この事実は手順602のエントリ記述子47227におけ
るフラツグ・フイールド47237により表示される。この
ような手順602に対するPED30303は SEPPフイールド472
55を含み、その値は解明不能なポインタである。手順60
2およびSEPPフイールド47225に対して静的データ・ブロ
ツク46864が形成される方法は、SEP即ち静的データ・ブ
ロツク46864の場所を含むポインタに転換され、SS10336
における呼出しマクロ状態の一部として保管され、静的
データ・ブロツク46863が形成される方法に類似し、SEP
Pフイールド472255に含まれる解明不能なポインタがSDP
に転換される。静的データ・ブロツク46864を要求する
ある手順602が最初にMAS目的46703に関して呼出される
時、静的データ・ブロツク46864は手順602に対して形成
され、SEPPフイールド472555における解明不能なポイン
タと静的データ・ブロツク46864の場所を関連させるAAT
E46857が生成される。この場所は、MAS目的46703に関し
て手順が実行中のSEPの値である。手順602の以降の呼出
しと同時に、AATE46857はSEPPフイールド47225における
この値をSEPに転送するよう作用する。
d.d.交差手順目的呼出し(第270図、第468図、第469
図、第470図、第471図、第472図) 外部手順602を呼出す仲介呼出しは交差手順目的呼出し
と呼ばれる。前述の如く、KOS呼出しマイクロコード
は、常にある仲介呼出しSINにおける呼出された手順602
を表わす名前がこの呼出しが外部の手順602に対するこ
とをあるゲートの場所に対して解くことを前提とする。
新たに呼出された外部手順602が呼出し側の手順602と同
じDOEを有する限り、交差手順目的呼出しは、呼出され
た手順602のエントリ記述子47227が見出される方法にお
いてのみ簡単な仲介呼出しと異なる。一旦KOS呼出しマ
イクロコードが前述の如く、仲介呼出しが交差手順目的
呼出しであると判定すると、これは次に交差領域呼出し
であるかどうかを判定する。そのためには、KOS呼出し
マイクロコードは呼出された手順602の手順目的608のDO
E属性をその時の主題の領域構成要素と比較する。KOS呼
出しマイクロコードは手順目的608のAON41304を用いて
そのAOTE41306のフイールド41521から手順目的608のDOE
を得、またこれはあるFU10120のレジスタに記憶された
その時の主題に対するASNを用いて、10914からのその時
の主題の領域構成要素を得る。もしこのDOEとその時の
領域構成要素が異なるならば、この呼出しは以下に述べ
る交差領域呼出しであり、さもなければ、この呼出しは
その手順目的608における呼出された手順602に対する評
価された名前により指定されるゲート47205または47206
を見出す。もしこのゲートが局所ゲート47205であれ
ば、この呼出しはエントリ記述子オフセツト・フイール
ド47207を用いて呼出された手順602に帰属するエントリ
記述子47227を見出し、次いで簡単な仲介呼出しの論議
において説明した如く進行する。
もしゲートがリンク・ゲート47206ならば、KOS呼出しマ
イクロコードは47245からリンク・ゲート47206と対応す
るポインタを得、これを解いて別な局所ゲート47205ま
たはリンク・ゲート47206に対するポインタを得るが、
これは以上に説明した外部手順602の呼出しの反復のた
めKOS呼出しマイクロコードが使用する。この反復操作
は、新たに見出されたゲートが局所ゲート47205である
まで継続し、これと同時に呼出しは前述の如く簡単な仲
介呼出しに進行する。
e.e.交差領域呼出し(第270図、第408図、第418図、第4
68図、第469図、第470図、第471図、第472図) もし呼出された手順602の手順目的608が呼出し側の手順
602の手順目的608のDOE属性と異なるDOE属性を有するな
らば、この呼出しは交差領域呼出しである。KOS呼出し
マイクロコードが仲介呼出しが交差領域呼出しであるこ
とを判定する手段については前に説明したが、もしこの
呼出しが交差領域呼出しであれば、KOS呼出しマイクロ
コードは、呼出しがなされる領域に対するMAS目的46703
を消勢し、トロイの木馬論議を実施し、主題切換え、SS
10336に交差領域フレーム47039と置き、新たなMAS目的4
6703に関して仲介フレーム46947を行なつて簡単な仲介
呼出しの論議において説明したように継続できる前に、
新たな領域に対するMAS目的46703を見出してこれを活性
化しなければならない。
交差領域呼出しマイクロコードは最初に、領域活動状態
フラツグ46804を誤りにセツトすることによつてその時
のMAS 目的46703を活性化する。次のステツプは、トロ
イの木馬アーギュメントの検査である。トロイの木馬ア
ーギュメント検査を行なうため、交差領域呼出し操作は
交差領域呼出しにおいて使用される実際のアーギュメン
トに対するポインタを持たねばならない。その結果、交
差領域呼出し操作は最初に非交差領域呼出しの如く継続
し、元のMAS目的46703に関する仲介フレーム・ヘツダ10
414を形成し、Sインタプリタ・マイクロコードに戻
し、これが実際のアーギュメントの名前を評価し、連係
ポインタ10416のポインタを仲介フレーム・ヘツダ10414
に置く。しかし、この呼出しを実施する呼出しに対する
マクロ状態は、KOSフレーム・ヘツダ10414と連係ポイン
タ10416が元のMAS目的46703に置かれる前にSS10336に置
かれている。その結果、呼出し側の手順602は戻りの後
実行を再開する時、これは交差領域呼出しマイクロコー
ドにより構成されるものより先行するMASフレーム46709
と同時に再開することになる。
一旦実際のアーギュメントに対するポインタが使用可能
となると、交差領域呼出しマイクロコードはトロイの木
馬検査を実施する。手順目的608の論議において述べま
た第472図において示したように、この検査の実施に必
要な情報はアーギュメント情報アレー10352に含まれ
る。手順目的608における各論理ゲート47205はAIAE4724
5を有する。論理ゲート47205の手順における正規の各ア
ーギュメントAIAE47245のフイールド47251におけるエン
トリを有し、また前者のアーギュメントのAMAE47253
は、正規のアーギュメントの実際のアーギュメントに対
してどんな種類のアクセスが呼出された手順602におい
て要求されるかを表示する。
フイールドAIA OFF47201は手順目的608におけるアーギ
ュメント情報アレー10352の場所を含んでおり、この情
報および手順目的608における論理ゲート47205のオフセ
ツトを用いて、交差領域呼出しマイクロコードが論理ゲ
ート47205に対するAIAE47245を見出す。AIAE47245にお
ける最初の2つのフイールドは、呼出しにおける最小数
のアーギュメントおよび最大数のアヘギュメントを含
む。交差領域呼出しマイクロコードは、実際のアーギュ
メトンがこれらの値の間に該当するかどうかを検査す
る。もしそうであれば、交差領域呼出しマイクロコード
はアクセスが許された個々のアーギュメントの桁送りを
開始する。各アーギュメントのポインタ毎に、交差領域
呼出しマイクロコードはLARマイクロコードを呼出して
ポインタのUIDに対するその時のAON41304を得、プロセ
ス610のその時の主題(即ち、呼出し側の主題)に対す
るAON41304とASNを用いて、アーギュメントのAIAEが根
源アクセス(47255)または拡張アクセス(47257)をそ
れぞれ規定するかどうかに従つてAPAM10918とANPAT1092
0のいずれかにおけるエントリを見出す。もしAPAM10918
またはANPAT10920からの情報がプロセス610のその時の
主題が呼出された手順602において要求される方法にお
けるアーギュメントにアクセスする権利を有することを
確認するならば、「トロイの木馬」マイクロコードは次
のアーギュメントに行く。もしその時の主題が全てのア
ーギュメントに対して必要なアクセスを行なうならば、
トロイの木馬検査は成功し、また交差領域呼出し操作は
継続する。さもなければ、この検査は失敗し、以下に述
べるように、交差領域呼出し操作はマイクロコード対ソ
フトウエア呼出し操作を実施する。
次に、交差領域呼出しマイクロコードはSS10336に交差
領域状態10513を置く。SS10336の論議において説明した
ように、交差領域状態10513は前のMAS目的46703に関す
る呼出し側のフレームへ戻るため必要な情報を含む。こ
れが終ると、交差領域呼出しマイクロコードは主題を変
更する。その時の主題のASNを用いて、交差領域呼出し
マイクロコードはAST10914からその時の主題を得て、呼
出された手順602の手順目的608に対する属性41225を含
む主題の領域構成要素を置換し、AST10914を用いてこの
ように得た新たな主題を新たなASNに翻訳する。このASN
は次に適当なFU10120のレジスタに置かれる。
主題が変更された後、交差領域呼出しマイクロコードは
領域テーブル41801を用いて呼出された手順602のDOEを
領域番号に翻訳する。交差領域呼出しマイクロコードは
次に、交差領域呼出しを行なうプロセス610に帰属する
仮想プロセツサ612に対するVPSB614におけるMAS AON462
11のアレーに対する指標として領域番号を使用する。領
域と対応するエントリは、この領域に対するMAS目的467
03のAON41304を含む。
適正なMAS目的46703を見出して、交差領域呼出しマイク
ロコードは新たな領域のMAS目的46703に帰属するKOS MA
Sヘツダ10410におけるSTOフイールド46807を用いて、最
後のMASフレーム46709の最上位を見出す。これは次に、
FU10120のあるレジスタにおける前の呼出しにおいて使
用された46702の値を保管し、仲介フレーム・ヘツダ104
14をMAS目的46703の最上位に加算し、新たな仲介フレー
ム・ヘツダ10414を指示する新たなFHP46702を計算す
る。次に、KOS交差領域呼出しマイクロコードはFHP4670
2の元の値をSS10336のFHP値フイールド47151に、またST
O46709の元の値(前のMAS目的46703に関する最後の完全
なMASフレーム46709の最上位を指示する)を交差領域状
態10513のフイールド47153に置き、下記の如く仲介KOS
フレーム・ヘツダ10414に充填し、交差領域呼出しフイ
ールド46903の結果は真にセツトされ、前のフレーム・
オフセツト・フイールド46903は0にセツトされ、動的
バツク・ポインタ・フイールド46931はFHP46702の保管
された値にセツトされる。このように、動的バツク・ポ
インタ・フイールド46931は前のMAS目的46703に関する
最上位の仲介フレーム46947のヘツダを指示する。残る
フイールドの値は、交差領域呼出し操作が前のMAS目的4
6703において形成した仲介KOSフレーム・ヘツダ10414か
らコピーされる。
次に、交差領域呼出しマイクロコードは、前のMAS目的4
6703の最上位から新たな仲介フレーム46947に対して正
規のアーギュメントに対するアーギュメント・ポインタ
をコピーしてFPを計算する。交差領域呼出しマイクロコ
ードSインタプリタ呼出しマイクロコードに戻すことに
より完了し、これにより簡単な仲介呼出しについて説明
したように呼出し操作を完了する。
新たなMAS目的46703に対する転送において関与する仕事
を除き、交差領域戻し操作は仲介呼出しからの他の戻し
操作と類似する。交差領域状態10513のフイールド47151
からの元のFHP46701と、交差領域状態のフイールド4715
3からの元のSTO46704はFU10120のレジスタに置かれる。
次に、終了しつつある呼出しに帰属するフレームは、SS
10336から、また呼出された手順602の領域に帰属するMA
S目的46703からポツプされ、MAS目的46703は領域活動状
態フラツグ46804を誤りにセツトすることによつて不活
性化される。次に、KOS交差領域戻しマイクロコードは
元のFHP46701と元のSTO46704を用いて、戻りの過程にあ
るMAS目的46703およびこのMAS目的46703にある最上位の
仲介フレーム46947を見出す。戻りの過程にあるMAS目的
46703まは活性化され、最後に戻しの過程にある呼出し
に帰属するマクロ状態10516の内容反復的FU10120の適当
なレジスタに置かれて、呼出し操作の実行が再開する。
f.f.失敗した交差領域呼出し操作(第270図、第468図、
第469図、第470図、第471図、第472図) 以上述べたように、交差領域呼出し操作は、呼出し側の
呼出し操作が呼出しを開始する時から呼出された手順60
2が実行を開始する時の間のいくつかの時点において失
敗を生じ得る。失敗と同時に、交差領域呼出しマイクロ
コードはマイクロコード対ソフトウエア呼出しを実施す
る。この呼出しにより生じたKOS手順602は交差領域呼出
し操作の失敗の理由を処置して交差領域呼出し操作を再
開することができる。このことは、CS10110における交
差領域呼出しの構成がFU10120の十分な状態を保管し
て、交差領域呼出し操作を実行中のプロセス610が呼出
し操作および交差領域呼出し操作が開始した仲介呼出し
SINに戻ることを許容するため可能である。失敗と同時
に、呼出しのMASフレーム46709は交差領域状態10513に
おけるフイールド47153とフイールド47151の値から見出
すことができ、また仲介呼出しSINはFU10120の状態に保
管された情報を用いることによつて見出すことができ
る。
6.隣接呼出し操作(第468図、第469図、第472図) 前述の如く、隣接呼出しを介して呼出された手順602は
呼出し側の手順602と同じPED30303を持たねばならな
い。PED30303の一部でない唯一のマクロ状態値のPCおよ
びFPであり、従つて隣接呼出し操作は、呼出しを実施す
る呼出し操作のPCおよびFPを保管してこれらの値を新た
な呼出し操作のため計算するだけでよい。更に、前の呼
出し操作の隣接フレーム46947の最上位を見出すことを
容易にするため、隣接呼出し操作はSTO46704を保管す
る。隣接戻し操作は、この保管された値を単に復元する
だけである。PED30303からコピーされあるいはこれを介
して得たマクロ状態値は呼出し操作のシーケンスの間は
変化せず、従つてSS10336において保管する必要はな
い。隣接呼出し操作はSSフレーム47003を持たない。
本発明は、その主旨または特有の特性から逸脱すること
なく更に他の特定の形態において実施することができ
る。このため、本文に示した実施態様はあらゆる観点か
ら例示的なものであつて限定的なものと考えるべきでは
なく、本発明の範囲は本文の記述によらずに頭書の特許
請求の範囲に示され、特許請求の範囲の相当する意味な
らびに範囲内に含まれる全ての変更は従つて本発明に包
含されるものとする。
【図面の簡単な説明】
第1図は本発明の概略説明図、 第2図は本発明の全体的構造および作用の説明図、 第3図は主要サブシステムの説明図、 第4図は名前空間、Sインタプリタおよびポインタの説
明図、 第5図は中心的オプレーテイング・システムの説明図で
ある。 101……コンピュータ・システム(CS)、112……メモリ
ー(MEM)、11C……ジヨブ・プロセツサ(JP)、116…
…入出力システム(IOS)、120……取出し装置(FU)、
122……実行装置(EU)、129……MIOバス、130……IOM
バス、131……IOMCバス、132……IOJPバス、140……MOD
バス、142……JPDバス、146……PDバス、148……FUEUバ
ス、402……ユーザ言語命令、404……機械語命令、406
……マイクロコード命令、408……機械のハードウエ
ア、410……機械語スタツク機構、412……ユーザ言語命
令、414……SOP、416……マイクロコード命令、418……
CS101ハードウエア、420……MAS、422……マイクロコー
ド・スタツク機構、424……MIS、426……MOS、428……S
INマイクロコード、430……モニター・マイクロコー
ド、502……MAS、504……SS、506……GRF、508……汎用
レジスタ、510……mCS、514……SOPスタツク、602……
手順、604……ユーザ手順目的、606……静的データ領
域、610……プロセス、612……仮想プロセツサ、614…
…VPSB、701……ユーザ、702……コンパイラ、703……
バインダ、704……EOS、705……S言語インタプリタ・
マイクロコード、706……KOSソフトウエア、708……KOS
アーキテクチヤ・インターフエース、709……ユーザ・
インターフエース、710……KOSマイクロコード、711…
…インターフエース、713……書込み可能制御ストア、7
15……名前インタプリタ・マイクロコード、901……手
順目的、902……スタツク目的、1001……呼出しマイク
ロコード、1002……PC装置、1004……レジスタ、1006…
…手順目的、1008……マイクロスタツク目的、1010……
機密保護スタツク目的、1014……FUレジスタ、10110…
…コンピュータ・システム(CS)、10112……MEM、1011
4……JP、10116……IOS、10120……取出し装置(FI
U)、10122……実行装置(EU)、10124……2次記憶装
置、10142……JPDバス、10144……MODバス、10210……
プロセス構造、10220……アドレス指定構造、10266……
名前カツシエ装置(NC)、10228……アドレス翻訳装置
(ATU)、10234……カツシエ保護装置(PC)、10350…
…NT、10358……戻り制御ワード・スタツク、10410……
MASベース、10514……通常のフレーム・ヘツダ、10516
……マクロスタツク、10918……APAM、11010……FUSD
T、11012……Sインタプリタ・テーブル、20210……記
述子プロセツサ(DESP)、20212……メモリー・インタ
ーフエース、20214……取出し装置制御(FUCTL)、2021
6……AONプロセツサ、20218……オフセツト・プロセツ
サ(OFFP)、20220……長さプロセツサ、20224……名前
バス、20228……OFFSETバス、20232……AONGRF、20234
……OFFGRF、20236……LENGRF、20238……オフセツト・
セレクタ(OFFSEL)、20240……オフセツト・マルチプ
レクサ(OFFMUX)、20242……OFFALU、20244……OFFAFU
SA、20246……BIAS、20248……AONセレクタ、20252……
長さALU、20254……NT、20256……記述子トラツプ、202
58……データ・トラツプ、20262……取出し装置、20264
……取出し装置、20266……タスク指名テーブル、20268
……命令コード・レジスタ、27003……SOPデコーダ、27
015……名前翻訳装置、27017……メモリー照合装置、27
019……機密保護装置、27021……CPC、20272……IPC、2
0274……EPC、20284……事象ロジツク、20288……アド
レス・ゼネレータ、20294……状態ロジツク、20296……
タイマー、20310……制御ロジツタ、20312……入出力装
置、20314……乗算ロジツク、20316……指数ロジツク、
20318……乗算制御装置、20320……テスト兼インターフ
エース・ロジック、20322……オペランド・バッファ、2
0324……最終結果出力マルチプレクサ、20340……次の
アドレス・ゼネレータ、20342……指命キユー、20344…
…Sインタプリタ・テーブル、20346……マイクロコー
ド制御復合レジスタ、20410……データ移動器、20412…
…入出力制御プロセツサ、20440……入力データ・バツ
フア、20442……出力データ・バツフア、20444……優先
順位分解能兼制御装置、20910……IOポート、21010……
JOポート、21110……JIポート、23812……OFFMUXR、238
14……FEXT、23816……OFFMUXFS、23818……OFFSCALE、
23820……OFFIESENC、23822……OFFMUXOS、24310……次
のアドレス・ゼネレータ、25514……事象制御記憶装
置、25516……指命キュー事象アドレス制御記憶装置、2
7021……DBバス、40401……UID、40903……LAUD、41304
……AON、44801……事象カウンタ、44084……待機記入
兼待機テーブル、46853……データ領域、46709……MAS
フレーム、47001……SSベース、47003……装置フレー
ム、47039……交差領域装置フレーム。
フロントページの続き (31)優先権主張番号 266409 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266413 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266414 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266415 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266421 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266424 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266521 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266524 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266532 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) (31)優先権主張番号 266539 (32)優先日 1981年5月22日 (33)優先権主張国 米国(US) 審査前置に係属中 (72)発明者 デ−ビツド・エツチ・バ−ンスタイン アメリカ合衆国マサチユ−セツツ州01721 アシユランド・ベイ・コロニ−・ドライブ 41 (72)発明者 リチヤ−ド・グレン・ブラツト アメリカ合衆国マサチユ−セツツ州01778 ウエイランド・ブルツク・トレイル・ロ− ド9 (72)発明者 ジエラルド・エフ・クランシ− アメリカ合衆国カリフオルニア州95070サ ラトガ・ジヤカランダ・センタ−13069 (72)発明者 エドワ−ド・エス・ガブリン アメリカ合衆国マサチユ−セツツ州01773 リンカ−ン・ビ−バ−・ポンド・ロ−ド・ ア−ルエフデイ−4 (72)発明者 ロナルド・ハンス・グルナ− アメリカ合衆国ノ−スカロライナ州27514 キヤリ−・ダブリン・ウツド・ドライブ 112 (72)発明者 ロ−レンス・エツチ・カツツ アメリカ合衆国オレゴン州97045オレゴ ン・シテイ・サウス・フオ−レスト・リツ ジ・ロ−ド10943 (72)発明者 クレイグ・ジエ−ムズ・マンデイ アメリカ合衆国ノ−スカロライナ州27511 キヤリ−・キヤツスルウツド・ドライブ 136 (72)発明者 マイケル・エス・リツチモンド アメリカ合衆国ノ−スカロライナ州27312 ピツツボロ−・フエアリントン・ポスト・ ボツクス51 (72)発明者 スチ−ブン・アイ・シユレイマ− アメリカ合衆国ノ−スカロライナ州27514 チヤペル・ヒル・エレン・プレイス1208 (72)発明者 スチ−ブン・ジエイ・ウオラツチ アメリカ合衆国カリフオルニア州95070サ ラトガ・グリ−ン・メド−・レイン12436 (72)発明者 ウオルタ−・エイ・ウオラツチ・ジユニア − アメリカ合衆国ノ−スカロライナ州27607 ラレイ・メツドフイ−ルド・ロ−ド1336 (72)発明者 ダグラス・エム・ウエ−ルズ アメリカ合衆国ノ−スカロライナ州27514 チヤペル・ヒル・ロビン・ロ−ド106 (72)発明者 ト−マス・エム・ジヨ−ンズ アメリカ合衆国ノ−スカロライナ州27514 チヤペル・ヒル・リ−ド・ロ−ド300 (72)発明者 ジヨン・エフ・ピラツト アメリカ合衆国ノ−スカロライナ州27609 ラレイ・レ−ベンハ−スト・ドライブ1308 (72)発明者 デ−ビツド・エル・ハウズマン アメリカ合衆国ノ−スカロライナ州27511 キヤリ−・セルウイン・レイン1213 (72)発明者 デ−ビツド・エイ・フア−バ− アメリカ合衆国ノ−スカロライナ州27707 ダ−ハム・レイクウツド・アベニユ−1700 (56)参考文献 特開 昭54−111733(JP,A) 特開 昭55−112651(JP,A) 山谷・秋山、「仮想計算機」、昭和55年 5月20日(初版4刷)、共立出版(株)、 P.177−191 池田、「オペレーティング・システ ム」、5版、昭和58年6月15日、日本コン ピュータ協会、P.273−280

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】複数のプログラムの実行を制御する複数の
    プロセスに応答して、該複数のプログラムを実行する処
    理装置と、1つのプロセスに一時的にバウンドされ、該
    プロセスの制御下で前記処理装置がプログラムを実行す
    ることを許すための状態項目を有する仮想処理装置と、
    を含む多重プログラム・データ処理システムであって、
    更に、 プロセスによって制御されるプログラムの実行を保留す
    るために前記処理装置が応答する、プロセス・レベル待
    機動作を行うプロセス待機装置からなるプロセス同期装
    置と、 前記プロセス・レベル待機動作に応答して仮想処理装置
    レベル待機動作を行う仮想処理装置待機装置と、前記プ
    ログラムの実行に必要な状態項目の前記処理装置へのロ
    ーディングを一時的に禁止するために前記仮想処理装置
    レベル待機動作に応答する装置と、 イベントの発生に応答して仮想処理装置レベル前進動作
    を行う仮想処理装置前進装置と、前記プロセスの前記状
    態項目の前記処理装置への一時的なローディングの禁止
    を解除するために前記仮想処理装置レベル前進動作に応
    答する装置と、 前記仮想処理装置レベル前進動作に応答して、前記処理
    装置に前記プロセスの制御下の保留されたプログラムの
    実行の継続をさせるプロセス前進装置と、を含む多重プ
    ログラム・データ処理システム。
  2. 【請求項2】特許請求の範囲第1項に記載の装置におい
    て、前記処理装置が複数のプロセスによって制御される
    プログラムを実行するために用いることが出来、前記シ
    ステムが複数の仮想処理装置を含み、その数が前記複数
    のプロセスの数より少ないことを特徴とする多重プログ
    ラム・データ処理システム。
  3. 【請求項3】特許請求の範囲第1項に記載の装置におい
    て、前記プロセス同期装置が複数のイベント・カウンタ
    を含み、前記仮想処理装置前進装置が前記状態項目のロ
    ーディングの禁止を解除する1つのイベントの発生を知
    らせるイベント・カウンタの動作に応答し、前記プロセ
    ス前進装置が前記仮想処理装置前進装置の動作を知らせ
    る他のイベント・カウンタに応答して保留されたプログ
    ラムの実行を継続させることを特徴とする多重プログラ
    ム・データ処理システム。
  4. 【請求項4】特許請求の範囲第3項に記載の装置におい
    て、前記複数のイベント・カウンタが非公開のイベント
    ・カウンタと該非公開のもの以外のイベント・カウンタ
    とを含み、前記仮想処理装置前進装置が応答するのは該
    非公開のイベント・カウンタであり、前記プロセス前進
    装置が応答するのは非公開以外のイベント・カウンタで
    あることを特徴とする多重プログラム・データ処理シス
    テム。
  5. 【請求項5】特許請求の範囲第4項に記載の装置におい
    て、前記仮想処理装置待機装置が前記非公開のイベント
    ・カウンタに関する特定された値を受け取り、前記仮想
    処理装置前進装置が前記非公開のイベント・カウンタの
    現在値を増分し、もし前記非公開のイベント・カウンタ
    の現在値が前記受け取られた特定の値より小さくない場
    合、前記仮想処理装置前進装置が前記仮想処理装置レベ
    ル前進動作を行うことを特徴とする多重プログラム・デ
    ータ処理システム。
  6. 【請求項6】特許請求の範囲第5項に記載の装置におい
    て、前記プロセス前進装置が非公開のイベント・カウン
    タ以外の前記他のイベント・カウンタに関連する特定さ
    れた値を受け取り、前記処理装置に前記他のイベント・
    カウンタの値を増分させ、前記他のイベント・カウンタ
    の値が該他のイベント・カウンタに関して特定された前
    記受け取った値より小さくない場合、前記プロセス前進
    装置が前進プロセス・レベル前進動作を行うことを特徴
    とする多重プログラム・データ処理システム。
  7. 【請求項7】特許請求の範囲第1項に記載の装置におい
    て、前記プロセス同期装置が更に、前記処理装置によっ
    て受け取られた割り込み信号に応答して、前記割り込み
    信号の発生源を識別し、前記処理中のプロセスの制御下
    のプログラムの実行に対して前記発生源が関連する処理
    プロセスを識別するプロセス管理処理装置を含み、前記
    処理中のプロセスのプロセス前進装置が前記プロセス管
    理処理装置に応答して、前記処理中のプロセスに他の処
    理中のプロセスの制御下の他のプログラムの前記処理装
    置による実行と同期して前記割り込み信号によって要求
    された割り込み動作の取り扱い用のプログラムの実行を
    制御させることを特徴とする多重プログラム・データ処
    理システム。
  8. 【請求項8】特許請求の範囲第7項に記載の装置におい
    て、前記割り込み信号が前記処理装置と通信する入出力
    チャンネルで入出力装置から前記処理装置によって受け
    取られ、前記プロセス管理処理装置が前記入出力装置を
    識別することを特徴とする多重プログラム・データ処理
    システム。
  9. 【請求項9】特許請求の範囲第7項に記載の装置におい
    て、特定されたプロセスの制御下のプログラムが実行さ
    れるクロック関連イベントに応答して前記割り込み信号
    が受け取られることを特徴とする多重プログラム・デー
    タ処理システム。
  10. 【請求項10】特許請求の範囲第9項に記載の装置にお
    いて、前記クロック関連イベントにおいて実行されるべ
    きプログラムの実行を制御する特定されたプロセスを前
    記プロセス管理処理装置が識別することを特徴とする多
    重プログラム・データ処理システム。
  11. 【請求項11】特許請求の範囲第1項に記載の装置にお
    いて、前記処理装置が複数のプログラムの実行を制御す
    る複数のプロセスに応答して該複数のプログラムをプロ
    セッサ・レベルで実行するものであり、更に、 該システムが、システム外の発生源から受け取られた割
    り込み信号に前記プロセッサ・レベルで応答する前記処
    理装置内の装置を含み、 前記同期装置が、前記受け取られた割り込み信号を発生
    した前記外部の発生源に関連するイベントを識別するた
    めに前記受け取られた割り込み信号に仮想プロセッサ・
    レベルで応答する装置と、 他のプロセスの制御下のプログラムの実行に同期して、
    前記イベントに仮想プロセッサ・レベルで応答すること
    を認められたプロセスの制御下のみにおいて、前記処理
    装置によってプロセッサ・レベルで実行されるべき前記
    割り込み信号によって要求された割り込みプログラム処
    理を許すための装置とを含むことを特徴とする多重プロ
    グラム・データ処理システム。
  12. 【請求項12】特許請求の範囲第11項に記載の装置にお
    いて、前記外部の発生源が前記処理装置と入出力チャン
    ネルを介して通信する入出力装置であることを特徴とす
    る多重プログラム・データ処理システム。
JP57085095A 1981-05-22 1982-05-21 デイジタル・デ−タ処理システム Expired - Lifetime JPH0746316B2 (ja)

Applications Claiming Priority (28)

Application Number Priority Date Filing Date Title
US26642481A 1981-05-22 1981-05-22
US26642181A 1981-05-22 1981-05-22
US26653981A 1981-05-22 1981-05-22
US26652481A 1981-05-22 1981-05-22
US26653281A 1981-05-22 1981-05-22
US26640981A 1981-05-22 1981-05-22
US26640481A 1981-05-22 1981-05-22
US26641581A 1981-05-22 1981-05-22
US266413 1981-05-22
US06/266,521 US4517642A (en) 1981-05-22 1981-05-22 Digital computer system having unique means of referring to operands and ability to execute a plurality of internal languages
US266409 1981-05-22
US266521 1981-05-22
US266532 1981-05-22
US266424 1981-05-22
US266401 1981-05-22
US06/266,408 US4498131A (en) 1981-05-22 1981-05-22 Data processing system having addressing mechanisms for processing object-based information and a protection scheme for determining access rights to such information
US266524 1981-05-22
US266404 1981-05-22
US266421 1981-05-22
US266415 1981-05-22
US06/266,401 US4532586A (en) 1981-05-22 1981-05-22 Digital data processing system with tripartite description-based addressing multi-level microcode control, and multi-level stacks
US266414 1981-05-22
US06/266,414 US4513368A (en) 1981-05-22 1981-05-22 Digital data processing system having object-based logical memory addressing and self-structuring modular memory
US266408 1981-05-22
US06/266,403 US4493023A (en) 1981-05-22 1981-05-22 Digital data processing system having unique addressing means and means for identifying and accessing operands
US06/266,413 US4498132A (en) 1981-05-22 1981-05-22 Data processing system using object-based information and a protection scheme for determining access rights to such information and using multilevel microcode techniques
US266539 1999-03-11
US266403 2002-10-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP6083891A Division JPH06324948A (ja) 1981-05-22 1994-03-30 デジタル計算機システム

Publications (2)

Publication Number Publication Date
JPS57197652A JPS57197652A (en) 1982-12-03
JPH0746316B2 true JPH0746316B2 (ja) 1995-05-17

Family

ID=27585105

Family Applications (5)

Application Number Title Priority Date Filing Date
JP57085095A Expired - Lifetime JPH0746316B2 (ja) 1981-05-22 1982-05-21 デイジタル・デ−タ処理システム
JP6083891A Pending JPH06324948A (ja) 1981-05-22 1994-03-30 デジタル計算機システム
JP7266761A Pending JPH08263284A (ja) 1981-05-22 1995-09-14 デジタル計算機システム
JP7266763A Pending JPH08263305A (ja) 1981-05-22 1995-09-14 多重プログラムデータ処理システム
JP7266762A Pending JPH08278917A (ja) 1981-05-22 1995-09-14 デジタル計算機システム及びポインター決定方法

Family Applications After (4)

Application Number Title Priority Date Filing Date
JP6083891A Pending JPH06324948A (ja) 1981-05-22 1994-03-30 デジタル計算機システム
JP7266761A Pending JPH08263284A (ja) 1981-05-22 1995-09-14 デジタル計算機システム
JP7266763A Pending JPH08263305A (ja) 1981-05-22 1995-09-14 多重プログラムデータ処理システム
JP7266762A Pending JPH08278917A (ja) 1981-05-22 1995-09-14 デジタル計算機システム及びポインター決定方法

Country Status (4)

Country Link
EP (2) EP0300516B1 (ja)
JP (5) JPH0746316B2 (ja)
AU (1) AU556499B2 (ja)
DE (2) DE3280446T2 (ja)

Families Citing this family (98)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU556499B2 (en) * 1981-05-22 1986-11-06 Data General Corporation Data processing system
GB9009703D0 (en) * 1990-04-30 1990-06-20 Hewlett Packard Co Computer log-on device
US5280614A (en) * 1990-08-21 1994-01-18 International Business Machines Corporation Apparatus and method for controlling access to data using domains
CA2285089C (en) * 1991-11-12 2000-05-09 Ibm Canada Limited-Ibm Canada Limitee Logical mapping of data objects using data spaces
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
US5629980A (en) 1994-11-23 1997-05-13 Xerox Corporation System for controlling the distribution and use of digital works
JPH08263438A (ja) 1994-11-23 1996-10-11 Xerox Corp ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法
US6463446B1 (en) 1998-02-26 2002-10-08 Sun Microsystems, Inc. Method and apparatus for transporting behavior in an event-based distributed system
US6938263B2 (en) 1996-04-23 2005-08-30 Sun Microsystems, Inc. System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space
US6272559B1 (en) 1997-10-15 2001-08-07 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading for event notification in a distributed system
US6182083B1 (en) 1997-11-17 2001-01-30 Sun Microsystems, Inc. Method and system for multi-entry and multi-template matching in a database
US6138238A (en) 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6598094B1 (en) 1998-03-20 2003-07-22 Sun Microsystems, Inc. Method and apparatus for determining status of remote objects in a distributed system
US6237024B1 (en) 1998-03-20 2001-05-22 Sun Microsystem, Inc. Method and apparatus for the suspension and continuation of remote processes
US6487607B1 (en) 1998-02-26 2002-11-26 Sun Microsystems, Inc. Methods and apparatus for remote method invocation
US6438614B2 (en) 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
US6393497B1 (en) 1998-03-20 2002-05-21 Sun Microsystems, Inc. Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US6560656B1 (en) 1998-02-26 2003-05-06 Sun Microsystems, Inc. Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6466947B2 (en) 1998-03-20 2002-10-15 Sun Microsystems, Inc. Apparatus and method for dynamically verifying information in a distributed system
US6446070B1 (en) 1998-02-26 2002-09-03 Sun Microsystems, Inc. Method and apparatus for dynamic distributed computing over a network
US6282652B1 (en) 1998-02-26 2001-08-28 Sun Microsystems, Inc. System for separately designating security requirements for methods invoked on a computer
US6421704B1 (en) 1998-03-20 2002-07-16 Sun Microsystems, Inc. Method, apparatus, and product for leasing of group membership in a distributed system
US6247026B1 (en) 1996-10-11 2001-06-12 Sun Microsystems, Inc. Method, apparatus, and product for leasing of delegation certificates in a distributed system
US6226746B1 (en) 1998-03-20 2001-05-01 Sun Microsystems, Inc. Stack-based system and method to combine security requirements of methods
FR2752125B1 (fr) * 1996-08-01 1998-09-11 Bull Sa Distribution de tickets dans un systeme informatique multinodal
US6237009B1 (en) 1996-10-11 2001-05-22 Sun Microsystems, Inc. Lease renewal service
US5832529A (en) 1996-10-11 1998-11-03 Sun Microsystems, Inc. Methods, apparatus, and product for distributed garbage collection
US6728737B2 (en) 1996-10-11 2004-04-27 Sun Microsystems, Inc. Method and system for leasing storage
US6233684B1 (en) 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US6957427B1 (en) 1997-10-15 2005-10-18 Sun Microsystems, Inc. Remote object activation in a distributed system
US6253256B1 (en) 1997-10-15 2001-06-26 Sun Microsystems, Inc. Deferred reconstruction of objects and remote loading in a distributed system
US6604127B2 (en) 1998-03-20 2003-08-05 Brian T. Murphy Dynamic lookup service in distributed system
WO1999044133A2 (en) 1998-02-26 1999-09-02 Sun Microsystems, Inc. Method and system for deterministic hashes to identify remote methods
US6901518B1 (en) 1999-04-08 2005-05-31 Sun Microsystems, Inc. Method and system for establishing trust in downloaded proxy code
US7260543B1 (en) 2000-05-09 2007-08-21 Sun Microsystems, Inc. Automatic lease renewal with message gates in a distributed computing environment
US8082491B1 (en) 2000-05-09 2011-12-20 Oracle America, Inc. Dynamic displays in a distributed computing environment
US7065574B1 (en) 2000-05-09 2006-06-20 Sun Microsystems, Inc. Messaging system using pairs of message gates in a distributed computing environment
US7080078B1 (en) 2000-05-09 2006-07-18 Sun Microsystems, Inc. Mechanism and apparatus for URI-addressable repositories of service advertisements and other content in a distributed computing environment
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7395333B1 (en) 2000-05-09 2008-07-01 Sun Microsystems, Inc. Method and apparatus to obtain negotiated service advertisement
US6918084B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Spawning new repository spaces using information provided in advertisement schema messages
US6850979B1 (en) 2000-05-09 2005-02-01 Sun Microsystems, Inc. Message gates in a distributed computing environment
US6950875B1 (en) 2000-05-09 2005-09-27 Sun Microsystems, Inc. Message conductors in a distributed computing environment
US7243356B1 (en) 2000-05-09 2007-07-10 Sun Microsystems, Inc. Remote method invocation with secure messaging in a distributed computing environment
US6868447B1 (en) 2000-05-09 2005-03-15 Sun Microsystems, Inc. Mechanism and apparatus for returning results of services in a distributed computing environment
US7016966B1 (en) 2000-05-09 2006-03-21 Sun Microsystems, Inc. Generating results gates in a distributed computing environment
US7200848B1 (en) 2000-05-09 2007-04-03 Sun Microsystems, Inc. Migrating processes using data representation language representations of the processes in a distributed computing environment
US6917976B1 (en) 2000-05-09 2005-07-12 Sun Microsystems, Inc. Message-based leasing of resources in a distributed computing environment
US6970869B1 (en) 2000-05-09 2005-11-29 Sun Microsystems, Inc. Method and apparatus to discover services and negotiate capabilities
US6898618B1 (en) 2000-05-09 2005-05-24 Sun Microsystems, Inc. Client-specified display services in a distributed computing environment
US6862594B1 (en) 2000-05-09 2005-03-01 Sun Microsystems, Inc. Method and apparatus to discover services using flexible search criteria
US7010573B1 (en) 2000-05-09 2006-03-07 Sun Microsystems, Inc. Message gates using a shared transport in a distributed computing environment
US6973493B1 (en) 2000-05-09 2005-12-06 Sun Microsystems, Inc. Mechanism and apparatus for security of newly spawned repository spaces in a distributed computing environment
US7370091B1 (en) 2000-05-09 2008-05-06 Sun Microsystems, Inc. Method and apparatus for obtaining space advertisements
US7188251B1 (en) 2000-05-09 2007-03-06 Sun Microsystems, Inc. System and method for secure message-based leasing of resources in a distributed computing environment
US7072967B1 (en) 2000-05-09 2006-07-04 Sun Microsystems, Inc. Efficient construction of message endpoints
US6865657B1 (en) 2000-06-02 2005-03-08 Sun Microsystems, Inc. Garbage collector for a virtual heap
US6941410B1 (en) 2000-06-02 2005-09-06 Sun Microsystems, Inc. Virtual heap for a virtual machine
US6934755B1 (en) 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US6957237B1 (en) 2000-06-02 2005-10-18 Sun Microsystems, Inc. Database store for a virtual heap
US8832852B2 (en) 2000-08-28 2014-09-09 Contentguard Holdings, Inc. Method and apparatus for dynamic protection of static and dynamic content
US7743259B2 (en) 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US6912294B2 (en) 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US7296275B2 (en) 2001-01-04 2007-11-13 Sun Microsystems, Inc. Method and system for passing objects in a distributed system using serialization contexts
US7028009B2 (en) 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
CA2432189A1 (en) 2001-06-07 2002-12-19 Contentguard Holdings, Inc. Cryptographic trust zones in digital rigths management
US7660887B2 (en) 2001-09-07 2010-02-09 Sun Microsystems, Inc. Systems and methods for providing dynamic quality of service for a distributed system
US7756969B1 (en) 2001-09-07 2010-07-13 Oracle America, Inc. Dynamic provisioning of identification services in a distributed system
AU2002350209A1 (en) 2001-11-20 2003-06-10 Contentguard Holdings, Inc. An extensible rights expression processing system
US7974923B2 (en) 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7840488B2 (en) 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
EP1488302A4 (en) 2002-03-14 2005-11-30 Contentguard Holdings Inc SYSTEM AND METHOD FOR CREATING GRAPHIC EXPRESSIONS OF RIGHTS
US7805371B2 (en) 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
WO2003094076A1 (en) 2002-04-29 2003-11-13 Contentguard Holdings, Inc. Rights management system using legality expression language
US7685642B2 (en) 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
US7792874B1 (en) 2004-01-30 2010-09-07 Oracle America, Inc. Dynamic provisioning for filtering and consolidating events
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US7720767B2 (en) 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
JP4616369B2 (ja) 2008-06-17 2011-01-19 シャープ株式会社 太陽電池モジュール
WO2013099022A1 (ja) * 2011-12-28 2013-07-04 富士通株式会社 データ処理装置、送信装置、スケジューリング方法、送信制御方法、スケジューリングプログラム、および送信制御プログラム
EP3573039B1 (en) * 2017-01-20 2021-08-18 Nippon Telegraph and Telephone Corporation Secure computing system, secure computing device, secure computing method, and program
CN110955143B (zh) * 2019-11-27 2021-11-05 清华大学 一种一阶惯性纯滞后过程的复合控制方法
CN112054741B (zh) * 2020-08-06 2022-06-03 深圳市杉川机器人有限公司 电机控制方法、装置、终端设备及存储介质
CN112347003B (zh) * 2020-11-26 2024-05-14 北京泽石科技有限公司 一种高效的闪存颗粒微码控制方法
KR102308990B1 (ko) * 2021-07-20 2021-10-06 (주) 에이블리 반도체 테스트 패턴 발생 장치 및 방법
CN116501594B (zh) * 2023-06-27 2023-09-08 上海燧原科技有限公司 系统建模评估方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5468135A (en) * 1977-11-11 1979-06-01 Fujitsu Ltd Input and output control system
JPS5475253A (en) * 1977-11-29 1979-06-15 Fujitsu Ltd Information process system
JPS54111733A (en) * 1978-02-21 1979-09-01 Nec Corp Multiplex processor system
JPS5532155A (en) * 1978-08-29 1980-03-06 Fujitsu Ltd Data processor
JPS55112651A (en) * 1979-02-21 1980-08-30 Fujitsu Ltd Virtual computer system
AU556499B2 (en) * 1981-05-22 1986-11-06 Data General Corporation Data processing system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
山谷・秋山、「仮想計算機」、昭和55年5月20日(初版4刷)、共立出版(株)、P.177−191
池田、「オペレーティング・システム」、5版、昭和58年6月15日、日本コンピュータ協会、P.273−280

Also Published As

Publication number Publication date
EP0067556A2 (en) 1982-12-22
EP0300516B1 (en) 1993-11-24
EP0067556A3 (en) 1986-01-15
JPS57197652A (en) 1982-12-03
JPH08278917A (ja) 1996-10-22
EP0300516A3 (en) 1989-04-26
DE3280446T2 (de) 1994-05-11
DE3280152D1 (de) 1990-05-23
JPH08263284A (ja) 1996-10-11
JPH06324948A (ja) 1994-11-25
EP0067556B1 (en) 1990-04-18
EP0300516A2 (en) 1989-01-25
JPH08263305A (ja) 1996-10-11
AU8017882A (en) 1982-11-25
DE3280446D1 (de) 1994-01-05
AU556499B2 (en) 1986-11-06

Similar Documents

Publication Publication Date Title
JPH0746316B2 (ja) デイジタル・デ−タ処理システム
US4455602A (en) Digital data processing system having an I/O means using unique address providing and access priority control techniques
US4525780A (en) Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US4445177A (en) Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US4493027A (en) Method of performing a call operation in a digital data processing system having microcode call and return operations
AU593570B2 (en) Digital data processing system
EP0381470B1 (en) Processing of memory access exceptions along with prefetched instructions within the instruction pipeline of a virtual memory system-based digital computer
TWI574156B (zh) 具有獨立的使用者和監管者域的記憶體保護鑰結構
CN108334400B (zh) 为安全飞地管理存储器
US10394595B2 (en) Method to manage guest address space trusted by virtual machine monitor
EP3528130A1 (en) Mechanism to prevent software side channels
US10180854B2 (en) Processor extensions to identify and avoid tracking conflicts between virtual machine monitor and guest virtual machine
TW201732561A (zh) 用於控制流向終止的模式特定結束分支
JPH01503011A (ja) キャッシュマネッジメントシステムを含むデジタルデータ処理システム用汎用プロセッサユニット
WO2017058381A1 (en) Method and apparatus for light-weight virtualization contexts
US7100006B2 (en) Method and mechanism for generating a live snapshot in a computing system
US10209991B2 (en) Instruction set and micro-architecture supporting asynchronous memory access
EP1617335A1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
WO1981002477A1 (en) Data processing system
CN109690546B (zh) 支持对客户机飞地存储器页的超额订阅
EP0290111B1 (en) Digital data processing system
EP0290110A2 (en) Digital data processing system
CA1174767A (en) Processor with means to address operands in microinstructions
CA1179063A (en) Data processing system having a uniquely organized memory using object-based information and a unique protection scheme for determining access rights to such information
CA1178714A (en) Digital data processing system using uniquely identified information