現在パーソナルコンピュータでデファクトスタンダードとなっているx86アーキテクチャでは、1993年のPentiumで2実行ユニットのインオーダ実行型のスーパースカラーを実現し、その後の”P6″(Pentium Pro と Pentium II)以降で3実行ユニットのアウトオブオーダ実行型スーパースカラーに発展した。2008年現在のIA-32アーキテクチャは単一コア当り5実行ユニットのアウトオブオーダ実行型スーパースカラーで、平均IPCは3以上を達成している。
既存のバイナリの実行プログラムの持つ並列性にはばらつきがある。ものによっては命令間の依存が全く無く、常に並列に実行可能なこともある。逆に依存関係が多く、並列性がほとんどない場合もある。例えば、a = b + c; d = e + f という命令列は依存関係がないため、並列に実行可能である。しかし、a = b + c; b = e + f という命令列は依存関係があるため、並列に実行することはできない。
同時に実行可能な命令数が増えると、依存関係をチェックするコストも急激に増大する。また、そのチェックをCPUのクロックに合わせて実行時に行わなければならないという事実が事態をさらに悪化させる。研究によれば、命令の種類を n、同時実行可能な命令数を k としたとき、依存関係チェックの回路規模は n k {\displaystyle n^{k}}、時間は k 2 log n {\displaystyle k^{2}\log n} かかるとされている。数学的には、この問題は順列における組合せ数学の問題である。
^ “super-scalar organization in which multiple execution units operate essentially independently.” AMD. (2020). Software Optimization Guide for AMD EPYC™ 7003 Processors. rev. 3.00. 関連項目 アウト・オブ・オーダー実行 投機的実行/積極的実行 EPICアーキテクチャ スーパーパイプライン 同時マルチスレッディング パイプライン処理 参考文献
出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 記事の信頼性向上にご協力をお願いいたします。(2023年1月) マイク・ジョンソン著、村上和彰監訳、『スーパスカラ・プロセッサ- マイクロプロセッサ設計における定量的アプローチ -』、日経BP社、ISBN 4-8227-1002-5 (原著 Mike Johnson, Superscalar Microprocessor Design, Prentice-Hall, 1991, ISBN 0-13-875634-1) Sorin Cotofana, Stamatis Vassiliadis, “On the Design Complexity of the Issue Logic of Superscalar Machines”, EUROMICRO 1998: 10277-10284 Steven McGeady, “The 1960CA SuperScalar Implementation of the 80960 Architecture”, IEEE 1990, pp. 232-240 Steven McGeady, et al., “Performance Enhancements in the Superscalar i960MM Embedded Microprocessor,” ACM Proceedings of the 1991 Conference on Computer Architecture (Compcon), 1991, pp. 4-7 外部リンク Eager Execution / Dual Path / Multiple Path by Mark Smotherman 表話編歴 CPUテクノロジー 表話編歴 並列計算 カテゴリ: スーパースカラー・マイクロプロセッサコンピュータアーキテクチャCPU並列コンピューティング 最終更新 2025年5月18日 (日) 05:20 (日時は個人設定で未設定ならばUTC)。 テキストはクリエイティブ・コモンズ 表示-継承ライセンスのもとで利用できます。追加の条件が適用される場合があります。詳細については利用規約を参照してください。』
1999年、ミップス・テクノロジーズ社はライセンス体系を整理し、32ビットのMIPS32(MIPS II にそれ以降の新規機能を追加したものだが、後に遅延分岐系のbranch likely は強い非推奨となり、将来の削除が予告された[13])と64ビットのMIPS64(MIPS V ベース)に分けた。
種類 名称 構文 意味 形式/オペコード/機能コード 注記/エンコーディング 算術 Add add $d,$s,$t $d = $s + $t R 0 2016 2つのレジスタを加算。オーバーフロー時にはトラップ発生 000000ss sssttttt ddddd— –100000 Add unsigned addu $d,$s,$t $d = $s + $t R 0 2116 上と同様だが、オーバフローを無視 000000ss sssttttt ddddd— –100001 Subtract sub $d,$s,$t $d = $s – $t R 0 2216 2つのレジスタで減算。オーバーフロー時にはトラップ発生 000000ss sssttttt ddddd— –100010 Subtract unsigned subu $d,$s,$t $d = $s – $t R 0 2316 上と同様だが、オーバーフローを無視 000000ss sssttttt ddddd000 00100011 Add immediate addi $t,$s,C $t = $s + C (signed) I 816 – 符号拡張した即値とレジスタを加算。addi $1, $2, 0 のようにレジスタ間転送にも使える。オーバフロー時にはトラップ発生 001000ss sssttttt CCCCCCCC CCCCCCCC Add immediate unsigned addiu $t,$s,C $t = $s + C (signed) I 916 – 上と同様だが、オーバフローを無視(即値は符号拡張される) 001001ss sssttttt CCCCCCCC CCCCCCCC Multiply mult $s,$t LO = (($s * $t) << 32) >> 32; HI = ($s * $t) >> 32; R 0 1816 2つのレジスタで乗算。64ビットの積は専用レジスタ HI と LO に格納。(int HI,int LO) = (64-bit) $s * $t と表すこともできる。HIとLOには mfhi および mflo でアクセスする。 Divide div $s, $t LO = $s / $t HI = $s % $t R 0 1A16 2つのレジスタで除算。32ビットの商をLO、余りをHIに格納。[24] Divide unsigned divu $s, $t LO = $s / $t HI = $s % $t R 0 1B16 2つのレジスタの内容を符号なし整数と解釈して除算。商はLO、余りはHIに格納。 データ転送 Load double word ld $t,C($s) $t = Memory[$s + C] I 2316 – $s+C というアドレスから8バイトの連続する位置にあるデータをロードし、$tとその次のレジスタに格納する。 Load word lw $t,C($s) $t = Memory[$s + C] I 2316 – $s+C というアドレスから4バイトの連続する位置にあるデータをロードする。 Load halfword lh $t,C($s) $t = Memory$s + C I 2116 – $s+C というアドレスから2バイトの連続する位置にあるデータをロードし、符号拡張してレジスタに格納 Load halfword unsigned lhu $t,C($s) $t = Memory$s + C I 2516 – 上と同様だが、符号拡張しない。 Load byte lb $t,C($s) $t = Memory$s + C I 2016 – $s+C というアドレスの1バイトのデータをロードし、符号拡張する。 Load byte unsigned lbu $t,C($s) $t = Memory$s + C I 2416 – 上と同様だが、符号拡張しない。 Store double word sd $t,C($s) Memory[$s + C] = $t I – $t とその次のレジスタの内容を $s+C という位置から8バイト連続でストアする。オペランドの順序に注意が必要。 Store word sw $t,C($s) Memory[$s + C] = $t I 2B16 – $s+C という位置から4バイト連続でストアする。 Store half sh $t,C($s) Memory[$s + C] = $t I 2916 – レジスタの下位16ビットを $s+C という位置から2バイト連続でストアする。 Store byte sb $t,C($s) Memory[$s + C] = $t I 2816 – レジスタの下位8ビットを $s+C という位置にストアする。 Load upper immediate lui $t,C $t = C << 16 I F16 – 16ビットの即値をレジスタの上位16ビットにロードする。ロードできる最大値は216-1。 Move from high mfhi $d $d = HI R 0 1016 HIレジスタの値を汎用レジスタに転送。この命令から2命令以内に multiply または divide 命令を使ってはならない(その場合の動作は未定義) Move from low mflo $d $d = LO R 0 1216 LOレジスタの値を汎用レジスタに転送。この命令から2命令以内に multiply または divide 命令を使ってはならない(その場合の動作は未定義) Move from Control Register mfcZ $t, $s $t = Coprocessor[Z].ControlRegister[$s] R 0 コプロセッサZのコントロールレジスタの内容を汎用レジスタに転送。符号拡張する。 Move to Control Register mtcZ $t, $s Coprocessor[Z].ControlRegister[$s] = $t R 0 汎用レジスタの4バイトの内容をコプロセッサZのコントロールレジスタに転送。符号拡張する。 論理 And and $d,$s,$t $d = $s & $t R 0 2416 ビット毎のAND 000000ss sssttttt ddddd— –100100 And immediate andi $t,$s,C $t = $s & C I C16 – 即値とのビット毎のAND 001100ss sssttttt CCCCCCCC CCCCCCCC Or or $d,$s,$t $d = $s | $t R 0 2516 ビット毎のOR Or immediate ori $t,$s,C $t = $s | C I D16 – 符号拡張した即値とのビット毎のOR Exclusive or xor $d,$s,$t $d = $s ^ $t R 0 2616 ビット毎のXOR Nor nor $d,$s,$t $d = ~ ($s | $t) R 0 2716 ビット毎のNOR Set on less than slt $d,$s,$t $d = ($s < $t) R 0 2A16 $sと$tの値を符号付き整数として比較し、$s が小さければ $d に1を、そうでなければ0を格納 Set on less than immediate slti $t,$s,C $t = ($s < C) I A16 – 符号拡張した即値と$sの値を比較し、$sが小さければ $d に1を、そうでなければ0を格納。 シフト Shift left logical sll $d,$t,C $d = $t << C R 0 0 $sの内容をCビット左にシフト。 2 C O N S T {\displaystyle 2^{CONST}} をかけるのと同等 Shift right logical srl $d,$t,C $d = $t >> C R 0 216 $sの内容をCビットだけ右にシフト。シフトされて空いた上位ビットには0を格納。正の整数を 2 C {\displaystyle 2^{C}} で割ったのと同等。 Shift right arithmetic sra $d,$t,C $
d
$ t
> C + ( ( ∑
n
1 CONST 2 31 − n ) ⋅ $ 2 > 31 ) {\displaystyle \scriptstyle \$d=\$t>>C+\left(\left(\sum _{n=1}^{\text{CONST}}2^{31-n}\right)\cdot \$2>>31\right)} R 0 316 $sの内容をCビットだけ右にシフト。シフトされた空いた上位ビットは元の値を符号付整数と解釈して符号拡張する。2の補数で表された符号付整数を 2 C {\displaystyle 2^{C}} で割ったのと同等。 条件分岐 Branch on equal beq $s,$t,C if ($s == $t) go to PC+4+4C I 416 – 2つのレジスタの値が等しい場合、指定されたアドレスに分岐 000100ss sssttttt CCCCCCCC CCCCCCCC Branch on not equal bne $s,$t,C if ($s != $t) go to PC+4+4C I 516 – 2つのレジスタの値が等しくない場合、指定されたアドレスに分岐 無条件ジャンプ Jump j C PC = PC+4[31:28] . C4 J 216 – 指定されたアドレスに無条件ジャンプ Jump register jr $s goto address $s R 0 816 指定したレジスタが示すアドレスに無条件ジャンプ Jump and link jal C $31 = PC + 8; PC = PC+4[31:28] . C4 J 316 – プロシージャコール用。$31にリターンアドレスを格納してジャンプする。プロシージャからの復帰は jr $31 とする。リターンアドレスが PC+8 なのは、遅延スロットがあるため。 注: MIPSのアセンブリ言語のコード上、分岐命令での分岐先アドレスはラベルで表現される。
注: “load lower immediate” 命令は存在しない。これは addi 命令や ori 命令でレジスタ $0 を使うことで実現される。例えば、addi $1, $0, 100 も ori $1, $0, 100 もレジスタ$1に100という値が格納される。
種類 名称 構文 意味 形式/オペコード/機能 注記/エンコーディング 算術 FP add single add.s $x,$y,$z $x = $y + $z 単精度加算 FP subtract single sub.s $x,$y,$z $x = $y – $z 単精度減算 FP multiply single mul.s $x,$y,$z $x = $y * $z 単精度乗算 FP divide single div.s $x,$y,$z $x = $y / $z 単精度除算 FP add double add.d $x,$y,$z $x = $y + $z 倍精度加算 FP subtract double sub.d $x,$y,$z $x = $y – $z 倍精度減算 FP multiply double mul.d $x,$y,$z $x = $y * $z 倍精度乗算 FP divide double div.d $x,$y,$z $x = $y / $z 倍精度除算 データ転送 Load word coprocessor lwcZ $x,CONST ($y) Coprocessor[Z].DataRegister[$x] = Memory[$y + CONST] I $2+CONST の位置から4バイトをコプロセッサのデータレジスタにロード。符号拡張する。 Store word coprocessor swcZ $x,CONST ($y) Memory[$y + CONST] = Coprocessor[Z].DataRegister[$x] I コプロセッサのデータレジスタの内容を $2+CONST から4バイト連続でストアする。符号拡張する。 論理(比較) FP compare single (eq,ne,lt,le,gt,ge) c.lt.s $f2,$f4 if ($f2 < $f4) cond=1; else cond=0 2つのレジスタの内容を単精度浮動小数点数として大小比較し、$f2の方が小さければFPUのステータスレジスタの条件ビットを1に、そうでなければ0にセットする。 FP compare double (eq,ne,lt,le,gt,ge) c.lt.d $f2,$f4 if ($f2 < $f4) cond=1; else cond=0 2つ(正確には4つ)のレジスタの内容を倍精度浮動小数点数として大小比較し、$f2の方が小さければFPUのステータスレジスタの条件ビットを1に、そうでなければ0にセットする。 分岐 branch on FP true bc1t 100 if (cond == 1) go to PC+4+100 浮動小数点条件ビットが1ならPC相対(即値)で分岐 branch on FP false bc1f 100 if (cond == 0) go to PC+4+100 浮動小数点条件ビットが0ならPC相対(即値)で分岐 擬似命令 MIPSアセンブラは以下の命令を受け付けるが、これらは実際にはMIPSの命令セットに存在しない。アセンブラが同等の命令列に変換し、その際に $1 ($at) レジスタを一時的に使用することがある。
名称 構文 実際の命令列 意味 Move move $rt,$rs addi $rt,$rs,0 R[rt]=R[rs] Load Address la $at, LabelAddr lui $at, LabelAddr[31:16]; ori $at,$at, LabelAddr[15:0] $at = Label Address リンカがアドレスを決定した際に命令を書き換える。 Load Immediate li $at, IMMED[31:0] lui $at, IMMED[31:16]; ori $at,$at, IMMED[15:0] $at = 32ビット即値 Branch if greater than bgt $rs,$rt,Label slt $at,$rt,$rs; bne $at,$zero,Label if(R[rs]>R[rt]) PC=Label Branch if less than blt $rs,$rt,Label slt $at,$rs,$rt; bne $at,$zero,Label if(R[rs]=R[rt]) PC=Label Branch if less than or equal ble $rs,$rt,Label slt $at,$rt,$rs; beq $at,$zero,Label if(R[rs]<=R[rt]) PC=Label Branch if greater than unsigned bgtu $rs,$rt,Label if(R[rs]=>R[rt]) PC=Label Branch if greater than zero bgtz $rs,$rt,Label if(R[rs]>0) PC=Label Multiplies and returns only first 32 bits mul $1, $2, $3 mult $2, $3; mflo $1 $1 = $2 * $3 その他の命令 NOP命令。通常 sll $0,$0,0 という命令を使い、その機械語コードは 0x00000000 となる。 break命令。デバッガでのブレークポイント設定で使用する。 syscall命令。オペレーティングシステムのシステムコールに使われ、ユーザーモードからカーネルモードに移行する。 コンパイラのレジスタ使用規則 ハードウェアのアーキテクチャにより、以下のことが定められている。
より実用的なフリーなエミュレータとしてGXemulやQEMUプロジェクトのものがある。MIPS III および IV のプロセッサをエミュレートでき、コンピュータシステム全体のエミュレートも可能である。
商用のシミュレータは主に組み込み用MIPSプロセッサを対象としたものが存在する。例えば、Virtutech Simics (MIPS 4Kc and 5Kc, PMC RM9000, QED RM7000)、VaST Systems (R3000, R4000)、CoWare (MIPS4KE, MIPS24K, MIPS25Kf, MIPS34K) がある。
脚注 [脚注の使い方] 注釈 ^ MIPS社のR4000が登場する頃には、DEC社は自社製RISCマイクロプロセッサAlphaを完成させてこれに切り替えた。 ^ R4000は、スーパーパイプラインを世界で最初に導入した市販のマイクロプロセッサである。しかし、これによって、”Microprocessor with Interlocked Pipeline Stages” パイプライン・ステージがインターロックされるマイクロプロセッサと揶揄されることになった。 出典 ^ “MIPS32 Architecture”. ミップス・テクノロジーズ. 2009年5月27日閲覧。 ^ “MIPS64 Architecture”. ミップス・テクノロジーズ. 2009年5月27日閲覧。 ^ “MIPS-3D ASE”. ミップス・テクノロジーズ. 2009年5月27日閲覧。 ^ “MIPS16e”. ミップス・テクノロジーズ. 2021年1月14日閲覧。 ^ “MIPS MT ASE”. ミップス・テクノロジーズ. 2009年5月27日閲覧。 ^ University of California, Davis. “ECS 142 (Compilers) References & Tools page”. 2009年5月28日閲覧。 ^ Rubio, Victor P. “A FPGA Implementation of a MIPS RISC Processor for Computer Architecture Education”. New Mexico State University. 2011年12月22日閲覧。 ^ a b 神保進一著、『マイクロプロセッサ テクノロジ』、日経BP社、1999年12月6日第1版第1刷発行、ISBN 4822209261 ^ Morgan Kaufmann Publishers, Computer Organization and Design, David A. Patterson & John L. Hennessy, Edition 3, ISBN 1-55860-604-1, page 63 ^ “Earl Killian”. Paravirtual. (2010年11月26日) 2010年11月26日閲覧。 ⚠ ^ “S-1 Supercomputer Alumni: Earl Killian”. Clemson University. (2005年6月28日) 2010年11月26日閲覧. “Earl Killian’s early work w… As MIPS’s Director of Architecture, he designed the MIPS III 64-bit instruction-set extension, and led the work on the R4000 microarchitecture. He was a cofounder of QED, which created the R4600 and R5000 MIPS processors. Most recently he was chief architect at Tensilica working on configurable/extensible processors.” ⚠ ^ Jochen Liedtke(1995). On micro kernel construction. 15th Symposium on Operating Systems Principles, Copper Mountain Resort, Colorado. ^ “MIPS® Architecture For Programmers Volume II-A: The MIPS32® Instruction Set Document Number: MD00086 Revision 5.04 December 11, 2013”. p. 41. 2023年12月9日閲覧。 ^ SGI announcing the end of MIPS – ウェイバックマシン(2008年3月7日アーカイブ分) ^ CPUコアベンダからの脱却 – 変貌するMIPS Technologiesの実像を探る ^ http://www.mdronline.com/mpr/h/2006/0626/202602.html China’s Microprocessor Dilemma ^ China’s Institute of Computing Technology Licenses Industry-Standard MIPS Architectures ^ “LinuxDevices article about the Municator”. 2012年12月16日時点のオリジナルよりアーカイブ。2010年12月12日閲覧。 ^ “Yeelong Specs”. 2012年12月10日時点のオリジナルよりアーカイブ。2010年12月12日閲覧。 (LinuxDevices, Oct. 22, 2008) ^ “Silicon Graphics Introduces Enhanced MIPS Architecture to Lead the Interactive Digital Revolution”. Silicon Graphics, Inc. (1996年10月21日). 2011年2月25日閲覧。 ^ a b Gwennap, Linley (18 November 1996). “Digital, MIPS Add Multimedia Extensions”. Microprocessor Report. pp. 24–28. ^ NEC Offers Two High Cost Performance 64-bit RISC Microprocessors ^ 編集人 山形孝雄「PMC-Sierra RMシリーズの概要とRM7900&RM900x2Gの詳細」『Interface2004年7月号』CQ出版社、2004年7月1日、77-88頁。ISSN 0387-9569。 ^ a b MIPS R3000 Instruction Set Summary ^ MIPS Instruction Reference ^ Welcome Page | Open Virtual Platforms ^ Welcome to Imperas | Imperas ^ James Larus. “SPIM MIPS Simulator”. 2007年3月4日閲覧。 ^ EduMIPS64 ^ MARS MIPS simulator – Missouri State University 参考文献 David A. Patterson and John L. Hennessy (2007). Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann Publishers. ISBN 978-0-12-370606-5 David A. Patterson and John L. Hennessy; 成田光彰 (2006). コンピュータの構成と設計 第3版(上) ハードウエアとソフトウエアのインタフェース. 日経BP. ISBN 4-8222-8266-X David A. Patterson and John L. Hennessy; 成田光彰 (2006). コンピュータの構成と設計 第3版(下) ハードウエアとソフトウエアのインタフェース. 日経BP. ISBN 4-8222-8267-8 プロセッサを中心としたコンピュータの設計全般に関する書籍で、命令セットの例としてMIPSアーキテクチャを取り上げている。MIPS開発者であるジョン・L・ヘネシーも著者の一人である。 Dominic Sweetman. See MIPS Run. Morgan Kaufmann Publishers. ISBN 1-55860-410-3 MIPSアーキテクチャについての決定版的な本。ハードウェアアーキテクチャだけでなく、コンパイラやOSについても詳述している。 Farquhar, Erin; Philip Bunce. MIPS Programmer’s Handbook. Morgan Kaufmann Publishers. ISBN 1-55860-297-6 関連項目 μClinux PlayStation – CPUとしてR3000Aを搭載。 外部リンク MIPS Architectures at MIPS Technologies Full overview of MIPS architecture Patterson & Hennessy – Appendix A Summary of MIPS assembly language MIPS Instruction reference MARS (MIPS Assembler and Runtime Simulator) MIPS processor images and descriptions at cpu-collection.de A programmed introduction to MIPS assembly Mips bitshift operators MIPS software user’s manual MIPS Architecture history diagram MIPS Open initiative # 2018年12月17日(米国時間)にWave Computing社はMIPS Open(MIPS命令セットアーキテクチャ(ISA)のオープンソース化プログラム)を発表。 表話編歴 MIPSマイクロプロセッサ 表話編歴 プロセッサアーキテクチャ 典拠管理データベース: 国立図書館 ウィキデータを編集 イスラエルアメリカ カテゴリ: MIPSアーキテクチャコンピュータアーキテクチャMIPSのマイクロプロセッサ命令セットアーキテクチャアドバンスドRISCコンソーシアム 最終更新 2025年1月30日 (木) 08:43 (日時は個人設定で未設定ならばUTC)。 テキストはクリエイティブ・コモンズ 表示-継承ライセンスのもとで利用できます。追加の条件が適用される場合があります。詳細については利用規約を参照してください。』
龙芯2Gは、「High Core Safety Computer CPU Development and Application」原子力高規模主要プロジェクトの支援を受けて開発された。2008年に設計されたが、龙芯の2Gおよび3Aプロジェクトの同時実装により、開発の進捗に影響を与える重複があった。2010年に正常に開発された。龙芯2Gは65ナノメートルプロセスを採用し、主周波数は1.0 GHz、トランジスタ数は1億、命令セットはMIPS64と互換性があり、X86バイナリ変換アクセラレーション命令が追加され、龙芯メディア拡張命令に加えて、64 KB命令と64 KBデータのL1キャッシュ、1 MBがある。L2キャッシュ、消費電力3W。このプロセッサでは、X86バイナリ変換テクノロジが使用され、MIPSプラットフォームでX86ダイナミックバイナリ変換を実装する方法が提案されている。龙芯2Gは、龙芯3A1000のシングルコアバージョンに相当する。龙芯2GQは、クアッドコアプロセッサである龙芯2Gの製品版である。龙芯2GQと龙芯3A1000の違いは、龙芯2GQは複数の相互接続をサポートしていないことである。龙芯2GPは後に龙芯2Iと改名された。
一方、3B6000Mについては、8基のLA364Eコアを内蔵し、2.5GHz駆動時でSPEC CPU 2026 Baseシングルコア固定小数点のスコアが30になるとしている。GPUも自社開発の「LG200」で、ハードウェアエンコーダ、4K/60Hz出力に対応。さらに、SM2/3/4ハードウェア暗号化アクセラレーションもサポートする。
フォン・ノイマンの First Draft of a Report on the EDVAC を多くの研究者が読んだ1945年、それぞれのシステム実装がすぐさま始まった。この開発のペースが今も世界的に続いている[注 13][注 14]。
脚注 [脚注の使い方]
注釈
^ (Schmandt-Besserat 1981) によれば、輸送する品物の個数のぶんだけトークンを粘土箱に入れたという。つまりその箱は一種の船荷証券または帳簿として機能した。最終的に(Schmandt-Besseratはそれに4000年かかったと推定している)、箱の外側に刻まれた印でも数を表すようになって中身は重要性を失い、粘土箱から粘土板へと進化した。 ^ Eleanor Robson (2008), Mathematics in Ancient Iraq ISBN 978-0-691-09182-2 p.5: そのような小石は古代イラクで紀元前3200年から3000年ごろから原始的会計システムとして使われ、商品ごとの計数表現システムとして使われていた。紀元前3000年から2350年ごろには残高勘定が使われ、紀元前2350年から2000年には六十進法が使われるようになった。 ^ ネイピアの骨のスペイン版の記述が (Montaner & Simon 1887, pp. 19–20) にある。 ^ チャールズ・バベッジの1822年の機関や1945年のENIACなど ^ 二進化十進表現 (BCD) は数値表現法として今も広く使われている。 ^ 信号とノイズの比(SN比)が正確度を制限する重要な要因である。例えば (Davenport & Root 1958, pp. 112–364) を参照。 ^ (Martin 2008, p. 24) によれば、David Caminer (1915–2008) が J. Lyons & Company でLEOを担当し、世界初の企業のシステムアナリストとなった。LEOは給与計算、請求処理などの業務を自動化した。 ^ 2008年、CERNの大型ハドロン衝突型加速器が稼働開始したとき、磁気テープが主要な記録媒体だった。 ^ 例えば、Kara Platoni のドナルド・クヌースについての 記事 (Stanford Magazine, May/June 2006) でも IBM 650 への言及がある。 ^ Intel 4004 (1971) は 12 m m 2 {\displaystyle 12mm^{2}} のチップに2300個のトランジスタを集積していた。ちなみに Pentium Pro のチップサイズは 306 m m 2 {\displaystyle 306mm^{2}} で、550万個のトランジスタを集積している。Patterson & Hennessy 1998, pp. 27–39 ^ 軍事関係では、(Kalman 1960, pp. 35–45) のように方程式をコンピュータ上で解くための研究が盛んだった。 ^ Burks, Goldstine & von Neumann 1947, pp. 1–464 は Datamation 1962年9月10月号に掲載されたときには preliminary discussion/design が system analysis/design に置換され、その後 system architecture とされた。 ^ IEEE_Annals 1979 IEEE Annals of the History of Computing へのオンラインアクセスはこちら [1]。DBLP に1996年以降の Annals of the History of Computing の年毎の要約がある。 ^ 2010年11月14日現在、TOP500にある世界最高速のスーパーコンピュータは天河一号である。 出典 ^ Lazos 1994 ^ Howard R. Turner (1997), Science in Medieval Islam: An Illustrated Introduction, p. 184, University of Texas Press, ISBN 0-292-78149-0 ^ Donald Routledge Hill, “Mechanical Engineering in the Medieval Near East”, Scientific American, May 1991, pp. 64–9 (cf. Donald Routledge Hill, Mechanical Engineering) ^ Kells, Kern & Bland 1943, p. 92 ^ Kells, Kern & Bland 1943, p. 82 ^ Taton 1969, p. 81 ^ (fr) La Machine d’arithmétique, Blaise Pascal, Wikisource ^ Marguin 1994, p. 48 ^ d’Ocagne 1893, p. 245 ^ Mourlevat 1988, p. 12 ^ As quoted in Smith 1929, pp. 180–181 ^ Leibniz 1703 ^ Discovering the Arithmometer, Cornell University ^ “The History of Japanese Mechanical Calculating Machines”. Xnumber.com (2000年4月10日). 2010年1月30日閲覧。 ^ 自働算盤(機械式計算機)パテント・ヤズ・アリスモメートル, 日本機械学会 認定機械遺産 ^ Hunt 1998, pp. xiii–xxxvi ^ Friden Model STW-10 Electro-Mechanical Calculator The Old Calculator Web Museum ^ Friden EC-130 Electronic Calculator The Old Calculator Web Museum ^ Wang LOCI-2 The Old Calculator Web Museum ^ Jones ^ Menabrea & Lovelace 1843 ^ “Columbia University Computing History — Herman Hollerith”. Columbia.edu. 2010年1月30日閲覧。 ^ U.S. Census Bureau: Tabulation and Processing ^ Lubar 1991 ^ Eckert 1935 ^ Columbia University Computing History ^ Eckert 1940, pp. 101=114. Chapter XII の章題は “The Computation of Planetary Pertubations” ^ Fisk 2005 ^ Chua 1971, pp. 507–519 ^ Horowitz & Hill 1989, pp. 1–44 ^ Norden ^ Singer 1946 ^ Phillips ^ Coriolis 1836, pp. 5–9 ^ Ziemer, Tranter & Fannin 1993, p. 370 ^ Turing 1937, pp. 230–265 ^ Kurt Gödel (1964), p. 71, “Postscriptum” in Martin Davis (ed., 2004),The Undecidable ISBN 0-486-43228-9 ^ Moye 1996 ^ Bergin 1996 ^ Inventor Profile: George R. Stibitz, National Inventors Hall of Fame Foundation, Inc. ^ Zuse ^ “Electronic Digital Computers”, Nature 162: 487, (25 September 1948) 2009年4月10日閲覧。 ^ Welchman 1984, pp. 138–145, 295–309 ^ Copeland 2006 ^ Claude Shannon, “A Symbolic Analysis of Relay and Switching Circuits”, Transactions of the American Institute of Electrical Engineers, Vol. 57,(1938), pp. 713–723 ^ Shannon 1940 ^ 「継電器回路に於ける単部分路の等価変換の理論」 ^ George Stibitz, US patent 2668661, “Complex Computer”, issued 1954-02-09, assigned to AT&T, 102 pages. ^ January 15, 1941 notice in the Des Moines Register. ^ The First Electronic Computer By Arthur W. Burks ^ Da Cruz 2008 ^ von Neumann 1945, p. 1. 表紙には次のように記されている。「ジョン・フォン・ノイマンによるEDVACについての第一草稿。契約番号: W-670-ORD-4926。米陸軍兵站部とペンシルベニア大学電気工学ムーアスクールとの契約」 ^ An Wang filed October 1949, US patent 2708722, “Pulse transfer controlling devices”, issued 1955-05-17 ^ Enticknap 1998, p. 1; Baby が初めて動作に成功したのは1948年6月21日である。 ^ Manchester 1998, by R.B.E. Napper, et al. ^ CSIRAC: Australia’s first computer, Commonwealth Scientific and Industrial Research Organisation (CSIRAC), (June 3, 2005) 2007年12月21日閲覧。 ^ Lavington 1998, p. 25 ^ Computer Conservation Society, Our Computer Heritage Pilot Study: Deliveries of Ferranti Mark I and Mark I Star computers. 2010年1月9日閲覧。 ^ Lavington, Simon. “A brief history of British computers: the first 25 years (1948–1973).”. British Computer Society. 2010年1月10日閲覧。 ^ IBM (1957) (PDF), SOAP II for the IBM 650, C24-4000-0 ^ Wilkes 1986, pp. 115–126 ^ Horowitz & Hill 1989, p. 743 ^ “The microcode was implemented as extracode on Atlas”. 2010年2月9日閲覧。 ^ Patterson & Hennessy 1998, p. 424 ^ IBM 1956 ^ Feynman, Leighton & Sands 1965, pp. III 14-11 to 14–12 ^ Lavington 1998, pp. 34–35 ^ Lavington 1998, p. 37 ^ Cooke-Yarborough, E.H. (June 1998), “Some early transistor applications in the UK.”, Engineering and Science Education Journal (London, UK: IEE) 7 (3): 100–106, doi:10.1049/esej:19980301, ISSN 0963-7346 2009年6月7日閲覧。 ^ Lavington 1998, pp. 36–37 ^ IBM_SMS 1960 ^ Keenan Mayo and Peter Newcomb (2008年7月). “How the Web Was Won”. Vanity Fair. 2011年1月1日閲覧。 ^ Kilby 2000 ^ Robert Noyce’s Unitary circuit, US patent 2981877, “Semiconductor device-and-lead structure”, issued 1961-04-25, assigned to Fairchild Semiconductor Corporation ^ Intel_4004 1971 ^ Eckhouse & Morris 1979, pp. 1–2 ^ Olivetti P6060 OLD-COMPUTERS.COM ^ 「2005年以降、(Googleの)データセンターは標準化された単位で構成されるようになり、1160台のサーバを1単位とし、電力消費は250kWに達する」 — Ben Jai of Google, (Shankland 2009)からの引用 ^ 「1万台のマシンを稼働させていたら、毎日どこかで故障が発生する」 —Jeff Dean of Google, Shankland 2008からの引用 ^ インテルはシングルチップに48個のCPUコアを集積した製品をクラウドコンピューティング向けに開発したと発表。2009年12月2日閲覧 ^ インテルによれば核コアでLinuxを実行でき、それぞれがx86アーキテクチャとなっている。: 2009年12月3日閲覧 ^ Kohonen 1980, pp. 1–368 ^ Smolin 2001, pp. 53–57 ^ Ryan J. Kershner, Luisa D. Bozano, Christine M. Micheel, Albert M. Hung, Ann R. Fornof, Jennifer N. Cha, Charles T. Rettner, Marco Bersani, Jane Frommer, Paul W. K. Rothemund & Gregory M. Wallraff (16 August 2009) “Placement and orientation of individual DNA shapes on lithographically patterned surfaces” Nature Nanotechnology publication information, supplementary information: DNA origami on photolithography doi:10.1038/nnano.2009.220 ^ Saw-Wai Hla et al., Nature Nanotechnology March 31, 2010 “World’s smallest superconductor discovered”. 大きさ0.87ナノメートルのナノスケール超伝導体が示されている。2010年3月31日閲覧 ^ Tom Simonite, “Computing at the speed of light”, Technology Review Wed., Aug. 4, 2010 MIT 参考文献 Bergin, Thomas J. (ed.) (November 13 and 14, 1996), Fifty Years of Army Computing: from ENIAC to MSRC, A record of a symposium and celebration, Aberdeen Proving Ground.: Army Research Laboratory and the U.S.Army Ordnance Center and School. 2008年5月17日閲覧。 Burks, Arthur W.; Goldstine, Herman; von Neumann, John (1947), Preliminary discussion of the Logical Design of an Electronic Computing Instrument, Princeton, NJ: Institute for Advanced Study 2008年5月18日閲覧。 Chua, Leon O (September 1971), “Memristor—The Missing Circuit Element”, IEEE Transactions on Circuit Theory CT-18 (5): 507–519, doi:10.1109/TCT.1971.1083337 Copeland, B. Jack (ed.) (2006), Colossus: The Secrets of Bletchley Park’s Codebreaking Computers, Oxford, England: Oxford University Press, ISBN 019284055X Coriolis, Gaspard-Gustave (1836), “Note sur un moyen de tracer des courbes données par des équations différentielles”, Journal de Mathématiques Pures et appliquées series I 1: 5–9 2008年7月6日閲覧。(フランス語) Da Cruz, Frank (February 28, 2008), “The IBM Automatic Sequence Controlled Calculator (ASCC)”, Columbia University Computing History: A Chronology of Computing at Columbia University (Columbia University ACIS) 2008年5月17日閲覧。 Davenport, Wilbur B., Jr; Root, William L. (1958), An Introduction to the theory of Random Signals and Noise, McGraw-Hill, pp. 112–364, OCLC 573270 d’Ocagne, Maurice (1893) (フランス語), Annales du Conservatoire national des arts et métier, 2e série, tome 5, Le calcul simplifié, Paris: Gauthiers-Villars et files, Imprimeurs-Libraires Eckert, Wallace (1935), “The Computation of Special Perturbations by the Punched Card Method.”, Astronomical Journal 44 (1034): 177, doi:10.1086/105298 Eckert, Wallace (1940), “XII: “The Computation of Planetary Pertubations””, Punched Card Methods in Scientific Computation, Thomas J. Watson Astronomical Computing Bureau, Columbia University, pp. 101–114, OCLC 2275308 Eckhouse, Richard H., Jr.; Morris, L. Robert (1979), Minicomputer Systems: organization, programming, and applications (PDP-11), Prentice-Hall, pp. 1–2, ISBN 0135839149 Enticknap, Nicholas (Summer 1998), “Computing’s Golden Jubilee”, Resurrection (The Computer Conservation Society) (20), ISSN 0958-7403 2008年4月19日閲覧。 Feynman, R. P.; Leighton, Robert; Sands, Matthew (1965), Feynman Lectures on Physics, Reading, Mass: Addison-Wesley, pp. III 14–11 to 14–12, ISBN 0201020106, OCLC 531535 Fisk, Dale (2005), Programming with Punched Cards, Columbia University ACIS 2008年5月19日閲覧。 Horowitz, Paul; Hill, Winfield (1989), The Art of Electronics (2nd ed.), Cambridge University Press, ISBN 0521370957 Hunt, J. C. R. (1998), “Lewis Fry Richardson and his contributions to Mathematics, Meteorology and Models of Conflict”, Ann. Rev. Fluid Mech. 30: XIII–XXXVI, doi:10.1146/annurev.fluid.30.1.0 2008年6月15日閲覧。 IBM (September, 1956), IBM 350 disk storage unit, IBM 2008年7月1日閲覧。 IBM_SMS (1960), IBM Standard Modular System SMS Cards, IBM 2008年3月6日閲覧。 IEEE_Annals (Series dates from 1979), Annals of the History of Computing, IEEE 2008年5月19日閲覧。 Intel_4004 (November 1971), Intel’s First Microprocessor—the Intel 4004, Intel Corp. 2008年5月17日閲覧。 Jones, Douglas W, Punched Cards: A brief illustrated technical history, The University of Iowa 2008年5月15日閲覧。 Kalman, R.E. (1960), “A new approach to linear filtering and prediction problems”, Journal of Basic Engineering 82 (1): 35–45 2008年5月3日閲覧。 Kells; Kern; Bland (1943), The Log-Log Duplex Decitrig Slide Rule No. 4081: A Manual, Keuffel & Esser, p. 92 Kilby, Jack (2000), Nobel lecture, Stockholm: Nobel Foundation 2008年5月15日閲覧。 Kohonen, Teuvo (1980), Content-addressable memories, Springer-Verlag, p. 368, ISBN 0387098232 Lavington, Simon (1998), A History of Manchester Computers (2 ed.), Swindon: The British Computer Society Lazos (1994), The Antikythera Computer (Ο ΥΠΟΛΟΓΙΣΤΗΣ ΤΩΝ ΑΝΤΙΚΥΘΗΡΩΝ),, ΑΙΟΛΟΣ PUBLICATIONS GR Leibniz, Gottfried (1703), Explication de l’Arithmétique Binaire Lubar, Steve (May 1991), “Do not fold, spindle or mutilate”: A cultural history of the punched card, オリジナルのOctober 25, 2006時点におけるアーカイブ。 2006年10月31日閲覧。 Manchester (1998, 1999), Mark 1, Computer History Museum, The University of Manchester 2008年4月19日閲覧。 Marguin, Jean (1994) (フランス語), Histoire des instruments et machines à calculer, trois siècles de mécanique pensante 1642-1942, Hermann, ISBN 978-2705661663 Martin, Douglas (June 29, 2008), “David Caminer, 92 Dies; A Pioneer in Computers”, New York Times: p. 24 Menabrea, Luigi Federico; Lovelace, Ada (1843), “Sketch of the Analytical Engine Invented by Charles Babbage”, Scientific Memoirs 3. 訳者(エイダ・ラブレス)による注釈付き Montaner; Simon (1887), Diccionario Enciclopédico Hispano-Americano (Hispano-American Encyclopedic Dictionary) Moye, William T. (January 1996), ENIAC: The Army-Sponsored Revolution 2008年5月17日閲覧。 Mourlevat, Guy (1988) (フランス語), Les machines arithmétiques de Blaise Pascal, Clermont-Ferrand: La Française d’Edition et d’Imprimerie Norden, M9 Bombsight, National Museum of the USAF 2008年5月17日閲覧。 Patterson, David; Hennessy, John (1998), Computer Organization and Design, San Francisco: Morgan Kaufmann, ISBN 1-55860-428-6. Phillips, A.W.H., The MONIAC, Reserve Bank Museum 2006年5月17日閲覧。 Schmandt-Besserat, Denise (1981), “Decipherment of the earliest tablets”, Science 211 (4479): 283–285, doi:10.1126/science.211.4479.283, PMID 17748027 Shankland, Stephen (May 30, 2008), Google spotlights data center inner workings, Cnet 2008年5月31日閲覧。 Shankland, Stephen (April 1, 2009), Google uncloaks once-secret server, Cnet 2009年4月1日閲覧。 Shannon, Claude (1940), A symbolic analysis of relay and switching circuits, Massachusetts Institute of Technology, Dept. of Electrical Engineering Singer (1946), Singer in World War II, 1939–1945 — the M5 Director, Singer Manufacturing Co. 2008年5月17日閲覧。 Smith, David Eugene (1929), A Source Book in Mathematics, New York: McGraw-Hill, pp. 180–181 Smolin, Lee (2001), Three roads to quantum gravity, Basic Books, pp. 53–57, ISBN 0-465-07835-4. Pages 220–226 are annotated references and guide for further reading. Taton, René (1969) (フランス語), Histoire du calcul. Que sais-je ? n° 198, Presses universitaires de France Turing, A.M. (1936), “On Computable Numbers, with an Application to the Entscheidungsproblem”, Proceedings of the London Mathematical Society, 2 42: pp. 230–65, 1937, doi:10.1112/plms/s2-42.1.230 (and Turing, A.M. (1938), “On Computable Numbers, with an Application to the Entscheidungsproblem: A correction”, Proceedings of the London Mathematical Society, 2 43: pp. 544–6, 1937, doi:10.1112/plms/s2-43.6.544) 他のオンライン版: Proceedings of the London Mathematical Society 別のオンライン版 von Neumann, John (June 30, 1945), First Draft of a Report on the EDVAC, Moore School of Electrical Engineering: University of Pennsylvania Welchman, Gordon (1984), The Hut Six Story: Breaking the Enigma Codes, Harmondsworth, England: Penguin Books, pp. 138–145, 295–309 Wilkes, Maurice (1986), “The Genesis of Microprogramming”, Ann. Hist. Comp. 8 (2): 115–126 Ziemer, Roger E.; Tranter, William H.; Fannin, D. Ronald (1993), Signals and Systems: Continuous and Discrete, Macmillan, p. 370, ISBN 0-02-431641-5 Zuse, Z3 Computer (1938–1941) 2008年6月1日閲覧。 関連文献 Backus, John (August 1978), “Can Programming be Liberated from the von Neumann Style?”, Communications of the ACM 21 (8): 613, doi:10.1145/359576.359579, 1977 ACM Turing Award Lecture Bell, Gordon; Newell, Allen (1971), Computer Structures: Readings and Examples, New York: McGraw-Hill, ISBN 0-07-004357-4 Bowden, B. V. (1970), “The Language of Computers”, American Scientist 58: 43–53 Cleary, J. F. (1964), GE Transistor Manual (7th ed.), General Electric, Semiconductor Products Department, Syracuse, NY, pp. 139–204, OCLC 223686427 Hollerith, Herman (1890) (Ph.D. dissertation), In connection with the electric tabulation system which has been adopted by U.S. government for the work of the census bureau, Columbia University School of Mines Ifrah, Georges (2000), The Universal History of Numbers: From prehistory to the invention of the computer., John Wiley and Sons, p. 48, ISBN 0-471-39340-1. Translated from the French by David Bellos, E.F. Harding, Sophie Wood and Ian Monk. Ifrah supports his thesis by quoting idiomatic phrases from languages across the entire world. Mead, Carver; Conway, Lynn (1980), Introduction to VLSI Systems, Reading, Mass.: Addison-Wesley, ISBN 0201043580 Menninger, Karl (1992), Number Words and Number Symbols: A Cultural History of Numbers, Dover Publications. German to English translation, M.I.T., 1969. Pellerin, David; Thibault, Scott (April 22, 2005), Practical FPGA Programming in C, Prentice Hall Modern Semiconductor Design Series Sub Series: PH Signal Integrity Library, pp. 1–464, ISBN 0-13-154318-0 Rojas, Raul; Hashagen, Ulf (eds., 2000). The First Computers: History and Architectures. Cambridge: MIT Press. ISBN 0-262-68137-4. Simon, Herbert (1991), Models of My Life, Basic Books, Sloan Foundation Series Steinhaus, H. (1999), Mathematical Snapshots (3rd ed.), New York: Dover, pp. 92–95, p. 301 Stern, Nancy (1981), From ENIAC to UNIVAC: An Appraisal of the Eckert-Mauchly Computers, Digital Press, ISBN 0-932376-14-2 Ulam, Stanisław (1976), Adventures of a Mathematician, New York: Charles Scribner’s Sons, (autobiography) 清水辰次郎:「統計機数値計算法」、東海書房(1952年9月20日)。※これはIBM社パンチカード会計システムを用いた数値計算法。 関連項目 ウィキポータル コンピュータ ポータル コンピュータ CPU年表 スーパーコンピュータ技術史 パーソナルコンピュータ史 情報化時代 プログラミング言語年表 オペレーティングシステムの歴史 ザ・エンジン 外部リンク
ウィキメディア・コモンズには、歴史的計算機に関連するカテゴリがあります。 Obsolete Technology — Old Computers コンピュータ博物館 情報処理学会 Computer History — ボブ・バーマーの文章集 – ウェイバックマシン 25 Microchips that shook the world — IEEEの文章集 History of Computers and Calculators Ceruzzi, Paul E., A History of Modern Computing, MIT Press, 1998 Schmidhuber, Jürgen, Wilhelm Schickard (1592–1635) Father of the computer age 2008年5月15日閲覧。 ITO Tomoyoshi’s Lab BRAINSのページ 表話編歴 コンピューティングの歴史(英語版) 表話編歴 テクノロジー史 カテゴリ: コンピュータ (歴代)計算機の歴史 最終更新 2025年2月9日 (日) 21:59 (日時は個人設定で未設定ならばUTC)。 テキストはクリエイティブ・コモンズ 表示-継承ライセンスのもとで利用できます。追加の条件が適用される場合があります。詳細については利用規約を参照してください。』
インターネット接続に関しては、現在であればIPv6対応が必須と言える。IPv6機能は、厳密にはIPv6で接続するIPoE IPv6機能と、IPv6ネットワーク上で従来のIPv4通信を実現するIPv4 over IPv6の2種類があるのだが、両方がセットで搭載されているので、単にIPv6機能と呼ばれることが多い。