シフトレジスタ

シフトレジスタ:デジタルデータの移動と変換



シフトレジスタは、複数のフリップフロップと呼ばれる記憶素子を直列に接続することで構成されるデジタル回路です。この回路では、データが順番に移動(シフト)していきます。アナログシフトレジスタもありますが、一般的に「シフトレジスタ」といえばデジタルシフトレジスタを指します。

シフトレジスタの種類



シフトレジスタは、入力と出力のデータ形式(シリアル/パラレル)によって4種類に分類されます。

直列入力直列出力形(SISO): データはシリアルに入力され、シリアルに出力されます。最もシンプルな形式で、データは1ビットずつ順次シフトされます。
直列入力並列出力形(SIPO): シリアルに入力されたデータは、並列に出力されます。シリアルデータとパラレルデータの変換に用いられます。
並列入力直列出力形(PISO): 並列に入力されたデータは、シリアルに出力されます。SIPOと同様に、データ形式の変換に役立ちます。
並列入力並列出力形(PIPO): データは並列に入力され、並列に出力されます。クロック信号によってデータがシフトされます。

さらに、シフトの方向を両方向に切り替えられる双方向シフトレジスタも存在します。SISOシフトレジスタの出力を入力に接続することで環状シフトレジスタを構成でき、データの循環処理が可能です。複数のシフトレジスタを組み合わせることで、多次元シフトレジスタを作り、より複雑な演算を実行することもできます。

直列入力直列出力形 (SISO) シフトレジスタの詳細



SISOシフトレジスタは、最も基本的なシフトレジスタです。データは1ビットずつ入力され、クロック信号のたびに1段ずつシフトします。新しいデータが入力されると、最下位ビットのデータが出力され、同時に失われます。

例えば、4ビットのSISOシフトレジスタに、1, 1, 0, 1, 0, 0, 0, 0 の順にデータを入力した場合、出力は 1, 1, 0, 1, 0, 0, 0, 0 となります。入力されたビット列は順番に出力され、出力されたデータは消滅します。

この出力されたデータを保持する必要がある場合は、シフトレジスタの出力を再び入力に接続し、読み書き制御信号を追加する必要があります。読み出しモードでは環状シフトレジスタとして動作し、データの保持と再利用が可能になります。

その他のシフトレジスタと用途



SIPO、PISO、PIPOシフトレジスタは、それぞれシリアルとパラレルデータの変換、データの保持とシフトなどに用いられます。

シフトレジスタの主な用途は次のとおりです。

シリアル/パラレル変換: シリアル通信とパラレル処理のインターフェースとして重要な役割を果たします。多くのマイクロコントローラーや周辺機器は、シリアル通信でデータを送受信しますが、内部処理はパラレルで行われるため、シフトレジスタが不可欠です。
遅延回路: データを一定時間遅延させることができます。
スタックの実現: 双方向シフトレジスタを複数並列接続することで、ハードウェアスタックを構築できます。
パルス幅拡大: パルス幅を広げるために使用できます。単安定マルチバイブレータと比較して、タイミングが部品特性に依存しないという利点があります。ただし、クロック信号が必要であり、タイミング精度はクロック周期に依存します。
初期コンピュータにおけるデータ処理: 初期のコンピュータでは、シフトレジスタがデータ処理の中核として使用されていました。例えば、2つのシフトレジスタの加算は、直列加算器を使用して最小限のハードウェアで実現できます。
水銀遅延線の代替: 1970年代初期には、数千ビットの大規模なSISOシフトレジスタが、水銀遅延線の代替として使用されていました。

シフトレジスタの歴史



シフトレジスタは、第二次世界大戦中に暗号解読機であるコロッサスで初めて使用されたことが知られています。真空管サイラトロンを用いた5段のシフトレジスタが搭載されていました。

関連事項



線形帰還シフトレジスタ (LFSR)
カウンタ (電子回路)
シリアル・ペリフェラル・インタフェース (SPI)
ユニバーサル・シリアル・バス (USB)
* 電荷結合素子 (CCD)

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。