2009-01-01から1ヶ月間の記事一覧

PSPのCPU

PSP - LinuxMIPS Some basic specs of the PSP: * two MIPS32R2 cores with no TLB * 128bit Bus * 1 - 333MHz @ 1.2V (currently capped at 222MHz (The 222MHZ cap is software based and lies in the executed files, it is not firmware based so is eas…

葛西臨海公園へ散歩

着くのが3時過ぎになってしまったのだが、そのお陰で夕焼けが見れた。今日は天気が良くて気持ちが良かった。

思い出横丁を撮ってみた。

α200の練習という事で、新宿をふらふらしながら撮影してみた。 で、何故かここに行き着いてしまった。 面白そうなんだけど、ラーメン一杯食ったっきりで一度もここで飲んだ事とかないな。 まぁ敢えてここに来る理由がないんだけれど。ちなみにフォトレタッチ…

FreeBSD-current/mipsのSMP実装#仮想メモリ編の補足

pmapのSMP対応の所をもう少し詳しく見てみた。 static void pmap_invalidate_all(pmap_t pmap) { #ifdef SMP smp_rendezvous(0, pmap_invalidate_all_action, 0, (void *)pmap); } static void pmap_invalidate_all_action(void *arg) { pmap_t pmap = (pmap…

SONY α200+TAMRON A16購入♪

ここ4年ほどの間ミノルタのDiMAGE A1を使い続けてきたのだが、そろそろ限界を感じてきたので思い切ってデジタル一眼レフカメラを購入してみた。 #一応今でもきちんと写真は撮れるのだが感度がイマイチなのと、暗い時の画質が悪い。バルブ撮影で花火とか撮…

DEC Alpha

http://ja.wikipedia.org/wiki/DEC_Alpha http://download.majix.org/dec/alpha_arch_ref.pdf全然見たことも触ったことも無いのだが、ちょっと調べてみると結構おもしろそうな気がしてきた。

NetBSD-currentにおけるcurcpu() / curlwp()の仕組み

NetBSDではスレッドやCPUの管理の為にcurcpu()/curlwp()というマクロを定義しており、これによって現在のCPUに対するstruct cpu_infoを取得したり現在のスレッドに対するstruct lwpを取得したり出来るようになっている。 これがどのように実装されており、ど…

Spinlockと便器

OS

2log.net やばいwww 超解りやすいwwww

「チェ 28歳の革命」を観て思う事

通勤の途中の駅に貼ってあるポスターを見て、ああ、これはみなきゃいかんなと思っていた所、丁度友人と一日遊ぶ機会が有った為友人も巻き込んで観て来た。あくまでエンターテイメントではなくドキュメンタリーとして事実を忠実に描こうと試みているからか、…

日立グローバルストレージテクノロジーズ(HGST)は日本で”のみ”RMA保証を行っていない

HDD RMA - wiki@nothing 日立グローバルストレージテクノロジーズ(HGST)のRMA保証 † 残念ながら"日本だけ"RMA保証がありません。販売店の保証のみとなります。ナ ナンダッテー!! Ω ΩΩど、、どうしろと・・・? もう既に買っちゃって取り付けちゃって壊れちゃったの…

pmap SMP化でのIPI使用について

FreeBSD-current/mipsではpmap.cの特定処理についてsmp_rendezvous()を使って全CPUで整合が取れるような書き方がされていた。 が、NetBSD-currentをみる限り、powerpcにもi386にもそういう実装はされていない。 これはハードウェアアーキテクチャによる違い…

FreeBSD-current/mipsのSMP実装#仮想メモリ編

static void pmap_invalidate_all(pmap_t pmap) { #ifdef SMP smp_rendezvous(0, pmap_invalidate_all_action, 0, (void *)pmap); } static void pmap_invalidate_all_action(void *arg) { pmap_t pmap = (pmap_t)arg; #endif if (pmap->pm_active & PCPU_GE…

FreeBSD-current/mipsのSMP実装#初期化編

AsiaBSDConのニュース記事などを読んでいて気がついたが、どうもFreeBSD-current/mipsにはSMP対応コードが既に入っているらしい。 が、MP対応なチップ向けのコードが入っておらず、しかもgenericなコードの中にしばしば#if defined(TARGET_OCTEON)という文字…

NetBSD-current/Linuxのpowerpc実装 - キャッシュまわり

NetBSDではcacheの同期にipiを使っていないのだろうか?と思い、powerpcのソースコードを眺めてみたが、それらしい所は見当たらなかった。以下はpowerpc/ibm4xx/cpu.cのキャッシュ操作部分と思われるコードだが、特にipiは使っていない: /* * These small r…

Linux 2.6/mipsのSMP実装について#2

ロック機構のSMP対応がどうなっているかについて確認。 /* * atomic_add - add integer to atomic variable * @i: integer value to add * @v: pointer of type atomic_t * * Atomically adds @i to @v. */ static __inline__ void atomic_add(int i, atomic…

Linux 2.6/mipsのSMP実装について

linuxは全然知らんので、カーネルの起動シーケンスから確認。まず、kernel_entryから起動する。 j start_kernel END(kernel_entry) kernel_entryからstart_kernel()が呼ばれる。 asmlinkage void __init start_kernel(void) { char * command_line; extern s…

NetBSD-5.0BETA/macppcのSMP実装ーCPU初期化以外の部分について

読んでみたらi386より簡単そうだったので、こちらをもう少し読み進める事にする。SMP対応のコードってどんな所に散らばってるんだろうか?とMULTIPROCESSORでgrepしてみると、まぁ大体こんな感じである: bash-3.2$ grep MULTIPROCESSOR -r arch/powerpc arc…

NetBSD-5.0BETA/macppcのSMP実装を駆け足で#2

駆け足でみていったらやっぱり抜けが有ったので、引き続きmacppcについて眺めてみようと思う。 /* * Initialize cpu_info[0] */ INIT_CPUINFO(4,1,9,0) lis 3,__start@ha addi 3,3,__start@l mr 5,6 /* args string */ bl _C_LABEL(initppc) locore.Sのエン…

NetBSD-5.0BETA/macppcのSMP実装を駆け足で

i386のSMP実装がどうなっているのかではなく、一般的なSMP実装がどうなっているのかについて調べたいので、macppcも眺めてみる。 void cpuattach(parent, self, aux) struct device *parent, *self; void *aux; { struct cpu_info *ci; struct confargs *ca …

NetBSD-5.0BETA/i386のSMP実装#4

どこから2コア目以降が起動するのか分かった(と思う)。 NetBSD-5.0BETA/i386のSMP実装#1 - かーねる・う゛いえむにっきでちょっと触れたmpbios_scan()の中で、lapic_boot_init()を呼んでいる箇所がある: /* * looks like we've got a MP system. start se…

NetBSD-5.0BETA/i386のSMP実装#3

再びconfigure()を追ってみる。 cpu_configure()が行われた後、SMPに関係ありそうな部分を探していくと、以下のようなコードが見つかった: /* Boot the secondary processors. */ for (CPU_INFO_FOREACH(cii, ci)) { uvm_cpu_attach(ci); } mp_online = tru…