
はてなキーワード:レジスタとは
DE
「de」はロマンス諸語で「…の、…から」を意味する前置詞。フランス語(ド)、スペイン語(デ)など。姓の前に使われることがある(フェルディナン・ド・ソシュール、ドン・キホーテ・デ・ラ・マンチャなど)。古くスペイン語では「de」を合わせた「」という合字が使われ、現在も碑文やロゴなどにこの字を見ることがある。
オランダ語の定冠詞。姓の前に使われることがある(エド・デ・ワールトなど)。
ドイツ (Deutschland) のISO 3166-1国名コード
アメリカンフットボールのポジションの一つであるディフェンシブエンド (Defensive End) の略称。
護衛駆逐艦 (destroyer escort) 及び航洋護衛艦 (ocean escort) の艦船記号。海上自衛隊の護衛艦の種別にも使用されている。
動軸5軸のディーゼル機関車の符号。旧国鉄で制定され、JR・私鉄などで使用されている。
微分方程式 (differential equation)
可消化エネルギー (digestible energy)
モールス符号による無線通信で、自局の呼出符号の前に置く符号(「こちらは」の意)
NTTドコモ・DDIセルラーグループ→auにおける、デンソーの略称。(例:DE207、C402DE)
デスクトップ環境 (desktop environment)
コンパクトカー、マツダ・デミオの形式 3代目 DE系(2007年-2014年)
ゲームソフト、ゼノブレイドのNintendo Switch 版の通称。(Definitive Edition)
en:Jet Propulsion Laboratory Development Ephemerisの略称(JPL DEとも)。
De
de
.de -ドイツの国名コードトップレベルドメイン
dE
AIにとっては、Pythonのような中間表現を生成させる方が得意であると考えられます。
中間表現(Pythonなど):人間が理解しやすいように設計されており、抽象度が高いです。AIは、より少ないトークンで複雑なロジックを表現でき、学習データも豊富にあるため、意味的な整合性やロジックの正確性を保ちやすいです。
機械語:抽象度が非常に低い(CPUの命令レベル)です。特定のCPUアーキテクチャに依存し、メモリ管理やレジスタ割り当てといった低レベルの詳細をすべて正しく処理する必要があります。これはAIにとって学習が複雑で、小さなミスがプログラム全体の破損につながりやすくなります。
中間表現:比較的長いコンテキストを保持しやすく、デバッグやエラーの特定も高レベルで行えます。
機械語:必要な命令数が多くなりがちで、AIが長大なバイナリシーケンスを生成する際に、コンテキストウィンドウ内に必要な情報すべてを保持しきることが難しくなる可能性があります。また、中間表現と比べて意味的な構造が薄いため、AIがバグのないコードを生成するのが格段に困難になります。
中間表現:Pythonのような高級言語は、特定のハードウェアに依存しないため、移植性が高いです。
機械語:特定のアーキテクチャ(例:x86,ARM)に完全に依存するため、AIが異なる環境向けにコードを生成する場合、それぞれのアーキテクチャごとに学習と生成を行う必要があり、汎用性が低くなります。
現在のAI(特に大規模言語モデル)の能力は、人間が扱う高レベルの抽象的な概念やロジックの理解に優れているため、その能力を最大限に活かせる中間表現の生成の方が得意です。
機械語の生成は、極めて精密で低レベルな制御が要求されるため、AIにとってはるかに難易度が高いタスクとなります。
AIが中間表現を生成した場合でも、その後の処理(コンパイルやJITコンパイル)によって最適化され、最終的な機械語が生成されます。
これは従来のコンパイラ設計と同じアプローチであり、AIは「何をすべきか」という高レベルの指示に集中し、コンパイラが「どのように効率的に実行するか」という低レベルの処理を担当する、役割分担の面でも合理的です。
このエントリは2008年発売のAcerAspire One ZG5を使って書いている。
中古で買ったネットブック(AcerAspire One ZG5)をアップグレードし、Linuxディストリビューションをインストールし、軽作業ができるようにしていた。
本体キーボードが壊れることも含めて、あらゆるトラブルに遭い続けている。
直近ではDebian11 32bitをインストールして一通りの作業はできるようになっているが、ハードウェア制御にいろいろな問題が残っている。
CPU:Atom N270 (single core 1.6Ghz)
RAM: 1.5GB
ディスプレイ: 8.9インチ, 1024x600TFTLCD
OS:Debian GNU/Linux11 (bullseye)i686
中古で買ったネットブック(AcerAspire One ZG5 2008年の製品)をアップグレードし、Linuxディストリビューションをインストールし、軽作業ができるようにしていた。
本体キーボードが壊れることも含めて、あらゆるトラブルに遭い続けている。
直近ではDebian11 32bitをインストールして一通りの作業はできるようになっている。
CPU:Atom N270 (single core 1.6Ghz)
RAM: 1.5GB
ディスプレイ: 8.9インチ, 1024x600TFTLCD
OS:Debian GNU/Linux11 (bullseye)i686
Q.
あなたのようなAIにとって、指定された動作をするプログラムの実行ファイルを得る手順として1.人間と同様に高水準プログラミング言語で記述してからコンパイラによって実行ファイルを得る2.マシン語で直接実行ファイルを出力するではどちらが効率的ですか?
A.
AIにとって、どちらの方法が「効率的」かは、何を基準に効率性を測るかによって異なりますが、現在の技術水準では一般的に**「1.人間と同様に高水準プログラミング言語で記述してからコンパイラによって実行ファイルを得る」方が効率的**であると考えられます。理由は以下の通りです。1. **学習データと能力:** *AI、特に大規模言語モデルは、インターネット上に存在する膨大な量の高水準言語のコード(Python,Java,C++,JavaScriptなど)を学習しています。そのため、高水準言語でプログラムを生成する能力は非常に高いです。 * 一方、マシン語のコードは量が少なく、構造も複雑で多様(CPUアーキテクチャごとに異なる)なため、AIが直接高品質なマシン語を生成するように学習するのは困難です。2. **抽象化と複雑性の管理:** *高水準言語は、ハードウェアの詳細を抽象化し、人間(そしてAI)がロジックやアルゴリズムに集中できるように設計されています。これにより、複雑なプログラムでも比較的容易に記述できます。 *マシン語は非常に低水準であり、レジスタの割り当てやメモリアドレスの管理など、ハードウェアに密接に関連する詳細な記述が必要です。これをAIが直接行うのは、エラーが発生しやすく、非常に複雑なタスクになります。3. **開発エコシステムの活用:** *高水準言語には、コンパイラ、リンカ、デバッガ、ライブラリ、フレームワークといった成熟した開発エコシステムが存在します。AIはこれらのツールを活用することで、効率的に実行ファイルを生成し、最適化やデバッグを行うことができます。特にコンパイラは、長年の研究開発によって高度な最適化技術が組み込まれており、多くの場合、人間やAIが手書きするよりも効率的なマシン語を生成できます。 *マシン語を直接生成する場合、これらのエコシステムの恩恵を受けにくくなります。4. **移植性と保守性:** *高水準言語で書かれたコードは、異なるプラットフォーム(OSやCPUアーキテクチャ)に対応したコンパイラを使えば、比較的容易に移植できます。 *マシン語は特定のアーキテクチャに強く依存するため、移植性は非常に低くなります。AIが異なるアーキテクチャごとにマシン語を生成し直すのは非効率的です。***マシン語直接出力の利点(理論上):****理論的には、コンパイラを介さずにAIが直接マシン語を生成することで、特定のハードウェアに対して究極の最適化を施せる可能性があります。**コンパイルのステップが不要になるため、その分の時間は短縮されます。***結論:**現時点では、AIがマシン語を直接生成するメリットよりも、高水準言語と既存のコンパイラを活用するメリットの方がはるかに大きいと言えます。AIは高水準言語での思考やコード生成に長けており、複雑な問題を効率的に解決できます。コンパイラという強力なツールを利用することで、最適化やプラットフォーム対応といった難しい問題を効率的に処理できます。したがって、AIにとっても、人間と同様に**高水準言語で記述し、コンパイラを利用して実行ファイルを得る方が、総合的に見てはるかに効率的なアプローチ**です。
プログラムの動作は、NANDゲートという基本的な要素から複雑なデジタル回路へと段階的に構築されることで実現されます。NANDゲートは、入力が両方とも真(1)の場合にのみ偽(0)を出力し、それ以外の場合は真(1)を出力する論理ゲートです このNANDゲートが、デジタル回路の基本的な構成要素として機能します.
NANDゲートは、それ自体が万能ゲート(universalgate)であり、これだけで他のすべての基本的な論理ゲート(NOT、AND、OR)を構成できます.
基本的な論理ゲートを組み合わせることで、加算器やマルチプレクサなどのより複雑な組み合わせ論理回路を構築できます。
組み合わせ論理回路にフィードバックループを導入することで、順序回路が実現されます。順序回路は、現在の入力だけでなく、過去の状態にも依存した出力を生成できます。
上記の要素を組み合わせることで、プロセッサ(CPU)を構成できます。
プログラムは、一連の命令としてメモリに格納されます。プロセッサは、プログラムカウンタが指すアドレスから命令を読み出し、命令デコーダで解釈し、制御ユニットの制御下でALUなどの各ユニットが動作することで、プログラムが実行されます。このプロセスを繰り返すことで、プログラムは順次実行されていきます。
このように、NANDゲートという単純な要素から出発して、段階的に複雑な回路を構成することで、プログラムの実行に必要なすべての要素が実現されます。
ショックすぎ。今たまたま女性スタッフに声かけられたからきいてみた。あのレジスタッフはMtFですよねって。したらその人ヘルプできてるからはっきりわからないと。ちょっとわたしも動揺して涙浮かんできて…女性向けの店にこれはないんじゃないかって上の人に消費者の声として伝えてくれと言っといた
いやまじで悔しくて泣けてくる…なにこれ。なんでこんな目に遭わなきゃならないの?
で女性スタッフがレジ替われないから時間ずらして来てって。そうするしかないのはわかるけど、なんでこっちがMtFのせいで買う時間ずらしていかなきゃならないの?
言いたくなかったけどわたしが買おうとしてたフェムテックアイテムは、性器をケアするオイルなんですよ。不快感を軽減させる。そんなもの男のレジ担当者に渡したくないよ。しかもMtFといったら女性への妄想やろくでもないポストばかりしてるだろ?気持ち悪くてむりです。そうさせたのはあの人達ですよ
お問い合わせ内容
本日吉祥寺アトレコスメキッチンにフェムテック商品 AROMEDICAのフェミノールを買いに言ったところ、レジ担当者がトランス女性である男性だった為購入を断念しました。わたしはずっと以前からコスメキッチンを利用していましたがこのような事は初めてです。女性向けのお店だと思い安心安全に今まで買い物をしていましたが、それが今日打ち砕かれてしまいました。いくら女性を装ってメイクや髪型を近づけても骨格・顔・声ですぐに男性とわかるし、MtFと言われている人たちの8割は性愛が女性に向いていて男性が女性に向けるものと同じ感覚で女性を眼差している事実は、当事者達のSNSで散々見てきました。あまりのショックに別の女性スタッフにもお伝えしました。涙 は出るし息は苦しくなるし、想定外の出来事でショックが大きいです。女性を装った男性がレジにいる、女性に対する侮辱であり、買い物をしに来てこんな屈辱感を味わったの初めてです。まさかコスメキッチンでこんな思いをするだなんて思いませんでした。
A:はい、私はアセンブリ言語のコードを記述することができます。アセンブリ言語は、コンピュータのプロセッサが理解できる低水準の機械語命令に直接対応するプログラム言語であり、CPUの命令セットアーキテクチャに依存するため、異なるCPUアーキテクチャに対して異なるコードが必要です。
以下は、x86アーキテクチャ向けの単純なアセンブリ言語の例です。これは、メモリの特定の場所にある2つの数値を加算して、結果をレジスタに格納するプログラムです。
Copy code
section .data
num1dd10 ; Define num1as adoubleword (32-bit integer) andsetits initialvalue to10
num2dd20 ; Define num2as adoubleword andsetits initialvalue to20
section .text
global _start ; Declare the entrypoint for the program
_start:
mov eax, [num1] ;Move thevalue of num1 into the eax register
add eax, [num2] ;Add thevalue of num2 to the eax register
mov [result], eax ;Move thevalue in eax to the memory location "result"
section .data
resultdd 0 ; Define resultas adoubleword andsetits initialvalue to 0
このプログラムは、num1の値をeaxレジスタに移動し、num2の値をeaxレジスタに加算し、最後にeaxレジスタの値をresultメモリアドレスに保存します。
「かゆうま」みたいなノリで匿名日記を書くサイト作って1年が経った
去年の投稿で「今では日500人切れば緊急事態宣言解除してもいい流れになってたり」と書いていたが、今や日3000人超えてても行動制限なしでゴールデンウィークは各地が賑わうと、すっかり世界が変わってしまった。
日本ではまだマスク着用が多いが、マスク着用義務を廃止した国も出てきているし、来年の今頃はマスク着けないがスタンダードになっているかもしれない。
まあワクチン打ってる人も増えてるし、オミクロン株は弱毒化してるということで、ウィズコロナ時代になったのだろう。
このまま終息してアフターコロナになることを願いたい。
サイト的にはこの1年は穏やかだった。
大きなバズはないが、投稿数が減ることもなく、むしろちょっとずつ増えてる感もある。
長く投稿してくれてる人、新たに書き込んでくれる人などなど大変ありがたい。
今年の2月にはfaviconを作ってくれた人もいた。ちょうど見かけたのでサイトに設定した。嬉しい。
自分ごとでいうと、去年の6月に適応障害になってしまい半年ほど倒れていた。
ある日の午後、15分ほどの軽いオンラインミーティング後に「さて、作業するかー!…あれ何するんだっけ……」と頭が真っ白になった。
とりあえずその日は午後休をもらい休んだが、翌日になっても翌々日になっても思考がボヤボヤしたままだった。
「これはヤバいやつな気がする…」と思い心療内科に行ったところ診断が出て休職になった。
休み中はとにかく眠くて、日中も5時間以上昼寝して、夜も8時間以上寝るでとにかく寝ていた。
短期記憶が死んでいて、麦茶を沸かそうとしても湯を沸かしっぱなしにしたり、火は止めたけどティーバッグを入れ忘れたり、ティーバッグを入れたまま翌日まで放置したりと散々だった。
本や漫画を読もうにも前のページのことを忘れるし、プログラミングしようにも1行書くと次の行に何書こうか忘れる状態。
それまでの趣味も全然できず、麦茶を忘れないようにしたり、料理で食材や調味料を入れ忘れないので精一杯だった。
4ヶ月くらいして徐々に眠気も緩和し、思考・記憶も回復してきた。
少しやる気も出てきたので、リハビリを兼ねて前々から読みたいと思っていたビジネス書を読もうとしたり、忙しくてなかなか時間が取れてなかった資格勉強を再開しようとしてみた。
元々時間が出来たら読みたい本リストややりたいことリストを作っていたのだか、どれもいまいちピンとこなかった。
そんな中ある日、本屋に行ったときに手にとったのが「ゼロからのOS自作入門」だった。
時間がかかり、それでいて仕事への費用対効果はほぼ無い。あくまで自分のコンプレックスから興味があると思っているだけ。それだったら仕事に効きそうなことを優先しようと封印していた。
ポインタに触れるのが久しぶりすぎて15年以上ぶりにC言語ポインタ完全制覇を引っ張り出してきて復習したり、図書館でオペレーティングシステムの本を借りてきて読んだり、学生時代に戻ったみたいだった。(たぶん学生時代はこんなにポインタとかOSの本を読んでなかったと思う)
理解は追いつかなかったが、UEFIとEDK IIの存在を知ったこと、CPUにリングプロテクションや専用レジスタがあることを初めて知ったりなどなど、どんどん新しいことを知れてとても楽しかった。
仕事への効果はいまのところ感じられないし、おそらく今後も効果を発揮する場面はなさそうだ。
倒れている間はなかなかしんどかったけど、仕事やキャリアの面から「やりたいと思い込んでいたこと」と、仕事に全然効かないけど「人生の満足度が上がるやりたいこと」がクリアになったのはいい機会だった。
いまは休みの日に合間を見て「コンピュータシステムの理論と実装」をやってる。これも楽しい。ゆるゆる進めていきたいと思う。
サイトの方も引き続きゆるゆる続けていきたいと思う。
COVID-19流行下の日々を集団で記録する日誌https://enigmatic-brushlands-82725.herokuapp.com/
言語によるけど
関数の引数は原則レジスタに入れて渡すことになってて、でも計算結果はほっといても必ず一度レジスタに入るわけだから、ほとんどのケースでは変わらない
forの条件判定に計算式を入れる場合は念のため変数に入れておいた方が安全
単純な式だったら最適化されるから変わらないと思うけど、コンパイラに「forの中身の進行に応じて条件式の結果が変わるかもしれない」と判断されると最適化の対象にならず、ループごとに計算し直される可能性がある
特に for ( i=0; getNanika(i) < 100; i++) みたいに条件の中に関数が入ってたら100%毎回関数が実行されるので注意
1byte=8bitってのはASCII ( *American* Standard Code for Information Interchange)、つまりアングロサクソンの世界制覇の野望であって、我々 ISCII (International Standard Code for Information Interchange) は1byte=10bitのコンピュータを作る! となったとしよう。ISCII仕様のコンピュータはヨーロッパ諸言語の文字、キリル文字などを表現できて (なにせ1byteあたり1000種類の文字が表現できる!)ヨーロッパ、ロシアを中心にバカ売れ、そしてIBMを倒し、ISCIIが世界制覇をする。
実際問題ハードを作る一番基礎の段階では、1byteが何bitであってもよいのだ。統一されてさえいれば。統一されていないと、DRAMやら外部バスやらとの処理の時に毎回変換が入って大変 (なお余談だが、通信の世界では普通に通信路上でエラー検出・修正のために冗長なbitを使う。64b/66b とかでおぐぐりください)。
さて、DRAMは...アドレス線も10本単位で作ればよい(もちろん読み出し・書き込みも10bit単位(あるいは50bitとか?)が最小の幅だ)。アドレス線の数が2べきである必要は... あるのかな。
レジスタとかCPUのワード長もshort=20bit, long=40bitとかになりそう。さすがに30bitは使わないかなぁ。
うーん何か困るかな、何も困らないような気もする。ちゃんとソフトが動くコンピュータ作ったことないただの素人なのだけど、何か見落しがあるだろうか?