クラッシックCPU 1個目

このエントリーをはてなブックマークに追加
875774ワット発電中さん
8080もインテルがOSを出していたりするわけだが

6809の命令のバイト数もサイクル数も違う見かけだけの直交性に騙されている奴は今でもいるんだな
どうせマイコンしか知らないくせに何がコンピュータ屋の設計だよw
876774ワット発電中さん:2012/06/01(金) 01:57:12.65 ID:ywApyOp8
ハードウェア的な直交性でなければ偽者、なんて俺様定義を振り回されても知らんわ
877774ワット発電中さん:2012/06/01(金) 10:04:35.05 ID:ZQUahkZT
どちらかと言うと、場の空気を壊す間抜けって感じ。
878774ワット発電中さん:2012/06/01(金) 14:51:47.81 ID:IWsVhaoF
>>875
で、御説のいうところの真の『直交性』があるというCPUは何でしょうか?
是非ご高説を賜りたい。
879774ワット発電中さん:2012/06/01(金) 17:01:19.34 ID:f/aDrG4s
見かけだけは直交している、と書いたはずだけどねえ
偽物だなんて誰が言い出したのやら

「真の」直交性なんてのも同じ
より直交性の高いものは?という質問なら受け付けるよ
880774ワット発電中さん:2012/06/01(金) 19:22:50.80 ID:8gDhJXUR
直腸性交に似ている
881774ワット発電中さん:2012/06/01(金) 19:36:21.70 ID:i4jckBmc
直交性が高いって言うと、下記だと思うけど
1)命令によって使えるレジスタの制限が無い(or少ない)
2)命令によって使えるアドレッシングモードの制限が無い(or少ない)
直交性が高い=優れたアーキテクチャなのかな?
実際は制限のある命令は削除してるだけに見えるんだけど

コンパイラに最適化されているんだろうけど
"コンパイラに最適化=優れたアーキテクチャ"ってのは決定事項
なんだろうか
882774ワット発電中さん:2012/06/01(金) 19:37:15.29 ID:77BgFL++
ハーバードじじい参上
883774ワット発電中さん:2012/06/01(金) 20:37:04.20 ID:IWsVhaoF
>>879
ごちゃごちゃ言わずにさっさと具体例を出せよ、ハゲ。
884774ワット発電中さん:2012/06/01(金) 21:52:08.51 ID:f/aDrG4s
>>883のような人間が揚げ足をとろうとしているのが明らかなので
質問が明確になってから答える
885774ワット発電中さん:2012/06/01(金) 22:01:00.25 ID:mAtQ72+o
>>>883のような人間が揚げ足をとろうとしているのが明らかなので
>質問が明確になってから答える

↑これを意訳すると・・・

「ボクは何の知識も無いので答えられません。
でも見栄っ張りなボクはノラリクラリと思わせぶりな反応してかわすぜ。
うかつに技術的っぽい回答したら、本当に知識持っている人たちに
ボコボコにされるからな。そんな馬脚を現すほどボクはマヌケじゃないよ。」
886774ワット発電中さん:2012/06/01(金) 22:20:48.45 ID:j+ibsnhj
直交性なんてジャーゴンの一種だから正確な定義なんてないでしょ。

要するに、>>875がやっているように誰でも「俺だけの正しい直交性の定義」
を下すことが出来るといえば出来る。

それに意味があるかどうかは別として。
887774ワット発電中さん:2012/06/01(金) 22:27:16.55 ID:f/aDrG4s
>>886
直交性に正確な定義がないとしても、共通の理解というのは当然あるわな
888774ワット発電中さん:2012/06/01(金) 22:28:47.75 ID:f/aDrG4s
>>885
やっぱり揚げ足をとるつもりだったのか
889774ワット発電中さん:2012/06/01(金) 22:32:43.07 ID:mAtQ72+o
本当に知識のある人は、揚げ足なんか取られないような
一分の隙もない完璧な発言をするものなんだが。
要するに自信がないんだろ。
白状しろよ。「ボクは何の知識もありません」と。
890774ワット発電中さん:2012/06/01(金) 22:34:53.05 ID:f/aDrG4s
何にせよ、レジスタに限っても
ニモニックレベルや命令エンコードレベルでの対称性や、実行サイクル数の違い、特定の役割(スタックとか)などがあるわけよ

真とか偽の直交性とか言われても話はできんね
891774ワット発電中さん:2012/06/01(金) 22:37:28.10 ID:mAtQ72+o
話ができないなら黙っていれば?
892774ワット発電中さん:2012/06/01(金) 22:40:18.71 ID:f/aDrG4s
>>891
お前の嫌がることなら何でもする
893774ワット発電中さん:2012/06/01(金) 22:44:28.95 ID:mAtQ72+o
オレが嫌がる最大のことは、君が理路整然とオレを論破すること。
さぁ、やってくれ。
894774ワット発電中さん:2012/06/01(金) 22:46:53.14 ID:hS0xJ0bD
直交性っていうのは普通は命令セットの話だから、クロック数とか実装の話は関係ないだろ。
895774ワット発電中さん:2012/06/01(金) 22:48:32.82 ID:f/aDrG4s
>>893
君は>>890の前半にはふれずに後半の揚げ足取りに走った
俺の予言どおりだな
896774ワット発電中さん:2012/06/01(金) 22:50:52.36 ID:mAtQ72+o
すまん、言い方が悪かった。オレが最大に嫌なのは、
君が具体的な例を出すこと。誤るから具体的な例を出してくれ。
897774ワット発電中さん:2012/06/01(金) 22:51:20.05 ID:mAtQ72+o
誤字:誤る→謝る
898774ワット発電中さん:2012/06/01(金) 22:52:35.08 ID:f/aDrG4s
>>894
考え方の一つとしてはそういうのもあってもよいかとは思うが、
レジスタやアドレッシングモードの直交性の利点として、コンパイラの作成の容易さがあげられることが多い
アドレッシングモードは仕方がないとしても、レジスタによって実行サイクル数が異なるとコンパイラは作りにくくなるよな
だから、実行サイクルなども直交性に含める方が自然
899774ワット発電中さん:2012/06/01(金) 22:56:03.36 ID:hS0xJ0bD
>>898
考え方のひとつって・・・
頑固なんだねw
実装系が変わればコンパイラの最適化が変わるのは当然だが、直交性とは関係ないぞ。
900774ワット発電中さん:2012/06/01(金) 22:57:28.50 ID:j+ibsnhj
直交性って一番抽象度を上げて言えば、要するにパラメータとパラメータの独立性のことだよね。
片方を変えずにもう片方を変えられること。

その意味で>>890の言っていることはややトンチンカンだね。
実行サイクルはともかく、「ニモニックレベルや命令エンコードレベルでの対称性」
って何のこと言ってるんだろう。

そのアドレッシングと実行サイクルの間の関係にしたって、普通はそれを
直交性が高いとか低いとか言わない気がするけどね。

まあ俺様定義だなこんなもの。
901774ワット発電中さん:2012/06/01(金) 23:00:06.61 ID:f/aDrG4s
>>900
> 「ニモニックレベルや命令エンコードレベルでの対称性」

>>894
> 直交性っていうのは普通は命令セットの話だから、

これとだいたい同じという理解

902774ワット発電中さん:2012/06/01(金) 23:02:10.91 ID:mAtQ72+o
8ビットCPU(少なくとも世に広く知られたCPU)で
直交性が高いのは8080だな。

Z80も6809も80806も変なプリフィックスつけて命令増設しているから、
ニモニック上では直交しているように見えても実際には直交性は高くない。
直交性に関しては8080の方が勝っているんだが、8080は寂れた。

さて、>>898の言う、「直交性の高い」クラシックCPUって何だ?
具体的に挙げてくれ。
903774ワット発電中さん:2012/06/01(金) 23:04:09.74 ID:j+ibsnhj
>>901
>>894の言いたいことは>>881的な話だろう。
要するに、命令とアドレッシングの間の独立性のこと。

こういう話をするときに、君は
>ニモニックレベルや命令エンコードレベルでの対称性
こんな意味不明な表現をするんですか?w
904774ワット発電中さん:2012/06/01(金) 23:04:56.73 ID:f/aDrG4s
>>900
> 片方を変えずにもう片方を変えられること。

例えば6809では、XレジスタをYレジスタに変えるとプリバイトがついてサイクル数が変わることがある
CMPXとCMPYとか
905774ワット発電中さん:2012/06/01(金) 23:05:41.32 ID:j+ibsnhj
>>902
いやいや、AレジスタなんてものがあるCPUを直交性が高いとか言わないでしょw
906774ワット発電中さん:2012/06/01(金) 23:06:52.38 ID:f/aDrG4s
>>902
4004
907774ワット発電中さん:2012/06/01(金) 23:12:30.66 ID:mAtQ72+o
>>902
まいったな、オレが話していたのはID: f/aDrG4s なんだがw

いや、8080は,少なくともZ80なんかよりは直交性が高いよ。
Z80なんかは直交性を維持していたらパフォーマンスが落ちるのが見えたから
あえて直交性を崩した。
908774ワット発電中さん:2012/06/01(金) 23:13:21.22 ID:mAtQ72+o
>>907
で、4004は性能が高いの?
つーか、4004用のコンパイラとかあったの?
909774ワット発電中さん:2012/06/01(金) 23:19:29.33 ID:f/aDrG4s
>>908
何の話がしたいの?
910774ワット発電中さん:2012/06/01(金) 23:29:42.11 ID:f/aDrG4s
言い方を変えると、>>908
・4004には直交性がかけている、なぜなら性能が低いしコンパイラもないからだ
と主張しているの?
911774ワット発電中さん:2012/06/01(金) 23:32:45.65 ID:mAtQ72+o
>6809の命令のバイト数もサイクル数も違う見かけだけの直交性に騙されている奴は今でもいるんだな
>どうせマイコンしか知らないくせに何がコンピュータ屋の設計だよw

これが発端だな。オレは>>873とは別人なんだが(信じなければ信じなくても結構)
じゃあ聞こう。

1)「見かけだけの直交性に騙されてい」ない君は、どんなスゴイことやってるの?

2)「どうせマイコンしか知らないクセに」とおっしゃる君は、マイコン以外のどんなCPUを知っているの?
912774ワット発電中さん:2012/06/01(金) 23:33:24.04 ID:mAtQ72+o
>・4004には直交性がかけている、なぜなら性能が低いしコンパイラもないからだ

そんな主張はしていないが。
913774ワット発電中さん:2012/06/01(金) 23:35:48.55 ID:mAtQ72+o
>>908

>>898
>レジスタやアドレッシングモードの直交性の利点として、コンパイラの作成の容易さがあげられることが多い
への反論。
914774ワット発電中さん:2012/06/01(金) 23:36:47.50 ID:f/aDrG4s
>>911
6809のプリバイトが消えてなくなるというのなら答えてもいいけど
915774ワット発電中さん:2012/06/01(金) 23:38:42.12 ID:mAtQ72+o
>レジスタやアドレッシングモードの直交性の利点として、コンパイラの作成の容易さがあげられることが多い

と君が言うなら、君は4004なんて出すべきではなかった。
916774ワット発電中さん:2012/06/01(金) 23:41:44.70 ID:mAtQ72+o
>6809のプリバイトが消えてなくなるというのなら答えてもいいけど

それを言うならポストバイトだな。

で、君の言う「プリバイト」が無くて、6809より優れているクラシックCPUって何?

(言っておくが、ここはクラシックCPUのスレだからな。core2とかarmとか持ち出してもダメだぞ。)
917774ワット発電中さん:2012/06/01(金) 23:51:54.05 ID:f/aDrG4s
なんでトータルの優劣の話になるのかなあ…
918774ワット発電中さん:2012/06/01(金) 23:54:06.49 ID:mAtQ72+o
>>917
>>911にも答えてくれ
919774ワット発電中さん:2012/06/01(金) 23:57:07.33 ID:mAtQ72+o
つーか君、ぜんぜん具体的なこと言っていないよね。
早くオレの嫌がる、具体的なことでオレを論破してくれ。
オレの嫌がることは何でもするんだろ。
920774ワット発電中さん:2012/06/02(土) 00:05:52.51 ID:MNeesvKU
6502,6809とかはレジスタが少なくて、コンパイラ作りにくかっただけじゃねえの?
LSI-C80ってのあったけど、一時的にメモリ使ってた

80年代後期、6502系でCコンパイラ作ろうとしてた人がいたけど、その後どうなったんだろう?
921774ワット発電中さん:2012/06/02(土) 00:06:20.37 ID:HyN28ofU
老人ホームって喧嘩が多いらしいね。
922919:2012/06/02(土) 00:10:18.50 ID:BdpbpTCH
オレは旧ID:mAtQ72+o。
日付が変わったのでIDのテスト。
923919:2012/06/02(土) 00:12:03.76 ID:BdpbpTCH
>>921
そうだな。君の言うとおり。

>6809の命令のバイト数もサイクル数も違う見かけだけの直交性に騙されている奴は今でもいるんだな
<>どうせマイコンしか知らないくせに何がコンピュータ屋の設計だよw

↑これこそまさに他人に喧嘩売ってるセリフだよな。
924919:2012/06/02(土) 00:20:10.90 ID:BdpbpTCH
少なくとも、>>875がレスを付けているであろう相手の>>873は喧嘩腰ではない。
喧嘩論調になったのは>>875が現れてから。
925774ワット発電中さん:2012/06/03(日) 23:53:08.58 ID:S8HcbImH
OR A, A を NOP と呼ぶのは直交性が低いでしょうか
926774ワット発電中さん:2012/06/04(月) 00:15:12.54 ID:wZusKhzW
その手のネタは逝ってる系が得意でしょ
927774ワット発電中さん:2012/06/04(月) 08:15:41.77 ID:oWBx4WVP
フラグが変わる不思議なNOPです
928774ワット発電中さん:2012/06/05(火) 05:39:42.74 ID:9CKn77d4
直交性は歴史的概念ではないのでクラッシックにこだわる理由がわからないが、COSMACとかSC/MPとかMN1610とかどうですかね
4004の評価も聞いていない
929774ワット発電中さん:2012/06/05(火) 11:12:58.71 ID:+rwmRXWn
MN1610はCPUとして認識されていません。
930774ワット発電中さん:2012/06/05(火) 13:32:41.49 ID:xAoyEAVy
NS32032はどうよ
931774ワット発電中さん:2012/06/05(火) 22:02:18.26 ID:2h5XBrrD
>>930
そんな新しい石はクラシックと呼べません。
932774ワット発電中さん:2012/06/06(水) 02:25:07.40 ID:gvitts1b
DECのJ11はどうよ
933774ワット発電中さん:2012/06/07(木) 02:15:37.37 ID:FvwayktJ
コスマックやスキャンプはどうよ
934774ワット発電中さん:2012/06/07(木) 14:39:10.75 ID:UJKYf2t7
Cu
はどうよ
935774ワット発電中さん:2012/06/08(金) 00:49:13.74 ID:CuQB9JcW
首の下はどうよ
936774ワット発電中さん:2012/06/08(金) 00:54:11.57 ID:9ZyKz3d/
金、銀、と来たら次は、























パールよ
937774ワット発電中さん:2012/06/08(金) 01:56:15.52 ID:jGNoxWgF
>>931
16032はNSによれば68000より早かったらしい
938774ワット発電中さん:2012/06/08(金) 09:18:01.31 ID:pp2qVIhh
TRONチップ辺りは、そろそろクラシックに入れて良い頃かな?
939774ワット発電中さん:2012/06/08(金) 14:05:02.98 ID:YNECSzYB
OSもろともtronはレガシー系にしたほうがいいような
940774ワット発電中さん:2012/06/08(金) 19:20:36.98 ID:oqK4iZ9R
>>936
♪プレゼント♪
941774ワット発電中さん:2012/06/24(日) 22:12:10.45 ID:6S+zTULW
パールが抜けてね?
942774ワット発電中さん:2012/06/25(月) 13:59:46.81 ID:aIdTJmHt
金銀バールプレゼントっ!
943774ワット発電中さん:2012/06/27(水) 09:43:55.77 ID:LwUAr2jC
あれ、当った人いるんか?
944774ワット発電中さん:2012/06/27(水) 13:25:35.77 ID:BApq6sd9
金銀バールのようなものプレゼントっ!
だと、金なのか銀なのかバールなのかはっきりしなくなるな
945774ワット発電中さん:2012/06/27(水) 19:32:57.44 ID:3t2flQyj
バールが届いた…
946774ワット発電中さん:2012/06/27(水) 23:49:07.74 ID:oULLqNyW
最近はヘクトパスカルって言うんだよ。
947774ワット発電中さん:2012/06/28(木) 01:30:42.73 ID:a7wE/Esy
ロッカーこじ開けんじゃねぇのか?
948774ワット発電中さん:2012/06/28(木) 19:38:11.35 ID:2Vi3rIzp
今でもやってるのかな。NHKの気象通報。小学校のとき夏休みの自由研究で毎日付けていたなぁ。
949774ワット発電中さん:2012/06/28(木) 19:52:57.79 ID:1VUu4Mig
950774ワット発電中さん:2012/07/14(土) 21:41:00.62 ID:uLApsig/
>>946
それはmでは?
951774ワット発電中さん:2012/07/16(月) 23:09:01.12 ID:RD40bWGk
どうでもいいがPL/Mコンパイラは4004ターゲットもあるらしいぞ
952774ワット発電中さん:2012/07/28(土) 14:45:10.94 ID:Bp19gHBm
いまだに、TLCS12Aで生産してる装置がある。
953774ワット発電中さん:2012/07/28(土) 19:01:39.15 ID:RA+uMExi
PL/M 懐かしいなあ。
4004 ってスタック3段とからしいのですぐにオーバーフローしそうだが…
そもそもローカル変数とか使えるんか?
954774ワット発電中さん:2012/07/28(土) 20:04:08.11 ID:H/WMi4Hg
ローカル変数?何それ美味いの?って世界かと。
955774ワット発電中さん:2012/07/28(土) 20:27:35.37 ID:pptiogGW
ローカル変数はCPU関係ないだろ
956774ワット発電中さん:2012/07/28(土) 20:30:54.73 ID:DoEFrwgv
>>955
お馬鹿な発言だな。
957774ワット発電中さん:2012/07/28(土) 20:39:16.58 ID:RA+uMExi
変態 CPU とか触ったことないでしょ。

4004 は、ハードウェアスタックで PC の退避専用だから、ローカル変数サポートしようと
したらスタックとは別にそういう仕組みを用意しないといけない。

そもそも世の中には、汎用機のように (ハードウェアとしての) スタック持ってないマシン
もあったりするし。
958774ワット発電中さん:2012/07/28(土) 21:32:43.09 ID:hQ1mP0Uz
なんでメインフレームってそんな設計にしたんだろうな。
360の時にはしょうがなかったにしても。
959774ワット発電中さん:2012/07/28(土) 21:36:19.86 ID:RA+uMExi
普通に 360 を引きずってるだけだと思うが…
960774ワット発電中さん:2012/07/28(土) 22:14:45.38 ID:slm720vD
>>956
お馬鹿はお前だ。
ローカル変数をスタックフレームに置くかどうかは実装の問題であってハードアーキテクチャとは独立だろ。
961774ワット発電中さん:2012/07/28(土) 22:52:01.42 ID:DoEFrwgv
>>960
再帰を考えなければスタックで実装する必要はないが再帰呼び出しもできないような「何か」なら
その中で使われる一時変数をローカル変数とは普通は言わない。

スタックも論理的には別にHWで実装されている必要はないが、push、popの操作が
アトミックになるように書かなければならず、実用的とは思えん。

まあとにかく、馬鹿が知ったような口を利くなと。
962774ワット発電中さん:2012/07/28(土) 22:58:15.58 ID:RA+uMExi
その実装の話をしてるんだが…

話についてこれないなら、絡んでくるなよ。
963774ワット発電中さん:2012/07/28(土) 23:01:20.31 ID:DoEFrwgv
じゃあHWスタック使わずにどうやってローカル変数を実現するか言ってみろ馬鹿が
964774ワット発電中さん:2012/07/28(土) 23:04:33.31 ID:Y3EJeWj2
>>960
本当の馬鹿だったんだな。
リカーシブに使うからってスタックフレームに置く必然性はないし、仮にそうだとしてもHWの用意したスタックメカニズムを使わなければならないということも無い。
実用的云々はもう笑うしかない。
4004で高級言語の話を始めた時点で実用性は棚に上げた話だということもわからないのか。
おのれの知っている実装方法だけが全てと信じて知ったかぶり全開とはね。
965774ワット発電中さん:2012/07/28(土) 23:06:39.27 ID:DoEFrwgv
>>964
グダグダ言ってねえでスタックを使わずにローカル変数を実装する方法を述べてください。
まあ無理しなくてもいいよ
966774ワット発電中さん:2012/07/28(土) 23:08:40.25 ID:j6hx+79a
>>964
アンカミス
960じゃなく>961な
967774ワット発電中さん:2012/07/28(土) 23:12:01.00 ID:pptiogGW
>>965

簡単じゃないか。
ソフトウェアでなんでもいいからスタック的なものを作れば。
968774ワット発電中さん:2012/07/28(土) 23:12:28.59 ID:RA+uMExi
>>962>>960 宛ね

>>961
> 再帰を考えなければスタックで実装する必要はないが再帰呼び出しもできないような「何か」なら
> その中で使われる一時変数をローカル変数とは普通は言わない。

昔の COBOL や FORTRAN の手続きや関数内で宣言されている変数はなんて言うんだ?

> push、popの操作がアトミックになるように書かなければならず

大抵のマシンの push/pop 操作はアトミックじゃないけど?

馬鹿に突っ込むなら、もう少し勉強してからの方がいいと思うぞ。
969774ワット発電中さん:2012/07/28(土) 23:17:28.32 ID:DoEFrwgv
push/popがアトミックじゃないCPUが一つでもあったら教えて欲しいわw
論外過ぎる
970774ワット発電中さん:2012/07/28(土) 23:33:58.87 ID:hsa7PgME
夏だなぁーと思わせる進行だ。

落ち着けよ。 火病を起こすな。
971774ワット発電中さん:2012/07/28(土) 23:37:07.65 ID:e6DXsQ8x
ARMってpush/popはSTRM/LDRMでやってるんじゃなかったっけ?
972774ワット発電中さん:2012/07/28(土) 23:41:14.79 ID:RA+uMExi
>>969
例えば 6809 で複数レジスタを push/pop したら、メモリーサイクル間に他の CPU やデバイス
(DMA とか) が割り込んでくる。

そもそもローカル変数の確保/解放がアトミックである必然性もないし、今時の CPU でローカル
変数の確保に push/pop なんて使ってる間抜けなコンパイラなんてそうそうないし。
大抵スタックポインタを操作するだけだよ。
973774ワット発電中さん:2012/07/28(土) 23:56:38.35 ID:dnka7s6D
何か知らんが久し振りにレスがあったと思ったらいきなり荒れまくりとはね。
そもそもさすがに4004じゃスタック以外にも限界ありまくりなんだから。
限界や実用性を無視しなきゃ何も話できないし、限界や実用性を無視していいのなら何でもできると言えばできる。
目くじら立てても仕方ないよ。
974774ワット発電中さん:2012/07/29(日) 00:05:33.92 ID:QpYczrDX
4004 だから、実用性無視はみんな合意してると思うよ。

その上でハードスタックとして戻りアドレス専用のスタックしか持たない 4004 でローカル変数実装
しようとしたら、今時の CPU に比べて面倒だから本当に実装してるのか? っていうなかに、
「CPU 関係ないとか」言い出す馬鹿がでてきただけの事。

まあ、荒れてると言っても夏休みだし、ネトウヨがいるわけでもないから、こんなもんでしょ。
975774ワット発電中さん:2012/07/29(日) 00:11:54.20 ID:ue8sPw2s
ちょっと話題が違うよって言えばいいところでいきなり馬鹿とかいうから荒れるんだよ。
ここにいるのは必然的にいい歳した大人のはずなのにな。
976774ワット発電中さん:2012/07/29(日) 00:25:10.42 ID:QpYczrDX
2ch の全盛期を知ってる「いい歳した大人」から見て、とても荒れてるとは思えないんだが…
977774ワット発電中さん:2012/07/29(日) 03:02:00.19 ID:tgx0MXIa
いい歳した大人って全共闘世代だろ
むしろ荒れるのが自然だ
978774ワット発電中さん:2012/07/29(日) 07:43:59.88 ID:NTzc6OLy
おれもpush/popしたい
979774ワット発電中さん:2012/07/29(日) 08:03:15.98 ID:c3Uh7DSW
先入れ中出し、後入れ外出し
980774ワット発電中さん:2012/07/29(日) 08:56:39.40 ID:wbALfngt
4004ってアドレッシングも特殊だし(ROMはともかく、RAMが電卓用の
仮数と指数みたいな変な構成だったはず)さすがに例としてどうかと
思うぞ。
981774ワット発電中さん:2012/07/29(日) 09:30:01.68 ID:BVjYYOfW
PUSH, POP各々の命令単位ではアトミックだけど、PUSH〜POPの命令ペアが
アトミックな動作になるアーキテクチャは、世の中にはないのでは?

ローカル変数の確保は、スタックポインタの演算ないし、x86系みたいに
専用のENTER/LEAVE命令がある。

DMAに関しては、1命令実行中のインストラクションフェッチや、メモリ
バスサイクルの途中に割り込む可能性があるけど、CPUアーキテクチャと
いうより、システムの設計依存な気が。
982774ワット発電中さん:2012/07/29(日) 09:31:46.57 ID:eBVLYUoU
4004のRAMは外部記憶扱いで考えないと。
http://www.intel.com/assets/pdf/datasheet/4004_datasheet.pdf
983774ワット発電中さん:2012/07/29(日) 11:27:40.56 ID:XmEp4M4P
>>982
めちゃ久しぶりに、改めて見るが古臭いながらよく出来たデバイスだね。
984774ワット発電中さん:2012/07/29(日) 12:15:15.21 ID:QpYczrDX
>>981
>PUSH, POP各々の命令単位ではアトミックだけど

だから違うって >>972 に書いてあるんだが。
ひょっとして、割り込みが入らない = アトミック とか言う、シングルコア脳の人なのか?

>DMAに関しては、1命令実行中のインストラクションフェッチや、メモリ
>バスサイクルの途中に割り込む可能性があるけど、CPUアーキテクチャと
>いうより、システムの設計依存な気が。

システム設計にももちろん依存するが、CPU アーキテクチャも必要。
詳しくは compare and swap atomic あたりでググって見てくれ。
985774ワット発電中さん:2012/07/29(日) 16:49:00.38 ID:m58oaPdY
>>965 アトミックという言葉を覚えて嬉しいことはわかるがもう少し勉強したほうがいいよ

//スタックを使わないローカル変数の実装(main関数その他は省略)
*void alloc_pointer=XXXX; //XXXXはハードウェア固有のアドレス値

//ポインタル変数 x,y,z が事実上のローカル変数として使用できる
void local_func(){
static int *x;
static short *y;
static char *z;
x = xmalloc(sizeof(int));
y = xmalloc(sizeof(short));
z = xmalloc(sizeof(char));
//(実際の処理)
z = xmfree(sizeof(char));
y = xmfree(sizeof(short));
x = xmfree(sizeof(int));
}

//メモリ割り当て
void* xmalloc(int x){
static void* t;
t = alloc_pointer;
alioc_pointer += x;
return t;
}

//メモリ開放
void xmfree(int x){
alloc_pointer -= x;
}
986985:2012/07/29(日) 16:50:31.83 ID:m58oaPdY
誤字、脱字はご容赦ください
987774ワット発電中さん:2012/07/29(日) 17:41:14.09 ID:m58oaPdY
良く見たら文法エラーorz、ゴメン今はこれが精一杯
>z = xmfree(sizeof(char));
>y = xmfree(sizeof(short));
>x = xmfree(sizeof(int));
     ↓
xmfree(sizeof(char));
xmfree(sizeof(short));
xmfree(sizeof(int));
988774ワット発電中さん:2012/07/29(日) 17:48:33.18 ID:QpYczrDX
既に >>967 に答え書いてあるし、

*void alloc_pointer=XXXX; とか、
z = xmfree(sizeof(char)); で、void の関数から値取得するとか、馬鹿すぎ。

「アトミックという言葉を覚えて嬉しいことはわかるが」なんて煽り入れるなら、
もう少しちゃんとやれや。
989774ワット発電中さん:2012/07/29(日) 18:35:23.09 ID:m58oaPdY
ソース修正後に「馬鹿すぎ」とか突っ込まれても困りますなw
990774ワット発電中さん:2012/07/29(日) 20:06:26.12 ID:qgsG2/US
>>985
ポインタのビット幅 = アドレスバスのビット幅とコアがネイティブに扱えるデータの
最大幅た一致しないCPUでは

alioc_pointer += x;
はアトミックじゃないから問題がある。
991774ワット発電中さん:2012/07/29(日) 20:16:31.10 ID:PAKG7hM0
985の処理にアトミックとか言ってるところが
例題としては×
992774ワット発電中さん:2012/07/29(日) 20:18:41.86 ID:/wruBxbm
いやそもそも割り込みもない4004でアトミックとか言ってる時点でもう
993.985:2012/07/29(日) 20:39:35.60 ID:m58oaPdY
実際にはアセンブラで書くべきなんだろうね。
とりあえず>>985のソースは参考程度にしておいてください。

>alioc_pointer += x;
>はアトミックじゃないから問題がある。

一応コンパイラも作った経験者ですがその程度ならどうとでもなりますので・・・
994774ワット発電中さん:2012/07/29(日) 20:40:59.97 ID:IyOO/37C
 
995774ワット発電中さん:2012/07/29(日) 20:53:18.08 ID:BVjYYOfW
なんだか、アトミックを理解していない、自称マルチプロセッサ搭載ゆとり脳が
混じっているな。
996774ワット発電中さん:2012/07/29(日) 20:57:27.53 ID:VUvPwTFb
997774ワット発電中さん:2012/07/29(日) 21:20:31.65 ID:XmKCn6Jh
998774ワット発電中さん:2012/07/29(日) 21:45:28.68 ID:vTLQG9/w
誰か知らんが早く埋めてスレ終了にしたがってる奴が居るな
999774ワット発電中さん:2012/07/29(日) 21:55:55.10 ID:IuBAVMMT
>>985
atmic性云々は、無関係。
その記述だと、まったくリエントラントにならない。
なぜなら、func を実行中にもう一個funcのイスンタンスを呼び出そうとしても、
アドレスを保持している x,y,z の実体が一個しかないから。

正しい実装は、
static int *sp; // スタック用メモリーを指すように初期化しておくこと。

void local_func(){
static int x;
static short y;
static char z;
*--sp = x;
*--sp = y;
*--sp = z;
// 実際の処理
z = *sp++;
y = *sp++;
z = *sp++;
}
x = xmalloc(sizeof(int));
y = xmalloc(sizeof(short));
z = xmalloc(sizeof(char));
//(実際の処理)
z = xmfree(sizeof(char));
y = xmfree(sizeof(short));
x = xmfree(sizeof(int));
}



1000774ワット発電中さん:2012/07/29(日) 21:57:21.81 ID:IuBAVMMT
すまん、書き込みミス。
最後から2番目の}以降は不要。

マルチタスク対応するには、一連のpush/popをatomicにする必要がある。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。