マルチスレッショルドCMOS(MTCMOS )は、遅延または電力を最適化するために複数のしきい値電圧(Vth )を持つトランジスタを備えたCMOSチップ技術のバリエーションです。MOSFETのVthは、トランジスタの絶縁層(酸化膜)と基板(ボディ)の界面に反転層が形成されるゲート電圧です。Vthが低いデバイスはスイッチングが速いため、クロック周期を最小限に抑えるために重要な遅延パスで役立ちます。ただし、Vthが低いデバイスは静的リーク電力が大幅に高くなります。Vthが高いデバイスは、遅延ペナルティを負うことなく静的リーク電力を低減するために、重要でないパスで使用されます。一般的なVthが高いデバイスは、 Vthが低いデバイスと比較して静的リークを10分の1に低減します。[ 1 ]
複数のしきい値電圧を持つデバイスを作成する方法の一つは、トランジスタのベース端子またはバルク端子に異なるバイアス電圧(Vb)を印加することです。その他の方法としては、ゲート酸化膜の厚さ、ゲート酸化膜の誘電率(材料の種類)、またはゲート酸化膜下のチャネル領域のドーパント濃度を調整する方法があります。
マルチスレッショルドCMOSを製造する一般的な方法は、フォトリソグラフィとイオン注入の工程を追加するだけです。[ 2 ]特定の製造プロセスでは、ゲート酸化膜の下のチャネル領域のドーパント原子の濃度を変更することによってVthが調整されます。通常、濃度はイオン注入法によって調整されます。たとえば、フォトリソグラフィ法を適用して、p-MOSFETを除くすべてのデバイスをフォトレジストで覆います。次に、イオン注入が完了し、選択されたドーパントタイプのイオンがフォトレジストが存在しない領域のゲート酸化膜に浸透します。次に、フォトレジストが除去されます。フォトリソグラフィ法を再び適用して、n-MOSFETを除くすべてのデバイスを覆います。次に、別のドーパントタイプを使用して、イオンがゲート酸化膜に浸透する別の注入が完了します。フォトレジストが除去されます。その後の製造プロセスのどこかの時点で、注入されたイオンは高温でのアニーリングによって活性化されます。
原理的には、しきい値電圧トランジスタはいくつでも製造可能です。しきい値電圧が2つあるCMOSの場合、p-MOSFETとn-MOSFETそれぞれにフォトマスクとイオン注入の工程が1つずつ追加で必要となります。通常のVth、低Vth、高VthのCMOSを製造するには、従来の単一VthのCMOSに比べて4つの追加工程が必要となります。
消費電力削減のためのMTCMOSの最も一般的な実装では、スリープトランジスタが利用されます。ロジック回路には仮想電源レールから電力が供給されます。高速スイッチングが重要なロジック回路では、低Vthデバイスが使用されます。電源レールと仮想電源レールを接続する高Vthデバイスは、アクティブモードではオン、スリープモードではオフになります。高Vthデバイスは、静的リーク電力を低減するためのスリープトランジスタとして使用されます。
ロジックゲートへの電源供給をオン/オフするパワースイッチの設計は、 MTCMOSなどの低電圧・高速回路技術において不可欠です。ロジック回路の速度、面積、消費電力は、パワースイッチの特性によって左右されます。
「粗粒度」アプローチでは、高Vthスリープトランジスタがロジックブロック全体への電力供給を制御します。[ 3 ]アクティブモード中はスリープ信号が非アクティブ化され、トランジスタがオンになり、低Vthロジックに仮想電力(グランド)が供給されます。スリープモード中はスリープ信号がアクティブ化され、トランジスタがオフになり、低Vthロジックから電力(グランド)が遮断されます。このアプローチの欠点は次のとおりです。
「きめ細かい」アプローチでは、各ゲート内に高Vthスリープトランジスタが組み込まれています。プルアップおよびプルダウンネットワークには低Vthトランジスタが使用され、2つのネットワーク間のリーク電流を制御するために高Vthトランジスタが使用されます。このアプローチにより、ロジックブロックの分割やスリープトランジスタのサイズに関する問題が解消されます。ただし、各ブールゲートにトランジスタが追加されることと、スリープ信号分配ツリーが作成されること の両方によって、かなりの面積オーバーヘッドが発生します。
中間的なアプローチとしては、より複雑な機能を持つしきい値ゲートに高Vthスリープトランジスタを組み込む方法があります。ブールゲートに比べて任意の機能を実装するために必要なしきい値ゲートの数が少ないため、各ゲートに MTCMOS を組み込むことで面積オーバーヘッドを削減できます。より複雑な機能を持つしきい値ゲートの例としては、ヌル規約ロジック(NCL) [ 4 ]やスリープ規約ロジック(SCL) [ 3 ] [ 5 ]が挙げられます。グリッチやその他の問題を引き起こさずに MTCMOS を実装するには、ある程度の工夫が必要です。