アカウント名:
パスワード:
メモリーも大量に使えるようになってきたので・・・最小確保単位が128byteととかでなく1024byteとかでも問題なくなり始めている、そこでガベコレもmallocも、専用CPUを1つ搭載して、各種処理を裏側でやってしまうと良いのではと思っている。大半のオブジェクトやスタックフレームを格納できる程度のサイズ(1024byte程度)を、バックグラウンドで100個くらい確保してあらかじめ溜め込んでおく。そして、malloc要求が来たら、1024byte以下のサイズを要求された場合、あらかじめ確保しておいたメモリーの先頭番地を返すだけ、それ以上のサイズの要求が来たらソフトウェ
むかし、OSの機能をマイクロプロセッサに取り込もうとして大失敗した石がありましてね
インテルの大失敗がありますね、でも昔と今では集積度が全然違います。PS2でも、DSPをCPU上に搭載しましたが失敗などありません。あのDSPでも無理すれば書けます、しかしFPUなんか必要ありませんし、整数部は16ビットではなく64bitにして足し算引き算シフトくらいあれば十分です。
iAPX 432 とか今の集積度とコンパイラ技術で作れば十分な性能が出せそうだよね。
次世代8080として出発したアーキテクチャですからね、あれはZ80世代です無理に決まっています。(笑)それに、あれをそのまま真似する必要もないと思うんです。IBMの汎用機 Z/Architecture のような、VMを挟んでの互換性を保つようにして、CPUメーカーはVMとセットで供給するようにして、ここでエラッタ対応とかもしてしまう。ハードウェアで容易に実装可能なパーツ的命令だけを実装して、VMで活用するようにし、パーツ的命令には直接触らないというルールでやっても良いと思います。
ちなみに malloc の場合は、重いけれどもプログラム内で連発する命令ではなく、前後に依存性が無いので、小さい回路規模でもうまく処理時間を裏側に隠せるのでは?と思いました。
そんなのもどっかでやってたよね。トランスメタとか言ったっけ?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
コンピュータは旧約聖書の神に似ている、規則は多く、慈悲は無い -- Joseph Campbell
mallocは、ハードウェアで実装すれば良いのにと思っている (スコア:0)
メモリーも大量に使えるようになってきたので・・・
最小確保単位が128byteととかでなく1024byteとかでも問題なくなり始めている、そこで
ガベコレもmallocも、専用CPUを1つ搭載して、各種処理を裏側でやってしまうと良いのではと思っている。
大半のオブジェクトやスタックフレームを格納できる程度のサイズ(1024byte程度)を、バックグラウンドで100個くらい確保してあらかじめ溜め込んでおく。
そして、malloc要求が来たら、1024byte以下のサイズを要求された場合、あらかじめ確保しておいたメモリーの先頭番地を返すだけ、それ以上のサイズの要求が来たらソフトウェ
Re:mallocは、ハードウェアで実装すれば良いのにと思っている (スコア:0)
むかし、OSの機能をマイクロプロセッサに取り込もうとして大失敗した石がありましてね
Re: (スコア:0)
インテルの大失敗がありますね、でも昔と今では集積度が全然違います。
PS2でも、DSPをCPU上に搭載しましたが失敗などありません。
あのDSPでも無理すれば書けます、しかしFPUなんか必要ありませんし、整数部は16ビットではなく64bitにして足し算引き算シフトくらいあれば十分です。
Re: (スコア:0)
iAPX 432 とか今の集積度とコンパイラ技術で作れば十分な性能が出せそうだよね。
Re: (スコア:0)
次世代8080として出発したアーキテクチャですからね、あれはZ80世代です無理に決まっています。(笑)
それに、あれをそのまま真似する必要もないと思うんです。
IBMの汎用機 Z/Architecture のような、VMを挟んでの互換性を保つようにして、CPUメーカーはVMとセットで供給するようにして、ここでエラッタ対応とかもしてしまう。
ハードウェアで容易に実装可能なパーツ的命令だけを実装して、VMで活用するようにし、パーツ的命令には直接触らないというルールでやっても良いと思います。
ちなみに malloc の場合は、重いけれどもプログラム内で連発する命令ではなく、前後に依存性が無いので、小さい回路規模でもうまく処理時間を裏側に隠せるのでは?と思いました。
Re: (スコア:0)
そんなのもどっかでやってたよね。
トランスメタとか言ったっけ?