CPUアーキテクチャについて語れ!

[x86]CPUアーキテクチャについて語れ![RISC] 
「おしっこをして手をあらってでてくる」。 トイレが一室しかないと混雑時は長蛇の列ができます。 1.おしっこをする 2.手を洗う。 二段のパイプにすると、手を洗ってる間に別の人が用を足せるようになり ます。 トイレ一室で二人が気持ちよくなれて、効率が倍になります。 もうすこし深くしてみましょう。 1.ジッパーを下げる 2.ちんちんとりだす 3.放尿する 4.しずくを切ってちんちんしまう。 5.ジッパーをあげる 6.手を洗う 7.紙を使って手をふく 7ステージに分解すると、なんと 7人が同時に処理できます。 これがパイプラインです。
トイレの利用はおしっこだけではありません。 
うんこもします。どういう手順でしょうか。 
1.ジッパーを下げる 
2.ズボンとパンツを下ろす 
3.便器に座ってふんばる(出す) 
4.汚れた尻を拭く 
5.ズボンとパンツをあげる 
6.ジッパーを上げる 
7.手を洗う 
8.紙を使って手を拭く 
前半と後半は同じ処理ですが、途中がおしっことは別処理です。 
ということは、小便器と大便器をわけると、途中は並列に処理ができそう
です。 
うんちとおしっこは処理時間が異なるので、手を洗ったりする所でどっち
かが 
待たされる事もありえますが、理想的には効率は倍になります。 
これがスーパスケーラです。 
うんこする時間と、ズボンとパンツを脱ぐ時間は同じでしょうか。 いいえ、うんこする時間のほうが圧倒的に長いです。 ということは、前の人がうんこしてる間パンツを下ろす人は
尻をだしたまま ぼ~とまっていなくてはいけません。かかる時間を考慮してみましょう。 括弧内は、実際に処理に必要な時間です。 1.ジッパーを下げる(5秒) 2.ズボンとパンツを下ろす(20秒) 3.便器に座ってふんばる(60秒) 4.汚れた尻を拭く(30秒) 5.ズボンとパンツをあげる(20秒) 6.ジッパーを上げる(5秒) 7.手を洗う(60秒) 8.紙を使って手を拭く(30秒) パイプラインは、一ステージ毎タイミングを合わせて処理をします。 一番時間がかかる処理は、例では60秒ですから、トイレにはいってから出 てくる まで60秒x8回、480秒の時間がかかります。 ちょっと発想を広げ、時間のかかる処理を分解してみましょう。 1.ジッパーを下げる(5秒) 2.ズボンとパンツを下ろす(20秒) 3.便器に座る(10秒) 4.一回目ふんばる(30秒) 5.二回目ふんばる(30秒) 6.汚れた尻を拭く(30秒) 7.ズボンとパンツをあげる(20秒) 8.ジッパーを上げる(5秒) 9.手に石鹸をつけて泡立てる(30秒) 10.泡を洗い流す(30秒) 11.紙を使って手を拭く(30秒) ステージ数は増えてしまいましたが、1ステージにかかる時間は30秒と半 分に なりました。クロックでいうと倍のクロックに出来ることになります。 トータルでかかる時間はどうでしょう。30秒x11で 330秒ですね。 前より早く処理が完了しました。しかしクロックが倍になったけどトイレ に かかる時間は半分にはなりません。 これが、スーパパイプラインです。 あなたは今、これから迎えるであろう至福の時を迎える為にパンツをおろ し、 あとは出すだけという所です。しかし!あろうことか神の声が轟きます。 「なにをしている、ここは女子便所だぞ」 条件判断ミスです。あなたの後ろには、つられて入って来てしまった数人 の男性が、 ジッパーをさげズボンを降ろし、尻をだしたまま待っています。 しかし、ここで用を足すわけにいきません。あなたは数名の男性と共に廊 下に ほうりだされます。 あなたはもう一度、正しいトイレにいってジッパーを降ろす所から始めな くては いけません。 一方女子トイレはというと、あなた達がほうりだされた事により三つの席 が 空いてしまいました。ステージは規則正しく順番に進みますから、この席 は もう埋まりません。三つ分の埋まっていない席の為、女子トイレは利用さ れる ことなく無駄な時間が経過するでしょう。 その分、女子トイレの利用率は下がります。 これがハザードです。 トイレの危険はまだまだいっぱいあります。 トイレットペーパーが無くなったらどうでしょうか。尻を拭くことが出来 ず、 それ以降のステージは凍結してしまいます。 手拭きのペーパータオルが無くなる危険もあるし
汲み取り式のトイレだと 肥溜めがいっぱいになってしまう事もあるでしょう。 その度にあなたは、本来やりたかった放尿を一時中断し
紙をとってきたり 汲み取ったりしないといけません。 本来は放尿や脱糞だけできればどんなに気持ちの良いことか。 そこで、トイレ掃除の人を雇って紙の補充をしてもらったり
汲み取り業者 を雇って定期的に組み上げてもらいます。
お金がかかりますが知っちゃこっちゃ ありません。それで本来の目的が気持ちよく遂行できるなら安いものです。 そう思うでしょう? トイレが汚いとあまり気持ち言いものじゃありません。 知った人が前にすましてたら、そのトイレがきれいかどうか
聞いてみるといい ですね。でも、その人がトイレから出てくるまで聞けませんから
待ってる事に なります。 折角11ステージにも増えて、同時に11人処理できるトイレも、入って来て くれなければ利用率は下がります。 あなたと連れが二人います。 一人がトイレに行きました。あなたともう一人の連れは
入りたいけど綺麗か 気になります。 この時、全体にあかる時間は 1.一人目の連れがトイレに入って出てくるまで 330秒。 2.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。 3.もう一人の連れは、あなたに続いて入れるので出てくるはあなたから30 秒遅れ。 聞かずに入れば330+30+30で390秒で済む所が、トータルで690秒もかかっ て しまいました。 これが依存関係です。 そこで、トイレがきれいか同か聞かなくてもいい人を先に通してみると どうでしょう。どうせあなたは10ステージ分経過するまでトイレには 入れないんです。 丁度バスツアーの観光バスがサービスエリアに到着しました。
あなたと、もう 一人の連れとの間に並んでます。おばはんは
男トイレでも気にしません。 処理時間はどれだけでしょうか。 1.一人目の連れがトイレに入って出てくるまで 330秒。 2.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。 3.あなたの後ろに並んでしまったおばはんが10人。入りきるで300秒。 4.もう一人の連れはその30秒後にトイレに入れるので、入れるのは あなたが入ってから330秒遅れ、さらに330秒の処理時間。 あなたのグループはトータル 990秒かかります。 おばはんは、あなたが入った後にしか入れませんから
330+30で360秒後に トイレにはいって、全員がでてくるのは330秒後ですから、690秒後です。 先におばはんをいれてみたらどうなるでしょう? 1.一人目の連れがトイレに入って出てくるまで 330秒。 2.一人目が入って30秒後におばはんが入り始めて10人入るのに300秒。 3.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。 4.もう一人の連れは、あなたにつづいて入れるので出てくるのはあなたか ら30秒遅れ。 あなたのグループは、トータル690秒で済みます。 おばはんは30秒後にははいってますから、なんと360秒後には全員でてき ています。 処理を入れ換えてあげると、トイレの利用率はあがり
全体の処理時間が短縮 されることがあります。これがリオーダです。 大勢が素早く滞り無く気持ちよくなる工夫はいろいろあります。 トイレを二部屋用意するとか(Dualトイレ)、使用中のトイレに行列ができない ように振り分けて上げるとか(Threadコントロール)、 トイレに待合室とかつくっておくと(Cache)、 すれ違え無い程廊下が狭くてもまとめて入室させたり
退室させれば(WriteBack)混乱は減りますね。
とここまで書いておいて、トイレを流すのを
忘れていたことに気がつきました。 くさいです。ちゃんと流しましょう。
  • entry13ツイート
  • Google+

PageTop