DVDピックアップの解析

PDIC closeup. Die marking is “NEC C9134”.

本記事では、レーザー走査型顕微鏡を作るためにDVDピックアップのリバースエンジニアリングをしたので、その結果を紹介します。
次回「レーザー走査型顕微鏡を作るで、顕微鏡の作り方を紹介します。

はじめに

光学ディスクのピックアップは、大量生産によって非常に安価に入手できるわりに、とんでもない性能を持っています。

  • レーザー光を直径1μm程度のスポットに集光させる
    • 2層DVDの層を分離できる程度の非常に薄い被写体深度と高精度なピント合わせ
    • 「非点収差法」を使って、物体との距離を精密に測定できる
  • 高速かつ高精度なスポット位置決め
    • ディスクに700nm間隔で並ぶ幅300nmのトラックに正確に追従
    • 10000rpm・線速度60m/s(216km/h)で回転するディスクに追従できる程度の速さ
  • 非常に強いレーザー出力
    • パルス駆動で300mW、連続発光(CW)で100mW程度 (書き込み対応ドライブの場合)
    • レーザー加工機と比べたら小さいが、こっちは直径1μmに集光できるぞ
  • 高周波性能
    • レーザー光を100MHzで点滅させて、反射光を検出できる
続きを読む “DVDピックアップの解析”

5GNR バンドn41とn90の違い

n41とn90って同じじゃん

5G NR

  • n41 2496 - 2690MHz TDD
  • n90 2496 - 2690MHz TDD

中川「全部同じじゃないですか!?」
本田「ちがいますよーっ」
両津「これだからしろうとはダメだ!もっとよく見ろ!」

結論

  • LTEとのDSSでは、NRの上りキャリアの周波数を7.5kHzシフト(UL shift)しなければならない
  • n41は UL shift が必須ではない。 n90は UL shift が必須
    • n41は UL shift に対応していなくても使用できる
    • n90対応とするためにはUL shift をサポートしなければならない
    • 今までのNR TDDバンドはDSS運用を想定しておらず、UL shift に対応する必要はなかった
  • n41ではLTEとのDSSができないため、UL shiftのサポートを必須とした別のバンド n90 を作った

疑問

Q: 「でもn41でDSSやってる事例あるみたいよ?」
A: 俺は知らん!

素人が3GPPの文書を斜め読みしただけなので、詳しいことは知りません。
DSS運用中は UL shift 非対応の端末はn41への接続を拒否するとか、そういう運用になってるのかもしれないですね。それか、規格の修正で何らかの対応がされたか。
問題となっているのがUEからの上りキャリアなので、CAでアップリンクは別のバンドに逃がすなどの対応してるのかもしれないですね。

さっぱりわからないので、詳しい人が説明してくれると嬉しいです。

続きを読む “5GNR バンドn41とn90の違い”

Windows 10の記憶域プール

Windows Serverの記憶域プールには、「記憶域階層(Tiered Storage)」という素晴らしい機能があります。
Tiered Storageは、HDDとSSDをRAID0みたいに組み合わせて1個のボリュームとして扱います。ファイルの利用頻度をもとに、よく使うデータは高速なSSD・あまり使わないデータは遅くて大容量なHDD、といったようにOSが自動でデータを配置してくれます。
ZFSのL2ARC、Linuxのdm-cache、AMD StoreMI、Intel RSTみたいなやつです。
StoreMI/IRSTと異なり、CPUメーカー変更したときでも問題なく動きます。 Windows入ってるPCならIntelだろうがAMDだろうが問題なく動作します。 OSの機能なのでソフトウェア入れる必要もないです。
コイツをWindows 10で使う方法について。 (具体的な手順は面倒なので書きません。自分で調べて)

結論

  • Windows 10ではPowerShellでコマンドを叩けば記憶域階層(Tiered Storage)を作れる
  • 記憶域プールのミラー/パリティはReFSと組み合わせて使うとデータが壊れにくくなる
  • Tiered StorageはReFSと組み合わせて使うと速くなる
  • シンプルボリュームはReFS使うメリットほぼないのでNTFSでいい
  • Windows 10ではReFSフォーマットができない(10 Pro for Workstationsなら可能)
  • フォーマット済のReFSボリュームの読み書きは可能
  • 重複排除されたボリュームはWindows Server専用となる。Windows 10で読み書きすることはできない
続きを読む “Windows 10の記憶域プール”

Xilinx Vivado: XPM FIFOマクロのPROG_EMPTYが使えない

症状

xpm_fifo_async,xpm_fifo_syncの、prog_emptyピンの出力が0に固定される。PROG_EMPTY _THRESHで設定した値を超えても1にならない。

解決法

USE_ADV_FEATURES"0000"になっていた。
USE_ADV_FEATURES"0707"に変更する。

> USE_ADV_FEATURES  文字列型
> デフォルト値 "0707"
> data_valid、almost_empty、rd_data_count、prog_empty、underflow、wr_ack、almost_full、wr_data_count、prog_full、overflow をイネーブルにします。

"0000"だと、これらの機能が無効化される。"0707"だと、すべての機能が有効化される。
"0707"ですべて有効がデフォルトになってるはずなのに"0000"がセットされてた。なんで?