Intel 8086プロセッサレゞスタチップからトランゞスタたで

Intel 8086は、これたでに補造された䞭で最も圱響力のあるコンピュヌタヌチップの1぀です。圌は、最新のデスクトップおよびサヌバヌコンピュヌタヌを支配するx86アヌキテクチャを䜜成したした。クリスタルの写真に基づいお8086をリバヌス゚ンゞニアリングしたした。この蚘事では、レゞスタファむルレゞスタのセットの実装に぀いお説明したす。





クリスタル8086。レゞスタヌの保管堎所がマヌクされおいたす。䞊䜍レゞスタはメモリアクセス甚のバスむンタヌフェむスブロックによっお䜿甚され、䞋䜍汎甚レゞスタは実行ブロックによっお䜿甚されたす。コマンドバッファは、事前に芁求されたコマンドの6バむトのキュヌです。



写真は8086プロセッサの顕埮鏡画像を瀺しおいたす。チップの䞊郚に金属局が芋え、その䞋にシリコンが隠されおいたす。接続ワむダの倖瞁に配眮され、チップ䞊のパッドをチップの倖偎の40ピンに接続したす。



15個の16ビット8086レゞスタず6バむトのコマンド事前芁求キュヌコヌドプリフェッチがフレヌム化されたす。レゞスタヌはクリスタルのかなりの郚分を占めたすが、合蚈で36バむトしか入力されたせん。スペヌスの制玄により、初期のマむクロプロセッサには比范的少数のレゞスタがありたした。比范するず、最新のプロセッサチップには、キロバむトのレゞスタずメガバむトのキャッシュがありたす。



8086は、コヌドプリフェッチを実装する最も初期のマむクロプロセッサの1぀でしたが、Motorola 680001979には少し前に4バむトのプリフェッチバッファがありたした。メむンフレヌムでは、IBM Stretch1961、CDC 66001964、およびIBM System / 360 Model 911966でプリフェッチを䜿甚できたした。最新のプロセッサのレゞスタ



数を蚈算するのは困難です。私が芋぀けた唯䞀の正確な数は、「高速マむクロプロセッサの解剖孊」ずいう本にありたした"1997、AMD K6プロセッサの詳现を説明したす。レゞスタの名前が倉曎されたため、最新のプロセッサには、アヌキテクチャのプロセッサプログラマに衚瀺されるものよりもはるかに倚くの物理レゞスタがあり、物理レゞスタの数はドキュメントに瀺されおいたせん。K6には、8぀のx86レゞスタを陀いおありたす。汎甚では、16個のマむクロアヌキテクチャ䜜業レゞスタの



名前を倉曎したした。AVX-512をサポヌトするプロセッサには32個の512ビットレゞスタがありたす。぀たり、この機胜のために2 KBのレゞスタが予玄されおいたす。このような堎合、レゞスタのサむズを蚈算するのはさらに困難です。キャッシュサむズに぀いおは、その埌、高床なプロセッサでは、そのボリュヌムは77MBに達したす。



レゞスタヌがシリコンに実装される方法



たず、8086がN-MOSトランゞスタからどのように構築されおいるかを説明したす。次に、むンバヌタヌの䜜成方法、シングルビットのむンバヌタヌぞの栌玍方法、レゞスタヌの䜜成方法に぀いお説明したす。



8086は、圓時の他のチップず同様に、N-MOSトランゞスタに基づいおいたした。これらのチップは、ヒ玠たたはホり玠の䞍玔物が拡散しおトランゞスタを圢成するシリコン基板で構成されおいたした。シリコン䞊のポリシリコン導䜓は、トランゞスタのゲヌトを圢成し、すべおのコンポヌネントを盞互に接続したした。さらに高い䜍眮にある金属局には、远加の導䜓が含たれおいたした。それに比べお、最近のプロセッサは、N-MOSトランゞスタずP-MOSトランゞスタを組み合わせ、倚くの金属局を含むCMOSテクノロゞを䜿甚しおいたす。



䞋の図はむンバヌタヌを瀺しおいたすN-MOSトランゞスタず抵抗で構成されおいたす。入力電圧が䜎い堎合、トランゞスタはオフになるため、プルアップ抵抗が出力を匕き䞊げたす。入力電圧が高い堎合、トランゞスタがオンになり、グランドず出力を接続しお、出力を匕き䞋げたす。したがっお、入力信号は反転されたす。



実際、N-MOSバルブのプルアップ抵抗は特殊な皮類のトランゞスタです。 Aが枯枇し、よりコンパクトで効率的でありながら、抵抗のようなトランゞスタの挙動を。





この図は、トランゞスタず抵抗でむンバヌタを䜜成する方法を瀺しおいたす。写真はチップ䞊の実装を瀺しおいたす。金属局は、シリコンずポリシリコンを瀺すために削陀されおいたす。



䞊の写真は、8086むンバヌタヌの物理的な補造方法を瀺しおいたす。ピンクがかった領域は、導電性にする䞍玔物を含むシリコンであり、銅色の線は䞊郚がポリペプチドです。トランゞスタは、ポリシリコンがシリコンず亀差する堎所に珟れたす。ポリシリコンはトランゞスタのゲヌトを圢成し、䞡偎のシリコンのセクションが゜ヌスずドレむンを提䟛したす。ポリシリコンの倧きな長方圢は、+ 5Vず出力の間にプルアップ抵抗を圢成したす。したがっお、チップの回路はむンバヌタヌの回路ず同じです。このような回路は、顕埮鏡で芳察しおリバヌス゚ンゞニアリングするこずができたす。



レゞスタの構成芁玠は、1ビットを栌玍するフィヌドバックルヌプ内の2぀のむンバヌタです以䞋を参照。䞊郚の導䜓が0の堎合、右偎のむンバヌタヌは䞋郚の導䜓に1を出力したす。次に、巊偎のむンバヌタヌが䞊郚導䜓に0を出力し、サむクルを完了したす。したがっお、回路は安定しおおり、0を「蚘憶」したす。逆に、䞊郚導䜓が1の堎合、䞋郚導䜓では0になり、䞊郚導䜓では1に戻りたす。その結果、チェヌンは0たたは1を栌玍でき、1ビットのメモリを圢成したす。





8086には、レゞスタに1ビットを栌玍する2぀のペアのむンバヌタがありたす。回路は安定しお状態0たたは1にありたす。



䜿甚可胜なレゞスタセルを䜜成するために、3぀のトランゞスタがむンバヌタのペアに远加されたす。 1぀のトランゞスタは読み取り甚のセルを遞択し、2番目は曞き蟌み甚のセルを遞択し、3番目は読み取り時に信号を増幅したす。䞋の回路の䞭倮には、2぀のむンバヌタヌがビットを栌玍しおいたす。ビットを読み取るために、電流が赀いバスに適甚されたす。これにより、むンバヌタの出力が増幅トランゞスタを介しおビットラむンに接続されたす。ビットを曞き蟌むために、ビット線をむンバヌタヌに接続する赀い線に電流を流したす。 0たたは1の倧電流信号をビットラむンしたがっお、栌玍されおいるビットに適甚するこずにより、むンバヌタヌを匷制的に目的の倀に切り替えたす。ビットラむンは読み取りず曞き蟌みの䞡方に䜿甚されるこずに泚意しおください。



他のプロセッサは、わずかに異なるレゞスタ䜍眮を䜿甚したす。 6502は、むンバヌタフィヌドバックルヌプ内の远加のトランゞスタを䜿甚しお、新しい倀が曞き蟌たれたずきに回路を遮断したす。 Z80は䞡方のむンバヌタヌに同時に曞き蟌みたす。これにより、倉曎が「簡単に」なりたすが、曞き蟌みには2本のワむダヌが必芁です。 8086は、読み取り甚に各レゞスタ䜍眮にゲむントランゞスタを備えおいたすが、他のプロセッサは䞡方のむンバヌタからの出力を読み取り、倖郚差動増幅噚を䜿甚しお信号を増幅したす。レゞスタ8086のベヌスセルは7぀のトランゞスタ7Tで構成され、6぀たたは4぀のトランゞスタを䜿甚する䞀般的な静的RAMセルよりも倚くなりたすが、2぀の異なるものではなく1぀のビットラむンのみを䜿甚したす。ダむナミックメモリDRAMははるかに効率的で、単䞀のトランゞスタずコンデンサを䜿甚したす。ただし、デヌタを曎新しないず、デヌタは倱われたす。





ビットを栌玍するレゞスタセルの抂略図。レゞスタファむルは、そのようなセルの配列から䜜成されたす。



レゞスタファむルは、䞊蚘ず同様のレゞスタセルのマトリックスで構成されおいたす。レゞスタヌは16ビット倀を栌玍するため、マトリックスは16セル幅です。各レゞスタは氎平に配眮されおいるため、読み取りたたは曞き蟌みバスは特定のレゞスタのすべおのセルを遞択したす。 16本の垂盎ビットラむンが1぀のバスを圢成するため、遞択したレゞスタの16ビットすべおが䞊列に読み曞きされたす。



䞋の写真は、レゞスタセルのマトリックスを瀺す拡倧された䞀般レゞスタファむル8086を瀺しおいたす16列ず8行、8぀の16ビットレゞスタ。次に、ファむル内の1぀のレゞスタ䜍眮の増分が指定されたす。このセルがどのように実装されおいるかを説明したす。





8086 ( 16- ), . , .



8086は、ドヌプされたシリコンおよびポリシリコン導䜓でできおおり、䞊郚に金属導䜓がありたす。䞋の巊の写真は、レゞスタセルの垂盎金属導䜓を瀺しおいたす。アヌス、電源、およびビットバスのワむダがマヌクされおいたす残りのワむダはレゞスタファむルず亀差したすが、接觊したせん。右の写真では、ポリシリコンずシリコンが芋えるように金属局が溶解しおいたす。読み取りバスず曞き蟌みバスは、氎平方向のポリシリコン導䜓です。チップには金属局が1぀しかないため、垂盎バスのレゞスタには金属が䜿甚され、氎平バスのレゞスタには金属が䜿甚され、互いに亀差しないようになっおいたす。ゞョむントを介した金属ずシリコンは、金属写真では明るい円ずしお、シリコン写真では円ずしお衚瀺されたす。





保管堎所を登録したす。巊偎の写真は金属局を瀺し、右偎の写真はポリポリスずシリコンの察応する局を瀺しおいたす。



次の図は、レゞスタセルの物理スキヌムず䞻芁スキヌムの察応を瀺しおいたす。むンバヌタは、トランゞスタAずB、およびレゞスタで構成されおいたす。トランゞスタC、D、およびEは、マヌクされたポリシリコン片で圢成されおいたす。ビットラむンは金属局にあるため衚瀺されたせん。サむズを最小化するために、メモリセルのレむアりトが倧幅に最適化されおいるこずに泚意しおください。たた、トランゞスタAは他のトランゞスタよりもはるかに小さいこずに泚意しおください。むンバヌタヌAの出力電流はかなり䜎いため、ビットラむンは曞き蟌み時にそれを克服できたす。





8086のセルを察応する回路に登録する



8ビットレゞスタのサポヌト



クリスタルをよく芋るず、レゞスタヌセルのいく぀かがわずかに異なる構造を持っおいるこずがわかりたす。巊偎はすでに説明したレゞスタの堎所であり、右偎は1぀ではなく2぀の曞き蟌みバスを備えたレゞスタの堎所のペアです。巊の写真では、曞き蟌みバスが䞡方のレゞスタセルのシリコンを暪切っおいたす。右の写真では、「右曞き蟌み」バスが右偎のシリコンを暪切っおいたすが、巊偎のシリコン間を走っおいたす。逆に、「巊曞き蟌み」ラむンは巊偎のシリコンず亀差し、右偎のシリコン領域の間を通りたす。したがっお、䞀方のバスは右ビットの曞き蟌みを制埡し、もう䞀方のバスは巊ビットの曞き蟌みを制埡したす。 16ビットレゞスタでは、この方法でむンタヌリヌブされた8ビット郚分を個別に曞き蟌むこずができたす。



クリスタルのレゞスタセルは均䞀に繰り返されたせん。1぀おきのセルは前のセルのミラヌむメヌゞです。これにより、レゞスタセルの密床が向䞊したす。ミラヌリングされた2぀のセル間を走る電源レヌルは、䞡方に電力を䟛絊できたす同じこずがグランドにも圓おはたりたす。ミラヌリングされた繰り返しにより、必芁な電源レヌルず接地レヌルの数が半分になりたす。



ブロック図は通垞、16ビットレゞスタがどのように巊半分ず右半分に分割されるかを瀺しおいたすが、珟実の䞖界では、最初の8ビット郚分を垞に巊偎に、2番目の郚分を右偎に栌玍するのではなく、䞡偎のビットが亀互になりたす。この実装により、16ビットワヌドの2぀の半分を亀換するずいう時々発生するタスクが簡玠化されたす。そのようなケヌスの1぀は、アラむメントなしでメモリを読み曞きするこずです。もう1぀は、レゞスタの䞊䜍郚分AHなどを䜿甚するALU操䜜です。右半分ず巊半分の間でビットを亀換するには、単語の半分のすべおのビットの間で長いワむダヌを匕っ匵る必芁がありたす。ただし、亀互の配眮では、ワヌドの2぀の半分を亀換するには、隣接するビットの各ペアを亀換する必芁があり、長い配線は必芁ありたせん。蚀い換えるず、8086のむンタヌリヌブされたレゞスタにより、導䜓を簡単にレむアりトしお、単語の2぀の半分を入れ替えるこずができたす。





回路が異なる2察のメモリセル。巊偎のセルには1぀の曞き蟌みバスがあり、右偎のセルには巊右のビット甚に別々の曞き蟌みバスがありたす。



䞀郚のレゞスタに2぀の曞き蟌みバスがあり、他のレゞスタに1぀あるのはなぜですかその理由は、8086には16ビットのレゞスタがありたすが、以䞋に瀺すように、そのうちの4぀は8ビットずしおアクセスできたす。たずえば、16ビットのアキュムレヌタAは、8ビットのAHアキュムレヌタの䞊䜍郚分および8ビットのAL䞋䜍郚分レゞスタずしおアクセスできたす。 2぀の曞き蟌み制埡バスを備えたレゞスタの実装により、レゞスタの各半分に個別に曞き蟌むこずができたす。



レゞスタファむルが8ビットではなく16ビットレゞスタのみをサポヌトしおいる堎合、プロセッサは機胜する可胜性がありたすが、効率は䜎䞋したす。8ビットの半分ぞの曞き蟌みは、16ビットすべおを読み取り、8ビットの半分を倉曎し、16ビットすべおを曞き蟌むこずによっお行われたす。その結果、1぀のレゞスタにアクセスする代わりに、呌び出しは3぀になりたす。この堎合、䞍芁な半分は単玔に無芖できるため、レゞスタファむルは特に8ビットの読み取りをサポヌトする必芁はありたせん。





8086の汎甚レゞスタ。レゞスタA、B、C、およびDは、2぀の8ビットの半分に分割できたす。



マルチポヌトレゞスタ



これたで、8぀の汎甚「䞋䜍レゞスタ」に぀いお説明しおきたした。 8086には、悪名高いセグメントレゞスタを含む、メモリアクセスに䜿甚される7぀の「䞊䜍レゞスタ」もありたす。これらのレゞスタは、より耇雑なマルチポヌト動䜜スキヌムを備えおいるため、耇数の読み取りおよび曞き蟌みプロセスを同時に実行できたす。たずえば、マルチポヌトレゞスタファむルを䜿甚するず、プログラムカりンタ、セグメントレゞスタの読み取り、および別のセグメントレゞスタの曞き蟌みをすべお同時に行うこずができたす。



以䞋のブロック図は、ほずんどのブロック図ずは異なりたす。8086の堎合、プログラマヌが想像するものではなく、プロセッサヌの実際の物理的な実装を瀺しおいるためです。特に、この図は、バスむンタヌフェむスモゞュヌルのレゞスタの2぀の「内郚通信レゞスタ」右ず、チップ䞊に衚瀺される7぀のレゞスタに䞀臎するセグメントレゞスタを瀺しおいたす。以䞋に瀺す䞀時レゞスタは物理的にALUの䞀郚であるため、この蚘事では取り䞊げたせん。







「最新のプロセッサの蚭蚈」ずいう本では、2000幎代以降のプロセッサの耇雑なレゞスタシステムに぀いお説明しおいたす。回路の耇雑さはすぐに3぀のポヌトを超え、䞀郚の高床なプロセッサには20以䞊のポヌトを持぀レゞスタファむルがあるず蚀われおいたす。



以䞋のマルチポヌトレゞスタセルは、同じ2むンバヌタ回路に基づいおいたすが、3぀のビットラむン前の堎合のように1぀ではありたせんず5぀の制埡ラむン2぀ではなくがありたす。 3぀の読み取りバスを䜿甚するず、3぀のビットラむンのいずれかでレゞスタセルの内容を読み取るこずができ、2぀の曞き蟌みバスを䜿甚するず、ビットAたたはCをレゞスタセルに曞き蟌むこずができたす。





8086プロセッサのマルチポヌトレゞスタセル



䞀芋、8086レゞスタファむルは同皮のレゞスタセットのように芋えたすが、よく芋るず、各レゞスタがその機胜に応じお最適化されおいるこずがわかりたす。それらのいく぀かは単玔な16ビットレゞスタであり、最もコンパクトに配眮されおいたす。他の16ビットレゞスタは2぀の8ビットレゞスタずしおアクセスでき、別の制埡バスが必芁です。最も耇雑なレゞスタには、読み取り甚に2〜3個、曞き蟌み甚に1〜2個のポヌトがありたす。いずれの堎合も、レゞスタセルの物理的な実装は、スペヌスをできるだけ少なくするように泚意深く蚭蚈されおいるため、トランゞスタの圢状は耇雑になるこずがよくありたす。 Intelの゚ンゞニアは、レゞスタヌのレむアりトを可胜な限り厳密に絞り、利甚可胜なスペヌスにすべおを収めたした。



䞊䜍レゞスタには、読み取りず曞き蟌み甚に異なる数のポヌトがありたす。3぀の読み取りバスず2぀の曞き蟌みバスを備えた2぀のレゞスタ、2぀の読み取りバスず2぀の曞き蟌みバスを備えた1぀のレゞスタ、2぀の読み取りバスず1぀の曞き蟌みバスを備えた4぀のレゞスタです。最初の3぀のレゞスタは、おそらくプログラムカりンタ、間接䞀時レゞスタ、および䞀時オペランドレゞスタです。最埌の4぀は、おそらくSS、DS、SS、およびESセグメントレゞスタです。たた、3぀の呜什プリフェッチバッファレゞスタがあり、それぞれに1぀の読み取りバスず1぀の曞き蟌みバスがありたす。



元のIBMPCで䜿甚されおいた8088プロセッサは、16ビットではなく8ビットの倖郚バスを備えおいたため、システムが安䟡であったこずを陀いお、8086ず実質的に同じでした。 8088のプリフェッチバッファサむズは6ではなく4バむトでした。おそらく、8088の䜎速メモリバスには4バむトで十分だったためです。



8086ずは異なり、8088のプリフェッチレゞスタは8ビットの半分ぞの独立した曞き蟌みをサポヌトしたす8088のA、B、C、およびDレゞスタず同様に、これらのセルのみが異なっお芋えたす。これは、バスが狭いため、8088が芁求したコマンドは、䞀床に1ワヌドではなく、䞀床に1バむトであるためです。したがっお、プリフェッチレゞスタはバむト曞き蟌みをサポヌトする必芁がありたすが、8086はワヌドプリフェッチをサポヌトしたす。





10個の16ビットレゞスタで構成される䞊䜍レゞスタファむル。写真はシリコンずポリシリコンです。赀い瞊線-陀去された金属局の残骞。クリック可胜。



結論



8086プロセッサは42幎前のものですが、x86アヌキテクチャが今日でも非垞に䞀般的に䜿甚されおいるため、珟代のコンピュヌタに倧きな圱響を䞎えたす。レゞスタ8086は、珟圚でも64ビット長ですが、最新のx86コンピュヌタにはただ存圚しおおり、これらのレゞスタ以倖にも倚くのレゞスタがありたす。



8086結晶は、そのトランゞスタを顕埮鏡で芋るこずができるため、研究するのに非垞に興味深いものです。か぀おは29,000個のトランゞスタを搭茉した耇雑なプロセッサでしたが、すべおの回路をトレヌスしおそれらがどのように機胜するかを理解するのに十分シンプルでした。



参照



  • 「スケヌリングチップIntelが8086のスケヌルを瞮小したプロセッサ」
  • 「マむクロプロセッサIntel8086のリバヌス゚ンゞニアリング」
  • 「8087数孊コプロセッサのシフトレゞスタ結晶の分析」



All Articles