バロース B5000

バロースが1961年にリリースした大型コンピュータ

 B50001961S[NB 1]48B5000 ALGOL 60 B5500B6500/B6700 COBOL

18801950 Sensimatic IBMNCRUNIVACB5000B6500 ClearPath Libra B6700MCPB8500[1][2]

B5000S[3]  John Mashey 1 B5000 /[4]B5500[5]B5700B6500B5000 Master Control Program (MCP) B5000

特徴

編集

0
/





ALGOLESPOL11







MCP; Master Control Program



COBOL



[NB 2]



[NB 3]

 ClearPath Libra 



B5000AClearPath/MCP使

斬新なシステム設計

編集

B5000は、ソフトウェアのニーズを考慮してアーキテクチャと命令セットが設計されたという点で、当時としては革新的であった。当時、プロセッサとその命令セットは設計が完了してからソフトウェア開発者に渡されるのが通例であった。

言語サポート

編集

B5000FORTRANCOBOLFORTRANCOBOLALGOL-60ALGOL Elliott ALGOL  Elliott 503 ALGOL

ALGOL-60FORTRANPascalCSimulaAdaEiffel

B5000ALGOL ALGOL-58 ALGOLALGOLC

ALGOLB5000ALGOL使1

COBOL4000COBOL1000

B6500B7500B5000
  • B5000では命令語が12ビット固定だったが、B6500では命令コードは8ビットで命令長は可変である。
  • B5000はデータワード長が48ビットだったが、B6500では51ビットである(データ形式を示す3ビットのタグが追加されている[6][NB 4]
  • B5000はマスタースレーブ型だったが、B6500では対称型マルチプロセッシング (SMP) をサポートしている。
  • B6500はスタックが枝分かれする方式を採用している。
  • B6500はページ化配列をサポート。
  • B6500では、外側ブロックの変数に内側の入れ子になったサブルーチンからアクセスする手段が用意された。

B8500[1][2]B5000D825[7]

B85001960B5500D82548B5500[1]1970[2]

歴史

編集

B500019612使 B5500B6500B5700 B6700B7700B6800B7800A25CMOSASIC MCP 使2005 ClearPath Libra 590 MCP CMOS  Intel Xeon 
バロース (1961–1986)
B5000 1961 最初のシステム。第2世代(トランジスタ)コンピュータ
B5500 1964 性能向上版[2]
B6500 1969 第3世代(集積回路)。最大4プロセッサ
B5700 1971 B5500の後継(単なる改称という説もある)
B6700 1971 B6500の後継(単なる改称という説もある)
B7700 1972 キャッシュ追加などで性能向上。最大8プロセッサ(2パーティションに分割可能)
B6800 1977? 半導体メモリ、NUMAアーキテクチャ
B7800 1977? 半導体メモリ、クロック向上、最大8プロセッサ(2パーティションに分割可能)
B5900 1980? 半導体メモリ、NUMAアーキテクチャ。最大4CPUで、CPU毎のローカルメモリとグローバルメモリがある。
B6900 1979? 半導体メモリ、NUMAアーキテクチャ。最大4CPUで、CPU毎のローカルメモリとグローバルメモリがある。
B7900 1982? 半導体メモリ、クロック向上、命令/データの分離型キャッシュ、NUMAアーキテクチャ。
A9/A10 1984 B6000クラス。ミッドレンジとしては初の命令パイプライン。A9は1CPU、A10は2CPU。
A12/A15 1985 B7000クラス。モトローラ製ECLチップで実装。A12は1CPU、A15は最大4CPU
A2/A3/A5 1985? B5900クラス。A2は1CPU、A3/A5は最大2CPU。
ユニシス (1986– )
Micro A 1989 デスクトップ型メインフレーム。CPUをワンチップで実装(SCAMP)[8][9]
Clearpath HMP NX 4000 198? ??
Clearpath HMP NX 5000 199? ??
Clearpath HMP LX 5000 1998 Xeonプロセッサを採用し、エミュレーションでバロースの大型システムを実装
Libra 100 2002? ??
Libra 200 200? ??
Libra 300 200? ??
Libra 400 200? ??
Libra 500 2005? ??
Libra 600 2006? ??

B5000ALGOL使PDP-11MC68000x86

ALGOLB5000ALGOLCOBOL

B5000ALGOLALGOLC #define DEFINEEVENT 使 ON FAULT 

ALGOL (OS) 2ESPOLNEWPOSOSDCALGOLDMALGOL

ESPOL と NEWP

編集

B5000OSMCPALGOLESPOL(Executive Systems Programming Oriented Language)70NEWPNEWPNo Executive Washroom PrivilegesNEWPALGOLESPOL使使使

NEWPNEWPALGOL

NEWPALGOLINLINE

NEWP/

DCALGOL とメッセージ制御システム(MCS)

編集

NEWPOSALGOLDCALGOL (data comms ALGOL) OS使COMSMCS

MCSMCSMCS30B5000MCS

MCS TCP (Terminal Control Processor) 24TCPB6500MCSB6500TCPB6500ALGOLTCPALGOLTCPTCPALGOL11ALGOLALGOLTCPB6500B6500TCPTCP

DMALGOL とデータベース

編集

DMALGOL (Data Management ALGOL) DMSII ALGOLDMALGOLDASDLDMSIIALGOLCOBOL使DMALGOL

DMALGOL調

DMALGOL DMSII 使DASDL (Data Access and Structure Definition Language) DMALGOLDBMS if/then/else 1970使

ALGOLDMALGOL

スタックアーキテクチャ

編集

B5000

B5000 MVST (move stack) [10]MVST

スタックの速度と性能

編集

B50002AB2使



CPUB5000CPU

プログラムとスタックのマッピング

編集


begin
    — ここは語彙レベル2(レベル0はOS用。レベル1はコードセグメント用)
    — レベル2では、広域変数を置く
    integer i, j, k
    real f, g
    array a [0:9]
    procedure p (real p1, p2)
         value p1 — p1 は値渡し、p2 は指定されていないので参照渡し
    begin
         — 語彙レベル3real r1, r2
         r2 := p1 * 5
         p2 := r2 — 'g' の値として r2 の値がセットされる
          p1 := r2 — 'p1'の値が r2 となるが、'f' は変化しない
                       — 値渡しの引数を更新しているのでエラーとなるべきところである。
                       — 一部のALGOLの後継言語では、このような引数をリードオンリーとして
                       — 問題解決しているが、多くの場合そのままとなっている。
         if r2 > 10 then
         begin
              — 変数が定義されているので、ここが語彙レベル4となる
              integer n
              — 変数が宣言されているため、このブロックではスタック生成コードが呼ばれる。
                — 通常、このような場所では変数を宣言しない。
              ...   <== 後述のスタックの例はこのあたりを実行している状態である。
         end
    end
    .....
    p (f, g)
end
         

 (lexical level) ALGOL

5B500032

プロシージャ

編集

4 normalcallprocessrun 

normal



call

CONTINUE

process

使EVENT調(WAIT)EVENT PROCURE  LIBRATE 使

run



ALGOLAda

INLINE

 normal 

 D (Display) DD32D32
 
B5000

5(D[5])2(D[2])26(2, 6)DD[5]()D[4]辿

D使D[2]2D()辿LLLUD使D使

pD[3]D[3]D[2]D[3]D[2]D[2]D[2]

D[1]D[0]D[1]D[0]

使FIB(File Information Block)D[1]90 STRUCTURE BLOCK  CONNECTION BLOCK DB5000使使

スタック構造の利点

編集



FORTRANALGOLB5000FORTRAN

FORTRANALGOLSimulaAPLAPLLISPLISPB5000LISP

使 (SYSGEN) B5000B5000

タグベースのアーキテクチャ

編集

B5000

B5000()

B5000

B6500483047485048使3:
タグ ワード種別 説明
0 Data 全てのデータ(文字データと単精度数値)
2 Double 倍精度数値データ
4 SIW ステップインデックスワード(ループで使用)
6 未初期化データ
SCW ソフトウェアコントロールワード(スタックのカットバックに使用)
1 IRW 間接参照ワード
SIRW スタック間の間接参照ワード
3 Code プログラムのコードワード
MSCW スタック制御ワードのマーク
RCW リターン制御ワード
TOSCW スタック制御ワードの先頭
SD セグメント記述子
5 Descriptor データブロック記述子
7 PCW プログラム制御ワード
内部的には一部機種はワード長が60ビットになっている。追加されたビットはハミング符号によるエラー訂正などに使われる。もちろんこれらもプログラマからは見えない。
最近の後継であるClearPathはタグを4ビットに拡張している。

使

1IRWSIRW

55

7(PCW)

33 MSCWRCWTOSCW使

セグメンテーション

編集

B5000シリーズでは、それぞれのプログラムが Program Reference Table (PRT)と呼ばれるセグメント情報テーブルを持ち、PRT内にあるプレゼンス情報を参照した存在確認、セグメントサイズを参照したアドレス違反チェックした後に、ベースアドレス情報を利用して、メインメモリ中の絶対アドレスを生成してアクセスする[11]

マルチプロセッサ

編集

B5000B50002[12]B70008:

HEYU  

RDLK  AAB

WHOI  

IDLE  

RDLK使EVENT

B5000の影響

編集

ForthMITB5500Forth - The Early YearsForthDUP, DROP, SWAPB5500 (DUPL, DLET, EXCH) 

 Elbrus B5000 El-76  ALGOL-60  Elbrus EPICVLIWCPU

HP 3000 B5000 (RPN) HP HP-35 

19701980 NonStop 16HP 3000 B50001990MIPS2000Itanium

 B5000  Smalltalk 

参考文献

編集
  • The Extended ALGOL Primer (Three Volumes) Donald J. Gregory
  • Computer System Organization: The B5700/B6700 Series Elliot I Organick Academic Press (1973年)
  • Computer Architecture: A Structured Approach R. Doran Press (1979年)
  • Stack Computers: The New Wave Philip J. Koopman
  • B5500, B6500, B6700, B6800, B6900, B7700 manuals at: bitsavers.org
  • P.HAYES, JOHN (1978,1979). Computer Architecture and Organization. ISBN 0-07-027363-4 

脚注

編集


(一)^ B500012B65008

(二)^ 

(三)^ 3 Atlas Atlas

(四)^ 

出典

編集
  1. ^ a b c John T. Lynch (August 1965), “The Burroughs B8500”, Datamation: 49–50, http://bitsavers.org/pdf/burroughs/B8500/B8500_Datamation_Aug65.pdf. 
  2. ^ a b c d George Gray (October 1999), “Burroughs Third-Generation Computers”, Unisys History Newsletter 3 (5), https://wiki.cc.gatech.edu/folklore/index.php/Burroughs_Third-Generation_Computers. 
  3. ^ Burroughs (1963), The Operational Characteristics of the Processors for the Burroughs B5000 (Revision A ed.), 5000-21005, http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/5000-21005_B5000_operChar.pdf 
  4. ^ John Mashey (15 August 2006). "Admired designs / designs to study". Newsgroupcomp.arch. Usenet: 1155671202.964792.162180@b28g2000cwb.googlegroups.com. 2007年12月15日閲覧
  5. ^ Burroughs (May 1967), Burroughs B5500 Information Processing System Reference Manual, 1021326, http://www.bitsavers.org/pdf/burroughs/B5000_5500_5700/1021326_B5500_RefMan_May67.pdf 
  6. ^ CompArchOrg & 1978,1979, p. 149.
  7. ^ Anderson, James P.; Hoffman, Samuel A.; Shifman, Joseph; Williams, Robert J. (1962), “D825 - a multiple-computer system for command & control”, Proceedings of the December 4–6, 1962, Fall Joint Computer Conference, AFIPS Conference Proceedings, Volume 24, doi:10.1145/1461518.1461527 
  8. ^ SCAMP picture at dave's Old computers
  9. ^ Reitman, Valerie (January 18, 1989), “Unisys Ready To Offer A Desktop Mainframe”, Philadelphia Inquirer, http://articles.philly.com/1989-01-18/business/26123789_1_unisys-scamp-mainframe 2011年4月16日閲覧。 
  10. ^ Organick, Elliot (1973). Computer System Organization. ACM. pp. 115–117. ISBN 0-12-528250-8 
  11. ^ CompArchOrg & 1978,1979, p. 371.
  12. ^ CompArchOrg & 1978,1979, p. 43-44.

関連文献

編集

外部リンク

編集