なんてこったい。

いろいろメモ(個人の主観が多分に含まれています。ストレス発散用かな?)

コンピュータ

[ リスト | 詳細 ]

記事検索
検索

全8ページ

[1] [2] [3] [4] [5] [6] [7] [8]

[ 次のページ ]

世間では中国がスパコン世界一になっている様で。。

いやぁ、アメリカと日本で争っていると思っていたら、やりますねぇ。
中国のスパコンが世界一の速度だそうです。
おめでとうございます。いや本当に。

でも中国製にしてもアメリカ製にしても日本のつばめにしても、中の構成を見てみると殆ど同じなんですよねぇ。
いっぱいCPU同士をばかっ速いバスで交換機を介して処理させています。
でベクトル計算には今まで描画エンジンとして使っていたGPUを利用しています。
ここで、?って思う人もいるかもしれませんが、CPU+GPUで計算するって今市場に出ているインテルのiシリーズそのもの何ですよねぇ。
以前も書いた事がありますが、むかーーしに計算モジュールたるFPUがCPUに内蔵されて無い頃、80486SX(386は除外しときます)というCPUに、コプロセッサを付加して計算をさせていた頃を思いだします。
演算命令に拡張ニーモニックを追加して、拡張命令を受け付けた際にFPUに処理をまかせ計算完了時にCPUへの割り込みで通知するって方法ですね。
iシリーズも同様な拡張方法でベクトル演算をGPUに処理させているんでしょうね。
但し以前のコプロセッサと異なるには、演算するモノがGPUなだけに処理の完了通知は描画完了割り込みで受けていると思うのですがどうでしょうかねぇ。
FPUからの割り込みは、IRQ-13ってコプロセッサからの割り込みとしてリザーブされているはずなのですが、現在も使用しているのか定かではありません。
GPUからの割り込みもIRQ-13だったりして。。

まぁPCの範疇を遥に越えているスパコンの事ですから、本当の中身は知るよしもありませんけどね。

ただ本当に概要スペックをみる限りは、同じとしか思えないのです。
後は数で性能が決まっちゃうみたいな。

だとすると、単純に床面積を増やしてスケールをデカくすると世界一を奪回出来ちゃう?!
なぁんて想像しちゃいますけどね。
実際はそれがとても難しいってのも解りますけどね。
なんせ時間の単位が全然違いますので、スケールを大きくしたらその分延ばした線路(光ファイバ)の遅延が問題になってくるはずで、微細な時間差によって生じる処理順序の逆転を当然の如くおり込まないといけません。
いやはや、高速な計算をするために「スパコンの線路計算を行うためスパコンが必要ってどうよ」と思いますが、そんな速度の単位まで来ちゃってますのでしょうが無いと言えばしょうがありません。

まぁそんな世界一合戦よりも、興味があるのはパブリックなスパコンの利用という新しいサービスの方ですね。
スパコンをインターネットに繋げて、「ちょっとこの計算お願いします」って感じで計算してもらえるサービスです。
これぞクラウド時代のスパコン利用法ですね。
とすると、計算規模に応じてどのスパコンに処理させるかを受付サーバが判別して最適な規模のスパコンに処理依頼してその結果を依頼した人に返すという事も可能です。
もっと壮大に考えるなら、ものすごく膨大な計算が必要な計算を受付サーバに投げると世界中のスパコンを総動員して処理させるなんて事も可能になります。
いわゆるスパコンのボーダレス化ですよね。

となると・・・ 「世界二位でも良いじゃない」ってちょっと前に流行った言葉ですが、妙に真実味を帯びてきませんか?
なぜなら国策で速いスパコンを開発すること自体は無意味ではありませんが、ボーダレス化した複数のスパコンをクラウドで使用して計算させるって事で、常に最適なスパコンの利用をだれでも享受出来るわけです。

もうスパコンは一国のものでは無く、皆で使うツールって位置づけで良いんじゃ無い?って。
囲い込む事の方が、何となく意固地な様に見えますがどうでしょうかねぇ。

フェラーリとかランボルギーニを皆で作らなくとも、カローラをいっぱい繋げて分散コンピューティングした計算で良かったりしてそれぞれ得意とする計算があるはずです。

世界中がお金が無い今だからこそ出来るインフラ整備をした方が、未来に活かせると思う今日この頃です。
インターネットには国境(例外はありますがね)は無いのだから、意地張り合うのはやめようよってね。

なんてこったい。

閉じる コメント(11)

閉じる トラックバック(0)

ところでクラウドって何さ?

ここでも散々「クラウド」って言葉を使ってますが、実態はなんなんでしょう。
ネットワークコンピューティングらしいってのは、解るのですけどねぇ。

以上って言っちゃうとここの記事っぽく無いんで、もうちょっと掘り下げてみます。
クラウドって雲の事です。
ちなみにインターネットを表すのも雲の絵をよく使います。

と・い・う・こ・と・は、クラウド≒インターネットなんですよねぇ。
じゃあ何で業界(メーカー)は、クラウドを推しているんでしょうかねぇ。
それは、「インターネットさえあればどこでも同じ環境を再現できるから便利ですよね」と言ううたい文句と共に、サーバとかストレージマシンを売りたいからなんですよ。
クラウドを実現するためには、膨大なサーバが必要なのです。
何故膨大なサーバが必要なのでしょう。
それは、もっと膨大なクライアントを相手にしなければならないからなんです。
今までクライアントで行っていた処理をクラウド上のサーバで処理させようとすると、ものすごいデータがネットワーク上に流れます。
それが単一のサーバでのみサービスしているとすると、膨大なクライアントから矢継ぎ早にデータの授受をしなければならなくなります。
そればかりかサーバに到達するまで幾つものルータを越えなければいけません。
そうすると、ネットワーク自体にもものすごい負荷がかかるわけで。。

と言う状況に対応するためには、負荷分散するしかありません。
それではどうやって負荷分散させるのか?

2通りの方法が考えられます。
一つ目はサーバ・サーバ間で定期的にデータを授受することにより、データの同一性を保障するというやり方。
但し、データ授受するタイミングによっては、お互いにとっての身近なサーバにアクセスした時点で異なるデータを参照する事になる可能性があります。(でも一番解りやすい方法と言えるでしょう)
二つ目はサーバは複数という点については一つ目と同じなのですが、データ自体は分散化したストレージマシンに載っているデータを参照するという方法です。
当然ストレージマシンでは、RAID構成はもちろんストレージマシン自身の障害発生時には、ストレージ管理マシンの予備系のマシンがストレージ処理を引き継ぐという事を行います。

クライアントから見たら身近なサーバにアクセスする事になるのですが、そのデータは分散されたストレージデータを集約するストレージマシンが責任をおう様な形態をとるわけです。

それではストレージマシン同士の結合はどの様になっているかというと、これもだいぶ前に書きましたがSANで構成するわけです。

二つ目の構成を採ろうとすると、インターネットの環境以外にSANの環境も同じ様に張り巡らせないといけませんが、インターネット上で複数の入り口から同一のデータを相手にしようとすると、SANのインフラ整備も不可欠なのです。

そこまでの環境を整備してまで、クラウドをつくる意味ってなんでしょう。

現在、いろんなサイトがあります。
と言う事は、それぞれのサーバがあるわけです。
今までのIPv4に縛られていたIPアドレスがIPv6により爆発的に作られる様になります。
その膨大なIPアドレスでサーバ台数が爆発的に作れる様になり、どこからでも,どれだけアクセス集中しても閲覧出来る様になるって言ったらどうでしょう。

IPアドレスの縛りが実質無くなる事で、名前からIPアドレスをDNS検索した際に、アクセス出来るクローンサーバが何台でも出来るわけです。
逆にアクセス集中によりサーバが処理しきれなくなってきても、能動的に同一名称のサーバ台数を増減出来るようになったら負荷分散され、よりネットワーク的にもサーバ的にも軽く閲覧出来る様になるのです。

今はまだその準備期なので、サーバが売れているのです。
最近のプロバイダは、以前よりIPv6をサポート出来る所も増えてますし、知らず知らずの間に見えないところでクラウドの準備がされているわけです。

ハード側はそんな感じでじわじわと環境構築が出来ているのですが、如何繊その上に載るソフトが追いついて来ていないっていうのが現状です。

ソフト開発者からクラウドをみると、デファクトスタンダードなデータ表記方法(XMLとかASN.1とかHTMLXとか)が確立してしまうと、異なるワードプロセッサソフト同士であっても同じフォーマットデータとして流通出来る様になります。
以前にも書きましたが、この辺の思想はApple/IBMが過去に策定したOpenDocと同じなのです。
となると、使い勝手でワープロを選んでいく時代となるわけで、データの互換性でワープロを選ぶ時代は終焉していく事になります。

一社だけ独自フォーマットデータでソフトを作成した所でインターネット標準データ仕様でなければ、売れなくなっていくわけで。

データ閲覧でAdobeがPDF形式を早々と広めた様な事が、今現在求められているのです。
そこには大別して、クローズドソースなソフトとオープンソースとの対決があります。
しかし同じ文章が作成出来るのに、わざわざお金を出してユーザに使ってもらうに値するだけの魅力が今のワープロソフトとか表計算ソフトとかプレゼンテーションソフトがあるかどうかは、微妙です。

オープンソースに対しクローズドソースなソフト屋がシェアを確保するためには、相当な魅力のあるものをつくらないと太刀打ち出来ないと思います。

オープンソースな人達は、使い辛ければ自分でソースを修正して使い勝手を上げるという究極のカスタマイズをする方々がいらっしゃいますので、それらに対抗するものをつくるのは非常に過酷な作業だと思われます。

データ互換という意味では上記の様に標準フォーマットがまず有りきで事は進められます。
標準データ形式である事で、使用者にとってもう一つのメリットがあります。
それは、そのデータフォーマットを扱うソフトがどこにでも転がっているわけで、自分のPCを持ち歩かなくても良いわけです。
もっと言うと、データをオフラインで持たなくても良くなるって事です。
ネットワークに繋がってさえいれば全ての作業は事足りてしまうわけで、それこそソフト自体をPC内に持たないネットワークPCで十分事足ります。

昔はインフラ的にも旗を振って推進するメーカが無かったという事についても、全てハード面ではサーバ屋とネットワーク屋、ソフト面ではオープンソースのコミュニティが、どんどん前へ前へつき進む原動力として広まって行くと考えます。

いやはや、大変な時代です。

なんてこったい。。

閉じる コメント(4)

閉じる トラックバック(0)

マイクロソフトがすごい利益なんだって。

マイクロソフトの利益がすごいらしいです。

いやぁ、すばらしい。
本当に参りました。
降参です。

と褒めちぎっておいてと。。

でもね、当然じゃないですか、そりゃ売れますよ「Windows-7」。
まだまだ売れるんじゃないですかねぇ、当分「Windows-7」バブルは続くと思いますよ。

なんたって、「Windows-Vista」の後継OSですからね。
片や「Windows-2000」をメンテ切れにして、「Windows-Vista」を出したわけです。
「Windows-Vista」スペックなるものまでハードウェアに要求するという、わがままで鈍重な環境を提供し、おまけに「Windows-Vista」では既存のソフトの内、動かないものがあったりすると不評買いまくりという、役割を見事に演じきりました。

程なく(今までのリリースサイクルより早いサイクルで)、「軽く動きますよ」とセンセーショナルに出てきたのが「Windows-7」なわけで。。
更に「Windows-XP」互換モードなるものまで引っ提げて、「Windows-Vista」で動作しなかったソフトも動作可能な様にするという大変親切な環境を提供したのです。

いやぁ上手いなぁ、本当に感心します。
今までOSをアップグレードした事が無い顧客まで「Windows-7」にアップグレードさせるという戦略です。

重くてアプリが動かない環境をハードウェアにバンドルして市場に流し、軽くてアプリが動作する環境を「新製品」として売り出すという、ある種「詐欺?」とも思える様なマーケティングですね。

普通ソフト開発で性能が出ないとか互換性が無ければ「不具合」という判定をされて、設計して作り直しですよ。
それを堂々と「新製品」として売り出す事が許されるって、うらやましい限りです。
顧客を囲い込んで、強制的にアップグレードせざるを得なくするっていう。「新しいビジネスモデル」ですか?

「ビジネスモデル特許」として申請しているのかなぁ。
いやはやいろんな意味で恐れ入りました。




















ちょっと、おふざけ過ぎじゃ無いの?マイクロソフトさん。

なんてこったい。

閉じる コメント(8)

閉じる トラックバック(0)

MMUについて書いてみようかな。

前回CPU(MPU)についてザックリ書いたので、今回はMMUについてって事で。。

CPUが実際に処理をする所だとすると、MMUはメモリを管理するものです。
CPUとメモリの仲介人って感じですかね。

マルチタスクのOSを使っていると、タスクの中ではメモリ空間は連続的に見えます。
ですけどメモリ全体からすると、上記タスクで使用している実メモリ空間は不連続に割り当てられています。
ち・な・みにタスク側から見えるメモリ空間は仮想メモリ空間と言います。
MMUは仮想メモリを実メモリ空間にマッピングする役割を行っているのです。
何故こんなややこしいことをするかって言うと,タスクはOSが起動している最中に、実行して終了という行為を繰り返しております。
マルチタスクであるのなら、複数のプログラムが実行ー終了を繰り返すわけで。。

じゃあプログラムが実行するためには何が必要か、それはメモリです。
プログラムはプログラムファイルが実行されるわけではありません、プログラムファイルがプログラムローダによりメモリにロードされて実行されるわけです。
実行時にメモリが割り当てられて、終了時には割り当てられたメモリが解放されるという事を繰り返すわけです。
当然プログラムは大きかったり小さかったりと千差万別のサイズなわけです。
そうすると、実メモリ上虫食い状態(フラグメント)が発生するわけです。

メモリロードする時に、フラグメントが起きている実メモリの中で、空いているメモリをプログラムローダが探し出しながらローディングするなんて事を行っていると、ローディング時間が余計にかかってしまいます。
プログラムのローディングに時間がかかるっていう事は、実行したいプログラムが動き出すまでの時間が余計にかかってしまうって事になるわけです。

そこでMMUの登場です。
MMUは実メモリと仮想メモリの仲立ちをすると書きました。
という事は、実メモリ上どこが空いていてどこが使っているかを管理しているって事なんです。
実際に管理しているのはOSのメモリ管理部なのですが、空いている実メモリを仮想メモリとして連続した領域としてCPUに見せているのはMMUが行っているわけです。
すると虫食い状態の実メモリであってもプログラム(タスク)がメモリにローディングされる時には、必要メモリ分連続した領域が用意されている状態になります。
プログラムが終了する時は、そのプログラム(タスク)が使用していたメモリを全て未使用な状態にして、OSのメモリ管理部で空き状態の実メモリがプールされるわけです。

上記内容はアプリケーションの事を中心に書いているわけですけど、実はOS内部でも同様に仮想空間を使用しているのです。
例えばファイルのキャッシュとか、Read/Writeバッファとか、動的に必要なメモリはOS(カーネル)でも仮想空間に割り当てて使用しているのです。
キャッシュとかバッファが不要になればアプリケーションの終了時と同じ様に、使用されていたメモリが空き状態となり空きメモリとしてプールされていきます。

以上からOS内では殆どの処理を仮想メモリ上で実行しているって事になりますが、例外もあります。
それは、物理デバイスからIOをする際のデータ領域です。
物理デバイスは、現在殆どのものはDMAでデータのRead/Writeを行っており、CPUを使いません。
と言う事は、CPUと実メモリの仲立ちをしているMMUも経由しないって事です。
そこで、OS内部では実メモリ空間に対して直接必要な連続したメモリ空間を確保する仕組みがあり、物理デバイスに対し実メモリのアドレスを教えてあげる事で、物理デバイスがDMAをする際に教えられた実メモリのアドレスからデータを読み書き出来るわけです。
DMA完了時にOSに対して割り込みをかけてDMA処理が終了した旨を通知して処理を行っているわけです。

ちなみにOS内部のメモリ空間の事をカーネル仮想空間および実メモリ空間と呼んでいます。
アプリケーションからは仮想メモリしかアクセス出来ませんが、これは変に実メモリアドレスなんて区別しているとかえってプログラムが組みづらくなるので仕方ありませんけどね。

但し組み込み分野のOSでは、すべて実メモリベースで処理を記述してあげる必要がありますので、こちらは別世界と思わないと、汎用的なOS上でのプログラムと同じ様にプログラミングすると大変な目にあってしまいますのでご注意を。。

あっ、そう言えばメモリを確保する単位について書いていませんでしたね、単位はページと言います。
Intel-PCであれば1ページ=4KBです。
ですのでMMUもどんなに大量なメモリを積んでいても4KB毎に管理をしています。
64ビットCPUでは1ページ=8KBとか16KBとか大きなデータ量を1単位としています。

大きなメモリ空間で4KBは余りにも細かすぎますからね。

でもそんな64ビットコンピュータが普通に出回っているなんて、なんてこったい。

閉じる コメント(0)

閉じる トラックバック(0)

CPU(MPU)について少々。。

世の中バカ早いCPUであふれていますけどね。
でも適材適所ってあるんですよ。
いや本当に。。。

ファイルサーバに1GHz以上のCPUを使うなんてもったいないです。
WEBサーバにしても、よっぽどサーバアプリの作りが悪くなければ、1GHzもいらないし。
ファイアウォールにしてもそう。
DoSが怖いって?そんなの、ちゃんと流量制限かければ無問題です。
きちっと設計してちゃんと設定していれば済む話なだけなんですよね。

いろいろなサーバ君達を面倒みてますけど、殆ど寝てます。
無駄にZEON(だったけ?)とか使ってますけどねぇ。

DBサーバにしたって同じですよ。
メモリは多いに越したことは無いですけど、実はCPUの速度ってそんなに気にならない。
何故なら、HDDの速度に引きずられるからなんですけどね。

むしろ、ネットワークソケットを如何に使わないかを考えた方が良いです。
ネットワークのプロトコルスタック自身がCPU食いなので、って言っても1GHzはいらないなぁ。

というわけで、1GHz以下で低消費電力付きのCPU希望って言っても最近のFreeBSD、いつの間にかSpeedStepに完全対応しているのを最近知りまして、ノートもサーバもセッティングしました。
PenIIIクラスだと、66MHzまでクロックを下げてくれます。
PenIVクラスだと、315MHzまでしか下げてくれませんけどね。(何か下げられない理由があるに違いないのですけどね)
CPUクロックを自動制御してくれるので、省エネです。
使うときは、勝手にクロック上げてくれるしね。(LinuxもWindowsも未サポートって話を聞きますが本当?)

まぁいいや、所でCPU自体の話にもどりますけど、私高校生の頃にTTLロジックで真剣にCPU作ろうと思っておりました。
フェッチ・デコード・メモリデータ取得・レジスタ操作・メモリデータ書戻し、なんて事をしようってね。
自分で書いた設計図に従って複数枚の基盤に半田付けしていた所、論理的にループに入り込むバグを見つけましてねぇ。
全部ぽいって捨てちゃいました。
あれから30年位経っているんですねぇ、懐かしいなぁ。
ありゃりゃまた脱線しそうだ。

いけませんねぇ、昔話しばかりで。。(「これだからおじさんは」って言わないでね)

さてさて一般的に流通しているCPU/MPUですけど、電源が投入されると特定のメモリアドレスを見に行きます。
あるものは、そこのアドレスから実行するモノもあったり、特定アドレスに記載されたアドレスから実行を開始します。
いわゆるリセット状態って奴ですね。
実際は通電してから、内部的に数ミリ秒時間をおいて上記リセットがされるのですけどね。
その特定アドレスとかコンピュータが実行を開始するアドレス以降にはプログラム(機械語って言うヤツ)が無ければいけません。
というわけで、起動開始アドレスには電気を切っても消えないROMってメモリが割り付けられています。
中にはバンク切り替えなんて小洒落た事をしているものもありますが、基本的にROMです。
そこに起動時のプログラムが記述されているわけで。。
PCだったらBIOSなんてものが鎮座していらっしゃるわけです。
他のコンピュータもPCのBIOS相当なものが書かれているROMが入っております。
BIOSが起動してからOSが立ち上がるまでは、前回ざっくりと書いた通りです。

またCPUのアーキテクチャによっては、数値をメモリに格納する際の並びでビッグエンディアンとかリトルエンディアンなんてものもありますので、何か有った際にメモリダンプを見るときは気をつけましょう。
世間に溢れているIntel系はリトルエンディアンですよぉ。(人に厳しくCPUに優しい)
エンディアンについてはWikipediaにも載ってますからねぇ。

あとは、CPU内部で持っているレジスタの数っていうのが、速度に影響します。
Intelのx86ベースだとレジスタ数が少なくて、その為にせっかくのバカ早いCPUの速度がメモリアクセスに食われてしまい、CPU内部で持っているキャッシュに載っていないとペナルティが大きいのです。
RISC系のCPUではレジスタをいっぱい持っている分、メモリにデータを書き込まずに出来るだけレジスタにデータを置く様に、コンパイラがよしなに機械語を吐き出してくれるわけです。
Intel系でもIA64とかEM64Tなんかは流石にレジスタをいっぱい持ってますねぇ。
まぁx86って16ビットの頃からの拡張なんでしょうが無いですがね。

後忘れちゃいけないのが、割り込みの数ですねぇ。
デバイスからの割り込みとかCPU自身でも割り込みを発行して、実行中の処理を中断し割り込み処理を行なって終了したら、元の処理に戻るっていう事をやってます。
各種割り込みに対して、どこのメモリ上のプログラムへ飛んでいくかは、割り込みベクタと呼ばれるCPUにより割り付けられたアドレス以降に実行したいプログラムのアドレスを予め該当アドレスのメモリに書き込んでおかないといけません。
想定外の割り込みが発生したら、対象のベクタアドレスの領域に未設定だと暴走してしまいますから。。

最後にIO制御ですけど、これもCPUによりIOマップとメモリマップ形式に別れます。
IO制御チップに対して、IO系の命令を発行するタイプがIOマップと呼ばれるタイプです。
それに対してメモリマップっていうのは、メモリ上のアドレスにIOチップが割り付けられていてメモリに書き込むとIO処理を行ってくれるタイプです。
どちらが良いかは好みですけどね。
IOマップ形式なら、IO制御の為にメモリアドレスを与える事はありませんので、「IOするんだ!」っていう割り切りっていうか、「やるぞ!」っていうか。。
メモリマップであれば、該当アドレスの領域に書き込んだり詠み込んだりするだけで済むので楽って言えば楽です。
CPUはやっぱり好みですねぇ。

非常におおざっぱですけど、CPU(MPU)の働きっていうか中身について書きました。
これ分かって無いと、ドライバとか書けないんだよなぁ。

ああ、なんてこったい。

追伸
MMU何てモノが実は重要なんですが、何時か書きます。(物書きすると頭が疲れるんですよ)

閉じる コメント(4)

閉じる トラックバック(0)

全8ページ

[1] [2] [3] [4] [5] [6] [7] [8]

[ 次のページ ]


.
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
  今日 全体
訪問者 1 13798
ブログリンク 0 7
コメント 0 289
トラックバック 0 7

かわじゅん
人気度

ヘルプ

Yahoo Image

開設日: 2005/6/12(日)


プライバシーポリシー -  利用規約 -  ガイドライン -  順守事項 -  ヘルプ・お問い合わせ

Copyright (C) 2012 Yahoo Japan Corporation. All Rights Reserved.