はじめに 【2022/02/03追記】 Twitterで、1バイトは何ビットかというのが話題に上り、この記事も急に参照されるようになりました。 話題になることで識者の方々から私自身も知らない知識を得ることが出来ました。 最終的には、ITmedia NEWSの大原雄介さんの下記の素晴らしい記事が産まれることになったので良かったです。 1バイトの定義 なぜ、1バイトは8bitになったのだろうという疑問から調べはじめました。 昔は4bitのCPUがあったわけだし、その時も1バイトが8bitなのか4bitではないのか?という疑問がわいたわけです。 結論から書くと当時4bitのCPUの場合、1バイトは4bitだったわけです。 とはいえ、CPUの値がそのまま1バイトになるわけではないです。 1bit CPU はできるのか?によると 長い歴史の中で、CPUのbit長はALU長でもなくアドレスバス長でもな
この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除
arxiv.org GIGAZINEでも紹介された新たなCPUの脆弱性の論文"SPOILER"が発表された。GIGAZINEがこのような記事を公開するのは珍しいなと思いつつ、面白そうなので読んでみることにした。 ちなみに、筆者は例によってセキュリティの専門家ではないし、CPUアーキテクチャにしてもデスクトップクラスの本格的なものは設計経験がないので、いまいち本文から読み取れない部分があったりとか、間違っている部分があるかもしれない。 この攻撃手法も、CPUの高速化を達成するための様々な機構を悪用する手法となっている。 SPOILERが対象とするのは、ストア命令の内容をロード命令でフォワードするためのMOB(Memory Order Buffer)の機構だ。例えば以下のようなコードを書いた場合、 sw a0, 0(sp) lw a1, 0(sp) ストア命令は、投機実行をしてしまうとメモリの
自身のウェブサイト上に他人のパソコンのCPU(処理装置)を使って仮想通貨をマイニングする「Coinhive(コインハイブ)」を保管したなどとして、不正指令電磁的記録保管の罪に問われたウェブデザイナーの男性(31)の第2回公判が1月15日、横浜地裁(本間敏広裁判長)であり、セキュリティ専門家の高木浩光氏への証人尋問が行われた。 ●「ソフトウェアの作成や流通に萎縮効果」 弁護側の主尋問で、高木氏はいわゆる「サイバー刑法」(情報処理の高度化等に対処するための刑法等の一部を改正する法律)が成立した際の附帯決議に「構成要件の意義を周知徹底すること」、「捜査は適切な運用に努める」と付記されていることを説明。構成要件が曖昧なまま処罰されてしまう弊害について、「ソフトウェアの作成や流通に萎縮効果が出てしまう」と述べた。 また、JavaScriptは、閲覧者側のPC内のファイルに触れられない機能になっており
はじめに 学校で習わないが(習う学校もある)、現実に必要になるプログラミング技術に、低レイヤプログラミングなどと呼ばれるものがある 厳密な定義は聞いたことがないし、おそらく存在しないとは思うが、大体のみんなの共通認識として、 「高級プログラミング言語を使わないプログラムを書き、OSで抽象化されないデバイスの機能を使う」といったような認識があると思う。 筆者の経験から言わせてもらうならば、低レイヤプログラミングに関する知識は、プログラミングにおいてあらゆる場面で、常に、少しずつ役立てられる知識だと言えると思う。 普段はRubyやPHPなどを書いてる人であったとしても、メモリが足りなくなった場合や、デバッガを使っている場合、性能が足りなくなった場合など、 厳しい環境におかれた時に低レイヤプログラミングに関する知識が必ず役に立つ場面が来ると信じている。 また、役に立つかどうかは置いておいても、「
正社員 5 人未満の IT 系零細企業を経営して 5 年たったので、何に投資して、何に投資しなかったかを振り返る事にした。 それぞれの会社で色々あるだろうから、これはあくまで自社がこうした、こうしているという話である。それ以上の意味はない。 投資すべき事社員の給与何よりも社員の給与が一番の投資先。人は一定額以上の給与を貰っていれば労働に対するモチベーションが下がりにくくなる。 何よりお金はあって困らない、そして無いと困る。 もちろん会社が儲かっている前提。自社は月給と賞与の比率が 3:7 くらいで賞与が多い。そのため、会社が儲かったら賞与を沢山だす。とにかく税理士と総務に「社員に賞与出しすぎです、この辺でお願いします(実話)」って言われるくらいまで出す。 そのかわり会社が貧乏な時は賞与は一切ださない、というか出せない。ここを理解した前提で入社してもらってる。 とにかく会社に多めに残すくらい
イスラエルのセキュリティ企業CTS Labsが、AMDのCPU「Ryzen」とサーバー向けCPU「EPYC」に13もの脆弱性があることを発表しました。しかし、AMDに対策の猶予を与えることなく脆弱性情報を公開した手法については批判もあり、そもそも現実的な脅威があるのか疑問という意見や、「株価下落を望んでいるだけでは?」という冷ややかな声も上がっています。 AMDFLAWS https://amdflaws.com/ 新興のセキュリティ企業CTS Labsが、AMDのCPUに内在する脆弱性に関する情報を公開しました。CTS Labsによると、脆弱性は大きく4種類に分類され、それぞれ「RYZENFALL」「FALLOUT」「CHIMERA」「MASTERKEY」と名付けられています。 RYZENFALLは、保護されたメモリ領域にアクセスしてAMD Secure Processorの特権を取得す
by Sh4rp_i ここ10年間に製造されたIntelのプロセッサに、設計上の欠陥が見つかりました。最悪の場合、パスワードやログインキー、キャッシュファイルなどが格納されたカーネルメモリーの内容を読み取られる恐れがあるとのことなのですが、Intel x86ハードウェアに存在する欠陥のため、マイクロコードアップデートでは対応不可能で、各OSがソフトウェアレベルで修正をかけるか、バグのない新たなプロセッサを導入する必要があるとのこと。 'Kernel memory leaking' Intel processor design flaw forces Linux, Windows redesign • The Register https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/ このバグは、データベースアプリケーショ
マサチューセッツ工科大学(MIT)の研究チームは、ディープラーニングに必要とされる複雑で多量の計算を光コンピューティングを使って高速化、低消費電力化する技術を開発したと発表した。まだ概念実証の段階だが、原理的にはディープラーニングの計算時間を大幅に短縮でき、従来のコンピュータに比べて消費電力を1/1000程度にできるという。研究論文は光学分野の専門誌「Nature photonics」に掲載された。 ニューラルネットワークに基づくディープラーニング技術は、画像認識や音声認識をはじめ、医療データベースの中から診断に利用できるパターンを見つけ出したり、膨大な化学式を探索して新薬を創出するなど、さまざまな分野で使われるようになってきている。 しかし、膨大なデータサンプルを学習する過程では時間とエネルギーを消費する大量の計算を行う必要がある。ディープラーニングで多用される計算は、主に行列同士の掛け
1カ月ほど前から、東京大学の松尾研のディープラーニング公開講座に行っている。 ネットで募集していたのであわてて申し込んだら、とんでもない数の人が集まっていて熱気がすごい。学部生、院生、社会人、あわせて300人以上が同時に授業を受けている。 初回こそ、人工知能概論のような話だったけれど、2回目以降はものすごい速度で授業が進む。そして宿題の量と質もすごい。2回と3回目の授業だけで、普通の学校の半年分くらいの内容になっている気がする。東大、ほんとにやべーよ。 毎回、授業の冒頭は「ふんふん、そうか」とはじまるのだけれど、終わり間近に大量のサンプルコードを見せられて、それをすごい勢いで説明され、最後にゴツイ宿題が出る。授業終了後は、ポカーンってなる(授業中にぜんぶ理解しているひと、どれくらいいるんだろう)。 友人の物書堂の社長の広瀬くん(iPhone辞書アプリ開発の大御所!)も、たまたまいっしょに講
皆さんこんにちは。 私は将棋プログラム「Ponanza」の作者、山本一成と申します。Ponanzaは初めてプロ棋士を破った将棋プログラムで、近年最も強い将棋プログラムと言えると思われます。また、2017年もトッププロ棋士の方と対局することが予定されています。Ponazaの改良のための機械学習に現在ジサトライッペイさんのPC「大紅蓮丸」の計算リソースを借りているのですが、その関係で原稿を書いてとお願いされたので、3回に渡って将棋プログラムの今について、書いていきたいと思います。 フリーランチの終焉、並列化の効率問題 アスキー読者の方々には言うまでもないのですが、まずは近年のCPU事情について解説していきたいと思います。ちょっと昔まではCPUはシングルコアが当たり前で18ヶ月経過すればCPUのトランジスター数は倍になり、性能が向上するという流れが続いていました。ソフトウェアはその性能向上に伴い
Ruby の正規表現だけで Brainfuck インタプリタを作ることができました。正規表現の実行は =~ だけなので、ループなども正規表現の内部で実行してます。 https://github.com/shinh/hack/blob/master/bf_rb_reg/bf.rb つまりどういうことができるかというと、 BF_REG という Regexp と BF_SUFFIX という文字列定数があって、 bf という文字列に格納された Brainfuck のコードを BF_REG =~ bf + BF_SUFFIX で実行することができます。出力は $~['o0'], $~['o1'], ... に入っているので、 output = '' 256.times do |i| o = $~["o#{i}"] break if !o output += o end 的なコードで取り出すことができ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く