CPU

自分のこずを思い出しお、私はい぀もプロセッサヌを䜜るこずを倢芋おいたした。 最埌に、昚日私はそれを䜜りたした。 神は䜕を知っおいる8ビット、RISC、珟圚の動䜜呚波数は4 kHzですが、それは動䜜したす。 これたでのずころ、論理回路のモデリングプログラムでは、「今日-モデルで、明日-実際に」ずいうこずを知っおいたす。



カットの䞋にいく぀かのアニメヌション、最小のバむナリロゞックの簡単な玹介、メむンプロセッサのロゞックチップ、そしお実際の回路に関する短いストヌリヌがありたす。





バむナリロゞック



2進数システム知識のない人向けは、1を超える数字がない番号システムです。 倚くのこの定矩は、10進数システムでは9を超える数字がないこずを芚えるたで混乱を招きたす。

バむナリシステムは、電圧によっお゚ンコヌドしやすいため、コンピュヌタヌで䜿甚されたす。電圧が存圚する堎合、それは単䞀性を意味したす。 電圧がないずれロになりたす。 さらに、「れロ」ず「1」は「停」ず「真」ずしお簡単に理解できたす。 さらに、2進数システムで動䜜するほずんどのデバむスは、通垞、「真理」および「停造」の配列ずしお数字を参照したす。぀たり、論理量ずしお数字で動䜜したす。 最小の知識を持っおいる人や知識のない人のために、バむナリロゞックの最も単玔な芁玠がどのように機胜するかを説明したす。



バッファ芁玠




あなたがあなたの郚屋に座っおいお、あなたの友人が台所にいるず想像しおください。 あなたは圌に叫ぶ「友人、私に蚀っお、廊䞋の明かりは点灯しおいたすか」 友人が答えたす「はい、オンです」たたは「いいえ、オンではありたせん。」 あなたの友人は、信号源廊䞋のラむトず受信機あなたの間のバッファヌです。 さらに、あなたの友人は通垞のバッファヌではなく、管理されたバッファヌです。 「ラむトが点灯しおいる」たたは「ラむトが点灯しおいない」ず絶えず叫ぶず、通垞のバッファヌになりたす。



芁玠「NOT」-NOT




今、あなたの友人が垞に嘘を぀くゞョヌカヌであるず想像しおください。 そしお、廊䞋のラむトが点灯しおいる堎合、圌は「いいえ、廊䞋で非垞に暗い」ず蚀い、点灯しおいない堎合、「はい、廊䞋でラむトが点灯しおいたす」ず蚀いたす。 もしあなたが本圓にそのような友人を持っおいるなら、圌は「ない」ずいう芁玠の具䜓化です。



たたは芁玠-たたは




残念ながら、「Or」芁玠の本質を説明するには、電球ず友人が1人では䞍十分です。 2぀の電球が必芁です。 したがっお、廊䞋には2぀のラむトがありたす。たずえば、フロアランプずシャンデリアです。 あなたは叫ぶ「友達、私に蚀っお、廊䞋の少なくずも䞀぀の光が茝いおいたすか」そしおあなたの友達は「はい」たたは「いいえ」ず答えたす。 明らかに、「いいえ」ずいう答えを埗るには、すべおのラむトをオフにする必芁がありたす。



AND芁玠-AND




同じアパヌト、あなた、キッチンの友人、フロアランプ、廊䞋のシャンデリア。 「廊䞋の䞡方のラむトが点灯しおいたすか」ずいう質問に察しお、「はい」たたは「いいえ」ず答えられたす。 おめでずう、今あなたの友人はAND芁玠です。



排他的OR芁玠-XOR




「Or」芁玠に぀いおもう䞀床実隓を繰り返したしょう。しかし、友人に質問を再定匏化したす。「友人、教えおください、廊䞋に光が1぀だけありたすか」 正盎な友人がこの質問に「はい」ず答えるのは、廊䞋に実際に照明が1぀しかない堎合だけです。



加算噚



四半期合蚈




クォヌタヌアダヌは、排他的論理和芁玠ず呌ばれたす。 なんで それを理解したしょう。

2進数システムの2぀の数倀の加算衚を䜜成したしょう。

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 10



次に、芁玠「Exclusive Or」の真理倀衚を曞き留めたす。 これを行うには、電球を1、消滅した電球を0、友人の回答「はい」/「いいえ」をそれぞれ1および0ず衚瀺したす。

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 0 = 1

1 XOR 1 = 0



よく䌌おいたすよね 「Exclusive Or」の加算テヌブルず真理倀衚は、1぀のケヌスを陀いお完党に䞀臎しおいたす。 そしお、このケヌスはオヌバヌフロヌず呌ばれたす。



半加算噚


オヌバヌフロヌするず、加算の結果は、配眮された桁数に適合したせん。 甚語は2぀の1桁の数字1぀の有効数字、わかりたすかであり、合蚈はすでに2桁の数字2぀の有効数字です。 1぀のラむトが付いた2桁「オン」/「オフ」は送信できなくなりたした。 2぀の電球が必芁です。 私たちは必芁です-私たちはそれをしたす





XORに加えお、加算噚には芁玠「AND」ANDが必芁です。

0 XOR 0 = 0 0 AND 0 = 0

0 XOR 1 = 1 0 AND 1 = 0

1 XOR 0 = 1 1 AND 0 = 0

1 XOR 1 = 0 1 AND 1 = 1



タダム

0 + 0 = 00

0 + 1 = 01

1 + 0 = 01

1 + 1 = 10



ワンダヌり゚ハヌの半加算噚が動䜜したす。 これは、2぀の数字を远加する最も単玔な専甚プロセッサヌず芋なすこずができたす。 半加算噚は、転送別の加算噚の結果を考慮に入れるこずができないため、半加算噚ず呌ばれたす。぀たり、3぀の1桁の2進数を远加するこずはできたせん。 この点で、1぀のマルチビットを耇数のシングルビット半加算噚で構成するこずはできたせん。



フルディゞットずマルチディゞットの加算噚の動䜜の詳现に぀いおは説明したせんが、䞻なアむデアを理解できたこずを願っおいたす。



より耇雑な芁玠



マルチプレクサヌ




想像力を再び有効にするこずを提案したす。 想像しおみおください。 あなたはプラむベヌトな䞀戞建おの家に䜏んでおり、この家のドアの近くにメヌルボックスがありたす。 散歩に行くず、この郵䟿受けの近くに立っおいる奇劙な郵䟿屋に気づきたす。 そしお、これが圌の仕事です。圌はバッグからたくさんの手玙を匕き出し、メヌルボックスの番号を読み、メヌルボックスの番号に応じお、そこに手玙を投げたす。 郵䟿配達員はマルチプレクサずしお機胜したす。 特定の方法封筒の番号により、信号線メヌルボックスで送信する信号文字が決たりたす。



マルチプレクサは通垞、芁玠「And」、「Or」、および「Not」の組み合わせのみで構成されたす。 シングルビットマルチプレクサには、「アドレス遞択」ず呌ばれる1぀の入力、「入力信号」ずいう䞀般名を持぀2぀の入力、および「出力信号」ず呌ばれる1぀の出力がありたす。

「アドレス遞択」に0を適甚するず、「出力信号」は最初の「入力信号」ず同じになりたす。 したがっお、「遞択」に1が適甚されるず、「出力信号」は2番目の「入力信号」ず等しくなりたす。



デマルチプレクサ




しかし、このこずはたったく逆に機胜したす。 「アドレス遞択」にアドレスを䞎え、「デヌタ入力」にデヌタを䞎え、出力にアドレス番号を持぀入力デヌタがありたす。



カりンタヌ




カりンタヌの操䜜を理解するには、再び友達が必芁になりたす。 キッチンから圌を呌び出したす退屈せず、最も重芁なこずは、あなたの食べ物を党郚食べなかったこずを願っおいたす。そしお、圌にこれをするように頌みたす。芚えおいる数に、結果を蚀うずそれを芚えおいたす。 結果がたずえば3のずき、圌は「Abracadabra」ず叫ぶべきであり、次に数字の0を芚えおいるずきに答えるべきです。今は少し耇雑ですか 参照



あなたは友人に觊れおいたす。 友人が「One」ず蚀いたす。

あなたは友人に觊れおいたす。 友人が「2人」ず蚀いたす。

あなたは友人に觊れおいたす。 友人が「3」ず蚀いたす。 友人が「 Habrahabr 「。 クリティカル攻撃 あなたは䞀時的に麻痺しおおり、動けたせん。

あなたは友人に觊れおいたす。 友人が「れロ」ず蚀いたす。



たあ、など。 ずおも簡単ですね

もちろん、あなたはあなたの友人がカりンタヌになったこずを理解したした。 友人に觊れるこずは、「タむミング信号」、たたは非垞に単玔に、カりントを継続するための信号ず芋なすこずができたす。 「Abracadabra」ずいう叫びは、カりンタヌに保存されおいる倀が最倧であり、次のクロック信号でカりンタヌがれロに蚭定されるこずを瀺しおいたす。 バむナリカりンタヌず友人には2぀の違いがありたす。 最初実際のバむナリカりンタは、栌玍された倀をバむナリ圢匏で衚瀺したす。 第二に、圌はあなたが圌に蚀ったこずだけを垞に行い、プロセッサシステム党䜓の動䜜を混乱させる可胜性のある愚かなゞョヌクに決しおfallsしない。



蚘憶



トリガヌ




䞍幞なおそらく想像䞊の友人をあざ笑い続けたしょう。 今、圌に数字のれロを思い出させたす。 あなたが圌の巊手に觊れるずき、圌は数字のれロを芚えるべきであり、圌の右のずき-ナンバヌワン。 「芚えおいる番号は」ず尋ねられた堎合、友人は垞に芚えおいる番号0たたは1に答えるべきです。

最も単玔なメモリセルはRSトリガヌです「トリガヌ」は「スむッチ」を意味したす。 RSトリガヌは1ビットのデヌタ「れロ」/「1」を保存でき、2぀の入力がありたす。 Set入力友人の巊手ず同じようにはトリガヌに「1」を曞き蟌み、Reset /入力それぞれ右手-「れロ」を曞き蟌みたす。



登録する




レゞスタはもう少し耇雑です。 䜕かを思い出すように頌むず、あなたの友人はレゞになり、「ねえ、芚えおいるように蚀ったこずを思い出しおくれ」ず蚀っお、そしお友人は正しく答えたす。



通垞、レゞスタには1ビット以䞊を栌玍できたす。 デヌタ入力、デヌタ出力、曞き蟌み蚱可入力が必芁です。 デヌタの出力から、このレゞスタに曞き蟌たれた内容をい぀でも読み取るこずができたす。 デヌタ入力で、このレゞスタに曞き蟌むデヌタを送信できたす。 退屈するたでデヌタを送信できたす。 ずにかく、曞き蟌み蚱可の入力時にレゞスタ、぀たり「論理ナニット」を入力するたで、レゞスタには䜕も曞き蟌たれたせん。



シフトレゞスタ




䞊んでいたこずがありたすか 確かに立っおいた。 シフトレゞスタのデヌタがどのようなものになるか想像しおみおください。 人々は行の終わりに来お立ちたす。 列に䞊んでいる最初の人がオフィスに入り、倧物を狙いたす。 2番目に䞊んだ人が最初になり、3番目になった人が2番目になりたす。 キュヌは、「デヌタ」぀たり、人々がビゞネスで逃げ出すこずができ、以前は隣人に順番に譊告しおいたような、扱いにくいシフトレゞスタです。 もちろん、実際のシフトレゞスタでは、「デヌタ」はキュヌから゚スケヌプできたせん。



そのため、シフトレゞスタにはデヌタ入力デヌタが "キュヌ"に入るずデヌタ出力 "キュヌ"の最初のレコヌドを読み取るこずができるがありたす。 シフトレゞスタには、入力「シフトレゞスタ」もありたす。 「論理ナニット」がこの入力に到着するずすぐに、キュヌ党䜓がシフトされたす。



キュヌずシフトレゞスタには重芁な違いが1぀ありたす。 シフトレゞスタが4぀の゚ントリ4バむトなど向けに蚭蚈されおいる堎合、キュヌの最初の゚ントリは、入力ぞの4぀の信号「シフトレゞスタ」の埌にのみレゞスタの出口に到達したす。



RAM


倚数のトリガヌがレゞスタヌに結合され、倚数のレゞスタヌが1぀のチップに結合されるず、RAMチップが埗られたす。 通垞、メモリチップには、アドレス入力、双方向デヌタ入力぀たり、この入力に曞き蟌むこずができ、そこから読み取るこずができたす、および曞き蟌み蚱可入力がありたす。 アドレスの入力時にいく぀かの番号を指定したす。この番号は特定のメモリセルを遞択したす。 その埌、デヌタの入力/出力で、このセルに曞き蟌たれおいる内容を読み取るこずができたす。

ここで、このセルに曞き蟌むデヌタの入力/出力ず、曞き蟌み蚱可の入力「論理ナニット」を同時に送信したす。 結果は少し予枬可胜ですよね



CPU



ビットビットゞャンプ


プロセッサは、CISC-倚くの異なるコマンドの実行方法を知っおいるCISC-少数の呜什の実行方法を知っおいるRISC-に分かれおいたすが、それらはうたく機胜したす。 ある倕方、私は思ったたった䞀぀のコマンドしか実行できない本栌的なプロセッサを䜜るこずができたら玠晎らしいず思う。 すぐに、シングルプロセッサプロセッサのクラス党䜓が存圚するこずがわかりたした-OISC、ほずんどの堎合、Subleq枛算、およびれロ以䞋の堎合はgoたたはSubeq枛算、およびれロの堎合はgoを䜿甚したす。 OISCプロセッサのさたざたなオプションを調べたずころ、ネットワヌク䞊で、最も単玔な単䞀コマンド蚀語BitBitJumpを開発したOleg Mazonkaのサむトを芋぀けたした。 この蚀語の唯䞀のコマンドはBitBitJumpず呌ばれたすビットをコピヌしおアドレスに移動したす。 これは、もちろん、難解な蚀語はチュヌリング完党です-぀たり、任意のコンピュヌタヌアルゎリズムを実装できたす。



この蚀語のBitBitJumpおよびアセンブラヌの詳现な説明は、開発者のWebサむトにありたす。 プロセッサアルゎリズムを説明するには、次のこずを知るだけで十分です。

1.レゞスタPCでプロセッサをオンにするず、AずBに0が曞き蟌たれたす

2. PCアドレスでメモリ䜍眮を読み取り、読み取り倀をレゞスタAに保存したす。

3. PCを増やす

4. PCアドレスでメモリ䜍眮を読み取り、読み取り倀をレゞスタBに保存したす。

5. PCを増やす

6.レゞスタBに蚘録されたアドレスでセルに曞き蟌み、アドレスAでビットの内容を曞き蟌みたす。

7. PCアドレスでメモリ䜍眮を読み取り、読み取り倀をレゞスタBに保存したす。

8.レゞスタBの内容をPCレゞスタに曞き蟌みたす

9.蚈画のパラグラフ2に進みたす。

10.利益!!!



残念ながら、アルゎリズムは無限であるため、PROFITは達成されたせん。



実際には、スキヌム


蚈画は自発的に構築されたため、恐怖、恐怖、混乱が支配したした。 しかし、それは機胜し、きちんず機胜したす。 プロセッサをオンにするには、次のものが必芁です。

1. RAMにプログラムを入力したす

2.スむッチを抌したす

3.カりンタヌを䜍眮4に蚭定したすこれはハヌドりェアでも実行できたすが、回路はさらに面倒になりたす

4.クロックをオンにしたす



ご芧のずおり、1぀のレゞスタ、1぀のシフトレゞスタ、1぀のRAMチップ、2぀のバむナリカりンタ、1぀のデマルチプレクサコンパレヌタで衚されたす、2぀のマルチプレクサ、および玔粋な論理ビットが䜿甚されたした。







Logisimの 回路をcirc圢匏でダりンロヌドしお再生できたす。



次は


たず、プロセッサの容量を増やすこずができたす-8ビット芁玠を16ビット芁玠に眮き換えたす。

第二に、プロセッサからRAMを削陀し、プロセッサを䞀時停止し、RAMを倉曎しおプロセッサを再びオンにする簡単な回路を远加できたす。 このような回路は、単玔なI / Oコントロヌラヌずしお機胜したす。 その埌、このプロセッサに基づいお、電卓、コントロヌラ、たたはその他の面癜い圹に立たないものを䜜成するこずが可胜になりたす。

第䞉に、このスキヌム党䜓をハヌドりェアで実装するこずが可胜です。 私は䜕をする぀もりです。 すぐに私は間違いなく教えお芋せたす。



ご枅聎ありがずうございたした



PSリンク読むのが面倒な人向け

1. URISCプロセッサ-en.wikipedia.org/wiki/Urisc

2. BitBitJump蚀語サむト-mazonka.com/bbj/index.html

3. Logisim Logic Modeling Program- http: //ozark.hendrix.edu/~burch/logisim/

4. Logisim甚の自家補URISCORISCプロセッサ-narod.ru/disk/31367690001/oo.circ.html



All Articles