Want to keep learning?

This content is taken from the Keio University's online course, Understanding Quantum Computers. Join the course to learn more.

Quantum Computer Architecture

The architecture of a computer is the arrangement of its parts: how many subsystems does it have, what does each of the subsystems do, how do the various parts talk to each other?

This is similar to the architecture of a building: what type of rooms does it have, how big is each room, where are they located, how are they connected together? To a certain extent, the architecture of a computer depends on the technology you’re going to use to build it, just as in with a building, the architecture varies depending on whether it is brick, wood, concrete or steel. And just like the architecture of a building, the architecture of a computer is judged by how useful it is for your purpose.

A quantum computer has both classical and quantum parts. The program is (at least for the moment) entirely classical, stored in a classical controller. A quantum algorithm uses both classical and quantum data.

One way to look at the overall system is to treat the quantum part as a coprocessor to a classical system. Like the GPU (graphics processing unit) in your desktop or laptop computer, a quantum computer is used to perform specific tasks in the context of a larger program.

QCarchitecture Fig.1. The basic model of quantum computer architecture

Memory

Earlier this week, we saw that a quantum computer’s memory is called the quantum register. It holds our quantum data for the algorithm. For most types of quantum hardware, this register sits still, and the quantum operations are executed on the quantum data where it sits. Some types of quantum computers move individual atoms around, but not far, so we can still think in terms of a register being in a specific place; the important exception to this is computers that use photons for qubits, since the photons naturally fly at the speed of light.

Of course, all interesting quantum algorithms require more than one variable. The quantum register can be made to hold several data values by subdividing it into several registers or sub-registers.

Classical computers generally have several types of memory, such as registers for holding small amounts of data that is being actively used, and main memory (RAM) for larger amounts of data being kept around for later use. Most proposed quantum computer architectures do not make a distinction between the register(s) and a more passive memory equivalent to a classical computer’s RAM.

The Program

Although we talk in terms of “quantum gates”, like classical logic gates like AND and OR, it is better to think of quantum gates as instructions in a classical computer.

The classical controller holds the program, and instructs the devices controlling each qubit what to do at every step. Depending on the type of hardware, the individual devices may adjust a voltage, generate a burst of microwave radiation, or aim a laser. These very low-level details will be hidden by the system so that programmers can develop applications using the CNOT, Hadamard and other gates we discussed previously.

Generally, the sequence of gates is nearly fixed; sometimes in programs we have to apply a gate based on the outcome of some measurement. This happens when we are executing error correction, and also because some gates effectively execute different operations, depending on the result of a measurement.

Input/Output

You may recall that we said that quantum computers are not good at problems involving big data, in part because input/output of data is difficult. The same controllers that execute gates execute measurement operations for us; depending on the technology, sometimes those operations may be either fast or slow compared to gate operations. Input can involve initializing a qubit (which is slow in many technologies) then applying a gate to create the proper value.

Performance

Even with the advantages in complexity that we have emphasized, the performance of the quantum computer still matters: the “clock” speed (how fast we can execute each operation) and how efficient it is to move quantum data around inside the quantum computer combine with the structure of the quantum algorithm to determine how quickly we can solve an individual problem.

It is common to read in popular media articles, and even in the technical literature, that quantum computers will be amazingly fast. For example, one recent article said that a problem that would take three years on a classical computer would take one second on a quantum computer. There are specific cases where that is likely to be true, but it is not the case that all problems will be solvable a hundred million times faster on a quantum computer!

We will talk in detail about this when we see how to put Shor’s algorithm together.




量子コンピュータアーキテクチャ

コンピュータのアーキテクチャは個々のパーツ構成からなっています。構成要素は幾つあり、其々がどのような役割を持ち、どのような方法で情報の共有を行なうか、といった設計です。

この考え方は建物のアーキテクチャに類似しています。 部屋の種類、部屋の大きさ、部屋の場所、そして其々の部屋がどのように繋がっているか等? コンピューターのアーキテクチャーは、建物と同じように、ある程度は使用する技術に左右されます。 建物のアーキテクチャーは、レンガ、木材、コンクリートまたはスチールのどれを基礎に使うかによって設計方法に違いが出てきます。 そして、建物同様、コンピュータのアーキテクチャの良し悪しは、使い手にとってどのくらい役立つものになっているのか、という視点で判断されます。

量子コンピュータは、古典的な部分と量子的な部分の両方の側面を持ってますが、量子コンピュータで現時点で使われいるプログラムは完全に古典的であり、古典的なコントローラに記録されています。 そして、量子アルゴリズムは、古典データと量子データの両方を使用します。

量子コンピュータのシステムの全体像の捉え方として、量子的な部分を古典的システムの補助プロセッサとして扱う方法があります。 デスクトップコンピュータやラップトップコンピュータのGPU(graphics processing unit)と似たような役割で、この場合、量子コンピュータは、大きなプログラム全体の中の、ある特定のタスクを実行するために使用されます。

QCarchitecture Fig.1. The basic model of quantum computer architecture

メモリ

今週の初めに、量子コンピュータのメモリは量子レジスタと呼ばれることを学びました。 このレジスタは、アルゴリズム実行に必要な量子データを格納する役割を持っています。 多くの種類の量子ハードウェアでは、これらのレジスタは物理的に静的であり、演算はその量子ビットに直接実行されます。 一部の種類の量子コンピュータは、個々の原子を動すことがありますが、実際に動かす距離は微量なため、レジスタは特定の場所にあり、静的であると考えることができます。 対して、光子を量子ビットとして使用するコンピュータは、量子ビットが光の速度で動き続けるため、例外に当てはまります。

もちろん、注目を集める多くの量子アルゴリズムは複数の変数を必要としていますので、量子レジスタは、それに対応するため、レジスタをいくつかのサブレジスタに細分することによって、複数のデータ値を保持することができるようにしている例もあります。

従来型のなコンピュータは、一般にいくつかの種類のメモリを有しています。例えば、非常に頻繁に使用し、少量のデータを保持するためのレジスタと、それよりは少し余裕をもって使用するための大量のデータを保持するための主メモリ(RAM)といった区別があります。 現在提案されている多くの量子コンピュータアーキテクチャでは、量子レジスタと、その他の受動的なメモリ(従来のコンピュータでのRAMにあたる記憶装置)を区別していません。

プログラム

「量子ゲート」をANDやORのような古典的な論理ゲートと同格なゲート群として説明してきましたが、量子ゲートは、むしろ従来型コンピュータにおける命令(インストラクション)のようなもととして捉える方が実態に近いです。

古典的なコントローラーはプログラムを保持し、各ステップで何をすべきかを各量子ビットを制御するデバイスに指示を出します。 個々のデバイスは、ハードウェアの種類に応じて、電圧を調整したり、マイクロ波放射のバーストを生成したり、レーザを射出したりと、命令を遂行するための適切な処理を施します。 これらの物理的な仕組みの詳細はシステムによって隠されているので、プログラマは、CNOT、アダマールなど、以前に議論した様々なゲートを使用してアプリケーションを開発することができます。

通常、一連のゲートの処理順序はほとんど決まっています。実際、プログラム中で、測定結果に基づいて決められたゲート操作を適用する必要があることもあります。 例えば、誤り訂正を実行する場合や、測定結果に応じて幾つかのゲートが異なる操作を効果的に実行したい時に見受けられます。

入力/出力

量子コンピュータにとってデータの入出力は難しいため、大きなデータに関わる問題にうまく対応できないこと学んだことを思い出してください。 ゲートを実行するのと同じコントローラが、測定操作を実行します。 利用する技術によって、測定よりゲート操作が早かったり、逆に測定のほうがゲート操作より早く処理できたりと、状況は様々です。入力には量子ビットの初期化が伴いますが、こしらは多くの技術で時間のかかる処理です。そして、適切な値を作るために、ゲート処理を行います。

性能

量子コンピュータは、今までに強調してきたように、より複雑なタスクを解決できる可能性があるという利点はありますが、それでも、性能も、もちろん重要な側面です。性能とは、例えば、各命令の処理速度を決定付ける「クロック」速度であったり、量子コンピュータ内でどのくらい効率よく量子データ移動できるか、またそれと深く関連して、実際に、個々の問題をどれくらい速く解決できるかを決定付ける量子アルゴリズムの性能などを示します。

一般的なメディアの記事や技術文献では、量子コンピュータが今のコンピュータよりも驚くほど速く計算ができると述べられている事がしばしばあります。 たとえば、ある最近の記事では、古典的なコンピュータでは計算に3年間かかってしまう問題が、量子コンピュータでは1秒程で解を得られるとも記述されてありました。 それが真実であるうる特定の問題もありますが、量子コンピュータですべての問題が1億倍も速く解決されるわけではありません!

これについては、第3週のShorのアルゴリズムのセクションで詳しく説明していきます。

Share this article:

This article is from the free online course:

Understanding Quantum Computers

Keio University