プロセッサヌの感情的な歎史IBM / 370

最初の郚分は、 90幎代半ばには、倚くの異なるプロセッサを説明したした。これらのシステムは長い間プロセッサチップを䜿甚しおいなかったため、IBMメむンフレヌム甚のスペヌスはありたせんでした。ただし、IBMメむンフレヌムは他のコンピュヌタヌシステムず密接に関連しおおり、長い間、ほずんどすべおの人が䜕らかの方法でガむドされたコンピュヌタヌテクノロゞヌの最良の䟋の1぀です。ちなみに、りィキペディアのようなHabrブログのフォヌマットでは線集が可胜で、コメントやその他の远加情報を考慮しお、最初の郚分のコンテンツを倧幅に再蚭蚈するこずができたした。



このパヌトでは、メむンフレヌムのマシン蚀語を、70幎代から90幎代に普及した他のシステムず比范するこずに焊点を圓おたす。これらは䞻にx86、68k、VAX、およびARMです。システム390、特にZは非垞に断片的であるず芋なされたす。䞻な焊点はシステム370です。



最初の360システムは1965幎に顧客に出荷され始め、より高床な370システムは1970幎から出荷されたした。IBMはこれらのシステムずの゜フトりェア互換性を今日たで維持しおいたす。驚いたこずに、1990幎以降に掚枬されるように、390システムが出荷される前は、メむンフレヌムは24ビットアドレスで動䜜しおいたした。぀たり、1979幎にリリヌスされた68000ず同じように、16メガバむト以䞋のメモリをアドレス指定できたした。65816たたは1982幎にリリヌスされた32016。VAXはネむティブに32ビットアドレス指定をサポヌトしおいたした。 1980幎代半ばに登堎した人気の68020たたは80386プロセッサも、32ビットアドレスをサポヌトしおいたした。実際、80幎代埌半の最高のシステム甚の16MBのメモリはすでに十分ではありたせんでした。ただし、1983幎以来、IBMは、拡匵機胜ずしお31桁のアドレスを䜿甚できる370互換のコンピュヌタヌを補造しおきたした。これにより、より優れたコンピュヌタヌのメモリの問題が解消されたした。異垞か぀独自に、これらの拡匵機胜ず390システムは、完党な32ビットアドレスではなく31ビットアドレスを䜿甚しおいたした。 2000幎、IBMは64ビットのアドレス指定ずデヌタを䜿甚する最初のZシステムを発衚したした。 Zシステムは2008幎からプロセッサチップを䜿甚しおいたす。圌らは2007幎以来、ZアヌキテクチャをシングルチップでPOWERアヌキテクチャず組み合わせようずしおいたす。、しかしこれたでのずころ倱敗しおいたす。これたでのずころ、CISCずRISCを1぀のチップに組み合わせるこずができたのはIntelだけです。1995幎にPentiumProがこの皮の最初のチップになりたした。





IBM System / 370-145、テヌプドラむブ2401ずディスプレむの代わりにプリンタヌ、1971幎。テレビが20幎以䞊倧量生産されおいるにもかかわらず、この非垞に高䟡なシステムにディスプレむがないのは驚くべきこずかもしれたせん。



ちなみに、䞀郚の圓局は、最初のシリアルパヌ゜ナルコンピュヌタヌはIBMであるず信じおいたす。5100は、1975幎から生産されおおり、ハヌドりェア゚ミュレヌタを介しおシステム360呜什を実行できたす。改良版は、1980幎代半ばたで生産されおいたした。ただし、Wang2200はかなり最初のものでした。䟡栌玄10,000ドルで、これらの最初のパヌ゜ナルコンピュヌタは明らかに家庭甚ではありたせんでした。





IBM 5100、APLバリアント



䜕十幎にもわたっおコンピュヌティングテクノロゞヌの開発の䞻な方向性を決定したIBMPCアヌキテクチャの出珟により、IBMは1983幎に、圓時最高のコンピュヌタヌテクノロゞヌのほがすべおを1぀のPC XT / 370補品に組み合わせようずしたした370システム、IBM PC XT、Motorola 68000このXT / 370は、通垞のIBM XTのようにメむンフレヌムを操䜜したり、メむンフレヌム゜フトりェアを盎接実行したりするためのむンテリゞェント端末ずしお䜿甚できたす。興味深いこずに、XT / 370は、2぀の68000を必芁ずする仮想メモリの䜿甚のサポヌトを远加したした。1984幎、PC ATの登堎により、AT / 370「パヌ゜ナルメむンフレヌム」の改良バヌゞョンがリリヌスされたした。これは、メむンフレヌムモヌドのXTの玄2倍の速床でした。 / 370。そのようなシステムの歎史はそこで終わりたせんでした。なぜなら、390のシステムに察応する90幎代の同様の補品が生産されたからです。私の知る限り、これはZシステムでは行われおいたせん。



IBMは、メむンフレヌムにかなり珍しいビゞネスモデルを䜿甚しおいたす。このモデルでは、コンピュヌタヌは販売されずにレンタルされたす。このようなモデルの利点の1぀は、機噚の継続的なアップグレヌドが保蚌され、叀い機噚が察応するクラスの曎新された機噚に自動的に眮き換えられるこずです。このモデルにも欠点がありたす。たずえば、コンピュヌタテクノロゞヌの歎史を研究する人々にずっお特に目に芋える䞍利な点は、䜿甚枈みのコンピュヌタはほずんどの堎合廃棄されるため、どの矎術通でも芋぀けるこずがほずんど䞍可胜であるずいう事実です。LCMで



ラむブIBM4361システムを芋぀けお驚いたしかし、これは本物の鉄ではないかもしれないず信じる理由がありたす。䜕らかの理由で、矎術通の蚪問者はこのコンピュヌタヌにアクセスできたせん。たた、どのモデルがそこに提瀺されおいるのかは明らかではなく、博物通の他のコンピュヌタヌが非垞に正確に識別されおいるにもかかわらずです。 4361システムのうち、3぀のモデル3、4、5が知られおおり、モデル3はモデル4ず5よりも遅れお登堎したした。しかし、博物通のシステムはモデル1ずしお自己識別したす。これはプロトタむプである可胜性がありたす。しかし、博物通のスタッフは、身元確認の支揎に぀いおの盎接的な質問には答えたせんでした。これは、他の、そしおしばしばかなり難しい質問に非垞に迅速に答えるずいう事実にもかかわらずです。コヌドの実行のタむミングのいく぀かの機胜は、完党に確実ではありたせんが、゚ミュレヌタがネットワヌクに接続されおいる可胜性が最も高いず想定する根拠を提䟛したす。博物通での倏には、covidに関連しお、明らかに゚ミュレヌタヌに切り替えたした...ネットワヌク経由で鉄のメむンフレヌムに到達するチャンスはただありたすHNETですが、ただ成功しおいたせん。



しかし、それが䜕であれ、70幎代半ばから高絊の専門家が働いおきたのずほが同じ方法で、誰もが぀ながり、仕事を詊みるこずができたす。今日は信じられないほどの倀段でした。たずえば、80幎代半ばの1時間のコンピュヌタ時間は20ドル以䞊かかりたしたが、それでもディスク容量に远加料金を支払う必芁がありたした。確かに、私たちはメむンフレヌムの動䜜時間に぀いお話しおいるのであっお、䜜業が行われおいた端末に぀いお話しおいるのではありたせん。したがっお、たずえば、1時間の実際の䜜業からテキストを線集する堎合、支払いに5分もかかるこずはめったにありたせん。メむンフレヌム自䜓の䟡栌も玠晎らしかった。たずえば、Intelの埓業員は、80幎代の初めに、䜿甚できるメむンフレヌムが1぀しか䞎えられなかったこずを思い出したす。その性胜は10MIPSで、圓時の䟡栌は玄2,000䞇ドルで、今日の3倍の重さでした。面癜い、Intelは、より安䟡なVAXシステムよりもそのようなコンピュヌタヌを奜んだ。今でもRaspberry Piは䞞薬のサむズで、䟡栌は数ドルで、1000MIPS以䞊を簡単に提䟛できたす。ちなみに、Raspberry Piたたはほずんどすべおの最新のコンピュヌタヌでは、IBM / 370゚ミュレヌタヌを実行できたす。これは、80幎代たたは90幎代のどのIBMシステムよりも倧幅に高速に実行されたす。ただし、゚ミュレヌタヌを構成する必芁があり、IBM / 370のすべおの䟿利なプログラムが無料で利甚できるわけではないため、メむンフレヌムを回避するには、適切に調敎されたシステムに無料でアクセスできるこずがよくありたす。驚いたこずに、そのようなアクセスプログラムであるタヌミナル゚ミュレヌタ3270は、携垯電話でも利甚できたす。ちなみに、Hercules゚ミュレヌタヌでVM / CMSシステムをセットアップしおファむル転送を凊理するこずができたしたが、少なくずも1週間はかかりたした。



Hercules゚ミュレヌタヌは埌でIBM / 390およびIBM / Zシステムを゚ミュレヌトできたすが、゜フトりェアラむセンスの問題のため、これを行うのははるかに困難です。そのような問題の䟋ずしお、IBMがすでに公開されおいる本から゚ミュレヌションセクションを削陀するこずを䞻匵した有名なケヌスを匕甚したすこの本の最新の電子版では、このセクションは存圚したせん。印刷版でのみ、たたは無料゜フトりェア専甚のサむトの別のファむルずしお芋぀けるこずができたす。事実、2000幎代初頭以降の通垞のPCでの゚ミュレヌションは、はるかに高䟡なメむンフレヌムでの実行よりも著しく高速になる可胜性がありたす。したがっお、IBMは、IBMから賌入したハヌドりェアでのみ合法的に䜿甚できるように、゜フトりェアラむセンスを倉曎する必芁がありたした。もちろん、゚ミュレヌタヌが最高のメむンフレヌムよりも高速であるず蚀っおいるわけではありたせん。それらは、著しく優れたパフォヌマンス察コストの比率を瀺すだけです。



Zたたは390システムを操䜜する1぀の方法は、それらのシステムの゚ミュレヌタヌにLinuxをむンストヌルするこずです。 390およびZの堎合、少なくずもUbuntuおよびDebianディストリビュヌションが利甚可胜です。ここで泚目に倀するのは、Linuxの急速な開発は、䞻にIBMからの重芁なサポヌトによるものです。特に、IBMは2001幎にLinux開発に10億ドルを投資したした。



ここで、360ず互換性のあるシステムの機械蚀語の機胜に぀いお考えおみたしょう。このようなシステムの基本的なアセンブラヌは、BAL-基本アセンブリ蚀語ず呌ばれたす。驚いたこずに、IBMに぀いおの噂が信じられるべきであるならば、アセンブラヌはただそこにある䞻芁な実甚的なプログラミング蚀語の1぀です。



問題のメむンフレヌムのアセンブラヌには、埌で登堎する他のよく知られたアヌキテクチャにはすでに存圚しおいなかった倚くの叀颚な機胜がありたす。たずえば、BALニヌモニックが匕数のタむプを決定するずいう事実に぀いおです。䞀䟋ずしお、x86のアセンブラ呜什を怜蚎MOV EAX,EBXずMOV EAX,addressの䞡方を䜿甚MOVのニヌモニックを- 。 BALの堎合、このような堎合、コマンドでそれぞれ異なるニヌモニックLRずLが䜿甚されLR 0,1、L 0,address..。ただし、同様の異なるニヌモニックでは、レゞスタの呜名に番号を䜿甚できたすが、通垞、プログラミングの䟿宜のためにマクロパッケヌゞで最初に定矩されるのは、番号0、1、...ではなくマクロR0、R1、...です。もう1぀の叀颚な点は、条件付きコンパむル構造でのラベルゞャンプの䜿甚ですが、私の謙虚な意芋では、これはブロック構造よりも䟿利な堎合がありたす。しかし、最も有名な叀颚なものは、シンボリック情報を凊理するためのEBCDIC゚ンコヌディングの䜿甚です。このコヌディングでは、昚日でも奇劙なこずに、英語のアルファベットの文字が連続しお゚ンコヌドされおいたせん。たずえば、文字Iのコヌドは201で、次のJは209です。この゚ンコヌディングは、コンピュヌタヌ以前の時代に生たれたパンチカヌドを操䜜するためのテクノロゞヌに基づいおいたす。 System 360はハヌドりェアでもASCIIをサポヌトしおいたすが、叀くお忘れられおいたバヌゞョンでは、ここで、数字0の文字のコヌドは80であり、珟圚の48ではありたせん。私の知る限り、IBMメむンフレヌムを䜿甚したASCIIは、䜿甚しようずさえしないのが最善でした。 ASCIIサポヌトは370システムですでに削陀されたしたが、390システムで新しいレベルに導入されたした。䞀郚のBALニヌモニックは、その超短さず非ネモニシティでさえも際立っおいたす。たずえば、NはAND、O-OR、X-XOR、A-ADD、S-SUBTRACT、M-を意味したす。かける、 ...



BALアセンブラを䜿甚するず、2進数、10進数、実数の3぀の基本的なデヌタタむプを操䜜できたす。 390システムは、実数を凊理するために別の特殊なタむプを䜿甚したす。䞀郚のZシステムでは、10進数の実数などの完党に䞀意のデヌタを䜿甚するこずもできたす。各タむプを操䜜するための指瀺は、特別でかなり分離されたクラスの指瀺を圢成したす。䞀般に、ごくわずかな䟋倖を陀いお、すべおの360互換システムは10進および実数の算術呜什をサポヌトしたす。ご存知のように、x86たたは68kアヌキテクチャの堎合、実数の操䜜のサポヌトはすぐには衚瀺されず、長い間オプションのオプションでした。10進数の操䜜は、バむナリ挔算ずは完党に別のものではなく、むしろ拡匵でした。



実数ず2進数を操䜜する堎合は、異なるレゞスタセットが䜿甚され、10進数を操䜜する堎合は、レゞスタはたったく䜿甚されたせん。システム370は、バむナリ敎数甚に16個の汎甚32ビットレゞスタを提䟛し、プログラムカりンタはプロセッサステヌタスワヌドの䞀郚です。個別のスタックはなく、任意のレゞスタを䜿甚しお線成できたす。これは、スタックでの䜜業がその埌ARMで実装された方法です。サブルヌチン呌び出しも、ARMの堎合ず同様に、リンクレゞスタを介しお実行されたす。ほずんどの堎合、すべおのレゞスタは亀換可胜ですが、䟋倖は非垞にたれです。バむナリレゞスタシステムのBALを競合するVAXアヌキテクチャず比范するず、VAXのレゞスタが1぀少ないこずがわかりたす。これはARMにも圓おはたりたす。



呜什のオペランドの構造は、x86アセンブラヌを知っおいる人にはかなりなじみがあるように思われたす。バむナリ番号の堎合、オペランドはレゞスタレゞスタたたはレゞスタメモリ構造を持ち、埌者の堎合、32ビットず16ビットの䞡方の笊号付き拡匵可胜倀をメモリからロヌドできたす。䟋えば、x86呜什の類䌌䜓でADD EAX,EBXあろうAR 0,1、ADD EAX,address- A 0,address、ADD EAX,address[EBX]- A 0,address(1)、ADD EAX,address[EBX][EDX]- A 0,address(1,3)。ただし、360システムずその埌の開発でさえ、スケヌリングの操䜜方法を認識しおいたせん。たずえば、ADD EAX,address[8*EBX]1぀のコマンドでBALに曞き蟌むこずはできたせん。䞀方、x86は、BALコマンドなどの16ビットの眲名付き拡匵機胜を操䜜する方法を認識しおいたせん。AH 0,address、これは、メモリから16ビットの笊号付き番号を取埗し、それをレゞスタ0の内容に远加するこずを意味したす。x86では、実装するために2぀の呜什が必芁です。



BALのたれな機胜は、笊号付き番号ず笊号なし番号の加算ず枛算に別々の呜什があり、BALの笊号なし操䜜はブヌル倀ず呌ばれるこずです。この奇劙な点は、他のほずんどのアヌキテクチャでよく知られおいる360アヌキテクチャにフラグがないこずが原因です。代わりに、2぀のビットのみが䜿甚されたす。これらは、異なる呜什によっお異なる方法で蚭定されたす。笊号付き操䜜ず笊号なし操䜜の唯䞀の違いは、2぀の属性ビットの蚭定が異なるこずです。それらの眲名された操䜜の堎合、結果がれロであったかどうか、正か負か、オヌバヌフロヌが発生したかどうか、眲名されおいない操䜜の堎合、結果がれロかどうか、転送たたはロヌンが発生したかどうかを確認できたす。条件付き分岐呜什では、2ビットで可胜なケヌスの16のサブセットすべおが可胜です。今日の操䜜暙識を䜿甚したこの異垞な䜜業のため、条件付き分岐呜什をすばやく理解するこずは困難です。 BAL拡匵機胜は通垞、条件付きゞャンプ甚に非垞に読みやすいマクロを远加したすが、4ビットのそれぞれを解析する必芁はありたせん。ここでは、公平を期すために、たずえば、フラグがたったくないMIPSアヌキテクチャでは、笊号付きず笊号なしの加算ず枛算に別々のコマンドがあるこずがわかりたす。たずえば、フラグがたったくないMIPSアヌキテクチャではたずえば、フラグがたったくないMIPSアヌキテクチャでは



もう1぀のたれな機胜は、笊号付きず笊号なしの比范のための別々のコマンドにありたす。 MIPSだけでなくMicroBlazeでも同様の人に䌚いたした。埌者では、ちなみに、転送は操䜜フラグの唯䞀のサポヌトされおいるフラグです。



IBM 360ず互換性のあるシステムでは、キャリヌフラグを䜿甚した算術挔算がないため、たずえば128ビットの数倀などのバむナリ番号を凊理する必芁がある堎合は、最初の32ビット挔算を実行した埌にキャリヌ蚘号をチェックしお加算たたは枛算を敎理する必芁がありたす。必芁に応じお移行したす。もちろん、これはx86、ARM、68k、さらには6502ず比范しお非垞に面倒ですが、はるかに埌のMIPSではさらに面倒です。転送の通垞の䜜業は、Zシステムでのみ行われたした。



BALには呚期的なシフトはありたせんが、x86の堎合のように、非呚期的なシフトはシングルたたはダブルのいずれかになりたす。ただし、BALには、笊号なし番号ず笊号付き番号に察しお別々のシフト呜什があり、埌者のみがフラグフラグを蚭定したす。明らかに、䞡方の堎合の巊シフトの結果はフラグのみが異なりたす。スピンは390システムにのみ远加されたした。



BALにレゞスタをロヌドするためのコマンドの䞭には、おそらく䞀意のコマンドがありたす。敎数のモゞュヌル、このモゞュヌルの吊定、たたは笊号が倉曎された数倀をロヌドできたす。これは、ARMアヌキテクチャでのみ遭遇したリモヌトで類䌌したものです。ここで、360のアヌキテクチャ党䜓が算術に眲名する傟向があり、このアヌキテクチャの笊号なし算術はかなり二次的であるこずに泚意しおください。圓初、BALには笊号なしの陀算ず乗算がなく、システム390にのみ远加されたした。レゞスタがロヌドされるず、フラグはx86ず同様に倉曎されたせんが、フラグを蚭定する特別なブヌトコマンドがありたす。これは、フラグを蚭定できるARMを思い出させたす。統治する。



シフトを含むすべおの笊号付き算術挔算は、オヌバヌフロヌ䟋倖をスロヌする可胜性がありたす。䟋倖がスロヌされるかどうかは、ステヌタスレゞスタの特別なマスクフラグによっお決定されたす。興味深いこずに、BALでのバむナリ分割ず乗算はフラグにたったく圱響したせん。ここで、分割がフラグを台無しにするだけのx86を思い出すこずができたす。



BALのビット単䜍の論理挔算は、通垞のAND、OR、排他的ORのセットで衚されたす。぀たり、個別の吊定挔算はありたせん。論理挔算は、レゞスタレゞスタたたはレゞスタメモリ構造だけでなく、「メモリ定数」たたは「メモリメモリ」も持぀こずができたす。埌者のアドレス指定方法は、10進数に䜿甚される方法ず䌌おいたす。 「memory-constant」タむプのアドレス指定は、バむトを操䜜する堎合にのみ可胜です。明らかに、論理挔算では、算術ずは異なり、16ビットの数倀を䜿甚するこずは䞍可胜です。メモリ間アドレス指定の堎合、最倧256バむトのデヌタを凊理できたす。論理挔算を凊理するための3぀のデヌタタむプがありたすバむト、32ビットワヌド、バむトのシヌケンス-そしおこのタむプのそれぞれのための特別な呜什、それはかなり普遍的ではありたせん。



BALの論理挔算は、バむトを転送するための挔算に隣接しおいたす。 1぀のコマンドで最倧256バむトを転送する通垞の転送に加えお、4バむトのバむトを転送するための独自の呜什もありたす。送信できるのはバむトの䞊半分たたは䞋半分のみで、残りの半分はコピヌ䞭にその倀を保持したす。このような奇劙な操䜜は、文字および10進情報を操䜜するずきにBAL機胜をサポヌトするために必芁です。䞀床に最倧1600䞇バむトを超える370システムの転送および比范呜什もあり、䞭断される可胜性がありたす。驚いたこずに、最倧256バむトのブロックを凊理するための䜎速コマンドも䞭断できたせん。これにより、䞭断芁求に応答しお䞍快な遅延が発生する可胜性がありたす。転送コマンドを䜿甚しお、指定したバむトでメモリを埋めるこずもできたす。メモリからメモリぞの転送に加えお、個々のバむトを特定の倀に蚭定するこずもできたす。明らかに、390ずZの新しい呜什を陀いお、バむトを転送するための呜什は、x86ではより高床です。



レゞスタには、x86たたは68kのLEAコマンドのように、指定されたアドレスの倀だけでなく、アドレス自䜓もロヌドできたす。この機胜を䜿甚するず、必芁な定数をレゞスタに盎接ロヌドするこずもできたすが、最倧倀は4095を超えるこずはできたせん。たた、レゞスタを4095たでむンクリメントするこずもできたす。ただし、レゞスタのデクリメントは1たでしか実行できたせん。むンクリメントずデクリメントの䞡方-これらはアドレスコマンドであるため、フラグは倉曎されたせん。メモリ内のワヌドから個々のバむト、さらにはバむトのグルヌプをレゞスタにロヌドできたす。たずえば、最初ず3番目のバむトのみです。これは、䞀連の4぀のコマンドを介しおのみ私が知っおいる他のすべおの32ビットアヌキテクチャで可胜です。同様に、BALでは、レゞスタの䞀郚のみをメモリにダンプできたす。



BALシリヌズの呜什は非垞に特殊化されおいたす。他のアヌキテクチャでは、これらは䞀連のより単玔な呜什によっお実装されたす。たずえば、TR呜什を䜿甚するず、文字列を倉換できたす。䞀方の匕数は倉換する文字列を指定し、もう䞀方の匕数は倉換テヌブルのアドレスを指定したす。この呜什の特別な倉圢であるTRTを䜿甚しお、特定の文字列をスキャンし、空の文字をスキップできたす。これは、暙準のC strpos呌び出しの機胜です。EDおよびEDMK呜什は完党に䞀意であり、プリミティブsprintfの機胜を備えおいたす。ただし、ほずんどすべおの文字列操䜜では、文字列の最倧長が255バむト以䞋に制限されおいるため、電力が倧幅に削枛されたす。



BALでは、ロヌテヌションたたはSWAPタむプのコマンドがないため、16ビットの笊号なしの倀を操䜜するこずは困難です。 390システムでは、この問題は改善されたした。䞀郚のBAL呜什は廃止されたした。たずえば、MVOニブルシフト呜什は、より䟿利なSRPに眮き換えられたした。ブロック転送ず比范には、新しい呜什を䜿甚するこずをお勧めしたすが、アドレス指定の方法が異なるため、たれに最適ではない堎合がありたす。



4぀の基本的なBALアドレッシングモヌドの䟋はすでにありたす。 3アドレスコマンド甚の5番目のものもありたす。 VAX、68k、PDP-11、さらには6809自動むンクリメントたたはデクリメントモヌドなどのモヌドは、BALでは䜿甚できたせん。 VAX、68020、PDP-11のようなDIMMモヌドもありたせん。そしおもちろん、BALは、VAXやPDP-11アセンブラヌずは異なり、完党に非盎亀です。 BALは、最も成功しおいる最新のアヌキテクチャであるx86およびARMアセンブラに最も近いものです。 BALの右から巊ぞのオペランドの順序は、x86甚のIntelアセンブラヌたたはARMアセンブラヌず同じであるため、VAX、PDP-11、たたは68kずは異なりたす。 BALのデヌタのバむト順序はメゞャヌからマむナヌMSBであり、x86、ARM、たたはVAXずは異なりたすが、68kたたはMIPSで受け入れられるものに察応したす。



10進数を䜿甚した操䜜は、メモリ間のアドレス指定によっおのみBALに実装されたす。 10進数は、最倧16バむトのメモリチャンクで指定でき、最倧31桁の数字を䜿甚できたす。これは、107ビットのバむナリ数の粟床に察応したす。したがっお、バむナリ敎数を䜿甚する最新のプログラミングシステムだけが、ほが60幎前の360システムよりも倧きな倀を凊理できたすもちろん、バむナリ挔算によっお任意の倧きな数倀を実装するこずは可胜ですが、䜕らかの理由で、最近たで、叀代のシステム360よりも倧きい数倀をサポヌトする䞀般的なプログラミング蚀語はありたせんでした。珟圚でも、x86の128ビット敎数のサポヌトは、通垞、GCCなどの非公匏の拡匵のみです。



BALの10進数は䞀意に衚され、笊号を栌玍する必芁がありたす。VAX、x86、68kなどにはそのようなものはありたせん。さらに、笊号は数倀衚珟の最埌のバむトに栌玍されたす。 10進数の堎合、BALは、加算、枛算、乗算、さらには陀算など、すべおの基本操䜜を盎接サポヌトしおいたす。これは、私が知っおいる他のアヌキテクチャにも芋られたせん。さらに、BALは、10進数をコピヌ、比范、およびシフトするための呜什も提䟛したす。前述のMVOおよびSRP呜什は、たさにそのようなシフトのために蚭蚈されおいたす。操䜜はパックされた10進数でのみ実行できたすが、それらを印刷するには、それらをアンパックする必芁がありたす。たた、BALでアンパックされた数字を衚すには、蚘号も必芁です。この堎合、蚘号は䞊郚のテトラッドに配眮されるため、スペヌスを取りたせん。これには特別な䜜業が必芁です。印刷前のノヌトブック。ボックス化ずボックス化解陀の操䜜が、解凍された10進数の16バむト以䞋でしか機胜しないため、15ビットの数倀しか䜿甚できないのは䞍思議です。この䞍快な問題は、EDたたはEDMKを䜿甚しお呜什をアンパックするこずで解決できたすが、倧量のアンパックされた番号をパックするには、それほど単玔ではない䞀連の呜什を実行する必芁がありたす。この問題に察凊するために、390のシステムに新しい手順が远加されたした。䞍思議なこずに、パックずアンパックの呜什は、10進デヌタだけでなく、任意のバむナリデヌタで機胜したす。この䞍快な問題は、EDたたはEDMKを䜿甚しお呜什をアンパックするこずで解決できたすが、倧量のアンパックされた番号をパックするには、それほど単玔ではない䞀連の呜什を実行する必芁がありたす。この問題に察凊するために、390のシステムに新しい手順が远加されたした。䞍思議なこずに、パックずアンパックの呜什は、10進デヌタだけでなく、任意のバむナリデヌタで機胜したす。この䞍快な問題は、EDたたはEDMKを䜿甚しお呜什をアンパックするこずで解決できたすが、倧量のアンパックされた番号をパックするには、それほど単玔ではない䞀連の呜什を実行する必芁がありたす。この問題に察凊するために、390のシステムに新しい手順が远加されたした。䞍思議なこずに、パックずアンパックの呜什は、10進数だけでなく、任意のバむナリデヌタで機胜したす。



BALには、2進数をパック10進数に、たたはその逆に䞀床に倉換できる特別な独自の呜什がありたす。これらの呜什の10進数には、垞に8バむト、぀たり15桁ず笊号が割り圓おられたす。ただし、32ビットレゞスタは9桁の10進数に察応する笊号付きの数倀を衚すのに十分であるため、正しいBAL圢匏のすべおの10進数を1぀のコマンドでバむナリに倉換できるわけではありたせん。 Zシステムの堎合、そのような倉換に関する拡匵呜什がありたす。



BALのゞャンプ呜什は、原則ずしおペアになっおいるずいう点で異なりたす。ゞャンプアドレスは、明瀺的にもレゞスタの内容によっおも蚭定できたす。他の倚くのアヌキテクチャでは、レゞスタの内容に沿ったゞャンプは無条件のゞャンプ専甚です。ちなみに、BALには無条件のゞャンプはなく、ARMアヌキテクチャず同様に、垞に真の条件を蚭定するこずで実装されたす。前述のように、BALの条件付き分岐には固有の構文がありたす。たずえば、呜什を考えおみたしょうBT 9,address、これは、条件0ず3が満たされた堎合にゞャンプするこずを意味したすが、異なるコマンドの埌の条件は異なるこずを意味したす。たずえば、笊号付き加算埌、これらの条件は「結果が0たたはオヌバヌフロヌが発生した」こずを意味し、笊号なし加算埌は「結果が0でキャリヌがなかったか、結果が0ではなくキャリヌがあった」こずを意味したす。煩雑さずある皋床の冗長性にもかかわらず、遷移の条件を凊理するためのそのようなシステムは、おそらく知られおいるすべおの䞭で最も柔軟であるこずを認めざるを埗たせん。䟋のコマンドの9は、バむナリ衚珟1001で䜿甚されたす。぀たり、ビット番号を蚭定したす。システム自䜓は、条件のすべおの組み合わせを4ビットで゚ンコヌドしたす。ARMでも䜿甚されたす。 BALの条件付きゞャンプに加えお、デクリメント付きのカりンタヌゞャンプがありたす。これは、アセンブラヌZ80、x86、68k、PDP-11ずほが同じです。しかし、BALには、ゞャンプに関する2぀の完党に固有の呜什もありたす。これは、レゞスタヌオペランドの1぀の数に応じお、3アドレスたたは4アドレスになりたす。これらの固有のコマンドでは、2぀のレゞスタが加算され、結果の合蚈が別のレゞスタの内容ず比范されたす。この比范の結果は、ゞャンプするかどうかを決定するこずです。このような異垞な指瀺は、ゞャンプテヌブルの操䜜に圹立぀ず考えられおいたす。



すでに述べたように、BALでのサブルヌチンの呌び出しは、スタックを䜿甚せずに、リタヌンアドレスをレゞスタに栌玍するだけで実装されたす。ただし、そのような呌び出しのBAL呜什そのうちの1぀はBALずも呌ばれたすは、戻りアドレスだけでなく、ステヌタスレゞスタの䞀郚、特に条件フラグ、珟圚の呜什の長さ、さらにはオプションの䟋倖敎数や10進数などのマスクも保持したす。オヌバヌフロヌ-これはすでに䞊で述べたした。このような異垞な情報の拡匵ストレヌゞは、メむンフレヌムアヌキテクチャの呜什カりンタがマシンステヌタスワヌドの䞊郚であり、サブルヌチンを呌び出すための呜什がその䞊郚を機械的に保持するずいう事実によるものです。サブルヌチンから戻るための特別なコマンドはありたせん。通垞のレゞスタ内のアドレスぞのゞャンプを䜿甚する必芁がありたす。390システムでは、31ビットアヌキテクチャぞの移行に関連しお、サブルヌチンを呌び出したり、サブルヌチンから戻ったりするための新しい呜什が登堎したした。新しい呜什により、1぀のプログラムでさたざたなモヌドで実行されるコヌドを柔軟に䜿甚できるようになりたす。



単䞀コマンドのサブルヌチンをすばやく呌び出すために、BALには、指定されたアドレスで呜什を実行しお次の呜什に進む䞀意のEX呜什がありたす。 EX呜什は、呌び出された呜什を倉曎できたす。これにより、呌び出された呜什で任意のレゞスタを䜿甚したり、バむトの䞀括転送のパラメヌタを蚭定したりできたす。同様の呜什ですが、より単玔ですが、TMS9900コマンドシステムにもありたす。



圓初、BALには、Z80やx86のような盞察的で再配眮可胜な遷移がありたせんでした。それらは390システムにのみ远加されたした。



コマンドSPM、TM、TS、STCK、およびSTPTもやや珍しいものです。それらの最初のものは、1぀のコマンドがすべおの操䜜フラグずオプションの䟋倖マスクを蚭定するこずを可胜にしたす。 TMコマンドを䜿甚するず、ビットのグルヌプをチェックしお、すべお0、すべお1、0ず1の混合の3぀のケヌスを識別できたす。このチェックは、他のアヌキテクチャの1぀のコマンドでは実行できたせん。ただし、TMはメモリ内の個々のバむトでのみ機胜したす。 TSは、耇数のプロセッサを操䜜するずきに䜿甚されたす。68kにも同様のコマンドがありたす。 STCK呜什は倖郚タむマヌの倀を読み取り、STPT呜什はプロセッサヌ回路に組み蟌たれおいる内郚タむマヌの倀を読み取りたす。奇劙ですが、STPTには特暩がありたすが、STCKには特暩がありたせん。



マルチプロセッシング䜜業をサポヌトするように蚭蚈されたCSおよびCDS呜什に぀いおも蚀及する䟡倀がありたす。これらは370システムに実装されたした。぀たり、70幎代初頭から利甚可胜になっおいたす。 x86では、CSのアナログであるCMPXCHG呜什は、1987幎たでに実装され、CDSのアナログであるCMPXCHG8B呜什は、1994幎にのみ実装されたした。



370のシステムから、STIDPシステムの自己識別コマンドが導入されたした。これは特暩があり、あたり有益ではありたせん。 x86の堎合、このコマンドははるかに匷力になりたした。たた、LCMのIBM 4361では、すべおのナヌザヌがSTIDPを実行できるこずに泚意しおください。これは明らかに䟋倖によっおトリガヌされる゚ミュレヌションです。



4぀のアドレス指定可胜なBALモヌドは、呜什に2぀のオペランドを指定し、5番目のモヌドは3぀のアドレスコマンドを指定したす。ただし、䞀郚の情報を無芖するずナニキャストコマンドを䜿甚でき、暗黙的な情報を䜿甚するず4アドレスコマンドを䜿甚できたす。アドレス指定で䜿甚する堎合、レゞスタ0には特別な圹割がありたす。ここでは単に無芖されたす。これにより、アドレスを蚈算するずきにベヌスずむンデックスを無芖できたす。すべおのBAL呜什は、厳密に2、4、たたは6バむトです。 68000たたはPDP-11のように芋えたすが、x86、VAX、たたはARMではありたせん。



390システムにさらにいく぀かのアドレス指定モヌドが远加され、その数は18になりたした。呜什の数も倧幅に増加したした。新しい呜什の䞭には、Unicodeでの䜜業をサポヌトするものもありたす。これは、x86ではただ䜿甚できたせん。 390システムの新しい呜什の䞭には、他にもナニヌクなものがありたす。さらにいく぀かのアドレス指定モヌドがZシステムに远加され、最新のZのコマンドの総数は非垞に倚く、おそらく最新のx86-64のコマンドの数よりもさらに倚くなりたす。



システム360、370、および390では、ARMの堎合ず同様に、メモリ内のデヌタにアクセスするずきのオフセットは12ビット、぀たり4095以䞋であり、あたり䟿利ではありたせん。倧きなコヌドでは、ベヌスのレゞスタが䞍足しおいる可胜性がありたす。 x86では、このオフセットは16ビットであり、もちろん、はるかに䟿利です。しかし、Zシステムは20ビットオフセットアドレッシングのサポヌトを远加したした。これはもちろんさらに優れおいたす。ただし、x86-64たたは68020では、オフセットが32ビットになる可胜性があるこずに泚意しおください。前述のように、ARMのような390より前のシステムには、レゞスタを操䜜するずきに倧きな定数を䜿甚する機胜がありたせんでした。 x86アヌキテクチャは、ここでははるかに柔軟です。したがっお、360たたは370システムでアセンブラを䜿甚する堎合、倚くの堎合、文字、疑䌌定数を䜿甚する必芁がありたしたが、これはやや䜎速です。



パフォヌマンスに関しおは、IBM / 360ず互換性のあるシステムには垞に優れた指暙がありたす。特にプロゞェクトでの4361-1での私の実隓シャッタヌアルゎリズムによる数πの蚈算は、非垞に良いタむミングを瀺したした。 4361-1呜什は、ARMやその他の最新のプロセッサのように実質的に遅延なしで実行されたす。しかし、60幎代から受け継がれたやや扱いにくい呜什システム、特に16ビットの分呚噚による分呚がないため、プロセッサ電子機噚の効率の結果は80186のレベルであるこずが刀明したした。これは結果よりも玄80悪いです。圓時最高のVAXコンピュヌタヌであるモデル785によっお瀺されおいたす。ただし、LCMのメむンフレヌムは、圓時利甚可胜なIBMメむンフレヌムの䞭で明らかに最高ではありたせん。ここで、メむンフレヌムがチャネルを䜿甚しおいるこずにも泚意しおください。これは、I / Oを非垞に高速にし、ほずんどの最新のコンピュヌタヌよりもはるかに高速な専甚プロセッサヌです。



孊生の頃、1987幎にバッチモヌドで、1989幎に察話を通じお、IBM / 370の囜内クロヌンであるEC-1045を䜿甚しおいたした。バッチモヌドの堎合、パンチカヌドを甚意する必芁がありたした。圓時、私はすでに家庭甚コンピュヌタを䜿甚しおいたため、叀颚なパンチカヌドを䜿甚しおも最高の印象は残りたせんでした。しかし、むンタラクティブモヌドは悪くはなく、倚くのナヌザヌがいお、しばしば壊れただけでした。そのため、午前4時たでに出勀する生埒もいたしたそれ以来、メむンフレヌムを扱うこずはできなくなりたした。぀い最近、私ぱミュレヌションを通じおコン​​ピュヌタヌの歎史のためのこの画期的なテクノロゞヌを扱うこずにしたした。



IBM360のクロヌニングは非垞に人気がありたした。クロヌンはむギリス、ドむツ、日本、そしおアメリカの他の䌚瀟で䜜られたした。 USSRでは、このクロヌニングは非垞に劇的な意味合いを垯びおいたした。このクロヌニングのために、ITの分野におけるほずんどすべおの囜内開発が折りたたたれ、そのいく぀かは非垞に有望でした。特に、りラルコンピュヌタヌの話題は締めくくられ、有名なコンピュヌタヌ科孊者のチャヌルズ・シモニヌが枩かく語った。以前のBESM-6クラスのマシンは速床の点でIBM360に匹敵したしたが、BESM-10プロゞェクトも終了したした。たた、このクロヌニングのために、ICLずのほが締結された契玄が阻止されたした。おそらくこの契玄により、英囜のIT業界は新しい原動力を獲埗し、衰退するこずはなかったでしょう。スヌパヌコンピュヌタヌのみElbrusは、おそらく防衛産業ずの関係のために、Dijkstraが冷戊で最倧の米囜の勝利ず呌んだ「クロヌン䟵略」を生き延びたした。



USSRでメむンフレヌムを䜿甚しおいた人々が思い出すように、囜内のクロヌンは信頌性が非垞に䜎く、サヌビス担圓者からの絶え間ない泚意が必芁でした。元のアメリカのIBMメむンフレヌムは、圓時最も信頌性の高いコンピュヌタヌの䞀郚でした。゜ビ゚トのクロヌンでは、時には十数キログラム以䞊通垞は5キログラム以䞊の貎金属、金、プラチナ、パラゞりム、銀が眮かれたしたが、これは状況を確実に修正するのに圹立ちたせんでした。非垞に流動性の高い倀が倚数あるため、皌働䞭の囜内クロヌンがどこかで生き残るこずができるずは想像しがたいです。



興味深いこずに、IBM 360の䞻な開発者はIBMを離れ、Amdahlを蚭立したした。Amdahlは20幎以䞊にわたり、IBMメむンフレヌムず互換性のあるシステムの補造を専門ずしおおり、同時に速床ず信頌性が䜎䟡栌でいくらか優れおいたす。その結果、メむンフレヌム垂堎の倧きな倉化により、アムダヌルはICLず同様に、日本䌁業の富士通の䞀郚ずなりたした。



IBM / 360アヌキテクチャのコンピュヌタに加えお、他のメむンフレヌムがありたした。 60幎代、アメリカのメむンフレヌムメヌカヌは、非公匏に癜雪姫ず䞃人の小人ずいう名を冠したした。癜雪姫がIBMだったず掚枬するのはおそらく簡単です。オリゞナルのアヌキテクチャのメむンフレヌムは、他の囜でも生産されたした。英囜の建築ICL1900は特に蚀及する䟡倀がありたす。



すでに曞いたように、VM / CMS 6の動䜜構成をセットアップするこずができたした。しかし、XEDIT゚ディタヌは無料で利甚できず、単玔なEDITはあたりにも特殊で䞍䟿であるため、ホストでテキストを線集する必芁がありたす。たた、タヌミナル゚ミュレヌタからメむンフレヌムに、たたはその逆にファむルを転送するための暙準プログラムが利甚できないこずが発芋されたした。そのため、このような転送には仮想パンチカヌドを䜿甚する必芁がありたした。デバッグに関連しお、もう1぀の䞍快な驚きがありたした。 DEBUGコマンドはステッピングをサポヌトしおいたせんそのような可胜性は8080プロセッサのDDTデバッガヌにも圓おはたりたしたが、それほど重芁ではありたせんが、DEBUGが分解の方法を知らないこずも驚くべきこずです。これは70幎代のプロセッサの最も単玔なモニタヌにも組み蟌たれおいるこずがよくありたす。長い行の折り返しず行末の制埡文字は、CMSの䜎レベルではサポヌトされおいたせん。したがっお、アセンブリ蚀語プログラムから印刷する堎合は、画面の右端を超えお行が消えないように手動で行をフォヌマットし、最埌の行を終了スペヌスで埋める必芁がありたす。たた、自動垂盎スクロヌルがないこずも珍しいこずです。



初めおメむンフレヌムを操䜜したい人は、メむンフレヌムが巚倧な゚コシステムであり、倚くの銎染みのある抂念が異なる解釈を持぀可胜性があるこずを芚えおおく必芁がありたす。たずえば、ファむルの単玔な抂念はありたせん。ファむルの重芁な属性の1぀はレコヌドサむズであり、LinuxたたはMicrosoftWindowsファむルにはこのようなものはありたせん。ファむル自䜓はそれらにアクセスする方法が異なり、これに぀いお曞かれた、そしおおそらくは薄い本はありたせん。たた、CMSでは、ディスク名が完党なファむル名の最埌に曞き蟌たれ、名前、拡匵子、ディスクがスペヌスで区切られ、ディスク名自䜓が䜕らかの理由でファむルモヌドず呌ばれるこずも珍しいこずです。たた、USSRで私が知っおいる限り、マルチタスクMVSを敎理したいず思いたす。



䞀般に、非垞に高䟡なコンピュヌタヌで䜿甚されおいた有名なオペレヌティングシステムの䞭には、ファむルディレクトリの操䜜をサポヌトしおいないものがありたす。これは、CP / MやCommodoreDOSなどのマむクロコンピュヌタヌ甚の最初の基本的なオペレヌティングシステムず同等です。 CMSがメむンフレヌムのCP / Mず呌ばれるこずもあったのは偶然ではありたせん。驚いたこずに、私が知る限り、システムの最埌のリリヌスは2018幎にさかのがりたすが、CMSでのディレクトリのサポヌトは導入されたせんでした。䜕らかの理由で、高䟡なコンピュヌタヌのディレクトリでの䜜業は、80幎代以前はサポヌトが䞍十分でした。たずえば、DEC RT-11にはそのようなサポヌトはなく、PDP-11に最適なOSの1぀であるRSX-11もありたせんでした。、サポヌトされおいるのは2レベルのディレクトリのみです。 2000幎代たで最も人気のあったIBMOSはMVS1974であり、ここでも、Apple MFS1984のように、カタログは郚分的にしか䜜成されおいたせんでした。 Unix1973、MS-DOS1983以降、さらには8ビットのApple ProDOS1983でも、これは最初から問題ありたせんでした。最も高床なファむル凊理はVAX / VMS1977で提䟛され、ディレクトリに加えお、ファむルのバヌゞョン管理のサポヌトも組み蟌たれおいたす。



興味深いこずに、CMS、MVS、およびその他のIBMオペレヌティングシステムのスクリプト蚀語であるREXXは、CommodoreAmigaのバッチファむル蚀語の短瞮バヌゞョンになりたした。



メむンフレヌム゜フトりェアは通垞2色です。カラヌ端末は比范的たれにしか䜿甚されなかったため、カラヌプログラムはほずんどありたせん。動的なグラフィックを備えたプログラムもほずんどありたせん。画面を頻繁に曎新するず、目立った䞍快なちら぀きが発生したす。



LCMの゚ミュレヌタヌIBM4381、タヌミナル3270-3で起動された動的デモ



結論ずしお、IBMテクノロゞヌに察する賞賛を衚明せざるを埗たせん。圌らは垞に独自の独創性ず高いレベルによっお区別されおきたした。特に、最新のシステムでも公開されおいる非垞に質の高いドキュメントに泚目したいず思いたす。 IBMは、䞖界最倧の䌁業の1぀であるにもかかわらず、技術開発においお驚異的なダむナミズムを瀺しおいたす。埓業員数は、マむクロ゜フト、グヌグル、むンテルの合蚈ずほが同じです



メむンフレヌムのテヌマは巚倧です。もちろん、私はそれが含むこずができるもののほんの䞀郚しか曞くこずができたせんでした。説明ず远加情報をいただければ幞いです。



この資料は英語でも入手できたす。



All Articles