プリンキピア

第5章アルゴリズムのハードウェアによる実現:コンピューターシステム設計

Summaryまとめ

5.1 Computer Systems Organization5.1 コンピューターシステムの構成

• The main components of a computer system include the processor, the main memory, the disk, and I/O devices.
• コンピューターシステムの主要な構成要素には、プロセッサ、主記憶、ディスク、入出力機器がある。
• The components interact to execute computer programs efficiently.
• 構成要素は、コンピュータープログラムを効率よく実行するために相互作用する。
• Applications are written in high-level languages that use a program to translate the language into the machine-level programs that computers understand.
英語のヒント
• アプリケーションは高水準言語で書かれ、プログラムを使って、コンピューターが理解する機械レベルのプログラムへ翻訳する。
• This computer system organization is mostly the same in your tablet or smartphone as it is in the huge systems running services like Facebook or Google. They just differ as it comes to how powerful each piece is, how many CPUs are there, the size of the memory and disk, and so on.
英語のヒント
• このコンピューターシステムの構成は、タブレットやスマートフォンでも、FacebookやGoogleのようなサービスを動かす巨大なシステムでも、ほぼ同じである。違うのは、各部分の性能、CPUの数、メモリやディスクの大きさなどである。

5.2 Computer Levels of Abstraction5.2 コンピューターの抽象化レベル

• The levels from problem definition to assembly language are related to the computer science field. People studying computer science explore how to solve a problem using an algorithm, how to translate this algorithm into a programming language, then how to translate this programming language into a language that computers can understand.
英語のヒント
• 問題の定義からアセンブリ言語までのレベルは、コンピューターサイエンスの分野に関係する。この分野を学ぶ人は、アルゴリズムで問題を解く方法、そのアルゴリズムをプログラミング言語に翻訳する方法、さらに、その言語をコンピューターが理解できる言語へ翻訳する方法を調べる。
• Computer processors operate at various levels of abstraction going from the digital logic level up to the microarchitecture level and the machine language level. The highest level of abstraction for application programs is that obtained by writing programs in a high-level language. Using a compiler makes it possible to generate a representation of such programs at a lower level of abstraction known as assembly language. That representation uses instructions that are part of the instruction set architectures (ISA) specific to the processor family in use.
英語のヒント
• コンピューターのプロセッサは、デジタル論理レベルからマイクロアーキテクチャーレベル、機械語レベルまで、さまざまな抽象化レベルで動作する。アプリケーションプログラムの最も高い抽象化レベルは、高水準言語で書くことで得られるものだ。コンパイラを使うと、それらのプログラムを、アセンブリ言語という、より低い抽象化レベルの表現へ変換できる。その表現では、使用するプロセッサファミリーに固有の命令セットアーキテクチャー(ISA)に属する命令を使う。
• The operating system (OS) is the only piece of software that can directly access the hardware of a computer. All other programs must interface with the OS to have it achieve a specific task in a secure fashion by scheduling the corresponding process. The OS stores data and programs on disk in an organized way, using a file system, and allocates memory to programs.
英語のヒント
• オペレーティングシステム(OS)は、コンピューターのハードウェアに直接アクセスできる唯一のソフトウェアである。ほかのすべてのプログラムはOSとやり取りし、対応するプロセスをスケジューリングすることで、特定のタスクを安全に実行してもらわなければならない。OSはファイルシステムを使って、データとプログラムを整理してディスクに保存し、プログラムへメモリを割り当てる。
• Upcoming computer designs call for new computing abstractions that will deviate from the traditional binary logic. For example, quantum computing uses qubits and neuromorphic computing uses hardware neurons.
英語のヒント
• 今後のコンピューター設計には、従来の2進論理から離れた、新しい計算の抽象化が求められる。たとえば、量子コンピューティングは量子ビットを、ニューロモーフィックコンピューティングはハードウェアのニューロンを使う。

5.3 Machine-Level Information Representation5.3 機械レベルでの情報表現

• The most frequently used data items are stored inside a computer.
• 最も頻繁に使われるデータ項目は、コンピューターの内部に保存される。
• An integer is a number that does not have a floating point; 7 is an integer but 3.14 is not. Integers are divided into two categories: signed and unsigned. Signed integers can be positive, negative, or 0. Unsigned integers are 0 or positive; therefore, they do not need a sign because they will never be negative. This is why we call them unsigned.
英語のヒント
• 整数は小数点を持たない数であり、7は整数だが3.14は整数ではない。整数は、符号付きと符号なしの二つに分けられる。符号付き整数は、正、負、0のいずれにもなる。符号なし整数は0か正で、負にはならないため符号を必要としない。そのため、符号なしと呼ぶ。
• Real numbers, known as floating point numbers, are the numbers that represent fractions. Integers cannot represent numbers like 3.14 or –1.25. This is the role of floating point numbers.
英語のヒント
• 実数は浮動小数点数とも呼ばれ、小数を表す数である。整数では、3.14や−1.25のような数を表せない。これを担うのが浮動小数点数である。
• Characters and symbols on your keyboard are represented inside the computer as 1s and 0s. Every character has its own code.
• キーボードの文字や記号は、コンピューター内部で1と0として表される。各文字には、それぞれのコードがある。
• The range of numbers that n-bit binary number can present if interpreted as a signed or an unsigned integer is helpful to you when you write a program because if you know the values that a variable in your program may take, you can make a precise decision about the type of that variable when you declare it.
英語のヒント
• nビットの2進数を符号付き整数または符号なし整数として解釈したときに、どの範囲の数を表せるかを知っておくと、プログラミングに役立つ。プログラム中の変数が取りうる値を知っていれば、宣言時に、その変数の型を正確に決められるからである。

5.4 Machine-Level Program Representation5.4 機械レベルでのプログラム表現

• An x86-64 Intel processor uses a complex instruction set computer architecture (CISC). This type of architecture combines many simple instructions into a simple complex one. Other processor architectures use a reduced instruction set architecture (RISC) based on simpler instructions. RISC V is a relatively new RISC ISA that is getting popular than CISC. All new high-tech companies use RISC instruction sets in their hardware. For example, ARM assembly, which is a RISC assembly, is used in most portable devices.
英語のヒント
• x86-64 Intelプロセッサは、複雑命令セットコンピューターアーキテクチャー(CISC)を使う。このアーキテクチャーは、多くの単純な命令を、一つの複雑な命令へまとめる。ほかのプロセッサアーキテクチャーは、より単純な命令に基づく縮小命令セットアーキテクチャー(RISC)を使う。RISC Vは比較的新しいRISCのISAで、CISCより人気が高まりつつある。新しいハイテク企業はすべて、ハードウェアにRISC命令セットを使っている。たとえば、RISCのアセンブリであるARMアセンブリは、ほとんどの携帯機器で使われる。
• Assembly language makes use of processor instructions that are part of the instruction set architecture (ISA) of the processor being used. These instructions can be converted to binary code, referred to as machine language code, using an assembler.
英語のヒント
• アセンブリ言語は、使用するプロセッサの命令セットアーキテクチャー(ISA)に属する命令を使う。これらの命令は、アセンブラによって、機械語コードと呼ばれる2進コードへ変換できる。
• Assembly language provides specific instruction to perform common operations such as addition and multiplication of signed and unsigned integers.
• アセンブリ言語は、符号付き・符号なし整数の加算や乗算など、一般的な操作を行うための専用の命令を備えている。