Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ryunosinfx/77e2fc98d79fa879251f34eaf76f6d3f to your computer and use it in GitHub Desktop.
Save ryunosinfx/77e2fc98d79fa879251f34eaf76f6d3f to your computer and use it in GitHub Desktop.
引用元:[x86]CPUアーキテクチャについて語れ![RISC] の155-163

引用元:

https://syncer.jp/javascript-reference/canvas-todataurl

155 :・良く分かるパイプライン :04/04/26 17:20 ID:B6tZVOSS

「おしっこをして手をあらってでてくる」。 トイレが一室しかないと混雑時は長蛇の列ができます。

  • 1.おしっこをする
  • 2.手を洗う。

二段のパイプにすると、手を洗ってる間に別の人が用を足せるようになります。 トイレ一室で二人が気持ちよくなれて、効率が倍になります。

もうすこし深くしてみましょう。

  • 1.ジッパーを下げる
  • 2.ちんちんとりだす
  • 3.放尿する
  • 4.しずくを切ってちんちんしまう。
  • 5.ジッパーをあげる
  • 6.手を洗う
  • 7.紙を使って手をふく

7ステージに分解すると、なんと 7人が同時に処理できます。 これがパイプラインです。

156 :・良く分かるスーパスケーラ :04/04/26 17:21 ID:B6tZVOSS

トイレの利用はおしっこだけではありません。 うんこもします。どういう手順でしょうか。

  • 1.ジッパーを下げる
  • 2.ズボンとパンツを下ろす
  • 3.便器に座ってふんばる(出す)
  • 4.汚れた尻を拭く
  • 5.ズボンとパンツをあげる
  • 6.ジッパーを上げる
  • 7.手を洗う
  • 8.紙を使って手を拭く

前半と後半は同じ処理ですが、途中がおしっことは別処理です。 ということは、小便器と大便器をわけると、途中は並列に処理ができそうです。

うんちとおしっこは処理時間が異なるので、手を洗ったりする所でどっちかが 待たされる事もありえますが、理想的には効率は倍になります。

これがスーパスケーラです。

157 :・良く分かるスーパパイプライン :04/04/26 17:22 ID:B6tZVOSS

うんこする時間と、ズボンとパンツを脱ぐ時間は同じでしょうか。 いいえ、うんこする時間のほうが圧倒的に長いです。

ということは、前の人がうんこしてる間パンツを下ろす人は尻をだしたまま ぼ~とまっていなくてはいけません。かかる時間を考慮してみましょう。 括弧内は、実際に処理に必要な時間です。

  • 1.ジッパーを下げる(5秒)
  • 2.ズボンとパンツを下ろす(20秒)
  • 3.便器に座ってふんばる(60秒)
  • 4.汚れた尻を拭く(30秒)
  • 5.ズボンとパンツをあげる(20秒)
  • 6.ジッパーを上げる(5秒)
  • 7.手を洗う(60秒)
  • 8.紙を使って手を拭く(30秒)

パイプラインは、一ステージ毎タイミングを合わせて処理をします。 一番時間がかかる処理は、例では60秒ですから、トイレにはいってから出てくる まで60秒x8回、480秒の時間がかかります。

158 :・スーパーパイプライン(続き) :04/04/26 17:23 ID:B6tZVOSS

ちょっと発想を広げ、時間のかかる処理を分解してみましょう。

  • 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秒ですね。 前より早く処理が完了しました。しかしクロックが倍になったけどトイレに かかる時間は半分にはなりません。

これが、スーパパイプラインです。

159 :・緊急事態発生 :04/04/26 17:24 ID:B6tZVOSS

あなたは今、これから迎えるであろう至福の時を迎える為にパンツをおろし、 あとは出すだけという所です。しかし!あろうことか神の声が轟きます。

「なにをしている、ここは女子便所だぞ」

条件判断ミスです。あなたの後ろには、つられて入って来てしまった数人の男性が、 ジッパーをさげズボンを降ろし、尻をだしたまま待っています。 しかし、ここで用を足すわけにいきません。あなたは数名の男性と共に廊下に ほうりだされます。

あなたはもう一度、正しいトイレにいってジッパーを降ろす所から始めなくては いけません。

一方女子トイレはというと、あなた達がほうりだされた事により三つの席が 空いてしまいました。ステージは規則正しく順番に進みますから、この席は もう埋まりません。三つ分の埋まっていない席の為、女子トイレは利用される ことなく無駄な時間が経過するでしょう。

その分、女子トイレの利用率は下がります。 これがハザードです。

160 :・その他の危険 :04/04/26 17:25 ID:B6tZVOSS

トイレの危険はまだまだいっぱいあります。 トイレットペーパーが無くなったらどうでしょうか。尻を拭くことが出来ず、 それ以降のステージは凍結してしまいます。

手拭きのペーパータオルが無くなる危険もあるし、汲み取り式のトイレだと 肥溜めがいっぱいになってしまう事もあるでしょう。

その度にあなたは、本来やりたかった放尿を一時中断し、紙をとってきたり 汲み取ったりしないといけません。

本来は放尿や脱糞だけできればどんなに気持ちの良いことか。 そこで、トイレ掃除の人を雇って紙の補充をしてもらったり、汲み取り業者 を雇って定期的に組み上げてもらいます。お金がかかりますが知っちゃこっちゃ ありません。それで本来の目的が気持ちよく遂行できるなら安いものです。

そう思うでしょう?

161 :・依存関係 :04/04/26 17:26 ID:B6tZVOSS

トイレが汚いとあまり気持ち言いものじゃありません。 知った人が前にすましてたら、そのトイレがきれいかどうか聞いてみるといい ですね。でも、その人がトイレから出てくるまで聞けませんから、待ってる事に なります。

折角11ステージにも増えて、同時に11人処理できるトイレも、入って来て くれなければ利用率は下がります。

あなたと連れが二人います。 一人がトイレに行きました。あなたともう一人の連れは入りたいけど綺麗か 気になります。

この時、全体にあかる時間は

  • 1.一人目の連れがトイレに入って出てくるまで 330秒。
  • 2.トイレがきれいか確認してあなたが入って出てくるまで更に 330秒。
  • 3.もう一人の連れは、あなたに続いて入れるので出てくるはあなたから30秒遅れ。

聞かずに入れば330+30+30で390秒で済む所が、トータルで690秒もかかって しまいました。

これが依存関係です。

162 :・リオーダ :04/04/26 17:27 ID:B6tZVOSS

そこで、トイレがきれいか同か聞かなくてもいい人を先に通してみると どうでしょう。どうせあなたは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秒後には全員でてきています。

処理を入れ換えてあげると、トイレの利用率はあがり全体の処理時間が短縮 されることがあります。これがリオーダです。

163 :・いろんな工夫 :04/04/26 17:28 ID:B6tZVOSS

大勢が素早く滞り無く気持ちよくなる工夫はいろいろあります。

トイレを二部屋用意するとか(Dualトイレ)、使用中のトイレに行列ができない ように振り分けて上げるとか(Threadコントロール)、トイレに待合室とかつくっ ておくと(Cache)、すれ違え無い程廊下が狭くてもまとめて入室させたり退室さ せれば(WriteBack)混乱は減りますね。

とここまで書いておいて、トイレを流すのを忘れていたことに気がつきました。 くさいです。ちゃんと流しましょう。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment